@assistant-ui/react 0.8.19 → 0.9.0

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 (215) 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/runtimes/composer/BaseComposerRuntimeCore.d.ts +1 -1
  28. package/dist/runtimes/composer/BaseComposerRuntimeCore.d.ts.map +1 -1
  29. package/dist/runtimes/composer/BaseComposerRuntimeCore.js +3 -1
  30. package/dist/runtimes/composer/BaseComposerRuntimeCore.js.map +1 -1
  31. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs +3 -1
  32. package/dist/runtimes/composer/BaseComposerRuntimeCore.mjs.map +1 -1
  33. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
  34. package/dist/runtimes/external-store/ThreadMessageLike.js +2 -2
  35. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  36. package/dist/runtimes/external-store/ThreadMessageLike.mjs +1 -1
  37. package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
  38. package/dist/runtimes/index.d.ts +1 -2
  39. package/dist/runtimes/index.d.ts.map +1 -1
  40. package/dist/runtimes/index.js +6 -5
  41. package/dist/runtimes/index.js.map +1 -1
  42. package/dist/runtimes/index.mjs +7 -3
  43. package/dist/runtimes/index.mjs.map +1 -1
  44. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  45. package/dist/runtimes/local/LocalThreadRuntimeCore.js +3 -3
  46. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  47. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +4 -4
  48. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
  49. package/dist/runtimes/remote-thread-list/adapter/cloud.d.ts.map +1 -1
  50. package/dist/runtimes/remote-thread-list/adapter/cloud.js +2 -2
  51. package/dist/runtimes/remote-thread-list/adapter/cloud.js.map +1 -1
  52. package/dist/runtimes/remote-thread-list/adapter/cloud.mjs +2 -2
  53. package/dist/runtimes/remote-thread-list/adapter/cloud.mjs.map +1 -1
  54. package/dist/runtimes/{edge/streams → streams}/toolResultStream.d.ts +1 -1
  55. package/dist/runtimes/streams/toolResultStream.d.ts.map +1 -0
  56. package/dist/runtimes/{edge/streams → streams}/toolResultStream.js +1 -1
  57. package/dist/runtimes/streams/toolResultStream.js.map +1 -0
  58. package/dist/runtimes/{edge/streams → streams}/toolResultStream.mjs +1 -1
  59. package/dist/runtimes/streams/toolResultStream.mjs.map +1 -0
  60. package/dist/runtimes/utils/MessageRepository.d.ts +2 -2
  61. package/dist/runtimes/utils/MessageRepository.d.ts.map +1 -1
  62. package/dist/runtimes/utils/MessageRepository.js +1 -5
  63. package/dist/runtimes/utils/MessageRepository.js.map +1 -1
  64. package/dist/runtimes/utils/MessageRepository.mjs +1 -5
  65. package/dist/runtimes/utils/MessageRepository.mjs.map +1 -1
  66. package/dist/types/AssistantTypes.d.ts +3 -60
  67. package/dist/types/AssistantTypes.d.ts.map +1 -1
  68. package/dist/types/AssistantTypes.js.map +1 -1
  69. package/dist/types/AttachmentTypes.d.ts +3 -3
  70. package/dist/types/AttachmentTypes.d.ts.map +1 -1
  71. package/dist/types/AttachmentTypes.js.map +1 -1
  72. package/dist/types/index.d.ts +1 -1
  73. package/dist/types/index.d.ts.map +1 -1
  74. package/dist/types/index.js.map +1 -1
  75. package/package.json +2 -8
  76. package/src/api/ThreadRuntime.ts +2 -0
  77. package/src/cloud/AssistantCloudRuns.tsx +2 -2
  78. package/src/cloud/auiV0.ts +1 -2
  79. package/src/index.ts +0 -2
  80. package/src/internal.ts +1 -1
  81. package/src/runtimes/composer/BaseComposerRuntimeCore.tsx +2 -0
  82. package/src/runtimes/external-store/ThreadMessageLike.tsx +1 -1
  83. package/src/runtimes/index.ts +4 -2
  84. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +4 -4
  85. package/src/runtimes/remote-thread-list/adapter/cloud.tsx +1 -2
  86. package/src/runtimes/{edge/streams → streams}/toolResultStream.ts +1 -1
  87. package/src/runtimes/utils/MessageRepository.tsx +3 -7
  88. package/src/tests/MessageRepository.test.ts +7 -10
  89. package/src/types/AssistantTypes.ts +3 -81
  90. package/src/types/AttachmentTypes.ts +3 -3
  91. package/src/types/index.ts +0 -9
  92. package/dist/edge.d.ts +0 -2
  93. package/dist/edge.d.ts.map +0 -1
  94. package/dist/edge.js +0 -33
  95. package/dist/edge.js.map +0 -1
  96. package/dist/edge.mjs +0 -10
  97. package/dist/edge.mjs.map +0 -1
  98. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.d.ts +0 -9
  99. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.d.ts.map +0 -1
  100. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js +0 -58
  101. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.js.map +0 -1
  102. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs +0 -35
  103. package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.mjs.map +0 -1
  104. package/dist/runtimes/dangerous-in-browser/index.d.ts +0 -2
  105. package/dist/runtimes/dangerous-in-browser/index.d.ts.map +0 -1
  106. package/dist/runtimes/dangerous-in-browser/index.js +0 -31
  107. package/dist/runtimes/dangerous-in-browser/index.js.map +0 -1
  108. package/dist/runtimes/dangerous-in-browser/index.mjs +0 -8
  109. package/dist/runtimes/dangerous-in-browser/index.mjs.map +0 -1
  110. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts +0 -5
  111. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts.map +0 -1
  112. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js +0 -40
  113. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.js.map +0 -1
  114. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs +0 -18
  115. package/dist/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.mjs.map +0 -1
  116. package/dist/runtimes/edge/EdgeModelAdapter.d.ts +0 -48
  117. package/dist/runtimes/edge/EdgeModelAdapter.d.ts.map +0 -1
  118. package/dist/runtimes/edge/EdgeModelAdapter.js +0 -127
  119. package/dist/runtimes/edge/EdgeModelAdapter.js.map +0 -1
  120. package/dist/runtimes/edge/EdgeModelAdapter.mjs +0 -94
  121. package/dist/runtimes/edge/EdgeModelAdapter.mjs.map +0 -1
  122. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts +0 -345
  123. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts.map +0 -1
  124. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +0 -106
  125. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js.map +0 -1
  126. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs +0 -84
  127. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs.map +0 -1
  128. package/dist/runtimes/edge/converters/fromCoreMessage.d.ts +0 -8
  129. package/dist/runtimes/edge/converters/fromCoreMessage.d.ts.map +0 -1
  130. package/dist/runtimes/edge/converters/fromCoreMessage.js +0 -89
  131. package/dist/runtimes/edge/converters/fromCoreMessage.js.map +0 -1
  132. package/dist/runtimes/edge/converters/fromCoreMessage.mjs +0 -63
  133. package/dist/runtimes/edge/converters/fromCoreMessage.mjs.map +0 -1
  134. package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts +0 -8
  135. package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +0 -1
  136. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js +0 -149
  137. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +0 -1
  138. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs +0 -124
  139. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +0 -1
  140. package/dist/runtimes/edge/converters/fromLanguageModelTools.d.ts +0 -4
  141. package/dist/runtimes/edge/converters/fromLanguageModelTools.d.ts.map +0 -1
  142. package/dist/runtimes/edge/converters/fromLanguageModelTools.js +0 -41
  143. package/dist/runtimes/edge/converters/fromLanguageModelTools.js.map +0 -1
  144. package/dist/runtimes/edge/converters/fromLanguageModelTools.mjs +0 -16
  145. package/dist/runtimes/edge/converters/fromLanguageModelTools.mjs.map +0 -1
  146. package/dist/runtimes/edge/converters/index.d.ts +0 -35
  147. package/dist/runtimes/edge/converters/index.d.ts.map +0 -1
  148. package/dist/runtimes/edge/converters/index.js +0 -50
  149. package/dist/runtimes/edge/converters/index.js.map +0 -1
  150. package/dist/runtimes/edge/converters/index.mjs +0 -24
  151. package/dist/runtimes/edge/converters/index.mjs.map +0 -1
  152. package/dist/runtimes/edge/converters/toCoreMessages.d.ts +0 -12
  153. package/dist/runtimes/edge/converters/toCoreMessages.d.ts.map +0 -1
  154. package/dist/runtimes/edge/converters/toCoreMessages.js +0 -74
  155. package/dist/runtimes/edge/converters/toCoreMessages.js.map +0 -1
  156. package/dist/runtimes/edge/converters/toCoreMessages.mjs +0 -48
  157. package/dist/runtimes/edge/converters/toCoreMessages.mjs.map +0 -1
  158. package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts +0 -6
  159. package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts.map +0 -1
  160. package/dist/runtimes/edge/converters/toLanguageModelMessages.js +0 -168
  161. package/dist/runtimes/edge/converters/toLanguageModelMessages.js.map +0 -1
  162. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs +0 -143
  163. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs.map +0 -1
  164. package/dist/runtimes/edge/converters/toLanguageModelTools.d.ts +0 -4
  165. package/dist/runtimes/edge/converters/toLanguageModelTools.d.ts.map +0 -1
  166. package/dist/runtimes/edge/converters/toLanguageModelTools.js +0 -50
  167. package/dist/runtimes/edge/converters/toLanguageModelTools.js.map +0 -1
  168. package/dist/runtimes/edge/converters/toLanguageModelTools.mjs +0 -15
  169. package/dist/runtimes/edge/converters/toLanguageModelTools.mjs.map +0 -1
  170. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts +0 -36
  171. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +0 -1
  172. package/dist/runtimes/edge/createEdgeRuntimeAPI.js +0 -179
  173. package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +0 -1
  174. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +0 -156
  175. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +0 -1
  176. package/dist/runtimes/edge/index.d.ts +0 -6
  177. package/dist/runtimes/edge/index.d.ts.map +0 -1
  178. package/dist/runtimes/edge/index.js +0 -40
  179. package/dist/runtimes/edge/index.js.map +0 -1
  180. package/dist/runtimes/edge/index.mjs +0 -11
  181. package/dist/runtimes/edge/index.mjs.map +0 -1
  182. package/dist/runtimes/edge/streams/toolResultStream.d.ts.map +0 -1
  183. package/dist/runtimes/edge/streams/toolResultStream.js.map +0 -1
  184. package/dist/runtimes/edge/streams/toolResultStream.mjs.map +0 -1
  185. package/dist/runtimes/edge/useEdgeRuntime.d.ts +0 -5
  186. package/dist/runtimes/edge/useEdgeRuntime.d.ts.map +0 -1
  187. package/dist/runtimes/edge/useEdgeRuntime.js +0 -41
  188. package/dist/runtimes/edge/useEdgeRuntime.js.map +0 -1
  189. package/dist/runtimes/edge/useEdgeRuntime.mjs +0 -17
  190. package/dist/runtimes/edge/useEdgeRuntime.mjs.map +0 -1
  191. package/dist/utils/json/parse-partial-json.d.ts +0 -4
  192. package/dist/utils/json/parse-partial-json.d.ts.map +0 -1
  193. package/dist/utils/json/parse-partial-json.js +0 -90
  194. package/dist/utils/json/parse-partial-json.js.map +0 -1
  195. package/dist/utils/json/parse-partial-json.mjs +0 -54
  196. package/dist/utils/json/parse-partial-json.mjs.map +0 -1
  197. package/edge/README.md +0 -1
  198. package/edge/package.json +0 -5
  199. package/src/edge.ts +0 -4
  200. package/src/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.ts +0 -42
  201. package/src/runtimes/dangerous-in-browser/index.ts +0 -4
  202. package/src/runtimes/dangerous-in-browser/useDangerousInBrowserRuntime.ts +0 -21
  203. package/src/runtimes/edge/EdgeModelAdapter.ts +0 -188
  204. package/src/runtimes/edge/EdgeRuntimeRequestOptions.ts +0 -109
  205. package/src/runtimes/edge/converters/fromCoreMessage.ts +0 -76
  206. package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +0 -149
  207. package/src/runtimes/edge/converters/fromLanguageModelTools.ts +0 -16
  208. package/src/runtimes/edge/converters/index.ts +0 -41
  209. package/src/runtimes/edge/converters/toCoreMessages.ts +0 -64
  210. package/src/runtimes/edge/converters/toLanguageModelMessages.ts +0 -184
  211. package/src/runtimes/edge/converters/toLanguageModelTools.ts +0 -18
  212. package/src/runtimes/edge/createEdgeRuntimeAPI.ts +0 -234
  213. package/src/runtimes/edge/index.ts +0 -7
  214. package/src/runtimes/edge/useEdgeRuntime.ts +0 -17
  215. package/src/utils/json/parse-partial-json.ts +0 -74
@@ -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";
@@ -1,21 +0,0 @@
1
- "use client";
2
-
3
- import { LocalRuntimeOptions, useLocalRuntime } from "..";
4
- import { useState } from "react";
5
- import {
6
- DangerousInBrowserAdapter,
7
- DangerousInBrowserAdapterOptions,
8
- } from "./DangerousInBrowserAdapter";
9
- import { splitLocalRuntimeOptions } from "../local/LocalRuntimeOptions";
10
-
11
- export type DangerousInBrowserRuntimeOptions =
12
- DangerousInBrowserAdapterOptions & LocalRuntimeOptions;
13
-
14
- export const useDangerousInBrowserRuntime = (
15
- options: DangerousInBrowserRuntimeOptions,
16
- ) => {
17
- const { localRuntimeOptions, otherOptions } =
18
- splitLocalRuntimeOptions(options);
19
- const [adapter] = useState(() => new DangerousInBrowserAdapter(otherOptions));
20
- return useLocalRuntime(adapter, localRuntimeOptions);
21
- };
@@ -1,188 +0,0 @@
1
- import {
2
- ChatModelAdapter,
3
- ChatModelRunOptions,
4
- } from "../local/ChatModelAdapter";
5
- import { toCoreMessages } from "./converters/toCoreMessages";
6
- import { toLanguageModelTools } from "./converters/toLanguageModelTools";
7
- import { EdgeRuntimeRequestOptions } from "./EdgeRuntimeRequestOptions";
8
- import { toolResultStream } from "./streams/toolResultStream";
9
- import { toLanguageModelMessages } from "./converters";
10
- import { ThreadMessage } from "../../types";
11
- import { Tool } from "../../model-context";
12
- import { z } from "zod";
13
- import zodToJsonSchema from "zod-to-json-schema";
14
- import { JSONSchema7 } from "json-schema";
15
- import {
16
- AssistantMessageAccumulator,
17
- DataStreamDecoder,
18
- } from "assistant-stream";
19
-
20
- export function asAsyncIterable<T>(
21
- source: ReadableStream<T>,
22
- ): AsyncIterable<T> {
23
- return {
24
- [Symbol.asyncIterator]: () => {
25
- const reader = source.getReader();
26
- return {
27
- async next(): Promise<IteratorResult<T, undefined>> {
28
- const { done, value } = await reader.read();
29
- return done
30
- ? { done: true, value: undefined }
31
- : { done: false, value };
32
- },
33
- };
34
- },
35
- };
36
- }
37
-
38
- type HeadersValue = Record<string, string> | Headers;
39
-
40
- export type EdgeModelAdapterOptions = {
41
- api: string;
42
-
43
- // experimental_prepareRequestBody?: (options: {
44
- // id: string;
45
- // messages: UIMessage[];
46
- // requestData?: JSONValue;
47
- // requestBody?: object;
48
- // }) => unknown;
49
-
50
- // onToolCall?: ({
51
- // toolCall,
52
- // }: {
53
- // toolCall: UIMessageToolInvocation;
54
- // }) => void | Promise<unknown> | unknown;
55
-
56
- /**
57
- * Callback function to be called when the API response is received.
58
- */
59
- onResponse?: (response: Response) => void | Promise<void>;
60
- /**
61
- * Optional callback function that is called when the assistant message is finished streaming.
62
- */
63
- onFinish?: (message: ThreadMessage) => void;
64
- /**
65
- * Callback function to be called when an error is encountered.
66
- */
67
- onError?: (error: Error) => void;
68
-
69
- credentials?: RequestCredentials;
70
-
71
- /**
72
- * Headers to be sent with the request.
73
- * Can be a static headers object or a function that returns a Promise of headers.
74
- */
75
- headers?: HeadersValue | (() => Promise<HeadersValue>);
76
-
77
- body?: object;
78
-
79
- /**
80
- * @deprecated Renamed to `sendExtraMessageFields`.
81
- */
82
- unstable_sendMessageIds?: boolean;
83
-
84
- /**
85
- * When enabled, the adapter will not strip `id` from messages in the messages array.
86
- */
87
- sendExtraMessageFields?: boolean;
88
-
89
- /**
90
- * When enabled, the adapter will send messages in the format expected by the Vercel AI SDK Core.
91
- * This feature will be removed in the future in favor of a better solution.
92
- *
93
- * `v2` sends frontend tools in a format that can be directly passed to `stremaText`
94
- */
95
- unstable_AISDKInterop?: boolean | "v2" | undefined;
96
- };
97
-
98
- const toAISDKTools = (tools: Record<string, Tool<any, any>>) => {
99
- return Object.fromEntries(
100
- Object.entries(tools).map(([name, tool]) => [
101
- name,
102
- {
103
- ...(tool.description ? { description: tool.description } : undefined),
104
- parameters: (tool.parameters instanceof z.ZodType
105
- ? zodToJsonSchema(tool.parameters)
106
- : tool.parameters) as JSONSchema7,
107
- },
108
- ]),
109
- );
110
- };
111
-
112
- export class EdgeModelAdapter implements ChatModelAdapter {
113
- constructor(private options: EdgeModelAdapterOptions) {}
114
-
115
- async *run({
116
- messages,
117
- runConfig,
118
- abortSignal,
119
- context,
120
- unstable_assistantMessageId,
121
- unstable_getMessage,
122
- }: ChatModelRunOptions) {
123
- const headersValue =
124
- typeof this.options.headers === "function"
125
- ? await this.options.headers()
126
- : this.options.headers;
127
-
128
- const headers = new Headers(headersValue);
129
- headers.set("Content-Type", "application/json");
130
-
131
- const result = await fetch(this.options.api, {
132
- method: "POST",
133
- headers,
134
- credentials: this.options.credentials ?? "same-origin",
135
- body: JSON.stringify({
136
- system: context.system,
137
- messages: this.options.unstable_AISDKInterop
138
- ? (toLanguageModelMessages(messages, {
139
- unstable_includeId:
140
- this.options.unstable_sendMessageIds ||
141
- this.options.sendExtraMessageFields,
142
- }) as EdgeRuntimeRequestOptions["messages"]) // TODO figure out a better way to do this
143
- : toCoreMessages(messages, {
144
- unstable_includeId:
145
- this.options.unstable_sendMessageIds ||
146
- this.options.sendExtraMessageFields,
147
- }),
148
- tools: context.tools
149
- ? this.options.unstable_AISDKInterop === "v2"
150
- ? (toAISDKTools(context.tools) as any)
151
- : toLanguageModelTools(context.tools)
152
- : [],
153
- unstable_assistantMessageId,
154
- runConfig,
155
- ...context.callSettings,
156
- ...context.config,
157
-
158
- ...this.options.body,
159
- } satisfies EdgeRuntimeRequestOptions),
160
- signal: abortSignal,
161
- });
162
-
163
- await this.options.onResponse?.(result);
164
-
165
- try {
166
- if (!result.ok) {
167
- throw new Error(`Status ${result.status}: ${await result.text()}`);
168
- }
169
- if (!result.body) {
170
- throw new Error("Response body is null");
171
- }
172
-
173
- const stream = result.body
174
- .pipeThrough(new DataStreamDecoder())
175
- .pipeThrough(toolResultStream(context.tools, abortSignal))
176
- .pipeThrough(new AssistantMessageAccumulator());
177
-
178
- for await (const update of asAsyncIterable(stream)) {
179
- yield update;
180
- }
181
-
182
- this.options.onFinish?.(unstable_getMessage());
183
- } catch (error: unknown) {
184
- this.options.onError?.(error as Error);
185
- throw error;
186
- }
187
- }
188
- }
@@ -1,109 +0,0 @@
1
- import { JSONSchema7 } from "json-schema";
2
- import {
3
- LanguageModelConfigSchema,
4
- LanguageModelV1CallSettingsSchema,
5
- } from "../../model-context/ModelContextTypes";
6
- import { z } from "zod";
7
- import { ReadonlyJSONObject } from "../../utils/json/json-value";
8
-
9
- const LanguageModelV1FunctionToolSchema = z.object({
10
- type: z.literal("function"),
11
- name: z.string(),
12
- description: z.string().optional(),
13
- parameters: z.custom<JSONSchema7>(
14
- (val) => typeof val === "object" && val !== null,
15
- ),
16
- });
17
-
18
- const TextContentPartSchema = z.object({
19
- type: z.literal("text"),
20
- text: z.string(),
21
- });
22
-
23
- const ImageContentPartSchema = z.object({
24
- type: z.literal("image"),
25
- image: z.string(),
26
- });
27
-
28
- const FileContentPartSchema = z.object({
29
- type: z.literal("file"),
30
- data: z.string(),
31
- mimeType: z.string(),
32
- });
33
-
34
- const Unstable_AudioContentPart = z.object({
35
- type: z.literal("audio"),
36
- audio: z.object({
37
- data: z.string(),
38
- format: z.union([z.literal("mp3"), z.literal("wav")]),
39
- }),
40
- });
41
-
42
- const CoreToolCallContentPartSchema = z.object({
43
- type: z.literal("tool-call"),
44
- toolCallId: z.string(),
45
- toolName: z.string(),
46
- args: z
47
- .record(z.unknown())
48
- .refine((c): c is ReadonlyJSONObject => c !== undefined),
49
- result: z.unknown().optional(),
50
- isError: z.boolean().optional(),
51
- });
52
-
53
- const CoreUserMessageSchema = z.object({
54
- role: z.literal("user"),
55
- content: z
56
- .array(
57
- z.discriminatedUnion("type", [
58
- TextContentPartSchema,
59
- ImageContentPartSchema,
60
- FileContentPartSchema,
61
- Unstable_AudioContentPart,
62
- ]),
63
- )
64
- .min(1)
65
- .readonly(),
66
- });
67
-
68
- const CoreAssistantMessageSchema = z.object({
69
- role: z.literal("assistant"),
70
- content: z
71
- .array(
72
- z.discriminatedUnion("type", [
73
- TextContentPartSchema,
74
- CoreToolCallContentPartSchema,
75
- ]),
76
- )
77
- .min(1)
78
- .readonly(),
79
- });
80
-
81
- const CoreSystemMessageSchema = z.object({
82
- role: z.literal("system"),
83
- content: z.tuple([TextContentPartSchema]).readonly(),
84
- });
85
-
86
- const CoreMessageSchema = z.discriminatedUnion("role", [
87
- CoreSystemMessageSchema,
88
- CoreUserMessageSchema,
89
- CoreAssistantMessageSchema,
90
- ]);
91
-
92
- export const EdgeRuntimeRequestOptionsSchema = z
93
- .object({
94
- system: z.string().optional(),
95
- messages: z.array(CoreMessageSchema).min(1).readonly(),
96
- runConfig: z
97
- .object({
98
- custom: z.record(z.unknown()).optional(),
99
- })
100
- .optional(),
101
- tools: z.array(LanguageModelV1FunctionToolSchema).readonly().optional(),
102
- unstable_assistantMessageId: z.string().optional(),
103
- })
104
- .merge(LanguageModelV1CallSettingsSchema)
105
- .merge(LanguageModelConfigSchema);
106
-
107
- export type EdgeRuntimeRequestOptions = z.infer<
108
- typeof EdgeRuntimeRequestOptionsSchema
109
- >;