@dxos/plugin-assistant 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

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 (515) hide show
  1. package/dist/lib/browser/BlueprintArticle-WP3G5GLG.mjs +31 -0
  2. package/dist/lib/browser/BlueprintArticle-WP3G5GLG.mjs.map +7 -0
  3. package/dist/lib/browser/ChatCompanion-ECQYUQ2B.mjs +153 -0
  4. package/dist/lib/browser/ChatCompanion-ECQYUQ2B.mjs.map +7 -0
  5. package/dist/lib/browser/ChatContainer-QCCOFBUX.mjs +73 -0
  6. package/dist/lib/browser/ChatContainer-QCCOFBUX.mjs.map +7 -0
  7. package/dist/lib/browser/ChatDialog-SMK4RSZU.mjs +85 -0
  8. package/dist/lib/browser/ChatDialog-SMK4RSZU.mjs.map +7 -0
  9. package/dist/lib/browser/PromptArticle-K362ZPAE.mjs +53 -0
  10. package/dist/lib/browser/PromptArticle-K362ZPAE.mjs.map +7 -0
  11. package/dist/lib/browser/ai-service-5GUDOEWF.mjs +21 -0
  12. package/dist/lib/browser/ai-service-5GUDOEWF.mjs.map +7 -0
  13. package/dist/lib/browser/app-graph-builder-DSNH2OMY.mjs +212 -0
  14. package/dist/lib/browser/app-graph-builder-DSNH2OMY.mjs.map +7 -0
  15. package/dist/lib/browser/blueprint-definition-DGHH7MUU.mjs +14 -0
  16. package/dist/lib/browser/blueprints/index.mjs +12 -0
  17. package/dist/lib/browser/chunk-3JYPE2MM.mjs +1832 -0
  18. package/dist/lib/browser/chunk-3JYPE2MM.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-DKQMSMBN.mjs +326 -0
  20. package/dist/lib/browser/chunk-DKQMSMBN.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-WBG5PTSX.mjs → chunk-EXVT7D4B.mjs} +1 -1
  22. package/dist/lib/browser/chunk-EXVT7D4B.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-L5OA5OGS.mjs → chunk-ML3QCFKA.mjs} +40 -37
  24. package/dist/lib/browser/chunk-ML3QCFKA.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-MRJVYGLU.mjs +208 -0
  26. package/dist/lib/browser/chunk-MRJVYGLU.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-V772AMZM.mjs +250 -0
  28. package/dist/lib/browser/chunk-V772AMZM.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-WGQTU6UJ.mjs +41 -0
  30. package/dist/lib/browser/chunk-WGQTU6UJ.mjs.map +7 -0
  31. package/dist/lib/browser/edge-model-resolver-26BOY6HY.mjs +20 -0
  32. package/dist/lib/browser/edge-model-resolver-26BOY6HY.mjs.map +7 -0
  33. package/dist/lib/browser/index.mjs +201 -214
  34. package/dist/lib/browser/index.mjs.map +4 -4
  35. package/dist/lib/browser/local-model-resolver-ZFIM6GGV.mjs +19 -0
  36. package/dist/lib/browser/local-model-resolver-ZFIM6GGV.mjs.map +7 -0
  37. package/dist/lib/browser/meta.json +1 -1
  38. package/dist/lib/browser/operation-resolver-7XJLBRQY.mjs +132 -0
  39. package/dist/lib/browser/operation-resolver-7XJLBRQY.mjs.map +7 -0
  40. package/dist/lib/browser/react-surface-NCITRSJJ.mjs +109 -0
  41. package/dist/lib/browser/react-surface-NCITRSJJ.mjs.map +7 -0
  42. package/dist/lib/browser/repair-6QGAKOVM.mjs +54 -0
  43. package/dist/lib/browser/repair-6QGAKOVM.mjs.map +7 -0
  44. package/dist/lib/browser/settings-4ZDLUMYE.mjs +32 -0
  45. package/dist/lib/browser/settings-4ZDLUMYE.mjs.map +7 -0
  46. package/dist/lib/browser/state-AN6336ZX.mjs +26 -0
  47. package/dist/lib/browser/state-AN6336ZX.mjs.map +7 -0
  48. package/dist/lib/browser/toolkit-7AVTEPMA.mjs +18 -0
  49. package/dist/lib/browser/toolkit-7AVTEPMA.mjs.map +7 -0
  50. package/dist/lib/browser/types/index.mjs +8 -4
  51. package/dist/lib/node-esm/BlueprintArticle-WZ76E2C4.mjs +32 -0
  52. package/dist/lib/node-esm/BlueprintArticle-WZ76E2C4.mjs.map +7 -0
  53. package/dist/lib/node-esm/ChatCompanion-Q4FUZ2MW.mjs +154 -0
  54. package/dist/lib/node-esm/ChatCompanion-Q4FUZ2MW.mjs.map +7 -0
  55. package/dist/lib/node-esm/ChatContainer-AKI33HIB.mjs +74 -0
  56. package/dist/lib/node-esm/ChatContainer-AKI33HIB.mjs.map +7 -0
  57. package/dist/lib/node-esm/ChatDialog-AP45PVZR.mjs +86 -0
  58. package/dist/lib/node-esm/ChatDialog-AP45PVZR.mjs.map +7 -0
  59. package/dist/lib/node-esm/PromptArticle-D4HAIIC6.mjs +54 -0
  60. package/dist/lib/node-esm/PromptArticle-D4HAIIC6.mjs.map +7 -0
  61. package/dist/lib/node-esm/ai-service-PXKKCFIF.mjs +22 -0
  62. package/dist/lib/node-esm/ai-service-PXKKCFIF.mjs.map +7 -0
  63. package/dist/lib/node-esm/app-graph-builder-TJCUEXW5.mjs +213 -0
  64. package/dist/lib/node-esm/app-graph-builder-TJCUEXW5.mjs.map +7 -0
  65. package/dist/lib/node-esm/{blueprint-definition-CFCUD2VC.mjs → blueprint-definition-SEMDEIYG.mjs} +6 -5
  66. package/dist/lib/node-esm/blueprint-definition-SEMDEIYG.mjs.map +7 -0
  67. package/dist/lib/node-esm/blueprints/index.mjs +13 -0
  68. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-355W5B27.mjs +251 -0
  70. package/dist/lib/node-esm/chunk-355W5B27.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-75PHXBN3.mjs +327 -0
  72. package/dist/lib/node-esm/chunk-75PHXBN3.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-DCA5QWQT.mjs +209 -0
  74. package/dist/lib/node-esm/chunk-DCA5QWQT.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-MSBPC4RJ.mjs +42 -0
  76. package/dist/lib/node-esm/chunk-MSBPC4RJ.mjs.map +7 -0
  77. package/dist/lib/node-esm/{chunk-WE6KTH72.mjs → chunk-POWB2BPC.mjs} +1 -1
  78. package/dist/lib/node-esm/chunk-POWB2BPC.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-XI5T3MJC.mjs +1833 -0
  80. package/dist/lib/node-esm/chunk-XI5T3MJC.mjs.map +7 -0
  81. package/dist/lib/node-esm/{chunk-7ZYOYW7F.mjs → chunk-ZRIPP7YF.mjs} +40 -37
  82. package/dist/lib/node-esm/chunk-ZRIPP7YF.mjs.map +7 -0
  83. package/dist/lib/node-esm/{edge-model-resolver-2ARXDOYS.mjs → edge-model-resolver-G5KMODPO.mjs} +9 -7
  84. package/dist/lib/node-esm/edge-model-resolver-G5KMODPO.mjs.map +7 -0
  85. package/dist/lib/node-esm/index.mjs +201 -214
  86. package/dist/lib/node-esm/index.mjs.map +4 -4
  87. package/dist/lib/node-esm/local-model-resolver-KDZLYI7Y.mjs +20 -0
  88. package/dist/lib/node-esm/local-model-resolver-KDZLYI7Y.mjs.map +7 -0
  89. package/dist/lib/node-esm/meta.json +1 -1
  90. package/dist/lib/node-esm/operation-resolver-SX4WMNA7.mjs +133 -0
  91. package/dist/lib/node-esm/operation-resolver-SX4WMNA7.mjs.map +7 -0
  92. package/dist/lib/node-esm/react-surface-ST6V7LPE.mjs +110 -0
  93. package/dist/lib/node-esm/react-surface-ST6V7LPE.mjs.map +7 -0
  94. package/dist/lib/node-esm/repair-QJ7CQDKU.mjs +55 -0
  95. package/dist/lib/node-esm/repair-QJ7CQDKU.mjs.map +7 -0
  96. package/dist/lib/node-esm/settings-CQEOHR3R.mjs +33 -0
  97. package/dist/lib/node-esm/settings-CQEOHR3R.mjs.map +7 -0
  98. package/dist/lib/node-esm/state-HDON4REW.mjs +27 -0
  99. package/dist/lib/node-esm/state-HDON4REW.mjs.map +7 -0
  100. package/dist/lib/node-esm/toolkit-OWGCEKOO.mjs +19 -0
  101. package/dist/lib/node-esm/toolkit-OWGCEKOO.mjs.map +7 -0
  102. package/dist/lib/node-esm/types/index.mjs +8 -4
  103. package/dist/types/src/AssistantPlugin.d.ts +2 -1
  104. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  105. package/dist/types/src/blueprints/assistant-blueprint.d.ts +209 -0
  106. package/dist/types/src/blueprints/assistant-blueprint.d.ts.map +1 -0
  107. package/dist/types/src/blueprints/index.d.ts +7 -0
  108. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/ai-service/ai-service.d.ts +5 -0
  110. package/dist/types/src/capabilities/ai-service/ai-service.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/ai-service/index.d.ts +3 -0
  112. package/dist/types/src/capabilities/ai-service/index.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  114. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  116. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +21 -0
  118. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +4 -0
  120. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts +6 -0
  122. package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/edge-model-resolver/index.d.ts +3 -0
  124. package/dist/types/src/capabilities/edge-model-resolver/index.d.ts.map +1 -0
  125. package/dist/types/src/capabilities/index.d.ts +10 -11
  126. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  127. package/dist/types/src/capabilities/local-model-resolver/index.d.ts +3 -0
  128. package/dist/types/src/capabilities/local-model-resolver/index.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts +12 -0
  130. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  132. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  134. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  135. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  136. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  138. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/repair/index.d.ts +3 -0
  140. package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
  142. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/settings/index.d.ts +15 -0
  144. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  145. package/dist/types/src/capabilities/settings/settings.d.ts +17 -0
  146. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  147. package/dist/types/src/capabilities/state/index.d.ts +11 -0
  148. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/state/state.d.ts +13 -0
  150. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  151. package/dist/types/src/capabilities/toolkit/index.d.ts +3 -0
  152. package/dist/types/src/capabilities/toolkit/index.d.ts.map +1 -0
  153. package/dist/types/src/capabilities/toolkit/toolkit.d.ts +5 -0
  154. package/dist/types/src/capabilities/toolkit/toolkit.d.ts.map +1 -0
  155. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +4 -2
  156. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  157. package/dist/types/src/components/BlueprintArticle.d.ts +7 -0
  158. package/dist/types/src/components/BlueprintArticle.d.ts.map +1 -0
  159. package/dist/types/src/components/Chat/Chat.d.ts +21 -12
  160. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  161. package/dist/types/src/components/Chat/events.d.ts +5 -1
  162. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  163. package/dist/types/src/components/ChatCompanion.d.ts +2 -2
  164. package/dist/types/src/components/ChatCompanion.d.ts.map +1 -1
  165. package/dist/types/src/components/ChatContainer.d.ts +13 -5
  166. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  167. package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
  168. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
  169. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  170. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +3 -3
  171. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  172. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +3 -3
  173. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  174. package/dist/types/src/components/ChatThread/ChatThread.d.ts +7 -10
  175. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  176. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +128 -73
  177. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  178. package/dist/types/src/components/ChatThread/registry.d.ts +1 -1
  179. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  180. package/dist/types/src/components/ChatThread/sync.d.ts +12 -6
  181. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  182. package/dist/types/src/components/PromptArticle.d.ts +7 -0
  183. package/dist/types/src/components/PromptArticle.d.ts.map +1 -0
  184. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  185. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +112 -60
  186. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  187. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +11 -1
  188. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  189. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +113 -61
  190. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  191. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  192. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  193. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  194. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  195. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  196. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +10 -8
  197. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  198. package/dist/types/src/components/Toolbox/Toolbox.d.ts +4 -5
  199. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  200. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +112 -60
  201. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  202. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts +12 -0
  203. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts.map +1 -0
  204. package/dist/types/src/components/Typewriter/Typewriter.d.ts +11 -0
  205. package/dist/types/src/components/Typewriter/Typewriter.d.ts.map +1 -0
  206. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts +7 -0
  207. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts.map +1 -0
  208. package/dist/types/src/components/Typewriter/assistant-extension.d.ts +5 -0
  209. package/dist/types/src/components/Typewriter/assistant-extension.d.ts.map +1 -0
  210. package/dist/types/src/components/Typewriter/index.d.ts +2 -0
  211. package/dist/types/src/components/Typewriter/index.d.ts.map +1 -0
  212. package/dist/types/src/components/index.d.ts +10 -5
  213. package/dist/types/src/components/index.d.ts.map +1 -1
  214. package/dist/types/src/functions/index.d.ts +1 -1
  215. package/dist/types/src/functions/index.d.ts.map +1 -1
  216. package/dist/types/src/functions/object-list.d.ts +2 -2
  217. package/dist/types/src/functions/object-list.d.ts.map +1 -1
  218. package/dist/types/src/functions/object-load.d.ts +1 -1
  219. package/dist/types/src/functions/object-load.d.ts.map +1 -1
  220. package/dist/types/src/functions/object-search.d.ts +10 -0
  221. package/dist/types/src/functions/object-search.d.ts.map +1 -0
  222. package/dist/types/src/hooks/index.d.ts +2 -1
  223. package/dist/types/src/hooks/index.d.ts.map +1 -1
  224. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +5 -5
  225. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  226. package/dist/types/src/hooks/useChatProcessor.d.ts +3 -1
  227. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  228. package/dist/types/src/hooks/useChatServices.d.ts +3 -3
  229. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  230. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  231. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  232. package/dist/types/src/hooks/useContextBinder.d.ts +2 -2
  233. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  234. package/dist/types/src/hooks/useContextObjects.d.ts +7 -7
  235. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  236. package/dist/types/src/hooks/useFilteredTypes.d.ts +3 -0
  237. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -0
  238. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  239. package/dist/types/src/index.d.ts +0 -1
  240. package/dist/types/src/index.d.ts.map +1 -1
  241. package/dist/types/src/meta.d.ts +2 -2
  242. package/dist/types/src/meta.d.ts.map +1 -1
  243. package/dist/types/src/processor/processor.d.ts +17 -16
  244. package/dist/types/src/processor/processor.d.ts.map +1 -1
  245. package/dist/types/src/processor/update-name.d.ts.map +1 -1
  246. package/dist/types/src/queue-logger.d.ts.map +1 -1
  247. package/dist/types/src/testing/test-generator.d.ts +5 -4
  248. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  249. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  250. package/dist/types/src/translations.d.ts +243 -26
  251. package/dist/types/src/translations.d.ts.map +1 -1
  252. package/dist/types/src/types/Assistant.d.ts +16 -22
  253. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  254. package/dist/types/src/types/AssistantAction.d.ts +88 -112
  255. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  256. package/dist/types/src/types/capabilities.d.ts +33 -0
  257. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  258. package/dist/types/src/types/events.d.ts +5 -0
  259. package/dist/types/src/types/events.d.ts.map +1 -0
  260. package/dist/types/src/types/index.d.ts +3 -1
  261. package/dist/types/src/types/index.d.ts.map +1 -1
  262. package/dist/types/src/types/service.d.ts +10 -212
  263. package/dist/types/src/types/service.d.ts.map +1 -1
  264. package/dist/types/tsconfig.tsbuildinfo +1 -1
  265. package/package.json +113 -90
  266. package/src/AssistantPlugin.tsx +70 -105
  267. package/src/blueprints/assistant-blueprint.ts +62 -0
  268. package/src/blueprints/index.ts +12 -0
  269. package/src/capabilities/ai-service/ai-service.ts +29 -0
  270. package/src/capabilities/ai-service/index.ts +7 -0
  271. package/src/capabilities/app-graph-builder/app-graph-builder.ts +180 -0
  272. package/src/capabilities/app-graph-builder/index.ts +7 -0
  273. package/src/capabilities/blueprint-definition/blueprint-definition.ts +60 -0
  274. package/src/capabilities/blueprint-definition/index.ts +8 -0
  275. package/src/capabilities/edge-model-resolver/edge-model-resolver.ts +32 -0
  276. package/src/capabilities/edge-model-resolver/index.ts +7 -0
  277. package/src/capabilities/index.ts +10 -14
  278. package/src/capabilities/local-model-resolver/index.ts +7 -0
  279. package/src/capabilities/local-model-resolver/local-model-resolver.ts +37 -0
  280. package/src/capabilities/operation-resolver/index.ts +7 -0
  281. package/src/capabilities/operation-resolver/operation-resolver.ts +110 -0
  282. package/src/capabilities/react-surface/index.ts +7 -0
  283. package/src/capabilities/react-surface/react-surface.tsx +95 -0
  284. package/src/capabilities/repair/index.ts +7 -0
  285. package/src/capabilities/repair/repair.ts +63 -0
  286. package/src/capabilities/settings/index.ts +7 -0
  287. package/src/capabilities/settings/settings.ts +30 -0
  288. package/src/capabilities/state/index.ts +7 -0
  289. package/src/capabilities/state/state.ts +27 -0
  290. package/src/capabilities/toolkit/index.ts +7 -0
  291. package/src/capabilities/toolkit/toolkit.ts +26 -0
  292. package/src/components/AssistantSettings/AssistantSettings.tsx +13 -5
  293. package/src/components/BlueprintArticle.tsx +29 -0
  294. package/src/components/Chat/Chat.tsx +160 -125
  295. package/src/components/Chat/events.ts +7 -1
  296. package/src/components/ChatCompanion.tsx +132 -105
  297. package/src/components/ChatContainer.tsx +40 -30
  298. package/src/components/ChatDialog.tsx +13 -7
  299. package/src/components/ChatProgress/ChatProgress.tsx +4 -17
  300. package/src/components/ChatPrompt/ChatActions.tsx +3 -5
  301. package/src/components/ChatPrompt/ChatOptions.tsx +93 -80
  302. package/src/components/ChatPrompt/ChatReferences.tsx +7 -8
  303. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +1 -1
  304. package/src/components/ChatThread/ChatThread.stories.tsx +57 -36
  305. package/src/components/ChatThread/ChatThread.tsx +26 -36
  306. package/src/components/ChatThread/Link.tsx +3 -3
  307. package/src/components/ChatThread/registry.tsx +25 -35
  308. package/src/components/ChatThread/sync.test.ts +33 -17
  309. package/src/components/ChatThread/sync.ts +53 -12
  310. package/src/components/ChatThread/testing/thread.md +37 -0
  311. package/src/components/PromptArticle.tsx +50 -0
  312. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +12 -4
  313. package/src/components/TemplateEditor/TemplateEditor.tsx +14 -10
  314. package/src/components/TemplateEditor/TemplateForm.stories.tsx +15 -7
  315. package/src/components/TemplateEditor/TemplateForm.tsx +76 -29
  316. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +274 -0
  317. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  318. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  319. package/src/components/ToolBlock/ToolBlock.tsx +36 -45
  320. package/src/components/Toolbox/Toolbox.stories.tsx +9 -10
  321. package/src/components/Toolbox/Toolbox.tsx +16 -17
  322. package/src/components/Typewriter/AssistantToolbar.tsx +161 -0
  323. package/src/components/Typewriter/Typewriter.stories.tsx +83 -0
  324. package/src/components/Typewriter/Typewriter.tsx +54 -0
  325. package/src/components/Typewriter/assistant-extension.tsx +144 -0
  326. package/src/components/Typewriter/index.ts +5 -0
  327. package/src/components/index.ts +2 -3
  328. package/src/functions/index.ts +1 -1
  329. package/src/functions/object-list.ts +4 -3
  330. package/src/functions/object-load.ts +7 -5
  331. package/src/functions/object-search.ts +46 -0
  332. package/src/hooks/index.ts +2 -1
  333. package/src/hooks/useBlueprintRegistry.ts +31 -20
  334. package/src/hooks/useChatProcessor.ts +15 -12
  335. package/src/hooks/useChatServices.ts +13 -14
  336. package/src/hooks/useChatToolbarActions.ts +121 -0
  337. package/src/hooks/useContextBinder.ts +9 -7
  338. package/src/hooks/useContextObjects.ts +13 -25
  339. package/src/hooks/useFilteredTypes.ts +37 -0
  340. package/src/hooks/useReferencesProvider.ts +7 -6
  341. package/src/index.ts +0 -1
  342. package/src/meta.ts +2 -2
  343. package/src/processor/presets.ts +1 -1
  344. package/src/processor/processor.test.ts +8 -17
  345. package/src/processor/processor.ts +41 -43
  346. package/src/processor/update-name.ts +4 -2
  347. package/src/queue-logger.ts +8 -9
  348. package/src/testing/test-generator.ts +14 -13
  349. package/src/testing/test-services.ts +8 -6
  350. package/src/translations.ts +27 -16
  351. package/src/types/Assistant.ts +9 -10
  352. package/src/types/AssistantAction.ts +59 -54
  353. package/src/types/capabilities.ts +27 -0
  354. package/src/types/events.ts +11 -0
  355. package/src/types/index.ts +3 -1
  356. package/src/types/service.ts +10 -7
  357. package/dist/lib/browser/BlueprintContainer-GMSYKGSO.mjs +0 -36
  358. package/dist/lib/browser/BlueprintContainer-GMSYKGSO.mjs.map +0 -7
  359. package/dist/lib/browser/ChatCompanion-M3FDKTQM.mjs +0 -151
  360. package/dist/lib/browser/ChatCompanion-M3FDKTQM.mjs.map +0 -7
  361. package/dist/lib/browser/ChatContainer-KAH7XITI.mjs +0 -74
  362. package/dist/lib/browser/ChatContainer-KAH7XITI.mjs.map +0 -7
  363. package/dist/lib/browser/ChatDialog-ZWRGABW6.mjs +0 -87
  364. package/dist/lib/browser/ChatDialog-ZWRGABW6.mjs.map +0 -7
  365. package/dist/lib/browser/ai-service-ERTZBTP3.mjs +0 -19
  366. package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +0 -7
  367. package/dist/lib/browser/app-graph-builder-R5T7BJPC.mjs +0 -183
  368. package/dist/lib/browser/app-graph-builder-R5T7BJPC.mjs.map +0 -7
  369. package/dist/lib/browser/blueprint-definition-AGTDXTXO.mjs +0 -13
  370. package/dist/lib/browser/chunk-357IHWQL.mjs +0 -1519
  371. package/dist/lib/browser/chunk-357IHWQL.mjs.map +0 -7
  372. package/dist/lib/browser/chunk-A2NVNXPL.mjs +0 -170
  373. package/dist/lib/browser/chunk-A2NVNXPL.mjs.map +0 -7
  374. package/dist/lib/browser/chunk-CQW6UPJM.mjs +0 -199
  375. package/dist/lib/browser/chunk-CQW6UPJM.mjs.map +0 -7
  376. package/dist/lib/browser/chunk-GNI6HL6G.mjs +0 -219
  377. package/dist/lib/browser/chunk-GNI6HL6G.mjs.map +0 -7
  378. package/dist/lib/browser/chunk-GXHZTOWJ.mjs +0 -378
  379. package/dist/lib/browser/chunk-GXHZTOWJ.mjs.map +0 -7
  380. package/dist/lib/browser/chunk-L5OA5OGS.mjs.map +0 -7
  381. package/dist/lib/browser/chunk-MEN5WTLA.mjs +0 -182
  382. package/dist/lib/browser/chunk-MEN5WTLA.mjs.map +0 -7
  383. package/dist/lib/browser/chunk-PUG24BEC.mjs +0 -277
  384. package/dist/lib/browser/chunk-PUG24BEC.mjs.map +0 -7
  385. package/dist/lib/browser/chunk-SJJV3HEX.mjs +0 -16
  386. package/dist/lib/browser/chunk-SJJV3HEX.mjs.map +0 -7
  387. package/dist/lib/browser/chunk-WBG5PTSX.mjs.map +0 -7
  388. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +0 -18
  389. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +0 -7
  390. package/dist/lib/browser/intent-resolver-3C5TABOX.mjs +0 -136
  391. package/dist/lib/browser/intent-resolver-3C5TABOX.mjs.map +0 -7
  392. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs +0 -17
  393. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs.map +0 -7
  394. package/dist/lib/browser/react-surface-EYKA5IFU.mjs +0 -90
  395. package/dist/lib/browser/react-surface-EYKA5IFU.mjs.map +0 -7
  396. package/dist/lib/browser/settings-VMVBYZLN.mjs +0 -23
  397. package/dist/lib/browser/settings-VMVBYZLN.mjs.map +0 -7
  398. package/dist/lib/browser/state-CFREPBB6.mjs +0 -21
  399. package/dist/lib/browser/state-CFREPBB6.mjs.map +0 -7
  400. package/dist/lib/browser/toolkit-F3NQ7TSI.mjs +0 -21
  401. package/dist/lib/browser/toolkit-F3NQ7TSI.mjs.map +0 -7
  402. package/dist/lib/node-esm/BlueprintContainer-6GBLMK4Z.mjs +0 -37
  403. package/dist/lib/node-esm/BlueprintContainer-6GBLMK4Z.mjs.map +0 -7
  404. package/dist/lib/node-esm/ChatCompanion-OV426GCP.mjs +0 -152
  405. package/dist/lib/node-esm/ChatCompanion-OV426GCP.mjs.map +0 -7
  406. package/dist/lib/node-esm/ChatContainer-UKY7NHFY.mjs +0 -75
  407. package/dist/lib/node-esm/ChatContainer-UKY7NHFY.mjs.map +0 -7
  408. package/dist/lib/node-esm/ChatDialog-2BDQIEXH.mjs +0 -88
  409. package/dist/lib/node-esm/ChatDialog-2BDQIEXH.mjs.map +0 -7
  410. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +0 -20
  411. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +0 -7
  412. package/dist/lib/node-esm/app-graph-builder-I52RYVWH.mjs +0 -184
  413. package/dist/lib/node-esm/app-graph-builder-I52RYVWH.mjs.map +0 -7
  414. package/dist/lib/node-esm/chunk-2CAETDW2.mjs +0 -183
  415. package/dist/lib/node-esm/chunk-2CAETDW2.mjs.map +0 -7
  416. package/dist/lib/node-esm/chunk-4J5FYNNM.mjs +0 -171
  417. package/dist/lib/node-esm/chunk-4J5FYNNM.mjs.map +0 -7
  418. package/dist/lib/node-esm/chunk-5ARE4R2I.mjs +0 -220
  419. package/dist/lib/node-esm/chunk-5ARE4R2I.mjs.map +0 -7
  420. package/dist/lib/node-esm/chunk-7ZYOYW7F.mjs.map +0 -7
  421. package/dist/lib/node-esm/chunk-HJPIYMWD.mjs +0 -1520
  422. package/dist/lib/node-esm/chunk-HJPIYMWD.mjs.map +0 -7
  423. package/dist/lib/node-esm/chunk-O36P4LN5.mjs +0 -200
  424. package/dist/lib/node-esm/chunk-O36P4LN5.mjs.map +0 -7
  425. package/dist/lib/node-esm/chunk-WE6KTH72.mjs.map +0 -7
  426. package/dist/lib/node-esm/chunk-XM4BVQQR.mjs +0 -278
  427. package/dist/lib/node-esm/chunk-XM4BVQQR.mjs.map +0 -7
  428. package/dist/lib/node-esm/chunk-XQBL2SBL.mjs +0 -17
  429. package/dist/lib/node-esm/chunk-XQBL2SBL.mjs.map +0 -7
  430. package/dist/lib/node-esm/chunk-YIO5MEPR.mjs +0 -380
  431. package/dist/lib/node-esm/chunk-YIO5MEPR.mjs.map +0 -7
  432. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +0 -7
  433. package/dist/lib/node-esm/intent-resolver-HQ27YALS.mjs +0 -137
  434. package/dist/lib/node-esm/intent-resolver-HQ27YALS.mjs.map +0 -7
  435. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs +0 -18
  436. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs.map +0 -7
  437. package/dist/lib/node-esm/react-surface-UOC3CBPH.mjs +0 -91
  438. package/dist/lib/node-esm/react-surface-UOC3CBPH.mjs.map +0 -7
  439. package/dist/lib/node-esm/settings-7AUVNDM2.mjs +0 -24
  440. package/dist/lib/node-esm/settings-7AUVNDM2.mjs.map +0 -7
  441. package/dist/lib/node-esm/state-XXND44OW.mjs +0 -22
  442. package/dist/lib/node-esm/state-XXND44OW.mjs.map +0 -7
  443. package/dist/lib/node-esm/toolkit-7CH5UNSQ.mjs +0 -22
  444. package/dist/lib/node-esm/toolkit-7CH5UNSQ.mjs.map +0 -7
  445. package/dist/types/src/capabilities/ai-service.d.ts +0 -4
  446. package/dist/types/src/capabilities/ai-service.d.ts.map +0 -1
  447. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  448. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  449. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -7
  450. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  451. package/dist/types/src/capabilities/capabilities.d.ts +0 -11
  452. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  453. package/dist/types/src/capabilities/edge-model-resolver.d.ts +0 -4
  454. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +0 -1
  455. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  456. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  457. package/dist/types/src/capabilities/local-model-resolver.d.ts +0 -10
  458. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +0 -1
  459. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  460. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  461. package/dist/types/src/capabilities/settings.d.ts +0 -4
  462. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  463. package/dist/types/src/capabilities/state.d.ts +0 -4
  464. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  465. package/dist/types/src/capabilities/toolkit.d.ts +0 -4
  466. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  467. package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
  468. package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
  469. package/dist/types/src/components/ChatThread/reducers.d.ts +0 -40
  470. package/dist/types/src/components/ChatThread/reducers.d.ts.map +0 -1
  471. package/dist/types/src/components/ChatToolbar/ChatToolbar.d.ts +0 -6
  472. package/dist/types/src/components/ChatToolbar/ChatToolbar.d.ts.map +0 -1
  473. package/dist/types/src/components/ChatToolbar/index.d.ts +0 -2
  474. package/dist/types/src/components/ChatToolbar/index.d.ts.map +0 -1
  475. package/dist/types/src/components/ChatToolbar/useChatToolbarActions.d.ts +0 -9
  476. package/dist/types/src/components/ChatToolbar/useChatToolbarActions.d.ts.map +0 -1
  477. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +0 -1
  478. package/dist/types/src/events.d.ts +0 -4
  479. package/dist/types/src/events.d.ts.map +0 -1
  480. package/dist/types/src/functions/analysis.d.ts +0 -5
  481. package/dist/types/src/functions/analysis.d.ts.map +0 -1
  482. package/dist/types/src/hooks/useItemTypes.d.ts +0 -4
  483. package/dist/types/src/hooks/useItemTypes.d.ts.map +0 -1
  484. package/dist/types/src/toolkits/AssistantToolkit.d.ts +0 -21
  485. package/dist/types/src/toolkits/AssistantToolkit.d.ts.map +0 -1
  486. package/dist/types/src/toolkits/SystemToolkit.d.ts +0 -69
  487. package/dist/types/src/toolkits/SystemToolkit.d.ts.map +0 -1
  488. package/dist/types/src/toolkits/index.d.ts +0 -3
  489. package/dist/types/src/toolkits/index.d.ts.map +0 -1
  490. package/src/capabilities/ai-service.ts +0 -27
  491. package/src/capabilities/app-graph-builder.ts +0 -194
  492. package/src/capabilities/blueprint-definition.ts +0 -66
  493. package/src/capabilities/capabilities.ts +0 -18
  494. package/src/capabilities/edge-model-resolver.ts +0 -25
  495. package/src/capabilities/intent-resolver.ts +0 -121
  496. package/src/capabilities/local-model-resolver.ts +0 -30
  497. package/src/capabilities/react-surface.tsx +0 -71
  498. package/src/capabilities/settings.ts +0 -19
  499. package/src/capabilities/state.ts +0 -20
  500. package/src/capabilities/toolkit.ts +0 -19
  501. package/src/components/BlueprintContainer.tsx +0 -30
  502. package/src/components/ChatThread/reducers.ts +0 -151
  503. package/src/components/ChatToolbar/ChatToolbar.tsx +0 -23
  504. package/src/components/ChatToolbar/index.ts +0 -5
  505. package/src/components/ChatToolbar/useChatToolbarActions.ts +0 -126
  506. package/src/components/TemplateEditor/handlebars-extension.ts +0 -166
  507. package/src/events.ts +0 -11
  508. package/src/functions/analysis.ts +0 -22
  509. package/src/hooks/useItemTypes.ts +0 -37
  510. package/src/toolkits/AssistantToolkit.ts +0 -55
  511. package/src/toolkits/SystemToolkit.ts +0 -292
  512. package/src/toolkits/index.ts +0 -6
  513. /package/dist/lib/browser/{blueprint-definition-AGTDXTXO.mjs.map → blueprint-definition-DGHH7MUU.mjs.map} +0 -0
  514. /package/dist/lib/{node-esm/blueprint-definition-CFCUD2VC.mjs.map → browser/blueprints/index.mjs.map} +0 -0
  515. /package/dist/types/src/components/TemplateEditor/{handlebars-extension.d.ts → extensions/handlebars-extension.d.ts} +0 -0
@@ -5,17 +5,17 @@
5
5
  import React from 'react';
6
6
 
7
7
  import { log } from '@dxos/log';
8
+ import { ToggleContainer } from '@dxos/react-ui-components';
8
9
  import {
9
10
  PromptWidget,
10
11
  ReferenceWidget,
11
12
  SelectWidget,
12
13
  SuggestionWidget,
13
14
  SummaryWidget,
14
- ToggleContainer,
15
15
  } from '@dxos/react-ui-components';
16
- import { type XmlWidgetProps, type XmlWidgetRegistry, getXmlTextChild } from '@dxos/react-ui-editor';
17
16
  import { Json } from '@dxos/react-ui-syntax-highlighter';
18
- import { ContentBlock, type DataType } from '@dxos/schema';
17
+ import { ContentBlock, type Message } from '@dxos/types';
18
+ import { type XmlWidgetProps, type XmlWidgetRegistry, getXmlTextChild } from '@dxos/ui-editor';
19
19
 
20
20
  import { ToolBlock } from '../ToolBlock';
21
21
 
@@ -42,22 +42,22 @@ export const componentRegistry: XmlWidgetRegistry = {
42
42
 
43
43
  ['prompt' as const]: {
44
44
  block: true,
45
- factory: (props) => {
46
- const text = getXmlTextChild(props.children);
45
+ factory: ({ children }) => {
46
+ const text = getXmlTextChild(children);
47
47
  return text ? new PromptWidget(text) : null;
48
48
  },
49
49
  },
50
50
  ['reference' as const]: {
51
51
  block: false,
52
- factory: (props) => {
53
- const text = getXmlTextChild(props.children);
54
- return text && props.ref ? new ReferenceWidget(text, props.ref) : null;
52
+ factory: ({ children, ref }) => {
53
+ const text = getXmlTextChild(children);
54
+ return text && ref ? new ReferenceWidget(text, ref) : null;
55
55
  },
56
56
  },
57
57
  ['select' as const]: {
58
58
  block: true,
59
- factory: (props) => {
60
- const options = props.children
59
+ factory: ({ children }) => {
60
+ const options = children
61
61
  ?.map((option: any) => option._tag === 'option' && getXmlTextChild(option.children))
62
62
  .filter(Boolean);
63
63
  return options?.length ? new SelectWidget(options) : null;
@@ -65,15 +65,15 @@ export const componentRegistry: XmlWidgetRegistry = {
65
65
  },
66
66
  ['suggestion' as const]: {
67
67
  block: true,
68
- factory: (props) => {
69
- const text = getXmlTextChild(props.children);
68
+ factory: ({ children }) => {
69
+ const text = getXmlTextChild(children);
70
70
  return text ? new SuggestionWidget(text) : null;
71
71
  },
72
72
  },
73
73
  ['summary' as const]: {
74
74
  block: true,
75
- factory: (props) => {
76
- const text = getXmlTextChild(props.children);
75
+ factory: ({ children }) => {
76
+ const text = getXmlTextChild(children);
77
77
  return text ? new SummaryWidget(text) : null;
78
78
  },
79
79
  },
@@ -110,10 +110,10 @@ export const componentRegistry: XmlWidgetRegistry = {
110
110
  */
111
111
  export const blockToMarkdown: BlockRenderer = (
112
112
  context: MessageThreadContext,
113
- message: DataType.Message,
113
+ message: Message.Message,
114
114
  block: ContentBlock.Any,
115
115
  ) => {
116
- let str = _blockToMarkdown(context, message, block);
116
+ let str = blockToMarkdownImpl(context, message, block);
117
117
  if (str && !block.pending) {
118
118
  return (str += '\n');
119
119
  }
@@ -121,12 +121,12 @@ export const blockToMarkdown: BlockRenderer = (
121
121
  return str;
122
122
  };
123
123
 
124
- const _blockToMarkdown = (context: MessageThreadContext, message: DataType.Message, block: ContentBlock.Any) => {
124
+ const blockToMarkdownImpl = (context: MessageThreadContext, message: Message.Message, block: ContentBlock.Any) => {
125
125
  log('blockToMarkdown', { block: JSON.stringify(block) });
126
126
  switch (block._tag) {
127
127
  case 'text': {
128
128
  if (message.sender.role === 'user') {
129
- return `\n<prompt>${block.text}</prompt>\n`;
129
+ return `<prompt>${block.text}</prompt>`;
130
130
  } else {
131
131
  const text = block.text.trim();
132
132
  if (text.length > 0) {
@@ -135,7 +135,10 @@ const _blockToMarkdown = (context: MessageThreadContext, message: DataType.Messa
135
135
  }
136
136
  break;
137
137
  }
138
-
138
+ case 'reference': {
139
+ const dxn = block.reference.dxn;
140
+ return `<reference ref="${dxn.toString()}">${context.getObjectLabel(dxn)}</reference>`;
141
+ }
139
142
  case 'suggestion': {
140
143
  if (block.pending) {
141
144
  return;
@@ -146,38 +149,25 @@ const _blockToMarkdown = (context: MessageThreadContext, message: DataType.Messa
146
149
  if (block.pending || block.options.length === 0) {
147
150
  return;
148
151
  }
149
-
150
152
  return `<select>${block.options.map((option) => `<option>${option}</option>`).join('')}</select>`;
151
153
  }
152
-
153
- // TODO(burdon): Need label.
154
- case 'reference': {
155
- return `<reference ref="${block.reference.dxn.toString()}">Ref</reference>`;
156
- }
157
-
158
- // case 'toolkit': {
159
- // return `<toolkit />`;
160
- // }
161
-
162
154
  case 'toolCall': {
163
- context.updateWidget(block.toolCallId, {
155
+ context.updateWidget<{ blocks: ContentBlock.Any[] }>(block.toolCallId, {
164
156
  blocks: [block],
165
157
  });
166
158
  return `<toolCall id="${block.toolCallId}" />`;
167
159
  }
168
160
  case 'toolResult': {
169
- context.updateWidget(block.toolCallId, ({ blocks = [] }: { blocks: ContentBlock.Any[] }) => ({
161
+ context.updateWidget<{ blocks: ContentBlock.Any[] }>(block.toolCallId, ({ blocks = [] }) => ({
170
162
  blocks: [...blocks, block],
171
163
  }));
172
164
  break;
173
165
  }
174
-
175
166
  case 'summary': {
176
167
  return `<summary>${ContentBlock.createSummaryMessage(block)}</summary>`;
177
168
  }
178
-
179
- // TODO(burdon): Need stable ID.
180
169
  default: {
170
+ // TODO(burdon): Needs stable ID.
181
171
  return `<json id="${message.id}">\n${JSON.stringify(block)}\n</json>`;
182
172
  }
183
173
  }
@@ -6,7 +6,9 @@ import { EditorView } from '@codemirror/view';
6
6
  import { describe, it } from '@effect/vitest';
7
7
  import * as Effect from 'effect/Effect';
8
8
 
9
- import { type ContentBlock } from '@dxos/schema';
9
+ import { Obj } from '@dxos/echo';
10
+ import { type Mutable } from '@dxos/echo/internal';
11
+ import { type ContentBlock } from '@dxos/types';
10
12
 
11
13
  import { createMessage } from '../../testing';
12
14
 
@@ -16,16 +18,24 @@ import { MessageSyncer, type TextModel } from './sync';
16
18
  class TestDocument implements TextModel {
17
19
  private readonly _view = new EditorView({ extensions: [] });
18
20
 
21
+ get view() {
22
+ return this._view;
23
+ }
24
+
19
25
  get content() {
20
26
  return this._view.state.doc.toString();
21
27
  }
22
28
 
23
29
  async reset(text: string) {
24
- this._view.dispatch({ changes: { from: 0, to: this._view.state.doc.length, insert: text } });
30
+ this._view.dispatch({
31
+ changes: { from: 0, to: this._view.state.doc.length, insert: text },
32
+ });
25
33
  }
26
34
 
27
35
  async append(text: string) {
28
- this._view.dispatch({ changes: { from: this._view.state.doc.length, insert: text } });
36
+ this._view.dispatch({
37
+ changes: { from: this._view.state.doc.length, insert: text },
38
+ });
29
39
  }
30
40
 
31
41
  updateWidget(_id: string, _value: any) {}
@@ -43,12 +53,14 @@ describe('reducers', () => {
43
53
  createMessage('assistant', [{ _tag: 'text', text: 'Hi there!' }]),
44
54
  ];
45
55
 
46
- syncer.sync(messages);
47
- expect(doc.content).toEqual(['\n<prompt>Hello</prompt>\n', 'Hi there!', ''].join('\n'));
56
+ syncer.append(messages);
57
+ expect(doc.content).toEqual(['<prompt>Hello</prompt>', 'Hi there!', ''].join('\n'));
48
58
 
49
- messages[1].blocks.push({ _tag: 'text', text: 'How can I help?' });
50
- syncer.sync(messages);
51
- expect(doc.content).toEqual(['\n<prompt>Hello</prompt>\n', 'Hi there!', 'How can I help?', ''].join('\n'));
59
+ Obj.change(messages[1], (m) => {
60
+ m.blocks.push({ _tag: 'text', text: 'How can I help?' });
61
+ });
62
+ syncer.append(messages);
63
+ expect(doc.content).toEqual(['<prompt>Hello</prompt>', 'Hi there!', 'How can I help?', ''].join('\n'));
52
64
  }),
53
65
  );
54
66
 
@@ -63,18 +75,22 @@ describe('reducers', () => {
63
75
  createMessage('assistant', [{ _tag: 'text', text: 'Hi there!', pending: true }]),
64
76
  ];
65
77
 
66
- syncer.sync(messages);
67
- expect(doc.content).toEqual(['\n<prompt>Hello</prompt>\n', 'Hi there!'].join('\n'));
78
+ syncer.append(messages);
79
+ expect(doc.content).toEqual(['<prompt>Hello</prompt>', 'Hi there!'].join('\n'));
68
80
 
69
- const block = messages[1].blocks[0] as ContentBlock.Text;
70
- block.text = 'Hi there! How are you?';
71
- block.pending = false;
72
- syncer.sync(messages);
81
+ Obj.change(messages[1], (m) => {
82
+ const block = m.blocks[0] as Mutable<ContentBlock.Text>;
83
+ block.text = 'Hi there! How are you?';
84
+ block.pending = false;
85
+ });
86
+ syncer.append(messages);
73
87
 
74
- messages[1].blocks.push({ _tag: 'text', text: 'How can I help?' });
75
- syncer.sync(messages);
88
+ Obj.change(messages[1], (m) => {
89
+ m.blocks.push({ _tag: 'text', text: 'How can I help?' });
90
+ });
91
+ syncer.append(messages);
76
92
  expect(doc.content).toEqual(
77
- ['\n<prompt>Hello</prompt>\n', 'Hi there! How are you?', 'How can I help?', ''].join('\n'),
93
+ ['<prompt>Hello</prompt>', 'Hi there! How are you?', 'How can I help?', ''].join('\n'),
78
94
  );
79
95
  }),
80
96
  );
@@ -2,15 +2,16 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { type DXN } from '@dxos/echo';
5
6
  import { log } from '@dxos/log';
6
7
  import { type MarkdownStreamController } from '@dxos/react-ui-components';
7
- import { type XmlWidgetStateManager } from '@dxos/react-ui-editor';
8
- import { type ContentBlock, type DataType } from '@dxos/schema';
8
+ import { type ContentBlock, type Message } from '@dxos/types';
9
+ import { type StateDispatch, type XmlWidgetStateManager } from '@dxos/ui-editor';
9
10
 
10
11
  /**
11
12
  * Update document.
12
13
  */
13
- export type TextModel = Pick<MarkdownStreamController, 'reset' | 'append' | 'updateWidget'>;
14
+ export type TextModel = Pick<MarkdownStreamController, 'view' | 'reset' | 'append' | 'updateWidget'>;
14
15
 
15
16
  /**
16
17
  * Thread context passed to renderer.
@@ -18,9 +19,14 @@ export type TextModel = Pick<MarkdownStreamController, 'reset' | 'append' | 'upd
18
19
  export class MessageThreadContext implements Pick<MarkdownStreamController, 'updateWidget'> {
19
20
  constructor(private readonly _widgetState?: XmlWidgetStateManager) {}
20
21
 
21
- updateWidget<T>(id: string, value: T) {
22
+ updateWidget<T>(id: string, value: StateDispatch<T>) {
22
23
  this._widgetState?.updateWidget(id, value);
23
24
  }
25
+
26
+ // TODO(burdon): Resolve from hypergraph.
27
+ getObjectLabel(_id: DXN) {
28
+ return 'Object';
29
+ }
24
30
  }
25
31
 
26
32
  /**
@@ -28,7 +34,7 @@ export class MessageThreadContext implements Pick<MarkdownStreamController, 'upd
28
34
  */
29
35
  export type BlockRenderer = (
30
36
  context: MessageThreadContext,
31
- message: DataType.Message,
37
+ message: Message.Message,
32
38
  block: ContentBlock.Any,
33
39
  ) => string | undefined;
34
40
 
@@ -63,17 +69,52 @@ export class MessageSyncer {
63
69
  void this._model.reset('');
64
70
  }
65
71
 
66
- sync(messages: DataType.Message[]) {
72
+ /**
73
+ * Syncs messages with the editor.
74
+ */
75
+ append(messages: Message.Message[], flush = false): boolean {
76
+ // Check if new set of messages.
77
+ if (this._initialMessageId !== messages[0]?.id) {
78
+ this.reset();
79
+ this._initialMessageId = messages[0]?.id;
80
+ }
81
+
82
+ if (flush && this._model.view?.state.doc.length === 0) {
83
+ const buffer: string[] = [];
84
+ this.process(messages, (content) => {
85
+ buffer.push(content);
86
+ });
87
+
88
+ const content = buffer.join('');
89
+ this._model.view?.dispatch({
90
+ changes: [
91
+ {
92
+ from: 0,
93
+ to: this._model.view?.state.doc.length ?? 0,
94
+ insert: content,
95
+ },
96
+ ],
97
+ selection: { anchor: content.length },
98
+ });
99
+
100
+ return true;
101
+ } else {
102
+ this.process(messages, (content) => {
103
+ void this._model.append(content);
104
+ });
105
+
106
+ return false;
107
+ }
108
+ }
109
+
110
+ private process(messages: Message.Message[], append: (content: string) => void) {
67
111
  log('sync', {
112
+ doc: this._model.view?.state.doc.length,
68
113
  messages: messages.map((message) => message.blocks.length),
69
114
  currentMessageIndex: this._currentMessageIndex,
70
115
  currentBlockIndex: this._currentBlockIndex,
71
116
  currentBlockContent: this._currentBlockContent,
72
117
  });
73
- if (this._initialMessageId !== messages[0]?.id) {
74
- this.reset();
75
- this._initialMessageId = messages[0]?.id;
76
- }
77
118
 
78
119
  let i = this._currentMessageIndex;
79
120
  for (const message of messages.slice(this._currentMessageIndex)) {
@@ -94,9 +135,9 @@ export class MessageSyncer {
94
135
  content = currentBlockContent;
95
136
  }
96
137
 
97
- void this._model.append(content);
98
- this._currentBlockContent = currentBlockContent;
99
138
  log('append', { message: i, block: j, content });
139
+ this._currentBlockContent = currentBlockContent;
140
+ append(content);
100
141
  }
101
142
 
102
143
  if (block.pending) {
@@ -0,0 +1,37 @@
1
+ <prompt>hi</prompt>
2
+ Hi! I'm Kai, your AI assistant powered by DXOS. I see you have a document in your context. Let me take a look at it to see how I can help you.
3
+ <toolCall id="toolu_012MB5XWrQhsyjUBoBCr7jXB" />
4
+
5
+ <summary>OK (1 tool uses · 2.62k tokens · 4.8s)</summary>
6
+ I can see you have a comprehensive welcome document for Composer by DXOS. This document explains what Composer is - an extensible collaborative application with features like documents, diagrams, tables, and sheets.
7
+
8
+ Here are some suggestions based on what's available:
9
+ <suggestion>Create a new document</suggestion>
10
+ <suggestion>Edit the welcome document</suggestion>
11
+ <suggestion>Create a table to organize information</suggestion>
12
+ <suggestion>Create a sketch for diagrams</suggestion>
13
+ <suggestion>Learn about collaboration features</suggestion>
14
+
15
+ Is there something specific you'd like to do with this document or would you like to explore other features of Composer?
16
+
17
+ <summary>OK (3.91k tokens · 7.0s)</summary>
18
+ <prompt>Create a table to organize information</prompt>
19
+ I'll help you create a table to organize information. Let me check what table creation tools are available.
20
+ <toolCall id="toolu_01Gk8ZNGYQEczAjGkbDZ9n1D" />
21
+ <summary>OK (1 tool uses · 3.99k tokens · 3.4s)</summary>
22
+ I need to check what artifact definitions are available for creating tables. Based on the blueprint instructions, I should first query for available artifact definitions to see what table-related tools I can use.
23
+
24
+ However, I notice that the function definitions provided don't include the artifact-related tools mentioned in the blueprint (like `require_artifact_definitions` or table creation tools). The available functions are focused on document operations (open, diff, add-to-context, open-item) and analysis mode.
25
+
26
+ Let me work with what's available. Since I can't directly create a table artifact with the current tools, I can help you create a table structure within a markdown document instead.
27
+
28
+ Would you like me to:
29
+
30
+ 1. Create a simple markdown table structure in a new document that you can use to organize your information?
31
+ 2. Or would you prefer to use Composer's built-in Tables plugin (as mentioned in the welcome document) by creating one through the Composer interface?
32
+
33
+ What kind of information are you looking to organize? This will help me suggest the best table structure for your needs.
34
+ <toolCall id="toolu_01CQXUsyLw2uoV3k1mPLqFee" />
35
+
36
+ <summary>OK (1 tool uses · 4.28k tokens · 11.1s)</summary>
37
+ <summary>OK (4.30k tokens · 1.6s)</summary>
@@ -0,0 +1,50 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import React, { useMemo } from 'react';
6
+
7
+ import { type SurfaceComponentProps } from '@dxos/app-framework/react';
8
+ import { Agent } from '@dxos/assistant-toolkit';
9
+ import { type Prompt } from '@dxos/blueprints';
10
+ import { Obj } from '@dxos/echo';
11
+ import { invokeFunctionWithTracing, useComputeRuntimeCallback } from '@dxos/plugin-automation';
12
+ import { Toolbar, useTranslation } from '@dxos/react-ui';
13
+ import { useAttention } from '@dxos/react-ui-attention';
14
+ import { Layout } from '@dxos/react-ui-mosaic';
15
+
16
+ import { meta } from '../meta';
17
+
18
+ import { TemplateEditor } from './TemplateEditor';
19
+
20
+ export type PromptArticleProps = SurfaceComponentProps<Prompt.Prompt>;
21
+
22
+ export const PromptArticle = ({ role, subject }: PromptArticleProps) => {
23
+ const { t } = useTranslation(meta.id);
24
+ const db = Obj.getDatabase(subject);
25
+ const { hasAttention } = useAttention(Obj.getDXN(subject).toString());
26
+
27
+ const inputData = useMemo(
28
+ () =>
29
+ subject && {
30
+ prompt: db?.makeRef(Obj.getDXN(subject)),
31
+ input: {},
32
+ },
33
+ [subject, db],
34
+ );
35
+
36
+ const handleRun = useComputeRuntimeCallback(db?.spaceId, () => invokeFunctionWithTracing(Agent.prompt, inputData), [
37
+ inputData,
38
+ ]);
39
+
40
+ return (
41
+ <Layout.Main role={role} toolbar>
42
+ <Toolbar.Root disabled={!hasAttention} onClick={handleRun}>
43
+ <Toolbar.IconButton iconOnly icon='ph--play--regular' label={t('run prompt label')} onClick={handleRun} />
44
+ </Toolbar.Root>
45
+ <TemplateEditor id={subject.id} template={subject.instructions} classNames='container-max-width' />
46
+ </Layout.Main>
47
+ );
48
+ };
49
+
50
+ export default PromptArticle;
@@ -16,21 +16,29 @@ import { translations } from '../../translations';
16
16
 
17
17
  import { TemplateEditor, type TemplateEditorProps } from './TemplateEditor';
18
18
 
19
+ const FENCE = '```';
20
+
19
21
  const TEMPLATE = trim`
20
22
  {{! System Prompt }}
21
23
 
22
- You are a machine that is an expert chess player.
24
+ You are an expert chess player.
23
25
  The move history of the current game is: {{history}}.
24
26
  If asked to suggest a move explain why it is a good move.
25
27
 
26
28
  {{#each artifacts}}
27
- - {{this}}
29
+ {{this}}
28
30
  {{/each}}
29
31
 
30
32
  Reponse in the format: <suggestion>SUGGESTION</suggestion>
31
33
 
34
+ @dxn:queue:data:B6INSIBY3CBEF4M5VZRYBCMAHQMPYK5AJ:01K24XMVHSZHS97SG1VTVQDM5Z:01K24XPK464FSCKVQJAB2H662M
35
+
32
36
  ---
33
37
 
38
+ ${FENCE}ts
39
+ const x = 100;
40
+ ${FENCE}
41
+
34
42
  {{input}}
35
43
  `;
36
44
 
@@ -49,7 +57,7 @@ const DefaultStory = ({ source }: TemplateEditorProps & { source: string }) => {
49
57
 
50
58
  return (
51
59
  <TemplateEditor
52
- classNames='bg-baseSurface max-is-prose is-full'
60
+ classNames='bg-baseSurface is-full max-is-proseMaxWidth'
53
61
  id={blueprint.id}
54
62
  template={blueprint.instructions}
55
63
  />
@@ -62,7 +70,7 @@ const meta = {
62
70
  render: DefaultStory,
63
71
  decorators: [
64
72
  withTheme,
65
- withLayout({ container: 'column' }),
73
+ withLayout({ layout: 'column' }),
66
74
  withClientProvider({
67
75
  types: [Blueprint.Blueprint],
68
76
  createIdentity: true,
@@ -2,27 +2,26 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { xml } from '@codemirror/lang-xml';
6
5
  import { defaultHighlightStyle, syntaxHighlighting } from '@codemirror/language';
7
6
  import React from 'react';
8
7
 
9
8
  import { type Template } from '@dxos/blueprints';
10
- import { createDocAccessor } from '@dxos/react-client/echo';
9
+ import { createDocAccessor } from '@dxos/echo-db';
11
10
  import { type ThemedClassName, useThemeContext, useTranslation } from '@dxos/react-ui';
11
+ import { useTextEditor } from '@dxos/react-ui-editor';
12
12
  import {
13
13
  createBasicExtensions,
14
14
  createDataExtensions,
15
15
  createMarkdownExtensions,
16
16
  createThemeExtensions,
17
17
  decorateMarkdown,
18
- useTextEditor,
19
- } from '@dxos/react-ui-editor';
20
- import { mx } from '@dxos/react-ui-theme';
18
+ } from '@dxos/ui-editor';
19
+ import { mx } from '@dxos/ui-theme';
21
20
  import { isNonNullable } from '@dxos/util';
22
21
 
23
22
  import { meta } from '../../meta';
24
23
 
25
- import { handlebars } from './handlebars-extension';
24
+ import { handlebars, xmlDecorator } from './extensions';
26
25
 
27
26
  export type TemplateEditorProps = ThemedClassName<{
28
27
  id: string;
@@ -49,14 +48,19 @@ export const TemplateEditor = ({ id, classNames, template, lineNumbers = true }:
49
48
  createBasicExtensions({
50
49
  bracketMatching: false,
51
50
  lineNumbers,
52
- lineWrapping: false,
51
+ lineWrapping: true,
53
52
  placeholder: t('template placeholder'),
54
53
  }),
55
- createThemeExtensions({ themeMode }),
54
+ createThemeExtensions({
55
+ themeMode,
56
+ slots: { content: { className: '!pie-4' } },
57
+ }),
56
58
  createMarkdownExtensions(),
57
- decorateMarkdown(), // TODO(burdon): Move into bundle.
59
+ decorateMarkdown(),
58
60
  handlebars(),
59
- xml(),
61
+ // xml(),
62
+ // NOTE: Since we're using markdown only HTML nodes are parsed.
63
+ xmlDecorator(),
60
64
  syntaxHighlighting(defaultHighlightStyle),
61
65
  ].filter(isNonNullable),
62
66
  };
@@ -3,9 +3,10 @@
3
3
  //
4
4
 
5
5
  import { type Meta } from '@storybook/react-vite';
6
- import React, { useState } from 'react';
6
+ import React, { useCallback, useState } from 'react';
7
7
 
8
8
  import { Blueprint, Template } from '@dxos/blueprints';
9
+ import { Obj } from '@dxos/echo';
9
10
  import { useClient } from '@dxos/react-client';
10
11
  import { withClientProvider } from '@dxos/react-client/testing';
11
12
  import { withLayout, withTheme } from '@dxos/react-ui/testing';
@@ -13,15 +14,15 @@ import { trim } from '@dxos/util';
13
14
 
14
15
  import { translations } from '../../translations';
15
16
 
16
- import { TemplateForm } from './TemplateForm';
17
+ import { type TemplateChangeCallback, TemplateForm } from './TemplateForm';
17
18
 
18
19
  const TEMPLATE = trim`
19
20
  You are a machine that is an expert chess player.
20
21
  The move history of the current game is: {{history}}
21
22
  If asked to suggest a move explain why it is a good move.
22
-
23
+
23
24
  ---
24
-
25
+
25
26
  {{input}},
26
27
  `;
27
28
 
@@ -38,9 +39,16 @@ const DefaultStory = () => {
38
39
  );
39
40
  });
40
41
 
42
+ const handleChange: TemplateChangeCallback = useCallback(
43
+ (mutate) => {
44
+ Obj.change(blueprint, (b) => mutate(b.instructions));
45
+ },
46
+ [blueprint],
47
+ );
48
+
41
49
  return (
42
- <div role='none' className='flex w-[40rem] border border-separator overflow-hidden'>
43
- <TemplateForm id={blueprint.id} template={blueprint.instructions} />
50
+ <div role='none' className='flex is-[40rem] border border-separator overflow-hidden'>
51
+ <TemplateForm id={blueprint.id} template={blueprint.instructions} onChange={handleChange} />
44
52
  </div>
45
53
  );
46
54
  };
@@ -51,7 +59,7 @@ const meta = {
51
59
  render: DefaultStory,
52
60
  decorators: [
53
61
  withTheme,
54
- withLayout({ container: 'column' }),
62
+ withLayout({ layout: 'column' }),
55
63
  withClientProvider({
56
64
  types: [Blueprint.Blueprint],
57
65
  createIdentity: true,