@dxos/plugin-assistant 0.8.4-main.28f8d3d → 0.8.4-main.2c6827d

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 (510) hide show
  1. package/dist/lib/browser/BlueprintArticle-IMCR3642.mjs +36 -0
  2. package/dist/lib/browser/BlueprintArticle-IMCR3642.mjs.map +7 -0
  3. package/dist/lib/browser/ChatCompanion-4MS4NMZY.mjs +158 -0
  4. package/dist/lib/browser/ChatCompanion-4MS4NMZY.mjs.map +7 -0
  5. package/dist/lib/browser/{ChatContainer-OUVSX5V5.mjs → ChatContainer-GJZN3SIJ.mjs} +27 -26
  6. package/dist/lib/browser/ChatContainer-GJZN3SIJ.mjs.map +7 -0
  7. package/dist/lib/browser/{ChatDialog-P4FLEOHG.mjs → ChatDialog-E2X6DTDX.mjs} +17 -13
  8. package/dist/lib/browser/ChatDialog-E2X6DTDX.mjs.map +7 -0
  9. package/dist/lib/browser/PromptArticle-45QX25Y5.mjs +59 -0
  10. package/dist/lib/browser/PromptArticle-45QX25Y5.mjs.map +7 -0
  11. package/dist/lib/browser/ai-service-ERTZBTP3.mjs +19 -0
  12. package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +7 -0
  13. package/dist/lib/browser/{app-graph-builder-AVHHQ3KV.mjs → app-graph-builder-VZEXMDTY.mjs} +72 -39
  14. package/dist/lib/browser/app-graph-builder-VZEXMDTY.mjs.map +7 -0
  15. package/dist/lib/browser/blueprint-definition-5FT5JGPY.mjs +12 -0
  16. package/dist/lib/browser/blueprint-definition-5FT5JGPY.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-2BOE3OTW.mjs +262 -0
  18. package/dist/lib/browser/chunk-2BOE3OTW.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-HRLMD35M.mjs → chunk-BNTPFZ7O.mjs} +60 -22
  20. package/dist/lib/browser/chunk-BNTPFZ7O.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-FJQ4ZRYJ.mjs +335 -0
  22. package/dist/lib/browser/chunk-FJQ4ZRYJ.mjs.map +7 -0
  23. package/dist/lib/browser/{blueprint-definition-CMGIZAOW.mjs → chunk-IXIIS4QA.mjs} +78 -48
  24. package/dist/lib/browser/chunk-IXIIS4QA.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-LRE4VEZV.mjs +16 -0
  26. package/dist/lib/browser/chunk-LRE4VEZV.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-TCAQJ26D.mjs +1929 -0
  28. package/dist/lib/browser/chunk-TCAQJ26D.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-WBG5PTSX.mjs +23 -0
  30. package/dist/lib/browser/chunk-WBG5PTSX.mjs.map +7 -0
  31. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +18 -0
  32. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +7 -0
  33. package/dist/lib/browser/index.mjs +162 -73
  34. package/dist/lib/browser/index.mjs.map +4 -4
  35. package/dist/lib/browser/intent-resolver-AK5O4GUW.mjs +143 -0
  36. package/dist/lib/browser/intent-resolver-AK5O4GUW.mjs.map +7 -0
  37. package/dist/lib/browser/local-model-resolver-34MVHRKD.mjs +17 -0
  38. package/dist/lib/browser/local-model-resolver-34MVHRKD.mjs.map +7 -0
  39. package/dist/lib/browser/meta.json +1 -1
  40. package/dist/lib/browser/react-surface-XWAR5ZVL.mjs +98 -0
  41. package/dist/lib/browser/react-surface-XWAR5ZVL.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-G2EZXMWT.mjs → settings-NYJGNQ5I.mjs} +5 -5
  43. package/dist/lib/browser/{settings-G2EZXMWT.mjs.map → settings-NYJGNQ5I.mjs.map} +1 -1
  44. package/dist/lib/browser/state-GG7Z3NB7.mjs +25 -0
  45. package/dist/lib/browser/state-GG7Z3NB7.mjs.map +7 -0
  46. package/dist/lib/browser/toolkit-VYDAWNE4.mjs +17 -0
  47. package/dist/lib/browser/toolkit-VYDAWNE4.mjs.map +7 -0
  48. package/dist/lib/browser/types/index.mjs +2 -2
  49. package/dist/lib/node-esm/BlueprintArticle-OL2HUY6Q.mjs +37 -0
  50. package/dist/lib/node-esm/BlueprintArticle-OL2HUY6Q.mjs.map +7 -0
  51. package/dist/lib/node-esm/ChatCompanion-TYRR7BXD.mjs +159 -0
  52. package/dist/lib/node-esm/ChatCompanion-TYRR7BXD.mjs.map +7 -0
  53. package/dist/lib/node-esm/{ChatContainer-D5FABDNE.mjs → ChatContainer-MT4INE7Z.mjs} +27 -26
  54. package/dist/lib/node-esm/ChatContainer-MT4INE7Z.mjs.map +7 -0
  55. package/dist/lib/node-esm/{ChatDialog-NKWVXHJP.mjs → ChatDialog-G4EWBIJM.mjs} +17 -13
  56. package/dist/lib/node-esm/ChatDialog-G4EWBIJM.mjs.map +7 -0
  57. package/dist/lib/node-esm/PromptArticle-OUKFSJQV.mjs +60 -0
  58. package/dist/lib/node-esm/PromptArticle-OUKFSJQV.mjs.map +7 -0
  59. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +20 -0
  60. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +7 -0
  61. package/dist/lib/node-esm/{app-graph-builder-RMOUJMMG.mjs → app-graph-builder-VRN6ESRR.mjs} +72 -39
  62. package/dist/lib/node-esm/app-graph-builder-VRN6ESRR.mjs.map +7 -0
  63. package/dist/lib/node-esm/blueprint-definition-XW6QQVLV.mjs +13 -0
  64. package/dist/lib/node-esm/blueprint-definition-XW6QQVLV.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-3Q22TTXW.mjs +264 -0
  66. package/dist/lib/node-esm/chunk-3Q22TTXW.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-F7RXCX5Y.mjs → chunk-AB74FOA2.mjs} +60 -22
  68. package/dist/lib/node-esm/chunk-AB74FOA2.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-KJGD4EBJ.mjs +336 -0
  70. package/dist/lib/node-esm/chunk-KJGD4EBJ.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-KM24SYPM.mjs +1930 -0
  72. package/dist/lib/node-esm/chunk-KM24SYPM.mjs.map +7 -0
  73. package/dist/lib/node-esm/{blueprint-definition-AEWYMW6I.mjs → chunk-UXTUHH24.mjs} +78 -47
  74. package/dist/lib/node-esm/chunk-UXTUHH24.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-WE6KTH72.mjs +25 -0
  76. package/dist/lib/node-esm/chunk-WE6KTH72.mjs.map +7 -0
  77. package/dist/lib/node-esm/{chunk-X6AANUHZ.mjs → chunk-YWFWT57N.mjs} +4 -4
  78. package/dist/lib/node-esm/chunk-YWFWT57N.mjs.map +7 -0
  79. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs +19 -0
  80. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +7 -0
  81. package/dist/lib/node-esm/index.mjs +162 -73
  82. package/dist/lib/node-esm/index.mjs.map +4 -4
  83. package/dist/lib/node-esm/intent-resolver-L2F3N45L.mjs +144 -0
  84. package/dist/lib/node-esm/intent-resolver-L2F3N45L.mjs.map +7 -0
  85. package/dist/lib/node-esm/local-model-resolver-TP2NTSAX.mjs +18 -0
  86. package/dist/lib/node-esm/local-model-resolver-TP2NTSAX.mjs.map +7 -0
  87. package/dist/lib/node-esm/meta.json +1 -1
  88. package/dist/lib/node-esm/react-surface-JXB7Q6QR.mjs +99 -0
  89. package/dist/lib/node-esm/react-surface-JXB7Q6QR.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-AIP5FOJG.mjs → settings-RRHYI5KO.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-AIP5FOJG.mjs.map → settings-RRHYI5KO.mjs.map} +1 -1
  92. package/dist/lib/node-esm/state-FSUHFMDM.mjs +26 -0
  93. package/dist/lib/node-esm/state-FSUHFMDM.mjs.map +7 -0
  94. package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs +18 -0
  95. package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs.map +7 -0
  96. package/dist/lib/node-esm/types/index.mjs +2 -2
  97. package/dist/types/src/AssistantPlugin.d.ts +1 -1
  98. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/ai-service.d.ts +2 -3
  100. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  102. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -1
  104. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/capabilities.d.ts +7 -8
  106. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/edge-model-resolver.d.ts +2 -3
  108. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/index.d.ts +7 -4
  110. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  112. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/local-model-resolver.d.ts +10 -0
  114. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  116. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/settings.d.ts +1 -1
  118. package/dist/types/src/capabilities/state.d.ts +4 -0
  119. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  120. package/dist/types/src/capabilities/toolkit.d.ts +2 -3
  121. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  122. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  123. package/dist/types/src/components/BlueprintArticle.d.ts +7 -0
  124. package/dist/types/src/components/BlueprintArticle.d.ts.map +1 -0
  125. package/dist/types/src/components/Chat/Chat.d.ts +32 -16
  126. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  127. package/dist/types/src/components/Chat/events.d.ts +9 -0
  128. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  129. package/dist/types/src/components/ChatCompanion.d.ts +13 -0
  130. package/dist/types/src/components/ChatCompanion.d.ts.map +1 -0
  131. package/dist/types/src/components/ChatContainer.d.ts +8 -6
  132. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  133. package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
  134. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +7 -0
  135. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -0
  136. package/dist/types/src/components/ChatProgress/index.d.ts +2 -0
  137. package/dist/types/src/components/ChatProgress/index.d.ts.map +1 -0
  138. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  139. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +11 -4
  140. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  141. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
  142. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +3 -4
  143. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  144. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +6 -4
  145. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
  146. package/dist/types/src/components/ChatThread/ChatThread.d.ts +12 -10
  147. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  148. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +191 -82
  149. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  150. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
  151. package/dist/types/src/components/ChatThread/reducers.d.ts +40 -0
  152. package/dist/types/src/components/ChatThread/reducers.d.ts.map +1 -0
  153. package/dist/types/src/components/ChatThread/registry.d.ts +11 -0
  154. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -0
  155. package/dist/types/src/components/ChatThread/sync.d.ts +42 -0
  156. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -0
  157. package/dist/types/src/components/ChatThread/sync.test.d.ts +2 -0
  158. package/dist/types/src/components/ChatThread/sync.test.d.ts.map +1 -0
  159. package/dist/types/src/components/PromptArticle.d.ts +7 -0
  160. package/dist/types/src/components/PromptArticle.d.ts.map +1 -0
  161. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -6
  162. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  163. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +312 -7
  164. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  165. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +1 -1
  166. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  167. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +309 -2
  168. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  169. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts +12 -0
  170. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  171. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  172. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  173. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  174. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  175. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +21 -0
  176. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -0
  177. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts +2 -0
  178. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts.map +1 -0
  179. package/dist/types/src/components/ToolBlock/index.d.ts +3 -0
  180. package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -0
  181. package/dist/types/src/components/Toolbox/Toolbox.d.ts +3 -5
  182. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  183. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +314 -5
  184. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  185. package/dist/types/src/components/index.d.ts +4 -7
  186. package/dist/types/src/components/index.d.ts.map +1 -1
  187. package/dist/types/src/functions/analysis.d.ts +1 -1
  188. package/dist/types/src/functions/analysis.d.ts.map +1 -1
  189. package/dist/types/src/functions/index.d.ts +2 -2
  190. package/dist/types/src/functions/index.d.ts.map +1 -1
  191. package/dist/types/src/functions/{list.d.ts → object-list.d.ts} +2 -2
  192. package/dist/types/src/functions/object-list.d.ts.map +1 -0
  193. package/dist/types/src/functions/{load.d.ts → object-load.d.ts} +3 -3
  194. package/dist/types/src/functions/object-load.d.ts.map +1 -0
  195. package/dist/types/src/hooks/index.d.ts +5 -4
  196. package/dist/types/src/hooks/index.d.ts.map +1 -1
  197. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +5 -1
  198. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  199. package/dist/types/src/hooks/useChatProcessor.d.ts +3 -7
  200. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  201. package/dist/types/src/hooks/useChatServices.d.ts +5 -5
  202. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  203. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  204. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  205. package/dist/types/src/hooks/useContextBinder.d.ts +4 -0
  206. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -0
  207. package/dist/types/src/hooks/useContextObjects.d.ts +15 -0
  208. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -0
  209. package/dist/types/src/hooks/useFlush.d.ts.map +1 -0
  210. package/dist/types/src/hooks/useItemTypes.d.ts +4 -0
  211. package/dist/types/src/hooks/useItemTypes.d.ts.map +1 -0
  212. package/dist/types/src/hooks/usePresets.d.ts +2 -2
  213. package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
  214. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  215. package/dist/types/src/index.d.ts +2 -0
  216. package/dist/types/src/index.d.ts.map +1 -1
  217. package/dist/types/src/meta.d.ts +1 -2
  218. package/dist/types/src/meta.d.ts.map +1 -1
  219. package/dist/types/src/processor/index.d.ts +4 -0
  220. package/dist/types/src/processor/index.d.ts.map +1 -0
  221. package/dist/types/src/{hooks → processor}/presets.d.ts +1 -1
  222. package/dist/types/src/processor/presets.d.ts.map +1 -0
  223. package/dist/types/src/processor/processor.d.ts +74 -0
  224. package/dist/types/src/processor/processor.d.ts.map +1 -0
  225. package/dist/types/src/processor/processor.test.d.ts +2 -0
  226. package/dist/types/src/processor/processor.test.d.ts.map +1 -0
  227. package/dist/types/src/processor/update-name.d.ts +10 -0
  228. package/dist/types/src/processor/update-name.d.ts.map +1 -0
  229. package/dist/types/src/queue-logger.d.ts.map +1 -1
  230. package/dist/types/src/testing/index.d.ts +1 -1
  231. package/dist/types/src/testing/index.d.ts.map +1 -1
  232. package/dist/types/src/testing/test-generator.d.ts +7 -0
  233. package/dist/types/src/testing/test-generator.d.ts.map +1 -0
  234. package/dist/types/src/testing/test-sequence.d.ts +0 -4
  235. package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
  236. package/dist/types/src/testing/test-services.d.ts +2 -2
  237. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  238. package/dist/types/src/translations.d.ts +257 -33
  239. package/dist/types/src/translations.d.ts.map +1 -1
  240. package/dist/types/src/types/Assistant.d.ts +15 -7
  241. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  242. package/dist/types/src/types/AssistantAction.d.ts +49 -7
  243. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  244. package/dist/types/src/types/service.d.ts +21 -12
  245. package/dist/types/src/types/service.d.ts.map +1 -1
  246. package/dist/types/tsconfig.tsbuildinfo +1 -1
  247. package/package.json +96 -97
  248. package/src/AssistantPlugin.tsx +156 -116
  249. package/src/capabilities/ai-service.ts +6 -7
  250. package/src/capabilities/app-graph-builder.ts +95 -54
  251. package/src/capabilities/blueprint-definition.ts +56 -22
  252. package/src/capabilities/capabilities.ts +7 -12
  253. package/src/capabilities/edge-model-resolver.ts +17 -21
  254. package/src/capabilities/index.ts +5 -2
  255. package/src/capabilities/intent-resolver.ts +91 -17
  256. package/src/capabilities/local-model-resolver.ts +30 -0
  257. package/src/capabilities/react-surface.tsx +23 -81
  258. package/src/capabilities/state.ts +22 -0
  259. package/src/capabilities/toolkit.ts +9 -98
  260. package/src/components/AssistantSettings/AssistantSettings.tsx +82 -75
  261. package/src/components/BlueprintArticle.tsx +29 -0
  262. package/src/components/Chat/Chat.tsx +252 -222
  263. package/src/components/Chat/events.ts +13 -0
  264. package/src/components/ChatCompanion.tsx +155 -0
  265. package/src/components/ChatContainer.tsx +33 -41
  266. package/src/components/ChatDialog.tsx +19 -12
  267. package/src/components/ChatProgress/ChatProgress.tsx +67 -0
  268. package/src/components/{Timeline → ChatProgress}/index.ts +1 -1
  269. package/src/components/ChatPrompt/ChatActions.tsx +10 -26
  270. package/src/components/ChatPrompt/ChatOptions.tsx +203 -34
  271. package/src/components/ChatPrompt/ChatPresets.tsx +1 -0
  272. package/src/components/ChatPrompt/ChatReferences.tsx +29 -36
  273. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +25 -22
  274. package/src/components/ChatThread/ChatThread.stories.tsx +92 -204
  275. package/src/components/ChatThread/ChatThread.tsx +65 -35
  276. package/src/components/ChatThread/Link.tsx +8 -21
  277. package/src/components/ChatThread/reducers.ts +151 -0
  278. package/src/components/ChatThread/registry.tsx +174 -0
  279. package/src/components/ChatThread/sync.test.ts +89 -0
  280. package/src/components/ChatThread/sync.ts +148 -0
  281. package/src/components/ChatThread/testing/thread.md +37 -0
  282. package/src/components/PromptArticle.tsx +51 -0
  283. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +29 -15
  284. package/src/components/TemplateEditor/TemplateEditor.tsx +28 -53
  285. package/src/components/TemplateEditor/TemplateForm.stories.tsx +7 -9
  286. package/src/components/TemplateEditor/TemplateForm.tsx +3 -2
  287. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +269 -0
  288. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  289. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  290. package/src/components/ToolBlock/ToolBlock.tsx +143 -0
  291. package/src/components/ToolBlock/ToolBlockWidget.tsx +5 -0
  292. package/src/components/ToolBlock/index.ts +6 -0
  293. package/src/components/Toolbox/Toolbox.stories.tsx +11 -14
  294. package/src/components/Toolbox/Toolbox.tsx +15 -21
  295. package/src/components/index.ts +3 -4
  296. package/src/functions/analysis.ts +5 -3
  297. package/src/functions/index.ts +2 -2
  298. package/src/functions/{list.ts → object-list.ts} +11 -5
  299. package/src/functions/{load.ts → object-load.ts} +9 -7
  300. package/src/hooks/index.ts +5 -5
  301. package/src/hooks/useBlueprintRegistry.ts +26 -10
  302. package/src/hooks/useChatProcessor.ts +26 -33
  303. package/src/hooks/useChatServices.ts +32 -53
  304. package/src/hooks/useChatToolbarActions.ts +122 -0
  305. package/src/hooks/useContextBinder.ts +30 -0
  306. package/src/hooks/useContextObjects.ts +58 -0
  307. package/src/hooks/useItemTypes.ts +37 -0
  308. package/src/hooks/usePresets.ts +4 -5
  309. package/src/hooks/useReferencesProvider.ts +2 -1
  310. package/src/index.ts +2 -0
  311. package/src/meta.ts +9 -6
  312. package/src/processor/index.ts +7 -0
  313. package/src/{hooks → processor}/presets.ts +11 -4
  314. package/src/processor/processor.test.ts +71 -0
  315. package/src/processor/processor.ts +277 -0
  316. package/src/processor/update-name.ts +56 -0
  317. package/src/queue-logger.ts +9 -13
  318. package/src/testing/index.ts +1 -1
  319. package/src/testing/test-generator.ts +261 -0
  320. package/src/testing/test-sequence.ts +1 -26
  321. package/src/testing/test-services.ts +2 -8
  322. package/src/translations.ts +44 -24
  323. package/src/types/Assistant.ts +11 -7
  324. package/src/types/AssistantAction.ts +31 -6
  325. package/src/types/service.ts +17 -9
  326. package/src/vite-env.d.ts +30 -0
  327. package/dist/lib/browser/BlueprintContainer-H7H4BQ2C.mjs +0 -29
  328. package/dist/lib/browser/BlueprintContainer-H7H4BQ2C.mjs.map +0 -7
  329. package/dist/lib/browser/ChatContainer-OUVSX5V5.mjs.map +0 -7
  330. package/dist/lib/browser/ChatDialog-P4FLEOHG.mjs.map +0 -7
  331. package/dist/lib/browser/SequenceContainer-627OQ557.mjs +0 -163
  332. package/dist/lib/browser/SequenceContainer-627OQ557.mjs.map +0 -7
  333. package/dist/lib/browser/ai-service-7KJ5LXBT.mjs +0 -22
  334. package/dist/lib/browser/ai-service-7KJ5LXBT.mjs.map +0 -7
  335. package/dist/lib/browser/app-graph-builder-AVHHQ3KV.mjs.map +0 -7
  336. package/dist/lib/browser/blueprint-definition-CMGIZAOW.mjs.map +0 -7
  337. package/dist/lib/browser/chunk-BRLHDHOF.mjs +0 -244
  338. package/dist/lib/browser/chunk-BRLHDHOF.mjs.map +0 -7
  339. package/dist/lib/browser/chunk-HRLMD35M.mjs.map +0 -7
  340. package/dist/lib/browser/chunk-LKP65RPA.mjs +0 -20
  341. package/dist/lib/browser/chunk-LKP65RPA.mjs.map +0 -7
  342. package/dist/lib/browser/chunk-NZDCKQ6W.mjs +0 -89
  343. package/dist/lib/browser/chunk-NZDCKQ6W.mjs.map +0 -7
  344. package/dist/lib/browser/chunk-QB7OVS6Z.mjs +0 -16
  345. package/dist/lib/browser/chunk-QB7OVS6Z.mjs.map +0 -7
  346. package/dist/lib/browser/chunk-VEBVAHNM.mjs +0 -2231
  347. package/dist/lib/browser/chunk-VEBVAHNM.mjs.map +0 -7
  348. package/dist/lib/browser/edge-model-resolver-2HB4PCWH.mjs +0 -24
  349. package/dist/lib/browser/edge-model-resolver-2HB4PCWH.mjs.map +0 -7
  350. package/dist/lib/browser/intent-resolver-MVOIEJXZ.mjs +0 -81
  351. package/dist/lib/browser/intent-resolver-MVOIEJXZ.mjs.map +0 -7
  352. package/dist/lib/browser/react-surface-4HXS3YLT.mjs +0 -163
  353. package/dist/lib/browser/react-surface-4HXS3YLT.mjs.map +0 -7
  354. package/dist/lib/browser/toolkit-IW4FBLLB.mjs +0 -105
  355. package/dist/lib/browser/toolkit-IW4FBLLB.mjs.map +0 -7
  356. package/dist/lib/node-esm/BlueprintContainer-VH4EE4CM.mjs +0 -30
  357. package/dist/lib/node-esm/BlueprintContainer-VH4EE4CM.mjs.map +0 -7
  358. package/dist/lib/node-esm/ChatContainer-D5FABDNE.mjs.map +0 -7
  359. package/dist/lib/node-esm/ChatDialog-NKWVXHJP.mjs.map +0 -7
  360. package/dist/lib/node-esm/SequenceContainer-EQ5NP2PG.mjs +0 -164
  361. package/dist/lib/node-esm/SequenceContainer-EQ5NP2PG.mjs.map +0 -7
  362. package/dist/lib/node-esm/ai-service-LDD32477.mjs +0 -23
  363. package/dist/lib/node-esm/ai-service-LDD32477.mjs.map +0 -7
  364. package/dist/lib/node-esm/app-graph-builder-RMOUJMMG.mjs.map +0 -7
  365. package/dist/lib/node-esm/blueprint-definition-AEWYMW6I.mjs.map +0 -7
  366. package/dist/lib/node-esm/chunk-3SOC5GOP.mjs +0 -2232
  367. package/dist/lib/node-esm/chunk-3SOC5GOP.mjs.map +0 -7
  368. package/dist/lib/node-esm/chunk-F7RXCX5Y.mjs.map +0 -7
  369. package/dist/lib/node-esm/chunk-GAWXJ7K5.mjs +0 -90
  370. package/dist/lib/node-esm/chunk-GAWXJ7K5.mjs.map +0 -7
  371. package/dist/lib/node-esm/chunk-KOC6ESG7.mjs +0 -22
  372. package/dist/lib/node-esm/chunk-KOC6ESG7.mjs.map +0 -7
  373. package/dist/lib/node-esm/chunk-RD755HN3.mjs +0 -245
  374. package/dist/lib/node-esm/chunk-RD755HN3.mjs.map +0 -7
  375. package/dist/lib/node-esm/chunk-X6AANUHZ.mjs.map +0 -7
  376. package/dist/lib/node-esm/edge-model-resolver-UDDR2IA6.mjs +0 -25
  377. package/dist/lib/node-esm/edge-model-resolver-UDDR2IA6.mjs.map +0 -7
  378. package/dist/lib/node-esm/intent-resolver-DTDNCX3C.mjs +0 -82
  379. package/dist/lib/node-esm/intent-resolver-DTDNCX3C.mjs.map +0 -7
  380. package/dist/lib/node-esm/react-surface-V6JNEZVO.mjs +0 -164
  381. package/dist/lib/node-esm/react-surface-V6JNEZVO.mjs.map +0 -7
  382. package/dist/lib/node-esm/toolkit-2VNUL77B.mjs +0 -106
  383. package/dist/lib/node-esm/toolkit-2VNUL77B.mjs.map +0 -7
  384. package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
  385. package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
  386. package/dist/types/src/components/ChatThread/ChatMessage.d.ts +0 -18
  387. package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +0 -1
  388. package/dist/types/src/components/ChatThread/ToolBlock.d.ts +0 -19
  389. package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +0 -1
  390. package/dist/types/src/components/ChatThread/reducer.d.ts +0 -12
  391. package/dist/types/src/components/ChatThread/reducer.d.ts.map +0 -1
  392. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  393. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  394. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  395. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  396. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  397. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  398. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -8
  399. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  400. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  401. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  402. package/dist/types/src/components/Timeline/Timeline.d.ts +0 -24
  403. package/dist/types/src/components/Timeline/Timeline.d.ts.map +0 -1
  404. package/dist/types/src/components/Timeline/Timeline.stories.d.ts +0 -9
  405. package/dist/types/src/components/Timeline/Timeline.stories.d.ts.map +0 -1
  406. package/dist/types/src/components/Timeline/index.d.ts +0 -2
  407. package/dist/types/src/components/Timeline/index.d.ts.map +0 -1
  408. package/dist/types/src/functions/list.d.ts.map +0 -1
  409. package/dist/types/src/functions/load.d.ts.map +0 -1
  410. package/dist/types/src/hooks/chat-processor.d.ts +0 -72
  411. package/dist/types/src/hooks/chat-processor.d.ts.map +0 -1
  412. package/dist/types/src/hooks/errors.d.ts +0 -4
  413. package/dist/types/src/hooks/errors.d.ts.map +0 -1
  414. package/dist/types/src/hooks/presets.d.ts.map +0 -1
  415. package/dist/types/src/hooks/useResolveRef.d.ts +0 -4
  416. package/dist/types/src/hooks/useResolveRef.d.ts.map +0 -1
  417. package/dist/types/src/parser/filter-generator.d.ts +0 -4
  418. package/dist/types/src/parser/filter-generator.d.ts.map +0 -1
  419. package/dist/types/src/parser/filter-generator.test.d.ts +0 -2
  420. package/dist/types/src/parser/filter-generator.test.d.ts.map +0 -1
  421. package/dist/types/src/parser/index.d.ts +0 -4
  422. package/dist/types/src/parser/index.d.ts.map +0 -1
  423. package/dist/types/src/parser/query-parser.d.ts +0 -15
  424. package/dist/types/src/parser/query-parser.d.ts.map +0 -1
  425. package/dist/types/src/parser/query-parser.test.d.ts +0 -2
  426. package/dist/types/src/parser/query-parser.test.d.ts.map +0 -1
  427. package/dist/types/src/parser/types.d.ts +0 -24
  428. package/dist/types/src/parser/types.d.ts.map +0 -1
  429. package/dist/types/src/stories/Chat.stories.d.ts +0 -268
  430. package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
  431. package/dist/types/src/stories/components/BlueprintContainer.d.ts +0 -5
  432. package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +0 -1
  433. package/dist/types/src/stories/components/ChatContainer.d.ts +0 -5
  434. package/dist/types/src/stories/components/ChatContainer.d.ts.map +0 -1
  435. package/dist/types/src/stories/components/GraphContainer.d.ts +0 -6
  436. package/dist/types/src/stories/components/GraphContainer.d.ts.map +0 -1
  437. package/dist/types/src/stories/components/LoggingContainer.d.ts +0 -5
  438. package/dist/types/src/stories/components/LoggingContainer.d.ts.map +0 -1
  439. package/dist/types/src/stories/components/SurfaceContainer.d.ts +0 -8
  440. package/dist/types/src/stories/components/SurfaceContainer.d.ts.map +0 -1
  441. package/dist/types/src/stories/components/TasksContainer.d.ts +0 -5
  442. package/dist/types/src/stories/components/TasksContainer.d.ts.map +0 -1
  443. package/dist/types/src/stories/components/index.d.ts +0 -8
  444. package/dist/types/src/stories/components/index.d.ts.map +0 -1
  445. package/dist/types/src/stories/components/types.d.ts +0 -7
  446. package/dist/types/src/stories/components/types.d.ts.map +0 -1
  447. package/dist/types/src/stories/hooks/index.d.ts +0 -3
  448. package/dist/types/src/stories/hooks/index.d.ts.map +0 -1
  449. package/dist/types/src/stories/hooks/useFlush.d.ts.map +0 -1
  450. package/dist/types/src/stories/hooks/useMatcherExtension.d.ts +0 -3
  451. package/dist/types/src/stories/hooks/useMatcherExtension.d.ts.map +0 -1
  452. package/dist/types/src/stories/testing/data.d.ts +0 -142
  453. package/dist/types/src/stories/testing/data.d.ts.map +0 -1
  454. package/dist/types/src/stories/testing/index.d.ts +0 -3
  455. package/dist/types/src/stories/testing/index.d.ts.map +0 -1
  456. package/dist/types/src/stories/testing/testing.d.ts +0 -26
  457. package/dist/types/src/stories/testing/testing.d.ts.map +0 -1
  458. package/dist/types/src/testing/test-functions.d.ts +0 -6
  459. package/dist/types/src/testing/test-functions.d.ts.map +0 -1
  460. package/dist/types/src/tools/function.d.ts +0 -5
  461. package/dist/types/src/tools/function.d.ts.map +0 -1
  462. package/dist/types/src/tools/index.d.ts +0 -3
  463. package/dist/types/src/tools/index.d.ts.map +0 -1
  464. package/dist/types/src/tools/openapi.d.ts +0 -10
  465. package/dist/types/src/tools/openapi.d.ts.map +0 -1
  466. package/dist/types/src/tools/openapi.test.d.ts +0 -2
  467. package/dist/types/src/tools/openapi.test.d.ts.map +0 -1
  468. package/src/components/BlueprintContainer.tsx +0 -24
  469. package/src/components/ChatThread/ChatMessage.tsx +0 -282
  470. package/src/components/ChatThread/ToolBlock.tsx +0 -125
  471. package/src/components/ChatThread/reducer.ts +0 -52
  472. package/src/components/PromptSettings.tsx +0 -89
  473. package/src/components/SequenceContainer.tsx +0 -133
  474. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -33
  475. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  476. package/src/components/SequenceEditor/index.ts +0 -5
  477. package/src/components/Timeline/Timeline.stories.tsx +0 -53
  478. package/src/components/Timeline/Timeline.tsx +0 -159
  479. package/src/hooks/chat-processor.ts +0 -260
  480. package/src/hooks/errors.ts +0 -8
  481. package/src/hooks/useResolveRef.ts +0 -33
  482. package/src/parser/filter-generator.test.ts +0 -32
  483. package/src/parser/filter-generator.ts +0 -74
  484. package/src/parser/index.ts +0 -7
  485. package/src/parser/query-parser.test.ts +0 -139
  486. package/src/parser/query-parser.ts +0 -199
  487. package/src/parser/types.ts +0 -34
  488. package/src/shims.d.ts +0 -8
  489. package/src/stories/Chat.stories.tsx +0 -317
  490. package/src/stories/components/BlueprintContainer.tsx +0 -34
  491. package/src/stories/components/ChatContainer.tsx +0 -80
  492. package/src/stories/components/GraphContainer.tsx +0 -118
  493. package/src/stories/components/LoggingContainer.tsx +0 -22
  494. package/src/stories/components/SurfaceContainer.tsx +0 -62
  495. package/src/stories/components/TasksContainer.tsx +0 -51
  496. package/src/stories/components/index.ts +0 -12
  497. package/src/stories/components/types.ts +0 -11
  498. package/src/stories/hooks/index.ts +0 -6
  499. package/src/stories/hooks/useMatcherExtension.ts +0 -45
  500. package/src/stories/testing/data.ts +0 -130
  501. package/src/stories/testing/index.ts +0 -6
  502. package/src/stories/testing/testing.tsx +0 -162
  503. package/src/testing/test-functions.ts +0 -16
  504. package/src/tools/function.ts +0 -49
  505. package/src/tools/index.ts +0 -6
  506. package/src/tools/openapi.test.ts +0 -219
  507. package/src/tools/openapi.ts +0 -341
  508. package/src/typings.d.ts +0 -9
  509. /package/dist/types/src/{stories/hooks → hooks}/useFlush.d.ts +0 -0
  510. /package/src/{stories/hooks → hooks}/useFlush.ts +0 -0
@@ -4,16 +4,10 @@
4
4
 
5
5
  import { Obj } from '@dxos/echo';
6
6
 
7
- import {
8
- type ApiAuthorization,
9
- type BaseServiceRegistry,
10
- type ServiceQuery,
11
- ServiceType,
12
- categoryIcons,
13
- } from '../types';
7
+ import { type ApiAuthorization, type BaseServiceRegistry, ServiceType, categoryIcons } from '../types';
14
8
 
15
9
  export class MockServiceRegistry implements BaseServiceRegistry {
16
- async queryServices(query?: ServiceQuery): Promise<ServiceType[]> {
10
+ async queryServices(): Promise<ServiceType[]> {
17
11
  return TEST_SERVICES;
18
12
  }
19
13
  }
@@ -2,13 +2,15 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Blueprint } from '@dxos/blueprints';
5
+ import { Blueprint, Prompt } from '@dxos/blueprints';
6
6
  import { Sequence } from '@dxos/conductor';
7
+ import { Type } from '@dxos/echo';
7
8
  import { type Resource } from '@dxos/react-ui';
8
9
 
9
10
  import { meta } from './meta';
10
11
  import { Assistant } from './types';
11
12
 
13
+ // TODO(burdon): Standardize translation names.
12
14
  export const translations = [
13
15
  {
14
16
  'en-US': {
@@ -22,6 +24,15 @@ export const translations = [
22
24
  'rename object label': 'Rename blueprint',
23
25
  'delete object label': 'Delete blueprint',
24
26
  },
27
+ [Type.getTypename(Prompt.Prompt)]: {
28
+ 'typename label': 'Prompt',
29
+ 'typename label_zero': 'Prompts',
30
+ 'typename label_one': 'Prompt',
31
+ 'typename label_other': 'Prompts',
32
+ 'object name placeholder': 'New prompt',
33
+ 'rename object label': 'Rename prompt',
34
+ 'delete object label': 'Delete prompt',
35
+ },
25
36
  // TODO(burdon): From conductor.
26
37
  [Sequence.typename]: {
27
38
  'typename label': 'Sequence',
@@ -33,19 +44,18 @@ export const translations = [
33
44
  'delete object label': 'Delete sequence',
34
45
  },
35
46
  [Assistant.Chat.typename]: {
36
- 'typename label': 'Assistant',
37
- 'typename label_zero': 'Assistants',
38
- 'typename label_one': 'Assistant',
39
- 'typename label_other': 'Assistants',
40
- 'object name placeholder': 'New assistant',
41
- 'rename object label': 'Rename assistant',
42
- 'delete object label': 'Delete assistant',
47
+ 'typename label': 'AI Chat',
48
+ 'object name placeholder': 'New AI Chat',
49
+ 'rename object label': 'Rename AI Chat',
50
+ 'delete object label': 'Delete AI Chat',
43
51
  },
52
+ // TODO(burdon): Reconcile with react-ui-chat.
44
53
  [meta.id]: {
45
54
  'templates label': 'Templates',
46
55
  'open ambient chat label': 'Open Assistant',
47
56
  'assistant chat label': 'Assistant',
48
57
  'plugin name': 'Assistant',
58
+ 'settings title': 'Assistant settings',
49
59
  'object placeholder': 'New prompt',
50
60
  'create object label': 'Create prompt',
51
61
  'create trigger label': 'Create trigger',
@@ -58,31 +68,41 @@ export const translations = [
58
68
  'description placeholder': 'Enter description of when this template should be used',
59
69
  'select preset template placeholder': 'Select preset',
60
70
  'service registry label': 'Service Registry',
71
+ 'type filter placeholder': 'Type',
72
+ 'any type filter label': 'Any',
73
+ 'no blueprint message': 'No active blueprints',
74
+ 'tool call label': 'Calling tool...',
75
+ 'tool result label': 'Success',
76
+ 'tool error label': 'Tool call failed',
61
77
 
62
- 'sequence logs label': 'Logs',
78
+ 'invocations label': 'Invocations',
63
79
 
64
80
  'assistant dialog title': 'Assistant',
65
81
  'open assistant label': 'Open assistant',
66
82
 
67
- 'no tools': 'No tools are configured.',
68
-
69
- 'button suggest': 'Assistant suggestion',
70
- 'button select option': 'Select option',
83
+ 'no tools': 'No tools are configured',
84
+ 'no results': 'No results',
71
85
 
72
- 'button save': 'Save',
73
- 'button run': 'Run',
86
+ 'cancel button': 'Cancel',
87
+ 'save button': 'Save',
88
+ 'new thread button': 'New Chat',
89
+ 'rename thread button': 'Rename Chat',
90
+ 'chat history label': 'Chat History',
91
+ 'chat update name label': 'Update AI Chat name',
74
92
 
75
- 'calling tool label': 'Calling tool...',
76
- 'calling label': 'Calling',
77
- 'error label': 'Error',
93
+ 'toolkit label': 'Toolkit',
94
+ 'summary label': 'Summary',
78
95
 
79
96
  'search placeholder': 'Search...',
80
- 'prompt placeholder': 'Ask or search for anything...',
81
- 'context objects placeholder': 'Add to context...',
82
- 'button add blueprint': 'Configure blueprints',
83
- 'button microphone': 'Click to speak',
84
- 'button cancel processing': 'Stop processing',
85
- 'button scroll down': 'Scroll down',
97
+ 'prompt placeholder': 'Enter question or command...',
98
+ 'context objects button': 'Add to context',
99
+ 'context settings button': 'Chat settings',
100
+ 'microphone button': 'Click to speak',
101
+ 'cancel processing button': 'Stop processing',
102
+ 'blueprints in context title': 'Blueprints',
103
+ 'objects in context title': 'Content',
104
+ 'remove object in context label': 'Remove document',
105
+ 'chat model title': 'Model',
86
106
 
87
107
  'settings default label': 'Default',
88
108
  'settings custom prompts label': 'Use custom prompts',
@@ -2,11 +2,11 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
 
7
- import { Queue } from '@dxos/client/echo';
8
- import { Type } from '@dxos/echo';
9
- import { LabelAnnotation } from '@dxos/echo-schema';
7
+ import { Obj, Ref, Type } from '@dxos/echo';
8
+ import { FormAnnotation, LabelAnnotation } from '@dxos/echo/internal';
9
+ import { Queue } from '@dxos/echo-db';
10
10
 
11
11
  import { LLM_PROVIDERS } from './defs';
12
12
 
@@ -14,9 +14,10 @@ import { LLM_PROVIDERS } from './defs';
14
14
  * AI chat.
15
15
  */
16
16
  export const Chat = Schema.Struct({
17
- id: Type.ObjectId,
18
- name: Schema.optional(Schema.String),
19
- queue: Type.Ref(Queue),
17
+ name: Schema.String.pipe(Schema.optional),
18
+ queue: Type.Ref(Queue).pipe(FormAnnotation.set(false)),
19
+ // TODO(dmaretskyi): Eventually this and the message queue will be the same.
20
+ traceQueue: Type.Ref(Queue).pipe(FormAnnotation.set(false), Schema.optional),
20
21
  }).pipe(
21
22
  Type.Obj({
22
23
  typename: 'dxos.org/type/assistant/Chat',
@@ -27,6 +28,9 @@ export const Chat = Schema.Struct({
27
28
 
28
29
  export interface Chat extends Schema.Schema.Type<typeof Chat> {}
29
30
 
31
+ export const makeChat = ({ name, queue }: { name?: string; queue: Queue }) =>
32
+ Obj.make(Chat, { name, queue: Ref.fromDXN(queue.dxn) });
33
+
30
34
  /**
31
35
  * Relation between a Chat and companion objects (e.g., artifacts).
32
36
  */
@@ -2,21 +2,22 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
 
7
- import { Blueprint } from '@dxos/blueprints';
8
- import { SpaceSchema } from '@dxos/client/echo';
7
+ import { Blueprint, Prompt } from '@dxos/blueprints';
8
+ import { EchoObjectSchema, SpaceSchema } from '@dxos/client/echo';
9
9
  import { Sequence } from '@dxos/conductor';
10
- import { DataType } from '@dxos/schema';
10
+ import { Collection } from '@dxos/schema';
11
11
 
12
12
  import { meta } from '../meta';
13
13
 
14
14
  import { Chat } from './Assistant';
15
15
 
16
- export class OnSpaceCreated extends Schema.TaggedClass<OnSpaceCreated>()(`${meta.id}/on-space-created`, {
16
+ // TODO(burdon): Name?
17
+ export class onCreateSpace extends Schema.TaggedClass<onCreateSpace>()(`${meta.id}/on-space-created`, {
17
18
  input: Schema.Struct({
18
19
  space: SpaceSchema,
19
- rootCollection: DataType.Collection,
20
+ rootCollection: Collection.Collection,
20
21
  }),
21
22
  output: Schema.Void,
22
23
  }) {}
@@ -31,6 +32,13 @@ export class CreateChat extends Schema.TaggedClass<CreateChat>()(`${meta.id}/act
31
32
  }),
32
33
  }) {}
33
34
 
35
+ export class UpdateChatName extends Schema.TaggedClass<UpdateChatName>()(`${meta.id}/action/update-name`, {
36
+ input: Schema.Struct({
37
+ chat: Chat,
38
+ }),
39
+ output: Schema.Void,
40
+ }) {}
41
+
34
42
  export const BlueprintForm = Schema.Struct({
35
43
  key: Schema.String,
36
44
  name: Schema.String,
@@ -44,6 +52,15 @@ export class CreateBlueprint extends Schema.TaggedClass<CreateBlueprint>()(`${me
44
52
  }),
45
53
  }) {}
46
54
 
55
+ export class CreatePrompt extends Schema.TaggedClass<CreatePrompt>()(`${meta.id}/action/create-prompt`, {
56
+ input: Schema.Struct({
57
+ name: Schema.optional(Schema.String),
58
+ }),
59
+ output: Schema.Struct({
60
+ object: Prompt.Prompt,
61
+ }),
62
+ }) {}
63
+
47
64
  export class CreateSequence extends Schema.TaggedClass<CreateSequence>()(`${meta.id}/action/create-sequence`, {
48
65
  input: Schema.Struct({
49
66
  name: Schema.optional(Schema.String),
@@ -52,3 +69,11 @@ export class CreateSequence extends Schema.TaggedClass<CreateSequence>()(`${meta
52
69
  object: Sequence,
53
70
  }),
54
71
  }) {}
72
+
73
+ export class SetCurrentChat extends Schema.TaggedClass<SetCurrentChat>()(`${meta.id}/action/set-current-chat`, {
74
+ input: Schema.Struct({
75
+ companionTo: EchoObjectSchema,
76
+ chat: Chat.pipe(Schema.optional),
77
+ }),
78
+ output: Schema.Void,
79
+ }) {}
@@ -2,12 +2,14 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { ComputeGraph } from '@dxos/conductor';
8
8
  import { Type } from '@dxos/echo';
9
- import { TypedObject } from '@dxos/echo-schema';
10
- import { FunctionType } from '@dxos/functions';
9
+ import { TypedObject } from '@dxos/echo/internal';
10
+ import { Function } from '@dxos/functions';
11
+
12
+ // TODO(burdon): Factor out and reconcile with https://github.com/dxos/dxos/blob/main/packages/plugins/plugin-token-manager/src/defs/presets.ts#L7
11
13
 
12
14
  const ApiAuthorizationKey = Schema.Struct({
13
15
  type: Schema.Literal('api-key'),
@@ -36,7 +38,7 @@ export type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;
36
38
 
37
39
  const ServiceInterfaceFunction = Schema.Struct({
38
40
  kind: Schema.Literal('function'),
39
- fn: Type.Ref(FunctionType),
41
+ fn: Type.Ref(Function.Function),
40
42
  });
41
43
 
42
44
  const ServiceInterfaceWorkflow = Schema.Struct({
@@ -63,7 +65,13 @@ const ServiceInterfaceApi = Schema.Struct({
63
65
  authorization: Schema.optional(ApiAuthorization),
64
66
  });
65
67
 
66
- const ServiceInterface = Schema.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
68
+ const ServiceInterface = Schema.Union(
69
+ // Service types.
70
+ ServiceInterfaceFunction,
71
+ ServiceInterfaceWorkflow,
72
+ ServiceInterfaceApi,
73
+ );
74
+
67
75
  export type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;
68
76
 
69
77
  export class ServiceType extends TypedObject({
@@ -86,15 +94,15 @@ export class ServiceType extends TypedObject({
86
94
  // Service Registry
87
95
  //
88
96
 
97
+ export interface BaseServiceRegistry {
98
+ queryServices(query?: ServiceQuery): Promise<ServiceType[]>;
99
+ }
100
+
89
101
  export type ServiceQuery = {
90
102
  name?: string;
91
103
  category?: string;
92
104
  };
93
105
 
94
- export interface BaseServiceRegistry {
95
- queryServices(query?: ServiceQuery): Promise<ServiceType[]>;
96
- }
97
-
98
106
  export const categoryIcons: Record<string, string> = {
99
107
  finance: 'ph--bank--regular',
100
108
  health: 'ph--heart--regular',
@@ -0,0 +1,30 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ /// <reference types="vite/client" />
6
+
7
+ interface ViteTypeOptions {
8
+ // By adding this line, you can make the type of ImportMetaEnv strict
9
+ // to disallow unknown keys.
10
+ // strictImportMetaEnv: unknown
11
+ }
12
+
13
+ interface ImportMetaEnv {
14
+ readonly VITE_LINEAR_API_KEY: string | undefined;
15
+ // more env variables...
16
+ }
17
+
18
+ interface ImportMeta {
19
+ readonly env: ImportMetaEnv;
20
+ }
21
+
22
+ declare module '*.wav' {
23
+ const src: string;
24
+ export default src;
25
+ }
26
+
27
+ declare module '*?raw' {
28
+ const content: string;
29
+ export default content;
30
+ }
@@ -1,29 +0,0 @@
1
- import {
2
- TemplateEditor
3
- } from "./chunk-NZDCKQ6W.mjs";
4
- import "./chunk-LKP65RPA.mjs";
5
- import "./chunk-J5LGTIGS.mjs";
6
-
7
- // src/components/BlueprintContainer.tsx
8
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
9
- import React from "react";
10
- import { StackItem } from "@dxos/react-ui-stack";
11
- var BlueprintContainer = ({ blueprint }) => {
12
- var _effect = _useSignals();
13
- try {
14
- return /* @__PURE__ */ React.createElement(StackItem.Content, {
15
- classNames: "container-max-width"
16
- }, /* @__PURE__ */ React.createElement(TemplateEditor, {
17
- id: blueprint.id,
18
- template: blueprint.instructions
19
- }));
20
- } finally {
21
- _effect.f();
22
- }
23
- };
24
- var BlueprintContainer_default = BlueprintContainer;
25
- export {
26
- BlueprintContainer,
27
- BlueprintContainer_default as default
28
- };
29
- //# sourceMappingURL=BlueprintContainer-H7H4BQ2C.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/BlueprintContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Blueprint } from '@dxos/blueprints';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { TemplateEditor } from './TemplateEditor';\n\nexport type BlueprintContainerProps = {\n blueprint: Blueprint.Blueprint;\n};\n\nexport const BlueprintContainer = ({ blueprint }: BlueprintContainerProps) => {\n return (\n <StackItem.Content classNames='container-max-width'>\n <TemplateEditor id={blueprint.id} template={blueprint.instructions} />\n </StackItem.Content>\n );\n};\n\nexport default BlueprintContainer;\n"],
5
- "mappings": ";;;;;;;;AAIA,OAAOA,WAAW;AAGlB,SAASC,iBAAiB;AAQnB,IAAMC,qBAAqB,CAAC,EAAEC,UAAS,MAA2B;;;AACvE,WACE,sBAAA,cAACC,UAAUC,SAAO;MAACC,YAAW;OAC5B,sBAAA,cAACC,gBAAAA;MAAeC,IAAIL,UAAUK;MAAIC,UAAUN,UAAUO;;;;;AAG5D;AAEA,IAAA,6BAAeR;",
6
- "names": ["React", "StackItem", "BlueprintContainer", "blueprint", "StackItem", "Content", "classNames", "TemplateEditor", "id", "template", "instructions"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChatContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect } from 'react';\n\nimport { Capabilities, useCapability } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { type MaybePromise } from '@dxos/util';\n\nimport {\n type AiChatProcessor,\n useBlueprintRegistry,\n useChatProcessor,\n useChatServices,\n useOnline,\n usePresets,\n} from '../hooks';\nimport { meta } from '../meta';\nimport { type Assistant } from '../types';\n\nimport { Chat } from './Chat';\n\nexport type ChatContainerProps = {\n chat: Assistant.Chat;\n role?: string;\n onProcessorReady?: (processor: AiChatProcessor) => MaybePromise<void>;\n};\n\nexport const ChatContainer = ({ chat, onProcessorReady }: ChatContainerProps) => {\n const space = getSpace(chat);\n const settings = useCapability(Capabilities.SettingsStore).getStore<Assistant.Settings>(meta.id)?.value;\n const services = useChatServices({ space });\n const [online, setOnline] = useOnline();\n const { preset, ...chatProps } = usePresets(online);\n const blueprintRegistry = useBlueprintRegistry();\n const processor = useChatProcessor({ space, chat, preset, services, blueprintRegistry, settings });\n\n useEffect(() => {\n if (processor && onProcessorReady) {\n const timeout = setTimeout(() => onProcessorReady(processor));\n return () => clearTimeout(timeout);\n }\n }, [processor, onProcessorReady]);\n\n if (!chat || !processor) {\n return null;\n }\n\n return (\n <StackItem.Content classNames='container-max-width'>\n <Chat.Root chat={chat} processor={processor}>\n <Chat.Thread />\n <div className='p-2'>\n <Chat.Prompt\n {...chatProps}\n classNames='p-2 border border-transparent rounded-md'\n preset={preset?.id}\n online={online}\n onChangeOnline={setOnline}\n />\n </div>\n </Chat.Root>\n </StackItem.Content>\n );\n};\n\nexport default ChatContainer;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAIA,OAAOA,SAASC,iBAAiB;AAEjC,SAASC,cAAcC,qBAAqB;AAC5C,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAsBnB,IAAMC,gBAAgB,CAAC,EAAEC,MAAMC,iBAAgB,MAAsB;;;AAC1E,UAAMC,QAAQC,SAASH,IAAAA;AACvB,UAAMI,WAAWC,cAAcC,aAAaC,aAAa,EAAEC,SAA6BC,KAAKC,EAAE,GAAGC;AAClG,UAAMC,WAAWC,gBAAgB;MAAEX;IAAM,CAAA;AACzC,UAAM,CAACY,QAAQC,SAAAA,IAAaC,UAAAA;AAC5B,UAAM,EAAEC,QAAQ,GAAGC,UAAAA,IAAcC,WAAWL,MAAAA;AAC5C,UAAMM,oBAAoBC,qBAAAA;AAC1B,UAAMC,YAAYC,iBAAiB;MAAErB;MAAOF;MAAMiB;MAAQL;MAAUQ;MAAmBhB;IAAS,CAAA;AAEhGoB,cAAU,MAAA;AACR,UAAIF,aAAarB,kBAAkB;AACjC,cAAMwB,UAAUC,WAAW,MAAMzB,iBAAiBqB,SAAAA,CAAAA;AAClD,eAAO,MAAMK,aAAaF,OAAAA;MAC5B;IACF,GAAG;MAACH;MAAWrB;KAAiB;AAEhC,QAAI,CAACD,QAAQ,CAACsB,WAAW;AACvB,aAAO;IACT;AAEA,WACE,sBAAA,cAACM,UAAUC,SAAO;MAACC,YAAW;OAC5B,sBAAA,cAACC,KAAKC,MAAI;MAAChC;MAAYsB;OACrB,sBAAA,cAACS,KAAKE,QAAM,IAAA,GACZ,sBAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACJ,KAAKK,QAAM;MACT,GAAGlB;MACJY,YAAW;MACXb,QAAQA,QAAQP;MAChBI;MACAuB,gBAAgBtB;;;;;AAM5B;AAEA,IAAA,wBAAehB;",
6
- "names": ["React", "useEffect", "Capabilities", "useCapability", "getSpace", "StackItem", "ChatContainer", "chat", "onProcessorReady", "space", "getSpace", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "meta", "id", "value", "services", "useChatServices", "online", "setOnline", "useOnline", "preset", "chatProps", "usePresets", "blueprintRegistry", "useBlueprintRegistry", "processor", "useChatProcessor", "useEffect", "timeout", "setTimeout", "clearTimeout", "StackItem", "Content", "classNames", "Chat", "Root", "Thread", "div", "className", "Prompt", "onChangeOnline"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChatDialog.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { Capabilities, useCapability } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { ChatDialog as NativeChatDialog } from '@dxos/react-ui-chat';\n\nimport { useBlueprintRegistry, useChatProcessor, useChatServices, useOnline, usePresets } from '../hooks';\nimport { meta } from '../meta';\nimport { type Assistant } from '../types';\n\nimport { Chat, type ChatRootProps } from './Chat';\n\nexport type ChatDialogProps = {\n chat?: Assistant.Chat;\n};\n\nexport const ChatDialog = ({ chat }: ChatDialogProps) => {\n const { t } = useTranslation(meta.id);\n\n const space = getSpace(chat);\n const settings = useCapability(Capabilities.SettingsStore).getStore<Assistant.Settings>(meta.id)?.value;\n const services = useChatServices({ space });\n const [online, setOnline] = useOnline();\n const { preset, ...chatProps } = usePresets(online);\n const blueprintRegistry = useBlueprintRegistry();\n const processor = useChatProcessor({ space, chat, preset, services, blueprintRegistry, settings });\n\n // TODO(burdon): Refocus when open.\n const [open, setOpen] = useState(true);\n const [expanded, setExpanded] = useState(false);\n const handleEvent = useCallback<NonNullable<ChatRootProps['onEvent']>>((event) => {\n switch (event.type) {\n case 'submit':\n case 'thread-open':\n setOpen(true);\n setExpanded(true);\n break;\n case 'thread-close':\n setOpen(false);\n break;\n }\n }, []);\n\n if (!chat || !processor) {\n return null;\n }\n\n return (\n <Chat.Root chat={chat} processor={processor} onEvent={handleEvent}>\n <NativeChatDialog.Root open={open} expanded={expanded} onOpenChange={setOpen}>\n <NativeChatDialog.Header title={t('assistant dialog title')} />\n <NativeChatDialog.Content>\n <Chat.Thread />\n </NativeChatDialog.Content>\n <NativeChatDialog.Footer>\n <Chat.Prompt {...chatProps} preset={preset?.id} online={online} onChangeOnline={setOnline} expandable />\n </NativeChatDialog.Footer>\n </NativeChatDialog.Root>\n </Chat.Root>\n );\n};\n\nexport default ChatDialog;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAIA,OAAOA,SAASC,aAAaC,gBAAgB;AAE7C,SAASC,cAAcC,qBAAqB;AAC5C,SAASC,gBAAgB;AACzB,SAASC,sBAAsB;AAC/B,SAASC,cAAcC,wBAAwB;AAYxC,IAAMC,aAAa,CAAC,EAAEC,KAAI,MAAmB;;;AAClD,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,UAAMC,QAAQC,SAASN,IAAAA;AACvB,UAAMO,WAAWC,cAAcC,aAAaC,aAAa,EAAEC,SAA6BR,KAAKC,EAAE,GAAGQ;AAClG,UAAMC,WAAWC,gBAAgB;MAAET;IAAM,CAAA;AACzC,UAAM,CAACU,QAAQC,SAAAA,IAAaC,UAAAA;AAC5B,UAAM,EAAEC,QAAQ,GAAGC,UAAAA,IAAcC,WAAWL,MAAAA;AAC5C,UAAMM,oBAAoBC,qBAAAA;AAC1B,UAAMC,YAAYC,iBAAiB;MAAEnB;MAAOL;MAAMkB;MAAQL;MAAUQ;MAAmBd;IAAS,CAAA;AAGhG,UAAM,CAACkB,MAAMC,OAAAA,IAAWC,SAAS,IAAA;AACjC,UAAM,CAACC,UAAUC,WAAAA,IAAeF,SAAS,KAAA;AACzC,UAAMG,cAAcC,YAAmD,CAACC,UAAAA;AACtE,cAAQA,MAAMC,MAAI;QAChB,KAAK;QACL,KAAK;AACHP,kBAAQ,IAAA;AACRG,sBAAY,IAAA;AACZ;QACF,KAAK;AACHH,kBAAQ,KAAA;AACR;MACJ;IACF,GAAG,CAAA,CAAE;AAEL,QAAI,CAAC1B,QAAQ,CAACuB,WAAW;AACvB,aAAO;IACT;AAEA,WACE,sBAAA,cAACW,KAAKC,MAAI;MAACnC;MAAYuB;MAAsBa,SAASN;OACpD,sBAAA,cAACO,iBAAiBF,MAAI;MAACV;MAAYG;MAAoBU,cAAcZ;OACnE,sBAAA,cAACW,iBAAiBE,QAAM;MAACC,OAAOvC,EAAE,wBAAA;QAClC,sBAAA,cAACoC,iBAAiBI,SAAO,MACvB,sBAAA,cAACP,KAAKQ,QAAM,IAAA,CAAA,GAEd,sBAAA,cAACL,iBAAiBM,QAAM,MACtB,sBAAA,cAACT,KAAKU,QAAM;MAAE,GAAGzB;MAAWD,QAAQA,QAAQd;MAAIW;MAAgB8B,gBAAgB7B;MAAW8B,YAAAA;;;;;AAKrG;AAEA,IAAA,qBAAe/C;",
6
- "names": ["React", "useCallback", "useState", "Capabilities", "useCapability", "getSpace", "useTranslation", "ChatDialog", "NativeChatDialog", "ChatDialog", "chat", "t", "useTranslation", "meta", "id", "space", "getSpace", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "value", "services", "useChatServices", "online", "setOnline", "useOnline", "preset", "chatProps", "usePresets", "blueprintRegistry", "useBlueprintRegistry", "processor", "useChatProcessor", "open", "setOpen", "useState", "expanded", "setExpanded", "handleEvent", "useCallback", "event", "type", "Chat", "Root", "onEvent", "NativeChatDialog", "onOpenChange", "Header", "title", "Content", "Thread", "Footer", "Prompt", "onChangeOnline", "expandable"]
7
- }
@@ -1,163 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-LKP65RPA.mjs";
4
- import "./chunk-J5LGTIGS.mjs";
5
-
6
- // src/components/SequenceContainer.tsx
7
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
8
- import JSON5 from "json5";
9
- import React2, { useCallback, useEffect, useMemo, useRef, useState } from "react";
10
- import { ToolRegistry } from "@dxos/ai";
11
- import { getSpace } from "@dxos/client/echo";
12
- import { Key } from "@dxos/echo";
13
- import { Toolbar, useTranslation } from "@dxos/react-ui";
14
- import { useSelectionManager } from "@dxos/react-ui-attention";
15
- import { StackItem } from "@dxos/react-ui-stack";
16
-
17
- // src/components/SequenceEditor/SequenceEditor.tsx
18
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
19
- import React, { forwardRef, useImperativeHandle } from "react";
20
- import { SequenceDefinition } from "@dxos/conductor";
21
- import { Type } from "@dxos/echo";
22
- import { useThemeContext } from "@dxos/react-ui";
23
- import { createBasicExtensions, createJsonExtensions, createThemeExtensions, useTextEditor } from "@dxos/react-ui-editor";
24
- import { mx } from "@dxos/react-ui-theme";
25
- var SequenceEditor = /* @__PURE__ */ forwardRef(({ classNames, sequence }, forwardedRef) => {
26
- var _effect = _useSignals();
27
- try {
28
- const { themeMode } = useThemeContext();
29
- const { parentRef, view } = useTextEditor({
30
- initialValue: JSON.stringify(sequence, null, 2),
31
- extensions: [
32
- createBasicExtensions({
33
- lineNumbers: true,
34
- lineWrapping: false,
35
- monospace: true,
36
- scrollPastEnd: true
37
- }),
38
- createThemeExtensions({
39
- themeMode,
40
- syntaxHighlighting: true
41
- }),
42
- createJsonExtensions({
43
- schema: Type.toJsonSchema(SequenceDefinition, {
44
- strict: true
45
- })
46
- })
47
- ]
48
- });
49
- useImperativeHandle(forwardedRef, () => view, [
50
- view
51
- ]);
52
- return /* @__PURE__ */ React.createElement("div", {
53
- ref: parentRef,
54
- className: mx("overflow-hidden", classNames)
55
- });
56
- } finally {
57
- _effect.f();
58
- }
59
- });
60
-
61
- // src/components/SequenceContainer.tsx
62
- var EXA_API_KEY = "9c7e17ff-0c85-4cd5-827a-8b489f139e03";
63
- var parseSequence = (text) => {
64
- try {
65
- const json = JSON5.parse(text);
66
- const { steps } = json;
67
- return {
68
- steps
69
- };
70
- } catch (error) {
71
- }
72
- };
73
- var SequenceContainer = ({ sequence }) => {
74
- var _effect = _useSignals2();
75
- try {
76
- const { t } = useTranslation(meta.id);
77
- const selectionManager = useSelectionManager();
78
- const [definition, setDefinition] = useState();
79
- useEffect(() => {
80
- setDefinition({
81
- steps: sequence.steps.map(({ instructions, tools }) => ({
82
- instructions,
83
- tools
84
- }))
85
- });
86
- }, [
87
- sequence
88
- ]);
89
- const editorRef = useRef(void 0);
90
- const toolRegistry = useMemo(() => {
91
- const space = getSpace(sequence);
92
- if (!space) {
93
- return;
94
- }
95
- const _queue = space.queues.create();
96
- return new ToolRegistry([]);
97
- }, [
98
- sequence
99
- ]);
100
- const formatAndSave = useCallback(() => {
101
- if (!sequence) {
102
- return;
103
- }
104
- const text = editorRef.current?.state.doc.toString();
105
- if (!text) {
106
- return;
107
- }
108
- const definition2 = parseSequence(text);
109
- if (!definition2) {
110
- return;
111
- }
112
- setDefinition(definition2);
113
- const formatted = JSON.stringify(definition2, null, 2);
114
- editorRef.current?.dispatch({
115
- changes: {
116
- from: 0,
117
- to: text.length,
118
- insert: formatted
119
- }
120
- });
121
- sequence.steps.length = 0;
122
- for (const step of definition2.steps) {
123
- sequence.steps.push({
124
- id: Key.ObjectId.random(),
125
- instructions: step.instructions,
126
- tools: step.tools
127
- });
128
- }
129
- return sequence;
130
- }, [
131
- sequence
132
- ]);
133
- const handleSave = useCallback(() => formatAndSave(), [
134
- formatAndSave
135
- ]);
136
- const handleRun = useCallback(async () => {
137
- }, [
138
- sequence,
139
- formatAndSave,
140
- selectionManager,
141
- toolRegistry
142
- ]);
143
- return /* @__PURE__ */ React2.createElement(StackItem.Content, {
144
- toolbar: true
145
- }, /* @__PURE__ */ React2.createElement(Toolbar.Root, null, /* @__PURE__ */ React2.createElement(Toolbar.Button, {
146
- onClick: handleSave
147
- }, t("button save")), /* @__PURE__ */ React2.createElement(Toolbar.Button, {
148
- onClick: handleRun
149
- }, t("button run"))), definition && /* @__PURE__ */ React2.createElement(SequenceEditor, {
150
- ref: editorRef,
151
- sequence: definition
152
- }));
153
- } finally {
154
- _effect.f();
155
- }
156
- };
157
- var SequenceContainer_default = SequenceContainer;
158
- export {
159
- EXA_API_KEY,
160
- SequenceContainer,
161
- SequenceContainer_default as default
162
- };
163
- //# sourceMappingURL=SequenceContainer-627OQ557.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/SequenceContainer.tsx", "../../../src/components/SequenceEditor/SequenceEditor.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport JSON5 from 'json5';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { ToolRegistry } from '@dxos/ai';\nimport { getSpace } from '@dxos/client/echo';\nimport { type Sequence, type SequenceDefinition } from '@dxos/conductor';\nimport { Key } from '@dxos/echo';\nimport { Toolbar, useTranslation } from '@dxos/react-ui';\nimport { useSelectionManager } from '@dxos/react-ui-attention';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { meta } from '../meta';\n\nimport { SequenceEditor } from './SequenceEditor';\n\n// TODO(burdon): Move to config.\nexport const EXA_API_KEY = '9c7e17ff-0c85-4cd5-827a-8b489f139e03';\n\n// TODO(burdon): Validate.\nconst parseSequence = (text: string): SequenceDefinition | undefined => {\n try {\n const json = JSON5.parse(text);\n const { steps } = json;\n return { steps };\n } catch (error) {\n // Ignore.\n }\n};\n\nexport const SequenceContainer = ({ sequence }: { sequence: Sequence }) => {\n const { t } = useTranslation(meta.id);\n const selectionManager = useSelectionManager();\n const [definition, setDefinition] = useState<SequenceDefinition>();\n useEffect(() => {\n setDefinition({\n steps: sequence.steps.map(({ instructions, tools }) => ({ instructions, tools })),\n });\n }, [sequence]);\n\n const editorRef = useRef<EditorView | undefined>(undefined);\n\n // TODO(burdon): Factor out.\n const toolRegistry = useMemo(() => {\n const space = getSpace(sequence);\n if (!space) {\n return;\n }\n\n // TODO(burdon): How should the queue be created?\n // eslint-disable-next-line no-unused-vars\n const _queue = space.queues.create();\n\n return new ToolRegistry([\n // createExaTool({ apiKey: EXA_API_KEY }),\n // createLocalSearchTool(space.db, queue),\n // createGraphWriterTool({\n // db: space.db,\n // queue,\n // schema: [], // TODO(burdon): Get schema from client/sequence?\n // onDone: async (objects) => {\n // await queue.append(objects);\n // },\n // }),\n ]);\n }, [sequence]);\n\n const formatAndSave = useCallback((): SequenceDefinition | undefined => {\n if (!sequence) {\n return;\n }\n\n const text = editorRef.current?.state.doc.toString();\n if (!text) {\n return;\n }\n\n const definition = parseSequence(text);\n if (!definition) {\n return;\n }\n\n setDefinition(definition);\n const formatted = JSON.stringify(definition, null, 2);\n editorRef.current?.dispatch({\n changes: { from: 0, to: text.length, insert: formatted },\n });\n\n sequence.steps.length = 0;\n for (const step of definition.steps) {\n sequence.steps.push({\n id: Key.ObjectId.random(),\n instructions: step.instructions,\n tools: step.tools,\n });\n }\n\n return sequence;\n }, [sequence]);\n\n // TODO(burdon): Save raw sequence separately from parsed sequence? (like Script).\n const handleSave = useCallback(() => formatAndSave(), [formatAndSave]);\n\n const handleRun = useCallback(async () => {\n // if (!aiClient?.value || !toolRegistry) {\n // return;\n // }\n // formatAndSave();\n // // Get input from selection.\n // const input = Array.from(getSelectionSet(selectionManager)).map((id) => DXN.fromLocalObjectId(id));\n // if (!input.length) {\n // return;\n // }\n // const machine = new SequenceMachine(toolRegistry, sequence).setLogger(new QueueLogger(sequence));\n // await machine.runToCompletion({ aiClient: aiClient.value, input });\n }, [sequence, formatAndSave, selectionManager, toolRegistry]);\n\n return (\n <StackItem.Content toolbar>\n <Toolbar.Root>\n <Toolbar.Button onClick={handleSave}>{t('button save')}</Toolbar.Button>\n <Toolbar.Button onClick={handleRun}>{t('button run')}</Toolbar.Button>\n </Toolbar.Root>\n {definition && <SequenceEditor ref={editorRef} sequence={definition} />}\n </StackItem.Content>\n );\n};\n\nexport default SequenceContainer;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef, useImperativeHandle } from 'react';\n\nimport { SequenceDefinition } from '@dxos/conductor';\nimport { Type } from '@dxos/echo';\nimport { type ThemedClassName, useThemeContext } from '@dxos/react-ui';\nimport {\n type EditorView,\n createBasicExtensions,\n createJsonExtensions,\n createThemeExtensions,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport type SequenceEditorProps = ThemedClassName<{\n sequence: SequenceDefinition;\n}>;\n\n// TODO(burdon): Factor out JsonEditor.\nexport const SequenceEditor = forwardRef<EditorView | undefined, SequenceEditorProps>(\n ({ classNames, sequence }, forwardedRef) => {\n const { themeMode } = useThemeContext();\n const { parentRef, view } = useTextEditor({\n initialValue: JSON.stringify(sequence, null, 2),\n extensions: [\n createBasicExtensions({\n lineNumbers: true,\n lineWrapping: false,\n monospace: true,\n scrollPastEnd: true,\n }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n }),\n createJsonExtensions({\n schema: Type.toJsonSchema(SequenceDefinition, { strict: true }),\n }),\n ],\n });\n\n useImperativeHandle(forwardedRef, () => view, [view]);\n\n return <div ref={parentRef} className={mx('overflow-hidden', classNames)} />;\n },\n);\n"],
5
- "mappings": ";;;;;;;AAKA,OAAOA,WAAW;AAClB,OAAOC,UAASC,aAAaC,WAAWC,SAASC,QAAQC,gBAAgB;AAEzE,SAASC,oBAAoB;AAC7B,SAASC,gBAAgB;AAEzB,SAASC,WAAW;AACpB,SAASC,SAASC,sBAAsB;AACxC,SAASC,2BAA2B;AACpC,SAASC,iBAAiB;;;;ACV1B,OAAOC,SAASC,YAAYC,2BAA2B;AAEvD,SAASC,0BAA0B;AACnC,SAASC,YAAY;AACrB,SAA+BC,uBAAuB;AACtD,SAEEC,uBACAC,sBACAC,uBACAC,qBACK;AACP,SAASC,UAAU;AAOZ,IAAMC,iBAAiBC,2BAC5B,CAAC,EAAEC,YAAYC,SAAQ,GAAIC,iBAAAA;;;AACzB,UAAM,EAAEC,UAAS,IAAKC,gBAAAA;AACtB,UAAM,EAAEC,WAAWC,KAAI,IAAKC,cAAc;MACxCC,cAAcC,KAAKC,UAAUT,UAAU,MAAM,CAAA;MAC7CU,YAAY;QACVC,sBAAsB;UACpBC,aAAa;UACbC,cAAc;UACdC,WAAW;UACXC,eAAe;QACjB,CAAA;QACAC,sBAAsB;UACpBd;UACAe,oBAAoB;QACtB,CAAA;QACAC,qBAAqB;UACnBC,QAAQC,KAAKC,aAAaC,oBAAoB;YAAEC,QAAQ;UAAK,CAAA;QAC/D,CAAA;;IAEJ,CAAA;AAEAC,wBAAoBvB,cAAc,MAAMI,MAAM;MAACA;KAAK;AAEpD,WAAO,sBAAA,cAACoB,OAAAA;MAAIC,KAAKtB;MAAWuB,WAAWC,GAAG,mBAAmB7B,UAAAA;;;;;AAC/D,CAAA;;;AD3BK,IAAM8B,cAAc;AAG3B,IAAMC,gBAAgB,CAACC,SAAAA;AACrB,MAAI;AACF,UAAMC,OAAOC,MAAMC,MAAMH,IAAAA;AACzB,UAAM,EAAEI,MAAK,IAAKH;AAClB,WAAO;MAAEG;IAAM;EACjB,SAASC,OAAO;EAEhB;AACF;AAEO,IAAMC,oBAAoB,CAAC,EAAEC,SAAQ,MAA0B;;;AACpE,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,UAAMC,mBAAmBC,oBAAAA;AACzB,UAAM,CAACC,YAAYC,aAAAA,IAAiBC,SAAAA;AACpCC,cAAU,MAAA;AACRF,oBAAc;QACZX,OAAOG,SAASH,MAAMc,IAAI,CAAC,EAAEC,cAAcC,MAAK,OAAQ;UAAED;UAAcC;QAAM,EAAA;MAChF,CAAA;IACF,GAAG;MAACb;KAAS;AAEb,UAAMc,YAAYC,OAA+BC,MAAAA;AAGjD,UAAMC,eAAeC,QAAQ,MAAA;AAC3B,YAAMC,QAAQC,SAASpB,QAAAA;AACvB,UAAI,CAACmB,OAAO;AACV;MACF;AAIA,YAAME,SAASF,MAAMG,OAAOC,OAAM;AAElC,aAAO,IAAIC,aAAa,CAAA,CAWvB;IACH,GAAG;MAACxB;KAAS;AAEb,UAAMyB,gBAAgBC,YAAY,MAAA;AAChC,UAAI,CAAC1B,UAAU;AACb;MACF;AAEA,YAAMP,OAAOqB,UAAUa,SAASC,MAAMC,IAAIC,SAAAA;AAC1C,UAAI,CAACrC,MAAM;AACT;MACF;AAEA,YAAMc,cAAaf,cAAcC,IAAAA;AACjC,UAAI,CAACc,aAAY;AACf;MACF;AAEAC,oBAAcD,WAAAA;AACd,YAAMwB,YAAYC,KAAKC,UAAU1B,aAAY,MAAM,CAAA;AACnDO,gBAAUa,SAASO,SAAS;QAC1BC,SAAS;UAAEC,MAAM;UAAGC,IAAI5C,KAAK6C;UAAQC,QAAQR;QAAU;MACzD,CAAA;AAEA/B,eAASH,MAAMyC,SAAS;AACxB,iBAAWE,QAAQjC,YAAWV,OAAO;AACnCG,iBAASH,MAAM4C,KAAK;UAClBrC,IAAIsC,IAAIC,SAASC,OAAM;UACvBhC,cAAc4B,KAAK5B;UACnBC,OAAO2B,KAAK3B;QACd,CAAA;MACF;AAEA,aAAOb;IACT,GAAG;MAACA;KAAS;AAGb,UAAM6C,aAAanB,YAAY,MAAMD,cAAAA,GAAiB;MAACA;KAAc;AAErE,UAAMqB,YAAYpB,YAAY,YAAA;IAY9B,GAAG;MAAC1B;MAAUyB;MAAepB;MAAkBY;KAAa;AAE5D,WACE,gBAAA8B,OAAA,cAACC,UAAUC,SAAO;MAACC,SAAAA;OACjB,gBAAAH,OAAA,cAACI,QAAQC,MAAI,MACX,gBAAAL,OAAA,cAACI,QAAQE,QAAM;MAACC,SAAST;OAAa5C,EAAE,aAAA,CAAA,GACxC,gBAAA8C,OAAA,cAACI,QAAQE,QAAM;MAACC,SAASR;OAAY7C,EAAE,YAAA,CAAA,CAAA,GAExCM,cAAc,gBAAAwC,OAAA,cAACQ,gBAAAA;MAAeC,KAAK1C;MAAWd,UAAUO;;;;;AAG/D;AAEA,IAAA,4BAAeR;",
6
- "names": ["JSON5", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "ToolRegistry", "getSpace", "Key", "Toolbar", "useTranslation", "useSelectionManager", "StackItem", "React", "forwardRef", "useImperativeHandle", "SequenceDefinition", "Type", "useThemeContext", "createBasicExtensions", "createJsonExtensions", "createThemeExtensions", "useTextEditor", "mx", "SequenceEditor", "forwardRef", "classNames", "sequence", "forwardedRef", "themeMode", "useThemeContext", "parentRef", "view", "useTextEditor", "initialValue", "JSON", "stringify", "extensions", "createBasicExtensions", "lineNumbers", "lineWrapping", "monospace", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "createJsonExtensions", "schema", "Type", "toJsonSchema", "SequenceDefinition", "strict", "useImperativeHandle", "div", "ref", "className", "mx", "EXA_API_KEY", "parseSequence", "text", "json", "JSON5", "parse", "steps", "error", "SequenceContainer", "sequence", "t", "useTranslation", "meta", "id", "selectionManager", "useSelectionManager", "definition", "setDefinition", "useState", "useEffect", "map", "instructions", "tools", "editorRef", "useRef", "undefined", "toolRegistry", "useMemo", "space", "getSpace", "_queue", "queues", "create", "ToolRegistry", "formatAndSave", "useCallback", "current", "state", "doc", "toString", "formatted", "JSON", "stringify", "dispatch", "changes", "from", "to", "length", "insert", "step", "push", "Key", "ObjectId", "random", "handleSave", "handleRun", "React", "StackItem", "Content", "toolbar", "Toolbar", "Root", "Button", "onClick", "SequenceEditor", "ref"]
7
- }
@@ -1,22 +0,0 @@
1
- import {
2
- AssistantCapabilities
3
- } from "./chunk-QB7OVS6Z.mjs";
4
- import "./chunk-LKP65RPA.mjs";
5
- import "./chunk-J5LGTIGS.mjs";
6
-
7
- // src/capabilities/ai-service.ts
8
- import { Effect, Layer } from "effect";
9
- import { AiServiceRouter } from "@dxos/ai";
10
- import { contributes } from "@dxos/app-framework";
11
- var ai_service_default = (context) => {
12
- const resolvers = context.getCapabilities(AssistantCapabilities.AiModelResolver);
13
- const combinedLayer = resolvers.reduce((acc, resolver) => resolver.pipe(Layer.provide(acc)), AiServiceRouter.AiModelResolver.fromModelMap(Effect.succeed({})));
14
- return [
15
- // TODO(dmaretskyi): Read config from settings.
16
- contributes(AssistantCapabilities.AiServiceLayer, AiServiceRouter.AiModelResolver.buildAiService.pipe(Layer.provide(combinedLayer)))
17
- ];
18
- };
19
- export {
20
- ai_service_default as default
21
- };
22
- //# sourceMappingURL=ai-service-7KJ5LXBT.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/ai-service.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Effect, Layer } from 'effect';\n\nimport { AiServiceRouter } from '@dxos/ai';\nimport { type PluginContext, contributes } from '@dxos/app-framework';\n\nimport { AssistantCapabilities } from './capabilities';\n\nexport default (context: PluginContext) => {\n const resolvers = context.getCapabilities(AssistantCapabilities.AiModelResolver);\n\n // TODO(dmaretskyi): Extract function to reduce them.\n const combinedLayer = resolvers.reduce(\n (acc, resolver) => resolver.pipe(Layer.provide(acc)),\n AiServiceRouter.AiModelResolver.fromModelMap(Effect.succeed({})), // Empty resolver as fallback.\n );\n\n return [\n // TODO(dmaretskyi): Read config from settings.\n contributes(\n AssistantCapabilities.AiServiceLayer,\n AiServiceRouter.AiModelResolver.buildAiService.pipe(Layer.provide(combinedLayer)),\n ),\n ];\n};\n"],
5
- "mappings": ";;;;;;;AAIA,SAASA,QAAQC,aAAa;AAE9B,SAASC,uBAAuB;AAChC,SAA6BC,mBAAmB;AAIhD,IAAA,qBAAe,CAACC,YAAAA;AACd,QAAMC,YAAYD,QAAQE,gBAAgBC,sBAAsBC,eAAe;AAG/E,QAAMC,gBAAgBJ,UAAUK,OAC9B,CAACC,KAAKC,aAAaA,SAASC,KAAKC,MAAMC,QAAQJ,GAAAA,CAAAA,GAC/CK,gBAAgBR,gBAAgBS,aAAaC,OAAOC,QAAQ,CAAC,CAAA,CAAA,CAAA;AAG/D,SAAO;;IAELC,YACEb,sBAAsBc,gBACtBL,gBAAgBR,gBAAgBc,eAAeT,KAAKC,MAAMC,QAAQN,aAAAA,CAAAA,CAAAA;;AAGxE;",
6
- "names": ["Effect", "Layer", "AiServiceRouter", "contributes", "context", "resolvers", "getCapabilities", "AssistantCapabilities", "AiModelResolver", "combinedLayer", "reduce", "acc", "resolver", "pipe", "Layer", "provide", "AiServiceRouter", "fromModelMap", "Effect", "succeed", "contributes", "AiServiceLayer", "buildAiService"]
7
- }