@assistant-ui/react 0.8.6 → 0.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/cloud/auiV0.d.ts.map +1 -1
  2. package/dist/cloud/auiV0.js +9 -2
  3. package/dist/cloud/auiV0.js.map +1 -1
  4. package/dist/cloud/auiV0.mjs +9 -2
  5. package/dist/cloud/auiV0.mjs.map +1 -1
  6. package/dist/primitives/contentPart/useContentPartFile.d.ts +5 -0
  7. package/dist/primitives/contentPart/useContentPartFile.d.ts.map +1 -0
  8. package/dist/{runtimes/edge/streams/utils/index.js → primitives/contentPart/useContentPartFile.js} +18 -12
  9. package/dist/primitives/contentPart/useContentPartFile.js.map +1 -0
  10. package/dist/primitives/contentPart/useContentPartFile.mjs +18 -0
  11. package/dist/primitives/contentPart/useContentPartFile.mjs.map +1 -0
  12. package/dist/primitives/contentPart/useContentPartSource.d.ts +5 -0
  13. package/dist/primitives/contentPart/useContentPartSource.d.ts.map +1 -0
  14. package/dist/{runtimes/edge/streams/utils/PipeableTransformStream.js → primitives/contentPart/useContentPartSource.js} +18 -16
  15. package/dist/primitives/contentPart/useContentPartSource.js.map +1 -0
  16. package/dist/primitives/contentPart/useContentPartSource.mjs +18 -0
  17. package/dist/primitives/contentPart/useContentPartSource.mjs.map +1 -0
  18. package/dist/primitives/index.d.ts +3 -1
  19. package/dist/primitives/index.d.ts.map +1 -1
  20. package/dist/primitives/index.js +7 -1
  21. package/dist/primitives/index.js.map +1 -1
  22. package/dist/primitives/index.mjs +5 -1
  23. package/dist/primitives/index.mjs.map +1 -1
  24. package/dist/runtimes/adapters/thread-history/ThreadHistoryAdapter.d.ts +5 -1
  25. package/dist/runtimes/adapters/thread-history/ThreadHistoryAdapter.d.ts.map +1 -1
  26. package/dist/runtimes/adapters/thread-history/ThreadHistoryAdapter.js.map +1 -1
  27. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.d.ts +1 -1
  28. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.d.ts.map +1 -1
  29. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js +2 -2
  30. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js.map +1 -1
  31. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs +2 -2
  32. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs.map +1 -1
  33. package/dist/runtimes/edge/EdgeChatAdapter.d.ts +1 -2
  34. package/dist/runtimes/edge/EdgeChatAdapter.d.ts.map +1 -1
  35. package/dist/runtimes/edge/EdgeChatAdapter.js +6 -8
  36. package/dist/runtimes/edge/EdgeChatAdapter.js.map +1 -1
  37. package/dist/runtimes/edge/EdgeChatAdapter.mjs +9 -8
  38. package/dist/runtimes/edge/EdgeChatAdapter.mjs.map +1 -1
  39. package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts +2 -2
  40. package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +1 -1
  41. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js +5 -2
  42. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +1 -1
  43. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs +5 -2
  44. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +1 -1
  45. package/dist/runtimes/edge/converters/toCoreMessages.d.ts.map +1 -1
  46. package/dist/runtimes/edge/converters/toCoreMessages.js +1 -1
  47. package/dist/runtimes/edge/converters/toCoreMessages.js.map +1 -1
  48. package/dist/runtimes/edge/converters/toCoreMessages.mjs +1 -1
  49. package/dist/runtimes/edge/converters/toCoreMessages.mjs.map +1 -1
  50. package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts.map +1 -1
  51. package/dist/runtimes/edge/converters/toLanguageModelMessages.js +2 -1
  52. package/dist/runtimes/edge/converters/toLanguageModelMessages.js.map +1 -1
  53. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs +2 -1
  54. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs.map +1 -1
  55. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts +2 -2
  56. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +1 -1
  57. package/dist/runtimes/edge/createEdgeRuntimeAPI.js +17 -34
  58. package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +1 -1
  59. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +21 -37
  60. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +1 -1
  61. package/dist/runtimes/edge/index.d.ts +0 -1
  62. package/dist/runtimes/edge/index.d.ts.map +1 -1
  63. package/dist/runtimes/edge/index.js +1 -3
  64. package/dist/runtimes/edge/index.js.map +1 -1
  65. package/dist/runtimes/edge/index.mjs +0 -1
  66. package/dist/runtimes/edge/index.mjs.map +1 -1
  67. package/dist/runtimes/edge/streams/toolResultStream.d.ts +2 -33
  68. package/dist/runtimes/edge/streams/toolResultStream.d.ts.map +1 -1
  69. package/dist/runtimes/edge/streams/toolResultStream.js +19 -96
  70. package/dist/runtimes/edge/streams/toolResultStream.js.map +1 -1
  71. package/dist/runtimes/edge/streams/toolResultStream.mjs +19 -86
  72. package/dist/runtimes/edge/streams/toolResultStream.mjs.map +1 -1
  73. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
  74. package/dist/runtimes/external-store/ThreadMessageLike.js +1 -0
  75. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  76. package/dist/runtimes/external-store/ThreadMessageLike.mjs +1 -0
  77. package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
  78. package/dist/runtimes/local/ChatModelAdapter.d.ts +2 -2
  79. package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
  80. package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
  81. package/dist/runtimes/local/LocalRuntimeOptions.d.ts +1 -1
  82. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +3 -2
  83. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  84. package/dist/runtimes/local/LocalThreadRuntimeCore.js +22 -7
  85. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  86. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +22 -7
  87. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
  88. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  89. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +1 -1
  90. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  91. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs +1 -1
  92. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs.map +1 -1
  93. package/dist/runtimes/utils/MessageRepository.d.ts +1 -0
  94. package/dist/runtimes/utils/MessageRepository.d.ts.map +1 -1
  95. package/dist/runtimes/utils/MessageRepository.js +3 -0
  96. package/dist/runtimes/utils/MessageRepository.js.map +1 -1
  97. package/dist/runtimes/utils/MessageRepository.mjs +3 -0
  98. package/dist/runtimes/utils/MessageRepository.mjs.map +1 -1
  99. package/dist/types/AssistantTypes.d.ts +1 -1
  100. package/dist/types/AssistantTypes.d.ts.map +1 -1
  101. package/dist/types/AssistantTypes.js.map +1 -1
  102. package/dist/utils/json/is-json.d.ts +1 -1
  103. package/dist/utils/json/is-json.d.ts.map +1 -1
  104. package/dist/utils/json/is-json.js +10 -4
  105. package/dist/utils/json/is-json.js.map +1 -1
  106. package/dist/utils/json/is-json.mjs +10 -4
  107. package/dist/utils/json/is-json.mjs.map +1 -1
  108. package/package.json +5 -5
  109. package/src/cloud/auiV0.ts +9 -2
  110. package/src/primitives/contentPart/useContentPartFile.tsx +18 -0
  111. package/src/primitives/contentPart/useContentPartSource.tsx +18 -0
  112. package/src/primitives/index.ts +3 -1
  113. package/src/runtimes/adapters/thread-history/ThreadHistoryAdapter.ts +5 -1
  114. package/src/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.ts +2 -2
  115. package/src/runtimes/edge/EdgeChatAdapter.ts +18 -19
  116. package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +24 -14
  117. package/src/runtimes/edge/converters/toCoreMessages.ts +6 -2
  118. package/src/runtimes/edge/converters/toLanguageModelMessages.ts +3 -2
  119. package/src/runtimes/edge/createEdgeRuntimeAPI.ts +25 -47
  120. package/src/runtimes/edge/index.ts +0 -2
  121. package/src/runtimes/edge/streams/toolResultStream.ts +28 -152
  122. package/src/runtimes/external-store/ThreadMessageLike.tsx +2 -1
  123. package/src/runtimes/local/ChatModelAdapter.tsx +2 -0
  124. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +31 -7
  125. package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +1 -2
  126. package/src/runtimes/utils/MessageRepository.tsx +4 -0
  127. package/src/types/AssistantTypes.ts +2 -1
  128. package/src/utils/json/is-json.ts +17 -4
  129. package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts +0 -62
  130. package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts.map +0 -1
  131. package/dist/runtimes/edge/streams/AssistantStreamChunkType.js +0 -46
  132. package/dist/runtimes/edge/streams/AssistantStreamChunkType.js.map +0 -1
  133. package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs +0 -21
  134. package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs.map +0 -1
  135. package/dist/runtimes/edge/streams/assistantDecoderStream.d.ts +0 -5
  136. package/dist/runtimes/edge/streams/assistantDecoderStream.d.ts.map +0 -1
  137. package/dist/runtimes/edge/streams/assistantDecoderStream.js +0 -170
  138. package/dist/runtimes/edge/streams/assistantDecoderStream.js.map +0 -1
  139. package/dist/runtimes/edge/streams/assistantDecoderStream.mjs +0 -147
  140. package/dist/runtimes/edge/streams/assistantDecoderStream.mjs.map +0 -1
  141. package/dist/runtimes/edge/streams/assistantEncoderStream.d.ts +0 -5
  142. package/dist/runtimes/edge/streams/assistantEncoderStream.d.ts.map +0 -1
  143. package/dist/runtimes/edge/streams/assistantEncoderStream.js +0 -137
  144. package/dist/runtimes/edge/streams/assistantEncoderStream.js.map +0 -1
  145. package/dist/runtimes/edge/streams/assistantEncoderStream.mjs +0 -114
  146. package/dist/runtimes/edge/streams/assistantEncoderStream.mjs.map +0 -1
  147. package/dist/runtimes/edge/streams/runResultStream.d.ts +0 -4
  148. package/dist/runtimes/edge/streams/runResultStream.d.ts.map +0 -1
  149. package/dist/runtimes/edge/streams/runResultStream.js +0 -313
  150. package/dist/runtimes/edge/streams/runResultStream.js.map +0 -1
  151. package/dist/runtimes/edge/streams/runResultStream.mjs +0 -288
  152. package/dist/runtimes/edge/streams/runResultStream.mjs.map +0 -1
  153. package/dist/runtimes/edge/streams/utils/PipeableTransformStream.d.ts +0 -4
  154. package/dist/runtimes/edge/streams/utils/PipeableTransformStream.d.ts.map +0 -1
  155. package/dist/runtimes/edge/streams/utils/PipeableTransformStream.js.map +0 -1
  156. package/dist/runtimes/edge/streams/utils/PipeableTransformStream.mjs +0 -15
  157. package/dist/runtimes/edge/streams/utils/PipeableTransformStream.mjs.map +0 -1
  158. package/dist/runtimes/edge/streams/utils/StreamPart.d.ts +0 -7
  159. package/dist/runtimes/edge/streams/utils/StreamPart.d.ts.map +0 -1
  160. package/dist/runtimes/edge/streams/utils/StreamPart.js +0 -19
  161. package/dist/runtimes/edge/streams/utils/StreamPart.js.map +0 -1
  162. package/dist/runtimes/edge/streams/utils/StreamPart.mjs +0 -1
  163. package/dist/runtimes/edge/streams/utils/StreamPart.mjs.map +0 -1
  164. package/dist/runtimes/edge/streams/utils/chunkByLineStream.d.ts +0 -2
  165. package/dist/runtimes/edge/streams/utils/chunkByLineStream.d.ts.map +0 -1
  166. package/dist/runtimes/edge/streams/utils/chunkByLineStream.js +0 -48
  167. package/dist/runtimes/edge/streams/utils/chunkByLineStream.js.map +0 -1
  168. package/dist/runtimes/edge/streams/utils/chunkByLineStream.mjs +0 -23
  169. package/dist/runtimes/edge/streams/utils/chunkByLineStream.mjs.map +0 -1
  170. package/dist/runtimes/edge/streams/utils/index.d.ts +0 -14
  171. package/dist/runtimes/edge/streams/utils/index.d.ts.map +0 -1
  172. package/dist/runtimes/edge/streams/utils/index.js.map +0 -1
  173. package/dist/runtimes/edge/streams/utils/index.mjs +0 -11
  174. package/dist/runtimes/edge/streams/utils/index.mjs.map +0 -1
  175. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.d.ts +0 -4
  176. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.d.ts.map +0 -1
  177. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.js +0 -50
  178. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.js.map +0 -1
  179. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.mjs +0 -25
  180. package/dist/runtimes/edge/streams/utils/streamPartDecoderStream.mjs.map +0 -1
  181. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.d.ts +0 -3
  182. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.d.ts.map +0 -1
  183. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.js +0 -48
  184. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.js.map +0 -1
  185. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.mjs +0 -23
  186. package/dist/runtimes/edge/streams/utils/streamPartEncoderStream.mjs.map +0 -1
  187. package/src/runtimes/edge/streams/AssistantStreamChunkType.ts +0 -73
  188. package/src/runtimes/edge/streams/assistantDecoderStream.ts +0 -170
  189. package/src/runtimes/edge/streams/assistantEncoderStream.ts +0 -126
  190. package/src/runtimes/edge/streams/runResultStream.ts +0 -360
  191. package/src/runtimes/edge/streams/utils/PipeableTransformStream.ts +0 -10
  192. package/src/runtimes/edge/streams/utils/StreamPart.ts +0 -3
  193. package/src/runtimes/edge/streams/utils/chunkByLineStream.ts +0 -24
  194. package/src/runtimes/edge/streams/utils/index.ts +0 -15
  195. package/src/runtimes/edge/streams/utils/streamPartDecoderStream.ts +0 -29
  196. package/src/runtimes/edge/streams/utils/streamPartEncoderStream.ts +0 -23
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/createEdgeRuntimeAPI.ts"],"sourcesContent":["import {\n LanguageModelV1,\n LanguageModelV1ToolChoice,\n LanguageModelV1FunctionTool,\n LanguageModelV1Prompt,\n LanguageModelV1CallOptions,\n} from \"@ai-sdk/provider\";\nimport {\n CoreMessage,\n ThreadMessage,\n ThreadStep,\n} from \"../../types/AssistantTypes\";\nimport { assistantEncoderStream } from \"./streams/assistantEncoderStream\";\nimport { EdgeRuntimeRequestOptionsSchema } from \"./EdgeRuntimeRequestOptions\";\nimport { toLanguageModelMessages } from \"./converters/toLanguageModelMessages\";\nimport { toLanguageModelTools } from \"./converters/toLanguageModelTools\";\nimport {\n toolResultStream,\n ToolResultStreamPart,\n} from \"./streams/toolResultStream\";\nimport { runResultStream } from \"./streams/runResultStream\";\nimport {\n LanguageModelConfig,\n LanguageModelV1CallSettings,\n LanguageModelV1CallSettingsSchema,\n Tool,\n} from \"../../model-context/ModelContextTypes\";\nimport { CoreChatModelRunResult } from \"../local/ChatModelAdapter\";\nimport { streamPartEncoderStream } from \"./streams/utils/streamPartEncoderStream\";\nimport { z } from \"zod\";\n\ntype FinishResult = {\n messages: readonly (CoreMessage | ThreadMessage)[];\n metadata: {\n steps: readonly ThreadStep[];\n };\n};\n\ntype LanguageModelCreator = (\n config: LanguageModelConfig,\n) => Promise<LanguageModelV1> | LanguageModelV1;\n\nexport type CreateEdgeRuntimeAPIOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1 | LanguageModelCreator;\n system?: string;\n tools?: Record<string, Tool<any, any>>;\n toolChoice?: LanguageModelV1ToolChoice;\n onFinish?: (result: FinishResult) => void;\n};\n\nconst voidStream = () => {\n return new WritableStream({\n abort(reason) {\n console.error(\"Server stream processing aborted:\", reason);\n },\n });\n};\n\ntype GetEdgeRuntimeStreamOptions = {\n abortSignal: AbortSignal;\n requestData: z.infer<typeof EdgeRuntimeRequestOptionsSchema>;\n options: CreateEdgeRuntimeAPIOptions;\n};\n\nexport const getEdgeRuntimeStream = async ({\n abortSignal,\n requestData: unsafeRequest,\n options: {\n model: modelOrCreator,\n system: serverSystem,\n tools: serverTools = {},\n toolChoice,\n onFinish,\n ...unsafeSettings\n },\n}: GetEdgeRuntimeStreamOptions) => {\n const settings = LanguageModelV1CallSettingsSchema.parse(unsafeSettings);\n const lmServerTools = toLanguageModelTools(serverTools);\n const hasServerTools = Object.values(serverTools).some((v) => !!v.execute);\n\n const {\n system: clientSystem,\n tools: clientTools = [],\n messages,\n apiKey,\n baseUrl,\n modelName,\n ...callSettings\n } = EdgeRuntimeRequestOptionsSchema.parse(unsafeRequest);\n\n const systemMessages = [];\n if (serverSystem) systemMessages.push(serverSystem);\n if (clientSystem) systemMessages.push(clientSystem);\n const system = systemMessages.join(\"\\n\\n\");\n\n for (const clientTool of clientTools) {\n if (serverTools?.[clientTool.name]) {\n throw new Error(\n `Tool ${clientTool.name} was defined in both the client and server tools. This is not allowed.`,\n );\n }\n }\n\n const model =\n typeof modelOrCreator === \"function\"\n ? await modelOrCreator({ apiKey, baseUrl, modelName })\n : modelOrCreator;\n\n let stream: ReadableStream<ToolResultStreamPart>;\n const streamResult = await streamMessage({\n ...(settings as Partial<StreamMessageOptions>),\n ...callSettings,\n\n model,\n abortSignal,\n\n ...(!!system ? { system } : undefined),\n messages,\n tools: lmServerTools.concat(clientTools as LanguageModelV1FunctionTool[]),\n ...(toolChoice ? { toolChoice } : undefined),\n });\n stream = streamResult.stream;\n\n // add tool results if we have server tools\n const canExecuteTools = hasServerTools && toolChoice?.type !== \"none\";\n if (canExecuteTools) {\n stream = stream.pipeThrough(toolResultStream(serverTools, abortSignal));\n }\n\n if (canExecuteTools || onFinish) {\n // tee the stream to process server tools and onFinish asap\n const tees = stream.tee();\n stream = tees[0];\n let serverStream = tees[1];\n\n if (onFinish) {\n let lastChunk: CoreChatModelRunResult | undefined;\n serverStream = serverStream.pipeThrough(runResultStream()).pipeThrough(\n new TransformStream({\n transform(chunk) {\n lastChunk = chunk;\n },\n flush() {\n if (!lastChunk?.status || lastChunk.status.type === \"running\")\n return;\n\n const resultingMessages = [\n ...messages,\n {\n id: \"DEFAULT\",\n createdAt: new Date(),\n role: \"assistant\",\n content: lastChunk.content,\n status: lastChunk.status,\n metadata: {\n unstable_data: lastChunk.metadata?.unstable_data ?? [],\n unstable_annotations:\n lastChunk.metadata?.unstable_annotations ?? [],\n steps: lastChunk.metadata?.steps ?? [],\n custom: lastChunk.metadata?.custom ?? {},\n },\n } satisfies ThreadMessage,\n ];\n onFinish({\n messages: resultingMessages,\n metadata: {\n // TODO\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n steps: lastChunk.metadata?.steps!,\n },\n });\n },\n }),\n );\n }\n\n // drain the server stream\n serverStream.pipeTo(voidStream()).catch((e) => {\n console.error(\"Server stream processing error:\", e);\n });\n }\n\n return stream;\n};\n\nexport declare namespace getEdgeRuntimeResponse {\n export type { GetEdgeRuntimeStreamOptions as Options };\n}\n\nexport const getEdgeRuntimeResponse = async (\n options: getEdgeRuntimeResponse.Options,\n) => {\n const stream = await getEdgeRuntimeStream(options);\n return new Response(\n stream\n .pipeThrough(assistantEncoderStream())\n .pipeThrough(streamPartEncoderStream()),\n {\n headers: {\n \"Content-Type\": \"text/plain; charset=utf-8\",\n },\n },\n );\n};\n\nexport const createEdgeRuntimeAPI = (options: CreateEdgeRuntimeAPIOptions) => ({\n POST: async (request: Request) =>\n getEdgeRuntimeResponse({\n abortSignal: request.signal,\n requestData: await request.json(),\n options,\n }),\n});\n\ntype StreamMessageOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1;\n system?: string;\n messages: readonly CoreMessage[];\n tools?: LanguageModelV1FunctionTool[];\n toolChoice?: LanguageModelV1ToolChoice;\n abortSignal: AbortSignal;\n};\n\nasync function streamMessage({\n model,\n system,\n messages,\n tools,\n toolChoice,\n ...options\n}: StreamMessageOptions) {\n return model.doStream({\n inputFormat: \"messages\",\n mode: {\n type: \"regular\",\n ...(tools ? { tools } : undefined),\n ...(toolChoice ? { toolChoice } : undefined),\n },\n prompt: convertToLanguageModelPrompt(system, messages),\n ...(options as Partial<LanguageModelV1CallOptions>),\n });\n}\n\nexport function convertToLanguageModelPrompt(\n system: string | undefined,\n messages: readonly CoreMessage[],\n): LanguageModelV1Prompt {\n const languageModelMessages: LanguageModelV1Prompt = [];\n\n if (system != null) {\n languageModelMessages.push({ role: \"system\", content: system });\n }\n languageModelMessages.push(...toLanguageModelMessages(messages));\n\n return languageModelMessages;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/edge/createEdgeRuntimeAPI.ts"],"sourcesContent":["import {\n LanguageModelV1,\n LanguageModelV1ToolChoice,\n LanguageModelV1FunctionTool,\n LanguageModelV1Prompt,\n LanguageModelV1CallOptions,\n} from \"@ai-sdk/provider\";\nimport {\n CoreMessage,\n ThreadMessage,\n ThreadStep,\n} from \"../../types/AssistantTypes\";\nimport { EdgeRuntimeRequestOptionsSchema } from \"./EdgeRuntimeRequestOptions\";\nimport { toLanguageModelMessages } from \"./converters/toLanguageModelMessages\";\nimport { toLanguageModelTools } from \"./converters/toLanguageModelTools\";\nimport { toolResultStream } from \"./streams/toolResultStream\";\nimport {\n LanguageModelConfig,\n LanguageModelV1CallSettings,\n LanguageModelV1CallSettingsSchema,\n Tool,\n} from \"../../model-context/ModelContextTypes\";\nimport { z } from \"zod\";\nimport {\n AssistantMessage,\n AssistantMessageAccumulator,\n AssistantStreamChunk,\n DataStreamEncoder,\n} from \"assistant-stream\";\nimport { LanguageModelV1StreamDecoder } from \"assistant-stream/ai-sdk\";\n\ntype FinishResult = {\n messages: readonly (CoreMessage | ThreadMessage)[];\n metadata: {\n steps: readonly ThreadStep[];\n };\n};\n\ntype LanguageModelCreator = (\n config: LanguageModelConfig,\n) => Promise<LanguageModelV1> | LanguageModelV1;\n\nexport type CreateEdgeRuntimeAPIOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1 | LanguageModelCreator;\n system?: string;\n tools?: Record<string, Tool<any, any>>;\n toolChoice?: LanguageModelV1ToolChoice;\n onFinish?: (result: FinishResult) => void;\n};\n\ntype GetEdgeRuntimeStreamOptions = {\n abortSignal: AbortSignal;\n requestData: z.infer<typeof EdgeRuntimeRequestOptionsSchema>;\n options: CreateEdgeRuntimeAPIOptions;\n};\n\nexport const getEdgeRuntimeStream = async ({\n abortSignal,\n requestData: unsafeRequest,\n options: {\n model: modelOrCreator,\n system: serverSystem,\n tools: serverTools = {},\n toolChoice,\n onFinish,\n ...unsafeSettings\n },\n}: GetEdgeRuntimeStreamOptions) => {\n const settings = LanguageModelV1CallSettingsSchema.parse(unsafeSettings);\n const lmServerTools = toLanguageModelTools(serverTools);\n const hasServerTools = Object.values(serverTools).some((v) => !!v.execute);\n\n const {\n system: clientSystem,\n tools: clientTools = [],\n messages,\n apiKey,\n baseUrl,\n modelName,\n ...callSettings\n } = EdgeRuntimeRequestOptionsSchema.parse(unsafeRequest);\n\n const systemMessages = [];\n if (serverSystem) systemMessages.push(serverSystem);\n if (clientSystem) systemMessages.push(clientSystem);\n const system = systemMessages.join(\"\\n\\n\");\n\n for (const clientTool of clientTools) {\n if (serverTools?.[clientTool.name]) {\n throw new Error(\n `Tool ${clientTool.name} was defined in both the client and server tools. This is not allowed.`,\n );\n }\n }\n\n const model =\n typeof modelOrCreator === \"function\"\n ? await modelOrCreator({ apiKey, baseUrl, modelName })\n : modelOrCreator;\n\n let stream: ReadableStream<AssistantStreamChunk>;\n const streamResult = await streamMessage({\n ...(settings as Partial<StreamMessageOptions>),\n ...callSettings,\n\n model,\n abortSignal,\n\n ...(!!system ? { system } : undefined),\n messages,\n tools: lmServerTools.concat(clientTools as LanguageModelV1FunctionTool[]),\n ...(toolChoice ? { toolChoice } : undefined),\n });\n stream = streamResult.stream.pipeThrough(new LanguageModelV1StreamDecoder());\n\n // add tool results if we have server tools\n const canExecuteTools = hasServerTools && toolChoice?.type !== \"none\";\n if (canExecuteTools) {\n stream = stream.pipeThrough(toolResultStream(serverTools, abortSignal));\n }\n\n if (canExecuteTools || onFinish) {\n // tee the stream to process server tools and onFinish asap\n const tees = stream.tee();\n stream = tees[0];\n let serverStream = tees[1];\n\n if (onFinish) {\n let lastChunk: AssistantMessage | undefined;\n serverStream.pipeThrough(new AssistantMessageAccumulator()).pipeTo(\n new WritableStream({\n write(chunk) {\n lastChunk = chunk;\n },\n close() {\n if (!lastChunk?.status || lastChunk.status.type === \"running\")\n return;\n\n const resultingMessages = [\n ...messages,\n {\n id: \"DEFAULT\",\n createdAt: new Date(),\n role: \"assistant\",\n content: lastChunk.content,\n status: lastChunk.status,\n metadata: lastChunk.metadata,\n } satisfies ThreadMessage,\n ];\n onFinish({\n messages: resultingMessages,\n metadata: {\n steps: lastChunk.metadata.steps,\n },\n });\n },\n abort(e) {\n console.error(\"Server stream processing error:\", e);\n },\n }),\n );\n }\n }\n\n return stream;\n};\n\nexport declare namespace getEdgeRuntimeResponse {\n export type { GetEdgeRuntimeStreamOptions as Options };\n}\n\nexport const getEdgeRuntimeResponse = async (\n options: getEdgeRuntimeResponse.Options,\n) => {\n const stream = await getEdgeRuntimeStream(options);\n return new Response(stream.pipeThrough(new DataStreamEncoder()), {\n headers: {\n \"Content-Type\": \"text/plain; charset=utf-8\",\n \"x-vercel-ai-data-stream\": \"v1\",\n },\n });\n};\n\nexport const createEdgeRuntimeAPI = (options: CreateEdgeRuntimeAPIOptions) => ({\n POST: async (request: Request) =>\n getEdgeRuntimeResponse({\n abortSignal: request.signal,\n requestData: await request.json(),\n options,\n }),\n});\n\ntype StreamMessageOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1;\n system?: string;\n messages: readonly CoreMessage[];\n tools?: LanguageModelV1FunctionTool[];\n toolChoice?: LanguageModelV1ToolChoice;\n abortSignal: AbortSignal;\n};\n\nasync function streamMessage({\n model,\n system,\n messages,\n tools,\n toolChoice,\n ...options\n}: StreamMessageOptions) {\n return model.doStream({\n inputFormat: \"messages\",\n mode: {\n type: \"regular\",\n ...(tools ? { tools } : undefined),\n ...(toolChoice ? { toolChoice } : undefined),\n },\n prompt: convertToLanguageModelPrompt(system, messages),\n ...(options as Partial<LanguageModelV1CallOptions>),\n });\n}\n\nexport function convertToLanguageModelPrompt(\n system: string | undefined,\n messages: readonly CoreMessage[],\n): LanguageModelV1Prompt {\n const languageModelMessages: LanguageModelV1Prompt = [];\n\n if (system != null) {\n languageModelMessages.push({ role: \"system\", content: system });\n }\n languageModelMessages.push(...toLanguageModelMessages(messages));\n\n return languageModelMessages;\n}\n"],"mappings":"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","names":[]}
@@ -1,23 +1,16 @@
1
1
  // src/runtimes/edge/createEdgeRuntimeAPI.ts
2
- import { assistantEncoderStream } from "./streams/assistantEncoderStream.mjs";
3
2
  import { EdgeRuntimeRequestOptionsSchema } from "./EdgeRuntimeRequestOptions.mjs";
4
3
  import { toLanguageModelMessages } from "./converters/toLanguageModelMessages.mjs";
5
4
  import { toLanguageModelTools } from "./converters/toLanguageModelTools.mjs";
6
- import {
7
- toolResultStream
8
- } from "./streams/toolResultStream.mjs";
9
- import { runResultStream } from "./streams/runResultStream.mjs";
5
+ import { toolResultStream } from "./streams/toolResultStream.mjs";
10
6
  import {
11
7
  LanguageModelV1CallSettingsSchema
12
8
  } from "../../model-context/ModelContextTypes.mjs";
13
- import { streamPartEncoderStream } from "./streams/utils/streamPartEncoderStream.mjs";
14
- var voidStream = () => {
15
- return new WritableStream({
16
- abort(reason) {
17
- console.error("Server stream processing aborted:", reason);
18
- }
19
- });
20
- };
9
+ import {
10
+ AssistantMessageAccumulator,
11
+ DataStreamEncoder
12
+ } from "assistant-stream";
13
+ import { LanguageModelV1StreamDecoder } from "assistant-stream/ai-sdk";
21
14
  var getEdgeRuntimeStream = async ({
22
15
  abortSignal,
23
16
  requestData: unsafeRequest,
@@ -65,7 +58,7 @@ var getEdgeRuntimeStream = async ({
65
58
  tools: lmServerTools.concat(clientTools),
66
59
  ...toolChoice ? { toolChoice } : void 0
67
60
  });
68
- stream = streamResult.stream;
61
+ stream = streamResult.stream.pipeThrough(new LanguageModelV1StreamDecoder());
69
62
  const canExecuteTools = hasServerTools && toolChoice?.type !== "none";
70
63
  if (canExecuteTools) {
71
64
  stream = stream.pipeThrough(toolResultStream(serverTools, abortSignal));
@@ -76,12 +69,12 @@ var getEdgeRuntimeStream = async ({
76
69
  let serverStream = tees[1];
77
70
  if (onFinish) {
78
71
  let lastChunk;
79
- serverStream = serverStream.pipeThrough(runResultStream()).pipeThrough(
80
- new TransformStream({
81
- transform(chunk) {
72
+ serverStream.pipeThrough(new AssistantMessageAccumulator()).pipeTo(
73
+ new WritableStream({
74
+ write(chunk) {
82
75
  lastChunk = chunk;
83
76
  },
84
- flush() {
77
+ close() {
85
78
  if (!lastChunk?.status || lastChunk.status.type === "running")
86
79
  return;
87
80
  const resultingMessages = [
@@ -92,42 +85,33 @@ var getEdgeRuntimeStream = async ({
92
85
  role: "assistant",
93
86
  content: lastChunk.content,
94
87
  status: lastChunk.status,
95
- metadata: {
96
- unstable_data: lastChunk.metadata?.unstable_data ?? [],
97
- unstable_annotations: lastChunk.metadata?.unstable_annotations ?? [],
98
- steps: lastChunk.metadata?.steps ?? [],
99
- custom: lastChunk.metadata?.custom ?? {}
100
- }
88
+ metadata: lastChunk.metadata
101
89
  }
102
90
  ];
103
91
  onFinish({
104
92
  messages: resultingMessages,
105
93
  metadata: {
106
- // TODO
107
- // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
108
- steps: lastChunk.metadata?.steps
94
+ steps: lastChunk.metadata.steps
109
95
  }
110
96
  });
97
+ },
98
+ abort(e) {
99
+ console.error("Server stream processing error:", e);
111
100
  }
112
101
  })
113
102
  );
114
103
  }
115
- serverStream.pipeTo(voidStream()).catch((e) => {
116
- console.error("Server stream processing error:", e);
117
- });
118
104
  }
119
105
  return stream;
120
106
  };
121
107
  var getEdgeRuntimeResponse = async (options) => {
122
108
  const stream = await getEdgeRuntimeStream(options);
123
- return new Response(
124
- stream.pipeThrough(assistantEncoderStream()).pipeThrough(streamPartEncoderStream()),
125
- {
126
- headers: {
127
- "Content-Type": "text/plain; charset=utf-8"
128
- }
109
+ return new Response(stream.pipeThrough(new DataStreamEncoder()), {
110
+ headers: {
111
+ "Content-Type": "text/plain; charset=utf-8",
112
+ "x-vercel-ai-data-stream": "v1"
129
113
  }
130
- );
114
+ });
131
115
  };
132
116
  var createEdgeRuntimeAPI = (options) => ({
133
117
  POST: async (request) => getEdgeRuntimeResponse({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/createEdgeRuntimeAPI.ts"],"sourcesContent":["import {\n LanguageModelV1,\n LanguageModelV1ToolChoice,\n LanguageModelV1FunctionTool,\n LanguageModelV1Prompt,\n LanguageModelV1CallOptions,\n} from \"@ai-sdk/provider\";\nimport {\n CoreMessage,\n ThreadMessage,\n ThreadStep,\n} from \"../../types/AssistantTypes\";\nimport { assistantEncoderStream } from \"./streams/assistantEncoderStream\";\nimport { EdgeRuntimeRequestOptionsSchema } from \"./EdgeRuntimeRequestOptions\";\nimport { toLanguageModelMessages } from \"./converters/toLanguageModelMessages\";\nimport { toLanguageModelTools } from \"./converters/toLanguageModelTools\";\nimport {\n toolResultStream,\n ToolResultStreamPart,\n} from \"./streams/toolResultStream\";\nimport { runResultStream } from \"./streams/runResultStream\";\nimport {\n LanguageModelConfig,\n LanguageModelV1CallSettings,\n LanguageModelV1CallSettingsSchema,\n Tool,\n} from \"../../model-context/ModelContextTypes\";\nimport { CoreChatModelRunResult } from \"../local/ChatModelAdapter\";\nimport { streamPartEncoderStream } from \"./streams/utils/streamPartEncoderStream\";\nimport { z } from \"zod\";\n\ntype FinishResult = {\n messages: readonly (CoreMessage | ThreadMessage)[];\n metadata: {\n steps: readonly ThreadStep[];\n };\n};\n\ntype LanguageModelCreator = (\n config: LanguageModelConfig,\n) => Promise<LanguageModelV1> | LanguageModelV1;\n\nexport type CreateEdgeRuntimeAPIOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1 | LanguageModelCreator;\n system?: string;\n tools?: Record<string, Tool<any, any>>;\n toolChoice?: LanguageModelV1ToolChoice;\n onFinish?: (result: FinishResult) => void;\n};\n\nconst voidStream = () => {\n return new WritableStream({\n abort(reason) {\n console.error(\"Server stream processing aborted:\", reason);\n },\n });\n};\n\ntype GetEdgeRuntimeStreamOptions = {\n abortSignal: AbortSignal;\n requestData: z.infer<typeof EdgeRuntimeRequestOptionsSchema>;\n options: CreateEdgeRuntimeAPIOptions;\n};\n\nexport const getEdgeRuntimeStream = async ({\n abortSignal,\n requestData: unsafeRequest,\n options: {\n model: modelOrCreator,\n system: serverSystem,\n tools: serverTools = {},\n toolChoice,\n onFinish,\n ...unsafeSettings\n },\n}: GetEdgeRuntimeStreamOptions) => {\n const settings = LanguageModelV1CallSettingsSchema.parse(unsafeSettings);\n const lmServerTools = toLanguageModelTools(serverTools);\n const hasServerTools = Object.values(serverTools).some((v) => !!v.execute);\n\n const {\n system: clientSystem,\n tools: clientTools = [],\n messages,\n apiKey,\n baseUrl,\n modelName,\n ...callSettings\n } = EdgeRuntimeRequestOptionsSchema.parse(unsafeRequest);\n\n const systemMessages = [];\n if (serverSystem) systemMessages.push(serverSystem);\n if (clientSystem) systemMessages.push(clientSystem);\n const system = systemMessages.join(\"\\n\\n\");\n\n for (const clientTool of clientTools) {\n if (serverTools?.[clientTool.name]) {\n throw new Error(\n `Tool ${clientTool.name} was defined in both the client and server tools. This is not allowed.`,\n );\n }\n }\n\n const model =\n typeof modelOrCreator === \"function\"\n ? await modelOrCreator({ apiKey, baseUrl, modelName })\n : modelOrCreator;\n\n let stream: ReadableStream<ToolResultStreamPart>;\n const streamResult = await streamMessage({\n ...(settings as Partial<StreamMessageOptions>),\n ...callSettings,\n\n model,\n abortSignal,\n\n ...(!!system ? { system } : undefined),\n messages,\n tools: lmServerTools.concat(clientTools as LanguageModelV1FunctionTool[]),\n ...(toolChoice ? { toolChoice } : undefined),\n });\n stream = streamResult.stream;\n\n // add tool results if we have server tools\n const canExecuteTools = hasServerTools && toolChoice?.type !== \"none\";\n if (canExecuteTools) {\n stream = stream.pipeThrough(toolResultStream(serverTools, abortSignal));\n }\n\n if (canExecuteTools || onFinish) {\n // tee the stream to process server tools and onFinish asap\n const tees = stream.tee();\n stream = tees[0];\n let serverStream = tees[1];\n\n if (onFinish) {\n let lastChunk: CoreChatModelRunResult | undefined;\n serverStream = serverStream.pipeThrough(runResultStream()).pipeThrough(\n new TransformStream({\n transform(chunk) {\n lastChunk = chunk;\n },\n flush() {\n if (!lastChunk?.status || lastChunk.status.type === \"running\")\n return;\n\n const resultingMessages = [\n ...messages,\n {\n id: \"DEFAULT\",\n createdAt: new Date(),\n role: \"assistant\",\n content: lastChunk.content,\n status: lastChunk.status,\n metadata: {\n unstable_data: lastChunk.metadata?.unstable_data ?? [],\n unstable_annotations:\n lastChunk.metadata?.unstable_annotations ?? [],\n steps: lastChunk.metadata?.steps ?? [],\n custom: lastChunk.metadata?.custom ?? {},\n },\n } satisfies ThreadMessage,\n ];\n onFinish({\n messages: resultingMessages,\n metadata: {\n // TODO\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n steps: lastChunk.metadata?.steps!,\n },\n });\n },\n }),\n );\n }\n\n // drain the server stream\n serverStream.pipeTo(voidStream()).catch((e) => {\n console.error(\"Server stream processing error:\", e);\n });\n }\n\n return stream;\n};\n\nexport declare namespace getEdgeRuntimeResponse {\n export type { GetEdgeRuntimeStreamOptions as Options };\n}\n\nexport const getEdgeRuntimeResponse = async (\n options: getEdgeRuntimeResponse.Options,\n) => {\n const stream = await getEdgeRuntimeStream(options);\n return new Response(\n stream\n .pipeThrough(assistantEncoderStream())\n .pipeThrough(streamPartEncoderStream()),\n {\n headers: {\n \"Content-Type\": \"text/plain; charset=utf-8\",\n },\n },\n );\n};\n\nexport const createEdgeRuntimeAPI = (options: CreateEdgeRuntimeAPIOptions) => ({\n POST: async (request: Request) =>\n getEdgeRuntimeResponse({\n abortSignal: request.signal,\n requestData: await request.json(),\n options,\n }),\n});\n\ntype StreamMessageOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1;\n system?: string;\n messages: readonly CoreMessage[];\n tools?: LanguageModelV1FunctionTool[];\n toolChoice?: LanguageModelV1ToolChoice;\n abortSignal: AbortSignal;\n};\n\nasync function streamMessage({\n model,\n system,\n messages,\n tools,\n toolChoice,\n ...options\n}: StreamMessageOptions) {\n return model.doStream({\n inputFormat: \"messages\",\n mode: {\n type: \"regular\",\n ...(tools ? { tools } : undefined),\n ...(toolChoice ? { toolChoice } : undefined),\n },\n prompt: convertToLanguageModelPrompt(system, messages),\n ...(options as Partial<LanguageModelV1CallOptions>),\n });\n}\n\nexport function convertToLanguageModelPrompt(\n system: string | undefined,\n messages: readonly CoreMessage[],\n): LanguageModelV1Prompt {\n const languageModelMessages: LanguageModelV1Prompt = [];\n\n if (system != null) {\n languageModelMessages.push({ role: \"system\", content: system });\n }\n languageModelMessages.push(...toLanguageModelMessages(messages));\n\n return languageModelMessages;\n}\n"],"mappings":";AAYA,SAAS,8BAA8B;AACvC,SAAS,uCAAuC;AAChD,SAAS,+BAA+B;AACxC,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,OAEK;AACP,SAAS,uBAAuB;AAChC;AAAA,EAGE;AAAA,OAEK;AAEP,SAAS,+BAA+B;AAsBxC,IAAM,aAAa,MAAM;AACvB,SAAO,IAAI,eAAe;AAAA,IACxB,MAAM,QAAQ;AACZ,cAAQ,MAAM,qCAAqC,MAAM;AAAA,IAC3D;AAAA,EACF,CAAC;AACH;AAQO,IAAM,uBAAuB,OAAO;AAAA,EACzC;AAAA,EACA,aAAa;AAAA,EACb,SAAS;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO,cAAc,CAAC;AAAA,IACtB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AACF,MAAmC;AACjC,QAAM,WAAW,kCAAkC,MAAM,cAAc;AACvE,QAAM,gBAAgB,qBAAqB,WAAW;AACtD,QAAM,iBAAiB,OAAO,OAAO,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO;AAEzE,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO,cAAc,CAAC;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,gCAAgC,MAAM,aAAa;AAEvD,QAAM,iBAAiB,CAAC;AACxB,MAAI,aAAc,gBAAe,KAAK,YAAY;AAClD,MAAI,aAAc,gBAAe,KAAK,YAAY;AAClD,QAAM,SAAS,eAAe,KAAK,MAAM;AAEzC,aAAW,cAAc,aAAa;AACpC,QAAI,cAAc,WAAW,IAAI,GAAG;AAClC,YAAM,IAAI;AAAA,QACR,QAAQ,WAAW,IAAI;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,QACJ,OAAO,mBAAmB,aACtB,MAAM,eAAe,EAAE,QAAQ,SAAS,UAAU,CAAC,IACnD;AAEN,MAAI;AACJ,QAAM,eAAe,MAAM,cAAc;AAAA,IACvC,GAAI;AAAA,IACJ,GAAG;AAAA,IAEH;AAAA,IACA;AAAA,IAEA,GAAI,CAAC,CAAC,SAAS,EAAE,OAAO,IAAI;AAAA,IAC5B;AAAA,IACA,OAAO,cAAc,OAAO,WAA4C;AAAA,IACxE,GAAI,aAAa,EAAE,WAAW,IAAI;AAAA,EACpC,CAAC;AACD,WAAS,aAAa;AAGtB,QAAM,kBAAkB,kBAAkB,YAAY,SAAS;AAC/D,MAAI,iBAAiB;AACnB,aAAS,OAAO,YAAY,iBAAiB,aAAa,WAAW,CAAC;AAAA,EACxE;AAEA,MAAI,mBAAmB,UAAU;AAE/B,UAAM,OAAO,OAAO,IAAI;AACxB,aAAS,KAAK,CAAC;AACf,QAAI,eAAe,KAAK,CAAC;AAEzB,QAAI,UAAU;AACZ,UAAI;AACJ,qBAAe,aAAa,YAAY,gBAAgB,CAAC,EAAE;AAAA,QACzD,IAAI,gBAAgB;AAAA,UAClB,UAAU,OAAO;AACf,wBAAY;AAAA,UACd;AAAA,UACA,QAAQ;AACN,gBAAI,CAAC,WAAW,UAAU,UAAU,OAAO,SAAS;AAClD;AAEF,kBAAM,oBAAoB;AAAA,cACxB,GAAG;AAAA,cACH;AAAA,gBACE,IAAI;AAAA,gBACJ,WAAW,oBAAI,KAAK;AAAA,gBACpB,MAAM;AAAA,gBACN,SAAS,UAAU;AAAA,gBACnB,QAAQ,UAAU;AAAA,gBAClB,UAAU;AAAA,kBACR,eAAe,UAAU,UAAU,iBAAiB,CAAC;AAAA,kBACrD,sBACE,UAAU,UAAU,wBAAwB,CAAC;AAAA,kBAC/C,OAAO,UAAU,UAAU,SAAS,CAAC;AAAA,kBACrC,QAAQ,UAAU,UAAU,UAAU,CAAC;AAAA,gBACzC;AAAA,cACF;AAAA,YACF;AACA,qBAAS;AAAA,cACP,UAAU;AAAA,cACV,UAAU;AAAA;AAAA;AAAA,gBAGR,OAAO,UAAU,UAAU;AAAA,cAC7B;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAGA,iBAAa,OAAO,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM;AAC7C,cAAQ,MAAM,mCAAmC,CAAC;AAAA,IACpD,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAMO,IAAM,yBAAyB,OACpC,YACG;AACH,QAAM,SAAS,MAAM,qBAAqB,OAAO;AACjD,SAAO,IAAI;AAAA,IACT,OACG,YAAY,uBAAuB,CAAC,EACpC,YAAY,wBAAwB,CAAC;AAAA,IACxC;AAAA,MACE,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,uBAAuB,CAAC,aAA0C;AAAA,EAC7E,MAAM,OAAO,YACX,uBAAuB;AAAA,IACrB,aAAa,QAAQ;AAAA,IACrB,aAAa,MAAM,QAAQ,KAAK;AAAA,IAChC;AAAA,EACF,CAAC;AACL;AAWA,eAAe,cAAc;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyB;AACvB,SAAO,MAAM,SAAS;AAAA,IACpB,aAAa;AAAA,IACb,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,GAAI,QAAQ,EAAE,MAAM,IAAI;AAAA,MACxB,GAAI,aAAa,EAAE,WAAW,IAAI;AAAA,IACpC;AAAA,IACA,QAAQ,6BAA6B,QAAQ,QAAQ;AAAA,IACrD,GAAI;AAAA,EACN,CAAC;AACH;AAEO,SAAS,6BACd,QACA,UACuB;AACvB,QAAM,wBAA+C,CAAC;AAEtD,MAAI,UAAU,MAAM;AAClB,0BAAsB,KAAK,EAAE,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,EAChE;AACA,wBAAsB,KAAK,GAAG,wBAAwB,QAAQ,CAAC;AAE/D,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/edge/createEdgeRuntimeAPI.ts"],"sourcesContent":["import {\n LanguageModelV1,\n LanguageModelV1ToolChoice,\n LanguageModelV1FunctionTool,\n LanguageModelV1Prompt,\n LanguageModelV1CallOptions,\n} from \"@ai-sdk/provider\";\nimport {\n CoreMessage,\n ThreadMessage,\n ThreadStep,\n} from \"../../types/AssistantTypes\";\nimport { EdgeRuntimeRequestOptionsSchema } from \"./EdgeRuntimeRequestOptions\";\nimport { toLanguageModelMessages } from \"./converters/toLanguageModelMessages\";\nimport { toLanguageModelTools } from \"./converters/toLanguageModelTools\";\nimport { toolResultStream } from \"./streams/toolResultStream\";\nimport {\n LanguageModelConfig,\n LanguageModelV1CallSettings,\n LanguageModelV1CallSettingsSchema,\n Tool,\n} from \"../../model-context/ModelContextTypes\";\nimport { z } from \"zod\";\nimport {\n AssistantMessage,\n AssistantMessageAccumulator,\n AssistantStreamChunk,\n DataStreamEncoder,\n} from \"assistant-stream\";\nimport { LanguageModelV1StreamDecoder } from \"assistant-stream/ai-sdk\";\n\ntype FinishResult = {\n messages: readonly (CoreMessage | ThreadMessage)[];\n metadata: {\n steps: readonly ThreadStep[];\n };\n};\n\ntype LanguageModelCreator = (\n config: LanguageModelConfig,\n) => Promise<LanguageModelV1> | LanguageModelV1;\n\nexport type CreateEdgeRuntimeAPIOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1 | LanguageModelCreator;\n system?: string;\n tools?: Record<string, Tool<any, any>>;\n toolChoice?: LanguageModelV1ToolChoice;\n onFinish?: (result: FinishResult) => void;\n};\n\ntype GetEdgeRuntimeStreamOptions = {\n abortSignal: AbortSignal;\n requestData: z.infer<typeof EdgeRuntimeRequestOptionsSchema>;\n options: CreateEdgeRuntimeAPIOptions;\n};\n\nexport const getEdgeRuntimeStream = async ({\n abortSignal,\n requestData: unsafeRequest,\n options: {\n model: modelOrCreator,\n system: serverSystem,\n tools: serverTools = {},\n toolChoice,\n onFinish,\n ...unsafeSettings\n },\n}: GetEdgeRuntimeStreamOptions) => {\n const settings = LanguageModelV1CallSettingsSchema.parse(unsafeSettings);\n const lmServerTools = toLanguageModelTools(serverTools);\n const hasServerTools = Object.values(serverTools).some((v) => !!v.execute);\n\n const {\n system: clientSystem,\n tools: clientTools = [],\n messages,\n apiKey,\n baseUrl,\n modelName,\n ...callSettings\n } = EdgeRuntimeRequestOptionsSchema.parse(unsafeRequest);\n\n const systemMessages = [];\n if (serverSystem) systemMessages.push(serverSystem);\n if (clientSystem) systemMessages.push(clientSystem);\n const system = systemMessages.join(\"\\n\\n\");\n\n for (const clientTool of clientTools) {\n if (serverTools?.[clientTool.name]) {\n throw new Error(\n `Tool ${clientTool.name} was defined in both the client and server tools. This is not allowed.`,\n );\n }\n }\n\n const model =\n typeof modelOrCreator === \"function\"\n ? await modelOrCreator({ apiKey, baseUrl, modelName })\n : modelOrCreator;\n\n let stream: ReadableStream<AssistantStreamChunk>;\n const streamResult = await streamMessage({\n ...(settings as Partial<StreamMessageOptions>),\n ...callSettings,\n\n model,\n abortSignal,\n\n ...(!!system ? { system } : undefined),\n messages,\n tools: lmServerTools.concat(clientTools as LanguageModelV1FunctionTool[]),\n ...(toolChoice ? { toolChoice } : undefined),\n });\n stream = streamResult.stream.pipeThrough(new LanguageModelV1StreamDecoder());\n\n // add tool results if we have server tools\n const canExecuteTools = hasServerTools && toolChoice?.type !== \"none\";\n if (canExecuteTools) {\n stream = stream.pipeThrough(toolResultStream(serverTools, abortSignal));\n }\n\n if (canExecuteTools || onFinish) {\n // tee the stream to process server tools and onFinish asap\n const tees = stream.tee();\n stream = tees[0];\n let serverStream = tees[1];\n\n if (onFinish) {\n let lastChunk: AssistantMessage | undefined;\n serverStream.pipeThrough(new AssistantMessageAccumulator()).pipeTo(\n new WritableStream({\n write(chunk) {\n lastChunk = chunk;\n },\n close() {\n if (!lastChunk?.status || lastChunk.status.type === \"running\")\n return;\n\n const resultingMessages = [\n ...messages,\n {\n id: \"DEFAULT\",\n createdAt: new Date(),\n role: \"assistant\",\n content: lastChunk.content,\n status: lastChunk.status,\n metadata: lastChunk.metadata,\n } satisfies ThreadMessage,\n ];\n onFinish({\n messages: resultingMessages,\n metadata: {\n steps: lastChunk.metadata.steps,\n },\n });\n },\n abort(e) {\n console.error(\"Server stream processing error:\", e);\n },\n }),\n );\n }\n }\n\n return stream;\n};\n\nexport declare namespace getEdgeRuntimeResponse {\n export type { GetEdgeRuntimeStreamOptions as Options };\n}\n\nexport const getEdgeRuntimeResponse = async (\n options: getEdgeRuntimeResponse.Options,\n) => {\n const stream = await getEdgeRuntimeStream(options);\n return new Response(stream.pipeThrough(new DataStreamEncoder()), {\n headers: {\n \"Content-Type\": \"text/plain; charset=utf-8\",\n \"x-vercel-ai-data-stream\": \"v1\",\n },\n });\n};\n\nexport const createEdgeRuntimeAPI = (options: CreateEdgeRuntimeAPIOptions) => ({\n POST: async (request: Request) =>\n getEdgeRuntimeResponse({\n abortSignal: request.signal,\n requestData: await request.json(),\n options,\n }),\n});\n\ntype StreamMessageOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1;\n system?: string;\n messages: readonly CoreMessage[];\n tools?: LanguageModelV1FunctionTool[];\n toolChoice?: LanguageModelV1ToolChoice;\n abortSignal: AbortSignal;\n};\n\nasync function streamMessage({\n model,\n system,\n messages,\n tools,\n toolChoice,\n ...options\n}: StreamMessageOptions) {\n return model.doStream({\n inputFormat: \"messages\",\n mode: {\n type: \"regular\",\n ...(tools ? { tools } : undefined),\n ...(toolChoice ? { toolChoice } : undefined),\n },\n prompt: convertToLanguageModelPrompt(system, messages),\n ...(options as Partial<LanguageModelV1CallOptions>),\n });\n}\n\nexport function convertToLanguageModelPrompt(\n system: string | undefined,\n messages: readonly CoreMessage[],\n): LanguageModelV1Prompt {\n const languageModelMessages: LanguageModelV1Prompt = [];\n\n if (system != null) {\n languageModelMessages.push({ role: \"system\", content: system });\n }\n languageModelMessages.push(...toLanguageModelMessages(messages));\n\n return languageModelMessages;\n}\n"],"mappings":"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","names":[]}
@@ -1,5 +1,4 @@
1
1
  export * from "./converters";
2
- export * from "./streams/utils";
3
2
  export { useEdgeRuntime, type EdgeRuntimeOptions } from "./useEdgeRuntime";
4
3
  export { EdgeChatAdapter } from "./EdgeChatAdapter";
5
4
  export type { EdgeRuntimeRequestOptions } from "./EdgeRuntimeRequestOptions";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/edge/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/edge/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -26,14 +26,12 @@ __export(edge_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(edge_exports);
28
28
  __reExport(edge_exports, require("./converters/index.js"), module.exports);
29
- __reExport(edge_exports, require("./streams/utils/index.js"), module.exports);
30
29
  var import_useEdgeRuntime = require("./useEdgeRuntime.js");
31
30
  var import_EdgeChatAdapter = require("./EdgeChatAdapter.js");
32
31
  // Annotate the CommonJS export names for ESM import in node:
33
32
  0 && (module.exports = {
34
33
  EdgeChatAdapter,
35
34
  useEdgeRuntime,
36
- ...require("./converters/index.js"),
37
- ...require("./streams/utils/index.js")
35
+ ...require("./converters/index.js")
38
36
  });
39
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/index.ts"],"sourcesContent":["export * from \"./converters\";\n\nexport * from \"./streams/utils\";\n\nexport { useEdgeRuntime, type EdgeRuntimeOptions } from \"./useEdgeRuntime\";\nexport { EdgeChatAdapter } from \"./EdgeChatAdapter\";\nexport type { EdgeRuntimeRequestOptions } from \"./EdgeRuntimeRequestOptions\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAc,kCAAd;AAEA,yBAAc,qCAFd;AAIA,4BAAwD;AACxD,6BAAgC;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/edge/index.ts"],"sourcesContent":["export * from \"./converters\";\n\nexport { useEdgeRuntime, type EdgeRuntimeOptions } from \"./useEdgeRuntime\";\nexport { EdgeChatAdapter } from \"./EdgeChatAdapter\";\nexport type { EdgeRuntimeRequestOptions } from \"./EdgeRuntimeRequestOptions\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAc,kCAAd;AAEA,4BAAwD;AACxD,6BAAgC;","names":[]}
@@ -1,6 +1,5 @@
1
1
  // src/runtimes/edge/index.ts
2
2
  export * from "./converters/index.mjs";
3
- export * from "./streams/utils/index.mjs";
4
3
  import { useEdgeRuntime } from "./useEdgeRuntime.mjs";
5
4
  import { EdgeChatAdapter } from "./EdgeChatAdapter.mjs";
6
5
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/index.ts"],"sourcesContent":["export * from \"./converters\";\n\nexport * from \"./streams/utils\";\n\nexport { useEdgeRuntime, type EdgeRuntimeOptions } from \"./useEdgeRuntime\";\nexport { EdgeChatAdapter } from \"./EdgeChatAdapter\";\nexport type { EdgeRuntimeRequestOptions } from \"./EdgeRuntimeRequestOptions\";\n"],"mappings":";AAAA,cAAc;AAEd,cAAc;AAEd,SAAS,sBAA+C;AACxD,SAAS,uBAAuB;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/edge/index.ts"],"sourcesContent":["export * from \"./converters\";\n\nexport { useEdgeRuntime, type EdgeRuntimeOptions } from \"./useEdgeRuntime\";\nexport { EdgeChatAdapter } from \"./EdgeChatAdapter\";\nexport type { EdgeRuntimeRequestOptions } from \"./EdgeRuntimeRequestOptions\";\n"],"mappings":";AAAA,cAAc;AAEd,SAAS,sBAA+C;AACxD,SAAS,uBAAuB;","names":[]}
@@ -1,35 +1,4 @@
1
1
  import { Tool } from "../../../model-context/ModelContextTypes";
2
- import { LanguageModelV1StreamPart } from "@ai-sdk/provider";
3
- import { ReadonlyJSONValue } from "../../../utils/json/json-value";
4
- export type ToolResultStreamPart = LanguageModelV1StreamPart | {
5
- type: "annotations";
6
- annotations: ReadonlyJSONValue[];
7
- } | {
8
- type: "data";
9
- data: ReadonlyJSONValue[];
10
- } | {
11
- type: "source";
12
- source: {
13
- readonly sourceType: "url";
14
- readonly id: string;
15
- readonly url: string;
16
- readonly title?: string;
17
- };
18
- } | {
19
- type: "tool-result";
20
- toolCallType: "function";
21
- toolCallId: string;
22
- toolName: string;
23
- result: unknown;
24
- isError?: boolean;
25
- } | {
26
- type: "step-finish";
27
- finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
28
- usage: {
29
- promptTokens: number;
30
- completionTokens: number;
31
- };
32
- isContinued: boolean;
33
- };
34
- export declare function toolResultStream(tools: Record<string, Tool<any, any>> | undefined, abortSignal: AbortSignal): TransformStream<ToolResultStreamPart, ToolResultStreamPart>;
2
+ import { ToolExecutionStream } from "assistant-stream";
3
+ export declare function toolResultStream(tools: Record<string, Tool<any, any>> | undefined, abortSignal: AbortSignal): ToolExecutionStream;
35
4
  //# sourceMappingURL=toolResultStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolResultStream.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/edge/streams/toolResultStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,MAAM,MAAM,oBAAoB,GAC5B,yBAAyB,GACzB;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAClC,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,EAAE,CAAC;CAC3B,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;QAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,YAAY,EACR,MAAM,GACN,QAAQ,GACR,gBAAgB,GAChB,YAAY,GACZ,OAAO,GACP,OAAO,GACP,SAAS,CAAC;IACd,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEN,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,+DA8GzB"}
1
+ {"version":3,"file":"toolResultStream.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/edge/streams/toolResultStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,0CAA0C,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,uBAgCzB"}
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,14 +15,6 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
 
30
20
  // src/runtimes/edge/streams/toolResultStream.ts
@@ -34,95 +24,28 @@ __export(toolResultStream_exports, {
34
24
  });
35
25
  module.exports = __toCommonJS(toolResultStream_exports);
36
26
  var import_zod = require("zod");
37
- var import_secure_json_parse = __toESM(require("secure-json-parse"));
27
+ var import_assistant_stream = require("assistant-stream");
38
28
  function toolResultStream(tools, abortSignal) {
39
- const toolCallExecutions = /* @__PURE__ */ new Map();
40
- return new TransformStream({
41
- transform(chunk, controller) {
42
- controller.enqueue(chunk);
43
- const chunkType = chunk.type;
44
- switch (chunkType) {
45
- case "tool-call": {
46
- const { toolCallId, toolCallType, toolName, args: argsText } = chunk;
47
- const tool = tools?.[toolName];
48
- if (!tool || !tool.execute) return;
49
- let args;
50
- try {
51
- args = import_secure_json_parse.default.parse(argsText);
52
- } catch (e) {
53
- controller.enqueue({
54
- type: "tool-result",
55
- toolCallType,
56
- toolCallId,
57
- toolName,
58
- result: "Function parameter parsing failed. " + JSON.stringify(e.message),
59
- isError: true
60
- });
61
- return;
62
- }
63
- toolCallExecutions.set(
64
- toolCallId,
65
- (async () => {
66
- if (!tool.execute) return;
67
- let executeFn = tool.execute;
68
- if (tool.parameters instanceof import_zod.z.ZodType) {
69
- const result = tool.parameters.safeParse(args);
70
- if (!result.success) {
71
- executeFn = tool.experimental_onSchemaValidationError ?? (() => {
72
- throw "Function parameter validation failed. " + JSON.stringify(result.error.issues);
73
- });
74
- }
75
- }
76
- try {
77
- const result = await executeFn(args, {
78
- toolCallId,
79
- abortSignal
80
- });
81
- controller.enqueue({
82
- type: "tool-result",
83
- toolCallType,
84
- toolCallId,
85
- toolName,
86
- result: result === void 0 ? "<no result>" : result
87
- });
88
- } catch (error) {
89
- controller.enqueue({
90
- type: "tool-result",
91
- toolCallType,
92
- toolCallId,
93
- toolName,
94
- result: "Error: " + error,
95
- isError: true
96
- });
97
- } finally {
98
- toolCallExecutions.delete(toolCallId);
99
- }
100
- })()
101
- );
102
- break;
103
- }
104
- // ignore other parts
105
- case "text-delta":
106
- case "reasoning":
107
- case "source":
108
- case "tool-call-delta":
109
- case "tool-result":
110
- case "step-finish":
111
- case "finish":
112
- case "error":
113
- case "response-metadata":
114
- case "annotations":
115
- case "data":
116
- break;
117
- default: {
118
- const unhandledType = chunkType;
119
- throw new Error(`Unhandled chunk type: ${unhandledType}`);
120
- }
29
+ return new import_assistant_stream.ToolExecutionStream(({ toolCallId, toolName, args }) => {
30
+ const tool = tools?.[toolName];
31
+ if (!tool || !tool.execute) return void 0;
32
+ let executeFn = tool.execute;
33
+ if (tool.parameters instanceof import_zod.z.ZodType) {
34
+ const result = tool.parameters.safeParse(args);
35
+ if (!result.success) {
36
+ executeFn = tool.experimental_onSchemaValidationError ?? (() => {
37
+ throw "Function parameter validation failed. " + JSON.stringify(result.error.issues);
38
+ });
121
39
  }
122
- },
123
- async flush() {
124
- await Promise.all(toolCallExecutions.values());
125
40
  }
41
+ const getResult = async () => {
42
+ const result = await executeFn(args, {
43
+ toolCallId,
44
+ abortSignal
45
+ });
46
+ return result === void 0 ? "<no result>" : result;
47
+ };
48
+ return getResult();
126
49
  });
127
50
  }
128
51
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/edge/streams/toolResultStream.ts"],"sourcesContent":["import { Tool } from \"../../../model-context/ModelContextTypes\";\nimport { LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\nimport { z } from \"zod\";\nimport sjson from \"secure-json-parse\";\nimport { ReadonlyJSONValue } from \"../../../utils/json/json-value\";\n\nexport type ToolResultStreamPart =\n | LanguageModelV1StreamPart\n | {\n type: \"annotations\";\n annotations: ReadonlyJSONValue[];\n }\n | {\n type: \"data\";\n data: ReadonlyJSONValue[];\n }\n | {\n type: \"source\";\n source: {\n readonly sourceType: \"url\";\n readonly id: string;\n readonly url: string;\n readonly title?: string;\n };\n }\n | {\n type: \"tool-result\";\n toolCallType: \"function\";\n toolCallId: string;\n toolName: string;\n result: unknown;\n isError?: boolean;\n }\n | {\n type: \"step-finish\";\n finishReason:\n | \"stop\"\n | \"length\"\n | \"content-filter\"\n | \"tool-calls\"\n | \"error\"\n | \"other\"\n | \"unknown\";\n usage: {\n promptTokens: number;\n completionTokens: number;\n };\n isContinued: boolean;\n };\n\nexport function toolResultStream(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n const toolCallExecutions = new Map<string, Promise<any>>();\n\n return new TransformStream<ToolResultStreamPart, ToolResultStreamPart>({\n transform(chunk, controller) {\n // forward everything\n controller.enqueue(chunk);\n\n // handle tool calls\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"tool-call\": {\n const { toolCallId, toolCallType, toolName, args: argsText } = chunk;\n const tool = tools?.[toolName];\n if (!tool || !tool.execute) return;\n\n let args;\n try {\n args = sjson.parse(argsText);\n } catch (e) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType,\n toolCallId,\n toolName,\n result:\n \"Function parameter parsing failed. \" +\n JSON.stringify((e as Error).message),\n isError: true,\n });\n return;\n }\n\n toolCallExecutions.set(\n toolCallId,\n (async () => {\n if (!tool.execute) return;\n\n let executeFn = tool.execute;\n\n if (tool.parameters instanceof z.ZodType) {\n const result = tool.parameters.safeParse(args);\n if (!result.success) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw (\n \"Function parameter validation failed. \" +\n JSON.stringify(result.error.issues)\n );\n });\n }\n }\n\n try {\n const result = await executeFn(args, {\n toolCallId,\n abortSignal,\n });\n\n controller.enqueue({\n type: \"tool-result\",\n toolCallType,\n toolCallId,\n toolName,\n result: result === undefined ? \"<no result>\" : result,\n });\n } catch (error) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType,\n toolCallId,\n toolName,\n result: \"Error: \" + error,\n isError: true,\n });\n } finally {\n toolCallExecutions.delete(toolCallId);\n }\n })(),\n );\n break;\n }\n\n // ignore other parts\n case \"text-delta\":\n case \"reasoning\":\n case \"source\":\n case \"tool-call-delta\":\n case \"tool-result\":\n case \"step-finish\":\n case \"finish\":\n case \"error\":\n case \"response-metadata\":\n case \"annotations\":\n case \"data\":\n break;\n\n default: {\n const unhandledType: never = chunkType;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n\n async flush() {\n await Promise.all(toolCallExecutions.values());\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,iBAAkB;AAClB,+BAAkB;AA+CX,SAAS,iBACd,OACA,aACA;AACA,QAAM,qBAAqB,oBAAI,IAA0B;AAEzD,SAAO,IAAI,gBAA4D;AAAA,IACrE,UAAU,OAAO,YAAY;AAE3B,iBAAW,QAAQ,KAAK;AAGxB,YAAM,YAAY,MAAM;AACxB,cAAQ,WAAW;AAAA,QACjB,KAAK,aAAa;AAChB,gBAAM,EAAE,YAAY,cAAc,UAAU,MAAM,SAAS,IAAI;AAC/D,gBAAM,OAAO,QAAQ,QAAQ;AAC7B,cAAI,CAAC,QAAQ,CAAC,KAAK,QAAS;AAE5B,cAAI;AACJ,cAAI;AACF,mBAAO,yBAAAA,QAAM,MAAM,QAAQ;AAAA,UAC7B,SAAS,GAAG;AACV,uBAAW,QAAQ;AAAA,cACjB,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA;AAAA,cACA,QACE,wCACA,KAAK,UAAW,EAAY,OAAO;AAAA,cACrC,SAAS;AAAA,YACX,CAAC;AACD;AAAA,UACF;AAEA,6BAAmB;AAAA,YACjB;AAAA,aACC,YAAY;AACX,kBAAI,CAAC,KAAK,QAAS;AAEnB,kBAAI,YAAY,KAAK;AAErB,kBAAI,KAAK,sBAAsB,aAAE,SAAS;AACxC,sBAAM,SAAS,KAAK,WAAW,UAAU,IAAI;AAC7C,oBAAI,CAAC,OAAO,SAAS;AACnB,8BACE,KAAK,yCACJ,MAAM;AACL,0BACE,2CACA,KAAK,UAAU,OAAO,MAAM,MAAM;AAAA,kBAEtC;AAAA,gBACJ;AAAA,cACF;AAEA,kBAAI;AACF,sBAAM,SAAS,MAAM,UAAU,MAAM;AAAA,kBACnC;AAAA,kBACA;AAAA,gBACF,CAAC;AAED,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,QAAQ,WAAW,SAAY,gBAAgB;AAAA,gBACjD,CAAC;AAAA,cACH,SAAS,OAAO;AACd,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,QAAQ,YAAY;AAAA,kBACpB,SAAS;AAAA,gBACX,CAAC;AAAA,cACH,UAAE;AACA,mCAAmB,OAAO,UAAU;AAAA,cACtC;AAAA,YACF,GAAG;AAAA,UACL;AACA;AAAA,QACF;AAAA;AAAA,QAGA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QAEF,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM,QAAQ;AACZ,YAAM,QAAQ,IAAI,mBAAmB,OAAO,CAAC;AAAA,IAC/C;AAAA,EACF,CAAC;AACH;","names":["sjson"]}
1
+ {"version":3,"sources":["../../../../src/runtimes/edge/streams/toolResultStream.ts"],"sourcesContent":["import { Tool } from \"../../../model-context/ModelContextTypes\";\nimport { z } from \"zod\";\nimport { ToolExecutionStream } from \"assistant-stream\";\n\nexport function toolResultStream(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n return new ToolExecutionStream(({ toolCallId, toolName, args }) => {\n const tool = tools?.[toolName];\n if (!tool || !tool.execute) return undefined;\n\n let executeFn = tool.execute;\n\n if (tool.parameters instanceof z.ZodType) {\n const result = tool.parameters.safeParse(args);\n if (!result.success) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw (\n \"Function parameter validation failed. \" +\n JSON.stringify(result.error.issues)\n );\n });\n }\n }\n\n const getResult = async () => {\n const result = await executeFn(args, {\n toolCallId,\n abortSignal,\n });\n return result === undefined ? \"<no result>\" : result;\n };\n\n return getResult();\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAkB;AAClB,8BAAoC;AAE7B,SAAS,iBACd,OACA,aACA;AACA,SAAO,IAAI,4CAAoB,CAAC,EAAE,YAAY,UAAU,KAAK,MAAM;AACjE,UAAM,OAAO,QAAQ,QAAQ;AAC7B,QAAI,CAAC,QAAQ,CAAC,KAAK,QAAS,QAAO;AAEnC,QAAI,YAAY,KAAK;AAErB,QAAI,KAAK,sBAAsB,aAAE,SAAS;AACxC,YAAM,SAAS,KAAK,WAAW,UAAU,IAAI;AAC7C,UAAI,CAAC,OAAO,SAAS;AACnB,oBACE,KAAK,yCACJ,MAAM;AACL,gBACE,2CACA,KAAK,UAAU,OAAO,MAAM,MAAM;AAAA,QAEtC;AAAA,MACJ;AAAA,IACF;AAEA,UAAM,YAAY,YAAY;AAC5B,YAAM,SAAS,MAAM,UAAU,MAAM;AAAA,QACnC;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO,WAAW,SAAY,gBAAgB;AAAA,IAChD;AAEA,WAAO,UAAU;AAAA,EACnB,CAAC;AACH;","names":[]}
@@ -1,94 +1,27 @@
1
1
  // src/runtimes/edge/streams/toolResultStream.ts
2
2
  import { z } from "zod";
3
- import sjson from "secure-json-parse";
3
+ import { ToolExecutionStream } from "assistant-stream";
4
4
  function toolResultStream(tools, abortSignal) {
5
- const toolCallExecutions = /* @__PURE__ */ new Map();
6
- return new TransformStream({
7
- transform(chunk, controller) {
8
- controller.enqueue(chunk);
9
- const chunkType = chunk.type;
10
- switch (chunkType) {
11
- case "tool-call": {
12
- const { toolCallId, toolCallType, toolName, args: argsText } = chunk;
13
- const tool = tools?.[toolName];
14
- if (!tool || !tool.execute) return;
15
- let args;
16
- try {
17
- args = sjson.parse(argsText);
18
- } catch (e) {
19
- controller.enqueue({
20
- type: "tool-result",
21
- toolCallType,
22
- toolCallId,
23
- toolName,
24
- result: "Function parameter parsing failed. " + JSON.stringify(e.message),
25
- isError: true
26
- });
27
- return;
28
- }
29
- toolCallExecutions.set(
30
- toolCallId,
31
- (async () => {
32
- if (!tool.execute) return;
33
- let executeFn = tool.execute;
34
- if (tool.parameters instanceof z.ZodType) {
35
- const result = tool.parameters.safeParse(args);
36
- if (!result.success) {
37
- executeFn = tool.experimental_onSchemaValidationError ?? (() => {
38
- throw "Function parameter validation failed. " + JSON.stringify(result.error.issues);
39
- });
40
- }
41
- }
42
- try {
43
- const result = await executeFn(args, {
44
- toolCallId,
45
- abortSignal
46
- });
47
- controller.enqueue({
48
- type: "tool-result",
49
- toolCallType,
50
- toolCallId,
51
- toolName,
52
- result: result === void 0 ? "<no result>" : result
53
- });
54
- } catch (error) {
55
- controller.enqueue({
56
- type: "tool-result",
57
- toolCallType,
58
- toolCallId,
59
- toolName,
60
- result: "Error: " + error,
61
- isError: true
62
- });
63
- } finally {
64
- toolCallExecutions.delete(toolCallId);
65
- }
66
- })()
67
- );
68
- break;
69
- }
70
- // ignore other parts
71
- case "text-delta":
72
- case "reasoning":
73
- case "source":
74
- case "tool-call-delta":
75
- case "tool-result":
76
- case "step-finish":
77
- case "finish":
78
- case "error":
79
- case "response-metadata":
80
- case "annotations":
81
- case "data":
82
- break;
83
- default: {
84
- const unhandledType = chunkType;
85
- throw new Error(`Unhandled chunk type: ${unhandledType}`);
86
- }
5
+ return new ToolExecutionStream(({ toolCallId, toolName, args }) => {
6
+ const tool = tools?.[toolName];
7
+ if (!tool || !tool.execute) return void 0;
8
+ let executeFn = tool.execute;
9
+ if (tool.parameters instanceof z.ZodType) {
10
+ const result = tool.parameters.safeParse(args);
11
+ if (!result.success) {
12
+ executeFn = tool.experimental_onSchemaValidationError ?? (() => {
13
+ throw "Function parameter validation failed. " + JSON.stringify(result.error.issues);
14
+ });
87
15
  }
88
- },
89
- async flush() {
90
- await Promise.all(toolCallExecutions.values());
91
16
  }
17
+ const getResult = async () => {
18
+ const result = await executeFn(args, {
19
+ toolCallId,
20
+ abortSignal
21
+ });
22
+ return result === void 0 ? "<no result>" : result;
23
+ };
24
+ return getResult();
92
25
  });
93
26
  }
94
27
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/edge/streams/toolResultStream.ts"],"sourcesContent":["import { Tool } from \"../../../model-context/ModelContextTypes\";\nimport { LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\nimport { z } from \"zod\";\nimport sjson from \"secure-json-parse\";\nimport { ReadonlyJSONValue } from \"../../../utils/json/json-value\";\n\nexport type ToolResultStreamPart =\n | LanguageModelV1StreamPart\n | {\n type: \"annotations\";\n annotations: ReadonlyJSONValue[];\n }\n | {\n type: \"data\";\n data: ReadonlyJSONValue[];\n }\n | {\n type: \"source\";\n source: {\n readonly sourceType: \"url\";\n readonly id: string;\n readonly url: string;\n readonly title?: string;\n };\n }\n | {\n type: \"tool-result\";\n toolCallType: \"function\";\n toolCallId: string;\n toolName: string;\n result: unknown;\n isError?: boolean;\n }\n | {\n type: \"step-finish\";\n finishReason:\n | \"stop\"\n | \"length\"\n | \"content-filter\"\n | \"tool-calls\"\n | \"error\"\n | \"other\"\n | \"unknown\";\n usage: {\n promptTokens: number;\n completionTokens: number;\n };\n isContinued: boolean;\n };\n\nexport function toolResultStream(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n const toolCallExecutions = new Map<string, Promise<any>>();\n\n return new TransformStream<ToolResultStreamPart, ToolResultStreamPart>({\n transform(chunk, controller) {\n // forward everything\n controller.enqueue(chunk);\n\n // handle tool calls\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"tool-call\": {\n const { toolCallId, toolCallType, toolName, args: argsText } = chunk;\n const tool = tools?.[toolName];\n if (!tool || !tool.execute) return;\n\n let args;\n try {\n args = sjson.parse(argsText);\n } catch (e) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType,\n toolCallId,\n toolName,\n result:\n \"Function parameter parsing failed. \" +\n JSON.stringify((e as Error).message),\n isError: true,\n });\n return;\n }\n\n toolCallExecutions.set(\n toolCallId,\n (async () => {\n if (!tool.execute) return;\n\n let executeFn = tool.execute;\n\n if (tool.parameters instanceof z.ZodType) {\n const result = tool.parameters.safeParse(args);\n if (!result.success) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw (\n \"Function parameter validation failed. \" +\n JSON.stringify(result.error.issues)\n );\n });\n }\n }\n\n try {\n const result = await executeFn(args, {\n toolCallId,\n abortSignal,\n });\n\n controller.enqueue({\n type: \"tool-result\",\n toolCallType,\n toolCallId,\n toolName,\n result: result === undefined ? \"<no result>\" : result,\n });\n } catch (error) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType,\n toolCallId,\n toolName,\n result: \"Error: \" + error,\n isError: true,\n });\n } finally {\n toolCallExecutions.delete(toolCallId);\n }\n })(),\n );\n break;\n }\n\n // ignore other parts\n case \"text-delta\":\n case \"reasoning\":\n case \"source\":\n case \"tool-call-delta\":\n case \"tool-result\":\n case \"step-finish\":\n case \"finish\":\n case \"error\":\n case \"response-metadata\":\n case \"annotations\":\n case \"data\":\n break;\n\n default: {\n const unhandledType: never = chunkType;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n\n async flush() {\n await Promise.all(toolCallExecutions.values());\n },\n });\n}\n"],"mappings":";AAEA,SAAS,SAAS;AAClB,OAAO,WAAW;AA+CX,SAAS,iBACd,OACA,aACA;AACA,QAAM,qBAAqB,oBAAI,IAA0B;AAEzD,SAAO,IAAI,gBAA4D;AAAA,IACrE,UAAU,OAAO,YAAY;AAE3B,iBAAW,QAAQ,KAAK;AAGxB,YAAM,YAAY,MAAM;AACxB,cAAQ,WAAW;AAAA,QACjB,KAAK,aAAa;AAChB,gBAAM,EAAE,YAAY,cAAc,UAAU,MAAM,SAAS,IAAI;AAC/D,gBAAM,OAAO,QAAQ,QAAQ;AAC7B,cAAI,CAAC,QAAQ,CAAC,KAAK,QAAS;AAE5B,cAAI;AACJ,cAAI;AACF,mBAAO,MAAM,MAAM,QAAQ;AAAA,UAC7B,SAAS,GAAG;AACV,uBAAW,QAAQ;AAAA,cACjB,MAAM;AAAA,cACN;AAAA,cACA;AAAA,cACA;AAAA,cACA,QACE,wCACA,KAAK,UAAW,EAAY,OAAO;AAAA,cACrC,SAAS;AAAA,YACX,CAAC;AACD;AAAA,UACF;AAEA,6BAAmB;AAAA,YACjB;AAAA,aACC,YAAY;AACX,kBAAI,CAAC,KAAK,QAAS;AAEnB,kBAAI,YAAY,KAAK;AAErB,kBAAI,KAAK,sBAAsB,EAAE,SAAS;AACxC,sBAAM,SAAS,KAAK,WAAW,UAAU,IAAI;AAC7C,oBAAI,CAAC,OAAO,SAAS;AACnB,8BACE,KAAK,yCACJ,MAAM;AACL,0BACE,2CACA,KAAK,UAAU,OAAO,MAAM,MAAM;AAAA,kBAEtC;AAAA,gBACJ;AAAA,cACF;AAEA,kBAAI;AACF,sBAAM,SAAS,MAAM,UAAU,MAAM;AAAA,kBACnC;AAAA,kBACA;AAAA,gBACF,CAAC;AAED,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,QAAQ,WAAW,SAAY,gBAAgB;AAAA,gBACjD,CAAC;AAAA,cACH,SAAS,OAAO;AACd,2BAAW,QAAQ;AAAA,kBACjB,MAAM;AAAA,kBACN;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,QAAQ,YAAY;AAAA,kBACpB,SAAS;AAAA,gBACX,CAAC;AAAA,cACH,UAAE;AACA,mCAAmB,OAAO,UAAU;AAAA,cACtC;AAAA,YACF,GAAG;AAAA,UACL;AACA;AAAA,QACF;AAAA;AAAA,QAGA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH;AAAA,QAEF,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,IAEA,MAAM,QAAQ;AACZ,YAAM,QAAQ,IAAI,mBAAmB,OAAO,CAAC;AAAA,IAC/C;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/edge/streams/toolResultStream.ts"],"sourcesContent":["import { Tool } from \"../../../model-context/ModelContextTypes\";\nimport { z } from \"zod\";\nimport { ToolExecutionStream } from \"assistant-stream\";\n\nexport function toolResultStream(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n return new ToolExecutionStream(({ toolCallId, toolName, args }) => {\n const tool = tools?.[toolName];\n if (!tool || !tool.execute) return undefined;\n\n let executeFn = tool.execute;\n\n if (tool.parameters instanceof z.ZodType) {\n const result = tool.parameters.safeParse(args);\n if (!result.success) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw (\n \"Function parameter validation failed. \" +\n JSON.stringify(result.error.issues)\n );\n });\n }\n }\n\n const getResult = async () => {\n const result = await executeFn(args, {\n toolCallId,\n abortSignal,\n });\n return result === undefined ? \"<no result>\" : result;\n };\n\n return getResult();\n });\n}\n"],"mappings":";AACA,SAAS,SAAS;AAClB,SAAS,2BAA2B;AAE7B,SAAS,iBACd,OACA,aACA;AACA,SAAO,IAAI,oBAAoB,CAAC,EAAE,YAAY,UAAU,KAAK,MAAM;AACjE,UAAM,OAAO,QAAQ,QAAQ;AAC7B,QAAI,CAAC,QAAQ,CAAC,KAAK,QAAS,QAAO;AAEnC,QAAI,YAAY,KAAK;AAErB,QAAI,KAAK,sBAAsB,EAAE,SAAS;AACxC,YAAM,SAAS,KAAK,WAAW,UAAU,IAAI;AAC7C,UAAI,CAAC,OAAO,SAAS;AACnB,oBACE,KAAK,yCACJ,MAAM;AACL,gBACE,2CACA,KAAK,UAAU,OAAO,MAAM,MAAM;AAAA,QAEtC;AAAA,MACJ;AAAA,IACF;AAEA,UAAM,YAAY,YAAY;AAC5B,YAAM,SAAS,MAAM,UAAU,MAAM;AAAA,QACnC;AAAA,QACA;AAAA,MACF,CAAC;AACD,aAAO,WAAW,SAAY,gBAAgB;AAAA,IAChD;AAEA,WAAO,UAAU;AAAA,EACnB,CAAC;AACH;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadMessageLike.d.ts","sourceRoot":"","sources":["../../../src/runtimes/external-store/ThreadMessageLike.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EAMb,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,OAAO,EACZ,MAAM,GACN,SAAS,CACL,eAAe,GACf,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,yBAAyB,GACzB;QACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;QAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACxC,CACJ,EAAE,CAAC;IACR,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,QAAQ,CAAC,EACd;QACE,QAAQ,CAAC,oBAAoB,CAAC,EAC1B,SAAS,iBAAiB,EAAE,GAC5B,SAAS,CAAC;QACd,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;QAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;KACvD,GACD,SAAS,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,iBAAiB,EACvB,YAAY,MAAM,EAClB,gBAAgB,aAAa,KAC5B,aAwHF,CAAC"}
1
+ {"version":3,"file":"ThreadMessageLike.d.ts","sourceRoot":"","sources":["../../../src/runtimes/external-store/ThreadMessageLike.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EAMb,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,OAAO,EACZ,MAAM,GACN,SAAS,CACL,eAAe,GACf,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,yBAAyB,GACzB;QACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;QAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACxC,CACJ,EAAE,CAAC;IACR,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,QAAQ,CAAC,EACd;QACE,QAAQ,CAAC,oBAAoB,CAAC,EAC1B,SAAS,iBAAiB,EAAE,GAC5B,SAAS,CAAC;QACd,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;QAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;KACvD,GACD,SAAS,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,iBAAiB,EACvB,YAAY,MAAM,EAClB,gBAAgB,aAAa,KAC5B,aAyHF,CAAC"}