@assistant-ui/react 0.7.57 → 0.7.59

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 (259) hide show
  1. package/dist/cloud/AssistantCloud.d.ts.map +1 -0
  2. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.js +1 -1
  3. package/dist/cloud/AssistantCloud.js.map +1 -0
  4. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.mjs +1 -1
  5. package/dist/cloud/AssistantCloud.mjs.map +1 -0
  6. package/dist/cloud/AssistantCloudAPI.d.ts.map +1 -0
  7. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.js +1 -1
  8. package/dist/cloud/AssistantCloudAPI.js.map +1 -0
  9. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.mjs +1 -1
  10. package/dist/cloud/AssistantCloudAPI.mjs.map +1 -0
  11. package/dist/cloud/AssistantCloudAuthStrategy.d.ts.map +1 -0
  12. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.js +1 -1
  13. package/dist/cloud/AssistantCloudAuthStrategy.js.map +1 -0
  14. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.mjs +1 -1
  15. package/dist/cloud/AssistantCloudAuthStrategy.mjs.map +1 -0
  16. package/dist/cloud/AssistantCloudAuthTokens.d.ts.map +1 -0
  17. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.js +1 -1
  18. package/dist/cloud/AssistantCloudAuthTokens.js.map +1 -0
  19. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.mjs +1 -1
  20. package/dist/cloud/AssistantCloudAuthTokens.mjs.map +1 -0
  21. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.d.ts +1 -1
  22. package/dist/cloud/AssistantCloudRuns.d.ts.map +1 -0
  23. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.js +1 -1
  24. package/dist/cloud/AssistantCloudRuns.js.map +1 -0
  25. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.mjs +1 -1
  26. package/dist/cloud/AssistantCloudRuns.mjs.map +1 -0
  27. package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -0
  28. package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -0
  29. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js +72 -0
  30. package/dist/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -0
  31. package/dist/cloud/AssistantCloudThreadHistoryAdapter.mjs +47 -0
  32. package/dist/cloud/AssistantCloudThreadHistoryAdapter.mjs.map +1 -0
  33. package/dist/cloud/AssistantCloudThreadMessages.d.ts +30 -0
  34. package/dist/cloud/AssistantCloudThreadMessages.d.ts.map +1 -0
  35. package/dist/cloud/AssistantCloudThreadMessages.js +46 -0
  36. package/dist/cloud/AssistantCloudThreadMessages.js.map +1 -0
  37. package/dist/cloud/AssistantCloudThreadMessages.mjs +21 -0
  38. package/dist/cloud/AssistantCloudThreadMessages.mjs.map +1 -0
  39. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudThreads.d.ts +2 -0
  40. package/dist/cloud/AssistantCloudThreads.d.ts.map +1 -0
  41. package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudThreads.js +8 -3
  42. package/dist/cloud/AssistantCloudThreads.js.map +1 -0
  43. package/dist/cloud/AssistantCloudThreads.mjs +30 -0
  44. package/dist/cloud/AssistantCloudThreads.mjs.map +1 -0
  45. package/dist/cloud/auiV0.d.ts +46 -0
  46. package/dist/cloud/auiV0.d.ts.map +1 -0
  47. package/dist/cloud/auiV0.js +99 -0
  48. package/dist/cloud/auiV0.js.map +1 -0
  49. package/dist/cloud/auiV0.mjs +73 -0
  50. package/dist/cloud/auiV0.mjs.map +1 -0
  51. package/dist/cloud/index.d.ts.map +1 -0
  52. package/dist/{runtimes/remote-thread-list/cloud → cloud}/index.js +1 -1
  53. package/dist/cloud/index.js.map +1 -0
  54. package/dist/{runtimes/remote-thread-list/cloud → cloud}/index.mjs +1 -1
  55. package/dist/cloud/index.mjs.map +1 -0
  56. package/dist/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.d.ts +1 -1
  57. package/dist/cloud/useCloudThreadListRuntime.d.ts.map +1 -0
  58. package/dist/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.js +16 -4
  59. package/dist/cloud/useCloudThreadListRuntime.js.map +1 -0
  60. package/dist/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.mjs +23 -5
  61. package/dist/cloud/useCloudThreadListRuntime.mjs.map +1 -0
  62. package/dist/index.d.ts +1 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +2 -0
  65. package/dist/index.js.map +1 -1
  66. package/dist/index.mjs +1 -0
  67. package/dist/index.mjs.map +1 -1
  68. package/dist/model-context/makeAssistantTool.d.ts +2 -1
  69. package/dist/model-context/makeAssistantTool.d.ts.map +1 -1
  70. package/dist/model-context/makeAssistantTool.js.map +1 -1
  71. package/dist/model-context/makeAssistantTool.mjs.map +1 -1
  72. package/dist/model-context/makeAssistantToolUI.d.ts +2 -1
  73. package/dist/model-context/makeAssistantToolUI.d.ts.map +1 -1
  74. package/dist/model-context/makeAssistantToolUI.js.map +1 -1
  75. package/dist/model-context/makeAssistantToolUI.mjs.map +1 -1
  76. package/dist/model-context/useAssistantTool.d.ts +3 -2
  77. package/dist/model-context/useAssistantTool.d.ts.map +1 -1
  78. package/dist/model-context/useAssistantTool.js.map +1 -1
  79. package/dist/model-context/useAssistantTool.mjs.map +1 -1
  80. package/dist/model-context/useAssistantToolUI.d.ts +2 -1
  81. package/dist/model-context/useAssistantToolUI.d.ts.map +1 -1
  82. package/dist/model-context/useAssistantToolUI.js.map +1 -1
  83. package/dist/model-context/useAssistantToolUI.mjs.map +1 -1
  84. package/dist/model-context/useInlineRender.d.ts +2 -1
  85. package/dist/model-context/useInlineRender.d.ts.map +1 -1
  86. package/dist/model-context/useInlineRender.js.map +1 -1
  87. package/dist/model-context/useInlineRender.mjs.map +1 -1
  88. package/dist/runtimes/edge/EdgeChatAdapter.js +3 -3
  89. package/dist/runtimes/edge/EdgeChatAdapter.js.map +1 -1
  90. package/dist/runtimes/edge/EdgeChatAdapter.mjs +3 -3
  91. package/dist/runtimes/edge/EdgeChatAdapter.mjs.map +1 -1
  92. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts +5 -4
  93. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts.map +1 -1
  94. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +1 -1
  95. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js.map +1 -1
  96. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs +1 -1
  97. package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs.map +1 -1
  98. package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +1 -1
  99. package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +1 -1
  100. package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +1 -1
  101. package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts +3 -1
  102. package/dist/runtimes/edge/converters/toLanguageModelMessages.d.ts.map +1 -1
  103. package/dist/runtimes/edge/converters/toLanguageModelMessages.js +10 -2
  104. package/dist/runtimes/edge/converters/toLanguageModelMessages.js.map +1 -1
  105. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs +10 -2
  106. package/dist/runtimes/edge/converters/toLanguageModelMessages.mjs.map +1 -1
  107. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts +2 -2
  108. package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +1 -1
  109. package/dist/runtimes/edge/createEdgeRuntimeAPI.js +1 -1
  110. package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +1 -1
  111. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +1 -1
  112. package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +1 -1
  113. package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts +4 -3
  114. package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts.map +1 -1
  115. package/dist/runtimes/edge/streams/AssistantStreamChunkType.js.map +1 -1
  116. package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs.map +1 -1
  117. package/dist/runtimes/edge/streams/runResultStream.js +1 -1
  118. package/dist/runtimes/edge/streams/runResultStream.js.map +1 -1
  119. package/dist/runtimes/edge/streams/runResultStream.mjs +1 -1
  120. package/dist/runtimes/edge/streams/runResultStream.mjs.map +1 -1
  121. package/dist/runtimes/edge/streams/toolResultStream.d.ts +4 -3
  122. package/dist/runtimes/edge/streams/toolResultStream.d.ts.map +1 -1
  123. package/dist/runtimes/edge/streams/toolResultStream.js.map +1 -1
  124. package/dist/runtimes/edge/streams/toolResultStream.mjs.map +1 -1
  125. package/dist/runtimes/external-store/ThreadMessageLike.d.ts +11 -3
  126. package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
  127. package/dist/runtimes/external-store/ThreadMessageLike.js +10 -1
  128. package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
  129. package/dist/runtimes/external-store/ThreadMessageLike.mjs +10 -1
  130. package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
  131. package/dist/runtimes/local/ChatModelAdapter.d.ts +3 -2
  132. package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
  133. package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
  134. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +2 -0
  135. package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  136. package/dist/runtimes/local/LocalThreadRuntimeCore.js +27 -1
  137. package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
  138. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +27 -1
  139. package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
  140. package/dist/runtimes/local/useLocalRuntime.d.ts.map +1 -1
  141. package/dist/runtimes/local/useLocalRuntime.js +14 -7
  142. package/dist/runtimes/local/useLocalRuntime.js.map +1 -1
  143. package/dist/runtimes/local/useLocalRuntime.mjs +14 -7
  144. package/dist/runtimes/local/useLocalRuntime.mjs.map +1 -1
  145. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  146. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +1 -6
  147. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  148. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs +1 -6
  149. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs.map +1 -1
  150. package/dist/runtimes/remote-thread-list/index.d.ts +0 -1
  151. package/dist/runtimes/remote-thread-list/index.d.ts.map +1 -1
  152. package/dist/runtimes/remote-thread-list/index.js +1 -4
  153. package/dist/runtimes/remote-thread-list/index.js.map +1 -1
  154. package/dist/runtimes/remote-thread-list/index.mjs +0 -1
  155. package/dist/runtimes/remote-thread-list/index.mjs.map +1 -1
  156. package/dist/types/AssistantTypes.d.ts +8 -7
  157. package/dist/types/AssistantTypes.d.ts.map +1 -1
  158. package/dist/types/AssistantTypes.js.map +1 -1
  159. package/dist/types/ContentPartComponentTypes.d.ts +3 -2
  160. package/dist/types/ContentPartComponentTypes.d.ts.map +1 -1
  161. package/dist/types/ContentPartComponentTypes.js.map +1 -1
  162. package/dist/utils/json/fix-json.d.ts.map +1 -0
  163. package/dist/{runtimes/edge/partial-json → utils/json}/fix-json.js +1 -1
  164. package/dist/utils/json/fix-json.js.map +1 -0
  165. package/dist/{runtimes/edge/partial-json → utils/json}/fix-json.mjs +1 -1
  166. package/dist/utils/json/fix-json.mjs.map +1 -0
  167. package/dist/utils/json/is-json.d.ts +5 -0
  168. package/dist/utils/json/is-json.d.ts.map +1 -0
  169. package/dist/utils/json/is-json.js +56 -0
  170. package/dist/utils/json/is-json.js.map +1 -0
  171. package/dist/utils/json/is-json.mjs +29 -0
  172. package/dist/utils/json/is-json.mjs.map +1 -0
  173. package/dist/utils/json/json-value.d.ts +6 -0
  174. package/dist/utils/json/json-value.d.ts.map +1 -0
  175. package/dist/utils/json/json-value.js +19 -0
  176. package/dist/utils/json/json-value.js.map +1 -0
  177. package/dist/utils/json/json-value.mjs +1 -0
  178. package/dist/utils/json/json-value.mjs.map +1 -0
  179. package/dist/utils/json/parse-partial-json.d.ts.map +1 -0
  180. package/dist/{runtimes/edge/partial-json → utils/json}/parse-partial-json.js +1 -1
  181. package/dist/utils/json/parse-partial-json.js.map +1 -0
  182. package/dist/{runtimes/edge/partial-json → utils/json}/parse-partial-json.mjs +1 -1
  183. package/dist/utils/json/parse-partial-json.mjs.map +1 -0
  184. package/package.json +3 -3
  185. package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.tsx +1 -1
  186. package/src/cloud/AssistantCloudThreadHistoryAdapter.tsx +64 -0
  187. package/src/cloud/AssistantCloudThreadMessages.tsx +48 -0
  188. package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudThreads.tsx +10 -3
  189. package/src/cloud/auiV0.ts +130 -0
  190. package/src/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.tsx +29 -5
  191. package/src/index.ts +1 -0
  192. package/src/model-context/makeAssistantTool.tsx +2 -4
  193. package/src/model-context/makeAssistantToolUI.tsx +2 -4
  194. package/src/model-context/useAssistantTool.tsx +3 -5
  195. package/src/model-context/useAssistantToolUI.tsx +2 -4
  196. package/src/model-context/useInlineRender.tsx +2 -1
  197. package/src/runtimes/edge/EdgeChatAdapter.ts +3 -3
  198. package/src/runtimes/edge/EdgeRuntimeRequestOptions.ts +4 -2
  199. package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +2 -1
  200. package/src/runtimes/edge/converters/toLanguageModelMessages.ts +12 -1
  201. package/src/runtimes/edge/createEdgeRuntimeAPI.ts +4 -4
  202. package/src/runtimes/edge/streams/AssistantStreamChunkType.ts +4 -3
  203. package/src/runtimes/edge/streams/runResultStream.ts +1 -1
  204. package/src/runtimes/edge/streams/toolResultStream.ts +4 -3
  205. package/src/runtimes/external-store/ThreadMessageLike.tsx +24 -3
  206. package/src/runtimes/local/ChatModelAdapter.tsx +3 -2
  207. package/src/runtimes/local/LocalThreadRuntimeCore.tsx +37 -1
  208. package/src/runtimes/local/useLocalRuntime.tsx +14 -7
  209. package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +1 -6
  210. package/src/runtimes/remote-thread-list/index.ts +0 -1
  211. package/src/types/AssistantTypes.ts +11 -7
  212. package/src/types/ContentPartComponentTypes.tsx +3 -2
  213. package/src/utils/json/is-json.ts +42 -0
  214. package/src/utils/json/json-value.ts +13 -0
  215. package/dist/runtimes/edge/partial-json/fix-json.d.ts.map +0 -1
  216. package/dist/runtimes/edge/partial-json/fix-json.js.map +0 -1
  217. package/dist/runtimes/edge/partial-json/fix-json.mjs.map +0 -1
  218. package/dist/runtimes/edge/partial-json/parse-partial-json.d.ts.map +0 -1
  219. package/dist/runtimes/edge/partial-json/parse-partial-json.js.map +0 -1
  220. package/dist/runtimes/edge/partial-json/parse-partial-json.mjs.map +0 -1
  221. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.d.ts.map +0 -1
  222. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.js.map +0 -1
  223. package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.mjs.map +0 -1
  224. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAPI.d.ts.map +0 -1
  225. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAPI.js.map +0 -1
  226. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAPI.mjs.map +0 -1
  227. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.d.ts.map +0 -1
  228. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.js.map +0 -1
  229. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.mjs.map +0 -1
  230. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.d.ts.map +0 -1
  231. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.js.map +0 -1
  232. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.mjs.map +0 -1
  233. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudRuns.d.ts.map +0 -1
  234. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudRuns.js.map +0 -1
  235. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudRuns.mjs.map +0 -1
  236. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.d.ts.map +0 -1
  237. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.js.map +0 -1
  238. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.mjs +0 -25
  239. package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.mjs.map +0 -1
  240. package/dist/runtimes/remote-thread-list/cloud/index.d.ts.map +0 -1
  241. package/dist/runtimes/remote-thread-list/cloud/index.js.map +0 -1
  242. package/dist/runtimes/remote-thread-list/cloud/index.mjs.map +0 -1
  243. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.d.ts.map +0 -1
  244. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.js.map +0 -1
  245. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.mjs.map +0 -1
  246. /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.d.ts +0 -0
  247. /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.d.ts +0 -0
  248. /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.d.ts +0 -0
  249. /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.d.ts +0 -0
  250. /package/dist/{runtimes/remote-thread-list/cloud → cloud}/index.d.ts +0 -0
  251. /package/dist/{runtimes/edge/partial-json → utils/json}/fix-json.d.ts +0 -0
  252. /package/dist/{runtimes/edge/partial-json → utils/json}/parse-partial-json.d.ts +0 -0
  253. /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.tsx +0 -0
  254. /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.tsx +0 -0
  255. /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.tsx +0 -0
  256. /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.tsx +0 -0
  257. /package/src/{runtimes/remote-thread-list/cloud → cloud}/index.ts +0 -0
  258. /package/src/{runtimes/edge/partial-json → utils/json}/fix-json.ts +0 -0
  259. /package/src/{runtimes/edge/partial-json → utils/json}/parse-partial-json.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-partial-json.d.ts","sourceRoot":"","sources":["../../../src/utils/json/parse-partial-json.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,SAAU,MAAM,QAU5C,CAAC"}
@@ -27,7 +27,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // src/runtimes/edge/partial-json/parse-partial-json.ts
30
+ // src/utils/json/parse-partial-json.ts
31
31
  var parse_partial_json_exports = {};
32
32
  __export(parse_partial_json_exports, {
33
33
  parsePartialJson: () => parsePartialJson
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/json/parse-partial-json.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\n\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n return sjson.parse(fixJson(json));\n } catch {\n return undefined;\n }\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAkB;AAClB,sBAAwB;AAEjB,IAAM,mBAAmB,CAAC,SAAiB;AAChD,MAAI;AACF,WAAO,yBAAAA,QAAM,MAAM,IAAI;AAAA,EACzB,QAAQ;AACN,QAAI;AACF,aAAO,yBAAAA,QAAM,UAAM,yBAAQ,IAAI,CAAC;AAAA,IAClC,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":["sjson"]}
@@ -1,4 +1,4 @@
1
- // src/runtimes/edge/partial-json/parse-partial-json.ts
1
+ // src/utils/json/parse-partial-json.ts
2
2
  import sjson from "secure-json-parse";
3
3
  import { fixJson } from "./fix-json.mjs";
4
4
  var parsePartialJson = (json) => {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/json/parse-partial-json.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\n\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n return sjson.parse(fixJson(json));\n } catch {\n return undefined;\n }\n }\n};\n"],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,eAAe;AAEjB,IAAM,mBAAmB,CAAC,SAAiB;AAChD,MAAI;AACF,WAAO,MAAM,MAAM,IAAI;AAAA,EACzB,QAAQ;AACN,QAAI;AACF,aAAO,MAAM,MAAM,QAAQ,IAAI,CAAC;AAAA,IAClC,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
package/package.json CHANGED
@@ -29,7 +29,7 @@
29
29
  "conversational-ui",
30
30
  "conversational-ai"
31
31
  ],
32
- "version": "0.7.57",
32
+ "version": "0.7.59",
33
33
  "license": "MIT",
34
34
  "exports": {
35
35
  ".": {
@@ -118,8 +118,8 @@
118
118
  "tailwindcss-animate": "^1.0.7",
119
119
  "tsx": "^4.19.2",
120
120
  "@assistant-ui/tailwindcss-transformer": "0.1.0",
121
- "@assistant-ui/tsconfig": "0.0.0",
122
- "@assistant-ui/tsbuildutils": "^0.0.1"
121
+ "@assistant-ui/tsbuildutils": "^0.0.1",
122
+ "@assistant-ui/tsconfig": "0.0.0"
123
123
  },
124
124
  "publishConfig": {
125
125
  "access": "public",
@@ -1,4 +1,4 @@
1
- import { CoreMessage } from "../../../types";
1
+ import { CoreMessage } from "../types";
2
2
  import { AssistantCloudAPI } from "./AssistantCloudAPI";
3
3
  import { AssistantStream, PlainTextDecoder } from "assistant-stream";
4
4
 
@@ -0,0 +1,64 @@
1
+ import { RefObject, useState } from "react";
2
+ import { useThreadListItemRuntime } from "../context";
3
+ import { ThreadHistoryAdapter } from "../runtimes/adapters/thread-history/ThreadHistoryAdapter";
4
+ import { ExportedMessageRepositoryItem } from "../runtimes/utils/MessageRepository";
5
+ import { AssistantCloud } from "./AssistantCloud";
6
+ import { auiV0Decode, auiV0Encode } from "./auiV0";
7
+ import { ThreadListItemRuntime } from "../api";
8
+
9
+ class AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {
10
+ constructor(
11
+ private cloudRef: RefObject<AssistantCloud>,
12
+ private threadListItemRuntime: ThreadListItemRuntime,
13
+ ) {}
14
+
15
+ private _getIdForLocalId: Record<string, string | Promise<string>> = {};
16
+
17
+ async append({ parentId, message }: ExportedMessageRepositoryItem) {
18
+ const { remoteId } = await this.threadListItemRuntime.initialize();
19
+ const task = this.cloudRef.current.threads.messages
20
+ .create(remoteId, {
21
+ parent_id: parentId
22
+ ? ((await this._getIdForLocalId[parentId]) ?? parentId)
23
+ : null,
24
+ format: "aui/v0",
25
+ content: auiV0Encode(message),
26
+ })
27
+ .then(({ message_id }) => {
28
+ this._getIdForLocalId[message.id] = message_id;
29
+ return message_id;
30
+ });
31
+
32
+ this._getIdForLocalId[message.id] = task;
33
+
34
+ return task.then(() => {});
35
+ }
36
+
37
+ async load() {
38
+ const remoteId = this.threadListItemRuntime.getState().remoteId;
39
+ if (!remoteId) return { messages: [] };
40
+ const { messages } =
41
+ await this.cloudRef.current.threads.messages.list(remoteId);
42
+ const payload = {
43
+ messages: messages
44
+ .filter(
45
+ (m): m is typeof m & { format: "aui/v0" } => m.format === "aui/v0",
46
+ )
47
+ .map(auiV0Decode)
48
+ .reverse(),
49
+ };
50
+ return payload;
51
+ }
52
+ }
53
+
54
+ export const useAssistantCloudThreadHistoryAdapter = (
55
+ cloudRef: RefObject<AssistantCloud>,
56
+ ): ThreadHistoryAdapter => {
57
+ const threadListItemRuntime = useThreadListItemRuntime();
58
+ const [adapter] = useState(
59
+ () =>
60
+ new AssistantCloudThreadHistoryAdapter(cloudRef, threadListItemRuntime),
61
+ );
62
+
63
+ return adapter;
64
+ };
@@ -0,0 +1,48 @@
1
+ import { ReadonlyJSONObject } from "../utils/json/json-value";
2
+ import { AssistantCloudAPI } from "./AssistantCloudAPI";
3
+
4
+ export type CloudMessage = {
5
+ id: string;
6
+ parent_id: string | null;
7
+ height: number;
8
+ created_at: Date;
9
+ updated_at: Date;
10
+ format: "aui/v0" | string;
11
+ content: ReadonlyJSONObject;
12
+ };
13
+
14
+ type AssistantCloudThreadMessageListResponse = {
15
+ messages: CloudMessage[];
16
+ };
17
+
18
+ type AssistantCloudThreadMessageCreateBody = {
19
+ parent_id: string | null;
20
+ format: "aui/v0" | string;
21
+ content: ReadonlyJSONObject;
22
+ };
23
+
24
+ type AssistantCloudMessageCreateResponse = {
25
+ message_id: string;
26
+ };
27
+
28
+ export class AssistantCloudThreadMessages {
29
+ constructor(private cloud: AssistantCloudAPI) {}
30
+
31
+ public async list(
32
+ threadId: string,
33
+ ): Promise<AssistantCloudThreadMessageListResponse> {
34
+ return this.cloud.makeRequest(
35
+ `/threads/${encodeURIComponent(threadId)}/messages`,
36
+ );
37
+ }
38
+
39
+ public async create(
40
+ threadId: string,
41
+ body: AssistantCloudThreadMessageCreateBody,
42
+ ): Promise<AssistantCloudMessageCreateResponse> {
43
+ return this.cloud.makeRequest(
44
+ `/threads/${encodeURIComponent(threadId)}/messages`,
45
+ { method: "POST", body },
46
+ );
47
+ }
48
+ }
@@ -1,4 +1,5 @@
1
1
  import { AssistantCloudAPI } from "./AssistantCloudAPI";
2
+ import { AssistantCloudThreadMessages } from "./AssistantCloudThreadMessages";
2
3
 
3
4
  type AssistantCloudThreadsListQuery = {
4
5
  is_archived?: boolean;
@@ -42,7 +43,11 @@ type AssistantCloudThreadsUpdateBody = {
42
43
  };
43
44
 
44
45
  export class AssistantCloudThreads {
45
- constructor(private cloud: AssistantCloudAPI) {}
46
+ public readonly messages: AssistantCloudThreadMessages;
47
+
48
+ constructor(private cloud: AssistantCloudAPI) {
49
+ this.messages = new AssistantCloudThreadMessages(cloud);
50
+ }
46
51
 
47
52
  public async list(
48
53
  query?: AssistantCloudThreadsListQuery,
@@ -60,13 +65,15 @@ export class AssistantCloudThreads {
60
65
  threadId: string,
61
66
  body: AssistantCloudThreadsUpdateBody,
62
67
  ): Promise<void> {
63
- return this.cloud.makeRequest(`/threads/${threadId}`, {
68
+ return this.cloud.makeRequest(`/threads/${encodeURIComponent(threadId)}`, {
64
69
  method: "PUT",
65
70
  body,
66
71
  });
67
72
  }
68
73
 
69
74
  public async delete(threadId: string): Promise<void> {
70
- return this.cloud.makeRequest(`/threads/${threadId}`, { method: "DELETE" });
75
+ return this.cloud.makeRequest(`/threads/${encodeURIComponent(threadId)}`, {
76
+ method: "DELETE",
77
+ });
71
78
  }
72
79
  }
@@ -0,0 +1,130 @@
1
+ import { JSONObject } from "@ai-sdk/provider";
2
+ import { ThreadMessage } from "../types";
3
+ import { MessageStatus } from "../types/AssistantTypes";
4
+ import { fromThreadMessageLike } from "../runtimes/external-store/ThreadMessageLike";
5
+ import { CloudMessage } from "./AssistantCloudThreadMessages";
6
+ import { isJSONValue } from "../utils/json/is-json";
7
+ import { ReadonlyJSONValue } from "../utils/json/json-value";
8
+ import { ExportedMessageRepositoryItem } from "../runtimes/utils/MessageRepository";
9
+
10
+ type AuiV0MessageContentPart =
11
+ | {
12
+ readonly type: "text";
13
+ readonly text: string;
14
+ }
15
+ | {
16
+ readonly type: "tool-call";
17
+ readonly toolCallId: string;
18
+ readonly toolName: string;
19
+ readonly args: ReadonlyJSONValue;
20
+ readonly result?: ReadonlyJSONValue;
21
+ readonly isError?: true;
22
+ }
23
+ | {
24
+ readonly type: "tool-call";
25
+ readonly toolCallId: string;
26
+ readonly toolName: string;
27
+ readonly argsText: string;
28
+ readonly result?: ReadonlyJSONValue;
29
+ readonly isError?: true;
30
+ };
31
+
32
+ type AuiV0Message = {
33
+ readonly role: "assistant" | "user" | "system";
34
+ readonly status?: MessageStatus;
35
+ readonly content: readonly AuiV0MessageContentPart[];
36
+ readonly metadata: {
37
+ readonly unstable_annotations: readonly ReadonlyJSONValue[];
38
+ readonly unstable_data: readonly ReadonlyJSONValue[];
39
+ readonly steps: readonly {
40
+ readonly usage?: {
41
+ readonly promptTokens: number;
42
+ readonly completionTokens: number;
43
+ };
44
+ }[];
45
+ readonly custom: Readonly<JSONObject>;
46
+ };
47
+ };
48
+
49
+ export const auiV0Encode = (message: ThreadMessage): AuiV0Message => {
50
+ // TODO attachments are currently intentionally ignored
51
+ // info: ID and createdAt are ignored (we use the server value instead)
52
+ return {
53
+ role: message.role,
54
+ content: message.content.map((part) => {
55
+ const type = part.type;
56
+ switch (type) {
57
+ case "text": {
58
+ return {
59
+ type: "text",
60
+ text: part.text,
61
+ };
62
+ }
63
+
64
+ case "tool-call": {
65
+ if (!isJSONValue(part.result)) {
66
+ console.warn(
67
+ "tool-call result is not JSON! " + JSON.stringify(part),
68
+ );
69
+ }
70
+ return {
71
+ type: "tool-call",
72
+ toolCallId: part.toolCallId,
73
+ toolName: part.toolName,
74
+ ...(JSON.stringify(part.args) === part.argsText
75
+ ? {
76
+ args: part.args,
77
+ }
78
+ : { argsText: part.argsText }),
79
+ ...(part.result
80
+ ? { result: part.result as ReadonlyJSONValue }
81
+ : {}),
82
+ ...(part.isError ? { isError: true } : {}),
83
+ };
84
+ }
85
+
86
+ default: {
87
+ const unhandledType: "ui" | "image" | "file" | "audio" = type;
88
+ throw new Error(
89
+ `Content part type not supported by aui/v0: ${unhandledType}`,
90
+ );
91
+ }
92
+ }
93
+ }),
94
+ metadata: message.metadata as AuiV0Message["metadata"],
95
+ ...(message.status
96
+ ? {
97
+ status:
98
+ message.status?.type === "running"
99
+ ? {
100
+ type: "incomplete",
101
+ reason: "cancelled",
102
+ }
103
+ : message.status,
104
+ }
105
+ : undefined),
106
+ };
107
+ };
108
+
109
+ export const auiV0Decode = (
110
+ cloudMessage: CloudMessage & { format: "aui/v0" },
111
+ ): ExportedMessageRepositoryItem => {
112
+ const payload = cloudMessage.content as unknown as AuiV0Message;
113
+ const message = fromThreadMessageLike(
114
+ {
115
+ id: cloudMessage.id,
116
+ createdAt: cloudMessage.created_at,
117
+ ...payload,
118
+ },
119
+ cloudMessage.id,
120
+ {
121
+ type: "complete",
122
+ reason: "unknown",
123
+ },
124
+ );
125
+
126
+ return {
127
+ parentId: cloudMessage.parent_id,
128
+ message,
129
+ };
130
+ };
@@ -1,11 +1,21 @@
1
1
  "use client";
2
2
 
3
- import { useEffect, useRef, useState } from "react";
4
- import { useRemoteThreadListRuntime } from "../useRemoteThreadListRuntime";
3
+ import {
4
+ FC,
5
+ PropsWithChildren,
6
+ useCallback,
7
+ useEffect,
8
+ useMemo,
9
+ useRef,
10
+ useState,
11
+ } from "react";
5
12
  import { AssistantCloud } from "./AssistantCloud";
6
- import { AssistantRuntime } from "../../../api";
7
- import { RemoteThreadListSubscriber } from "../types";
8
- import { toCoreMessages } from "../../edge";
13
+ import { AssistantRuntime } from "../api";
14
+ import { RemoteThreadListSubscriber } from "../runtimes/remote-thread-list/types";
15
+ import { toCoreMessages } from "../runtimes/edge";
16
+ import { useRemoteThreadListRuntime } from "../runtimes/remote-thread-list/useRemoteThreadListRuntime";
17
+ import { RuntimeAdapterProvider } from "../runtimes/adapters/RuntimeAdapterProvider";
18
+ import { useAssistantCloudThreadHistoryAdapter } from "./AssistantCloudThreadHistoryAdapter";
9
19
 
10
20
  type ThreadData = {
11
21
  externalId: string;
@@ -104,6 +114,20 @@ export const useCloudThreadListRuntime = (adapter: CloudThreadListAdapter) => {
104
114
  subscribers.delete(callback);
105
115
  };
106
116
  },
117
+ unstable_Provider: useCallback<FC<PropsWithChildren>>(({ children }) => {
118
+ const history = useAssistantCloudThreadHistoryAdapter({
119
+ get current() {
120
+ return adapterRef.current.cloud;
121
+ },
122
+ });
123
+ const adapters = useMemo(() => ({ history }), [history]);
124
+
125
+ return (
126
+ <RuntimeAdapterProvider adapters={adapters}>
127
+ {children}
128
+ </RuntimeAdapterProvider>
129
+ );
130
+ }, []),
107
131
  });
108
132
 
109
133
  return runtime;
package/src/index.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./api";
2
+ export * from "./cloud";
2
3
  export * from "./context";
3
4
  export * from "./model-context";
4
5
  export * from "./primitives";
@@ -2,15 +2,13 @@
2
2
 
3
3
  import { FC } from "react";
4
4
  import { type AssistantToolProps, useAssistantTool } from "./useAssistantTool";
5
+ import { ReadonlyJSONObject } from "../utils/json/json-value";
5
6
 
6
7
  export type AssistantTool = FC & {
7
8
  unstable_tool: AssistantToolProps<any, any>;
8
9
  };
9
10
 
10
- export const makeAssistantTool = <
11
- TArgs extends Record<string, unknown>,
12
- TResult,
13
- >(
11
+ export const makeAssistantTool = <TArgs extends ReadonlyJSONObject, TResult>(
14
12
  tool: AssistantToolProps<TArgs, TResult>,
15
13
  ) => {
16
14
  const Tool: AssistantTool = () => {
@@ -5,15 +5,13 @@ import {
5
5
  type AssistantToolUIProps,
6
6
  useAssistantToolUI,
7
7
  } from "./useAssistantToolUI";
8
+ import { ReadonlyJSONObject } from "../utils/json/json-value";
8
9
 
9
10
  export type AssistantToolUI = FC & {
10
11
  unstable_tool: AssistantToolUIProps<any, any>;
11
12
  };
12
13
 
13
- export const makeAssistantToolUI = <
14
- TArgs extends Record<string, unknown>,
15
- TResult,
16
- >(
14
+ export const makeAssistantToolUI = <TArgs extends ReadonlyJSONObject, TResult>(
17
15
  tool: AssistantToolUIProps<TArgs, TResult>,
18
16
  ) => {
19
17
  const ToolUI: AssistantToolUI = () => {
@@ -7,9 +7,10 @@ import {
7
7
  } from "../context/react/AssistantContext";
8
8
  import type { ToolCallContentPartComponent } from "../types/ContentPartComponentTypes";
9
9
  import type { Tool } from "./ModelContextTypes";
10
+ import { ReadonlyJSONObject } from "../utils/json/json-value";
10
11
 
11
12
  export type AssistantToolProps<
12
- TArgs extends Record<string, unknown>,
13
+ TArgs extends ReadonlyJSONObject,
13
14
  TResult,
14
15
  > = Tool<TArgs, TResult> & {
15
16
  toolName: string;
@@ -17,10 +18,7 @@ export type AssistantToolProps<
17
18
  disabled?: boolean | undefined;
18
19
  };
19
20
 
20
- export const useAssistantTool = <
21
- TArgs extends Record<string, unknown>,
22
- TResult,
23
- >(
21
+ export const useAssistantTool = <TArgs extends ReadonlyJSONObject, TResult>(
24
22
  tool: AssistantToolProps<TArgs, TResult>,
25
23
  ) => {
26
24
  const assistantRuntime = useAssistantRuntime();
@@ -3,11 +3,9 @@
3
3
  import { useEffect } from "react";
4
4
  import { useToolUIsStore } from "../context/react/AssistantContext";
5
5
  import type { ToolCallContentPartComponent } from "../types/ContentPartComponentTypes";
6
+ import { ReadonlyJSONObject } from "../utils/json/json-value";
6
7
 
7
- export type AssistantToolUIProps<
8
- TArgs extends Record<string, unknown>,
9
- TResult,
10
- > = {
8
+ export type AssistantToolUIProps<TArgs extends ReadonlyJSONObject, TResult> = {
11
9
  toolName: string;
12
10
  render: ToolCallContentPartComponent<TArgs, TResult>;
13
11
  };
@@ -3,8 +3,9 @@
3
3
  import { FC, useCallback, useEffect, useState } from "react";
4
4
  import { ToolCallContentPartProps } from "../types";
5
5
  import { create } from "zustand";
6
+ import { ReadonlyJSONObject } from "../utils/json/json-value";
6
7
 
7
- export const useInlineRender = <TArgs extends Record<string, unknown>, TResult>(
8
+ export const useInlineRender = <TArgs extends ReadonlyJSONObject, TResult>(
8
9
  toolUI: FC<ToolCallContentPartProps<TArgs, TResult>>,
9
10
  ): FC<ToolCallContentPartProps<TArgs, TResult>> => {
10
11
  const [useToolUI] = useState(() => create(() => toolUI));
@@ -68,9 +68,9 @@ export class EdgeChatAdapter implements ChatModelAdapter {
68
68
  body: JSON.stringify({
69
69
  system: context.system,
70
70
  messages: this.options.unstable_AISDKInterop
71
- ? (toLanguageModelMessages(
72
- messages,
73
- ) as EdgeRuntimeRequestOptions["messages"]) // TODO figure out a better way to do this
71
+ ? (toLanguageModelMessages(messages, {
72
+ unstable_includeId: this.options.unstable_sendMessageIds,
73
+ }) as EdgeRuntimeRequestOptions["messages"]) // TODO figure out a better way to do this
74
74
  : toCoreMessages(messages, {
75
75
  unstable_includeId: this.options.unstable_sendMessageIds,
76
76
  }),
@@ -4,6 +4,7 @@ import {
4
4
  LanguageModelV1CallSettingsSchema,
5
5
  } from "../../model-context/ModelContextTypes";
6
6
  import { z } from "zod";
7
+ import { ReadonlyJSONObject } from "../../utils/json/json-value";
7
8
 
8
9
  const LanguageModelV1FunctionToolSchema = z.object({
9
10
  type: z.literal("function"),
@@ -42,11 +43,12 @@ const CoreToolCallContentPartSchema = z.object({
42
43
  type: z.literal("tool-call"),
43
44
  toolCallId: z.string(),
44
45
  toolName: z.string(),
45
- args: z.record(z.unknown()),
46
+ args: z
47
+ .record(z.unknown())
48
+ .refine((c): c is ReadonlyJSONObject => c !== undefined),
46
49
  result: z.unknown().optional(),
47
50
  isError: z.boolean().optional(),
48
51
  });
49
- // args is required but unknown;
50
52
 
51
53
  const CoreUserMessageSchema = z.object({
52
54
  role: z.literal("user"),
@@ -1,6 +1,7 @@
1
1
  import { LanguageModelV1Message } from "@ai-sdk/provider";
2
2
  import { CoreMessage, ToolCallContentPart } from "../../../types";
3
3
  import { Writable } from "stream";
4
+ import { ReadonlyJSONObject } from "../../../utils/json/json-value";
4
5
 
5
6
  type fromLanguageModelMessagesOptions = {
6
7
  mergeSteps: boolean;
@@ -76,7 +77,7 @@ export const fromLanguageModelMessages = (
76
77
  toolCallId: part.toolCallId,
77
78
  toolName: part.toolName,
78
79
  argsText: JSON.stringify(part.args),
79
- args: part.args as Record<string, unknown>,
80
+ args: part.args as ReadonlyJSONObject,
80
81
  } satisfies ToolCallContentPart;
81
82
  }
82
83
  return part;
@@ -74,12 +74,22 @@ const assistantMessageSplitter = () => {
74
74
 
75
75
  export function toLanguageModelMessages(
76
76
  message: readonly CoreMessage[] | readonly ThreadMessage[],
77
+ options: { unstable_includeId?: boolean | undefined } = {},
77
78
  ): LanguageModelV1Message[] {
79
+ const includeId = options.unstable_includeId ?? false;
78
80
  return message.flatMap((message) => {
79
81
  const role = message.role;
80
82
  switch (role) {
81
83
  case "system": {
82
- return [{ role: "system", content: message.content[0].text }];
84
+ return [
85
+ {
86
+ ...(includeId
87
+ ? { unstable_id: (message as ThreadMessage).id }
88
+ : {}),
89
+ role: "system",
90
+ content: message.content[0].text,
91
+ },
92
+ ];
83
93
  }
84
94
 
85
95
  case "user": {
@@ -89,6 +99,7 @@ export function toLanguageModelMessages(
89
99
  ...attachments.map((a) => a.content).flat(),
90
100
  ];
91
101
  const msg: LanguageModelV1Message = {
102
+ ...(includeId ? { unstable_id: (message as ThreadMessage).id } : {}),
92
103
  role: "user",
93
104
  content: content.map(
94
105
  (
@@ -26,7 +26,7 @@ import { streamPartEncoderStream } from "./streams/utils/streamPartEncoderStream
26
26
  import { z } from "zod";
27
27
 
28
28
  type FinishResult = {
29
- messages: CoreMessage[];
29
+ messages: readonly CoreMessage[];
30
30
  metadata: {
31
31
  steps: readonly ThreadStep[];
32
32
  };
@@ -111,7 +111,7 @@ export const getEdgeRuntimeStream = async ({
111
111
  abortSignal,
112
112
 
113
113
  ...(!!system ? { system } : undefined),
114
- messages: [...messages],
114
+ messages,
115
115
  tools: lmServerTools.concat(clientTools as LanguageModelV1FunctionTool[]),
116
116
  ...(toolChoice ? { toolChoice } : undefined),
117
117
  });
@@ -201,7 +201,7 @@ export const createEdgeRuntimeAPI = (options: CreateEdgeRuntimeAPIOptions) => ({
201
201
  type StreamMessageOptions = LanguageModelV1CallSettings & {
202
202
  model: LanguageModelV1;
203
203
  system?: string;
204
- messages: CoreMessage[];
204
+ messages: readonly CoreMessage[];
205
205
  tools?: LanguageModelV1FunctionTool[];
206
206
  toolChoice?: LanguageModelV1ToolChoice;
207
207
  abortSignal: AbortSignal;
@@ -229,7 +229,7 @@ async function streamMessage({
229
229
 
230
230
  export function convertToLanguageModelPrompt(
231
231
  system: string | undefined,
232
- messages: CoreMessage[],
232
+ messages: readonly CoreMessage[],
233
233
  ): LanguageModelV1Prompt {
234
234
  const languageModelMessages: LanguageModelV1Prompt = [];
235
235
 
@@ -1,4 +1,5 @@
1
- import { JSONValue, LanguageModelV1StreamPart } from "@ai-sdk/provider";
1
+ import { LanguageModelV1StreamPart } from "@ai-sdk/provider";
2
+ import { ReadonlyJSONValue } from "../../../utils/json/json-value";
2
3
 
3
4
  export enum AssistantStreamChunkType {
4
5
  TextDelta = "0",
@@ -17,8 +18,8 @@ export enum AssistantStreamChunkType {
17
18
 
18
19
  export type AssistantStreamChunk = {
19
20
  [AssistantStreamChunkType.TextDelta]: string;
20
- [AssistantStreamChunkType.Data]: JSONValue[];
21
- [AssistantStreamChunkType.Annotation]: JSONValue[];
21
+ [AssistantStreamChunkType.Data]: ReadonlyJSONValue[];
22
+ [AssistantStreamChunkType.Annotation]: ReadonlyJSONValue[];
22
23
  [AssistantStreamChunkType.ToolCall]: {
23
24
  toolCallId: string;
24
25
  toolName: string;
@@ -1,5 +1,5 @@
1
1
  import { CoreChatModelRunResult } from "../../local/ChatModelAdapter";
2
- import { parsePartialJson } from "../partial-json/parse-partial-json";
2
+ import { parsePartialJson } from "../../../utils/json/parse-partial-json";
3
3
  import { LanguageModelV1StreamPart } from "@ai-sdk/provider";
4
4
  import { ToolResultStreamPart } from "./toolResultStream";
5
5
  import { MessageStatus, ToolCallContentPart } from "../../../types";
@@ -1,17 +1,18 @@
1
1
  import { Tool } from "../../../model-context/ModelContextTypes";
2
- import { JSONValue, LanguageModelV1StreamPart } from "@ai-sdk/provider";
2
+ import { LanguageModelV1StreamPart } from "@ai-sdk/provider";
3
3
  import { z } from "zod";
4
4
  import sjson from "secure-json-parse";
5
+ import { ReadonlyJSONValue } from "../../../utils/json/json-value";
5
6
 
6
7
  export type ToolResultStreamPart =
7
8
  | LanguageModelV1StreamPart
8
9
  | {
9
10
  type: "annotations";
10
- annotations: JSONValue[];
11
+ annotations: ReadonlyJSONValue[];
11
12
  }
12
13
  | {
13
14
  type: "data";
14
- data: JSONValue[];
15
+ data: ReadonlyJSONValue[];
15
16
  }
16
17
  | {
17
18
  type: "tool-result";