@dxos/plugin-assistant 0.8.4-main.406dc2a → 0.8.4-main.43cb759274

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 (844) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +439 -0
  3. package/README.md +1 -1
  4. package/dist/lib/neutral/AgentArticle-OYQPCK3Q.mjs +161 -0
  5. package/dist/lib/neutral/AgentArticle-OYQPCK3Q.mjs.map +7 -0
  6. package/dist/lib/neutral/AgentProperties-W6LD56IB.mjs +40 -0
  7. package/dist/lib/neutral/AgentProperties-W6LD56IB.mjs.map +7 -0
  8. package/dist/lib/neutral/AssistantPlugin.mjs +10 -0
  9. package/dist/lib/neutral/AssistantPlugin.node.mjs +66 -0
  10. package/dist/lib/neutral/AssistantPlugin.node.mjs.map +7 -0
  11. package/dist/lib/neutral/AssistantPlugin.workerd.mjs +40 -0
  12. package/dist/lib/neutral/AssistantPlugin.workerd.mjs.map +7 -0
  13. package/dist/lib/neutral/AssistantSettings-GG52BLKS.mjs +40 -0
  14. package/dist/lib/neutral/AssistantSettings-GG52BLKS.mjs.map +7 -0
  15. package/dist/lib/neutral/BlueprintArticle-ZBOZNZM7.mjs +27 -0
  16. package/dist/lib/neutral/BlueprintArticle-ZBOZNZM7.mjs.map +7 -0
  17. package/dist/lib/neutral/ChatArticle-PWD4OEFZ.mjs +8 -0
  18. package/dist/lib/neutral/ChatCompanion-TPY7HF3C.mjs +122 -0
  19. package/dist/lib/neutral/ChatCompanion-TPY7HF3C.mjs.map +7 -0
  20. package/dist/lib/neutral/ChatDialog-DCA6FLOV.mjs +73 -0
  21. package/dist/lib/neutral/ChatDialog-DCA6FLOV.mjs.map +7 -0
  22. package/dist/lib/neutral/PlanArticle-TS5ULWYS.mjs +28 -0
  23. package/dist/lib/neutral/PlanArticle-TS5ULWYS.mjs.map +7 -0
  24. package/dist/lib/neutral/RoutineArticle-5NYXHRG6.mjs +119 -0
  25. package/dist/lib/neutral/RoutineArticle-5NYXHRG6.mjs.map +7 -0
  26. package/dist/lib/neutral/RoutineList-SO5ETHNT.mjs +48 -0
  27. package/dist/lib/neutral/RoutineList-SO5ETHNT.mjs.map +7 -0
  28. package/dist/lib/neutral/RoutineProperties-FISLMW2R.mjs +17 -0
  29. package/dist/lib/neutral/RoutineProperties-FISLMW2R.mjs.map +7 -0
  30. package/dist/lib/neutral/TracePanel-CHJHFTTQ.mjs +136 -0
  31. package/dist/lib/neutral/TracePanel-CHJHFTTQ.mjs.map +7 -0
  32. package/dist/lib/neutral/TriggerStatus-X7Y5JFZJ.mjs +93 -0
  33. package/dist/lib/neutral/TriggerStatus-X7Y5JFZJ.mjs.map +7 -0
  34. package/dist/lib/neutral/ai-context-IABBIEHG.mjs +42 -0
  35. package/dist/lib/neutral/ai-context-IABBIEHG.mjs.map +7 -0
  36. package/dist/lib/neutral/ai-service-3SH2UQIR.mjs +42 -0
  37. package/dist/lib/neutral/ai-service-3SH2UQIR.mjs.map +7 -0
  38. package/dist/lib/neutral/app-graph-builder-RJW5O57E.mjs +199 -0
  39. package/dist/lib/neutral/app-graph-builder-RJW5O57E.mjs.map +7 -0
  40. package/dist/lib/neutral/blueprint-definition-VXJYQ5AE.mjs +32 -0
  41. package/dist/lib/neutral/blueprint-definition-VXJYQ5AE.mjs.map +7 -0
  42. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  43. package/dist/lib/neutral/capabilities/index.mjs +37 -0
  44. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  45. package/dist/lib/neutral/chunk-47OH7ZF6.mjs +8 -0
  46. package/dist/lib/neutral/chunk-47OH7ZF6.mjs.map +7 -0
  47. package/dist/lib/neutral/chunk-5H6UJHLF.mjs +30 -0
  48. package/dist/lib/neutral/chunk-5H6UJHLF.mjs.map +7 -0
  49. package/dist/lib/neutral/chunk-6BUTAYVO.mjs +123 -0
  50. package/dist/lib/neutral/chunk-6BUTAYVO.mjs.map +7 -0
  51. package/dist/lib/neutral/chunk-A2XIILMZ.mjs +107 -0
  52. package/dist/lib/neutral/chunk-A2XIILMZ.mjs.map +7 -0
  53. package/dist/lib/neutral/chunk-UWI53RCD.mjs +386 -0
  54. package/dist/lib/neutral/chunk-UWI53RCD.mjs.map +7 -0
  55. package/dist/lib/neutral/chunk-XYHPOGTK.mjs +43 -0
  56. package/dist/lib/neutral/chunk-XYHPOGTK.mjs.map +7 -0
  57. package/dist/lib/neutral/companion-chat-provisioner-7RTSXL6M.mjs +116 -0
  58. package/dist/lib/neutral/companion-chat-provisioner-7RTSXL6M.mjs.map +7 -0
  59. package/dist/lib/neutral/components/index.mjs +2384 -0
  60. package/dist/lib/neutral/components/index.mjs.map +7 -0
  61. package/dist/lib/neutral/containers/index.mjs +29 -0
  62. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  63. package/dist/lib/neutral/create-chat-67GZNG3T.mjs +54 -0
  64. package/dist/lib/neutral/create-chat-67GZNG3T.mjs.map +7 -0
  65. package/dist/lib/neutral/create-object-XPVVVEKF.mjs +89 -0
  66. package/dist/lib/neutral/create-object-XPVVVEKF.mjs.map +7 -0
  67. package/dist/lib/neutral/edge-model-resolver-7SMCGDRL.mjs +50 -0
  68. package/dist/lib/neutral/edge-model-resolver-7SMCGDRL.mjs.map +7 -0
  69. package/dist/lib/neutral/ensure-companion-chat-AMOF3C66.mjs +58 -0
  70. package/dist/lib/neutral/ensure-companion-chat-AMOF3C66.mjs.map +7 -0
  71. package/dist/lib/neutral/execution-graph/index.mjs +658 -0
  72. package/dist/lib/neutral/execution-graph/index.mjs.map +7 -0
  73. package/dist/lib/neutral/hooks/index.mjs +965 -0
  74. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  75. package/dist/lib/neutral/index.mjs +32 -0
  76. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs +24 -0
  77. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs.map +7 -0
  78. package/dist/lib/neutral/markdown-KTBFOMFM.mjs +110 -0
  79. package/dist/lib/neutral/markdown-KTBFOMFM.mjs.map +7 -0
  80. package/dist/lib/neutral/meta.json +1 -0
  81. package/dist/lib/neutral/meta.mjs +12 -0
  82. package/dist/lib/neutral/migrations-7DEMVBOG.mjs +28 -0
  83. package/dist/lib/neutral/migrations-7DEMVBOG.mjs.map +7 -0
  84. package/dist/lib/neutral/on-create-space-Q2R7OSP6.mjs +19 -0
  85. package/dist/lib/neutral/on-create-space-Q2R7OSP6.mjs.map +7 -0
  86. package/dist/lib/neutral/operation-handler-SF36MOB5.mjs +13 -0
  87. package/dist/lib/neutral/operation-handler-SF36MOB5.mjs.map +7 -0
  88. package/dist/lib/neutral/operations/index.mjs +8 -0
  89. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  90. package/dist/lib/neutral/plugin.mjs +16 -0
  91. package/dist/lib/neutral/plugin.mjs.map +7 -0
  92. package/dist/lib/neutral/react-surface-XRTBW5OJ.mjs +174 -0
  93. package/dist/lib/neutral/react-surface-XRTBW5OJ.mjs.map +7 -0
  94. package/dist/lib/neutral/resolve-navigation-targets-ZHIMMH7L.mjs +22 -0
  95. package/dist/lib/neutral/resolve-navigation-targets-ZHIMMH7L.mjs.map +7 -0
  96. package/dist/lib/neutral/run-prompt-in-new-chat-NRDYPCJK.mjs +102 -0
  97. package/dist/lib/neutral/run-prompt-in-new-chat-NRDYPCJK.mjs.map +7 -0
  98. package/dist/lib/neutral/set-current-chat-VWBPSIMZ.mjs +48 -0
  99. package/dist/lib/neutral/set-current-chat-VWBPSIMZ.mjs.map +7 -0
  100. package/dist/lib/neutral/settings-W4BLWQ53.mjs +28 -0
  101. package/dist/lib/neutral/settings-W4BLWQ53.mjs.map +7 -0
  102. package/dist/lib/neutral/state-H3G7QCU6.mjs +28 -0
  103. package/dist/lib/neutral/state-H3G7QCU6.mjs.map +7 -0
  104. package/dist/lib/neutral/testing.mjs +8 -0
  105. package/dist/lib/neutral/testing.mjs.map +7 -0
  106. package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs +21 -0
  107. package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs.map +7 -0
  108. package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs +14 -0
  109. package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs.map +7 -0
  110. package/dist/lib/neutral/translations.mjs +175 -0
  111. package/dist/lib/neutral/translations.mjs.map +7 -0
  112. package/dist/lib/neutral/types/index.mjs +20 -0
  113. package/dist/lib/neutral/types/index.mjs.map +7 -0
  114. package/dist/lib/neutral/update-chat-name-ENXRUMDJ.mjs +54 -0
  115. package/dist/lib/neutral/update-chat-name-ENXRUMDJ.mjs.map +7 -0
  116. package/dist/types/src/AssistantPlugin.d.ts +4 -1
  117. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  118. package/dist/types/src/AssistantPlugin.node.d.ts +5 -0
  119. package/dist/types/src/AssistantPlugin.node.d.ts.map +1 -0
  120. package/dist/types/src/AssistantPlugin.test.d.ts +2 -0
  121. package/dist/types/src/AssistantPlugin.test.d.ts.map +1 -0
  122. package/dist/types/src/AssistantPlugin.workerd.d.ts +4 -0
  123. package/dist/types/src/AssistantPlugin.workerd.d.ts.map +1 -0
  124. package/dist/types/src/blueprints/assistant/blueprint.d.ts +4 -0
  125. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -0
  126. package/dist/types/src/blueprints/assistant/blueprint.node.test.d.ts +2 -0
  127. package/dist/types/src/blueprints/assistant/blueprint.node.test.d.ts.map +1 -0
  128. package/dist/types/src/blueprints/assistant/index.d.ts +2 -0
  129. package/dist/types/src/blueprints/assistant/index.d.ts.map +1 -0
  130. package/dist/types/src/blueprints/index.d.ts +2 -0
  131. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  132. package/dist/types/src/capabilities/ai-context.d.ts +6 -0
  133. package/dist/types/src/capabilities/ai-context.d.ts.map +1 -0
  134. package/dist/types/src/capabilities/ai-service.d.ts +4 -2
  135. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
  136. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  137. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  138. package/dist/types/src/capabilities/blueprint-definition.d.ts +4 -6
  139. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  140. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts +9 -0
  141. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -0
  142. package/dist/types/src/capabilities/create-object.d.ts +31 -0
  143. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  144. package/dist/types/src/capabilities/edge-model-resolver.d.ts +6 -3
  145. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
  146. package/dist/types/src/capabilities/index.d.ts +57 -12
  147. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  148. package/dist/types/src/capabilities/local-model-resolver.d.ts +9 -3
  149. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
  150. package/dist/types/src/capabilities/markdown.d.ts +5 -0
  151. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  152. package/dist/types/src/capabilities/migrations.d.ts +6 -0
  153. package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
  154. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  155. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  156. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  157. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  158. package/dist/types/src/capabilities/settings.d.ts +4 -2
  159. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  160. package/dist/types/src/capabilities/state.d.ts +19 -2
  161. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  162. package/dist/types/src/capabilities/toolkit.d.ts +4 -2
  163. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  164. package/dist/types/src/components/AgentProperties/AgentProperties.d.ts +7 -0
  165. package/dist/types/src/components/AgentProperties/AgentProperties.d.ts.map +1 -0
  166. package/dist/types/src/components/AgentProperties/AgentProperties.stories.d.ts +15 -0
  167. package/dist/types/src/components/AgentProperties/AgentProperties.stories.d.ts.map +1 -0
  168. package/dist/types/src/components/AgentProperties/index.d.ts +2 -0
  169. package/dist/types/src/components/AgentProperties/index.d.ts.map +1 -0
  170. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +4 -4
  171. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  172. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts +15 -0
  173. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -0
  174. package/dist/types/src/components/AssistantSettings/index.d.ts +1 -1
  175. package/dist/types/src/components/AssistantSettings/index.d.ts.map +1 -1
  176. package/dist/types/src/components/Chat/Chat.d.ts +42 -33
  177. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  178. package/dist/types/src/components/Chat/context.d.ts +29 -0
  179. package/dist/types/src/components/Chat/context.d.ts.map +1 -0
  180. package/dist/types/src/components/Chat/events.d.ts +5 -1
  181. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  182. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts +2 -1
  183. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  184. package/dist/types/src/components/ChatPrompt/ChatMcpErrors.d.ts +12 -0
  185. package/dist/types/src/components/ChatPrompt/ChatMcpErrors.d.ts.map +1 -0
  186. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +10 -7
  187. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  188. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts +19 -0
  189. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -0
  190. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
  191. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts +28 -0
  192. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts.map +1 -0
  193. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +5 -5
  194. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  195. package/dist/types/src/components/ChatPrompt/ChatStatus.d.ts +20 -0
  196. package/dist/types/src/components/ChatPrompt/ChatStatus.d.ts.map +1 -0
  197. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
  198. package/dist/types/src/components/ChatPrompt/index.d.ts +3 -0
  199. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
  200. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts +14 -0
  201. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts.map +1 -0
  202. package/dist/types/src/components/ChatThread/ChatThread.d.ts +11 -11
  203. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  204. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +15 -262
  205. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  206. package/dist/types/src/components/ChatThread/Link.d.ts +2 -2
  207. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
  208. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +42 -0
  209. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -0
  210. package/dist/types/src/components/ChatThread/registry.d.ts +19 -1
  211. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  212. package/dist/types/src/components/ChatThread/sync.d.ts +51 -18
  213. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  214. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts +18 -0
  215. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts.map +1 -0
  216. package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts +2 -0
  217. package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts.map +1 -0
  218. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts +8 -0
  219. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts.map +1 -0
  220. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts +25 -0
  221. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts.map +1 -0
  222. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts +18 -0
  223. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts.map +1 -0
  224. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts +9 -0
  225. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts.map +1 -0
  226. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts +14 -0
  227. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts.map +1 -0
  228. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts +12 -0
  229. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts.map +1 -0
  230. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts +12 -0
  231. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts.map +1 -0
  232. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts +11 -0
  233. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts.map +1 -0
  234. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts +5 -0
  235. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts.map +1 -0
  236. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts +9 -0
  237. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts.map +1 -0
  238. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts +15 -0
  239. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts.map +1 -0
  240. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts +5 -0
  241. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts.map +1 -0
  242. package/dist/types/src/components/ChatThread/widgets/index.d.ts +10 -0
  243. package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -0
  244. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +11 -0
  245. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -0
  246. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +7 -0
  247. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -0
  248. package/dist/types/src/components/ProcessTree/index.d.ts +2 -0
  249. package/dist/types/src/components/ProcessTree/index.d.ts.map +1 -0
  250. package/dist/types/src/components/RoutineProperties/RoutineProperties.d.ts +7 -0
  251. package/dist/types/src/components/RoutineProperties/RoutineProperties.d.ts.map +1 -0
  252. package/dist/types/src/components/RoutineProperties/RoutineProperties.stories.d.ts +15 -0
  253. package/dist/types/src/components/RoutineProperties/RoutineProperties.stories.d.ts.map +1 -0
  254. package/dist/types/src/components/RoutineProperties/index.d.ts +2 -0
  255. package/dist/types/src/components/RoutineProperties/index.d.ts.map +1 -0
  256. package/dist/types/src/components/TaskList/TaskList.d.ts +10 -0
  257. package/dist/types/src/components/TaskList/TaskList.d.ts.map +1 -0
  258. package/dist/types/src/components/TaskList/TaskList.stories.d.ts +16 -0
  259. package/dist/types/src/components/TaskList/TaskList.stories.d.ts.map +1 -0
  260. package/dist/types/src/components/TaskList/index.d.ts +2 -0
  261. package/dist/types/src/components/TaskList/index.d.ts.map +1 -0
  262. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +10 -6
  263. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  264. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +1 -250
  265. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  266. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +12 -3
  267. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  268. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +2 -251
  269. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  270. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  271. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  272. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  273. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  274. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  275. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +9 -16
  276. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  277. package/dist/types/src/components/Toolbox/Toolbox.d.ts +14 -13
  278. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  279. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +1 -249
  280. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  281. package/dist/types/src/components/index.d.ts +6 -11
  282. package/dist/types/src/components/index.d.ts.map +1 -1
  283. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts +6 -0
  284. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -0
  285. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts +19 -0
  286. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -0
  287. package/dist/types/src/containers/AgentArticle/index.d.ts +2 -0
  288. package/dist/types/src/containers/AgentArticle/index.d.ts.map +1 -0
  289. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts +6 -0
  290. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts.map +1 -0
  291. package/dist/types/src/containers/AgentProperties/index.d.ts +2 -0
  292. package/dist/types/src/containers/AgentProperties/index.d.ts.map +1 -0
  293. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +6 -0
  294. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -0
  295. package/dist/types/src/containers/BlueprintArticle/index.d.ts +2 -0
  296. package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +1 -0
  297. package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts +12 -0
  298. package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -0
  299. package/dist/types/src/containers/ChatArticle/ChatArticle.stories.d.ts +15 -0
  300. package/dist/types/src/containers/ChatArticle/ChatArticle.stories.d.ts.map +1 -0
  301. package/dist/types/src/containers/ChatArticle/index.d.ts +2 -0
  302. package/dist/types/src/containers/ChatArticle/index.d.ts.map +1 -0
  303. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +26 -0
  304. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -0
  305. package/dist/types/src/containers/ChatCompanion/index.d.ts +2 -0
  306. package/dist/types/src/containers/ChatCompanion/index.d.ts.map +1 -0
  307. package/dist/types/src/{components → containers/ChatDialog}/ChatDialog.d.ts +2 -3
  308. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -0
  309. package/dist/types/src/containers/ChatDialog/index.d.ts +2 -0
  310. package/dist/types/src/containers/ChatDialog/index.d.ts.map +1 -0
  311. package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts +6 -0
  312. package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts.map +1 -0
  313. package/dist/types/src/containers/PlanArticle/index.d.ts +2 -0
  314. package/dist/types/src/containers/PlanArticle/index.d.ts.map +1 -0
  315. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts +6 -0
  316. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts.map +1 -0
  317. package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts +15 -0
  318. package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts.map +1 -0
  319. package/dist/types/src/containers/RoutineArticle/index.d.ts +2 -0
  320. package/dist/types/src/containers/RoutineArticle/index.d.ts.map +1 -0
  321. package/dist/types/src/containers/RoutineList/RoutineList.d.ts +6 -0
  322. package/dist/types/src/containers/RoutineList/RoutineList.d.ts.map +1 -0
  323. package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts +21 -0
  324. package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts.map +1 -0
  325. package/dist/types/src/containers/RoutineList/index.d.ts +2 -0
  326. package/dist/types/src/containers/RoutineList/index.d.ts.map +1 -0
  327. package/dist/types/src/containers/TracePanel/TracePanel.d.ts +8 -0
  328. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -0
  329. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts +15 -0
  330. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -0
  331. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts +19 -0
  332. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts.map +1 -0
  333. package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts +2 -0
  334. package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts.map +1 -0
  335. package/dist/types/src/containers/TracePanel/index.d.ts +4 -0
  336. package/dist/types/src/containers/TracePanel/index.d.ts.map +1 -0
  337. package/dist/types/src/containers/TracePanel/testing/index.d.ts +3 -0
  338. package/dist/types/src/containers/TracePanel/testing/index.d.ts.map +1 -0
  339. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts +14 -0
  340. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts.map +1 -0
  341. package/dist/types/src/containers/TracePanel/testing/snapshot-playback.d.ts +12 -0
  342. package/dist/types/src/containers/TracePanel/testing/snapshot-playback.d.ts.map +1 -0
  343. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +5 -0
  344. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -0
  345. package/dist/types/src/containers/TriggerStatus/index.d.ts +2 -0
  346. package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -0
  347. package/dist/types/src/containers/index.d.ts +13 -0
  348. package/dist/types/src/containers/index.d.ts.map +1 -0
  349. package/dist/types/src/execution-graph/execution-graph.d.ts +108 -0
  350. package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -0
  351. package/dist/types/src/execution-graph/execution-graph.test.d.ts +2 -0
  352. package/dist/types/src/execution-graph/execution-graph.test.d.ts.map +1 -0
  353. package/dist/types/src/execution-graph/index.d.ts +3 -0
  354. package/dist/types/src/execution-graph/index.d.ts.map +1 -0
  355. package/dist/types/src/execution-graph/remote-snapshot.test.d.ts +2 -0
  356. package/dist/types/src/execution-graph/remote-snapshot.test.d.ts.map +1 -0
  357. package/dist/types/src/execution-graph/span-tree.d.ts +76 -0
  358. package/dist/types/src/execution-graph/span-tree.d.ts.map +1 -0
  359. package/dist/types/src/execution-graph/span-tree.test.d.ts +2 -0
  360. package/dist/types/src/execution-graph/span-tree.test.d.ts.map +1 -0
  361. package/dist/types/src/execution-graph/testing/collect-trace-events.d.ts +40 -0
  362. package/dist/types/src/execution-graph/testing/collect-trace-events.d.ts.map +1 -0
  363. package/dist/types/src/execution-graph/testing/index.d.ts +2 -0
  364. package/dist/types/src/execution-graph/testing/index.d.ts.map +1 -0
  365. package/dist/types/src/extensions/index.d.ts +2 -0
  366. package/dist/types/src/extensions/index.d.ts.map +1 -0
  367. package/dist/types/src/extensions/prompt-extension.d.ts +10 -0
  368. package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -0
  369. package/dist/types/src/feed-logger.d.ts +13 -0
  370. package/dist/types/src/feed-logger.d.ts.map +1 -0
  371. package/dist/types/src/hooks/index.d.ts +4 -1
  372. package/dist/types/src/hooks/index.d.ts.map +1 -1
  373. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +58 -17
  374. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  375. package/dist/types/src/hooks/useChatKeymap.d.ts +12 -0
  376. package/dist/types/src/hooks/useChatKeymap.d.ts.map +1 -0
  377. package/dist/types/src/hooks/useChatProcessor.d.ts +11 -8
  378. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  379. package/dist/types/src/hooks/useChatServices.d.ts +9 -8
  380. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  381. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  382. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  383. package/dist/types/src/hooks/useContextBinder.d.ts +4 -3
  384. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  385. package/dist/types/src/hooks/useContextObjects.d.ts +10 -9
  386. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  387. package/dist/types/src/hooks/useDebug.d.ts +10 -0
  388. package/dist/types/src/hooks/useDebug.d.ts.map +1 -0
  389. package/dist/types/src/hooks/useFilteredTypes.d.ts +3 -0
  390. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -0
  391. package/dist/types/src/hooks/useFlush.d.ts +1 -1
  392. package/dist/types/src/hooks/useFlush.d.ts.map +1 -1
  393. package/dist/types/src/hooks/usePresets.d.ts +1 -1
  394. package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
  395. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  396. package/dist/types/src/index.d.ts +1 -6
  397. package/dist/types/src/index.d.ts.map +1 -1
  398. package/dist/types/src/meta.d.ts +6 -3
  399. package/dist/types/src/meta.d.ts.map +1 -1
  400. package/dist/types/src/operations/create-chat.d.ts +5 -0
  401. package/dist/types/src/operations/create-chat.d.ts.map +1 -0
  402. package/dist/types/src/operations/ensure-companion-chat.d.ts +5 -0
  403. package/dist/types/src/operations/ensure-companion-chat.d.ts.map +1 -0
  404. package/dist/types/src/operations/index.d.ts +3 -0
  405. package/dist/types/src/operations/index.d.ts.map +1 -0
  406. package/dist/types/src/operations/on-create-space.d.ts +5 -0
  407. package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
  408. package/dist/types/src/operations/prompt.node.test.d.ts +2 -0
  409. package/dist/types/src/operations/prompt.node.test.d.ts.map +1 -0
  410. package/dist/types/src/operations/resolve-navigation-targets.d.ts +17 -0
  411. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -0
  412. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +5 -0
  413. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -0
  414. package/dist/types/src/operations/set-current-chat.d.ts +5 -0
  415. package/dist/types/src/operations/set-current-chat.d.ts.map +1 -0
  416. package/dist/types/src/operations/toggle-trace-panel-debug.d.ts +5 -0
  417. package/dist/types/src/operations/toggle-trace-panel-debug.d.ts.map +1 -0
  418. package/dist/types/src/operations/update-chat-name.d.ts +5 -0
  419. package/dist/types/src/operations/update-chat-name.d.ts.map +1 -0
  420. package/dist/types/src/plugin.d.ts +4 -0
  421. package/dist/types/src/plugin.d.ts.map +1 -0
  422. package/dist/types/src/processor/presets.d.ts +1 -1
  423. package/dist/types/src/processor/presets.d.ts.map +1 -1
  424. package/dist/types/src/processor/processor.d.ts +292 -43
  425. package/dist/types/src/processor/processor.d.ts.map +1 -1
  426. package/dist/types/src/processor/processor.node.test.d.ts +2 -0
  427. package/dist/types/src/processor/processor.node.test.d.ts.map +1 -0
  428. package/dist/types/src/testing/index.d.ts +2 -0
  429. package/dist/types/src/testing/index.d.ts.map +1 -1
  430. package/dist/types/src/testing/snapshot.d.ts +21 -0
  431. package/dist/types/src/testing/snapshot.d.ts.map +1 -0
  432. package/dist/types/src/testing/test-generator.d.ts +4 -4
  433. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  434. package/dist/types/src/testing/test-generator.test.d.ts +2 -0
  435. package/dist/types/src/testing/test-generator.test.d.ts.map +1 -0
  436. package/dist/types/src/testing/test-sequence.d.ts +10 -3
  437. package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
  438. package/dist/types/src/testing/test-services.d.ts +1 -1
  439. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  440. package/dist/types/src/testing/test-trace.d.ts +5 -0
  441. package/dist/types/src/testing/test-trace.d.ts.map +1 -0
  442. package/dist/types/src/testing/trace-timeline.node.test.d.ts +2 -0
  443. package/dist/types/src/testing/trace-timeline.node.test.d.ts.map +1 -0
  444. package/dist/types/src/testing.d.ts +2 -0
  445. package/dist/types/src/testing.d.ts.map +1 -0
  446. package/dist/types/src/translations.d.ts +2 -87
  447. package/dist/types/src/translations.d.ts.map +1 -1
  448. package/dist/types/src/types/Assistant.d.ts +34 -48
  449. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  450. package/dist/types/src/types/AssistantCapabilities.d.ts +30 -0
  451. package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -0
  452. package/dist/types/src/types/AssistantEvents.d.ts +3 -0
  453. package/dist/types/src/types/AssistantEvents.d.ts.map +1 -0
  454. package/dist/types/src/types/AssistantOperation.d.ts +137 -0
  455. package/dist/types/src/types/AssistantOperation.d.ts.map +1 -0
  456. package/dist/types/src/types/Settings.d.ts +27 -0
  457. package/dist/types/src/types/Settings.d.ts.map +1 -0
  458. package/dist/types/src/types/index.d.ts +8 -2
  459. package/dist/types/src/types/index.d.ts.map +1 -1
  460. package/dist/types/src/types/service.d.ts +10 -213
  461. package/dist/types/src/types/service.d.ts.map +1 -1
  462. package/dist/types/src/util/suggestions.d.ts +9 -0
  463. package/dist/types/src/util/suggestions.d.ts.map +1 -0
  464. package/dist/types/src/util/suggestions.test.d.ts +2 -0
  465. package/dist/types/src/util/suggestions.test.d.ts.map +1 -0
  466. package/dist/types/tsconfig.tsbuildinfo +1 -1
  467. package/package.json +199 -113
  468. package/src/AssistantPlugin.conversations.json +1 -0
  469. package/src/AssistantPlugin.node.ts +77 -0
  470. package/src/AssistantPlugin.test.ts +152 -0
  471. package/src/AssistantPlugin.ts +147 -0
  472. package/src/AssistantPlugin.workerd.ts +41 -0
  473. package/src/blueprints/assistant/blueprint.node.test.ts +46 -0
  474. package/src/blueprints/assistant/blueprint.ts +31 -0
  475. package/src/blueprints/assistant/index.ts +5 -0
  476. package/src/{components/Toolbar → blueprints}/index.ts +1 -1
  477. package/src/capabilities/ai-context.ts +85 -0
  478. package/src/capabilities/ai-service.ts +50 -20
  479. package/src/capabilities/app-graph-builder.ts +176 -142
  480. package/src/capabilities/blueprint-definition.ts +47 -55
  481. package/src/capabilities/companion-chat-provisioner.ts +163 -0
  482. package/src/capabilities/create-object.ts +98 -0
  483. package/src/capabilities/edge-model-resolver.ts +61 -17
  484. package/src/capabilities/index.ts +28 -13
  485. package/src/capabilities/local-model-resolver.ts +31 -13
  486. package/src/capabilities/markdown.ts +40 -0
  487. package/src/capabilities/migrations.ts +28 -0
  488. package/src/capabilities/operation-handler.ts +16 -0
  489. package/src/capabilities/react-surface.tsx +161 -78
  490. package/src/capabilities/settings.ts +24 -12
  491. package/src/capabilities/state.ts +27 -12
  492. package/src/capabilities/toolkit.ts +6 -161
  493. package/src/components/AgentProperties/AgentProperties.stories.tsx +74 -0
  494. package/src/components/AgentProperties/AgentProperties.tsx +104 -0
  495. package/src/components/AgentProperties/index.ts +5 -0
  496. package/src/components/AssistantSettings/AssistantSettings.stories.tsx +35 -0
  497. package/src/components/AssistantSettings/AssistantSettings.tsx +30 -99
  498. package/src/components/AssistantSettings/index.ts +2 -2
  499. package/src/components/Chat/Chat.tsx +162 -258
  500. package/src/components/Chat/context.ts +39 -0
  501. package/src/components/Chat/events.ts +7 -1
  502. package/src/components/ChatPrompt/ChatActions.tsx +34 -16
  503. package/src/components/ChatPrompt/ChatMcpErrors.tsx +50 -0
  504. package/src/components/ChatPrompt/ChatOptions.stories.tsx +136 -0
  505. package/src/components/ChatPrompt/ChatOptions.tsx +301 -101
  506. package/src/components/ChatPrompt/ChatPrompt.tsx +182 -0
  507. package/src/components/ChatPrompt/ChatReferences.tsx +23 -18
  508. package/src/components/ChatPrompt/ChatStatus.tsx +123 -0
  509. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +2 -2
  510. package/src/components/ChatPrompt/index.ts +3 -0
  511. package/src/components/ChatThread/Anchor.stories.tsx +95 -0
  512. package/src/components/ChatThread/ChatThread.stories.tsx +81 -71
  513. package/src/components/ChatThread/ChatThread.tsx +73 -48
  514. package/src/components/ChatThread/DEBUG.md +41 -0
  515. package/src/components/ChatThread/Link.tsx +6 -6
  516. package/src/components/ChatThread/MarkdownStream.stories.tsx +281 -0
  517. package/src/components/ChatThread/registry.tsx +184 -78
  518. package/src/components/ChatThread/sync.test.ts +201 -25
  519. package/src/components/ChatThread/sync.ts +105 -68
  520. package/src/components/ChatThread/testing/reasoning.md +25 -0
  521. package/src/components/ChatThread/testing/thinking.md +21 -0
  522. package/src/components/ChatThread/testing/thread-1.md +30 -0
  523. package/src/components/ChatThread/testing/thread-2.md +56 -0
  524. package/src/components/ChatThread/testing/thread-widgets.md +79 -0
  525. package/src/components/ChatThread/tool-widget-state.test.ts +34 -0
  526. package/src/components/ChatThread/tool-widget-state.ts +48 -0
  527. package/src/components/ChatThread/widgets/FallbackWidget.tsx +26 -0
  528. package/src/components/ChatThread/widgets/ReasoningWidget.stories.tsx +68 -0
  529. package/src/components/ChatThread/widgets/ReasoningWidget.ts +139 -0
  530. package/src/components/ChatThread/widgets/ReferenceWidget.ts +33 -0
  531. package/src/components/ChatThread/widgets/SelectWidget.ts +39 -0
  532. package/src/components/ChatThread/widgets/StatsWidget.ts +31 -0
  533. package/src/components/ChatThread/widgets/StatusWidget.ts +53 -0
  534. package/src/components/ChatThread/widgets/SuggestionWidget.ts +41 -0
  535. package/src/components/ChatThread/widgets/SummaryWidget.tsx +27 -0
  536. package/src/components/ChatThread/widgets/ToolWidget.stories.tsx +55 -0
  537. package/src/components/ChatThread/widgets/ToolWidget.tsx +171 -0
  538. package/src/components/ChatThread/widgets/defaults.ts +8 -0
  539. package/src/components/ChatThread/widgets/index.ts +13 -0
  540. package/src/components/ProcessTree/ProcessTree.stories.tsx +83 -0
  541. package/src/components/ProcessTree/ProcessTree.tsx +120 -0
  542. package/src/components/ProcessTree/index.ts +5 -0
  543. package/src/components/RoutineProperties/RoutineProperties.stories.tsx +59 -0
  544. package/src/components/RoutineProperties/RoutineProperties.tsx +23 -0
  545. package/src/components/RoutineProperties/index.ts +5 -0
  546. package/src/components/TaskList/TaskList.stories.tsx +44 -0
  547. package/src/components/TaskList/TaskList.tsx +45 -0
  548. package/src/components/TaskList/index.ts +5 -0
  549. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +21 -15
  550. package/src/components/TemplateEditor/TemplateEditor.tsx +63 -41
  551. package/src/components/TemplateEditor/TemplateForm.stories.tsx +22 -16
  552. package/src/components/TemplateEditor/TemplateForm.tsx +111 -86
  553. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +274 -0
  554. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  555. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  556. package/src/components/ToolBlock/ToolBlock.tsx +47 -55
  557. package/src/components/Toolbox/Toolbox.stories.tsx +16 -18
  558. package/src/components/Toolbox/Toolbox.tsx +72 -66
  559. package/src/components/index.ts +6 -10
  560. package/src/containers/AgentArticle/AgentArticle.stories.tsx +124 -0
  561. package/src/containers/AgentArticle/AgentArticle.tsx +189 -0
  562. package/src/containers/AgentArticle/index.ts +5 -0
  563. package/src/containers/AgentProperties/AgentProperties.tsx +43 -0
  564. package/src/containers/AgentProperties/index.ts +5 -0
  565. package/src/containers/BlueprintArticle/BlueprintArticle.tsx +29 -0
  566. package/src/containers/BlueprintArticle/index.ts +5 -0
  567. package/src/containers/ChatArticle/ChatArticle.stories.tsx +76 -0
  568. package/src/containers/ChatArticle/ChatArticle.tsx +108 -0
  569. package/src/containers/ChatArticle/index.ts +5 -0
  570. package/src/containers/ChatCompanion/ChatCompanion.tsx +121 -0
  571. package/src/containers/ChatCompanion/index.ts +5 -0
  572. package/src/{components → containers/ChatDialog}/ChatDialog.tsx +16 -17
  573. package/src/containers/ChatDialog/index.ts +5 -0
  574. package/src/containers/PlanArticle/PlanArticle.tsx +33 -0
  575. package/src/containers/PlanArticle/index.ts +5 -0
  576. package/src/containers/RoutineArticle/RoutineArticle.stories.tsx +75 -0
  577. package/src/containers/RoutineArticle/RoutineArticle.tsx +109 -0
  578. package/src/containers/RoutineArticle/index.ts +5 -0
  579. package/src/containers/RoutineList/RoutineList.stories.tsx +130 -0
  580. package/src/containers/RoutineList/RoutineList.tsx +50 -0
  581. package/src/containers/RoutineList/index.ts +5 -0
  582. package/src/containers/TracePanel/TracePanel.stories.tsx +319 -0
  583. package/src/containers/TracePanel/TracePanel.tsx +213 -0
  584. package/src/containers/TracePanel/dxn-extractor.test.ts +153 -0
  585. package/src/containers/TracePanel/dxn-extractor.ts +168 -0
  586. package/src/containers/TracePanel/index.ts +9 -0
  587. package/src/containers/TracePanel/testing/index.ts +6 -0
  588. package/src/containers/TracePanel/testing/simulated-agent.ts +114 -0
  589. package/src/containers/TracePanel/testing/snapshot-playback.ts +45 -0
  590. package/src/containers/TriggerStatus/TriggerStatus.tsx +130 -0
  591. package/src/containers/TriggerStatus/index.ts +5 -0
  592. package/src/containers/index.ts +17 -0
  593. package/src/execution-graph/SPEC.md +678 -0
  594. package/src/execution-graph/execution-graph.test.ts +799 -0
  595. package/src/execution-graph/execution-graph.ts +714 -0
  596. package/src/execution-graph/index.ts +24 -0
  597. package/src/execution-graph/remote-snapshot.test.ts +116 -0
  598. package/src/execution-graph/span-tree.test.ts +249 -0
  599. package/src/execution-graph/span-tree.ts +259 -0
  600. package/src/execution-graph/testing/collect-trace-events.ts +74 -0
  601. package/src/execution-graph/testing/index.ts +5 -0
  602. package/src/extensions/index.ts +5 -0
  603. package/src/extensions/prompt-extension.ts +111 -0
  604. package/src/feed-logger.ts +149 -0
  605. package/src/hooks/index.ts +4 -1
  606. package/src/hooks/useBlueprintRegistry.ts +84 -53
  607. package/src/hooks/useChatKeymap.ts +52 -0
  608. package/src/hooks/useChatProcessor.ts +63 -31
  609. package/src/hooks/useChatServices.ts +14 -35
  610. package/src/hooks/useChatToolbarActions.ts +120 -0
  611. package/src/hooks/useContextBinder.ts +23 -10
  612. package/src/hooks/useContextObjects.ts +20 -27
  613. package/src/hooks/useDebug.ts +38 -0
  614. package/src/hooks/useFilteredTypes.ts +38 -0
  615. package/src/hooks/usePresets.ts +2 -1
  616. package/src/hooks/useReferencesProvider.ts +11 -22
  617. package/src/index.ts +1 -7
  618. package/src/meta.ts +35 -8
  619. package/src/operations/create-chat.ts +57 -0
  620. package/src/operations/ensure-companion-chat.ts +63 -0
  621. package/src/operations/index.ts +16 -0
  622. package/src/operations/on-create-space.ts +24 -0
  623. package/src/operations/prompt.node.test.ts +80 -0
  624. package/src/operations/resolve-navigation-targets.ts +31 -0
  625. package/src/operations/run-prompt-in-new-chat.ts +113 -0
  626. package/src/operations/set-current-chat.ts +49 -0
  627. package/src/operations/toggle-trace-panel-debug.ts +27 -0
  628. package/src/operations/update-chat-name.ts +61 -0
  629. package/src/plugin.ts +11 -0
  630. package/src/processor/presets.ts +12 -4
  631. package/src/processor/processor.node.test.ts +40 -0
  632. package/src/processor/processor.ts +287 -189
  633. package/src/testing/data/trace-timeline-multiple.dx.json +1 -0
  634. package/src/testing/data/trace-timeline-remote.dx.json +1 -0
  635. package/src/testing/data/trace-timeline.dx.json +4657 -0
  636. package/src/testing/index.ts +2 -0
  637. package/src/testing/snapshot.ts +35 -0
  638. package/src/testing/test-generator.test.ts +71 -0
  639. package/src/testing/test-generator.ts +217 -194
  640. package/src/testing/test-sequence.ts +6 -6
  641. package/src/testing/test-services.ts +9 -7
  642. package/src/testing/test-trace.ts +20 -0
  643. package/src/testing/trace-timeline.node.conversations.json +1 -0
  644. package/src/testing/trace-timeline.node.test.ts +241 -0
  645. package/src/testing.ts +9 -0
  646. package/src/translations.ts +162 -81
  647. package/src/types/Assistant.ts +17 -55
  648. package/src/types/AssistantCapabilities.ts +35 -0
  649. package/src/types/AssistantEvents.ts +11 -0
  650. package/src/types/AssistantOperation.ts +164 -0
  651. package/src/types/Settings.ts +82 -0
  652. package/src/types/index.ts +14 -2
  653. package/src/types/service.ts +9 -11
  654. package/src/util/suggestions.test.ts +52 -0
  655. package/src/util/suggestions.ts +42 -0
  656. package/src/vite-env.d.ts +5 -0
  657. package/dist/lib/browser/BlueprintContainer-WX2SSDVI.mjs +0 -28
  658. package/dist/lib/browser/BlueprintContainer-WX2SSDVI.mjs.map +0 -7
  659. package/dist/lib/browser/ChatCompanion-BDZ55ZRF.mjs +0 -150
  660. package/dist/lib/browser/ChatCompanion-BDZ55ZRF.mjs.map +0 -7
  661. package/dist/lib/browser/ChatContainer-RYGNN73X.mjs +0 -73
  662. package/dist/lib/browser/ChatContainer-RYGNN73X.mjs.map +0 -7
  663. package/dist/lib/browser/ChatDialog-MVHH2U66.mjs +0 -86
  664. package/dist/lib/browser/ChatDialog-MVHH2U66.mjs.map +0 -7
  665. package/dist/lib/browser/SequenceContainer-2FEWMQGW.mjs +0 -150
  666. package/dist/lib/browser/SequenceContainer-2FEWMQGW.mjs.map +0 -7
  667. package/dist/lib/browser/ai-service-ERTZBTP3.mjs +0 -19
  668. package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +0 -7
  669. package/dist/lib/browser/app-graph-builder-2U7SLCRX.mjs +0 -154
  670. package/dist/lib/browser/app-graph-builder-2U7SLCRX.mjs.map +0 -7
  671. package/dist/lib/browser/blueprint-definition-NSJARW5U.mjs +0 -12
  672. package/dist/lib/browser/chunk-2CE2KPKZ.mjs +0 -175
  673. package/dist/lib/browser/chunk-2CE2KPKZ.mjs.map +0 -7
  674. package/dist/lib/browser/chunk-43I2LR6O.mjs +0 -216
  675. package/dist/lib/browser/chunk-43I2LR6O.mjs.map +0 -7
  676. package/dist/lib/browser/chunk-5EGXHCAZ.mjs +0 -16
  677. package/dist/lib/browser/chunk-5EGXHCAZ.mjs.map +0 -7
  678. package/dist/lib/browser/chunk-5RICKAMN.mjs +0 -18
  679. package/dist/lib/browser/chunk-5RICKAMN.mjs.map +0 -7
  680. package/dist/lib/browser/chunk-CQ7UHYTT.mjs +0 -296
  681. package/dist/lib/browser/chunk-CQ7UHYTT.mjs.map +0 -7
  682. package/dist/lib/browser/chunk-FP56WB24.mjs +0 -212
  683. package/dist/lib/browser/chunk-FP56WB24.mjs.map +0 -7
  684. package/dist/lib/browser/chunk-JZRZVB2A.mjs +0 -170
  685. package/dist/lib/browser/chunk-JZRZVB2A.mjs.map +0 -7
  686. package/dist/lib/browser/chunk-WRJGOT5P.mjs +0 -1794
  687. package/dist/lib/browser/chunk-WRJGOT5P.mjs.map +0 -7
  688. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +0 -18
  689. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +0 -7
  690. package/dist/lib/browser/index.mjs +0 -366
  691. package/dist/lib/browser/index.mjs.map +0 -7
  692. package/dist/lib/browser/intent-resolver-3GOJMBXJ.mjs +0 -114
  693. package/dist/lib/browser/intent-resolver-3GOJMBXJ.mjs.map +0 -7
  694. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs +0 -17
  695. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs.map +0 -7
  696. package/dist/lib/browser/meta.json +0 -1
  697. package/dist/lib/browser/react-surface-FTKCE6GG.mjs +0 -107
  698. package/dist/lib/browser/react-surface-FTKCE6GG.mjs.map +0 -7
  699. package/dist/lib/browser/settings-HBF32KV6.mjs +0 -23
  700. package/dist/lib/browser/settings-HBF32KV6.mjs.map +0 -7
  701. package/dist/lib/browser/state-LXTS54DI.mjs +0 -21
  702. package/dist/lib/browser/state-LXTS54DI.mjs.map +0 -7
  703. package/dist/lib/browser/toolkit-NQ2GXCF5.mjs +0 -199
  704. package/dist/lib/browser/toolkit-NQ2GXCF5.mjs.map +0 -7
  705. package/dist/lib/browser/types/index.mjs +0 -19
  706. package/dist/lib/node-esm/BlueprintContainer-4MKN6ZRB.mjs +0 -29
  707. package/dist/lib/node-esm/BlueprintContainer-4MKN6ZRB.mjs.map +0 -7
  708. package/dist/lib/node-esm/ChatCompanion-XFNXVZIP.mjs +0 -151
  709. package/dist/lib/node-esm/ChatCompanion-XFNXVZIP.mjs.map +0 -7
  710. package/dist/lib/node-esm/ChatContainer-UTJGCQXF.mjs +0 -74
  711. package/dist/lib/node-esm/ChatContainer-UTJGCQXF.mjs.map +0 -7
  712. package/dist/lib/node-esm/ChatDialog-QEYZ4IOV.mjs +0 -87
  713. package/dist/lib/node-esm/ChatDialog-QEYZ4IOV.mjs.map +0 -7
  714. package/dist/lib/node-esm/SequenceContainer-PGGJUQ46.mjs +0 -151
  715. package/dist/lib/node-esm/SequenceContainer-PGGJUQ46.mjs.map +0 -7
  716. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +0 -20
  717. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +0 -7
  718. package/dist/lib/node-esm/app-graph-builder-OKNLR7H2.mjs +0 -155
  719. package/dist/lib/node-esm/app-graph-builder-OKNLR7H2.mjs.map +0 -7
  720. package/dist/lib/node-esm/blueprint-definition-WD2IVMAI.mjs +0 -13
  721. package/dist/lib/node-esm/chunk-73ABYRYX.mjs +0 -20
  722. package/dist/lib/node-esm/chunk-73ABYRYX.mjs.map +0 -7
  723. package/dist/lib/node-esm/chunk-DSE2IILK.mjs +0 -217
  724. package/dist/lib/node-esm/chunk-DSE2IILK.mjs.map +0 -7
  725. package/dist/lib/node-esm/chunk-E2WXZND7.mjs +0 -297
  726. package/dist/lib/node-esm/chunk-E2WXZND7.mjs.map +0 -7
  727. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  728. package/dist/lib/node-esm/chunk-HXIBCBH4.mjs +0 -171
  729. package/dist/lib/node-esm/chunk-HXIBCBH4.mjs.map +0 -7
  730. package/dist/lib/node-esm/chunk-TNR46C3L.mjs +0 -213
  731. package/dist/lib/node-esm/chunk-TNR46C3L.mjs.map +0 -7
  732. package/dist/lib/node-esm/chunk-U2NYUS2N.mjs +0 -177
  733. package/dist/lib/node-esm/chunk-U2NYUS2N.mjs.map +0 -7
  734. package/dist/lib/node-esm/chunk-UFKLCEAE.mjs +0 -1795
  735. package/dist/lib/node-esm/chunk-UFKLCEAE.mjs.map +0 -7
  736. package/dist/lib/node-esm/chunk-XQGWSZ4T.mjs +0 -17
  737. package/dist/lib/node-esm/chunk-XQGWSZ4T.mjs.map +0 -7
  738. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs +0 -19
  739. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +0 -7
  740. package/dist/lib/node-esm/index.mjs +0 -367
  741. package/dist/lib/node-esm/index.mjs.map +0 -7
  742. package/dist/lib/node-esm/intent-resolver-6XLVTRDJ.mjs +0 -115
  743. package/dist/lib/node-esm/intent-resolver-6XLVTRDJ.mjs.map +0 -7
  744. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs +0 -18
  745. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs.map +0 -7
  746. package/dist/lib/node-esm/meta.json +0 -1
  747. package/dist/lib/node-esm/react-surface-K7ZXQLAP.mjs +0 -108
  748. package/dist/lib/node-esm/react-surface-K7ZXQLAP.mjs.map +0 -7
  749. package/dist/lib/node-esm/settings-CWP6MTWP.mjs +0 -24
  750. package/dist/lib/node-esm/settings-CWP6MTWP.mjs.map +0 -7
  751. package/dist/lib/node-esm/state-BO6GUFLB.mjs +0 -22
  752. package/dist/lib/node-esm/state-BO6GUFLB.mjs.map +0 -7
  753. package/dist/lib/node-esm/toolkit-V57PRJNG.mjs +0 -200
  754. package/dist/lib/node-esm/toolkit-V57PRJNG.mjs.map +0 -7
  755. package/dist/lib/node-esm/types/index.mjs +0 -20
  756. package/dist/types/src/capabilities/capabilities.d.ts +0 -11
  757. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  758. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  759. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  760. package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
  761. package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
  762. package/dist/types/src/components/ChatCompanion.d.ts +0 -13
  763. package/dist/types/src/components/ChatCompanion.d.ts.map +0 -1
  764. package/dist/types/src/components/ChatContainer.d.ts +0 -11
  765. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  766. package/dist/types/src/components/ChatDialog.d.ts.map +0 -1
  767. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +0 -7
  768. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +0 -1
  769. package/dist/types/src/components/ChatProgress/index.d.ts +0 -2
  770. package/dist/types/src/components/ChatProgress/index.d.ts.map +0 -1
  771. package/dist/types/src/components/ChatThread/reducers.d.ts +0 -40
  772. package/dist/types/src/components/ChatThread/reducers.d.ts.map +0 -1
  773. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  774. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  775. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  776. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  777. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  778. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  779. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -269
  780. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  781. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  782. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  783. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +0 -1
  784. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -5
  785. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  786. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  787. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  788. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts +0 -11
  789. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +0 -1
  790. package/dist/types/src/events.d.ts +0 -4
  791. package/dist/types/src/events.d.ts.map +0 -1
  792. package/dist/types/src/functions/analysis.d.ts +0 -5
  793. package/dist/types/src/functions/analysis.d.ts.map +0 -1
  794. package/dist/types/src/functions/index.d.ts +0 -4
  795. package/dist/types/src/functions/index.d.ts.map +0 -1
  796. package/dist/types/src/functions/list.d.ts +0 -10
  797. package/dist/types/src/functions/list.d.ts.map +0 -1
  798. package/dist/types/src/functions/load.d.ts +0 -8
  799. package/dist/types/src/functions/load.d.ts.map +0 -1
  800. package/dist/types/src/hooks/useItemTypes.d.ts +0 -4
  801. package/dist/types/src/hooks/useItemTypes.d.ts.map +0 -1
  802. package/dist/types/src/processor/processor.test.d.ts +0 -2
  803. package/dist/types/src/processor/processor.test.d.ts.map +0 -1
  804. package/dist/types/src/queue-logger.d.ts +0 -11
  805. package/dist/types/src/queue-logger.d.ts.map +0 -1
  806. package/dist/types/src/types/AssistantAction.d.ts +0 -107
  807. package/dist/types/src/types/AssistantAction.d.ts.map +0 -1
  808. package/dist/types/src/types/defs.d.ts +0 -2
  809. package/dist/types/src/types/defs.d.ts.map +0 -1
  810. package/src/AssistantPlugin.tsx +0 -167
  811. package/src/capabilities/capabilities.ts +0 -18
  812. package/src/capabilities/intent-resolver.ts +0 -96
  813. package/src/components/BlueprintContainer.tsx +0 -24
  814. package/src/components/ChatCompanion.tsx +0 -136
  815. package/src/components/ChatContainer.tsx +0 -51
  816. package/src/components/ChatProgress/ChatProgress.tsx +0 -67
  817. package/src/components/ChatProgress/index.ts +0 -5
  818. package/src/components/ChatThread/reducers.ts +0 -151
  819. package/src/components/PromptSettings.tsx +0 -90
  820. package/src/components/SequenceContainer.tsx +0 -131
  821. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -35
  822. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  823. package/src/components/SequenceEditor/index.ts +0 -5
  824. package/src/components/TemplateEditor/handlebars-extension.ts +0 -165
  825. package/src/components/Toolbar/Toolbar.tsx +0 -21
  826. package/src/components/Toolbar/useChatToolbarActions.ts +0 -126
  827. package/src/events.ts +0 -11
  828. package/src/functions/analysis.ts +0 -22
  829. package/src/functions/index.ts +0 -7
  830. package/src/functions/list.ts +0 -48
  831. package/src/functions/load.ts +0 -46
  832. package/src/hooks/useItemTypes.ts +0 -37
  833. package/src/processor/processor.test.ts +0 -81
  834. package/src/queue-logger.ts +0 -125
  835. package/src/types/AssistantAction.ts +0 -62
  836. package/src/types/defs.ts +0 -5
  837. /package/dist/lib/{browser/blueprint-definition-NSJARW5U.mjs.map → neutral/AssistantPlugin.mjs.map} +0 -0
  838. /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/ChatArticle-PWD4OEFZ.mjs.map} +0 -0
  839. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  840. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  841. /package/dist/lib/{node-esm/blueprint-definition-WD2IVMAI.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  842. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  843. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
  844. /package/dist/types/src/components/TemplateEditor/{handlebars-extension.d.ts → extensions/handlebars-extension.d.ts} +0 -0
@@ -2,127 +2,151 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Registry, Rx } from '@effect-rx/rx-react';
6
- import * as Cause from 'effect/Cause';
5
+ import { Atom, Registry as AtomRegistry } from '@effect-atom/atom-react';
7
6
  import * as Effect from 'effect/Effect';
8
- import * as Exit from 'effect/Exit';
9
7
  import * as Fiber from 'effect/Fiber';
8
+ import * as Layer from 'effect/Layer';
10
9
  import * as Option from 'effect/Option';
11
- import * as Runtime from 'effect/Runtime';
10
+ import * as Stream from 'effect/Stream';
12
11
 
12
+ import { type AiService, DEFAULT_EDGE_MODEL, type ModelName, type ModelRegistry, type OpaqueToolkit } from '@dxos/ai';
13
+ import { Capabilities } from '@dxos/app-framework';
13
14
  import {
14
- AiService,
15
- DEFAULT_EDGE_MODEL,
16
- type ModelName,
17
- type ModelRegistry,
18
- type ToolExecutionService,
19
- type ToolResolverService,
20
- } from '@dxos/ai';
21
- import {
22
- type AiConversation,
23
- type AiConversationRunParams,
15
+ AiContext,
24
16
  AiSession,
25
- ArtifactDiffResolver,
26
- GenerationObserver,
27
17
  createSystemPrompt,
18
+ formatSystemPrompt,
19
+ McpServerError,
20
+ PartialBlock,
21
+ ToolExecutionServices,
28
22
  } from '@dxos/assistant';
29
- import { type Blueprint } from '@dxos/blueprints';
30
- import { Obj } from '@dxos/echo';
31
- import { throwCause } from '@dxos/effect';
23
+ import { type Chat } from '@dxos/assistant-toolkit';
32
24
  import {
33
- type CredentialsService,
34
- type DatabaseService,
35
- type FunctionInvocationService,
36
- type QueueService,
37
- type TracingService,
38
- } from '@dxos/functions';
25
+ type Credential,
26
+ Operation,
27
+ type OperationRegistry,
28
+ type ServiceNotAvailableError,
29
+ Trace,
30
+ } from '@dxos/compute';
31
+ import { type Database, Feed, Obj, Ref, type Registry } from '@dxos/echo';
32
+ import { runAndForwardErrors, unwrapExit } from '@dxos/effect';
33
+ import { AgentService } from '@dxos/functions-runtime';
39
34
  import { log } from '@dxos/log';
40
- import { type ContentBlock, DataType } from '@dxos/schema';
41
- import { trim } from '@dxos/util';
35
+ import { Message } from '@dxos/types';
42
36
 
43
- import { type Assistant } from '../types';
37
+ import { AssistantOperation } from '#types';
44
38
 
39
+ /**
40
+ * @deprecated Services type for the old direct-conversation processor path.
41
+ * Retained for backward compatibility with CLI and update-name.
42
+ */
45
43
  export type AiChatServices =
46
- | CredentialsService
47
- | DatabaseService
48
- | QueueService
49
- | FunctionInvocationService
44
+ | Credential.CredentialsService
45
+ | Database.Service
50
46
  | AiService.AiService
51
- | ToolExecutionService
52
- | ToolResolverService
53
- | TracingService;
47
+ | Trace.TraceService;
48
+
49
+ /**
50
+ * Space-scoped services materialised by the layer passed into
51
+ * {@link AiChatProcessor}. Mirrors the tag list that
52
+ * {@link useChatProcessor} passes to {@link ServiceResolver.provide}.
53
+ */
54
+ export type SpaceServices =
55
+ | Database.Service
56
+ | Feed.FeedService
57
+ | Credential.CredentialsService
58
+ | AiService.AiService
59
+ | AgentService.AgentService
60
+ | OperationRegistry.Service
61
+ | OpaqueToolkit.OpaqueToolkitProvider;
54
62
 
55
63
  export type AiChatProcessorOptions = {
56
64
  model?: ModelName;
57
65
  modelRegistry?: ModelRegistry;
58
- blueprintRegistry?: Blueprint.Registry;
59
- observableRegistry?: Registry.Registry;
60
- extensions?: ToolContextExtensions;
61
- } & Pick<AiConversationRunParams, 'system'>;
66
+ registry?: Registry.Registry;
67
+ observableRegistry?: AtomRegistry.Registry;
68
+ /**
69
+ * For tracing.
70
+ */
71
+ chat?: Ref.Ref<Chat.Chat>;
72
+ system?: string;
73
+ /**
74
+ * Probability of automatically updating chat name after each request.
75
+ * Chat name is always updated if it has no name.
76
+ * @default 0.1 (10%)
77
+ */
78
+ autoUpdateNameChance?: number;
79
+ };
62
80
 
63
81
  const defaultOptions: Partial<AiChatProcessorOptions> = {
64
82
  model: DEFAULT_EDGE_MODEL,
83
+ autoUpdateNameChance: 0.1,
65
84
  };
66
85
 
67
- // TODO(burdon): Retry, timeout?
68
- export type AiRequestOptions = {};
86
+ export type ProcessorRequestOptions = {};
69
87
 
70
- export type AiRequest = {
88
+ export type ProcessorRequest = {
71
89
  message: string;
72
- options?: AiRequestOptions;
90
+ options?: ProcessorRequestOptions;
73
91
  };
74
92
 
75
93
  /**
76
94
  * Handles interactions with the AI service.
77
- * Handles streaming responses from the conversation.
95
+ * Uses AgentService to spawn a process-backed agent and subscribes to ephemeral trace events for streaming.
78
96
  */
79
97
  export class AiChatProcessor {
80
- private readonly _rx: Registry.Registry;
98
+ readonly #registry: AtomRegistry.Registry;
81
99
 
82
- /** External observer. */
83
- private readonly _observer: GenerationObserver;
100
+ /** Pending messages (finalized, non-streaming). */
101
+ readonly #pending = Atom.make<Message.Message[]>([]);
84
102
 
85
- /** Currently active request fiber. */
86
- private _fiber: Fiber.Fiber<void, any> | undefined;
103
+ /** Currently streaming messages (from ephemeral trace events). */
104
+ readonly #streaming = Atom.make<Message.Message[]>([]);
87
105
 
88
- /** Last request (for retries). */
89
- private _lastRequest: AiRequest | undefined;
106
+ /** Set of message IDs that have been finalized (non-pending delivered via ephemeral). */
107
+ readonly #finalizedIds = new Set<string>();
90
108
 
91
- /** Pending messages (incl. the current user request). */
92
- private readonly _pending = Rx.make<DataType.Message[]>([]);
109
+ /** Currently active request fiber. */
110
+ #requestFiber: Fiber.RuntimeFiber<void, unknown> | undefined;
93
111
 
94
- /** Currently streaming message (from the AI service). */
95
- private readonly _streaming = Rx.make<Option.Option<DataType.Message>>(Option.none());
112
+ /** Last request (for retries). */
113
+ #lastRequest: ProcessorRequest | undefined;
96
114
 
97
115
  /** Streaming state. */
98
- public readonly streaming = Rx.make<boolean>((get) => Option.isSome(get(this._streaming)));
116
+ public readonly streaming = Atom.make<boolean>((get) => get(this.#streaming).length > 0);
99
117
 
100
118
  /** Active state. */
101
- public readonly active = Rx.make(false);
119
+ public readonly active = Atom.make(false);
102
120
 
103
121
  /** Array of Messages (incl. the current message being streamed). */
104
- public readonly messages = Rx.make<DataType.Message[]>((get) =>
105
- Option.match(get(this._streaming), {
106
- onNone: () => get(this._pending),
107
- onSome: (streaming) => [...get(this._pending), streaming],
108
- }),
109
- );
122
+ public readonly messages = Atom.make<Message.Message[]>((get) => [...get(this.#pending), ...get(this.#streaming)]);
110
123
 
111
124
  /** Last error. */
112
- public readonly error = Rx.make<Option.Option<Error>>(Option.none());
125
+ public readonly error = Atom.make<Option.Option<Error>>(Option.none());
126
+
127
+ /**
128
+ * MCP server connection errors observed during the most recent request.
129
+ * Misconfigured/unreachable servers are dropped from the toolkit so the chat
130
+ * keeps working; the entries here let the UI display which servers failed.
131
+ */
132
+ public readonly mcpErrors = Atom.make<readonly Trace.PayloadType<typeof McpServerError>[]>([]);
113
133
 
114
134
  constructor(
115
- private readonly _conversation: AiConversation,
116
- // TODO(dmaretskyi): Replace this with effect's ManagedRuntime wrapping this layer.
117
- private readonly _services: () => Promise<Runtime.Runtime<AiChatServices>>,
135
+ private readonly _conversation: AiSession.Session,
136
+ private readonly _runtime: Capabilities.ProcessManagerRuntime,
137
+ private readonly _feed: Feed.Feed,
138
+ /**
139
+ * Pre-built layer that materialises {@link SpaceServices}. Built via
140
+ * {@link ServiceResolver.provide} with the {@link ServiceResolver} already
141
+ * supplied (hence `RIn = never`); the {@link ServiceNotAvailableError}
142
+ * error channel surfaces when a tag is not available for the space.
143
+ * Provided to every effect run by the processor so the underlying
144
+ * {@link ProcessManagerRuntime} has access to space-affinity services.
145
+ */
146
+ private readonly _spaceLayer: Layer.Layer<SpaceServices, ServiceNotAvailableError, never>,
118
147
  private readonly _options: AiChatProcessorOptions = defaultOptions,
119
148
  ) {
120
- // Initialize registries and defaults before using in other logic.
121
- this._rx = this._options.observableRegistry ?? Registry.make();
122
- this._observer = GenerationObserver.make({
123
- onBlock: this._onBlock,
124
- onMessage: this._onMessage,
125
- });
149
+ this.#registry = this._options.observableRegistry ?? AtomRegistry.make();
126
150
  if (this._options.model && !this._options.system) {
127
151
  const capabilities = this._options.modelRegistry?.getCapabilities(this._options.model) ?? {};
128
152
  this._options.system = createSystemPrompt(capabilities);
@@ -137,58 +161,100 @@ export class AiChatProcessor {
137
161
  return this._conversation;
138
162
  }
139
163
 
140
- get blueprintRegistry() {
141
- return this._options.blueprintRegistry;
164
+ get registry() {
165
+ return this._options.registry;
166
+ }
167
+
168
+ get system(): string {
169
+ return this._options.system ?? '';
170
+ }
171
+
172
+ async getTools(): Promise<Record<string, any>> {
173
+ return this._runtime.runPromise(
174
+ Effect.provide(this._conversation.getTools(), ToolExecutionServices).pipe(Effect.provide(this._spaceLayer)),
175
+ );
176
+ }
177
+
178
+ async getSystemPrompt(): Promise<string> {
179
+ return this._runtime.runPromise(
180
+ Effect.gen(this, function* () {
181
+ const blueprints = this.context.getBlueprints();
182
+ const objects = this.context.getObjects();
183
+ return yield* formatSystemPrompt({ system: this._options.system, blueprints, objects });
184
+ }).pipe(
185
+ Effect.provideService(AiContext.Service, { binder: this.context }),
186
+ Effect.provide(this._spaceLayer),
187
+ Effect.orDie,
188
+ ),
189
+ );
142
190
  }
143
191
 
144
192
  /**
145
- * Initiates a new request.
193
+ * Initiates a new request via AgentService.
146
194
  */
147
- async request(requestParam: AiRequest): Promise<void> {
148
- if (this._fiber) {
195
+ async request(requestProp: ProcessorRequest): Promise<void> {
196
+ if (this.#requestFiber) {
149
197
  await this.cancel();
150
198
  }
151
199
 
152
200
  try {
153
- this._lastRequest = requestParam;
154
- this._rx.set(this.error, Option.none());
155
- this._rx.set(this.active, true);
156
-
157
- // Create request.
158
- const request = this._conversation.createRequest({
159
- system: this._options.system,
160
- prompt: requestParam.message,
161
- observer: this._observer,
162
- });
201
+ this.#lastRequest = requestProp;
202
+ this.#registry.set(this.error, Option.none());
203
+ this.#registry.set(this.mcpErrors, []);
204
+ this.#registry.set(this.active, true);
205
+
206
+ const effect = Effect.gen(this, function* () {
207
+ // NOTE: Gets or creates a session for the feed.
208
+ log.info('init agent session', { feed: Obj.getURI(this._feed), model: this._options.model });
209
+ const session = yield* AgentService.getSession(this._feed, { model: this._options.model });
210
+ const ephemeralStream = session.subscribeEphemeral();
211
+ yield* ephemeralStream.pipe(
212
+ Stream.runForEach((message) =>
213
+ Effect.sync(() => {
214
+ for (const event of message.events) {
215
+ if (Trace.isOfType(PartialBlock, event)) {
216
+ this.#handleEphemeralMessage(event.data);
217
+ } else if (Trace.isOfType(McpServerError, event)) {
218
+ this.#handleMcpError(event.data);
219
+ }
220
+ }
221
+ }),
222
+ ),
223
+ Effect.fork,
224
+ );
163
225
 
164
- const runtime = await this._services();
226
+ log('chat processor submitting prompt', { length: requestProp.message.length });
227
+ yield* session.submitPrompt(requestProp.message);
228
+ log('chat processor submitPrompt returned, waiting for agent', {});
229
+ yield* session.waitForCompletion();
230
+ log.info('session complete');
165
231
 
166
- // Create fiber.
167
- this._fiber = request.pipe(
168
- Effect.provide(AiService.model(this._options.model ?? DEFAULT_EDGE_MODEL)),
232
+ this.#flushStreaming();
169
233
 
170
- // TODO(dmaretskyi): Move ArtifactDiffResolver upstream.
171
- Effect.provideService(ArtifactDiffResolver, this._artifactDiffResolver),
234
+ yield* this.#maybeUpdateChatName();
235
+ });
172
236
 
173
- Effect.asVoid,
174
- Runtime.runFork(runtime), // Runs in the background.
175
- );
237
+ this.#requestFiber = this._runtime.runFork(effect.pipe(Effect.provide(this._spaceLayer)));
176
238
 
177
- // Execute request.
178
- const response = await this._fiber.pipe(Fiber.join, Effect.runPromiseExit);
179
- if (!Exit.isSuccess(response) && !Cause.isInterruptedOnly(response.cause)) {
180
- throwCause(response.cause);
239
+ try {
240
+ await this._runtime.runPromise(Fiber.join(this.#requestFiber));
241
+ } catch (err: any) {
242
+ if (err._tag === 'InterruptedException' || err.message?.includes('interrupted')) {
243
+ return;
244
+ }
245
+ throw err;
181
246
  }
182
247
 
183
- this._rx.set(this.error, Option.none());
184
- this._lastRequest = undefined;
185
- 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 })));
248
+ this.#registry.set(this.error, Option.none());
249
+ this.#lastRequest = undefined;
250
+ this.#requestFiber = undefined;
251
+ } catch (err) {
252
+ log.error('request failed', { error: err });
253
+ this.#registry.set(this.error, Option.some(new Error('AI service error', { cause: err })));
189
254
  } finally {
190
- this._fiber = undefined;
191
- this._rx.set(this.active, false);
255
+ log.info('setting active to false');
256
+ this.#registry.set(this.active, false);
257
+ this.#requestFiber = undefined;
192
258
  }
193
259
  }
194
260
 
@@ -196,107 +262,139 @@ export class AiChatProcessor {
196
262
  * Cancels the current request.
197
263
  */
198
264
  async cancel(): Promise<void> {
199
- await Effect.runPromise(
265
+ await runAndForwardErrors(
200
266
  Effect.gen(this, function* () {
201
- if (this._fiber) {
202
- yield* this._fiber.pipe(Fiber.interrupt);
267
+ if (this.#requestFiber) {
268
+ yield* Fiber.interrupt(this.#requestFiber);
203
269
  }
204
270
  }),
205
271
  );
206
272
 
207
- this._fiber = undefined;
208
- this._rx.set(this.active, false);
273
+ this.#requestFiber = undefined;
274
+ this.#registry.set(this.active, false);
209
275
  }
210
276
 
211
277
  /**
212
278
  * Retry last failed request.
213
279
  */
214
280
  async retry(): Promise<void> {
215
- if (this._lastRequest) {
216
- return this.request(this._lastRequest);
281
+ if (this.#lastRequest) {
282
+ return this.request(this.#lastRequest);
217
283
  }
218
284
  }
219
285
 
286
+ /**
287
+ * Clears the recorded MCP server errors (e.g. after the user dismisses the warning banner).
288
+ */
289
+ dismissMcpErrors(): void {
290
+ this.#registry.set(this.mcpErrors, []);
291
+ }
292
+
220
293
  /**
221
294
  * Update the current chat's name.
222
295
  */
223
- async updateName(chat: Assistant.Chat): Promise<void> {
224
- const runtime = await this._services();
225
- const system = trim`
226
- It is extremely important that you respond only with the title and nothing else.
227
- If you cannot do this effectively respond with "New Chat".
228
- `;
229
-
230
- const history = await this._conversation.getHistory();
231
- const fiber = Effect.gen(this, function* () {
232
- const session = new AiSession();
233
- return yield* session.run({ system, prompt: 'Suggest a name for this chat', history });
234
- }).pipe(
235
- // TODO(burdon): Use simpler model.
236
- Effect.provide(AiService.model(this._options.model ?? DEFAULT_EDGE_MODEL)),
237
- Effect.tap((messages) => {
238
- const message = messages.find((message) => message.sender.role === 'assistant');
239
- const title = message?.blocks.find((b) => b._tag === 'text')?.text;
240
- if (title) {
241
- chat.name = title;
242
- }
243
- }),
244
- Runtime.runFork(runtime), // Run in the background.
296
+ async updateName(chat: Chat.Chat): Promise<void> {
297
+ const spaceId = Obj.getDatabase(chat)?.spaceId;
298
+ if (!spaceId) {
299
+ return;
300
+ }
301
+ unwrapExit(
302
+ await this._runtime.runPromiseExit(
303
+ Operation.invoke(AssistantOperation.UpdateChatName, { chat }, { spaceId }).pipe(
304
+ Effect.provide(this._spaceLayer),
305
+ ),
306
+ ),
245
307
  );
308
+ }
309
+
310
+ /**
311
+ * Handles an ephemeral message from the agent process.
312
+ * Both pending and completed blocks arrive here. Completed blocks are deduped
313
+ * against messages already written to the feed queue to handle the race between
314
+ * ephemeral delivery and feed replication.
315
+ */
316
+ #handleEphemeralMessage(event: Trace.PayloadType<typeof PartialBlock>) {
317
+ const isPending = event.block.pending;
318
+ const message = Obj.make(Message.Message, {
319
+ id: event.messageId,
320
+ created: new Date().toISOString(),
321
+ sender: { role: event.role },
322
+ blocks: [event.block],
323
+ });
246
324
 
247
- const response = await fiber.pipe(Fiber.join, Effect.runPromiseExit);
248
- if (!Exit.isSuccess(response)) {
249
- throwCause(response.cause);
325
+ if (isPending) {
326
+ if (this.#finalizedIds.has(event.messageId)) {
327
+ return;
328
+ }
329
+ this.#registry.update(this.#streaming, (streaming) => {
330
+ const idx = streaming.findIndex((existing) => existing.id === event.messageId);
331
+ if (idx >= 0) {
332
+ const updated = [...streaming];
333
+ updated[idx] = message;
334
+ return updated;
335
+ }
336
+ return [...streaming, message];
337
+ });
338
+ } else {
339
+ this.#finalizedIds.add(event.messageId);
340
+ this.#registry.update(this.#streaming, (streaming) => streaming.filter((existing) => existing.id !== message.id));
341
+ this.#registry.update(this.#pending, (pending) => {
342
+ if (pending.some((existing) => existing.id === message.id)) {
343
+ return pending;
344
+ }
345
+ return [...pending, message];
346
+ });
250
347
  }
251
348
  }
252
349
 
253
- // TODO(burdon): Fix/factor out.
254
- private _artifactDiffResolver: ArtifactDiffResolver.Service = {
255
- resolve: async (_artifacts) => {
256
- const versions = new Map();
257
- // await Promise.all(
258
- // artifacts.map(async (artifact) => {
259
- // const {
260
- // objects: [object],
261
- // } = await space.db.query(Filter.ids(artifact.id)).run();
262
- // if (!object) {
263
- // return;
264
- // }
265
-
266
- // versions.set(artifact.id, {
267
- // version: getVersion(object),
268
- // diff: `Current state: ${JSON.stringify(object)}`,
269
- // });
270
- // }),
271
- // );
272
-
273
- return versions;
274
- },
275
- };
276
-
277
- private _onMessage = Effect.fn(
278
- function* (this: AiChatProcessor, message: DataType.Message) {
279
- this._rx.set(this._streaming, Option.none());
280
- this._rx.update(this._pending, (pending) => [...pending, message]);
281
- }.bind(this),
282
- );
283
-
284
- private _onBlock = Effect.fn(
285
- function* (this: AiChatProcessor, block: ContentBlock.Any) {
286
- this._rx.update(this._streaming, (streaming) => {
287
- const blocks = streaming.pipe(
288
- Option.map((streaming) => streaming.blocks.filter((b) => !b.pending)),
289
- Option.getOrElse(() => []),
290
- );
350
+ /**
351
+ * Records a per-server MCP failure, deduped by url+protocol so repeat misconfigurations
352
+ * across turns do not spam the UI.
353
+ */
354
+ #handleMcpError(event: Trace.PayloadType<typeof McpServerError>) {
355
+ log.warn('MCP server error', event);
356
+ this.#registry.update(this.mcpErrors, (errors) => {
357
+ if (errors.some((existing) => existing.url === event.url && existing.protocol === event.protocol)) {
358
+ return errors;
359
+ }
360
+ return [...errors, event];
361
+ });
362
+ }
291
363
 
292
- return Option.some(
293
- Obj.make(DataType.Message, {
294
- created: new Date().toISOString(),
295
- sender: { role: 'assistant' },
296
- blocks: [...blocks, block],
297
- }),
298
- );
299
- });
300
- }.bind(this),
301
- );
364
+ /**
365
+ * Move remaining streaming messages to pending (called when agent completes).
366
+ */
367
+ #flushStreaming() {
368
+ const remaining = this.#registry.get(this.#streaming);
369
+ if (remaining.length > 0) {
370
+ this.#registry.update(this.#pending, (pending) => [...pending, ...remaining]);
371
+ this.#registry.set(this.#streaming, []);
372
+ }
373
+ this.#finalizedIds.clear();
374
+ }
375
+
376
+ /**
377
+ * Conditionally schedule chat name update in detached fork mode.
378
+ * Updates if chat has no name OR based on random chance (default 10%).
379
+ */
380
+ #maybeUpdateChatName(): Effect.Effect<void, never, Operation.Service> {
381
+ const chat = this._options.chat?.target;
382
+ if (!chat) {
383
+ return Effect.void;
384
+ }
385
+
386
+ const chance = this._options.autoUpdateNameChance ?? defaultOptions.autoUpdateNameChance ?? 0.1;
387
+ const shouldUpdate = !chat.name || Math.random() < chance;
388
+ if (!shouldUpdate) {
389
+ return Effect.void;
390
+ }
391
+
392
+ const spaceId = Obj.getDatabase(chat)?.spaceId;
393
+ if (!spaceId) {
394
+ return Effect.void;
395
+ }
396
+
397
+ log.info('scheduling chat name update', { hasName: !!chat.name, chance });
398
+ return Operation.schedule(AssistantOperation.UpdateChatName, { chat }, { spaceId });
399
+ }
302
400
  }