@dxos/plugin-assistant 0.8.4-main.406dc2a → 0.8.4-main.548089c

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 (318) hide show
  1. package/dist/lib/browser/BlueprintArticle-UGPRZRBG.mjs +36 -0
  2. package/dist/lib/browser/BlueprintArticle-UGPRZRBG.mjs.map +7 -0
  3. package/dist/lib/browser/{ChatCompanion-BDZ55ZRF.mjs → ChatCompanion-BZGANK56.mjs} +58 -50
  4. package/dist/lib/browser/ChatCompanion-BZGANK56.mjs.map +7 -0
  5. package/dist/lib/browser/{ChatContainer-RYGNN73X.mjs → ChatContainer-OG6Y3NHI.mjs} +22 -18
  6. package/dist/lib/browser/ChatContainer-OG6Y3NHI.mjs.map +7 -0
  7. package/dist/lib/browser/{ChatDialog-MVHH2U66.mjs → ChatDialog-NKNUCC3R.mjs} +8 -4
  8. package/dist/lib/browser/ChatDialog-NKNUCC3R.mjs.map +7 -0
  9. package/dist/lib/browser/PromptArticle-QNJAXD5Y.mjs +89 -0
  10. package/dist/lib/browser/PromptArticle-QNJAXD5Y.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-builder-2U7SLCRX.mjs → app-graph-builder-CJ5ZUG5I.mjs} +62 -17
  12. package/dist/lib/browser/app-graph-builder-CJ5ZUG5I.mjs.map +7 -0
  13. package/dist/lib/browser/{blueprint-definition-NSJARW5U.mjs → blueprint-definition-5FT5JGPY.mjs} +4 -4
  14. package/dist/lib/browser/chunk-AO6XHMQ7.mjs +262 -0
  15. package/dist/lib/browser/chunk-AO6XHMQ7.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-FP56WB24.mjs → chunk-BNTPFZ7O.mjs} +30 -13
  17. package/dist/lib/browser/chunk-BNTPFZ7O.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-FJQ4ZRYJ.mjs +335 -0
  19. package/dist/lib/browser/chunk-FJQ4ZRYJ.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-2CE2KPKZ.mjs → chunk-IXIIS4QA.mjs} +37 -36
  21. package/dist/lib/browser/chunk-IXIIS4QA.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-5EGXHCAZ.mjs → chunk-LRE4VEZV.mjs} +2 -2
  23. package/dist/lib/browser/chunk-LRE4VEZV.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-WBG5PTSX.mjs +23 -0
  25. package/dist/lib/browser/chunk-WBG5PTSX.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-WRJGOT5P.mjs → chunk-Y4C2CMME.mjs} +772 -620
  27. package/dist/lib/browser/chunk-Y4C2CMME.mjs.map +7 -0
  28. package/dist/lib/browser/index.mjs +78 -62
  29. package/dist/lib/browser/index.mjs.map +3 -3
  30. package/dist/lib/browser/{intent-resolver-3GOJMBXJ.mjs → intent-resolver-42A4SLIQ.mjs} +49 -20
  31. package/dist/lib/browser/intent-resolver-42A4SLIQ.mjs.map +7 -0
  32. package/dist/lib/browser/{local-model-resolver-GO6ZEMLL.mjs → local-model-resolver-34MVHRKD.mjs} +2 -2
  33. package/dist/lib/browser/{local-model-resolver-GO6ZEMLL.mjs.map → local-model-resolver-34MVHRKD.mjs.map} +2 -2
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-surface-FTKCE6GG.mjs → react-surface-TULJF2Y3.mjs} +22 -31
  36. package/dist/lib/browser/react-surface-TULJF2Y3.mjs.map +7 -0
  37. package/dist/lib/browser/{settings-HBF32KV6.mjs → settings-NYJGNQ5I.mjs} +3 -3
  38. package/dist/lib/browser/{state-LXTS54DI.mjs → state-GG7Z3NB7.mjs} +7 -3
  39. package/dist/lib/browser/{state-LXTS54DI.mjs.map → state-GG7Z3NB7.mjs.map} +3 -3
  40. package/dist/lib/browser/toolkit-VYDAWNE4.mjs +17 -0
  41. package/dist/lib/browser/toolkit-VYDAWNE4.mjs.map +7 -0
  42. package/dist/lib/browser/types/index.mjs +2 -2
  43. package/dist/lib/node-esm/BlueprintArticle-RPZ2363K.mjs +37 -0
  44. package/dist/lib/node-esm/BlueprintArticle-RPZ2363K.mjs.map +7 -0
  45. package/dist/lib/node-esm/{ChatCompanion-XFNXVZIP.mjs → ChatCompanion-LKWZTSCI.mjs} +58 -50
  46. package/dist/lib/node-esm/ChatCompanion-LKWZTSCI.mjs.map +7 -0
  47. package/dist/lib/node-esm/{ChatContainer-UTJGCQXF.mjs → ChatContainer-HGAAKVB3.mjs} +22 -18
  48. package/dist/lib/node-esm/ChatContainer-HGAAKVB3.mjs.map +7 -0
  49. package/dist/lib/node-esm/{ChatDialog-QEYZ4IOV.mjs → ChatDialog-QA545GGB.mjs} +8 -4
  50. package/dist/lib/node-esm/ChatDialog-QA545GGB.mjs.map +7 -0
  51. package/dist/lib/node-esm/PromptArticle-JW46XL4M.mjs +90 -0
  52. package/dist/lib/node-esm/PromptArticle-JW46XL4M.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-builder-OKNLR7H2.mjs → app-graph-builder-XPQLG755.mjs} +62 -17
  54. package/dist/lib/node-esm/app-graph-builder-XPQLG755.mjs.map +7 -0
  55. package/dist/lib/node-esm/{blueprint-definition-WD2IVMAI.mjs → blueprint-definition-XW6QQVLV.mjs} +4 -4
  56. package/dist/lib/node-esm/chunk-3YVWS6OI.mjs +264 -0
  57. package/dist/lib/node-esm/chunk-3YVWS6OI.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-TNR46C3L.mjs → chunk-AB74FOA2.mjs} +30 -13
  59. package/dist/lib/node-esm/chunk-AB74FOA2.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-KJGD4EBJ.mjs +336 -0
  61. package/dist/lib/node-esm/chunk-KJGD4EBJ.mjs.map +7 -0
  62. package/dist/lib/node-esm/{chunk-U2NYUS2N.mjs → chunk-UXTUHH24.mjs} +37 -36
  63. package/dist/lib/node-esm/chunk-UXTUHH24.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-UFKLCEAE.mjs → chunk-VI6S3Q5H.mjs} +772 -620
  65. package/dist/lib/node-esm/chunk-VI6S3Q5H.mjs.map +7 -0
  66. package/dist/lib/node-esm/{chunk-73ABYRYX.mjs → chunk-WE6KTH72.mjs} +7 -2
  67. package/dist/lib/node-esm/chunk-WE6KTH72.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-XQGWSZ4T.mjs → chunk-YWFWT57N.mjs} +2 -2
  69. package/dist/lib/node-esm/chunk-YWFWT57N.mjs.map +7 -0
  70. package/dist/lib/node-esm/index.mjs +78 -62
  71. package/dist/lib/node-esm/index.mjs.map +3 -3
  72. package/dist/lib/node-esm/{intent-resolver-6XLVTRDJ.mjs → intent-resolver-Y6I3IDSI.mjs} +49 -20
  73. package/dist/lib/node-esm/intent-resolver-Y6I3IDSI.mjs.map +7 -0
  74. package/dist/lib/node-esm/{local-model-resolver-WOQ2D2R2.mjs → local-model-resolver-TP2NTSAX.mjs} +2 -2
  75. package/dist/lib/node-esm/{local-model-resolver-WOQ2D2R2.mjs.map → local-model-resolver-TP2NTSAX.mjs.map} +2 -2
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/{react-surface-K7ZXQLAP.mjs → react-surface-C4WY3WRR.mjs} +22 -31
  78. package/dist/lib/node-esm/react-surface-C4WY3WRR.mjs.map +7 -0
  79. package/dist/lib/node-esm/{settings-CWP6MTWP.mjs → settings-RRHYI5KO.mjs} +3 -3
  80. package/dist/lib/node-esm/{state-BO6GUFLB.mjs → state-FSUHFMDM.mjs} +7 -3
  81. package/dist/lib/node-esm/{state-BO6GUFLB.mjs.map → state-FSUHFMDM.mjs.map} +3 -3
  82. package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs +18 -0
  83. package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs.map +7 -0
  84. package/dist/lib/node-esm/types/index.mjs +2 -2
  85. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/blueprint-definition.d.ts +1 -1
  88. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/capabilities.d.ts +2 -3
  90. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/toolkit.d.ts +1 -1
  95. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  96. package/dist/types/src/components/BlueprintArticle.d.ts +7 -0
  97. package/dist/types/src/components/BlueprintArticle.d.ts.map +1 -0
  98. package/dist/types/src/components/Chat/Chat.d.ts +18 -8
  99. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  100. package/dist/types/src/components/Chat/events.d.ts +4 -0
  101. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  102. package/dist/types/src/components/ChatCompanion.d.ts +2 -2
  103. package/dist/types/src/components/ChatCompanion.d.ts.map +1 -1
  104. package/dist/types/src/components/ChatContainer.d.ts +7 -4
  105. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  106. package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
  107. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  108. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  109. package/dist/types/src/components/ChatThread/ChatThread.d.ts +6 -9
  110. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  111. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +123 -70
  112. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  113. package/dist/types/src/components/ChatThread/reducers.d.ts +5 -5
  114. package/dist/types/src/components/ChatThread/reducers.d.ts.map +1 -1
  115. package/dist/types/src/components/ChatThread/sync.d.ts +12 -6
  116. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  117. package/dist/types/src/components/PromptArticle.d.ts +7 -0
  118. package/dist/types/src/components/PromptArticle.d.ts.map +1 -0
  119. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
  120. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  121. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +111 -61
  122. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  123. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +111 -61
  124. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  126. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  127. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  128. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  129. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  130. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +9 -7
  131. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  132. package/dist/types/src/components/Toolbox/Toolbox.d.ts +2 -2
  133. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  134. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +111 -60
  135. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  136. package/dist/types/src/components/index.d.ts +4 -9
  137. package/dist/types/src/components/index.d.ts.map +1 -1
  138. package/dist/types/src/functions/index.d.ts +2 -2
  139. package/dist/types/src/functions/index.d.ts.map +1 -1
  140. package/dist/types/src/functions/{list.d.ts → object-list.d.ts} +1 -1
  141. package/dist/types/src/functions/object-list.d.ts.map +1 -0
  142. package/dist/types/src/functions/{load.d.ts → object-load.d.ts} +1 -1
  143. package/dist/types/src/functions/object-load.d.ts.map +1 -0
  144. package/dist/types/src/hooks/index.d.ts +1 -0
  145. package/dist/types/src/hooks/index.d.ts.map +1 -1
  146. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  147. package/dist/types/src/hooks/useChatProcessor.d.ts +3 -1
  148. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  149. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  150. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  151. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  152. package/dist/types/src/hooks/useContextBinder.d.ts +2 -2
  153. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  154. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  155. package/dist/types/src/meta.d.ts.map +1 -1
  156. package/dist/types/src/processor/index.d.ts +1 -0
  157. package/dist/types/src/processor/index.d.ts.map +1 -1
  158. package/dist/types/src/processor/processor.d.ts +6 -6
  159. package/dist/types/src/processor/processor.d.ts.map +1 -1
  160. package/dist/types/src/processor/update-name.d.ts +10 -0
  161. package/dist/types/src/processor/update-name.d.ts.map +1 -0
  162. package/dist/types/src/queue-logger.d.ts.map +1 -1
  163. package/dist/types/src/testing/test-generator.d.ts +2 -2
  164. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  165. package/dist/types/src/translations.d.ts +239 -26
  166. package/dist/types/src/translations.d.ts.map +1 -1
  167. package/dist/types/src/types/Assistant.d.ts +0 -3
  168. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  169. package/dist/types/src/types/AssistantAction.d.ts +29 -4
  170. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  171. package/dist/types/src/types/service.d.ts +9 -6
  172. package/dist/types/src/types/service.d.ts.map +1 -1
  173. package/dist/types/tsconfig.tsbuildinfo +1 -1
  174. package/package.json +78 -73
  175. package/src/AssistantPlugin.tsx +20 -2
  176. package/src/capabilities/app-graph-builder.ts +62 -15
  177. package/src/capabilities/blueprint-definition.ts +38 -36
  178. package/src/capabilities/capabilities.ts +2 -3
  179. package/src/capabilities/intent-resolver.ts +66 -15
  180. package/src/capabilities/local-model-resolver.ts +1 -1
  181. package/src/capabilities/react-surface.tsx +16 -20
  182. package/src/capabilities/state.ts +2 -0
  183. package/src/capabilities/toolkit.ts +9 -160
  184. package/src/components/BlueprintArticle.tsx +29 -0
  185. package/src/components/Chat/Chat.tsx +112 -58
  186. package/src/components/Chat/events.ts +6 -0
  187. package/src/components/ChatCompanion.tsx +62 -43
  188. package/src/components/ChatContainer.tsx +27 -17
  189. package/src/components/ChatDialog.tsx +9 -2
  190. package/src/components/ChatProgress/ChatProgress.tsx +1 -1
  191. package/src/components/ChatPrompt/ChatActions.tsx +2 -4
  192. package/src/components/ChatPrompt/ChatOptions.tsx +26 -23
  193. package/src/components/ChatPrompt/ChatReferences.tsx +2 -2
  194. package/src/components/ChatThread/ChatThread.stories.tsx +45 -26
  195. package/src/components/ChatThread/ChatThread.tsx +25 -35
  196. package/src/components/ChatThread/reducers.ts +6 -6
  197. package/src/components/ChatThread/registry.tsx +23 -33
  198. package/src/components/ChatThread/sync.test.ts +20 -12
  199. package/src/components/ChatThread/sync.ts +47 -12
  200. package/src/components/ChatThread/testing/thread.md +37 -0
  201. package/src/components/PromptArticle.tsx +85 -0
  202. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +14 -4
  203. package/src/components/TemplateEditor/TemplateEditor.tsx +17 -8
  204. package/src/components/TemplateEditor/TemplateForm.stories.tsx +2 -2
  205. package/src/components/TemplateEditor/TemplateForm.tsx +1 -1
  206. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +269 -0
  207. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  208. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  209. package/src/components/ToolBlock/ToolBlock.tsx +33 -42
  210. package/src/components/Toolbox/Toolbox.stories.tsx +2 -2
  211. package/src/components/Toolbox/Toolbox.tsx +5 -5
  212. package/src/components/index.ts +2 -5
  213. package/src/functions/analysis.ts +1 -1
  214. package/src/functions/index.ts +2 -2
  215. package/src/functions/{list.ts → object-list.ts} +4 -4
  216. package/src/functions/{load.ts → object-load.ts} +3 -4
  217. package/src/hooks/index.ts +1 -0
  218. package/src/hooks/useBlueprintRegistry.ts +2 -1
  219. package/src/hooks/useChatProcessor.ts +12 -12
  220. package/src/hooks/useChatServices.ts +7 -5
  221. package/src/hooks/useChatToolbarActions.ts +122 -0
  222. package/src/hooks/useContextBinder.ts +6 -6
  223. package/src/hooks/useReferencesProvider.ts +2 -1
  224. package/src/meta.ts +6 -1
  225. package/src/processor/index.ts +1 -0
  226. package/src/processor/presets.ts +1 -1
  227. package/src/processor/processor.test.ts +8 -18
  228. package/src/processor/processor.ts +14 -39
  229. package/src/processor/update-name.ts +56 -0
  230. package/src/queue-logger.ts +4 -8
  231. package/src/testing/test-generator.ts +10 -10
  232. package/src/translations.ts +24 -16
  233. package/src/types/Assistant.ts +4 -5
  234. package/src/types/AssistantAction.ts +21 -4
  235. package/src/types/service.ts +2 -2
  236. package/dist/lib/browser/BlueprintContainer-WX2SSDVI.mjs +0 -28
  237. package/dist/lib/browser/BlueprintContainer-WX2SSDVI.mjs.map +0 -7
  238. package/dist/lib/browser/ChatCompanion-BDZ55ZRF.mjs.map +0 -7
  239. package/dist/lib/browser/ChatContainer-RYGNN73X.mjs.map +0 -7
  240. package/dist/lib/browser/ChatDialog-MVHH2U66.mjs.map +0 -7
  241. package/dist/lib/browser/SequenceContainer-2FEWMQGW.mjs +0 -150
  242. package/dist/lib/browser/SequenceContainer-2FEWMQGW.mjs.map +0 -7
  243. package/dist/lib/browser/app-graph-builder-2U7SLCRX.mjs.map +0 -7
  244. package/dist/lib/browser/chunk-2CE2KPKZ.mjs.map +0 -7
  245. package/dist/lib/browser/chunk-43I2LR6O.mjs +0 -216
  246. package/dist/lib/browser/chunk-43I2LR6O.mjs.map +0 -7
  247. package/dist/lib/browser/chunk-5EGXHCAZ.mjs.map +0 -7
  248. package/dist/lib/browser/chunk-5RICKAMN.mjs +0 -18
  249. package/dist/lib/browser/chunk-5RICKAMN.mjs.map +0 -7
  250. package/dist/lib/browser/chunk-CQ7UHYTT.mjs +0 -296
  251. package/dist/lib/browser/chunk-CQ7UHYTT.mjs.map +0 -7
  252. package/dist/lib/browser/chunk-FP56WB24.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-JZRZVB2A.mjs +0 -170
  254. package/dist/lib/browser/chunk-JZRZVB2A.mjs.map +0 -7
  255. package/dist/lib/browser/chunk-WRJGOT5P.mjs.map +0 -7
  256. package/dist/lib/browser/intent-resolver-3GOJMBXJ.mjs.map +0 -7
  257. package/dist/lib/browser/react-surface-FTKCE6GG.mjs.map +0 -7
  258. package/dist/lib/browser/toolkit-NQ2GXCF5.mjs +0 -199
  259. package/dist/lib/browser/toolkit-NQ2GXCF5.mjs.map +0 -7
  260. package/dist/lib/node-esm/BlueprintContainer-4MKN6ZRB.mjs +0 -29
  261. package/dist/lib/node-esm/BlueprintContainer-4MKN6ZRB.mjs.map +0 -7
  262. package/dist/lib/node-esm/ChatCompanion-XFNXVZIP.mjs.map +0 -7
  263. package/dist/lib/node-esm/ChatContainer-UTJGCQXF.mjs.map +0 -7
  264. package/dist/lib/node-esm/ChatDialog-QEYZ4IOV.mjs.map +0 -7
  265. package/dist/lib/node-esm/SequenceContainer-PGGJUQ46.mjs +0 -151
  266. package/dist/lib/node-esm/SequenceContainer-PGGJUQ46.mjs.map +0 -7
  267. package/dist/lib/node-esm/app-graph-builder-OKNLR7H2.mjs.map +0 -7
  268. package/dist/lib/node-esm/chunk-73ABYRYX.mjs.map +0 -7
  269. package/dist/lib/node-esm/chunk-DSE2IILK.mjs +0 -217
  270. package/dist/lib/node-esm/chunk-DSE2IILK.mjs.map +0 -7
  271. package/dist/lib/node-esm/chunk-E2WXZND7.mjs +0 -297
  272. package/dist/lib/node-esm/chunk-E2WXZND7.mjs.map +0 -7
  273. package/dist/lib/node-esm/chunk-HXIBCBH4.mjs +0 -171
  274. package/dist/lib/node-esm/chunk-HXIBCBH4.mjs.map +0 -7
  275. package/dist/lib/node-esm/chunk-TNR46C3L.mjs.map +0 -7
  276. package/dist/lib/node-esm/chunk-U2NYUS2N.mjs.map +0 -7
  277. package/dist/lib/node-esm/chunk-UFKLCEAE.mjs.map +0 -7
  278. package/dist/lib/node-esm/chunk-XQGWSZ4T.mjs.map +0 -7
  279. package/dist/lib/node-esm/intent-resolver-6XLVTRDJ.mjs.map +0 -7
  280. package/dist/lib/node-esm/react-surface-K7ZXQLAP.mjs.map +0 -7
  281. package/dist/lib/node-esm/toolkit-V57PRJNG.mjs +0 -200
  282. package/dist/lib/node-esm/toolkit-V57PRJNG.mjs.map +0 -7
  283. package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
  284. package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
  285. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  286. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  287. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  288. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  289. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  290. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  291. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -269
  292. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  293. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  294. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  295. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +0 -1
  296. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -5
  297. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  298. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  299. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  300. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts +0 -11
  301. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +0 -1
  302. package/dist/types/src/functions/list.d.ts.map +0 -1
  303. package/dist/types/src/functions/load.d.ts.map +0 -1
  304. package/src/components/BlueprintContainer.tsx +0 -24
  305. package/src/components/PromptSettings.tsx +0 -90
  306. package/src/components/SequenceContainer.tsx +0 -131
  307. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -35
  308. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  309. package/src/components/SequenceEditor/index.ts +0 -5
  310. package/src/components/TemplateEditor/handlebars-extension.ts +0 -165
  311. package/src/components/Toolbar/Toolbar.tsx +0 -21
  312. package/src/components/Toolbar/index.ts +0 -5
  313. package/src/components/Toolbar/useChatToolbarActions.ts +0 -126
  314. /package/dist/lib/browser/{blueprint-definition-NSJARW5U.mjs.map → blueprint-definition-5FT5JGPY.mjs.map} +0 -0
  315. /package/dist/lib/browser/{settings-HBF32KV6.mjs.map → settings-NYJGNQ5I.mjs.map} +0 -0
  316. /package/dist/lib/node-esm/{blueprint-definition-WD2IVMAI.mjs.map → blueprint-definition-XW6QQVLV.mjs.map} +0 -0
  317. /package/dist/lib/node-esm/{settings-CWP6MTWP.mjs.map → settings-RRHYI5KO.mjs.map} +0 -0
  318. /package/dist/types/src/components/TemplateEditor/{handlebars-extension.d.ts → extensions/handlebars-extension.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-assistant",
3
- "version": "0.8.4-main.406dc2a",
3
+ "version": "0.8.4-main.548089c",
4
4
  "description": "Assistant plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -37,10 +37,13 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@codemirror/autocomplete": "^6.19.0",
40
+ "@codemirror/lang-html": "^6.4.11",
41
+ "@codemirror/lang-xml": "^6.1.0",
42
+ "@codemirror/language": "^6.11.3",
40
43
  "@codemirror/state": "^6.5.2",
41
44
  "@codemirror/view": "^6.38.4",
42
45
  "@effect/ai": "0.29.1",
43
- "@effect/ai-anthropic": "^0.19.2",
46
+ "@effect/ai-anthropic": "0.21.1",
44
47
  "@effect/ai-openai": "^0.32.1",
45
48
  "@effect/experimental": "0.56.0",
46
49
  "@effect/platform-browser": "0.72.0",
@@ -55,93 +58,95 @@
55
58
  "lodash.defaultsdeep": "^4.6.1",
56
59
  "unified": "^11.0.0",
57
60
  "use-deep-compare-effect": "^1.8.1",
58
- "@dxos/ai": "0.8.4-main.406dc2a",
59
- "@dxos/app-framework": "0.8.4-main.406dc2a",
60
- "@dxos/assistant": "0.8.4-main.406dc2a",
61
- "@dxos/assistant-testing": "0.8.4-main.406dc2a",
62
- "@dxos/blueprints": "0.8.4-main.406dc2a",
63
- "@dxos/async": "0.8.4-main.406dc2a",
64
- "@dxos/compute": "0.8.4-main.406dc2a",
65
- "@dxos/conductor": "0.8.4-main.406dc2a",
66
- "@dxos/config": "0.8.4-main.406dc2a",
67
- "@dxos/client": "0.8.4-main.406dc2a",
68
- "@dxos/context": "0.8.4-main.406dc2a",
69
- "@dxos/debug": "0.8.4-main.406dc2a",
70
- "@dxos/devtools": "0.8.4-main.406dc2a",
71
- "@dxos/echo-protocol": "0.8.4-main.406dc2a",
72
- "@dxos/echo-db": "0.8.4-main.406dc2a",
73
- "@dxos/echo": "0.8.4-main.406dc2a",
74
- "@dxos/echo-query": "0.8.4-main.406dc2a",
75
- "@dxos/edge-client": "0.8.4-main.406dc2a",
76
- "@dxos/effect": "0.8.4-main.406dc2a",
77
- "@dxos/graph": "0.8.4-main.406dc2a",
78
- "@dxos/invariant": "0.8.4-main.406dc2a",
79
- "@dxos/functions": "0.8.4-main.406dc2a",
80
- "@dxos/keys": "0.8.4-main.406dc2a",
81
- "@dxos/lit-ui": "0.8.4-main.406dc2a",
82
- "@dxos/live-object": "0.8.4-main.406dc2a",
83
- "@dxos/local-storage": "0.8.4-main.406dc2a",
84
- "@dxos/log": "0.8.4-main.406dc2a",
85
- "@dxos/plugin-automation": "0.8.4-main.406dc2a",
86
- "@dxos/plugin-client": "0.8.4-main.406dc2a",
87
- "@dxos/plugin-attention": "0.8.4-main.406dc2a",
88
- "@dxos/plugin-deck": "0.8.4-main.406dc2a",
89
- "@dxos/plugin-graph": "0.8.4-main.406dc2a",
90
- "@dxos/plugin-space": "0.8.4-main.406dc2a",
91
- "@dxos/plugin-transcription": "0.8.4-main.406dc2a",
92
- "@dxos/protocols": "0.8.4-main.406dc2a",
93
- "@dxos/react-client": "0.8.4-main.406dc2a",
94
- "@dxos/react-edge-client": "0.8.4-main.406dc2a",
95
- "@dxos/react-ui-attention": "0.8.4-main.406dc2a",
96
- "@dxos/react-ui-canvas-compute": "0.8.4-main.406dc2a",
97
- "@dxos/react-ui-canvas-editor": "0.8.4-main.406dc2a",
98
- "@dxos/react-ui-chat": "0.8.4-main.406dc2a",
99
- "@dxos/react-ui-editor": "0.8.4-main.406dc2a",
100
- "@dxos/react-ui-form": "0.8.4-main.406dc2a",
101
- "@dxos/react-ui-graph": "0.8.4-main.406dc2a",
102
- "@dxos/react-ui-menu": "0.8.4-main.406dc2a",
103
- "@dxos/react-ui-searchlist": "0.8.4-main.406dc2a",
104
- "@dxos/react-ui-list": "0.8.4-main.406dc2a",
105
- "@dxos/react-ui-stack": "0.8.4-main.406dc2a",
106
- "@dxos/react-ui-sfx": "0.8.4-main.406dc2a",
107
- "@dxos/react-ui-syntax-highlighter": "0.8.4-main.406dc2a",
108
- "@dxos/react-ui-tabs": "0.8.4-main.406dc2a",
109
- "@dxos/schema": "0.8.4-main.406dc2a",
110
- "@dxos/util": "0.8.4-main.406dc2a",
111
- "@dxos/react-ui-components": "0.8.4-main.406dc2a"
61
+ "@dxos/app-framework": "0.8.4-main.548089c",
62
+ "@dxos/ai": "0.8.4-main.548089c",
63
+ "@dxos/async": "0.8.4-main.548089c",
64
+ "@dxos/blueprints": "0.8.4-main.548089c",
65
+ "@dxos/assistant-toolkit": "0.8.4-main.548089c",
66
+ "@dxos/client": "0.8.4-main.548089c",
67
+ "@dxos/compute": "0.8.4-main.548089c",
68
+ "@dxos/conductor": "0.8.4-main.548089c",
69
+ "@dxos/config": "0.8.4-main.548089c",
70
+ "@dxos/debug": "0.8.4-main.548089c",
71
+ "@dxos/context": "0.8.4-main.548089c",
72
+ "@dxos/devtools": "0.8.4-main.548089c",
73
+ "@dxos/echo": "0.8.4-main.548089c",
74
+ "@dxos/echo-db": "0.8.4-main.548089c",
75
+ "@dxos/echo-protocol": "0.8.4-main.548089c",
76
+ "@dxos/echo-query": "0.8.4-main.548089c",
77
+ "@dxos/assistant": "0.8.4-main.548089c",
78
+ "@dxos/effect": "0.8.4-main.548089c",
79
+ "@dxos/functions-runtime": "0.8.4-main.548089c",
80
+ "@dxos/edge-client": "0.8.4-main.548089c",
81
+ "@dxos/graph": "0.8.4-main.548089c",
82
+ "@dxos/invariant": "0.8.4-main.548089c",
83
+ "@dxos/functions": "0.8.4-main.548089c",
84
+ "@dxos/keys": "0.8.4-main.548089c",
85
+ "@dxos/lit-ui": "0.8.4-main.548089c",
86
+ "@dxos/live-object": "0.8.4-main.548089c",
87
+ "@dxos/local-storage": "0.8.4-main.548089c",
88
+ "@dxos/plugin-attention": "0.8.4-main.548089c",
89
+ "@dxos/plugin-automation": "0.8.4-main.548089c",
90
+ "@dxos/plugin-client": "0.8.4-main.548089c",
91
+ "@dxos/log": "0.8.4-main.548089c",
92
+ "@dxos/plugin-graph": "0.8.4-main.548089c",
93
+ "@dxos/plugin-deck": "0.8.4-main.548089c",
94
+ "@dxos/plugin-transcription": "0.8.4-main.548089c",
95
+ "@dxos/react-client": "0.8.4-main.548089c",
96
+ "@dxos/protocols": "0.8.4-main.548089c",
97
+ "@dxos/react-ui-attention": "0.8.4-main.548089c",
98
+ "@dxos/react-edge-client": "0.8.4-main.548089c",
99
+ "@dxos/plugin-space": "0.8.4-main.548089c",
100
+ "@dxos/react-ui-canvas-compute": "0.8.4-main.548089c",
101
+ "@dxos/react-ui-canvas-editor": "0.8.4-main.548089c",
102
+ "@dxos/react-ui-chat": "0.8.4-main.548089c",
103
+ "@dxos/react-ui-editor": "0.8.4-main.548089c",
104
+ "@dxos/react-ui-form": "0.8.4-main.548089c",
105
+ "@dxos/react-ui-graph": "0.8.4-main.548089c",
106
+ "@dxos/react-ui-components": "0.8.4-main.548089c",
107
+ "@dxos/react-ui-list": "0.8.4-main.548089c",
108
+ "@dxos/react-ui-menu": "0.8.4-main.548089c",
109
+ "@dxos/react-ui-searchlist": "0.8.4-main.548089c",
110
+ "@dxos/react-ui-sfx": "0.8.4-main.548089c",
111
+ "@dxos/react-ui-stack": "0.8.4-main.548089c",
112
+ "@dxos/react-ui-syntax-highlighter": "0.8.4-main.548089c",
113
+ "@dxos/react-ui-tabs": "0.8.4-main.548089c",
114
+ "@dxos/schema": "0.8.4-main.548089c",
115
+ "@dxos/util": "0.8.4-main.548089c",
116
+ "@dxos/types": "0.8.4-main.548089c"
112
117
  },
113
118
  "devDependencies": {
114
- "@effect-rx/rx-react": "0.42.4",
119
+ "@effect-atom/atom-react": "^0.3.4",
115
120
  "@effect/platform": "0.92.1",
116
121
  "@types/lodash.defaultsdeep": "^4.6.6",
117
122
  "@types/react": "~19.2.2",
118
- "@types/react-dom": "~19.2.1",
123
+ "@types/react-dom": "~19.2.2",
119
124
  "effect": "3.18.3",
120
125
  "openapi-types": "^12.1.3",
121
126
  "react": "~19.2.0",
122
127
  "react-dom": "~19.2.0",
123
128
  "vite": "7.1.9",
124
- "@dxos/assistant-testing": "0.8.4-main.406dc2a",
125
- "@dxos/devtools": "0.8.4-main.406dc2a",
126
- "@dxos/plugin-map": "0.8.4-main.406dc2a",
127
- "@dxos/plugin-chess": "0.8.4-main.406dc2a",
128
- "@dxos/echo-db": "0.8.4-main.406dc2a",
129
- "@dxos/plugin-table": "0.8.4-main.406dc2a",
130
- "@dxos/random": "0.8.4-main.406dc2a",
131
- "@dxos/react-ui": "0.8.4-main.406dc2a",
132
- "@dxos/react-ui-table": "0.8.4-main.406dc2a",
133
- "@dxos/react-ui-theme": "0.8.4-main.406dc2a",
134
- "@dxos/storybook-utils": "0.8.4-main.406dc2a",
135
- "@dxos/react-ui-menu": "0.8.4-main.406dc2a"
129
+ "@dxos/assistant-toolkit": "0.8.4-main.548089c",
130
+ "@dxos/devtools": "0.8.4-main.548089c",
131
+ "@dxos/echo-db": "0.8.4-main.548089c",
132
+ "@dxos/plugin-chess": "0.8.4-main.548089c",
133
+ "@dxos/plugin-map": "0.8.4-main.548089c",
134
+ "@dxos/react-ui": "0.8.4-main.548089c",
135
+ "@dxos/react-ui-menu": "0.8.4-main.548089c",
136
+ "@dxos/random": "0.8.4-main.548089c",
137
+ "@dxos/plugin-table": "0.8.4-main.548089c",
138
+ "@dxos/react-ui-table": "0.8.4-main.548089c",
139
+ "@dxos/react-ui-theme": "0.8.4-main.548089c",
140
+ "@dxos/storybook-utils": "0.8.4-main.548089c"
136
141
  },
137
142
  "peerDependencies": {
138
- "@effect-rx/rx-react": "^0.34.1",
143
+ "@effect-atom/atom-react": "^0.3.4",
139
144
  "@effect/platform": "^0.80.12",
140
145
  "effect": "^3.13.3",
141
146
  "react": "^19.0.0",
142
147
  "react-dom": "^19.0.0",
143
- "@dxos/react-ui": "0.8.4-main.406dc2a",
144
- "@dxos/react-ui-theme": "0.8.4-main.406dc2a"
148
+ "@dxos/react-ui": "0.8.4-main.548089c",
149
+ "@dxos/react-ui-theme": "0.8.4-main.548089c"
145
150
  },
146
151
  "publishConfig": {
147
152
  "access": "public"
@@ -3,13 +3,14 @@
3
3
  //
4
4
 
5
5
  import { Capabilities, Events, contributes, createIntent, defineModule, definePlugin } from '@dxos/app-framework';
6
- import { ResearchGraph, ResearchOn } from '@dxos/assistant-testing';
6
+ import { ResearchGraph } from '@dxos/assistant-toolkit';
7
7
  import { Blueprint, Prompt } from '@dxos/blueprints';
8
8
  import { Sequence } from '@dxos/conductor';
9
9
  import { Type } from '@dxos/echo';
10
10
  import { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';
11
11
  import { SpaceCapabilities, SpaceEvents } from '@dxos/plugin-space';
12
12
  import { defineObjectForm } from '@dxos/plugin-space/types';
13
+ import { HasSubject } from '@dxos/types';
13
14
 
14
15
  import {
15
16
  AiService,
@@ -55,18 +56,28 @@ export const AssistantPlugin = definePlugin(meta, () => [
55
56
  id: Type.getTypename(Assistant.Chat),
56
57
  metadata: {
57
58
  icon: 'ph--atom--regular',
59
+ iconHue: 'sky',
58
60
  },
59
61
  }),
60
62
  contributes(Capabilities.Metadata, {
61
63
  id: Type.getTypename(Blueprint.Blueprint),
62
64
  metadata: {
63
65
  icon: 'ph--blueprint--regular',
66
+ iconHue: 'sky',
67
+ },
68
+ }),
69
+ contributes(Capabilities.Metadata, {
70
+ id: Type.getTypename(Prompt.Prompt),
71
+ metadata: {
72
+ icon: 'ph--scroll--regular',
73
+ iconHue: 'sky',
64
74
  },
65
75
  }),
66
76
  contributes(Capabilities.Metadata, {
67
77
  id: Type.getTypename(Sequence),
68
78
  metadata: {
69
79
  icon: 'ph--circuitry--regular',
80
+ iconHue: 'sky',
70
81
  },
71
82
  }),
72
83
  ],
@@ -90,6 +101,13 @@ export const AssistantPlugin = definePlugin(meta, () => [
90
101
  getIntent: (props) => createIntent(AssistantAction.CreateBlueprint, props),
91
102
  }),
92
103
  ),
104
+ contributes(
105
+ SpaceCapabilities.ObjectForm,
106
+ defineObjectForm({
107
+ objectSchema: Prompt.Prompt,
108
+ getIntent: () => createIntent(AssistantAction.CreatePrompt),
109
+ }),
110
+ ),
93
111
  contributes(
94
112
  SpaceCapabilities.ObjectForm,
95
113
  defineObjectForm({
@@ -107,7 +125,7 @@ export const AssistantPlugin = definePlugin(meta, () => [
107
125
  ServiceType,
108
126
  Assistant.CompanionTo,
109
127
  ResearchGraph,
110
- ResearchOn,
128
+ HasSubject.HasSubject,
111
129
  Prompt.Prompt,
112
130
  ]),
113
131
  }),
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Rx } from '@effect-rx/rx-react';
5
+ import { Atom } from '@effect-atom/atom-react';
6
6
  import * as Function from 'effect/Function';
7
7
  import * as Option from 'effect/Option';
8
8
 
@@ -14,15 +14,16 @@ import {
14
14
  contributes,
15
15
  createIntent,
16
16
  } from '@dxos/app-framework';
17
+ import { Prompt } from '@dxos/blueprints';
17
18
  import { Sequence } from '@dxos/conductor';
18
- import { Obj } from '@dxos/echo';
19
+ import { DXN, Obj } from '@dxos/echo';
19
20
  import { invariant } from '@dxos/invariant';
20
21
  import { ClientCapabilities } from '@dxos/plugin-client';
21
22
  import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
22
23
  import { ROOT_ID, createExtension, rxFromSignal } from '@dxos/plugin-graph';
23
24
  import { getActiveSpace } from '@dxos/plugin-space';
24
25
  import { SpaceAction } from '@dxos/plugin-space/types';
25
- import { Query, type Space, fullyQualifiedId } from '@dxos/react-client/echo';
26
+ import { Query, type Space, getSpace } from '@dxos/react-client/echo';
26
27
 
27
28
  import { ASSISTANT_DIALOG, meta } from '../meta';
28
29
  import { Assistant, AssistantAction } from '../types';
@@ -31,10 +32,41 @@ import { AssistantCapabilities } from './capabilities';
31
32
 
32
33
  export default (context: PluginContext) =>
33
34
  contributes(Capabilities.AppGraphBuilder, [
35
+ createExtension({
36
+ id: `${meta.id}/root`,
37
+ actions: (node) =>
38
+ Atom.make((get) =>
39
+ Function.pipe(
40
+ get(node),
41
+ Option.flatMap((node) => {
42
+ return Obj.instanceOf(Assistant.Chat, node.data) ? Option.some(node.data) : Option.none();
43
+ }),
44
+ Option.map((object) => {
45
+ const id = Obj.getDXN(object).toString();
46
+ return [
47
+ {
48
+ id: `${AssistantAction.UpdateChatName._tag}/${id}`,
49
+ data: async () => {
50
+ const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
51
+ await dispatch(createIntent(AssistantAction.UpdateChatName, { chat: object }));
52
+ },
53
+ properties: {
54
+ label: ['chat update name label', { ns: meta.id }],
55
+ icon: 'ph--magic-wand--regular',
56
+ disposition: 'list-item',
57
+ },
58
+ },
59
+ ];
60
+ }),
61
+ Option.getOrElse(() => []),
62
+ ),
63
+ ),
64
+ }),
65
+
34
66
  createExtension({
35
67
  id: `${meta.id}/assistant`,
36
68
  actions: (node) =>
37
- Rx.make((get) =>
69
+ Atom.make((get) =>
38
70
  Function.pipe(
39
71
  get(node),
40
72
  Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
@@ -84,20 +116,31 @@ export default (context: PluginContext) =>
84
116
  createExtension({
85
117
  id: `${meta.id}/companion-chat`,
86
118
  connector: (node) => {
87
- return Rx.make((get) =>
119
+ return Atom.make((get) =>
88
120
  Function.pipe(
89
121
  get(node),
90
122
  Option.flatMap((node) => (Obj.isObject(node.data) ? Option.some(node.data) : Option.none())),
91
- Option.map((object) => {
92
- const currentChat = get(
123
+ Option.flatMap((object) => {
124
+ const currentChatState = get(
93
125
  rxFromSignal(
94
- () => context.getCapability(AssistantCapabilities.State).currentChat[fullyQualifiedId(object)],
126
+ () => context.getCapability(AssistantCapabilities.State).currentChat[Obj.getDXN(object).toString()],
95
127
  ),
96
128
  );
129
+ // If no state, continue to allow chat initialization.
130
+ if (!currentChatState) {
131
+ return Option.some({ object, currentChat: undefined });
132
+ }
97
133
 
134
+ const space = getSpace(object);
135
+ const currentChatDxn = DXN.tryParse(currentChatState);
136
+ const currentChatRef = currentChatDxn ? space?.db.ref(currentChatDxn) : undefined;
137
+ const currentChat = get(rxFromSignal(() => currentChatRef?.target));
138
+ return currentChat ? Option.some({ object, currentChat }) : Option.none();
139
+ }),
140
+ Option.map(({ object, currentChat }) => {
98
141
  return [
99
142
  {
100
- id: [fullyQualifiedId(object), 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),
143
+ id: [Obj.getDXN(object).toString(), 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),
101
144
  type: PLANK_COMPANION_TYPE,
102
145
  data: currentChat ?? 'assistant-chat',
103
146
  properties: {
@@ -116,19 +159,23 @@ export default (context: PluginContext) =>
116
159
  }),
117
160
 
118
161
  createExtension({
119
- id: `${meta.id}/sequence-logs`,
162
+ id: `${meta.id}/invocations`,
120
163
  connector: (node) =>
121
- Rx.make((get) =>
164
+ Atom.make((get) =>
122
165
  Function.pipe(
123
166
  get(node),
124
- Option.flatMap((node) => (Obj.instanceOf(Sequence, node.data) ? Option.some(node) : Option.none())),
167
+ Option.flatMap((node) =>
168
+ Obj.instanceOf(Sequence, node.data) || Obj.instanceOf(Prompt.Prompt, node.data)
169
+ ? Option.some(node)
170
+ : Option.none(),
171
+ ),
125
172
  Option.map((node) => [
126
173
  {
127
- id: [node.id, 'logs'].join(ATTENDABLE_PATH_SEPARATOR),
174
+ id: [node.id, 'invocations'].join(ATTENDABLE_PATH_SEPARATOR),
128
175
  type: PLANK_COMPANION_TYPE,
129
- data: 'logs',
176
+ data: 'invocations',
130
177
  properties: {
131
- label: ['sequence logs label', { ns: meta.id }],
178
+ label: ['invocations label', { ns: meta.id }],
132
179
  icon: 'ph--clock-countdown--regular',
133
180
  disposition: 'hidden',
134
181
  },
@@ -5,42 +5,38 @@
5
5
  import { Capabilities, type Capability, contributes } from '@dxos/app-framework';
6
6
  import { templates } from '@dxos/assistant';
7
7
  import {
8
- DISCORD_BLUEPRINT,
9
- LINEAR_BLUEPRINT,
10
- RESEARCH_BLUEPRINT,
11
- WEB_SEARCH_BLUEPRINT,
12
- agent,
13
- createResearchNote,
14
- entityExtraction,
15
- fetchDiscordMessages,
16
- research,
17
- syncLinearIssues,
18
- } from '@dxos/assistant-testing';
8
+ Agent,
9
+ AssistantToolkit,
10
+ Discord,
11
+ DiscordBlueprint,
12
+ EntityExtraction,
13
+ Linear,
14
+ LinearBlueprint,
15
+ Research,
16
+ ResearchBlueprint,
17
+ SystemToolkit,
18
+ WebSearchBlueprint,
19
+ } from '@dxos/assistant-toolkit';
19
20
  import { Blueprint } from '@dxos/blueprints';
20
21
  import { type FunctionDefinition } from '@dxos/functions';
21
22
 
22
23
  import { analysis, list, load } from '../functions';
23
24
 
25
+ // TODO(burdon): Document plugin structure (blueprint, functions, toolkit.)
26
+ // TODO(burdon): Test framework for developing functions. Error handling.
27
+ // TODO(burdon): Function naming pattern (noun-verb); fully-qualified?
28
+
29
+ // TODO(wittjosiah): Factor out to a generic app-framework blueprint.
30
+ const deckTools = ['open-item'];
31
+
24
32
  const functions: FunctionDefinition[] = [analysis, list, load];
25
- const tools = [
26
- 'add-to-context',
27
- // TODO(wittjosiah): Factor out to an ECHO blueprint.
28
- 'get-schemas',
29
- 'add-schema',
30
- 'create-record',
31
- // TODO(wittjosiah): Factor out to a generic app-framework blueprint.
32
- 'open-item',
33
- // TODO(burdon): Anthropic only.
34
- // https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/text-editor-tool#example-str-replace-command
35
- // AI_TOOL_NOT_FOUND: str_replace_based_edit_tool
36
- // 'str_replace_based_edit_tool',
37
- ];
33
+ const tools = [...AssistantToolkit.tools, ...SystemToolkit.tools, ...deckTools];
38
34
 
39
- export const BLUEPRINT_KEY = 'dxos.org/blueprint/assistant';
35
+ export const ASSISTANT_BLUEPRINT_KEY = 'dxos.org/blueprint/assistant';
40
36
 
41
37
  export const createBlueprint = (): Blueprint.Blueprint =>
42
38
  Blueprint.make({
43
- key: BLUEPRINT_KEY,
39
+ key: ASSISTANT_BLUEPRINT_KEY,
44
40
  name: 'Assistant',
45
41
  tools: Blueprint.toolDefinitions({ functions, tools }),
46
42
  instructions: templates.system,
@@ -48,17 +44,23 @@ export const createBlueprint = (): Blueprint.Blueprint =>
48
44
 
49
45
  const blueprint = createBlueprint();
50
46
 
51
- // TODO(dmaretskyi): Consider splitting into multiple modules.
52
47
  export default (): Capability<any>[] => [
53
48
  contributes(Capabilities.Functions, functions),
54
- contributes(Capabilities.Functions, [agent]),
55
- contributes(Capabilities.Functions, [research, createResearchNote, entityExtraction]),
56
49
  contributes(Capabilities.BlueprintDefinition, blueprint),
57
- contributes(Capabilities.BlueprintDefinition, RESEARCH_BLUEPRINT),
58
- // TODO(burdon): Move out of assistant.
59
- contributes(Capabilities.Functions, [syncLinearIssues]),
60
- contributes(Capabilities.Functions, [fetchDiscordMessages]),
61
- contributes(Capabilities.BlueprintDefinition, LINEAR_BLUEPRINT),
62
- contributes(Capabilities.BlueprintDefinition, DISCORD_BLUEPRINT),
63
- contributes(Capabilities.BlueprintDefinition, WEB_SEARCH_BLUEPRINT),
50
+
51
+ // TODO(burdon): Factor out.
52
+ contributes(Capabilities.Functions, [Research.create, Research.research]),
53
+ contributes(Capabilities.BlueprintDefinition, ResearchBlueprint),
54
+
55
+ // TODO(burdon): Factor out.
56
+ contributes(Capabilities.Functions, [Agent.prompt, EntityExtraction.extract]),
57
+ contributes(Capabilities.BlueprintDefinition, WebSearchBlueprint),
58
+
59
+ // TODO(burdon): Factor out.
60
+ contributes(Capabilities.Functions, [Discord.fetch]),
61
+ contributes(Capabilities.BlueprintDefinition, DiscordBlueprint),
62
+
63
+ // TODO(burdon): Factor out.
64
+ contributes(Capabilities.Functions, [Linear.sync]),
65
+ contributes(Capabilities.BlueprintDefinition, LinearBlueprint),
64
66
  ];
@@ -6,12 +6,11 @@ import { defineCapability } from '@dxos/app-framework';
6
6
  import { type DeepReadonly } from '@dxos/util';
7
7
 
8
8
  import { meta } from '../meta';
9
- import { type Assistant } from '../types';
10
9
 
11
10
  export namespace AssistantCapabilities {
12
11
  export type AssistantState = {
13
- /** Map of primary object fq id to current chat. */
14
- currentChat: Record<string, Assistant.Chat>;
12
+ /** Map of primary object dxn to current chat dxn. */
13
+ currentChat: Record<string, string | undefined>;
15
14
  };
16
15
  export const State = defineCapability<DeepReadonly<AssistantState>>(`${meta.id}/capability/state`);
17
16
  export const MutableState = defineCapability<AssistantState>(`${meta.id}/capability/state`);
@@ -5,16 +5,22 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Capabilities, type PluginContext, contributes, createIntent, createResolver } from '@dxos/app-framework';
8
- import { AiContextBinder } from '@dxos/assistant';
9
- import { Blueprint, Template } from '@dxos/blueprints';
10
- import { fullyQualifiedId } from '@dxos/client/echo';
8
+ import { AiContextBinder, AiConversation } from '@dxos/assistant';
9
+ import { Agent } from '@dxos/assistant-toolkit';
10
+ import { Blueprint, Prompt, Template } from '@dxos/blueprints';
11
+ import { type Queue } from '@dxos/client/echo';
11
12
  import { Sequence } from '@dxos/conductor';
12
- import { Filter, Key, Obj, Ref } from '@dxos/echo';
13
+ import { Filter, Key, Obj, Ref, Type } from '@dxos/echo';
14
+ import { TracingService, serializeFunction } from '@dxos/functions';
15
+ import { AutomationCapabilities } from '@dxos/plugin-automation';
13
16
  import { CollectionAction } from '@dxos/plugin-space/types';
17
+ import { getSpace } from '@dxos/react-client/echo';
18
+ import { type Message } from '@dxos/types';
14
19
 
20
+ import { type AiChatServices, updateName } from '../processor';
15
21
  import { Assistant, AssistantAction } from '../types';
16
22
 
17
- import { BLUEPRINT_KEY, createBlueprint } from './blueprint-definition';
23
+ import { ASSISTANT_BLUEPRINT_KEY, createBlueprint } from './blueprint-definition';
18
24
  import { AssistantCapabilities } from './capabilities';
19
25
 
20
26
  export default (context: PluginContext) => [
@@ -25,12 +31,28 @@ export default (context: PluginContext) => [
25
31
  Effect.gen(function* () {
26
32
  const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
27
33
  const { object: chatCollection } = yield* dispatch(
28
- createIntent(CollectionAction.CreateQueryCollection, { typename: Assistant.Chat.typename }),
34
+ createIntent(CollectionAction.CreateQueryCollection, {
35
+ typename: Assistant.Chat.typename,
36
+ }),
29
37
  );
30
38
  const { object: blueprintCollection } = yield* dispatch(
31
- createIntent(CollectionAction.CreateQueryCollection, { typename: Blueprint.Blueprint.typename }),
39
+ createIntent(CollectionAction.CreateQueryCollection, {
40
+ typename: Blueprint.Blueprint.typename,
41
+ }),
32
42
  );
33
- rootCollection.objects.push(Ref.make(chatCollection), Ref.make(blueprintCollection));
43
+ const { object: promptCollection } = yield* dispatch(
44
+ createIntent(CollectionAction.CreateQueryCollection, {
45
+ typename: Type.getTypename(Prompt.Prompt),
46
+ }),
47
+ );
48
+ rootCollection.objects.push(
49
+ Ref.make(chatCollection),
50
+ Ref.make(blueprintCollection),
51
+ Ref.make(promptCollection),
52
+ );
53
+
54
+ // TODO(wittjosiah): Remove once function registry is avaiable.
55
+ space.db.add(serializeFunction(Agent.prompt));
34
56
 
35
57
  // Create default chat.
36
58
  const { object: chat } = yield* dispatch(createIntent(AssistantAction.CreateChat, { space }));
@@ -42,29 +64,58 @@ export default (context: PluginContext) => [
42
64
  resolve: async ({ space, name }) => {
43
65
  const queue = space.queues.create();
44
66
  const chat = Assistant.makeChat({ name, queue });
45
- const { objects: blueprints } = await space.db.query(Filter.type(Blueprint.Blueprint)).run();
67
+
46
68
  // TODO(wittjosiah): This should be a space-level setting.
47
69
  // TODO(burdon): Clone when activated. Copy-on-write for template.
48
- let defaultBlueprint = blueprints.find((blueprint) => blueprint.key === BLUEPRINT_KEY);
70
+ const { objects: blueprints } = await space.db.query(Filter.type(Blueprint.Blueprint)).run();
71
+ let defaultBlueprint = blueprints.find((blueprint) => blueprint.key === ASSISTANT_BLUEPRINT_KEY);
49
72
  if (!defaultBlueprint) {
50
73
  defaultBlueprint = space.db.add(createBlueprint());
51
74
  }
52
75
 
53
76
  const binder = new AiContextBinder(queue);
54
- await binder.open();
55
- await binder.bind({ blueprints: [Ref.make(defaultBlueprint)] });
56
- await binder.close();
77
+ await binder.use((binder) => binder.bind({ blueprints: [Ref.make(defaultBlueprint)] }));
57
78
 
58
79
  return {
59
80
  data: { object: chat },
60
81
  };
61
82
  },
62
83
  }),
84
+ createResolver({
85
+ intent: AssistantAction.UpdateChatName,
86
+ resolve: async ({ chat }) => {
87
+ const space = getSpace(chat);
88
+ const queue = chat.queue.target as Queue<Message.Message>;
89
+ if (!space || !queue) {
90
+ return;
91
+ }
92
+
93
+ const runtimeResolver = context.getCapability(AutomationCapabilities.ComputeRuntime);
94
+ const runtime = await runtimeResolver
95
+ .getRuntime(space.id)
96
+ .runPromise(Effect.runtime<AiChatServices>().pipe(Effect.provide(TracingService.layerNoop)));
97
+
98
+ await new AiConversation(queue).use(async (conversation) => updateName(runtime, conversation, chat));
99
+ },
100
+ }),
63
101
  createResolver({
64
102
  intent: AssistantAction.CreateBlueprint,
65
103
  resolve: ({ key, name, description }) => ({
66
104
  data: {
67
- object: Blueprint.make({ key, name, description, instructions: Template.make({ source: '' }) }),
105
+ object: Blueprint.make({
106
+ key,
107
+ name,
108
+ description,
109
+ instructions: Template.make(),
110
+ }),
111
+ },
112
+ }),
113
+ }),
114
+ createResolver({
115
+ intent: AssistantAction.CreatePrompt,
116
+ resolve: ({ name }) => ({
117
+ data: {
118
+ object: Prompt.make({ name }),
68
119
  },
69
120
  }),
70
121
  }),
@@ -89,7 +140,7 @@ export default (context: PluginContext) => [
89
140
  resolve: ({ companionTo, chat }) =>
90
141
  Effect.gen(function* () {
91
142
  const state = context.getCapability(AssistantCapabilities.MutableState);
92
- state.currentChat[fullyQualifiedId(companionTo)] = chat;
143
+ state.currentChat[Obj.getDXN(companionTo).toString()] = chat && Obj.getDXN(chat).toString();
93
144
  }),
94
145
  }),
95
146
  ]),
@@ -21,7 +21,7 @@ export default (): Capability<any>[] => [
21
21
  AiServiceRouter.LMStudioResolver.pipe(
22
22
  Layer.provide(
23
23
  OpenAiClient.layer({
24
- apiUrl: AiServiceRouter.LMSTUDIO_ENDPOINT,
24
+ apiUrl: AiServiceRouter.DEFAULT_LMSTUDIO_ENDPOINT,
25
25
  }),
26
26
  ),
27
27
  Layer.provide(FetchHttpClient.layer),