Skip to content

Commit 4ed4557

Browse files
committed
fixup providers
1 parent c374796 commit 4ed4557

File tree

5 files changed

+52
-75
lines changed

5 files changed

+52
-75
lines changed

packages/ai/amazon-bedrock/src/AmazonBedrockLanguageModel.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -396,13 +396,10 @@ const prepareMessages: (options: LanguageModel.ProviderOptions) => Effect.Effect
396396

397397
case "tool": {
398398
for (const part of message.content) {
399-
const result = part.result._tag === "Right"
400-
? part.result.right
401-
: part.result.left
402399
content.push({
403400
toolResult: {
404401
toolUseId: part.id,
405-
content: [{ text: JSON.stringify(result) }]
402+
content: [{ text: JSON.stringify(part.result) }]
406403
}
407404
})
408405
}

packages/ai/anthropic/src/AnthropicLanguageModel.ts

Lines changed: 28 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -568,13 +568,11 @@ const prepareMessages: (options: LanguageModel.ProviderOptions) => Effect.Effect
568568
isLastPart ? getCacheControl(message) : undefined
569569
)
570570

571-
const result = part.result._tag === "Right" ? part.result.right : part.result.left
572-
const isError = part.result._tag === "Left"
573571
content.push({
574572
type: "tool_result",
575573
tool_use_id: part.id,
576-
content: JSON.stringify(result),
577-
is_error: isError,
574+
content: JSON.stringify(part.result),
575+
is_error: part.isFailure,
578576
cache_control: cacheControl
579577
})
580578
}
@@ -673,21 +671,18 @@ const prepareMessages: (options: LanguageModel.ProviderOptions) => Effect.Effect
673671
}
674672

675673
case "tool-result": {
676-
const result = part.result._tag === "Right"
677-
? part.result.right
678-
: part.result.left
679674
if (part.name === "AnthropicCodeExecution") {
680675
content.push({
681676
type: "code_execution_tool_result",
682677
tool_use_id: part.id,
683-
content: result as any,
678+
content: part.result as any,
684679
cache_control: cacheControl
685680
})
686681
} else if (part.name === "AnthropicWebSearch") {
687682
content.push({
688683
type: "web_search_tool_result",
689684
tool_use_id: part.id,
690-
content: result as any,
685+
content: part.result as any,
691686
cache_control: cacheControl
692687
})
693688
} else {
@@ -826,59 +821,55 @@ const makeResponse: (
826821
}
827822

828823
case "bash_code_execution_tool_result": {
829-
const result = part.content.type === "bash_code_execution_result"
830-
? { _tag: "Right", right: part.content } as const
831-
: { _tag: "Left", left: part.content } as const
824+
const isFailure = part.content.type === "bash_code_execution_tool_result_error"
832825
parts.push({
833826
type: "tool-result",
834827
id: part.tool_use_id,
835828
name: "AnthropicCodeExecution",
836-
result,
829+
isFailure,
830+
result: part.content,
837831
providerName: "code_execution",
838832
providerExecuted: true
839833
})
840834
break
841835
}
842836

843837
case "code_execution_tool_result": {
844-
const result = part.content.type === "code_execution_result"
845-
? { _tag: "Right", right: part.content } as const
846-
: { _tag: "Left", left: part.content } as const
838+
const isFailure = part.content.type === "code_execution_tool_result_error"
847839
parts.push({
848840
type: "tool-result",
849841
id: part.tool_use_id,
850842
name: "AnthropicCodeExecution",
851-
result,
843+
isFailure,
844+
result: part.content,
852845
providerName: "code_execution",
853846
providerExecuted: true
854847
})
855848
break
856849
}
857850

858851
case "text_editor_code_execution_tool_result": {
859-
const result = part.content.type === "text_editor_code_execution_tool_result_error"
860-
? { _tag: "Left", left: part.content } as const
861-
: { _tag: "Right", right: part.content } as const
852+
const isFailure = part.content.type === "text_editor_code_execution_tool_result_error"
862853
parts.push({
863854
type: "tool-result",
864855
id: part.tool_use_id,
865856
name: "AnthropicCodeExecution",
866-
result,
857+
isFailure,
858+
result: part.content,
867859
providerName: "code_execution",
868860
providerExecuted: true
869861
})
870862
break
871863
}
872864

873865
case "web_search_tool_result": {
874-
const result = Array.isArray(part.content)
875-
? { _tag: "Right", right: part.content } as const
876-
: { _tag: "Left", left: part.content } as const
866+
const isFailure = !Array.isArray(part.content)
877867
parts.push({
878868
type: "tool-result",
879869
id: part.tool_use_id,
880870
name: "AnthropicWebSearch",
881-
result,
871+
isFailure,
872+
result: part.content,
882873
providerName: "web_search",
883874
providerExecuted: true
884875
})
@@ -1120,14 +1111,13 @@ const makeStreamResponse: (
11201111
case "bash_code_execution_tool_result": {
11211112
const toolUseId = event.content_block.tool_use_id
11221113
const content = event.content_block.content
1123-
const result = content.type === "bash_code_execution_result"
1124-
? { _tag: "Right", right: content } as const
1125-
: { _tag: "Left", left: content } as const
1114+
const isFailure = content.type === "bash_code_execution_tool_result_error"
11261115
parts.push({
11271116
type: "tool-result",
11281117
id: toolUseId,
11291118
name: "AnthropicCodeExecution",
1130-
result,
1119+
isFailure,
1120+
result: content,
11311121
providerName: "code_execution",
11321122
providerExecuted: true
11331123
})
@@ -1137,14 +1127,13 @@ const makeStreamResponse: (
11371127
case "code_execution_tool_result": {
11381128
const toolUseId = event.content_block.tool_use_id
11391129
const content = event.content_block.content
1140-
const result = content.type === "code_execution_result"
1141-
? { _tag: "Right", right: content } as const
1142-
: { _tag: "Left", left: content } as const
1130+
const isFailure = content.type === "code_execution_tool_result_error"
11431131
parts.push({
11441132
type: "tool-result",
11451133
id: toolUseId,
11461134
name: "AnthropicCodeExecution",
1147-
result,
1135+
isFailure,
1136+
result: content,
11481137
providerName: "code_execution",
11491138
providerExecuted: true
11501139
})
@@ -1154,14 +1143,13 @@ const makeStreamResponse: (
11541143
case "text_editor_code_execution_tool_result": {
11551144
const toolUseId = event.content_block.tool_use_id
11561145
const content = event.content_block.content
1157-
const result = content.type === "text_editor_code_execution_tool_result_error"
1158-
? { _tag: "Left", left: content } as const
1159-
: { _tag: "Right", right: content } as const
1146+
const isFailure = content.type === "text_editor_code_execution_tool_result_error"
11601147
parts.push({
11611148
type: "tool-result",
11621149
id: toolUseId,
11631150
name: "AnthropicCodeExecution",
1164-
result,
1151+
isFailure,
1152+
result: content,
11651153
providerName: "code_execution",
11661154
providerExecuted: true
11671155
})
@@ -1171,14 +1159,13 @@ const makeStreamResponse: (
11711159
case "web_search_tool_result": {
11721160
const toolUseId = event.content_block.tool_use_id
11731161
const content = event.content_block.content
1174-
const result = Array.isArray(content)
1175-
? { _tag: "Right", right: content } as const
1176-
: { _tag: "Left", left: content } as const
1162+
const isFailure = !Array.isArray(content)
11771163
parts.push({
11781164
type: "tool-result",
11791165
id: toolUseId,
11801166
name: "AnthropicWebSearch",
1181-
result,
1167+
isFailure,
1168+
result: content,
11821169
providerName: "web_search",
11831170
providerExecuted: true
11841171
})

packages/ai/google/src/GoogleLanguageModel.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -386,14 +386,11 @@ const prepareMessages: (
386386
const parts: Array<typeof Generated.Part.Encoded> = []
387387

388388
for (const part of message.content) {
389-
const result = part.result._tag === "Right"
390-
? part.result.right
391-
: part.result.left
392389
parts.push({
393390
functionResponse: {
394391
id: part.id,
395392
name: part.name,
396-
response: result as any
393+
response: part.result as any
397394
}
398395
})
399396
}
@@ -523,7 +520,8 @@ const makeResponse: (response: Generated.GenerateContentResponse) => Effect.Effe
523520
type: "tool-result",
524521
id: lastCodeExecutionToolCallId,
525522
name: "GoogleCodeExecution",
526-
result: { _tag: "Right", right: part.codeExecutionResult },
523+
isFailure: false,
524+
result: part.codeExecutionResult,
527525
providerName: "code_execution",
528526
providerExecuted: true
529527
})
@@ -677,7 +675,8 @@ const makeStreamResponse: (
677675
type: "tool-result",
678676
id: lastCodeExecutionToolCallId,
679677
name: "GoogleCodeExecution",
680-
result: { _tag: "Right", right: part.codeExecutionResult },
678+
isFailure: false,
679+
result: part.codeExecutionResult,
681680
providerName: "code_execution",
682681
providerExecuted: true
683682
})

packages/ai/openai/src/OpenAiLanguageModel.ts

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -520,13 +520,10 @@ const prepareMessages: (
520520

521521
case "tool": {
522522
for (const part of message.content) {
523-
const result = part.result._tag === "Right"
524-
? part.result.right
525-
: part.result.left
526523
messages.push({
527524
type: "function_call_output",
528525
call_id: part.id,
529-
output: JSON.stringify(result)
526+
output: JSON.stringify(part.result)
530527
})
531528
}
532529

@@ -677,7 +674,8 @@ const makeResponse: (
677674
type: "tool-result",
678675
id: part.id,
679676
name: "OpenAiCodeInterpreter",
680-
result: { _tag: "Right", right: { outputs: part.outputs } },
677+
isFailure: false,
678+
result: part.outputs,
681679
providerName: "code_interpreter",
682680
providerExecuted: true
683681
})
@@ -699,13 +697,11 @@ const makeResponse: (
699697
type: "tool-result",
700698
id: part.id,
701699
name: "OpenAiFileSearch",
700+
isFailure: false,
702701
result: {
703-
_tag: "Right",
704-
right: {
705-
status: part.status,
706-
queries: part.queries,
707-
...(part.results && { results: part.results })
708-
}
702+
status: part.status,
703+
queries: part.queries,
704+
...(part.results && { results: part.results })
709705
},
710706
providerName: "file_search",
711707
providerExecuted: true
@@ -728,7 +724,8 @@ const makeResponse: (
728724
type: "tool-result",
729725
id: part.id,
730726
name: webSearchTool?.name ?? "OpenAiWebSearch",
731-
result: { _tag: "Right", right: { status: part.status } },
727+
isFailure: false,
728+
result: { status: part.status },
732729
providerName: webSearchTool?.providerName ?? "web_search",
733730
providerExecuted: true
734731
})
@@ -979,7 +976,8 @@ const makeStreamResponse: (
979976
type: "tool-result",
980977
id: event.item.id,
981978
name: "OpenAiCodeInterpreter",
982-
result: { _tag: "Right", right: { outputs: event.item.outputs } },
979+
isFailure: false,
980+
result: { outputs: event.item.outputs },
983981
providerName: "code_interpreter",
984982
providerExecuted: true
985983
})
@@ -1009,13 +1007,11 @@ const makeStreamResponse: (
10091007
type: "tool-result",
10101008
id: event.item.id,
10111009
name: "OpenAiFileSearch",
1010+
isFailure: false,
10121011
result: {
1013-
_tag: "Right",
1014-
right: {
1015-
status: event.item.status,
1016-
queries: event.item.queries,
1017-
...(event.item.results && { results: event.item.results })
1018-
}
1012+
status: event.item.status,
1013+
queries: event.item.queries,
1014+
...(event.item.results && { results: event.item.results })
10191015
},
10201016
providerName: "file_search",
10211017
providerExecuted: true
@@ -1103,7 +1099,8 @@ const makeStreamResponse: (
11031099
type: "tool-result",
11041100
id: event.item.id,
11051101
name: "OpenAiWebSearch",
1106-
result: { _tag: "Right", right: { status: event.item.status } },
1102+
isFailure: false,
1103+
result: { status: event.item.status },
11071104
providerName: "web_search",
11081105
providerExecuted: true
11091106
})

packages/ai/openrouter/src/OpenRouterLanguageModel.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -468,13 +468,10 @@ const prepareMessages: (options: LanguageModel.ProviderOptions) => Effect.Effect
468468
case "tool": {
469469
const cacheControl = getCacheControl(message)
470470
for (const part of message.content) {
471-
const result = part.result._tag === "Right"
472-
? part.result.right
473-
: part.result.left
474471
messages.push({
475472
role: "tool",
476473
tool_call_id: part.id,
477-
content: JSON.stringify(result),
474+
content: JSON.stringify(part.result),
478475
cache_control: cacheControl
479476
})
480477
}

0 commit comments

Comments
 (0)