@dxos/plugin-assistant 0.8.4-main.5ea62a8 → 0.8.4-main.72ec0f3

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 (471) 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-YBJBIVUZ.mjs → ChatContainer-XCPBWYIR.mjs} +22 -20
  6. package/dist/lib/browser/ChatContainer-XCPBWYIR.mjs.map +7 -0
  7. package/dist/lib/browser/{ChatDialog-MTPJLEHM.mjs → ChatDialog-DT7KFCRL.mjs} +12 -11
  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-7AAWTWGA.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-CRZPIA5A.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-OYFQS7JM.mjs → chunk-IXIIS4QA.mjs} +59 -40
  23. package/dist/lib/browser/chunk-IXIIS4QA.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-IJAJRAR7.mjs → chunk-LRE4VEZV.mjs} +2 -4
  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 +122 -75
  33. package/dist/lib/browser/index.mjs.map +4 -4
  34. package/dist/lib/browser/{intent-resolver-BQO5SVGI.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-VNCD2H7C.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-D5IVKNYG.mjs → state-GG7Z3NB7.mjs} +9 -5
  44. package/dist/lib/browser/{state-D5IVKNYG.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-TUCITJJW.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-JLM7RDZQ.mjs → ChatDialog-QT6ZBX45.mjs} +12 -11
  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-PNAFQUYT.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-275J3XL2.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-CAQKGW3B.mjs → chunk-UXTUHH24.mjs} +59 -40
  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-YPXEA46Q.mjs → chunk-YWFWT57N.mjs} +2 -4
  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 +122 -75
  80. package/dist/lib/node-esm/index.mjs.map +4 -4
  81. package/dist/lib/node-esm/{intent-resolver-FIS3T5KP.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-4NLRKNBU.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-4VLKPLW3.mjs → state-FSUHFMDM.mjs} +9 -5
  91. package/dist/lib/node-esm/{state-4VLKPLW3.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 -11
  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/intent-resolver.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/toolkit.d.ts +1 -1
  110. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  111. package/dist/types/src/components/BlueprintArticle.d.ts +7 -0
  112. package/dist/types/src/components/BlueprintArticle.d.ts.map +1 -0
  113. package/dist/types/src/components/Chat/Chat.d.ts +22 -11
  114. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  115. package/dist/types/src/components/Chat/events.d.ts +4 -0
  116. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  117. package/dist/types/src/components/ChatCompanion.d.ts +2 -2
  118. package/dist/types/src/components/ChatCompanion.d.ts.map +1 -1
  119. package/dist/types/src/components/ChatContainer.d.ts +7 -4
  120. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  121. package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
  122. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
  123. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  124. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  125. package/dist/types/src/components/ChatThread/ChatThread.d.ts +10 -8
  126. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  127. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +135 -77
  128. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
  130. package/dist/types/src/components/ChatThread/reducers.d.ts +5 -5
  131. package/dist/types/src/components/ChatThread/reducers.d.ts.map +1 -1
  132. package/dist/types/src/components/ChatThread/registry.d.ts +11 -0
  133. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -0
  134. package/dist/types/src/components/ChatThread/sync.d.ts +42 -0
  135. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -0
  136. package/dist/types/src/components/ChatThread/sync.test.d.ts +2 -0
  137. package/dist/types/src/components/ChatThread/sync.test.d.ts.map +1 -0
  138. package/dist/types/src/components/PromptArticle.d.ts +7 -0
  139. package/dist/types/src/components/PromptArticle.d.ts.map +1 -0
  140. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
  141. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  142. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +116 -62
  143. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  144. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +1 -1
  145. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  146. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +116 -62
  147. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  148. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  149. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  150. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  151. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  152. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  153. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +21 -0
  154. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -0
  155. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts +2 -0
  156. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts.map +1 -0
  157. package/dist/types/src/components/ToolBlock/index.d.ts +3 -0
  158. package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -0
  159. package/dist/types/src/components/Toolbox/Toolbox.d.ts +2 -2
  160. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  161. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +116 -62
  162. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  163. package/dist/types/src/components/index.d.ts +4 -9
  164. package/dist/types/src/components/index.d.ts.map +1 -1
  165. package/dist/types/src/functions/analysis.d.ts +1 -1
  166. package/dist/types/src/functions/analysis.d.ts.map +1 -1
  167. package/dist/types/src/functions/index.d.ts +2 -2
  168. package/dist/types/src/functions/index.d.ts.map +1 -1
  169. package/dist/types/src/functions/{list.d.ts → object-list.d.ts} +2 -2
  170. package/dist/types/src/functions/object-list.d.ts.map +1 -0
  171. package/dist/types/src/functions/{load.d.ts → object-load.d.ts} +2 -2
  172. package/dist/types/src/functions/object-load.d.ts.map +1 -0
  173. package/dist/types/src/hooks/index.d.ts +1 -3
  174. package/dist/types/src/hooks/index.d.ts.map +1 -1
  175. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +2 -1
  176. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  177. package/dist/types/src/hooks/useChatProcessor.d.ts +5 -3
  178. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  179. package/dist/types/src/hooks/useChatServices.d.ts +2 -2
  180. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  181. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  182. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  183. package/dist/types/src/hooks/useContextBinder.d.ts +2 -2
  184. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  185. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  186. package/dist/types/src/index.d.ts +2 -0
  187. package/dist/types/src/index.d.ts.map +1 -1
  188. package/dist/types/src/meta.d.ts +1 -2
  189. package/dist/types/src/meta.d.ts.map +1 -1
  190. package/dist/types/src/processor/index.d.ts +1 -0
  191. package/dist/types/src/processor/index.d.ts.map +1 -1
  192. package/dist/types/src/processor/presets.d.ts +1 -1
  193. package/dist/types/src/processor/presets.d.ts.map +1 -1
  194. package/dist/types/src/processor/processor.d.ts +17 -23
  195. package/dist/types/src/processor/processor.d.ts.map +1 -1
  196. package/dist/types/src/processor/update-name.d.ts +10 -0
  197. package/dist/types/src/processor/update-name.d.ts.map +1 -0
  198. package/dist/types/src/queue-logger.d.ts.map +1 -1
  199. package/dist/types/src/testing/index.d.ts +1 -2
  200. package/dist/types/src/testing/index.d.ts.map +1 -1
  201. package/dist/types/src/testing/test-generator.d.ts +7 -0
  202. package/dist/types/src/testing/test-generator.d.ts.map +1 -0
  203. package/dist/types/src/testing/test-services.d.ts +2 -2
  204. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  205. package/dist/types/src/translations.d.ts +241 -27
  206. package/dist/types/src/translations.d.ts.map +1 -1
  207. package/dist/types/src/types/Assistant.d.ts +15 -9
  208. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  209. package/dist/types/src/types/AssistantAction.d.ts +33 -8
  210. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  211. package/dist/types/src/types/service.d.ts +18 -12
  212. package/dist/types/src/types/service.d.ts.map +1 -1
  213. package/dist/types/tsconfig.tsbuildinfo +1 -1
  214. package/package.json +96 -111
  215. package/src/AssistantPlugin.tsx +154 -129
  216. package/src/capabilities/ai-service.ts +6 -7
  217. package/src/capabilities/app-graph-builder.ts +69 -21
  218. package/src/capabilities/blueprint-definition.ts +39 -15
  219. package/src/capabilities/capabilities.ts +2 -16
  220. package/src/capabilities/edge-model-resolver.ts +5 -7
  221. package/src/capabilities/intent-resolver.ts +69 -16
  222. package/src/capabilities/local-model-resolver.ts +7 -9
  223. package/src/capabilities/react-surface.tsx +16 -20
  224. package/src/capabilities/state.ts +2 -0
  225. package/src/capabilities/toolkit.ts +9 -155
  226. package/src/components/BlueprintArticle.tsx +29 -0
  227. package/src/components/Chat/Chat.tsx +177 -140
  228. package/src/components/Chat/events.ts +6 -0
  229. package/src/components/ChatCompanion.tsx +93 -49
  230. package/src/components/ChatContainer.tsx +27 -17
  231. package/src/components/ChatDialog.tsx +17 -10
  232. package/src/components/ChatProgress/ChatProgress.tsx +3 -4
  233. package/src/components/ChatPrompt/ChatActions.tsx +2 -4
  234. package/src/components/ChatPrompt/ChatOptions.tsx +40 -45
  235. package/src/components/ChatPrompt/ChatReferences.tsx +2 -2
  236. package/src/components/ChatThread/ChatThread.stories.tsx +90 -225
  237. package/src/components/ChatThread/ChatThread.tsx +59 -51
  238. package/src/components/ChatThread/Link.tsx +11 -8
  239. package/src/components/ChatThread/reducers.ts +6 -6
  240. package/src/components/ChatThread/registry.tsx +174 -0
  241. package/src/components/ChatThread/sync.test.ts +89 -0
  242. package/src/components/ChatThread/sync.ts +148 -0
  243. package/src/components/ChatThread/testing/thread.md +37 -0
  244. package/src/components/PromptArticle.tsx +51 -0
  245. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +15 -7
  246. package/src/components/TemplateEditor/TemplateEditor.tsx +20 -11
  247. package/src/components/TemplateEditor/TemplateForm.stories.tsx +4 -6
  248. package/src/components/TemplateEditor/TemplateForm.tsx +2 -2
  249. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +269 -0
  250. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  251. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  252. package/src/components/{ChatThread → ToolBlock}/ToolBlock.tsx +46 -50
  253. package/src/components/ToolBlock/ToolBlockWidget.tsx +5 -0
  254. package/src/components/ToolBlock/index.ts +6 -0
  255. package/src/components/Toolbox/Toolbox.stories.tsx +5 -8
  256. package/src/components/Toolbox/Toolbox.tsx +5 -5
  257. package/src/components/index.ts +2 -5
  258. package/src/functions/analysis.ts +5 -3
  259. package/src/functions/index.ts +2 -2
  260. package/src/functions/{list.ts → object-list.ts} +6 -4
  261. package/src/functions/{load.ts → object-load.ts} +9 -7
  262. package/src/hooks/index.ts +1 -3
  263. package/src/hooks/useBlueprintRegistry.ts +19 -4
  264. package/src/hooks/useChatProcessor.ts +23 -15
  265. package/src/hooks/useChatServices.ts +29 -42
  266. package/src/hooks/useChatToolbarActions.ts +122 -0
  267. package/src/hooks/useContextBinder.ts +19 -7
  268. package/src/hooks/useItemTypes.ts +1 -1
  269. package/src/hooks/useReferencesProvider.ts +2 -1
  270. package/src/index.ts +2 -0
  271. package/src/meta.ts +9 -6
  272. package/src/processor/index.ts +1 -0
  273. package/src/processor/presets.ts +2 -2
  274. package/src/processor/processor.test.ts +21 -27
  275. package/src/processor/processor.ts +47 -74
  276. package/src/processor/update-name.ts +56 -0
  277. package/src/queue-logger.ts +9 -13
  278. package/src/testing/index.ts +1 -2
  279. package/src/testing/test-generator.ts +261 -0
  280. package/src/testing/test-services.ts +2 -8
  281. package/src/translations.ts +26 -18
  282. package/src/types/Assistant.ts +10 -8
  283. package/src/types/AssistantAction.ts +23 -6
  284. package/src/types/service.ts +17 -9
  285. package/dist/lib/browser/BlueprintContainer-OWUSKPRK.mjs +0 -29
  286. package/dist/lib/browser/BlueprintContainer-OWUSKPRK.mjs.map +0 -7
  287. package/dist/lib/browser/ChatCompanion-FRCVSLPP.mjs +0 -126
  288. package/dist/lib/browser/ChatCompanion-FRCVSLPP.mjs.map +0 -7
  289. package/dist/lib/browser/ChatContainer-YBJBIVUZ.mjs.map +0 -7
  290. package/dist/lib/browser/ChatDialog-MTPJLEHM.mjs.map +0 -7
  291. package/dist/lib/browser/SequenceContainer-TF5QNXYM.mjs +0 -150
  292. package/dist/lib/browser/SequenceContainer-TF5QNXYM.mjs.map +0 -7
  293. package/dist/lib/browser/ai-service-NRZPTUHO.mjs +0 -22
  294. package/dist/lib/browser/ai-service-NRZPTUHO.mjs.map +0 -7
  295. package/dist/lib/browser/app-graph-builder-7AAWTWGA.mjs.map +0 -7
  296. package/dist/lib/browser/chunk-6QMISAU6.mjs +0 -167
  297. package/dist/lib/browser/chunk-6QMISAU6.mjs.map +0 -7
  298. package/dist/lib/browser/chunk-CFXXQM25.mjs +0 -182
  299. package/dist/lib/browser/chunk-CFXXQM25.mjs.map +0 -7
  300. package/dist/lib/browser/chunk-IJAJRAR7.mjs.map +0 -7
  301. package/dist/lib/browser/chunk-O4LUJEDV.mjs +0 -20
  302. package/dist/lib/browser/chunk-O4LUJEDV.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-OYFQS7JM.mjs.map +0 -7
  304. package/dist/lib/browser/chunk-SMIVXXAI.mjs.map +0 -7
  305. package/dist/lib/browser/chunk-V5H5CCZA.mjs +0 -218
  306. package/dist/lib/browser/chunk-V5H5CCZA.mjs.map +0 -7
  307. package/dist/lib/browser/chunk-XL557TXF.mjs +0 -2332
  308. package/dist/lib/browser/chunk-XL557TXF.mjs.map +0 -7
  309. package/dist/lib/browser/edge-model-resolver-E5M3CC46.mjs +0 -22
  310. package/dist/lib/browser/edge-model-resolver-E5M3CC46.mjs.map +0 -7
  311. package/dist/lib/browser/intent-resolver-BQO5SVGI.mjs.map +0 -7
  312. package/dist/lib/browser/local-model-resolver-VZ5WZQIC.mjs +0 -21
  313. package/dist/lib/browser/local-model-resolver-VZ5WZQIC.mjs.map +0 -7
  314. package/dist/lib/browser/react-surface-VNCD2H7C.mjs.map +0 -7
  315. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs +0 -191
  316. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs.map +0 -7
  317. package/dist/lib/node-esm/BlueprintContainer-UFVWCRN6.mjs +0 -30
  318. package/dist/lib/node-esm/BlueprintContainer-UFVWCRN6.mjs.map +0 -7
  319. package/dist/lib/node-esm/ChatCompanion-ZNRZEKH5.mjs +0 -127
  320. package/dist/lib/node-esm/ChatCompanion-ZNRZEKH5.mjs.map +0 -7
  321. package/dist/lib/node-esm/ChatContainer-TUCITJJW.mjs.map +0 -7
  322. package/dist/lib/node-esm/ChatDialog-JLM7RDZQ.mjs.map +0 -7
  323. package/dist/lib/node-esm/SequenceContainer-UXOVZPZO.mjs +0 -151
  324. package/dist/lib/node-esm/SequenceContainer-UXOVZPZO.mjs.map +0 -7
  325. package/dist/lib/node-esm/ai-service-UDEPIPTO.mjs +0 -23
  326. package/dist/lib/node-esm/ai-service-UDEPIPTO.mjs.map +0 -7
  327. package/dist/lib/node-esm/app-graph-builder-PNAFQUYT.mjs.map +0 -7
  328. package/dist/lib/node-esm/chunk-2X6VEO32.mjs +0 -2333
  329. package/dist/lib/node-esm/chunk-2X6VEO32.mjs.map +0 -7
  330. package/dist/lib/node-esm/chunk-7YOGZI66.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-CAQKGW3B.mjs.map +0 -7
  332. package/dist/lib/node-esm/chunk-FNZJJL7G.mjs +0 -183
  333. package/dist/lib/node-esm/chunk-FNZJJL7G.mjs.map +0 -7
  334. package/dist/lib/node-esm/chunk-RLBN4RNR.mjs +0 -168
  335. package/dist/lib/node-esm/chunk-RLBN4RNR.mjs.map +0 -7
  336. package/dist/lib/node-esm/chunk-UWUUZQWJ.mjs +0 -219
  337. package/dist/lib/node-esm/chunk-UWUUZQWJ.mjs.map +0 -7
  338. package/dist/lib/node-esm/chunk-VFY2JG62.mjs +0 -22
  339. package/dist/lib/node-esm/chunk-VFY2JG62.mjs.map +0 -7
  340. package/dist/lib/node-esm/chunk-YPXEA46Q.mjs.map +0 -7
  341. package/dist/lib/node-esm/edge-model-resolver-SZHDLXCT.mjs +0 -23
  342. package/dist/lib/node-esm/edge-model-resolver-SZHDLXCT.mjs.map +0 -7
  343. package/dist/lib/node-esm/intent-resolver-FIS3T5KP.mjs.map +0 -7
  344. package/dist/lib/node-esm/local-model-resolver-2KCBKMYA.mjs +0 -22
  345. package/dist/lib/node-esm/local-model-resolver-2KCBKMYA.mjs.map +0 -7
  346. package/dist/lib/node-esm/react-surface-4NLRKNBU.mjs.map +0 -7
  347. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs +0 -192
  348. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs.map +0 -7
  349. package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
  350. package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
  351. package/dist/types/src/components/ChatThread/ChatMessage.d.ts +0 -33
  352. package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +0 -1
  353. package/dist/types/src/components/ChatThread/ToolBlock.d.ts +0 -19
  354. package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +0 -1
  355. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  356. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  357. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  358. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  359. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  360. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  361. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -263
  362. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  363. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  364. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  365. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +0 -1
  366. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -4
  367. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  368. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  369. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  370. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts +0 -11
  371. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +0 -1
  372. package/dist/types/src/execution-graph/execution-graph.d.ts +0 -21
  373. package/dist/types/src/execution-graph/execution-graph.d.ts.map +0 -1
  374. package/dist/types/src/execution-graph/index.d.ts +0 -2
  375. package/dist/types/src/execution-graph/index.d.ts.map +0 -1
  376. package/dist/types/src/functions/list.d.ts.map +0 -1
  377. package/dist/types/src/functions/load.d.ts.map +0 -1
  378. package/dist/types/src/hooks/useExecutionGraph.d.ts +0 -7
  379. package/dist/types/src/hooks/useExecutionGraph.d.ts.map +0 -1
  380. package/dist/types/src/hooks/useMatcherExtension.d.ts +0 -3
  381. package/dist/types/src/hooks/useMatcherExtension.d.ts.map +0 -1
  382. package/dist/types/src/hooks/useResolveRef.d.ts +0 -4
  383. package/dist/types/src/hooks/useResolveRef.d.ts.map +0 -1
  384. package/dist/types/src/parser/filter-generator.d.ts +0 -4
  385. package/dist/types/src/parser/filter-generator.d.ts.map +0 -1
  386. package/dist/types/src/parser/filter-generator.test.d.ts +0 -2
  387. package/dist/types/src/parser/filter-generator.test.d.ts.map +0 -1
  388. package/dist/types/src/parser/index.d.ts +0 -4
  389. package/dist/types/src/parser/index.d.ts.map +0 -1
  390. package/dist/types/src/parser/query-parser.d.ts +0 -15
  391. package/dist/types/src/parser/query-parser.d.ts.map +0 -1
  392. package/dist/types/src/parser/query-parser.test.d.ts +0 -2
  393. package/dist/types/src/parser/query-parser.test.d.ts.map +0 -1
  394. package/dist/types/src/parser/types.d.ts +0 -24
  395. package/dist/types/src/parser/types.d.ts.map +0 -1
  396. package/dist/types/src/stories/Chat.stories.d.ts +0 -26
  397. package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
  398. package/dist/types/src/stories/components/BlueprintContainer.d.ts +0 -4
  399. package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +0 -1
  400. package/dist/types/src/stories/components/ChatContainer.d.ts +0 -4
  401. package/dist/types/src/stories/components/ChatContainer.d.ts.map +0 -1
  402. package/dist/types/src/stories/components/CommentsContainer.d.ts +0 -4
  403. package/dist/types/src/stories/components/CommentsContainer.d.ts.map +0 -1
  404. package/dist/types/src/stories/components/GraphContainer.d.ts +0 -6
  405. package/dist/types/src/stories/components/GraphContainer.d.ts.map +0 -1
  406. package/dist/types/src/stories/components/LoggingContainer.d.ts +0 -4
  407. package/dist/types/src/stories/components/LoggingContainer.d.ts.map +0 -1
  408. package/dist/types/src/stories/components/MessageContainer.d.ts +0 -4
  409. package/dist/types/src/stories/components/MessageContainer.d.ts.map +0 -1
  410. package/dist/types/src/stories/components/SurfaceContainer.d.ts +0 -8
  411. package/dist/types/src/stories/components/SurfaceContainer.d.ts.map +0 -1
  412. package/dist/types/src/stories/components/TasksContainer.d.ts +0 -4
  413. package/dist/types/src/stories/components/TasksContainer.d.ts.map +0 -1
  414. package/dist/types/src/stories/components/TokenManagerContainer.d.ts +0 -3
  415. package/dist/types/src/stories/components/TokenManagerContainer.d.ts.map +0 -1
  416. package/dist/types/src/stories/components/index.d.ts +0 -11
  417. package/dist/types/src/stories/components/index.d.ts.map +0 -1
  418. package/dist/types/src/stories/components/types.d.ts +0 -7
  419. package/dist/types/src/stories/components/types.d.ts.map +0 -1
  420. package/dist/types/src/stories/testing/data.d.ts +0 -5
  421. package/dist/types/src/stories/testing/data.d.ts.map +0 -1
  422. package/dist/types/src/stories/testing/index.d.ts +0 -3
  423. package/dist/types/src/stories/testing/index.d.ts.map +0 -1
  424. package/dist/types/src/stories/testing/testing.d.ts +0 -44
  425. package/dist/types/src/stories/testing/testing.d.ts.map +0 -1
  426. package/dist/types/src/testing/test-data.d.ts +0 -4
  427. package/dist/types/src/testing/test-data.d.ts.map +0 -1
  428. package/dist/types/src/testing/test-functions.d.ts +0 -6
  429. package/dist/types/src/testing/test-functions.d.ts.map +0 -1
  430. package/src/components/BlueprintContainer.tsx +0 -24
  431. package/src/components/ChatThread/ChatMessage.tsx +0 -334
  432. package/src/components/PromptSettings.tsx +0 -90
  433. package/src/components/SequenceContainer.tsx +0 -131
  434. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -33
  435. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  436. package/src/components/SequenceEditor/index.ts +0 -5
  437. package/src/components/TemplateEditor/handlebars-extension.ts +0 -165
  438. package/src/components/Toolbar/Toolbar.tsx +0 -20
  439. package/src/components/Toolbar/index.ts +0 -5
  440. package/src/components/Toolbar/useChatToolbarActions.ts +0 -125
  441. package/src/execution-graph/execution-graph.ts +0 -211
  442. package/src/execution-graph/index.ts +0 -5
  443. package/src/hooks/useExecutionGraph.ts +0 -20
  444. package/src/hooks/useMatcherExtension.ts +0 -45
  445. package/src/hooks/useResolveRef.ts +0 -33
  446. package/src/parser/filter-generator.test.ts +0 -32
  447. package/src/parser/filter-generator.ts +0 -76
  448. package/src/parser/index.ts +0 -7
  449. package/src/parser/query-parser.test.ts +0 -139
  450. package/src/parser/query-parser.ts +0 -199
  451. package/src/parser/types.ts +0 -36
  452. package/src/stories/Chat.stories.tsx +0 -469
  453. package/src/stories/components/BlueprintContainer.tsx +0 -32
  454. package/src/stories/components/ChatContainer.tsx +0 -57
  455. package/src/stories/components/CommentsContainer.tsx +0 -25
  456. package/src/stories/components/GraphContainer.tsx +0 -118
  457. package/src/stories/components/LoggingContainer.tsx +0 -21
  458. package/src/stories/components/MessageContainer.tsx +0 -27
  459. package/src/stories/components/SurfaceContainer.tsx +0 -52
  460. package/src/stories/components/TasksContainer.tsx +0 -49
  461. package/src/stories/components/TokenManagerContainer.tsx +0 -14
  462. package/src/stories/components/index.ts +0 -15
  463. package/src/stories/components/types.ts +0 -11
  464. package/src/stories/testing/data.ts +0 -142
  465. package/src/stories/testing/index.ts +0 -6
  466. package/src/stories/testing/testing.tsx +0 -254
  467. package/src/testing/test-data.ts +0 -109
  468. package/src/testing/test-functions.ts +0 -16
  469. /package/dist/lib/browser/{blueprint-definition-CRZPIA5A.mjs.map → blueprint-definition-5FT5JGPY.mjs.map} +0 -0
  470. /package/dist/lib/node-esm/{blueprint-definition-275J3XL2.mjs.map → blueprint-definition-XW6QQVLV.mjs.map} +0 -0
  471. /package/dist/types/src/components/TemplateEditor/{handlebars-extension.d.ts → extensions/handlebars-extension.d.ts} +0 -0
@@ -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.buildDeco(view);
53
- }
54
-
55
- buildDeco(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.buildDeco(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,20 +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 { MenuProvider, ToolbarMenu } from '@dxos/react-ui-menu';
9
-
10
- import { type ChatToolbarActionsProps, useChatToolbarActions } from './useChatToolbarActions';
11
-
12
- export const Toolbar = ({ chat, companionTo, onReset }: ChatToolbarActionsProps) => {
13
- const menu = useChatToolbarActions({ chat, companionTo, onReset });
14
-
15
- return (
16
- <MenuProvider {...menu} attendableId={companionTo ? fullyQualifiedId(companionTo) : fullyQualifiedId(chat)}>
17
- <ToolbarMenu />
18
- </MenuProvider>
19
- );
20
- };
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * from './Toolbar';
@@ -1,125 +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
- yield* dispatch(createIntent(AssistantAction.SetCurrentChat, { companionTo, chat: object }));
64
- }
65
- }).pipe(Effect.runPromise),
66
- )
67
- .action(
68
- 'branch',
69
- {
70
- label: ['button branch thread', { ns: meta.id }],
71
- icon: 'ph--git-branch--regular',
72
- type: 'branch',
73
- disabled: true,
74
- },
75
- () => {},
76
- );
77
-
78
- if (chats.length > 0) {
79
- builder.group(
80
- 'chats',
81
- {
82
- label: ['chat history label', { ns: meta.id }],
83
- icon: 'ph--clock-counter-clockwise--regular',
84
- selectCardinality: 'single',
85
- variant: 'dropdownMenu',
86
- },
87
- (builder) => {
88
- chats
89
- // TODO(wittjosiah): This should be the default sort order.
90
- .toSorted((a, b) => a.id.localeCompare(b.id))
91
- .forEach((chat) => {
92
- builder.action(
93
- chat.id,
94
- {
95
- label: Obj.getLabel(chat) ?? ['object name placeholder', { ns: Assistant.Chat.typename }],
96
- },
97
- () =>
98
- Effect.gen(function* () {
99
- invariant(companionTo);
100
- yield* dispatch(createIntent(AssistantAction.SetCurrentChat, { companionTo, chat }));
101
- }).pipe(Effect.runPromise),
102
- );
103
- });
104
- },
105
- );
106
- }
107
-
108
- if (onReset) {
109
- builder.action(
110
- 'reset',
111
- {
112
- label: ['button reset', { ns: meta.id }],
113
- icon: 'ph--trash--regular',
114
- type: 'reset',
115
- },
116
- onReset,
117
- );
118
- }
119
-
120
- return builder.build();
121
- }),
122
- [chats],
123
- ),
124
- );
125
- };