@dxos/plugin-assistant 0.8.4-main.3eb6e50203 → 0.8.4-main.422d1c7879

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs +97 -0
  2. package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs.map +7 -0
  3. package/dist/lib/browser/blueprints/index.mjs +3 -7
  4. package/dist/lib/browser/chunk-ATHYBVGN.mjs +176 -0
  5. package/dist/lib/browser/chunk-ATHYBVGN.mjs.map +7 -0
  6. package/dist/lib/browser/chunk-EZRS3J25.mjs +30 -0
  7. package/dist/lib/browser/chunk-EZRS3J25.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-LMVTXH54.mjs +154 -0
  9. package/dist/lib/browser/chunk-LMVTXH54.mjs.map +7 -0
  10. package/dist/lib/browser/cli/index.mjs +74 -0
  11. package/dist/lib/browser/cli/index.mjs.map +7 -0
  12. package/dist/lib/browser/create-chat-LBZHGVSN.mjs +82 -0
  13. package/dist/lib/browser/create-chat-LBZHGVSN.mjs.map +7 -0
  14. package/dist/lib/browser/ensure-companion-chat-ZEZA34MZ.mjs +65 -0
  15. package/dist/lib/browser/ensure-companion-chat-ZEZA34MZ.mjs.map +7 -0
  16. package/dist/lib/browser/index.mjs +3308 -264
  17. package/dist/lib/browser/index.mjs.map +4 -4
  18. package/dist/lib/browser/meta.json +1 -1
  19. package/dist/lib/browser/on-create-space-54RNX5JI.mjs +22 -0
  20. package/dist/lib/browser/on-create-space-54RNX5JI.mjs.map +7 -0
  21. package/dist/lib/browser/operations/index.mjs +13 -0
  22. package/dist/lib/browser/operations/index.mjs.map +7 -0
  23. package/dist/lib/browser/resolve-navigation-targets-NZOD66NY.mjs +22 -0
  24. package/dist/lib/browser/resolve-navigation-targets-NZOD66NY.mjs.map +7 -0
  25. package/dist/lib/browser/run-prompt-in-new-chat-THLK5YQC.mjs +136 -0
  26. package/dist/lib/browser/run-prompt-in-new-chat-THLK5YQC.mjs.map +7 -0
  27. package/dist/lib/browser/set-current-chat-LRS3VFSH.mjs +54 -0
  28. package/dist/lib/browser/set-current-chat-LRS3VFSH.mjs.map +7 -0
  29. package/dist/lib/browser/types/index.mjs +1 -4
  30. package/dist/lib/browser/update-chat-name-3Y36KFAS.mjs +71 -0
  31. package/dist/lib/browser/update-chat-name-3Y36KFAS.mjs.map +7 -0
  32. package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs +98 -0
  33. package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs.map +7 -0
  34. package/dist/lib/node-esm/blueprints/index.mjs +3 -7
  35. package/dist/lib/node-esm/chunk-NZIKC7AN.mjs +32 -0
  36. package/dist/lib/node-esm/chunk-NZIKC7AN.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-PXAJSTGZ.mjs +177 -0
  38. package/dist/lib/node-esm/chunk-PXAJSTGZ.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-W3JZ2F4T.mjs +155 -0
  40. package/dist/lib/node-esm/chunk-W3JZ2F4T.mjs.map +7 -0
  41. package/dist/lib/node-esm/cli/index.mjs +75 -0
  42. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  43. package/dist/lib/node-esm/create-chat-3BEG4R6J.mjs +83 -0
  44. package/dist/lib/node-esm/create-chat-3BEG4R6J.mjs.map +7 -0
  45. package/dist/lib/node-esm/ensure-companion-chat-6K2WEWFP.mjs +66 -0
  46. package/dist/lib/node-esm/ensure-companion-chat-6K2WEWFP.mjs.map +7 -0
  47. package/dist/lib/node-esm/index.mjs +3308 -264
  48. package/dist/lib/node-esm/index.mjs.map +4 -4
  49. package/dist/lib/node-esm/meta.json +1 -1
  50. package/dist/lib/node-esm/on-create-space-YRPZ6HZY.mjs +23 -0
  51. package/dist/lib/node-esm/on-create-space-YRPZ6HZY.mjs.map +7 -0
  52. package/dist/lib/node-esm/operations/index.mjs +14 -0
  53. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  54. package/dist/lib/node-esm/resolve-navigation-targets-3PPK7XLH.mjs +23 -0
  55. package/dist/lib/node-esm/resolve-navigation-targets-3PPK7XLH.mjs.map +7 -0
  56. package/dist/lib/node-esm/run-prompt-in-new-chat-OUYKCMQ7.mjs +137 -0
  57. package/dist/lib/node-esm/run-prompt-in-new-chat-OUYKCMQ7.mjs.map +7 -0
  58. package/dist/lib/node-esm/set-current-chat-SMXZJD3F.mjs +55 -0
  59. package/dist/lib/node-esm/set-current-chat-SMXZJD3F.mjs.map +7 -0
  60. package/dist/lib/node-esm/types/index.mjs +1 -4
  61. package/dist/lib/node-esm/update-chat-name-HM2P4NSI.mjs +72 -0
  62. package/dist/lib/node-esm/update-chat-name-HM2P4NSI.mjs.map +7 -0
  63. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  64. package/dist/types/src/blueprints/assistant/blueprint.d.ts +4 -0
  65. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -0
  66. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts +2 -0
  67. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts.map +1 -0
  68. package/dist/types/src/blueprints/assistant/index.d.ts +2 -0
  69. package/dist/types/src/blueprints/assistant/index.d.ts.map +1 -0
  70. package/dist/types/src/blueprints/index.d.ts +1 -6
  71. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/ai-service.d.ts +6 -0
  73. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -0
  74. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  75. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  76. package/dist/types/src/capabilities/blueprint-definition.d.ts +5 -0
  77. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  78. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts +9 -0
  79. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/{edge-model-resolver/edge-model-resolver.d.ts → edge-model-resolver.d.ts} +1 -1
  81. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/index.d.ts +29 -11
  83. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/local-model-resolver.d.ts +16 -0
  85. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/markdown.d.ts +5 -0
  87. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  88. package/dist/types/src/capabilities/migrations.d.ts +5 -0
  89. package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  91. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  92. package/dist/types/src/capabilities/react-surface.d.ts +5 -0
  93. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/settings.d.ts +6 -0
  95. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  96. package/dist/types/src/capabilities/state.d.ts +21 -0
  97. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  98. package/dist/types/src/capabilities/toolkit.d.ts +6 -0
  99. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
  100. package/dist/types/src/cli/index.d.ts +2 -0
  101. package/dist/types/src/cli/index.d.ts.map +1 -0
  102. package/dist/types/src/cli/plugin.d.ts +10 -0
  103. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  104. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +4 -6
  105. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  106. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts +15 -0
  107. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -0
  108. package/dist/types/src/components/AssistantSettings/index.d.ts +1 -1
  109. package/dist/types/src/components/AssistantSettings/index.d.ts.map +1 -1
  110. package/dist/types/src/components/Chat/Chat.d.ts +15 -14
  111. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  112. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +6 -3
  113. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
  114. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts +2 -1
  115. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  116. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +2 -0
  117. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  118. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts +19 -0
  119. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -0
  120. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  121. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts +14 -0
  122. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts.map +1 -0
  123. package/dist/types/src/components/ChatThread/ChatThread.d.ts +2 -2
  124. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  125. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +6 -426
  126. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +42 -0
  128. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -0
  129. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  130. package/dist/types/src/components/ChatThread/sync.d.ts +43 -16
  131. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  132. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts +18 -0
  133. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts.map +1 -0
  134. package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts +2 -0
  135. package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts.map +1 -0
  136. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts +8 -0
  137. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts.map +1 -0
  138. package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts +15 -0
  139. package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts.map +1 -0
  140. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts +25 -0
  141. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts.map +1 -0
  142. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts +18 -0
  143. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts.map +1 -0
  144. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts +9 -0
  145. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts.map +1 -0
  146. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts +14 -0
  147. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts.map +1 -0
  148. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts +12 -0
  149. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts.map +1 -0
  150. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts +25 -0
  151. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts.map +1 -0
  152. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts +11 -0
  153. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts.map +1 -0
  154. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts +5 -0
  155. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts.map +1 -0
  156. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts +9 -0
  157. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts.map +1 -0
  158. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts +15 -0
  159. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts.map +1 -0
  160. package/dist/types/src/components/ChatThread/widgets/index.d.ts +11 -0
  161. package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -0
  162. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +10 -0
  163. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -0
  164. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +8 -0
  165. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -0
  166. package/dist/types/src/components/ProcessTree/index.d.ts +2 -0
  167. package/dist/types/src/components/ProcessTree/index.d.ts.map +1 -0
  168. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +5 -4
  169. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  170. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +1 -419
  171. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  172. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  173. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +1 -419
  174. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  175. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +0 -9
  176. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  177. package/dist/types/src/components/Toolbox/Toolbox.d.ts +10 -8
  178. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  179. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +1 -419
  180. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  181. package/dist/types/src/components/index.d.ts +3 -11
  182. package/dist/types/src/components/index.d.ts.map +1 -1
  183. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts +6 -0
  184. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -0
  185. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts +21 -0
  186. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -0
  187. package/dist/types/src/containers/AgentArticle/index.d.ts +2 -0
  188. package/dist/types/src/containers/AgentArticle/index.d.ts.map +1 -0
  189. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts +6 -0
  190. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts.map +1 -0
  191. package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts +16 -0
  192. package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts.map +1 -0
  193. package/dist/types/src/containers/AgentProperties/index.d.ts +2 -0
  194. package/dist/types/src/containers/AgentProperties/index.d.ts.map +1 -0
  195. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +6 -0
  196. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -0
  197. package/dist/types/src/containers/BlueprintArticle/index.d.ts +2 -0
  198. package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +1 -0
  199. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +18 -0
  200. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -0
  201. package/dist/types/src/containers/ChatCompanion/index.d.ts +2 -0
  202. package/dist/types/src/containers/ChatCompanion/index.d.ts.map +1 -0
  203. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +12 -0
  204. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
  205. package/dist/types/src/containers/ChatContainer/index.d.ts +2 -0
  206. package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
  207. package/dist/types/src/{components → containers/ChatDialog}/ChatDialog.d.ts +0 -1
  208. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -0
  209. package/dist/types/src/containers/ChatDialog/index.d.ts +2 -0
  210. package/dist/types/src/containers/ChatDialog/index.d.ts.map +1 -0
  211. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts +6 -0
  212. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts.map +1 -0
  213. package/dist/types/src/containers/PromptArticle/index.d.ts +2 -0
  214. package/dist/types/src/containers/PromptArticle/index.d.ts.map +1 -0
  215. package/dist/types/src/containers/PromptList/PromptList.d.ts +6 -0
  216. package/dist/types/src/containers/PromptList/PromptList.d.ts.map +1 -0
  217. package/dist/types/src/containers/PromptList/PromptList.stories.d.ts +21 -0
  218. package/dist/types/src/containers/PromptList/PromptList.stories.d.ts.map +1 -0
  219. package/dist/types/src/containers/PromptList/index.d.ts +2 -0
  220. package/dist/types/src/containers/PromptList/index.d.ts.map +1 -0
  221. package/dist/types/src/containers/TracePanel/TracePanel.d.ts +7 -0
  222. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -0
  223. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts +16 -0
  224. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -0
  225. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts +19 -0
  226. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts.map +1 -0
  227. package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts +2 -0
  228. package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts.map +1 -0
  229. package/dist/types/src/containers/TracePanel/execution-graph.d.ts +17 -0
  230. package/dist/types/src/containers/TracePanel/execution-graph.d.ts.map +1 -0
  231. package/dist/types/src/containers/TracePanel/index.d.ts +4 -0
  232. package/dist/types/src/containers/TracePanel/index.d.ts.map +1 -0
  233. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +5 -0
  234. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -0
  235. package/dist/types/src/containers/TriggerStatus/index.d.ts +2 -0
  236. package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -0
  237. package/dist/types/src/containers/index.d.ts +12 -0
  238. package/dist/types/src/containers/index.d.ts.map +1 -0
  239. package/dist/types/src/extensions/index.d.ts +2 -0
  240. package/dist/types/src/extensions/index.d.ts.map +1 -0
  241. package/dist/types/src/extensions/prompt-extension.d.ts +10 -0
  242. package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -0
  243. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  244. package/dist/types/src/hooks/useChatProcessor.d.ts +5 -5
  245. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  246. package/dist/types/src/hooks/useChatServices.d.ts +3 -6
  247. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  248. package/dist/types/src/hooks/useContextBinder.d.ts +3 -2
  249. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  250. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  251. package/dist/types/src/hooks/useFilteredTypes.d.ts +1 -1
  252. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -1
  253. package/dist/types/src/hooks/usePresets.d.ts +1 -1
  254. package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
  255. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  256. package/dist/types/src/index.d.ts +1 -1
  257. package/dist/types/src/index.d.ts.map +1 -1
  258. package/dist/types/src/meta.d.ts +2 -0
  259. package/dist/types/src/meta.d.ts.map +1 -1
  260. package/dist/types/src/operations/create-chat.d.ts +5 -0
  261. package/dist/types/src/operations/create-chat.d.ts.map +1 -0
  262. package/dist/types/src/operations/definitions.d.ts +135 -0
  263. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  264. package/dist/types/src/operations/ensure-companion-chat.d.ts +5 -0
  265. package/dist/types/src/operations/ensure-companion-chat.d.ts.map +1 -0
  266. package/dist/types/src/operations/index.d.ts +4 -0
  267. package/dist/types/src/operations/index.d.ts.map +1 -0
  268. package/dist/types/src/operations/on-create-space.d.ts +5 -0
  269. package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
  270. package/dist/types/src/operations/prompt.test.d.ts +2 -0
  271. package/dist/types/src/operations/prompt.test.d.ts.map +1 -0
  272. package/dist/types/src/operations/resolve-navigation-targets.d.ts +15 -0
  273. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -0
  274. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +5 -0
  275. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -0
  276. package/dist/types/src/operations/set-current-chat.d.ts +5 -0
  277. package/dist/types/src/operations/set-current-chat.d.ts.map +1 -0
  278. package/dist/types/src/operations/update-chat-name.d.ts +5 -0
  279. package/dist/types/src/operations/update-chat-name.d.ts.map +1 -0
  280. package/dist/types/src/processor/index.d.ts +0 -1
  281. package/dist/types/src/processor/index.d.ts.map +1 -1
  282. package/dist/types/src/processor/presets.d.ts +1 -1
  283. package/dist/types/src/processor/presets.d.ts.map +1 -1
  284. package/dist/types/src/processor/processor.d.ts +30 -29
  285. package/dist/types/src/processor/processor.d.ts.map +1 -1
  286. package/dist/types/src/queue-logger.d.ts.map +1 -1
  287. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  288. package/dist/types/src/testing/test-generator.test.d.ts +2 -0
  289. package/dist/types/src/testing/test-generator.test.d.ts.map +1 -0
  290. package/dist/types/src/testing/test-services.d.ts +1 -1
  291. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  292. package/dist/types/src/testing/trace-timeline.test.d.ts +2 -0
  293. package/dist/types/src/testing/trace-timeline.test.d.ts.map +1 -0
  294. package/dist/types/src/translations.d.ts +2 -419
  295. package/dist/types/src/translations.d.ts.map +1 -1
  296. package/dist/types/src/types/Assistant.d.ts +14 -14
  297. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  298. package/dist/types/src/types/Settings.d.ts +11 -0
  299. package/dist/types/src/types/Settings.d.ts.map +1 -0
  300. package/dist/types/src/types/capabilities.d.ts +12 -13
  301. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  302. package/dist/types/src/types/index.d.ts +0 -1
  303. package/dist/types/src/types/index.d.ts.map +1 -1
  304. package/dist/types/src/types/service.d.ts.map +1 -1
  305. package/dist/types/tsconfig.tsbuildinfo +1 -1
  306. package/package.json +112 -95
  307. package/src/AssistantPlugin.tsx +115 -46
  308. package/src/blueprints/assistant/blueprint.test.ts +46 -0
  309. package/src/blueprints/assistant/blueprint.ts +31 -0
  310. package/src/blueprints/assistant/index.ts +5 -0
  311. package/src/blueprints/index.ts +1 -8
  312. package/src/capabilities/app-graph-builder.ts +162 -0
  313. package/src/capabilities/blueprint-definition.ts +58 -0
  314. package/src/capabilities/companion-chat-provisioner.ts +164 -0
  315. package/src/capabilities/index.ts +22 -11
  316. package/src/capabilities/{local-model-resolver/local-model-resolver.ts → local-model-resolver.ts} +14 -4
  317. package/src/capabilities/markdown.ts +40 -0
  318. package/src/capabilities/migrations.ts +35 -0
  319. package/src/capabilities/operation-handler.ts +16 -0
  320. package/src/capabilities/react-surface.tsx +161 -0
  321. package/src/capabilities/{settings/settings.ts → settings.ts} +2 -2
  322. package/src/capabilities/{state/state.ts → state.ts} +11 -3
  323. package/src/capabilities/toolkit.ts +13 -0
  324. package/src/{components/Typewriter → cli}/index.ts +1 -1
  325. package/src/cli/plugin.ts +84 -0
  326. package/src/components/AssistantSettings/AssistantSettings.stories.tsx +34 -0
  327. package/src/components/AssistantSettings/AssistantSettings.tsx +104 -92
  328. package/src/components/AssistantSettings/index.ts +2 -2
  329. package/src/components/Chat/Chat.tsx +80 -64
  330. package/src/components/ChatProgress/ChatProgress.tsx +9 -6
  331. package/src/components/ChatPrompt/ChatActions.tsx +24 -12
  332. package/src/components/ChatPrompt/ChatOptions.stories.tsx +122 -0
  333. package/src/components/ChatPrompt/ChatOptions.tsx +205 -39
  334. package/src/components/ChatPrompt/ChatReferences.tsx +18 -8
  335. package/src/components/ChatThread/Anchor.stories.tsx +95 -0
  336. package/src/components/ChatThread/ChatThread.stories.tsx +61 -68
  337. package/src/components/ChatThread/ChatThread.tsx +28 -24
  338. package/src/components/ChatThread/MarkdownStream.stories.tsx +280 -0
  339. package/src/components/ChatThread/registry.tsx +117 -44
  340. package/src/components/ChatThread/sync.test.ts +111 -17
  341. package/src/components/ChatThread/sync.ts +92 -96
  342. package/src/components/ChatThread/testing/reasoning.md +25 -0
  343. package/src/components/ChatThread/testing/thinking.md +21 -0
  344. package/src/components/ChatThread/testing/thread-1.md +30 -0
  345. package/src/components/ChatThread/testing/{thread.md → thread-2.md} +19 -0
  346. package/src/components/ChatThread/testing/thread-widgets.md +79 -0
  347. package/src/components/ChatThread/tool-widget-state.test.ts +34 -0
  348. package/src/components/ChatThread/tool-widget-state.ts +48 -0
  349. package/src/components/ChatThread/widgets/FallbackWidget.tsx +26 -0
  350. package/src/components/ChatThread/widgets/PromptWidget.ts +30 -0
  351. package/src/components/ChatThread/widgets/ReasoningWidget.stories.tsx +68 -0
  352. package/src/components/ChatThread/widgets/ReasoningWidget.ts +133 -0
  353. package/src/components/ChatThread/widgets/ReferenceWidget.ts +31 -0
  354. package/src/components/ChatThread/widgets/SelectWidget.ts +37 -0
  355. package/src/components/ChatThread/widgets/StatsWidget.ts +29 -0
  356. package/src/components/ChatThread/widgets/StatusWidget.ts +131 -0
  357. package/src/components/ChatThread/widgets/SuggestionWidget.ts +41 -0
  358. package/src/components/ChatThread/widgets/SummaryWidget.tsx +28 -0
  359. package/src/components/ChatThread/widgets/ToolWidget.stories.tsx +54 -0
  360. package/src/components/ChatThread/widgets/ToolWidget.tsx +156 -0
  361. package/src/components/ChatThread/widgets/index.ts +14 -0
  362. package/src/components/ProcessTree/ProcessTree.stories.tsx +109 -0
  363. package/src/components/ProcessTree/ProcessTree.tsx +86 -0
  364. package/src/components/ProcessTree/index.ts +5 -0
  365. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +3 -8
  366. package/src/components/TemplateEditor/TemplateEditor.tsx +50 -42
  367. package/src/components/TemplateEditor/TemplateForm.stories.tsx +6 -5
  368. package/src/components/TemplateEditor/TemplateForm.tsx +9 -10
  369. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +5 -5
  370. package/src/components/ToolBlock/ToolBlock.tsx +22 -21
  371. package/src/components/Toolbox/Toolbox.stories.tsx +4 -6
  372. package/src/components/Toolbox/Toolbox.tsx +65 -58
  373. package/src/components/index.ts +3 -16
  374. package/src/containers/AgentArticle/AgentArticle.stories.tsx +120 -0
  375. package/src/containers/AgentArticle/AgentArticle.tsx +200 -0
  376. package/src/containers/AgentArticle/index.ts +5 -0
  377. package/src/containers/AgentProperties/AgentProperties.stories.tsx +100 -0
  378. package/src/containers/AgentProperties/AgentProperties.tsx +127 -0
  379. package/src/containers/AgentProperties/index.ts +5 -0
  380. package/src/containers/BlueprintArticle/BlueprintArticle.tsx +29 -0
  381. package/src/containers/BlueprintArticle/index.ts +5 -0
  382. package/src/containers/ChatCompanion/ChatCompanion.tsx +142 -0
  383. package/src/containers/ChatCompanion/index.ts +5 -0
  384. package/src/containers/ChatContainer/ChatContainer.tsx +95 -0
  385. package/src/containers/ChatContainer/index.ts +5 -0
  386. package/src/{components → containers/ChatDialog}/ChatDialog.tsx +7 -10
  387. package/src/containers/ChatDialog/index.ts +5 -0
  388. package/src/containers/PromptArticle/PromptArticle.tsx +59 -0
  389. package/src/containers/PromptArticle/index.ts +5 -0
  390. package/src/containers/PromptList/PromptList.stories.tsx +129 -0
  391. package/src/containers/PromptList/PromptList.tsx +49 -0
  392. package/src/containers/PromptList/index.ts +5 -0
  393. package/src/containers/TracePanel/TracePanel.stories.tsx +272 -0
  394. package/src/containers/TracePanel/TracePanel.tsx +113 -0
  395. package/src/containers/TracePanel/dxn-extractor.test.ts +153 -0
  396. package/src/containers/TracePanel/dxn-extractor.ts +178 -0
  397. package/src/containers/TracePanel/execution-graph.ts +452 -0
  398. package/src/containers/TracePanel/index.ts +9 -0
  399. package/src/containers/TriggerStatus/TriggerStatus.tsx +129 -0
  400. package/src/containers/TriggerStatus/index.ts +5 -0
  401. package/src/containers/index.ts +16 -0
  402. package/src/extensions/index.ts +5 -0
  403. package/src/extensions/prompt-extension.ts +111 -0
  404. package/src/hooks/useBlueprintRegistry.ts +6 -2
  405. package/src/hooks/useChatProcessor.ts +35 -23
  406. package/src/hooks/useChatServices.ts +6 -27
  407. package/src/hooks/useChatToolbarActions.ts +9 -9
  408. package/src/hooks/useContextBinder.ts +17 -6
  409. package/src/hooks/useContextObjects.ts +8 -4
  410. package/src/hooks/useFilteredTypes.ts +3 -3
  411. package/src/hooks/usePresets.ts +2 -1
  412. package/src/hooks/useReferencesProvider.ts +1 -5
  413. package/src/index.ts +1 -1
  414. package/src/meta.ts +6 -3
  415. package/src/operations/create-chat.ts +80 -0
  416. package/src/operations/definitions.ts +127 -0
  417. package/src/operations/ensure-companion-chat.ts +61 -0
  418. package/src/operations/index.ts +17 -0
  419. package/src/operations/on-create-space.ts +24 -0
  420. package/src/operations/prompt.test.ts +79 -0
  421. package/src/operations/resolve-navigation-targets.ts +26 -0
  422. package/src/operations/run-prompt-in-new-chat.ts +113 -0
  423. package/src/operations/set-current-chat.ts +50 -0
  424. package/src/operations/update-chat-name.ts +61 -0
  425. package/src/processor/index.ts +0 -1
  426. package/src/processor/presets.ts +11 -3
  427. package/src/processor/processor.test.ts +18 -50
  428. package/src/processor/processor.ts +178 -158
  429. package/src/queue-logger.ts +19 -8
  430. package/src/testing/data/trace-timeline.dx.json +2120 -0
  431. package/src/testing/test-generator.test.ts +81 -0
  432. package/src/testing/test-generator.ts +79 -42
  433. package/src/testing/test-sequence.ts +3 -3
  434. package/src/testing/test-services.ts +2 -2
  435. package/src/testing/trace-timeline.conversations.json +1 -0
  436. package/src/testing/trace-timeline.test.ts +246 -0
  437. package/src/translations.ts +153 -102
  438. package/src/types/Assistant.ts +4 -18
  439. package/src/types/Settings.ts +21 -0
  440. package/src/types/capabilities.ts +11 -3
  441. package/src/types/events.ts +2 -2
  442. package/src/types/index.ts +0 -1
  443. package/src/types/service.ts +5 -5
  444. package/dist/lib/browser/BlueprintArticle-6SP2ZWJ2.mjs +0 -30
  445. package/dist/lib/browser/BlueprintArticle-6SP2ZWJ2.mjs.map +0 -7
  446. package/dist/lib/browser/ChatCompanion-CAKFZAWN.mjs +0 -200
  447. package/dist/lib/browser/ChatCompanion-CAKFZAWN.mjs.map +0 -7
  448. package/dist/lib/browser/ChatContainer-QB37VONJ.mjs +0 -73
  449. package/dist/lib/browser/ChatContainer-QB37VONJ.mjs.map +0 -7
  450. package/dist/lib/browser/ChatDialog-ASVBLOOS.mjs +0 -85
  451. package/dist/lib/browser/ChatDialog-ASVBLOOS.mjs.map +0 -7
  452. package/dist/lib/browser/InitiativeContainer-V522FCYH.mjs +0 -266
  453. package/dist/lib/browser/InitiativeContainer-V522FCYH.mjs.map +0 -7
  454. package/dist/lib/browser/PromptArticle-PK3CBRUB.mjs +0 -52
  455. package/dist/lib/browser/PromptArticle-PK3CBRUB.mjs.map +0 -7
  456. package/dist/lib/browser/ai-service-CY2BYPH6.mjs +0 -22
  457. package/dist/lib/browser/ai-service-CY2BYPH6.mjs.map +0 -7
  458. package/dist/lib/browser/app-graph-builder-MUZGUQSC.mjs +0 -234
  459. package/dist/lib/browser/app-graph-builder-MUZGUQSC.mjs.map +0 -7
  460. package/dist/lib/browser/blueprint-definition-YAGWYVCL.mjs +0 -14
  461. package/dist/lib/browser/blueprint-definition-YAGWYVCL.mjs.map +0 -7
  462. package/dist/lib/browser/chunk-3ETBCBMH.mjs +0 -47
  463. package/dist/lib/browser/chunk-3ETBCBMH.mjs.map +0 -7
  464. package/dist/lib/browser/chunk-6BVCG5SJ.mjs +0 -230
  465. package/dist/lib/browser/chunk-6BVCG5SJ.mjs.map +0 -7
  466. package/dist/lib/browser/chunk-DKQMSMBN.mjs +0 -326
  467. package/dist/lib/browser/chunk-DKQMSMBN.mjs.map +0 -7
  468. package/dist/lib/browser/chunk-EXVT7D4B.mjs +0 -23
  469. package/dist/lib/browser/chunk-EXVT7D4B.mjs.map +0 -7
  470. package/dist/lib/browser/chunk-IJYAKPEU.mjs +0 -286
  471. package/dist/lib/browser/chunk-IJYAKPEU.mjs.map +0 -7
  472. package/dist/lib/browser/chunk-JA7PUZC7.mjs +0 -1974
  473. package/dist/lib/browser/chunk-JA7PUZC7.mjs.map +0 -7
  474. package/dist/lib/browser/chunk-POPBT2AQ.mjs +0 -198
  475. package/dist/lib/browser/chunk-POPBT2AQ.mjs.map +0 -7
  476. package/dist/lib/browser/edge-model-resolver-YTMFQEN5.mjs +0 -21
  477. package/dist/lib/browser/edge-model-resolver-YTMFQEN5.mjs.map +0 -7
  478. package/dist/lib/browser/local-model-resolver-CGRQH37T.mjs +0 -20
  479. package/dist/lib/browser/local-model-resolver-CGRQH37T.mjs.map +0 -7
  480. package/dist/lib/browser/operation-resolver-2673CFJS.mjs +0 -133
  481. package/dist/lib/browser/operation-resolver-2673CFJS.mjs.map +0 -7
  482. package/dist/lib/browser/react-surface-T3FN4GVP.mjs +0 -125
  483. package/dist/lib/browser/react-surface-T3FN4GVP.mjs.map +0 -7
  484. package/dist/lib/browser/repair-IRXDYF4R.mjs +0 -51
  485. package/dist/lib/browser/repair-IRXDYF4R.mjs.map +0 -7
  486. package/dist/lib/browser/settings-XF6GKHCG.mjs +0 -33
  487. package/dist/lib/browser/settings-XF6GKHCG.mjs.map +0 -7
  488. package/dist/lib/browser/state-OYDPWLKA.mjs +0 -26
  489. package/dist/lib/browser/state-OYDPWLKA.mjs.map +0 -7
  490. package/dist/lib/browser/toolkit-IDXQCSTX.mjs +0 -19
  491. package/dist/lib/browser/toolkit-IDXQCSTX.mjs.map +0 -7
  492. package/dist/lib/node-esm/BlueprintArticle-7LI6UXKZ.mjs +0 -31
  493. package/dist/lib/node-esm/BlueprintArticle-7LI6UXKZ.mjs.map +0 -7
  494. package/dist/lib/node-esm/ChatCompanion-W4PGOCGR.mjs +0 -201
  495. package/dist/lib/node-esm/ChatCompanion-W4PGOCGR.mjs.map +0 -7
  496. package/dist/lib/node-esm/ChatContainer-ECFQVH6O.mjs +0 -74
  497. package/dist/lib/node-esm/ChatContainer-ECFQVH6O.mjs.map +0 -7
  498. package/dist/lib/node-esm/ChatDialog-AFLPYSIU.mjs +0 -86
  499. package/dist/lib/node-esm/ChatDialog-AFLPYSIU.mjs.map +0 -7
  500. package/dist/lib/node-esm/InitiativeContainer-U4LGO3BW.mjs +0 -267
  501. package/dist/lib/node-esm/InitiativeContainer-U4LGO3BW.mjs.map +0 -7
  502. package/dist/lib/node-esm/PromptArticle-BHPABYLT.mjs +0 -53
  503. package/dist/lib/node-esm/PromptArticle-BHPABYLT.mjs.map +0 -7
  504. package/dist/lib/node-esm/ai-service-ZI3A6RVG.mjs +0 -23
  505. package/dist/lib/node-esm/ai-service-ZI3A6RVG.mjs.map +0 -7
  506. package/dist/lib/node-esm/app-graph-builder-4QN5M6PD.mjs +0 -235
  507. package/dist/lib/node-esm/app-graph-builder-4QN5M6PD.mjs.map +0 -7
  508. package/dist/lib/node-esm/blueprint-definition-H3LFAEK2.mjs +0 -15
  509. package/dist/lib/node-esm/blueprint-definition-H3LFAEK2.mjs.map +0 -7
  510. package/dist/lib/node-esm/chunk-2LEN26ZQ.mjs +0 -48
  511. package/dist/lib/node-esm/chunk-2LEN26ZQ.mjs.map +0 -7
  512. package/dist/lib/node-esm/chunk-3XC7LQSO.mjs +0 -1975
  513. package/dist/lib/node-esm/chunk-3XC7LQSO.mjs.map +0 -7
  514. package/dist/lib/node-esm/chunk-75PHXBN3.mjs +0 -327
  515. package/dist/lib/node-esm/chunk-75PHXBN3.mjs.map +0 -7
  516. package/dist/lib/node-esm/chunk-F6LA7XNS.mjs +0 -199
  517. package/dist/lib/node-esm/chunk-F6LA7XNS.mjs.map +0 -7
  518. package/dist/lib/node-esm/chunk-LB72WG6R.mjs +0 -231
  519. package/dist/lib/node-esm/chunk-LB72WG6R.mjs.map +0 -7
  520. package/dist/lib/node-esm/chunk-MJD5XWQV.mjs +0 -288
  521. package/dist/lib/node-esm/chunk-MJD5XWQV.mjs.map +0 -7
  522. package/dist/lib/node-esm/chunk-POWB2BPC.mjs +0 -25
  523. package/dist/lib/node-esm/chunk-POWB2BPC.mjs.map +0 -7
  524. package/dist/lib/node-esm/edge-model-resolver-CMJ3KNLQ.mjs +0 -22
  525. package/dist/lib/node-esm/edge-model-resolver-CMJ3KNLQ.mjs.map +0 -7
  526. package/dist/lib/node-esm/local-model-resolver-FFDAKOXN.mjs +0 -21
  527. package/dist/lib/node-esm/local-model-resolver-FFDAKOXN.mjs.map +0 -7
  528. package/dist/lib/node-esm/operation-resolver-2ZD2DXOU.mjs +0 -134
  529. package/dist/lib/node-esm/operation-resolver-2ZD2DXOU.mjs.map +0 -7
  530. package/dist/lib/node-esm/react-surface-T4VMCCKZ.mjs +0 -126
  531. package/dist/lib/node-esm/react-surface-T4VMCCKZ.mjs.map +0 -7
  532. package/dist/lib/node-esm/repair-DMI55PON.mjs +0 -52
  533. package/dist/lib/node-esm/repair-DMI55PON.mjs.map +0 -7
  534. package/dist/lib/node-esm/settings-NGGZA7S7.mjs +0 -34
  535. package/dist/lib/node-esm/settings-NGGZA7S7.mjs.map +0 -7
  536. package/dist/lib/node-esm/state-VSCPGN7R.mjs +0 -27
  537. package/dist/lib/node-esm/state-VSCPGN7R.mjs.map +0 -7
  538. package/dist/lib/node-esm/toolkit-JPRJRDDB.mjs +0 -20
  539. package/dist/lib/node-esm/toolkit-JPRJRDDB.mjs.map +0 -7
  540. package/dist/types/src/blueprints/assistant-blueprint.d.ts +0 -11
  541. package/dist/types/src/blueprints/assistant-blueprint.d.ts.map +0 -1
  542. package/dist/types/src/capabilities/ai-service/ai-service.d.ts +0 -6
  543. package/dist/types/src/capabilities/ai-service/ai-service.d.ts.map +0 -1
  544. package/dist/types/src/capabilities/ai-service/index.d.ts +0 -3
  545. package/dist/types/src/capabilities/ai-service/index.d.ts.map +0 -1
  546. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +0 -6
  547. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  548. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  549. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  550. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +0 -26
  551. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +0 -1
  552. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +0 -4
  553. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +0 -1
  554. package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts.map +0 -1
  555. package/dist/types/src/capabilities/edge-model-resolver/index.d.ts +0 -3
  556. package/dist/types/src/capabilities/edge-model-resolver/index.d.ts.map +0 -1
  557. package/dist/types/src/capabilities/local-model-resolver/index.d.ts +0 -3
  558. package/dist/types/src/capabilities/local-model-resolver/index.d.ts.map +0 -1
  559. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts +0 -13
  560. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts.map +0 -1
  561. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  562. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  563. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  564. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  565. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  566. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  567. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +0 -5
  568. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  569. package/dist/types/src/capabilities/repair/index.d.ts +0 -3
  570. package/dist/types/src/capabilities/repair/index.d.ts.map +0 -1
  571. package/dist/types/src/capabilities/repair/repair.d.ts +0 -6
  572. package/dist/types/src/capabilities/repair/repair.d.ts.map +0 -1
  573. package/dist/types/src/capabilities/settings/index.d.ts +0 -15
  574. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  575. package/dist/types/src/capabilities/settings/settings.d.ts +0 -18
  576. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  577. package/dist/types/src/capabilities/state/index.d.ts +0 -11
  578. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  579. package/dist/types/src/capabilities/state/state.d.ts +0 -13
  580. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  581. package/dist/types/src/capabilities/toolkit/index.d.ts +0 -3
  582. package/dist/types/src/capabilities/toolkit/index.d.ts.map +0 -1
  583. package/dist/types/src/capabilities/toolkit/toolkit.d.ts +0 -6
  584. package/dist/types/src/capabilities/toolkit/toolkit.d.ts.map +0 -1
  585. package/dist/types/src/components/BlueprintArticle.d.ts +0 -7
  586. package/dist/types/src/components/BlueprintArticle.d.ts.map +0 -1
  587. package/dist/types/src/components/ChatCompanion.d.ts +0 -13
  588. package/dist/types/src/components/ChatCompanion.d.ts.map +0 -1
  589. package/dist/types/src/components/ChatContainer.d.ts +0 -19
  590. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  591. package/dist/types/src/components/ChatDialog.d.ts.map +0 -1
  592. package/dist/types/src/components/InitiativeContainer.d.ts +0 -9
  593. package/dist/types/src/components/InitiativeContainer.d.ts.map +0 -1
  594. package/dist/types/src/components/PromptArticle.d.ts +0 -7
  595. package/dist/types/src/components/PromptArticle.d.ts.map +0 -1
  596. package/dist/types/src/components/TriggerStatus/TriggerStatus.d.ts +0 -4
  597. package/dist/types/src/components/TriggerStatus/TriggerStatus.d.ts.map +0 -1
  598. package/dist/types/src/components/TriggerStatus/index.d.ts +0 -2
  599. package/dist/types/src/components/TriggerStatus/index.d.ts.map +0 -1
  600. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts +0 -12
  601. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts.map +0 -1
  602. package/dist/types/src/components/Typewriter/Typewriter.d.ts +0 -11
  603. package/dist/types/src/components/Typewriter/Typewriter.d.ts.map +0 -1
  604. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts +0 -7
  605. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts.map +0 -1
  606. package/dist/types/src/components/Typewriter/assistant-extension.d.ts +0 -5
  607. package/dist/types/src/components/Typewriter/assistant-extension.d.ts.map +0 -1
  608. package/dist/types/src/components/Typewriter/index.d.ts +0 -2
  609. package/dist/types/src/components/Typewriter/index.d.ts.map +0 -1
  610. package/dist/types/src/functions/index.d.ts +0 -4
  611. package/dist/types/src/functions/index.d.ts.map +0 -1
  612. package/dist/types/src/functions/object-list.d.ts +0 -10
  613. package/dist/types/src/functions/object-list.d.ts.map +0 -1
  614. package/dist/types/src/functions/object-load.d.ts +0 -8
  615. package/dist/types/src/functions/object-load.d.ts.map +0 -1
  616. package/dist/types/src/functions/object-search.d.ts +0 -10
  617. package/dist/types/src/functions/object-search.d.ts.map +0 -1
  618. package/dist/types/src/processor/update-name.d.ts +0 -10
  619. package/dist/types/src/processor/update-name.d.ts.map +0 -1
  620. package/dist/types/src/types/AssistantAction.d.ts +0 -97
  621. package/dist/types/src/types/AssistantAction.d.ts.map +0 -1
  622. package/src/blueprints/assistant-blueprint.ts +0 -57
  623. package/src/capabilities/ai-service/index.ts +0 -7
  624. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -200
  625. package/src/capabilities/app-graph-builder/index.ts +0 -7
  626. package/src/capabilities/blueprint-definition/blueprint-definition.ts +0 -74
  627. package/src/capabilities/blueprint-definition/index.ts +0 -8
  628. package/src/capabilities/edge-model-resolver/index.ts +0 -7
  629. package/src/capabilities/local-model-resolver/index.ts +0 -7
  630. package/src/capabilities/operation-resolver/index.ts +0 -7
  631. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -112
  632. package/src/capabilities/react-surface/index.ts +0 -7
  633. package/src/capabilities/react-surface/react-surface.tsx +0 -111
  634. package/src/capabilities/repair/index.ts +0 -7
  635. package/src/capabilities/repair/repair.ts +0 -62
  636. package/src/capabilities/settings/index.ts +0 -7
  637. package/src/capabilities/state/index.ts +0 -7
  638. package/src/capabilities/toolkit/index.ts +0 -7
  639. package/src/capabilities/toolkit/toolkit.ts +0 -27
  640. package/src/components/BlueprintArticle.tsx +0 -28
  641. package/src/components/ChatCompanion.tsx +0 -226
  642. package/src/components/ChatContainer.tsx +0 -68
  643. package/src/components/InitiativeContainer.tsx +0 -340
  644. package/src/components/PromptArticle.tsx +0 -49
  645. package/src/components/TriggerStatus/TriggerStatus.tsx +0 -142
  646. package/src/components/TriggerStatus/index.ts +0 -5
  647. package/src/components/Typewriter/AssistantToolbar.tsx +0 -161
  648. package/src/components/Typewriter/Typewriter.stories.tsx +0 -83
  649. package/src/components/Typewriter/Typewriter.tsx +0 -54
  650. package/src/components/Typewriter/assistant-extension.tsx +0 -144
  651. package/src/functions/index.ts +0 -7
  652. package/src/functions/object-list.ts +0 -49
  653. package/src/functions/object-load.ts +0 -44
  654. package/src/functions/object-search.ts +0 -46
  655. package/src/processor/update-name.ts +0 -58
  656. package/src/types/AssistantAction.ts +0 -76
  657. /package/src/capabilities/{ai-service/ai-service.ts → ai-service.ts} +0 -0
  658. /package/src/capabilities/{edge-model-resolver/edge-model-resolver.ts → edge-model-resolver.ts} +0 -0
@@ -2,26 +2,26 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import React, { type JSX, useMemo, useState } from 'react';
5
+ import * as Option from 'effect/Option';
6
+ import React, { type JSX, useCallback, useMemo, useState } from 'react';
6
7
 
7
8
  import { type AiContextBinder } from '@dxos/assistant';
9
+ import { McpServer } from '@dxos/assistant-toolkit';
8
10
  import { type Blueprint } from '@dxos/blueprints';
9
- import { type Database, Filter, Obj, Type } from '@dxos/echo';
11
+ import { Annotation, type Database, Filter, Obj, Type } from '@dxos/echo';
10
12
  import { useQuery } from '@dxos/react-client/echo';
11
- import { IconButton, Popover, Select, useTranslation } from '@dxos/react-ui';
12
- import { Listbox, SearchList, useSearchListResults } from '@dxos/react-ui-searchlist';
13
+ import { IconButton, Input, Popover, Select, useTranslation } from '@dxos/react-ui';
14
+ import { Listbox, SearchList, useSearchListResults } from '@dxos/react-ui-search';
13
15
  import { Tabs } from '@dxos/react-ui-tabs';
16
+ import { getStyles, mx } from '@dxos/ui-theme';
14
17
 
15
- import {
16
- useActiveBlueprints,
17
- useBlueprintHandlers,
18
- useBlueprints,
19
- useContextObjects,
20
- useFilteredTypes,
21
- } from '../../hooks';
22
- import { meta } from '../../meta';
18
+ import { useActiveBlueprints, useBlueprintHandlers, useBlueprints, useContextObjects, useFilteredTypes } from '#hooks';
19
+ import { meta } from '#meta';
23
20
 
24
- const panelClassNames = 'is-[calc(100dvw-.5rem)] sm:is-max md:is-72 max-is-[--text-content]';
21
+ const styles = {
22
+ panel: 'w-[calc(100dvw-.5rem)] sm:w-max md:w-popover-default-width max-w-document-width',
23
+ toolbar: 'p-form-chrome border-t border-separator',
24
+ };
25
25
 
26
26
  export type ChatOptionsProps = {
27
27
  db: Database.Database;
@@ -42,10 +42,10 @@ export const ChatOptions = ({ db, context, blueprintRegistry, presets, preset, o
42
42
  <div role='none' className='flex p-2'>
43
43
  <Popover.Root>
44
44
  <Popover.Trigger asChild>
45
- <IconButton variant='ghost' icon='ph--plus--regular' iconOnly label={t('context objects button')} />
45
+ <IconButton variant='ghost' icon='ph--plus--regular' iconOnly label={t('context-objects.button')} />
46
46
  </Popover.Trigger>
47
47
  <Popover.Portal>
48
- <Popover.Content side='top' classNames={panelClassNames}>
48
+ <Popover.Content side='top' classNames={styles.panel}>
49
49
  <Popover.Viewport>
50
50
  <ObjectsPanel db={db} context={context} />
51
51
  </Popover.Viewport>
@@ -60,27 +60,43 @@ export const ChatOptions = ({ db, context, blueprintRegistry, presets, preset, o
60
60
  variant='ghost'
61
61
  icon='ph--sliders-horizontal--regular'
62
62
  iconOnly
63
- label={t('context settings button')}
63
+ label={t('context-settings.button')}
64
64
  />
65
65
  </Popover.Trigger>
66
66
  <Popover.Portal>
67
- <Popover.Content side='top' classNames={panelClassNames}>
67
+ <Popover.Content side='top' classNames={styles.panel}>
68
68
  <Popover.Viewport>
69
- <Tabs.Root orientation='horizontal' defaultValue='blueprints' defaultActivePart='list' tabIndex={-1}>
70
- <Tabs.Viewport classNames='max-bs-[--radix-popover-content-available-height] grid grid-rows-[1fr_min-content] [&_[cmdk-root]]:contents [&_[role="tabpanel"]]:grid [&_[role="tabpanel"]]:grid-rows-[1fr_min-content] [&_[role="listbox"]]:min-bs-0 [&_[role="listbox"]]:overflow-y-auto [&_[role="tabpanel"]]:min-bs-0 [&_[role="tabpanel"]]:pli-cardSpacingChrome [&_[role="tabpanel"][data-state="active"]]:order-first [&_[role="tabpanel"][data-state="inactive"]]:hidden'>
71
- <Tabs.Tabpanel value='blueprints' tabIndex={-1} classNames='dx-focus-ring-inset'>
72
- <BlueprintsPanel blueprintRegistry={blueprintRegistry} db={db} context={context} />
73
- </Tabs.Tabpanel>
74
- <Tabs.Tabpanel value='model' tabIndex={-1} classNames='dx-focus-ring-inset !pli-0'>
69
+ <Tabs.Root orientation='horizontal' defaultValue='model' defaultActivePart='list' tabIndex={-1}>
70
+ <Tabs.Viewport
71
+ // TODO(burdon): Simplify styles.
72
+ classNames={mx(
73
+ 'max-h-(--radix-popover-content-available-height) grid grid-rows-[1fr_min-content]',
74
+ '[&_[cmdk-root]]:contents [&_[role="tabpanel"]]:grid [&_[role="tabpanel"]]:grid-rows-[1fr_min-content]',
75
+ '[&_[role="listbox"]]:min-h-0 [&_[role="listbox"]]:overflow-y-auto',
76
+ '[&_[role="tabpanel"]]:min-h-0 [&_[role="tabpanel"]]:px-form-chrome [&_[role="tabpanel"][data-state="active"]]:order-first [&_[role="tabpanel"][data-state="inactive"]]:hidden',
77
+ )}
78
+ >
79
+ <Tabs.Panel value='model' tabIndex={-1} classNames='dx-focus-ring-inset'>
75
80
  <ModelsPanel presets={presets} preset={preset} onPresetChange={onPresetChange} />
76
- </Tabs.Tabpanel>
77
- <Tabs.Tablist classNames='sm:overflow-x-hidden justify-center p-[--dx-cardSpacingChrome] border-bs border-subduedSeparator order-last'>
81
+ </Tabs.Panel>
82
+ <Tabs.Panel value='mcp-servers' tabIndex={-1} classNames='dx-focus-ring-inset'>
83
+ <McpServersPanel db={db} />
84
+ </Tabs.Panel>
85
+ <Tabs.Panel value='blueprints' tabIndex={-1} classNames='dx-focus-ring-inset'>
86
+ <BlueprintsPanel blueprintRegistry={blueprintRegistry} db={db} context={context} />
87
+ </Tabs.Panel>
88
+ <Tabs.Tablist classNames={styles.toolbar}>
89
+ <Tabs.IconTab value='model' icon='ph--cpu--regular' label={t('chat-model.title')} />
78
90
  <Tabs.IconTab
79
91
  value='blueprints'
80
92
  icon='ph--blueprint--regular'
81
- label={t('blueprints in context title')}
93
+ label={t('blueprints-in-context.title')}
94
+ />
95
+ <Tabs.IconTab
96
+ value='mcp-servers'
97
+ icon='ph--plugs-connected--regular'
98
+ label={t('mcp-servers.title')}
82
99
  />
83
- <Tabs.IconTab value='model' label={t('chat model title')} icon='ph--cpu--regular' />
84
100
  </Tabs.Tablist>
85
101
  </Tabs.Viewport>
86
102
  </Tabs.Root>
@@ -103,7 +119,6 @@ const BlueprintsPanel = ({
103
119
  const blueprints = useBlueprints({ blueprintRegistry, db });
104
120
  const activeBlueprints = useActiveBlueprints({ context });
105
121
  const { onUpdateBlueprint } = useBlueprintHandlers({ db, context, blueprintRegistry });
106
-
107
122
  const { results, handleSearch } = useSearchListResults({
108
123
  items: blueprints,
109
124
  extract: (blueprint) => blueprint.name,
@@ -111,7 +126,7 @@ const BlueprintsPanel = ({
111
126
 
112
127
  return (
113
128
  <SearchList.Root onSearch={handleSearch}>
114
- <SearchList.Content classNames='plb-cardSpacingChrome'>
129
+ <SearchList.Content classNames='py-form-chrome'>
115
130
  <SearchList.Viewport>
116
131
  {results.map((blueprint) => {
117
132
  const isActive = activeBlueprints.has(blueprint.key);
@@ -128,7 +143,7 @@ const BlueprintsPanel = ({
128
143
  })}
129
144
  </SearchList.Viewport>
130
145
  </SearchList.Content>
131
- <SearchList.Input placeholder={t('search placeholder')} classNames='mbe-cardSpacingChrome' autoFocus />
146
+ <SearchList.Input placeholder={t('search.placeholder')} classNames='mb-form-chrome' autoFocus />
132
147
  </SearchList.Root>
133
148
  );
134
149
  };
@@ -152,9 +167,151 @@ const ModelsPanel = ({
152
167
  );
153
168
  };
154
169
 
170
+ type McpServersPanelProps = {
171
+ db: Database.Database;
172
+ };
173
+
174
+ const McpServersPanel = ({ db }: McpServersPanelProps) => {
175
+ const { t } = useTranslation(meta.id);
176
+ const servers = useQuery(db, Filter.type(McpServer.McpServer));
177
+ const [adding, setAdding] = useState(false);
178
+
179
+ const handleAdd = useCallback(
180
+ (name: string, url: string, protocol: 'sse' | 'http', apiKey?: string) => {
181
+ db.add(Obj.make(McpServer.McpServer, { name, url, protocol, apiKey, enabled: true }));
182
+ setAdding(false);
183
+ },
184
+ [db],
185
+ );
186
+
187
+ const handleToggle = useCallback((server: McpServer.McpServer, enabled: boolean) => {
188
+ Obj.change(server, (server) => {
189
+ server.enabled = enabled;
190
+ });
191
+ }, []);
192
+
193
+ const handleRemove = useCallback(
194
+ (server: McpServer.McpServer) => {
195
+ db.remove(server);
196
+ },
197
+ [db],
198
+ );
199
+
200
+ return (
201
+ <div className='py-form-chrome space-y-2'>
202
+ {servers.map((server) => (
203
+ <div key={server.id} className='flex items-center gap-2 px-form-chrome'>
204
+ <Input.Root>
205
+ <Input.Label srOnly>{server.name}</Input.Label>
206
+ <Input.Switch
207
+ checked={server.enabled !== false}
208
+ onCheckedChange={(checked) => handleToggle(server, !!checked)}
209
+ />
210
+ </Input.Root>
211
+ <span className='flex-1 truncate text-sm'>{server.name}</span>
212
+ <span className='truncate text-xs text-description'>{server.url}</span>
213
+ <IconButton
214
+ variant='ghost'
215
+ icon='ph--x--regular'
216
+ iconOnly
217
+ label={t('mcp-server-remove.label')}
218
+ onClick={() => handleRemove(server)}
219
+ />
220
+ </div>
221
+ ))}
222
+ {adding ? (
223
+ <McpServerForm onSubmit={handleAdd} onCancel={() => setAdding(false)} />
224
+ ) : (
225
+ <div role='none' className='px-form-chrome'>
226
+ <IconButton
227
+ variant='ghost'
228
+ icon='ph--plus--regular'
229
+ label={t('mcp-server-add.label')}
230
+ onClick={() => setAdding(true)}
231
+ />
232
+ </div>
233
+ )}
234
+ </div>
235
+ );
236
+ };
237
+
238
+ type McpServerFormProps = {
239
+ onSubmit: (name: string, url: string, protocol: 'sse' | 'http', apiKey?: string) => void;
240
+ onCancel: () => void;
241
+ };
242
+
243
+ const McpServerForm = ({ onSubmit, onCancel }: McpServerFormProps) => {
244
+ const { t } = useTranslation(meta.id);
245
+ const [name, setName] = useState('');
246
+ const [url, setUrl] = useState('');
247
+ const [protocol, setProtocol] = useState<'sse' | 'http'>('sse');
248
+ const [apiKey, setApiKey] = useState('');
249
+
250
+ const canSubmit = name.trim().length > 0 && url.trim().length > 0;
251
+ const handleSubmit = useCallback(() => {
252
+ if (canSubmit) {
253
+ onSubmit(name.trim(), url.trim(), protocol, apiKey.trim() || undefined);
254
+ }
255
+ }, [canSubmit, name, url, protocol, apiKey, onSubmit]);
256
+
257
+ return (
258
+ <div className='space-y-2 px-form-chrome'>
259
+ <Input.Root>
260
+ <Input.Label srOnly>{t('mcp-server-name.label')}</Input.Label>
261
+ <Input.TextInput
262
+ placeholder={t('mcp-server-name.placeholder')}
263
+ value={name}
264
+ onChange={(event) => setName(event.target.value)}
265
+ autoFocus
266
+ />
267
+ </Input.Root>
268
+ <Input.Root>
269
+ <Input.Label srOnly>{t('mcp-server-url.label')}</Input.Label>
270
+ <Input.TextInput
271
+ placeholder={t('mcp-server-url.placeholder')}
272
+ value={url}
273
+ onChange={(event) => setUrl(event.target.value)}
274
+ />
275
+ </Input.Root>
276
+ <Select.Root value={protocol} onValueChange={(value) => setProtocol(value as 'sse' | 'http')}>
277
+ <Select.TriggerButton placeholder={t('mcp-server-protocol.label')} />
278
+ <Select.Portal>
279
+ <Select.Content>
280
+ <Select.Viewport>
281
+ <Select.Option value='sse'>SSE</Select.Option>
282
+ <Select.Option value='http'>HTTP</Select.Option>
283
+ </Select.Viewport>
284
+ </Select.Content>
285
+ </Select.Portal>
286
+ </Select.Root>
287
+ <Input.Root>
288
+ <Input.Label srOnly>{t('mcp-server-api-key.label')}</Input.Label>
289
+ <Input.TextInput
290
+ type='password'
291
+ placeholder={t('mcp-server-api-key.placeholder')}
292
+ value={apiKey}
293
+ onChange={(event) => setApiKey(event.target.value)}
294
+ />
295
+ </Input.Root>
296
+ <div role='none' className='flex gap-2'>
297
+ <IconButton
298
+ variant='ghost'
299
+ icon='ph--check--regular'
300
+ iconOnly
301
+ label={t('save.button')}
302
+ onClick={handleSubmit}
303
+ disabled={!canSubmit}
304
+ />
305
+ <IconButton variant='ghost' icon='ph--x--regular' iconOnly label={t('cancel.button')} onClick={onCancel} />
306
+ </div>
307
+ </div>
308
+ );
309
+ };
310
+
155
311
  const ANY = '__any__';
156
312
 
157
- const ObjectsPanel = ({ db, context }: Pick<ChatOptionsProps, 'db' | 'context'>): JSX.Element => {
313
+ /** @private */
314
+ export const ObjectsPanel = ({ db, context }: Pick<ChatOptionsProps, 'db' | 'context'>): JSX.Element => {
158
315
  const { t } = useTranslation(meta.id);
159
316
 
160
317
  // Item types sorted by label.
@@ -164,7 +321,7 @@ const ObjectsPanel = ({ db, context }: Pick<ChatOptionsProps, 'db' | 'context'>)
164
321
  const typename = Type.getTypename(type);
165
322
  return {
166
323
  typename,
167
- label: t('typename label', { ns: typename, defaultValue: typename }),
324
+ label: t('typename.label', { ns: typename, defaultValue: typename }),
168
325
  };
169
326
  });
170
327
 
@@ -182,7 +339,6 @@ const ObjectsPanel = ({ db, context }: Pick<ChatOptionsProps, 'db' | 'context'>)
182
339
  // Context objects.
183
340
  const objects = useQuery(db, typename === ANY ? anyFilter : Filter.typename(typename));
184
341
  const { objects: contextObjects, onUpdateObject } = useContextObjects({ db, context });
185
-
186
342
  const { results, handleSearch } = useSearchListResults({
187
343
  items: objects,
188
344
  extract: (object) => Obj.getLabel(object) ?? Obj.getTypename(object) ?? object.id,
@@ -190,16 +346,26 @@ const ObjectsPanel = ({ db, context }: Pick<ChatOptionsProps, 'db' | 'context'>)
190
346
 
191
347
  return (
192
348
  <SearchList.Root onSearch={handleSearch}>
193
- <SearchList.Content classNames='p-cardSpacingChrome [&:has([cmdk-list-sizer]:empty)]:plb-0'>
349
+ <SearchList.Content classNames='p-form-chrome [&:has([cmdk-list-sizer]:empty)]:py-0'>
194
350
  <SearchList.Viewport>
195
351
  {results.length ? (
196
352
  results.map((object) => {
197
353
  const isActive = contextObjects.findIndex((obj) => obj.id === object.id) !== -1;
354
+ const { icon, hue } = Option.fromNullable(Obj.getSchema(object)).pipe(
355
+ Option.flatMap(Annotation.IconAnnotation.get),
356
+ Option.getOrElse(() => ({
357
+ icon: 'ph--cube--regular',
358
+ hue: undefined as string | undefined,
359
+ })),
360
+ );
361
+ const styles = hue ? getStyles(hue) : undefined;
198
362
  return (
199
363
  <SearchList.Item
200
364
  classNames='flex items-center overflow-hidden'
201
365
  key={object.id}
202
366
  value={object.id}
367
+ icon={icon}
368
+ iconClassNames={styles?.surfaceText}
203
369
  label={Obj.getLabel(object) ?? Obj.getTypename(object) ?? object.id}
204
370
  checked={isActive}
205
371
  onSelect={() => onUpdateObject?.(Obj.getDXN(object), !isActive)}
@@ -207,19 +373,19 @@ const ObjectsPanel = ({ db, context }: Pick<ChatOptionsProps, 'db' | 'context'>)
207
373
  );
208
374
  })
209
375
  ) : (
210
- <SearchList.Item value='__empty__' label={t('no results')} />
376
+ <SearchList.Item value='__empty__' label={t('no-results.message')} />
211
377
  )}
212
378
  </SearchList.Viewport>
213
379
  </SearchList.Content>
214
380
 
215
- <div role='none' className='grid grid-cols-[min-content_1fr] gap-2 pli-cardSpacingChrome mbe-cardSpacingChrome'>
381
+ <div role='none' className={mx('flex flex-col', styles.toolbar)}>
216
382
  <Select.Root value={typename === ANY ? undefined : typename} onValueChange={setTypename}>
217
- <Select.TriggerButton density='fine' placeholder={t('type filter placeholder')} />
383
+ <Select.TriggerButton placeholder={t('type-filter.placeholder')} />
218
384
  <Select.Portal>
219
385
  <Select.Content>
220
386
  <Select.ScrollUpButton />
221
387
  <Select.Viewport>
222
- <Select.Option value={ANY}>{t('any type filter label')}</Select.Option>
388
+ <Select.Option value={ANY}>{t('any-type-filter.label')}</Select.Option>
223
389
  {typenames.map(({ typename, label }) => (
224
390
  <Select.Option key={typename} value={typename}>
225
391
  {label}
@@ -231,7 +397,7 @@ const ObjectsPanel = ({ db, context }: Pick<ChatOptionsProps, 'db' | 'context'>)
231
397
  </Select.Content>
232
398
  </Select.Portal>
233
399
  </Select.Root>
234
- <SearchList.Input placeholder={t('search placeholder')} classNames='mbe-0' autoFocus />
400
+ <SearchList.Input placeholder={t('search.placeholder')} autoFocus />
235
401
  </div>
236
402
  </SearchList.Root>
237
403
  );
@@ -2,15 +2,16 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import * as Option from 'effect/Option';
5
6
  import React from 'react';
6
7
 
7
8
  import { type AiContextBinder } from '@dxos/assistant';
8
- import { type Database, Obj } from '@dxos/echo';
9
- import { IconButton, type Label, type ThemedClassName, toLocalizedString, useTranslation } from '@dxos/react-ui';
10
- import { mx } from '@dxos/ui-theme';
9
+ import { Annotation, type Database, Obj } from '@dxos/echo';
10
+ import { Icon, IconButton, type Label, type ThemedClassName, toLocalizedString, useTranslation } from '@dxos/react-ui';
11
+ import { getStyles, mx } from '@dxos/ui-theme';
11
12
 
12
- import { useContextObjects } from '../../hooks';
13
- import { meta } from '../../meta';
13
+ import { useContextObjects } from '#hooks';
14
+ import { meta } from '#meta';
14
15
 
15
16
  export type ChatReferencesProps = ThemedClassName<{
16
17
  context: AiContextBinder;
@@ -26,15 +27,21 @@ export const ChatReferences = ({ classNames, context, db }: ChatReferencesProps)
26
27
  {objects.map((obj) => {
27
28
  const dxn = Obj.getDXN(obj);
28
29
  const typename = Obj.getTypename(obj);
29
- const label: Label = Obj.getLabel(obj) ?? (typename ? ['object name placeholder', { ns: typename }] : obj.id);
30
+ const label: Label = Obj.getLabel(obj) ?? (typename ? ['object-name.placeholder', { ns: typename }] : obj.id);
31
+ const { icon, hue } = Option.fromNullable(Obj.getSchema(obj)).pipe(
32
+ Option.flatMap(Annotation.IconAnnotation.get),
33
+ Option.getOrElse(() => ({ icon: DEFAULT_OBJECT_ICON, hue: undefined as string | undefined })),
34
+ );
35
+ const styles = hue ? getStyles(hue) : undefined;
30
36
  return (
31
- <li key={dxn.toString()} className='dx-tag plb-0 pis-2 flex items-center' data-hue='neutral'>
37
+ <li key={dxn.toString()} className='dx-tag py-0 ps-2 flex items-center gap-1' data-hue='neutral'>
38
+ <Icon icon={icon} size={4} classNames={styles?.surfaceText} />
32
39
  {toLocalizedString(label, t)}
33
40
  <IconButton
34
41
  icon='ph--x--bold'
35
42
  iconOnly
36
43
  variant='ghost'
37
- label={t('remove object in context label')}
44
+ label={t('remove-object-in-context.label')}
38
45
  classNames='p-0 hover:bg-transparent'
39
46
  size={3}
40
47
  onClick={() => onUpdateObject?.(dxn, false)}
@@ -45,3 +52,6 @@ export const ChatReferences = ({ classNames, context, db }: ChatReferencesProps)
45
52
  </ul>
46
53
  );
47
54
  };
55
+
56
+ // TODO(dmaretskyi): Extract those somewhere else.
57
+ const DEFAULT_OBJECT_ICON = 'ph--cube--regular';
@@ -0,0 +1,95 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
6
+ import * as Effect from 'effect/Effect';
7
+ import React from 'react';
8
+
9
+ import { withPluginManager } from '@dxos/app-framework/testing';
10
+ import { Database, Filter, Obj } from '@dxos/echo';
11
+ import { DxAnchor } from '@dxos/lit-ui/react';
12
+ import { ClientPlugin } from '@dxos/plugin-client';
13
+ import { initializeIdentity } from '@dxos/plugin-client/testing';
14
+ import { PreviewPlugin } from '@dxos/plugin-preview';
15
+ import { StorybookPlugin, corePlugins } from '@dxos/plugin-testing';
16
+ import { useQuery, useSpaces } from '@dxos/react-client/echo';
17
+ import { Loading, withLayout } from '@dxos/react-ui/testing';
18
+ import { Organization } from '@dxos/types';
19
+
20
+ /**
21
+ * Production-style click → popover demo.
22
+ *
23
+ * Wires up the same chain Composer uses:
24
+ * - `<DxAnchor dxn=…>label</DxAnchor>` fires `DxAnchorActivate` on click.
25
+ * - `PreviewPlugin`'s `preview-popover` capability listens for the event, resolves the DXN
26
+ * to a real ECHO object via `space.db.makeRef(dxn).load()`, then invokes
27
+ * `LayoutOperation.UpdatePopover`.
28
+ * - `StorybookPlugin` provides both the `LayoutOperation.UpdatePopover` handler (mutating
29
+ * the layout-state atom) and the `<Layout>` shell that renders the popover via
30
+ * `<Surface.Surface type={AppSurface.Card} data={popoverContent}>`.
31
+ * - `PreviewPlugin` also registers Card-role surfaces (Organization, Person, Task, …); the
32
+ * Surface system picks the matching one based on the resolved object's type.
33
+ *
34
+ * Click the anchor — the matching Card surface (from plugin-preview) renders inside the
35
+ * popover, anchored to the trigger.
36
+ */
37
+ const DefaultStory = () => {
38
+ const [space] = useSpaces();
39
+ const [organization] = useQuery(space?.db, Filter.type(Organization.Organization));
40
+ if (!organization) {
41
+ return <Loading />;
42
+ }
43
+
44
+ const dxn = Obj.getDXN(organization).toString();
45
+ return (
46
+ <div role='none' className='flex flex-col gap-2 p-4'>
47
+ <p>
48
+ Click{' '}
49
+ <DxAnchor className='dx-tag--anchor' dxn={dxn}>
50
+ {organization.name}
51
+ </DxAnchor>{' '}
52
+ to open the popover.
53
+ </p>
54
+ </div>
55
+ );
56
+ };
57
+
58
+ const meta = {
59
+ title: 'plugins/plugin-assistant/components/ChatThread/Anchor',
60
+ render: DefaultStory,
61
+ decorators: [
62
+ withLayout({ layout: 'centered' }),
63
+ withPluginManager({
64
+ plugins: [
65
+ ...corePlugins(),
66
+ StorybookPlugin({}),
67
+ PreviewPlugin(),
68
+ ClientPlugin({
69
+ types: [Organization.Organization],
70
+ onClientInitialized: Effect.fnUntraced(function* ({ client }) {
71
+ const { personalSpace } = yield* initializeIdentity(client);
72
+ yield* Effect.gen(function* () {
73
+ yield* Database.add(
74
+ Obj.make(Organization.Organization, {
75
+ name: 'DXOS',
76
+ website: 'https://dxos.org',
77
+ description: 'A decentralized network for collaborative applications.',
78
+ }),
79
+ );
80
+ }).pipe(Effect.provide(Database.layer(personalSpace.db)));
81
+ }),
82
+ }),
83
+ ],
84
+ }),
85
+ ],
86
+ parameters: {
87
+ layout: 'centered',
88
+ },
89
+ } satisfies Meta<typeof DefaultStory>;
90
+
91
+ export default meta;
92
+
93
+ type Story = StoryObj<typeof meta>;
94
+
95
+ export const Default: Story = {};