summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRohan Godha <[email protected]>2026-02-01 15:42:42 -0500
committerGitHub <[email protected]>2026-02-01 14:42:42 -0600
commitca5e85d6eab37e8f82ece19dcc482752acbe2ad5 (patch)
tree450f29912b1585e88312167d7e1d25e6e64a6eb7
parent01cec84789235c4cc9db65953bfa358f43b13888 (diff)
downloadopencode-ca5e85d6eab37e8f82ece19dcc482752acbe2ad5.tar.gz
opencode-ca5e85d6eab37e8f82ece19dcc482752acbe2ad5.zip
fix: prompt caching for opus on bedrock (#11664)
-rw-r--r--packages/opencode/src/provider/transform.ts5
-rw-r--r--packages/opencode/test/provider/transform.test.ts2
2 files changed, 4 insertions, 3 deletions
diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts
index f5fe419db..68220b90c 100644
--- a/packages/opencode/src/provider/transform.ts
+++ b/packages/opencode/src/provider/transform.ts
@@ -179,7 +179,7 @@ export namespace ProviderTransform {
cacheControl: { type: "ephemeral" },
},
bedrock: {
- cachePoint: { type: "ephemeral" },
+ cachePoint: { type: "default" },
},
openaiCompatible: {
cache_control: { type: "ephemeral" },
@@ -190,7 +190,8 @@ export namespace ProviderTransform {
}
for (const msg of unique([...system, ...final])) {
- const shouldUseContentOptions = providerID !== "anthropic" && Array.isArray(msg.content) && msg.content.length > 0
+ const useMessageLevelOptions = providerID === "anthropic" || providerID.includes("bedrock")
+ const shouldUseContentOptions = !useMessageLevelOptions && Array.isArray(msg.content) && msg.content.length > 0
if (shouldUseContentOptions) {
const lastContent = msg.content[msg.content.length - 1]
diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts
index 0973e6158..cbb9ddbc4 100644
--- a/packages/opencode/test/provider/transform.test.ts
+++ b/packages/opencode/test/provider/transform.test.ts
@@ -1166,7 +1166,7 @@ describe("ProviderTransform.message - claude w/bedrock custom inference profile"
expect(result[0].providerOptions?.bedrock).toEqual(
expect.objectContaining({
cachePoint: {
- type: "ephemeral",
+ type: "default",
},
}),
)