@dxos/plugin-assistant 0.10.0 → 0.11.1

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,877 +0,0 @@
1
- import {
2
- useChatContext
3
- } from "../chunk-VTK5R4H3.mjs";
4
- import {
5
- AiChatProcessor,
6
- defaultsKeyForProvider,
7
- presetsForProvider,
8
- resolveProvider
9
- } from "../chunk-BXI2R4OO.mjs";
10
- import "../chunk-J5LGTIGS.mjs";
11
-
12
- // src/hooks/useSkillRegistry.ts
13
- import { useCallback, useEffect, useMemo, useState } from "react";
14
- import { Skill } from "@dxos/compute";
15
- import { Filter, Obj, Ref } from "@dxos/echo";
16
- import { useQuery } from "@dxos/react-client/echo";
17
- import { distinctBy } from "@dxos/util";
18
- var useSkills = ({ registry, db }) => {
19
- const [registrySkills, setRegistrySkills] = useState(() => registry?.query(Filter.type(Skill.Skill)).runSync() ?? []);
20
- useEffect(() => {
21
- if (!registry) {
22
- setRegistrySkills([]);
23
- return;
24
- }
25
- setRegistrySkills(registry.query(Filter.type(Skill.Skill)).runSync());
26
- return registry.changed.on(() => {
27
- setRegistrySkills(registry.query(Filter.type(Skill.Skill)).runSync());
28
- });
29
- }, [
30
- registry
31
- ]);
32
- const spaceSkills = useQuery(db, Filter.type(Skill.Skill));
33
- return useMemo(() => {
34
- const skills = distinctBy([
35
- ...registrySkills,
36
- ...spaceSkills
37
- ], (b) => Obj.getMeta(b).key);
38
- skills.sort(({ name: a }, { name: b }) => a.localeCompare(b));
39
- return skills;
40
- }, [
41
- registrySkills,
42
- spaceSkills
43
- ]);
44
- };
45
- var useActiveSkills = ({ context }) => {
46
- const [active, setActive] = useState(/* @__PURE__ */ new Map());
47
- useEffect(() => {
48
- if (!context) {
49
- setActive(/* @__PURE__ */ new Map());
50
- return;
51
- }
52
- const updateActive = () => {
53
- const skills = context.getSkills();
54
- setActive(new Map(skills.map((skill) => [
55
- Obj.getMeta(skill).key,
56
- skill
57
- ]).filter((entry) => entry[0] !== void 0)));
58
- };
59
- updateActive();
60
- return context.subscribeSkills(updateActive);
61
- }, [
62
- context
63
- ]);
64
- return active;
65
- };
66
- var useSkillHandlers = ({ db, context, registry }) => {
67
- const onUpdateSkill = useCallback(async (key, checked) => {
68
- if (!context) {
69
- return;
70
- }
71
- if (checked) {
72
- const registrySkill = registry?.query(Filter.type(Skill.Skill)).runSync().find((b) => Obj.getMeta(b).key === key);
73
- if (registrySkill) {
74
- await context.bind({
75
- skills: [
76
- Ref.fromURI(Skill.registryURI(key))
77
- ]
78
- });
79
- } else {
80
- const objects = await db.query(Filter.type(Skill.Skill)).run();
81
- const storedSkill = objects.find((skill) => Obj.getMeta(skill).key === key);
82
- if (storedSkill) {
83
- await context.bind({
84
- skills: [
85
- Ref.make(storedSkill)
86
- ]
87
- });
88
- }
89
- }
90
- } else {
91
- const registrySkill = registry?.query(Filter.type(Skill.Skill)).runSync().find((b) => Obj.getMeta(b).key === key);
92
- if (registrySkill) {
93
- await context.unbind({
94
- skills: [
95
- Ref.fromURI(Skill.registryURI(key))
96
- ]
97
- });
98
- } else {
99
- const objects = await db.query(Filter.type(Skill.Skill)).run();
100
- const storedSkill = objects.find((skill) => Obj.getMeta(skill).key === key);
101
- if (storedSkill) {
102
- await context.unbind({
103
- skills: [
104
- Ref.make(storedSkill)
105
- ]
106
- });
107
- }
108
- }
109
- }
110
- }, [
111
- db,
112
- context,
113
- registry
114
- ]);
115
- return {
116
- onUpdateSkill
117
- };
118
- };
119
-
120
- // src/hooks/useChatKeymap.ts
121
- import { Prec } from "@codemirror/state";
122
- import { keymap } from "@codemirror/view";
123
- import { useMemo as useMemo2 } from "react";
124
- import { isTruthy } from "@dxos/util";
125
- var useChatKeymapExtensions = ({ event }) => {
126
- return useMemo2(() => {
127
- return [
128
- Prec.highest(keymap.of([
129
- {
130
- key: "Mod-ArrowUp",
131
- preventDefault: true,
132
- run: () => {
133
- event.emit({
134
- type: "nav-previous"
135
- });
136
- return true;
137
- },
138
- shift: () => {
139
- event.emit({
140
- type: "thread-open"
141
- });
142
- return true;
143
- }
144
- },
145
- {
146
- key: "Mod-ArrowDown",
147
- preventDefault: true,
148
- run: () => {
149
- event.emit({
150
- type: "nav-next"
151
- });
152
- return true;
153
- },
154
- shift: () => {
155
- event.emit({
156
- type: "thread-close"
157
- });
158
- return true;
159
- }
160
- }
161
- ]))
162
- ].filter(isTruthy);
163
- }, [
164
- event
165
- ]);
166
- };
167
-
168
- // src/hooks/useChatProcessor.ts
169
- import { RegistryContext } from "@effect-atom/atom-react";
170
- import * as Effect from "effect/Effect";
171
- import * as Layer from "effect/Layer";
172
- import { useContext, useMemo as useMemo3, useState as useState2 } from "react";
173
- import { AiService, OpaqueToolkit } from "@dxos/ai";
174
- import { Capabilities } from "@dxos/app-framework";
175
- import { useCapability } from "@dxos/app-framework/ui";
176
- import { AiSession } from "@dxos/assistant";
177
- import { AgentService, Credential, ServiceResolver } from "@dxos/compute";
178
- import { Database, Obj as Obj2, Ref as Ref2, Registry } from "@dxos/echo";
179
- import { EffectEx } from "@dxos/effect";
180
- import { log } from "@dxos/log";
181
- import { useObject } from "@dxos/react-client/echo";
182
- import { useAsyncEffect } from "@dxos/react-ui";
183
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useChatProcessor.ts";
184
- var useChatProcessor = ({ space, chat, preset, runtime: runtime3, registry, settings }) => {
185
- const observableRegistry = useContext(RegistryContext);
186
- const [feedSnapshot] = useObject(chat?.feed);
187
- const feed = Obj2.getReactiveOrUndefined(feedSnapshot);
188
- const [session, setSession] = useState2();
189
- useAsyncEffect(async () => {
190
- if (!space || !chat || !feed) {
191
- return;
192
- }
193
- const runtime4 = await EffectEx.runAndForwardErrors(Effect.runtime().pipe(Effect.provide(Database.layer(space.db))));
194
- const session2 = new AiSession.Session({
195
- feed,
196
- runtime: runtime4,
197
- registry: observableRegistry
198
- });
199
- await session2.open();
200
- setSession(session2);
201
- return () => {
202
- void session2.close();
203
- setSession(void 0);
204
- };
205
- }, [
206
- space,
207
- chat,
208
- feed
209
- ]);
210
- const serviceResolver = useCapability(Capabilities.ServiceResolver);
211
- const processor = useMemo3(() => {
212
- if (!runtime3 || !session || !chat || !feed || !space) {
213
- return void 0;
214
- }
215
- const spaceLayer = ServiceResolver.provide({
216
- space: space.id
217
- }, Database.Service, Credential.CredentialsService, AiService.AiService, AgentService.AgentService, Registry.Service, OpaqueToolkit.OpaqueToolkitProvider).pipe(Layer.provide(Layer.succeed(ServiceResolver.ServiceResolver, serviceResolver)));
218
- log("creating processor", {
219
- preset,
220
- model: preset?.model,
221
- settings
222
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 56, S: void 0 });
223
- return new AiChatProcessor(session, runtime3, feed, spaceLayer, {
224
- chat: chat ? Ref2.make(chat) : void 0,
225
- observableRegistry,
226
- registry,
227
- model: preset?.model,
228
- provider: preset?.provider
229
- });
230
- }, [
231
- runtime3,
232
- session,
233
- registry,
234
- preset,
235
- chat,
236
- feed,
237
- space?.id
238
- ]);
239
- return processor;
240
- };
241
-
242
- // src/hooks/useChatServices.ts
243
- import { Capabilities as Capabilities2 } from "@dxos/app-framework";
244
- import { useCapability as useCapability2 } from "@dxos/app-framework/ui";
245
- import { AppSpace } from "@dxos/app-toolkit";
246
- import { useClient } from "@dxos/react-client";
247
- var useChatServices = ({ id }) => {
248
- const client = useClient();
249
- id ??= AppSpace.getPersonalSpace(client)?.id;
250
- const runtime3 = useCapability2(Capabilities2.ProcessManagerRuntime);
251
- return id ? runtime3 : void 0;
252
- };
253
-
254
- // src/hooks/useChatToolbarActions.ts
255
- import * as Effect2 from "effect/Effect";
256
- import { useOperationInvoker } from "@dxos/app-framework/ui";
257
- import { Chat } from "@dxos/assistant-toolkit";
258
- import { Filter as Filter2, Obj as Obj3, Query, Type } from "@dxos/echo";
259
- import { EffectEx as EffectEx2 } from "@dxos/effect";
260
- import { invariant } from "@dxos/invariant";
261
- import { MenuBuilder, useMenuBuilder } from "@dxos/react-ui-menu";
262
- import { meta } from "#meta";
263
- import { AssistantOperation } from "#types";
264
- var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useChatToolbarActions.ts";
265
- var useChatToolbarActions = ({ chat, companionTo }) => {
266
- const { invoke } = useOperationInvoker();
267
- const { db } = useChatContext("useChatToolbarActions");
268
- return useMenuBuilder((get) => {
269
- const chats = companionTo && db ? get(db.query(Query.select(Filter2.id(companionTo.id)).targetOf(Chat.CompanionTo).source()).atom) : [];
270
- const builder = MenuBuilder.make().root({
271
- label: [
272
- "chat-toolbar.title",
273
- {
274
- ns: meta.profile.key
275
- }
276
- ]
277
- }).action("new", {
278
- label: [
279
- "new-thread.button",
280
- {
281
- ns: meta.profile.key
282
- }
283
- ],
284
- icon: "ph--plus--regular",
285
- type: "new",
286
- disabled: !companionTo
287
- }, () => {
288
- invariant(companionTo, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 38, S: void 0, A: ["companionTo", ""] });
289
- return invoke(AssistantOperation.SetCurrentChat, {
290
- companionTo,
291
- chat: void 0
292
- }).pipe(EffectEx2.runAndForwardErrors);
293
- }).action("rename", {
294
- label: [
295
- "rename-thread.button",
296
- {
297
- ns: meta.profile.key
298
- }
299
- ],
300
- icon: "ph--magic-wand--regular",
301
- type: "rename",
302
- disabled: !chat
303
- }, () => Effect2.gen(function* () {
304
- invariant(chat, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 54, S: this, A: ["chat", ""] });
305
- yield* invoke(AssistantOperation.UpdateChatName, {
306
- chat
307
- }, {
308
- spaceId: db?.spaceId
309
- });
310
- }).pipe(EffectEx2.runAndForwardErrors)).action("branch", {
311
- label: [
312
- "branch-thread.menu",
313
- {
314
- ns: meta.profile.key
315
- }
316
- ],
317
- icon: "ph--git-branch--regular",
318
- type: "branch",
319
- disabled: !chat || !db
320
- }, () => Effect2.gen(function* () {
321
- invariant(chat, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 71, S: this, A: ["chat", ""] });
322
- yield* invoke(AssistantOperation.ForkChat, {
323
- chat,
324
- companionTo
325
- }, {
326
- spaceId: db?.spaceId
327
- });
328
- }).pipe(EffectEx2.runAndForwardErrors));
329
- if (chats.length > 0) {
330
- builder.group("chats", {
331
- label: [
332
- "chat-history.label",
333
- {
334
- ns: meta.profile.key
335
- }
336
- ],
337
- icon: "ph--clock-counter-clockwise--regular",
338
- selectCardinality: "single",
339
- variant: "dropdownMenu"
340
- }, (builder2) => {
341
- chats.toSorted((a, b) => a.id.localeCompare(b.id)).forEach((chat2) => {
342
- get(Obj3.atomProperty(chat2, "name"));
343
- builder2.action(chat2.id, {
344
- label: Obj3.getLabel(chat2) ?? [
345
- "object-name.placeholder",
346
- {
347
- ns: Type.getTypename(Chat.Chat)
348
- }
349
- ]
350
- }, () => Effect2.gen(function* () {
351
- invariant(companionTo, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 102, S: this, A: ["companionTo", ""] });
352
- yield* invoke(AssistantOperation.SetCurrentChat, {
353
- companionTo,
354
- chat: chat2
355
- });
356
- }).pipe(EffectEx2.runAndForwardErrors));
357
- });
358
- });
359
- }
360
- return builder.build();
361
- }, [
362
- db?.spaceId,
363
- companionTo?.id,
364
- chat?.id,
365
- invoke
366
- ]);
367
- };
368
-
369
- // src/hooks/useContextBinder.ts
370
- import { RegistryContext as RegistryContext2 } from "@effect-atom/atom-react";
371
- import * as Effect3 from "effect/Effect";
372
- import { useContext as useContext2, useState as useState3 } from "react";
373
- import { AiContext } from "@dxos/assistant";
374
- import { Database as Database2 } from "@dxos/echo";
375
- import { EffectEx as EffectEx3 } from "@dxos/effect";
376
- import { useAsyncEffect as useAsyncEffect2 } from "@dxos/react-ui";
377
- var useContextBinder = (space, feed) => {
378
- const registry = useContext2(RegistryContext2);
379
- const [binder, setBinder] = useState3();
380
- useAsyncEffect2(async () => {
381
- setBinder(void 0);
382
- if (!space || !feed) {
383
- return;
384
- }
385
- const runtime3 = await EffectEx3.runAndForwardErrors(Effect3.runtime().pipe(Effect3.provide(Database2.layer(space.db))));
386
- const binder2 = new AiContext.Binder({
387
- feed,
388
- runtime: runtime3,
389
- registry
390
- });
391
- await binder2.open();
392
- setBinder(binder2);
393
- return () => {
394
- void binder2.close();
395
- };
396
- }, [
397
- space,
398
- feed
399
- ]);
400
- return binder;
401
- };
402
-
403
- // src/hooks/useContextObjects.ts
404
- import { Atom, useAtomValue } from "@effect-atom/atom-react";
405
- import { useCallback as useCallback2 } from "react";
406
- var emptyObjectsAtom = Atom.make([]);
407
- var useContextObjects = ({ db, context }) => {
408
- const objects = useAtomValue(context?.objects ?? emptyObjectsAtom);
409
- const handleUpdateObject = useCallback2(async (dxn, checked) => {
410
- if (!db || !context) {
411
- return;
412
- }
413
- const ref = db.makeRef(dxn);
414
- await ref.load();
415
- if (checked) {
416
- await context.bind({
417
- objects: [
418
- ref
419
- ]
420
- });
421
- } else {
422
- await context.unbind({
423
- objects: [
424
- ref
425
- ]
426
- });
427
- }
428
- }, [
429
- db,
430
- context
431
- ]);
432
- return {
433
- objects,
434
- onUpdateObject: handleUpdateObject
435
- };
436
- };
437
-
438
- // src/hooks/useDebug.ts
439
- import { useCallback as useCallback3 } from "react";
440
- import { trim } from "@dxos/util";
441
- var useDebug = ({ processor }) => {
442
- return useCallback3(async () => {
443
- const objects = processor.context.getObjects();
444
- const skills = processor.context.getSkills();
445
- const system = await processor.getSystemPrompt();
446
- const tools = await processor.getTools() ?? {};
447
- console.group("Chat", {
448
- objects,
449
- skills
450
- });
451
- try {
452
- console.log(trim`
453
- System Prompt:
454
- ${system}
455
- `);
456
- console.log(trim`
457
- Tools:
458
- ${Object.values(tools).map((tool) => JSON.stringify(tool, null, 2)).join("\n")}
459
- `);
460
- } finally {
461
- console.groupEnd();
462
- }
463
- }, [
464
- processor
465
- ]);
466
- };
467
-
468
- // src/hooks/useFilteredTypes.ts
469
- import * as Option from "effect/Option";
470
- import { useEffect as useEffect2, useState as useState4 } from "react";
471
- import { Type as Type2 } from "@dxos/echo";
472
- import { HiddenAnnotation, getTypeAnnotation } from "@dxos/echo/Annotation";
473
- import { Kind as EntityKind } from "@dxos/echo/Entity";
474
- var getFilteredTypes = (db) => Array.from(new Set(db.graph.registry.list().filter(Type2.isType).filter((schema) => getTypeAnnotation(Type2.getSchema(schema))?.kind !== EntityKind.Relation).filter((schema) => !HiddenAnnotation.get(Type2.getSchema(schema)).pipe(Option.getOrElse(() => false)))));
475
- var useFilteredTypes = (db) => {
476
- const [types, setTypes] = useState4([]);
477
- useEffect2(() => {
478
- if (!db) {
479
- return;
480
- }
481
- setTypes(getFilteredTypes(db));
482
- return db.graph.registry.changed.on(() => {
483
- setTypes(getFilteredTypes(db));
484
- });
485
- }, [
486
- db
487
- ]);
488
- return types;
489
- };
490
-
491
- // src/hooks/useFlush.ts
492
- import { useCallback as useCallback4, useRef, useState as useState5 } from "react";
493
- var useFlush = (space) => {
494
- const [state, setState] = useState5("idle");
495
- const resetTimer = useRef(null);
496
- const handleFlush = useCallback4(() => {
497
- if (!space) {
498
- return;
499
- }
500
- queueMicrotask(async () => {
501
- if (resetTimer.current) {
502
- clearTimeout(resetTimer.current);
503
- }
504
- setState("flushing");
505
- await space.db.flush();
506
- setState("flushed");
507
- resetTimer.current = setTimeout(() => {
508
- setState("idle");
509
- resetTimer.current = null;
510
- }, 1e3);
511
- });
512
- }, [
513
- space
514
- ]);
515
- return {
516
- state,
517
- handleFlush
518
- };
519
- };
520
-
521
- // src/hooks/usePresets.ts
522
- import { useAtomValue as useAtomValue2 } from "@effect-atom/atom-react";
523
- import { useCallback as useCallback5, useEffect as useEffect3, useMemo as useMemo4, useState as useState6 } from "react";
524
- import { Provider } from "@dxos/ai";
525
- import { useOptionalCapability } from "@dxos/app-framework/ui";
526
- import { EffectEx as EffectEx4 } from "@dxos/effect";
527
- import { AssistantCapabilities, Ollama } from "#types";
528
- var usePresets = (settings) => {
529
- const [preset, setPreset] = useState6();
530
- const ollamaManager = useOptionalCapability(AssistantCapabilities.OllamaManager);
531
- const provider = resolveProvider(settings.modelProvider, !!ollamaManager);
532
- const defaultModel = settings.modelDefaults?.[defaultsKeyForProvider(provider)];
533
- const localModels = useAtomValue2(ollamaManager?.state ?? Ollama.emptyState);
534
- useEffect3(() => {
535
- if (provider === Provider.builtIn.id && ollamaManager && localModels.kind === "idle") {
536
- void EffectEx4.runPromise(ollamaManager.refresh);
537
- }
538
- }, [
539
- provider,
540
- ollamaManager,
541
- localModels.kind
542
- ]);
543
- const lmStudioProbeUrl = provider === Provider.lmStudio.id && ollamaManager ? `${Provider.lmStudio.endpoint}/v1/models` : void 0;
544
- const lmStudioReachable = useEndpointReachable(lmStudioProbeUrl);
545
- const presets = useMemo4(() => {
546
- const base = presetsForProvider(provider);
547
- if (provider === Provider.lmStudio.id && ollamaManager) {
548
- return lmStudioReachable ? base : [];
549
- }
550
- if (provider === Provider.builtIn.id && ollamaManager) {
551
- const installed = new Set(localModels.models.map((model) => model.name));
552
- return base.filter((preset2) => installed.has(preset2.backend));
553
- }
554
- return base;
555
- }, [
556
- provider,
557
- ollamaManager,
558
- lmStudioReachable,
559
- localModels
560
- ]);
561
- const presetOptions = useMemo4(() => presets.map(({ id, model, label }) => ({
562
- id,
563
- label: label ?? model
564
- })), [
565
- presets
566
- ]);
567
- useEffect3(() => {
568
- const configured = defaultModel ? presets.find((preset2) => preset2.model === defaultModel) : void 0;
569
- setPreset(configured ?? presets[0]);
570
- }, [
571
- presets,
572
- defaultModel
573
- ]);
574
- const handlePresetChange = useCallback5((id) => {
575
- const preset2 = presets.find((preset3) => preset3.id === id);
576
- if (preset2) {
577
- setPreset(preset2);
578
- }
579
- }, [
580
- presets
581
- ]);
582
- return {
583
- preset,
584
- presets: presetOptions,
585
- onPresetChange: handlePresetChange
586
- };
587
- };
588
- var useEndpointReachable = (url) => {
589
- const [reachable, setReachable] = useState6(false);
590
- useEffect3(() => {
591
- if (!url) {
592
- setReachable(false);
593
- return;
594
- }
595
- let active = true;
596
- const controller = new AbortController();
597
- const timer = setTimeout(() => controller.abort(), 1500);
598
- fetch(url, {
599
- signal: controller.signal
600
- }).then((response) => active && setReachable(response.ok)).catch(() => active && setReachable(false)).finally(() => clearTimeout(timer));
601
- return () => {
602
- active = false;
603
- controller.abort();
604
- clearTimeout(timer);
605
- };
606
- }, [
607
- url
608
- ]);
609
- return reachable;
610
- };
611
-
612
- // src/hooks/useReferencesProvider.ts
613
- import { useMemo as useMemo5 } from "react";
614
- import { Filter as Filter3, Obj as Obj4 } from "@dxos/echo";
615
- var useReferencesProvider = (space) => {
616
- return useMemo5(() => {
617
- if (!space) {
618
- return void 0;
619
- }
620
- return {
621
- getReferences: async ({ query }) => {
622
- const objects = await space.db.query(Filter3.everything()).run();
623
- return objects.filter(Obj4.isObject).filter((object) => stringMatch(query, Obj4.getLabel(object) ?? "")).map((object) => ({
624
- uri: Obj4.getURI(object),
625
- label: Obj4.getLabel(object) ?? ""
626
- }));
627
- },
628
- resolveReference: async ({ uri }) => {
629
- const object = await space.db.query(Filter3.id(uri)).first();
630
- return {
631
- uri,
632
- label: Obj4.getLabel(object) ?? ""
633
- };
634
- }
635
- };
636
- }, [
637
- space
638
- ]);
639
- };
640
- var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
641
-
642
- // src/hooks/useTraceMessages.ts
643
- import { Atom as Atom2 } from "@effect-atom/atom";
644
- import { useAtomValue as useAtomValue3 } from "@effect-atom/atom-react";
645
- import { pipe } from "effect/Function";
646
- import { useMemo as useMemo6 } from "react";
647
- import { Trace } from "@dxos/compute";
648
- import { Filter as Filter4, Query as Query2 } from "@dxos/echo";
649
- import { FeedTraceSink } from "@dxos/functions-runtime";
650
- var atomEmpty = Atom2.make(() => []);
651
- var getTraceMessagesAtom = (space) => pipe(space.db.query(FeedTraceSink.query).atom, Atom2.map((feeds) => (
652
- // TODO(dmaretskyi): Single query with limit(1) and feed traversal when query supports it.
653
- space.db.query(feeds.length > 0 ? Query2.type(Trace.Message).from(feeds[0]) : Query2.select(Filter4.nothing())).atom
654
- )), (atom) => Atom2.make((get) => get(get(atom))));
655
- var useTraceMessages = (space) => {
656
- const atom = useMemo6(() => space ? getTraceMessagesAtom(space) : atomEmpty, [
657
- space
658
- ]);
659
- return useAtomValue3(atom);
660
- };
661
-
662
- // src/hooks/useHomeSuggestions.ts
663
- import { useMemo as useMemo7, useState as useState7 } from "react";
664
- import { useOperationInvoker as useOperationInvoker2 } from "@dxos/app-framework/ui";
665
- import { useAsyncEffect as useAsyncEffect3, useTranslation } from "@dxos/react-ui";
666
- import { meta as meta2 } from "#meta";
667
- import { AssistantOperation as AssistantOperation2 } from "#types";
668
- var FALLBACK_SUGGESTION_KEYS = [
669
- "space-home.suggestion-magazine.label",
670
- "space-home.suggestion-spreadsheet.label",
671
- "space-home.suggestion-kanban.label"
672
- ];
673
- var useHomeSuggestions = (space) => {
674
- const { t } = useTranslation(meta2.profile.key);
675
- const { invokePromise } = useOperationInvoker2();
676
- const fallbacks = useMemo7(() => FALLBACK_SUGGESTION_KEYS.map((key) => t(key, {
677
- year: (/* @__PURE__ */ new Date()).getFullYear()
678
- })), [
679
- t
680
- ]);
681
- const [suggestions, setSuggestions] = useState7(void 0);
682
- useAsyncEffect3(async (controller) => {
683
- setSuggestions(void 0);
684
- if (!space) {
685
- return;
686
- }
687
- const result = await invokePromise(AssistantOperation2.GenerateHomeSuggestions, {
688
- db: space.db
689
- }, {
690
- spaceId: space.db.spaceId
691
- });
692
- if (controller.signal.aborted) {
693
- return;
694
- }
695
- const prompts = result.data?.prompts;
696
- setSuggestions(prompts && prompts.length > 0 ? prompts : fallbacks);
697
- }, [
698
- space,
699
- invokePromise
700
- ]);
701
- return suggestions;
702
- };
703
-
704
- // src/hooks/useProcessEphemeralStatus.ts
705
- import { Atom as Atom3 } from "@effect-atom/atom";
706
- import { useAtomValue as useAtomValue4 } from "@effect-atom/atom-react";
707
- import * as Effect4 from "effect/Effect";
708
- import * as Fiber from "effect/Fiber";
709
- import * as Stream from "effect/Stream";
710
- import { useEffect as useEffect4, useMemo as useMemo8, useRef as useRef2, useState as useState8 } from "react";
711
- import { Capabilities as Capabilities3 } from "@dxos/app-framework";
712
- import { useOptionalCapability as useOptionalCapability2 } from "@dxos/app-framework/ui";
713
- import { Process, ServiceResolver as ServiceResolver2 } from "@dxos/compute";
714
- import { ProcessManager } from "@dxos/compute-runtime";
715
- import { resolveEphemeralStatusUpdate } from "#execution-graph";
716
- var atomEmpty2 = Atom3.make(() => []);
717
- var ACTIVE_PROCESS_STATES = /* @__PURE__ */ new Set([
718
- Process.State.RUNNING,
719
- Process.State.HYBERNATING
720
- ]);
721
- var isTerminalActivityLine = (line) => line.endsWith(" - Success") || line.endsWith(" - Error") || line === "Agent completed request";
722
- var collectDescendantPids = (processes, rootPid) => {
723
- const pids = /* @__PURE__ */ new Set([
724
- rootPid
725
- ]);
726
- let expanded = true;
727
- while (expanded) {
728
- expanded = false;
729
- for (const process of processes) {
730
- const pid = String(process.pid);
731
- const parentPid = process.parentPid ? String(process.parentPid) : void 0;
732
- if (parentPid && pids.has(parentPid) && !pids.has(pid)) {
733
- pids.add(pid);
734
- expanded = true;
735
- }
736
- }
737
- }
738
- return pids;
739
- };
740
- var resolveSubscribePids = (agentPid, processes) => {
741
- const rootPid = String(agentPid);
742
- const descendants = collectDescendantPids(processes, rootPid);
743
- const activePids = processes.filter((process) => descendants.has(String(process.pid)) && ACTIVE_PROCESS_STATES.has(process.state)).map((process) => process.pid);
744
- if (activePids.length > 0) {
745
- return activePids;
746
- }
747
- return [
748
- agentPid
749
- ];
750
- };
751
- var attachActiveHandle = (processManager, pid) => Effect4.gen(function* () {
752
- const maxAttempts = 15;
753
- for (let attempt = 0; attempt < maxAttempts; attempt++) {
754
- const handle = yield* processManager.attach(pid).pipe(Effect4.catchAll(() => Effect4.succeed(void 0)));
755
- if (handle && ACTIVE_PROCESS_STATES.has(handle.status.state)) {
756
- return handle;
757
- }
758
- if (handle) {
759
- return void 0;
760
- }
761
- yield* Effect4.sleep(100);
762
- }
763
- return void 0;
764
- });
765
- var useProcessEphemeralStatus = (agentPid, space) => {
766
- const runtime3 = useOptionalCapability2(Capabilities3.ProcessManagerRuntime);
767
- const monitor = useOptionalCapability2(Capabilities3.ProcessMonitor);
768
- const processes = useAtomValue4(monitor?.processTreeAtom ?? atomEmpty2);
769
- const [status, setStatus] = useState8();
770
- const fibersRef = useRef2([]);
771
- const subscribePidsKey = useMemo8(() => {
772
- if (!agentPid) {
773
- return "";
774
- }
775
- return resolveSubscribePids(agentPid, processes).map((pid) => String(pid)).sort().join("|");
776
- }, [
777
- agentPid,
778
- processes
779
- ]);
780
- useEffect4(() => {
781
- if (!agentPid || !space?.id || !runtime3 || !subscribePidsKey) {
782
- setStatus(void 0);
783
- return;
784
- }
785
- const pids = subscribePidsKey.split("|").map((pid) => Process.ID.make(pid));
786
- let disposed = false;
787
- let replaying = true;
788
- let replayStatus;
789
- const endReplay = () => {
790
- replaying = false;
791
- if (!disposed) {
792
- setStatus(replayStatus);
793
- }
794
- };
795
- queueMicrotask(endReplay);
796
- fibersRef.current = [];
797
- const handleEphemeralMessage = (message) => {
798
- const update = resolveEphemeralStatusUpdate(message);
799
- if (update === "unchanged") {
800
- return;
801
- }
802
- if (replaying) {
803
- replayStatus = update.line;
804
- return;
805
- }
806
- setStatus(update.line);
807
- };
808
- const layer = ServiceResolver2.provide({
809
- space: space.id
810
- }, ProcessManager.ProcessManagerService);
811
- const subscribe = (pid) => Effect4.gen(function* () {
812
- if (disposed) {
813
- return;
814
- }
815
- const processManager = yield* ProcessManager.ProcessManagerService;
816
- const handle = yield* attachActiveHandle(processManager, pid);
817
- if (!handle || disposed) {
818
- return;
819
- }
820
- const fiber = yield* handle.subscribeEphemeral().pipe(Stream.runForEach((message) => Effect4.sync(() => {
821
- if (disposed) {
822
- return;
823
- }
824
- handleEphemeralMessage(message);
825
- })), Effect4.forkDaemon);
826
- if (disposed) {
827
- yield* Fiber.interrupt(fiber);
828
- return;
829
- }
830
- fibersRef.current.push(fiber);
831
- });
832
- void runtime3.runPromise(Effect4.forEach(pids, subscribe, {
833
- concurrency: "unbounded",
834
- discard: true
835
- }).pipe(Effect4.provide(layer))).catch(() => {
836
- if (!disposed) {
837
- setStatus(void 0);
838
- }
839
- });
840
- return () => {
841
- disposed = true;
842
- const fibers = fibersRef.current;
843
- fibersRef.current = [];
844
- for (const fiber of fibers) {
845
- void runtime3.runPromise(Fiber.interrupt(fiber).pipe(Effect4.provide(layer)));
846
- }
847
- };
848
- }, [
849
- agentPid,
850
- runtime3,
851
- space?.id,
852
- subscribePidsKey
853
- ]);
854
- return status;
855
- };
856
- export {
857
- getTraceMessagesAtom,
858
- isTerminalActivityLine,
859
- useActiveSkills,
860
- useChatKeymapExtensions,
861
- useChatProcessor,
862
- useChatServices,
863
- useChatToolbarActions,
864
- useContextBinder,
865
- useContextObjects,
866
- useDebug,
867
- useFilteredTypes,
868
- useFlush,
869
- useHomeSuggestions,
870
- usePresets,
871
- useProcessEphemeralStatus,
872
- useReferencesProvider,
873
- useSkillHandlers,
874
- useSkills,
875
- useTraceMessages
876
- };
877
- //# sourceMappingURL=index.mjs.map