@dxos/plugin-assistant 0.8.0 → 0.8.1-main.013e445

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 (240) hide show
  1. package/dist/lib/browser/{AssistantDialog-TX6YYBUG.mjs → AssistantDialog-EIUUSXDS.mjs} +11 -10
  2. package/dist/lib/browser/AssistantDialog-EIUUSXDS.mjs.map +7 -0
  3. package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs → ChatContainer-NHHA6CSP.mjs} +5 -5
  4. package/dist/lib/browser/TemplateContainer-7IQ6V5AD.mjs +78 -0
  5. package/dist/lib/browser/TemplateContainer-7IQ6V5AD.mjs.map +7 -0
  6. package/dist/lib/browser/ai-client-BAPVMSNX.mjs +35 -0
  7. package/dist/lib/browser/ai-client-BAPVMSNX.mjs.map +7 -0
  8. package/dist/lib/browser/{app-graph-builder-AXAIFOGV.mjs → app-graph-builder-DTCUWBKB.mjs} +57 -13
  9. package/dist/lib/browser/app-graph-builder-DTCUWBKB.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-G7B54APW.mjs → chunk-25APJ3ZK.mjs} +34 -12
  11. package/dist/lib/browser/chunk-25APJ3ZK.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-EUMPBC4T.mjs → chunk-6FTPLBSC.mjs} +2 -2
  13. package/dist/lib/browser/{chunk-NV7SVHMV.mjs → chunk-AF7VQAKS.mjs} +1 -1
  14. package/dist/lib/browser/{chunk-NV7SVHMV.mjs.map → chunk-AF7VQAKS.mjs.map} +2 -2
  15. package/dist/lib/browser/{chunk-NFVIZS3B.mjs → chunk-KGIACFAX.mjs} +351 -207
  16. package/dist/lib/browser/chunk-KGIACFAX.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-VZ4W6SHE.mjs → chunk-SVUCJXGN.mjs} +2 -2
  18. package/dist/lib/browser/chunk-SVUCJXGN.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-FRIKXDDQ.mjs → chunk-X6ALDUA5.mjs} +26 -4
  20. package/dist/lib/browser/chunk-X6ALDUA5.mjs.map +7 -0
  21. package/dist/lib/browser/index.mjs +25 -27
  22. package/dist/lib/browser/index.mjs.map +3 -3
  23. package/dist/lib/browser/{intent-resolver-QRVRZL6K.mjs → intent-resolver-U57FXP3I.mjs} +6 -3
  24. package/dist/lib/browser/{intent-resolver-QRVRZL6K.mjs.map → intent-resolver-U57FXP3I.mjs.map} +3 -3
  25. package/dist/lib/browser/meta.json +1 -1
  26. package/dist/lib/browser/{react-surface-JLXNWOI6.mjs → react-surface-YNN5NYJW.mjs} +10 -9
  27. package/dist/lib/browser/react-surface-YNN5NYJW.mjs.map +7 -0
  28. package/dist/lib/browser/{settings-JTT62IHD.mjs → settings-VAW6UWFL.mjs} +3 -3
  29. package/dist/lib/browser/types/index.mjs +6 -2
  30. package/dist/lib/node/{AssistantDialog-U4GBPZD6.cjs → AssistantDialog-GT7R7MKH.cjs} +17 -16
  31. package/dist/lib/node/AssistantDialog-GT7R7MKH.cjs.map +7 -0
  32. package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs → ChatContainer-JUZOEZZ7.cjs} +10 -10
  33. package/dist/lib/node/TemplateContainer-VPAZRFQA.cjs +104 -0
  34. package/dist/lib/node/TemplateContainer-VPAZRFQA.cjs.map +7 -0
  35. package/dist/lib/node/{ai-client-YANJEPO3.cjs → ai-client-5ESLYXAV.cjs} +19 -8
  36. package/dist/lib/node/ai-client-5ESLYXAV.cjs.map +7 -0
  37. package/dist/lib/node/{app-graph-builder-D7SHQTZS.cjs → app-graph-builder-3P6WSON2.cjs} +63 -20
  38. package/dist/lib/node/app-graph-builder-3P6WSON2.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-IXJCGW7U.cjs → chunk-G2HY3UJ4.cjs} +40 -18
  40. package/dist/lib/node/chunk-G2HY3UJ4.cjs.map +7 -0
  41. package/dist/lib/node/{chunk-XUTDR7HI.cjs → chunk-JAB6KLPP.cjs} +356 -216
  42. package/dist/lib/node/chunk-JAB6KLPP.cjs.map +7 -0
  43. package/dist/lib/node/{chunk-37GI4NYH.cjs → chunk-KLSNCP34.cjs} +33 -9
  44. package/dist/lib/node/chunk-KLSNCP34.cjs.map +7 -0
  45. package/dist/lib/node/{chunk-NV4TQQSU.cjs → chunk-N3SW6DJ6.cjs} +6 -6
  46. package/dist/lib/node/{chunk-GNPXCHFT.cjs → chunk-U6J2GO7I.cjs} +4 -4
  47. package/dist/lib/node/{chunk-GNPXCHFT.cjs.map → chunk-U6J2GO7I.cjs.map} +2 -2
  48. package/dist/lib/node/{chunk-ZGH6F5YA.cjs → chunk-VRXFIS4X.cjs} +6 -6
  49. package/dist/lib/node/chunk-VRXFIS4X.cjs.map +7 -0
  50. package/dist/lib/node/index.cjs +75 -77
  51. package/dist/lib/node/index.cjs.map +3 -3
  52. package/dist/lib/node/{intent-resolver-YMMAFVOB.cjs → intent-resolver-YIFAMM3B.cjs} +13 -10
  53. package/dist/lib/node/{intent-resolver-YMMAFVOB.cjs.map → intent-resolver-YIFAMM3B.cjs.map} +3 -3
  54. package/dist/lib/node/meta.json +1 -1
  55. package/dist/lib/node/{react-surface-BSUZQ3HZ.cjs → react-surface-IDGIN55C.cjs} +25 -24
  56. package/dist/lib/node/react-surface-IDGIN55C.cjs.map +7 -0
  57. package/dist/lib/node/{settings-4YEO7KXF.cjs → settings-2FEYGLYU.cjs} +8 -8
  58. package/dist/lib/node/types/index.cjs +15 -11
  59. package/dist/lib/node/types/index.cjs.map +2 -2
  60. package/dist/lib/node-esm/{AssistantDialog-5AT5JAZL.mjs → AssistantDialog-JMBFM6QH.mjs} +11 -10
  61. package/dist/lib/node-esm/AssistantDialog-JMBFM6QH.mjs.map +7 -0
  62. package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs → ChatContainer-ZNN5CMVL.mjs} +5 -5
  63. package/dist/lib/node-esm/TemplateContainer-YLA6BJY6.mjs +79 -0
  64. package/dist/lib/node-esm/TemplateContainer-YLA6BJY6.mjs.map +7 -0
  65. package/dist/lib/node-esm/ai-client-XYZ5N7CR.mjs +36 -0
  66. package/dist/lib/node-esm/ai-client-XYZ5N7CR.mjs.map +7 -0
  67. package/dist/lib/node-esm/{app-graph-builder-H2GC2AZA.mjs → app-graph-builder-PMAQLTTN.mjs} +57 -13
  68. package/dist/lib/node-esm/app-graph-builder-PMAQLTTN.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-77ARTFBA.mjs → chunk-2CIYX3SD.mjs} +2 -2
  70. package/dist/lib/node-esm/chunk-2CIYX3SD.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-LBQGJE5T.mjs → chunk-J63VQFQO.mjs} +2 -2
  72. package/dist/lib/node-esm/{chunk-7SV6X6XU.mjs → chunk-N6BVC2C2.mjs} +1 -1
  73. package/dist/lib/node-esm/{chunk-7SV6X6XU.mjs.map → chunk-N6BVC2C2.mjs.map} +2 -2
  74. package/dist/lib/node-esm/{chunk-CJ4Y3QW5.mjs → chunk-NMMRHHAR.mjs} +26 -4
  75. package/dist/lib/node-esm/chunk-NMMRHHAR.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-7JENJTLB.mjs → chunk-PK5JCOYB.mjs} +351 -207
  77. package/dist/lib/node-esm/chunk-PK5JCOYB.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-AMQMVQJO.mjs → chunk-SMUINDXQ.mjs} +34 -12
  79. package/dist/lib/node-esm/chunk-SMUINDXQ.mjs.map +7 -0
  80. package/dist/lib/node-esm/index.mjs +25 -27
  81. package/dist/lib/node-esm/index.mjs.map +3 -3
  82. package/dist/lib/node-esm/{intent-resolver-MR7BOKEW.mjs → intent-resolver-SQ4HLL5L.mjs} +6 -3
  83. package/dist/lib/node-esm/{intent-resolver-MR7BOKEW.mjs.map → intent-resolver-SQ4HLL5L.mjs.map} +3 -3
  84. package/dist/lib/node-esm/meta.json +1 -1
  85. package/dist/lib/node-esm/{react-surface-IGVYAOGL.mjs → react-surface-424JZTZ4.mjs} +10 -9
  86. package/dist/lib/node-esm/react-surface-424JZTZ4.mjs.map +7 -0
  87. package/dist/lib/node-esm/{settings-S7P5RWQI.mjs → settings-VHR5KT4J.mjs} +3 -3
  88. package/dist/lib/node-esm/types/index.mjs +6 -2
  89. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/ai-client.d.ts +2 -2
  91. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/capabilities.d.ts +3 -2
  94. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/index.d.ts +1 -1
  96. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  98. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts +5 -4
  99. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
  100. package/dist/types/src/components/AssistantDialog.d.ts.map +1 -1
  101. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +2 -1
  102. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  103. package/dist/types/src/components/ChatContainer.d.ts +2 -1
  104. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  105. package/dist/types/src/components/Prompt/Prompt.d.ts +3 -0
  106. package/dist/types/src/components/Prompt/Prompt.d.ts.map +1 -1
  107. package/dist/types/src/components/Prompt/Prompt.stories.d.ts +1 -0
  108. package/dist/types/src/components/Prompt/Prompt.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/Prompt/PromptBar.d.ts +3 -2
  110. package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
  111. package/dist/types/src/components/Prompt/references.d.ts +30 -0
  112. package/dist/types/src/components/Prompt/references.d.ts.map +1 -0
  113. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +2 -1
  114. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +1 -1
  115. package/dist/types/src/components/TemplateContainer.d.ts +2 -1
  116. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  117. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
  118. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  119. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +2 -1
  120. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  121. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +3 -2
  122. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  123. package/dist/types/src/components/Thread/Thread.d.ts +12 -1
  124. package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
  125. package/dist/types/src/components/Thread/ThreadContainer.d.ts +1 -0
  126. package/dist/types/src/components/Thread/ThreadContainer.d.ts.map +1 -1
  127. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -1
  128. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +1 -1
  130. package/dist/types/src/components/Toolbox/Toolbox.d.ts +4 -3
  131. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  132. package/dist/types/src/components/index.d.ts +2 -2
  133. package/dist/types/src/components/index.d.ts.map +1 -1
  134. package/dist/types/src/hooks/email.d.ts.map +1 -1
  135. package/dist/types/src/hooks/index.d.ts +1 -0
  136. package/dist/types/src/hooks/index.d.ts.map +1 -1
  137. package/dist/types/src/hooks/invocation-handler.d.ts +1 -1
  138. package/dist/types/src/hooks/invocation-handler.d.ts.map +1 -1
  139. package/dist/types/src/hooks/processor.d.ts +10 -15
  140. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  141. package/dist/types/src/hooks/useChatProcessor.d.ts +9 -2
  142. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  143. package/dist/types/src/hooks/useContextProvider.d.ts +17 -0
  144. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -0
  145. package/dist/types/src/hooks/useMessageQueue.d.ts +4 -4
  146. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  147. package/dist/types/src/meta.d.ts +2 -8
  148. package/dist/types/src/meta.d.ts.map +1 -1
  149. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  150. package/dist/types/src/tools/function.d.ts +1 -1
  151. package/dist/types/src/tools/function.d.ts.map +1 -1
  152. package/dist/types/src/translations.d.ts +23 -12
  153. package/dist/types/src/translations.d.ts.map +1 -1
  154. package/dist/types/src/types/service.d.ts +1 -1
  155. package/dist/types/src/types/service.d.ts.map +1 -1
  156. package/dist/types/src/types/template.d.ts +36 -0
  157. package/dist/types/src/types/template.d.ts.map +1 -1
  158. package/dist/types/src/types/types.d.ts +3 -1
  159. package/dist/types/src/types/types.d.ts.map +1 -1
  160. package/package.json +56 -56
  161. package/src/AssistantPlugin.tsx +11 -4
  162. package/src/capabilities/ai-client.ts +23 -4
  163. package/src/capabilities/app-graph-builder.ts +48 -4
  164. package/src/capabilities/capabilities.ts +4 -2
  165. package/src/capabilities/intent-resolver.ts +1 -1
  166. package/src/capabilities/react-surface.tsx +3 -2
  167. package/src/components/AmbientDialog/AmbientDialog.tsx +11 -11
  168. package/src/components/AssistantDialog.tsx +7 -1
  169. package/src/components/AssistantSettings/AssistantSettings.tsx +39 -5
  170. package/src/components/Prompt/Prompt.stories.tsx +34 -0
  171. package/src/components/Prompt/Prompt.tsx +28 -18
  172. package/src/components/Prompt/PromptBar.tsx +18 -7
  173. package/src/components/Prompt/references.ts +180 -0
  174. package/src/components/TemplateContainer.tsx +79 -4
  175. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +1 -1
  176. package/src/components/TemplateEditor/TemplateForm.stories.tsx +1 -1
  177. package/src/components/TemplateEditor/TemplateForm.tsx +1 -1
  178. package/src/components/Thread/Thread.tsx +21 -0
  179. package/src/components/Thread/ThreadContainer.stories.tsx +7 -12
  180. package/src/components/Thread/ThreadContainer.tsx +7 -4
  181. package/src/components/Thread/ThreadMessage.tsx +17 -9
  182. package/src/components/Toolbox/Toolbox.tsx +1 -1
  183. package/src/components/index.ts +3 -0
  184. package/src/hooks/email.ts +3 -3
  185. package/src/hooks/index.ts +1 -0
  186. package/src/hooks/invocation-handler.ts +3 -5
  187. package/src/hooks/processor.ts +60 -110
  188. package/src/hooks/useChatProcessor.tsx +25 -17
  189. package/src/hooks/useContextProvider.ts +55 -0
  190. package/src/hooks/useLocalTriggerManager.ts +1 -1
  191. package/src/hooks/useMessageQueue.ts +2 -4
  192. package/src/meta.ts +2 -2
  193. package/src/testing/test-functions.ts +2 -2
  194. package/src/tools/function.ts +2 -2
  195. package/src/tools/openapi.test.ts +4 -4
  196. package/src/translations.ts +10 -5
  197. package/src/types/service.ts +1 -1
  198. package/src/types/template.ts +22 -0
  199. package/src/types/types.ts +3 -1
  200. package/dist/lib/browser/AssistantDialog-TX6YYBUG.mjs.map +0 -7
  201. package/dist/lib/browser/TemplateContainer-B7MQNUPY.mjs +0 -23
  202. package/dist/lib/browser/TemplateContainer-B7MQNUPY.mjs.map +0 -7
  203. package/dist/lib/browser/ai-client-RTCGRKZE.mjs +0 -22
  204. package/dist/lib/browser/ai-client-RTCGRKZE.mjs.map +0 -7
  205. package/dist/lib/browser/app-graph-builder-AXAIFOGV.mjs.map +0 -7
  206. package/dist/lib/browser/chunk-FRIKXDDQ.mjs.map +0 -7
  207. package/dist/lib/browser/chunk-G7B54APW.mjs.map +0 -7
  208. package/dist/lib/browser/chunk-NFVIZS3B.mjs.map +0 -7
  209. package/dist/lib/browser/chunk-VZ4W6SHE.mjs.map +0 -7
  210. package/dist/lib/browser/react-surface-JLXNWOI6.mjs.map +0 -7
  211. package/dist/lib/node/AssistantDialog-U4GBPZD6.cjs.map +0 -7
  212. package/dist/lib/node/TemplateContainer-R4BZZP3E.cjs +0 -53
  213. package/dist/lib/node/TemplateContainer-R4BZZP3E.cjs.map +0 -7
  214. package/dist/lib/node/ai-client-YANJEPO3.cjs.map +0 -7
  215. package/dist/lib/node/app-graph-builder-D7SHQTZS.cjs.map +0 -7
  216. package/dist/lib/node/chunk-37GI4NYH.cjs.map +0 -7
  217. package/dist/lib/node/chunk-IXJCGW7U.cjs.map +0 -7
  218. package/dist/lib/node/chunk-XUTDR7HI.cjs.map +0 -7
  219. package/dist/lib/node/chunk-ZGH6F5YA.cjs.map +0 -7
  220. package/dist/lib/node/react-surface-BSUZQ3HZ.cjs.map +0 -7
  221. package/dist/lib/node-esm/AssistantDialog-5AT5JAZL.mjs.map +0 -7
  222. package/dist/lib/node-esm/TemplateContainer-WSHTZBB5.mjs +0 -24
  223. package/dist/lib/node-esm/TemplateContainer-WSHTZBB5.mjs.map +0 -7
  224. package/dist/lib/node-esm/ai-client-66IBZVCX.mjs +0 -23
  225. package/dist/lib/node-esm/ai-client-66IBZVCX.mjs.map +0 -7
  226. package/dist/lib/node-esm/app-graph-builder-H2GC2AZA.mjs.map +0 -7
  227. package/dist/lib/node-esm/chunk-77ARTFBA.mjs.map +0 -7
  228. package/dist/lib/node-esm/chunk-7JENJTLB.mjs.map +0 -7
  229. package/dist/lib/node-esm/chunk-AMQMVQJO.mjs.map +0 -7
  230. package/dist/lib/node-esm/chunk-CJ4Y3QW5.mjs.map +0 -7
  231. package/dist/lib/node-esm/react-surface-IGVYAOGL.mjs.map +0 -7
  232. /package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs.map → ChatContainer-NHHA6CSP.mjs.map} +0 -0
  233. /package/dist/lib/browser/{chunk-EUMPBC4T.mjs.map → chunk-6FTPLBSC.mjs.map} +0 -0
  234. /package/dist/lib/browser/{settings-JTT62IHD.mjs.map → settings-VAW6UWFL.mjs.map} +0 -0
  235. /package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs.map → ChatContainer-JUZOEZZ7.cjs.map} +0 -0
  236. /package/dist/lib/node/{chunk-NV4TQQSU.cjs.map → chunk-N3SW6DJ6.cjs.map} +0 -0
  237. /package/dist/lib/node/{settings-4YEO7KXF.cjs.map → settings-2FEYGLYU.cjs.map} +0 -0
  238. /package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs.map → ChatContainer-ZNN5CMVL.mjs.map} +0 -0
  239. /package/dist/lib/node-esm/{chunk-LBQGJE5T.mjs.map → chunk-J63VQFQO.mjs.map} +0 -0
  240. /package/dist/lib/node-esm/{settings-S7P5RWQI.mjs.map → settings-VHR5KT4J.mjs.map} +0 -0
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_XUTDR7HI_exports = {};
30
- __export(chunk_XUTDR7HI_exports, {
29
+ var chunk_JAB6KLPP_exports = {};
30
+ __export(chunk_JAB6KLPP_exports, {
31
31
  AiClient: () => AiClient,
32
32
  AppGraphBuilder: () => AppGraphBuilder,
33
33
  AssistantSettings: () => AssistantSettings,
@@ -39,20 +39,20 @@ __export(chunk_XUTDR7HI_exports, {
39
39
  ToolboxContainer: () => ToolboxContainer,
40
40
  useServices: () => useServices
41
41
  });
42
- module.exports = __toCommonJS(chunk_XUTDR7HI_exports);
43
- var import_chunk_ZGH6F5YA = require("./chunk-ZGH6F5YA.cjs");
44
- var import_chunk_37GI4NYH = require("./chunk-37GI4NYH.cjs");
45
- var import_chunk_GNPXCHFT = require("./chunk-GNPXCHFT.cjs");
42
+ module.exports = __toCommonJS(chunk_JAB6KLPP_exports);
43
+ var import_chunk_VRXFIS4X = require("./chunk-VRXFIS4X.cjs");
44
+ var import_chunk_KLSNCP34 = require("./chunk-KLSNCP34.cjs");
45
+ var import_chunk_U6J2GO7I = require("./chunk-U6J2GO7I.cjs");
46
46
  var import_react = __toESM(require("react"));
47
47
  var import_app_framework = require("@dxos/app-framework");
48
48
  var import_artifact = require("@dxos/artifact");
49
- var import_functions = require("@dxos/functions");
49
+ var import_types = require("@dxos/functions/types");
50
50
  var import_log = require("@dxos/log");
51
51
  var import_echo = require("@dxos/react-client/echo");
52
52
  var import_react_ui_theme = require("@dxos/react-ui-theme");
53
53
  var import_artifact2 = require("@dxos/artifact");
54
54
  var import_echo_schema = require("@dxos/echo-schema");
55
- var import_functions2 = require("@dxos/functions");
55
+ var import_types2 = require("@dxos/functions/types");
56
56
  var import_log2 = require("@dxos/log");
57
57
  var import_echo2 = require("@dxos/react-client/echo");
58
58
  var import_jsonpointer = __toESM(require("jsonpointer"));
@@ -78,12 +78,17 @@ var import_log4 = require("@dxos/log");
78
78
  var import_react_ui_components3 = require("@dxos/react-ui-components");
79
79
  var import_react_ui_syntax_highlighter2 = require("@dxos/react-ui-syntax-highlighter");
80
80
  var import_util4 = require("@dxos/util");
81
+ var import_state = require("@codemirror/state");
81
82
  var import_react5 = __toESM(require("react"));
82
83
  var import_react_ui2 = require("@dxos/react-ui");
83
84
  var import_react_ui_editor = require("@dxos/react-ui-editor");
84
85
  var import_react_ui_theme4 = require("@dxos/react-ui-theme");
85
- var import_state = require("@codemirror/state");
86
+ var import_state2 = require("@codemirror/state");
86
87
  var import_view = require("@codemirror/view");
88
+ var import_autocomplete = require("@codemirror/autocomplete");
89
+ var import_state3 = require("@codemirror/state");
90
+ var import_view2 = require("@codemirror/view");
91
+ var import_async = require("@dxos/async");
87
92
  var import_react6 = __toESM(require("react"));
88
93
  var import_plugin_transcription = require("@dxos/plugin-transcription");
89
94
  var import_react_ui3 = require("@dxos/react-ui");
@@ -94,55 +99,57 @@ var import_invariant3 = require("@dxos/invariant");
94
99
  var import_log5 = require("@dxos/log");
95
100
  var import_echo3 = require("@dxos/react-client/echo");
96
101
  var import_signals_core = require("@preact/signals-core");
97
- var import_artifact4 = require("@dxos/artifact");
98
102
  var import_assistant = require("@dxos/assistant");
99
- var import_echo_schema3 = require("@dxos/echo-schema");
100
103
  var import_invariant4 = require("@dxos/invariant");
101
104
  var import_log6 = require("@dxos/log");
102
105
  var import_react8 = require("react");
103
106
  var import_app_framework2 = require("@dxos/app-framework");
104
- var import_artifact5 = require("@dxos/artifact");
107
+ var import_artifact4 = require("@dxos/artifact");
105
108
  var import_assistant2 = require("@dxos/assistant");
106
- var import_functions3 = require("@dxos/functions");
109
+ var import_types3 = require("@dxos/functions/types");
107
110
  var import_log7 = require("@dxos/log");
108
111
  var import_react_client = require("@dxos/react-client");
109
112
  var import_echo4 = require("@dxos/react-client/echo");
110
113
  var import_util5 = require("@dxos/util");
111
114
  var import_app_framework3 = require("@dxos/app-framework");
112
115
  var import_react9 = require("react");
113
- var import_async = require("@dxos/async");
116
+ var import_async2 = require("@dxos/async");
114
117
  var import_context = require("@dxos/context");
115
- var import_functions4 = require("@dxos/functions");
116
- var import_functions5 = require("@dxos/functions");
118
+ var import_functions = require("@dxos/functions");
119
+ var import_types4 = require("@dxos/functions/types");
117
120
  var import_invariant5 = require("@dxos/invariant");
118
121
  var import_log8 = require("@dxos/log");
119
122
  var import_react_client2 = require("@dxos/react-client");
120
123
  var import_echo5 = require("@dxos/react-client/echo");
121
- var import_async2 = require("@dxos/async");
124
+ var import_async3 = require("@dxos/async");
122
125
  var import_echo_db = require("@dxos/echo-db");
123
- var import_functions6 = require("@dxos/functions");
126
+ var import_types5 = require("@dxos/functions/types");
124
127
  var import_invariant6 = require("@dxos/invariant");
125
128
  var import_keys = require("@dxos/keys");
126
129
  var import_log9 = require("@dxos/log");
127
130
  var import_react10 = require("react");
128
131
  var import_keys2 = require("@dxos/keys");
129
132
  var import_echo6 = require("@dxos/react-client/echo");
130
- var import_react_edge_client = require("@dxos/react-edge-client");
131
133
  var import_react11 = require("react");
132
- var import_artifact6 = require("@dxos/artifact");
134
+ var import_artifact5 = require("@dxos/artifact");
133
135
  var import_assistant3 = require("@dxos/assistant");
134
- var import_echo_schema4 = require("@dxos/echo-schema");
136
+ var import_echo_schema3 = require("@dxos/echo-schema");
135
137
  var import_react12 = require("react");
138
+ var import_react13 = require("react");
139
+ var import_app_framework4 = require("@dxos/app-framework");
140
+ var import_echo_schema4 = require("@dxos/echo-schema");
141
+ var import_log10 = require("@dxos/log");
142
+ var import_echo7 = require("@dxos/react-client/echo");
136
143
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/tools/function.ts";
137
144
  var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
138
145
  if (!fn.description || !fn.inputSchema) {
139
146
  return void 0;
140
147
  }
141
- const existingFunctionUrl = (0, import_functions2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
148
+ const existingFunctionUrl = (0, import_types2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
142
149
  if (!existingFunctionUrl) {
143
150
  return void 0;
144
151
  }
145
- const url = (0, import_functions2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
152
+ const url = (0, import_types2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
146
153
  spaceId
147
154
  });
148
155
  return (0, import_artifact2.defineTool)("user-function", {
@@ -609,7 +616,7 @@ var Section = ({ title, items, striped }) => {
609
616
  };
610
617
  var ToolboxContainer = ({ classNames, space }) => {
611
618
  const artifactDefinitions = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.ArtifactDefinition);
612
- const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_37GI4NYH.ServiceType));
619
+ const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_KLSNCP34.ServiceType));
613
620
  const [serviceTools, setServiceTools] = (0, import_react.useState)([]);
614
621
  (0, import_react.useEffect)(() => {
615
622
  (0, import_log.log)("creating service tools...", {
@@ -630,7 +637,7 @@ var ToolboxContainer = ({ classNames, space }) => {
630
637
  }, [
631
638
  services
632
639
  ]);
633
- const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionType));
640
+ const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_types.FunctionType));
634
641
  return /* @__PURE__ */ import_react.default.createElement(Toolbox, {
635
642
  classNames,
636
643
  artifacts: artifactDefinitions,
@@ -755,7 +762,7 @@ var ToolContainer = ({ classNames, items }) => {
755
762
  };
756
763
  var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadMessage.tsx";
757
764
  var panelClassNames = "flex flex-col w-full px-2 bg-groupSurface rounded-md";
758
- var userClassNames = "bg-[--user-fill]";
765
+ var userClassNames = "bg-[--user-fill] text-inverse";
759
766
  var ToggleContainer2 = (props) => {
760
767
  return /* @__PURE__ */ import_react3.default.createElement(import_react_ui_components2.ToggleContainer, {
761
768
  ...props,
@@ -780,7 +787,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
780
787
  const { role, content = [] } = message;
781
788
  if (isToolMessage(message)) {
782
789
  return /* @__PURE__ */ import_react3.default.createElement(MessageContainer, {
783
- classNames
790
+ classNames: (0, import_react_ui_theme3.mx)(classNames, "animate-[fadeIn_0.5s]")
784
791
  }, /* @__PURE__ */ import_react3.default.createElement(ToolBlock, {
785
792
  space,
786
793
  classNames: panelClassNames,
@@ -795,7 +802,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
795
802
  const Component = components[block.type] ?? components.default;
796
803
  return /* @__PURE__ */ import_react3.default.createElement(MessageContainer, {
797
804
  key: idx,
798
- classNames,
805
+ classNames: (0, import_react_ui_theme3.mx)(classNames, "animate-[fadeIn_0.5s]"),
799
806
  user: block.type === "text" && role === "user"
800
807
  }, /* @__PURE__ */ import_react3.default.createElement(Component, {
801
808
  space,
@@ -811,7 +818,7 @@ var components = {
811
818
  ["text"]: ({ block }) => {
812
819
  (0, import_invariant2.invariant)(block.type === "text", void 0, {
813
820
  F: __dxlog_file5,
814
- L: 86,
821
+ L: 90,
815
822
  S: void 0,
816
823
  A: [
817
824
  "block.type === 'text'",
@@ -821,6 +828,7 @@ var components = {
821
828
  const title = block.disposition ? titles[block.disposition] : void 0;
822
829
  if (!title) {
823
830
  return /* @__PURE__ */ import_react3.default.createElement(import_react_ui_components2.MarkdownViewer, {
831
+ classNames: "[&>p]:animate-[fadeIn_0.5s]",
824
832
  content: block.text
825
833
  });
826
834
  }
@@ -847,7 +855,7 @@ var components = {
847
855
  ["json"]: ({ space, block, onPrompt }) => {
848
856
  (0, import_invariant2.invariant)(block.type === "json", void 0, {
849
857
  F: __dxlog_file5,
850
- L: 124,
858
+ L: 128,
851
859
  S: void 0,
852
860
  A: [
853
861
  "block.type === 'json'",
@@ -874,7 +882,10 @@ var components = {
874
882
  }
875
883
  case "select": {
876
884
  const { options = [] } = (0, import_util3.safeParseJson)(block.json ?? "{}") ?? {};
877
- return /* @__PURE__ */ import_react3.default.createElement(import_react_ui.ButtonGroup, null, options.map((option) => /* @__PURE__ */ import_react3.default.createElement(import_react_ui.Button, {
885
+ return /* @__PURE__ */ import_react3.default.createElement("div", {
886
+ className: "flex flex-wrap gap-1"
887
+ }, options.map((option, idx) => /* @__PURE__ */ import_react3.default.createElement(import_react_ui.Button, {
888
+ classNames: "animate-[fadeIn_0.5s] rounded-2xl text-sm",
878
889
  key: option,
879
890
  onClick: () => onPrompt?.(option)
880
891
  }, option)));
@@ -1020,7 +1031,7 @@ var createAutocompleteExtension = ({ onSubmit, onSuggest }) => {
1020
1031
  }
1021
1032
  }),
1022
1033
  // Accept the current suggestion.
1023
- import_state.Prec.highest(import_view.keymap.of([
1034
+ import_state2.Prec.highest(import_view.keymap.of([
1024
1035
  {
1025
1036
  key: "Tab",
1026
1037
  preventDefault: true,
@@ -1109,9 +1120,120 @@ var InlineSuggestionWidget = class extends import_view.WidgetType {
1109
1120
  return other.suffix === this.suffix;
1110
1121
  }
1111
1122
  };
1112
- var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFocus, lineWrapping = false, placeholder, onSubmit, onSuggest, onOpenChange }, forwardRef2) => {
1123
+ var promptReferences = ({ provider, debug = false, triggerCharacter = "@" }) => {
1124
+ if (triggerCharacter.length !== 1) {
1125
+ throw new Error("triggerCharacter must be a single character");
1126
+ }
1127
+ const decorationField = import_view2.ViewPlugin.fromClass(class ReferenceView {
1128
+ constructor(view) {
1129
+ this._mutex = new import_async.Mutex();
1130
+ this.decorations = import_view2.Decoration.set([]);
1131
+ queueMicrotask(async () => {
1132
+ const guard = await this._mutex.acquire();
1133
+ try {
1134
+ this.decorations = await this._computeDecorations(view);
1135
+ } finally {
1136
+ guard.release();
1137
+ }
1138
+ });
1139
+ }
1140
+ update(update) {
1141
+ if (update.docChanged) {
1142
+ queueMicrotask(async () => {
1143
+ const guard = await this._mutex.acquire();
1144
+ try {
1145
+ this.decorations = await this._computeDecorations(update.view);
1146
+ } finally {
1147
+ guard.release();
1148
+ }
1149
+ });
1150
+ }
1151
+ }
1152
+ async _computeDecorations(view) {
1153
+ const text = view.state.doc.toString();
1154
+ const references = text.matchAll(new RegExp(`${triggerCharacter}[a-zA-Z0-9@:]+\\s`, "g"));
1155
+ const decorations = [];
1156
+ for (const match of references) {
1157
+ const reference = match[0];
1158
+ const uri = reference.slice(1, -1);
1159
+ const data = await provider.resolveReference({
1160
+ uri
1161
+ });
1162
+ if (data) {
1163
+ decorations.push(import_view2.Decoration.replace({
1164
+ widget: new ReferenceWidget(data)
1165
+ }).range(match.index, match.index + reference.length));
1166
+ }
1167
+ }
1168
+ return import_view2.Decoration.set(decorations);
1169
+ }
1170
+ }, {
1171
+ decorations: (v) => v.decorations,
1172
+ provide: (plugin) => [
1173
+ import_view2.EditorView.atomicRanges.of((view) => view.plugin(decorationField)?.decorations ?? import_state3.RangeSet.empty)
1174
+ ]
1175
+ });
1176
+ return [
1177
+ decorationField,
1178
+ import_view2.EditorView.theme({
1179
+ ".cm-reference-pill": {
1180
+ borderRadius: "0.25rem",
1181
+ borderWidth: "1px",
1182
+ marginRight: "0.25rem",
1183
+ marginLeft: "0.25rem"
1184
+ }
1185
+ }),
1186
+ (0, import_autocomplete.autocompletion)({
1187
+ activateOnTyping: true,
1188
+ override: [
1189
+ async (context) => {
1190
+ const match = context.matchBefore(new RegExp(`${triggerCharacter}[a-zA-Z0-9]+`));
1191
+ if (!match || match?.to === match?.from) {
1192
+ return null;
1193
+ }
1194
+ const query = match.text.slice(1);
1195
+ const references = await provider.getReferences({
1196
+ query
1197
+ });
1198
+ return {
1199
+ from: match.from,
1200
+ filter: false,
1201
+ options: references.map((reference) => ({
1202
+ label: reference.label,
1203
+ apply: `${triggerCharacter}${reference.uri} `
1204
+ }))
1205
+ };
1206
+ }
1207
+ ],
1208
+ closeOnBlur: !debug,
1209
+ tooltipClass: () => "shadow rounded",
1210
+ aboveCursor: true
1211
+ }),
1212
+ import_view2.keymap.of(import_autocomplete.completionKeymap)
1213
+ ];
1214
+ };
1215
+ var ReferenceWidget = class extends import_view2.WidgetType {
1216
+ constructor(data) {
1217
+ super();
1218
+ this.data = data;
1219
+ }
1220
+ toDOM() {
1221
+ const span = document.createElement("span");
1222
+ span.textContent = `@ ${this.data.label}`;
1223
+ span.className = "cm-reference-pill";
1224
+ return span;
1225
+ }
1226
+ eq(other) {
1227
+ return other.data.uri === this.data.uri;
1228
+ }
1229
+ ignoreEvent() {
1230
+ return true;
1231
+ }
1232
+ };
1233
+ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFocus, lineWrapping = false, placeholder, onSubmit, onSuggest, onOpenChange, references }, forwardRef2) => {
1113
1234
  const { themeMode } = (0, import_react_ui2.useThemeContext)();
1114
1235
  const { parentRef, view } = (0, import_react_ui_editor.useTextEditor)({
1236
+ debug: true,
1115
1237
  autoFocus,
1116
1238
  extensions: [
1117
1239
  (0, import_react_ui_editor.createBasicExtensions)({
@@ -1122,13 +1244,16 @@ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFo
1122
1244
  (0, import_react_ui_editor.createThemeExtensions)({
1123
1245
  themeMode
1124
1246
  }),
1247
+ references ? promptReferences({
1248
+ provider: references
1249
+ }) : [],
1125
1250
  createAutocompleteExtension({
1126
1251
  onSubmit,
1127
1252
  onSuggest
1128
1253
  }),
1129
- import_react_ui_editor.keymap.of([
1254
+ import_state.Prec.highest(import_react_ui_editor.keymap.of([
1130
1255
  {
1131
- key: "Alt-ArrowUp",
1256
+ key: "cmd-ArrowUp",
1132
1257
  preventDefault: true,
1133
1258
  run: (view2) => {
1134
1259
  onOpenChange?.(true);
@@ -1136,14 +1261,14 @@ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFo
1136
1261
  }
1137
1262
  },
1138
1263
  {
1139
- key: "Alt-ArrowDown",
1264
+ key: "cmd-ArrowDown",
1140
1265
  preventDefault: true,
1141
1266
  run: (view2) => {
1142
1267
  onOpenChange?.(false);
1143
1268
  return true;
1144
1269
  }
1145
1270
  }
1146
- ])
1271
+ ]))
1147
1272
  ]
1148
1273
  }, [
1149
1274
  themeMode,
@@ -1175,11 +1300,11 @@ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFo
1175
1300
  ]);
1176
1301
  return /* @__PURE__ */ import_react5.default.createElement("div", {
1177
1302
  ref: parentRef,
1178
- className: (0, import_react_ui_theme4.mx)("w-full overflow-hidden", classNames)
1303
+ className: (0, import_react_ui_theme4.mx)("w-full", classNames)
1179
1304
  });
1180
1305
  });
1181
- var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, ...props }) => {
1182
- const { t } = (0, import_react_ui3.useTranslation)(import_chunk_GNPXCHFT.ASSISTANT_PLUGIN);
1306
+ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, references, ...props }) => {
1307
+ const { t } = (0, import_react_ui3.useTranslation)(import_chunk_U6J2GO7I.ASSISTANT_PLUGIN);
1183
1308
  const promptRef = (0, import_react6.useRef)(null);
1184
1309
  const [active, setActive] = (0, import_react6.useState)(false);
1185
1310
  const { recording } = (0, import_plugin_transcription.useVoiceInput)({
@@ -1190,14 +1315,18 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1190
1315
  }
1191
1316
  });
1192
1317
  return /* @__PURE__ */ import_react6.default.createElement("div", {
1193
- className: (0, import_react_ui_theme5.mx)("flex shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
1318
+ className: (0, import_react_ui_theme5.mx)("shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
1194
1319
  }, /* @__PURE__ */ import_react6.default.createElement("div", {
1195
1320
  className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
1196
- }, error && /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Icon, {
1321
+ }, error && /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Root, {
1322
+ delayDuration: 0
1323
+ }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Trigger, null, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Icon, {
1197
1324
  icon: "ph--warning-circle--regular",
1198
1325
  classNames: import_react_ui_theme5.errorText,
1199
1326
  size: 5
1200
- }) || /* @__PURE__ */ import_react6.default.createElement(import_react_ui_sfx.Spinner, {
1327
+ })), /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Portal, null, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Content, null, /* @__PURE__ */ import_react6.default.createElement("div", {
1328
+ className: "text-sm text-error-500"
1329
+ }, error.message), /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Arrow, null)))) || /* @__PURE__ */ import_react6.default.createElement(import_react_ui_sfx.Spinner, {
1201
1330
  active: processing
1202
1331
  })), /* @__PURE__ */ import_react6.default.createElement(Prompt, {
1203
1332
  ref: promptRef,
@@ -1205,6 +1334,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1205
1334
  classNames: "pbs-2",
1206
1335
  lineWrapping: true,
1207
1336
  placeholder: placeholder ?? t("prompt placeholder"),
1337
+ references,
1208
1338
  ...props
1209
1339
  }), (onCancel || microphone) && /* @__PURE__ */ import_react6.default.createElement("div", {
1210
1340
  className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
@@ -1230,7 +1360,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1230
1360
  onTouchEnd: () => setActive(false)
1231
1361
  })));
1232
1362
  };
1233
- var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, ...props }) => {
1363
+ var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, contextProvider, ...props }) => {
1234
1364
  const scroller = (0, import_react2.useRef)(null);
1235
1365
  const identity = (0, import_halo.useIdentity)();
1236
1366
  const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
@@ -1256,6 +1386,21 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
1256
1386
  messages,
1257
1387
  collapse
1258
1388
  ]);
1389
+ const references = (0, import_react2.useMemo)(() => {
1390
+ if (!contextProvider) {
1391
+ return void 0;
1392
+ }
1393
+ return {
1394
+ getReferences: async ({ query }) => contextProvider.query({
1395
+ query
1396
+ }),
1397
+ resolveReference: async ({ uri }) => contextProvider.resolveMetadata({
1398
+ uri
1399
+ })
1400
+ };
1401
+ }, [
1402
+ contextProvider
1403
+ ]);
1259
1404
  return /* @__PURE__ */ import_react2.default.createElement("div", {
1260
1405
  role: "none",
1261
1406
  className: (0, import_react_ui_theme2.mx)("flex flex-col grow overflow-hidden", classNames)
@@ -1280,24 +1425,24 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
1280
1425
  error,
1281
1426
  onSubmit: handleSubmit,
1282
1427
  onCancel,
1283
- onOpenChange
1428
+ onOpenChange,
1429
+ references
1284
1430
  }));
1285
1431
  };
1286
1432
  var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/processor.ts";
1287
1433
  var defaultOptions = {
1288
- model: import_assistant.DEFAULT_LLM_MODEL,
1434
+ model: import_assistant.DEFAULT_EDGE_MODEL,
1289
1435
  systemPrompt: "you are a helpful assistant"
1290
1436
  };
1291
1437
  var ChatProcessor = class {
1292
- constructor(_service, _tools, _extensions, _options = defaultOptions) {
1293
- this._service = _service;
1438
+ constructor(_ai, _tools, _artifacts, _extensions, _options = defaultOptions) {
1439
+ this._ai = _ai;
1294
1440
  this._tools = _tools;
1441
+ this._artifacts = _artifacts;
1295
1442
  this._extensions = _extensions;
1296
1443
  this._options = _options;
1297
- this._parser = new import_assistant.MixedStreamParser();
1298
1444
  this._pending = (0, import_signals_core.signal)([]);
1299
1445
  this._block = (0, import_signals_core.signal)(void 0);
1300
- this._history = [];
1301
1446
  this.streaming = (0, import_signals_core.computed)(() => this._block.value !== void 0);
1302
1447
  this.error = (0, import_signals_core.signal)(void 0);
1303
1448
  this.messages = (0, import_signals_core.computed)(() => {
@@ -1308,7 +1453,7 @@ var ChatProcessor = class {
1308
1453
  const current = messages.pop();
1309
1454
  (0, import_invariant4.invariant)(current, void 0, {
1310
1455
  F: __dxlog_file6,
1311
- L: 85,
1456
+ L: 70,
1312
1457
  S: this,
1313
1458
  A: [
1314
1459
  "current",
@@ -1327,20 +1472,6 @@ var ChatProcessor = class {
1327
1472
  }
1328
1473
  return messages;
1329
1474
  });
1330
- this._parser.message.on((message) => {
1331
- (0, import_signals_core.batch)(() => {
1332
- this._pending.value = [
1333
- ...this._pending.value,
1334
- message
1335
- ];
1336
- this._block.value = void 0;
1337
- });
1338
- });
1339
- this._parser.update.on((block) => {
1340
- (0, import_signals_core.batch)(() => {
1341
- this._block.value = block;
1342
- });
1343
- });
1344
1475
  }
1345
1476
  get tools() {
1346
1477
  return this._tools;
@@ -1355,23 +1486,70 @@ var ChatProcessor = class {
1355
1486
  * Make GPT request.
1356
1487
  */
1357
1488
  async request(message, options = {}) {
1358
- (0, import_signals_core.batch)(() => {
1359
- this._history = options.history ?? [];
1489
+ this._session = new import_assistant.AISession({
1490
+ operationModel: "immediate"
1491
+ });
1492
+ this._session.message.on((message2) => {
1493
+ (0, import_signals_core.batch)(() => {
1494
+ this._pending.value = [
1495
+ ...this._pending.value,
1496
+ message2
1497
+ ];
1498
+ this._block.value = void 0;
1499
+ });
1500
+ });
1501
+ this._session.update.on((block) => {
1502
+ (0, import_signals_core.batch)(() => {
1503
+ this._block.value = block;
1504
+ });
1505
+ });
1506
+ this._session.userMessage.on((message2) => {
1360
1507
  this._pending.value = [
1361
- (0, import_echo_schema3.createStatic)(import_artifact4.Message, {
1362
- role: "user",
1363
- content: [
1364
- {
1365
- type: "text",
1366
- text: message
1367
- }
1368
- ]
1369
- })
1508
+ ...this._pending.value,
1509
+ message2
1370
1510
  ];
1371
- this._block.value = void 0;
1372
1511
  });
1373
- await this._request();
1374
- options.onComplete?.(this._pending.value);
1512
+ try {
1513
+ const messages = await this._session.run({
1514
+ client: this._ai,
1515
+ history: options.history ?? [],
1516
+ artifacts: this._artifacts ?? [],
1517
+ tools: this._tools ?? [],
1518
+ prompt: message,
1519
+ extensions: this._extensions,
1520
+ generationOptions: {
1521
+ model: this._options.model,
1522
+ systemPrompt: this._options.systemPrompt
1523
+ }
1524
+ });
1525
+ import_log6.log.info("completed", {
1526
+ messages
1527
+ }, {
1528
+ F: __dxlog_file6,
1529
+ L: 137,
1530
+ S: this,
1531
+ C: (f, a) => f(...a)
1532
+ });
1533
+ options.onComplete?.(this._pending.value);
1534
+ } catch (err) {
1535
+ import_log6.log.catch(err, void 0, {
1536
+ F: __dxlog_file6,
1537
+ L: 141,
1538
+ S: this,
1539
+ C: (f, a) => f(...a)
1540
+ });
1541
+ if (err instanceof Error && err.message.includes("Overloaded")) {
1542
+ this.error.value = new AIServiceOverloadedError("AI service overloaded", {
1543
+ cause: err
1544
+ });
1545
+ } else {
1546
+ this.error.value = new Error("AI service error", {
1547
+ cause: err
1548
+ });
1549
+ }
1550
+ } finally {
1551
+ this._session = void 0;
1552
+ }
1375
1553
  return this._reset();
1376
1554
  }
1377
1555
  /**
@@ -1381,135 +1559,45 @@ var ChatProcessor = class {
1381
1559
  async cancel() {
1382
1560
  import_log6.log.info("cancelling...", void 0, {
1383
1561
  F: __dxlog_file6,
1384
- L: 152,
1562
+ L: 159,
1385
1563
  S: this,
1386
1564
  C: (f, a) => f(...a)
1387
1565
  });
1388
- this._stream?.abort();
1566
+ this._session?.abort();
1389
1567
  return this._reset();
1390
1568
  }
1391
1569
  async _reset() {
1392
1570
  const messages = this._pending.value;
1393
1571
  (0, import_signals_core.batch)(() => {
1394
- this._history = [];
1395
1572
  this._pending.value = [];
1396
1573
  this._block.value = void 0;
1397
1574
  });
1398
1575
  return messages;
1399
1576
  }
1400
- /**
1401
- * Generate a response from the AI service.
1402
- * Iterates over tool requests.
1403
- */
1404
- async _request() {
1405
- try {
1406
- let more = false;
1407
- do {
1408
- (0, import_log6.log)("request", {
1409
- pending: this._pending.value.length,
1410
- history: this._history.length,
1411
- tools: this._tools?.map((tool) => tool.name)
1412
- }, {
1413
- F: __dxlog_file6,
1414
- L: 176,
1415
- S: this,
1416
- C: (f, a) => f(...a)
1417
- });
1418
- this._stream = await this._service.exec({
1419
- ...this._options,
1420
- // TODO(burdon): Rename messages or separate history/message.
1421
- history: [
1422
- ...this._history,
1423
- ...this._pending.value
1424
- ],
1425
- tools: this._tools
1426
- });
1427
- await this._parser.parse(this._stream);
1428
- await this._stream.complete();
1429
- (0, import_log6.log)("response", {
1430
- pending: this._pending.value
1431
- }, {
1432
- F: __dxlog_file6,
1433
- L: 195,
1434
- S: this,
1435
- C: (f, a) => f(...a)
1436
- });
1437
- more = false;
1438
- const message = this._pending.value.at(-1);
1439
- (0, import_invariant4.invariant)(message, void 0, {
1440
- F: __dxlog_file6,
1441
- L: 200,
1442
- S: this,
1443
- A: [
1444
- "message",
1445
- ""
1446
- ]
1447
- });
1448
- if ((0, import_assistant.isToolUse)(message)) {
1449
- (0, import_log6.log)("tool request...", void 0, {
1450
- F: __dxlog_file6,
1451
- L: 202,
1452
- S: this,
1453
- C: (f, a) => f(...a)
1454
- });
1455
- const response = await (0, import_assistant.runTools)({
1456
- message: this._pending.value.at(-1),
1457
- tools: this._tools ?? [],
1458
- extensions: this._extensions
1459
- });
1460
- (0, import_log6.log)("tool response", {
1461
- response
1462
- }, {
1463
- F: __dxlog_file6,
1464
- L: 209,
1465
- S: this,
1466
- C: (f, a) => f(...a)
1467
- });
1468
- switch (response.type) {
1469
- case "continue": {
1470
- this._pending.value = [
1471
- ...this._pending.value,
1472
- response.message
1473
- ];
1474
- more = true;
1475
- break;
1476
- }
1477
- }
1478
- }
1479
- } while (more);
1480
- this.error.value = void 0;
1481
- } catch (err) {
1482
- import_log6.log.catch(err, void 0, {
1483
- F: __dxlog_file6,
1484
- L: 222,
1485
- S: this,
1486
- C: (f, a) => f(...a)
1487
- });
1488
- this.error.value = new Error("AI service error", {
1489
- cause: err
1490
- });
1491
- } finally {
1492
- this._stream = void 0;
1493
- }
1577
+ };
1578
+ var AIServiceOverloadedError = class extends Error {
1579
+ constructor() {
1580
+ super(...arguments);
1581
+ this.code = "AI_SERVICE_OVERLOADED";
1494
1582
  }
1495
1583
  };
1496
- var AiClient = (0, import_app_framework3.lazy)(() => import("./ai-client-YANJEPO3.cjs"));
1497
- var AppGraphBuilder = (0, import_app_framework3.lazy)(() => import("./app-graph-builder-D7SHQTZS.cjs"));
1498
- var IntentResolver = (0, import_app_framework3.lazy)(() => import("./intent-resolver-YMMAFVOB.cjs"));
1499
- var ReactSurface = (0, import_app_framework3.lazy)(() => import("./react-surface-BSUZQ3HZ.cjs"));
1500
- var AssistantSettings = (0, import_app_framework3.lazy)(() => import("./settings-4YEO7KXF.cjs"));
1584
+ var AiClient = (0, import_app_framework3.lazy)(() => import("./ai-client-5ESLYXAV.cjs"));
1585
+ var AppGraphBuilder = (0, import_app_framework3.lazy)(() => import("./app-graph-builder-3P6WSON2.cjs"));
1586
+ var IntentResolver = (0, import_app_framework3.lazy)(() => import("./intent-resolver-YIFAMM3B.cjs"));
1587
+ var ReactSurface = (0, import_app_framework3.lazy)(() => import("./react-surface-IDGIN55C.cjs"));
1588
+ var AssistantSettings = (0, import_app_framework3.lazy)(() => import("./settings-2FEYGLYU.cjs"));
1501
1589
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx";
1502
- var useChatProcessor = (space, settings) => {
1503
- const aiClient = (0, import_app_framework2.useCapability)(import_chunk_ZGH6F5YA.AssistantCapabilities.AiClient);
1590
+ var useChatProcessor = ({ chat, space, settings, part = "deck" }) => {
1591
+ const aiClient = (0, import_app_framework2.useCapability)(import_chunk_VRXFIS4X.AssistantCapabilities.AiClient);
1504
1592
  const globalTools = (0, import_app_framework2.useCapabilities)(import_app_framework2.Capabilities.Tools);
1505
1593
  const artifactDefinitions = (0, import_app_framework2.useCapabilities)(import_app_framework2.Capabilities.ArtifactDefinition);
1506
1594
  const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
1507
- const services = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_chunk_37GI4NYH.ServiceType));
1595
+ const services = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_chunk_KLSNCP34.ServiceType));
1508
1596
  const [serviceTools, setServiceTools] = (0, import_react8.useState)([]);
1509
1597
  (0, import_react8.useEffect)(() => {
1510
1598
  (0, import_log7.log)("creating service tools...", void 0, {
1511
1599
  F: __dxlog_file7,
1512
- L: 34,
1600
+ L: 41,
1513
1601
  S: void 0,
1514
1602
  C: (f, a) => f(...a)
1515
1603
  });
@@ -1521,23 +1609,27 @@ var useChatProcessor = (space, settings) => {
1521
1609
  services
1522
1610
  ]);
1523
1611
  const config = (0, import_react_client.useConfig)();
1524
- const functions = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_functions3.FunctionType));
1612
+ const functions = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_types3.FunctionType));
1613
+ const chatId = (0, import_react8.useMemo)(() => chat ? (0, import_echo4.fullyQualifiedId)(chat) : void 0, [
1614
+ chat
1615
+ ]);
1525
1616
  const [tools, extensions] = (0, import_react8.useMemo)(() => {
1526
1617
  (0, import_log7.log)("creating tools...", void 0, {
1527
1618
  F: __dxlog_file7,
1528
- L: 45,
1619
+ L: 53,
1529
1620
  S: void 0,
1530
1621
  C: (f, a) => f(...a)
1531
1622
  });
1532
1623
  const tools2 = [
1533
1624
  ...globalTools.flat(),
1534
- ...artifactDefinitions.flatMap((definition) => definition.tools),
1535
1625
  ...serviceTools,
1536
1626
  ...functions.map((fn) => covertFunctionToTool(fn, config.values.runtime?.services?.edge?.url ?? "", space?.id)).filter(import_util5.isNonNullable)
1537
1627
  ];
1538
1628
  const extensions2 = {
1539
1629
  space,
1540
- dispatch
1630
+ dispatch,
1631
+ pivotId: chatId,
1632
+ part
1541
1633
  };
1542
1634
  return [
1543
1635
  tools2,
@@ -1546,41 +1638,40 @@ var useChatProcessor = (space, settings) => {
1546
1638
  }, [
1547
1639
  dispatch,
1548
1640
  globalTools,
1549
- artifactDefinitions,
1550
1641
  space,
1642
+ chatId,
1551
1643
  serviceTools,
1552
1644
  functions
1553
1645
  ]);
1554
- const systemPrompt = (0, import_react8.useMemo)(() => (0, import_artifact5.createSystemPrompt)({
1646
+ const systemPrompt = (0, import_react8.useMemo)(() => (0, import_artifact4.createSystemPrompt)({
1555
1647
  artifacts: artifactDefinitions.map((definition) => definition.instructions)
1556
1648
  }), [
1557
1649
  artifactDefinitions
1558
1650
  ]);
1651
+ const model = settings?.llmProvider === "ollama" ? settings?.ollamaModel ?? import_assistant2.DEFAULT_OLLAMA_MODEL : settings?.edgeModel ?? import_assistant2.DEFAULT_EDGE_MODEL;
1559
1652
  const processor = (0, import_react8.useMemo)(() => {
1560
1653
  (0, import_log7.log)("creating processor...", {
1561
1654
  settings
1562
1655
  }, {
1563
1656
  F: __dxlog_file7,
1564
- L: 70,
1657
+ L: 83,
1565
1658
  S: void 0,
1566
1659
  C: (f, a) => f(...a)
1567
1660
  });
1568
- return new ChatProcessor(aiClient, tools, extensions, {
1569
- // TODO(burdon): Remove defualt (let backend decide if not specified).
1570
- model: settings?.llmModel ?? import_assistant2.DEFAULT_LLM_MODEL,
1571
- // TOOD(burdon): Query.
1661
+ return new ChatProcessor(aiClient.value, tools, artifactDefinitions, extensions, {
1662
+ model,
1572
1663
  systemPrompt
1573
1664
  });
1574
1665
  }, [
1575
- aiClient,
1666
+ aiClient.value,
1576
1667
  tools,
1577
1668
  extensions,
1578
- systemPrompt,
1579
- settings?.llmModel
1669
+ model,
1670
+ systemPrompt
1580
1671
  ]);
1581
1672
  return processor;
1582
1673
  };
1583
- var registerTriggersMutex = new import_async.Mutex();
1674
+ var registerTriggersMutex = new import_async2.Mutex();
1584
1675
  var useMessageQueue = (chat) => {
1585
1676
  const space = (0, import_echo6.getSpace)(chat);
1586
1677
  const queueDxn = (0, import_react10.useMemo)(() => {
@@ -1594,8 +1685,7 @@ var useMessageQueue = (chat) => {
1594
1685
  space,
1595
1686
  chat?.queue.dxn
1596
1687
  ]);
1597
- const edgeClient = (0, import_react_edge_client.useEdgeClient)();
1598
- return (0, import_react_edge_client.useQueue)(edgeClient, queueDxn);
1688
+ return (0, import_echo6.useQueue)(queueDxn);
1599
1689
  };
1600
1690
  var MockServiceRegistry = class {
1601
1691
  async queryServices(query) {
@@ -1618,7 +1708,7 @@ var VISUAL_CROSSING_CREDENTIALS = {
1618
1708
  }
1619
1709
  };
1620
1710
  var TEST_SERVICES = [
1621
- (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1711
+ (0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1622
1712
  serviceId: "amadeus.com/service/FlightSearch",
1623
1713
  name: "Amadeus Flight Search",
1624
1714
  description: "Search for local and international flights.",
@@ -1631,7 +1721,7 @@ var TEST_SERVICES = [
1631
1721
  }
1632
1722
  ]
1633
1723
  }),
1634
- (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1724
+ (0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1635
1725
  serviceId: "amadeus.com/service/HotelSearch",
1636
1726
  name: "Amadeus Hotel Search",
1637
1727
  description: "Search for local and international hotels.",
@@ -1644,7 +1734,7 @@ var TEST_SERVICES = [
1644
1734
  }
1645
1735
  ]
1646
1736
  }),
1647
- (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1737
+ (0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1648
1738
  serviceId: "visualcrossing.com/service/Weather",
1649
1739
  name: "Visual Crossing Weather",
1650
1740
  description: "Search for global weather forecasts.",
@@ -1658,7 +1748,7 @@ var TEST_SERVICES = [
1658
1748
  ]
1659
1749
  }),
1660
1750
  // TODO(burdon): Needs auth.
1661
- (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1751
+ (0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1662
1752
  serviceId: "abstractapi.com/service/GeoLocation",
1663
1753
  name: "Abstract GeoLocation",
1664
1754
  description: "Get the location of any IP address.",
@@ -1675,11 +1765,11 @@ var TEST_SERVICES = [
1675
1765
  //
1676
1766
  ...Array.from({
1677
1767
  length: 20
1678
- }, (_, i) => (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1768
+ }, (_, i) => (0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1679
1769
  serviceId: `example.com/service/test-${i}`,
1680
1770
  name: `Test ${i}`,
1681
1771
  description: `Test ${i}`,
1682
- category: Object.keys(import_chunk_37GI4NYH.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_37GI4NYH.categoryIcons).length)],
1772
+ category: Object.keys(import_chunk_KLSNCP34.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_KLSNCP34.categoryIcons).length)],
1683
1773
  interfaces: [
1684
1774
  {
1685
1775
  kind: "api",
@@ -1703,10 +1793,59 @@ var useServices = (space, query) => {
1703
1793
  ]);
1704
1794
  return services;
1705
1795
  };
1706
- var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx";
1707
- var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) => {
1796
+ var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useContextProvider.ts";
1797
+ var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
1798
+ var useContextProvider = (space) => {
1799
+ const artifactDefinitions = (0, import_app_framework4.useCapabilities)(import_app_framework4.Capabilities.ArtifactDefinition);
1800
+ return (0, import_react13.useMemo)(() => {
1801
+ if (!space) {
1802
+ return void 0;
1803
+ }
1804
+ return {
1805
+ query: async ({ query }) => {
1806
+ const artifactSchemas = artifactDefinitions.map((artifact) => artifact.schema);
1807
+ const { objects } = await space.db.query(import_echo7.Filter.or(...artifactSchemas.map((schema) => import_echo7.Filter.schema(schema)))).run();
1808
+ return objects.map((object) => {
1809
+ import_log10.log.info("object", {
1810
+ object,
1811
+ label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object)
1812
+ }, {
1813
+ F: __dxlog_file8,
1814
+ L: 36,
1815
+ S: void 0,
1816
+ C: (f, a) => f(...a)
1817
+ });
1818
+ return object;
1819
+ }).filter((object) => stringMatch(query, (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object) ?? "")).filter((object) => !!(0, import_echo_schema4.getDXN)(object)).map((object) => ({
1820
+ uri: (0, import_echo_schema4.getDXN)(object).toString(),
1821
+ label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object) ?? ""
1822
+ }));
1823
+ },
1824
+ resolveMetadata: async ({ uri }) => {
1825
+ const object = await space.db.query({
1826
+ id: uri
1827
+ }).first();
1828
+ return {
1829
+ uri,
1830
+ label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object) ?? ""
1831
+ };
1832
+ }
1833
+ };
1834
+ }, [
1835
+ space,
1836
+ artifactDefinitions
1837
+ ]);
1838
+ };
1839
+ var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx";
1840
+ var ThreadContainer = ({ classNames, chat, settings, part, onOpenChange, ...props }) => {
1708
1841
  const space = (0, import_echo3.getSpace)(chat);
1709
- const processor = useChatProcessor(space, settings);
1842
+ const contextProvider = useContextProvider(space);
1843
+ const processor = useChatProcessor({
1844
+ chat,
1845
+ space,
1846
+ settings,
1847
+ part
1848
+ });
1710
1849
  const messageQueue = useMessageQueue(chat);
1711
1850
  const messages = [
1712
1851
  ...messageQueue?.items ?? [],
@@ -1715,8 +1854,8 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1715
1854
  const handleSubmit = (0, import_react7.useCallback)((text) => {
1716
1855
  if (processor.streaming.value) {
1717
1856
  import_log5.log.warn("ignoring submit; still processing.", void 0, {
1718
- F: __dxlog_file8,
1719
- L: 39,
1857
+ F: __dxlog_file9,
1858
+ L: 41,
1720
1859
  S: void 0,
1721
1860
  C: (f, a) => f(...a)
1722
1861
  });
@@ -1724,8 +1863,8 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1724
1863
  }
1725
1864
  onOpenChange?.(true);
1726
1865
  (0, import_invariant3.invariant)(messageQueue, void 0, {
1727
- F: __dxlog_file8,
1728
- L: 45,
1866
+ F: __dxlog_file9,
1867
+ L: 47,
1729
1868
  S: void 0,
1730
1869
  A: [
1731
1870
  "messageQueue",
@@ -1762,6 +1901,7 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1762
1901
  onCancel: handleCancel,
1763
1902
  onPrompt: handleSubmit,
1764
1903
  onOpenChange,
1904
+ contextProvider,
1765
1905
  ...props
1766
1906
  });
1767
1907
  };
@@ -1778,4 +1918,4 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1778
1918
  ToolboxContainer,
1779
1919
  useServices
1780
1920
  });
1781
- //# sourceMappingURL=chunk-XUTDR7HI.cjs.map
1921
+ //# sourceMappingURL=chunk-JAB6KLPP.cjs.map