@dxos/plugin-assistant 0.8.0 → 0.8.1-main.81238a8

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 (234) hide show
  1. package/dist/lib/browser/{AssistantDialog-TX6YYBUG.mjs → AssistantDialog-L5RHNMU4.mjs} +6 -5
  2. package/dist/lib/browser/{AssistantDialog-TX6YYBUG.mjs.map → AssistantDialog-L5RHNMU4.mjs.map} +3 -3
  3. package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs → ChatContainer-EEEVE62F.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-5RMJYOT7.mjs} +34 -12
  11. package/dist/lib/browser/chunk-5RMJYOT7.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-VZ4W6SHE.mjs → chunk-SVUCJXGN.mjs} +2 -2
  16. package/dist/lib/browser/chunk-SVUCJXGN.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-FRIKXDDQ.mjs → chunk-X6ALDUA5.mjs} +26 -4
  18. package/dist/lib/browser/chunk-X6ALDUA5.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-NFVIZS3B.mjs → chunk-XFUCWOMV.mjs} +287 -70
  20. package/dist/lib/browser/chunk-XFUCWOMV.mjs.map +7 -0
  21. package/dist/lib/browser/index.mjs +21 -11
  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-KFLHNDNR.mjs} +10 -9
  27. package/dist/lib/browser/react-surface-KFLHNDNR.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-VIB7GPQN.cjs} +12 -11
  31. package/dist/lib/node/{AssistantDialog-U4GBPZD6.cjs.map → AssistantDialog-VIB7GPQN.cjs.map} +3 -3
  32. package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs → ChatContainer-BPI3GEZS.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-37GI4NYH.cjs → chunk-KLSNCP34.cjs} +33 -9
  40. package/dist/lib/node/chunk-KLSNCP34.cjs.map +7 -0
  41. package/dist/lib/node/{chunk-NV4TQQSU.cjs → chunk-N3SW6DJ6.cjs} +6 -6
  42. package/dist/lib/node/{chunk-XUTDR7HI.cjs → chunk-OJJ4F6KP.cjs} +291 -78
  43. package/dist/lib/node/chunk-OJJ4F6KP.cjs.map +7 -0
  44. package/dist/lib/node/{chunk-GNPXCHFT.cjs → chunk-U6J2GO7I.cjs} +4 -4
  45. package/dist/lib/node/{chunk-GNPXCHFT.cjs.map → chunk-U6J2GO7I.cjs.map} +2 -2
  46. package/dist/lib/node/{chunk-ZGH6F5YA.cjs → chunk-VRXFIS4X.cjs} +6 -6
  47. package/dist/lib/node/chunk-VRXFIS4X.cjs.map +7 -0
  48. package/dist/lib/node/{chunk-IXJCGW7U.cjs → chunk-WFVOWPKV.cjs} +40 -18
  49. package/dist/lib/node/chunk-WFVOWPKV.cjs.map +7 -0
  50. package/dist/lib/node/index.cjs +73 -63
  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-REI6G6B3.cjs} +25 -24
  56. package/dist/lib/node/react-surface-REI6G6B3.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-R3EPF2KL.mjs} +6 -5
  61. package/dist/lib/node-esm/{AssistantDialog-5AT5JAZL.mjs.map → AssistantDialog-R3EPF2KL.mjs.map} +3 -3
  62. package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs → ChatContainer-UJ7MV7GU.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-AMQMVQJO.mjs → chunk-6GBMQIW7.mjs} +34 -12
  72. package/dist/lib/node-esm/chunk-6GBMQIW7.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-7JENJTLB.mjs → chunk-AMTHOYNB.mjs} +287 -70
  74. package/dist/lib/node-esm/chunk-AMTHOYNB.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-LBQGJE5T.mjs → chunk-J63VQFQO.mjs} +2 -2
  76. package/dist/lib/node-esm/{chunk-7SV6X6XU.mjs → chunk-N6BVC2C2.mjs} +1 -1
  77. package/dist/lib/node-esm/{chunk-7SV6X6XU.mjs.map → chunk-N6BVC2C2.mjs.map} +2 -2
  78. package/dist/lib/node-esm/{chunk-CJ4Y3QW5.mjs → chunk-NMMRHHAR.mjs} +26 -4
  79. package/dist/lib/node-esm/chunk-NMMRHHAR.mjs.map +7 -0
  80. package/dist/lib/node-esm/index.mjs +21 -11
  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-LE57AGPI.mjs} +10 -9
  86. package/dist/lib/node-esm/react-surface-LE57AGPI.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 +2 -2
  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/index.d.ts +1 -0
  135. package/dist/types/src/hooks/index.d.ts.map +1 -1
  136. package/dist/types/src/hooks/invocation-handler.d.ts +1 -1
  137. package/dist/types/src/hooks/invocation-handler.d.ts.map +1 -1
  138. package/dist/types/src/hooks/processor.d.ts +8 -5
  139. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  140. package/dist/types/src/hooks/useChatProcessor.d.ts +9 -2
  141. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  142. package/dist/types/src/hooks/useContextProvider.d.ts +17 -0
  143. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -0
  144. package/dist/types/src/hooks/useMessageQueue.d.ts +4 -4
  145. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  146. package/dist/types/src/meta.d.ts +2 -8
  147. package/dist/types/src/meta.d.ts.map +1 -1
  148. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  149. package/dist/types/src/tools/function.d.ts +1 -1
  150. package/dist/types/src/tools/function.d.ts.map +1 -1
  151. package/dist/types/src/translations.d.ts +21 -6
  152. package/dist/types/src/translations.d.ts.map +1 -1
  153. package/dist/types/src/types/service.d.ts +1 -1
  154. package/dist/types/src/types/service.d.ts.map +1 -1
  155. package/dist/types/src/types/template.d.ts +36 -0
  156. package/dist/types/src/types/template.d.ts.map +1 -1
  157. package/dist/types/src/types/types.d.ts +3 -1
  158. package/dist/types/src/types/types.d.ts.map +1 -1
  159. package/package.json +56 -56
  160. package/src/AssistantPlugin.tsx +11 -2
  161. package/src/capabilities/ai-client.ts +23 -4
  162. package/src/capabilities/app-graph-builder.ts +48 -4
  163. package/src/capabilities/capabilities.ts +4 -2
  164. package/src/capabilities/intent-resolver.ts +1 -1
  165. package/src/capabilities/react-surface.tsx +3 -2
  166. package/src/components/AssistantDialog.tsx +7 -1
  167. package/src/components/AssistantSettings/AssistantSettings.tsx +39 -5
  168. package/src/components/Prompt/Prompt.stories.tsx +34 -0
  169. package/src/components/Prompt/Prompt.tsx +9 -2
  170. package/src/components/Prompt/PromptBar.tsx +18 -7
  171. package/src/components/Prompt/references.ts +180 -0
  172. package/src/components/TemplateContainer.tsx +79 -4
  173. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +1 -1
  174. package/src/components/TemplateEditor/TemplateForm.stories.tsx +1 -1
  175. package/src/components/TemplateEditor/TemplateForm.tsx +1 -1
  176. package/src/components/Thread/Thread.tsx +21 -0
  177. package/src/components/Thread/ThreadContainer.stories.tsx +5 -8
  178. package/src/components/Thread/ThreadContainer.tsx +7 -4
  179. package/src/components/Thread/ThreadMessage.tsx +17 -9
  180. package/src/components/Toolbox/Toolbox.tsx +1 -1
  181. package/src/components/index.ts +3 -0
  182. package/src/hooks/index.ts +1 -0
  183. package/src/hooks/invocation-handler.ts +3 -5
  184. package/src/hooks/processor.ts +18 -9
  185. package/src/hooks/useChatProcessor.tsx +24 -15
  186. package/src/hooks/useContextProvider.ts +55 -0
  187. package/src/hooks/useLocalTriggerManager.ts +1 -1
  188. package/src/hooks/useMessageQueue.ts +2 -4
  189. package/src/meta.ts +2 -2
  190. package/src/testing/test-functions.ts +2 -2
  191. package/src/tools/function.ts +2 -2
  192. package/src/tools/openapi.test.ts +4 -4
  193. package/src/translations.ts +8 -3
  194. package/src/types/service.ts +1 -1
  195. package/src/types/template.ts +22 -0
  196. package/src/types/types.ts +3 -1
  197. package/dist/lib/browser/TemplateContainer-B7MQNUPY.mjs +0 -23
  198. package/dist/lib/browser/TemplateContainer-B7MQNUPY.mjs.map +0 -7
  199. package/dist/lib/browser/ai-client-RTCGRKZE.mjs +0 -22
  200. package/dist/lib/browser/ai-client-RTCGRKZE.mjs.map +0 -7
  201. package/dist/lib/browser/app-graph-builder-AXAIFOGV.mjs.map +0 -7
  202. package/dist/lib/browser/chunk-FRIKXDDQ.mjs.map +0 -7
  203. package/dist/lib/browser/chunk-G7B54APW.mjs.map +0 -7
  204. package/dist/lib/browser/chunk-NFVIZS3B.mjs.map +0 -7
  205. package/dist/lib/browser/chunk-VZ4W6SHE.mjs.map +0 -7
  206. package/dist/lib/browser/react-surface-JLXNWOI6.mjs.map +0 -7
  207. package/dist/lib/node/TemplateContainer-R4BZZP3E.cjs +0 -53
  208. package/dist/lib/node/TemplateContainer-R4BZZP3E.cjs.map +0 -7
  209. package/dist/lib/node/ai-client-YANJEPO3.cjs.map +0 -7
  210. package/dist/lib/node/app-graph-builder-D7SHQTZS.cjs.map +0 -7
  211. package/dist/lib/node/chunk-37GI4NYH.cjs.map +0 -7
  212. package/dist/lib/node/chunk-IXJCGW7U.cjs.map +0 -7
  213. package/dist/lib/node/chunk-XUTDR7HI.cjs.map +0 -7
  214. package/dist/lib/node/chunk-ZGH6F5YA.cjs.map +0 -7
  215. package/dist/lib/node/react-surface-BSUZQ3HZ.cjs.map +0 -7
  216. package/dist/lib/node-esm/TemplateContainer-WSHTZBB5.mjs +0 -24
  217. package/dist/lib/node-esm/TemplateContainer-WSHTZBB5.mjs.map +0 -7
  218. package/dist/lib/node-esm/ai-client-66IBZVCX.mjs +0 -23
  219. package/dist/lib/node-esm/ai-client-66IBZVCX.mjs.map +0 -7
  220. package/dist/lib/node-esm/app-graph-builder-H2GC2AZA.mjs.map +0 -7
  221. package/dist/lib/node-esm/chunk-77ARTFBA.mjs.map +0 -7
  222. package/dist/lib/node-esm/chunk-7JENJTLB.mjs.map +0 -7
  223. package/dist/lib/node-esm/chunk-AMQMVQJO.mjs.map +0 -7
  224. package/dist/lib/node-esm/chunk-CJ4Y3QW5.mjs.map +0 -7
  225. package/dist/lib/node-esm/react-surface-IGVYAOGL.mjs.map +0 -7
  226. /package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs.map → ChatContainer-EEEVE62F.mjs.map} +0 -0
  227. /package/dist/lib/browser/{chunk-EUMPBC4T.mjs.map → chunk-6FTPLBSC.mjs.map} +0 -0
  228. /package/dist/lib/browser/{settings-JTT62IHD.mjs.map → settings-VAW6UWFL.mjs.map} +0 -0
  229. /package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs.map → ChatContainer-BPI3GEZS.cjs.map} +0 -0
  230. /package/dist/lib/node/{chunk-NV4TQQSU.cjs.map → chunk-N3SW6DJ6.cjs.map} +0 -0
  231. /package/dist/lib/node/{settings-4YEO7KXF.cjs.map → settings-2FEYGLYU.cjs.map} +0 -0
  232. /package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs.map → ChatContainer-UJ7MV7GU.mjs.map} +0 -0
  233. /package/dist/lib/node-esm/{chunk-LBQGJE5T.mjs.map → chunk-J63VQFQO.mjs.map} +0 -0
  234. /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_OJJ4F6KP_exports = {};
30
+ __export(chunk_OJJ4F6KP_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_OJJ4F6KP_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"));
@@ -84,6 +84,10 @@ var import_react_ui_editor = require("@dxos/react-ui-editor");
84
84
  var import_react_ui_theme4 = require("@dxos/react-ui-theme");
85
85
  var import_state = require("@codemirror/state");
86
86
  var import_view = require("@codemirror/view");
87
+ var import_autocomplete = require("@codemirror/autocomplete");
88
+ var import_state2 = require("@codemirror/state");
89
+ var import_view2 = require("@codemirror/view");
90
+ var import_async = require("@dxos/async");
87
91
  var import_react6 = __toESM(require("react"));
88
92
  var import_plugin_transcription = require("@dxos/plugin-transcription");
89
93
  var import_react_ui3 = require("@dxos/react-ui");
@@ -103,46 +107,50 @@ var import_react8 = require("react");
103
107
  var import_app_framework2 = require("@dxos/app-framework");
104
108
  var import_artifact5 = require("@dxos/artifact");
105
109
  var import_assistant2 = require("@dxos/assistant");
106
- var import_functions3 = require("@dxos/functions");
110
+ var import_types3 = require("@dxos/functions/types");
107
111
  var import_log7 = require("@dxos/log");
108
112
  var import_react_client = require("@dxos/react-client");
109
113
  var import_echo4 = require("@dxos/react-client/echo");
110
114
  var import_util5 = require("@dxos/util");
111
115
  var import_app_framework3 = require("@dxos/app-framework");
112
116
  var import_react9 = require("react");
113
- var import_async = require("@dxos/async");
117
+ var import_async2 = require("@dxos/async");
114
118
  var import_context = require("@dxos/context");
115
- var import_functions4 = require("@dxos/functions");
116
- var import_functions5 = require("@dxos/functions");
119
+ var import_functions = require("@dxos/functions");
120
+ var import_types4 = require("@dxos/functions/types");
117
121
  var import_invariant5 = require("@dxos/invariant");
118
122
  var import_log8 = require("@dxos/log");
119
123
  var import_react_client2 = require("@dxos/react-client");
120
124
  var import_echo5 = require("@dxos/react-client/echo");
121
- var import_async2 = require("@dxos/async");
125
+ var import_async3 = require("@dxos/async");
122
126
  var import_echo_db = require("@dxos/echo-db");
123
- var import_functions6 = require("@dxos/functions");
127
+ var import_types5 = require("@dxos/functions/types");
124
128
  var import_invariant6 = require("@dxos/invariant");
125
129
  var import_keys = require("@dxos/keys");
126
130
  var import_log9 = require("@dxos/log");
127
131
  var import_react10 = require("react");
128
132
  var import_keys2 = require("@dxos/keys");
129
133
  var import_echo6 = require("@dxos/react-client/echo");
130
- var import_react_edge_client = require("@dxos/react-edge-client");
131
134
  var import_react11 = require("react");
132
135
  var import_artifact6 = require("@dxos/artifact");
133
136
  var import_assistant3 = require("@dxos/assistant");
134
137
  var import_echo_schema4 = require("@dxos/echo-schema");
135
138
  var import_react12 = require("react");
139
+ var import_react13 = require("react");
140
+ var import_app_framework4 = require("@dxos/app-framework");
141
+ var import_echo_schema5 = require("@dxos/echo-schema");
142
+ var import_log10 = require("@dxos/log");
143
+ var import_echo7 = require("@dxos/react-client/echo");
136
144
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/tools/function.ts";
137
145
  var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
138
146
  if (!fn.description || !fn.inputSchema) {
139
147
  return void 0;
140
148
  }
141
- const existingFunctionUrl = (0, import_functions2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
149
+ const existingFunctionUrl = (0, import_types2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
142
150
  if (!existingFunctionUrl) {
143
151
  return void 0;
144
152
  }
145
- const url = (0, import_functions2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
153
+ const url = (0, import_types2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
146
154
  spaceId
147
155
  });
148
156
  return (0, import_artifact2.defineTool)("user-function", {
@@ -609,7 +617,7 @@ var Section = ({ title, items, striped }) => {
609
617
  };
610
618
  var ToolboxContainer = ({ classNames, space }) => {
611
619
  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));
620
+ const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_KLSNCP34.ServiceType));
613
621
  const [serviceTools, setServiceTools] = (0, import_react.useState)([]);
614
622
  (0, import_react.useEffect)(() => {
615
623
  (0, import_log.log)("creating service tools...", {
@@ -630,7 +638,7 @@ var ToolboxContainer = ({ classNames, space }) => {
630
638
  }, [
631
639
  services
632
640
  ]);
633
- const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionType));
641
+ const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_types.FunctionType));
634
642
  return /* @__PURE__ */ import_react.default.createElement(Toolbox, {
635
643
  classNames,
636
644
  artifacts: artifactDefinitions,
@@ -755,7 +763,7 @@ var ToolContainer = ({ classNames, items }) => {
755
763
  };
756
764
  var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadMessage.tsx";
757
765
  var panelClassNames = "flex flex-col w-full px-2 bg-groupSurface rounded-md";
758
- var userClassNames = "bg-[--user-fill]";
766
+ var userClassNames = "bg-[--user-fill] text-inverse";
759
767
  var ToggleContainer2 = (props) => {
760
768
  return /* @__PURE__ */ import_react3.default.createElement(import_react_ui_components2.ToggleContainer, {
761
769
  ...props,
@@ -780,7 +788,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
780
788
  const { role, content = [] } = message;
781
789
  if (isToolMessage(message)) {
782
790
  return /* @__PURE__ */ import_react3.default.createElement(MessageContainer, {
783
- classNames
791
+ classNames: (0, import_react_ui_theme3.mx)(classNames, "animate-[fadeIn_0.5s]")
784
792
  }, /* @__PURE__ */ import_react3.default.createElement(ToolBlock, {
785
793
  space,
786
794
  classNames: panelClassNames,
@@ -795,7 +803,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
795
803
  const Component = components[block.type] ?? components.default;
796
804
  return /* @__PURE__ */ import_react3.default.createElement(MessageContainer, {
797
805
  key: idx,
798
- classNames,
806
+ classNames: (0, import_react_ui_theme3.mx)(classNames, "animate-[fadeIn_0.5s]"),
799
807
  user: block.type === "text" && role === "user"
800
808
  }, /* @__PURE__ */ import_react3.default.createElement(Component, {
801
809
  space,
@@ -811,7 +819,7 @@ var components = {
811
819
  ["text"]: ({ block }) => {
812
820
  (0, import_invariant2.invariant)(block.type === "text", void 0, {
813
821
  F: __dxlog_file5,
814
- L: 86,
822
+ L: 90,
815
823
  S: void 0,
816
824
  A: [
817
825
  "block.type === 'text'",
@@ -821,6 +829,7 @@ var components = {
821
829
  const title = block.disposition ? titles[block.disposition] : void 0;
822
830
  if (!title) {
823
831
  return /* @__PURE__ */ import_react3.default.createElement(import_react_ui_components2.MarkdownViewer, {
832
+ classNames: "[&>p]:animate-[fadeIn_0.5s]",
824
833
  content: block.text
825
834
  });
826
835
  }
@@ -847,7 +856,7 @@ var components = {
847
856
  ["json"]: ({ space, block, onPrompt }) => {
848
857
  (0, import_invariant2.invariant)(block.type === "json", void 0, {
849
858
  F: __dxlog_file5,
850
- L: 124,
859
+ L: 128,
851
860
  S: void 0,
852
861
  A: [
853
862
  "block.type === 'json'",
@@ -874,7 +883,10 @@ var components = {
874
883
  }
875
884
  case "select": {
876
885
  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, {
886
+ return /* @__PURE__ */ import_react3.default.createElement("div", {
887
+ className: "flex flex-wrap gap-1"
888
+ }, options.map((option, idx) => /* @__PURE__ */ import_react3.default.createElement(import_react_ui.Button, {
889
+ classNames: "animate-[fadeIn_0.5s] rounded-2xl text-sm",
878
890
  key: option,
879
891
  onClick: () => onPrompt?.(option)
880
892
  }, option)));
@@ -1109,9 +1121,120 @@ var InlineSuggestionWidget = class extends import_view.WidgetType {
1109
1121
  return other.suffix === this.suffix;
1110
1122
  }
1111
1123
  };
1112
- var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFocus, lineWrapping = false, placeholder, onSubmit, onSuggest, onOpenChange }, forwardRef2) => {
1124
+ var promptReferences = ({ provider, debug = false, triggerCharacter = "@" }) => {
1125
+ if (triggerCharacter.length !== 1) {
1126
+ throw new Error("triggerCharacter must be a single character");
1127
+ }
1128
+ const decorationField = import_view2.ViewPlugin.fromClass(class ReferenceView {
1129
+ constructor(view) {
1130
+ this._mutex = new import_async.Mutex();
1131
+ this.decorations = import_view2.Decoration.set([]);
1132
+ queueMicrotask(async () => {
1133
+ const guard = await this._mutex.acquire();
1134
+ try {
1135
+ this.decorations = await this._computeDecorations(view);
1136
+ } finally {
1137
+ guard.release();
1138
+ }
1139
+ });
1140
+ }
1141
+ update(update) {
1142
+ if (update.docChanged) {
1143
+ queueMicrotask(async () => {
1144
+ const guard = await this._mutex.acquire();
1145
+ try {
1146
+ this.decorations = await this._computeDecorations(update.view);
1147
+ } finally {
1148
+ guard.release();
1149
+ }
1150
+ });
1151
+ }
1152
+ }
1153
+ async _computeDecorations(view) {
1154
+ const text = view.state.doc.toString();
1155
+ const references = text.matchAll(new RegExp(`${triggerCharacter}[a-zA-Z0-9@:]+\\s`, "g"));
1156
+ const decorations = [];
1157
+ for (const match of references) {
1158
+ const reference = match[0];
1159
+ const uri = reference.slice(1, -1);
1160
+ const data = await provider.resolveReference({
1161
+ uri
1162
+ });
1163
+ if (data) {
1164
+ decorations.push(import_view2.Decoration.replace({
1165
+ widget: new ReferenceWidget(data)
1166
+ }).range(match.index, match.index + reference.length));
1167
+ }
1168
+ }
1169
+ return import_view2.Decoration.set(decorations);
1170
+ }
1171
+ }, {
1172
+ decorations: (v) => v.decorations,
1173
+ provide: (plugin) => [
1174
+ import_view2.EditorView.atomicRanges.of((view) => view.plugin(decorationField)?.decorations ?? import_state2.RangeSet.empty)
1175
+ ]
1176
+ });
1177
+ return [
1178
+ decorationField,
1179
+ import_view2.EditorView.theme({
1180
+ ".cm-reference-pill": {
1181
+ borderRadius: "0.25rem",
1182
+ borderWidth: "1px",
1183
+ marginRight: "0.25rem",
1184
+ marginLeft: "0.25rem"
1185
+ }
1186
+ }),
1187
+ (0, import_autocomplete.autocompletion)({
1188
+ activateOnTyping: true,
1189
+ override: [
1190
+ async (context) => {
1191
+ const match = context.matchBefore(new RegExp(`${triggerCharacter}[a-zA-Z0-9]+`));
1192
+ if (!match || match?.to === match?.from) {
1193
+ return null;
1194
+ }
1195
+ const query = match.text.slice(1);
1196
+ const references = await provider.getReferences({
1197
+ query
1198
+ });
1199
+ return {
1200
+ from: match.from,
1201
+ filter: false,
1202
+ options: references.map((reference) => ({
1203
+ label: reference.label,
1204
+ apply: `${triggerCharacter}${reference.uri} `
1205
+ }))
1206
+ };
1207
+ }
1208
+ ],
1209
+ closeOnBlur: !debug,
1210
+ tooltipClass: () => "shadow rounded",
1211
+ aboveCursor: true
1212
+ }),
1213
+ import_view2.keymap.of(import_autocomplete.completionKeymap)
1214
+ ];
1215
+ };
1216
+ var ReferenceWidget = class extends import_view2.WidgetType {
1217
+ constructor(data) {
1218
+ super();
1219
+ this.data = data;
1220
+ }
1221
+ toDOM() {
1222
+ const span = document.createElement("span");
1223
+ span.textContent = `@ ${this.data.label}`;
1224
+ span.className = "cm-reference-pill";
1225
+ return span;
1226
+ }
1227
+ eq(other) {
1228
+ return other.data.uri === this.data.uri;
1229
+ }
1230
+ ignoreEvent() {
1231
+ return true;
1232
+ }
1233
+ };
1234
+ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFocus, lineWrapping = false, placeholder, onSubmit, onSuggest, onOpenChange, references }, forwardRef2) => {
1113
1235
  const { themeMode } = (0, import_react_ui2.useThemeContext)();
1114
1236
  const { parentRef, view } = (0, import_react_ui_editor.useTextEditor)({
1237
+ debug: true,
1115
1238
  autoFocus,
1116
1239
  extensions: [
1117
1240
  (0, import_react_ui_editor.createBasicExtensions)({
@@ -1122,6 +1245,9 @@ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFo
1122
1245
  (0, import_react_ui_editor.createThemeExtensions)({
1123
1246
  themeMode
1124
1247
  }),
1248
+ references ? promptReferences({
1249
+ provider: references
1250
+ }) : [],
1125
1251
  createAutocompleteExtension({
1126
1252
  onSubmit,
1127
1253
  onSuggest
@@ -1175,11 +1301,11 @@ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFo
1175
1301
  ]);
1176
1302
  return /* @__PURE__ */ import_react5.default.createElement("div", {
1177
1303
  ref: parentRef,
1178
- className: (0, import_react_ui_theme4.mx)("w-full overflow-hidden", classNames)
1304
+ className: (0, import_react_ui_theme4.mx)("w-full", classNames)
1179
1305
  });
1180
1306
  });
1181
- var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, ...props }) => {
1182
- const { t } = (0, import_react_ui3.useTranslation)(import_chunk_GNPXCHFT.ASSISTANT_PLUGIN);
1307
+ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, references, ...props }) => {
1308
+ const { t } = (0, import_react_ui3.useTranslation)(import_chunk_U6J2GO7I.ASSISTANT_PLUGIN);
1183
1309
  const promptRef = (0, import_react6.useRef)(null);
1184
1310
  const [active, setActive] = (0, import_react6.useState)(false);
1185
1311
  const { recording } = (0, import_plugin_transcription.useVoiceInput)({
@@ -1190,14 +1316,18 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1190
1316
  }
1191
1317
  });
1192
1318
  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)
1319
+ 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
1320
  }, /* @__PURE__ */ import_react6.default.createElement("div", {
1195
1321
  className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
1196
- }, error && /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Icon, {
1322
+ }, error && /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Root, {
1323
+ delayDuration: 0
1324
+ }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Trigger, null, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Icon, {
1197
1325
  icon: "ph--warning-circle--regular",
1198
1326
  classNames: import_react_ui_theme5.errorText,
1199
1327
  size: 5
1200
- }) || /* @__PURE__ */ import_react6.default.createElement(import_react_ui_sfx.Spinner, {
1328
+ })), /* @__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", {
1329
+ className: "text-sm text-error-500"
1330
+ }, error.message), /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Arrow, null)))) || /* @__PURE__ */ import_react6.default.createElement(import_react_ui_sfx.Spinner, {
1201
1331
  active: processing
1202
1332
  })), /* @__PURE__ */ import_react6.default.createElement(Prompt, {
1203
1333
  ref: promptRef,
@@ -1205,6 +1335,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1205
1335
  classNames: "pbs-2",
1206
1336
  lineWrapping: true,
1207
1337
  placeholder: placeholder ?? t("prompt placeholder"),
1338
+ references,
1208
1339
  ...props
1209
1340
  }), (onCancel || microphone) && /* @__PURE__ */ import_react6.default.createElement("div", {
1210
1341
  className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
@@ -1230,7 +1361,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1230
1361
  onTouchEnd: () => setActive(false)
1231
1362
  })));
1232
1363
  };
1233
- var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, ...props }) => {
1364
+ var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, contextProvider, ...props }) => {
1234
1365
  const scroller = (0, import_react2.useRef)(null);
1235
1366
  const identity = (0, import_halo.useIdentity)();
1236
1367
  const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
@@ -1256,6 +1387,21 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
1256
1387
  messages,
1257
1388
  collapse
1258
1389
  ]);
1390
+ const references = (0, import_react2.useMemo)(() => {
1391
+ if (!contextProvider) {
1392
+ return void 0;
1393
+ }
1394
+ return {
1395
+ getReferences: async ({ query }) => contextProvider.query({
1396
+ query
1397
+ }),
1398
+ resolveReference: async ({ uri }) => contextProvider.resolveMetadata({
1399
+ uri
1400
+ })
1401
+ };
1402
+ }, [
1403
+ contextProvider
1404
+ ]);
1259
1405
  return /* @__PURE__ */ import_react2.default.createElement("div", {
1260
1406
  role: "none",
1261
1407
  className: (0, import_react_ui_theme2.mx)("flex flex-col grow overflow-hidden", classNames)
@@ -1280,17 +1426,18 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
1280
1426
  error,
1281
1427
  onSubmit: handleSubmit,
1282
1428
  onCancel,
1283
- onOpenChange
1429
+ onOpenChange,
1430
+ references
1284
1431
  }));
1285
1432
  };
1286
1433
  var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/processor.ts";
1287
1434
  var defaultOptions = {
1288
- model: import_assistant.DEFAULT_LLM_MODEL,
1435
+ model: import_assistant.DEFAULT_EDGE_MODEL,
1289
1436
  systemPrompt: "you are a helpful assistant"
1290
1437
  };
1291
1438
  var ChatProcessor = class {
1292
- constructor(_service, _tools, _extensions, _options = defaultOptions) {
1293
- this._service = _service;
1439
+ constructor(_ai, _tools, _extensions, _options = defaultOptions) {
1440
+ this._ai = _ai;
1294
1441
  this._tools = _tools;
1295
1442
  this._extensions = _extensions;
1296
1443
  this._options = _options;
@@ -1415,7 +1562,7 @@ var ChatProcessor = class {
1415
1562
  S: this,
1416
1563
  C: (f, a) => f(...a)
1417
1564
  });
1418
- this._stream = await this._service.exec({
1565
+ this._stream = await this._ai.exec({
1419
1566
  ...this._options,
1420
1567
  // TODO(burdon): Rename messages or separate history/message.
1421
1568
  history: [
@@ -1485,31 +1632,43 @@ var ChatProcessor = class {
1485
1632
  S: this,
1486
1633
  C: (f, a) => f(...a)
1487
1634
  });
1488
- this.error.value = new Error("AI service error", {
1489
- cause: err
1490
- });
1635
+ if (err instanceof Error && err.message.includes("Overloaded")) {
1636
+ this.error.value = new AIServiecOverloadedError("AI service overloaded", {
1637
+ cause: err
1638
+ });
1639
+ } else {
1640
+ this.error.value = new Error("AI service error", {
1641
+ cause: err
1642
+ });
1643
+ }
1491
1644
  } finally {
1492
1645
  this._stream = void 0;
1493
1646
  }
1494
1647
  }
1495
1648
  };
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"));
1649
+ var AIServiecOverloadedError = class extends Error {
1650
+ constructor() {
1651
+ super(...arguments);
1652
+ this.code = "AI_SERVICE_OVERLOADED";
1653
+ }
1654
+ };
1655
+ var AiClient = (0, import_app_framework3.lazy)(() => import("./ai-client-5ESLYXAV.cjs"));
1656
+ var AppGraphBuilder = (0, import_app_framework3.lazy)(() => import("./app-graph-builder-3P6WSON2.cjs"));
1657
+ var IntentResolver = (0, import_app_framework3.lazy)(() => import("./intent-resolver-YIFAMM3B.cjs"));
1658
+ var ReactSurface = (0, import_app_framework3.lazy)(() => import("./react-surface-REI6G6B3.cjs"));
1659
+ var AssistantSettings = (0, import_app_framework3.lazy)(() => import("./settings-2FEYGLYU.cjs"));
1501
1660
  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);
1661
+ var useChatProcessor = ({ chat, space, settings, part = "deck" }) => {
1662
+ const aiClient = (0, import_app_framework2.useCapability)(import_chunk_VRXFIS4X.AssistantCapabilities.AiClient);
1504
1663
  const globalTools = (0, import_app_framework2.useCapabilities)(import_app_framework2.Capabilities.Tools);
1505
1664
  const artifactDefinitions = (0, import_app_framework2.useCapabilities)(import_app_framework2.Capabilities.ArtifactDefinition);
1506
1665
  const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
1507
- const services = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_chunk_37GI4NYH.ServiceType));
1666
+ const services = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_chunk_KLSNCP34.ServiceType));
1508
1667
  const [serviceTools, setServiceTools] = (0, import_react8.useState)([]);
1509
1668
  (0, import_react8.useEffect)(() => {
1510
1669
  (0, import_log7.log)("creating service tools...", void 0, {
1511
1670
  F: __dxlog_file7,
1512
- L: 34,
1671
+ L: 41,
1513
1672
  S: void 0,
1514
1673
  C: (f, a) => f(...a)
1515
1674
  });
@@ -1521,11 +1680,14 @@ var useChatProcessor = (space, settings) => {
1521
1680
  services
1522
1681
  ]);
1523
1682
  const config = (0, import_react_client.useConfig)();
1524
- const functions = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_functions3.FunctionType));
1683
+ const functions = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_types3.FunctionType));
1684
+ const chatId = (0, import_react8.useMemo)(() => chat ? (0, import_echo4.fullyQualifiedId)(chat) : void 0, [
1685
+ chat
1686
+ ]);
1525
1687
  const [tools, extensions] = (0, import_react8.useMemo)(() => {
1526
1688
  (0, import_log7.log)("creating tools...", void 0, {
1527
1689
  F: __dxlog_file7,
1528
- L: 45,
1690
+ L: 53,
1529
1691
  S: void 0,
1530
1692
  C: (f, a) => f(...a)
1531
1693
  });
@@ -1537,7 +1699,9 @@ var useChatProcessor = (space, settings) => {
1537
1699
  ];
1538
1700
  const extensions2 = {
1539
1701
  space,
1540
- dispatch
1702
+ dispatch,
1703
+ pivotId: chatId,
1704
+ part
1541
1705
  };
1542
1706
  return [
1543
1707
  tools2,
@@ -1548,6 +1712,7 @@ var useChatProcessor = (space, settings) => {
1548
1712
  globalTools,
1549
1713
  artifactDefinitions,
1550
1714
  space,
1715
+ chatId,
1551
1716
  serviceTools,
1552
1717
  functions
1553
1718
  ]);
@@ -1556,31 +1721,30 @@ var useChatProcessor = (space, settings) => {
1556
1721
  }), [
1557
1722
  artifactDefinitions
1558
1723
  ]);
1724
+ const model = settings?.llmProvider === "ollama" ? settings?.ollamaModel ?? import_assistant2.DEFAULT_OLLAMA_MODEL : settings?.edgeModel ?? import_assistant2.DEFAULT_EDGE_MODEL;
1559
1725
  const processor = (0, import_react8.useMemo)(() => {
1560
1726
  (0, import_log7.log)("creating processor...", {
1561
1727
  settings
1562
1728
  }, {
1563
1729
  F: __dxlog_file7,
1564
- L: 70,
1730
+ L: 84,
1565
1731
  S: void 0,
1566
1732
  C: (f, a) => f(...a)
1567
1733
  });
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.
1734
+ return new ChatProcessor(aiClient.value, tools, extensions, {
1735
+ model,
1572
1736
  systemPrompt
1573
1737
  });
1574
1738
  }, [
1575
- aiClient,
1739
+ aiClient.value,
1576
1740
  tools,
1577
1741
  extensions,
1578
- systemPrompt,
1579
- settings?.llmModel
1742
+ model,
1743
+ systemPrompt
1580
1744
  ]);
1581
1745
  return processor;
1582
1746
  };
1583
- var registerTriggersMutex = new import_async.Mutex();
1747
+ var registerTriggersMutex = new import_async2.Mutex();
1584
1748
  var useMessageQueue = (chat) => {
1585
1749
  const space = (0, import_echo6.getSpace)(chat);
1586
1750
  const queueDxn = (0, import_react10.useMemo)(() => {
@@ -1594,8 +1758,7 @@ var useMessageQueue = (chat) => {
1594
1758
  space,
1595
1759
  chat?.queue.dxn
1596
1760
  ]);
1597
- const edgeClient = (0, import_react_edge_client.useEdgeClient)();
1598
- return (0, import_react_edge_client.useQueue)(edgeClient, queueDxn);
1761
+ return (0, import_echo6.useQueue)(queueDxn);
1599
1762
  };
1600
1763
  var MockServiceRegistry = class {
1601
1764
  async queryServices(query) {
@@ -1618,7 +1781,7 @@ var VISUAL_CROSSING_CREDENTIALS = {
1618
1781
  }
1619
1782
  };
1620
1783
  var TEST_SERVICES = [
1621
- (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1784
+ (0, import_echo_schema4.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1622
1785
  serviceId: "amadeus.com/service/FlightSearch",
1623
1786
  name: "Amadeus Flight Search",
1624
1787
  description: "Search for local and international flights.",
@@ -1631,7 +1794,7 @@ var TEST_SERVICES = [
1631
1794
  }
1632
1795
  ]
1633
1796
  }),
1634
- (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1797
+ (0, import_echo_schema4.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1635
1798
  serviceId: "amadeus.com/service/HotelSearch",
1636
1799
  name: "Amadeus Hotel Search",
1637
1800
  description: "Search for local and international hotels.",
@@ -1644,7 +1807,7 @@ var TEST_SERVICES = [
1644
1807
  }
1645
1808
  ]
1646
1809
  }),
1647
- (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1810
+ (0, import_echo_schema4.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1648
1811
  serviceId: "visualcrossing.com/service/Weather",
1649
1812
  name: "Visual Crossing Weather",
1650
1813
  description: "Search for global weather forecasts.",
@@ -1658,7 +1821,7 @@ var TEST_SERVICES = [
1658
1821
  ]
1659
1822
  }),
1660
1823
  // TODO(burdon): Needs auth.
1661
- (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1824
+ (0, import_echo_schema4.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1662
1825
  serviceId: "abstractapi.com/service/GeoLocation",
1663
1826
  name: "Abstract GeoLocation",
1664
1827
  description: "Get the location of any IP address.",
@@ -1675,11 +1838,11 @@ var TEST_SERVICES = [
1675
1838
  //
1676
1839
  ...Array.from({
1677
1840
  length: 20
1678
- }, (_, i) => (0, import_echo_schema4.createStatic)(import_chunk_37GI4NYH.ServiceType, {
1841
+ }, (_, i) => (0, import_echo_schema4.createStatic)(import_chunk_KLSNCP34.ServiceType, {
1679
1842
  serviceId: `example.com/service/test-${i}`,
1680
1843
  name: `Test ${i}`,
1681
1844
  description: `Test ${i}`,
1682
- category: Object.keys(import_chunk_37GI4NYH.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_37GI4NYH.categoryIcons).length)],
1845
+ category: Object.keys(import_chunk_KLSNCP34.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_KLSNCP34.categoryIcons).length)],
1683
1846
  interfaces: [
1684
1847
  {
1685
1848
  kind: "api",
@@ -1703,10 +1866,59 @@ var useServices = (space, query) => {
1703
1866
  ]);
1704
1867
  return services;
1705
1868
  };
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 }) => {
1869
+ var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useContextProvider.ts";
1870
+ var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
1871
+ var useContextProvider = (space) => {
1872
+ const artifactDefinitions = (0, import_app_framework4.useCapabilities)(import_app_framework4.Capabilities.ArtifactDefinition);
1873
+ return (0, import_react13.useMemo)(() => {
1874
+ if (!space) {
1875
+ return void 0;
1876
+ }
1877
+ return {
1878
+ query: async ({ query }) => {
1879
+ const artifactSchemas = artifactDefinitions.map((artifact) => artifact.schema);
1880
+ const { objects } = await space.db.query(import_echo7.Filter.or(...artifactSchemas.map((schema) => import_echo7.Filter.schema(schema)))).run();
1881
+ return objects.map((object) => {
1882
+ import_log10.log.info("object", {
1883
+ object,
1884
+ label: (0, import_echo_schema5.getLabel)((0, import_echo_schema5.getSchema)(object), object)
1885
+ }, {
1886
+ F: __dxlog_file8,
1887
+ L: 36,
1888
+ S: void 0,
1889
+ C: (f, a) => f(...a)
1890
+ });
1891
+ return object;
1892
+ }).filter((object) => stringMatch(query, (0, import_echo_schema5.getLabel)((0, import_echo_schema5.getSchema)(object), object) ?? "")).filter((object) => !!(0, import_echo_schema5.getDXN)(object)).map((object) => ({
1893
+ uri: (0, import_echo_schema5.getDXN)(object).toString(),
1894
+ label: (0, import_echo_schema5.getLabel)((0, import_echo_schema5.getSchema)(object), object) ?? ""
1895
+ }));
1896
+ },
1897
+ resolveMetadata: async ({ uri }) => {
1898
+ const object = await space.db.query({
1899
+ id: uri
1900
+ }).first();
1901
+ return {
1902
+ uri,
1903
+ label: (0, import_echo_schema5.getLabel)((0, import_echo_schema5.getSchema)(object), object) ?? ""
1904
+ };
1905
+ }
1906
+ };
1907
+ }, [
1908
+ space,
1909
+ artifactDefinitions
1910
+ ]);
1911
+ };
1912
+ var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx";
1913
+ var ThreadContainer = ({ classNames, chat, settings, part, onOpenChange, ...props }) => {
1708
1914
  const space = (0, import_echo3.getSpace)(chat);
1709
- const processor = useChatProcessor(space, settings);
1915
+ const contextProvider = useContextProvider(space);
1916
+ const processor = useChatProcessor({
1917
+ chat,
1918
+ space,
1919
+ settings,
1920
+ part
1921
+ });
1710
1922
  const messageQueue = useMessageQueue(chat);
1711
1923
  const messages = [
1712
1924
  ...messageQueue?.items ?? [],
@@ -1715,8 +1927,8 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1715
1927
  const handleSubmit = (0, import_react7.useCallback)((text) => {
1716
1928
  if (processor.streaming.value) {
1717
1929
  import_log5.log.warn("ignoring submit; still processing.", void 0, {
1718
- F: __dxlog_file8,
1719
- L: 39,
1930
+ F: __dxlog_file9,
1931
+ L: 41,
1720
1932
  S: void 0,
1721
1933
  C: (f, a) => f(...a)
1722
1934
  });
@@ -1724,8 +1936,8 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1724
1936
  }
1725
1937
  onOpenChange?.(true);
1726
1938
  (0, import_invariant3.invariant)(messageQueue, void 0, {
1727
- F: __dxlog_file8,
1728
- L: 45,
1939
+ F: __dxlog_file9,
1940
+ L: 47,
1729
1941
  S: void 0,
1730
1942
  A: [
1731
1943
  "messageQueue",
@@ -1762,6 +1974,7 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1762
1974
  onCancel: handleCancel,
1763
1975
  onPrompt: handleSubmit,
1764
1976
  onOpenChange,
1977
+ contextProvider,
1765
1978
  ...props
1766
1979
  });
1767
1980
  };
@@ -1778,4 +1991,4 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1778
1991
  ToolboxContainer,
1779
1992
  useServices
1780
1993
  });
1781
- //# sourceMappingURL=chunk-XUTDR7HI.cjs.map
1994
+ //# sourceMappingURL=chunk-OJJ4F6KP.cjs.map