chore: generate

This commit is contained in:
opencode-agent[bot]
2026-06-09 18:30:51 +00:00
parent 132ef57272
commit cc52dc396c
20 changed files with 221 additions and 169 deletions

View File

@@ -269,7 +269,12 @@ const lowerToolResultContent = Effect.fn("BedrockConverse.lowerToolResultContent
content.push({ text: item.text })
continue
}
const media = yield* BedrockMedia.lower({ type: "media", mediaType: item.mime, data: item.uri, filename: item.name })
const media = yield* BedrockMedia.lower({
type: "media",
mediaType: item.mime,
data: item.uri,
filename: item.name,
})
if (!("image" in media))
return yield* ProviderShared.invalidRequest("Bedrock Converse only supports image media in tool results")
content.push(media)

View File

@@ -200,9 +200,7 @@ const lowerToolCall = (part: ToolCallPart): OpenAIChatAssistantToolCall => ({
},
})
const lowerMedia = Effect.fn("OpenAIChat.lowerMedia")(function* (
part: MediaPart,
) {
const lowerMedia = Effect.fn("OpenAIChat.lowerMedia")(function* (part: MediaPart) {
const media = yield* ProviderShared.validateMedia("OpenAI Chat", part, IMAGE_MIMES)
return { type: "image_url" as const, image_url: { url: media.dataUrl } }
})

View File

@@ -327,12 +327,18 @@ describe("OpenAI Chat route", () => {
Message.tool({
id: "call_1",
name: "read",
result: { type: "content", value: [{ type: "file", uri: "data:image/png;base64,AAEC", mime: "image/png" }] },
result: {
type: "content",
value: [{ type: "file", uri: "data:image/png;base64,AAEC", mime: "image/png" }],
},
}),
Message.tool({
id: "call_2",
name: "read",
result: { type: "content", value: [{ type: "file", uri: "data:image/webp;base64,UklG", mime: "image/webp" }] },
result: {
type: "content",
value: [{ type: "file", uri: "data:image/webp;base64,UklG", mime: "image/webp" }],
},
}),
Message.system("Inspect both images."),
],

View File

@@ -241,16 +241,12 @@ describe("LLMClient tools", () => {
uri: "data:image/png;base64,AAAA",
mime: "image/png",
})
expect(
decode({ type: "file", uri: "https://example.test/image.png", mime: "image/png" }),
).toEqual({
expect(decode({ type: "file", uri: "https://example.test/image.png", mime: "image/png" })).toEqual({
type: "file",
uri: "https://example.test/image.png",
mime: "image/png",
})
expect(
decode({ type: "file", uri: "file:///tmp/image.png", mime: "image/png" }),
).toEqual({
expect(decode({ type: "file", uri: "file:///tmp/image.png", mime: "image/png" })).toEqual({
type: "file",
uri: "file:///tmp/image.png",
mime: "image/png",
@@ -270,9 +266,7 @@ describe("LLMClient tools", () => {
})
expect(
ToolOutput.toResultValue(
ToolOutput.make({}, [
{ type: "file", uri: "https://example.test/image.png", mime: "image/png" },
]),
ToolOutput.make({}, [{ type: "file", uri: "https://example.test/image.png", mime: "image/png" }]),
),
).toEqual({
type: "content",
@@ -280,9 +274,7 @@ describe("LLMClient tools", () => {
})
expect(
ToolOutput.toResultValue(
ToolOutput.make({}, [
{ type: "file", uri: "file:///tmp/image.png", mime: "image/png" },
]),
ToolOutput.make({}, [{ type: "file", uri: "file:///tmp/image.png", mime: "image/png" }]),
),
).toEqual({
type: "content",
@@ -307,9 +299,7 @@ describe("LLMClient tools", () => {
parameters: Schema.Struct({}),
success: Schema.Struct({ ok: Schema.Boolean }),
execute: () => Effect.succeed({ ok: true }),
toModelOutput: () => [
{ type: "file", uri: "https://example.test/image.png", mime: "image/png" },
],
toModelOutput: () => [{ type: "file", uri: "https://example.test/image.png", mime: "image/png" }],
})
const dispatched = yield* ToolRuntime.dispatch(