| 61 | ) |
| 62 | |
| 63 | const result = (call: ToolCallPart, value: ToolResultValueType | ToolSettlement, error?: unknown): DispatchResult => { |
| 64 | const settlement = ToolResultValue.is(value) ? { result: value } : value |
| 65 | return { |
| 66 | result: settlement.result, |
| 67 | output: settlement.output, |
| 68 | events: |
| 69 | settlement.result.type === "error" |
| 70 | ? [ |
| 71 | LLMEvent.toolError({ id: call.id, name: call.name, message: String(settlement.result.value), error }), |
| 72 | LLMEvent.toolResult({ id: call.id, name: call.name, result: settlement.result }), |
| 73 | ] |
| 74 | : [LLMEvent.toolResult({ id: call.id, name: call.name, result: settlement.result, output: settlement.output })], |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | export const ToolRuntime = { dispatch } as const |