@assistant-ui/react 0.8.20 → 0.9.1

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 (221) hide show
  1. package/dist/api/ThreadRuntime.d.ts.map +1 -1
  2. package/dist/api/ThreadRuntime.js +3 -1
  3. package/dist/api/ThreadRuntime.js.map +1 -1
  4. package/dist/api/ThreadRuntime.mjs +3 -1
  5. package/dist/api/ThreadRuntime.mjs.map +1 -1
  6. package/dist/cloud/AssistantCloudRuns.d.ts +2 -2
  7. package/dist/cloud/AssistantCloudRuns.d.ts.map +1 -1
  8. package/dist/cloud/AssistantCloudRuns.js.map +1 -1
  9. package/dist/cloud/AssistantCloudRuns.mjs.map +1 -1
  10. package/dist/cloud/auiV0.d.ts +1 -2
  11. package/dist/cloud/auiV0.d.ts.map +1 -1
  12. package/dist/cloud/auiV0.js.map +1 -1
  13. package/dist/cloud/auiV0.mjs.map +1 -1
  14. package/dist/context/react/AttachmentContext.d.ts +108 -108
  15. package/dist/index.d.ts +0 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -4
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +1 -3
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/internal.d.ts +1 -1
  22. package/dist/internal.d.ts.map +1 -1
  23. package/dist/internal.js +4 -4
  24. package/dist/internal.js.map +1 -1
  25. package/dist/internal.mjs +3 -3
  26. package/dist/internal.mjs.map +1 -1
  27. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -1
  28. package/dist/primitives/assistantModal/AssistantModalRoot.js +5 -2
  29. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  30. package/dist/primitives/assistantModal/AssistantModalRoot.mjs +5 -2
  31. package/dist/primitives/assistantModal/AssistantModalRoot.mjs.map +1 -1
  32. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts +1 -1
  33. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
  34. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +3 -1
  35. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
  36. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs +3 -1
  37. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs.map +1 -1
  38. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
  39. package/dist/runtimes/external-store/ThreadMessageLike.js +2 -2
  40. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  41. package/dist/runtimes/external-store/ThreadMessageLike.mjs +1 -1
  42. package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
  43. package/dist/runtimes/index.d.ts +1 -2
  44. package/dist/runtimes/index.d.ts.map +1 -1
  45. package/dist/runtimes/index.js +6 -5
  46. package/dist/runtimes/index.js.map +1 -1
  47. package/dist/runtimes/index.mjs +7 -3
  48. package/dist/runtimes/index.mjs.map +1 -1
  49. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  50. package/dist/runtimes/local/LocalThreadRuntimeCore.js +3 -3
  51. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  52. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +4 -4
  53. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
  54. package/dist/runtimes/remote-thread-list/adapter/cloud.d.ts.map +1 -1
  55. package/dist/runtimes/remote-thread-list/adapter/cloud.js +2 -2
  56. package/dist/runtimes/remote-thread-list/adapter/cloud.js.map +1 -1
  57. package/dist/runtimes/remote-thread-list/adapter/cloud.mjs +2 -2
  58. package/dist/runtimes/remote-thread-list/adapter/cloud.mjs.map +1 -1
  59. package/dist/runtimes/{edge/streams → streams}/toolResultStream.d.ts +1 -1
  60. package/dist/runtimes/streams/toolResultStream.d.ts.map +1 -0
  61. package/dist/runtimes/{edge/streams → streams}/toolResultStream.js +1 -1
  62. package/dist/runtimes/streams/toolResultStream.js.map +1 -0
  63. package/dist/runtimes/{edge/streams → streams}/toolResultStream.mjs +1 -1
  64. package/dist/runtimes/streams/toolResultStream.mjs.map +1 -0
  65. package/dist/runtimes/utils/MessageRepository.d.ts +2 -2
  66. package/dist/runtimes/utils/MessageRepository.d.ts.map +1 -1
  67. package/dist/runtimes/utils/MessageRepository.js +1 -5
  68. package/dist/runtimes/utils/MessageRepository.js.map +1 -1
  69. package/dist/runtimes/utils/MessageRepository.mjs +1 -5
  70. package/dist/runtimes/utils/MessageRepository.mjs.map +1 -1
  71. package/dist/types/AssistantTypes.d.ts +3 -60
  72. package/dist/types/AssistantTypes.d.ts.map +1 -1
  73. package/dist/types/AssistantTypes.js.map +1 -1
  74. package/dist/types/AttachmentTypes.d.ts +3 -3
  75. package/dist/types/AttachmentTypes.d.ts.map +1 -1
  76. package/dist/types/AttachmentTypes.js.map +1 -1
  77. package/dist/types/index.d.ts +1 -1
  78. package/dist/types/index.d.ts.map +1 -1
  79. package/dist/types/index.js.map +1 -1
  80. package/package.json +11 -17
  81. package/src/api/ThreadRuntime.ts +2 -0
  82. package/src/cloud/AssistantCloudRuns.tsx +2 -2
  83. package/src/cloud/auiV0.ts +1 -2
  84. package/src/index.ts +0 -2
  85. package/src/internal.ts +1 -1
  86. package/src/primitives/assistantModal/AssistantModalRoot.tsx +6 -2
  87. package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +2 -0
  88. package/src/runtimes/external-store/ThreadMessageLike.tsx +1 -1
  89. package/src/runtimes/index.ts +4 -2
  90. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +4 -4
  91. package/src/runtimes/remote-thread-list/adapter/cloud.tsx +1 -2
  92. package/src/runtimes/{edge/streams → streams}/toolResultStream.ts +1 -1
  93. package/src/runtimes/utils/MessageRepository.tsx +3 -7
  94. package/src/tests/MessageRepository.test.ts +7 -10
  95. package/src/types/AssistantTypes.ts +3 -81
  96. package/src/types/AttachmentTypes.ts +3 -3
  97. package/src/types/index.ts +0 -9
  98. package/dist/edge.d.ts +0 -2
  99. package/dist/edge.d.ts.map +0 -1
  100. package/dist/edge.js +0 -33
  101. package/dist/edge.js.map +0 -1
  102. package/dist/edge.mjs +0 -10
  103. package/dist/edge.mjs.map +0 -1
  104. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.d.ts +0 -9
  105. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.d.ts.map +0 -1
  106. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js +0 -58
  107. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js.map +0 -1
  108. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs +0 -35
  109. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs.map +0 -1
  110. package/dist/runtimes/dangerous-in-browser/index.d.ts +0 -2
  111. package/dist/runtimes/dangerous-in-browser/index.d.ts.map +0 -1
  112. package/dist/runtimes/dangerous-in-browser/index.js +0 -31
  113. package/dist/runtimes/dangerous-in-browser/index.js.map +0 -1
  114. package/dist/runtimes/dangerous-in-browser/index.mjs +0 -8
  115. package/dist/runtimes/dangerous-in-browser/index.mjs.map +0 -1
  116. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts +0 -5
  117. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts.map +0 -1
  118. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js +0 -40
  119. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js.map +0 -1
  120. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs +0 -18
  121. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs.map +0 -1
  122. package/dist/runtimes/edge/EdgeModelAdapter.d.ts +0 -48
  123. package/dist/runtimes/edge/EdgeModelAdapter.d.ts.map +0 -1
  124. package/dist/runtimes/edge/EdgeModelAdapter.js +0 -127
  125. package/dist/runtimes/edge/EdgeModelAdapter.js.map +0 -1
  126. package/dist/runtimes/edge/EdgeModelAdapter.mjs +0 -94
  127. package/dist/runtimes/edge/EdgeModelAdapter.mjs.map +0 -1
  128. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts +0 -345
  129. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts.map +0 -1
  130. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +0 -106
  131. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js.map +0 -1
  132. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs +0 -84
  133. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs.map +0 -1
  134. package/dist/runtimes/edge/converters/fromCoreMessage.d.ts +0 -8
  135. package/dist/runtimes/edge/converters/fromCoreMessage.d.ts.map +0 -1
  136. package/dist/runtimes/edge/converters/fromCoreMessage.js +0 -89
  137. package/dist/runtimes/edge/converters/fromCoreMessage.js.map +0 -1
  138. package/dist/runtimes/edge/converters/fromCoreMessage.mjs +0 -63
  139. package/dist/runtimes/edge/converters/fromCoreMessage.mjs.map +0 -1
  140. package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts +0 -8
  141. package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +0 -1
  142. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js +0 -149
  143. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +0 -1
  144. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs +0 -124
  145. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +0 -1
  146. package/dist/runtimes/edge/converters/fromLanguageModelTools.d.ts +0 -4
  147. package/dist/runtimes/edge/converters/fromLanguageModelTools.d.ts.map +0 -1
  148. package/dist/runtimes/edge/converters/fromLanguageModelTools.js +0 -41
  149. package/dist/runtimes/edge/converters/fromLanguageModelTools.js.map +0 -1
  150. package/dist/runtimes/edge/converters/fromLanguageModelTools.mjs +0 -16
  151. package/dist/runtimes/edge/converters/fromLanguageModelTools.mjs.map +0 -1
  152. package/dist/runtimes/edge/converters/index.d.ts +0 -35
  153. package/dist/runtimes/edge/converters/index.d.ts.map +0 -1
  154. package/dist/runtimes/edge/converters/index.js +0 -50
  155. package/dist/runtimes/edge/converters/index.js.map +0 -1
  156. package/dist/runtimes/edge/converters/index.mjs +0 -24
  157. package/dist/runtimes/edge/converters/index.mjs.map +0 -1
  158. package/dist/runtimes/edge/converters/toCoreMessages.d.ts +0 -12
  159. package/dist/runtimes/edge/converters/toCoreMessages.d.ts.map +0 -1
  160. package/dist/runtimes/edge/converters/toCoreMessages.js +0 -74
  161. package/dist/runtimes/edge/converters/toCoreMessages.js.map +0 -1
  162. package/dist/runtimes/edge/converters/toCoreMessages.mjs +0 -48
  163. package/dist/runtimes/edge/converters/toCoreMessages.mjs.map +0 -1
  164. package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts +0 -6
  165. package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts.map +0 -1
  166. package/dist/runtimes/edge/converters/toLanguageModelMessages.js +0 -168
  167. package/dist/runtimes/edge/converters/toLanguageModelMessages.js.map +0 -1
  168. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs +0 -143
  169. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs.map +0 -1
  170. package/dist/runtimes/edge/converters/toLanguageModelTools.d.ts +0 -4
  171. package/dist/runtimes/edge/converters/toLanguageModelTools.d.ts.map +0 -1
  172. package/dist/runtimes/edge/converters/toLanguageModelTools.js +0 -50
  173. package/dist/runtimes/edge/converters/toLanguageModelTools.js.map +0 -1
  174. package/dist/runtimes/edge/converters/toLanguageModelTools.mjs +0 -15
  175. package/dist/runtimes/edge/converters/toLanguageModelTools.mjs.map +0 -1
  176. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts +0 -36
  177. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +0 -1
  178. package/dist/runtimes/edge/createEdgeRuntimeAPI.js +0 -179
  179. package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +0 -1
  180. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +0 -156
  181. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +0 -1
  182. package/dist/runtimes/edge/index.d.ts +0 -6
  183. package/dist/runtimes/edge/index.d.ts.map +0 -1
  184. package/dist/runtimes/edge/index.js +0 -40
  185. package/dist/runtimes/edge/index.js.map +0 -1
  186. package/dist/runtimes/edge/index.mjs +0 -11
  187. package/dist/runtimes/edge/index.mjs.map +0 -1
  188. package/dist/runtimes/edge/streams/toolResultStream.d.ts.map +0 -1
  189. package/dist/runtimes/edge/streams/toolResultStream.js.map +0 -1
  190. package/dist/runtimes/edge/streams/toolResultStream.mjs.map +0 -1
  191. package/dist/runtimes/edge/useEdgeRuntime.d.ts +0 -5
  192. package/dist/runtimes/edge/useEdgeRuntime.d.ts.map +0 -1
  193. package/dist/runtimes/edge/useEdgeRuntime.js +0 -41
  194. package/dist/runtimes/edge/useEdgeRuntime.js.map +0 -1
  195. package/dist/runtimes/edge/useEdgeRuntime.mjs +0 -17
  196. package/dist/runtimes/edge/useEdgeRuntime.mjs.map +0 -1
  197. package/dist/utils/json/parse-partial-json.d.ts +0 -4
  198. package/dist/utils/json/parse-partial-json.d.ts.map +0 -1
  199. package/dist/utils/json/parse-partial-json.js +0 -90
  200. package/dist/utils/json/parse-partial-json.js.map +0 -1
  201. package/dist/utils/json/parse-partial-json.mjs +0 -54
  202. package/dist/utils/json/parse-partial-json.mjs.map +0 -1
  203. package/edge/README.md +0 -1
  204. package/edge/package.json +0 -5
  205. package/src/edge.ts +0 -4
  206. package/src/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.ts +0 -42
  207. package/src/runtimes/dangerous-in-browser/index.ts +0 -4
  208. package/src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts +0 -21
  209. package/src/runtimes/edge/EdgeModelAdapter.ts +0 -188
  210. package/src/runtimes/edge/EdgeRuntimeRequestOptions.ts +0 -109
  211. package/src/runtimes/edge/converters/fromCoreMessage.ts +0 -76
  212. package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +0 -149
  213. package/src/runtimes/edge/converters/fromLanguageModelTools.ts +0 -16
  214. package/src/runtimes/edge/converters/index.ts +0 -41
  215. package/src/runtimes/edge/converters/toCoreMessages.ts +0 -64
  216. package/src/runtimes/edge/converters/toLanguageModelMessages.ts +0 -184
  217. package/src/runtimes/edge/converters/toLanguageModelTools.ts +0 -18
  218. package/src/runtimes/edge/createEdgeRuntimeAPI.ts +0 -234
  219. package/src/runtimes/edge/index.ts +0 -7
  220. package/src/runtimes/edge/useEdgeRuntime.ts +0 -17
  221. package/src/utils/json/parse-partial-json.ts +0 -74
@@ -1 +0,0 @@
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,156 +0,0 @@
1
- // src/runtimes/edge/createEdgeRuntimeAPI.ts
2
- import { EdgeRuntimeRequestOptionsSchema } from "./EdgeRuntimeRequestOptions.mjs";
3
- import { toLanguageModelMessages } from "./converters/toLanguageModelMessages.mjs";
4
- import { toLanguageModelTools } from "./converters/toLanguageModelTools.mjs";
5
- import { toolResultStream } from "./streams/toolResultStream.mjs";
6
- import {
7
- LanguageModelV1CallSettingsSchema
8
- } from "../../model-context/ModelContextTypes.mjs";
9
- import {
10
- AssistantMessageAccumulator,
11
- DataStreamEncoder
12
- } from "assistant-stream";
13
- import { LanguageModelV1StreamDecoder } from "assistant-stream/ai-sdk";
14
- var getEdgeRuntimeStream = async ({
15
- abortSignal,
16
- requestData: unsafeRequest,
17
- options: {
18
- model: modelOrCreator,
19
- system: serverSystem,
20
- tools: serverTools = {},
21
- toolChoice,
22
- onFinish,
23
- ...unsafeSettings
24
- }
25
- }) => {
26
- const settings = LanguageModelV1CallSettingsSchema.parse(unsafeSettings);
27
- const lmServerTools = toLanguageModelTools(serverTools);
28
- const hasServerTools = Object.values(serverTools).some((v) => !!v.execute);
29
- const {
30
- system: clientSystem,
31
- tools: clientTools = [],
32
- messages,
33
- apiKey,
34
- baseUrl,
35
- modelName,
36
- ...callSettings
37
- } = EdgeRuntimeRequestOptionsSchema.parse(unsafeRequest);
38
- const systemMessages = [];
39
- if (serverSystem) systemMessages.push(serverSystem);
40
- if (clientSystem) systemMessages.push(clientSystem);
41
- const system = systemMessages.join("\n\n");
42
- for (const clientTool of clientTools) {
43
- if (serverTools?.[clientTool.name]) {
44
- throw new Error(
45
- `Tool ${clientTool.name} was defined in both the client and server tools. This is not allowed.`
46
- );
47
- }
48
- }
49
- const model = typeof modelOrCreator === "function" ? await modelOrCreator({ apiKey, baseUrl, modelName }) : modelOrCreator;
50
- let stream;
51
- const streamResult = await streamMessage({
52
- ...settings,
53
- ...callSettings,
54
- model,
55
- abortSignal,
56
- ...!!system ? { system } : void 0,
57
- messages,
58
- tools: lmServerTools.concat(clientTools),
59
- ...toolChoice ? { toolChoice } : void 0
60
- });
61
- stream = streamResult.stream.pipeThrough(new LanguageModelV1StreamDecoder());
62
- const canExecuteTools = hasServerTools && toolChoice?.type !== "none";
63
- if (canExecuteTools) {
64
- stream = stream.pipeThrough(toolResultStream(serverTools, abortSignal));
65
- }
66
- if (canExecuteTools || onFinish) {
67
- const tees = stream.tee();
68
- stream = tees[0];
69
- let serverStream = tees[1];
70
- if (onFinish) {
71
- let lastChunk;
72
- serverStream.pipeThrough(new AssistantMessageAccumulator()).pipeTo(
73
- new WritableStream({
74
- write(chunk) {
75
- lastChunk = chunk;
76
- },
77
- close() {
78
- if (!lastChunk?.status || lastChunk.status.type === "running")
79
- return;
80
- const resultingMessages = [
81
- ...messages,
82
- {
83
- id: "DEFAULT",
84
- createdAt: /* @__PURE__ */ new Date(),
85
- role: "assistant",
86
- content: lastChunk.content,
87
- status: lastChunk.status,
88
- metadata: lastChunk.metadata
89
- }
90
- ];
91
- onFinish({
92
- messages: resultingMessages,
93
- metadata: {
94
- steps: lastChunk.metadata.steps
95
- }
96
- });
97
- },
98
- abort(e) {
99
- console.error("Server stream processing error:", e);
100
- }
101
- })
102
- );
103
- }
104
- }
105
- return stream;
106
- };
107
- var getEdgeRuntimeResponse = async (options) => {
108
- const stream = await getEdgeRuntimeStream(options);
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"
113
- }
114
- });
115
- };
116
- var createEdgeRuntimeAPI = (options) => ({
117
- POST: async (request) => getEdgeRuntimeResponse({
118
- abortSignal: request.signal,
119
- requestData: await request.json(),
120
- options
121
- })
122
- });
123
- async function streamMessage({
124
- model,
125
- system,
126
- messages,
127
- tools,
128
- toolChoice,
129
- ...options
130
- }) {
131
- return model.doStream({
132
- inputFormat: "messages",
133
- mode: {
134
- type: "regular",
135
- ...tools ? { tools } : void 0,
136
- ...toolChoice ? { toolChoice } : void 0
137
- },
138
- prompt: convertToLanguageModelPrompt(system, messages),
139
- ...options
140
- });
141
- }
142
- function convertToLanguageModelPrompt(system, messages) {
143
- const languageModelMessages = [];
144
- if (system != null) {
145
- languageModelMessages.push({ role: "system", content: system });
146
- }
147
- languageModelMessages.push(...toLanguageModelMessages(messages));
148
- return languageModelMessages;
149
- }
150
- export {
151
- convertToLanguageModelPrompt,
152
- createEdgeRuntimeAPI,
153
- getEdgeRuntimeResponse,
154
- getEdgeRuntimeStream
155
- };
156
- //# sourceMappingURL=createEdgeRuntimeAPI.mjs.map
@@ -1 +0,0 @@
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,6 +0,0 @@
1
- export * from "./converters";
2
- export { useEdgeRuntime, type EdgeRuntimeOptions } from "./useEdgeRuntime";
3
- export { EdgeModelAdapter as EdgeChatAdapter } from "./EdgeModelAdapter";
4
- export type { EdgeRuntimeRequestOptions } from "./EdgeRuntimeRequestOptions";
5
- export { unstable_runPendingTools } from "./streams/toolResultStream";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
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,gBAAgB,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // src/runtimes/edge/index.ts
22
- var edge_exports = {};
23
- __export(edge_exports, {
24
- EdgeChatAdapter: () => import_EdgeModelAdapter.EdgeModelAdapter,
25
- unstable_runPendingTools: () => import_toolResultStream.unstable_runPendingTools,
26
- useEdgeRuntime: () => import_useEdgeRuntime.useEdgeRuntime
27
- });
28
- module.exports = __toCommonJS(edge_exports);
29
- __reExport(edge_exports, require("./converters/index.js"), module.exports);
30
- var import_useEdgeRuntime = require("./useEdgeRuntime.js");
31
- var import_EdgeModelAdapter = require("./EdgeModelAdapter.js");
32
- var import_toolResultStream = require("./streams/toolResultStream.js");
33
- // Annotate the CommonJS export names for ESM import in node:
34
- 0 && (module.exports = {
35
- EdgeChatAdapter,
36
- unstable_runPendingTools,
37
- useEdgeRuntime,
38
- ...require("./converters/index.js")
39
- });
40
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/index.ts"],"sourcesContent":["export * from \"./converters\";\n\nexport { useEdgeRuntime, type EdgeRuntimeOptions } from \"./useEdgeRuntime\";\nexport { EdgeModelAdapter as EdgeChatAdapter } from \"./EdgeModelAdapter\";\nexport type { EdgeRuntimeRequestOptions } from \"./EdgeRuntimeRequestOptions\";\n\nexport { unstable_runPendingTools } from \"./streams/toolResultStream\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAc,kCAAd;AAEA,4BAAwD;AACxD,8BAAoD;AAGpD,8BAAyC;","names":[]}
@@ -1,11 +0,0 @@
1
- // src/runtimes/edge/index.ts
2
- export * from "./converters/index.mjs";
3
- import { useEdgeRuntime } from "./useEdgeRuntime.mjs";
4
- import { EdgeModelAdapter } from "./EdgeModelAdapter.mjs";
5
- import { unstable_runPendingTools } from "./streams/toolResultStream.mjs";
6
- export {
7
- EdgeModelAdapter as EdgeChatAdapter,
8
- unstable_runPendingTools,
9
- useEdgeRuntime
10
- };
11
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/index.ts"],"sourcesContent":["export * from \"./converters\";\n\nexport { useEdgeRuntime, type EdgeRuntimeOptions } from \"./useEdgeRuntime\";\nexport { EdgeModelAdapter as EdgeChatAdapter } from \"./EdgeModelAdapter\";\nexport type { EdgeRuntimeRequestOptions } from \"./EdgeRuntimeRequestOptions\";\n\nexport { unstable_runPendingTools } from \"./streams/toolResultStream\";\n"],"mappings":";AAAA,cAAc;AAEd,SAAS,sBAA+C;AACxD,SAA6B,wBAAuB;AAGpD,SAAS,gCAAgC;","names":[]}
@@ -1 +0,0 @@
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,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA4CzE,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,6BA6BzB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,uBAKzB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/runtimes/edge/streams/toolResultStream.ts"],"sourcesContent":["import { Tool } from \"../../../model-context/ModelContextTypes\";\nimport { z } from \"zod\";\nimport { AssistantMessage, ToolExecutionStream } from \"assistant-stream\";\nimport { ToolResponse } from \"assistant-stream\";\n\nfunction getToolResponse(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n toolCall: {\n toolCallId: string;\n toolName: string;\n args: unknown;\n },\n) {\n const tool = tools?.[toolCall.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(toolCall.args);\n if (!result.success) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw new Error(\n `Function parameter validation failed. ${JSON.stringify(result.error.issues)}`,\n );\n });\n }\n }\n\n const getResult = async () => {\n const result = await executeFn(toolCall.args, {\n toolCallId: toolCall.toolCallId,\n abortSignal,\n });\n if (result instanceof ToolResponse) return result;\n return new ToolResponse({\n result: result === undefined ? \"<no result>\" : result,\n });\n };\n\n return getResult();\n}\n\nexport async function unstable_runPendingTools(\n message: AssistantMessage,\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n // TODO parallel tool calling\n for (const part of message.parts) {\n if (part.type === \"tool-call\") {\n const promiseOrUndefined = getToolResponse(tools, abortSignal, part);\n if (promiseOrUndefined) {\n const result = await promiseOrUndefined;\n const updatedParts = message.parts.map((p) => {\n if (p.type === \"tool-call\" && p.toolCallId === part.toolCallId) {\n return {\n ...p,\n state: \"result\" as const,\n artifact: result.artifact,\n result: result.result,\n isError: result.isError,\n };\n }\n return p;\n });\n message = {\n ...message,\n parts: updatedParts,\n content: updatedParts,\n };\n }\n }\n }\n return message;\n}\n\nexport function toolResultStream(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n return new ToolExecutionStream((toolCall) =>\n getToolResponse(tools, abortSignal, toolCall),\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,iBAAkB;AAClB,8BAAsD;AACtD,IAAAA,2BAA6B;AAE7B,SAAS,gBACP,OACA,aACA,UAKA;AACA,QAAM,OAAO,QAAQ,SAAS,QAAQ;AACtC,MAAI,CAAC,QAAQ,CAAC,KAAK,QAAS,QAAO;AAEnC,MAAI,YAAY,KAAK;AAErB,MAAI,KAAK,sBAAsB,aAAE,SAAS;AACxC,UAAM,SAAS,KAAK,WAAW,UAAU,SAAS,IAAI;AACtD,QAAI,CAAC,OAAO,SAAS;AACnB,kBACE,KAAK,yCACJ,MAAM;AACL,cAAM,IAAI;AAAA,UACR,yCAAyC,KAAK,UAAU,OAAO,MAAM,MAAM,CAAC;AAAA,QAC9E;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,YAAY,YAAY;AAC5B,UAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAAA,MAC5C,YAAY,SAAS;AAAA,MACrB;AAAA,IACF,CAAC;AACD,QAAI,kBAAkB,sCAAc,QAAO;AAC3C,WAAO,IAAI,sCAAa;AAAA,MACtB,QAAQ,WAAW,SAAY,gBAAgB;AAAA,IACjD,CAAC;AAAA,EACH;AAEA,SAAO,UAAU;AACnB;AAEA,eAAsB,yBACpB,SACA,OACA,aACA;AAEA,aAAW,QAAQ,QAAQ,OAAO;AAChC,QAAI,KAAK,SAAS,aAAa;AAC7B,YAAM,qBAAqB,gBAAgB,OAAO,aAAa,IAAI;AACnE,UAAI,oBAAoB;AACtB,cAAM,SAAS,MAAM;AACrB,cAAM,eAAe,QAAQ,MAAM,IAAI,CAAC,MAAM;AAC5C,cAAI,EAAE,SAAS,eAAe,EAAE,eAAe,KAAK,YAAY;AAC9D,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,OAAO;AAAA,cACP,UAAU,OAAO;AAAA,cACjB,QAAQ,OAAO;AAAA,cACf,SAAS,OAAO;AAAA,YAClB;AAAA,UACF;AACA,iBAAO;AAAA,QACT,CAAC;AACD,kBAAU;AAAA,UACR,GAAG;AAAA,UACH,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,iBACd,OACA,aACA;AACA,SAAO,IAAI;AAAA,IAAoB,CAAC,aAC9B,gBAAgB,OAAO,aAAa,QAAQ;AAAA,EAC9C;AACF;","names":["import_assistant_stream"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/runtimes/edge/streams/toolResultStream.ts"],"sourcesContent":["import { Tool } from \"../../../model-context/ModelContextTypes\";\nimport { z } from \"zod\";\nimport { AssistantMessage, ToolExecutionStream } from \"assistant-stream\";\nimport { ToolResponse } from \"assistant-stream\";\n\nfunction getToolResponse(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n toolCall: {\n toolCallId: string;\n toolName: string;\n args: unknown;\n },\n) {\n const tool = tools?.[toolCall.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(toolCall.args);\n if (!result.success) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw new Error(\n `Function parameter validation failed. ${JSON.stringify(result.error.issues)}`,\n );\n });\n }\n }\n\n const getResult = async () => {\n const result = await executeFn(toolCall.args, {\n toolCallId: toolCall.toolCallId,\n abortSignal,\n });\n if (result instanceof ToolResponse) return result;\n return new ToolResponse({\n result: result === undefined ? \"<no result>\" : result,\n });\n };\n\n return getResult();\n}\n\nexport async function unstable_runPendingTools(\n message: AssistantMessage,\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n // TODO parallel tool calling\n for (const part of message.parts) {\n if (part.type === \"tool-call\") {\n const promiseOrUndefined = getToolResponse(tools, abortSignal, part);\n if (promiseOrUndefined) {\n const result = await promiseOrUndefined;\n const updatedParts = message.parts.map((p) => {\n if (p.type === \"tool-call\" && p.toolCallId === part.toolCallId) {\n return {\n ...p,\n state: \"result\" as const,\n artifact: result.artifact,\n result: result.result,\n isError: result.isError,\n };\n }\n return p;\n });\n message = {\n ...message,\n parts: updatedParts,\n content: updatedParts,\n };\n }\n }\n }\n return message;\n}\n\nexport function toolResultStream(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n return new ToolExecutionStream((toolCall) =>\n getToolResponse(tools, abortSignal, toolCall),\n );\n}\n"],"mappings":";AACA,SAAS,SAAS;AAClB,SAA2B,2BAA2B;AACtD,SAAS,oBAAoB;AAE7B,SAAS,gBACP,OACA,aACA,UAKA;AACA,QAAM,OAAO,QAAQ,SAAS,QAAQ;AACtC,MAAI,CAAC,QAAQ,CAAC,KAAK,QAAS,QAAO;AAEnC,MAAI,YAAY,KAAK;AAErB,MAAI,KAAK,sBAAsB,EAAE,SAAS;AACxC,UAAM,SAAS,KAAK,WAAW,UAAU,SAAS,IAAI;AACtD,QAAI,CAAC,OAAO,SAAS;AACnB,kBACE,KAAK,yCACJ,MAAM;AACL,cAAM,IAAI;AAAA,UACR,yCAAyC,KAAK,UAAU,OAAO,MAAM,MAAM,CAAC;AAAA,QAC9E;AAAA,MACF;AAAA,IACJ;AAAA,EACF;AAEA,QAAM,YAAY,YAAY;AAC5B,UAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAAA,MAC5C,YAAY,SAAS;AAAA,MACrB;AAAA,IACF,CAAC;AACD,QAAI,kBAAkB,aAAc,QAAO;AAC3C,WAAO,IAAI,aAAa;AAAA,MACtB,QAAQ,WAAW,SAAY,gBAAgB;AAAA,IACjD,CAAC;AAAA,EACH;AAEA,SAAO,UAAU;AACnB;AAEA,eAAsB,yBACpB,SACA,OACA,aACA;AAEA,aAAW,QAAQ,QAAQ,OAAO;AAChC,QAAI,KAAK,SAAS,aAAa;AAC7B,YAAM,qBAAqB,gBAAgB,OAAO,aAAa,IAAI;AACnE,UAAI,oBAAoB;AACtB,cAAM,SAAS,MAAM;AACrB,cAAM,eAAe,QAAQ,MAAM,IAAI,CAAC,MAAM;AAC5C,cAAI,EAAE,SAAS,eAAe,EAAE,eAAe,KAAK,YAAY;AAC9D,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,OAAO;AAAA,cACP,UAAU,OAAO;AAAA,cACjB,QAAQ,OAAO;AAAA,cACf,SAAS,OAAO;AAAA,YAClB;AAAA,UACF;AACA,iBAAO;AAAA,QACT,CAAC;AACD,kBAAU;AAAA,UACR,GAAG;AAAA,UACH,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,iBACd,OACA,aACA;AACA,SAAO,IAAI;AAAA,IAAoB,CAAC,aAC9B,gBAAgB,OAAO,aAAa,QAAQ;AAAA,EAC9C;AACF;","names":[]}
@@ -1,5 +0,0 @@
1
- import { LocalRuntimeOptions } from "..";
2
- import { EdgeModelAdapterOptions } from "./EdgeModelAdapter";
3
- export type EdgeRuntimeOptions = EdgeModelAdapterOptions & LocalRuntimeOptions;
4
- export declare const useEdgeRuntime: (options: EdgeRuntimeOptions) => import("../../internal").AssistantRuntimeImpl;
5
- //# sourceMappingURL=useEdgeRuntime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEdgeRuntime.d.ts","sourceRoot":"","sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAmB,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAoB,MAAM,oBAAoB,CAAC;AAG/E,MAAM,MAAM,kBAAkB,GAAG,uBAAuB,GAAG,mBAAmB,CAAC;AAE/E,eAAO,MAAM,cAAc,GAAI,SAAS,kBAAkB,kDAQzD,CAAC"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- "use client";
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
-
21
- // src/runtimes/edge/useEdgeRuntime.ts
22
- var useEdgeRuntime_exports = {};
23
- __export(useEdgeRuntime_exports, {
24
- useEdgeRuntime: () => useEdgeRuntime
25
- });
26
- module.exports = __toCommonJS(useEdgeRuntime_exports);
27
- var import__ = require("../index.js");
28
- var import_EdgeModelAdapter = require("./EdgeModelAdapter.js");
29
- var import_LocalRuntimeOptions = require("../local/LocalRuntimeOptions.js");
30
- var useEdgeRuntime = (options) => {
31
- const { localRuntimeOptions, otherOptions } = (0, import_LocalRuntimeOptions.splitLocalRuntimeOptions)(options);
32
- return (0, import__.useLocalRuntime)(
33
- new import_EdgeModelAdapter.EdgeModelAdapter(otherOptions),
34
- localRuntimeOptions
35
- );
36
- };
37
- // Annotate the CommonJS export names for ESM import in node:
38
- 0 && (module.exports = {
39
- useEdgeRuntime
40
- });
41
- //# sourceMappingURL=useEdgeRuntime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"sourcesContent":["\"use client\";\n\nimport { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { EdgeModelAdapterOptions, EdgeModelAdapter } from \"./EdgeModelAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type EdgeRuntimeOptions = EdgeModelAdapterOptions & LocalRuntimeOptions;\n\nexport const useEdgeRuntime = (options: EdgeRuntimeOptions) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n\n return useLocalRuntime(\n new EdgeModelAdapter(otherOptions),\n localRuntimeOptions,\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,eAAqD;AACrD,8BAA0D;AAC1D,iCAAyC;AAIlC,IAAM,iBAAiB,CAAC,YAAgC;AAC7D,QAAM,EAAE,qBAAqB,aAAa,QACxC,qDAAyB,OAAO;AAElC,aAAO;AAAA,IACL,IAAI,yCAAiB,YAAY;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
@@ -1,17 +0,0 @@
1
- "use client";
2
-
3
- // src/runtimes/edge/useEdgeRuntime.ts
4
- import { useLocalRuntime } from "../index.mjs";
5
- import { EdgeModelAdapter } from "./EdgeModelAdapter.mjs";
6
- import { splitLocalRuntimeOptions } from "../local/LocalRuntimeOptions.mjs";
7
- var useEdgeRuntime = (options) => {
8
- const { localRuntimeOptions, otherOptions } = splitLocalRuntimeOptions(options);
9
- return useLocalRuntime(
10
- new EdgeModelAdapter(otherOptions),
11
- localRuntimeOptions
12
- );
13
- };
14
- export {
15
- useEdgeRuntime
16
- };
17
- //# sourceMappingURL=useEdgeRuntime.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/runtimes/edge/useEdgeRuntime.ts"],"sourcesContent":["\"use client\";\n\nimport { LocalRuntimeOptions, useLocalRuntime } from \"..\";\nimport { EdgeModelAdapterOptions, EdgeModelAdapter } from \"./EdgeModelAdapter\";\nimport { splitLocalRuntimeOptions } from \"../local/LocalRuntimeOptions\";\n\nexport type EdgeRuntimeOptions = EdgeModelAdapterOptions & LocalRuntimeOptions;\n\nexport const useEdgeRuntime = (options: EdgeRuntimeOptions) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n\n return useLocalRuntime(\n new EdgeModelAdapter(otherOptions),\n localRuntimeOptions,\n );\n};\n"],"mappings":";;;AAEA,SAA8B,uBAAuB;AACrD,SAAkC,wBAAwB;AAC1D,SAAS,gCAAgC;AAIlC,IAAM,iBAAiB,CAAC,YAAgC;AAC7D,QAAM,EAAE,qBAAqB,aAAa,IACxC,yBAAyB,OAAO;AAElC,SAAO;AAAA,IACL,IAAI,iBAAiB,YAAY;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
@@ -1,4 +0,0 @@
1
- import { ContentPartStatus } from "../../types/AssistantTypes";
2
- export declare const parsePartialJson: (json: string) => any;
3
- export declare const useToolArgsFieldStatus: (fieldPath: string[]) => ContentPartStatus;
4
- //# sourceMappingURL=parse-partial-json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-partial-json.d.ts","sourceRoot":"","sources":["../../../src/utils/json/parse-partial-json.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAElB,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,QAa5C,CAAC;AA8CF,eAAO,MAAM,sBAAsB,GAAI,WAAW,MAAM,EAAE,sBAKzD,CAAC"}
@@ -1,90 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
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
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/utils/json/parse-partial-json.ts
31
- var parse_partial_json_exports = {};
32
- __export(parse_partial_json_exports, {
33
- parsePartialJson: () => parsePartialJson,
34
- useToolArgsFieldStatus: () => useToolArgsFieldStatus
35
- });
36
- module.exports = __toCommonJS(parse_partial_json_exports);
37
- var import_secure_json_parse = __toESM(require("secure-json-parse"));
38
- var import_fix_json = require("./fix-json.js");
39
- var import_context = require("../../context/index.js");
40
- var PARTIAL_JSON_COUNT_SYMBOL = Symbol("partial-json-count");
41
- var parsePartialJson = (json) => {
42
- try {
43
- return import_secure_json_parse.default.parse(json);
44
- } catch {
45
- try {
46
- const [fixedJson, partialCount] = (0, import_fix_json.fixJson)(json);
47
- const res = import_secure_json_parse.default.parse(fixedJson);
48
- res[PARTIAL_JSON_COUNT_SYMBOL] = partialCount;
49
- return res;
50
- } catch {
51
- return void 0;
52
- }
53
- }
54
- };
55
- var COMPLETE_STATUS = Object.freeze({ type: "complete" });
56
- var getFieldStatus = (lastState, args, fieldPath, partialCount) => {
57
- if (fieldPath.length === 0) return lastState;
58
- if (typeof args !== "object" || args === null) return COMPLETE_STATUS;
59
- const path = fieldPath.at(-1);
60
- if (!Object.prototype.hasOwnProperty.call(args, path)) {
61
- return lastState;
62
- }
63
- const argsKeys = Object.keys(args);
64
- const isLast = argsKeys[argsKeys.length - 1] === path;
65
- if (!isLast) return COMPLETE_STATUS;
66
- return getFieldStatus(
67
- lastState,
68
- args[path],
69
- fieldPath.slice(0, -1),
70
- partialCount - 1
71
- );
72
- };
73
- var getToolArgsFieldStatus = (status, args, fieldPath) => {
74
- const partialCount = args[PARTIAL_JSON_COUNT_SYMBOL] ?? 0;
75
- if (partialCount === 0) return COMPLETE_STATUS;
76
- const lastState = status.type !== "requires-action" ? status : COMPLETE_STATUS;
77
- return getFieldStatus(lastState, args, fieldPath, partialCount);
78
- };
79
- var useToolArgsFieldStatus = (fieldPath) => {
80
- return (0, import_context.useContentPart)((p) => {
81
- if (p.type !== "tool-call") throw new Error("not a tool call");
82
- return getToolArgsFieldStatus(p.status, p.args, fieldPath);
83
- });
84
- };
85
- // Annotate the CommonJS export names for ESM import in node:
86
- 0 && (module.exports = {
87
- parsePartialJson,
88
- useToolArgsFieldStatus
89
- });
90
- //# sourceMappingURL=parse-partial-json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/json/parse-partial-json.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\nimport {\n ContentPartStatus,\n ToolCallContentPartStatus,\n} from \"../../types/AssistantTypes\";\nimport { useContentPart } from \"../../context\";\n\nconst PARTIAL_JSON_COUNT_SYMBOL = Symbol(\"partial-json-count\");\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n const [fixedJson, partialCount] = fixJson(json);\n const res = sjson.parse(fixedJson);\n res[PARTIAL_JSON_COUNT_SYMBOL] = partialCount;\n return res;\n } catch {\n return undefined;\n }\n }\n};\n\nconst COMPLETE_STATUS = Object.freeze({ type: \"complete\" });\n\nconst getFieldStatus = (\n lastState: ContentPartStatus,\n args: unknown,\n fieldPath: string[],\n partialCount: number,\n): ContentPartStatus => {\n if (fieldPath.length === 0) return lastState;\n if (typeof args !== \"object\" || args === null) return COMPLETE_STATUS;\n\n const path = fieldPath.at(-1)!;\n\n // If the expected property does not exist, mark as incomplete\n if (!Object.prototype.hasOwnProperty.call(args, path)) {\n return lastState;\n }\n\n const argsKeys = Object.keys(args);\n const isLast = argsKeys[argsKeys.length - 1] === path;\n if (!isLast) return COMPLETE_STATUS;\n\n return getFieldStatus(\n lastState,\n (args as Record<string, unknown>)[path],\n fieldPath.slice(0, -1),\n partialCount - 1,\n );\n};\n\nconst getToolArgsFieldStatus = (\n status: ToolCallContentPartStatus,\n args: Record<string, unknown>,\n fieldPath: string[],\n): ContentPartStatus => {\n const partialCount = (args as any)[PARTIAL_JSON_COUNT_SYMBOL] ?? 0;\n if (partialCount === 0) return COMPLETE_STATUS;\n\n const lastState: ContentPartStatus =\n status.type !== \"requires-action\" ? status : COMPLETE_STATUS;\n\n return getFieldStatus(lastState, args, fieldPath, partialCount);\n};\n\nexport const useToolArgsFieldStatus = (fieldPath: string[]) => {\n return useContentPart((p) => {\n if (p.type !== \"tool-call\") throw new Error(\"not a tool call\");\n return getToolArgsFieldStatus(p.status, p.args, fieldPath);\n });\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAkB;AAClB,sBAAwB;AAKxB,qBAA+B;AAE/B,IAAM,4BAA4B,OAAO,oBAAoB;AACtD,IAAM,mBAAmB,CAAC,SAAiB;AAChD,MAAI;AACF,WAAO,yBAAAA,QAAM,MAAM,IAAI;AAAA,EACzB,QAAQ;AACN,QAAI;AACF,YAAM,CAAC,WAAW,YAAY,QAAI,yBAAQ,IAAI;AAC9C,YAAM,MAAM,yBAAAA,QAAM,MAAM,SAAS;AACjC,UAAI,yBAAyB,IAAI;AACjC,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB,OAAO,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1D,IAAM,iBAAiB,CACrB,WACA,MACA,WACA,iBACsB;AACtB,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,MAAI,OAAO,SAAS,YAAY,SAAS,KAAM,QAAO;AAEtD,QAAM,OAAO,UAAU,GAAG,EAAE;AAG5B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,GAAG;AACrD,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,OAAO,KAAK,IAAI;AACjC,QAAM,SAAS,SAAS,SAAS,SAAS,CAAC,MAAM;AACjD,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO;AAAA,IACL;AAAA,IACC,KAAiC,IAAI;AAAA,IACtC,UAAU,MAAM,GAAG,EAAE;AAAA,IACrB,eAAe;AAAA,EACjB;AACF;AAEA,IAAM,yBAAyB,CAC7B,QACA,MACA,cACsB;AACtB,QAAM,eAAgB,KAAa,yBAAyB,KAAK;AACjE,MAAI,iBAAiB,EAAG,QAAO;AAE/B,QAAM,YACJ,OAAO,SAAS,oBAAoB,SAAS;AAE/C,SAAO,eAAe,WAAW,MAAM,WAAW,YAAY;AAChE;AAEO,IAAM,yBAAyB,CAAC,cAAwB;AAC7D,aAAO,+BAAe,CAAC,MAAM;AAC3B,QAAI,EAAE,SAAS,YAAa,OAAM,IAAI,MAAM,iBAAiB;AAC7D,WAAO,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS;AAAA,EAC3D,CAAC;AACH;","names":["sjson"]}
@@ -1,54 +0,0 @@
1
- // src/utils/json/parse-partial-json.ts
2
- import sjson from "secure-json-parse";
3
- import { fixJson } from "./fix-json.mjs";
4
- import { useContentPart } from "../../context/index.mjs";
5
- var PARTIAL_JSON_COUNT_SYMBOL = Symbol("partial-json-count");
6
- var parsePartialJson = (json) => {
7
- try {
8
- return sjson.parse(json);
9
- } catch {
10
- try {
11
- const [fixedJson, partialCount] = fixJson(json);
12
- const res = sjson.parse(fixedJson);
13
- res[PARTIAL_JSON_COUNT_SYMBOL] = partialCount;
14
- return res;
15
- } catch {
16
- return void 0;
17
- }
18
- }
19
- };
20
- var COMPLETE_STATUS = Object.freeze({ type: "complete" });
21
- var getFieldStatus = (lastState, args, fieldPath, partialCount) => {
22
- if (fieldPath.length === 0) return lastState;
23
- if (typeof args !== "object" || args === null) return COMPLETE_STATUS;
24
- const path = fieldPath.at(-1);
25
- if (!Object.prototype.hasOwnProperty.call(args, path)) {
26
- return lastState;
27
- }
28
- const argsKeys = Object.keys(args);
29
- const isLast = argsKeys[argsKeys.length - 1] === path;
30
- if (!isLast) return COMPLETE_STATUS;
31
- return getFieldStatus(
32
- lastState,
33
- args[path],
34
- fieldPath.slice(0, -1),
35
- partialCount - 1
36
- );
37
- };
38
- var getToolArgsFieldStatus = (status, args, fieldPath) => {
39
- const partialCount = args[PARTIAL_JSON_COUNT_SYMBOL] ?? 0;
40
- if (partialCount === 0) return COMPLETE_STATUS;
41
- const lastState = status.type !== "requires-action" ? status : COMPLETE_STATUS;
42
- return getFieldStatus(lastState, args, fieldPath, partialCount);
43
- };
44
- var useToolArgsFieldStatus = (fieldPath) => {
45
- return useContentPart((p) => {
46
- if (p.type !== "tool-call") throw new Error("not a tool call");
47
- return getToolArgsFieldStatus(p.status, p.args, fieldPath);
48
- });
49
- };
50
- export {
51
- parsePartialJson,
52
- useToolArgsFieldStatus
53
- };
54
- //# sourceMappingURL=parse-partial-json.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/json/parse-partial-json.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\nimport {\n ContentPartStatus,\n ToolCallContentPartStatus,\n} from \"../../types/AssistantTypes\";\nimport { useContentPart } from \"../../context\";\n\nconst PARTIAL_JSON_COUNT_SYMBOL = Symbol(\"partial-json-count\");\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n const [fixedJson, partialCount] = fixJson(json);\n const res = sjson.parse(fixedJson);\n res[PARTIAL_JSON_COUNT_SYMBOL] = partialCount;\n return res;\n } catch {\n return undefined;\n }\n }\n};\n\nconst COMPLETE_STATUS = Object.freeze({ type: \"complete\" });\n\nconst getFieldStatus = (\n lastState: ContentPartStatus,\n args: unknown,\n fieldPath: string[],\n partialCount: number,\n): ContentPartStatus => {\n if (fieldPath.length === 0) return lastState;\n if (typeof args !== \"object\" || args === null) return COMPLETE_STATUS;\n\n const path = fieldPath.at(-1)!;\n\n // If the expected property does not exist, mark as incomplete\n if (!Object.prototype.hasOwnProperty.call(args, path)) {\n return lastState;\n }\n\n const argsKeys = Object.keys(args);\n const isLast = argsKeys[argsKeys.length - 1] === path;\n if (!isLast) return COMPLETE_STATUS;\n\n return getFieldStatus(\n lastState,\n (args as Record<string, unknown>)[path],\n fieldPath.slice(0, -1),\n partialCount - 1,\n );\n};\n\nconst getToolArgsFieldStatus = (\n status: ToolCallContentPartStatus,\n args: Record<string, unknown>,\n fieldPath: string[],\n): ContentPartStatus => {\n const partialCount = (args as any)[PARTIAL_JSON_COUNT_SYMBOL] ?? 0;\n if (partialCount === 0) return COMPLETE_STATUS;\n\n const lastState: ContentPartStatus =\n status.type !== \"requires-action\" ? status : COMPLETE_STATUS;\n\n return getFieldStatus(lastState, args, fieldPath, partialCount);\n};\n\nexport const useToolArgsFieldStatus = (fieldPath: string[]) => {\n return useContentPart((p) => {\n if (p.type !== \"tool-call\") throw new Error(\"not a tool call\");\n return getToolArgsFieldStatus(p.status, p.args, fieldPath);\n });\n};\n"],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,eAAe;AAKxB,SAAS,sBAAsB;AAE/B,IAAM,4BAA4B,OAAO,oBAAoB;AACtD,IAAM,mBAAmB,CAAC,SAAiB;AAChD,MAAI;AACF,WAAO,MAAM,MAAM,IAAI;AAAA,EACzB,QAAQ;AACN,QAAI;AACF,YAAM,CAAC,WAAW,YAAY,IAAI,QAAQ,IAAI;AAC9C,YAAM,MAAM,MAAM,MAAM,SAAS;AACjC,UAAI,yBAAyB,IAAI;AACjC,aAAO;AAAA,IACT,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,IAAM,kBAAkB,OAAO,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1D,IAAM,iBAAiB,CACrB,WACA,MACA,WACA,iBACsB;AACtB,MAAI,UAAU,WAAW,EAAG,QAAO;AACnC,MAAI,OAAO,SAAS,YAAY,SAAS,KAAM,QAAO;AAEtD,QAAM,OAAO,UAAU,GAAG,EAAE;AAG5B,MAAI,CAAC,OAAO,UAAU,eAAe,KAAK,MAAM,IAAI,GAAG;AACrD,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,OAAO,KAAK,IAAI;AACjC,QAAM,SAAS,SAAS,SAAS,SAAS,CAAC,MAAM;AACjD,MAAI,CAAC,OAAQ,QAAO;AAEpB,SAAO;AAAA,IACL;AAAA,IACC,KAAiC,IAAI;AAAA,IACtC,UAAU,MAAM,GAAG,EAAE;AAAA,IACrB,eAAe;AAAA,EACjB;AACF;AAEA,IAAM,yBAAyB,CAC7B,QACA,MACA,cACsB;AACtB,QAAM,eAAgB,KAAa,yBAAyB,KAAK;AACjE,MAAI,iBAAiB,EAAG,QAAO;AAE/B,QAAM,YACJ,OAAO,SAAS,oBAAoB,SAAS;AAE/C,SAAO,eAAe,WAAW,MAAM,WAAW,YAAY;AAChE;AAEO,IAAM,yBAAyB,CAAC,cAAwB;AAC7D,SAAO,eAAe,CAAC,MAAM;AAC3B,QAAI,EAAE,SAAS,YAAa,OAAM,IAAI,MAAM,iBAAiB;AAC7D,WAAO,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS;AAAA,EAC3D,CAAC;AACH;","names":[]}
package/edge/README.md DELETED
@@ -1 +0,0 @@
1
- This directory exists to support subpath imports for TypeScript projects using --moduleResolution node.
package/edge/package.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "main": "../dist/edge.js",
3
- "module": "../dist/edge.mjs",
4
- "types": "../dist/edge.d.ts"
5
- }
package/src/edge.ts DELETED
@@ -1,4 +0,0 @@
1
- export {
2
- createEdgeRuntimeAPI,
3
- getEdgeRuntimeResponse,
4
- } from "./runtimes/edge/createEdgeRuntimeAPI";
@@ -1,42 +0,0 @@
1
- import {
2
- ChatModelAdapter,
3
- ChatModelRunOptions,
4
- } from "../local/ChatModelAdapter";
5
- import { toCoreMessages } from "../edge/converters/toCoreMessages";
6
- import { toLanguageModelTools } from "../edge/converters/toLanguageModelTools";
7
- import { EdgeRuntimeRequestOptions } from "../edge/EdgeRuntimeRequestOptions";
8
- import { toolResultStream } from "../edge/streams/toolResultStream";
9
- import { asAsyncIterable } from "../edge/EdgeModelAdapter";
10
- import {
11
- CreateEdgeRuntimeAPIOptions,
12
- getEdgeRuntimeStream,
13
- } from "../edge/createEdgeRuntimeAPI";
14
- import { AssistantMessageAccumulator } from "assistant-stream";
15
-
16
- export type DangerousInBrowserAdapterOptions = CreateEdgeRuntimeAPIOptions;
17
-
18
- export class DangerousInBrowserAdapter implements ChatModelAdapter {
19
- constructor(private options: DangerousInBrowserAdapterOptions) {}
20
-
21
- async *run({ messages, abortSignal, context }: ChatModelRunOptions) {
22
- const res = await getEdgeRuntimeStream({
23
- options: this.options,
24
- abortSignal,
25
- requestData: {
26
- system: context.system,
27
- messages: toCoreMessages(messages),
28
- tools: context.tools ? toLanguageModelTools(context.tools) : [],
29
- ...context.callSettings,
30
- ...context.config,
31
- } satisfies EdgeRuntimeRequestOptions,
32
- });
33
-
34
- const stream = res
35
- .pipeThrough(toolResultStream(context.tools, abortSignal))
36
- .pipeThrough(new AssistantMessageAccumulator());
37
-
38
- for await (const update of asAsyncIterable(stream)) {
39
- yield update;
40
- }
41
- }
42
- }
@@ -1,4 +0,0 @@
1
- export {
2
- useDangerousInBrowserRuntime,
3
- type DangerousInBrowserRuntimeOptions,
4
- } from "./useDangerousInBrowserRuntime";