@dxos/plugin-assistant 0.8.4-main.406dc2a → 0.8.4-main.422d1c7879

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 (627) hide show
  1. package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs +97 -0
  2. package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs.map +7 -0
  3. package/dist/lib/browser/blueprints/index.mjs +8 -0
  4. package/dist/lib/browser/chunk-ATHYBVGN.mjs +176 -0
  5. package/dist/lib/browser/chunk-ATHYBVGN.mjs.map +7 -0
  6. package/dist/lib/browser/chunk-EZRS3J25.mjs +30 -0
  7. package/dist/lib/browser/chunk-EZRS3J25.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-LMVTXH54.mjs +154 -0
  9. package/dist/lib/browser/chunk-LMVTXH54.mjs.map +7 -0
  10. package/dist/lib/browser/cli/index.mjs +74 -0
  11. package/dist/lib/browser/cli/index.mjs.map +7 -0
  12. package/dist/lib/browser/create-chat-LBZHGVSN.mjs +82 -0
  13. package/dist/lib/browser/create-chat-LBZHGVSN.mjs.map +7 -0
  14. package/dist/lib/browser/ensure-companion-chat-ZEZA34MZ.mjs +65 -0
  15. package/dist/lib/browser/ensure-companion-chat-ZEZA34MZ.mjs.map +7 -0
  16. package/dist/lib/browser/index.mjs +3388 -308
  17. package/dist/lib/browser/index.mjs.map +4 -4
  18. package/dist/lib/browser/meta.json +1 -1
  19. package/dist/lib/browser/on-create-space-54RNX5JI.mjs +22 -0
  20. package/dist/lib/browser/on-create-space-54RNX5JI.mjs.map +7 -0
  21. package/dist/lib/browser/operations/index.mjs +13 -0
  22. package/dist/lib/browser/operations/index.mjs.map +7 -0
  23. package/dist/lib/browser/resolve-navigation-targets-NZOD66NY.mjs +22 -0
  24. package/dist/lib/browser/resolve-navigation-targets-NZOD66NY.mjs.map +7 -0
  25. package/dist/lib/browser/run-prompt-in-new-chat-THLK5YQC.mjs +136 -0
  26. package/dist/lib/browser/run-prompt-in-new-chat-THLK5YQC.mjs.map +7 -0
  27. package/dist/lib/browser/set-current-chat-LRS3VFSH.mjs +54 -0
  28. package/dist/lib/browser/set-current-chat-LRS3VFSH.mjs.map +7 -0
  29. package/dist/lib/browser/types/index.mjs +5 -4
  30. package/dist/lib/browser/update-chat-name-3Y36KFAS.mjs +71 -0
  31. package/dist/lib/browser/update-chat-name-3Y36KFAS.mjs.map +7 -0
  32. package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs +98 -0
  33. package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs.map +7 -0
  34. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  35. package/dist/lib/node-esm/chunk-NZIKC7AN.mjs +32 -0
  36. package/dist/lib/node-esm/chunk-NZIKC7AN.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-PXAJSTGZ.mjs +177 -0
  38. package/dist/lib/node-esm/chunk-PXAJSTGZ.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-W3JZ2F4T.mjs +155 -0
  40. package/dist/lib/node-esm/chunk-W3JZ2F4T.mjs.map +7 -0
  41. package/dist/lib/node-esm/cli/index.mjs +75 -0
  42. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  43. package/dist/lib/node-esm/create-chat-3BEG4R6J.mjs +83 -0
  44. package/dist/lib/node-esm/create-chat-3BEG4R6J.mjs.map +7 -0
  45. package/dist/lib/node-esm/ensure-companion-chat-6K2WEWFP.mjs +66 -0
  46. package/dist/lib/node-esm/ensure-companion-chat-6K2WEWFP.mjs.map +7 -0
  47. package/dist/lib/node-esm/index.mjs +3388 -308
  48. package/dist/lib/node-esm/index.mjs.map +4 -4
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/on-create-space-YRPZ6HZY.mjs +23 -0
  51. package/dist/lib/node-esm/on-create-space-YRPZ6HZY.mjs.map +7 -0
  52. package/dist/lib/node-esm/operations/index.mjs +14 -0
  53. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  54. package/dist/lib/node-esm/resolve-navigation-targets-3PPK7XLH.mjs +23 -0
  55. package/dist/lib/node-esm/resolve-navigation-targets-3PPK7XLH.mjs.map +7 -0
  56. package/dist/lib/node-esm/run-prompt-in-new-chat-OUYKCMQ7.mjs +137 -0
  57. package/dist/lib/node-esm/run-prompt-in-new-chat-OUYKCMQ7.mjs.map +7 -0
  58. package/dist/lib/node-esm/set-current-chat-SMXZJD3F.mjs +55 -0
  59. package/dist/lib/node-esm/set-current-chat-SMXZJD3F.mjs.map +7 -0
  60. package/dist/lib/node-esm/types/index.mjs +5 -4
  61. package/dist/lib/node-esm/update-chat-name-HM2P4NSI.mjs +72 -0
  62. package/dist/lib/node-esm/update-chat-name-HM2P4NSI.mjs.map +7 -0
  63. package/dist/types/src/AssistantPlugin.d.ts +2 -1
  64. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  65. package/dist/types/src/blueprints/assistant/blueprint.d.ts +4 -0
  66. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -0
  67. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts +2 -0
  68. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts.map +1 -0
  69. package/dist/types/src/blueprints/assistant/index.d.ts +2 -0
  70. package/dist/types/src/blueprints/assistant/index.d.ts.map +1 -0
  71. package/dist/types/src/blueprints/index.d.ts +2 -0
  72. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/ai-service.d.ts +4 -2
  74. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  76. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  77. package/dist/types/src/capabilities/blueprint-definition.d.ts +4 -6
  78. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts +9 -0
  80. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/edge-model-resolver.d.ts +6 -3
  82. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/index.d.ts +29 -12
  84. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/local-model-resolver.d.ts +9 -3
  86. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/markdown.d.ts +5 -0
  88. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/migrations.d.ts +5 -0
  90. package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  92. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  94. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/settings.d.ts +4 -2
  96. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/state.d.ts +19 -2
  98. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/toolkit.d.ts +4 -2
  100. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  101. package/dist/types/src/cli/index.d.ts +2 -0
  102. package/dist/types/src/cli/index.d.ts.map +1 -0
  103. package/dist/types/src/cli/plugin.d.ts +10 -0
  104. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  105. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +4 -4
  106. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  107. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts +15 -0
  108. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -0
  109. package/dist/types/src/components/AssistantSettings/index.d.ts +1 -1
  110. package/dist/types/src/components/AssistantSettings/index.d.ts.map +1 -1
  111. package/dist/types/src/components/Chat/Chat.d.ts +28 -15
  112. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  113. package/dist/types/src/components/Chat/events.d.ts +5 -1
  114. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  115. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +6 -3
  116. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
  117. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts +2 -1
  118. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  119. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +5 -3
  120. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  121. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts +19 -0
  122. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -0
  123. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +3 -3
  124. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  125. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts +14 -0
  126. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts.map +1 -0
  127. package/dist/types/src/components/ChatThread/ChatThread.d.ts +7 -10
  128. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  129. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +15 -262
  130. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +42 -0
  132. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -0
  133. package/dist/types/src/components/ChatThread/registry.d.ts +1 -1
  134. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  135. package/dist/types/src/components/ChatThread/sync.d.ts +50 -17
  136. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  137. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts +18 -0
  138. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts.map +1 -0
  139. package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts +2 -0
  140. package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts.map +1 -0
  141. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts +8 -0
  142. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts.map +1 -0
  143. package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts +15 -0
  144. package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts.map +1 -0
  145. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts +25 -0
  146. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts.map +1 -0
  147. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts +18 -0
  148. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts.map +1 -0
  149. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts +9 -0
  150. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts.map +1 -0
  151. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts +14 -0
  152. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts.map +1 -0
  153. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts +12 -0
  154. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts.map +1 -0
  155. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts +25 -0
  156. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts.map +1 -0
  157. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts +11 -0
  158. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts.map +1 -0
  159. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts +5 -0
  160. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts.map +1 -0
  161. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts +9 -0
  162. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts.map +1 -0
  163. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts +15 -0
  164. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts.map +1 -0
  165. package/dist/types/src/components/ChatThread/widgets/index.d.ts +11 -0
  166. package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -0
  167. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +10 -0
  168. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -0
  169. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +8 -0
  170. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -0
  171. package/dist/types/src/components/ProcessTree/index.d.ts +2 -0
  172. package/dist/types/src/components/ProcessTree/index.d.ts.map +1 -0
  173. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +6 -4
  174. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  175. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +1 -250
  176. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  177. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +11 -1
  178. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  179. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +2 -251
  180. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  181. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  182. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  183. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  184. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  185. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  186. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +6 -13
  187. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  188. package/dist/types/src/components/Toolbox/Toolbox.d.ts +13 -12
  189. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  190. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +1 -249
  191. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  192. package/dist/types/src/components/index.d.ts +3 -11
  193. package/dist/types/src/components/index.d.ts.map +1 -1
  194. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts +6 -0
  195. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -0
  196. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts +21 -0
  197. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -0
  198. package/dist/types/src/containers/AgentArticle/index.d.ts +2 -0
  199. package/dist/types/src/containers/AgentArticle/index.d.ts.map +1 -0
  200. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts +6 -0
  201. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts.map +1 -0
  202. package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts +16 -0
  203. package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts.map +1 -0
  204. package/dist/types/src/containers/AgentProperties/index.d.ts +2 -0
  205. package/dist/types/src/containers/AgentProperties/index.d.ts.map +1 -0
  206. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +6 -0
  207. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -0
  208. package/dist/types/src/containers/BlueprintArticle/index.d.ts +2 -0
  209. package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +1 -0
  210. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +18 -0
  211. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -0
  212. package/dist/types/src/containers/ChatCompanion/index.d.ts +2 -0
  213. package/dist/types/src/containers/ChatCompanion/index.d.ts.map +1 -0
  214. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +12 -0
  215. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
  216. package/dist/types/src/containers/ChatContainer/index.d.ts +2 -0
  217. package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
  218. package/dist/types/src/{components → containers/ChatDialog}/ChatDialog.d.ts +2 -3
  219. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -0
  220. package/dist/types/src/containers/ChatDialog/index.d.ts +2 -0
  221. package/dist/types/src/containers/ChatDialog/index.d.ts.map +1 -0
  222. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts +6 -0
  223. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts.map +1 -0
  224. package/dist/types/src/containers/PromptArticle/index.d.ts +2 -0
  225. package/dist/types/src/containers/PromptArticle/index.d.ts.map +1 -0
  226. package/dist/types/src/containers/PromptList/PromptList.d.ts +6 -0
  227. package/dist/types/src/containers/PromptList/PromptList.d.ts.map +1 -0
  228. package/dist/types/src/containers/PromptList/PromptList.stories.d.ts +21 -0
  229. package/dist/types/src/containers/PromptList/PromptList.stories.d.ts.map +1 -0
  230. package/dist/types/src/containers/PromptList/index.d.ts +2 -0
  231. package/dist/types/src/containers/PromptList/index.d.ts.map +1 -0
  232. package/dist/types/src/containers/TracePanel/TracePanel.d.ts +7 -0
  233. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -0
  234. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts +16 -0
  235. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -0
  236. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts +19 -0
  237. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts.map +1 -0
  238. package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts +2 -0
  239. package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts.map +1 -0
  240. package/dist/types/src/containers/TracePanel/execution-graph.d.ts +17 -0
  241. package/dist/types/src/containers/TracePanel/execution-graph.d.ts.map +1 -0
  242. package/dist/types/src/containers/TracePanel/index.d.ts +4 -0
  243. package/dist/types/src/containers/TracePanel/index.d.ts.map +1 -0
  244. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +5 -0
  245. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -0
  246. package/dist/types/src/containers/TriggerStatus/index.d.ts +2 -0
  247. package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -0
  248. package/dist/types/src/containers/index.d.ts +12 -0
  249. package/dist/types/src/containers/index.d.ts.map +1 -0
  250. package/dist/types/src/extensions/index.d.ts +2 -0
  251. package/dist/types/src/extensions/index.d.ts.map +1 -0
  252. package/dist/types/src/extensions/prompt-extension.d.ts +10 -0
  253. package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -0
  254. package/dist/types/src/hooks/index.d.ts +2 -1
  255. package/dist/types/src/hooks/index.d.ts.map +1 -1
  256. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +5 -5
  257. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  258. package/dist/types/src/hooks/useChatProcessor.d.ts +9 -6
  259. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  260. package/dist/types/src/hooks/useChatServices.d.ts +5 -8
  261. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  262. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  263. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  264. package/dist/types/src/hooks/useContextBinder.d.ts +3 -2
  265. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  266. package/dist/types/src/hooks/useContextObjects.d.ts +7 -7
  267. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  268. package/dist/types/src/hooks/useFilteredTypes.d.ts +3 -0
  269. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -0
  270. package/dist/types/src/hooks/usePresets.d.ts +1 -1
  271. package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
  272. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  273. package/dist/types/src/index.d.ts +1 -2
  274. package/dist/types/src/index.d.ts.map +1 -1
  275. package/dist/types/src/meta.d.ts +4 -2
  276. package/dist/types/src/meta.d.ts.map +1 -1
  277. package/dist/types/src/operations/create-chat.d.ts +5 -0
  278. package/dist/types/src/operations/create-chat.d.ts.map +1 -0
  279. package/dist/types/src/operations/definitions.d.ts +135 -0
  280. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  281. package/dist/types/src/operations/ensure-companion-chat.d.ts +5 -0
  282. package/dist/types/src/operations/ensure-companion-chat.d.ts.map +1 -0
  283. package/dist/types/src/operations/index.d.ts +4 -0
  284. package/dist/types/src/operations/index.d.ts.map +1 -0
  285. package/dist/types/src/operations/on-create-space.d.ts +5 -0
  286. package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
  287. package/dist/types/src/operations/prompt.test.d.ts +2 -0
  288. package/dist/types/src/operations/prompt.test.d.ts.map +1 -0
  289. package/dist/types/src/operations/resolve-navigation-targets.d.ts +15 -0
  290. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -0
  291. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +5 -0
  292. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -0
  293. package/dist/types/src/operations/set-current-chat.d.ts +5 -0
  294. package/dist/types/src/operations/set-current-chat.d.ts.map +1 -0
  295. package/dist/types/src/operations/update-chat-name.d.ts +5 -0
  296. package/dist/types/src/operations/update-chat-name.d.ts.map +1 -0
  297. package/dist/types/src/processor/presets.d.ts +1 -1
  298. package/dist/types/src/processor/presets.d.ts.map +1 -1
  299. package/dist/types/src/processor/processor.d.ts +41 -35
  300. package/dist/types/src/processor/processor.d.ts.map +1 -1
  301. package/dist/types/src/queue-logger.d.ts.map +1 -1
  302. package/dist/types/src/testing/test-generator.d.ts +5 -4
  303. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  304. package/dist/types/src/testing/test-generator.test.d.ts +2 -0
  305. package/dist/types/src/testing/test-generator.test.d.ts.map +1 -0
  306. package/dist/types/src/testing/test-services.d.ts +1 -1
  307. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  308. package/dist/types/src/testing/trace-timeline.test.d.ts +2 -0
  309. package/dist/types/src/testing/trace-timeline.test.d.ts.map +1 -0
  310. package/dist/types/src/translations.d.ts +2 -87
  311. package/dist/types/src/translations.d.ts.map +1 -1
  312. package/dist/types/src/types/Assistant.d.ts +18 -49
  313. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  314. package/dist/types/src/types/Settings.d.ts +11 -0
  315. package/dist/types/src/types/Settings.d.ts.map +1 -0
  316. package/dist/types/src/types/capabilities.d.ts +32 -0
  317. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  318. package/dist/types/src/types/events.d.ts +5 -0
  319. package/dist/types/src/types/events.d.ts.map +1 -0
  320. package/dist/types/src/types/index.d.ts +3 -1
  321. package/dist/types/src/types/index.d.ts.map +1 -1
  322. package/dist/types/src/types/service.d.ts +10 -212
  323. package/dist/types/src/types/service.d.ts.map +1 -1
  324. package/dist/types/tsconfig.tsbuildinfo +1 -1
  325. package/package.json +144 -98
  326. package/src/AssistantPlugin.tsx +190 -119
  327. package/src/blueprints/assistant/blueprint.test.ts +46 -0
  328. package/src/blueprints/assistant/blueprint.ts +31 -0
  329. package/src/blueprints/assistant/index.ts +5 -0
  330. package/src/{components/Toolbar → blueprints}/index.ts +1 -1
  331. package/src/capabilities/ai-service.ts +20 -17
  332. package/src/capabilities/app-graph-builder.ts +143 -144
  333. package/src/capabilities/blueprint-definition.ts +49 -55
  334. package/src/capabilities/companion-chat-provisioner.ts +164 -0
  335. package/src/capabilities/edge-model-resolver.ts +22 -14
  336. package/src/capabilities/index.ts +21 -14
  337. package/src/capabilities/local-model-resolver.ts +31 -13
  338. package/src/capabilities/markdown.ts +40 -0
  339. package/src/capabilities/migrations.ts +35 -0
  340. package/src/capabilities/operation-handler.ts +16 -0
  341. package/src/capabilities/react-surface.tsx +147 -77
  342. package/src/capabilities/settings.ts +24 -12
  343. package/src/capabilities/state.ts +27 -12
  344. package/src/capabilities/toolkit.ts +6 -161
  345. package/src/cli/index.ts +5 -0
  346. package/src/cli/plugin.ts +84 -0
  347. package/src/components/AssistantSettings/AssistantSettings.stories.tsx +34 -0
  348. package/src/components/AssistantSettings/AssistantSettings.tsx +105 -85
  349. package/src/components/AssistantSettings/index.ts +2 -2
  350. package/src/components/Chat/Chat.tsx +225 -147
  351. package/src/components/Chat/events.ts +7 -1
  352. package/src/components/ChatProgress/ChatProgress.tsx +11 -22
  353. package/src/components/ChatPrompt/ChatActions.tsx +26 -8
  354. package/src/components/ChatPrompt/ChatOptions.stories.tsx +122 -0
  355. package/src/components/ChatPrompt/ChatOptions.tsx +272 -93
  356. package/src/components/ChatPrompt/ChatReferences.tsx +23 -14
  357. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +1 -1
  358. package/src/components/ChatThread/Anchor.stories.tsx +95 -0
  359. package/src/components/ChatThread/ChatThread.stories.tsx +76 -62
  360. package/src/components/ChatThread/ChatThread.tsx +47 -44
  361. package/src/components/ChatThread/Link.tsx +4 -4
  362. package/src/components/ChatThread/MarkdownStream.stories.tsx +280 -0
  363. package/src/components/ChatThread/registry.tsx +132 -69
  364. package/src/components/ChatThread/sync.test.ts +130 -20
  365. package/src/components/ChatThread/sync.ts +104 -67
  366. package/src/components/ChatThread/testing/reasoning.md +25 -0
  367. package/src/components/ChatThread/testing/thinking.md +21 -0
  368. package/src/components/ChatThread/testing/thread-1.md +30 -0
  369. package/src/components/ChatThread/testing/thread-2.md +56 -0
  370. package/src/components/ChatThread/testing/thread-widgets.md +79 -0
  371. package/src/components/ChatThread/tool-widget-state.test.ts +34 -0
  372. package/src/components/ChatThread/tool-widget-state.ts +48 -0
  373. package/src/components/ChatThread/widgets/FallbackWidget.tsx +26 -0
  374. package/src/components/ChatThread/widgets/PromptWidget.ts +30 -0
  375. package/src/components/ChatThread/widgets/ReasoningWidget.stories.tsx +68 -0
  376. package/src/components/ChatThread/widgets/ReasoningWidget.ts +133 -0
  377. package/src/components/ChatThread/widgets/ReferenceWidget.ts +31 -0
  378. package/src/components/ChatThread/widgets/SelectWidget.ts +37 -0
  379. package/src/components/ChatThread/widgets/StatsWidget.ts +29 -0
  380. package/src/components/ChatThread/widgets/StatusWidget.ts +131 -0
  381. package/src/components/ChatThread/widgets/SuggestionWidget.ts +41 -0
  382. package/src/components/ChatThread/widgets/SummaryWidget.tsx +28 -0
  383. package/src/components/ChatThread/widgets/ToolWidget.stories.tsx +54 -0
  384. package/src/components/ChatThread/widgets/ToolWidget.tsx +156 -0
  385. package/src/components/ChatThread/widgets/index.ts +14 -0
  386. package/src/components/ProcessTree/ProcessTree.stories.tsx +109 -0
  387. package/src/components/ProcessTree/ProcessTree.tsx +86 -0
  388. package/src/components/ProcessTree/index.ts +5 -0
  389. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +18 -13
  390. package/src/components/TemplateEditor/TemplateEditor.tsx +59 -39
  391. package/src/components/TemplateEditor/TemplateForm.stories.tsx +20 -11
  392. package/src/components/TemplateEditor/TemplateForm.tsx +83 -37
  393. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +274 -0
  394. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  395. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  396. package/src/components/ToolBlock/ToolBlock.tsx +46 -54
  397. package/src/components/Toolbox/Toolbox.stories.tsx +11 -14
  398. package/src/components/Toolbox/Toolbox.tsx +70 -65
  399. package/src/components/index.ts +3 -10
  400. package/src/containers/AgentArticle/AgentArticle.stories.tsx +120 -0
  401. package/src/containers/AgentArticle/AgentArticle.tsx +200 -0
  402. package/src/containers/AgentArticle/index.ts +5 -0
  403. package/src/containers/AgentProperties/AgentProperties.stories.tsx +100 -0
  404. package/src/containers/AgentProperties/AgentProperties.tsx +127 -0
  405. package/src/containers/AgentProperties/index.ts +5 -0
  406. package/src/containers/BlueprintArticle/BlueprintArticle.tsx +29 -0
  407. package/src/containers/BlueprintArticle/index.ts +5 -0
  408. package/src/containers/ChatCompanion/ChatCompanion.tsx +142 -0
  409. package/src/containers/ChatCompanion/index.ts +5 -0
  410. package/src/containers/ChatContainer/ChatContainer.tsx +95 -0
  411. package/src/containers/ChatContainer/index.ts +5 -0
  412. package/src/{components → containers/ChatDialog}/ChatDialog.tsx +19 -15
  413. package/src/containers/ChatDialog/index.ts +5 -0
  414. package/src/containers/PromptArticle/PromptArticle.tsx +59 -0
  415. package/src/containers/PromptArticle/index.ts +5 -0
  416. package/src/containers/PromptList/PromptList.stories.tsx +129 -0
  417. package/src/containers/PromptList/PromptList.tsx +49 -0
  418. package/src/containers/PromptList/index.ts +5 -0
  419. package/src/containers/TracePanel/TracePanel.stories.tsx +272 -0
  420. package/src/containers/TracePanel/TracePanel.tsx +113 -0
  421. package/src/containers/TracePanel/dxn-extractor.test.ts +153 -0
  422. package/src/containers/TracePanel/dxn-extractor.ts +178 -0
  423. package/src/containers/TracePanel/execution-graph.ts +452 -0
  424. package/src/containers/TracePanel/index.ts +9 -0
  425. package/src/containers/TriggerStatus/TriggerStatus.tsx +129 -0
  426. package/src/containers/TriggerStatus/index.ts +5 -0
  427. package/src/containers/index.ts +16 -0
  428. package/src/extensions/index.ts +5 -0
  429. package/src/extensions/prompt-extension.ts +111 -0
  430. package/src/hooks/index.ts +2 -1
  431. package/src/hooks/useBlueprintRegistry.ts +36 -21
  432. package/src/hooks/useChatProcessor.ts +44 -28
  433. package/src/hooks/useChatServices.ts +10 -33
  434. package/src/hooks/useChatToolbarActions.ts +122 -0
  435. package/src/hooks/useContextBinder.ts +20 -7
  436. package/src/hooks/useContextObjects.ts +16 -24
  437. package/src/hooks/useFilteredTypes.ts +37 -0
  438. package/src/hooks/usePresets.ts +2 -1
  439. package/src/hooks/useReferencesProvider.ts +5 -8
  440. package/src/index.ts +1 -2
  441. package/src/meta.ts +14 -6
  442. package/src/operations/create-chat.ts +80 -0
  443. package/src/operations/definitions.ts +127 -0
  444. package/src/operations/ensure-companion-chat.ts +61 -0
  445. package/src/operations/index.ts +17 -0
  446. package/src/operations/on-create-space.ts +24 -0
  447. package/src/operations/prompt.test.ts +79 -0
  448. package/src/operations/resolve-navigation-targets.ts +26 -0
  449. package/src/operations/run-prompt-in-new-chat.ts +113 -0
  450. package/src/operations/set-current-chat.ts +50 -0
  451. package/src/operations/update-chat-name.ts +61 -0
  452. package/src/processor/presets.ts +12 -4
  453. package/src/processor/processor.test.ts +20 -61
  454. package/src/processor/processor.ts +200 -181
  455. package/src/queue-logger.ts +24 -14
  456. package/src/testing/data/trace-timeline.dx.json +2120 -0
  457. package/src/testing/test-generator.test.ts +81 -0
  458. package/src/testing/test-generator.ts +86 -48
  459. package/src/testing/test-sequence.ts +3 -3
  460. package/src/testing/test-services.ts +9 -7
  461. package/src/testing/trace-timeline.conversations.json +1 -0
  462. package/src/testing/trace-timeline.test.ts +246 -0
  463. package/src/translations.ts +161 -77
  464. package/src/types/Assistant.ts +8 -58
  465. package/src/types/Settings.ts +21 -0
  466. package/src/types/capabilities.ts +35 -0
  467. package/src/types/events.ts +11 -0
  468. package/src/types/index.ts +5 -1
  469. package/src/types/service.ts +14 -11
  470. package/dist/lib/browser/BlueprintContainer-WX2SSDVI.mjs +0 -28
  471. package/dist/lib/browser/BlueprintContainer-WX2SSDVI.mjs.map +0 -7
  472. package/dist/lib/browser/ChatCompanion-BDZ55ZRF.mjs +0 -150
  473. package/dist/lib/browser/ChatCompanion-BDZ55ZRF.mjs.map +0 -7
  474. package/dist/lib/browser/ChatContainer-RYGNN73X.mjs +0 -73
  475. package/dist/lib/browser/ChatContainer-RYGNN73X.mjs.map +0 -7
  476. package/dist/lib/browser/ChatDialog-MVHH2U66.mjs +0 -86
  477. package/dist/lib/browser/ChatDialog-MVHH2U66.mjs.map +0 -7
  478. package/dist/lib/browser/SequenceContainer-2FEWMQGW.mjs +0 -150
  479. package/dist/lib/browser/SequenceContainer-2FEWMQGW.mjs.map +0 -7
  480. package/dist/lib/browser/ai-service-ERTZBTP3.mjs +0 -19
  481. package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +0 -7
  482. package/dist/lib/browser/app-graph-builder-2U7SLCRX.mjs +0 -154
  483. package/dist/lib/browser/app-graph-builder-2U7SLCRX.mjs.map +0 -7
  484. package/dist/lib/browser/blueprint-definition-NSJARW5U.mjs +0 -12
  485. package/dist/lib/browser/chunk-2CE2KPKZ.mjs +0 -175
  486. package/dist/lib/browser/chunk-2CE2KPKZ.mjs.map +0 -7
  487. package/dist/lib/browser/chunk-43I2LR6O.mjs +0 -216
  488. package/dist/lib/browser/chunk-43I2LR6O.mjs.map +0 -7
  489. package/dist/lib/browser/chunk-5EGXHCAZ.mjs +0 -16
  490. package/dist/lib/browser/chunk-5EGXHCAZ.mjs.map +0 -7
  491. package/dist/lib/browser/chunk-5RICKAMN.mjs +0 -18
  492. package/dist/lib/browser/chunk-5RICKAMN.mjs.map +0 -7
  493. package/dist/lib/browser/chunk-CQ7UHYTT.mjs +0 -296
  494. package/dist/lib/browser/chunk-CQ7UHYTT.mjs.map +0 -7
  495. package/dist/lib/browser/chunk-FP56WB24.mjs +0 -212
  496. package/dist/lib/browser/chunk-FP56WB24.mjs.map +0 -7
  497. package/dist/lib/browser/chunk-JZRZVB2A.mjs +0 -170
  498. package/dist/lib/browser/chunk-JZRZVB2A.mjs.map +0 -7
  499. package/dist/lib/browser/chunk-WRJGOT5P.mjs +0 -1794
  500. package/dist/lib/browser/chunk-WRJGOT5P.mjs.map +0 -7
  501. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +0 -18
  502. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +0 -7
  503. package/dist/lib/browser/intent-resolver-3GOJMBXJ.mjs +0 -114
  504. package/dist/lib/browser/intent-resolver-3GOJMBXJ.mjs.map +0 -7
  505. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs +0 -17
  506. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs.map +0 -7
  507. package/dist/lib/browser/react-surface-FTKCE6GG.mjs +0 -107
  508. package/dist/lib/browser/react-surface-FTKCE6GG.mjs.map +0 -7
  509. package/dist/lib/browser/settings-HBF32KV6.mjs +0 -23
  510. package/dist/lib/browser/settings-HBF32KV6.mjs.map +0 -7
  511. package/dist/lib/browser/state-LXTS54DI.mjs +0 -21
  512. package/dist/lib/browser/state-LXTS54DI.mjs.map +0 -7
  513. package/dist/lib/browser/toolkit-NQ2GXCF5.mjs +0 -199
  514. package/dist/lib/browser/toolkit-NQ2GXCF5.mjs.map +0 -7
  515. package/dist/lib/node-esm/BlueprintContainer-4MKN6ZRB.mjs +0 -29
  516. package/dist/lib/node-esm/BlueprintContainer-4MKN6ZRB.mjs.map +0 -7
  517. package/dist/lib/node-esm/ChatCompanion-XFNXVZIP.mjs +0 -151
  518. package/dist/lib/node-esm/ChatCompanion-XFNXVZIP.mjs.map +0 -7
  519. package/dist/lib/node-esm/ChatContainer-UTJGCQXF.mjs +0 -74
  520. package/dist/lib/node-esm/ChatContainer-UTJGCQXF.mjs.map +0 -7
  521. package/dist/lib/node-esm/ChatDialog-QEYZ4IOV.mjs +0 -87
  522. package/dist/lib/node-esm/ChatDialog-QEYZ4IOV.mjs.map +0 -7
  523. package/dist/lib/node-esm/SequenceContainer-PGGJUQ46.mjs +0 -151
  524. package/dist/lib/node-esm/SequenceContainer-PGGJUQ46.mjs.map +0 -7
  525. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +0 -20
  526. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +0 -7
  527. package/dist/lib/node-esm/app-graph-builder-OKNLR7H2.mjs +0 -155
  528. package/dist/lib/node-esm/app-graph-builder-OKNLR7H2.mjs.map +0 -7
  529. package/dist/lib/node-esm/blueprint-definition-WD2IVMAI.mjs +0 -13
  530. package/dist/lib/node-esm/chunk-73ABYRYX.mjs +0 -20
  531. package/dist/lib/node-esm/chunk-73ABYRYX.mjs.map +0 -7
  532. package/dist/lib/node-esm/chunk-DSE2IILK.mjs +0 -217
  533. package/dist/lib/node-esm/chunk-DSE2IILK.mjs.map +0 -7
  534. package/dist/lib/node-esm/chunk-E2WXZND7.mjs +0 -297
  535. package/dist/lib/node-esm/chunk-E2WXZND7.mjs.map +0 -7
  536. package/dist/lib/node-esm/chunk-HXIBCBH4.mjs +0 -171
  537. package/dist/lib/node-esm/chunk-HXIBCBH4.mjs.map +0 -7
  538. package/dist/lib/node-esm/chunk-TNR46C3L.mjs +0 -213
  539. package/dist/lib/node-esm/chunk-TNR46C3L.mjs.map +0 -7
  540. package/dist/lib/node-esm/chunk-U2NYUS2N.mjs +0 -177
  541. package/dist/lib/node-esm/chunk-U2NYUS2N.mjs.map +0 -7
  542. package/dist/lib/node-esm/chunk-UFKLCEAE.mjs +0 -1795
  543. package/dist/lib/node-esm/chunk-UFKLCEAE.mjs.map +0 -7
  544. package/dist/lib/node-esm/chunk-XQGWSZ4T.mjs +0 -17
  545. package/dist/lib/node-esm/chunk-XQGWSZ4T.mjs.map +0 -7
  546. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs +0 -19
  547. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +0 -7
  548. package/dist/lib/node-esm/intent-resolver-6XLVTRDJ.mjs +0 -115
  549. package/dist/lib/node-esm/intent-resolver-6XLVTRDJ.mjs.map +0 -7
  550. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs +0 -18
  551. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs.map +0 -7
  552. package/dist/lib/node-esm/react-surface-K7ZXQLAP.mjs +0 -108
  553. package/dist/lib/node-esm/react-surface-K7ZXQLAP.mjs.map +0 -7
  554. package/dist/lib/node-esm/settings-CWP6MTWP.mjs +0 -24
  555. package/dist/lib/node-esm/settings-CWP6MTWP.mjs.map +0 -7
  556. package/dist/lib/node-esm/state-BO6GUFLB.mjs +0 -22
  557. package/dist/lib/node-esm/state-BO6GUFLB.mjs.map +0 -7
  558. package/dist/lib/node-esm/toolkit-V57PRJNG.mjs +0 -200
  559. package/dist/lib/node-esm/toolkit-V57PRJNG.mjs.map +0 -7
  560. package/dist/types/src/capabilities/capabilities.d.ts +0 -11
  561. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  562. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  563. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  564. package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
  565. package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
  566. package/dist/types/src/components/ChatCompanion.d.ts +0 -13
  567. package/dist/types/src/components/ChatCompanion.d.ts.map +0 -1
  568. package/dist/types/src/components/ChatContainer.d.ts +0 -11
  569. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  570. package/dist/types/src/components/ChatDialog.d.ts.map +0 -1
  571. package/dist/types/src/components/ChatThread/reducers.d.ts +0 -40
  572. package/dist/types/src/components/ChatThread/reducers.d.ts.map +0 -1
  573. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  574. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  575. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  576. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  577. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  578. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  579. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -269
  580. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  581. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  582. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  583. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +0 -1
  584. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -5
  585. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  586. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  587. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  588. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts +0 -11
  589. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +0 -1
  590. package/dist/types/src/events.d.ts +0 -4
  591. package/dist/types/src/events.d.ts.map +0 -1
  592. package/dist/types/src/functions/analysis.d.ts +0 -5
  593. package/dist/types/src/functions/analysis.d.ts.map +0 -1
  594. package/dist/types/src/functions/index.d.ts +0 -4
  595. package/dist/types/src/functions/index.d.ts.map +0 -1
  596. package/dist/types/src/functions/list.d.ts +0 -10
  597. package/dist/types/src/functions/list.d.ts.map +0 -1
  598. package/dist/types/src/functions/load.d.ts +0 -8
  599. package/dist/types/src/functions/load.d.ts.map +0 -1
  600. package/dist/types/src/hooks/useItemTypes.d.ts +0 -4
  601. package/dist/types/src/hooks/useItemTypes.d.ts.map +0 -1
  602. package/dist/types/src/types/AssistantAction.d.ts +0 -107
  603. package/dist/types/src/types/AssistantAction.d.ts.map +0 -1
  604. package/src/capabilities/capabilities.ts +0 -18
  605. package/src/capabilities/intent-resolver.ts +0 -96
  606. package/src/components/BlueprintContainer.tsx +0 -24
  607. package/src/components/ChatCompanion.tsx +0 -136
  608. package/src/components/ChatContainer.tsx +0 -51
  609. package/src/components/ChatThread/reducers.ts +0 -151
  610. package/src/components/PromptSettings.tsx +0 -90
  611. package/src/components/SequenceContainer.tsx +0 -131
  612. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -35
  613. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  614. package/src/components/SequenceEditor/index.ts +0 -5
  615. package/src/components/TemplateEditor/handlebars-extension.ts +0 -165
  616. package/src/components/Toolbar/Toolbar.tsx +0 -21
  617. package/src/components/Toolbar/useChatToolbarActions.ts +0 -126
  618. package/src/events.ts +0 -11
  619. package/src/functions/analysis.ts +0 -22
  620. package/src/functions/index.ts +0 -7
  621. package/src/functions/list.ts +0 -48
  622. package/src/functions/load.ts +0 -46
  623. package/src/hooks/useItemTypes.ts +0 -37
  624. package/src/types/AssistantAction.ts +0 -62
  625. /package/dist/lib/browser/{blueprint-definition-NSJARW5U.mjs.map → blueprints/index.mjs.map} +0 -0
  626. /package/dist/lib/node-esm/{blueprint-definition-WD2IVMAI.mjs.map → blueprints/index.mjs.map} +0 -0
  627. /package/dist/types/src/components/TemplateEditor/{handlebars-extension.d.ts → extensions/handlebars-extension.d.ts} +0 -0
@@ -2,69 +2,68 @@
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 } 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';
10
8
  import * as Option from 'effect/Option';
11
- import * as Runtime from 'effect/Runtime';
9
+ import * as Stream from 'effect/Stream';
12
10
 
11
+ import { type AiService, DEFAULT_EDGE_MODEL, type ModelName, type ModelRegistry } from '@dxos/ai';
13
12
  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,
24
- AiSession,
25
- ArtifactDiffResolver,
26
- GenerationObserver,
13
+ AiContextService,
14
+ type AiSession,
27
15
  createSystemPrompt,
16
+ formatSystemPrompt,
17
+ AgentService,
18
+ PartialBlock,
19
+ ToolExecutionServices,
28
20
  } from '@dxos/assistant';
21
+ import { type Chat } from '@dxos/assistant-toolkit';
29
22
  import { type Blueprint } from '@dxos/blueprints';
30
- import { Obj } from '@dxos/echo';
31
- import { throwCause } from '@dxos/effect';
32
- import {
33
- type CredentialsService,
34
- type DatabaseService,
35
- type FunctionInvocationService,
36
- type QueueService,
37
- type TracingService,
38
- } from '@dxos/functions';
23
+ import { type Database, Feed, Obj, Ref } from '@dxos/echo';
24
+ import { runAndForwardErrors, unwrapExit } from '@dxos/effect';
25
+ import { Trace, type CredentialsService, type QueueService } from '@dxos/functions';
39
26
  import { log } from '@dxos/log';
40
- import { type ContentBlock, DataType } from '@dxos/schema';
41
- import { trim } from '@dxos/util';
27
+ import { Operation } from '@dxos/operation';
28
+ import type { AutomationCapabilities } from '@dxos/plugin-automation/types';
29
+ import { Message } from '@dxos/types';
42
30
 
43
- import { type Assistant } from '../types';
31
+ import { UpdateChatName } from '../operations/definitions';
44
32
 
33
+ /**
34
+ * @deprecated Services type for the old direct-conversation processor path.
35
+ * Retained for backward compatibility with CLI and update-name.
36
+ */
45
37
  export type AiChatServices =
46
38
  | CredentialsService
47
- | DatabaseService
39
+ | Database.Service
48
40
  | QueueService
49
- | FunctionInvocationService
50
41
  | AiService.AiService
51
- | ToolExecutionService
52
- | ToolResolverService
53
- | TracingService;
42
+ | Trace.TraceService;
54
43
 
55
44
  export type AiChatProcessorOptions = {
56
45
  model?: ModelName;
57
46
  modelRegistry?: ModelRegistry;
58
47
  blueprintRegistry?: Blueprint.Registry;
59
48
  observableRegistry?: Registry.Registry;
60
- extensions?: ToolContextExtensions;
61
- } & Pick<AiConversationRunParams, 'system'>;
49
+ /**
50
+ * For tracing.
51
+ */
52
+ chat?: Ref.Ref<Chat.Chat>;
53
+ system?: string;
54
+ /**
55
+ * Probability of automatically updating chat name after each request.
56
+ * Chat name is always updated if it has no name.
57
+ * @default 0.1 (10%)
58
+ */
59
+ autoUpdateNameChance?: number;
60
+ };
62
61
 
63
62
  const defaultOptions: Partial<AiChatProcessorOptions> = {
64
63
  model: DEFAULT_EDGE_MODEL,
64
+ autoUpdateNameChance: 0.1,
65
65
  };
66
66
 
67
- // TODO(burdon): Retry, timeout?
68
67
  export type AiRequestOptions = {};
69
68
 
70
69
  export type AiRequest = {
@@ -74,55 +73,45 @@ export type AiRequest = {
74
73
 
75
74
  /**
76
75
  * Handles interactions with the AI service.
77
- * Handles streaming responses from the conversation.
76
+ * Uses AgentService to spawn a process-backed agent and subscribes to ephemeral trace events for streaming.
78
77
  */
79
78
  export class AiChatProcessor {
80
- private readonly _rx: Registry.Registry;
79
+ readonly #registry: Registry.Registry;
81
80
 
82
- /** External observer. */
83
- private readonly _observer: GenerationObserver;
81
+ /** Pending messages (finalized, non-streaming). */
82
+ readonly #pending = Atom.make<Message.Message[]>([]);
84
83
 
85
- /** Currently active request fiber. */
86
- private _fiber: Fiber.Fiber<void, any> | undefined;
84
+ /** Currently streaming messages (from ephemeral trace events). */
85
+ readonly #streaming = Atom.make<Message.Message[]>([]);
87
86
 
88
- /** Last request (for retries). */
89
- private _lastRequest: AiRequest | undefined;
87
+ /** Set of message IDs that have been finalized (non-pending delivered via ephemeral). */
88
+ readonly #finalizedIds = new Set<string>();
90
89
 
91
- /** Pending messages (incl. the current user request). */
92
- private readonly _pending = Rx.make<DataType.Message[]>([]);
90
+ /** Currently active request fiber. */
91
+ #requestFiber: Fiber.RuntimeFiber<void, unknown> | undefined;
93
92
 
94
- /** Currently streaming message (from the AI service). */
95
- private readonly _streaming = Rx.make<Option.Option<DataType.Message>>(Option.none());
93
+ /** Last request (for retries). */
94
+ #lastRequest: AiRequest | undefined;
96
95
 
97
96
  /** Streaming state. */
98
- public readonly streaming = Rx.make<boolean>((get) => Option.isSome(get(this._streaming)));
97
+ public readonly streaming = Atom.make<boolean>((get) => get(this.#streaming).length > 0);
99
98
 
100
99
  /** Active state. */
101
- public readonly active = Rx.make(false);
100
+ public readonly active = Atom.make(false);
102
101
 
103
102
  /** 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
- );
103
+ public readonly messages = Atom.make<Message.Message[]>((get) => [...get(this.#pending), ...get(this.#streaming)]);
110
104
 
111
105
  /** Last error. */
112
- public readonly error = Rx.make<Option.Option<Error>>(Option.none());
106
+ public readonly error = Atom.make<Option.Option<Error>>(Option.none());
113
107
 
114
108
  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>>,
109
+ private readonly _conversation: AiSession,
110
+ private readonly _runtime: AutomationCapabilities.ComputeRuntime,
111
+ private readonly _feed: Feed.Feed,
118
112
  private readonly _options: AiChatProcessorOptions = defaultOptions,
119
113
  ) {
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
- });
114
+ this.#registry = this._options.observableRegistry ?? Registry.make();
126
115
  if (this._options.model && !this._options.system) {
127
116
  const capabilities = this._options.modelRegistry?.getCapabilities(this._options.model) ?? {};
128
117
  this._options.system = createSystemPrompt(capabilities);
@@ -141,54 +130,87 @@ export class AiChatProcessor {
141
130
  return this._options.blueprintRegistry;
142
131
  }
143
132
 
133
+ get system(): string {
134
+ return this._options.system ?? '';
135
+ }
136
+
137
+ async getTools(): Promise<Record<string, any>> {
138
+ return this._runtime.runPromise(Effect.provide(this._conversation.getTools(), ToolExecutionServices));
139
+ }
140
+
141
+ async getSystemPrompt(): Promise<string> {
142
+ return this._runtime.runPromise(
143
+ Effect.gen(this, function* () {
144
+ const blueprints = this.context.getBlueprints();
145
+ const objects = this.context.getObjects();
146
+ return yield* formatSystemPrompt({ system: this._options.system, blueprints, objects });
147
+ }).pipe(Effect.provideService(AiContextService, { binder: this.context }), Effect.orDie),
148
+ );
149
+ }
150
+
144
151
  /**
145
- * Initiates a new request.
152
+ * Initiates a new request via AgentService.
146
153
  */
147
- async request(requestParam: AiRequest): Promise<void> {
148
- if (this._fiber) {
154
+ async request(requestProp: AiRequest): Promise<void> {
155
+ if (this.#requestFiber) {
149
156
  await this.cancel();
150
157
  }
151
158
 
152
159
  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
- });
160
+ this.#lastRequest = requestProp;
161
+ this.#registry.set(this.error, Option.none());
162
+ this.#registry.set(this.active, true);
163
+
164
+ const effect = Effect.gen(this, function* () {
165
+ // NOTE: Gets or creates a session for the feed.
166
+ log.info('init agent session', { feed: Obj.getDXN(this._feed).toString(), model: this._options.model });
167
+ const session = yield* AgentService.getSession(this._feed, { model: this._options.model });
168
+ const ephemeralStream = session.subscribeEphemeral();
169
+ yield* ephemeralStream.pipe(
170
+ Stream.runForEach((message) =>
171
+ Effect.sync(() => {
172
+ for (const event of message.events) {
173
+ if (Trace.isOfType(PartialBlock, event)) {
174
+ this.#handleEphemeralMessage(event.data);
175
+ }
176
+ }
177
+ }),
178
+ ),
179
+ Effect.fork,
180
+ );
163
181
 
164
- const runtime = await this._services();
182
+ log('chat processor submitting prompt', { length: requestProp.message.length });
183
+ yield* session.submitPrompt(requestProp.message);
184
+ log('chat processor submitPrompt returned, waiting for agent', {});
185
+ yield* session.waitForCompletion();
186
+ log.info('session complete');
165
187
 
166
- // Create fiber.
167
- this._fiber = request.pipe(
168
- Effect.provide(AiService.model(this._options.model ?? DEFAULT_EDGE_MODEL)),
188
+ this.#flushStreaming();
169
189
 
170
- // TODO(dmaretskyi): Move ArtifactDiffResolver upstream.
171
- Effect.provideService(ArtifactDiffResolver, this._artifactDiffResolver),
190
+ yield* this.#maybeUpdateChatName();
191
+ });
172
192
 
173
- Effect.asVoid,
174
- Runtime.runFork(runtime), // Runs in the background.
175
- );
193
+ this.#requestFiber = this._runtime.runFork(effect);
176
194
 
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);
195
+ try {
196
+ await this._runtime.runPromise(Fiber.join(this.#requestFiber));
197
+ } catch (err: any) {
198
+ if (err._tag === 'InterruptedException' || err.message?.includes('interrupted')) {
199
+ return;
200
+ }
201
+ throw err;
181
202
  }
182
203
 
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 })));
204
+ this.#registry.set(this.error, Option.none());
205
+ this.#lastRequest = undefined;
206
+ this.#requestFiber = undefined;
207
+ } catch (err) {
208
+ log.error('request failed', { error: err });
209
+ this.#registry.set(this.error, Option.some(new Error('AI service error', { cause: err })));
189
210
  } finally {
190
- this._fiber = undefined;
191
- this._rx.set(this.active, false);
211
+ log.info('setting active to false');
212
+ this.#registry.set(this.active, false);
213
+ this.#requestFiber = undefined;
192
214
  }
193
215
  }
194
216
 
@@ -196,107 +218,104 @@ export class AiChatProcessor {
196
218
  * Cancels the current request.
197
219
  */
198
220
  async cancel(): Promise<void> {
199
- await Effect.runPromise(
221
+ await runAndForwardErrors(
200
222
  Effect.gen(this, function* () {
201
- if (this._fiber) {
202
- yield* this._fiber.pipe(Fiber.interrupt);
223
+ if (this.#requestFiber) {
224
+ yield* Fiber.interrupt(this.#requestFiber);
203
225
  }
204
226
  }),
205
227
  );
206
228
 
207
- this._fiber = undefined;
208
- this._rx.set(this.active, false);
229
+ this.#requestFiber = undefined;
230
+ this.#registry.set(this.active, false);
209
231
  }
210
232
 
211
233
  /**
212
234
  * Retry last failed request.
213
235
  */
214
236
  async retry(): Promise<void> {
215
- if (this._lastRequest) {
216
- return this.request(this._lastRequest);
237
+ if (this.#lastRequest) {
238
+ return this.request(this.#lastRequest);
217
239
  }
218
240
  }
219
241
 
220
242
  /**
221
243
  * Update the current chat's name.
222
244
  */
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;
245
+ async updateName(chat: Chat.Chat): Promise<void> {
246
+ unwrapExit(await this._runtime.runPromiseExit(Operation.invoke(UpdateChatName, { chat })));
247
+ }
248
+
249
+ /**
250
+ * Handles an ephemeral message from the agent process.
251
+ * Both pending and completed blocks arrive here. Completed blocks are deduped
252
+ * against messages already written to the feed queue to handle the race between
253
+ * ephemeral delivery and feed replication.
254
+ */
255
+ #handleEphemeralMessage(event: Trace.PayloadType<typeof PartialBlock>) {
256
+ const isPending = event.block.pending;
257
+ const message = Obj.make(Message.Message, {
258
+ id: event.messageId,
259
+ created: new Date().toISOString(),
260
+ sender: { role: event.role },
261
+ blocks: [event.block],
262
+ });
263
+
264
+ if (isPending) {
265
+ if (this.#finalizedIds.has(event.messageId)) {
266
+ return;
267
+ }
268
+ this.#registry.update(this.#streaming, (streaming) => {
269
+ const idx = streaming.findIndex((existing) => existing.id === event.messageId);
270
+ if (idx >= 0) {
271
+ const updated = [...streaming];
272
+ updated[idx] = message;
273
+ return updated;
242
274
  }
243
- }),
244
- Runtime.runFork(runtime), // Run in the background.
245
- );
275
+ return [...streaming, message];
276
+ });
277
+ } else {
278
+ this.#finalizedIds.add(event.messageId);
279
+ this.#registry.update(this.#streaming, (streaming) => streaming.filter((existing) => existing.id !== message.id));
280
+ this.#registry.update(this.#pending, (pending) => {
281
+ if (pending.some((existing) => existing.id === message.id)) {
282
+ return pending;
283
+ }
284
+ return [...pending, message];
285
+ });
286
+ }
287
+ }
246
288
 
247
- const response = await fiber.pipe(Fiber.join, Effect.runPromiseExit);
248
- if (!Exit.isSuccess(response)) {
249
- throwCause(response.cause);
289
+ /**
290
+ * Move remaining streaming messages to pending (called when agent completes).
291
+ */
292
+ #flushStreaming() {
293
+ const remaining = this.#registry.get(this.#streaming);
294
+ if (remaining.length > 0) {
295
+ this.#registry.update(this.#pending, (pending) => [...pending, ...remaining]);
296
+ this.#registry.set(this.#streaming, []);
250
297
  }
298
+ this.#finalizedIds.clear();
251
299
  }
252
300
 
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
- );
301
+ /**
302
+ * Conditionally schedule chat name update in detached fork mode.
303
+ * Updates if chat has no name OR based on random chance (default 10%).
304
+ */
305
+ #maybeUpdateChatName(): Effect.Effect<void, never, Operation.Service> {
306
+ const chat = this._options.chat?.target;
307
+ if (!chat) {
308
+ return Effect.void;
309
+ }
291
310
 
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
- );
311
+ const chance = this._options.autoUpdateNameChance ?? defaultOptions.autoUpdateNameChance ?? 0.1;
312
+ const shouldUpdate = !chat.name || Math.random() < chance;
313
+ if (!shouldUpdate) {
314
+ return Effect.void;
315
+ }
316
+
317
+ // TODO(dmaretskyi): Operation.schedule didn't work.
318
+ log.info('scheduling chat name update', { hasName: !!chat.name, chance });
319
+ return Operation.schedule(UpdateChatName, { chat });
320
+ }
302
321
  }
@@ -4,15 +4,11 @@
4
4
 
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
- 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';
7
+ import { DXN, Feed, Obj } from '@dxos/echo';
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
 
@@ -24,12 +20,26 @@ export class QueueLogger implements SequenceLogger {
24
20
  const space = getSpace(sequence);
25
21
  invariant(space, 'Space not found');
26
22
  this._space = space;
27
- let dxn = this._space.properties.invocationTraceQueue?.dxn;
28
- if (!dxn) {
29
- dxn = DXN.fromQueue(QueueSubspaceTags.TRACE, this._space.id, Key.ObjectId.random());
30
- this._space.properties.invocationTraceQueue = Ref.fromDXN(dxn);
23
+
24
+ const existingFeedRef = this._space.properties.invocationTraceFeed;
25
+ let queueDxn: DXN | undefined;
26
+
27
+ if (existingFeedRef) {
28
+ // A feed reference exists; resolve its queue DXN. If the target isn't loaded yet,
29
+ // fail loudly rather than silently creating a new feed and orphaning existing traces.
30
+ invariant(existingFeedRef.target, 'invocationTraceFeed reference is not yet loaded');
31
+ queueDxn = Feed.getQueueDxn(existingFeedRef.target) ?? undefined;
32
+ invariant(queueDxn, 'invocationTraceFeed has no queue DXN');
33
+ } else {
34
+ const feed = space.db.add(Feed.make({ namespace: 'trace' }));
35
+ queueDxn = Feed.getQueueDxn(feed) ?? undefined;
36
+ invariant(queueDxn, 'New invocationTraceFeed has no queue DXN');
37
+ Obj.change(this._space.properties, (obj) => {
38
+ obj.invocationTraceFeed = Ref.make(feed);
39
+ });
31
40
  }
32
- this._invocationTraceQueue = this._space.queues.get(dxn);
41
+
42
+ this._invocationTraceQueue = this._space.queues.get(queueDxn);
33
43
  }
34
44
 
35
45
  log(event: SequenceEvent) {