@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,302 +0,0 @@
1
- import {
2
- presetsForProvider,
3
- resolveProvider
4
- } from "./chunk-BXI2R4OO.mjs";
5
- import "./chunk-J5LGTIGS.mjs";
6
-
7
- // src/containers/AssistantSettings/AssistantSettings.tsx
8
- import { useAtomValue as useAtomValue2 } from "@effect-atom/atom-react";
9
- import React2, { useMemo } from "react";
10
- import { Provider as Provider2 } from "@dxos/ai";
11
- import { useOptionalCapability as useOptionalCapability2 } from "@dxos/app-framework/ui";
12
- import { useTranslation as useTranslation2 } from "@dxos/react-ui";
13
- import { Form as Form2, createSelectField } from "@dxos/react-ui-form";
14
- import { meta as meta2 } from "#meta";
15
- import { Assistant, AssistantCapabilities as AssistantCapabilities2, Ollama } from "#types";
16
-
17
- // src/containers/AssistantSettings/OllamaModels.tsx
18
- import { useAtomValue } from "@effect-atom/atom-react";
19
- import React, { useCallback, useEffect, useState } from "react";
20
- import { Model, Provider } from "@dxos/ai";
21
- import { useOptionalCapability } from "@dxos/app-framework/ui";
22
- import { EffectEx } from "@dxos/effect";
23
- import { List, ListItem } from "@dxos/react-list";
24
- import { IconButton, useTranslation } from "@dxos/react-ui";
25
- import { Form } from "@dxos/react-ui-form";
26
- import { Combobox } from "@dxos/react-ui-list";
27
- import { meta } from "#meta";
28
- import { AssistantCapabilities } from "#types";
29
- var QUICK_PICKS = Model.forProvider(Provider.ollama.id).map((model) => model.backend);
30
- var LOADED_POLL_INTERVAL = 3e3;
31
- var OllamaModels = () => {
32
- const manager = useOptionalCapability(AssistantCapabilities.OllamaManager);
33
- if (!manager) {
34
- return null;
35
- }
36
- return /* @__PURE__ */ React.createElement(OllamaModelsSection, {
37
- manager
38
- });
39
- };
40
- var OllamaModelsSection = ({ manager }) => {
41
- const { t } = useTranslation(meta.profile.key);
42
- const state = useAtomValue(manager.state);
43
- const [query, setQuery] = useState("");
44
- const [open, setOpen] = useState(false);
45
- const [pending, setPending] = useState({});
46
- useEffect(() => {
47
- void EffectEx.runPromise(manager.refresh);
48
- }, [
49
- manager
50
- ]);
51
- useEffect(() => {
52
- const interval = setInterval(() => void EffectEx.runPromise(manager.refreshLoaded), LOADED_POLL_INTERVAL);
53
- return () => clearInterval(interval);
54
- }, [
55
- manager
56
- ]);
57
- const installed = new Set(state.models.map((model) => model.name));
58
- const loaded = new Map(state.loaded.map((model) => [
59
- model.name,
60
- model
61
- ]));
62
- const pulling = Object.keys(state.pulls).filter((name) => !installed.has(name));
63
- const withPending = useCallback((key, action) => async () => {
64
- setPending((prev) => ({
65
- ...prev,
66
- [key]: true
67
- }));
68
- try {
69
- await action();
70
- } finally {
71
- setPending((prev) => ({
72
- ...prev,
73
- [key]: false
74
- }));
75
- }
76
- }, []);
77
- const handlePull = useCallback((target) => {
78
- const trimmed = target.trim();
79
- if (trimmed.length === 0) {
80
- return;
81
- }
82
- setQuery("");
83
- setOpen(false);
84
- void withPending(trimmed, () => EffectEx.runPromise(manager.pull(trimmed)))();
85
- }, [
86
- manager,
87
- withPending
88
- ]);
89
- const filter = query.trim();
90
- const suggestions = QUICK_PICKS.filter((pick) => !installed.has(pick) && (filter === "" || pick.includes(filter)));
91
- const offerCustom = filter.length > 0 && !installed.has(filter) && !suggestions.includes(filter);
92
- const empty = state.models.length === 0 && pulling.length === 0;
93
- return /* @__PURE__ */ React.createElement(Form.Section, {
94
- title: t("settings.ollama.title")
95
- }, /* @__PURE__ */ React.createElement(Form.Row, {
96
- label: t("settings.ollama.installed.label")
97
- }, state.kind === "failed" && state.error ? (
98
- // Connection-level failure has no associated model, so it shows inline as the row content.
99
- /* @__PURE__ */ React.createElement("p", {
100
- className: "text-sm text-error-text"
101
- }, t("settings.ollama.failed.message", {
102
- error: state.error
103
- }))
104
- ) : empty ? /* @__PURE__ */ React.createElement("p", {
105
- className: "text-sm text-description"
106
- }, t("settings.ollama.empty.message")) : (
107
- // Plain `List`/`ListItem` (non-select), with the trigger editor's "fatter" two-line row
108
- // treatment: a name line plus a secondary meta line, on a surface-styled row. Rows are
109
- // actioned via their trailing buttons (no selection semantics).
110
- /* @__PURE__ */ React.createElement(List, {
111
- variant: "unordered",
112
- className: "flex flex-col gap-1 grow is-full text-left"
113
- }, state.models.map((model) => {
114
- const running = loaded.get(model.name);
115
- const error = state.errors[model.name];
116
- const size = model.size != null ? formatBytes(model.size) : void 0;
117
- const loadedLabel = running ? running.sizeVram ? t("settings.ollama.loaded.vram", {
118
- size: formatBytes(running.sizeVram)
119
- }) : t("settings.ollama.loaded.label") : void 0;
120
- return /* @__PURE__ */ React.createElement(ListItem, {
121
- key: model.name,
122
- className: "flex flex-col gap-0.5 rounded-sm bg-input-surface px-2 py-1.5 is-full"
123
- }, /* @__PURE__ */ React.createElement("div", {
124
- className: "flex items-center gap-2"
125
- }, /* @__PURE__ */ React.createElement("span", {
126
- className: "grow truncate font-medium"
127
- }, model.name), /* @__PURE__ */ React.createElement(IconButton, {
128
- icon: running ? "ph--eject--regular" : "ph--play--regular",
129
- iconOnly: true,
130
- label: running ? t("settings.ollama.unload.label") : t("settings.ollama.load.label"),
131
- disabled: pending[model.name],
132
- onClick: () => void withPending(model.name, () => EffectEx.runPromise(running ? manager.unload(model.name) : manager.load(model.name)))()
133
- }), /* @__PURE__ */ React.createElement(IconButton, {
134
- icon: "ph--trash--regular",
135
- iconOnly: true,
136
- label: t("settings.ollama.remove.label"),
137
- disabled: pending[model.name],
138
- onClick: () => void withPending(model.name, () => EffectEx.runPromise(manager.remove(model.name)))()
139
- })), (size || loadedLabel || error) && /* @__PURE__ */ React.createElement("div", {
140
- className: "flex items-center gap-2 text-sm"
141
- }, size && /* @__PURE__ */ React.createElement("span", {
142
- className: "text-description"
143
- }, size), loadedLabel && /* @__PURE__ */ React.createElement("span", {
144
- className: "text-success-text"
145
- }, loadedLabel), error && /* @__PURE__ */ React.createElement("span", {
146
- className: "truncate text-error-text"
147
- }, shortError(error))));
148
- }), pulling.map((name) => {
149
- const progress = state.pulls[name];
150
- const status = progress?.total ? t("settings.ollama.pulling.message", {
151
- percent: percentOf(progress)
152
- }) : progress?.status ?? t("settings.ollama.pulling.label");
153
- return /* @__PURE__ */ React.createElement(ListItem, {
154
- key: name,
155
- className: "flex flex-col gap-0.5 rounded-sm bg-input-surface px-2 py-1.5 is-full"
156
- }, /* @__PURE__ */ React.createElement("div", {
157
- className: "flex items-center gap-2"
158
- }, /* @__PURE__ */ React.createElement("span", {
159
- className: "grow truncate font-medium text-description"
160
- }, name), /* @__PURE__ */ React.createElement(IconButton, {
161
- icon: "ph--x--regular",
162
- iconOnly: true,
163
- label: t("settings.ollama.cancel.label"),
164
- onClick: () => void EffectEx.runPromise(manager.cancel(name))
165
- })), /* @__PURE__ */ React.createElement("span", {
166
- className: "text-sm text-description"
167
- }, status));
168
- }))
169
- )), /* @__PURE__ */ React.createElement(Form.Row, {
170
- label: t("settings.ollama.pull.label")
171
- }, Object.entries(state.errors).filter(([name]) => !installed.has(name)).map(([name, error]) => /* @__PURE__ */ React.createElement("p", {
172
- key: name,
173
- className: "text-xs text-error-text"
174
- }, name, ": ", shortError(error))), /* @__PURE__ */ React.createElement(Combobox.Root, {
175
- open,
176
- onOpenChange: setOpen,
177
- value: "",
178
- onValueChange: () => {
179
- },
180
- placeholder: t("settings.ollama.pull.placeholder")
181
- }, /* @__PURE__ */ React.createElement(Combobox.Trigger, {
182
- classNames: "is-full"
183
- }), /* @__PURE__ */ React.createElement(Combobox.Portal, null, /* @__PURE__ */ React.createElement(Combobox.Content, null, /* @__PURE__ */ React.createElement(Combobox.Input, {
184
- value: query,
185
- onValueChange: setQuery,
186
- placeholder: t("settings.ollama.pull.placeholder"),
187
- onKeyDown: (event) => {
188
- if (event.key === "Enter" && filter.length > 0) {
189
- handlePull(filter);
190
- }
191
- }
192
- }), /* @__PURE__ */ React.createElement(Combobox.List, null, offerCustom && /* @__PURE__ */ React.createElement(Combobox.Item, {
193
- value: filter,
194
- label: t("settings.ollama.pull-custom.label", {
195
- name: filter
196
- }),
197
- icon: "ph--download-simple--regular",
198
- onSelect: () => handlePull(filter)
199
- }), suggestions.map((pick) => /* @__PURE__ */ React.createElement(Combobox.Item, {
200
- key: pick,
201
- value: pick,
202
- label: pick,
203
- onSelect: () => handlePull(pick)
204
- }))), /* @__PURE__ */ React.createElement(Combobox.Arrow, null))))));
205
- };
206
- var shortError = (error) => {
207
- const head = error.split(/\s*\(checked:/)[0].trim();
208
- return head.length > 160 ? `${head.slice(0, 160)}\u2026` : head;
209
- };
210
- var percentOf = (progress) => progress && progress.total && progress.total > 0 ? Math.round((progress.completed ?? 0) / progress.total * 100) : 0;
211
- var UNITS = [
212
- "B",
213
- "KB",
214
- "MB",
215
- "GB",
216
- "TB"
217
- ];
218
- var formatBytes = (bytes) => {
219
- let value = bytes;
220
- let unit = 0;
221
- while (value >= 1024 && unit < UNITS.length - 1) {
222
- value /= 1024;
223
- unit += 1;
224
- }
225
- return `${value.toFixed(unit === 0 ? 0 : 1)} ${UNITS[unit]}`;
226
- };
227
-
228
- // src/containers/AssistantSettings/AssistantSettings.tsx
229
- var presetOptions = (provider, installed) => presetsForProvider(provider).filter((preset) => !installed || installed.has(preset.backend)).map((preset) => ({
230
- value: preset.model,
231
- label: preset.label
232
- }));
233
- var AssistantSettings = ({ settings, onSettingsChange }) => {
234
- const { t } = useTranslation2(meta2.profile.key);
235
- const ollamaManager = useOptionalCapability2(AssistantCapabilities2.OllamaManager);
236
- const localProvider = ollamaManager ? Provider2.builtIn : Provider2.ollama;
237
- const localProviderKey = ollamaManager ? "built-in" : "ollama";
238
- const localModels = useAtomValue2(ollamaManager?.state ?? Ollama.emptyState);
239
- const installed = useMemo(() => new Set(localModels.models.map((model) => model.name)), [
240
- localModels
241
- ]);
242
- const values = useMemo(() => ({
243
- ...settings,
244
- modelProvider: resolveProvider(settings.modelProvider, !!ollamaManager)
245
- }), [
246
- settings,
247
- ollamaManager
248
- ]);
249
- const fieldMap = useMemo(() => ({
250
- // `defaultLabel: null` drops the sentinel "Default" option — a provider is always concrete.
251
- "modelProvider": createSelectField({
252
- defaultLabel: null,
253
- options: [
254
- {
255
- value: Provider2.edge.id,
256
- label: t("settings.provider.edge.label")
257
- },
258
- {
259
- value: localProvider.id,
260
- label: t(`settings.provider.${localProviderKey}.label`)
261
- },
262
- {
263
- value: Provider2.lmStudio.id,
264
- label: t("settings.provider.lmstudio.label")
265
- }
266
- ]
267
- }),
268
- "modelDefaults.edge": createSelectField({
269
- options: presetOptions(Provider2.edge.id)
270
- }),
271
- // `built-in` and `ollama` share the `ollama` default key; the managed sidecar restricts to installed.
272
- "modelDefaults.ollama": createSelectField({
273
- options: presetOptions(localProvider.id, ollamaManager ? installed : void 0)
274
- }),
275
- "modelDefaults.lmstudio": createSelectField({
276
- options: presetOptions(Provider2.lmStudio.id)
277
- })
278
- }), [
279
- t,
280
- localProvider,
281
- localProviderKey,
282
- ollamaManager,
283
- installed
284
- ]);
285
- return /* @__PURE__ */ React2.createElement(Form2.Root, {
286
- variant: "settings",
287
- schema: Assistant.Settings,
288
- readonly: !onSettingsChange,
289
- values,
290
- onValuesChanged: (values2) => onSettingsChange?.(() => values2)
291
- }, /* @__PURE__ */ React2.createElement(Form2.Viewport, {
292
- scroll: true
293
- }, /* @__PURE__ */ React2.createElement(Form2.Content, null, /* @__PURE__ */ React2.createElement(Form2.Section, {
294
- title: meta2.profile.name ?? meta2.profile.key
295
- }, /* @__PURE__ */ React2.createElement(Form2.FieldSet, {
296
- fieldMap
297
- })), /* @__PURE__ */ React2.createElement(OllamaModels, null))));
298
- };
299
- export {
300
- AssistantSettings as default
301
- };
302
- //# sourceMappingURL=AssistantSettings-3N5M5VCN.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/AssistantSettings/AssistantSettings.tsx", "../../../src/containers/AssistantSettings/OllamaModels.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport React, { useMemo } from 'react';\n\nimport { Provider } from '@dxos/ai';\nimport { useOptionalCapability } from '@dxos/app-framework/ui';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { type DXN } from '@dxos/keys';\nimport { useTranslation } from '@dxos/react-ui';\nimport { Form, type FormFieldMap, createSelectField } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\nimport { Assistant, AssistantCapabilities, Ollama } from '#types';\n\nimport { presetsForProvider, resolveProvider } from '../../processor';\nimport { OllamaModels } from './OllamaModels';\n\nexport type AssistantSettingsProps = AppSurface.SettingsProps<Assistant.Settings>;\n\n// The per-provider model-default options must match the chat picker (usePresets): the catalog models\n// served by the provider, restricted to installed models when `installed` is supplied (local sidecar).\nconst presetOptions = (provider: DXN.DXN, installed?: ReadonlySet<string>) =>\n presetsForProvider(provider)\n .filter((preset) => !installed || installed.has(preset.backend))\n .map((preset) => ({ value: preset.model, label: preset.label }));\n\nexport const AssistantSettings = ({ settings, onSettingsChange }: AssistantSettingsProps) => {\n const { t } = useTranslation(meta.profile.key);\n\n // The Ollama manager is the bundled sidecar (desktop only). Its presence selects the local\n // provider: the managed `built-in` vs. an external `ollama` server.\n const ollamaManager = useOptionalCapability(AssistantCapabilities.OllamaManager);\n const localProvider = ollamaManager ? Provider.builtIn : Provider.ollama;\n const localProviderKey = ollamaManager ? 'built-in' : 'ollama';\n\n // Installed models reported by the bundled sidecar; restricts the local default to present models.\n const localModels = useAtomValue(ollamaManager?.state ?? Ollama.emptyState);\n const installed = useMemo(() => new Set(localModels.models.map((model) => model.name)), [localModels]);\n\n // Reconcile a stored provider with the runtime (`ollama` → `built-in` on desktop) so the\n // dropdown shows a concrete, available selection rather than blank.\n const values = useMemo(\n () => ({ ...settings, modelProvider: resolveProvider(settings.modelProvider, !!ollamaManager) }),\n [settings, ollamaManager],\n );\n\n // Form `fieldMap` is keyed by dotted JSON path, so nested struct leaves are addressed directly.\n const fieldMap = useMemo<FormFieldMap>(\n () => ({\n // `defaultLabel: null` drops the sentinel \"Default\" option — a provider is always concrete.\n 'modelProvider': createSelectField({\n defaultLabel: null,\n options: [\n { value: Provider.edge.id, label: t('settings.provider.edge.label') },\n { value: localProvider.id, label: t(`settings.provider.${localProviderKey}.label`) },\n { value: Provider.lmStudio.id, label: t('settings.provider.lmstudio.label') },\n ],\n }),\n 'modelDefaults.edge': createSelectField({ options: presetOptions(Provider.edge.id) }),\n // `built-in` and `ollama` share the `ollama` default key; the managed sidecar restricts to installed.\n 'modelDefaults.ollama': createSelectField({\n options: presetOptions(localProvider.id, ollamaManager ? installed : undefined),\n }),\n 'modelDefaults.lmstudio': createSelectField({ options: presetOptions(Provider.lmStudio.id) }),\n }),\n [t, localProvider, localProviderKey, ollamaManager, installed],\n );\n\n return (\n <Form.Root\n variant='settings'\n schema={Assistant.Settings}\n readonly={!onSettingsChange}\n values={values}\n onValuesChanged={(values) => onSettingsChange?.(() => values)}\n >\n <Form.Viewport scroll>\n <Form.Content>\n <Form.Section title={meta.profile.name ?? meta.profile.key}>\n <Form.FieldSet fieldMap={fieldMap} />\n </Form.Section>\n <OllamaModels />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useAtomValue } from '@effect-atom/atom-react';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { Model, Provider } from '@dxos/ai';\nimport { useOptionalCapability } from '@dxos/app-framework/ui';\nimport { EffectEx } from '@dxos/effect';\nimport { List, ListItem } from '@dxos/react-list';\nimport { IconButton, useTranslation } from '@dxos/react-ui';\nimport { Form } from '@dxos/react-ui-form';\nimport { Combobox } from '@dxos/react-ui-list';\n\nimport { meta } from '#meta';\nimport { AssistantCapabilities, type Ollama } from '#types';\n\n/** Quick-pick model names (Ollama pull tags) sourced from the curated catalog. */\nconst QUICK_PICKS = Model.forProvider(Provider.ollama.id).map((model) => model.backend);\n\n/** Poll interval for the loaded-into-memory set while the settings panel is open. */\nconst LOADED_POLL_INTERVAL = 3_000;\n\n/**\n * Manage locally-installed Ollama models. The {@link AssistantCapabilities.OllamaManager}\n * capability is only contributed by the native (desktop) runtime, so this renders nothing in the\n * browser/mobile. Split from the section body so hooks are never called conditionally.\n */\nexport const OllamaModels = () => {\n const manager = useOptionalCapability(AssistantCapabilities.OllamaManager);\n if (!manager) {\n return null;\n }\n\n return <OllamaModelsSection manager={manager} />;\n};\n\nexport const OllamaModelsSection = ({ manager }: { manager: Ollama.Manager }) => {\n const { t } = useTranslation(meta.profile.key);\n // Explicit subscription: the list and badges must re-render as pulls/installs/loads land.\n const state = useAtomValue(manager.state);\n const [query, setQuery] = useState('');\n const [open, setOpen] = useState(false);\n // UI-level gate keyed by model name, guaranteeing a visible busy state across the click handler.\n const [pending, setPending] = useState<Record<string, boolean>>({});\n\n // Ensure the sidecar is up and list installed models on mount.\n useEffect(() => {\n void EffectEx.runPromise(manager.refresh);\n }, [manager]);\n\n // Poll the loaded-into-memory set so the panel reflects which model is resident in real time.\n useEffect(() => {\n const interval = setInterval(() => void EffectEx.runPromise(manager.refreshLoaded), LOADED_POLL_INTERVAL);\n return () => clearInterval(interval);\n }, [manager]);\n\n const installed = new Set(state.models.map((model) => model.name));\n const loaded = new Map(state.loaded.map((model) => [model.name, model]));\n const pulling = Object.keys(state.pulls).filter((name) => !installed.has(name));\n\n const withPending = useCallback(\n (key: string, action: () => Promise<void>) => async () => {\n setPending((prev) => ({ ...prev, [key]: true }));\n try {\n await action();\n } finally {\n setPending((prev) => ({ ...prev, [key]: false }));\n }\n },\n [],\n );\n\n const handlePull = useCallback(\n (target: string) => {\n const trimmed = target.trim();\n if (trimmed.length === 0) {\n return;\n }\n setQuery('');\n setOpen(false);\n void withPending(trimmed, () => EffectEx.runPromise(manager.pull(trimmed)))();\n },\n [manager, withPending],\n );\n\n // Caller-driven filtering: curated picks not yet installed, matching the typed query.\n const filter = query.trim();\n const suggestions = QUICK_PICKS.filter((pick) => !installed.has(pick) && (filter === '' || pick.includes(filter)));\n const offerCustom = filter.length > 0 && !installed.has(filter) && !suggestions.includes(filter);\n const empty = state.models.length === 0 && pulling.length === 0;\n\n return (\n <Form.Section title={t('settings.ollama.title')}>\n <Form.Row label={t('settings.ollama.installed.label')}>\n {state.kind === 'failed' && state.error ? (\n // Connection-level failure has no associated model, so it shows inline as the row content.\n <p className='text-sm text-error-text'>{t('settings.ollama.failed.message', { error: state.error })}</p>\n ) : empty ? (\n <p className='text-sm text-description'>{t('settings.ollama.empty.message')}</p>\n ) : (\n // Plain `List`/`ListItem` (non-select), with the trigger editor's \"fatter\" two-line row\n // treatment: a name line plus a secondary meta line, on a surface-styled row. Rows are\n // actioned via their trailing buttons (no selection semantics).\n <List variant='unordered' className='flex flex-col gap-1 grow is-full text-left'>\n {state.models.map((model) => {\n const running = loaded.get(model.name);\n const error = state.errors[model.name];\n const size = model.size != null ? formatBytes(model.size) : undefined;\n const loadedLabel = running\n ? running.sizeVram\n ? t('settings.ollama.loaded.vram', { size: formatBytes(running.sizeVram) })\n : t('settings.ollama.loaded.label')\n : undefined;\n return (\n <ListItem\n key={model.name}\n className='flex flex-col gap-0.5 rounded-sm bg-input-surface px-2 py-1.5 is-full'\n >\n <div className='flex items-center gap-2'>\n <span className='grow truncate font-medium'>{model.name}</span>\n <IconButton\n icon={running ? 'ph--eject--regular' : 'ph--play--regular'}\n iconOnly\n label={running ? t('settings.ollama.unload.label') : t('settings.ollama.load.label')}\n disabled={pending[model.name]}\n onClick={() =>\n void withPending(model.name, () =>\n EffectEx.runPromise(running ? manager.unload(model.name) : manager.load(model.name)),\n )()\n }\n />\n <IconButton\n icon='ph--trash--regular'\n iconOnly\n label={t('settings.ollama.remove.label')}\n disabled={pending[model.name]}\n onClick={() =>\n void withPending(model.name, () => EffectEx.runPromise(manager.remove(model.name)))()\n }\n />\n </div>\n {(size || loadedLabel || error) && (\n <div className='flex items-center gap-2 text-sm'>\n {size && <span className='text-description'>{size}</span>}\n {loadedLabel && <span className='text-success-text'>{loadedLabel}</span>}\n {error && <span className='truncate text-error-text'>{shortError(error)}</span>}\n </div>\n )}\n </ListItem>\n );\n })}\n {pulling.map((name) => {\n const progress = state.pulls[name];\n const status = progress?.total\n ? t('settings.ollama.pulling.message', { percent: percentOf(progress) })\n : (progress?.status ?? t('settings.ollama.pulling.label'));\n return (\n <ListItem key={name} className='flex flex-col gap-0.5 rounded-sm bg-input-surface px-2 py-1.5 is-full'>\n <div className='flex items-center gap-2'>\n <span className='grow truncate font-medium text-description'>{name}</span>\n <IconButton\n icon='ph--x--regular'\n iconOnly\n label={t('settings.ollama.cancel.label')}\n onClick={() => void EffectEx.runPromise(manager.cancel(name))}\n />\n </div>\n <span className='text-sm text-description'>{status}</span>\n </ListItem>\n );\n })}\n </List>\n )}\n </Form.Row>\n\n <Form.Row label={t('settings.ollama.pull.label')}>\n {/* Pull failures for not-yet-installed models surface here (no model row to attach to). */}\n {Object.entries(state.errors)\n .filter(([name]) => !installed.has(name))\n .map(([name, error]) => (\n <p key={name} className='text-xs text-error-text'>\n {name}: {shortError(error)}\n </p>\n ))}\n {/* Root value is held empty so the trigger always shows the placeholder; the live text is\n the separate `query` driving the input and suggestion filter. */}\n <Combobox.Root\n open={open}\n onOpenChange={setOpen}\n value=''\n onValueChange={() => {}}\n placeholder={t('settings.ollama.pull.placeholder')}\n >\n <Combobox.Trigger classNames='is-full' />\n <Combobox.Portal>\n <Combobox.Content>\n <Combobox.Input\n value={query}\n onValueChange={setQuery}\n placeholder={t('settings.ollama.pull.placeholder')}\n onKeyDown={(event) => {\n if (event.key === 'Enter' && filter.length > 0) {\n handlePull(filter);\n }\n }}\n />\n <Combobox.List>\n {offerCustom && (\n <Combobox.Item\n value={filter}\n label={t('settings.ollama.pull-custom.label', { name: filter })}\n icon='ph--download-simple--regular'\n onSelect={() => handlePull(filter)}\n />\n )}\n {suggestions.map((pick) => (\n <Combobox.Item key={pick} value={pick} label={pick} onSelect={() => handlePull(pick)} />\n ))}\n </Combobox.List>\n <Combobox.Arrow />\n </Combobox.Content>\n </Combobox.Portal>\n </Combobox.Root>\n </Form.Row>\n </Form.Section>\n );\n};\n\n/**\n * Condense a verbose service error for inline display: drop Ollama's \"(checked: <paths>)\" path dump\n * and cap the length. The full message is still logged to the console.\n */\nconst shortError = (error: string): string => {\n const head = error.split(/\\s*\\(checked:/)[0].trim();\n return head.length > 160 ? `${head.slice(0, 160)}…` : head;\n};\n\n/** Percent complete for an in-flight pull, or 0 when totals are not yet known. */\nconst percentOf = (progress: Ollama.ModelsState['pulls'][string] | undefined): number =>\n progress && progress.total && progress.total > 0 ? Math.round(((progress.completed ?? 0) / progress.total) * 100) : 0;\n\nconst UNITS = ['B', 'KB', 'MB', 'GB', 'TB'];\n\n/** Human-readable byte size (binary units). */\nconst formatBytes = (bytes: number): string => {\n let value = bytes;\n let unit = 0;\n while (value >= 1024 && unit < UNITS.length - 1) {\n value /= 1024;\n unit += 1;\n }\n return `${value.toFixed(unit === 0 ? 0 : 1)} ${UNITS[unit]}`;\n};\n"],
5
- "mappings": "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",
6
- "names": ["useAtomValue", "React", "useMemo", "Provider", "useOptionalCapability", "useTranslation", "Form", "createSelectField", "meta", "Assistant", "AssistantCapabilities", "Ollama", "useAtomValue", "React", "useCallback", "useEffect", "useState", "Model", "Provider", "useOptionalCapability", "EffectEx", "List", "ListItem", "IconButton", "useTranslation", "Form", "Combobox", "meta", "AssistantCapabilities", "QUICK_PICKS", "forProvider", "ollama", "id", "map", "model", "backend", "LOADED_POLL_INTERVAL", "OllamaModels", "manager", "OllamaManager", "OllamaModelsSection", "t", "profile", "key", "state", "query", "setQuery", "open", "setOpen", "pending", "setPending", "runPromise", "refresh", "interval", "setInterval", "refreshLoaded", "clearInterval", "installed", "Set", "models", "name", "loaded", "Map", "pulling", "Object", "keys", "pulls", "filter", "has", "withPending", "action", "prev", "handlePull", "target", "trimmed", "trim", "length", "pull", "suggestions", "pick", "includes", "offerCustom", "empty", "Section", "title", "Row", "label", "kind", "error", "p", "className", "variant", "running", "get", "errors", "size", "formatBytes", "undefined", "loadedLabel", "sizeVram", "div", "span", "icon", "iconOnly", "disabled", "onClick", "unload", "load", "remove", "shortError", "progress", "status", "total", "percent", "percentOf", "cancel", "entries", "Root", "onOpenChange", "value", "onValueChange", "placeholder", "Trigger", "classNames", "Portal", "Content", "Input", "onKeyDown", "event", "Item", "onSelect", "Arrow", "head", "split", "slice", "Math", "round", "completed", "UNITS", "bytes", "unit", "toFixed", "presetOptions", "provider", "installed", "presetsForProvider", "filter", "preset", "has", "backend", "map", "value", "model", "label", "AssistantSettings", "settings", "onSettingsChange", "t", "useTranslation", "meta", "profile", "key", "ollamaManager", "useOptionalCapability", "AssistantCapabilities", "OllamaManager", "localProvider", "Provider", "builtIn", "ollama", "localProviderKey", "localModels", "useAtomValue", "state", "Ollama", "emptyState", "useMemo", "Set", "models", "name", "values", "modelProvider", "resolveProvider", "fieldMap", "createSelectField", "defaultLabel", "options", "edge", "id", "lmStudio", "undefined", "React", "Form", "Root", "variant", "schema", "Assistant", "Settings", "readonly", "onValuesChanged", "Viewport", "scroll", "Content", "Section", "title", "FieldSet", "OllamaModels"]
7
- }
@@ -1,8 +0,0 @@
1
- import {
2
- ChatArticle
3
- } from "./chunk-UPKFUZ6V.mjs";
4
- import "./chunk-J5LGTIGS.mjs";
5
- export {
6
- ChatArticle as default
7
- };
8
- //# sourceMappingURL=ChatArticle-OO7GGEFW.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,128 +0,0 @@
1
- import {
2
- ChatArticle
3
- } from "./chunk-UPKFUZ6V.mjs";
4
- import "./chunk-J5LGTIGS.mjs";
5
-
6
- // src/containers/ChatCompanion/ChatCompanion.tsx
7
- import * as Option from "effect/Option";
8
- import React, { forwardRef, useCallback, useMemo } from "react";
9
- import { useOperationInvoker } from "@dxos/app-framework/ui";
10
- import { AppAnnotation } from "@dxos/app-toolkit";
11
- import { Chat } from "@dxos/assistant-toolkit";
12
- import { getSpace } from "@dxos/client/echo";
13
- import { Skill } from "@dxos/compute";
14
- import { Entity, Filter, Obj, Ref, Type } from "@dxos/echo";
15
- import { SpaceOperation } from "@dxos/plugin-space";
16
- import { useObject, useQuery, useRegistry } from "@dxos/react-client/echo";
17
- import { useAsyncEffect } from "@dxos/react-ui";
18
- import { useContextBinder } from "#hooks";
19
- import { AssistantOperation } from "#types";
20
- var ChatCompanion = /* @__PURE__ */ forwardRef(({ role = "article", subject: chat, companionTo, attendableId }, forwardedRef) => {
21
- const { invokePromise } = useOperationInvoker();
22
- const space = getSpace(companionTo);
23
- useSkills({
24
- subject: chat,
25
- companionTo
26
- });
27
- const handleSubmit = useCallback(async () => {
28
- if (!space || !chat || Obj.getDatabase(chat)) {
29
- return;
30
- }
31
- await invokePromise(SpaceOperation.AddObject, {
32
- object: chat,
33
- target: space.db
34
- });
35
- await invokePromise(SpaceOperation.AddRelation, {
36
- db: space.db,
37
- schema: Chat.CompanionTo,
38
- source: chat,
39
- target: companionTo
40
- });
41
- await invokePromise(AssistantOperation.SetCurrentChat, {
42
- companionTo,
43
- chat
44
- });
45
- await space.db.flush();
46
- }, [
47
- space,
48
- chat,
49
- companionTo,
50
- invokePromise
51
- ]);
52
- return /* @__PURE__ */ React.createElement(ChatArticle, {
53
- role,
54
- subject: chat,
55
- attendableId,
56
- companionTo,
57
- onSubmit: handleSubmit,
58
- ref: forwardedRef
59
- });
60
- });
61
- var useSkills = ({ subject: chat, companionTo }) => {
62
- const registry = useRegistry();
63
- const space = getSpace(companionTo);
64
- const [feedSnapshot] = useObject(chat?.feed);
65
- const feedTarget = Obj.getReactiveOrUndefined(feedSnapshot);
66
- const binder = useContextBinder(space, feedTarget);
67
- const skillKeys = useMemo(() => {
68
- const schema = companionTo ? Obj.getType(companionTo) : void 0;
69
- if (!schema) {
70
- return [];
71
- }
72
- return Option.getOrElse(() => [])(AppAnnotation.SkillsAnnotation.get(Type.getSchema(schema)));
73
- }, [
74
- companionTo
75
- ]);
76
- const existingSkills = useQuery(space?.db, Filter.type(Skill.Skill));
77
- const pluginSkills = useMemo(() => existingSkills.filter((skill) => {
78
- const key = Obj.getMeta(skill).key;
79
- return key !== void 0 && skillKeys.includes(key);
80
- }), [
81
- existingSkills,
82
- skillKeys
83
- ]);
84
- useAsyncEffect(async () => {
85
- if (!binder?.isOpen) {
86
- return;
87
- }
88
- if (skillKeys.length > 0) {
89
- const registryKeys = skillKeys.filter((key) => {
90
- const candidate = registry.list().find((e) => Entity.getMeta(e)?.key === key);
91
- return candidate != null && Obj.instanceOf(Skill.Skill, candidate);
92
- });
93
- const dbForks = pluginSkills.filter((bp) => !registryKeys.includes(Obj.getMeta(bp).key ?? ""));
94
- if (registryKeys.length > 0) {
95
- await binder.bind({
96
- skills: registryKeys.map((key) => Ref.fromURI(Skill.registryURI(key)))
97
- });
98
- }
99
- if (dbForks.length > 0) {
100
- await binder.bind({
101
- skills: dbForks.map((skill) => Ref.make(skill))
102
- });
103
- }
104
- }
105
- if (Obj.instanceOf(Skill.Skill, companionTo)) {
106
- await binder.bind({
107
- skills: [
108
- Ref.make(companionTo)
109
- ]
110
- });
111
- } else {
112
- await binder.bind({
113
- objects: [
114
- Ref.make(companionTo)
115
- ]
116
- });
117
- }
118
- }, [
119
- binder,
120
- skillKeys,
121
- pluginSkills,
122
- companionTo
123
- ]);
124
- };
125
- export {
126
- ChatCompanion as default
127
- };
128
- //# sourceMappingURL=ChatCompanion-GIFJRY6I.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/ChatCompanion/ChatCompanion.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport React, { forwardRef, useCallback, useMemo } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { AppAnnotation } from '@dxos/app-toolkit';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { getSpace } from '@dxos/client/echo';\nimport { Skill } from '@dxos/compute';\nimport { Entity, Filter, Obj, Ref, Type } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { useObject, useQuery, useRegistry } from '@dxos/react-client/echo';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport { useContextBinder } from '#hooks';\nimport { AssistantOperation } from '#types';\n\nimport ChatArticle from '../ChatArticle';\n\nexport type ChatCompanionProps = AppSurface.ArticleProps<Chat.Chat, {}, Obj.Unknown>;\n\nexport const ChatCompanion = forwardRef<HTMLDivElement, ChatCompanionProps>(\n ({ role = 'article', subject: chat, companionTo, attendableId }, forwardedRef) => {\n const { invokePromise } = useOperationInvoker();\n const space = getSpace(companionTo);\n useSkills({ subject: chat, companionTo });\n\n // Persist (and flush) a transient chat before the first request so the agent can resolve\n // the now-durable conversation feed; subsequent submits are a no-op once persisted.\n const handleSubmit = useCallback(async () => {\n if (!space || !chat || Obj.getDatabase(chat)) {\n return;\n }\n\n await invokePromise(SpaceOperation.AddObject, {\n object: chat,\n target: space.db,\n });\n await invokePromise(SpaceOperation.AddRelation, {\n db: space.db,\n schema: Chat.CompanionTo,\n source: chat,\n target: companionTo,\n });\n await invokePromise(AssistantOperation.SetCurrentChat, {\n companionTo,\n chat,\n });\n await space.db.flush();\n }, [space, chat, companionTo, invokePromise]);\n\n return (\n <ChatArticle\n role={role}\n subject={chat}\n attendableId={attendableId}\n companionTo={companionTo}\n onSubmit={handleSubmit}\n ref={forwardedRef}\n />\n );\n },\n);\n\n/**\n * Bind skills to the context.\n */\n// TODO(burdon): Why is this only in the companion?\nconst useSkills = ({ subject: chat, companionTo }: Pick<ChatCompanionProps, 'subject' | 'companionTo'>) => {\n const registry = useRegistry();\n const space = getSpace(companionTo);\n const [feedSnapshot] = useObject(chat?.feed);\n const feedTarget = Obj.getReactiveOrUndefined(feedSnapshot);\n const binder = useContextBinder(space, feedTarget);\n\n const skillKeys = useMemo(() => {\n const schema = companionTo ? Obj.getType(companionTo) : undefined;\n if (!schema) {\n return [] as string[];\n }\n\n return Option.getOrElse(() => [] as string[])(AppAnnotation.SkillsAnnotation.get(Type.getSchema(schema)));\n }, [companionTo]);\n\n const existingSkills = useQuery(space?.db, Filter.type(Skill.Skill));\n const pluginSkills = useMemo(\n () =>\n existingSkills.filter((skill) => {\n const key = Obj.getMeta(skill).key;\n return key !== undefined && skillKeys.includes(key);\n }),\n [existingSkills, skillKeys],\n );\n\n useAsyncEffect(async () => {\n if (!binder?.isOpen) {\n return;\n }\n\n // Bind annotated skills: use key URI for registry skills (no DB clone needed).\n if (skillKeys.length > 0) {\n const registryKeys = skillKeys.filter((key) => {\n const candidate = registry.list().find((e) => Entity.getMeta(e)?.key === key);\n return candidate != null && Obj.instanceOf(Skill.Skill, candidate);\n });\n\n // DB-forked skills (in space but not in registry).\n const dbForks = pluginSkills.filter((bp) => !registryKeys.includes(Obj.getMeta(bp).key ?? ''));\n if (registryKeys.length > 0) {\n await binder.bind({ skills: registryKeys.map((key) => Ref.fromURI(Skill.registryURI(key))) });\n }\n if (dbForks.length > 0) {\n await binder.bind({ skills: dbForks.map((skill) => Ref.make(skill)) });\n }\n }\n\n if (Obj.instanceOf(Skill.Skill, companionTo)) {\n await binder.bind({ skills: [Ref.make(companionTo)] });\n } else {\n await binder.bind({ objects: [Ref.make(companionTo)] });\n }\n }, [binder, skillKeys, pluginSkills, companionTo]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Option", "React", "forwardRef", "useCallback", "useMemo", "useOperationInvoker", "AppAnnotation", "Chat", "getSpace", "Skill", "Entity", "Filter", "Obj", "Ref", "Type", "SpaceOperation", "useObject", "useQuery", "useRegistry", "useAsyncEffect", "useContextBinder", "AssistantOperation", "ChatCompanion", "forwardRef", "role", "subject", "chat", "companionTo", "attendableId", "forwardedRef", "invokePromise", "useOperationInvoker", "space", "getSpace", "useSkills", "handleSubmit", "useCallback", "Obj", "getDatabase", "SpaceOperation", "AddObject", "object", "target", "db", "AddRelation", "schema", "Chat", "CompanionTo", "source", "AssistantOperation", "SetCurrentChat", "flush", "ChatArticle", "onSubmit", "ref", "registry", "useRegistry", "feedSnapshot", "useObject", "feed", "feedTarget", "getReactiveOrUndefined", "binder", "useContextBinder", "skillKeys", "useMemo", "getType", "undefined", "getOrElse", "AppAnnotation", "SkillsAnnotation", "get", "Type", "getSchema", "existingSkills", "useQuery", "Filter", "type", "Skill", "pluginSkills", "filter", "skill", "key", "getMeta", "includes", "useAsyncEffect", "isOpen", "length", "registryKeys", "candidate", "list", "find", "e", "Entity", "instanceOf", "dbForks", "bp", "bind", "skills", "map", "Ref", "fromURI", "registryURI", "make", "objects"]
7
- }
@@ -1,74 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/containers/ChatDialog/ChatDialog.tsx
4
- import React, { useCallback, useState } from "react";
5
- import { Provider } from "@dxos/ai";
6
- import { useAtomCapability } from "@dxos/app-framework/ui";
7
- import { Obj } from "@dxos/echo";
8
- import { useObject, useRegistry } from "@dxos/react-client/echo";
9
- import { useTranslation } from "@dxos/react-ui";
10
- import { ChatDialog as NaturalChatDialog } from "@dxos/react-ui-chat";
11
- import { Chat } from "#components";
12
- import { useChatProcessor, useChatServices, usePresets } from "#hooks";
13
- import { meta } from "#meta";
14
- import { AssistantCapabilities } from "#types";
15
- var ChatDialog = ({ chat }) => {
16
- const { t } = useTranslation(meta.profile.key);
17
- const db = chat && Obj.getDatabase(chat);
18
- const settings = useAtomCapability(AssistantCapabilities.Settings);
19
- const runtime = useChatServices({
20
- id: db?.spaceId
21
- });
22
- const { preset, ...chatProps } = usePresets(settings);
23
- const online = preset?.provider === Provider.edge.id;
24
- const registry = useRegistry();
25
- const processor = useChatProcessor({
26
- chat,
27
- preset,
28
- runtime,
29
- registry,
30
- settings
31
- });
32
- const [chatViewType] = useObject(chat, "viewType");
33
- const [open, setOpen] = useState(true);
34
- const [expanded, setExpanded] = useState(false);
35
- const handleEvent = useCallback((event) => {
36
- switch (event.type) {
37
- case "submit":
38
- case "thread-open":
39
- setOpen(true);
40
- setExpanded(true);
41
- break;
42
- case "thread-close":
43
- setOpen(false);
44
- break;
45
- }
46
- }, []);
47
- if (!chat || !processor) {
48
- return null;
49
- }
50
- return /* @__PURE__ */ React.createElement(Chat.Root, {
51
- chat,
52
- processor,
53
- onEvent: handleEvent
54
- }, /* @__PURE__ */ React.createElement(NaturalChatDialog.Root, {
55
- open,
56
- expanded,
57
- onOpenChange: setOpen
58
- }, /* @__PURE__ */ React.createElement(NaturalChatDialog.Header, {
59
- title: t("assistant-dialog.title")
60
- }), /* @__PURE__ */ React.createElement(NaturalChatDialog.Content, null, /* @__PURE__ */ React.createElement(Chat.Thread, {
61
- viewType: chatViewType ?? settings.chatView
62
- })), /* @__PURE__ */ React.createElement(NaturalChatDialog.Footer, {
63
- classNames: "p-1.5"
64
- }, /* @__PURE__ */ React.createElement(Chat.Prompt, {
65
- ...chatProps,
66
- preset: preset?.id,
67
- online,
68
- expandable: true
69
- }))));
70
- };
71
- export {
72
- ChatDialog as default
73
- };
74
- //# sourceMappingURL=ChatDialog-5MXN4MXS.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/ChatDialog/ChatDialog.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { Provider } from '@dxos/ai';\nimport { useAtomCapability } from '@dxos/app-framework/ui';\nimport { type Chat as ChatTypes } from '@dxos/assistant-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { useObject, useRegistry } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { ChatDialog as NaturalChatDialog } from '@dxos/react-ui-chat';\n\nimport { Chat, type ChatRootProps } from '#components';\nimport { useChatProcessor, useChatServices, usePresets } from '#hooks';\nimport { meta } from '#meta';\nimport { type Assistant, AssistantCapabilities } from '#types';\n\nexport type ChatDialogProps = {\n chat?: ChatTypes.Chat;\n};\n\nexport const ChatDialog = ({ chat }: ChatDialogProps) => {\n const { t } = useTranslation(meta.profile.key);\n\n const db = chat && Obj.getDatabase(chat);\n const settings = useAtomCapability(AssistantCapabilities.Settings);\n const runtime = useChatServices({ id: db?.spaceId });\n const { preset, ...chatProps } = usePresets(settings);\n const online = preset?.provider === Provider.edge.id;\n const registry = useRegistry();\n const processor = useChatProcessor({ chat, preset, runtime, registry, settings });\n // Subscribe via `useObject` so the thread re-renders when ChatOptions changes the view type.\n const [chatViewType] = useObject(chat, 'viewType');\n\n // TODO(burdon): Refocus when open.\n const [open, setOpen] = useState(true);\n const [expanded, setExpanded] = useState(false);\n const handleEvent = useCallback<NonNullable<ChatRootProps['onEvent']>>((event) => {\n switch (event.type) {\n case 'submit':\n case 'thread-open':\n setOpen(true);\n setExpanded(true);\n break;\n case 'thread-close':\n setOpen(false);\n break;\n }\n }, []);\n\n if (!chat || !processor) {\n return null;\n }\n\n return (\n <Chat.Root chat={chat} processor={processor} onEvent={handleEvent}>\n <NaturalChatDialog.Root open={open} expanded={expanded} onOpenChange={setOpen}>\n <NaturalChatDialog.Header title={t('assistant-dialog.title')} />\n <NaturalChatDialog.Content>\n <Chat.Thread viewType={(chatViewType as Assistant.ChatView | undefined) ?? settings.chatView} />\n </NaturalChatDialog.Content>\n <NaturalChatDialog.Footer classNames='p-1.5'>\n <Chat.Prompt {...chatProps} preset={preset?.id} online={online} expandable />\n </NaturalChatDialog.Footer>\n </NaturalChatDialog.Root>\n </Chat.Root>\n );\n};\n"],
5
- "mappings": ";;;AAIA,OAAOA,SAASC,aAAaC,gBAAgB;AAE7C,SAASC,gBAAgB;AACzB,SAASC,yBAAyB;AAElC,SAASC,WAAW;AACpB,SAASC,WAAWC,mBAAmB;AACvC,SAASC,sBAAsB;AAC/B,SAASC,cAAcC,yBAAyB;AAEhD,SAASC,YAAgC;AACzC,SAASC,kBAAkBC,iBAAiBC,kBAAkB;AAC9D,SAASC,YAAY;AACrB,SAAyBC,6BAA6B;AAM/C,IAAMP,aAAa,CAAC,EAAEQ,KAAI,MAAmB;AAClD,QAAM,EAAEC,EAAC,IAAKV,eAAeO,KAAKI,QAAQC,GAAG;AAE7C,QAAMC,KAAKJ,QAAQZ,IAAIiB,YAAYL,IAAAA;AACnC,QAAMM,WAAWnB,kBAAkBY,sBAAsBQ,QAAQ;AACjE,QAAMC,UAAUZ,gBAAgB;IAAEa,IAAIL,IAAIM;EAAQ,CAAA;AAClD,QAAM,EAAEC,QAAQ,GAAGC,UAAAA,IAAcf,WAAWS,QAAAA;AAC5C,QAAMO,SAASF,QAAQG,aAAa5B,SAAS6B,KAAKN;AAClD,QAAMO,WAAW1B,YAAAA;AACjB,QAAM2B,YAAYtB,iBAAiB;IAAEK;IAAMW;IAAQH;IAASQ;IAAUV;EAAS,CAAA;AAE/E,QAAM,CAACY,YAAAA,IAAgB7B,UAAUW,MAAM,UAAA;AAGvC,QAAM,CAACmB,MAAMC,OAAAA,IAAWnC,SAAS,IAAA;AACjC,QAAM,CAACoC,UAAUC,WAAAA,IAAerC,SAAS,KAAA;AACzC,QAAMsC,cAAcvC,YAAmD,CAACwC,UAAAA;AACtE,YAAQA,MAAMC,MAAI;MAChB,KAAK;MACL,KAAK;AACHL,gBAAQ,IAAA;AACRE,oBAAY,IAAA;AACZ;MACF,KAAK;AACHF,gBAAQ,KAAA;AACR;IACJ;EACF,GAAG,CAAA,CAAE;AAEL,MAAI,CAACpB,QAAQ,CAACiB,WAAW;AACvB,WAAO;EACT;AAEA,SACE,sBAAA,cAACvB,KAAKgC,MAAI;IAAC1B;IAAYiB;IAAsBU,SAASJ;KACpD,sBAAA,cAAC9B,kBAAkBiC,MAAI;IAACP;IAAYE;IAAoBO,cAAcR;KACpE,sBAAA,cAAC3B,kBAAkBoC,QAAM;IAACC,OAAO7B,EAAE,wBAAA;MACnC,sBAAA,cAACR,kBAAkBsC,SAAO,MACxB,sBAAA,cAACrC,KAAKsC,QAAM;IAACC,UAAWf,gBAAmDZ,SAAS4B;OAEtF,sBAAA,cAACzC,kBAAkB0C,QAAM;IAACC,YAAW;KACnC,sBAAA,cAAC1C,KAAK2C,QAAM;IAAE,GAAGzB;IAAWD,QAAQA,QAAQF;IAAII;IAAgByB,YAAAA;;AAK1E;",
6
- "names": ["React", "useCallback", "useState", "Provider", "useAtomCapability", "Obj", "useObject", "useRegistry", "useTranslation", "ChatDialog", "NaturalChatDialog", "Chat", "useChatProcessor", "useChatServices", "usePresets", "meta", "AssistantCapabilities", "chat", "t", "profile", "key", "db", "getDatabase", "settings", "Settings", "runtime", "id", "spaceId", "preset", "chatProps", "online", "provider", "edge", "registry", "processor", "chatViewType", "open", "setOpen", "expanded", "setExpanded", "handleEvent", "event", "type", "Root", "onEvent", "onOpenChange", "Header", "title", "Content", "Thread", "viewType", "chatView", "Footer", "classNames", "Prompt", "expandable"]
7
- }