@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
@@ -12,16 +12,11 @@ import * as Schema from 'effect/Schema';
12
12
  import { AiService } from '@dxos/ai';
13
13
  import { AiServiceTestingPreset } from '@dxos/ai/testing';
14
14
  import { AiConversation, makeToolExecutionServiceFromFunctions, makeToolResolverFromFunctions } from '@dxos/assistant';
15
- import { TestHelpers, acquireReleaseResource } from '@dxos/effect';
16
- import {
17
- ComputeEventLogger,
18
- CredentialsService,
19
- FunctionInvocationService,
20
- QueueService,
21
- TracingService,
22
- } from '@dxos/functions';
23
- import { TestDatabaseLayer } from '@dxos/functions/testing';
24
- import { type DataType } from '@dxos/schema';
15
+ import { acquireReleaseResource } from '@dxos/effect';
16
+ import { TestHelpers } from '@dxos/effect/testing';
17
+ import { CredentialsService, QueueService, TracingService } from '@dxos/functions';
18
+ import { FunctionInvocationServiceLayerTestMocked, TestDatabaseLayer } from '@dxos/functions-runtime/testing';
19
+ import { type Message } from '@dxos/types';
25
20
 
26
21
  import { AiChatProcessor, type AiChatServices } from './processor';
27
22
 
@@ -45,10 +40,7 @@ const TestServicesLayer = Layer.mergeAll(
45
40
  // types: [],
46
41
  }),
47
42
  // CredentialsService.configuredLayer([{ service: 'exa.ai', apiKey: EXA_API_KEY }]),
48
- FunctionInvocationService.layerTestMocked({ functions: [] }).pipe(
49
- Layer.provideMerge(ComputeEventLogger.layerFromTracing),
50
- Layer.provideMerge(TracingService.layerNoop),
51
- ),
43
+ FunctionInvocationServiceLayerTestMocked({ functions: [] }).pipe(Layer.provideMerge(TracingService.layerNoop)),
52
44
  );
53
45
 
54
46
  const TestLayer: Layer.Layer<AiChatServices, never, never> = Layer.mergeAll(
@@ -56,7 +48,6 @@ const TestLayer: Layer.Layer<AiChatServices, never, never> = Layer.mergeAll(
56
48
  makeToolResolverFromFunctions([], toolkit),
57
49
  makeToolExecutionServiceFromFunctions(toolkit, toolkit.toLayer({}) as any),
58
50
  CredentialsService.layerFromDatabase(),
59
- ComputeEventLogger.layerFromTracing,
60
51
  ).pipe(Layer.provideMerge(TestServicesLayer), Layer.orDie);
61
52
 
62
53
  // TODO(burdon): Create actual test with mock LLM.
@@ -66,8 +57,8 @@ describe('Chat processor', () => {
66
57
  Effect.fn(
67
58
  function* ({ expect }) {
68
59
  const services = yield* Effect.runtime<AiChatServices>();
69
- const queue = yield* QueueService.createQueue<DataType.Message>();
70
- const conversation = yield* acquireReleaseResource(() => new AiConversation(queue));
60
+ const queue = yield* QueueService.createQueue<Message.Message>();
61
+ const conversation = yield* acquireReleaseResource(() => new AiConversation({ queue }));
71
62
  const processor = new AiChatProcessor(conversation, async () => services);
72
63
  const result = yield* Effect.promise(() => processor.request({ message: 'Hello' }));
73
64
  void processor.cancel();
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Registry, Rx } from '@effect-rx/rx-react';
5
+ import { Atom, Registry } from '@effect-atom/atom-react';
6
6
  import * as Cause from 'effect/Cause';
7
7
  import * as Effect from 'effect/Effect';
8
8
  import * as Exit from 'effect/Exit';
@@ -20,23 +20,23 @@ import {
20
20
  } from '@dxos/ai';
21
21
  import {
22
22
  type AiConversation,
23
- type AiConversationRunParams,
23
+ type AiConversationRunProps,
24
24
  ArtifactDiffResolver,
25
25
  GenerationObserver,
26
26
  createSystemPrompt,
27
27
  } from '@dxos/assistant';
28
28
  import { type Blueprint } from '@dxos/blueprints';
29
29
  import { Obj } from '@dxos/echo';
30
- import { throwCause } from '@dxos/effect';
30
+ import { type Database } from '@dxos/echo';
31
+ import { runAndForwardErrors, throwCause } from '@dxos/effect';
31
32
  import {
32
33
  type CredentialsService,
33
- type DatabaseService,
34
34
  type FunctionInvocationService,
35
35
  type QueueService,
36
36
  type TracingService,
37
37
  } from '@dxos/functions';
38
38
  import { log } from '@dxos/log';
39
- import { type ContentBlock, DataType } from '@dxos/schema';
39
+ import { type ContentBlock, Message } from '@dxos/types';
40
40
 
41
41
  import { type Assistant } from '../types';
42
42
 
@@ -44,7 +44,7 @@ import { updateName } from './update-name';
44
44
 
45
45
  export type AiChatServices =
46
46
  | CredentialsService
47
- | DatabaseService
47
+ | Database.Service
48
48
  | QueueService
49
49
  | FunctionInvocationService
50
50
  | AiService.AiService
@@ -58,7 +58,7 @@ export type AiChatProcessorOptions = {
58
58
  blueprintRegistry?: Blueprint.Registry;
59
59
  observableRegistry?: Registry.Registry;
60
60
  extensions?: ToolContextExtensions;
61
- } & Pick<AiConversationRunParams, 'system'>;
61
+ } & Pick<AiConversationRunProps, 'system'>;
62
62
 
63
63
  const defaultOptions: Partial<AiChatProcessorOptions> = {
64
64
  model: DEFAULT_EDGE_MODEL,
@@ -77,31 +77,31 @@ export type AiRequest = {
77
77
  * Handles streaming responses from the conversation.
78
78
  */
79
79
  export class AiChatProcessor {
80
- private readonly _rx: Registry.Registry;
80
+ private readonly _registry: Registry.Registry;
81
81
 
82
82
  /** External observer. */
83
83
  private readonly _observer: GenerationObserver;
84
84
 
85
+ /** Pending messages (incl. the current user request). */
86
+ private readonly _pending = Atom.make<Message.Message[]>([]);
87
+
88
+ /** Currently streaming message (from the AI service). */
89
+ private readonly _streaming = Atom.make<Option.Option<Message.Message>>(Option.none());
90
+
85
91
  /** Currently active request fiber. */
86
92
  private _fiber: Fiber.Fiber<void, any> | undefined;
87
93
 
88
94
  /** Last request (for retries). */
89
95
  private _lastRequest: AiRequest | undefined;
90
96
 
91
- /** Pending messages (incl. the current user request). */
92
- private readonly _pending = Rx.make<DataType.Message[]>([]);
93
-
94
- /** Currently streaming message (from the AI service). */
95
- private readonly _streaming = Rx.make<Option.Option<DataType.Message>>(Option.none());
96
-
97
97
  /** Streaming state. */
98
- public readonly streaming = Rx.make<boolean>((get) => Option.isSome(get(this._streaming)));
98
+ public readonly streaming = Atom.make<boolean>((get) => Option.isSome(get(this._streaming)));
99
99
 
100
100
  /** Active state. */
101
- public readonly active = Rx.make(false);
101
+ public readonly active = Atom.make(false);
102
102
 
103
103
  /** Array of Messages (incl. the current message being streamed). */
104
- public readonly messages = Rx.make<DataType.Message[]>((get) =>
104
+ public readonly messages = Atom.make<Message.Message[]>((get) =>
105
105
  Option.match(get(this._streaming), {
106
106
  onNone: () => get(this._pending),
107
107
  onSome: (streaming) => [...get(this._pending), streaming],
@@ -109,7 +109,7 @@ export class AiChatProcessor {
109
109
  );
110
110
 
111
111
  /** Last error. */
112
- public readonly error = Rx.make<Option.Option<Error>>(Option.none());
112
+ public readonly error = Atom.make<Option.Option<Error>>(Option.none());
113
113
 
114
114
  constructor(
115
115
  private readonly _conversation: AiConversation,
@@ -118,7 +118,7 @@ export class AiChatProcessor {
118
118
  private readonly _options: AiChatProcessorOptions = defaultOptions,
119
119
  ) {
120
120
  // Initialize registries and defaults before using in other logic.
121
- this._rx = this._options.observableRegistry ?? Registry.make();
121
+ this._registry = this._options.observableRegistry ?? Registry.make();
122
122
  this._observer = GenerationObserver.make({
123
123
  onBlock: this._onBlock,
124
124
  onMessage: this._onMessage,
@@ -144,34 +144,32 @@ export class AiChatProcessor {
144
144
  /**
145
145
  * Initiates a new request.
146
146
  */
147
- async request(requestParam: AiRequest): Promise<void> {
147
+ async request(requestProp: AiRequest): Promise<void> {
148
148
  if (this._fiber) {
149
149
  await this.cancel();
150
150
  }
151
151
 
152
152
  try {
153
- this._lastRequest = requestParam;
154
- this._rx.set(this.error, Option.none());
155
- this._rx.set(this.active, true);
153
+ this._lastRequest = requestProp;
154
+ this._registry.set(this.error, Option.none());
155
+ this._registry.set(this.active, true);
156
+
157
+ const services = await this._services();
156
158
 
157
159
  // Create request.
158
160
  const request = this._conversation.createRequest({
159
161
  system: this._options.system,
160
- prompt: requestParam.message,
162
+ prompt: requestProp.message,
161
163
  observer: this._observer,
162
164
  });
163
165
 
164
- const runtime = await this._services();
165
-
166
166
  // Create fiber.
167
167
  this._fiber = request.pipe(
168
168
  Effect.provide(AiService.model(this._options.model ?? DEFAULT_EDGE_MODEL)),
169
-
170
169
  // TODO(dmaretskyi): Move ArtifactDiffResolver upstream.
171
170
  Effect.provideService(ArtifactDiffResolver, this._artifactDiffResolver),
172
-
173
171
  Effect.asVoid,
174
- Runtime.runFork(runtime), // Runs in the background.
172
+ Runtime.runFork(services), // Runs in the background.
175
173
  );
176
174
 
177
175
  // Execute request.
@@ -180,15 +178,15 @@ export class AiChatProcessor {
180
178
  throwCause(response.cause);
181
179
  }
182
180
 
183
- this._rx.set(this.error, Option.none());
181
+ this._registry.set(this.error, Option.none());
184
182
  this._lastRequest = undefined;
185
183
  this._fiber = undefined;
186
- } catch (error) {
187
- log.error('request failed', { error });
188
- this._rx.set(this.error, Option.some(new Error('AI service error', { cause: error })));
184
+ } catch (err) {
185
+ log.error('request failed', { error: err });
186
+ this._registry.set(this.error, Option.some(new Error('AI service error', { cause: err })));
189
187
  } finally {
188
+ this._registry.set(this.active, false);
190
189
  this._fiber = undefined;
191
- this._rx.set(this.active, false);
192
190
  }
193
191
  }
194
192
 
@@ -196,7 +194,7 @@ export class AiChatProcessor {
196
194
  * Cancels the current request.
197
195
  */
198
196
  async cancel(): Promise<void> {
199
- await Effect.runPromise(
197
+ await runAndForwardErrors(
200
198
  Effect.gen(this, function* () {
201
199
  if (this._fiber) {
202
200
  yield* this._fiber.pipe(Fiber.interrupt);
@@ -205,7 +203,7 @@ export class AiChatProcessor {
205
203
  );
206
204
 
207
205
  this._fiber = undefined;
208
- this._rx.set(this.active, false);
206
+ this._registry.set(this.active, false);
209
207
  }
210
208
 
211
209
  /**
@@ -233,7 +231,7 @@ export class AiChatProcessor {
233
231
  // artifacts.map(async (artifact) => {
234
232
  // const {
235
233
  // objects: [object],
236
- // } = await space.db.query(Filter.ids(artifact.id)).run();
234
+ // } = await space.db.query(Filter.id(artifact.id)).run();
237
235
  // if (!object) {
238
236
  // return;
239
237
  // }
@@ -250,22 +248,22 @@ export class AiChatProcessor {
250
248
  };
251
249
 
252
250
  private _onMessage = Effect.fn(
253
- function* (this: AiChatProcessor, message: DataType.Message) {
254
- this._rx.set(this._streaming, Option.none());
255
- this._rx.update(this._pending, (pending) => [...pending, message]);
251
+ function* (this: AiChatProcessor, message: Message.Message) {
252
+ this._registry.set(this._streaming, Option.none());
253
+ this._registry.update(this._pending, (pending) => [...pending, message]);
256
254
  }.bind(this),
257
255
  );
258
256
 
259
257
  private _onBlock = Effect.fn(
260
258
  function* (this: AiChatProcessor, block: ContentBlock.Any) {
261
- this._rx.update(this._streaming, (streaming) => {
259
+ this._registry.update(this._streaming, (streaming) => {
262
260
  const blocks = streaming.pipe(
263
- Option.map((streaming) => streaming.blocks.filter((b) => !b.pending)),
261
+ Option.map((streaming) => streaming.blocks.filter((b: ContentBlock.Any) => !b.pending)),
264
262
  Option.getOrElse(() => []),
265
263
  );
266
264
 
267
265
  return Option.some(
268
- Obj.make(DataType.Message, {
266
+ Obj.make(Message.Message, {
269
267
  created: new Date().toISOString(),
270
268
  sender: { role: 'assistant' },
271
269
  blocks: [...blocks, block],
@@ -9,6 +9,7 @@ import * as Runtime from 'effect/Runtime';
9
9
 
10
10
  import { AiService, DEFAULT_EDGE_MODEL, type ModelName } from '@dxos/ai';
11
11
  import { type AiConversation, AiSession } from '@dxos/assistant';
12
+ import { Obj } from '@dxos/echo';
12
13
  import { throwCause } from '@dxos/effect';
13
14
  import { trim } from '@dxos/util';
14
15
 
@@ -24,7 +25,6 @@ export const updateName = async (
24
25
  runtime: Runtime.Runtime<AiChatServices>,
25
26
  conversation: AiConversation,
26
27
  chat: Assistant.Chat,
27
- // TODO(burdon): Use simpler model.
28
28
  model: ModelName = DEFAULT_EDGE_MODEL,
29
29
  ): Promise<void> => {
30
30
  const history = await conversation.getHistory();
@@ -44,7 +44,9 @@ export const updateName = async (
44
44
  const message = messages.find((message) => message.sender.role === 'assistant');
45
45
  const title = message?.blocks.find((block) => block._tag === 'text')?.text;
46
46
  if (title) {
47
- chat.name = title;
47
+ Obj.change(chat, (c) => {
48
+ c.name = title;
49
+ });
48
50
  }
49
51
  }),
50
52
  Runtime.runFork(runtime), // Run in the background.
@@ -5,14 +5,10 @@
5
5
  import { type Queue, Ref, type Space, getSpace } from '@dxos/client/echo';
6
6
  import { type Sequence, type SequenceEvent, type SequenceLogger } from '@dxos/conductor';
7
7
  import { DXN, Key, Obj } from '@dxos/echo';
8
- import {
9
- InvocationOutcome,
10
- InvocationTraceEndEvent,
11
- type InvocationTraceEvent,
12
- InvocationTraceEventType,
13
- InvocationTraceStartEvent,
14
- TraceEvent,
15
- } from '@dxos/functions';
8
+ import { InvocationTraceEndEvent, InvocationTraceEventType, InvocationTraceStartEvent } from '@dxos/functions-runtime';
9
+ import { TraceEvent } from '@dxos/functions-runtime';
10
+ import { InvocationOutcome } from '@dxos/functions-runtime';
11
+ import { type InvocationTraceEvent } from '@dxos/functions-runtime';
16
12
  import { invariant } from '@dxos/invariant';
17
13
  import { QueueSubspaceTags } from '@dxos/keys';
18
14
 
@@ -27,7 +23,10 @@ export class QueueLogger implements SequenceLogger {
27
23
  let dxn = this._space.properties.invocationTraceQueue?.dxn;
28
24
  if (!dxn) {
29
25
  dxn = DXN.fromQueue(QueueSubspaceTags.TRACE, this._space.id, Key.ObjectId.random());
30
- this._space.properties.invocationTraceQueue = Ref.fromDXN(dxn);
26
+ const newDxn = dxn;
27
+ Obj.change(this._space.properties, (p) => {
28
+ p.invocationTraceQueue = Ref.fromDXN(newDxn);
29
+ });
31
30
  }
32
31
  this._invocationTraceQueue = this._space.queues.get(dxn);
33
32
  }
@@ -5,21 +5,22 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Obj } from '@dxos/echo';
8
- import { ContextQueueService, DatabaseService } from '@dxos/functions';
8
+ import { Database } from '@dxos/echo';
9
+ import { ContextQueueService } from '@dxos/functions';
9
10
  import { faker } from '@dxos/random';
10
11
  import { renderObjectLink } from '@dxos/react-ui-components';
11
- import { type ContentBlock, DataType } from '@dxos/schema';
12
+ import { type Actor, type ContentBlock, Message, Organization } from '@dxos/types';
12
13
  import { trim } from '@dxos/util';
13
14
 
14
- export const createMessage = (role: DataType.ActorRole, blocks: ContentBlock.Any[]): DataType.Message => {
15
- return Obj.make(DataType.Message, {
15
+ export const createMessage = (role: Actor.Role, blocks: ContentBlock.Any[]): Message.Message => {
16
+ return Obj.make(Message.Message, {
16
17
  created: new Date().toISOString(),
17
18
  sender: { role },
18
19
  blocks,
19
20
  });
20
21
  };
21
22
 
22
- export type MessageGenerator = Effect.Effect<void, never, DatabaseService | ContextQueueService>;
23
+ export type MessageGenerator = Effect.Effect<void, never, Database.Service | ContextQueueService>;
23
24
 
24
25
  export const createMessageGenerator = (): MessageGenerator[] => [
25
26
  Effect.gen(function* () {
@@ -70,9 +71,9 @@ export const createMessageGenerator = (): MessageGenerator[] => [
70
71
  [
71
72
  faker.lorem.paragraph(),
72
73
  '',
73
- ...Array.from({ length: faker.number.int({ min: 3, max: 5 }) }).map(
74
- (_, idx) => `${idx + 1}. ${faker.lorem.paragraph()}`,
75
- ),
74
+ ...Array.from({
75
+ length: faker.number.int({ min: 3, max: 5 }),
76
+ }).map((_, idx) => `${idx + 1}. ${faker.lorem.paragraph()}`),
76
77
  ].join('\n') + '\n',
77
78
  },
78
79
  ]),
@@ -145,11 +146,11 @@ export const createMessageGenerator = (): MessageGenerator[] => [
145
146
 
146
147
  Effect.gen(function* () {
147
148
  const { queue } = yield* ContextQueueService;
148
- const { db } = yield* DatabaseService;
149
- const obj1 = db.add(Obj.make(DataType.Organization, { name: 'DXOS' }));
150
- // const obj2 = db.add(Obj.make(DataType.Person, { fullName: 'Alice' }));
151
- // const obj3 = db.add(Obj.make(DataType.Person, { fullName: 'Bob' }));
152
- // const obj4 = db.add(Obj.make(DataType.Person, { fullName: 'Charlie' }));
149
+ const { db } = yield* Database.Service;
150
+ const obj1 = db.add(Obj.make(Organization.Organization, { name: 'DXOS' }));
151
+ // const obj2 = db.add(Obj.make(Person.Person, { fullName: 'Alice' }));
152
+ // const obj3 = db.add(Obj.make(Person.Person, { fullName: 'Bob' }));
153
+ // const obj4 = db.add(Obj.make(Person.Person, { fullName: 'Charlie' }));
153
154
  yield* Effect.promise(() =>
154
155
  queue.append([
155
156
  createMessage('assistant', [
@@ -2,10 +2,12 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Obj } from '@dxos/echo';
5
+ import { Obj, type Type } from '@dxos/echo';
6
6
 
7
7
  import { type ApiAuthorization, type BaseServiceRegistry, ServiceType, categoryIcons } from '../types';
8
8
 
9
+ const ServiceTypeSchema = ServiceType as unknown as Type.Obj.Any;
10
+
9
11
  export class MockServiceRegistry implements BaseServiceRegistry {
10
12
  async queryServices(): Promise<ServiceType[]> {
11
13
  return TEST_SERVICES;
@@ -48,7 +50,7 @@ const VISUAL_CROSSING_CREDENTIALS: ApiAuthorization = {
48
50
  // - e.g., https://github.com/konfig-sdks/openapi-examples/blob/main/xkcd/openapi.yaml
49
51
 
50
52
  const TEST_SERVICES: ServiceType[] = [
51
- Obj.make(ServiceType, {
53
+ Obj.make(ServiceTypeSchema, {
52
54
  serviceId: 'amadeus.com/service/FlightSearch',
53
55
  name: 'Amadeus Flight Search',
54
56
  description: 'Search for local and international flights.',
@@ -62,7 +64,7 @@ const TEST_SERVICES: ServiceType[] = [
62
64
  ],
63
65
  }),
64
66
 
65
- Obj.make(ServiceType, {
67
+ Obj.make(ServiceTypeSchema, {
66
68
  serviceId: 'amadeus.com/service/HotelSearch',
67
69
  name: 'Amadeus Hotel Search',
68
70
  description: 'Search for local and international hotels.',
@@ -76,7 +78,7 @@ const TEST_SERVICES: ServiceType[] = [
76
78
  ],
77
79
  }),
78
80
 
79
- Obj.make(ServiceType, {
81
+ Obj.make(ServiceTypeSchema, {
80
82
  serviceId: 'visualcrossing.com/service/Weather',
81
83
  name: 'Visual Crossing Weather',
82
84
  description: 'Search for global weather forecasts.',
@@ -91,7 +93,7 @@ const TEST_SERVICES: ServiceType[] = [
91
93
  }),
92
94
 
93
95
  // TODO(burdon): Needs auth.
94
- Obj.make(ServiceType, {
96
+ Obj.make(ServiceTypeSchema, {
95
97
  serviceId: 'abstractapi.com/service/GeoLocation',
96
98
  name: 'Abstract GeoLocation',
97
99
  description: 'Get the location of any IP address.',
@@ -109,7 +111,7 @@ const TEST_SERVICES: ServiceType[] = [
109
111
  //
110
112
 
111
113
  ...Array.from({ length: 20 }, (_, i) =>
112
- Obj.make(ServiceType, {
114
+ Obj.make(ServiceTypeSchema, {
113
115
  serviceId: `example.com/service/test-${i}`,
114
116
  name: `Test ${i}`,
115
117
  description: `Test ${i}`,
@@ -2,8 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Blueprint } from '@dxos/blueprints';
5
+ import { Blueprint, Prompt } from '@dxos/blueprints';
6
6
  import { Sequence } from '@dxos/conductor';
7
+ import { Type } from '@dxos/echo';
7
8
  import { type Resource } from '@dxos/react-ui';
8
9
 
9
10
  import { meta } from './meta';
@@ -22,6 +23,17 @@ export const translations = [
22
23
  'object name placeholder': 'New blueprint',
23
24
  'rename object label': 'Rename blueprint',
24
25
  'delete object label': 'Delete blueprint',
26
+ 'object deleted label': 'Blueprint deleted',
27
+ },
28
+ [Type.getTypename(Prompt.Prompt)]: {
29
+ 'typename label': 'Prompt',
30
+ 'typename label_zero': 'Prompts',
31
+ 'typename label_one': 'Prompt',
32
+ 'typename label_other': 'Prompts',
33
+ 'object name placeholder': 'New prompt',
34
+ 'rename object label': 'Rename prompt',
35
+ 'delete object label': 'Delete prompt',
36
+ 'object deleted label': 'Prompt deleted',
25
37
  },
26
38
  // TODO(burdon): From conductor.
27
39
  [Sequence.typename]: {
@@ -32,12 +44,14 @@ export const translations = [
32
44
  'object name placeholder': 'New sequence',
33
45
  'rename object label': 'Rename sequence',
34
46
  'delete object label': 'Delete sequence',
47
+ 'object deleted label': 'Sequence deleted',
35
48
  },
36
49
  [Assistant.Chat.typename]: {
37
50
  'typename label': 'AI Chat',
38
51
  'object name placeholder': 'New AI Chat',
39
52
  'rename object label': 'Rename AI Chat',
40
53
  'delete object label': 'Delete AI Chat',
54
+ 'object deleted label': 'AI Chat deleted',
41
55
  },
42
56
  // TODO(burdon): Reconcile with react-ui-chat.
43
57
  [meta.id]: {
@@ -61,11 +75,11 @@ export const translations = [
61
75
  'type filter placeholder': 'Type',
62
76
  'any type filter label': 'Any',
63
77
  'no blueprint message': 'No active blueprints',
64
- 'calling tool label': 'Calling tool...',
65
- 'calling label': 'Calling',
66
- 'error label': 'Error',
78
+ 'tool call label': 'Calling tool...',
79
+ 'tool result label': 'Success',
80
+ 'tool error label': 'Tool call failed',
67
81
 
68
- 'sequence logs label': 'Logs',
82
+ 'invocations label': 'Invocations',
69
83
 
70
84
  'assistant dialog title': 'Assistant',
71
85
  'open assistant label': 'Open assistant',
@@ -73,13 +87,10 @@ export const translations = [
73
87
  'no tools': 'No tools are configured',
74
88
  'no results': 'No results',
75
89
 
76
- 'button retry': 'Retry',
77
- 'button suggestion': 'Assistant suggestion',
78
- 'button select option': 'Select option',
79
- 'button cancel': 'Cancel',
80
- 'button save': 'Save',
81
- 'button run': 'Run',
82
- 'button new thread': 'New Chat',
90
+ 'cancel button': 'Cancel',
91
+ 'save button': 'Save',
92
+ 'new thread button': 'New Chat',
93
+ 'rename thread button': 'Rename Chat',
83
94
  'chat history label': 'Chat History',
84
95
  'chat update name label': 'Update AI Chat name',
85
96
 
@@ -88,10 +99,10 @@ export const translations = [
88
99
 
89
100
  'search placeholder': 'Search...',
90
101
  'prompt placeholder': 'Enter question or command...',
91
- 'button context objects': 'Add to context',
92
- 'button context settings': 'Chat settings',
93
- 'button microphone': 'Click to speak',
94
- 'button cancel processing': 'Stop processing',
102
+ 'context objects button': 'Add to context',
103
+ 'context settings button': 'Chat settings',
104
+ 'microphone button': 'Click to speak',
105
+ 'cancel processing button': 'Stop processing',
95
106
  'blueprints in context title': 'Blueprints',
96
107
  'objects in context title': 'Content',
97
108
  'remove object in context label': 'Remove document',
@@ -4,8 +4,8 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
- import { Obj, Ref, Type } from '@dxos/echo';
8
- import { FormAnnotation, LabelAnnotation } from '@dxos/echo/internal';
7
+ import { Obj, Type } from '@dxos/echo';
8
+ import { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';
9
9
  import { Queue } from '@dxos/echo-db';
10
10
 
11
11
  import { LLM_PROVIDERS } from './defs';
@@ -15,11 +15,11 @@ import { LLM_PROVIDERS } from './defs';
15
15
  */
16
16
  export const Chat = Schema.Struct({
17
17
  name: Schema.String.pipe(Schema.optional),
18
- queue: Type.Ref(Queue).pipe(FormAnnotation.set(false)),
18
+ queue: Type.Ref(Queue).pipe(FormInputAnnotation.set(false)),
19
19
  // TODO(dmaretskyi): Eventually this and the message queue will be the same.
20
- traceQueue: Type.Ref(Queue).pipe(FormAnnotation.set(false), Schema.optional),
20
+ traceQueue: Type.Ref(Queue).pipe(FormInputAnnotation.set(false), Schema.optional),
21
21
  }).pipe(
22
- Type.Obj({
22
+ Type.object({
23
23
  typename: 'dxos.org/type/assistant/Chat',
24
24
  version: '0.2.0',
25
25
  }),
@@ -28,20 +28,19 @@ export const Chat = Schema.Struct({
28
28
 
29
29
  export interface Chat extends Schema.Schema.Type<typeof Chat> {}
30
30
 
31
- export const makeChat = ({ name, queue }: { name?: string; queue: Queue }) =>
32
- Obj.make(Chat, { name, queue: Ref.fromDXN(queue.dxn) });
31
+ export const make = (props: Obj.MakeProps<typeof Chat>) => Obj.make(Chat, props);
33
32
 
34
33
  /**
35
34
  * Relation between a Chat and companion objects (e.g., artifacts).
36
35
  */
37
36
  export const CompanionTo = Schema.Struct({
38
- id: Type.ObjectId,
37
+ id: Obj.ID,
39
38
  }).pipe(
40
- Type.Relation({
39
+ Type.relation({
41
40
  typename: 'dxos.org/relation/assistant/CompanionTo',
42
41
  version: '0.1.0',
43
42
  source: Chat,
44
- target: Type.Expando,
43
+ target: Type.Obj,
45
44
  }),
46
45
  );
47
46