@dxos/plugin-assistant 0.8.4-main.fcfe5033a5 → 0.8.4-staging.60fe92afc8

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 (751) 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-K7XM46OQ.mjs +160 -0
  5. package/dist/lib/neutral/AgentArticle-K7XM46OQ.mjs.map +7 -0
  6. package/dist/lib/neutral/AgentProperties-LFTEYJ54.mjs +40 -0
  7. package/dist/lib/neutral/AgentProperties-LFTEYJ54.mjs.map +7 -0
  8. package/dist/lib/neutral/AssistantPlugin.mjs +10 -0
  9. package/dist/lib/neutral/AssistantPlugin.node.mjs +72 -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-VNVZCDUR.mjs +8 -0
  18. package/dist/lib/neutral/ChatCompanion-LBUHYWQG.mjs +128 -0
  19. package/dist/lib/neutral/ChatCompanion-LBUHYWQG.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-KTZJ6JNR.mjs +167 -0
  31. package/dist/lib/neutral/TracePanel-KTZJ6JNR.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/agent-hydrator-PJBYVMBW.mjs +24 -0
  35. package/dist/lib/neutral/agent-hydrator-PJBYVMBW.mjs.map +7 -0
  36. package/dist/lib/neutral/agent-service-WCAP5MLI.mjs +32 -0
  37. package/dist/lib/neutral/agent-service-WCAP5MLI.mjs.map +7 -0
  38. package/dist/lib/neutral/ai-context-7WRHWYXY.mjs +42 -0
  39. package/dist/lib/neutral/ai-context-7WRHWYXY.mjs.map +7 -0
  40. package/dist/lib/neutral/ai-service-AADUIKBY.mjs +40 -0
  41. package/dist/lib/neutral/ai-service-AADUIKBY.mjs.map +7 -0
  42. package/dist/lib/neutral/app-graph-builder-WUFHQH3Y.mjs +232 -0
  43. package/dist/lib/neutral/app-graph-builder-WUFHQH3Y.mjs.map +7 -0
  44. package/dist/lib/neutral/automation-templates-M2XQWGR6.mjs +115 -0
  45. package/dist/lib/neutral/automation-templates-M2XQWGR6.mjs.map +7 -0
  46. package/dist/lib/neutral/blueprint-definition-MH2QLYQH.mjs +39 -0
  47. package/dist/lib/neutral/blueprint-definition-MH2QLYQH.mjs.map +7 -0
  48. package/dist/lib/{browser → neutral}/blueprints/index.mjs +1 -1
  49. package/dist/lib/neutral/capabilities/index.mjs +45 -0
  50. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  51. package/dist/lib/{browser/chunk-EZRS3J25.mjs → neutral/chunk-5H6UJHLF.mjs} +3 -3
  52. package/dist/lib/neutral/chunk-5H6UJHLF.mjs.map +7 -0
  53. package/dist/lib/neutral/chunk-HLANPOBA.mjs +10 -0
  54. package/dist/lib/neutral/chunk-HLANPOBA.mjs.map +7 -0
  55. package/dist/lib/neutral/chunk-KLYLW4WH.mjs +9 -0
  56. package/dist/lib/neutral/chunk-KLYLW4WH.mjs.map +7 -0
  57. package/dist/lib/neutral/chunk-QAZMOFPI.mjs +130 -0
  58. package/dist/lib/neutral/chunk-QAZMOFPI.mjs.map +7 -0
  59. package/dist/lib/neutral/chunk-RKVVK3R3.mjs +110 -0
  60. package/dist/lib/neutral/chunk-RKVVK3R3.mjs.map +7 -0
  61. package/dist/lib/neutral/chunk-SMFJD7BP.mjs +8 -0
  62. package/dist/lib/neutral/chunk-SMFJD7BP.mjs.map +7 -0
  63. package/dist/lib/neutral/chunk-VTK5R4H3.mjs +9 -0
  64. package/dist/lib/neutral/chunk-VTK5R4H3.mjs.map +7 -0
  65. package/dist/lib/neutral/chunk-XYHPOGTK.mjs +43 -0
  66. package/dist/lib/neutral/chunk-XYHPOGTK.mjs.map +7 -0
  67. package/dist/lib/neutral/chunk-YXRGZYYH.mjs +392 -0
  68. package/dist/lib/neutral/chunk-YXRGZYYH.mjs.map +7 -0
  69. package/dist/lib/neutral/companion-chat-provisioner-YZZ73P6E.mjs +120 -0
  70. package/dist/lib/neutral/companion-chat-provisioner-YZZ73P6E.mjs.map +7 -0
  71. package/dist/lib/neutral/components/index.mjs +2410 -0
  72. package/dist/lib/neutral/components/index.mjs.map +7 -0
  73. package/dist/lib/neutral/containers/index.mjs +29 -0
  74. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  75. package/dist/lib/neutral/create-chat-SGGQ6HVN.mjs +54 -0
  76. package/dist/lib/neutral/create-chat-SGGQ6HVN.mjs.map +7 -0
  77. package/dist/lib/neutral/create-object-U2SOFZLR.mjs +92 -0
  78. package/dist/lib/neutral/create-object-U2SOFZLR.mjs.map +7 -0
  79. package/dist/lib/neutral/edge-model-resolver-BBVOJBGJ.mjs +55 -0
  80. package/dist/lib/neutral/edge-model-resolver-BBVOJBGJ.mjs.map +7 -0
  81. package/dist/lib/{browser/ensure-companion-chat-ZEZA34MZ.mjs → neutral/ensure-companion-chat-AMOF3C66.mjs} +14 -21
  82. package/dist/lib/neutral/ensure-companion-chat-AMOF3C66.mjs.map +7 -0
  83. package/dist/lib/neutral/execution-graph/index.mjs +703 -0
  84. package/dist/lib/neutral/execution-graph/index.mjs.map +7 -0
  85. package/dist/lib/neutral/fork-chat-34KEF4ZJ.mjs +95 -0
  86. package/dist/lib/neutral/fork-chat-34KEF4ZJ.mjs.map +7 -0
  87. package/dist/lib/neutral/hooks/index.mjs +992 -0
  88. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  89. package/dist/lib/neutral/index.mjs +38 -0
  90. package/dist/lib/neutral/integration-provider-RBD3AFJU.mjs +71 -0
  91. package/dist/lib/neutral/integration-provider-RBD3AFJU.mjs.map +7 -0
  92. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs +24 -0
  93. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs.map +7 -0
  94. package/dist/lib/neutral/markdown-extension-YMIFDMYF.mjs +110 -0
  95. package/dist/lib/neutral/markdown-extension-YMIFDMYF.mjs.map +7 -0
  96. package/dist/lib/neutral/meta.json +1 -0
  97. package/dist/lib/neutral/meta.mjs +12 -0
  98. package/dist/lib/neutral/migrations-7DEMVBOG.mjs +28 -0
  99. package/dist/lib/neutral/migrations-7DEMVBOG.mjs.map +7 -0
  100. package/dist/lib/neutral/operation-handler-SF36MOB5.mjs +13 -0
  101. package/dist/lib/neutral/operation-handler-SF36MOB5.mjs.map +7 -0
  102. package/dist/lib/neutral/operations/index.mjs +8 -0
  103. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  104. package/dist/lib/neutral/plugin.mjs +16 -0
  105. package/dist/lib/neutral/plugin.mjs.map +7 -0
  106. package/dist/lib/neutral/react-surface-XRTBW5OJ.mjs +174 -0
  107. package/dist/lib/neutral/react-surface-XRTBW5OJ.mjs.map +7 -0
  108. package/dist/lib/{browser/resolve-navigation-targets-NZOD66NY.mjs → neutral/resolve-navigation-targets-ZHIMMH7L.mjs} +6 -6
  109. package/dist/lib/neutral/resolve-navigation-targets-ZHIMMH7L.mjs.map +7 -0
  110. package/dist/lib/{browser/run-prompt-in-new-chat-THLK5YQC.mjs → neutral/run-prompt-in-new-chat-D5IIE2C7.mjs} +22 -56
  111. package/dist/lib/neutral/run-prompt-in-new-chat-D5IIE2C7.mjs.map +7 -0
  112. package/dist/lib/{browser/set-current-chat-LRS3VFSH.mjs → neutral/set-current-chat-VWBPSIMZ.mjs} +7 -13
  113. package/dist/lib/neutral/set-current-chat-VWBPSIMZ.mjs.map +7 -0
  114. package/dist/lib/neutral/settings-W4BLWQ53.mjs +28 -0
  115. package/dist/lib/neutral/settings-W4BLWQ53.mjs.map +7 -0
  116. package/dist/lib/neutral/state-H3G7QCU6.mjs +28 -0
  117. package/dist/lib/neutral/state-H3G7QCU6.mjs.map +7 -0
  118. package/dist/lib/neutral/testing.mjs +8 -0
  119. package/dist/lib/neutral/testing.mjs.map +7 -0
  120. package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs +21 -0
  121. package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs.map +7 -0
  122. package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs +14 -0
  123. package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs.map +7 -0
  124. package/dist/lib/neutral/translations.mjs +179 -0
  125. package/dist/lib/neutral/translations.mjs.map +7 -0
  126. package/dist/lib/neutral/types/index.mjs +20 -0
  127. package/dist/lib/neutral/types/index.mjs.map +7 -0
  128. package/dist/lib/{browser/update-chat-name-3Y36KFAS.mjs → neutral/update-chat-name-Y7JWIP64.mjs} +26 -36
  129. package/dist/lib/neutral/update-chat-name-Y7JWIP64.mjs.map +7 -0
  130. package/dist/types/src/AssistantPlugin.d.ts +3 -1
  131. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  132. package/dist/types/src/AssistantPlugin.node.d.ts +5 -0
  133. package/dist/types/src/AssistantPlugin.node.d.ts.map +1 -0
  134. package/dist/types/src/AssistantPlugin.test.d.ts +2 -0
  135. package/dist/types/src/AssistantPlugin.test.d.ts.map +1 -0
  136. package/dist/types/src/AssistantPlugin.workerd.d.ts +4 -0
  137. package/dist/types/src/AssistantPlugin.workerd.d.ts.map +1 -0
  138. package/dist/types/src/blueprints/assistant/blueprint.d.ts +2 -2
  139. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -1
  140. package/dist/types/src/blueprints/assistant/blueprint.node.test.d.ts +2 -0
  141. package/dist/types/src/blueprints/assistant/blueprint.node.test.d.ts.map +1 -0
  142. package/dist/types/src/capabilities/agent-hydrator.d.ts +5 -0
  143. package/dist/types/src/capabilities/agent-hydrator.d.ts.map +1 -0
  144. package/dist/types/src/capabilities/agent-service.d.ts +6 -0
  145. package/dist/types/src/capabilities/agent-service.d.ts.map +1 -0
  146. package/dist/types/src/capabilities/ai-context.d.ts +6 -0
  147. package/dist/types/src/capabilities/ai-context.d.ts.map +1 -0
  148. package/dist/types/src/capabilities/ai-service.d.ts +2 -2
  149. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
  150. package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -1
  151. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  152. package/dist/types/src/capabilities/automation-templates.d.ts +6 -0
  153. package/dist/types/src/capabilities/automation-templates.d.ts.map +1 -0
  154. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  155. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -1
  156. package/dist/types/src/capabilities/create-object.d.ts +31 -0
  157. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  158. package/dist/types/src/capabilities/edge-model-resolver.d.ts +1 -1
  159. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
  160. package/dist/types/src/capabilities/index.d.ts +36 -3
  161. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  162. package/dist/types/src/capabilities/integration-provider.d.ts +5 -0
  163. package/dist/types/src/capabilities/integration-provider.d.ts.map +1 -0
  164. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
  165. package/dist/types/src/capabilities/{markdown.d.ts → markdown-extension.d.ts} +1 -1
  166. package/dist/types/src/capabilities/markdown-extension.d.ts.map +1 -0
  167. package/dist/types/src/capabilities/migrations.d.ts +2 -1
  168. package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
  169. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  170. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  171. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  172. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  173. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  174. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  175. package/dist/types/src/components/AgentProperties/AgentProperties.d.ts +7 -0
  176. package/dist/types/src/components/AgentProperties/AgentProperties.d.ts.map +1 -0
  177. package/dist/types/src/{containers → components}/AgentProperties/AgentProperties.stories.d.ts +1 -2
  178. package/dist/types/src/components/AgentProperties/AgentProperties.stories.d.ts.map +1 -0
  179. package/dist/types/src/components/AgentProperties/index.d.ts +2 -0
  180. package/dist/types/src/components/AgentProperties/index.d.ts.map +1 -0
  181. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +1 -1
  182. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  183. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -1
  184. package/dist/types/src/components/Chat/Chat.d.ts +44 -42
  185. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  186. package/dist/types/src/components/Chat/context.d.ts +29 -0
  187. package/dist/types/src/components/Chat/context.d.ts.map +1 -0
  188. package/dist/types/src/components/Chat/events.d.ts +3 -0
  189. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  190. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts +1 -1
  191. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  192. package/dist/types/src/components/ChatPrompt/ChatMcpErrors.d.ts +12 -0
  193. package/dist/types/src/components/ChatPrompt/ChatMcpErrors.d.ts.map +1 -0
  194. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +10 -14
  195. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  196. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts +1 -1
  197. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -1
  198. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts +2 -9
  199. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
  200. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts +27 -0
  201. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts.map +1 -0
  202. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +2 -2
  203. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  204. package/dist/types/src/components/ChatPrompt/ChatStatus.d.ts +20 -0
  205. package/dist/types/src/components/ChatPrompt/ChatStatus.d.ts.map +1 -0
  206. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +1 -1
  207. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
  208. package/dist/types/src/components/ChatPrompt/index.d.ts +3 -0
  209. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
  210. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts +14 -0
  211. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts.map +1 -0
  212. package/dist/types/src/components/ChatThread/ChatThread.d.ts +6 -3
  213. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  214. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +5 -5
  215. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  216. package/dist/types/src/components/ChatThread/Link.d.ts +2 -2
  217. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
  218. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +8 -1
  219. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -1
  220. package/dist/types/src/components/ChatThread/registry.d.ts +18 -0
  221. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  222. package/dist/types/src/components/ChatThread/sync.d.ts +42 -16
  223. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  224. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts.map +1 -1
  225. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts +4 -4
  226. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts.map +1 -1
  227. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts.map +1 -1
  228. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts.map +1 -1
  229. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts.map +1 -1
  230. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts.map +1 -1
  231. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts.map +1 -1
  232. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts +2 -15
  233. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts.map +1 -1
  234. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts.map +1 -1
  235. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts.map +1 -1
  236. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts.map +1 -1
  237. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts.map +1 -1
  238. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts +5 -0
  239. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts.map +1 -0
  240. package/dist/types/src/components/ChatThread/widgets/index.d.ts +1 -2
  241. package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -1
  242. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +4 -3
  243. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
  244. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +0 -1
  245. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -1
  246. package/dist/types/src/components/RoutineProperties/RoutineProperties.d.ts +7 -0
  247. package/dist/types/src/components/RoutineProperties/RoutineProperties.d.ts.map +1 -0
  248. package/dist/types/src/components/RoutineProperties/RoutineProperties.stories.d.ts +15 -0
  249. package/dist/types/src/components/RoutineProperties/RoutineProperties.stories.d.ts.map +1 -0
  250. package/dist/types/src/components/RoutineProperties/index.d.ts +2 -0
  251. package/dist/types/src/components/RoutineProperties/index.d.ts.map +1 -0
  252. package/dist/types/src/components/TaskList/TaskList.d.ts +10 -0
  253. package/dist/types/src/components/TaskList/TaskList.d.ts.map +1 -0
  254. package/dist/types/src/components/TaskList/TaskList.stories.d.ts +16 -0
  255. package/dist/types/src/components/TaskList/TaskList.stories.d.ts.map +1 -0
  256. package/dist/types/src/components/TaskList/index.d.ts +2 -0
  257. package/dist/types/src/components/TaskList/index.d.ts.map +1 -0
  258. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +5 -3
  259. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  260. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  261. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +4 -5
  262. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  263. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +1 -1
  264. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  265. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -1
  266. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -1
  267. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +4 -4
  268. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  269. package/dist/types/src/components/Toolbox/Toolbox.d.ts +3 -3
  270. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  271. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  272. package/dist/types/src/components/index.d.ts +4 -0
  273. package/dist/types/src/components/index.d.ts.map +1 -1
  274. package/dist/types/src/constants.d.ts +5 -0
  275. package/dist/types/src/constants.d.ts.map +1 -0
  276. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -1
  277. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts +0 -2
  278. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -1
  279. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts.map +1 -1
  280. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +1 -1
  281. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -1
  282. package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts +25 -0
  283. package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -0
  284. package/dist/types/src/containers/ChatArticle/ChatArticle.stories.d.ts +15 -0
  285. package/dist/types/src/containers/ChatArticle/ChatArticle.stories.d.ts.map +1 -0
  286. package/dist/types/src/containers/ChatArticle/index.d.ts +2 -0
  287. package/dist/types/src/containers/ChatArticle/index.d.ts.map +1 -0
  288. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +11 -3
  289. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -1
  290. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -1
  291. package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts +6 -0
  292. package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts.map +1 -0
  293. package/dist/types/src/containers/PlanArticle/index.d.ts +2 -0
  294. package/dist/types/src/containers/PlanArticle/index.d.ts.map +1 -0
  295. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts +6 -0
  296. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts.map +1 -0
  297. package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts +15 -0
  298. package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts.map +1 -0
  299. package/dist/types/src/containers/RoutineArticle/index.d.ts +2 -0
  300. package/dist/types/src/containers/RoutineArticle/index.d.ts.map +1 -0
  301. package/dist/types/src/containers/RoutineList/RoutineList.d.ts +6 -0
  302. package/dist/types/src/containers/RoutineList/RoutineList.d.ts.map +1 -0
  303. package/dist/types/src/containers/{PromptList/PromptList.stories.d.ts → RoutineList/RoutineList.stories.d.ts} +1 -1
  304. package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts.map +1 -0
  305. package/dist/types/src/containers/RoutineList/index.d.ts +2 -0
  306. package/dist/types/src/containers/RoutineList/index.d.ts.map +1 -0
  307. package/dist/types/src/containers/TracePanel/TracePanel.d.ts +4 -5
  308. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -1
  309. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts +4 -3
  310. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -1
  311. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts +6 -6
  312. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts.map +1 -1
  313. package/dist/types/src/containers/TracePanel/index.d.ts.map +1 -1
  314. package/dist/types/src/containers/TracePanel/testing/index.d.ts +3 -0
  315. package/dist/types/src/containers/TracePanel/testing/index.d.ts.map +1 -0
  316. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts +14 -0
  317. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts.map +1 -0
  318. package/dist/types/src/containers/TracePanel/testing/snapshot-playback.d.ts +12 -0
  319. package/dist/types/src/containers/TracePanel/testing/snapshot-playback.d.ts.map +1 -0
  320. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +3 -2
  321. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -1
  322. package/dist/types/src/containers/TriggerStatus/index.d.ts +1 -1
  323. package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -1
  324. package/dist/types/src/containers/index.d.ts +6 -5
  325. package/dist/types/src/containers/index.d.ts.map +1 -1
  326. package/dist/types/src/execution-graph/execution-graph.d.ts +108 -0
  327. package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -0
  328. package/dist/types/src/execution-graph/execution-graph.test.d.ts +2 -0
  329. package/dist/types/src/execution-graph/execution-graph.test.d.ts.map +1 -0
  330. package/dist/types/src/execution-graph/index.d.ts +3 -0
  331. package/dist/types/src/execution-graph/index.d.ts.map +1 -0
  332. package/dist/types/src/execution-graph/remote-snapshot.test.d.ts +2 -0
  333. package/dist/types/src/execution-graph/remote-snapshot.test.d.ts.map +1 -0
  334. package/dist/types/src/execution-graph/span-tree.d.ts +76 -0
  335. package/dist/types/src/execution-graph/span-tree.d.ts.map +1 -0
  336. package/dist/types/src/execution-graph/span-tree.test.d.ts +2 -0
  337. package/dist/types/src/execution-graph/span-tree.test.d.ts.map +1 -0
  338. package/dist/types/src/execution-graph/sub-agent-delegation.test.d.ts +2 -0
  339. package/dist/types/src/execution-graph/sub-agent-delegation.test.d.ts.map +1 -0
  340. package/dist/types/src/execution-graph/testing/collect-trace-events.d.ts +40 -0
  341. package/dist/types/src/execution-graph/testing/collect-trace-events.d.ts.map +1 -0
  342. package/dist/types/src/execution-graph/testing/index.d.ts +2 -0
  343. package/dist/types/src/execution-graph/testing/index.d.ts.map +1 -0
  344. package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -1
  345. package/dist/types/src/feed-logger.d.ts +13 -0
  346. package/dist/types/src/feed-logger.d.ts.map +1 -0
  347. package/dist/types/src/functions/services.test.d.ts +2 -0
  348. package/dist/types/src/functions/services.test.d.ts.map +1 -0
  349. package/dist/types/src/hooks/index.d.ts +3 -0
  350. package/dist/types/src/hooks/index.d.ts.map +1 -1
  351. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +56 -15
  352. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  353. package/dist/types/src/hooks/useChatKeymap.d.ts +12 -0
  354. package/dist/types/src/hooks/useChatKeymap.d.ts.map +1 -0
  355. package/dist/types/src/hooks/useChatProcessor.d.ts +5 -5
  356. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  357. package/dist/types/src/hooks/useChatServices.d.ts +7 -3
  358. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  359. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -1
  360. package/dist/types/src/hooks/useContextBinder.d.ts +2 -2
  361. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  362. package/dist/types/src/hooks/useContextObjects.d.ts +5 -4
  363. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  364. package/dist/types/src/hooks/useDebug.d.ts +10 -0
  365. package/dist/types/src/hooks/useDebug.d.ts.map +1 -0
  366. package/dist/types/src/hooks/useFilteredTypes.d.ts +1 -1
  367. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -1
  368. package/dist/types/src/hooks/useFlush.d.ts +1 -1
  369. package/dist/types/src/hooks/useFlush.d.ts.map +1 -1
  370. package/dist/types/src/hooks/usePresets.d.ts +2 -2
  371. package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
  372. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  373. package/dist/types/src/index.d.ts +1 -4
  374. package/dist/types/src/index.d.ts.map +1 -1
  375. package/dist/types/src/meta.d.ts +3 -2
  376. package/dist/types/src/meta.d.ts.map +1 -1
  377. package/dist/types/src/operations/create-chat.d.ts +3 -3
  378. package/dist/types/src/operations/create-chat.d.ts.map +1 -1
  379. package/dist/types/src/operations/ensure-companion-chat.d.ts +3 -3
  380. package/dist/types/src/operations/ensure-companion-chat.d.ts.map +1 -1
  381. package/dist/types/src/operations/fork-chat.d.ts +5 -0
  382. package/dist/types/src/operations/fork-chat.d.ts.map +1 -0
  383. package/dist/types/src/operations/index.d.ts +1 -2
  384. package/dist/types/src/operations/index.d.ts.map +1 -1
  385. package/dist/types/src/operations/prompt.node.test.d.ts +2 -0
  386. package/dist/types/src/operations/prompt.node.test.d.ts.map +1 -0
  387. package/dist/types/src/operations/resolve-navigation-targets.d.ts +4 -2
  388. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -1
  389. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +3 -3
  390. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -1
  391. package/dist/types/src/operations/set-current-chat.d.ts +3 -3
  392. package/dist/types/src/operations/set-current-chat.d.ts.map +1 -1
  393. package/dist/types/src/operations/toggle-trace-panel-debug.d.ts +5 -0
  394. package/dist/types/src/operations/toggle-trace-panel-debug.d.ts.map +1 -0
  395. package/dist/types/src/operations/update-chat-name.d.ts +3 -3
  396. package/dist/types/src/operations/update-chat-name.d.ts.map +1 -1
  397. package/dist/types/src/paths.d.ts +3 -0
  398. package/dist/types/src/paths.d.ts.map +1 -0
  399. package/dist/types/src/plugin.d.ts +4 -0
  400. package/dist/types/src/plugin.d.ts.map +1 -0
  401. package/dist/types/src/processor/presets.d.ts.map +1 -1
  402. package/dist/types/src/processor/processor.d.ts +263 -26
  403. package/dist/types/src/processor/processor.d.ts.map +1 -1
  404. package/dist/types/src/processor/processor.node.test.d.ts +2 -0
  405. package/dist/types/src/processor/processor.node.test.d.ts.map +1 -0
  406. package/dist/types/src/templates/automation-templates.test.d.ts +2 -0
  407. package/dist/types/src/templates/automation-templates.test.d.ts.map +1 -0
  408. package/dist/types/src/templates/daily-digest.d.ts +3 -0
  409. package/dist/types/src/templates/daily-digest.d.ts.map +1 -0
  410. package/dist/types/src/templates/index.d.ts +4 -0
  411. package/dist/types/src/templates/index.d.ts.map +1 -0
  412. package/dist/types/src/templates/research-brief.d.ts +3 -0
  413. package/dist/types/src/templates/research-brief.d.ts.map +1 -0
  414. package/dist/types/src/templates/scaffold.d.ts +17 -0
  415. package/dist/types/src/templates/scaffold.d.ts.map +1 -0
  416. package/dist/types/src/testing/index.d.ts +2 -0
  417. package/dist/types/src/testing/index.d.ts.map +1 -1
  418. package/dist/types/src/testing/snapshot.d.ts +21 -0
  419. package/dist/types/src/testing/snapshot.d.ts.map +1 -0
  420. package/dist/types/src/testing/test-generator.d.ts +2 -3
  421. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  422. package/dist/types/src/testing/test-generator.test.d.ts +2 -0
  423. package/dist/types/src/testing/test-generator.test.d.ts.map +1 -0
  424. package/dist/types/src/testing/test-sequence.d.ts +10 -3
  425. package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
  426. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  427. package/dist/types/src/testing/test-trace.d.ts +5 -0
  428. package/dist/types/src/testing/test-trace.d.ts.map +1 -0
  429. package/dist/types/src/testing/trace-timeline.node.test.d.ts +2 -0
  430. package/dist/types/src/testing/trace-timeline.node.test.d.ts.map +1 -0
  431. package/dist/types/src/testing.d.ts +2 -0
  432. package/dist/types/src/testing.d.ts.map +1 -0
  433. package/dist/types/src/translations.d.ts.map +1 -1
  434. package/dist/types/src/types/Assistant.d.ts +25 -8
  435. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  436. package/dist/types/src/types/AssistantCapabilities.d.ts +30 -0
  437. package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -0
  438. package/dist/types/src/types/AssistantEvents.d.ts +3 -0
  439. package/dist/types/src/types/AssistantEvents.d.ts.map +1 -0
  440. package/dist/types/src/types/AssistantOperation.d.ts +153 -0
  441. package/dist/types/src/types/AssistantOperation.d.ts.map +1 -0
  442. package/dist/types/src/types/Settings.d.ts +21 -5
  443. package/dist/types/src/types/Settings.d.ts.map +1 -1
  444. package/dist/types/src/types/index.d.ts +8 -3
  445. package/dist/types/src/types/index.d.ts.map +1 -1
  446. package/dist/types/src/types/preset.d.ts +12 -0
  447. package/dist/types/src/types/preset.d.ts.map +1 -0
  448. package/dist/types/src/types/service.d.ts +2 -3
  449. package/dist/types/src/types/service.d.ts.map +1 -1
  450. package/dist/types/src/util/suggestions.d.ts +9 -0
  451. package/dist/types/src/util/suggestions.d.ts.map +1 -0
  452. package/dist/types/src/util/suggestions.test.d.ts +2 -0
  453. package/dist/types/src/util/suggestions.test.d.ts.map +1 -0
  454. package/dist/types/tsconfig.tsbuildinfo +1 -1
  455. package/package.json +177 -146
  456. package/src/AssistantPlugin.conversations.json +1 -0
  457. package/src/AssistantPlugin.node.ts +90 -0
  458. package/src/AssistantPlugin.test.ts +213 -0
  459. package/src/AssistantPlugin.ts +158 -0
  460. package/src/AssistantPlugin.workerd.ts +41 -0
  461. package/src/blueprints/assistant/{blueprint.test.ts → blueprint.node.test.ts} +5 -5
  462. package/src/blueprints/assistant/blueprint.ts +4 -4
  463. package/src/capabilities/agent-hydrator.ts +37 -0
  464. package/src/capabilities/agent-service.ts +38 -0
  465. package/src/capabilities/ai-context.ts +48 -0
  466. package/src/capabilities/ai-service.ts +31 -11
  467. package/src/capabilities/app-graph-builder.ts +106 -86
  468. package/src/capabilities/automation-templates.ts +16 -0
  469. package/src/capabilities/blueprint-definition.ts +15 -8
  470. package/src/capabilities/companion-chat-provisioner.ts +5 -5
  471. package/src/capabilities/create-object.ts +100 -0
  472. package/src/capabilities/edge-model-resolver.ts +53 -16
  473. package/src/capabilities/index.ts +23 -3
  474. package/src/capabilities/integration-provider.ts +86 -0
  475. package/src/capabilities/{markdown.ts → markdown-extension.ts} +3 -3
  476. package/src/capabilities/migrations.ts +4 -11
  477. package/src/capabilities/operation-handler.ts +1 -1
  478. package/src/capabilities/react-surface.tsx +41 -21
  479. package/src/components/AgentProperties/AgentProperties.stories.tsx +74 -0
  480. package/src/components/AgentProperties/AgentProperties.tsx +103 -0
  481. package/src/components/AgentProperties/index.ts +5 -0
  482. package/src/components/AssistantSettings/AssistantSettings.stories.tsx +3 -2
  483. package/src/components/AssistantSettings/AssistantSettings.tsx +22 -111
  484. package/src/components/Chat/Chat.tsx +145 -277
  485. package/src/components/Chat/context.ts +39 -0
  486. package/src/components/Chat/events.ts +7 -0
  487. package/src/components/ChatPrompt/ChatActions.tsx +11 -11
  488. package/src/components/ChatPrompt/ChatMcpErrors.tsx +50 -0
  489. package/src/components/ChatPrompt/ChatOptions.stories.tsx +32 -18
  490. package/src/components/ChatPrompt/ChatOptions.tsx +121 -103
  491. package/src/components/ChatPrompt/ChatPresets.tsx +3 -7
  492. package/src/components/ChatPrompt/ChatPrompt.tsx +180 -0
  493. package/src/components/ChatPrompt/ChatReferences.tsx +9 -13
  494. package/src/components/ChatPrompt/ChatStatus.tsx +123 -0
  495. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +2 -2
  496. package/src/components/ChatPrompt/index.ts +3 -0
  497. package/src/components/ChatThread/Anchor.stories.tsx +95 -0
  498. package/src/components/ChatThread/ChatThread.stories.tsx +33 -37
  499. package/src/components/ChatThread/ChatThread.tsx +47 -23
  500. package/src/components/ChatThread/DEBUG.md +41 -0
  501. package/src/components/ChatThread/Link.tsx +5 -5
  502. package/src/components/ChatThread/MarkdownStream.stories.tsx +43 -5
  503. package/src/components/ChatThread/registry.tsx +80 -28
  504. package/src/components/ChatThread/sync.test.ts +180 -22
  505. package/src/components/ChatThread/sync.ts +89 -104
  506. package/src/components/ChatThread/testing/reasoning.md +25 -0
  507. package/src/components/ChatThread/widgets/FallbackWidget.tsx +8 -6
  508. package/src/components/ChatThread/widgets/ReasoningWidget.ts +13 -7
  509. package/src/components/ChatThread/widgets/ReferenceWidget.ts +3 -1
  510. package/src/components/ChatThread/widgets/SelectWidget.ts +4 -2
  511. package/src/components/ChatThread/widgets/StatsWidget.ts +3 -1
  512. package/src/components/ChatThread/widgets/StatusWidget.ts +6 -86
  513. package/src/components/ChatThread/widgets/SuggestionWidget.ts +2 -2
  514. package/src/components/ChatThread/widgets/SummaryWidget.tsx +7 -6
  515. package/src/components/ChatThread/widgets/ToolWidget.stories.tsx +2 -1
  516. package/src/components/ChatThread/widgets/ToolWidget.tsx +42 -25
  517. package/src/components/ChatThread/widgets/defaults.ts +8 -0
  518. package/src/components/ChatThread/widgets/index.ts +1 -2
  519. package/src/components/ProcessTree/ProcessTree.stories.tsx +13 -39
  520. package/src/components/ProcessTree/ProcessTree.tsx +101 -67
  521. package/src/components/RoutineProperties/RoutineProperties.stories.tsx +59 -0
  522. package/src/components/RoutineProperties/RoutineProperties.tsx +23 -0
  523. package/src/components/RoutineProperties/index.ts +5 -0
  524. package/src/components/TaskList/TaskList.stories.tsx +44 -0
  525. package/src/components/TaskList/TaskList.tsx +45 -0
  526. package/src/components/TaskList/index.ts +5 -0
  527. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +6 -5
  528. package/src/components/TemplateEditor/TemplateEditor.tsx +12 -10
  529. package/src/components/TemplateEditor/TemplateForm.stories.tsx +6 -9
  530. package/src/components/TemplateEditor/TemplateForm.tsx +52 -73
  531. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +2 -2
  532. package/src/components/ToolBlock/ToolBlock.tsx +25 -17
  533. package/src/components/Toolbox/Toolbox.stories.tsx +6 -5
  534. package/src/components/Toolbox/Toolbox.tsx +6 -5
  535. package/src/components/index.ts +6 -0
  536. package/src/constants.ts +9 -0
  537. package/src/containers/AgentArticle/AgentArticle.stories.tsx +19 -15
  538. package/src/containers/AgentArticle/AgentArticle.tsx +47 -53
  539. package/src/containers/AgentProperties/AgentProperties.tsx +20 -135
  540. package/src/containers/BlueprintArticle/BlueprintArticle.tsx +2 -2
  541. package/src/containers/ChatArticle/ChatArticle.stories.tsx +78 -0
  542. package/src/containers/ChatArticle/ChatArticle.tsx +112 -0
  543. package/src/containers/ChatArticle/index.ts +5 -0
  544. package/src/containers/ChatCompanion/ChatCompanion.tsx +94 -109
  545. package/src/containers/ChatDialog/ChatDialog.tsx +6 -11
  546. package/src/containers/PlanArticle/PlanArticle.tsx +33 -0
  547. package/src/containers/PlanArticle/index.ts +5 -0
  548. package/src/containers/RoutineArticle/RoutineArticle.stories.tsx +75 -0
  549. package/src/containers/RoutineArticle/RoutineArticle.tsx +109 -0
  550. package/src/containers/RoutineArticle/index.ts +5 -0
  551. package/src/containers/{PromptList/PromptList.stories.tsx → RoutineList/RoutineList.stories.tsx} +14 -13
  552. package/src/containers/{PromptList/PromptList.tsx → RoutineList/RoutineList.tsx} +9 -8
  553. package/src/containers/RoutineList/index.ts +5 -0
  554. package/src/containers/TracePanel/TracePanel.stories.tsx +285 -168
  555. package/src/containers/TracePanel/TracePanel.tsx +220 -77
  556. package/src/containers/TracePanel/dxn-extractor.test.ts +32 -32
  557. package/src/containers/TracePanel/dxn-extractor.ts +52 -64
  558. package/src/containers/TracePanel/testing/index.ts +6 -0
  559. package/src/containers/TracePanel/testing/simulated-agent.ts +114 -0
  560. package/src/containers/TracePanel/testing/snapshot-playback.ts +45 -0
  561. package/src/containers/TriggerStatus/TriggerStatus.tsx +20 -34
  562. package/src/containers/TriggerStatus/index.ts +1 -1
  563. package/src/containers/index.ts +6 -5
  564. package/src/execution-graph/SPEC.md +690 -0
  565. package/src/execution-graph/execution-graph.test.ts +891 -0
  566. package/src/execution-graph/execution-graph.ts +777 -0
  567. package/src/execution-graph/index.ts +24 -0
  568. package/src/execution-graph/remote-snapshot.test.ts +116 -0
  569. package/src/execution-graph/span-tree.test.ts +249 -0
  570. package/src/execution-graph/span-tree.ts +269 -0
  571. package/src/execution-graph/sub-agent-delegation.test.ts +50 -0
  572. package/src/execution-graph/testing/collect-trace-events.ts +74 -0
  573. package/src/execution-graph/testing/index.ts +5 -0
  574. package/src/execution-graph/testing/sub-agent-delegation.json +1285 -0
  575. package/src/{queue-logger.ts → feed-logger.ts} +39 -25
  576. package/src/functions/services.test.ts +53 -0
  577. package/src/hooks/index.ts +5 -0
  578. package/src/hooks/useBlueprintRegistry.ts +62 -46
  579. package/src/hooks/useChatKeymap.ts +52 -0
  580. package/src/hooks/useChatProcessor.ts +33 -17
  581. package/src/hooks/useChatServices.ts +8 -6
  582. package/src/hooks/useChatToolbarActions.ts +98 -96
  583. package/src/hooks/useContextBinder.ts +7 -7
  584. package/src/hooks/useContextObjects.ts +6 -5
  585. package/src/hooks/useDebug.ts +38 -0
  586. package/src/hooks/useFilteredTypes.ts +18 -16
  587. package/src/hooks/usePresets.ts +5 -3
  588. package/src/hooks/useReferencesProvider.ts +7 -15
  589. package/src/index.ts +1 -5
  590. package/src/meta.ts +27 -8
  591. package/src/operations/create-chat.ts +15 -38
  592. package/src/operations/ensure-companion-chat.ts +49 -47
  593. package/src/operations/fork-chat.ts +112 -0
  594. package/src/operations/index.ts +3 -4
  595. package/src/operations/prompt.node.test.ts +82 -0
  596. package/src/operations/resolve-navigation-targets.ts +8 -3
  597. package/src/operations/run-prompt-in-new-chat.ts +87 -87
  598. package/src/operations/set-current-chat.ts +6 -7
  599. package/src/operations/toggle-trace-panel-debug.ts +27 -0
  600. package/src/operations/update-chat-name.ts +24 -20
  601. package/src/paths.ts +10 -0
  602. package/src/plugin.ts +11 -0
  603. package/src/processor/presets.ts +15 -11
  604. package/src/processor/{processor.test.ts → processor.node.test.ts} +7 -7
  605. package/src/processor/processor.ts +160 -58
  606. package/src/templates/automation-templates.test.ts +66 -0
  607. package/src/templates/daily-digest.ts +37 -0
  608. package/src/templates/index.ts +11 -0
  609. package/src/templates/research-brief.ts +40 -0
  610. package/src/templates/scaffold.ts +74 -0
  611. package/src/testing/data/trace-timeline-multiple.dx.json +1 -0
  612. package/src/testing/data/trace-timeline-remote.dx.json +1 -0
  613. package/src/testing/data/trace-timeline.dx.json +4657 -0
  614. package/src/testing/index.ts +2 -0
  615. package/src/testing/snapshot.ts +35 -0
  616. package/src/testing/test-generator.test.ts +71 -0
  617. package/src/testing/test-generator.ts +196 -205
  618. package/src/testing/test-sequence.ts +3 -3
  619. package/src/testing/test-services.ts +1 -1
  620. package/src/testing/test-trace.ts +20 -0
  621. package/src/testing/trace-timeline.node.conversations.json +1 -0
  622. package/src/testing/{trace-timeline.test.ts → trace-timeline.node.test.ts} +45 -50
  623. package/src/testing.ts +9 -0
  624. package/src/translations.ts +40 -38
  625. package/src/types/Assistant.ts +13 -1
  626. package/src/types/AssistantCapabilities.ts +35 -0
  627. package/src/types/AssistantEvents.ts +11 -0
  628. package/src/{operations/definitions.ts → types/AssistantOperation.ts} +66 -29
  629. package/src/types/Settings.ts +68 -7
  630. package/src/types/index.ts +12 -3
  631. package/src/types/preset.ts +16 -0
  632. package/src/types/service.ts +5 -10
  633. package/src/util/suggestions.test.ts +52 -0
  634. package/src/util/suggestions.ts +42 -0
  635. package/src/vite-env.d.ts +5 -0
  636. package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs +0 -97
  637. package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs.map +0 -7
  638. package/dist/lib/browser/chunk-ATHYBVGN.mjs +0 -176
  639. package/dist/lib/browser/chunk-ATHYBVGN.mjs.map +0 -7
  640. package/dist/lib/browser/chunk-EZRS3J25.mjs.map +0 -7
  641. package/dist/lib/browser/chunk-LMVTXH54.mjs +0 -154
  642. package/dist/lib/browser/chunk-LMVTXH54.mjs.map +0 -7
  643. package/dist/lib/browser/create-chat-LBZHGVSN.mjs +0 -82
  644. package/dist/lib/browser/create-chat-LBZHGVSN.mjs.map +0 -7
  645. package/dist/lib/browser/ensure-companion-chat-ZEZA34MZ.mjs.map +0 -7
  646. package/dist/lib/browser/index.mjs +0 -3452
  647. package/dist/lib/browser/index.mjs.map +0 -7
  648. package/dist/lib/browser/meta.json +0 -1
  649. package/dist/lib/browser/on-create-space-54RNX5JI.mjs +0 -22
  650. package/dist/lib/browser/on-create-space-54RNX5JI.mjs.map +0 -7
  651. package/dist/lib/browser/operations/index.mjs +0 -13
  652. package/dist/lib/browser/operations/index.mjs.map +0 -7
  653. package/dist/lib/browser/resolve-navigation-targets-NZOD66NY.mjs.map +0 -7
  654. package/dist/lib/browser/run-prompt-in-new-chat-THLK5YQC.mjs.map +0 -7
  655. package/dist/lib/browser/set-current-chat-LRS3VFSH.mjs.map +0 -7
  656. package/dist/lib/browser/types/index.mjs +0 -20
  657. package/dist/lib/browser/update-chat-name-3Y36KFAS.mjs.map +0 -7
  658. package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs +0 -98
  659. package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs.map +0 -7
  660. package/dist/lib/node-esm/blueprints/index.mjs +0 -9
  661. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  662. package/dist/lib/node-esm/chunk-NZIKC7AN.mjs +0 -32
  663. package/dist/lib/node-esm/chunk-NZIKC7AN.mjs.map +0 -7
  664. package/dist/lib/node-esm/chunk-PXAJSTGZ.mjs +0 -177
  665. package/dist/lib/node-esm/chunk-PXAJSTGZ.mjs.map +0 -7
  666. package/dist/lib/node-esm/chunk-W3JZ2F4T.mjs +0 -155
  667. package/dist/lib/node-esm/chunk-W3JZ2F4T.mjs.map +0 -7
  668. package/dist/lib/node-esm/create-chat-3BEG4R6J.mjs +0 -83
  669. package/dist/lib/node-esm/create-chat-3BEG4R6J.mjs.map +0 -7
  670. package/dist/lib/node-esm/ensure-companion-chat-6K2WEWFP.mjs +0 -66
  671. package/dist/lib/node-esm/ensure-companion-chat-6K2WEWFP.mjs.map +0 -7
  672. package/dist/lib/node-esm/index.mjs +0 -3453
  673. package/dist/lib/node-esm/index.mjs.map +0 -7
  674. package/dist/lib/node-esm/meta.json +0 -1
  675. package/dist/lib/node-esm/on-create-space-YRPZ6HZY.mjs +0 -23
  676. package/dist/lib/node-esm/on-create-space-YRPZ6HZY.mjs.map +0 -7
  677. package/dist/lib/node-esm/operations/index.mjs +0 -14
  678. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  679. package/dist/lib/node-esm/resolve-navigation-targets-3PPK7XLH.mjs +0 -23
  680. package/dist/lib/node-esm/resolve-navigation-targets-3PPK7XLH.mjs.map +0 -7
  681. package/dist/lib/node-esm/run-prompt-in-new-chat-OUYKCMQ7.mjs +0 -137
  682. package/dist/lib/node-esm/run-prompt-in-new-chat-OUYKCMQ7.mjs.map +0 -7
  683. package/dist/lib/node-esm/set-current-chat-SMXZJD3F.mjs +0 -55
  684. package/dist/lib/node-esm/set-current-chat-SMXZJD3F.mjs.map +0 -7
  685. package/dist/lib/node-esm/types/index.mjs +0 -21
  686. package/dist/lib/node-esm/update-chat-name-HM2P4NSI.mjs +0 -72
  687. package/dist/lib/node-esm/update-chat-name-HM2P4NSI.mjs.map +0 -7
  688. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts +0 -2
  689. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts.map +0 -1
  690. package/dist/types/src/capabilities/markdown.d.ts.map +0 -1
  691. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +0 -10
  692. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +0 -1
  693. package/dist/types/src/components/ChatProgress/index.d.ts +0 -2
  694. package/dist/types/src/components/ChatProgress/index.d.ts.map +0 -1
  695. package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts +0 -14
  696. package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts.map +0 -1
  697. package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts.map +0 -1
  698. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +0 -12
  699. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +0 -1
  700. package/dist/types/src/containers/ChatContainer/index.d.ts +0 -2
  701. package/dist/types/src/containers/ChatContainer/index.d.ts.map +0 -1
  702. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts +0 -6
  703. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts.map +0 -1
  704. package/dist/types/src/containers/PromptArticle/index.d.ts +0 -2
  705. package/dist/types/src/containers/PromptArticle/index.d.ts.map +0 -1
  706. package/dist/types/src/containers/PromptList/PromptList.d.ts +0 -6
  707. package/dist/types/src/containers/PromptList/PromptList.d.ts.map +0 -1
  708. package/dist/types/src/containers/PromptList/PromptList.stories.d.ts.map +0 -1
  709. package/dist/types/src/containers/PromptList/index.d.ts +0 -2
  710. package/dist/types/src/containers/PromptList/index.d.ts.map +0 -1
  711. package/dist/types/src/containers/TracePanel/execution-graph.d.ts +0 -17
  712. package/dist/types/src/containers/TracePanel/execution-graph.d.ts.map +0 -1
  713. package/dist/types/src/operations/definitions.d.ts +0 -135
  714. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  715. package/dist/types/src/operations/on-create-space.d.ts +0 -5
  716. package/dist/types/src/operations/on-create-space.d.ts.map +0 -1
  717. package/dist/types/src/processor/processor.test.d.ts +0 -2
  718. package/dist/types/src/processor/processor.test.d.ts.map +0 -1
  719. package/dist/types/src/queue-logger.d.ts +0 -11
  720. package/dist/types/src/queue-logger.d.ts.map +0 -1
  721. package/dist/types/src/testing/trace-timeline.test.d.ts +0 -2
  722. package/dist/types/src/testing/trace-timeline.test.d.ts.map +0 -1
  723. package/dist/types/src/types/capabilities.d.ts +0 -32
  724. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  725. package/dist/types/src/types/defs.d.ts +0 -2
  726. package/dist/types/src/types/defs.d.ts.map +0 -1
  727. package/dist/types/src/types/events.d.ts +0 -5
  728. package/dist/types/src/types/events.d.ts.map +0 -1
  729. package/src/AssistantPlugin.tsx +0 -233
  730. package/src/components/ChatProgress/ChatProgress.tsx +0 -56
  731. package/src/components/ChatProgress/index.ts +0 -5
  732. package/src/components/ChatThread/widgets/PromptWidget.ts +0 -28
  733. package/src/containers/AgentProperties/AgentProperties.stories.tsx +0 -100
  734. package/src/containers/ChatContainer/ChatContainer.tsx +0 -95
  735. package/src/containers/ChatContainer/index.ts +0 -5
  736. package/src/containers/PromptArticle/PromptArticle.tsx +0 -59
  737. package/src/containers/PromptArticle/index.ts +0 -5
  738. package/src/containers/PromptList/index.ts +0 -5
  739. package/src/containers/TracePanel/execution-graph.ts +0 -425
  740. package/src/operations/on-create-space.ts +0 -24
  741. package/src/testing/trace-timeline.conversations.json +0 -1
  742. package/src/types/capabilities.ts +0 -35
  743. package/src/types/defs.ts +0 -5
  744. package/src/types/events.ts +0 -11
  745. /package/dist/lib/{browser/blueprints/index.mjs.map → neutral/AssistantPlugin.mjs.map} +0 -0
  746. /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/ChatArticle-VNVZCDUR.mjs.map} +0 -0
  747. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  748. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  749. /package/dist/lib/{node-esm/blueprints/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  750. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  751. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/ChatCompanion/ChatCompanion.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { BlueprintsAnnotation } from '@dxos/app-toolkit';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { getSpace } from '@dxos/client/echo';\nimport { Blueprint } from '@dxos/compute';\nimport { Entity, Filter, Obj, Ref, Type } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { useQuery, useRegistry } from '@dxos/react-client/echo';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport { useContextBinder } from '#hooks';\nimport { AssistantOperation } from '#types';\n\nimport ChatArticle from '../ChatArticle';\n\nexport type ChatCompanionProps = AppSurface.ArticleProps<Chat.Chat, {}, Obj.Unknown>;\n\nexport const ChatCompanion = forwardRef<HTMLDivElement, ChatCompanionProps>(\n ({ role = 'article', subject: chat, companionTo, attendableId }, forwardedRef) => {\n const { invokePromise } = useOperationInvoker();\n const space = getSpace(companionTo);\n useBlueprints({ subject: chat, companionTo });\n\n // Persist (and flush) a transient chat before the first request so the agent can resolve\n // the now-durable conversation feed; subsequent submits are a no-op once persisted.\n const handleSubmit = useCallback(async () => {\n if (!space || !chat || Obj.getDatabase(chat)) {\n return;\n }\n\n await invokePromise(SpaceOperation.AddObject, {\n object: chat,\n target: space.db,\n hidden: true,\n });\n await invokePromise(SpaceOperation.AddRelation, {\n db: space.db,\n schema: Chat.CompanionTo,\n source: chat,\n target: companionTo,\n });\n await invokePromise(AssistantOperation.SetCurrentChat, {\n companionTo,\n chat,\n });\n await space.db.flush();\n }, [space, chat, companionTo, invokePromise]);\n\n return (\n <ChatArticle\n role={role}\n subject={chat}\n attendableId={attendableId}\n companionTo={companionTo}\n onSubmit={handleSubmit}\n ref={forwardedRef}\n />\n );\n },\n);\n\n/**\n * Bind blueprints to the context.\n */\n// TODO(burdon): Why is this only in the companion?\nconst useBlueprints = ({ subject: chat, companionTo }: Pick<ChatCompanionProps, 'subject' | 'companionTo'>) => {\n const registry = useRegistry();\n const space = getSpace(companionTo);\n const feedTarget = chat?.feed.target;\n const binder = useContextBinder(space, feedTarget);\n\n const blueprintKeys = useMemo(() => {\n const schema = companionTo ? Obj.getType(companionTo) : undefined;\n if (!schema) {\n return [] as string[];\n }\n\n return Option.getOrElse(() => [] as string[])(BlueprintsAnnotation.get(Type.getSchema(schema)));\n }, [companionTo]);\n\n const existingBlueprints = useQuery(space?.db, Filter.type(Blueprint.Blueprint));\n const pluginBlueprints = useMemo(\n () =>\n existingBlueprints.filter((blueprint) => {\n const key = Obj.getMeta(blueprint).key;\n return key !== undefined && blueprintKeys.includes(key);\n }),\n [existingBlueprints, blueprintKeys],\n );\n\n useAsyncEffect(async () => {\n if (!binder?.isOpen) {\n return;\n }\n\n // Bind annotated blueprints: use key URI for registry blueprints (no DB clone needed).\n if (blueprintKeys.length > 0) {\n const registryKeys = blueprintKeys.filter((key) => {\n const candidate = registry.list().find((e) => Entity.getMeta(e)?.key === key);\n return candidate != null && Obj.instanceOf(Blueprint.Blueprint, candidate);\n });\n\n // DB-forked blueprints (in space but not in registry).\n const dbForks = pluginBlueprints.filter((bp) => !registryKeys.includes(Obj.getMeta(bp).key ?? ''));\n if (registryKeys.length > 0) {\n await binder.bind({ blueprints: registryKeys.map((key) => Ref.fromURI(Blueprint.registryURI(key))) });\n }\n if (dbForks.length > 0) {\n await binder.bind({ blueprints: dbForks.map((blueprint) => Ref.make(blueprint)) });\n }\n }\n\n if (Obj.instanceOf(Blueprint.Blueprint, companionTo)) {\n await binder.bind({ blueprints: [Ref.make(companionTo)] });\n } else {\n await binder.bind({ objects: [Ref.make(companionTo)] });\n }\n }, [binder, blueprintKeys, pluginBlueprints, companionTo]);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["Option", "React", "forwardRef", "useCallback", "useMemo", "useOperationInvoker", "BlueprintsAnnotation", "Chat", "getSpace", "Blueprint", "Entity", "Filter", "Obj", "Ref", "Type", "SpaceOperation", "useQuery", "useRegistry", "useAsyncEffect", "useContextBinder", "AssistantOperation", "ChatCompanion", "forwardRef", "role", "subject", "chat", "companionTo", "attendableId", "forwardedRef", "invokePromise", "useOperationInvoker", "space", "getSpace", "useBlueprints", "handleSubmit", "useCallback", "Obj", "getDatabase", "SpaceOperation", "AddObject", "object", "target", "db", "hidden", "AddRelation", "schema", "Chat", "CompanionTo", "source", "AssistantOperation", "SetCurrentChat", "flush", "ChatArticle", "onSubmit", "ref", "registry", "useRegistry", "feedTarget", "feed", "binder", "useContextBinder", "blueprintKeys", "useMemo", "getType", "undefined", "getOrElse", "BlueprintsAnnotation", "get", "Type", "getSchema", "existingBlueprints", "useQuery", "Filter", "type", "Blueprint", "pluginBlueprints", "filter", "blueprint", "key", "getMeta", "includes", "useAsyncEffect", "isOpen", "length", "registryKeys", "candidate", "list", "find", "e", "Entity", "instanceOf", "dbForks", "bp", "bind", "blueprints", "map", "Ref", "fromURI", "registryURI", "make", "objects"]
7
+ }
@@ -0,0 +1,73 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/ChatDialog/ChatDialog.tsx
4
+ import React, { useCallback, useState } from "react";
5
+ import { useAtomCapability } from "@dxos/app-framework/ui";
6
+ import { Obj } from "@dxos/echo";
7
+ import { useRegistry } from "@dxos/react-client/echo";
8
+ import { useTranslation } from "@dxos/react-ui";
9
+ import { ChatDialog as NaturalChatDialog } from "@dxos/react-ui-chat";
10
+ import { Chat } from "#components";
11
+ import { useChatProcessor, useChatServices, useOnline, usePresets } from "#hooks";
12
+ import { meta } from "#meta";
13
+ import { AssistantCapabilities } from "#types";
14
+ var ChatDialog = ({ chat }) => {
15
+ const { t } = useTranslation(meta.id);
16
+ const db = chat && Obj.getDatabase(chat);
17
+ const settings = useAtomCapability(AssistantCapabilities.Settings);
18
+ const runtime = useChatServices({
19
+ id: db?.spaceId
20
+ });
21
+ const [online, setOnline] = useOnline();
22
+ const { preset, ...chatProps } = usePresets(online);
23
+ const registry = useRegistry();
24
+ const processor = useChatProcessor({
25
+ chat,
26
+ preset,
27
+ runtime,
28
+ registry,
29
+ settings
30
+ });
31
+ const [open, setOpen] = useState(true);
32
+ const [expanded, setExpanded] = useState(false);
33
+ const handleEvent = useCallback((event) => {
34
+ switch (event.type) {
35
+ case "submit":
36
+ case "thread-open":
37
+ setOpen(true);
38
+ setExpanded(true);
39
+ break;
40
+ case "thread-close":
41
+ setOpen(false);
42
+ break;
43
+ }
44
+ }, []);
45
+ if (!chat || !processor) {
46
+ return null;
47
+ }
48
+ return /* @__PURE__ */ React.createElement(Chat.Root, {
49
+ chat,
50
+ processor,
51
+ onEvent: handleEvent
52
+ }, /* @__PURE__ */ React.createElement(NaturalChatDialog.Root, {
53
+ open,
54
+ expanded,
55
+ onOpenChange: setOpen
56
+ }, /* @__PURE__ */ React.createElement(NaturalChatDialog.Header, {
57
+ title: t("assistant-dialog.title")
58
+ }), /* @__PURE__ */ React.createElement(NaturalChatDialog.Content, null, /* @__PURE__ */ React.createElement(Chat.Thread, {
59
+ viewType: chat.view ?? settings.chatView
60
+ })), /* @__PURE__ */ React.createElement(NaturalChatDialog.Footer, {
61
+ classNames: "p-1.5"
62
+ }, /* @__PURE__ */ React.createElement(Chat.Prompt, {
63
+ ...chatProps,
64
+ preset: preset?.id,
65
+ online,
66
+ onOnlineChange: setOnline,
67
+ expandable: true
68
+ }))));
69
+ };
70
+ export {
71
+ ChatDialog as default
72
+ };
73
+ //# sourceMappingURL=ChatDialog-DCA6FLOV.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/ChatDialog/ChatDialog.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { useAtomCapability } from '@dxos/app-framework/ui';\nimport { type Chat as ChatTypes } from '@dxos/assistant-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { useRegistry } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { ChatDialog as NaturalChatDialog } from '@dxos/react-ui-chat';\n\nimport { Chat, type ChatRootProps } from '#components';\nimport { useChatProcessor, useChatServices, useOnline, usePresets } from '#hooks';\nimport { meta } from '#meta';\nimport { type Assistant, AssistantCapabilities } from '#types';\n\nexport type ChatDialogProps = {\n chat?: ChatTypes.Chat;\n};\n\nexport const ChatDialog = ({ chat }: ChatDialogProps) => {\n const { t } = useTranslation(meta.id);\n\n const db = chat && Obj.getDatabase(chat);\n const settings = useAtomCapability(AssistantCapabilities.Settings);\n const runtime = useChatServices({ id: db?.spaceId });\n const [online, setOnline] = useOnline();\n const { preset, ...chatProps } = usePresets(online);\n const registry = useRegistry();\n const processor = useChatProcessor({ chat, preset, runtime, registry, settings });\n\n // TODO(burdon): Refocus when open.\n const [open, setOpen] = useState(true);\n const [expanded, setExpanded] = useState(false);\n const handleEvent = useCallback<NonNullable<ChatRootProps['onEvent']>>((event) => {\n switch (event.type) {\n case 'submit':\n case 'thread-open':\n setOpen(true);\n setExpanded(true);\n break;\n case 'thread-close':\n setOpen(false);\n break;\n }\n }, []);\n\n if (!chat || !processor) {\n return null;\n }\n\n return (\n <Chat.Root chat={chat} processor={processor} onEvent={handleEvent}>\n <NaturalChatDialog.Root open={open} expanded={expanded} onOpenChange={setOpen}>\n <NaturalChatDialog.Header title={t('assistant-dialog.title')} />\n <NaturalChatDialog.Content>\n <Chat.Thread viewType={(chat.view as Assistant.ChatView | undefined) ?? settings.chatView} />\n </NaturalChatDialog.Content>\n <NaturalChatDialog.Footer classNames='p-1.5'>\n <Chat.Prompt {...chatProps} preset={preset?.id} online={online} onOnlineChange={setOnline} expandable />\n </NaturalChatDialog.Footer>\n </NaturalChatDialog.Root>\n </Chat.Root>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,SAASC,aAAaC,gBAAgB;AAE7C,SAASC,yBAAyB;AAElC,SAASC,WAAW;AACpB,SAASC,mBAAmB;AAC5B,SAASC,sBAAsB;AAC/B,SAASC,cAAcC,yBAAyB;AAEhD,SAASC,YAAgC;AACzC,SAASC,kBAAkBC,iBAAiBC,WAAWC,kBAAkB;AACzE,SAASC,YAAY;AACrB,SAAyBC,6BAA6B;AAM/C,IAAMR,aAAa,CAAC,EAAES,KAAI,MAAmB;AAClD,QAAM,EAAEC,EAAC,IAAKX,eAAeQ,KAAKI,EAAE;AAEpC,QAAMC,KAAKH,QAAQZ,IAAIgB,YAAYJ,IAAAA;AACnC,QAAMK,WAAWlB,kBAAkBY,sBAAsBO,QAAQ;AACjE,QAAMC,UAAUZ,gBAAgB;IAAEO,IAAIC,IAAIK;EAAQ,CAAA;AAClD,QAAM,CAACC,QAAQC,SAAAA,IAAad,UAAAA;AAC5B,QAAM,EAAEe,QAAQ,GAAGC,UAAAA,IAAcf,WAAWY,MAAAA;AAC5C,QAAMI,WAAWxB,YAAAA;AACjB,QAAMyB,YAAYpB,iBAAiB;IAAEM;IAAMW;IAAQJ;IAASM;IAAUR;EAAS,CAAA;AAG/E,QAAM,CAACU,MAAMC,OAAAA,IAAW9B,SAAS,IAAA;AACjC,QAAM,CAAC+B,UAAUC,WAAAA,IAAehC,SAAS,KAAA;AACzC,QAAMiC,cAAclC,YAAmD,CAACmC,UAAAA;AACtE,YAAQA,MAAMC,MAAI;MAChB,KAAK;MACL,KAAK;AACHL,gBAAQ,IAAA;AACRE,oBAAY,IAAA;AACZ;MACF,KAAK;AACHF,gBAAQ,KAAA;AACR;IACJ;EACF,GAAG,CAAA,CAAE;AAEL,MAAI,CAAChB,QAAQ,CAACc,WAAW;AACvB,WAAO;EACT;AAEA,SACE,sBAAA,cAACrB,KAAK6B,MAAI;IAACtB;IAAYc;IAAsBS,SAASJ;KACpD,sBAAA,cAAC3B,kBAAkB8B,MAAI;IAACP;IAAYE;IAAoBO,cAAcR;KACpE,sBAAA,cAACxB,kBAAkBiC,QAAM;IAACC,OAAOzB,EAAE,wBAAA;MACnC,sBAAA,cAACT,kBAAkBmC,SAAO,MACxB,sBAAA,cAAClC,KAAKmC,QAAM;IAACC,UAAW7B,KAAK8B,QAA2CzB,SAAS0B;OAEnF,sBAAA,cAACvC,kBAAkBwC,QAAM;IAACC,YAAW;KACnC,sBAAA,cAACxC,KAAKyC,QAAM;IAAE,GAAGtB;IAAWD,QAAQA,QAAQT;IAAIO;IAAgB0B,gBAAgBzB;IAAW0B,YAAAA;;AAKrG;",
6
+ "names": ["React", "useCallback", "useState", "useAtomCapability", "Obj", "useRegistry", "useTranslation", "ChatDialog", "NaturalChatDialog", "Chat", "useChatProcessor", "useChatServices", "useOnline", "usePresets", "meta", "AssistantCapabilities", "chat", "t", "id", "db", "getDatabase", "settings", "Settings", "runtime", "spaceId", "online", "setOnline", "preset", "chatProps", "registry", "processor", "open", "setOpen", "expanded", "setExpanded", "handleEvent", "event", "type", "Root", "onEvent", "onOpenChange", "Header", "title", "Content", "Thread", "viewType", "view", "chatView", "Footer", "classNames", "Prompt", "onOnlineChange", "expandable"]
7
+ }
@@ -0,0 +1,28 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/PlanArticle/PlanArticle.tsx
4
+ import React from "react";
5
+ import { Panel, ScrollArea, Toolbar } from "@dxos/react-ui";
6
+ import { useAttention } from "@dxos/react-ui-attention";
7
+ import { TaskList } from "#components";
8
+ var PlanArticle = ({ role, attendableId, subject }) => {
9
+ const { hasAttention } = useAttention(attendableId);
10
+ return /* @__PURE__ */ React.createElement(Panel.Root, {
11
+ role,
12
+ classNames: "dx-document"
13
+ }, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
14
+ asChild: true
15
+ }, /* @__PURE__ */ React.createElement(Toolbar.Root, {
16
+ disabled: !hasAttention
17
+ })), /* @__PURE__ */ React.createElement(Panel.Content, {
18
+ asChild: true
19
+ }, /* @__PURE__ */ React.createElement(ScrollArea.Root, {
20
+ orientation: "vertical"
21
+ }, /* @__PURE__ */ React.createElement(ScrollArea.Viewport, null, /* @__PURE__ */ React.createElement(TaskList, {
22
+ plan: subject
23
+ })))));
24
+ };
25
+ export {
26
+ PlanArticle as default
27
+ };
28
+ //# sourceMappingURL=PlanArticle-TS5ULWYS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/PlanArticle/PlanArticle.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Plan } from '@dxos/assistant-toolkit';\nimport { Panel, ScrollArea, Toolbar } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\n\nimport { TaskList } from '#components';\n\nexport type PlanArticleProps = AppSurface.ObjectArticleProps<Plan.Plan>;\n\nexport const PlanArticle = ({ role, attendableId, subject }: PlanArticleProps) => {\n const { hasAttention } = useAttention(attendableId);\n\n return (\n <Panel.Root role={role} classNames='dx-document'>\n <Panel.Toolbar asChild>\n <Toolbar.Root disabled={!hasAttention} />\n </Panel.Toolbar>\n <Panel.Content asChild>\n <ScrollArea.Root orientation='vertical'>\n <ScrollArea.Viewport>\n <TaskList plan={subject} />\n </ScrollArea.Viewport>\n </ScrollArea.Root>\n </Panel.Content>\n </Panel.Root>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,WAAW;AAIlB,SAASC,OAAOC,YAAYC,eAAe;AAC3C,SAASC,oBAAoB;AAE7B,SAASC,gBAAgB;AAIlB,IAAMC,cAAc,CAAC,EAAEC,MAAMC,cAAcC,QAAO,MAAoB;AAC3E,QAAM,EAAEC,aAAY,IAAKN,aAAaI,YAAAA;AAEtC,SACE,sBAAA,cAACP,MAAMU,MAAI;IAACJ;IAAYK,YAAW;KACjC,sBAAA,cAACX,MAAME,SAAO;IAACU,SAAAA;KACb,sBAAA,cAACV,QAAQQ,MAAI;IAACG,UAAU,CAACJ;OAE3B,sBAAA,cAACT,MAAMc,SAAO;IAACF,SAAAA;KACb,sBAAA,cAACX,WAAWS,MAAI;IAACK,aAAY;KAC3B,sBAAA,cAACd,WAAWe,UAAQ,MAClB,sBAAA,cAACZ,UAAAA;IAASa,MAAMT;;AAM5B;",
6
+ "names": ["React", "Panel", "ScrollArea", "Toolbar", "useAttention", "TaskList", "PlanArticle", "role", "attendableId", "subject", "hasAttention", "Root", "classNames", "asChild", "disabled", "Content", "orientation", "Viewport", "plan"]
7
+ }
@@ -0,0 +1,119 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/RoutineArticle/RoutineArticle.tsx
4
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
5
+ import { useSpaceCallback } from "@dxos/app-framework/ui";
6
+ import { AgentPrompt } from "@dxos/assistant-toolkit";
7
+ import { Operation } from "@dxos/compute";
8
+ import { Database, Feed, Obj } from "@dxos/echo";
9
+ import { invariant } from "@dxos/invariant";
10
+ import { Panel, Toolbar, useTranslation } from "@dxos/react-ui";
11
+ import { useAttention } from "@dxos/react-ui-attention";
12
+ import { JsonHighlighter } from "@dxos/react-ui-syntax-highlighter";
13
+ import { TemplateEditor } from "#components";
14
+ import { meta } from "#meta";
15
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/containers/RoutineArticle/RoutineArticle.tsx";
16
+ var RoutineArticle = ({ role, attendableId, subject }) => {
17
+ const { t } = useTranslation(meta.id);
18
+ const { hasAttention } = useAttention(attendableId);
19
+ const invoke = usePromptHandler(subject);
20
+ const [state, setState] = useState({
21
+ status: "idle"
22
+ });
23
+ const mountedRef = useRef(true);
24
+ useEffect(() => {
25
+ return () => {
26
+ mountedRef.current = false;
27
+ };
28
+ }, []);
29
+ const handleRun = useCallback(async () => {
30
+ setState({
31
+ status: "running"
32
+ });
33
+ try {
34
+ const result = await invoke();
35
+ if (mountedRef.current) {
36
+ setState({
37
+ status: "success",
38
+ result
39
+ });
40
+ }
41
+ } catch (err) {
42
+ if (mountedRef.current) {
43
+ setState({
44
+ status: "error",
45
+ error: err instanceof Error ? err : new Error(String(err))
46
+ });
47
+ }
48
+ }
49
+ }, [
50
+ invoke
51
+ ]);
52
+ return /* @__PURE__ */ React.createElement(Panel.Root, {
53
+ role,
54
+ className: "dx-document"
55
+ }, /* @__PURE__ */ React.createElement(Panel.Toolbar, {
56
+ asChild: true
57
+ }, /* @__PURE__ */ React.createElement(Toolbar.Root, {
58
+ disabled: !hasAttention || state.status === "running"
59
+ }, /* @__PURE__ */ React.createElement(Toolbar.IconButton, {
60
+ iconOnly: true,
61
+ icon: state.status === "running" ? "ph--spinner-gap--regular" : "ph--play--regular",
62
+ label: t("run-prompt.label"),
63
+ onClick: handleRun
64
+ }))), /* @__PURE__ */ React.createElement(Panel.Content, {
65
+ classNames: "flex flex-col gap-2"
66
+ }, /* @__PURE__ */ React.createElement(TemplateEditor, {
67
+ id: subject.id,
68
+ source: subject.instructions
69
+ }), /* @__PURE__ */ React.createElement(RoutineResult, {
70
+ state
71
+ })));
72
+ };
73
+ var RoutineResult = ({ state }) => {
74
+ const { t } = useTranslation(meta.id);
75
+ switch (state.status) {
76
+ case "idle":
77
+ return null;
78
+ case "running":
79
+ return /* @__PURE__ */ React.createElement("div", {
80
+ className: "p-2 text-sm text-subdued"
81
+ }, t("routine-running.label"));
82
+ case "error":
83
+ return /* @__PURE__ */ React.createElement("div", {
84
+ className: "p-2 text-sm text-error"
85
+ }, state.error.message);
86
+ case "success":
87
+ return /* @__PURE__ */ React.createElement(JsonHighlighter, {
88
+ classNames: "p-2! text-sm",
89
+ data: state.result
90
+ });
91
+ }
92
+ };
93
+ var usePromptHandler = (routine) => {
94
+ const db = Obj.getDatabase(routine);
95
+ const data = useMemo(() => {
96
+ if (db && routine) {
97
+ return {
98
+ prompt: db.makeRef(Obj.getURI(routine)),
99
+ input: {}
100
+ };
101
+ }
102
+ }, [
103
+ routine,
104
+ db
105
+ ]);
106
+ return useSpaceCallback(db?.spaceId, [
107
+ Database.Service,
108
+ Feed.FeedService
109
+ ], () => {
110
+ invariant(data, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 110, S: void 0, A: ["data", ""] });
111
+ return Operation.invoke(AgentPrompt, data);
112
+ }, [
113
+ data
114
+ ]);
115
+ };
116
+ export {
117
+ RoutineArticle as default
118
+ };
119
+ //# sourceMappingURL=RoutineArticle-5NYXHRG6.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/RoutineArticle/RoutineArticle.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useSpaceCallback } from '@dxos/app-framework/ui';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { AgentPrompt } from '@dxos/assistant-toolkit';\nimport { Operation, type Routine } from '@dxos/compute';\nimport { Database, Feed, Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { Panel, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { JsonHighlighter } from '@dxos/react-ui-syntax-highlighter';\n\nimport { TemplateEditor } from '#components';\nimport { meta } from '#meta';\n\nexport type RoutineArticleProps = AppSurface.ObjectArticleProps<Routine.Routine>;\n\ntype RunState =\n | { status: 'idle' }\n | { status: 'running' }\n | { status: 'success'; result: unknown }\n | { status: 'error'; error: Error };\n\n// TODO(burdon): Trigger editor.\nexport const RoutineArticle = ({ role, attendableId, subject }: RoutineArticleProps) => {\n const { t } = useTranslation(meta.id);\n const { hasAttention } = useAttention(attendableId);\n const invoke = usePromptHandler(subject);\n const [state, setState] = useState<RunState>({ status: 'idle' });\n const mountedRef = useRef(true);\n useEffect(() => {\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n const handleRun = useCallback(async () => {\n setState({ status: 'running' });\n try {\n const result = await invoke();\n if (mountedRef.current) {\n setState({ status: 'success', result });\n }\n } catch (err) {\n if (mountedRef.current) {\n setState({ status: 'error', error: err instanceof Error ? err : new Error(String(err)) });\n }\n }\n }, [invoke]);\n\n return (\n <Panel.Root role={role} className='dx-document'>\n <Panel.Toolbar asChild>\n <Toolbar.Root disabled={!hasAttention || state.status === 'running'}>\n <Toolbar.IconButton\n iconOnly\n icon={state.status === 'running' ? 'ph--spinner-gap--regular' : 'ph--play--regular'}\n label={t('run-prompt.label')}\n onClick={handleRun}\n />\n </Toolbar.Root>\n </Panel.Toolbar>\n <Panel.Content classNames='flex flex-col gap-2'>\n <TemplateEditor id={subject.id} source={subject.instructions} />\n <RoutineResult state={state} />\n </Panel.Content>\n </Panel.Root>\n );\n};\n\nconst RoutineResult = ({ state }: { state: RunState }) => {\n const { t } = useTranslation(meta.id);\n switch (state.status) {\n case 'idle':\n return null;\n case 'running':\n return <div className='p-2 text-sm text-subdued'>{t('routine-running.label')}</div>;\n case 'error':\n return <div className='p-2 text-sm text-error'>{state.error.message}</div>;\n case 'success':\n return <JsonHighlighter classNames='p-2! text-sm' data={state.result} />;\n }\n};\n\nconst usePromptHandler = (routine: Routine.Routine) => {\n const db = Obj.getDatabase(routine);\n const data = useMemo<Operation.Definition.Input<typeof AgentPrompt> | undefined>(() => {\n if (db && routine) {\n return {\n prompt: db.makeRef(Obj.getURI(routine)),\n input: {},\n };\n }\n }, [routine, db]);\n\n return useSpaceCallback(\n db?.spaceId,\n [Database.Service, Feed.FeedService] as const,\n () => {\n invariant(data);\n return Operation.invoke(AgentPrompt, data);\n },\n [data],\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,SAASC,aAAaC,WAAWC,SAASC,QAAQC,gBAAgB;AAEzE,SAASC,wBAAwB;AAEjC,SAASC,mBAAmB;AAC5B,SAASC,iBAA+B;AACxC,SAASC,UAAUC,MAAMC,WAAW;AACpC,SAASC,iBAAiB;AAC1B,SAASC,OAAOC,SAASC,sBAAsB;AAC/C,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAEhC,SAASC,sBAAsB;AAC/B,SAASC,YAAY;AAUrB,IAAA,eAAA;AAGE,IAAQC,iBAAiBJ,CAAAA,EAAAA,MAAAA,cAAaK,QAAAA,MAAAA;AACtC,QAAMC,EAAAA,EAAAA,IAAAA,eAASC,KAAiBC,EAAAA;AAChC,QAAM,EAACC,aAAOC,IAAS,aAAsB,YAAA;QAAEC,SAAQ,iBAAA,OAAA;AAAO,QAAA,CAAA,OAAA,QAAA,IAAA,SAAA;IAC9D,QAAMC;EACN1B,CAAAA;QACE,aAAO,OAAA,IAAA;YACL0B,MAAAA;AACF,WAAA,MAAA;AACG,iBAAA,UAAA;IAEL;MACEF,CAAAA;oBAAmB,YAAA,YAAA;AAAU,aAAA;MACzB,QAAA;;QAEF;YACEA,SAAS,MAAA,OAAA;qBAAEC,SAAQ;iBAAWE;UAAO,QAAA;UACvC;QACA,CAAOC;MACP;aACEJ,KAAAA;qBAAWC,SAAQ;iBAASI;UAA2D,QAAA;UACzF,OAAA,eAAA,QAAA,MAAA,IAAA,MAAA,OAAA,GAAA,CAAA;QACF,CAAA;MACC;IAACT;KAAO;IAEX;;SACoC,sBAAA,cAAA,MAAA,MAAA;;IACjBU,WAAAA;KACb,sBAAA,cAAClB,MAAAA,SAAY;IAACmB,SAAAA;KACZ,sBAAA,cAACnB,QAAQoB,MAAAA;IACPC,UAAAA,CAAAA,gBAAAA,MAAAA,WAAAA;KACYR,sBAAM,cAAK,QAAY,YAAA;IACnCS,UAAS;IACTC,MAAAA,MAASC,WAAAA,YAAAA,6BAAAA;+BAIf;IAAeC,SAAAA;QACb,sBAAA,cAACrB,MAAAA,SAAAA;IAAesB,YAAYA;KAAYhB,sBAAQiB,cAAY,gBAAA;;IAC7ChB,QAAOA,QAAAA;;IAI5B;EAEF,CAAA,CAAMiB,CAAAA;;IAEJ,gBAAcf,CAAM,EAAA,MAAA,MAAA;QAClB,EAAA,EAAK,IAAA,eAAA,KAAA,EAAA;gBACH,QAAO;IACT,KAAK;AACH,aAAA;;aAAoD,sBAAA,cAAA,OAAA;QACjD,WAAA;MACH,GAAA,EAAA,uBAAO,CAAA;;aAAqDgB,sBAAO,cAAA,OAAA;QAChE,WAAA;MACH,GAAA,MAAA,MAAA,OAAO;;aAAuDd,sBAAM,cAAA,iBAAA;;QACxE,MAAA,MAAA;MACF,CAAA;EAEA;;IAEE,mBAAiF,CAAA,YAAA;QAC/E,KAAIe,IAAMC,YAAS,OAAA;eACjB,QAAO,MAAA;cACLC,SAAWC;aACXC;QACF,QAAA,GAAA,QAAA,IAAA,OAAA,OAAA,CAAA;QACF,OAAA,CAAA;MACC;IAACH;;IAAY;IAEhB;;SAEqBnC,iBAAgB,IAAA,SAAA;IACnC,SAAA;IACEE,KAAAA;WACA;AAEF,cAAA,MAAA,QAAA,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,KAAA,GAAA,QAAA,GAAA,CAAA,QAAA,EAAA,EAAA,CAAA;AAACqC,WAAAA,UAAAA,OAAAA,aAAAA,IAAAA;KAAK;IAEV;;;",
6
+ "names": ["React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "useSpaceCallback", "AgentPrompt", "Operation", "Database", "Feed", "Obj", "invariant", "Panel", "Toolbar", "useTranslation", "useAttention", "JsonHighlighter", "TemplateEditor", "meta", "hasAttention", "attendableId", "invoke", "usePromptHandler", "subject", "state", "setState", "status", "mountedRef", "result", "err", "error", "asChild", "disabled", "IconButton", "iconOnly", "label", "onClick", "handleRun", "classNames", "id", "instructions", "RoutineResult", "message", "db", "routine", "prompt", "makeRef", "input", "data"]
7
+ }
@@ -0,0 +1,48 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/RoutineList/RoutineList.tsx
4
+ import React from "react";
5
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
6
+ import { DatabaseBlueprint, WebSearchBlueprint } from "@dxos/assistant-toolkit";
7
+ import { Routine } from "@dxos/compute";
8
+ import { Filter, Obj, Ref } from "@dxos/echo";
9
+ import { MarkdownBlueprint } from "@dxos/plugin-markdown";
10
+ import { useQuery } from "@dxos/react-client/echo";
11
+ import { IconButton } from "@dxos/react-ui";
12
+ import { AssistantOperation } from "#types";
13
+ var RoutineList = ({ subject }) => {
14
+ const { invokePromise } = useOperationInvoker();
15
+ const db = Obj.getDatabase(subject);
16
+ const prompts = useQuery(db, Filter.type(Routine.Routine));
17
+ if (!db) {
18
+ return null;
19
+ }
20
+ return /* @__PURE__ */ React.createElement("div", {
21
+ className: "flex gap-2"
22
+ }, prompts.map((prompt, i) => /* @__PURE__ */ React.createElement("div", {
23
+ key: i
24
+ }, /* @__PURE__ */ React.createElement(IconButton, {
25
+ icon: "ph--magic-wand--regular",
26
+ label: Obj.getLabel(prompt) ?? Obj.getURI(prompt),
27
+ onClick: () => {
28
+ void invokePromise(AssistantOperation.RunPromptInNewChat, {
29
+ db,
30
+ prompt: Ref.make(prompt),
31
+ objects: [
32
+ subject
33
+ ],
34
+ // TODO(burdon): Concifgure from Prompt object.
35
+ blueprints: [
36
+ DatabaseBlueprint.key,
37
+ WebSearchBlueprint.key,
38
+ MarkdownBlueprint.key
39
+ ],
40
+ background: true
41
+ });
42
+ }
43
+ }))));
44
+ };
45
+ export {
46
+ RoutineList as default
47
+ };
48
+ //# sourceMappingURL=RoutineList-SO5ETHNT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/RoutineList/RoutineList.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { DatabaseBlueprint, WebSearchBlueprint } from '@dxos/assistant-toolkit';\nimport { Routine } from '@dxos/compute';\nimport { Filter, Obj, Ref } from '@dxos/echo';\nimport { MarkdownBlueprint } from '@dxos/plugin-markdown';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { IconButton } from '@dxos/react-ui';\n\nimport { AssistantOperation } from '#types';\n\nexport type RoutineListProps = AppSurface.ObjectSectionProps<Obj.Unknown>;\n\nexport const RoutineList = ({ subject }: RoutineListProps) => {\n const { invokePromise } = useOperationInvoker();\n const db = Obj.getDatabase(subject);\n const prompts = useQuery(db, Filter.type(Routine.Routine));\n if (!db) {\n return null;\n }\n\n return (\n <div className='flex gap-2'>\n {prompts.map((prompt, i) => (\n <div key={i}>\n <IconButton\n icon='ph--magic-wand--regular'\n label={Obj.getLabel(prompt) ?? Obj.getURI(prompt)}\n onClick={() => {\n void invokePromise(AssistantOperation.RunPromptInNewChat, {\n db,\n prompt: Ref.make(prompt),\n objects: [subject],\n // TODO(burdon): Concifgure from Prompt object.\n blueprints: [DatabaseBlueprint.key, WebSearchBlueprint.key, MarkdownBlueprint.key],\n background: true,\n });\n }}\n />\n </div>\n ))}\n </div>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,WAAW;AAElB,SAASC,2BAA2B;AAEpC,SAASC,mBAAmBC,0BAA0B;AACtD,SAASC,eAAe;AACxB,SAASC,QAAQC,KAAKC,WAAW;AACjC,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AACzB,SAASC,kBAAkB;AAE3B,SAASC,0BAA0B;AAI5B,IAAMC,cAAc,CAAC,EAAEC,QAAO,MAAoB;AACvD,QAAM,EAAEC,cAAa,IAAKb,oBAAAA;AAC1B,QAAMc,KAAKT,IAAIU,YAAYH,OAAAA;AAC3B,QAAMI,UAAUR,SAASM,IAAIV,OAAOa,KAAKd,QAAQA,OAAO,CAAA;AACxD,MAAI,CAACW,IAAI;AACP,WAAO;EACT;AAEA,SACE,sBAAA,cAACI,OAAAA;IAAIC,WAAU;KACZH,QAAQI,IAAI,CAACC,QAAQC,MACpB,sBAAA,cAACJ,OAAAA;IAAIK,KAAKD;KACR,sBAAA,cAACb,YAAAA;IACCe,MAAK;IACLC,OAAOpB,IAAIqB,SAASL,MAAAA,KAAWhB,IAAIsB,OAAON,MAAAA;IAC1CO,SAAS,MAAA;AACP,WAAKf,cAAcH,mBAAmBmB,oBAAoB;QACxDf;QACAO,QAAQf,IAAIwB,KAAKT,MAAAA;QACjBU,SAAS;UAACnB;;;QAEVoB,YAAY;UAAC/B,kBAAkBsB;UAAKrB,mBAAmBqB;UAAKhB,kBAAkBgB;;QAC9EU,YAAY;MACd,CAAA;IACF;;AAMZ;",
6
+ "names": ["React", "useOperationInvoker", "DatabaseBlueprint", "WebSearchBlueprint", "Routine", "Filter", "Obj", "Ref", "MarkdownBlueprint", "useQuery", "IconButton", "AssistantOperation", "RoutineList", "subject", "invokePromise", "db", "getDatabase", "prompts", "type", "div", "className", "map", "prompt", "i", "key", "icon", "label", "getLabel", "getURI", "onClick", "RunPromptInNewChat", "make", "objects", "blueprints", "background"]
7
+ }
@@ -0,0 +1,17 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/components/RoutineProperties/RoutineProperties.tsx
4
+ import React from "react";
5
+ import { Panel } from "@dxos/react-ui";
6
+ import { ObjectProperties } from "@dxos/react-ui-form";
7
+ var RoutineProperties = ({ routine }) => {
8
+ return /* @__PURE__ */ React.createElement(Panel.Root, null, /* @__PURE__ */ React.createElement(Panel.Content, {
9
+ asChild: true
10
+ }, /* @__PURE__ */ React.createElement(ObjectProperties, {
11
+ object: routine
12
+ })));
13
+ };
14
+ export {
15
+ RoutineProperties as default
16
+ };
17
+ //# sourceMappingURL=RoutineProperties-FISLMW2R.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/RoutineProperties/RoutineProperties.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Routine } from '@dxos/compute';\nimport { Panel } from '@dxos/react-ui';\nimport { ObjectProperties } from '@dxos/react-ui-form';\n\nexport type RoutinePropertiesProps = {\n routine: Routine.Routine;\n};\n\nexport const RoutineProperties = ({ routine }: RoutinePropertiesProps) => {\n return (\n <Panel.Root>\n <Panel.Content asChild>\n <ObjectProperties object={routine} />\n </Panel.Content>\n </Panel.Root>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,WAAW;AAGlB,SAASC,aAAa;AACtB,SAASC,wBAAwB;AAM1B,IAAMC,oBAAoB,CAAC,EAAEC,QAAO,MAA0B;AACnE,SACE,sBAAA,cAACH,MAAMI,MAAI,MACT,sBAAA,cAACJ,MAAMK,SAAO;IAACC,SAAAA;KACb,sBAAA,cAACL,kBAAAA;IAAiBM,QAAQJ;;AAIlC;",
6
+ "names": ["React", "Panel", "ObjectProperties", "RoutineProperties", "routine", "Root", "Content", "asChild", "object"]
7
+ }
@@ -0,0 +1,167 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/TracePanel/TracePanel.tsx
4
+ import { Atom } from "@effect-atom/atom";
5
+ import { useAtomValue } from "@effect-atom/atom-react";
6
+ import * as Data from "effect/Data";
7
+ import * as Duration from "effect/Duration";
8
+ import { pipe } from "effect/Function";
9
+ import React, { useCallback, useDeferredValue, useEffect, useMemo, useState } from "react";
10
+ import { Capabilities } from "@dxos/app-framework";
11
+ import { useCapability, useAtomCapability, useOperationInvoker } from "@dxos/app-framework/ui";
12
+ import { LayoutOperation } from "@dxos/app-toolkit";
13
+ import { Process, Trace } from "@dxos/compute";
14
+ import { Filter, Query } from "@dxos/echo";
15
+ import { FeedTraceSink } from "@dxos/functions-runtime";
16
+ import { EID } from "@dxos/keys";
17
+ import { ScrollContainer } from "@dxos/react-ui";
18
+ import { composable, composableProps } from "@dxos/react-ui";
19
+ import { useAttentionAttributes } from "@dxos/react-ui-attention";
20
+ import { Timeline } from "@dxos/react-ui-components";
21
+ import { Syntax } from "@dxos/react-ui-syntax-highlighter";
22
+ import { mx } from "@dxos/ui-theme";
23
+ import { ProcessTree } from "#components";
24
+ import { buildExecutionGraph } from "#execution-graph";
25
+ import { AssistantCapabilities } from "#types";
26
+ var TracePanel = composable(({ space, attendableId, onProcessTerminate, ...props }, forwardedRef) => {
27
+ const attentionAttrs = useAttentionAttributes(attendableId);
28
+ const { invokePromise } = useOperationInvoker();
29
+ const settings = useAtomCapability(AssistantCapabilities.Settings);
30
+ const tracePanelDebug = settings.tracePanelDebug ?? false;
31
+ const { branches, commits, spanTree, details } = useDeferredValue(useExecutionGraph(space));
32
+ const traceMessages = useTraceMessages(space);
33
+ useEffect(() => {
34
+ if (!import.meta.env.DEV) {
35
+ return;
36
+ }
37
+ const debugGlobal = globalThis;
38
+ debugGlobal.dxosDumpTrace = () => {
39
+ const data = traceMessages.map((message) => ({
40
+ meta: message.meta,
41
+ isEphemeral: message.isEphemeral,
42
+ events: message.events
43
+ }));
44
+ const json = JSON.stringify(data, null, 2);
45
+ console.log(json);
46
+ void navigator.clipboard?.writeText(json);
47
+ return `dxosDumpTrace: ${data.length} message(s) copied to clipboard`;
48
+ };
49
+ return () => {
50
+ delete debugGlobal.dxosDumpTrace;
51
+ };
52
+ }, [
53
+ traceMessages
54
+ ]);
55
+ const [selectedCommit, setSelectedCommit] = useState();
56
+ const handleCommitSelect = useCallback((commit) => {
57
+ setSelectedCommit(commit);
58
+ if (commit?.link) {
59
+ const echoUri = EID.tryParse(commit.link);
60
+ const spaceId = echoUri ? EID.getSpaceId(echoUri) : void 0;
61
+ const objectId = echoUri ? EID.getEntityId(echoUri) : void 0;
62
+ if (spaceId && objectId) {
63
+ void invokePromise(LayoutOperation.Open, {
64
+ subject: [
65
+ `${spaceId}:${objectId}`
66
+ ]
67
+ });
68
+ }
69
+ }
70
+ }, [
71
+ invokePromise,
72
+ setSelectedCommit
73
+ ]);
74
+ const [currentBranch, setCurrentBranch] = useState(null);
75
+ const handleProcessSelect = useCallback((process) => {
76
+ const branch = branches.find((branch2) => branch2 === process.pid.toString());
77
+ if (branch) {
78
+ setCurrentBranch(branch);
79
+ }
80
+ }, [
81
+ branches
82
+ ]);
83
+ return /* @__PURE__ */ React.createElement("div", {
84
+ ...composableProps(props, {
85
+ ...attentionAttrs,
86
+ classNames: mx("h-full grid divide-y divide-separator", !tracePanelDebug && selectedCommit ? "grid-rows-[minmax(0,160px)_1fr_minmax(0,206px)]" : "grid-rows-[minmax(0,160px)_1fr]")
87
+ }),
88
+ ref: forwardedRef
89
+ }, /* @__PURE__ */ React.createElement(ProcessTreeContainer, {
90
+ onProcessSelect: handleProcessSelect,
91
+ onProcessTerminate
92
+ }), /* @__PURE__ */ React.createElement(ScrollContainer.Root, {
93
+ pin: true
94
+ }, /* @__PURE__ */ React.createElement(ScrollContainer.Content, {
95
+ thin: true
96
+ }, /* @__PURE__ */ React.createElement(ScrollContainer.Fade, null), /* @__PURE__ */ React.createElement(ScrollContainer.Viewport, null, tracePanelDebug ? /* @__PURE__ */ React.createElement(Syntax.Root, {
97
+ data: spanTree
98
+ }, /* @__PURE__ */ React.createElement(Syntax.Content, null, /* @__PURE__ */ React.createElement(Syntax.Viewport, null, /* @__PURE__ */ React.createElement(Syntax.Code, {
99
+ className: "text-xs"
100
+ })))) : /* @__PURE__ */ React.createElement(Timeline, {
101
+ compact: true,
102
+ commits,
103
+ branches,
104
+ currentBranch,
105
+ onSelect: handleCommitSelect
106
+ })), /* @__PURE__ */ React.createElement(ScrollContainer.ScrollDownButton, null))), !tracePanelDebug && selectedCommit && /* @__PURE__ */ React.createElement(Syntax.Root, {
107
+ data: details[selectedCommit.id] ?? selectedCommit
108
+ }, /* @__PURE__ */ React.createElement(Syntax.Content, null, /* @__PURE__ */ React.createElement(Syntax.Viewport, null, /* @__PURE__ */ React.createElement(Syntax.Code, {
109
+ className: "text-xs"
110
+ })))));
111
+ });
112
+ var atomEmpty = Atom.make(() => []);
113
+ var useExecutionGraph = (space, { eventLimit } = {}) => {
114
+ const monitor = useCapability(Capabilities.ProcessMonitor);
115
+ const processesAtom = monitor?.processTreeAtom ?? atomEmpty;
116
+ const atom = useMemo(() => getExecutionGraph(space, processesAtom, {
117
+ eventLimit
118
+ }), [
119
+ space,
120
+ processesAtom,
121
+ eventLimit
122
+ ]);
123
+ return useAtomValue(atom);
124
+ };
125
+ var getTraceMessagesAtom = (space) => pipe(space.db.query(FeedTraceSink.query).atom, Atom.map((feeds) => (
126
+ // TODO(dmaretskyi): This should be possible in a single query with properly working limit(1) and feed > feed contents traversal.
127
+ space.db.query(feeds.length > 0 ? Query.type(Trace.Message).from(feeds[0]) : Query.select(Filter.nothing())).atom
128
+ )), (atom) => Atom.make((get) => get(get(atom))));
129
+ var useTraceMessages = (space) => {
130
+ const atom = useMemo(() => getTraceMessagesAtom(space), [
131
+ space
132
+ ]);
133
+ return useAtomValue(atom);
134
+ };
135
+ var getExecutionGraph = (space, processesAtom, { eventLimit = 100 } = {}) => {
136
+ const traceMessages = getTraceMessagesAtom(space);
137
+ const activeProcesses = pipe(processesAtom, Atom.debounce(Duration.millis(500)), Atom.map((processes) => (
138
+ // `Data.array` does structural comparison on the array elements.
139
+ Data.array(processes.filter((process) => process.state === Process.State.RUNNING || process.state === Process.State.HYBERNATING).map(Data.struct))
140
+ )));
141
+ return Atom.make((get) => buildExecutionGraph({
142
+ traceMessages: get(traceMessages),
143
+ activeProcesses: get(activeProcesses),
144
+ eventLimit
145
+ }));
146
+ };
147
+ TracePanel.displayName = "TracePanel";
148
+ var ProcessTreeContainer = ({ onProcessSelect, onProcessTerminate }) => {
149
+ const monitor = useCapability(Capabilities.ProcessMonitor);
150
+ const processes = useAtomValue(useMemo(() => monitor?.processTreeAtom.pipe(Atom.debounce(Duration.millis(500))) ?? atomEmpty, [
151
+ monitor
152
+ ]));
153
+ const processesDeferred = useDeferredValue(processes);
154
+ return /* @__PURE__ */ React.createElement(ProcessTree, {
155
+ processes: processesDeferred,
156
+ onProcessSelect,
157
+ onProcessTerminate
158
+ });
159
+ };
160
+
161
+ // src/containers/TracePanel/index.ts
162
+ var TracePanel_default = TracePanel;
163
+ export {
164
+ TracePanel,
165
+ TracePanel_default as default
166
+ };
167
+ //# sourceMappingURL=TracePanel-KTZJ6JNR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/TracePanel/TracePanel.tsx", "../../../src/containers/TracePanel/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom';\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport * as Data from 'effect/Data';\nimport * as Duration from 'effect/Duration';\nimport { pipe } from 'effect/Function';\nimport React, { useCallback, useDeferredValue, useEffect, useMemo, useState } from 'react';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { useCapability, useAtomCapability, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Process, Trace } from '@dxos/compute';\nimport { Filter, Query } from '@dxos/echo';\nimport { FeedTraceSink } from '@dxos/functions-runtime';\nimport { EID } from '@dxos/keys';\nimport { type Space } from '@dxos/react-client/echo';\nimport { ScrollContainer } from '@dxos/react-ui';\nimport { composable, composableProps } from '@dxos/react-ui';\nimport { useAttentionAttributes } from '@dxos/react-ui-attention';\nimport { Timeline, type Commit } from '@dxos/react-ui-components';\nimport { Syntax } from '@dxos/react-ui-syntax-highlighter';\nimport { mx } from '@dxos/ui-theme';\n\nimport { ProcessTree, ProcessTreeProps } from '#components';\nimport { buildExecutionGraph, type ExecutionGraph } from '#execution-graph';\nimport { AssistantCapabilities } from '#types';\n\nexport type TracePanelProps = AppSurface.SpaceArticleProps<Pick<ProcessTreeProps, 'onProcessTerminate'>>;\n\nexport const TracePanel = composable<HTMLDivElement, TracePanelProps>(\n ({ space, attendableId, onProcessTerminate, ...props }, forwardedRef) => {\n const attentionAttrs = useAttentionAttributes(attendableId);\n const { invokePromise } = useOperationInvoker();\n const settings = useAtomCapability(AssistantCapabilities.Settings);\n const tracePanelDebug = settings.tracePanelDebug ?? false;\n\n // `useDeferredValue` batches update bursts, works together with `React.memo`.\n // See the comment in `ProcessTreeContainer` for more details.\n const { branches, commits, spanTree, details } = useDeferredValue(useExecutionGraph(space));\n\n // Debug hatch (dev builds only): expose the raw trace messages (the exact `buildExecutionGraph`\n // input) so a real trace can be captured as a test fixture. While the TracePanel is mounted, run\n // `dxosDumpTrace()` in the console — it copies the serialized `Trace.Message[]` to the clipboard\n // (and logs it). Gated on `import.meta.env.DEV` so it's stripped from production builds.\n const traceMessages = useTraceMessages(space);\n useEffect(() => {\n if (!import.meta.env.DEV) {\n return;\n }\n // Attach a debug hatch to the global object (a genuine global-augmentation boundary).\n const debugGlobal = globalThis as typeof globalThis & { dxosDumpTrace?: () => string };\n debugGlobal.dxosDumpTrace = () => {\n const data = traceMessages.map((message) => ({\n meta: message.meta,\n isEphemeral: message.isEphemeral,\n events: message.events,\n }));\n const json = JSON.stringify(data, null, 2);\n // eslint-disable-next-line no-console\n console.log(json);\n void navigator.clipboard?.writeText(json);\n return `dxosDumpTrace: ${data.length} message(s) copied to clipboard`;\n };\n return () => {\n delete debugGlobal.dxosDumpTrace;\n };\n }, [traceMessages]);\n\n const [selectedCommit, setSelectedCommit] = useState<Commit | undefined>();\n const handleCommitSelect = useCallback(\n (commit: Commit | undefined) => {\n setSelectedCommit(commit);\n if (commit?.link) {\n const echoUri = EID.tryParse(commit.link);\n const spaceId = echoUri ? EID.getSpaceId(echoUri) : undefined;\n const objectId = echoUri ? EID.getEntityId(echoUri) : undefined;\n if (spaceId && objectId) {\n // TODO(dmaretskyi): Navigates, but fails to open.\n void invokePromise(LayoutOperation.Open, {\n subject: [`${spaceId}:${objectId}`],\n });\n }\n }\n },\n [invokePromise, setSelectedCommit],\n );\n\n // Select current branch.\n const [currentBranch, setCurrentBranch] = useState<string | null>(null);\n const handleProcessSelect = useCallback(\n (process: Process.Info) => {\n const branch = branches.find((branch) => branch === process.pid.toString());\n if (branch) {\n setCurrentBranch(branch);\n }\n },\n [branches],\n );\n\n return (\n <div\n {...composableProps(props, {\n ...attentionAttrs,\n classNames: mx(\n 'h-full grid divide-y divide-separator',\n !tracePanelDebug && selectedCommit\n ? 'grid-rows-[minmax(0,160px)_1fr_minmax(0,206px)]'\n : 'grid-rows-[minmax(0,160px)_1fr]',\n ),\n })}\n ref={forwardedRef}\n >\n <ProcessTreeContainer onProcessSelect={handleProcessSelect} onProcessTerminate={onProcessTerminate} />\n\n <ScrollContainer.Root pin>\n <ScrollContainer.Content thin>\n <ScrollContainer.Fade />\n <ScrollContainer.Viewport>\n {tracePanelDebug ? (\n <Syntax.Root data={spanTree}>\n <Syntax.Content>\n <Syntax.Viewport>\n <Syntax.Code className='text-xs' />\n </Syntax.Viewport>\n </Syntax.Content>\n </Syntax.Root>\n ) : (\n <Timeline\n compact\n commits={commits}\n branches={branches}\n currentBranch={currentBranch}\n onSelect={handleCommitSelect}\n />\n )}\n </ScrollContainer.Viewport>\n <ScrollContainer.ScrollDownButton />\n </ScrollContainer.Content>\n </ScrollContainer.Root>\n\n {!tracePanelDebug && selectedCommit && (\n <Syntax.Root data={details[selectedCommit.id] ?? selectedCommit}>\n <Syntax.Content>\n <Syntax.Viewport>\n <Syntax.Code className='text-xs' />\n </Syntax.Viewport>\n </Syntax.Content>\n </Syntax.Root>\n )}\n </div>\n );\n },\n);\n\n// Stable ref.\nconst atomEmpty = Atom.make(() => [] as const);\n\ntype UseExecutionGraphOptions = {\n eventLimit?: number;\n};\n\nconst useExecutionGraph = (space: Space, { eventLimit }: UseExecutionGraphOptions = {}): ExecutionGraph => {\n const monitor = useCapability(Capabilities.ProcessMonitor);\n const processesAtom = monitor?.processTreeAtom ?? atomEmpty;\n\n const atom = useMemo(\n () => getExecutionGraph(space, processesAtom, { eventLimit }),\n [space, processesAtom, eventLimit],\n );\n\n return useAtomValue(atom);\n};\n\n/**\n * Atom of the raw trace messages for a space — the exact `Trace.Message[]` fed into\n * `buildExecutionGraph`. Shared by the execution graph and the debug trace export.\n */\nconst getTraceMessagesAtom = (space: Space): Atom.Atom<readonly Trace.Message[]> =>\n pipe(\n space.db.query(FeedTraceSink.query).atom,\n Atom.map(\n (feeds) =>\n // TODO(dmaretskyi): This should be possible in a single query with properly working limit(1) and feed > feed contents traversal.\n space.db.query(\n feeds.length > 0\n ? Query.type(Trace.Message).from(feeds[0])\n : (Query.select(Filter.nothing()) as Query.Query<never>),\n ).atom,\n ),\n (atom) => Atom.make((get) => get(get(atom))),\n );\n\n/**\n * Returns the raw trace messages for a space (used by the debug trace export).\n */\nconst useTraceMessages = (space: Space): readonly Trace.Message[] => {\n const atom = useMemo(() => getTraceMessagesAtom(space), [space]);\n return useAtomValue(atom);\n};\n\nconst getExecutionGraph = (\n space: Space,\n processesAtom: Atom.Atom<readonly Process.Info[]>,\n { eventLimit = 100 }: UseExecutionGraphOptions = {},\n): Atom.Atom<ExecutionGraph> => {\n const traceMessages = getTraceMessagesAtom(space);\n\n const activeProcesses = pipe(\n processesAtom,\n Atom.debounce(Duration.millis(500)),\n Atom.map((processes) =>\n // `Data.array` does structural comparison on the array elements.\n Data.array(\n processes\n .filter((process) => process.state === Process.State.RUNNING || process.state === Process.State.HYBERNATING)\n .map(Data.struct),\n ),\n ),\n );\n\n return Atom.make((get) =>\n buildExecutionGraph({\n traceMessages: get(traceMessages),\n activeProcesses: get(activeProcesses),\n eventLimit,\n }),\n );\n};\nTracePanel.displayName = 'TracePanel';\n\n// Isolate `ProcessTree` updates from the rest of the panel.\n// TODO(dmaretskyi): Currently not useful since `useExecutionGraph` also pulls in the updates.\nconst ProcessTreeContainer = ({\n onProcessSelect,\n onProcessTerminate,\n}: Pick<ProcessTreeProps, 'onProcessSelect' | 'onProcessTerminate'>) => {\n const monitor = useCapability(Capabilities.ProcessMonitor);\n const processes = useAtomValue(\n useMemo(() => monitor?.processTreeAtom.pipe(Atom.debounce(Duration.millis(500))) ?? atomEmpty, [monitor]),\n );\n\n // `processes` updates in bursts (about 14 updates per navigation).\n // `useDeferredValue` will debounce update propagation, returning stale value for short periods.\n // NOTE: `ProcessTree` MUST use `React.memo`, otherwise this will not work.\n const processesDeferred = useDeferredValue(processes);\n return (\n <ProcessTree\n processes={processesDeferred}\n onProcessSelect={onProcessSelect}\n onProcessTerminate={onProcessTerminate}\n />\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { TracePanel } from './TracePanel';\n\nexport * from './TracePanel';\n\nexport default TracePanel;\n"],
5
+ "mappings": "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",
6
+ "names": ["Atom", "useAtomValue", "Data", "Duration", "pipe", "React", "useCallback", "useDeferredValue", "useEffect", "useMemo", "useState", "Capabilities", "useCapability", "useAtomCapability", "useOperationInvoker", "LayoutOperation", "Process", "Trace", "Filter", "Query", "FeedTraceSink", "EID", "ScrollContainer", "composable", "composableProps", "useAttentionAttributes", "Timeline", "Syntax", "mx", "ProcessTree", "buildExecutionGraph", "AssistantCapabilities", "TracePanel", "space", "attendableId", "onProcessTerminate", "props", "forwardedRef", "attentionAttrs", "invokePromise", "settings", "Settings", "tracePanelDebug", "branches", "commits", "spanTree", "details", "useExecutionGraph", "traceMessages", "useTraceMessages", "env", "DEV", "debugGlobal", "globalThis", "dxosDumpTrace", "data", "map", "message", "meta", "isEphemeral", "events", "json", "JSON", "stringify", "console", "log", "navigator", "clipboard", "writeText", "length", "selectedCommit", "setSelectedCommit", "handleCommitSelect", "commit", "link", "echoUri", "tryParse", "spaceId", "getSpaceId", "undefined", "objectId", "getEntityId", "Open", "subject", "currentBranch", "setCurrentBranch", "handleProcessSelect", "process", "branch", "find", "pid", "toString", "div", "classNames", "ref", "ProcessTreeContainer", "onProcessSelect", "Root", "pin", "Content", "thin", "Fade", "Viewport", "Code", "className", "compact", "onSelect", "ScrollDownButton", "id", "atomEmpty", "make", "eventLimit", "monitor", "ProcessMonitor", "processesAtom", "processTreeAtom", "atom", "getExecutionGraph", "getTraceMessagesAtom", "db", "query", "feeds", "type", "Message", "from", "select", "nothing", "get", "activeProcesses", "debounce", "millis", "processes", "array", "filter", "state", "State", "RUNNING", "HYBERNATING", "struct", "displayName", "processesDeferred", "TracePanel"]
7
+ }