( toolkit: T )
| 263 | * @since 4.0.0 |
| 264 | */ |
| 265 | export const Part = <T extends Toolkit.Any | Toolkit.WithHandler<any>>( |
| 266 | toolkit: T |
| 267 | ): Schema.Codec< |
| 268 | Part<T extends Toolkit.Any ? Toolkit.Tools<T> : Toolkit.WithHandlerTools<T>>, |
| 269 | PartEncoded, |
| 270 | Tool.ResultDecodingServices<Toolkit.Tools<T>[keyof Toolkit.Tools<T>]>, |
| 271 | Tool.ResultEncodingServices<Toolkit.Tools<T>[keyof Toolkit.Tools<T>]> |
| 272 | > => { |
| 273 | const toolCalls: Array<Schema.Top> = [] |
| 274 | const toolResults: Array<Schema.Top> = [] |
| 275 | for (const tool of Object.values(toolkit.tools as Record<string, Tool.Any>)) { |
| 276 | const toolCall = ToolCallPart(tool.name, tool.parametersSchema) |
| 277 | const toolResult = ToolResultPart(tool.name, tool.successSchema, tool.failureSchema) |
| 278 | toolCalls.push(toolCall) |
| 279 | toolResults.push(toolResult) |
| 280 | } |
| 281 | return Schema.Union([ |
| 282 | TextPart, |
| 283 | ReasoningPart, |
| 284 | ToolApprovalRequestPart, |
| 285 | FilePart, |
| 286 | DocumentSourcePart, |
| 287 | UrlSourcePart, |
| 288 | ResponseMetadataPart, |
| 289 | FinishPart, |
| 290 | ...toolCalls, |
| 291 | ...toolResults |
| 292 | ]) as any |
| 293 | } |
| 294 | |
| 295 | // ============================================================================= |
| 296 | // Stream Parts |
nothing calls this directly
no test coverage detected