@dxos/plugin-assistant 0.9.1-staging.ee54ba693a → 0.11.0

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 (611) hide show
  1. package/PLUGIN.mdl +3 -28
  2. package/dist/lib/AssistantPlugin.mjs +2 -0
  3. package/dist/lib/AssistantPlugin.node.mjs +55 -0
  4. package/dist/lib/AssistantPlugin.node.mjs.map +1 -0
  5. package/dist/lib/AssistantPlugin.workerd.mjs +43 -0
  6. package/dist/lib/AssistantPlugin.workerd.mjs.map +1 -0
  7. package/dist/lib/capabilities.mjs +24 -0
  8. package/dist/lib/capabilities.mjs.map +1 -0
  9. package/dist/lib/chunk-AgentArticle.mjs +52 -0
  10. package/dist/lib/chunk-AgentArticle.mjs.map +1 -0
  11. package/dist/lib/chunk-AgentProperties.mjs +35 -0
  12. package/dist/lib/chunk-AgentProperties.mjs.map +1 -0
  13. package/dist/lib/chunk-AssistantPlugin.mjs +88 -0
  14. package/dist/lib/chunk-AssistantPlugin.mjs.map +1 -0
  15. package/dist/lib/chunk-AssistantSettings.mjs +285 -0
  16. package/dist/lib/chunk-AssistantSettings.mjs.map +1 -0
  17. package/dist/lib/chunk-ChatArticle.mjs +121 -0
  18. package/dist/lib/chunk-ChatArticle.mjs.map +1 -0
  19. package/dist/lib/chunk-ChatCompanion.mjs +116 -0
  20. package/dist/lib/chunk-ChatCompanion.mjs.map +1 -0
  21. package/dist/lib/chunk-ChatDialog.mjs +73 -0
  22. package/dist/lib/chunk-ChatDialog.mjs.map +1 -0
  23. package/dist/lib/chunk-IntegrationPrompt.mjs +73 -0
  24. package/dist/lib/chunk-IntegrationPrompt.mjs.map +1 -0
  25. package/dist/lib/chunk-SpaceHomePrompt.mjs +104 -0
  26. package/dist/lib/chunk-SpaceHomePrompt.mjs.map +1 -0
  27. package/dist/lib/chunk-SpaceHomeSuggestions.mjs +60 -0
  28. package/dist/lib/chunk-SpaceHomeSuggestions.mjs.map +1 -0
  29. package/dist/lib/chunk-TracePanel.mjs +127 -0
  30. package/dist/lib/chunk-TracePanel.mjs.map +1 -0
  31. package/dist/lib/chunk-TracePanel2.mjs +7 -0
  32. package/dist/lib/chunk-TracePanel2.mjs.map +1 -0
  33. package/dist/lib/chunk-TriggerStatus.mjs +72 -0
  34. package/dist/lib/chunk-TriggerStatus.mjs.map +1 -0
  35. package/dist/lib/chunk-agent-hydrator.mjs +22 -0
  36. package/dist/lib/chunk-agent-hydrator.mjs.map +1 -0
  37. package/dist/lib/chunk-agent-service.mjs +21 -0
  38. package/dist/lib/chunk-agent-service.mjs.map +1 -0
  39. package/dist/lib/{neutral/ai-context-LIKJYMIN.mjs → chunk-ai-context.mjs} +8 -12
  40. package/dist/lib/chunk-ai-context.mjs.map +1 -0
  41. package/dist/lib/chunk-ai-service.mjs +27 -0
  42. package/dist/lib/chunk-ai-service.mjs.map +1 -0
  43. package/dist/lib/chunk-app-graph-builder.mjs +179 -0
  44. package/dist/lib/chunk-app-graph-builder.mjs.map +1 -0
  45. package/dist/lib/chunk-automation-templates.mjs +99 -0
  46. package/dist/lib/chunk-automation-templates.mjs.map +1 -0
  47. package/dist/lib/chunk-companion-chat-provisioner.mjs +123 -0
  48. package/dist/lib/chunk-companion-chat-provisioner.mjs.map +1 -0
  49. package/dist/lib/chunk-connector.mjs +60 -0
  50. package/dist/lib/chunk-connector.mjs.map +1 -0
  51. package/dist/lib/chunk-constants.mjs +9 -0
  52. package/dist/lib/chunk-constants.mjs.map +1 -0
  53. package/dist/lib/chunk-context.mjs +7 -0
  54. package/dist/lib/chunk-context.mjs.map +1 -0
  55. package/dist/lib/chunk-create-chat.mjs +53 -0
  56. package/dist/lib/chunk-create-chat.mjs.map +1 -0
  57. package/dist/lib/chunk-create-object.mjs +70 -0
  58. package/dist/lib/chunk-create-object.mjs.map +1 -0
  59. package/dist/lib/chunk-edge-model-resolver.mjs +64 -0
  60. package/dist/lib/chunk-edge-model-resolver.mjs.map +1 -0
  61. package/dist/lib/chunk-ensure-companion-chat.mjs +49 -0
  62. package/dist/lib/chunk-ensure-companion-chat.mjs.map +1 -0
  63. package/dist/lib/chunk-extensions.mjs +78 -0
  64. package/dist/lib/chunk-extensions.mjs.map +1 -0
  65. package/dist/lib/chunk-fork-chat.mjs +83 -0
  66. package/dist/lib/chunk-fork-chat.mjs.map +1 -0
  67. package/dist/lib/chunk-generate-home-suggestions.mjs +71 -0
  68. package/dist/lib/chunk-generate-home-suggestions.mjs.map +1 -0
  69. package/dist/lib/chunk-local-model-resolver.mjs +25 -0
  70. package/dist/lib/chunk-local-model-resolver.mjs.map +1 -0
  71. package/dist/lib/chunk-markdown-extension.mjs +27 -0
  72. package/dist/lib/chunk-markdown-extension.mjs.map +1 -0
  73. package/dist/lib/{neutral/chunk-L7AR4VTA.mjs → chunk-meta.mjs} +20 -25
  74. package/dist/lib/chunk-meta.mjs.map +1 -0
  75. package/dist/lib/chunk-operation-handler.mjs +13 -0
  76. package/dist/lib/chunk-operation-handler.mjs.map +1 -0
  77. package/dist/lib/chunk-paths.mjs +8 -0
  78. package/dist/lib/chunk-paths.mjs.map +1 -0
  79. package/dist/lib/chunk-processor.mjs +432 -0
  80. package/dist/lib/chunk-processor.mjs.map +1 -0
  81. package/dist/lib/chunk-react-surface.mjs +177 -0
  82. package/dist/lib/chunk-react-surface.mjs.map +1 -0
  83. package/dist/lib/chunk-run-prompt-in-new-chat.mjs +96 -0
  84. package/dist/lib/chunk-run-prompt-in-new-chat.mjs.map +1 -0
  85. package/dist/lib/chunk-set-current-chat.mjs +43 -0
  86. package/dist/lib/chunk-set-current-chat.mjs.map +1 -0
  87. package/dist/lib/chunk-settings.mjs +23 -0
  88. package/dist/lib/chunk-settings.mjs.map +1 -0
  89. package/dist/lib/chunk-skill-definition.mjs +42 -0
  90. package/dist/lib/chunk-skill-definition.mjs.map +1 -0
  91. package/dist/lib/chunk-skills.mjs +19 -0
  92. package/dist/lib/chunk-skills.mjs.map +1 -0
  93. package/dist/lib/chunk-state.mjs +32 -0
  94. package/dist/lib/chunk-state.mjs.map +1 -0
  95. package/dist/lib/chunk-toggle-trace-panel-debug.mjs +18 -0
  96. package/dist/lib/chunk-toggle-trace-panel-debug.mjs.map +1 -0
  97. package/dist/lib/chunk-toolkit.mjs +12 -0
  98. package/dist/lib/chunk-toolkit.mjs.map +1 -0
  99. package/dist/lib/chunk-types.mjs +332 -0
  100. package/dist/lib/chunk-types.mjs.map +1 -0
  101. package/dist/lib/chunk-update-chat-name.mjs +63 -0
  102. package/dist/lib/chunk-update-chat-name.mjs.map +1 -0
  103. package/dist/lib/components.mjs +2616 -0
  104. package/dist/lib/components.mjs.map +1 -0
  105. package/dist/lib/containers.mjs +17 -0
  106. package/dist/lib/containers.mjs.map +1 -0
  107. package/dist/lib/execution-graph.mjs +961 -0
  108. package/dist/lib/execution-graph.mjs.map +1 -0
  109. package/dist/lib/extensions.mjs +2 -0
  110. package/dist/lib/hooks.mjs +674 -0
  111. package/dist/lib/hooks.mjs.map +1 -0
  112. package/dist/lib/index.mjs +5 -0
  113. package/dist/lib/meta.mjs +2 -0
  114. package/dist/lib/operations.mjs +7 -0
  115. package/dist/lib/operations.mjs.map +1 -0
  116. package/dist/lib/plugin.mjs +9 -0
  117. package/dist/lib/plugin.mjs.map +1 -0
  118. package/dist/lib/plugin.workerd.mjs +2 -0
  119. package/dist/lib/skills.mjs +2 -0
  120. package/dist/lib/testing.mjs +2 -0
  121. package/dist/lib/translations.mjs +207 -0
  122. package/dist/lib/translations.mjs.map +1 -0
  123. package/dist/lib/types.mjs +2 -0
  124. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  125. package/dist/types/src/AssistantPlugin.node.d.ts.map +1 -1
  126. package/dist/types/src/AssistantPlugin.workerd.d.ts.map +1 -1
  127. package/dist/types/src/capabilities/AssistantSurfaces.d.ts +22 -0
  128. package/dist/types/src/capabilities/AssistantSurfaces.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/agent-hydrator.d.ts +1 -1
  130. package/dist/types/src/capabilities/agent-service.d.ts +1 -1
  131. package/dist/types/src/capabilities/agent-service.d.ts.map +1 -1
  132. package/dist/types/src/capabilities/ai-context.d.ts +1 -1
  133. package/dist/types/src/capabilities/ai-service.d.ts +1 -1
  134. package/dist/types/src/capabilities/app-graph-builder.d.ts +12 -1
  135. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  136. package/dist/types/src/capabilities/automation-templates.d.ts +1 -1
  137. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts +1 -1
  138. package/dist/types/src/capabilities/connector.d.ts +1 -1
  139. package/dist/types/src/capabilities/create-object.d.ts +1 -1
  140. package/dist/types/src/capabilities/edge-model-resolver.d.ts +1 -1
  141. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
  142. package/dist/types/src/capabilities/index.d.ts +0 -2
  143. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  144. package/dist/types/src/capabilities/local-model-resolver.d.ts +1 -1
  145. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
  146. package/dist/types/src/capabilities/markdown-extension.d.ts +1 -1
  147. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  148. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  149. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  150. package/dist/types/src/capabilities/settings.d.ts +1 -1
  151. package/dist/types/src/capabilities/skill-definition.d.ts.map +1 -1
  152. package/dist/types/src/capabilities/standalone-chats-query.test.d.ts +2 -0
  153. package/dist/types/src/capabilities/standalone-chats-query.test.d.ts.map +1 -0
  154. package/dist/types/src/capabilities/state.d.ts +1 -1
  155. package/dist/types/src/capabilities/toolkit.d.ts +1 -1
  156. package/dist/types/src/components/AgentProperties/AgentProperties.d.ts +4 -1
  157. package/dist/types/src/components/AgentProperties/AgentProperties.d.ts.map +1 -1
  158. package/dist/types/src/components/AgentProperties/AgentProperties.stories.d.ts.map +1 -1
  159. package/dist/types/src/components/Chat/Chat.d.ts +21 -8
  160. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  161. package/dist/types/src/components/Chat/{Chat.stories.d.ts → Error.stories.d.ts} +1 -1
  162. package/dist/types/src/components/Chat/Error.stories.d.ts.map +1 -0
  163. package/dist/types/src/components/Chat/context.d.ts +8 -0
  164. package/dist/types/src/components/Chat/context.d.ts.map +1 -1
  165. package/dist/types/src/components/Chat/events.d.ts +5 -0
  166. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  167. package/dist/types/src/components/Chat/thread.d.ts +42 -0
  168. package/dist/types/src/components/Chat/thread.d.ts.map +1 -0
  169. package/dist/types/src/components/Chat/thread.test.d.ts +2 -0
  170. package/dist/types/src/components/Chat/thread.test.d.ts.map +1 -0
  171. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  172. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -1
  173. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts +5 -3
  174. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts.map +1 -1
  175. package/dist/types/src/components/ChatPrompt/index.d.ts +0 -1
  176. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
  177. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts.map +1 -1
  178. package/dist/types/src/components/ChatThread/ChatThread.d.ts +8 -3
  179. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  180. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +30 -2
  181. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  182. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
  183. package/dist/types/src/components/ChatThread/index.d.ts +1 -0
  184. package/dist/types/src/components/ChatThread/index.d.ts.map +1 -1
  185. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  186. package/dist/types/src/components/ChatThread/sync/index.d.ts +3 -0
  187. package/dist/types/src/components/ChatThread/sync/index.d.ts.map +1 -0
  188. package/dist/types/src/components/ChatThread/{sync.d.ts → sync/sync.d.ts} +46 -2
  189. package/dist/types/src/components/ChatThread/sync/sync.d.ts.map +1 -0
  190. package/dist/types/src/components/ChatThread/sync/sync.test.d.ts.map +1 -0
  191. package/dist/types/src/components/ChatThread/sync/tool-widget-state.d.ts.map +1 -0
  192. package/dist/types/src/components/ChatThread/sync/tool-widget-state.test.d.ts.map +1 -0
  193. package/dist/types/src/components/ChatThread/widgets/BranchWidget.d.ts +15 -0
  194. package/dist/types/src/components/ChatThread/widgets/BranchWidget.d.ts.map +1 -0
  195. package/dist/types/src/components/ChatThread/widgets/BranchWidget.stories.d.ts +21 -0
  196. package/dist/types/src/components/ChatThread/widgets/BranchWidget.stories.d.ts.map +1 -0
  197. package/dist/types/src/components/ChatThread/widgets/BranchWidget.test.d.ts +2 -0
  198. package/dist/types/src/components/ChatThread/widgets/BranchWidget.test.d.ts.map +1 -0
  199. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts.map +1 -1
  200. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts.map +1 -1
  201. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts +1 -2
  202. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts.map +1 -1
  203. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts +6 -0
  204. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts.map +1 -1
  205. package/dist/types/src/components/ChatThread/widgets/format-time.d.ts +2 -0
  206. package/dist/types/src/components/ChatThread/widgets/format-time.d.ts.map +1 -0
  207. package/dist/types/src/components/ChatThread/widgets/index.d.ts +4 -1
  208. package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -1
  209. package/dist/types/src/components/ChatThread/widgets/is-tool-message.d.ts +3 -0
  210. package/dist/types/src/components/ChatThread/widgets/is-tool-message.d.ts.map +1 -0
  211. package/dist/types/src/components/ConnectorAuthMenu/ConnectorAuthMenu.d.ts +16 -0
  212. package/dist/types/src/components/ConnectorAuthMenu/ConnectorAuthMenu.d.ts.map +1 -0
  213. package/dist/types/src/components/ConnectorAuthMenu/ConnectorAuthMenu.stories.d.ts +210 -0
  214. package/dist/types/src/components/ConnectorAuthMenu/ConnectorAuthMenu.stories.d.ts.map +1 -0
  215. package/dist/types/src/components/ConnectorAuthMenu/index.d.ts +2 -0
  216. package/dist/types/src/components/ConnectorAuthMenu/index.d.ts.map +1 -0
  217. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +1 -1
  218. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
  219. package/dist/types/src/components/TaskList/TaskList.d.ts +9 -11
  220. package/dist/types/src/components/TaskList/TaskList.d.ts.map +1 -1
  221. package/dist/types/src/components/TaskList/TaskList.stories.d.ts +3 -4
  222. package/dist/types/src/components/TaskList/TaskList.stories.d.ts.map +1 -1
  223. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +1 -2
  224. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  225. package/dist/types/src/components/ToolBlock/index.d.ts +1 -0
  226. package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -1
  227. package/dist/types/src/components/ToolBlock/is-tool-message.d.ts +3 -0
  228. package/dist/types/src/components/ToolBlock/is-tool-message.d.ts.map +1 -0
  229. package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -1
  230. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  231. package/dist/types/src/components/index.d.ts +1 -0
  232. package/dist/types/src/components/index.d.ts.map +1 -1
  233. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts +5 -2
  234. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -1
  235. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -1
  236. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts +4 -1
  237. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts.map +1 -1
  238. package/dist/types/src/containers/AssistantSettings/AssistantSettings.d.ts +4 -1
  239. package/dist/types/src/containers/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  240. package/dist/types/src/containers/AssistantSettings/AssistantSettings.stories.d.ts +4 -1
  241. package/dist/types/src/containers/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -1
  242. package/dist/types/src/containers/AssistantSettings/OllamaModels.d.ts +4 -6
  243. package/dist/types/src/containers/AssistantSettings/OllamaModels.d.ts.map +1 -1
  244. package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -1
  245. package/dist/types/src/containers/ChatArticle/ChatArticle.stories.d.ts +22 -1
  246. package/dist/types/src/containers/ChatArticle/ChatArticle.stories.d.ts.map +1 -1
  247. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -1
  248. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts +4 -1
  249. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -1
  250. package/dist/types/src/containers/IntegrationPrompt/IntegrationPrompt.d.ts +4 -7
  251. package/dist/types/src/containers/IntegrationPrompt/IntegrationPrompt.d.ts.map +1 -1
  252. package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts +4 -9
  253. package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts.map +1 -1
  254. package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts +5 -7
  255. package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts.map +1 -1
  256. package/dist/types/src/containers/TracePanel/TracePanel.d.ts +1 -1
  257. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -1
  258. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -1
  259. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +15 -1
  260. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -1
  261. package/dist/types/src/containers/index.d.ts +0 -1
  262. package/dist/types/src/containers/index.d.ts.map +1 -1
  263. package/dist/types/src/execution-graph/execution-graph.d.ts +12 -1
  264. package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -1
  265. package/dist/types/src/execution-graph/index.d.ts +1 -1
  266. package/dist/types/src/execution-graph/index.d.ts.map +1 -1
  267. package/dist/types/src/execution-graph/pending-block-status.d.ts.map +1 -1
  268. package/dist/types/src/execution-graph/span-tree.d.ts +17 -0
  269. package/dist/types/src/execution-graph/span-tree.d.ts.map +1 -1
  270. package/dist/types/src/feed-logger.d.ts +1 -1
  271. package/dist/types/src/feed-logger.d.ts.map +1 -1
  272. package/dist/types/src/hooks/index.d.ts +1 -1
  273. package/dist/types/src/hooks/index.d.ts.map +1 -1
  274. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  275. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -1
  276. package/dist/types/src/hooks/useContextObjects.d.ts +1 -1
  277. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  278. package/dist/types/src/hooks/useSelectionContext.d.ts +13 -0
  279. package/dist/types/src/hooks/useSelectionContext.d.ts.map +1 -0
  280. package/dist/types/src/hooks/useSelectionContext.test.d.ts +2 -0
  281. package/dist/types/src/hooks/useSelectionContext.test.d.ts.map +1 -0
  282. package/dist/types/src/hooks/useTraceMessages.d.ts.map +1 -1
  283. package/dist/types/src/operations/index.d.ts.map +1 -1
  284. package/dist/types/src/processor/index.d.ts +1 -0
  285. package/dist/types/src/processor/index.d.ts.map +1 -1
  286. package/dist/types/src/processor/processor.d.ts +5 -2
  287. package/dist/types/src/processor/processor.d.ts.map +1 -1
  288. package/dist/types/src/processor/prompt.d.ts +18 -0
  289. package/dist/types/src/processor/prompt.d.ts.map +1 -0
  290. package/dist/types/src/processor/prompt.test.d.ts +2 -0
  291. package/dist/types/src/processor/prompt.test.d.ts.map +1 -0
  292. package/dist/types/src/processor/streaming.node.test.d.ts +2 -0
  293. package/dist/types/src/processor/streaming.node.test.d.ts.map +1 -0
  294. package/dist/types/src/skills/assistant/skill.d.ts.map +1 -1
  295. package/dist/types/src/templates/scaffold.d.ts +1 -1
  296. package/dist/types/src/templates/scaffold.d.ts.map +1 -1
  297. package/dist/types/src/translations.d.ts.map +1 -1
  298. package/dist/types/src/types/AssistantCapabilities.d.ts +1 -1
  299. package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -1
  300. package/dist/types/src/types/AssistantOperation.d.ts +2 -13
  301. package/dist/types/src/types/AssistantOperation.d.ts.map +1 -1
  302. package/dist/types/src/types/ChatSurface.d.ts +2 -2
  303. package/dist/types/src/types/ChatSurface.d.ts.map +1 -1
  304. package/dist/types/src/types/Ollama.d.ts +1 -1
  305. package/dist/types/src/types/Ollama.d.ts.map +1 -1
  306. package/dist/types/tsconfig.tsbuildinfo +1 -1
  307. package/dx.config.ts +1 -0
  308. package/package.json +106 -105
  309. package/src/AssistantPlugin.node.ts +1 -2
  310. package/src/AssistantPlugin.test.ts +60 -62
  311. package/src/AssistantPlugin.ts +1 -10
  312. package/src/AssistantPlugin.workerd.ts +1 -2
  313. package/src/capabilities/AssistantSurfaces.tsx +86 -0
  314. package/src/capabilities/agent-service.ts +1 -1
  315. package/src/capabilities/app-graph-builder.ts +31 -17
  316. package/src/capabilities/companion-chat-provisioner.ts +12 -11
  317. package/src/capabilities/connector.ts +3 -3
  318. package/src/capabilities/edge-model-resolver.ts +5 -2
  319. package/src/capabilities/index.ts +0 -2
  320. package/src/capabilities/react-surface.ts +135 -0
  321. package/src/capabilities/skill-definition.ts +4 -0
  322. package/src/capabilities/standalone-chats-query.test.ts +51 -0
  323. package/src/capabilities/state.ts +1 -1
  324. package/src/components/AgentProperties/AgentProperties.stories.tsx +6 -7
  325. package/src/components/AgentProperties/AgentProperties.tsx +37 -30
  326. package/src/components/Chat/Chat.tsx +275 -59
  327. package/src/components/Chat/{Chat.stories.tsx → Error.stories.tsx} +1 -1
  328. package/src/components/Chat/context.ts +8 -0
  329. package/src/components/Chat/events.ts +5 -0
  330. package/src/components/Chat/thread.test.ts +127 -0
  331. package/src/components/Chat/thread.ts +87 -0
  332. package/src/components/ChatPrompt/ChatActions.tsx +8 -8
  333. package/src/components/ChatPrompt/ChatMcpErrors.tsx +2 -2
  334. package/src/components/ChatPrompt/ChatOptions.stories.tsx +2 -1
  335. package/src/components/ChatPrompt/ChatOptions.tsx +5 -5
  336. package/src/components/ChatPrompt/ChatPrompt.tsx +33 -6
  337. package/src/components/ChatPrompt/index.ts +0 -1
  338. package/src/components/ChatThread/Anchor.stories.tsx +2 -1
  339. package/src/components/ChatThread/ChatThread.stories.tsx +99 -4
  340. package/src/components/ChatThread/ChatThread.tsx +34 -6
  341. package/src/components/ChatThread/Link.tsx +1 -0
  342. package/src/components/ChatThread/index.ts +2 -0
  343. package/src/components/ChatThread/registry.tsx +28 -4
  344. package/src/components/ChatThread/sync/index.ts +6 -0
  345. package/src/components/ChatThread/{sync.test.ts → sync/sync.test.ts} +167 -7
  346. package/src/components/ChatThread/{sync.ts → sync/sync.ts} +97 -3
  347. package/src/components/ChatThread/{tool-widget-state.ts → sync/tool-widget-state.ts} +1 -3
  348. package/src/components/ChatThread/widgets/BranchWidget.stories.tsx +83 -0
  349. package/src/components/ChatThread/widgets/BranchWidget.test.ts +55 -0
  350. package/src/components/ChatThread/widgets/BranchWidget.tsx +61 -0
  351. package/src/components/ChatThread/widgets/FallbackWidget.tsx +2 -2
  352. package/src/components/ChatThread/widgets/ReasoningWidget.ts +1 -1
  353. package/src/components/ChatThread/widgets/ReferenceWidget.ts +1 -6
  354. package/src/components/ChatThread/widgets/SuggestionWidget.ts +12 -3
  355. package/src/components/ChatThread/widgets/SummaryWidget.tsx +1 -1
  356. package/src/components/ChatThread/widgets/ToolWidget.tsx +15 -9
  357. package/src/components/ChatThread/widgets/defaults.ts +7 -1
  358. package/src/components/ChatThread/widgets/format-time.ts +45 -0
  359. package/src/components/ChatThread/widgets/index.ts +4 -1
  360. package/src/components/ChatThread/widgets/is-tool-message.ts +13 -0
  361. package/src/components/ConnectorAuthMenu/ConnectorAuthMenu.stories.tsx +177 -0
  362. package/src/components/ConnectorAuthMenu/ConnectorAuthMenu.tsx +82 -0
  363. package/src/components/ConnectorAuthMenu/index.ts +5 -0
  364. package/src/components/ProcessTree/ProcessTree.stories.tsx +1 -1
  365. package/src/components/TaskList/TaskList.stories.tsx +19 -26
  366. package/src/components/TaskList/TaskList.tsx +32 -104
  367. package/src/components/ToolBlock/ToolBlock.tsx +1 -5
  368. package/src/components/ToolBlock/index.ts +1 -0
  369. package/src/components/ToolBlock/is-tool-message.ts +13 -0
  370. package/src/components/Toolbox/Toolbox.tsx +1 -1
  371. package/src/components/index.ts +1 -0
  372. package/src/containers/AgentArticle/AgentArticle.stories.tsx +18 -11
  373. package/src/containers/AgentArticle/AgentArticle.tsx +27 -151
  374. package/src/containers/AgentProperties/AgentProperties.tsx +21 -17
  375. package/src/containers/AssistantSettings/AssistantSettings.tsx +2 -0
  376. package/src/containers/AssistantSettings/OllamaModels.tsx +6 -4
  377. package/src/containers/ChatArticle/ChatArticle.stories.tsx +200 -27
  378. package/src/containers/ChatArticle/ChatArticle.tsx +25 -5
  379. package/src/containers/ChatCompanion/ChatCompanion.tsx +45 -10
  380. package/src/containers/ChatDialog/ChatDialog.tsx +4 -1
  381. package/src/containers/IntegrationPrompt/IntegrationPrompt.tsx +9 -6
  382. package/src/containers/SpaceHomePrompt/SpaceHomePrompt.tsx +2 -0
  383. package/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.tsx +40 -39
  384. package/src/containers/TracePanel/TracePanel.stories.tsx +9 -4
  385. package/src/containers/TracePanel/TracePanel.tsx +22 -6
  386. package/src/containers/TriggerStatus/TriggerStatus.tsx +9 -16
  387. package/src/containers/index.ts +0 -1
  388. package/src/execution-graph/SPEC.md +60 -2
  389. package/src/execution-graph/execution-graph.ts +15 -2
  390. package/src/execution-graph/index.ts +1 -0
  391. package/src/execution-graph/pending-block-status.ts +3 -2
  392. package/src/execution-graph/span-tree.test.ts +87 -1
  393. package/src/execution-graph/span-tree.ts +95 -0
  394. package/src/feed-logger.ts +6 -6
  395. package/src/hooks/index.ts +1 -1
  396. package/src/hooks/useChatProcessor.ts +2 -1
  397. package/src/hooks/useChatToolbarActions.ts +22 -19
  398. package/src/hooks/useContextObjects.ts +9 -3
  399. package/src/hooks/useSelectionContext.test.ts +93 -0
  400. package/src/hooks/useSelectionContext.ts +72 -0
  401. package/src/hooks/useSkillRegistry.ts +1 -1
  402. package/src/hooks/useTraceMessages.ts +5 -3
  403. package/src/operations/create-chat.ts +2 -2
  404. package/src/operations/fork-chat.ts +2 -2
  405. package/src/operations/generate-home-suggestions.test.ts +2 -2
  406. package/src/operations/index.ts +0 -1
  407. package/src/operations/prompt.node.test.ts +1 -1
  408. package/src/paths.ts +3 -3
  409. package/src/processor/index.ts +1 -0
  410. package/src/processor/processor.node.test.ts +1 -1
  411. package/src/processor/processor.ts +33 -5
  412. package/src/processor/prompt.test.ts +37 -0
  413. package/src/processor/prompt.ts +42 -0
  414. package/src/processor/streaming.node.test.ts +196 -0
  415. package/src/skills/assistant/skill.node.test.ts +2 -2
  416. package/src/skills/assistant/skill.ts +3 -5
  417. package/src/templates/routine-templates.test.ts +1 -2
  418. package/src/templates/scaffold.ts +3 -3
  419. package/src/testing/data/trace-timeline-multiple.dx.json +1 -1
  420. package/src/testing/data/trace-timeline-remote.dx.json +1 -1
  421. package/src/testing/data/trace-timeline.dx.json +1 -2
  422. package/src/testing/trace-timeline.node.test.ts +3 -3
  423. package/src/translations.ts +11 -10
  424. package/src/types/AssistantCapabilities.ts +1 -1
  425. package/src/types/AssistantOperation.ts +8 -31
  426. package/src/types/ChatSurface.ts +3 -3
  427. package/src/types/Ollama.ts +1 -1
  428. package/dist/lib/neutral/AgentArticle-GV6EEW3I.mjs +0 -161
  429. package/dist/lib/neutral/AgentArticle-GV6EEW3I.mjs.map +0 -7
  430. package/dist/lib/neutral/AgentProperties-LFTEYJ54.mjs +0 -40
  431. package/dist/lib/neutral/AgentProperties-LFTEYJ54.mjs.map +0 -7
  432. package/dist/lib/neutral/AssistantPlugin.mjs +0 -10
  433. package/dist/lib/neutral/AssistantPlugin.mjs.map +0 -7
  434. package/dist/lib/neutral/AssistantPlugin.node.mjs +0 -72
  435. package/dist/lib/neutral/AssistantPlugin.node.mjs.map +0 -7
  436. package/dist/lib/neutral/AssistantPlugin.workerd.mjs +0 -13
  437. package/dist/lib/neutral/AssistantPlugin.workerd.mjs.map +0 -7
  438. package/dist/lib/neutral/AssistantSettings-3N5M5VCN.mjs +0 -302
  439. package/dist/lib/neutral/AssistantSettings-3N5M5VCN.mjs.map +0 -7
  440. package/dist/lib/neutral/ChatArticle-OO7GGEFW.mjs +0 -8
  441. package/dist/lib/neutral/ChatArticle-OO7GGEFW.mjs.map +0 -7
  442. package/dist/lib/neutral/ChatCompanion-GIFJRY6I.mjs +0 -128
  443. package/dist/lib/neutral/ChatCompanion-GIFJRY6I.mjs.map +0 -7
  444. package/dist/lib/neutral/ChatDialog-5MXN4MXS.mjs +0 -74
  445. package/dist/lib/neutral/ChatDialog-5MXN4MXS.mjs.map +0 -7
  446. package/dist/lib/neutral/IntegrationPrompt-2HJQFYJE.mjs +0 -72
  447. package/dist/lib/neutral/IntegrationPrompt-2HJQFYJE.mjs.map +0 -7
  448. package/dist/lib/neutral/PlanArticle-VPK2IYWU.mjs +0 -34
  449. package/dist/lib/neutral/PlanArticle-VPK2IYWU.mjs.map +0 -7
  450. package/dist/lib/neutral/SpaceHomePrompt-ISAB76LD.mjs +0 -114
  451. package/dist/lib/neutral/SpaceHomePrompt-ISAB76LD.mjs.map +0 -7
  452. package/dist/lib/neutral/SpaceHomeSuggestions-IDH77QQR.mjs +0 -63
  453. package/dist/lib/neutral/SpaceHomeSuggestions-IDH77QQR.mjs.map +0 -7
  454. package/dist/lib/neutral/TracePanel-JKNWADJ4.mjs +0 -12
  455. package/dist/lib/neutral/TracePanel-JKNWADJ4.mjs.map +0 -7
  456. package/dist/lib/neutral/TriggerStatus-FURRBHYA.mjs +0 -95
  457. package/dist/lib/neutral/TriggerStatus-FURRBHYA.mjs.map +0 -7
  458. package/dist/lib/neutral/agent-hydrator-OBO3RHLO.mjs +0 -23
  459. package/dist/lib/neutral/agent-hydrator-OBO3RHLO.mjs.map +0 -7
  460. package/dist/lib/neutral/agent-service-XFJ4VQMT.mjs +0 -32
  461. package/dist/lib/neutral/agent-service-XFJ4VQMT.mjs.map +0 -7
  462. package/dist/lib/neutral/ai-context-LIKJYMIN.mjs.map +0 -7
  463. package/dist/lib/neutral/ai-service-DM6YXWUC.mjs +0 -44
  464. package/dist/lib/neutral/ai-service-DM6YXWUC.mjs.map +0 -7
  465. package/dist/lib/neutral/app-graph-builder-OPVOEQY7.mjs +0 -249
  466. package/dist/lib/neutral/app-graph-builder-OPVOEQY7.mjs.map +0 -7
  467. package/dist/lib/neutral/automation-templates-MADJLXGJ.mjs +0 -97
  468. package/dist/lib/neutral/automation-templates-MADJLXGJ.mjs.map +0 -7
  469. package/dist/lib/neutral/capabilities/index.mjs +0 -47
  470. package/dist/lib/neutral/capabilities/index.mjs.map +0 -7
  471. package/dist/lib/neutral/chunk-5IHQ52KJ.mjs +0 -9
  472. package/dist/lib/neutral/chunk-5IHQ52KJ.mjs.map +0 -7
  473. package/dist/lib/neutral/chunk-6Q4OBGIK.mjs +0 -420
  474. package/dist/lib/neutral/chunk-6Q4OBGIK.mjs.map +0 -7
  475. package/dist/lib/neutral/chunk-BXI2R4OO.mjs +0 -410
  476. package/dist/lib/neutral/chunk-BXI2R4OO.mjs.map +0 -7
  477. package/dist/lib/neutral/chunk-CMPLPDYE.mjs +0 -30
  478. package/dist/lib/neutral/chunk-CMPLPDYE.mjs.map +0 -7
  479. package/dist/lib/neutral/chunk-GPHT3HYS.mjs +0 -8
  480. package/dist/lib/neutral/chunk-GPHT3HYS.mjs.map +0 -7
  481. package/dist/lib/neutral/chunk-HKLSFB5I.mjs +0 -90
  482. package/dist/lib/neutral/chunk-HKLSFB5I.mjs.map +0 -7
  483. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  484. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  485. package/dist/lib/neutral/chunk-L7AR4VTA.mjs.map +0 -7
  486. package/dist/lib/neutral/chunk-LS72HWMM.mjs +0 -42
  487. package/dist/lib/neutral/chunk-LS72HWMM.mjs.map +0 -7
  488. package/dist/lib/neutral/chunk-OZWZGIV2.mjs +0 -12
  489. package/dist/lib/neutral/chunk-OZWZGIV2.mjs.map +0 -7
  490. package/dist/lib/neutral/chunk-QOKLFHUS.mjs +0 -13
  491. package/dist/lib/neutral/chunk-QOKLFHUS.mjs.map +0 -7
  492. package/dist/lib/neutral/chunk-SCTHQVIJ.mjs +0 -155
  493. package/dist/lib/neutral/chunk-SCTHQVIJ.mjs.map +0 -7
  494. package/dist/lib/neutral/chunk-U4LTLBAX.mjs +0 -56
  495. package/dist/lib/neutral/chunk-U4LTLBAX.mjs.map +0 -7
  496. package/dist/lib/neutral/chunk-UPKFUZ6V.mjs +0 -115
  497. package/dist/lib/neutral/chunk-UPKFUZ6V.mjs.map +0 -7
  498. package/dist/lib/neutral/chunk-V2Y4XE3O.mjs +0 -12
  499. package/dist/lib/neutral/chunk-V2Y4XE3O.mjs.map +0 -7
  500. package/dist/lib/neutral/chunk-VTK5R4H3.mjs +0 -9
  501. package/dist/lib/neutral/chunk-VTK5R4H3.mjs.map +0 -7
  502. package/dist/lib/neutral/chunk-XVGEJWJX.mjs +0 -133
  503. package/dist/lib/neutral/chunk-XVGEJWJX.mjs.map +0 -7
  504. package/dist/lib/neutral/companion-chat-provisioner-IQV5VIVE.mjs +0 -126
  505. package/dist/lib/neutral/companion-chat-provisioner-IQV5VIVE.mjs.map +0 -7
  506. package/dist/lib/neutral/components/index.mjs +0 -2527
  507. package/dist/lib/neutral/components/index.mjs.map +0 -7
  508. package/dist/lib/neutral/connector-ITLLTBPZ.mjs +0 -70
  509. package/dist/lib/neutral/connector-ITLLTBPZ.mjs.map +0 -7
  510. package/dist/lib/neutral/containers/index.mjs +0 -31
  511. package/dist/lib/neutral/containers/index.mjs.map +0 -7
  512. package/dist/lib/neutral/create-chat-YGVZZYGP.mjs +0 -56
  513. package/dist/lib/neutral/create-chat-YGVZZYGP.mjs.map +0 -7
  514. package/dist/lib/neutral/create-object-5PAEJ6KM.mjs +0 -76
  515. package/dist/lib/neutral/create-object-5PAEJ6KM.mjs.map +0 -7
  516. package/dist/lib/neutral/edge-model-resolver-WDJWDZTT.mjs +0 -55
  517. package/dist/lib/neutral/edge-model-resolver-WDJWDZTT.mjs.map +0 -7
  518. package/dist/lib/neutral/ensure-companion-chat-AMOF3C66.mjs +0 -58
  519. package/dist/lib/neutral/ensure-companion-chat-AMOF3C66.mjs.map +0 -7
  520. package/dist/lib/neutral/execution-graph/index.mjs +0 -977
  521. package/dist/lib/neutral/execution-graph/index.mjs.map +0 -7
  522. package/dist/lib/neutral/extensions/index.mjs +0 -8
  523. package/dist/lib/neutral/extensions/index.mjs.map +0 -7
  524. package/dist/lib/neutral/fork-chat-RMAAYYQF.mjs +0 -92
  525. package/dist/lib/neutral/fork-chat-RMAAYYQF.mjs.map +0 -7
  526. package/dist/lib/neutral/generate-home-suggestions-6MM2XWPV.mjs +0 -93
  527. package/dist/lib/neutral/generate-home-suggestions-6MM2XWPV.mjs.map +0 -7
  528. package/dist/lib/neutral/hooks/index.mjs +0 -877
  529. package/dist/lib/neutral/hooks/index.mjs.map +0 -7
  530. package/dist/lib/neutral/index.mjs +0 -42
  531. package/dist/lib/neutral/index.mjs.map +0 -7
  532. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs +0 -24
  533. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs.map +0 -7
  534. package/dist/lib/neutral/markdown-extension-R4TKDTIF.mjs +0 -41
  535. package/dist/lib/neutral/markdown-extension-R4TKDTIF.mjs.map +0 -7
  536. package/dist/lib/neutral/meta.json +0 -1
  537. package/dist/lib/neutral/meta.mjs +0 -12
  538. package/dist/lib/neutral/meta.mjs.map +0 -7
  539. package/dist/lib/neutral/migrations-7DEMVBOG.mjs +0 -28
  540. package/dist/lib/neutral/migrations-7DEMVBOG.mjs.map +0 -7
  541. package/dist/lib/neutral/navigation-resolver-PYGP2DAW.mjs +0 -18
  542. package/dist/lib/neutral/navigation-resolver-PYGP2DAW.mjs.map +0 -7
  543. package/dist/lib/neutral/operation-handler-2LEN45GP.mjs +0 -8
  544. package/dist/lib/neutral/operation-handler-2LEN45GP.mjs.map +0 -7
  545. package/dist/lib/neutral/operations/index.mjs +0 -8
  546. package/dist/lib/neutral/operations/index.mjs.map +0 -7
  547. package/dist/lib/neutral/plugin.mjs +0 -16
  548. package/dist/lib/neutral/plugin.mjs.map +0 -7
  549. package/dist/lib/neutral/plugin.workerd.mjs +0 -13
  550. package/dist/lib/neutral/plugin.workerd.mjs.map +0 -7
  551. package/dist/lib/neutral/react-surface-HEJEK44F.mjs +0 -171
  552. package/dist/lib/neutral/react-surface-HEJEK44F.mjs.map +0 -7
  553. package/dist/lib/neutral/resolve-navigation-targets-PBQ3OLUE.mjs +0 -28
  554. package/dist/lib/neutral/resolve-navigation-targets-PBQ3OLUE.mjs.map +0 -7
  555. package/dist/lib/neutral/run-prompt-in-new-chat-RNUJE2FM.mjs +0 -102
  556. package/dist/lib/neutral/run-prompt-in-new-chat-RNUJE2FM.mjs.map +0 -7
  557. package/dist/lib/neutral/set-current-chat-VWBPSIMZ.mjs +0 -48
  558. package/dist/lib/neutral/set-current-chat-VWBPSIMZ.mjs.map +0 -7
  559. package/dist/lib/neutral/settings-7Q3RITIT.mjs +0 -28
  560. package/dist/lib/neutral/settings-7Q3RITIT.mjs.map +0 -7
  561. package/dist/lib/neutral/skill-definition-553MQRTR.mjs +0 -8
  562. package/dist/lib/neutral/skill-definition-553MQRTR.mjs.map +0 -7
  563. package/dist/lib/neutral/skills/index.mjs +0 -8
  564. package/dist/lib/neutral/skills/index.mjs.map +0 -7
  565. package/dist/lib/neutral/state-4LGAKSSD.mjs +0 -34
  566. package/dist/lib/neutral/state-4LGAKSSD.mjs.map +0 -7
  567. package/dist/lib/neutral/testing.mjs +0 -8
  568. package/dist/lib/neutral/testing.mjs.map +0 -7
  569. package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs +0 -21
  570. package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs.map +0 -7
  571. package/dist/lib/neutral/toolkit-ETWLG5NT.mjs +0 -8
  572. package/dist/lib/neutral/toolkit-ETWLG5NT.mjs.map +0 -7
  573. package/dist/lib/neutral/translations.mjs +0 -217
  574. package/dist/lib/neutral/translations.mjs.map +0 -7
  575. package/dist/lib/neutral/types/index.mjs +0 -24
  576. package/dist/lib/neutral/types/index.mjs.map +0 -7
  577. package/dist/lib/neutral/update-chat-name-IJJELRR6.mjs +0 -61
  578. package/dist/lib/neutral/update-chat-name-IJJELRR6.mjs.map +0 -7
  579. package/dist/types/src/capabilities/migrations.d.ts +0 -5
  580. package/dist/types/src/capabilities/migrations.d.ts.map +0 -1
  581. package/dist/types/src/capabilities/navigation-resolver.d.ts +0 -5
  582. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +0 -1
  583. package/dist/types/src/components/Chat/Chat.stories.d.ts.map +0 -1
  584. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +0 -10
  585. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +0 -1
  586. package/dist/types/src/components/ChatThread/sync.d.ts.map +0 -1
  587. package/dist/types/src/components/ChatThread/sync.test.d.ts.map +0 -1
  588. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts.map +0 -1
  589. package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts.map +0 -1
  590. package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts +0 -6
  591. package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts.map +0 -1
  592. package/dist/types/src/containers/PlanArticle/index.d.ts +0 -2
  593. package/dist/types/src/containers/PlanArticle/index.d.ts.map +0 -1
  594. package/dist/types/src/hooks/useFlush.d.ts +0 -6
  595. package/dist/types/src/hooks/useFlush.d.ts.map +0 -1
  596. package/dist/types/src/operations/resolve-navigation-targets.d.ts +0 -5
  597. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +0 -1
  598. package/src/AssistantPlugin.conversations.json +0 -1
  599. package/src/capabilities/migrations.ts +0 -28
  600. package/src/capabilities/navigation-resolver.ts +0 -20
  601. package/src/capabilities/react-surface.tsx +0 -177
  602. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +0 -42
  603. package/src/components/ChatThread/DEBUG.md +0 -64
  604. package/src/containers/PlanArticle/PlanArticle.tsx +0 -37
  605. package/src/containers/PlanArticle/index.ts +0 -5
  606. package/src/hooks/useFlush.ts +0 -35
  607. package/src/operations/resolve-navigation-targets.ts +0 -44
  608. /package/dist/types/src/components/ChatThread/{sync.test.d.ts → sync/sync.test.d.ts} +0 -0
  609. /package/dist/types/src/components/ChatThread/{tool-widget-state.d.ts → sync/tool-widget-state.d.ts} +0 -0
  610. /package/dist/types/src/components/ChatThread/{tool-widget-state.test.d.ts → sync/tool-widget-state.test.d.ts} +0 -0
  611. /package/src/components/ChatThread/{tool-widget-state.test.ts → sync/tool-widget-state.test.ts} +0 -0
@@ -1,977 +0,0 @@
1
- import "../chunk-J5LGTIGS.mjs";
2
-
3
- // src/execution-graph/execution-graph.ts
4
- import * as Array from "effect/Array";
5
- import * as Either from "effect/Either";
6
- import { pipe } from "effect/Function";
7
- import * as Option from "effect/Option";
8
- import * as Pipeable from "effect/Pipeable";
9
- import * as Schema from "effect/Schema";
10
- import * as Struct from "effect/Struct";
11
- import { AgentRequestBegin as AgentRequestBegin2, AgentRequestEnd as AgentRequestEnd2, CompleteBlock } from "@dxos/assistant";
12
- import { Process, Trace as Trace2 } from "@dxos/compute";
13
- import { Annotation } from "@dxos/echo";
14
- import { AGENT_PROCESS_KEY } from "@dxos/functions-runtime";
15
- import { EID as EID2 } from "@dxos/keys";
16
- import { LogLevel, log } from "@dxos/log";
17
-
18
- // src/execution-graph/span-tree.ts
19
- import { AgentRequestBegin, AgentRequestEnd } from "@dxos/assistant";
20
- import { Trace } from "@dxos/compute";
21
- import { EID } from "@dxos/keys";
22
- var ROOT_SPAN_ID = "<main>";
23
- var BEGIN_EVENT_TYPES = /* @__PURE__ */ new Set([
24
- Trace.OperationStart.key,
25
- AgentRequestBegin.key
26
- ]);
27
- var END_EVENT_TYPES = /* @__PURE__ */ new Set([
28
- Trace.OperationEnd.key,
29
- AgentRequestEnd.key
30
- ]);
31
- var isSpanBeginEvent = (event) => BEGIN_EVENT_TYPES.has(event.type);
32
- var isSpanEndEvent = (event) => END_EVENT_TYPES.has(event.type);
33
- var computeMeta = (rawMeta) => ({
34
- pid: rawMeta.pid,
35
- parentPid: rawMeta.parentPid,
36
- processName: rawMeta.processName,
37
- conversationId: rawMeta.conversation ? EID.getEntityId(EID.parse(rawMeta.conversation.uri)) : void 0,
38
- triggerId: rawMeta.trigger ? EID.getEntityId(EID.parse(rawMeta.trigger.uri)) : void 0,
39
- toolCallId: rawMeta.toolCallId,
40
- runtimeName: rawMeta.runtimeName
41
- });
42
- var makeMutableSpan = (id, meta) => ({
43
- id,
44
- meta,
45
- events: [],
46
- children: [],
47
- firstTimestamp: Number.POSITIVE_INFINITY
48
- });
49
- var freezeSpan = (span) => ({
50
- id: span.id,
51
- meta: span.meta,
52
- events: span.events,
53
- children: span.children.map(freezeSpan)
54
- });
55
- var buildSpanTree = (messages, options = {}) => {
56
- const allEvents = messages.flatMap((message) => Trace.flatten(message));
57
- allEvents.sort((a, b) => a.timestamp - b.timestamp);
58
- const events = applyEventLimit(allEvents, options.eventLimit);
59
- const root = makeMutableSpan(ROOT_SPAN_ID, {});
60
- const openSpans = /* @__PURE__ */ new Map();
61
- const lastSpanByPid = /* @__PURE__ */ new Map();
62
- let spanCounter = 0;
63
- const allocSpanId = (pid) => {
64
- const id = `${pid}#${spanCounter}`;
65
- spanCounter += 1;
66
- return id;
67
- };
68
- const noteTimestamp = (span, timestamp) => {
69
- if (timestamp < span.firstTimestamp) {
70
- span.firstTimestamp = timestamp;
71
- }
72
- };
73
- for (const event of events) {
74
- const pid = event.meta.pid;
75
- if (!pid) {
76
- root.events.push(event);
77
- noteTimestamp(root, event.timestamp);
78
- continue;
79
- }
80
- if (BEGIN_EVENT_TYPES.has(event.type)) {
81
- const parentPid = event.meta.parentPid;
82
- const parent = parentPid && (openSpans.get(parentPid) ?? lastSpanByPid.get(parentPid)) || root;
83
- const span = makeMutableSpan(allocSpanId(pid), computeMeta(event.meta));
84
- span.events.push(event);
85
- noteTimestamp(span, event.timestamp);
86
- parent.children.push(span);
87
- openSpans.set(pid, span);
88
- lastSpanByPid.set(pid, span);
89
- continue;
90
- }
91
- if (END_EVENT_TYPES.has(event.type)) {
92
- const span = openSpans.get(pid);
93
- if (span) {
94
- span.events.push(event);
95
- noteTimestamp(span, event.timestamp);
96
- openSpans.delete(pid);
97
- } else {
98
- root.events.push(event);
99
- noteTimestamp(root, event.timestamp);
100
- }
101
- continue;
102
- }
103
- const open = openSpans.get(pid);
104
- if (open) {
105
- open.events.push(event);
106
- noteTimestamp(open, event.timestamp);
107
- } else {
108
- root.events.push(event);
109
- noteTimestamp(root, event.timestamp);
110
- }
111
- }
112
- const sortChildren = (span) => {
113
- span.children.sort((a, b) => a.firstTimestamp - b.firstTimestamp);
114
- for (const child of span.children) {
115
- sortChildren(child);
116
- }
117
- };
118
- sortChildren(root);
119
- return freezeSpan(root);
120
- };
121
- var applyEventLimit = (events, eventLimit) => {
122
- if (eventLimit === void 0) {
123
- return [
124
- ...events
125
- ];
126
- }
127
- let nonBoundaryCount = 0;
128
- for (const event of events) {
129
- if (!isBoundary(event)) {
130
- nonBoundaryCount += 1;
131
- }
132
- }
133
- if (nonBoundaryCount <= eventLimit) {
134
- return [
135
- ...events
136
- ];
137
- }
138
- const dropCount = nonBoundaryCount - eventLimit;
139
- let dropped = 0;
140
- const result = [];
141
- for (const event of events) {
142
- if (!isBoundary(event) && dropped < dropCount) {
143
- dropped += 1;
144
- continue;
145
- }
146
- result.push(event);
147
- }
148
- return result;
149
- };
150
- var isBoundary = (event) => BEGIN_EVENT_TYPES.has(event.type) || END_EVENT_TYPES.has(event.type);
151
- var walkSpanTree = (root, visit, depth = 0) => {
152
- visit(root, depth);
153
- for (const child of root.children) {
154
- walkSpanTree(child, visit, depth + 1);
155
- }
156
- };
157
- var flattenSpanTree = (root) => {
158
- const result = [];
159
- walkSpanTree(root, (span) => result.push(span));
160
- return result;
161
- };
162
-
163
- // src/execution-graph/execution-graph.ts
164
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/execution-graph/execution-graph.ts";
165
- var MAIN_BRANCH = "main";
166
- var SHIMMER_EFFECT_TAG = "effect:shimmer";
167
- var ICONS = {
168
- agentRequestBegin: {
169
- icon: "ph--atom--regular",
170
- level: LogLevel.VERBOSE
171
- },
172
- agentRequestEndSuccess: {
173
- icon: "ph--atom--regular",
174
- level: LogLevel.INFO
175
- },
176
- agentRequestEndError: {
177
- icon: "ph--atom--regular",
178
- level: LogLevel.ERROR
179
- },
180
- agentRequestEndInterrupted: {
181
- icon: "ph--atom--regular",
182
- level: LogLevel.WARN
183
- },
184
- userMessage: {
185
- icon: "ph--user--regular",
186
- level: LogLevel.VERBOSE
187
- },
188
- statusMessage: {
189
- icon: "ph--info--regular",
190
- level: LogLevel.VERBOSE
191
- },
192
- operationStart: {
193
- icon: "ph--function--regular",
194
- level: LogLevel.VERBOSE
195
- },
196
- operationEndSuccess: {
197
- icon: "ph--function--regular",
198
- level: LogLevel.INFO
199
- },
200
- operationEndError: {
201
- icon: "ph--function--regular",
202
- level: LogLevel.ERROR
203
- },
204
- toolCall: {
205
- icon: "ph--wrench--regular",
206
- level: LogLevel.VERBOSE
207
- },
208
- toolResultSuccess: {
209
- icon: "ph--wrench--regular",
210
- level: LogLevel.INFO
211
- },
212
- toolResultError: {
213
- icon: "ph--wrench--regular",
214
- level: LogLevel.ERROR
215
- },
216
- agentRequestRunning: {
217
- icon: "ph--spinner-gap--regular",
218
- level: LogLevel.VERBOSE
219
- },
220
- processRunning: {
221
- icon: "ph--spinner-gap--regular",
222
- level: LogLevel.VERBOSE
223
- }
224
- };
225
- var buildExecutionGraph = ({ traceMessages, activeProcesses = [], collapseCompletedSpans = false, eventLimit = 500 }) => {
226
- const spanTree = buildSpanTree(traceMessages, {
227
- eventLimit
228
- });
229
- const toolCallContext = buildToolCallContext(traceMessages);
230
- const built = spanTreeToCommits(spanTree, activeProcesses, toolCallContext, collapseCompletedSpans);
231
- log("trace execution graph", {
232
- traceMessages: traceMessages.length,
233
- commits: built.commits.length,
234
- branches: built.branches.length,
235
- activeProcesses: activeProcesses.length
236
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 86, S: void 0 });
237
- return {
238
- ...built,
239
- spanTree
240
- };
241
- };
242
- var buildToolCallContext = (messages) => {
243
- const callById = /* @__PURE__ */ new Map();
244
- const resultByCallId = /* @__PURE__ */ new Map();
245
- for (const message of messages) {
246
- for (const event of message.events) {
247
- if (event.type !== CompleteBlock.key) {
248
- continue;
249
- }
250
- const data = event.data;
251
- const block = data?.block;
252
- if (!block) {
253
- continue;
254
- }
255
- if (block._tag === "toolCall") {
256
- callById.set(block.toolCallId, block);
257
- } else if (block._tag === "toolResult") {
258
- resultByCallId.set(block.toolCallId, block);
259
- }
260
- }
261
- }
262
- return {
263
- callById,
264
- resultByCallId
265
- };
266
- };
267
- var parseAgentRequestEnd = (data) => {
268
- const validated = Schema.validateEither(AgentRequestEnd2.schema)(data);
269
- if (Either.isRight(validated)) {
270
- return validated.right;
271
- }
272
- if (data != null && typeof data === "object" && Object.keys(data).length === 0) {
273
- return {
274
- status: "success"
275
- };
276
- }
277
- log("invalid trace event", {
278
- type: AgentRequestEnd2.key
279
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 135, S: void 0 });
280
- return void 0;
281
- };
282
- var presentAgentRequestEnd = (data) => {
283
- switch (data.status) {
284
- case "error":
285
- return {
286
- icon: ICONS.agentRequestEndError.icon,
287
- level: ICONS.agentRequestEndError.level,
288
- message: data.error ? trimText(`Agent request failed: ${data.error}`) : "Agent request failed"
289
- };
290
- case "interrupted":
291
- return {
292
- icon: ICONS.agentRequestEndInterrupted.icon,
293
- level: ICONS.agentRequestEndInterrupted.level,
294
- message: "Agent request interrupted"
295
- };
296
- default:
297
- return {
298
- icon: ICONS.agentRequestEndSuccess.icon,
299
- level: ICONS.agentRequestEndSuccess.level,
300
- message: "Agent completed request"
301
- };
302
- }
303
- };
304
- var presentEvent = (event, toolCallContext) => {
305
- if (Trace2.isOfType(AgentRequestBegin2, event)) {
306
- if (Either.isLeft(Schema.validateEither(AgentRequestBegin2.schema)(event.data))) {
307
- log("invalid trace event", {
308
- type: event.type
309
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 165, S: void 0 });
310
- return void 0;
311
- }
312
- return {
313
- icon: ICONS.agentRequestBegin.icon,
314
- level: ICONS.agentRequestBegin.level,
315
- message: "Agent processing request..."
316
- };
317
- }
318
- if (Trace2.isOfType(AgentRequestEnd2, event)) {
319
- const endData = parseAgentRequestEnd(event.data);
320
- if (!endData) {
321
- return void 0;
322
- }
323
- return presentAgentRequestEnd(endData);
324
- }
325
- if (Trace2.isOfType(CompleteBlock, event)) {
326
- if (Either.isLeft(Schema.validateEither(CompleteBlock.schema)(event.data))) {
327
- log("invalid trace event", {
328
- type: event.type
329
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 185, S: void 0 });
330
- return void 0;
331
- }
332
- switch (event.data.block._tag) {
333
- case "text":
334
- return event.data.role === "user" ? {
335
- icon: ICONS.userMessage.icon,
336
- level: ICONS.userMessage.level,
337
- message: trimText(event.data.block.text)
338
- } : void 0;
339
- case "status":
340
- return {
341
- icon: ICONS.statusMessage.icon,
342
- level: ICONS.statusMessage.level,
343
- message: trimText(event.data.block.statusText)
344
- };
345
- case "toolCall": {
346
- if (event.data.block.operationKey) {
347
- return void 0;
348
- }
349
- if (toolCallContext.resultByCallId.has(event.data.block.toolCallId)) {
350
- return void 0;
351
- }
352
- return {
353
- icon: ICONS.toolCall.icon,
354
- level: ICONS.toolCall.level,
355
- message: event.data.block.name,
356
- idSuffix: `toolCall:${event.data.block.toolCallId}`
357
- };
358
- }
359
- case "toolResult": {
360
- const call = toolCallContext.callById.get(event.data.block.toolCallId);
361
- if (call?.operationKey) {
362
- return void 0;
363
- }
364
- const success = event.data.block.error === void 0;
365
- const name = call?.name ?? event.data.block.name;
366
- return {
367
- icon: success ? ICONS.toolResultSuccess.icon : ICONS.toolResultError.icon,
368
- level: success ? ICONS.toolResultSuccess.level : ICONS.toolResultError.level,
369
- message: `${name}${!success ? " - Error" : ""}`,
370
- idSuffix: `toolResult:${event.data.block.toolCallId}`
371
- };
372
- }
373
- default:
374
- return void 0;
375
- }
376
- }
377
- if (Trace2.isOfType(Trace2.OperationStart, event)) {
378
- if (Either.isLeft(Schema.validateEither(Trace2.OperationStart.schema)(event.data))) {
379
- log("invalid trace event", {
380
- type: event.type
381
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 247, S: void 0 });
382
- return void 0;
383
- }
384
- return {
385
- icon: event.data.icon ?? ICONS.operationStart.icon,
386
- level: ICONS.operationStart.level,
387
- message: event.data.name ?? event.data.key,
388
- idSuffix: `${event.data.key}:start`
389
- };
390
- }
391
- if (Trace2.isOfType(Trace2.OperationEnd, event)) {
392
- if (Either.isLeft(Schema.validateEither(Trace2.OperationEnd.schema)(event.data))) {
393
- log("invalid trace event", {
394
- type: event.type
395
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 261, S: void 0 });
396
- return void 0;
397
- }
398
- const success = event.data.outcome === "success";
399
- return {
400
- icon: event.data.icon ?? (success ? ICONS.operationEndSuccess.icon : ICONS.operationEndError.icon),
401
- level: success ? ICONS.operationEndSuccess.level : ICONS.operationEndError.level,
402
- message: `${event.data.name ?? event.data.key}${!success ? " - Error" : ""}`,
403
- idSuffix: `${event.data.key}:end`
404
- };
405
- }
406
- return void 0;
407
- };
408
- var collectProcessActivityLines = (messages, rootPid, options = {}) => {
409
- const { conversationId, eventLimit = 50 } = options;
410
- const descendantPids = collectDescendantPids(messages, rootPid);
411
- const filtered = messages.filter((message) => {
412
- const pid = message.meta.pid;
413
- if (!pid || !descendantPids.has(pid)) {
414
- return false;
415
- }
416
- const metaConvId = message.meta.conversation ? EID2.getEntityId(EID2.parse(message.meta.conversation.uri)) : void 0;
417
- if (conversationId && metaConvId !== void 0 && metaConvId !== conversationId) {
418
- return false;
419
- }
420
- return true;
421
- });
422
- const events = filtered.flatMap((message) => Trace2.flatten(message)).sort((left, right) => left.timestamp - right.timestamp).slice(-eventLimit);
423
- const toolCallContext = buildToolCallContext(filtered);
424
- const lines = [];
425
- for (const event of events) {
426
- const presentation = presentEvent(event, toolCallContext);
427
- if (presentation) {
428
- lines.push(presentation.message);
429
- }
430
- }
431
- return lines;
432
- };
433
- var deriveInFlightActivityLine = (messages, rootPid, options = {}) => {
434
- const { conversationId, eventLimit = 50 } = options;
435
- const descendantPids = collectDescendantPids(messages, rootPid);
436
- const filtered = messages.filter((message) => {
437
- const pid = message.meta.pid;
438
- if (!pid || !descendantPids.has(pid)) {
439
- return false;
440
- }
441
- const metaConvId = message.meta.conversation ? EID2.getEntityId(EID2.parse(message.meta.conversation.uri)) : void 0;
442
- if (conversationId && metaConvId !== void 0 && metaConvId !== conversationId) {
443
- return false;
444
- }
445
- return true;
446
- });
447
- const events = filtered.flatMap((message) => Trace2.flatten(message)).sort((left, right) => left.timestamp - right.timestamp).slice(-eventLimit);
448
- const openOperations = /* @__PURE__ */ new Map();
449
- let agentRequestOpen = false;
450
- let lastLine;
451
- for (const event of events) {
452
- const pid = event.meta.pid ?? rootPid;
453
- if (Trace2.isOfType(Trace2.OperationStart, event)) {
454
- const key = `${pid}:${event.data.key}`;
455
- const name = event.data.name ?? event.data.key;
456
- openOperations.set(key, {
457
- name,
458
- timestamp: event.timestamp
459
- });
460
- lastLine = `${name}...`;
461
- continue;
462
- }
463
- if (Trace2.isOfType(Trace2.OperationEnd, event)) {
464
- openOperations.delete(`${pid}:${event.data.key}`);
465
- continue;
466
- }
467
- if (Trace2.isOfType(AgentRequestBegin2, event)) {
468
- agentRequestOpen = true;
469
- lastLine = "Generating...";
470
- continue;
471
- }
472
- if (Trace2.isOfType(AgentRequestEnd2, event)) {
473
- agentRequestOpen = false;
474
- }
475
- }
476
- if (agentRequestOpen) {
477
- return "Generating...";
478
- }
479
- const latestOperation = [
480
- ...openOperations.values()
481
- ].sort((left, right) => right.timestamp - left.timestamp)[0];
482
- if (latestOperation) {
483
- return `${latestOperation.name}...`;
484
- }
485
- return lastLine;
486
- };
487
- var collectDescendantPids = (messages, rootPid) => {
488
- const pids = /* @__PURE__ */ new Set([
489
- rootPid
490
- ]);
491
- let expanded = true;
492
- while (expanded) {
493
- expanded = false;
494
- for (const message of messages) {
495
- const pid = message.meta.pid;
496
- const parentPid = message.meta.parentPid;
497
- if (pid && parentPid && pids.has(parentPid) && !pids.has(pid)) {
498
- pids.add(pid);
499
- expanded = true;
500
- }
501
- }
502
- }
503
- return pids;
504
- };
505
- var isPendingToolCallEvent = (event, toolCallContext) => {
506
- if (!Trace2.isOfType(CompleteBlock, event)) {
507
- return false;
508
- }
509
- if (event.data.block._tag !== "toolCall") {
510
- return false;
511
- }
512
- return !toolCallContext.resultByCallId.has(event.data.block.toolCallId);
513
- };
514
- var shouldShimmerInProgressCommit = (event, toolCallContext) => isPendingToolCallEvent(event, toolCallContext);
515
- var isCompletedSpan = (span) => {
516
- if (span.id === ROOT_SPAN_ID) {
517
- return false;
518
- }
519
- const lastEvent = span.events[span.events.length - 1];
520
- return lastEvent !== void 0 && isSpanEndEvent(lastEvent);
521
- };
522
- var isCollapsibleSpan = (span, parent, collapseCompletedSpans) => {
523
- if (span.id === ROOT_SPAN_ID) {
524
- return false;
525
- }
526
- if (parent === null) {
527
- return false;
528
- }
529
- if (span.events.length === 2 && span.children.length === 0) {
530
- const firstEvent = span.events[0];
531
- const lastEvent = span.events[span.events.length - 1];
532
- if (isSpanBeginEvent(firstEvent) && isSpanEndEvent(lastEvent)) {
533
- return true;
534
- }
535
- }
536
- if (collapseCompletedSpans && isCompletedSpan(span)) {
537
- return true;
538
- }
539
- return false;
540
- };
541
- var spanTreeToCommits = (root, activeProcesses, toolCallContext, collapseCompletedSpans) => {
542
- const builder = new GraphBuilder();
543
- const details = {};
544
- builder.addBranch(MAIN_BRANCH);
545
- const parentBySpan = /* @__PURE__ */ new Map();
546
- parentBySpan.set(root, null);
547
- const indexParents = (span) => {
548
- for (const child of span.children) {
549
- parentBySpan.set(child, span);
550
- indexParents(child);
551
- }
552
- };
553
- indexParents(root);
554
- const findParentSpan = (span) => parentBySpan.get(span) ?? null;
555
- const collapsedSpanIds = /* @__PURE__ */ new Set();
556
- walkSpanTree(root, (span) => {
557
- if (isCollapsibleSpan(span, findParentSpan(span), collapseCompletedSpans)) {
558
- collapsedSpanIds.add(span.id);
559
- }
560
- });
561
- const isUnderCollapsedAncestor = (span) => {
562
- let ancestor = findParentSpan(span);
563
- while (ancestor) {
564
- if (collapsedSpanIds.has(ancestor.id)) {
565
- return true;
566
- }
567
- ancestor = findParentSpan(ancestor);
568
- }
569
- return false;
570
- };
571
- const branchOf = (span) => {
572
- if (!span || span.id === ROOT_SPAN_ID) {
573
- return MAIN_BRANCH;
574
- }
575
- return span.meta.pid ?? span.id;
576
- };
577
- const beginCommitIdBySpan = /* @__PURE__ */ new Map();
578
- const lastInSpanContext = (span) => {
579
- if (!span || span.id === ROOT_SPAN_ID) {
580
- return CommitSelector.branch(MAIN_BRANCH).pipe(CommitSelector.compose(CommitSelector.last()));
581
- }
582
- const ownBranch = branchOf(span);
583
- const beginId = beginCommitIdBySpan.get(span.id);
584
- return CommitSelector.firstOf(CommitSelector.branch(ownBranch).pipe(CommitSelector.compose(CommitSelector.last())), beginId ? CommitSelector.id(beginId) : CommitSelector.filter(() => false), lastInSpanContext(findParentSpan(span)));
585
- };
586
- const lastCommitIdBySpan = /* @__PURE__ */ new Map();
587
- let globalIndex = 0;
588
- const insertedRunningPids = /* @__PURE__ */ new Set();
589
- const activeProcessByPid = new Map(activeProcesses.map((process) => [
590
- process.pid,
591
- process
592
- ]));
593
- const emitRunningIndicator = (pid) => {
594
- if (insertedRunningPids.has(pid)) {
595
- return;
596
- }
597
- const process = activeProcessByPid.get(pid);
598
- if (!process) {
599
- return;
600
- }
601
- if (process.key === AGENT_PROCESS_KEY && Option.isSome(Annotation.getDictionary(process.params.annotations, Process.TargetAnnotation)) && (process.state === Process.State.RUNNING || process.state === Process.State.HYBERNATING)) {
602
- builder.addCommit({
603
- id: `running:${process.pid}`,
604
- branch: process.pid,
605
- parents: builder.computeParents(CommitSelector.branch(process.pid).pipe(CommitSelector.compose(CommitSelector.last()))),
606
- icon: ICONS.agentRequestRunning.icon,
607
- level: ICONS.agentRequestRunning.level,
608
- message: "Generating...",
609
- timestamp: /* @__PURE__ */ new Date(),
610
- tags: [
611
- SHIMMER_EFFECT_TAG
612
- ]
613
- });
614
- insertedRunningPids.add(pid);
615
- } else if (process.state === Process.State.RUNNING && builder.hasBranch(process.pid)) {
616
- builder.addCommit({
617
- id: `running:${process.pid}`,
618
- branch: process.pid,
619
- parents: builder.computeParents(CommitSelector.branch(process.pid).pipe(CommitSelector.compose(CommitSelector.last()))),
620
- icon: ICONS.processRunning.icon,
621
- level: ICONS.processRunning.level,
622
- message: "Running...",
623
- timestamp: /* @__PURE__ */ new Date(),
624
- tags: [
625
- SHIMMER_EFFECT_TAG
626
- ]
627
- });
628
- insertedRunningPids.add(pid);
629
- }
630
- };
631
- const emitEventCommit = (span, event, eventIndex) => {
632
- const presentation = presentEvent(event, toolCallContext);
633
- if (!presentation) {
634
- return;
635
- }
636
- const isBeginEvent = isSpanBeginEvent(event);
637
- const isEndEvent = isSpanEndEvent(event);
638
- const parentSpan = findParentSpan(span);
639
- const collapsible = isCollapsibleSpan(span, parentSpan, collapseCompletedSpans);
640
- if (isUnderCollapsedAncestor(span)) {
641
- return;
642
- }
643
- if (collapsible && !isEndEvent) {
644
- return;
645
- }
646
- const parentBranch = branchOf(parentSpan);
647
- const ownBranch = branchOf(span);
648
- const ownPid = span.meta.pid;
649
- const parentPid = parentSpan?.meta.pid;
650
- const spanHasMiddle = span.events.some((spanEvent) => !isSpanBeginEvent(spanEvent) && !isSpanEndEvent(spanEvent));
651
- const isProcessBoundary = ownPid != null && parentPid != null && ownPid !== parentPid && spanHasMiddle;
652
- let branch;
653
- let parents;
654
- if (span.id === ROOT_SPAN_ID) {
655
- branch = MAIN_BRANCH;
656
- parents = builder.computeParents(lastInSpanContext(null));
657
- } else if (collapsible) {
658
- branch = parentBranch;
659
- parents = builder.computeParents(lastInSpanContext(parentSpan));
660
- } else if (isBeginEvent) {
661
- branch = isProcessBoundary ? ownBranch : parentBranch;
662
- parents = builder.computeParents(lastInSpanContext(parentSpan));
663
- } else if (isEndEvent) {
664
- branch = isProcessBoundary ? MAIN_BRANCH : parentBranch;
665
- parents = builder.computeParents(CommitSelector.unionAll(CommitSelector.branch(branch).pipe(CommitSelector.compose(CommitSelector.last())), CommitSelector.branch(ownBranch).pipe(CommitSelector.compose(CommitSelector.last()))));
666
- } else {
667
- branch = ownBranch;
668
- parents = builder.computeParents(lastInSpanContext(span));
669
- }
670
- const commitIndex = globalIndex++;
671
- const commitId = formatCommitId(span, commitIndex, presentation.idSuffix);
672
- const shimmer = shouldShimmerInProgressCommit(event, toolCallContext);
673
- const commit = {
674
- id: commitId,
675
- branch,
676
- parents,
677
- timestamp: new Date(event.timestamp),
678
- icon: presentation.icon,
679
- level: presentation.level,
680
- message: presentation.message,
681
- ...shimmer && {
682
- tags: [
683
- SHIMMER_EFFECT_TAG
684
- ]
685
- }
686
- };
687
- builder.addCommit(commit);
688
- details[commitId] = event;
689
- lastCommitIdBySpan.set(span.id, commitId);
690
- if (isBeginEvent && !collapsible && span.id !== ROOT_SPAN_ID) {
691
- beginCommitIdBySpan.set(span.id, commitId);
692
- }
693
- };
694
- const finishSpan = (span) => {
695
- const pid = span.meta.pid;
696
- if (pid) {
697
- emitRunningIndicator(Process.ID.make(pid));
698
- }
699
- if (span.id === ROOT_SPAN_ID || isCompletedSpan(span)) {
700
- return;
701
- }
702
- if (pid && insertedRunningPids.has(pid)) {
703
- return;
704
- }
705
- const lastCommitId = lastCommitIdBySpan.get(span.id);
706
- if (lastCommitId) {
707
- builder.addTag(lastCommitId, SHIMMER_EFFECT_TAG);
708
- }
709
- };
710
- const emitSpanCommits = (span) => {
711
- for (let eventIndex = 0; eventIndex < span.events.length; eventIndex += 1) {
712
- const event = span.events[eventIndex];
713
- if (isSpanBeginEvent(event)) {
714
- emitEventCommit(span, event, eventIndex);
715
- }
716
- }
717
- for (const child of span.children) {
718
- emitSpanCommits(child);
719
- }
720
- for (let eventIndex = 0; eventIndex < span.events.length; eventIndex += 1) {
721
- const event = span.events[eventIndex];
722
- if (!isSpanBeginEvent(event)) {
723
- emitEventCommit(span, event, eventIndex);
724
- }
725
- }
726
- finishSpan(span);
727
- };
728
- emitSpanCommits(root);
729
- for (const process of activeProcesses) {
730
- emitRunningIndicator(process.pid);
731
- }
732
- const { commits, branches } = builder.build();
733
- return {
734
- commits,
735
- branches,
736
- details
737
- };
738
- };
739
- var formatCommitId = (span, globalIndex, suffix) => {
740
- const base = `${span.id}:${globalIndex}`;
741
- return suffix ? `${base}:${suffix}` : base;
742
- };
743
- var trimText = (text) => text.slice(0, 100).trim().split("\n")[0];
744
- var CommitSelector = {
745
- make: (select) => ({
746
- select,
747
- pipe(...args) {
748
- return Pipeable.pipeArguments(this, args);
749
- }
750
- }),
751
- identity: () => CommitSelector.make((commits) => commits),
752
- /**
753
- * Selects commits that match the given predicate.
754
- */
755
- filter: (predicate) => CommitSelector.make((commits) => commits.filter(predicate)),
756
- /**
757
- * Selects commits by id.
758
- */
759
- id: (id) => CommitSelector.filter((commit) => commit.id === id),
760
- /**
761
- * Selects commits by tag.
762
- */
763
- tag: (tag) => CommitSelector.filter((commit) => tag && commit.tags?.includes(tag)),
764
- /**
765
- * Selects commits by if any of the given tags are present.
766
- */
767
- anyTags: (tags) => CommitSelector.filter((commit) => tags.some((tag) => tag && commit.tags?.includes(tag))),
768
- /**
769
- * Selects commits by branch.
770
- */
771
- branch: (branch) => CommitSelector.filter((commit) => branch && commit.branch === branch),
772
- /**
773
- * Chains two selectors together, applying the second selector to the result of the first.
774
- *
775
- * Example:
776
- *
777
- * ```
778
- * CommitSelector.tag('tag').pipe(CommitSelector.compose(CommitSelector.branch('main')));
779
- * ```
780
- */
781
- compose: (next) => (prev) => CommitSelector.make((commits) => next.select(prev.select(commits))),
782
- /**
783
- * If `prev` selector matches no commits, return `next` selector, otherwise return `prev` selector.
784
- * Same as `CommitSelector.firstOf(prev, next)`.
785
- *
786
- * Example:
787
- *
788
- * ```
789
- * CommitSelector.tag('tag').pipe(CommitSelector.orElse(CommitSelector.branch('main')));
790
- * ```
791
- */
792
- orElse: (next) => (prev) => CommitSelector.make((commits) => {
793
- const selected = prev.select(commits);
794
- if (selected.length > 0) {
795
- return selected;
796
- }
797
- return next.select(commits);
798
- }),
799
- /**
800
- * Selects commits that match either of the given selectors.
801
- */
802
- andAlso: (next) => (prev) => CommitSelector.unionAll(prev, next),
803
- /**
804
- * Selects the first n commits.
805
- */
806
- first: (n = 1) => CommitSelector.make((commits) => commits.slice(0, n)),
807
- /**
808
- * Selects the last n commits (reverses the order of the commits).
809
- */
810
- last: (n = 1) => CommitSelector.make((commits) => commits.toReversed().slice(0, n)),
811
- /**
812
- * Selects commits that do not match the given selector.
813
- */
814
- not: (selector) => CommitSelector.make((commits) => {
815
- const selected = selector.select(commits);
816
- return commits.filter((commit) => !selected.includes(commit));
817
- }),
818
- /**
819
- * Selects commits that match any of the given selectors.
820
- */
821
- unionAll: (...selectors) => CommitSelector.make((commits) => {
822
- return Array.dedupeWith(selectors.flatMap((selector) => selector.select(commits)), (a, b) => a.id === b.id);
823
- }),
824
- /**
825
- * Selects commits that match all of the given selectors.
826
- */
827
- intersectAll: (...selectors) => CommitSelector.make((commits) => {
828
- const selected = selectors.map((selector) => selector.select(commits));
829
- if (selected.length === 0) {
830
- return [];
831
- }
832
- return selected[0].filter((commit) => selected.every((selected2) => selected2.some((c) => c.id === commit.id)));
833
- }),
834
- /**
835
- * Returns the result of the first selector that matches any commits.
836
- */
837
- firstOf: (...selectors) => CommitSelector.make((commits) => {
838
- for (const selector of selectors) {
839
- const selected = selector.select(commits);
840
- if (selected.length > 0) {
841
- return selected;
842
- }
843
- }
844
- return [];
845
- })
846
- };
847
- var GraphBuilder = class {
848
- #commits = [];
849
- #branches = /* @__PURE__ */ new Set();
850
- findCommits(selector) {
851
- return selector.select(this.#commits);
852
- }
853
- hasBranch(branch) {
854
- return this.#branches.has(branch);
855
- }
856
- addCommit(commit) {
857
- this.addBranch(commit.branch);
858
- this.#commits.push(commit);
859
- }
860
- addTag(commitId, tag) {
861
- const index = this.#commits.findIndex((commit2) => commit2.id === commitId);
862
- if (index < 0) {
863
- return;
864
- }
865
- const commit = this.#commits[index];
866
- if (commit.tags?.includes(tag)) {
867
- return;
868
- }
869
- this.#commits[index] = {
870
- ...commit,
871
- tags: [
872
- ...commit.tags ?? [],
873
- tag
874
- ]
875
- };
876
- }
877
- /**
878
- * Computes parents — picks first matching commit's id.
879
- */
880
- computeParents(selector) {
881
- return Array.dedupe(selector.select(this.#commits).map((commit) => commit.id));
882
- }
883
- addBranch(branch) {
884
- this.#branches.add(branch);
885
- }
886
- /**
887
- * Removes duplicate commits and dangling parents.
888
- */
889
- doctor() {
890
- this.#commits = pipe(this.#commits, Array.dedupeWith((a, b) => a.id === b.id), Array.map(Struct.evolve({
891
- parents: (parents) => parents ? Array.filter(parents, (id) => this.#commits.some((commit) => commit.id === id)) : void 0
892
- })));
893
- }
894
- build() {
895
- this.doctor();
896
- return {
897
- commits: this.#commits,
898
- branches: [
899
- ...this.#branches
900
- ]
901
- };
902
- }
903
- };
904
-
905
- // src/execution-graph/pending-block-status.ts
906
- import { PartialBlock } from "@dxos/assistant";
907
- import { Trace as Trace3 } from "@dxos/compute";
908
- var estimateTokenCount = (text) => Math.max(1, Math.ceil(new TextEncoder().encode(text).length / 4));
909
- var formatOperationInputStatus = (data) => {
910
- const name = data.name ?? data.key;
911
- const bytes = new TextEncoder().encode(JSON.stringify(data.input)).length;
912
- return `Calling ${name} (${bytes} bytes)...`;
913
- };
914
- var ROUTINE_ULID_STATUS = /^Running [0-9A-HJKMNP-TV-Z]{26}$/i;
915
- var formatPendingBlockStatus = (block) => {
916
- if (!block.pending) {
917
- return void 0;
918
- }
919
- if (block._tag === "text") {
920
- return `Generating ${estimateTokenCount(block.text)} tokens....`;
921
- }
922
- if (block._tag === "toolCall") {
923
- const bytes = new TextEncoder().encode(block.input).length;
924
- const name = block.operationName ?? block.name;
925
- return `Calling ${name} (${bytes} bytes)...`;
926
- }
927
- return void 0;
928
- };
929
- var pendingStatusFromEphemeralMessage = (message) => {
930
- for (const event of message.events) {
931
- if (Trace3.isOfType(PartialBlock, event)) {
932
- const status = formatPendingBlockStatus(event.data.block);
933
- if (status) {
934
- return status;
935
- }
936
- continue;
937
- }
938
- if (Trace3.isOfType(Trace3.OperationInput, event)) {
939
- return formatOperationInputStatus(event.data);
940
- }
941
- if (Trace3.isOfType(Trace3.StatusUpdate, event)) {
942
- if (ROUTINE_ULID_STATUS.test(event.data.message.trim())) {
943
- continue;
944
- }
945
- return event.data.message;
946
- }
947
- }
948
- return void 0;
949
- };
950
- var resolveEphemeralStatusUpdate = (message) => {
951
- const line = pendingStatusFromEphemeralMessage(message);
952
- if (line) {
953
- return {
954
- line
955
- };
956
- }
957
- return "unchanged";
958
- };
959
- export {
960
- BEGIN_EVENT_TYPES,
961
- CommitSelector,
962
- END_EVENT_TYPES,
963
- ROOT_SPAN_ID,
964
- buildExecutionGraph,
965
- buildSpanTree,
966
- collectProcessActivityLines,
967
- deriveInFlightActivityLine,
968
- estimateTokenCount,
969
- flattenSpanTree,
970
- formatPendingBlockStatus,
971
- isSpanBeginEvent,
972
- isSpanEndEvent,
973
- pendingStatusFromEphemeralMessage,
974
- resolveEphemeralStatusUpdate,
975
- walkSpanTree
976
- };
977
- //# sourceMappingURL=index.mjs.map