@dxos/plugin-assistant 0.8.4-main.dedc0f3 → 0.8.4-main.e8ec1fe

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 (465) 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-JYD2RIBJ.mjs +158 -0
  4. package/dist/lib/browser/ChatCompanion-JYD2RIBJ.mjs.map +7 -0
  5. package/dist/lib/browser/{ChatContainer-G6YHR6GJ.mjs → ChatContainer-XCPBWYIR.mjs} +22 -20
  6. package/dist/lib/browser/ChatContainer-XCPBWYIR.mjs.map +7 -0
  7. package/dist/lib/browser/{ChatDialog-HJ7VDRQO.mjs → ChatDialog-DT7KFCRL.mjs} +8 -6
  8. package/dist/lib/browser/ChatDialog-DT7KFCRL.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-3C43MLCD.mjs → app-graph-builder-VZEXMDTY.mjs} +67 -21
  14. package/dist/lib/browser/app-graph-builder-VZEXMDTY.mjs.map +7 -0
  15. package/dist/lib/browser/{blueprint-definition-VHFSRTEJ.mjs → blueprint-definition-5FT5JGPY.mjs} +4 -4
  16. package/dist/lib/browser/chunk-2BOE3OTW.mjs +262 -0
  17. package/dist/lib/browser/chunk-2BOE3OTW.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-SMIVXXAI.mjs → chunk-BNTPFZ7O.mjs} +51 -24
  19. package/dist/lib/browser/chunk-BNTPFZ7O.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-FJQ4ZRYJ.mjs +335 -0
  21. package/dist/lib/browser/chunk-FJQ4ZRYJ.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-GLWD66TA.mjs → chunk-IXIIS4QA.mjs} +53 -38
  23. package/dist/lib/browser/chunk-IXIIS4QA.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-EZUSNS2J.mjs → chunk-LRE4VEZV.mjs} +2 -5
  25. package/dist/lib/browser/chunk-LRE4VEZV.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-U62BTGDF.mjs +1929 -0
  27. package/dist/lib/browser/chunk-U62BTGDF.mjs.map +7 -0
  28. package/dist/lib/browser/chunk-WBG5PTSX.mjs +23 -0
  29. package/dist/lib/browser/chunk-WBG5PTSX.mjs.map +7 -0
  30. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +18 -0
  31. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +7 -0
  32. package/dist/lib/browser/index.mjs +118 -82
  33. package/dist/lib/browser/index.mjs.map +4 -4
  34. package/dist/lib/browser/{intent-resolver-I6M3ZDAS.mjs → intent-resolver-AK5O4GUW.mjs} +55 -24
  35. package/dist/lib/browser/intent-resolver-AK5O4GUW.mjs.map +7 -0
  36. package/dist/lib/browser/local-model-resolver-34MVHRKD.mjs +17 -0
  37. package/dist/lib/browser/local-model-resolver-34MVHRKD.mjs.map +7 -0
  38. package/dist/lib/browser/meta.json +1 -1
  39. package/dist/lib/browser/{react-surface-WNLA2636.mjs → react-surface-YCSR2MSR.mjs} +24 -35
  40. package/dist/lib/browser/react-surface-YCSR2MSR.mjs.map +7 -0
  41. package/dist/lib/browser/{settings-36V3VUMW.mjs → settings-NYJGNQ5I.mjs} +5 -5
  42. package/dist/lib/browser/{settings-36V3VUMW.mjs.map → settings-NYJGNQ5I.mjs.map} +1 -1
  43. package/dist/lib/browser/{state-AINRYS5W.mjs → state-GG7Z3NB7.mjs} +9 -5
  44. package/dist/lib/browser/{state-AINRYS5W.mjs.map → state-GG7Z3NB7.mjs.map} +3 -3
  45. package/dist/lib/browser/toolkit-VYDAWNE4.mjs +17 -0
  46. package/dist/lib/browser/toolkit-VYDAWNE4.mjs.map +7 -0
  47. package/dist/lib/browser/types/index.mjs +2 -2
  48. package/dist/lib/node-esm/BlueprintArticle-OL2HUY6Q.mjs +37 -0
  49. package/dist/lib/node-esm/BlueprintArticle-OL2HUY6Q.mjs.map +7 -0
  50. package/dist/lib/node-esm/ChatCompanion-AHKJS25S.mjs +159 -0
  51. package/dist/lib/node-esm/ChatCompanion-AHKJS25S.mjs.map +7 -0
  52. package/dist/lib/node-esm/{ChatContainer-EZZF7RSQ.mjs → ChatContainer-K7OGPE3G.mjs} +22 -20
  53. package/dist/lib/node-esm/ChatContainer-K7OGPE3G.mjs.map +7 -0
  54. package/dist/lib/node-esm/{ChatDialog-PTQLZNJU.mjs → ChatDialog-QT6ZBX45.mjs} +8 -6
  55. package/dist/lib/node-esm/ChatDialog-QT6ZBX45.mjs.map +7 -0
  56. package/dist/lib/node-esm/PromptArticle-OUKFSJQV.mjs +60 -0
  57. package/dist/lib/node-esm/PromptArticle-OUKFSJQV.mjs.map +7 -0
  58. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +20 -0
  59. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +7 -0
  60. package/dist/lib/node-esm/{app-graph-builder-NM3JDLQ2.mjs → app-graph-builder-VRN6ESRR.mjs} +67 -21
  61. package/dist/lib/node-esm/app-graph-builder-VRN6ESRR.mjs.map +7 -0
  62. package/dist/lib/node-esm/{blueprint-definition-4E6XTLVN.mjs → blueprint-definition-XW6QQVLV.mjs} +4 -4
  63. package/dist/lib/node-esm/chunk-3Q22TTXW.mjs +264 -0
  64. package/dist/lib/node-esm/chunk-3Q22TTXW.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-7YOGZI66.mjs → chunk-AB74FOA2.mjs} +51 -24
  66. package/dist/lib/node-esm/chunk-AB74FOA2.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-BHS747K7.mjs +1930 -0
  68. package/dist/lib/node-esm/chunk-BHS747K7.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-QG2KT3AT.mjs → chunk-UXTUHH24.mjs} +53 -38
  72. package/dist/lib/node-esm/chunk-UXTUHH24.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-WE6KTH72.mjs +25 -0
  74. package/dist/lib/node-esm/chunk-WE6KTH72.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-XD4CDA4R.mjs → chunk-YWFWT57N.mjs} +2 -5
  76. package/dist/lib/node-esm/chunk-YWFWT57N.mjs.map +7 -0
  77. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs +19 -0
  78. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +118 -82
  80. package/dist/lib/node-esm/index.mjs.map +4 -4
  81. package/dist/lib/node-esm/{intent-resolver-VIINHFMT.mjs → intent-resolver-L2F3N45L.mjs} +55 -24
  82. package/dist/lib/node-esm/intent-resolver-L2F3N45L.mjs.map +7 -0
  83. package/dist/lib/node-esm/local-model-resolver-TP2NTSAX.mjs +18 -0
  84. package/dist/lib/node-esm/local-model-resolver-TP2NTSAX.mjs.map +7 -0
  85. package/dist/lib/node-esm/meta.json +1 -1
  86. package/dist/lib/node-esm/{react-surface-GP3LU6DX.mjs → react-surface-CTW44GEM.mjs} +24 -35
  87. package/dist/lib/node-esm/react-surface-CTW44GEM.mjs.map +7 -0
  88. package/dist/lib/node-esm/{settings-7ZCZ6AS5.mjs → settings-RRHYI5KO.mjs} +5 -5
  89. package/dist/lib/node-esm/{settings-7ZCZ6AS5.mjs.map → settings-RRHYI5KO.mjs.map} +1 -1
  90. package/dist/lib/node-esm/{state-EQS5KP6M.mjs → state-FSUHFMDM.mjs} +9 -5
  91. package/dist/lib/node-esm/{state-EQS5KP6M.mjs.map → state-FSUHFMDM.mjs.map} +3 -3
  92. package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs +18 -0
  93. package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs.map +7 -0
  94. package/dist/lib/node-esm/types/index.mjs +2 -2
  95. package/dist/types/src/AssistantPlugin.d.ts +1 -1
  96. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/ai-service.d.ts +2 -3
  98. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/blueprint-definition.d.ts +1 -1
  101. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/capabilities.d.ts +2 -24
  103. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/index.d.ts +0 -1
  106. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/toolkit.d.ts +1 -1
  112. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  113. package/dist/types/src/components/BlueprintArticle.d.ts +7 -0
  114. package/dist/types/src/components/BlueprintArticle.d.ts.map +1 -0
  115. package/dist/types/src/components/Chat/Chat.d.ts +20 -9
  116. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  117. package/dist/types/src/components/Chat/events.d.ts +4 -0
  118. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  119. package/dist/types/src/components/ChatCompanion.d.ts +2 -2
  120. package/dist/types/src/components/ChatCompanion.d.ts.map +1 -1
  121. package/dist/types/src/components/ChatContainer.d.ts +7 -4
  122. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  123. package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
  124. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
  125. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  126. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  127. package/dist/types/src/components/ChatThread/ChatThread.d.ts +6 -7
  128. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  129. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +124 -71
  130. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/ChatThread/reducers.d.ts +5 -5
  132. package/dist/types/src/components/ChatThread/reducers.d.ts.map +1 -1
  133. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  134. package/dist/types/src/components/ChatThread/sync.d.ts +12 -6
  135. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  136. package/dist/types/src/components/PromptArticle.d.ts +7 -0
  137. package/dist/types/src/components/PromptArticle.d.ts.map +1 -0
  138. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
  139. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  140. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +111 -61
  141. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  142. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +1 -1
  143. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  144. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +111 -61
  145. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  146. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  147. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  148. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  149. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  150. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  151. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +9 -7
  152. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  153. package/dist/types/src/components/Toolbox/Toolbox.d.ts +2 -2
  154. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  155. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +111 -61
  156. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  157. package/dist/types/src/components/index.d.ts +4 -9
  158. package/dist/types/src/components/index.d.ts.map +1 -1
  159. package/dist/types/src/functions/analysis.d.ts +1 -1
  160. package/dist/types/src/functions/analysis.d.ts.map +1 -1
  161. package/dist/types/src/functions/index.d.ts +2 -2
  162. package/dist/types/src/functions/index.d.ts.map +1 -1
  163. package/dist/types/src/functions/{list.d.ts → object-list.d.ts} +2 -2
  164. package/dist/types/src/functions/object-list.d.ts.map +1 -0
  165. package/dist/types/src/functions/{load.d.ts → object-load.d.ts} +2 -2
  166. package/dist/types/src/functions/object-load.d.ts.map +1 -0
  167. package/dist/types/src/hooks/index.d.ts +1 -2
  168. package/dist/types/src/hooks/index.d.ts.map +1 -1
  169. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +2 -1
  170. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  171. package/dist/types/src/hooks/useChatProcessor.d.ts +4 -2
  172. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  173. package/dist/types/src/hooks/useChatServices.d.ts +1 -1
  174. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  175. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  176. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  177. package/dist/types/src/hooks/useContextBinder.d.ts +2 -2
  178. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  179. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  180. package/dist/types/src/index.d.ts +2 -0
  181. package/dist/types/src/index.d.ts.map +1 -1
  182. package/dist/types/src/meta.d.ts +1 -2
  183. package/dist/types/src/meta.d.ts.map +1 -1
  184. package/dist/types/src/processor/index.d.ts +1 -0
  185. package/dist/types/src/processor/index.d.ts.map +1 -1
  186. package/dist/types/src/processor/presets.d.ts +1 -1
  187. package/dist/types/src/processor/presets.d.ts.map +1 -1
  188. package/dist/types/src/processor/processor.d.ts +11 -10
  189. package/dist/types/src/processor/processor.d.ts.map +1 -1
  190. package/dist/types/src/processor/update-name.d.ts +10 -0
  191. package/dist/types/src/processor/update-name.d.ts.map +1 -0
  192. package/dist/types/src/queue-logger.d.ts.map +1 -1
  193. package/dist/types/src/testing/index.d.ts +0 -2
  194. package/dist/types/src/testing/index.d.ts.map +1 -1
  195. package/dist/types/src/testing/test-generator.d.ts +3 -3
  196. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  197. package/dist/types/src/testing/test-services.d.ts +2 -2
  198. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  199. package/dist/types/src/translations.d.ts +239 -26
  200. package/dist/types/src/translations.d.ts.map +1 -1
  201. package/dist/types/src/types/Assistant.d.ts +15 -9
  202. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  203. package/dist/types/src/types/AssistantAction.d.ts +33 -8
  204. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  205. package/dist/types/src/types/service.d.ts +24 -18
  206. package/dist/types/src/types/service.d.ts.map +1 -1
  207. package/dist/types/tsconfig.tsbuildinfo +1 -1
  208. package/package.json +94 -113
  209. package/src/AssistantPlugin.tsx +154 -137
  210. package/src/capabilities/ai-service.ts +6 -7
  211. package/src/capabilities/app-graph-builder.ts +69 -21
  212. package/src/capabilities/blueprint-definition.ts +38 -30
  213. package/src/capabilities/capabilities.ts +2 -56
  214. package/src/capabilities/edge-model-resolver.ts +5 -7
  215. package/src/capabilities/index.ts +0 -1
  216. package/src/capabilities/intent-resolver.ts +69 -16
  217. package/src/capabilities/local-model-resolver.ts +7 -9
  218. package/src/capabilities/react-surface.tsx +16 -20
  219. package/src/capabilities/state.ts +2 -0
  220. package/src/capabilities/toolkit.ts +9 -155
  221. package/src/components/BlueprintArticle.tsx +29 -0
  222. package/src/components/Chat/Chat.tsx +155 -113
  223. package/src/components/Chat/events.ts +6 -0
  224. package/src/components/ChatCompanion.tsx +93 -49
  225. package/src/components/ChatContainer.tsx +27 -17
  226. package/src/components/ChatDialog.tsx +9 -2
  227. package/src/components/ChatProgress/ChatProgress.tsx +2 -3
  228. package/src/components/ChatPrompt/ChatActions.tsx +2 -4
  229. package/src/components/ChatPrompt/ChatOptions.tsx +40 -45
  230. package/src/components/ChatPrompt/ChatReferences.tsx +2 -2
  231. package/src/components/ChatThread/ChatThread.stories.tsx +52 -34
  232. package/src/components/ChatThread/ChatThread.tsx +28 -34
  233. package/src/components/ChatThread/reducers.ts +6 -6
  234. package/src/components/ChatThread/registry.tsx +25 -40
  235. package/src/components/ChatThread/sync.test.ts +21 -13
  236. package/src/components/ChatThread/sync.ts +48 -13
  237. package/src/components/ChatThread/testing/thread.md +37 -0
  238. package/src/components/PromptArticle.tsx +51 -0
  239. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +15 -7
  240. package/src/components/TemplateEditor/TemplateEditor.tsx +19 -10
  241. package/src/components/TemplateEditor/TemplateForm.stories.tsx +4 -6
  242. package/src/components/TemplateEditor/TemplateForm.tsx +2 -2
  243. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +269 -0
  244. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  245. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  246. package/src/components/ToolBlock/ToolBlock.tsx +37 -46
  247. package/src/components/Toolbox/Toolbox.stories.tsx +5 -8
  248. package/src/components/Toolbox/Toolbox.tsx +5 -5
  249. package/src/components/index.ts +2 -5
  250. package/src/functions/analysis.ts +5 -3
  251. package/src/functions/index.ts +2 -2
  252. package/src/functions/{list.ts → object-list.ts} +6 -4
  253. package/src/functions/{load.ts → object-load.ts} +8 -5
  254. package/src/hooks/index.ts +1 -2
  255. package/src/hooks/useBlueprintRegistry.ts +19 -4
  256. package/src/hooks/useChatProcessor.ts +22 -14
  257. package/src/hooks/useChatServices.ts +10 -7
  258. package/src/hooks/useChatToolbarActions.ts +122 -0
  259. package/src/hooks/useContextBinder.ts +19 -7
  260. package/src/hooks/useItemTypes.ts +1 -1
  261. package/src/hooks/useReferencesProvider.ts +2 -1
  262. package/src/index.ts +2 -0
  263. package/src/meta.ts +9 -6
  264. package/src/processor/index.ts +1 -0
  265. package/src/processor/presets.ts +2 -2
  266. package/src/processor/processor.test.ts +18 -24
  267. package/src/processor/processor.ts +35 -60
  268. package/src/processor/update-name.ts +56 -0
  269. package/src/queue-logger.ts +4 -8
  270. package/src/testing/index.ts +0 -2
  271. package/src/testing/test-generator.ts +15 -11
  272. package/src/testing/test-services.ts +2 -8
  273. package/src/translations.ts +24 -16
  274. package/src/types/Assistant.ts +10 -8
  275. package/src/types/AssistantAction.ts +23 -6
  276. package/src/types/service.ts +17 -9
  277. package/dist/lib/browser/BlueprintContainer-BFNN6K46.mjs +0 -29
  278. package/dist/lib/browser/BlueprintContainer-BFNN6K46.mjs.map +0 -7
  279. package/dist/lib/browser/ChatCompanion-YYYCHZYV.mjs +0 -126
  280. package/dist/lib/browser/ChatCompanion-YYYCHZYV.mjs.map +0 -7
  281. package/dist/lib/browser/ChatContainer-G6YHR6GJ.mjs.map +0 -7
  282. package/dist/lib/browser/ChatDialog-HJ7VDRQO.mjs.map +0 -7
  283. package/dist/lib/browser/SequenceContainer-TF5QNXYM.mjs +0 -150
  284. package/dist/lib/browser/SequenceContainer-TF5QNXYM.mjs.map +0 -7
  285. package/dist/lib/browser/ai-service-YC2EQPHA.mjs +0 -22
  286. package/dist/lib/browser/ai-service-YC2EQPHA.mjs.map +0 -7
  287. package/dist/lib/browser/app-graph-builder-3C43MLCD.mjs.map +0 -7
  288. package/dist/lib/browser/chunk-EZUSNS2J.mjs.map +0 -7
  289. package/dist/lib/browser/chunk-GLWD66TA.mjs.map +0 -7
  290. package/dist/lib/browser/chunk-O4LUJEDV.mjs +0 -20
  291. package/dist/lib/browser/chunk-O4LUJEDV.mjs.map +0 -7
  292. package/dist/lib/browser/chunk-PL4O4ZJU.mjs +0 -1974
  293. package/dist/lib/browser/chunk-PL4O4ZJU.mjs.map +0 -7
  294. package/dist/lib/browser/chunk-PPJAIE2T.mjs +0 -299
  295. package/dist/lib/browser/chunk-PPJAIE2T.mjs.map +0 -7
  296. package/dist/lib/browser/chunk-PQI3MGDN.mjs +0 -169
  297. package/dist/lib/browser/chunk-PQI3MGDN.mjs.map +0 -7
  298. package/dist/lib/browser/chunk-R6LRGW3I.mjs +0 -216
  299. package/dist/lib/browser/chunk-R6LRGW3I.mjs.map +0 -7
  300. package/dist/lib/browser/chunk-SMIVXXAI.mjs.map +0 -7
  301. package/dist/lib/browser/compute-runtime-X6IREJN3.mjs +0 -155
  302. package/dist/lib/browser/compute-runtime-X6IREJN3.mjs.map +0 -7
  303. package/dist/lib/browser/edge-model-resolver-JNEB355N.mjs +0 -22
  304. package/dist/lib/browser/edge-model-resolver-JNEB355N.mjs.map +0 -7
  305. package/dist/lib/browser/intent-resolver-I6M3ZDAS.mjs.map +0 -7
  306. package/dist/lib/browser/local-model-resolver-EUXSRZ7X.mjs +0 -21
  307. package/dist/lib/browser/local-model-resolver-EUXSRZ7X.mjs.map +0 -7
  308. package/dist/lib/browser/react-surface-WNLA2636.mjs.map +0 -7
  309. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs +0 -191
  310. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs.map +0 -7
  311. package/dist/lib/node-esm/BlueprintContainer-X4MRBKDR.mjs +0 -30
  312. package/dist/lib/node-esm/BlueprintContainer-X4MRBKDR.mjs.map +0 -7
  313. package/dist/lib/node-esm/ChatCompanion-PUAFRIEC.mjs +0 -127
  314. package/dist/lib/node-esm/ChatCompanion-PUAFRIEC.mjs.map +0 -7
  315. package/dist/lib/node-esm/ChatContainer-EZZF7RSQ.mjs.map +0 -7
  316. package/dist/lib/node-esm/ChatDialog-PTQLZNJU.mjs.map +0 -7
  317. package/dist/lib/node-esm/SequenceContainer-UXOVZPZO.mjs +0 -151
  318. package/dist/lib/node-esm/SequenceContainer-UXOVZPZO.mjs.map +0 -7
  319. package/dist/lib/node-esm/ai-service-XUMZVFCK.mjs +0 -23
  320. package/dist/lib/node-esm/ai-service-XUMZVFCK.mjs.map +0 -7
  321. package/dist/lib/node-esm/app-graph-builder-NM3JDLQ2.mjs.map +0 -7
  322. package/dist/lib/node-esm/chunk-4WLFSXZG.mjs +0 -170
  323. package/dist/lib/node-esm/chunk-4WLFSXZG.mjs.map +0 -7
  324. package/dist/lib/node-esm/chunk-7YOGZI66.mjs.map +0 -7
  325. package/dist/lib/node-esm/chunk-LVTG5JTW.mjs +0 -217
  326. package/dist/lib/node-esm/chunk-LVTG5JTW.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-QG2KT3AT.mjs.map +0 -7
  328. package/dist/lib/node-esm/chunk-VFY2JG62.mjs +0 -22
  329. package/dist/lib/node-esm/chunk-VFY2JG62.mjs.map +0 -7
  330. package/dist/lib/node-esm/chunk-VH3LTD76.mjs +0 -300
  331. package/dist/lib/node-esm/chunk-VH3LTD76.mjs.map +0 -7
  332. package/dist/lib/node-esm/chunk-XD4CDA4R.mjs.map +0 -7
  333. package/dist/lib/node-esm/chunk-ZIDP7HBI.mjs +0 -1975
  334. package/dist/lib/node-esm/chunk-ZIDP7HBI.mjs.map +0 -7
  335. package/dist/lib/node-esm/compute-runtime-NRHLLTSC.mjs +0 -156
  336. package/dist/lib/node-esm/compute-runtime-NRHLLTSC.mjs.map +0 -7
  337. package/dist/lib/node-esm/edge-model-resolver-UE5TLLJZ.mjs +0 -23
  338. package/dist/lib/node-esm/edge-model-resolver-UE5TLLJZ.mjs.map +0 -7
  339. package/dist/lib/node-esm/intent-resolver-VIINHFMT.mjs.map +0 -7
  340. package/dist/lib/node-esm/local-model-resolver-JBEFVVZA.mjs +0 -22
  341. package/dist/lib/node-esm/local-model-resolver-JBEFVVZA.mjs.map +0 -7
  342. package/dist/lib/node-esm/react-surface-GP3LU6DX.mjs.map +0 -7
  343. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs +0 -192
  344. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs.map +0 -7
  345. package/dist/types/src/capabilities/compute-runtime.d.ts +0 -5
  346. package/dist/types/src/capabilities/compute-runtime.d.ts.map +0 -1
  347. package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
  348. package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
  349. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  350. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  351. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  352. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  353. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  354. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  355. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -267
  356. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  357. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  358. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  359. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +0 -1
  360. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -5
  361. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  362. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  363. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  364. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts +0 -11
  365. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +0 -1
  366. package/dist/types/src/execution-graph/execution-graph.d.ts +0 -21
  367. package/dist/types/src/execution-graph/execution-graph.d.ts.map +0 -1
  368. package/dist/types/src/execution-graph/index.d.ts +0 -2
  369. package/dist/types/src/execution-graph/index.d.ts.map +0 -1
  370. package/dist/types/src/functions/list.d.ts.map +0 -1
  371. package/dist/types/src/functions/load.d.ts.map +0 -1
  372. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +0 -8
  373. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +0 -1
  374. package/dist/types/src/hooks/useExecutionGraph.d.ts +0 -6
  375. package/dist/types/src/hooks/useExecutionGraph.d.ts.map +0 -1
  376. package/dist/types/src/stories/Chat.stories.d.ts +0 -30
  377. package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
  378. package/dist/types/src/stories/components/BlueprintContainer.d.ts +0 -4
  379. package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +0 -1
  380. package/dist/types/src/stories/components/ChatContainer.d.ts +0 -4
  381. package/dist/types/src/stories/components/ChatContainer.d.ts.map +0 -1
  382. package/dist/types/src/stories/components/ChessContainer.d.ts +0 -4
  383. package/dist/types/src/stories/components/ChessContainer.d.ts.map +0 -1
  384. package/dist/types/src/stories/components/CommentsContainer.d.ts +0 -4
  385. package/dist/types/src/stories/components/CommentsContainer.d.ts.map +0 -1
  386. package/dist/types/src/stories/components/DebugCard.d.ts +0 -8
  387. package/dist/types/src/stories/components/DebugCard.d.ts.map +0 -1
  388. package/dist/types/src/stories/components/GraphContainer.d.ts +0 -6
  389. package/dist/types/src/stories/components/GraphContainer.d.ts.map +0 -1
  390. package/dist/types/src/stories/components/InvocationsContainer.d.ts +0 -4
  391. package/dist/types/src/stories/components/InvocationsContainer.d.ts.map +0 -1
  392. package/dist/types/src/stories/components/LoggingContainer.d.ts +0 -7
  393. package/dist/types/src/stories/components/LoggingContainer.d.ts.map +0 -1
  394. package/dist/types/src/stories/components/MessageContainer.d.ts +0 -4
  395. package/dist/types/src/stories/components/MessageContainer.d.ts.map +0 -1
  396. package/dist/types/src/stories/components/PromptContainer.d.ts +0 -6
  397. package/dist/types/src/stories/components/PromptContainer.d.ts.map +0 -1
  398. package/dist/types/src/stories/components/ResearchInputStack.d.ts +0 -4
  399. package/dist/types/src/stories/components/ResearchInputStack.d.ts.map +0 -1
  400. package/dist/types/src/stories/components/ResearchOutputStack.d.ts +0 -4
  401. package/dist/types/src/stories/components/ResearchOutputStack.d.ts.map +0 -1
  402. package/dist/types/src/stories/components/TasksContainer.d.ts +0 -4
  403. package/dist/types/src/stories/components/TasksContainer.d.ts.map +0 -1
  404. package/dist/types/src/stories/components/TokenManagerContainer.d.ts +0 -3
  405. package/dist/types/src/stories/components/TokenManagerContainer.d.ts.map +0 -1
  406. package/dist/types/src/stories/components/TriggersContainer.d.ts +0 -14
  407. package/dist/types/src/stories/components/TriggersContainer.d.ts.map +0 -1
  408. package/dist/types/src/stories/components/index.d.ts +0 -16
  409. package/dist/types/src/stories/components/index.d.ts.map +0 -1
  410. package/dist/types/src/stories/components/types.d.ts +0 -7
  411. package/dist/types/src/stories/components/types.d.ts.map +0 -1
  412. package/dist/types/src/stories/testing/data.d.ts +0 -9
  413. package/dist/types/src/stories/testing/data.d.ts.map +0 -1
  414. package/dist/types/src/stories/testing/index.d.ts +0 -3
  415. package/dist/types/src/stories/testing/index.d.ts.map +0 -1
  416. package/dist/types/src/stories/testing/schema.d.ts +0 -7
  417. package/dist/types/src/stories/testing/schema.d.ts.map +0 -1
  418. package/dist/types/src/stories/testing/testing.d.ts +0 -48
  419. package/dist/types/src/stories/testing/testing.d.ts.map +0 -1
  420. package/dist/types/src/testing/test-data.d.ts +0 -14
  421. package/dist/types/src/testing/test-data.d.ts.map +0 -1
  422. package/dist/types/src/testing/test-functions.d.ts +0 -6
  423. package/dist/types/src/testing/test-functions.d.ts.map +0 -1
  424. package/src/capabilities/compute-runtime.ts +0 -124
  425. package/src/components/BlueprintContainer.tsx +0 -24
  426. package/src/components/PromptSettings.tsx +0 -90
  427. package/src/components/SequenceContainer.tsx +0 -131
  428. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -33
  429. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  430. package/src/components/SequenceEditor/index.ts +0 -5
  431. package/src/components/TemplateEditor/handlebars-extension.ts +0 -165
  432. package/src/components/Toolbar/Toolbar.tsx +0 -21
  433. package/src/components/Toolbar/index.ts +0 -5
  434. package/src/components/Toolbar/useChatToolbarActions.ts +0 -126
  435. package/src/execution-graph/execution-graph.ts +0 -211
  436. package/src/execution-graph/index.ts +0 -5
  437. package/src/hooks/useComputeRuntimeCallback.ts +0 -25
  438. package/src/hooks/useExecutionGraph.ts +0 -20
  439. package/src/stories/Chat.stories.tsx +0 -657
  440. package/src/stories/components/BlueprintContainer.tsx +0 -34
  441. package/src/stories/components/ChatContainer.tsx +0 -74
  442. package/src/stories/components/ChessContainer.tsx +0 -17
  443. package/src/stories/components/CommentsContainer.tsx +0 -25
  444. package/src/stories/components/DebugCard.tsx +0 -61
  445. package/src/stories/components/GraphContainer.tsx +0 -119
  446. package/src/stories/components/InvocationsContainer.tsx +0 -17
  447. package/src/stories/components/LoggingContainer.tsx +0 -33
  448. package/src/stories/components/MessageContainer.tsx +0 -22
  449. package/src/stories/components/PromptContainer.tsx +0 -52
  450. package/src/stories/components/ResearchInputStack.tsx +0 -30
  451. package/src/stories/components/ResearchOutputStack.tsx +0 -29
  452. package/src/stories/components/TasksContainer.tsx +0 -49
  453. package/src/stories/components/TokenManagerContainer.tsx +0 -14
  454. package/src/stories/components/TriggersContainer.tsx +0 -75
  455. package/src/stories/components/index.ts +0 -20
  456. package/src/stories/components/types.ts +0 -11
  457. package/src/stories/testing/data.ts +0 -142
  458. package/src/stories/testing/index.ts +0 -6
  459. package/src/stories/testing/schema.ts +0 -17
  460. package/src/stories/testing/testing.tsx +0 -279
  461. package/src/testing/test-data.ts +0 -245
  462. package/src/testing/test-functions.ts +0 -16
  463. /package/dist/lib/browser/{blueprint-definition-VHFSRTEJ.mjs.map → blueprint-definition-5FT5JGPY.mjs.map} +0 -0
  464. /package/dist/lib/node-esm/{blueprint-definition-4E6XTLVN.mjs.map → blueprint-definition-XW6QQVLV.mjs.map} +0 -0
  465. /package/dist/types/src/components/TemplateEditor/{handlebars-extension.d.ts → extensions/handlebars-extension.d.ts} +0 -0
@@ -1,90 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { type Template } from '@dxos/blueprints';
8
- import { Toolbar, useTranslation } from '@dxos/react-ui';
9
-
10
- import { meta } from '../meta';
11
-
12
- export const PromptSettings = ({ template }: { template: Template.Template }) => {
13
- const { t } = useTranslation(meta.id);
14
-
15
- // const handleKindChange = useCallback(
16
- // (value: string) => {
17
- // const kind = Match.type<string>().pipe(
18
- // Match.withReturnType<Schema.Schema.Type<typeof Template.Template>>(),
19
- // Match.when('always', () => ({ include: 'always' })),
20
- // Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),
21
- // Match.when('automatically', () => ({ include: 'automatically', description: '' })),
22
- // Match.orElse(() => ({ include: 'manual' })),
23
- // )(value);
24
- //
25
- // template.kind = kind;
26
- // },
27
- // [template],
28
- // );
29
-
30
- // const handleTypenameChange = useCallback(
31
- // debounce((event: ChangeEvent<HTMLInputElement>) => {
32
- // if (template.kind.include === 'schema-matching') {
33
- // template.kind.typename = event.target.value;
34
- // }
35
- // }, 300),
36
- // [template.kind.include],
37
- // );
38
-
39
- // const handleDescriptionChange = useCallback(
40
- // debounce((event: ChangeEvent<HTMLInputElement>) => {
41
- // if (template.kind.include === 'automatically') {
42
- // template.kind.description = event.target.value;
43
- // }
44
- // }, 300),
45
- // [template.kind.include],
46
- // );
47
-
48
- return (
49
- <div className='flex flex-col gap-4'>
50
- <h2>{t('prompt rules label')}</h2>
51
- <Toolbar.Root>
52
- {/* <Select.Root value={template.kind.include} onValueChange={handleKindChange}>
53
- <Toolbar.Button asChild>
54
- <Select.TriggerButton />
55
- </Toolbar.Button>
56
- <Select.Portal>
57
- <Select.Content>
58
- <Select.Viewport>
59
- {Template.Kinds.map((kind) => (
60
- <Select.Option key={kind} value={kind}>
61
- {kind}
62
- </Select.Option>
63
- ))}
64
- </Select.Viewport>
65
- <Select.Arrow />
66
- </Select.Content>
67
- </Select.Portal>
68
- </Select.Root> */}
69
- {/* {template.kind.include === 'schema-matching' && (
70
- <Input.Root>
71
- <Input.TextInput
72
- placeholder={t('typename placeholder')}
73
- defaultValue={template.kind.typename}
74
- onChange={handleTypenameChange}
75
- />
76
- </Input.Root>
77
- )} */}
78
- {/* {template.kind.include === 'automatically' && (
79
- <Input.Root>
80
- <Input.TextInput
81
- placeholder={t('description placeholder')}
82
- defaultValue={template.kind.description}
83
- onChange={handleDescriptionChange}
84
- />
85
- </Input.Root>
86
- )} */}
87
- </Toolbar.Root>
88
- </div>
89
- );
90
- };
@@ -1,131 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type EditorView } from '@codemirror/view';
6
- import JSON5 from 'json5';
7
- import React, { useCallback, useEffect, useRef, useState } from 'react';
8
-
9
- import { type Sequence, type SequenceDefinition } from '@dxos/conductor';
10
- import { Key } from '@dxos/echo';
11
- import { Toolbar, useTranslation } from '@dxos/react-ui';
12
- import { useSelectionManager } from '@dxos/react-ui-attention';
13
- import { StackItem } from '@dxos/react-ui-stack';
14
-
15
- import { meta } from '../meta';
16
-
17
- import { SequenceEditor } from './SequenceEditor';
18
-
19
- // TODO(burdon): Move to config.
20
- export const EXA_API_KEY = '9c7e17ff-0c85-4cd5-827a-8b489f139e03';
21
-
22
- // TODO(burdon): Validate.
23
- const parseSequence = (text: string): SequenceDefinition | undefined => {
24
- try {
25
- const json = JSON5.parse(text);
26
- const { steps } = json;
27
- return { steps };
28
- } catch (error) {
29
- // Ignore.
30
- }
31
- };
32
-
33
- export const SequenceContainer = ({ sequence }: { sequence: Sequence }) => {
34
- const { t } = useTranslation(meta.id);
35
- const selectionManager = useSelectionManager();
36
- const [definition, setDefinition] = useState<SequenceDefinition>();
37
- useEffect(() => {
38
- setDefinition({
39
- steps: sequence.steps.map(({ instructions, tools }) => ({ instructions, tools })),
40
- });
41
- }, [sequence]);
42
-
43
- const editorRef = useRef<EditorView | undefined>(undefined);
44
-
45
- // TODO(burdon): Factor out.
46
- // const toolRegistry = useMemo(() => {
47
- // const space = getSpace(sequence);
48
- // if (!space) {
49
- // return;
50
- // }
51
-
52
- // // TODO(burdon): How should the queue be created?
53
- // // eslint-disable-next-line no-unused-vars
54
- // const _queue = space.queues.create();
55
-
56
- // return new ToolRegistry([
57
- // // createExaTool({ apiKey: EXA_API_KEY }),
58
- // // createLocalSearchTool(space.db, queue),
59
- // // createGraphWriterTool({
60
- // // db: space.db,
61
- // // queue,
62
- // // schema: [], // TODO(burdon): Get schema from client/sequence?
63
- // // onDone: async (objects) => {
64
- // // await queue.append(objects);
65
- // // },
66
- // // }),
67
- // ]);
68
- // }, [sequence]);
69
-
70
- const formatAndSave = useCallback((): SequenceDefinition | undefined => {
71
- if (!sequence) {
72
- return;
73
- }
74
-
75
- const text = editorRef.current?.state.doc.toString();
76
- if (!text) {
77
- return;
78
- }
79
-
80
- const definition = parseSequence(text);
81
- if (!definition) {
82
- return;
83
- }
84
-
85
- setDefinition(definition);
86
- const formatted = JSON.stringify(definition, null, 2);
87
- editorRef.current?.dispatch({
88
- changes: { from: 0, to: text.length, insert: formatted },
89
- });
90
-
91
- sequence.steps.length = 0;
92
- for (const step of definition.steps) {
93
- sequence.steps.push({
94
- id: Key.ObjectId.random(),
95
- instructions: step.instructions,
96
- tools: step.tools,
97
- });
98
- }
99
-
100
- return sequence;
101
- }, [sequence]);
102
-
103
- // TODO(burdon): Save raw sequence separately from parsed sequence? (like Script).
104
- const handleSave = useCallback(() => formatAndSave(), [formatAndSave]);
105
-
106
- const handleRun = useCallback(async () => {
107
- // if (!aiClient?.value || !toolRegistry) {
108
- // return;
109
- // }
110
- // formatAndSave();
111
- // // Get input from selection.
112
- // const input = Array.from(getSelectionSet(selectionManager)).map((id) => DXN.fromLocalObjectId(id));
113
- // if (!input.length) {
114
- // return;
115
- // }
116
- // const machine = new SequenceMachine(toolRegistry, sequence).setLogger(new QueueLogger(sequence));
117
- // await machine.runToCompletion({ aiClient: aiClient.value, input });
118
- }, [sequence, formatAndSave, selectionManager]);
119
-
120
- return (
121
- <StackItem.Content toolbar>
122
- <Toolbar.Root>
123
- <Toolbar.Button onClick={handleSave}>{t('button save')}</Toolbar.Button>
124
- <Toolbar.Button onClick={handleRun}>{t('button run')}</Toolbar.Button>
125
- </Toolbar.Root>
126
- {definition && <SequenceEditor ref={editorRef} sequence={definition} />}
127
- </StackItem.Content>
128
- );
129
- };
130
-
131
- export default SequenceContainer;
@@ -1,33 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { type Meta, type StoryObj } from '@storybook/react-vite';
8
-
9
- import { withLayout, withTheme } from '@dxos/storybook-utils';
10
-
11
- import { RESEARCH_SEQUENCE_DEFINITION } from '../../testing';
12
- import { translations } from '../../translations';
13
-
14
- import { SequenceEditor } from './SequenceEditor';
15
-
16
- const meta = {
17
- title: 'plugins/plugin-assistant/SequenceEditor',
18
- component: SequenceEditor,
19
- decorators: [withTheme, withLayout({ fullscreen: true, classNames: 'mli-auto max-is-[50rem] justify-center' })],
20
- parameters: {
21
- translations,
22
- },
23
- } satisfies Meta<typeof SequenceEditor>;
24
-
25
- export default meta;
26
-
27
- type Story = StoryObj<typeof SequenceEditor>;
28
-
29
- export const Default: Story = {
30
- args: {
31
- sequence: RESEARCH_SEQUENCE_DEFINITION,
32
- },
33
- };
@@ -1,50 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React, { forwardRef, useImperativeHandle } from 'react';
6
-
7
- import { SequenceDefinition } from '@dxos/conductor';
8
- import { Type } from '@dxos/echo';
9
- import { type ThemedClassName, useThemeContext } from '@dxos/react-ui';
10
- import {
11
- type EditorView,
12
- createBasicExtensions,
13
- createJsonExtensions,
14
- createThemeExtensions,
15
- useTextEditor,
16
- } from '@dxos/react-ui-editor';
17
- import { mx } from '@dxos/react-ui-theme';
18
-
19
- export type SequenceEditorProps = ThemedClassName<{
20
- sequence: SequenceDefinition;
21
- }>;
22
-
23
- // TODO(burdon): Factor out JsonEditor.
24
- export const SequenceEditor = forwardRef<EditorView | undefined, SequenceEditorProps>(
25
- ({ classNames, sequence }, forwardedRef) => {
26
- const { themeMode } = useThemeContext();
27
- const { parentRef, view } = useTextEditor({
28
- initialValue: JSON.stringify(sequence, null, 2),
29
- extensions: [
30
- createBasicExtensions({
31
- lineNumbers: true,
32
- lineWrapping: false,
33
- monospace: true,
34
- scrollPastEnd: true,
35
- }),
36
- createThemeExtensions({
37
- themeMode,
38
- syntaxHighlighting: true,
39
- }),
40
- createJsonExtensions({
41
- schema: Type.toJsonSchema(SequenceDefinition, { strict: true }),
42
- }),
43
- ],
44
- });
45
-
46
- useImperativeHandle(forwardedRef, () => view, [view]);
47
-
48
- return <div ref={parentRef} className={mx('overflow-hidden', classNames)} />;
49
- },
50
- );
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './SequenceEditor';
@@ -1,165 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import {
6
- type CompletionContext,
7
- type CompletionResult,
8
- autocompletion,
9
- completionKeymap,
10
- } from '@codemirror/autocomplete';
11
- import { type Extension } from '@codemirror/state';
12
- import { Decoration, type DecorationSet, type EditorView, ViewPlugin, type ViewUpdate, keymap } from '@codemirror/view';
13
-
14
- export type HandlebarsOptions = {};
15
-
16
- /**
17
- * Simple Handlebars plugin for CodeMirror.
18
- * Supports:
19
- * - Comments: {{! comment }}
20
- * - Commands: {{#command}} {{/command}}
21
- * - Variables: {{var}}
22
- * - Commands with variables: {{#each items}} {{/each}}
23
- */
24
- export const handlebars = (_: HandlebarsOptions = {}): Extension => {
25
- return [
26
- handlebarsHighlightPlugin,
27
- autocompletion({
28
- activateOnTyping: true,
29
- aboveCursor: true,
30
- closeOnBlur: true,
31
- override: [handlebarsCompletions],
32
- }),
33
- keymap.of(completionKeymap),
34
- ];
35
- };
36
-
37
- const regex = {
38
- comment: /\{\{!\s*[^}]*\}\}/g,
39
- brackets: /\{\{[^}]*\}\}/g,
40
- command: /\{\{[#/]([^}]+)\}\}/g,
41
- var: /\{\{(?!\s*!)(\w[^}]*)\}\}/g,
42
- };
43
-
44
- /**
45
- * ViewPlugin that decorates Handlebars syntax.
46
- */
47
- const handlebarsHighlightPlugin = ViewPlugin.fromClass(
48
- class {
49
- decorations: DecorationSet;
50
-
51
- constructor(view: EditorView) {
52
- this.decorations = this.buildDecorations(view);
53
- }
54
-
55
- buildDecorations(view: EditorView) {
56
- const widgets: any[] = [];
57
-
58
- for (const { from, to } of view.visibleRanges) {
59
- const text = view.state.doc.sliceString(from, to);
60
-
61
- // Match comments: {{! comment }}
62
- {
63
- let match;
64
- while ((match = regex.comment.exec(text)) !== null) {
65
- const start = from + match.index;
66
- const end = start + match[0].length;
67
- widgets.push(Decoration.mark({ class: 'text-subdued' }).range(start, end));
68
- }
69
- }
70
-
71
- // Match brackets: {{ and }}
72
- {
73
- let match;
74
- while ((match = regex.brackets.exec(text)) !== null) {
75
- const start = from + match.index;
76
- const end = start + match[0].length;
77
- widgets.push(Decoration.mark({ class: 'text-subdued' }).range(start, end));
78
- }
79
- }
80
-
81
- // Match commands: {{#command}} and {{/command}}
82
- {
83
- let match;
84
- while ((match = regex.command.exec(text)) !== null) {
85
- const start = from + match.index + 2;
86
- let end = start + match[0].length - 4;
87
- const text = view.state.doc.sliceString(start, end);
88
- const parts = text.split(/\s+/);
89
- if (parts.length > 1) {
90
- const idx = start + parts[0].length;
91
- widgets.push(Decoration.mark({ class: 'text-greenText' }).range(idx, end));
92
- end = idx;
93
- }
94
- widgets.push(Decoration.mark({ class: 'text-blueText' }).range(start, end));
95
- }
96
- }
97
-
98
- // Match variables: {{var}}
99
- {
100
- let match;
101
- while ((match = regex.var.exec(text)) !== null) {
102
- const start = from + match.index + 2;
103
- const end = start + match[0].length - 4;
104
- widgets.push(Decoration.mark({ class: 'text-greenText' }).range(start, end));
105
- }
106
- }
107
- }
108
-
109
- // Sort decorations by position to avoid "Ranges must be added sorted" error.
110
- widgets.sort((a, b) => a.from - b.from || a.startSide - b.startSide);
111
- return Decoration.set(widgets);
112
- }
113
-
114
- update(update: ViewUpdate) {
115
- if (update.docChanged || update.viewportChanged) {
116
- this.decorations = this.buildDecorations(update.view);
117
- }
118
- }
119
- },
120
- {
121
- decorations: (v) => v.decorations,
122
- },
123
- );
124
-
125
- // TODO(burdon): Pass in variables.
126
- const variables = ['this'];
127
- const commands = ['this', 'each', 'if', 'unless', 'with'];
128
-
129
- /**
130
- * Provides completions for Handlebars variables.
131
- */
132
- function handlebarsCompletions(context: CompletionContext): CompletionResult | null {
133
- const match = context.matchBefore(/\{\{[^}]*/);
134
- if (!match || match.from === match.to) {
135
- return null;
136
- }
137
-
138
- let type = 'variable';
139
- let text = match.text.slice(2);
140
- let from = match.from + 2;
141
- let matches = [];
142
- if (text.startsWith('#') || text.startsWith('/')) {
143
- const idx = text.lastIndexOf(' ');
144
- if (idx !== -1) {
145
- type = 'variable';
146
- matches = variables;
147
- text = text.slice(idx + 1);
148
- from += idx + 1;
149
- } else {
150
- type = 'command';
151
- text = text.slice(1);
152
- matches = commands;
153
- from += 1;
154
- }
155
- } else {
156
- type = 'variable';
157
- matches = variables;
158
- }
159
-
160
- const options = matches.filter((name) => name.startsWith(text)).map((name) => ({ type, label: name }));
161
- return {
162
- from,
163
- options,
164
- };
165
- }
@@ -1,21 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import React from 'react';
6
-
7
- import { fullyQualifiedId } from '@dxos/react-client/echo';
8
- import { type ThemedClassName } from '@dxos/react-ui';
9
- import { MenuProvider, ToolbarMenu } from '@dxos/react-ui-menu';
10
-
11
- import { type ChatToolbarActionsProps, useChatToolbarActions } from './useChatToolbarActions';
12
-
13
- export const Toolbar = ({ chat, companionTo, onReset, classNames }: ThemedClassName<ChatToolbarActionsProps>) => {
14
- const menu = useChatToolbarActions({ chat, companionTo, onReset });
15
-
16
- return (
17
- <MenuProvider {...menu} attendableId={companionTo ? fullyQualifiedId(companionTo) : fullyQualifiedId(chat)}>
18
- <ToolbarMenu classNames={classNames} />
19
- </MenuProvider>
20
- );
21
- };
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './Toolbar';
@@ -1,126 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Rx } from '@effect-rx/rx-react';
6
- import { Effect } from 'effect';
7
- import { useMemo } from 'react';
8
-
9
- import { createIntent, useIntentDispatcher } from '@dxos/app-framework';
10
- import { Filter, Obj, Query } from '@dxos/echo';
11
- import { invariant } from '@dxos/invariant';
12
- import { SpaceAction } from '@dxos/plugin-space/types';
13
- import { getSpace, useQuery } from '@dxos/react-client/echo';
14
- import { MenuBuilder, useMenuActions } from '@dxos/react-ui-menu';
15
-
16
- import { meta } from '../../meta';
17
- import { Assistant, AssistantAction } from '../../types';
18
-
19
- export type ChatToolbarActionsProps = {
20
- chat: Assistant.Chat;
21
- companionTo?: Obj.Any;
22
- onReset?: () => void;
23
- };
24
-
25
- export const useChatToolbarActions = ({ chat, companionTo, onReset }: ChatToolbarActionsProps) => {
26
- const { dispatch } = useIntentDispatcher();
27
- const space = getSpace(chat);
28
- const query = companionTo
29
- ? Query.select(Filter.ids(companionTo.id)).targetOf(Assistant.CompanionTo).source()
30
- : Query.select(Filter.nothing());
31
- // TODO(wittjosiah): Query in react vs query in rx?
32
- const chats = useQuery(space, query);
33
-
34
- return useMenuActions(
35
- useMemo(
36
- () =>
37
- Rx.make(() => {
38
- const builder = MenuBuilder.make()
39
- .root({
40
- label: ['chat toolbar title', { ns: meta.id }],
41
- })
42
- .action(
43
- 'new',
44
- {
45
- label: ['button new thread', { ns: meta.id }],
46
- icon: 'ph--plus--regular',
47
- type: 'new',
48
- },
49
- () =>
50
- Effect.gen(function* () {
51
- invariant(space);
52
- const { object } = yield* dispatch(createIntent(AssistantAction.CreateChat, { space }));
53
- yield* dispatch(createIntent(SpaceAction.AddObject, { object, target: space, hidden: true }));
54
- if (companionTo) {
55
- yield* dispatch(
56
- createIntent(SpaceAction.AddRelation, {
57
- space,
58
- schema: Assistant.CompanionTo,
59
- source: object,
60
- target: companionTo,
61
- }),
62
- );
63
-
64
- yield* dispatch(createIntent(AssistantAction.SetCurrentChat, { companionTo, chat: object }));
65
- }
66
- }).pipe(Effect.runPromise),
67
- )
68
- .action(
69
- 'branch',
70
- {
71
- label: ['button branch thread', { ns: meta.id }],
72
- icon: 'ph--git-branch--regular',
73
- type: 'branch',
74
- disabled: true,
75
- },
76
- () => {},
77
- );
78
-
79
- if (chats.length > 0) {
80
- builder.group(
81
- 'chats',
82
- {
83
- label: ['chat history label', { ns: meta.id }],
84
- icon: 'ph--clock-counter-clockwise--regular',
85
- selectCardinality: 'single',
86
- variant: 'dropdownMenu',
87
- },
88
- (builder) => {
89
- chats
90
- // TODO(wittjosiah): This should be the default sort order.
91
- .toSorted((a, b) => a.id.localeCompare(b.id))
92
- .forEach((chat) => {
93
- builder.action(
94
- chat.id,
95
- {
96
- label: Obj.getLabel(chat) ?? ['object name placeholder', { ns: Assistant.Chat.typename }],
97
- },
98
- () =>
99
- Effect.gen(function* () {
100
- invariant(companionTo);
101
- yield* dispatch(createIntent(AssistantAction.SetCurrentChat, { companionTo, chat }));
102
- }).pipe(Effect.runPromise),
103
- );
104
- });
105
- },
106
- );
107
- }
108
-
109
- if (onReset) {
110
- builder.action(
111
- 'reset',
112
- {
113
- label: ['button reset', { ns: meta.id }],
114
- icon: 'ph--trash--regular',
115
- type: 'reset',
116
- },
117
- onReset,
118
- );
119
- }
120
-
121
- return builder.build();
122
- }),
123
- [chats],
124
- ),
125
- );
126
- };