@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
@@ -18,19 +18,21 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var types_exports = {};
20
20
  __export(types_exports, {
21
- AIChatType: () => import_chunk_37GI4NYH.AIChatType,
22
- ApiAuthorization: () => import_chunk_37GI4NYH.ApiAuthorization,
23
- AssistantAction: () => import_chunk_37GI4NYH.AssistantAction,
24
- AssistantSettingsSchema: () => import_chunk_37GI4NYH.AssistantSettingsSchema,
25
- ServiceType: () => import_chunk_37GI4NYH.ServiceType,
26
- TemplateInputSchema: () => import_chunk_37GI4NYH.TemplateInputSchema,
27
- TemplateInputType: () => import_chunk_37GI4NYH.TemplateInputType,
28
- TemplateType: () => import_chunk_37GI4NYH.TemplateType,
29
- categoryIcons: () => import_chunk_37GI4NYH.categoryIcons
21
+ AIChatType: () => import_chunk_KLSNCP34.AIChatType,
22
+ ApiAuthorization: () => import_chunk_KLSNCP34.ApiAuthorization,
23
+ AssistantAction: () => import_chunk_KLSNCP34.AssistantAction,
24
+ AssistantSettingsSchema: () => import_chunk_KLSNCP34.AssistantSettingsSchema,
25
+ ServiceType: () => import_chunk_KLSNCP34.ServiceType,
26
+ TemplateInputSchema: () => import_chunk_KLSNCP34.TemplateInputSchema,
27
+ TemplateInputType: () => import_chunk_KLSNCP34.TemplateInputType,
28
+ TemplateKindSchema: () => import_chunk_KLSNCP34.TemplateKindSchema,
29
+ TemplateKinds: () => import_chunk_KLSNCP34.TemplateKinds,
30
+ TemplateType: () => import_chunk_KLSNCP34.TemplateType,
31
+ categoryIcons: () => import_chunk_KLSNCP34.categoryIcons
30
32
  });
31
33
  module.exports = __toCommonJS(types_exports);
32
- var import_chunk_37GI4NYH = require("../chunk-37GI4NYH.cjs");
33
- var import_chunk_GNPXCHFT = require("../chunk-GNPXCHFT.cjs");
34
+ var import_chunk_KLSNCP34 = require("../chunk-KLSNCP34.cjs");
35
+ var import_chunk_U6J2GO7I = require("../chunk-U6J2GO7I.cjs");
34
36
  // Annotate the CommonJS export names for ESM import in node:
35
37
  0 && (module.exports = {
36
38
  AIChatType,
@@ -40,6 +42,8 @@ var import_chunk_GNPXCHFT = require("../chunk-GNPXCHFT.cjs");
40
42
  ServiceType,
41
43
  TemplateInputSchema,
42
44
  TemplateInputType,
45
+ TemplateKindSchema,
46
+ TemplateKinds,
43
47
  TemplateType,
44
48
  categoryIcons
45
49
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.cjs"],
4
- "sourcesContent": ["import {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateType,\n categoryIcons\n} from \"../chunk-37GI4NYH.cjs\";\nimport \"../chunk-GNPXCHFT.cjs\";\nexport {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateType,\n categoryIcons\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAUO;AACP,4BAAO;",
4
+ "sourcesContent": ["import {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n} from \"../chunk-KLSNCP34.cjs\";\nimport \"../chunk-U6J2GO7I.cjs\";\nexport {\n AIChatType,\n ApiAuthorization,\n AssistantAction,\n AssistantSettingsSchema,\n ServiceType,\n TemplateInputSchema,\n TemplateInputType,\n TemplateKindSchema,\n TemplateKinds,\n TemplateType,\n categoryIcons\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAYO;AACP,4BAAO;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,12 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-7JENJTLB.mjs";
5
- import "./chunk-77ARTFBA.mjs";
6
- import "./chunk-CJ4Y3QW5.mjs";
4
+ } from "./chunk-PK5JCOYB.mjs";
5
+ import "./chunk-2CIYX3SD.mjs";
6
+ import "./chunk-NMMRHHAR.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
9
- } from "./chunk-7SV6X6XU.mjs";
9
+ } from "./chunk-N6BVC2C2.mjs";
10
10
 
11
11
  // packages/plugins/experimental/plugin-assistant/src/components/AssistantDialog.tsx
12
12
  import React2, { useState as useState2 } from "react";
@@ -21,14 +21,14 @@ import { resizeAttributes, ResizeHandle, sizeStyle } from "@dxos/react-ui-dnd";
21
21
  import { mx } from "@dxos/react-ui-theme";
22
22
  var preventDefault = (event) => event.preventDefault();
23
23
  var minSize = 5;
24
- var AmbientDialog = ({ children, open: _open, title, onOpenChange }) => {
24
+ var AmbientDialog = ({ children, open: controlledOpen, title, onOpenChange }) => {
25
25
  const [resizeKey, setReizeKey] = useState(0);
26
26
  const [size, setSize] = useState("min-content");
27
- const [open, setOpen] = useState(_open);
27
+ const [open, setOpen] = useState(controlledOpen);
28
28
  useEffect(() => {
29
- setOpen(_open);
29
+ setOpen(controlledOpen);
30
30
  }, [
31
- _open
31
+ controlledOpen
32
32
  ]);
33
33
  useEffect(() => {
34
34
  setSize(open ? "min-content" : minSize);
@@ -52,7 +52,7 @@ var AmbientDialog = ({ children, open: _open, title, onOpenChange }) => {
52
52
  ...resizeAttributes,
53
53
  style: {
54
54
  ...sizeStyle(size, "vertical", true),
55
- maxBlockSize: "calc(100dvh - env(safe-area-inset-bottom) - env(safe-area-inset-top) - 8rem)"
55
+ maxBlockSize: "calc(100dvh - env(safe-area-inset-bottom) - env(safe-area-inset-top) - 9rem)"
56
56
  },
57
57
  onInteractOutside: preventDefault
58
58
  }, /* @__PURE__ */ React.createElement(ResizeHandle, {
@@ -106,6 +106,7 @@ var AssistantDialog = ({ chat }) => {
106
106
  chat,
107
107
  onOpenChange: setOpen,
108
108
  settings,
109
+ part: "dialog",
109
110
  transcription
110
111
  }));
111
112
  };
@@ -114,4 +115,4 @@ export {
114
115
  AssistantDialog,
115
116
  AssistantDialog_default as default
116
117
  };
117
- //# sourceMappingURL=AssistantDialog-5AT5JAZL.mjs.map
118
+ //# sourceMappingURL=AssistantDialog-JMBFM6QH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AssistantDialog.tsx", "../../../src/components/AmbientDialog/AmbientDialog.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type FC, useState } from 'react';\n\nimport { useCapability, Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { TranscriptionCapabilities } from '@dxos/plugin-transcription';\nimport { useTranslation } from '@dxos/react-ui';\n\nimport { AmbientDialog } from './AmbientDialog';\nimport { ThreadContainer } from './Thread';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps, type AIChatType } from '../types';\n\nexport const AssistantDialog: FC<{ chat?: AIChatType }> = ({ chat }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n const transcription = useCapabilities(TranscriptionCapabilities.Transcription).length > 0;\n const settings = useCapability(Capabilities.SettingsStore).getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n // TODO(burdon): Refocus when open.\n const [open, setOpen] = useState(false);\n\n return (\n <AmbientDialog open={open} onOpenChange={setOpen} title={t('assistant dialog title')}>\n <ThreadContainer\n chat={chat}\n onOpenChange={setOpen}\n settings={settings}\n part={'dialog'}\n transcription={transcription}\n />\n </AmbientDialog>\n );\n};\n\nexport default AssistantDialog;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type PropsWithChildren, useCallback, useEffect, useState } from 'react';\n\nimport { Dialog, Icon, IconButton } from '@dxos/react-ui';\nimport { resizeAttributes, ResizeHandle, type Size, sizeStyle } from '@dxos/react-ui-dnd';\nimport { mx } from '@dxos/react-ui-theme';\n\nconst preventDefault = (event: Event) => event.preventDefault();\n\nconst minSize = 5;\n\nexport type AmbientDialogProps = PropsWithChildren<{\n open?: boolean;\n title?: string;\n onOpenChange?: (open: boolean) => void;\n}>;\n\nexport const AmbientDialog = ({ children, open: controlledOpen, title, onOpenChange }: AmbientDialogProps) => {\n const [resizeKey, setReizeKey] = useState(0);\n const [size, setSize] = useState<Size>('min-content');\n const [open, setOpen] = useState(controlledOpen);\n\n // Update controlled value.\n useEffect(() => {\n setOpen(controlledOpen);\n }, [controlledOpen]);\n\n // Update size and key.\n useEffect(() => {\n setSize(open ? 'min-content' : minSize);\n setReizeKey((key) => key + 1);\n }, [open]);\n\n // TODO(burdon): Animate open/close.\n // NOTE: We set the min size to 5rem (80px), and the header and prompt bar to 40px (i.e., the rail-size) each.\n // The dialog has no vertical padding and has box-content so that when closed it collapses to the size of the header and prompt bar.\n const handleToggle = useCallback(() => {\n setOpen((open) => {\n onOpenChange?.(!open);\n return !open;\n });\n }, []);\n\n return (\n <div role='none' className='dx-dialog__overlay bg-transparent pointer-events-none' data-block-align='end'>\n <Dialog.Content\n classNames='relative box-content py-0 px-2 md:is-[35rem] md:max-is-none overflow-hidden pointer-events-auto transition-[block-size] ease-in-out duration-0 [&:not([data-dx-resizing=\"true\"])]:duration-200'\n inOverlayLayout\n {...resizeAttributes}\n style={{\n ...sizeStyle(size, 'vertical', true),\n maxBlockSize: 'calc(100dvh - env(safe-area-inset-bottom) - env(safe-area-inset-top) - 9rem)',\n }}\n onInteractOutside={preventDefault}\n >\n <ResizeHandle\n key={resizeKey}\n side='block-start'\n defaultSize='min-content'\n minSize={minSize}\n fallbackSize={minSize}\n iconPosition='center'\n onSizeChange={setSize}\n />\n\n <DialogHeader open={open} title={title} onToggle={handleToggle} />\n\n {children}\n </Dialog.Content>\n </div>\n );\n};\n\n/**\n * Matches same layout grid as PromptBar.\n */\nconst DialogHeader = ({ open, title, onToggle }: { open?: boolean; title?: string; onToggle: () => void }) => {\n return (\n <div className='flex shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] items-center overflow-hidden'>\n <div className='flex w-[--rail-action] h-[--rail-action] items-center justify-center'>\n <Dialog.Close>\n <Icon icon='ph--x--regular' />\n </Dialog.Close>\n </div>\n <div className='grow'>\n <Dialog.Title classNames='flex justify-center text-xs text-subdued'>{title}</Dialog.Title>\n </div>\n <div className='flex w-[--rail-action] h-[--rail-action] items-center justify-center'>\n <IconButton\n variant='ghost'\n icon={'ph--caret-up--regular'}\n classNames={mx('[&>svg]:transition [&>svg]:duration-200', open && '[&>svg]:rotate-180')}\n iconOnly\n label='Shrink'\n onClick={onToggle}\n />\n </div>\n </div>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useState", "useCapability", "Capabilities", "useCapabilities", "TranscriptionCapabilities", "useTranslation", "React", "useCallback", "useEffect", "useState", "Dialog", "Icon", "IconButton", "resizeAttributes", "ResizeHandle", "sizeStyle", "mx", "preventDefault", "event", "minSize", "AmbientDialog", "children", "open", "controlledOpen", "title", "onOpenChange", "resizeKey", "setReizeKey", "useState", "size", "setSize", "setOpen", "useEffect", "key", "handleToggle", "useCallback", "div", "role", "className", "data-block-align", "Dialog", "Content", "classNames", "inOverlayLayout", "resizeAttributes", "style", "sizeStyle", "maxBlockSize", "onInteractOutside", "ResizeHandle", "side", "defaultSize", "fallbackSize", "iconPosition", "onSizeChange", "DialogHeader", "onToggle", "Close", "Icon", "icon", "Title", "IconButton", "variant", "mx", "iconOnly", "label", "onClick", "AssistantDialog", "chat", "t", "useTranslation", "ASSISTANT_PLUGIN", "transcription", "useCapabilities", "TranscriptionCapabilities", "Transcription", "length", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "value", "open", "setOpen", "useState", "React", "AmbientDialog", "onOpenChange", "title", "ThreadContainer", "part"]
7
+ }
@@ -1,12 +1,12 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ThreadContainer
4
- } from "./chunk-7JENJTLB.mjs";
5
- import "./chunk-77ARTFBA.mjs";
6
- import "./chunk-CJ4Y3QW5.mjs";
4
+ } from "./chunk-PK5JCOYB.mjs";
5
+ import "./chunk-2CIYX3SD.mjs";
6
+ import "./chunk-NMMRHHAR.mjs";
7
7
  import {
8
8
  ASSISTANT_PLUGIN
9
- } from "./chunk-7SV6X6XU.mjs";
9
+ } from "./chunk-N6BVC2C2.mjs";
10
10
 
11
11
  // packages/plugins/experimental/plugin-assistant/src/components/ChatContainer.tsx
12
12
  import React from "react";
@@ -31,4 +31,4 @@ export {
31
31
  ChatContainer,
32
32
  ChatContainer_default as default
33
33
  };
34
- //# sourceMappingURL=ChatContainer-VR766C4M.mjs.map
34
+ //# sourceMappingURL=ChatContainer-ZNN5CMVL.mjs.map
@@ -0,0 +1,79 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ TemplateEditor
4
+ } from "./chunk-J63VQFQO.mjs";
5
+ import {
6
+ TemplateKinds
7
+ } from "./chunk-NMMRHHAR.mjs";
8
+ import {
9
+ ASSISTANT_PLUGIN
10
+ } from "./chunk-N6BVC2C2.mjs";
11
+
12
+ // packages/plugins/experimental/plugin-assistant/src/components/TemplateContainer.tsx
13
+ import { Match } from "effect";
14
+ import React, { useCallback } from "react";
15
+ import { debounce } from "@dxos/async";
16
+ import { Input, Select, Toolbar, useTranslation } from "@dxos/react-ui";
17
+ import { StackItem } from "@dxos/react-ui-stack";
18
+ var TemplateContainer = ({ template, role }) => {
19
+ const { t } = useTranslation(ASSISTANT_PLUGIN);
20
+ const handleKindChange = useCallback((value) => {
21
+ const kind = Match.type().pipe(Match.withReturnType(), Match.when("always", () => ({
22
+ include: "always"
23
+ })), Match.when("schema-matching", () => ({
24
+ include: "schema-matching",
25
+ typename: ""
26
+ })), Match.when("automatically", () => ({
27
+ include: "automatically",
28
+ description: ""
29
+ })), Match.orElse(() => ({
30
+ include: "manual"
31
+ })))(value);
32
+ template.kind = kind;
33
+ }, [
34
+ template
35
+ ]);
36
+ const handleTypenameChange = useCallback(debounce((event) => {
37
+ if (template.kind.include === "schema-matching") {
38
+ template.kind.typename = event.target.value;
39
+ }
40
+ }, 300), [
41
+ template.kind.include
42
+ ]);
43
+ const handleDescriptionChange = useCallback(debounce((event) => {
44
+ if (template.kind.include === "automatically") {
45
+ template.kind.description = event.target.value;
46
+ }
47
+ }, 300), [
48
+ template.kind.include
49
+ ]);
50
+ return /* @__PURE__ */ React.createElement(StackItem.Content, {
51
+ toolbar: true,
52
+ role,
53
+ classNames: "mli-auto w-full max-w-[50rem]"
54
+ }, /* @__PURE__ */ React.createElement(Toolbar.Root, null, /* @__PURE__ */ React.createElement(Select.Root, {
55
+ value: template.kind.include,
56
+ onValueChange: handleKindChange
57
+ }, /* @__PURE__ */ React.createElement(Toolbar.Button, {
58
+ asChild: true
59
+ }, /* @__PURE__ */ React.createElement(Select.TriggerButton, null)), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, TemplateKinds.map((kind) => /* @__PURE__ */ React.createElement(Select.Option, {
60
+ key: kind,
61
+ value: kind
62
+ }, kind)))))), template.kind.include === "schema-matching" && /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.TextInput, {
63
+ placeholder: t("typename placeholder"),
64
+ defaultValue: template.kind.typename,
65
+ onChange: handleTypenameChange
66
+ })), template.kind.include === "automatically" && /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.TextInput, {
67
+ placeholder: t("description placeholder"),
68
+ defaultValue: template.kind.description,
69
+ onChange: handleDescriptionChange
70
+ }))), /* @__PURE__ */ React.createElement(TemplateEditor, {
71
+ template
72
+ }));
73
+ };
74
+ var TemplateContainer_default = TemplateContainer;
75
+ export {
76
+ TemplateContainer,
77
+ TemplateContainer_default as default
78
+ };
79
+ //# sourceMappingURL=TemplateContainer-YLA6BJY6.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/TemplateContainer.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Match, type Schema as S } from 'effect';\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { Input, Select, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { TemplateEditor } from './TemplateEditor';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { TemplateKinds, type TemplateKindSchema, type TemplateType } from '../types';\n\nexport const TemplateContainer = ({ template, role }: { template: TemplateType; role: string }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n const handleKindChange = useCallback(\n (value: string) => {\n const kind = Match.type<string>().pipe(\n Match.withReturnType<S.Schema.Type<typeof TemplateKindSchema>>(),\n Match.when('always', () => ({ include: 'always' })),\n Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),\n Match.when('automatically', () => ({ include: 'automatically', description: '' })),\n Match.orElse(() => ({ include: 'manual' })),\n )(value);\n\n template.kind = kind;\n },\n [template],\n );\n\n const handleTypenameChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'schema-matching') {\n template.kind.typename = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n const handleDescriptionChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'automatically') {\n template.kind.description = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n return (\n <StackItem.Content toolbar role={role} classNames='mli-auto w-full max-w-[50rem]'>\n {/* TODO(wittjosiah): Move this toolbar into c11y sidebar. */}\n <Toolbar.Root>\n <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {TemplateKinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )}\n {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )}\n </Toolbar.Root>\n <TemplateEditor template={template} />\n </StackItem.Content>\n );\n};\n\nexport default TemplateContainer;\n"],
5
+ "mappings": ";;;;;;;;;;;;AAIA,SAASA,aAA+B;AACxC,OAAOC,SAA2BC,mBAAmB;AAErD,SAASC,gBAAgB;AACzB,SAASC,OAAOC,QAAQC,SAASC,sBAAsB;AACvD,SAASC,iBAAiB;AAMnB,IAAMC,oBAAoB,CAAC,EAAEC,UAAUC,KAAI,MAA4C;AAC5F,QAAM,EAAEC,EAAC,IAAKC,eAAeC,gBAAAA;AAE7B,QAAMC,mBAAmBC,YACvB,CAACC,UAAAA;AACC,UAAMC,OAAOC,MAAMC,KAAI,EAAWC,KAChCF,MAAMG,eAAc,GACpBH,MAAMI,KAAK,UAAU,OAAO;MAAEC,SAAS;IAAS,EAAA,GAChDL,MAAMI,KAAK,mBAAmB,OAAO;MAAEC,SAAS;MAAmBC,UAAU;IAAG,EAAA,GAChFN,MAAMI,KAAK,iBAAiB,OAAO;MAAEC,SAAS;MAAiBE,aAAa;IAAG,EAAA,GAC/EP,MAAMQ,OAAO,OAAO;MAAEH,SAAS;IAAS,EAAA,CAAA,EACxCP,KAAAA;AAEFP,aAASQ,OAAOA;EAClB,GACA;IAACR;GAAS;AAGZ,QAAMkB,uBAAuBZ,YAC3Ba,SAAS,CAACC,UAAAA;AACR,QAAIpB,SAASQ,KAAKM,YAAY,mBAAmB;AAC/Cd,eAASQ,KAAKO,WAAWK,MAAMC,OAAOd;IACxC;EACF,GAAG,GAAA,GACH;IAACP,SAASQ,KAAKM;GAAQ;AAGzB,QAAMQ,0BAA0BhB,YAC9Ba,SAAS,CAACC,UAAAA;AACR,QAAIpB,SAASQ,KAAKM,YAAY,iBAAiB;AAC7Cd,eAASQ,KAAKQ,cAAcI,MAAMC,OAAOd;IAC3C;EACF,GAAG,GAAA,GACH;IAACP,SAASQ,KAAKM;GAAQ;AAGzB,SACE,sBAAA,cAACS,UAAUC,SAAO;IAACC,SAAAA;IAAQxB;IAAYyB,YAAW;KAEhD,sBAAA,cAACC,QAAQC,MAAI,MACX,sBAAA,cAACC,OAAOD,MAAI;IAACrB,OAAOP,SAASQ,KAAKM;IAASgB,eAAezB;KACxD,sBAAA,cAACsB,QAAQI,QAAM;IAACC,SAAAA;KACd,sBAAA,cAACH,OAAOI,eAAa,IAAA,CAAA,GAEvB,sBAAA,cAACJ,OAAOK,QAAM,MACZ,sBAAA,cAACL,OAAOL,SAAO,MACb,sBAAA,cAACK,OAAOM,UAAQ,MACbC,cAAcC,IAAI,CAAC7B,SAClB,sBAAA,cAACqB,OAAOS,QAAM;IAACC,KAAK/B;IAAMD,OAAOC;KAC9BA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAOZR,SAASQ,KAAKM,YAAY,qBACzB,sBAAA,cAAC0B,MAAMZ,MAAI,MACT,sBAAA,cAACY,MAAMC,WAAS;IACdC,aAAaxC,EAAE,sBAAA;IACfyC,cAAc3C,SAASQ,KAAKO;IAC5B6B,UAAU1B;OAIflB,SAASQ,KAAKM,YAAY,mBACzB,sBAAA,cAAC0B,MAAMZ,MAAI,MACT,sBAAA,cAACY,MAAMC,WAAS;IACdC,aAAaxC,EAAE,yBAAA;IACfyC,cAAc3C,SAASQ,KAAKQ;IAC5B4B,UAAUtB;QAKlB,sBAAA,cAACuB,gBAAAA;IAAe7C;;AAGtB;AAEA,IAAA,4BAAeD;",
6
+ "names": ["Match", "React", "useCallback", "debounce", "Input", "Select", "Toolbar", "useTranslation", "StackItem", "TemplateContainer", "template", "role", "t", "useTranslation", "ASSISTANT_PLUGIN", "handleKindChange", "useCallback", "value", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "StackItem", "Content", "toolbar", "classNames", "Toolbar", "Root", "Select", "onValueChange", "Button", "asChild", "TriggerButton", "Portal", "Viewport", "TemplateKinds", "map", "Option", "key", "Input", "TextInput", "placeholder", "defaultValue", "onChange", "TemplateEditor"]
7
+ }
@@ -0,0 +1,36 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ AssistantCapabilities
4
+ } from "./chunk-2CIYX3SD.mjs";
5
+ import {
6
+ ASSISTANT_PLUGIN
7
+ } from "./chunk-N6BVC2C2.mjs";
8
+
9
+ // packages/plugins/experimental/plugin-assistant/src/capabilities/ai-client.ts
10
+ import { effect, signal } from "@preact/signals-core";
11
+ import { Capabilities, contributes } from "@dxos/app-framework";
12
+ import { AIServiceEdgeClient, OllamaClient } from "@dxos/assistant";
13
+ import { ClientCapabilities } from "@dxos/plugin-client";
14
+ var DEFAULT_AI_SERVICE_URL = "http://localhost:8788";
15
+ var ai_client_default = (context) => {
16
+ const client = context.requestCapability(ClientCapabilities.Client);
17
+ const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;
18
+ const ai = signal(new AIServiceEdgeClient({
19
+ endpoint
20
+ }));
21
+ const unsubscribe = effect(() => {
22
+ const settings = context.requestCapability(Capabilities.SettingsStore).getStore(ASSISTANT_PLUGIN)?.value;
23
+ if (settings?.llmProvider === "ollama") {
24
+ ai.value = new OllamaClient();
25
+ } else {
26
+ ai.value = new AIServiceEdgeClient({
27
+ endpoint
28
+ });
29
+ }
30
+ });
31
+ return contributes(AssistantCapabilities.AiClient, ai, () => unsubscribe());
32
+ };
33
+ export {
34
+ ai_client_default as default
35
+ };
36
+ //# sourceMappingURL=ai-client-XYZ5N7CR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/ai-client.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect, signal } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type AIServiceClient, AIServiceEdgeClient, OllamaClient } from '@dxos/assistant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AssistantCapabilities } from './capabilities';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps } from '../types';\n\n// TODO(wittjosiah): Factor out.\nconst DEFAULT_AI_SERVICE_URL = 'http://localhost:8788';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;\n\n const ai = signal<AIServiceClient>(new AIServiceEdgeClient({ endpoint }));\n\n const unsubscribe = effect(() => {\n // TODO(burdon): Could be undefined.\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n if (settings?.llmProvider === 'ollama') {\n ai.value = new OllamaClient();\n } else {\n ai.value = new AIServiceEdgeClient({ endpoint });\n }\n });\n\n return contributes(AssistantCapabilities.AiClient, ai, () => unsubscribe());\n};\n"],
5
+ "mappings": ";;;;;;;;;AAIA,SAASA,QAAQC,cAAc;AAE/B,SAASC,cAAcC,mBAAwC;AAC/D,SAA+BC,qBAAqBC,oBAAoB;AACxE,SAASC,0BAA0B;AAOnC,IAAMC,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AAEvE,QAAMW,KAAKE,OAAwB,IAAIC,oBAAoB;IAAER;EAAS,CAAA,CAAA;AAEtE,QAAMS,cAAcC,OAAO,MAAA;AAEzB,UAAMC,WAAWhB,QACdE,kBAAkBe,aAAaC,aAAa,EAC5CC,SAAiCC,gBAAAA,GAAmBC;AAEvD,QAAIL,UAAUM,gBAAgB,UAAU;AACtCZ,SAAGW,QAAQ,IAAIE,aAAAA;IACjB,OAAO;AACLb,SAAGW,QAAQ,IAAIR,oBAAoB;QAAER;MAAS,CAAA;IAChD;EACF,CAAA;AAEA,SAAOmB,YAAYC,sBAAsBC,UAAUhB,IAAI,MAAMI,YAAAA,CAAAA;AAC/D;",
6
+ "names": ["effect", "signal", "Capabilities", "contributes", "AIServiceEdgeClient", "OllamaClient", "ClientCapabilities", "DEFAULT_AI_SERVICE_URL", "context", "client", "requestCapability", "ClientCapabilities", "Client", "endpoint", "config", "values", "runtime", "services", "ai", "server", "signal", "AIServiceEdgeClient", "unsubscribe", "effect", "settings", "Capabilities", "SettingsStore", "getStore", "ASSISTANT_PLUGIN", "value", "llmProvider", "OllamaClient", "contributes", "AssistantCapabilities", "AiClient"]
7
+ }
@@ -1,21 +1,22 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  AIChatType,
4
- AssistantAction
5
- } from "./chunk-CJ4Y3QW5.mjs";
4
+ AssistantAction,
5
+ TemplateType
6
+ } from "./chunk-NMMRHHAR.mjs";
6
7
  import {
7
8
  ASSISTANT_DIALOG,
8
9
  ASSISTANT_PLUGIN
9
- } from "./chunk-7SV6X6XU.mjs";
10
+ } from "./chunk-N6BVC2C2.mjs";
10
11
 
11
12
  // packages/plugins/experimental/plugin-assistant/src/capabilities/app-graph-builder.ts
12
13
  import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
13
14
  import { invariant } from "@dxos/invariant";
14
- import { log } from "@dxos/log";
15
15
  import { ClientCapabilities } from "@dxos/plugin-client";
16
16
  import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
17
+ import { memoizeQuery } from "@dxos/plugin-space";
17
18
  import { SpaceAction } from "@dxos/plugin-space/types";
18
- import { Filter, getSpace } from "@dxos/react-client/echo";
19
+ import { Filter, fullyQualifiedId, getSpace, isSpace } from "@dxos/react-client/echo";
19
20
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/capabilities/app-graph-builder.ts";
20
21
  var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
21
22
  createExtension({
@@ -43,12 +44,6 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
43
44
  chat = await getOrCreateChat(dispatch, space);
44
45
  }
45
46
  if (!chat) {
46
- log.warn("no chat found", void 0, {
47
- F: __dxlog_file,
48
- L: 54,
49
- S: void 0,
50
- C: (f, a) => f(...a)
51
- });
52
47
  return;
53
48
  }
54
49
  await dispatch(createIntent(LayoutAction.UpdateDialog, {
@@ -80,6 +75,55 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
80
75
  }
81
76
  }
82
77
  ]
78
+ }),
79
+ createExtension({
80
+ id: `${ASSISTANT_PLUGIN}/root`,
81
+ filter: (node) => isSpace(node.data),
82
+ connector: ({ node }) => {
83
+ const templates = memoizeQuery(node.data, Filter.schema(TemplateType));
84
+ return templates.length > 0 ? [
85
+ {
86
+ id: `${ASSISTANT_PLUGIN}/templates`,
87
+ type: `${ASSISTANT_PLUGIN}/templates`,
88
+ data: null,
89
+ properties: {
90
+ label: [
91
+ "templates label",
92
+ {
93
+ ns: ASSISTANT_PLUGIN
94
+ }
95
+ ],
96
+ icon: "ph--file-code--regular",
97
+ space: node.data
98
+ }
99
+ }
100
+ ] : [];
101
+ }
102
+ }),
103
+ createExtension({
104
+ id: `${ASSISTANT_PLUGIN}/templates`,
105
+ filter: (node) => node.id === `${ASSISTANT_PLUGIN}/templates`,
106
+ connector: ({ node }) => {
107
+ const templates = memoizeQuery(node.properties.space, Filter.schema(TemplateType));
108
+ return templates.toSorted((a, b) => {
109
+ const nameA = a.name ?? "";
110
+ const nameB = b.name ?? "";
111
+ return nameA.localeCompare(nameB);
112
+ }).map((template) => ({
113
+ id: fullyQualifiedId(template),
114
+ type: `${ASSISTANT_PLUGIN}/template`,
115
+ data: template,
116
+ properties: {
117
+ label: template.name ?? [
118
+ "template title placeholder",
119
+ {
120
+ ns: ASSISTANT_PLUGIN
121
+ }
122
+ ],
123
+ icon: "ph--file-code--regular"
124
+ }
125
+ }));
126
+ }
83
127
  })
84
128
  ]);
85
129
  var getOrCreateChat = async (dispatch, space) => {
@@ -92,7 +136,7 @@ var getOrCreateChat = async (dispatch, space) => {
92
136
  }));
93
137
  invariant(data?.object instanceof AIChatType, void 0, {
94
138
  F: __dxlog_file,
95
- L: 97,
139
+ L: 141,
96
140
  S: void 0,
97
141
  A: [
98
142
  "data?.object instanceof AIChatType",
@@ -108,4 +152,4 @@ var getOrCreateChat = async (dispatch, space) => {
108
152
  export {
109
153
  app_graph_builder_default as default
110
154
  };
111
- //# sourceMappingURL=app-graph-builder-H2GC2AZA.mjs.map
155
+ //# sourceMappingURL=app-graph-builder-PMAQLTTN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n type PromiseIntentDispatcher,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { createExtension, type Node, ROOT_ID } from '@dxos/plugin-graph';\nimport { memoizeQuery } from '@dxos/plugin-space';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { type Space, Filter, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';\n\nimport { ASSISTANT_DIALOG, ASSISTANT_PLUGIN } from '../meta';\nimport { AIChatType, AssistantAction, TemplateType } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${ASSISTANT_PLUGIN}/assistant`,\n filter: (node): node is Node<null> => node.id === ROOT_ID,\n actions: () => [\n {\n id: `${LayoutAction.UpdateDialog._tag}/assistant/open`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const client = context.requestCapability(ClientCapabilities.Client);\n const layout = context.requestCapability(Capabilities.Layout);\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n\n // TODO(burdon): Get space from workspace.\n // TODO(burdon): If need to create chat, then add to dispatch stack below.\n let chat: AIChatType | undefined;\n if (layout.active.length > 0) {\n const node = graph.findNode(layout.active[0]);\n if (node) {\n const space = getSpace(node.data);\n if (space) {\n chat = await getOrCreateChat(dispatch, space);\n }\n }\n } else {\n const space = client.spaces.default;\n chat = await getOrCreateChat(dispatch, space);\n }\n\n if (!chat) {\n return;\n }\n\n await dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: ASSISTANT_DIALOG,\n options: {\n state: true,\n blockAlign: 'end',\n props: {\n chat,\n },\n },\n }),\n );\n },\n properties: {\n label: ['open assistant label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--chat-centered-text--regular',\n disposition: 'pin-end',\n position: 'hoist',\n keyBinding: {\n macos: 'shift+meta+k',\n windows: 'shift+ctrl+k',\n },\n },\n },\n ],\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/root`,\n filter: (node): node is Node<Space> => isSpace(node.data),\n connector: ({ node }) => {\n const templates = memoizeQuery(node.data, Filter.schema(TemplateType));\n return templates.length > 0\n ? [\n {\n id: `${ASSISTANT_PLUGIN}/templates`,\n type: `${ASSISTANT_PLUGIN}/templates`,\n data: null,\n properties: {\n label: ['templates label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n space: node.data,\n },\n },\n ]\n : [];\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/templates`,\n filter: (node): node is Node<null, { space: Space }> => node.id === `${ASSISTANT_PLUGIN}/templates`,\n connector: ({ node }) => {\n const templates = memoizeQuery(node.properties.space, Filter.schema(TemplateType));\n return templates\n .toSorted((a, b) => {\n const nameA = a.name ?? '';\n const nameB = b.name ?? '';\n return nameA.localeCompare(nameB);\n })\n .map((template) => ({\n id: fullyQualifiedId(template),\n type: `${ASSISTANT_PLUGIN}/template`,\n data: template,\n properties: {\n label: template.name ?? ['template title placeholder', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n },\n }));\n },\n }),\n ]);\n\n// TODO(burdon): Factor out.\nconst getOrCreateChat = async (dispatch: PromiseIntentDispatcher, space: Space): Promise<AIChatType | undefined> => {\n const { objects } = await space.db.query(Filter.schema(AIChatType)).run();\n // console.log('objects', JSON.stringify(objects, null, 2));\n if (objects.length > 0) {\n // TODO(burdon): Is this the most recent?\n return objects[objects.length - 1];\n }\n\n const { data } = await dispatch(createIntent(AssistantAction.CreateChat, { spaceId: space.id }));\n invariant(data?.object instanceof AIChatType);\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: data.object }));\n return data.object;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Capabilities", "contributes", "createIntent", "LayoutAction", "invariant", "ClientCapabilities", "createExtension", "ROOT_ID", "memoizeQuery", "SpaceAction", "Filter", "fullyQualifiedId", "getSpace", "isSpace", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "ASSISTANT_PLUGIN", "filter", "node", "ROOT_ID", "actions", "LayoutAction", "UpdateDialog", "_tag", "data", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "client", "ClientCapabilities", "Client", "layout", "Layout", "graph", "AppGraph", "chat", "active", "length", "findNode", "space", "getSpace", "getOrCreateChat", "spaces", "default", "createIntent", "part", "subject", "ASSISTANT_DIALOG", "options", "state", "blockAlign", "props", "properties", "label", "ns", "icon", "disposition", "position", "keyBinding", "macos", "windows", "isSpace", "connector", "templates", "memoizeQuery", "Filter", "schema", "TemplateType", "type", "toSorted", "a", "b", "nameA", "name", "nameB", "localeCompare", "map", "template", "fullyQualifiedId", "objects", "db", "query", "AIChatType", "run", "AssistantAction", "CreateChat", "spaceId", "invariant", "object", "SpaceAction", "AddObject", "target"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ASSISTANT_PLUGIN
4
- } from "./chunk-7SV6X6XU.mjs";
4
+ } from "./chunk-N6BVC2C2.mjs";
5
5
 
6
6
  // packages/plugins/experimental/plugin-assistant/src/capabilities/capabilities.ts
7
7
  import { defineCapability } from "@dxos/app-framework";
@@ -13,4 +13,4 @@ var AssistantCapabilities;
13
13
  export {
14
14
  AssistantCapabilities
15
15
  };
16
- //# sourceMappingURL=chunk-77ARTFBA.mjs.map
16
+ //# sourceMappingURL=chunk-2CIYX3SD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/capabilities.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ReadonlySignal } from '@preact/signals-core';\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type AIServiceClient } from '@dxos/assistant';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\n\nexport namespace AssistantCapabilities {\n export const AiClient = defineCapability<ReadonlySignal<AIServiceClient>>(`${ASSISTANT_PLUGIN}/capability/ai-client`);\n}\n"],
5
+ "mappings": ";;;;;;AAMA,SAASA,wBAAwB;;UAKhBC,wBAAAA;yBACFC,WAAWC,iBAAkD,GAAGC,gBAAAA,uBAAuC;AACtH,GAFiBH,0BAAAA,wBAAAA,CAAAA,EAAAA;",
6
+ "names": ["defineCapability", "AssistantCapabilities", "AiClient", "defineCapability", "ASSISTANT_PLUGIN"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ASSISTANT_PLUGIN
4
- } from "./chunk-7SV6X6XU.mjs";
4
+ } from "./chunk-N6BVC2C2.mjs";
5
5
 
6
6
  // packages/plugins/experimental/plugin-assistant/src/components/TemplateEditor/TemplateEditor.tsx
7
7
  import { HighlightStyle, LanguageSupport, syntaxHighlighting } from "@codemirror/language";
@@ -79,4 +79,4 @@ export {
79
79
  TemplateEditor,
80
80
  handlebarsHighlightStyle
81
81
  };
82
- //# sourceMappingURL=chunk-LBQGJE5T.mjs.map
82
+ //# sourceMappingURL=chunk-J63VQFQO.mjs.map
@@ -19,4 +19,4 @@ export {
19
19
  ASSISTANT_DIALOG,
20
20
  meta
21
21
  };
22
- //# sourceMappingURL=chunk-7SV6X6XU.mjs.map
22
+ //# sourceMappingURL=chunk-N6BVC2C2.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const ASSISTANT_PLUGIN = 'dxos.org/plugin/assistant';\n\nexport const ASSISTANT_DIALOG = `${ASSISTANT_PLUGIN}/assistant/dialog`;\n\nexport const meta = {\n id: ASSISTANT_PLUGIN,\n name: 'Assistant',\n description: 'The Assistant tab allows you to chat with your spaces inside of Composer.',\n icon: 'ph--atom--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-assistant',\n tags: ['experimental'],\n} satisfies PluginMeta;\n"],
5
- "mappings": ";;;AAMO,IAAMA,mBAAmB;AAEzB,IAAMC,mBAAmB,GAAGD,gBAAAA;AAE5B,IAAME,OAAO;EAClBC,IAAIH;EACJI,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const ASSISTANT_PLUGIN = 'dxos.org/plugin/assistant';\n\nexport const ASSISTANT_DIALOG = `${ASSISTANT_PLUGIN}/assistant/dialog`;\n\nexport const meta: PluginMeta = {\n id: ASSISTANT_PLUGIN,\n name: 'Assistant',\n description: 'The Assistant tab allows you to chat with your spaces inside of Composer.',\n icon: 'ph--atom--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-assistant',\n tags: ['experimental'],\n};\n"],
5
+ "mappings": ";;;AAMO,IAAMA,mBAAmB;AAEzB,IAAMC,mBAAmB,GAAGD,gBAAAA;AAE5B,IAAME,OAAmB;EAC9BC,IAAIH;EACJI,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
6
6
  "names": ["ASSISTANT_PLUGIN", "ASSISTANT_DIALOG", "meta", "id", "name", "description", "icon", "source", "tags"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ASSISTANT_PLUGIN
4
- } from "./chunk-7SV6X6XU.mjs";
4
+ } from "./chunk-N6BVC2C2.mjs";
5
5
 
6
6
  // packages/plugins/experimental/plugin-assistant/src/types/chat.ts
7
7
  import { Expando, Ref, S, TypedObject } from "@dxos/echo-schema";
@@ -18,7 +18,7 @@ var AIChatType = class extends TypedObject({
18
18
  // packages/plugins/experimental/plugin-assistant/src/types/service.ts
19
19
  import { ComputeGraph } from "@dxos/conductor";
20
20
  import { Ref as Ref2, S as S2, TypedObject as TypedObject2 } from "@dxos/echo-schema";
21
- import { FunctionType } from "@dxos/functions";
21
+ import { FunctionType } from "@dxos/functions/types";
22
22
  var ApiAuthorizationKey = S2.Struct({
23
23
  type: S2.Literal("api-key"),
24
24
  key: S2.String,
@@ -106,11 +106,29 @@ var TemplateInputSchema = S3.mutable(S3.Struct({
106
106
  type: S3.optional(S3.Enums(TemplateInputType)),
107
107
  value: S3.optional(S3.String)
108
108
  }));
109
+ var TemplateKinds = [
110
+ "always",
111
+ "schema-matching",
112
+ "automatically",
113
+ "manual"
114
+ ];
115
+ var TemplateKindSchema = S3.Union(S3.Struct({
116
+ include: S3.Literal("always")
117
+ }), S3.Struct({
118
+ include: S3.Literal("schema-matching"),
119
+ typename: S3.String
120
+ }), S3.Struct({
121
+ include: S3.Literal("automatically"),
122
+ description: S3.String
123
+ }), S3.Struct({
124
+ include: S3.Literal("manual")
125
+ }));
109
126
  var TemplateType = class extends TypedObject3({
110
127
  typename: "dxos.org/type/Template",
111
128
  version: "0.1.0"
112
129
  })({
113
130
  name: S3.optional(S3.String),
131
+ kind: S3.mutable(TemplateKindSchema),
114
132
  source: S3.String,
115
133
  inputs: S3.optional(S3.mutable(S3.Array(TemplateInputSchema))),
116
134
  command: S3.optional(S3.String)
@@ -145,7 +163,9 @@ var AssistantAction;
145
163
  AssistantAction2.CreateTemplate = CreateTemplate;
146
164
  })(AssistantAction || (AssistantAction = {}));
147
165
  var AssistantSettingsSchema = S4.mutable(S4.Struct({
148
- llmModel: S4.optional(S4.String),
166
+ llmProvider: S4.optional(S4.Literal("edge", "ollama")),
167
+ edgeModel: S4.optional(S4.String),
168
+ ollamaModel: S4.optional(S4.String),
149
169
  customPrompts: S4.optional(S4.Boolean)
150
170
  }));
151
171
 
@@ -156,8 +176,10 @@ export {
156
176
  categoryIcons,
157
177
  TemplateInputType,
158
178
  TemplateInputSchema,
179
+ TemplateKinds,
180
+ TemplateKindSchema,
159
181
  TemplateType,
160
182
  AssistantAction,
161
183
  AssistantSettingsSchema
162
184
  };
163
- //# sourceMappingURL=chunk-CJ4Y3QW5.mjs.map
185
+ //# sourceMappingURL=chunk-NMMRHHAR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/chat.ts", "../../../src/types/service.ts", "../../../src/types/template.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Expando, Ref, S, TypedObject } from '@dxos/echo-schema';\n\nexport class AIChatType extends TypedObject({ typename: 'dxos.org/type/AIChat', version: '0.1.0' })({\n name: S.optional(S.String),\n // TODO(wittjosiah): Should be a ref to a Queue.\n queue: Ref(Expando),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Ref, S, TypedObject, type Ref$ } from '@dxos/echo-schema';\nimport { FunctionType } from '@dxos/functions/types';\n\nconst ApiAuthorizationKey = S.Struct({\n type: S.Literal('api-key'),\n key: S.String,\n placement: S.Union(\n S.Struct({\n type: S.Literal('authorization-header'),\n }),\n S.Struct({\n type: S.Literal('query'),\n name: S.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = S.Struct({\n type: S.Literal('oauth'),\n clientId: S.String,\n clientSecret: S.String,\n tokenUrl: S.String,\n grantType: S.String,\n});\n\nexport const ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = S.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = S.Struct({\n kind: S.Literal('function'),\n fn: Ref(FunctionType) as Ref$<FunctionType>,\n});\n\nconst ServiceInterfaceWorkflow = S.Struct({\n kind: S.Literal('workflow'),\n workflow: Ref(ComputeGraph) as Ref$<ComputeGraph>,\n});\n\nconst ServiceInterfaceApi = S.Struct({\n kind: S.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: S.optional(S.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: S.optional(S.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: S.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);\nexport type ServiceInterface = S.Schema.Type<typeof ServiceInterface>;\n\nexport class ServiceType extends TypedObject({ typename: 'dxos.org/type/ServiceType', version: '0.1.0' })({\n serviceId: S.String,\n name: S.optional(S.String),\n description: S.optional(S.String),\n category: S.optional(S.String),\n enabled: S.optional(S.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: S.optional(S.Array(ServiceInterface)),\n}) {}\n\n//\n// Service Registry\n//\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\n}\n\nexport const categoryIcons: Record<string, string> = {\n finance: 'ph--bank--regular',\n health: 'ph--heart--regular',\n geolocation: 'ph--globe-simple--regular',\n education: 'ph--books--regular',\n entertainment: 'ph--music-notes--regular',\n shopping: 'ph--shopping-cart--regular',\n travel: 'ph--airplane-takeoff--regular',\n utilities: 'ph--lightning--regular',\n weather: 'ph--cloud-rain--regular',\n} as const;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { S, TypedObject } from '@dxos/echo-schema';\n\n// TODO(burdon): Change to S.Literal (and discriminated union).\nexport enum TemplateInputType {\n VALUE = 0,\n PASS_THROUGH = 1,\n RETRIEVER = 2,\n FUNCTION = 3,\n QUERY = 4,\n RESOLVER = 5,\n CONTEXT = 6,\n SCHEMA = 7,\n}\n\nexport const TemplateInputSchema = S.mutable(\n S.Struct({\n name: S.String,\n type: S.optional(S.Enums(TemplateInputType)),\n value: S.optional(S.String),\n }),\n);\n\nexport type TemplateInput = S.Schema.Type<typeof TemplateInputSchema>;\n\nexport const TemplateKinds = ['always', 'schema-matching', 'automatically', 'manual'] as const;\nexport type TemplateKind = (typeof TemplateKinds)[number];\n\nexport const TemplateKindSchema = S.Union(\n S.Struct({\n include: S.Literal('always'),\n }),\n S.Struct({\n include: S.Literal('schema-matching'),\n typename: S.String,\n }),\n S.Struct({\n include: S.Literal('automatically'),\n description: S.String,\n }),\n S.Struct({\n include: S.Literal('manual'),\n }),\n);\n\nexport type TemplateKindType = S.Schema.Type<typeof TemplateKindSchema>;\nexport class TemplateType extends TypedObject({ typename: 'dxos.org/type/Template', version: '0.1.0' })({\n name: S.optional(S.String),\n kind: S.mutable(TemplateKindSchema),\n source: S.String,\n inputs: S.optional(S.mutable(S.Array(TemplateInputSchema))),\n command: S.optional(S.String),\n}) {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\n\nimport { AIChatType } from './chat';\nimport { TemplateType } from './template';\nimport { ASSISTANT_PLUGIN } from '../meta';\n\nexport namespace AssistantAction {\n const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;\n\n export class CreateChat extends S.TaggedClass<CreateChat>()(`${ASSISTANT_ACTION}/create-chat`, {\n input: S.Struct({\n spaceId: S.optional(S.String),\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: AIChatType,\n }),\n }) {}\n\n export class CreateTemplate extends S.TaggedClass<CreateTemplate>()(`${ASSISTANT_ACTION}/create-template`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: TemplateType,\n }),\n }) {}\n}\n\nexport const AssistantSettingsSchema = S.mutable(\n S.Struct({\n llmProvider: S.optional(S.Literal('edge', 'ollama')),\n edgeModel: S.optional(S.String),\n ollamaModel: S.optional(S.String),\n customPrompts: S.optional(S.Boolean),\n }),\n);\n\nexport type AssistantSettingsProps = S.Schema.Type<typeof AssistantSettingsSchema>;\n"],
5
+ "mappings": "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",
6
+ "names": ["Expando", "Ref", "S", "TypedObject", "AIChatType", "TypedObject", "typename", "version", "name", "S", "optional", "String", "queue", "Ref", "Expando", "ComputeGraph", "Ref", "S", "TypedObject", "FunctionType", "ApiAuthorizationKey", "S", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "Ref", "FunctionType", "ServiceInterfaceWorkflow", "workflow", "ComputeGraph", "ServiceInterfaceApi", "schemaUrl", "optional", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "TypedObject", "typename", "version", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "Array", "categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather", "S", "TypedObject", "TemplateInputType", "TemplateInputSchema", "S", "mutable", "Struct", "name", "String", "type", "optional", "Enums", "value", "TemplateKinds", "TemplateKindSchema", "Union", "include", "Literal", "typename", "description", "TemplateType", "TypedObject", "version", "kind", "source", "inputs", "Array", "command", "S", "AssistantAction", "ASSISTANT_ACTION", "ASSISTANT_PLUGIN", "CreateChat", "S", "TaggedClass", "input", "Struct", "spaceId", "optional", "String", "name", "output", "object", "AIChatType", "CreateTemplate", "TemplateType", "AssistantSettingsSchema", "mutable", "llmProvider", "Literal", "edgeModel", "ollamaModel", "customPrompts", "Boolean"]
7
+ }