@dxos/plugin-assistant 0.8.4-main.dedc0f3 → 0.8.4-main.dfabb4ec29

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 (824) hide show
  1. package/dist/lib/neutral/AgentArticle-LDV6UTSH.mjs +168 -0
  2. package/dist/lib/neutral/AgentArticle-LDV6UTSH.mjs.map +7 -0
  3. package/dist/lib/neutral/AgentProperties-H535EM5S.mjs +100 -0
  4. package/dist/lib/neutral/AgentProperties-H535EM5S.mjs.map +7 -0
  5. package/dist/lib/neutral/AssistantPlugin.mjs +99 -0
  6. package/dist/lib/neutral/AssistantPlugin.mjs.map +7 -0
  7. package/dist/lib/neutral/AssistantPlugin.node.mjs +46 -0
  8. package/dist/lib/neutral/AssistantPlugin.node.mjs.map +7 -0
  9. package/dist/lib/neutral/AssistantSettings-GG52BLKS.mjs +40 -0
  10. package/dist/lib/neutral/AssistantSettings-GG52BLKS.mjs.map +7 -0
  11. package/dist/lib/neutral/BlueprintArticle-U7LUBFOS.mjs +27 -0
  12. package/dist/lib/neutral/BlueprintArticle-U7LUBFOS.mjs.map +7 -0
  13. package/dist/lib/neutral/ChatCompanion-6LC7YCV6.mjs +130 -0
  14. package/dist/lib/neutral/ChatCompanion-6LC7YCV6.mjs.map +7 -0
  15. package/dist/lib/neutral/ChatContainer-X3R4ALHT.mjs +8 -0
  16. package/dist/lib/neutral/ChatDialog-QKZLG7SQ.mjs +72 -0
  17. package/dist/lib/neutral/ChatDialog-QKZLG7SQ.mjs.map +7 -0
  18. package/dist/lib/neutral/RoutineArticle-6LC3P7OB.mjs +55 -0
  19. package/dist/lib/neutral/RoutineArticle-6LC3P7OB.mjs.map +7 -0
  20. package/dist/lib/neutral/RoutineList-CLDXGQUD.mjs +48 -0
  21. package/dist/lib/neutral/RoutineList-CLDXGQUD.mjs.map +7 -0
  22. package/dist/lib/neutral/TracePanel-HYVPDIAA.mjs +565 -0
  23. package/dist/lib/neutral/TracePanel-HYVPDIAA.mjs.map +7 -0
  24. package/dist/lib/neutral/TriggerStatus-WTFYUIG5.mjs +92 -0
  25. package/dist/lib/neutral/TriggerStatus-WTFYUIG5.mjs.map +7 -0
  26. package/dist/lib/neutral/ai-service-GJXMI5OI.mjs +22 -0
  27. package/dist/lib/neutral/ai-service-GJXMI5OI.mjs.map +7 -0
  28. package/dist/lib/neutral/app-graph-builder-XZJDJ3LJ.mjs +189 -0
  29. package/dist/lib/neutral/app-graph-builder-XZJDJ3LJ.mjs.map +7 -0
  30. package/dist/lib/neutral/blueprint-definition-VXJYQ5AE.mjs +32 -0
  31. package/dist/lib/neutral/blueprint-definition-VXJYQ5AE.mjs.map +7 -0
  32. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  33. package/dist/lib/neutral/capabilities/index.mjs +35 -0
  34. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  35. package/dist/lib/neutral/chunk-4CQZCMRP.mjs +25 -0
  36. package/dist/lib/neutral/chunk-4CQZCMRP.mjs.map +7 -0
  37. package/dist/lib/neutral/chunk-5H6UJHLF.mjs +30 -0
  38. package/dist/lib/neutral/chunk-5H6UJHLF.mjs.map +7 -0
  39. package/dist/lib/neutral/chunk-CM3XQU2M.mjs +8 -0
  40. package/dist/lib/neutral/chunk-CM3XQU2M.mjs.map +7 -0
  41. package/dist/lib/neutral/chunk-F7VUML5H.mjs +104 -0
  42. package/dist/lib/neutral/chunk-F7VUML5H.mjs.map +7 -0
  43. package/dist/lib/neutral/chunk-VHPTYKYD.mjs +361 -0
  44. package/dist/lib/neutral/chunk-VHPTYKYD.mjs.map +7 -0
  45. package/dist/lib/neutral/companion-chat-provisioner-5N4HWNVJ.mjs +116 -0
  46. package/dist/lib/neutral/companion-chat-provisioner-5N4HWNVJ.mjs.map +7 -0
  47. package/dist/lib/neutral/components/index.mjs +2240 -0
  48. package/dist/lib/neutral/components/index.mjs.map +7 -0
  49. package/dist/lib/neutral/containers/index.mjs +27 -0
  50. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  51. package/dist/lib/neutral/create-chat-AEFFQYHT.mjs +71 -0
  52. package/dist/lib/neutral/create-chat-AEFFQYHT.mjs.map +7 -0
  53. package/dist/lib/neutral/create-object-VV5AO6D2.mjs +93 -0
  54. package/dist/lib/neutral/create-object-VV5AO6D2.mjs.map +7 -0
  55. package/dist/lib/neutral/edge-model-resolver-XDNBZ3US.mjs +21 -0
  56. package/dist/lib/neutral/edge-model-resolver-XDNBZ3US.mjs.map +7 -0
  57. package/dist/lib/neutral/ensure-companion-chat-EWF5GEZI.mjs +58 -0
  58. package/dist/lib/neutral/ensure-companion-chat-EWF5GEZI.mjs.map +7 -0
  59. package/dist/lib/neutral/hooks/index.mjs +930 -0
  60. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  61. package/dist/lib/neutral/index.mjs +32 -0
  62. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs +24 -0
  63. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs.map +7 -0
  64. package/dist/lib/neutral/markdown-KTBFOMFM.mjs +110 -0
  65. package/dist/lib/neutral/markdown-KTBFOMFM.mjs.map +7 -0
  66. package/dist/lib/neutral/meta.json +1 -0
  67. package/dist/lib/neutral/meta.mjs +12 -0
  68. package/dist/lib/neutral/migrations-LOYUJDNX.mjs +28 -0
  69. package/dist/lib/neutral/migrations-LOYUJDNX.mjs.map +7 -0
  70. package/dist/lib/neutral/on-create-space-Q2R7OSP6.mjs +19 -0
  71. package/dist/lib/neutral/on-create-space-Q2R7OSP6.mjs.map +7 -0
  72. package/dist/lib/neutral/operation-handler-SF36MOB5.mjs +13 -0
  73. package/dist/lib/neutral/operation-handler-SF36MOB5.mjs.map +7 -0
  74. package/dist/lib/neutral/operations/index.mjs +8 -0
  75. package/dist/lib/neutral/plugin.mjs +16 -0
  76. package/dist/lib/neutral/plugin.mjs.map +7 -0
  77. package/dist/lib/neutral/react-surface-JWFECJJ5.mjs +165 -0
  78. package/dist/lib/neutral/react-surface-JWFECJJ5.mjs.map +7 -0
  79. package/dist/lib/neutral/resolve-navigation-targets-VXBSWV5L.mjs +20 -0
  80. package/dist/lib/neutral/resolve-navigation-targets-VXBSWV5L.mjs.map +7 -0
  81. package/dist/lib/neutral/run-prompt-in-new-chat-ZMWSWGXL.mjs +100 -0
  82. package/dist/lib/neutral/run-prompt-in-new-chat-ZMWSWGXL.mjs.map +7 -0
  83. package/dist/lib/neutral/set-current-chat-ZFDCYK5I.mjs +48 -0
  84. package/dist/lib/neutral/set-current-chat-ZFDCYK5I.mjs.map +7 -0
  85. package/dist/lib/neutral/settings-W4BLWQ53.mjs +28 -0
  86. package/dist/lib/neutral/settings-W4BLWQ53.mjs.map +7 -0
  87. package/dist/lib/neutral/state-H3G7QCU6.mjs +28 -0
  88. package/dist/lib/neutral/state-H3G7QCU6.mjs.map +7 -0
  89. package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs +14 -0
  90. package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs.map +7 -0
  91. package/dist/lib/neutral/translations.mjs +173 -0
  92. package/dist/lib/neutral/translations.mjs.map +7 -0
  93. package/dist/lib/neutral/types/index.mjs +20 -0
  94. package/dist/lib/neutral/types/index.mjs.map +7 -0
  95. package/dist/lib/neutral/update-chat-name-ENXRUMDJ.mjs +54 -0
  96. package/dist/lib/neutral/update-chat-name-ENXRUMDJ.mjs.map +7 -0
  97. package/dist/types/src/AssistantPlugin.d.ts +3 -1
  98. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  99. package/dist/types/src/AssistantPlugin.node.d.ts +4 -0
  100. package/dist/types/src/AssistantPlugin.node.d.ts.map +1 -0
  101. package/dist/types/src/AssistantPlugin.test.d.ts +2 -0
  102. package/dist/types/src/AssistantPlugin.test.d.ts.map +1 -0
  103. package/dist/types/src/blueprints/assistant/blueprint.d.ts +4 -0
  104. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -0
  105. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts +2 -0
  106. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts.map +1 -0
  107. package/dist/types/src/blueprints/assistant/index.d.ts +2 -0
  108. package/dist/types/src/blueprints/assistant/index.d.ts.map +1 -0
  109. package/dist/types/src/blueprints/index.d.ts +2 -0
  110. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/ai-service.d.ts +4 -3
  112. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  114. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/blueprint-definition.d.ts +4 -6
  116. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts +9 -0
  118. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/create-object.d.ts +31 -0
  120. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/edge-model-resolver.d.ts +6 -3
  122. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
  123. package/dist/types/src/capabilities/index.d.ts +55 -13
  124. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  125. package/dist/types/src/capabilities/local-model-resolver.d.ts +9 -3
  126. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
  127. package/dist/types/src/capabilities/markdown.d.ts +5 -0
  128. package/dist/types/src/capabilities/markdown.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/migrations.d.ts +5 -0
  130. package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  132. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  134. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  135. package/dist/types/src/capabilities/settings.d.ts +4 -2
  136. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  137. package/dist/types/src/capabilities/state.d.ts +19 -2
  138. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  139. package/dist/types/src/capabilities/toolkit.d.ts +4 -2
  140. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  141. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +4 -4
  142. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  143. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts +15 -0
  144. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -0
  145. package/dist/types/src/components/AssistantSettings/index.d.ts +1 -1
  146. package/dist/types/src/components/AssistantSettings/index.d.ts.map +1 -1
  147. package/dist/types/src/components/Chat/Chat.d.ts +36 -32
  148. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  149. package/dist/types/src/components/Chat/context.d.ts +29 -0
  150. package/dist/types/src/components/Chat/context.d.ts.map +1 -0
  151. package/dist/types/src/components/Chat/events.d.ts +5 -1
  152. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  153. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts +2 -1
  154. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  155. package/dist/types/src/components/ChatPrompt/ChatMcpErrors.d.ts +12 -0
  156. package/dist/types/src/components/ChatPrompt/ChatMcpErrors.d.ts.map +1 -0
  157. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +8 -4
  158. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  159. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts +19 -0
  160. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -0
  161. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
  162. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts +28 -0
  163. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts.map +1 -0
  164. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +3 -3
  165. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  166. package/dist/types/src/components/ChatPrompt/ChatStatus.d.ts +20 -0
  167. package/dist/types/src/components/ChatPrompt/ChatStatus.d.ts.map +1 -0
  168. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
  169. package/dist/types/src/components/ChatPrompt/index.d.ts +3 -0
  170. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
  171. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts +14 -0
  172. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts.map +1 -0
  173. package/dist/types/src/components/ChatThread/ChatThread.d.ts +11 -9
  174. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  175. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +17 -263
  176. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  177. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
  178. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +42 -0
  179. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -0
  180. package/dist/types/src/components/ChatThread/registry.d.ts +19 -1
  181. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  182. package/dist/types/src/components/ChatThread/sync.d.ts +51 -18
  183. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  184. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts +18 -0
  185. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts.map +1 -0
  186. package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts +2 -0
  187. package/dist/types/src/components/ChatThread/tool-widget-state.test.d.ts.map +1 -0
  188. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts +8 -0
  189. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts.map +1 -0
  190. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts +25 -0
  191. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts.map +1 -0
  192. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts +18 -0
  193. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts.map +1 -0
  194. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts +9 -0
  195. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts.map +1 -0
  196. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts +14 -0
  197. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts.map +1 -0
  198. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts +12 -0
  199. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts.map +1 -0
  200. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts +12 -0
  201. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts.map +1 -0
  202. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts +11 -0
  203. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts.map +1 -0
  204. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts +5 -0
  205. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts.map +1 -0
  206. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts +9 -0
  207. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts.map +1 -0
  208. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts +15 -0
  209. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts.map +1 -0
  210. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts +5 -0
  211. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts.map +1 -0
  212. package/dist/types/src/components/ChatThread/widgets/index.d.ts +10 -0
  213. package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -0
  214. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +11 -0
  215. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -0
  216. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +7 -0
  217. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -0
  218. package/dist/types/src/components/ProcessTree/index.d.ts +2 -0
  219. package/dist/types/src/components/ProcessTree/index.d.ts.map +1 -0
  220. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +7 -5
  221. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  222. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +1 -250
  223. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  224. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +13 -4
  225. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  226. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +2 -251
  227. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  228. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  229. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  230. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  231. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  232. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  233. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +9 -16
  234. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  235. package/dist/types/src/components/Toolbox/Toolbox.d.ts +14 -13
  236. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  237. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +1 -250
  238. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  239. package/dist/types/src/components/index.d.ts +3 -11
  240. package/dist/types/src/components/index.d.ts.map +1 -1
  241. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts +6 -0
  242. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -0
  243. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts +21 -0
  244. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -0
  245. package/dist/types/src/containers/AgentArticle/index.d.ts +2 -0
  246. package/dist/types/src/containers/AgentArticle/index.d.ts.map +1 -0
  247. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts +6 -0
  248. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts.map +1 -0
  249. package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts +16 -0
  250. package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts.map +1 -0
  251. package/dist/types/src/containers/AgentProperties/index.d.ts +2 -0
  252. package/dist/types/src/containers/AgentProperties/index.d.ts.map +1 -0
  253. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +6 -0
  254. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -0
  255. package/dist/types/src/containers/BlueprintArticle/index.d.ts +2 -0
  256. package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +1 -0
  257. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +18 -0
  258. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -0
  259. package/dist/types/src/containers/ChatCompanion/index.d.ts +2 -0
  260. package/dist/types/src/containers/ChatCompanion/index.d.ts.map +1 -0
  261. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +12 -0
  262. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
  263. package/dist/types/src/containers/ChatContainer/index.d.ts +2 -0
  264. package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
  265. package/dist/types/src/{components → containers/ChatDialog}/ChatDialog.d.ts +2 -3
  266. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -0
  267. package/dist/types/src/containers/ChatDialog/index.d.ts +2 -0
  268. package/dist/types/src/containers/ChatDialog/index.d.ts.map +1 -0
  269. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts +6 -0
  270. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts.map +1 -0
  271. package/dist/types/src/containers/RoutineArticle/index.d.ts +2 -0
  272. package/dist/types/src/containers/RoutineArticle/index.d.ts.map +1 -0
  273. package/dist/types/src/containers/RoutineList/RoutineList.d.ts +6 -0
  274. package/dist/types/src/containers/RoutineList/RoutineList.d.ts.map +1 -0
  275. package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts +21 -0
  276. package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts.map +1 -0
  277. package/dist/types/src/containers/RoutineList/index.d.ts +2 -0
  278. package/dist/types/src/containers/RoutineList/index.d.ts.map +1 -0
  279. package/dist/types/src/containers/TracePanel/TracePanel.d.ts +8 -0
  280. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -0
  281. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts +13 -0
  282. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -0
  283. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts +19 -0
  284. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts.map +1 -0
  285. package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts +2 -0
  286. package/dist/types/src/containers/TracePanel/dxn-extractor.test.d.ts.map +1 -0
  287. package/dist/types/src/containers/TracePanel/execution-graph.d.ts +97 -0
  288. package/dist/types/src/containers/TracePanel/execution-graph.d.ts.map +1 -0
  289. package/dist/types/src/containers/TracePanel/execution-graph.test.d.ts +2 -0
  290. package/dist/types/src/containers/TracePanel/execution-graph.test.d.ts.map +1 -0
  291. package/dist/types/src/containers/TracePanel/index.d.ts +4 -0
  292. package/dist/types/src/containers/TracePanel/index.d.ts.map +1 -0
  293. package/dist/types/src/containers/TracePanel/testing/index.d.ts +3 -0
  294. package/dist/types/src/containers/TracePanel/testing/index.d.ts.map +1 -0
  295. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts +14 -0
  296. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts.map +1 -0
  297. package/dist/types/src/containers/TracePanel/testing/snapshot-playback.d.ts +12 -0
  298. package/dist/types/src/containers/TracePanel/testing/snapshot-playback.d.ts.map +1 -0
  299. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +5 -0
  300. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -0
  301. package/dist/types/src/containers/TriggerStatus/index.d.ts +2 -0
  302. package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -0
  303. package/dist/types/src/containers/index.d.ts +12 -0
  304. package/dist/types/src/containers/index.d.ts.map +1 -0
  305. package/dist/types/src/extensions/index.d.ts +2 -0
  306. package/dist/types/src/extensions/index.d.ts.map +1 -0
  307. package/dist/types/src/extensions/prompt-extension.d.ts +10 -0
  308. package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -0
  309. package/dist/types/src/hooks/index.d.ts +4 -3
  310. package/dist/types/src/hooks/index.d.ts.map +1 -1
  311. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +6 -5
  312. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  313. package/dist/types/src/hooks/useChatKeymap.d.ts +12 -0
  314. package/dist/types/src/hooks/useChatKeymap.d.ts.map +1 -0
  315. package/dist/types/src/hooks/useChatProcessor.d.ts +10 -7
  316. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  317. package/dist/types/src/hooks/useChatServices.d.ts +5 -8
  318. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  319. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  320. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  321. package/dist/types/src/hooks/useContextBinder.d.ts +3 -2
  322. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  323. package/dist/types/src/hooks/useContextObjects.d.ts +7 -7
  324. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  325. package/dist/types/src/hooks/useDebug.d.ts +10 -0
  326. package/dist/types/src/hooks/useDebug.d.ts.map +1 -0
  327. package/dist/types/src/hooks/useFilteredTypes.d.ts +3 -0
  328. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -0
  329. package/dist/types/src/hooks/useFlush.d.ts +1 -1
  330. package/dist/types/src/hooks/useFlush.d.ts.map +1 -1
  331. package/dist/types/src/hooks/usePresets.d.ts +1 -1
  332. package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
  333. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  334. package/dist/types/src/index.d.ts +1 -4
  335. package/dist/types/src/index.d.ts.map +1 -1
  336. package/dist/types/src/meta.d.ts +5 -4
  337. package/dist/types/src/meta.d.ts.map +1 -1
  338. package/dist/types/src/operations/create-chat.d.ts +5 -0
  339. package/dist/types/src/operations/create-chat.d.ts.map +1 -0
  340. package/dist/types/src/operations/ensure-companion-chat.d.ts +5 -0
  341. package/dist/types/src/operations/ensure-companion-chat.d.ts.map +1 -0
  342. package/dist/types/src/operations/index.d.ts +3 -0
  343. package/dist/types/src/operations/index.d.ts.map +1 -0
  344. package/dist/types/src/operations/on-create-space.d.ts +5 -0
  345. package/dist/types/src/operations/on-create-space.d.ts.map +1 -0
  346. package/dist/types/src/operations/prompt.test.d.ts +2 -0
  347. package/dist/types/src/operations/prompt.test.d.ts.map +1 -0
  348. package/dist/types/src/operations/resolve-navigation-targets.d.ts +15 -0
  349. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -0
  350. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +5 -0
  351. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -0
  352. package/dist/types/src/operations/set-current-chat.d.ts +5 -0
  353. package/dist/types/src/operations/set-current-chat.d.ts.map +1 -0
  354. package/dist/types/src/operations/update-chat-name.d.ts +5 -0
  355. package/dist/types/src/operations/update-chat-name.d.ts.map +1 -0
  356. package/dist/types/src/plugin.d.ts +4 -0
  357. package/dist/types/src/plugin.d.ts.map +1 -0
  358. package/dist/types/src/processor/presets.d.ts +2 -2
  359. package/dist/types/src/processor/presets.d.ts.map +1 -1
  360. package/dist/types/src/processor/processor.d.ts +61 -36
  361. package/dist/types/src/processor/processor.d.ts.map +1 -1
  362. package/dist/types/src/queue-logger.d.ts.map +1 -1
  363. package/dist/types/src/testing/index.d.ts +1 -2
  364. package/dist/types/src/testing/index.d.ts.map +1 -1
  365. package/dist/types/src/testing/test-generator.d.ts +6 -5
  366. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  367. package/dist/types/src/testing/test-generator.test.d.ts +2 -0
  368. package/dist/types/src/testing/test-generator.test.d.ts.map +1 -0
  369. package/dist/types/src/testing/test-services.d.ts +2 -2
  370. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  371. package/dist/types/src/testing/test-trace.d.ts +5 -0
  372. package/dist/types/src/testing/test-trace.d.ts.map +1 -0
  373. package/dist/types/src/testing/trace-timeline.test.d.ts +2 -0
  374. package/dist/types/src/testing/trace-timeline.test.d.ts.map +1 -0
  375. package/dist/types/src/translations.d.ts +2 -87
  376. package/dist/types/src/translations.d.ts.map +1 -1
  377. package/dist/types/src/types/Assistant.d.ts +33 -39
  378. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  379. package/dist/types/src/types/AssistantCapabilities.d.ts +30 -0
  380. package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -0
  381. package/dist/types/src/types/AssistantEvents.d.ts +3 -0
  382. package/dist/types/src/types/AssistantEvents.d.ts.map +1 -0
  383. package/dist/types/src/types/AssistantOperation.d.ts +142 -0
  384. package/dist/types/src/types/AssistantOperation.d.ts.map +1 -0
  385. package/dist/types/src/types/Settings.d.ts +26 -0
  386. package/dist/types/src/types/Settings.d.ts.map +1 -0
  387. package/dist/types/src/types/index.d.ts +4 -2
  388. package/dist/types/src/types/index.d.ts.map +1 -1
  389. package/dist/types/src/types/service.d.ts +14 -216
  390. package/dist/types/src/types/service.d.ts.map +1 -1
  391. package/dist/types/tsconfig.tsbuildinfo +1 -1
  392. package/package.json +191 -130
  393. package/src/AssistantPlugin.node.ts +44 -0
  394. package/src/AssistantPlugin.test.ts +35 -0
  395. package/src/AssistantPlugin.ts +126 -0
  396. package/src/blueprints/assistant/blueprint.test.ts +46 -0
  397. package/src/blueprints/assistant/blueprint.ts +31 -0
  398. package/src/blueprints/assistant/index.ts +5 -0
  399. package/src/{components/Toolbar → blueprints}/index.ts +1 -1
  400. package/src/capabilities/ai-service.ts +22 -20
  401. package/src/capabilities/app-graph-builder.ts +172 -142
  402. package/src/capabilities/blueprint-definition.ts +47 -49
  403. package/src/capabilities/companion-chat-provisioner.ts +163 -0
  404. package/src/capabilities/create-object.ts +107 -0
  405. package/src/capabilities/edge-model-resolver.ts +23 -17
  406. package/src/capabilities/index.ts +23 -15
  407. package/src/capabilities/local-model-resolver.ts +34 -18
  408. package/src/capabilities/markdown.ts +40 -0
  409. package/src/capabilities/migrations.ts +28 -0
  410. package/src/capabilities/operation-handler.ts +16 -0
  411. package/src/capabilities/react-surface.tsx +153 -77
  412. package/src/capabilities/settings.ts +24 -12
  413. package/src/capabilities/state.ts +27 -12
  414. package/src/capabilities/toolkit.ts +7 -157
  415. package/src/components/AssistantSettings/AssistantSettings.stories.tsx +35 -0
  416. package/src/components/AssistantSettings/AssistantSettings.tsx +30 -99
  417. package/src/components/AssistantSettings/index.ts +2 -2
  418. package/src/components/Chat/Chat.tsx +133 -252
  419. package/src/components/Chat/context.ts +39 -0
  420. package/src/components/Chat/events.ts +7 -1
  421. package/src/components/ChatPrompt/ChatActions.tsx +34 -16
  422. package/src/components/ChatPrompt/ChatMcpErrors.tsx +50 -0
  423. package/src/components/ChatPrompt/ChatOptions.stories.tsx +136 -0
  424. package/src/components/ChatPrompt/ChatOptions.tsx +312 -101
  425. package/src/components/ChatPrompt/ChatPrompt.tsx +182 -0
  426. package/src/components/ChatPrompt/ChatReferences.tsx +23 -14
  427. package/src/components/ChatPrompt/ChatStatus.tsx +123 -0
  428. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +2 -2
  429. package/src/components/ChatPrompt/index.ts +3 -0
  430. package/src/components/ChatThread/Anchor.stories.tsx +95 -0
  431. package/src/components/ChatThread/ChatThread.stories.tsx +79 -66
  432. package/src/components/ChatThread/ChatThread.tsx +65 -45
  433. package/src/components/ChatThread/DEBUG.md +41 -0
  434. package/src/components/ChatThread/Link.tsx +4 -4
  435. package/src/components/ChatThread/MarkdownStream.stories.tsx +281 -0
  436. package/src/components/ChatThread/registry.tsx +185 -84
  437. package/src/components/ChatThread/sync.test.ts +202 -26
  438. package/src/components/ChatThread/sync.ts +105 -68
  439. package/src/components/ChatThread/testing/reasoning.md +25 -0
  440. package/src/components/ChatThread/testing/thinking.md +21 -0
  441. package/src/components/ChatThread/testing/thread-1.md +30 -0
  442. package/src/components/ChatThread/testing/thread-2.md +56 -0
  443. package/src/components/ChatThread/testing/thread-widgets.md +79 -0
  444. package/src/components/ChatThread/tool-widget-state.test.ts +34 -0
  445. package/src/components/ChatThread/tool-widget-state.ts +48 -0
  446. package/src/components/ChatThread/widgets/FallbackWidget.tsx +26 -0
  447. package/src/components/ChatThread/widgets/ReasoningWidget.stories.tsx +68 -0
  448. package/src/components/ChatThread/widgets/ReasoningWidget.ts +133 -0
  449. package/src/components/ChatThread/widgets/ReferenceWidget.ts +33 -0
  450. package/src/components/ChatThread/widgets/SelectWidget.ts +39 -0
  451. package/src/components/ChatThread/widgets/StatsWidget.ts +31 -0
  452. package/src/components/ChatThread/widgets/StatusWidget.ts +53 -0
  453. package/src/components/ChatThread/widgets/SuggestionWidget.ts +41 -0
  454. package/src/components/ChatThread/widgets/SummaryWidget.tsx +27 -0
  455. package/src/components/ChatThread/widgets/ToolWidget.stories.tsx +55 -0
  456. package/src/components/ChatThread/widgets/ToolWidget.tsx +156 -0
  457. package/src/components/ChatThread/widgets/defaults.ts +8 -0
  458. package/src/components/ChatThread/widgets/index.ts +13 -0
  459. package/src/components/ProcessTree/ProcessTree.stories.tsx +83 -0
  460. package/src/components/ProcessTree/ProcessTree.tsx +119 -0
  461. package/src/components/ProcessTree/index.ts +5 -0
  462. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +21 -17
  463. package/src/components/TemplateEditor/TemplateEditor.tsx +61 -41
  464. package/src/components/TemplateEditor/TemplateForm.stories.tsx +22 -18
  465. package/src/components/TemplateEditor/TemplateForm.tsx +112 -87
  466. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +274 -0
  467. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  468. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  469. package/src/components/ToolBlock/ToolBlock.tsx +52 -60
  470. package/src/components/Toolbox/Toolbox.stories.tsx +16 -21
  471. package/src/components/Toolbox/Toolbox.tsx +71 -66
  472. package/src/components/index.ts +3 -10
  473. package/src/containers/AgentArticle/AgentArticle.stories.tsx +120 -0
  474. package/src/containers/AgentArticle/AgentArticle.tsx +200 -0
  475. package/src/containers/AgentArticle/index.ts +5 -0
  476. package/src/containers/AgentProperties/AgentProperties.stories.tsx +101 -0
  477. package/src/containers/AgentProperties/AgentProperties.tsx +127 -0
  478. package/src/containers/AgentProperties/index.ts +5 -0
  479. package/src/containers/BlueprintArticle/BlueprintArticle.tsx +29 -0
  480. package/src/containers/BlueprintArticle/index.ts +5 -0
  481. package/src/containers/ChatCompanion/ChatCompanion.tsx +129 -0
  482. package/src/containers/ChatCompanion/index.ts +5 -0
  483. package/src/containers/ChatContainer/ChatContainer.tsx +105 -0
  484. package/src/containers/ChatContainer/index.ts +5 -0
  485. package/src/{components → containers/ChatDialog}/ChatDialog.tsx +14 -16
  486. package/src/containers/ChatDialog/index.ts +5 -0
  487. package/src/containers/RoutineArticle/RoutineArticle.tsx +59 -0
  488. package/src/containers/RoutineArticle/index.ts +5 -0
  489. package/src/containers/RoutineList/RoutineList.stories.tsx +130 -0
  490. package/src/containers/RoutineList/RoutineList.tsx +50 -0
  491. package/src/containers/RoutineList/index.ts +5 -0
  492. package/src/containers/TracePanel/TracePanel.stories.tsx +285 -0
  493. package/src/containers/TracePanel/TracePanel.tsx +167 -0
  494. package/src/containers/TracePanel/dxn-extractor.test.ts +153 -0
  495. package/src/containers/TracePanel/dxn-extractor.ts +178 -0
  496. package/src/containers/TracePanel/execution-graph.test.ts +382 -0
  497. package/src/containers/TracePanel/execution-graph.ts +621 -0
  498. package/src/containers/TracePanel/index.ts +9 -0
  499. package/src/containers/TracePanel/testing/index.ts +6 -0
  500. package/src/containers/TracePanel/testing/simulated-agent.ts +114 -0
  501. package/src/containers/TracePanel/testing/snapshot-playback.ts +45 -0
  502. package/src/containers/TriggerStatus/TriggerStatus.tsx +129 -0
  503. package/src/containers/TriggerStatus/index.ts +5 -0
  504. package/src/containers/index.ts +16 -0
  505. package/src/extensions/index.ts +5 -0
  506. package/src/extensions/prompt-extension.ts +111 -0
  507. package/src/hooks/index.ts +4 -3
  508. package/src/hooks/useBlueprintRegistry.ts +50 -21
  509. package/src/hooks/useChatKeymap.ts +52 -0
  510. package/src/hooks/useChatProcessor.ts +50 -26
  511. package/src/hooks/useChatServices.ts +10 -32
  512. package/src/hooks/useChatToolbarActions.ts +122 -0
  513. package/src/hooks/useContextBinder.ts +32 -7
  514. package/src/hooks/useContextObjects.ts +16 -24
  515. package/src/hooks/useDebug.ts +38 -0
  516. package/src/hooks/useFilteredTypes.ts +37 -0
  517. package/src/hooks/usePresets.ts +2 -1
  518. package/src/hooks/useReferencesProvider.ts +5 -8
  519. package/src/index.ts +1 -5
  520. package/src/meta.ts +15 -9
  521. package/src/operations/create-chat.ts +78 -0
  522. package/src/operations/ensure-companion-chat.ts +63 -0
  523. package/src/operations/index.ts +15 -0
  524. package/src/operations/on-create-space.ts +24 -0
  525. package/src/operations/prompt.test.ts +77 -0
  526. package/src/operations/resolve-navigation-targets.ts +26 -0
  527. package/src/operations/run-prompt-in-new-chat.ts +112 -0
  528. package/src/operations/set-current-chat.ts +49 -0
  529. package/src/operations/update-chat-name.ts +61 -0
  530. package/src/plugin.ts +11 -0
  531. package/src/processor/presets.ts +13 -5
  532. package/src/processor/processor.test.ts +22 -59
  533. package/src/processor/processor.ts +235 -185
  534. package/src/queue-logger.ts +24 -14
  535. package/src/testing/data/trace-timeline.dx.json +4657 -0
  536. package/src/testing/index.ts +1 -2
  537. package/src/testing/test-generator.test.ts +81 -0
  538. package/src/testing/test-generator.ts +91 -49
  539. package/src/testing/test-sequence.ts +3 -3
  540. package/src/testing/test-services.ts +10 -14
  541. package/src/testing/test-trace.ts +20 -0
  542. package/src/testing/trace-timeline.conversations.json +1 -0
  543. package/src/testing/trace-timeline.test.ts +250 -0
  544. package/src/translations.ts +158 -79
  545. package/src/types/Assistant.ts +17 -52
  546. package/src/types/AssistantCapabilities.ts +35 -0
  547. package/src/types/AssistantEvents.ts +11 -0
  548. package/src/types/AssistantOperation.ts +128 -0
  549. package/src/types/Settings.ts +76 -0
  550. package/src/types/index.ts +8 -2
  551. package/src/types/service.ts +27 -16
  552. package/dist/lib/browser/BlueprintContainer-BFNN6K46.mjs +0 -29
  553. package/dist/lib/browser/BlueprintContainer-BFNN6K46.mjs.map +0 -7
  554. package/dist/lib/browser/ChatCompanion-YYYCHZYV.mjs +0 -126
  555. package/dist/lib/browser/ChatCompanion-YYYCHZYV.mjs.map +0 -7
  556. package/dist/lib/browser/ChatContainer-G6YHR6GJ.mjs +0 -75
  557. package/dist/lib/browser/ChatContainer-G6YHR6GJ.mjs.map +0 -7
  558. package/dist/lib/browser/ChatDialog-HJ7VDRQO.mjs +0 -88
  559. package/dist/lib/browser/ChatDialog-HJ7VDRQO.mjs.map +0 -7
  560. package/dist/lib/browser/SequenceContainer-TF5QNXYM.mjs +0 -150
  561. package/dist/lib/browser/SequenceContainer-TF5QNXYM.mjs.map +0 -7
  562. package/dist/lib/browser/ai-service-YC2EQPHA.mjs +0 -22
  563. package/dist/lib/browser/ai-service-YC2EQPHA.mjs.map +0 -7
  564. package/dist/lib/browser/app-graph-builder-3C43MLCD.mjs +0 -153
  565. package/dist/lib/browser/app-graph-builder-3C43MLCD.mjs.map +0 -7
  566. package/dist/lib/browser/blueprint-definition-VHFSRTEJ.mjs +0 -12
  567. package/dist/lib/browser/chunk-EZUSNS2J.mjs +0 -19
  568. package/dist/lib/browser/chunk-EZUSNS2J.mjs.map +0 -7
  569. package/dist/lib/browser/chunk-GLWD66TA.mjs +0 -161
  570. package/dist/lib/browser/chunk-GLWD66TA.mjs.map +0 -7
  571. package/dist/lib/browser/chunk-O4LUJEDV.mjs +0 -20
  572. package/dist/lib/browser/chunk-O4LUJEDV.mjs.map +0 -7
  573. package/dist/lib/browser/chunk-PL4O4ZJU.mjs +0 -1974
  574. package/dist/lib/browser/chunk-PL4O4ZJU.mjs.map +0 -7
  575. package/dist/lib/browser/chunk-PPJAIE2T.mjs +0 -299
  576. package/dist/lib/browser/chunk-PPJAIE2T.mjs.map +0 -7
  577. package/dist/lib/browser/chunk-PQI3MGDN.mjs +0 -169
  578. package/dist/lib/browser/chunk-PQI3MGDN.mjs.map +0 -7
  579. package/dist/lib/browser/chunk-R6LRGW3I.mjs +0 -216
  580. package/dist/lib/browser/chunk-R6LRGW3I.mjs.map +0 -7
  581. package/dist/lib/browser/chunk-SMIVXXAI.mjs +0 -202
  582. package/dist/lib/browser/chunk-SMIVXXAI.mjs.map +0 -7
  583. package/dist/lib/browser/compute-runtime-X6IREJN3.mjs +0 -155
  584. package/dist/lib/browser/compute-runtime-X6IREJN3.mjs.map +0 -7
  585. package/dist/lib/browser/edge-model-resolver-JNEB355N.mjs +0 -22
  586. package/dist/lib/browser/edge-model-resolver-JNEB355N.mjs.map +0 -7
  587. package/dist/lib/browser/index.mjs +0 -346
  588. package/dist/lib/browser/index.mjs.map +0 -7
  589. package/dist/lib/browser/intent-resolver-I6M3ZDAS.mjs +0 -112
  590. package/dist/lib/browser/intent-resolver-I6M3ZDAS.mjs.map +0 -7
  591. package/dist/lib/browser/local-model-resolver-EUXSRZ7X.mjs +0 -21
  592. package/dist/lib/browser/local-model-resolver-EUXSRZ7X.mjs.map +0 -7
  593. package/dist/lib/browser/meta.json +0 -1
  594. package/dist/lib/browser/react-surface-WNLA2636.mjs +0 -109
  595. package/dist/lib/browser/react-surface-WNLA2636.mjs.map +0 -7
  596. package/dist/lib/browser/settings-36V3VUMW.mjs +0 -23
  597. package/dist/lib/browser/settings-36V3VUMW.mjs.map +0 -7
  598. package/dist/lib/browser/state-AINRYS5W.mjs +0 -21
  599. package/dist/lib/browser/state-AINRYS5W.mjs.map +0 -7
  600. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs +0 -191
  601. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs.map +0 -7
  602. package/dist/lib/browser/types/index.mjs +0 -19
  603. package/dist/lib/node-esm/BlueprintContainer-X4MRBKDR.mjs +0 -30
  604. package/dist/lib/node-esm/BlueprintContainer-X4MRBKDR.mjs.map +0 -7
  605. package/dist/lib/node-esm/ChatCompanion-PUAFRIEC.mjs +0 -127
  606. package/dist/lib/node-esm/ChatCompanion-PUAFRIEC.mjs.map +0 -7
  607. package/dist/lib/node-esm/ChatContainer-EZZF7RSQ.mjs +0 -76
  608. package/dist/lib/node-esm/ChatContainer-EZZF7RSQ.mjs.map +0 -7
  609. package/dist/lib/node-esm/ChatDialog-PTQLZNJU.mjs +0 -89
  610. package/dist/lib/node-esm/ChatDialog-PTQLZNJU.mjs.map +0 -7
  611. package/dist/lib/node-esm/SequenceContainer-UXOVZPZO.mjs +0 -151
  612. package/dist/lib/node-esm/SequenceContainer-UXOVZPZO.mjs.map +0 -7
  613. package/dist/lib/node-esm/ai-service-XUMZVFCK.mjs +0 -23
  614. package/dist/lib/node-esm/ai-service-XUMZVFCK.mjs.map +0 -7
  615. package/dist/lib/node-esm/app-graph-builder-NM3JDLQ2.mjs +0 -154
  616. package/dist/lib/node-esm/app-graph-builder-NM3JDLQ2.mjs.map +0 -7
  617. package/dist/lib/node-esm/blueprint-definition-4E6XTLVN.mjs +0 -13
  618. package/dist/lib/node-esm/chunk-4WLFSXZG.mjs +0 -170
  619. package/dist/lib/node-esm/chunk-4WLFSXZG.mjs.map +0 -7
  620. package/dist/lib/node-esm/chunk-7YOGZI66.mjs +0 -203
  621. package/dist/lib/node-esm/chunk-7YOGZI66.mjs.map +0 -7
  622. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  623. package/dist/lib/node-esm/chunk-LVTG5JTW.mjs +0 -217
  624. package/dist/lib/node-esm/chunk-LVTG5JTW.mjs.map +0 -7
  625. package/dist/lib/node-esm/chunk-QG2KT3AT.mjs +0 -163
  626. package/dist/lib/node-esm/chunk-QG2KT3AT.mjs.map +0 -7
  627. package/dist/lib/node-esm/chunk-VFY2JG62.mjs +0 -22
  628. package/dist/lib/node-esm/chunk-VFY2JG62.mjs.map +0 -7
  629. package/dist/lib/node-esm/chunk-VH3LTD76.mjs +0 -300
  630. package/dist/lib/node-esm/chunk-VH3LTD76.mjs.map +0 -7
  631. package/dist/lib/node-esm/chunk-XD4CDA4R.mjs +0 -20
  632. package/dist/lib/node-esm/chunk-XD4CDA4R.mjs.map +0 -7
  633. package/dist/lib/node-esm/chunk-ZIDP7HBI.mjs +0 -1975
  634. package/dist/lib/node-esm/chunk-ZIDP7HBI.mjs.map +0 -7
  635. package/dist/lib/node-esm/compute-runtime-NRHLLTSC.mjs +0 -156
  636. package/dist/lib/node-esm/compute-runtime-NRHLLTSC.mjs.map +0 -7
  637. package/dist/lib/node-esm/edge-model-resolver-UE5TLLJZ.mjs +0 -23
  638. package/dist/lib/node-esm/edge-model-resolver-UE5TLLJZ.mjs.map +0 -7
  639. package/dist/lib/node-esm/index.mjs +0 -347
  640. package/dist/lib/node-esm/index.mjs.map +0 -7
  641. package/dist/lib/node-esm/intent-resolver-VIINHFMT.mjs +0 -113
  642. package/dist/lib/node-esm/intent-resolver-VIINHFMT.mjs.map +0 -7
  643. package/dist/lib/node-esm/local-model-resolver-JBEFVVZA.mjs +0 -22
  644. package/dist/lib/node-esm/local-model-resolver-JBEFVVZA.mjs.map +0 -7
  645. package/dist/lib/node-esm/meta.json +0 -1
  646. package/dist/lib/node-esm/react-surface-GP3LU6DX.mjs +0 -110
  647. package/dist/lib/node-esm/react-surface-GP3LU6DX.mjs.map +0 -7
  648. package/dist/lib/node-esm/settings-7ZCZ6AS5.mjs +0 -24
  649. package/dist/lib/node-esm/settings-7ZCZ6AS5.mjs.map +0 -7
  650. package/dist/lib/node-esm/state-EQS5KP6M.mjs +0 -22
  651. package/dist/lib/node-esm/state-EQS5KP6M.mjs.map +0 -7
  652. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs +0 -192
  653. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs.map +0 -7
  654. package/dist/lib/node-esm/types/index.mjs +0 -20
  655. package/dist/types/src/capabilities/capabilities.d.ts +0 -32
  656. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  657. package/dist/types/src/capabilities/compute-runtime.d.ts +0 -5
  658. package/dist/types/src/capabilities/compute-runtime.d.ts.map +0 -1
  659. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  660. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  661. package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
  662. package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
  663. package/dist/types/src/components/ChatCompanion.d.ts +0 -13
  664. package/dist/types/src/components/ChatCompanion.d.ts.map +0 -1
  665. package/dist/types/src/components/ChatContainer.d.ts +0 -11
  666. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  667. package/dist/types/src/components/ChatDialog.d.ts.map +0 -1
  668. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +0 -7
  669. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +0 -1
  670. package/dist/types/src/components/ChatProgress/index.d.ts +0 -2
  671. package/dist/types/src/components/ChatProgress/index.d.ts.map +0 -1
  672. package/dist/types/src/components/ChatThread/reducers.d.ts +0 -40
  673. package/dist/types/src/components/ChatThread/reducers.d.ts.map +0 -1
  674. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  675. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  676. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  677. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  678. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  679. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  680. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -267
  681. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  682. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  683. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  684. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +0 -1
  685. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -5
  686. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  687. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  688. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  689. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts +0 -11
  690. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +0 -1
  691. package/dist/types/src/events.d.ts +0 -4
  692. package/dist/types/src/events.d.ts.map +0 -1
  693. package/dist/types/src/execution-graph/execution-graph.d.ts +0 -21
  694. package/dist/types/src/execution-graph/execution-graph.d.ts.map +0 -1
  695. package/dist/types/src/execution-graph/index.d.ts +0 -2
  696. package/dist/types/src/execution-graph/index.d.ts.map +0 -1
  697. package/dist/types/src/functions/analysis.d.ts +0 -5
  698. package/dist/types/src/functions/analysis.d.ts.map +0 -1
  699. package/dist/types/src/functions/index.d.ts +0 -4
  700. package/dist/types/src/functions/index.d.ts.map +0 -1
  701. package/dist/types/src/functions/list.d.ts +0 -10
  702. package/dist/types/src/functions/list.d.ts.map +0 -1
  703. package/dist/types/src/functions/load.d.ts +0 -8
  704. package/dist/types/src/functions/load.d.ts.map +0 -1
  705. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +0 -8
  706. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +0 -1
  707. package/dist/types/src/hooks/useExecutionGraph.d.ts +0 -6
  708. package/dist/types/src/hooks/useExecutionGraph.d.ts.map +0 -1
  709. package/dist/types/src/hooks/useItemTypes.d.ts +0 -4
  710. package/dist/types/src/hooks/useItemTypes.d.ts.map +0 -1
  711. package/dist/types/src/stories/Chat.stories.d.ts +0 -30
  712. package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
  713. package/dist/types/src/stories/components/BlueprintContainer.d.ts +0 -4
  714. package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +0 -1
  715. package/dist/types/src/stories/components/ChatContainer.d.ts +0 -4
  716. package/dist/types/src/stories/components/ChatContainer.d.ts.map +0 -1
  717. package/dist/types/src/stories/components/ChessContainer.d.ts +0 -4
  718. package/dist/types/src/stories/components/ChessContainer.d.ts.map +0 -1
  719. package/dist/types/src/stories/components/CommentsContainer.d.ts +0 -4
  720. package/dist/types/src/stories/components/CommentsContainer.d.ts.map +0 -1
  721. package/dist/types/src/stories/components/DebugCard.d.ts +0 -8
  722. package/dist/types/src/stories/components/DebugCard.d.ts.map +0 -1
  723. package/dist/types/src/stories/components/GraphContainer.d.ts +0 -6
  724. package/dist/types/src/stories/components/GraphContainer.d.ts.map +0 -1
  725. package/dist/types/src/stories/components/InvocationsContainer.d.ts +0 -4
  726. package/dist/types/src/stories/components/InvocationsContainer.d.ts.map +0 -1
  727. package/dist/types/src/stories/components/LoggingContainer.d.ts +0 -7
  728. package/dist/types/src/stories/components/LoggingContainer.d.ts.map +0 -1
  729. package/dist/types/src/stories/components/MessageContainer.d.ts +0 -4
  730. package/dist/types/src/stories/components/MessageContainer.d.ts.map +0 -1
  731. package/dist/types/src/stories/components/PromptContainer.d.ts +0 -6
  732. package/dist/types/src/stories/components/PromptContainer.d.ts.map +0 -1
  733. package/dist/types/src/stories/components/ResearchInputStack.d.ts +0 -4
  734. package/dist/types/src/stories/components/ResearchInputStack.d.ts.map +0 -1
  735. package/dist/types/src/stories/components/ResearchOutputStack.d.ts +0 -4
  736. package/dist/types/src/stories/components/ResearchOutputStack.d.ts.map +0 -1
  737. package/dist/types/src/stories/components/TasksContainer.d.ts +0 -4
  738. package/dist/types/src/stories/components/TasksContainer.d.ts.map +0 -1
  739. package/dist/types/src/stories/components/TokenManagerContainer.d.ts +0 -3
  740. package/dist/types/src/stories/components/TokenManagerContainer.d.ts.map +0 -1
  741. package/dist/types/src/stories/components/TriggersContainer.d.ts +0 -14
  742. package/dist/types/src/stories/components/TriggersContainer.d.ts.map +0 -1
  743. package/dist/types/src/stories/components/index.d.ts +0 -16
  744. package/dist/types/src/stories/components/index.d.ts.map +0 -1
  745. package/dist/types/src/stories/components/types.d.ts +0 -7
  746. package/dist/types/src/stories/components/types.d.ts.map +0 -1
  747. package/dist/types/src/stories/testing/data.d.ts +0 -9
  748. package/dist/types/src/stories/testing/data.d.ts.map +0 -1
  749. package/dist/types/src/stories/testing/index.d.ts +0 -3
  750. package/dist/types/src/stories/testing/index.d.ts.map +0 -1
  751. package/dist/types/src/stories/testing/schema.d.ts +0 -7
  752. package/dist/types/src/stories/testing/schema.d.ts.map +0 -1
  753. package/dist/types/src/stories/testing/testing.d.ts +0 -48
  754. package/dist/types/src/stories/testing/testing.d.ts.map +0 -1
  755. package/dist/types/src/testing/test-data.d.ts +0 -14
  756. package/dist/types/src/testing/test-data.d.ts.map +0 -1
  757. package/dist/types/src/testing/test-functions.d.ts +0 -6
  758. package/dist/types/src/testing/test-functions.d.ts.map +0 -1
  759. package/dist/types/src/types/AssistantAction.d.ts +0 -107
  760. package/dist/types/src/types/AssistantAction.d.ts.map +0 -1
  761. package/dist/types/src/types/defs.d.ts +0 -2
  762. package/dist/types/src/types/defs.d.ts.map +0 -1
  763. package/src/AssistantPlugin.tsx +0 -168
  764. package/src/capabilities/capabilities.ts +0 -71
  765. package/src/capabilities/compute-runtime.ts +0 -124
  766. package/src/capabilities/intent-resolver.ts +0 -94
  767. package/src/components/BlueprintContainer.tsx +0 -24
  768. package/src/components/ChatCompanion.tsx +0 -111
  769. package/src/components/ChatContainer.tsx +0 -51
  770. package/src/components/ChatProgress/ChatProgress.tsx +0 -68
  771. package/src/components/ChatProgress/index.ts +0 -5
  772. package/src/components/ChatThread/reducers.ts +0 -151
  773. package/src/components/PromptSettings.tsx +0 -90
  774. package/src/components/SequenceContainer.tsx +0 -131
  775. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -33
  776. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  777. package/src/components/SequenceEditor/index.ts +0 -5
  778. package/src/components/TemplateEditor/handlebars-extension.ts +0 -165
  779. package/src/components/Toolbar/Toolbar.tsx +0 -21
  780. package/src/components/Toolbar/useChatToolbarActions.ts +0 -126
  781. package/src/events.ts +0 -11
  782. package/src/execution-graph/execution-graph.ts +0 -211
  783. package/src/execution-graph/index.ts +0 -5
  784. package/src/functions/analysis.ts +0 -20
  785. package/src/functions/index.ts +0 -7
  786. package/src/functions/list.ts +0 -46
  787. package/src/functions/load.ts +0 -42
  788. package/src/hooks/useComputeRuntimeCallback.ts +0 -25
  789. package/src/hooks/useExecutionGraph.ts +0 -20
  790. package/src/hooks/useItemTypes.ts +0 -37
  791. package/src/stories/Chat.stories.tsx +0 -657
  792. package/src/stories/components/BlueprintContainer.tsx +0 -34
  793. package/src/stories/components/ChatContainer.tsx +0 -74
  794. package/src/stories/components/ChessContainer.tsx +0 -17
  795. package/src/stories/components/CommentsContainer.tsx +0 -25
  796. package/src/stories/components/DebugCard.tsx +0 -61
  797. package/src/stories/components/GraphContainer.tsx +0 -119
  798. package/src/stories/components/InvocationsContainer.tsx +0 -17
  799. package/src/stories/components/LoggingContainer.tsx +0 -33
  800. package/src/stories/components/MessageContainer.tsx +0 -22
  801. package/src/stories/components/PromptContainer.tsx +0 -52
  802. package/src/stories/components/ResearchInputStack.tsx +0 -30
  803. package/src/stories/components/ResearchOutputStack.tsx +0 -29
  804. package/src/stories/components/TasksContainer.tsx +0 -49
  805. package/src/stories/components/TokenManagerContainer.tsx +0 -14
  806. package/src/stories/components/TriggersContainer.tsx +0 -75
  807. package/src/stories/components/index.ts +0 -20
  808. package/src/stories/components/types.ts +0 -11
  809. package/src/stories/testing/data.ts +0 -142
  810. package/src/stories/testing/index.ts +0 -6
  811. package/src/stories/testing/schema.ts +0 -17
  812. package/src/stories/testing/testing.tsx +0 -279
  813. package/src/testing/test-data.ts +0 -245
  814. package/src/testing/test-functions.ts +0 -16
  815. package/src/types/AssistantAction.ts +0 -62
  816. package/src/types/defs.ts +0 -5
  817. /package/dist/lib/{browser/blueprint-definition-VHFSRTEJ.mjs.map → neutral/ChatContainer-X3R4ALHT.mjs.map} +0 -0
  818. /package/dist/lib/{browser/types → neutral/blueprints}/index.mjs.map +0 -0
  819. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  820. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  821. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  822. /package/dist/lib/{node-esm/blueprint-definition-4E6XTLVN.mjs.map → neutral/meta.mjs.map} +0 -0
  823. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/operations/index.mjs.map} +0 -0
  824. /package/dist/types/src/components/TemplateEditor/{handlebars-extension.d.ts → extensions/handlebars-extension.d.ts} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/hooks/useBlueprintRegistry.ts", "../../../src/hooks/useChatProcessor.ts", "../../../src/processor/presets.ts", "../../../src/processor/processor.ts", "../../../src/hooks/useChatServices.ts", "../../../src/capabilities/index.ts", "../../../src/hooks/useContextBinder.ts", "../../../src/hooks/useOnline.ts", "../../../src/hooks/usePresets.ts", "../../../src/hooks/useContextObjects.ts", "../../../src/hooks/useExecutionGraph.ts", "../../../src/execution-graph/execution-graph.ts", "../../../src/hooks/useFlush.ts", "../../../src/hooks/useItemTypes.ts", "../../../src/hooks/useReferencesProvider.ts", "../../../src/hooks/useComputeRuntimeCallback.ts", "../../../src/components/Chat/Chat.tsx", "../../../src/components/ChatPrompt/ChatActions.tsx", "../../../src/components/ChatPrompt/ChatOptions.tsx", "../../../src/components/ChatPrompt/ChatPresets.tsx", "../../../src/components/ChatPrompt/ChatReferences.tsx", "../../../src/components/ChatPrompt/ChatStatusIndicator.tsx", "../../../src/components/ChatThread/ChatThread.tsx", "../../../src/components/ChatThread/registry.tsx", "../../../src/components/ToolBlock/ToolBlock.tsx", "../../../src/components/ChatThread/sync.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { useSignalEffect } from '@preact/signals-react';\nimport { useCallback, useMemo, useState } from 'react';\n\nimport { Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { Blueprint } from '@dxos/blueprints';\nimport { type Space } from '@dxos/client/echo';\nimport { Filter, Obj, Ref } from '@dxos/echo';\nimport { isNonNullable } from '@dxos/util';\n\n/**\n * Provide a registry of blueprints from plugins.\n */\n// TODO(burdon): Reconcile with eventual public registry.\nexport const useBlueprintRegistry = () => {\n const blueprints = useCapabilities(Capabilities.BlueprintDefinition);\n return useMemo(() => new Blueprint.Registry(blueprints), [blueprints]);\n};\n\nexport const useBlueprints = ({ blueprintRegistry }: { blueprintRegistry?: Blueprint.Registry }) =>\n useMemo(() => blueprintRegistry?.query() ?? [], [blueprintRegistry]);\n\n/**\n * Create reactive map of active blueprints (by key).\n */\nexport const useActiveBlueprints = ({ context }: { context?: AiContextBinder }) => {\n const [active, setActive] = useState<Map<string, Blueprint.Blueprint>>(new Map());\n\n useSignalEffect(() => {\n const refs = [...(context?.blueprints.value ?? [])];\n const blueprints = refs.map((ref) => ref.target).filter(isNonNullable);\n setActive(new Map(blueprints.map((blueprint) => [blueprint.key, blueprint])));\n });\n\n return active;\n};\n\n// TODO(burdon): Move logic into binder.\nexport const useBlueprintHandlers = ({\n space,\n context,\n blueprintRegistry,\n}: {\n space: Space;\n context?: AiContextBinder;\n blueprintRegistry?: Blueprint.Registry;\n}) => {\n const onUpdateBlueprint = useCallback(\n async (key: string, checked: boolean) => {\n if (!context || !blueprintRegistry) {\n return;\n }\n\n // Find existing cloned blueprint.\n const { objects } = await space.db.query(Filter.type(Blueprint.Blueprint)).run();\n let storedBlueprint = objects.find((blueprint) => blueprint.key === key);\n if (checked) {\n if (!storedBlueprint) {\n const blueprint = blueprintRegistry.getByKey(key);\n if (!blueprint) {\n return;\n }\n\n // NOTE: Possible race condition with other peers.\n storedBlueprint = space.db.add(Obj.clone(blueprint));\n }\n await context.bind({ blueprints: [Ref.make(storedBlueprint)] });\n } else if (storedBlueprint) {\n await context.unbind({ blueprints: [Ref.make(storedBlueprint)] });\n }\n },\n [space, context, blueprintRegistry],\n );\n\n return { onUpdateBlueprint };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { RegistryContext } from '@effect-rx/rx-react';\nimport { type Runtime } from 'effect';\nimport { useContext, useMemo } from 'react';\n\nimport { AiConversation } from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { log } from '@dxos/log';\nimport { type Queue } from '@dxos/react-client/echo';\n\nimport { AiChatProcessor, type AiChatServices, type AiServicePreset } from '../processor';\nimport { type Assistant } from '../types';\n\nexport type UseChatProcessorProps = {\n chat?: Assistant.Chat;\n preset?: AiServicePreset;\n services?: () => Promise<Runtime.Runtime<AiChatServices>>;\n blueprintRegistry?: Blueprint.Registry;\n settings?: Assistant.Settings;\n};\n\n/**\n * Configure and create AiChatProcessor.\n */\nexport const useChatProcessor = ({\n chat,\n preset,\n services,\n blueprintRegistry,\n settings,\n}: UseChatProcessorProps): AiChatProcessor | undefined => {\n const observableRegistry = useContext(RegistryContext);\n\n // Create conversation from chat queue.\n const conversation = useMemo(() => {\n if (!chat?.queue.target) {\n return;\n }\n\n return new AiConversation({ queue: chat.queue.target as Queue<any> });\n }, [chat?.queue.target]);\n\n // Create processor.\n const processor = useMemo(() => {\n if (!services || !conversation) {\n return undefined;\n }\n\n log('creating processor', {\n preset,\n model: preset?.model,\n settings,\n });\n\n return new AiChatProcessor(conversation, services, {\n observableRegistry,\n blueprintRegistry,\n model: preset?.model,\n });\n }, [services, conversation, blueprintRegistry, preset]);\n\n return processor;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { type ModelName } from '@dxos/ai';\n\nconst ModelProviders = ['dxos-local', 'dxos-remote', 'lm-studio'] as const;\n\nconst ModelProvider = Schema.Literal(...ModelProviders);\ntype ModelProvider = Schema.Schema.Type<typeof ModelProvider>;\n\nexport type AiServicePreset = {\n id: string;\n provider: ModelProvider;\n model: ModelName;\n label?: string;\n};\n\nconst createModelLabel = (model: ModelName) => {\n const parts = model.split('/');\n return parts[parts.length - 1];\n};\n\n// TODO(burdon): Users should be able to create and edit presets.\nexport const AiServicePresets: AiServicePreset[] = [\n {\n provider: 'dxos-remote' as const,\n model: '@anthropic/claude-opus-4-0' as const,\n },\n {\n provider: 'dxos-remote' as const,\n model: '@anthropic/claude-sonnet-4-0' as const,\n },\n {\n provider: 'dxos-remote' as const,\n model: '@anthropic/claude-3-5-haiku-20241022' as const,\n },\n {\n provider: 'lm-studio' as const,\n model: '@google/gemma-3-27b' as const,\n },\n {\n provider: 'lm-studio' as const,\n model: '@mlx-community/llama-3.2-3b-instruct' as const,\n },\n {\n model: 'deepseek-r1:latest' as const,\n provider: 'dxos-local' as const,\n },\n].map(\n ({ model, provider }, i) =>\n ({\n id: `preset-${i}`,\n provider,\n model,\n label: createModelLabel(model),\n }) satisfies AiServicePreset,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Registry, Rx } from '@effect-rx/rx-react';\nimport { Cause, Effect, Exit, Fiber, Option, Runtime } from 'effect';\n\nimport {\n AiService,\n DEFAULT_EDGE_MODEL,\n type ModelName,\n type ModelRegistry,\n type ToolExecutionService,\n type ToolResolverService,\n} from '@dxos/ai';\nimport {\n type AiConversation,\n type AiConversationRunParams,\n AiSession,\n ArtifactDiffResolver,\n GenerationObserver,\n createSystemPrompt,\n} from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { Obj } from '@dxos/echo';\nimport { throwCause } from '@dxos/effect';\nimport {\n type CredentialsService,\n type DatabaseService,\n type QueueService,\n type RemoteFunctionExecutionService,\n type TracingService,\n} from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { type ContentBlock, DataType } from '@dxos/schema';\nimport { trim } from '@dxos/util';\n\nimport { type Assistant } from '../types';\n\nexport type AiChatServices =\n | CredentialsService\n | DatabaseService\n | QueueService\n | RemoteFunctionExecutionService\n | AiService.AiService\n | ToolExecutionService\n | ToolResolverService\n | TracingService;\n\nexport type AiChatProcessorOptions = {\n model?: ModelName;\n modelRegistry?: ModelRegistry;\n blueprintRegistry?: Blueprint.Registry;\n observableRegistry?: Registry.Registry;\n extensions?: ToolContextExtensions;\n} & Pick<AiConversationRunParams, 'system'>;\n\nconst defaultOptions: Partial<AiChatProcessorOptions> = {\n model: DEFAULT_EDGE_MODEL,\n};\n\n// TODO(burdon): Retry, timeout?\nexport type AiRequestOptions = {};\n\nexport type AiRequest = {\n message: string;\n options?: AiRequestOptions;\n};\n\n/**\n * Handles interactions with the AI service.\n * Handles streaming responses from the conversation.\n */\nexport class AiChatProcessor {\n private readonly _rx: Registry.Registry;\n\n /** External observer. */\n private readonly _observer: GenerationObserver;\n\n /** Currently active request fiber. */\n private _fiber: Fiber.Fiber<void, any> | undefined;\n\n /** Last request (for retries). */\n private _lastRequest: AiRequest | undefined;\n\n /** Pending messages (incl. the current user request). */\n private readonly _pending = Rx.make<DataType.Message[]>([]);\n\n /** Currently streaming message (from the AI service). */\n private readonly _streaming = Rx.make<Option.Option<DataType.Message>>(Option.none());\n\n /** Streaming state. */\n public readonly streaming = Rx.make<boolean>((get) => Option.isSome(get(this._streaming)));\n\n /** Active state. */\n public readonly active = Rx.make(false);\n\n /** Array of Messages (incl. the current message being streamed). */\n public readonly messages = Rx.make<DataType.Message[]>((get) =>\n Option.match(get(this._streaming), {\n onNone: () => get(this._pending),\n onSome: (streaming) => [...get(this._pending), streaming],\n }),\n );\n\n /** Last error. */\n public readonly error = Rx.make<Option.Option<Error>>(Option.none());\n\n constructor(\n private readonly _conversation: AiConversation,\n // TODO(dmaretskyi): Replace this with effect's ManagedRuntime wrapping this layer.\n private readonly _services: () => Promise<Runtime.Runtime<AiChatServices>>,\n private readonly _options: AiChatProcessorOptions = defaultOptions,\n ) {\n // Initialize registries and defaults before using in other logic.\n this._rx = this._options.observableRegistry ?? Registry.make();\n this._observer = GenerationObserver.make({\n onBlock: this._onBlock,\n onMessage: this._onMessage,\n });\n if (this._options.model && !this._options.system) {\n const capabilities = this._options.modelRegistry?.getCapabilities(this._options.model) ?? {};\n this._options.system = createSystemPrompt(capabilities);\n }\n }\n\n get context() {\n return this._conversation.context;\n }\n\n get conversation() {\n return this._conversation;\n }\n\n get blueprintRegistry() {\n return this._options.blueprintRegistry;\n }\n\n /**\n * Initiates a new request.\n */\n async request(requestParam: AiRequest): Promise<void> {\n if (this._fiber) {\n await this.cancel();\n }\n\n try {\n this._lastRequest = requestParam;\n this._rx.set(this.error, Option.none());\n this._rx.set(this.active, true);\n\n // Create request.\n const request = this._conversation.createRequest({\n system: this._options.system,\n prompt: requestParam.message,\n observer: this._observer,\n });\n\n const runtime = await this._services();\n\n // Create fiber.\n this._fiber = request.pipe(\n Effect.provide(AiService.model(this._options.model ?? DEFAULT_EDGE_MODEL)),\n\n // TODO(dmaretskyi): Move ArtifactDiffResolver upstream.\n Effect.provideService(ArtifactDiffResolver, this._artifactDiffResolver),\n\n Effect.asVoid,\n Effect.tapErrorCause((cause) => {\n log.error('request failed', { cause });\n return Effect.void;\n }),\n Runtime.runFork(runtime), // Runs in the background.\n );\n\n // Execute request.\n const response = await this._fiber.pipe(Fiber.join, Effect.runPromiseExit);\n if (!Exit.isSuccess(response) && !Cause.isInterruptedOnly(response.cause)) {\n throwCause(response.cause);\n }\n\n this._rx.set(this.error, Option.none());\n this._lastRequest = undefined;\n this._fiber = undefined;\n } catch (err) {\n log.error('request failed', { err });\n this._rx.set(this.error, Option.some(new Error('AI service error', { cause: err })));\n } finally {\n this._fiber = undefined;\n this._rx.set(this.active, false);\n }\n }\n\n /**\n * Cancels the current request.\n */\n async cancel(): Promise<void> {\n await Effect.runPromise(\n Effect.gen(this, function* () {\n if (this._fiber) {\n yield* this._fiber.pipe(Fiber.interrupt);\n }\n }),\n );\n\n this._fiber = undefined;\n this._rx.set(this.active, false);\n }\n\n /**\n * Retry last failed request.\n */\n async retry(): Promise<void> {\n if (this._lastRequest) {\n return this.request(this._lastRequest);\n }\n }\n\n /**\n * Update the current chat's name.\n */\n async updateName(chat: Assistant.Chat): Promise<void> {\n const runtime = await this._services();\n\n const system = trim`\n It is extremely important that you respond only with the title and nothing else.\n If you cannot do this effectively respond with \"New Chat\".\n `;\n\n const history = await this._conversation.getHistory();\n const fiber = Effect.gen(this, function* () {\n const session = new AiSession();\n return yield* session.run({ system, prompt: 'Suggest a name for this chat', history });\n }).pipe(\n // TODO(burdon): Use simpler model.\n Effect.provide(AiService.model(this._options.model ?? DEFAULT_EDGE_MODEL)),\n Effect.tap((messages) => {\n const message = messages.find((message) => message.sender.role === 'assistant');\n const title = message?.blocks.find((b) => b._tag === 'text')?.text;\n if (title) {\n chat.name = title;\n }\n }),\n Runtime.runFork(runtime), // Run in the background.\n );\n\n const response = await fiber.pipe(Fiber.join, Effect.runPromiseExit);\n if (!Exit.isSuccess(response)) {\n throwCause(response.cause);\n }\n }\n\n // TODO(burdon): Fix/factor out.\n private _artifactDiffResolver: ArtifactDiffResolver.Service = {\n resolve: async (_artifacts) => {\n const versions = new Map();\n // await Promise.all(\n // artifacts.map(async (artifact) => {\n // const {\n // objects: [object],\n // } = await space.db.query(Filter.ids(artifact.id)).run();\n // if (!object) {\n // return;\n // }\n\n // versions.set(artifact.id, {\n // version: getVersion(object),\n // diff: `Current state: ${JSON.stringify(object)}`,\n // });\n // }),\n // );\n\n return versions;\n },\n };\n\n private _onMessage = Effect.fn(\n function* (this: AiChatProcessor, message: DataType.Message) {\n this._rx.set(this._streaming, Option.none());\n this._rx.update(this._pending, (pending) => [...pending, message]);\n }.bind(this),\n );\n\n private _onBlock = Effect.fn(\n function* (this: AiChatProcessor, block: ContentBlock.Any) {\n this._rx.update(this._streaming, (streaming) => {\n const blocks = streaming.pipe(\n Option.map((streaming) => streaming.blocks.filter((b) => !b.pending)),\n Option.getOrElse(() => []),\n );\n\n return Option.some(\n Obj.make(DataType.Message, {\n created: new Date().toISOString(),\n sender: { role: 'assistant' },\n blocks: [...blocks, block],\n }),\n );\n });\n }.bind(this),\n );\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Effect, type Runtime } from 'effect';\nimport { useMemo } from 'react';\n\nimport { useCapability } from '@dxos/app-framework';\nimport { type Space } from '@dxos/client/echo';\nimport { TracingService } from '@dxos/functions';\nimport { useClient } from '@dxos/react-client';\n\nimport { AssistantCapabilities } from '../capabilities';\nimport { type AiChatServices } from '../processor';\nimport { type Assistant } from '../types';\n\nexport type UseChatServicesProps = {\n space?: Space;\n chat?: Assistant.Chat;\n};\n\n/**\n * Construct service layer.\n */\n// TODO(dmaretskyi): Better return type.\nexport const useChatServices = ({\n space,\n chat,\n}: UseChatServicesProps): (() => Promise<Runtime.Runtime<AiChatServices>>) | undefined => {\n const client = useClient();\n space ??= client.spaces.default;\n\n const computeRuntimeResolver = useCapability(AssistantCapabilities.ComputeRuntime);\n\n return useMemo(() => {\n const runtime = computeRuntimeResolver.getRuntime(space.id);\n return () =>\n runtime.runPromise(\n Effect.gen(function* () {\n return yield* Effect.runtime<AiChatServices>().pipe(\n Effect.provide(\n chat?.traceQueue?.target ? TracingService.layerQueue(chat.traceQueue?.target) : TracingService.layerNoop,\n ),\n );\n }),\n );\n }, [space, chat?.traceQueue?.target]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AiService = lazy(() => import('./ai-service'));\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const AssistantState = lazy(() => import('./state'));\nexport const BlueprintDefinition = lazy(() => import('./blueprint-definition'));\nexport const EdgeModelResolver = lazy(() => import('./edge-model-resolver'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const LocalModelResolver = lazy(() => import('./local-model-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const Settings = lazy(() => import('./settings'));\nexport const Toolkit = lazy(() => import('./toolkit'));\nexport const ComputeRuntime = lazy(() => import('./compute-runtime'));\n\nexport * from './blueprint-definition';\nexport * from './capabilities';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { AiContextBinder } from '@dxos/assistant';\n\nimport { type Assistant } from '../types';\n\nexport const useContextBinder = (chat: Assistant.Chat | undefined): AiContextBinder | undefined => {\n const binder = useMemo(() => {\n const queue = chat?.queue.target;\n return queue && new AiContextBinder(queue);\n }, [chat]);\n\n return binder;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Dispatch, type SetStateAction, useState } from 'react';\n\nexport const useOnline = (): [boolean, Dispatch<SetStateAction<boolean>>] => {\n const [online, setOnline] = useState(true);\n return [online, setOnline];\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { type ChatPromptProps } from '../components';\nimport { type AiServicePreset, AiServicePresets } from '../processor';\n\nexport type UsePresets = {\n preset: AiServicePreset | undefined;\n} & Pick<ChatPromptProps, 'presets' | 'onPresetChange'>;\n\nexport const usePresets = (online: boolean): UsePresets => {\n // TODO(burdon): Memo preset for provider.\n const [preset, setPreset] = useState<AiServicePreset>();\n const presets = useMemo(\n () => AiServicePresets.filter((preset) => online === (preset.provider === 'dxos-remote')),\n [online],\n );\n const presetOptions = useMemo(\n () => presets.map(({ id, model, label }) => ({ id, label: label ?? model })),\n [presets],\n );\n useEffect(() => {\n setPreset(presets[0]);\n }, [presets]);\n\n const handlePresetChange = useCallback<NonNullable<ChatPromptProps['onPresetChange']>>(\n (id) => {\n const preset = presets.find((preset) => preset.id === id);\n if (preset) {\n setPreset(preset);\n }\n },\n [presets],\n );\n\n return {\n preset: preset,\n presets: presetOptions,\n onPresetChange: handlePresetChange,\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback } from 'react';\n\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { type DXN, type Obj, Ref } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { type Space } from '@dxos/react-client/echo';\nimport { isNonNullable } from '@dxos/util';\n\nexport type UseContextObjects = {\n objects: Obj.Any[];\n onUpdateObject: (dxn: DXN, checked: boolean) => Promise<void>;\n};\n\n/**\n * Create reactive map of active object references (by DXN string).\n */\nexport const useContextObjects = ({\n space,\n context,\n}: {\n space?: Space;\n context?: AiContextBinder;\n}): UseContextObjects => {\n const objects = context?.objects.value.map((ref) => ref.target).filter(isNonNullable) ?? [];\n\n const handleUpdateObject = useCallback<UseContextObjects['onUpdateObject']>(\n async (dxn: DXN, checked: boolean) => {\n if (!space || !context) {\n return;\n }\n\n // Load the object by DXN/id from the current space.\n const id = dxn.asEchoDXN();\n const object = id && (await space.db.getObjectById(id.echoId));\n if (!object) {\n log.warn('Object not found', { dxn, id });\n return;\n }\n\n const ref = Ref.fromDXN(dxn);\n if (checked) {\n await context.bind({ objects: [ref] });\n } else {\n await context.unbind({ objects: [ref] });\n }\n },\n [space, context],\n );\n\n return {\n objects,\n onUpdateObject: handleUpdateObject,\n };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { type Queue } from '@dxos/client/echo';\nimport { Obj } from '@dxos/echo';\nimport { useQueue } from '@dxos/react-client/echo';\n\nimport { ExecutionGraph } from '../execution-graph';\n\nexport const useExecutionGraph = (queueRef?: Queue, lastRequest = false) => {\n const queue = useQueue(queueRef?.dxn);\n return useMemo(() => {\n const graph = new ExecutionGraph();\n graph.addEvents(queue?.objects.filter(Obj.isObject) ?? []);\n return graph.getGraph(lastRequest);\n }, [queue?.objects, lastRequest]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { AgentStatus } from '@dxos/ai';\nimport { Obj, type Ref } from '@dxos/echo';\nimport { MESSAGE_PROPERTY_TOOL_CALL_ID } from '@dxos/functions';\nimport { type ObjectId } from '@dxos/keys';\nimport { LogLevel } from '@dxos/log';\nimport { type Commit } from '@dxos/react-ui-components';\nimport { ContentBlock, DataType } from '@dxos/schema';\nimport { isNotFalsy } from '@dxos/util';\n\n// TODO(burdon): Move to assistant.\n\n// TODO(burdon): Add colors?\nenum IconType {\n // General status.\n SUCCESS = 'ph--check-circle--regular',\n WARNING = 'ph--warning-circle--regular',\n ERROR = 'ph--x-circle--regular',\n FLAG = 'ph--flag--regular',\n ROCKET = 'ph--rocket--regular',\n TIMER = 'ph--timer--regular',\n\n // Interactions.\n USER = 'ph--user--regular',\n USER_INTERACTION = 'ph--user-sound--regular',\n AGENT = 'ph--robot--regular',\n THINKING = 'ph--brain--regular',\n LINK = 'ph--link--regular',\n TOOL = 'ph--wrench--regular',\n}\n\n/**\n * Models the execution graph based on a stream of events.\n */\nexport class ExecutionGraph {\n // TODO(dmaretskyi): Evolve the internal state to support chats, functions, circuit workflows, etc.\n private _commits: Commit[] = [];\n private _branchNames = new Set<string>();\n\n /**\n * Adds events to the graph.\n */\n addEvents(events: Obj.Any[]) {\n for (const event of events) {\n if (Obj.instanceOf(DataType.Message, event)) {\n const messageCommits = messageToCommit(event);\n this._commits.push(...messageCommits);\n messageCommits.map((c) => c.branch).forEach((branch) => this._branchNames.add(branch));\n } else if (Obj.instanceOf(AgentStatus, event)) {\n const branch = getBranchName({ parentMessage: event.parentMessage, toolCallId: event.toolCallId });\n this._branchNames.add(branch);\n this._commits.push({\n id: event.id,\n branch,\n message: event.message,\n icon: IconType.FLAG,\n parents:\n event.parentMessage && event.toolCallId\n ? [getToolCallId(event.parentMessage, event.toolCallId)]\n : undefined, // TODO(burdon): Fix.\n });\n }\n }\n }\n\n /**\n * Returns the current state of the graph.\n */\n getGraph(lastRequest = false): { branches: string[]; commits: Commit[] } {\n const idx = lastRequest ? this._commits.findLastIndex((c) => c.tags?.includes('user')) : -1;\n const commits = idx === -1 ? this._commits : this._commits.slice(idx);\n\n return {\n branches: Array.from(this._branchNames),\n commits: commits,\n };\n }\n}\n\n// TODO(burdon): Pass in AiToolProvider.\nconst messageToCommit = (message: DataType.Message): Commit[] => {\n return message.blocks\n .map((block, idx) => {\n const branch = getMessageBranch(message);\n const parent = getParentId(message);\n const parents = parent ? [parent] : [];\n switch (block._tag) {\n case 'text':\n if (!block.text.trim().length) {\n return null;\n }\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parents,\n ...(message.sender.role === 'user'\n ? {\n icon: IconType.USER,\n tags: ['user'],\n message: 'Processing request...',\n }\n : {\n icon: IconType.AGENT,\n message: `Response (${block.text.split(' ').length} words)`,\n }),\n } satisfies Commit;\n case 'toolCall':\n return {\n id: getToolCallId(message.id, block.toolCallId),\n branch,\n parents,\n icon: IconType.TOOL,\n level: LogLevel.INFO,\n // TODO(burdon): Lookup tool name/description?\n message: `Calling tool (${block.name})`,\n } satisfies Commit;\n case 'toolResult':\n return {\n id: getToolResultId(message.id, block.toolCallId),\n branch,\n parents,\n icon: block.error ? IconType.ERROR : IconType.SUCCESS,\n level: block.error ? LogLevel.ERROR : LogLevel.INFO,\n message: block.error ? 'Tool error: ' + block.error : 'Tool call succeeded',\n } satisfies Commit;\n case 'summary':\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parents,\n icon: IconType.ROCKET,\n level: LogLevel.INFO,\n message: ContentBlock.createSummaryMessage(block),\n } satisfies Commit;\n case 'status':\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parents,\n message: block.statusText,\n level: LogLevel.INFO,\n icon: IconType.FLAG,\n } satisfies Commit;\n case 'reasoning':\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parents,\n message: block.reasoningText ?? 'Thinking...',\n icon: IconType.THINKING,\n } satisfies Commit;\n case 'reference':\n return {\n id: getGenericBlockId(message.id, idx),\n branch,\n parents,\n icon: IconType.LINK,\n message: stringifyRef(block.reference),\n } satisfies Commit;\n default:\n return null;\n }\n })\n .filter(isNotFalsy);\n};\n\nconst getToolCallId = (messageId: ObjectId, toolCallId: string) => `${messageId}_toolCall_${toolCallId}`;\n\nconst getToolResultId = (messageId: ObjectId, toolCallId: string) => `${messageId}_toolResult_${toolCallId}`;\n\nconst getGenericBlockId = (messageId: ObjectId, idx: number) => `${messageId}_block_${idx}`;\n\nconst getBranchName = (options: { parentMessage?: ObjectId; toolCallId?: string }) => {\n if (options.parentMessage && options.toolCallId) {\n return `${options.parentMessage}_${options.toolCallId}`;\n } else if (options.parentMessage) {\n return options.parentMessage;\n } else {\n return 'main';\n }\n};\n\nconst getMessageBranch = (message: DataType.Message) => {\n return getBranchName({\n parentMessage: message.parentMessage,\n toolCallId: message.properties?.[MESSAGE_PROPERTY_TOOL_CALL_ID],\n });\n};\n\nconst getParentId = (message: DataType.Message) => {\n if (message.parentMessage && message.properties?.[MESSAGE_PROPERTY_TOOL_CALL_ID]) {\n return getToolCallId(message.parentMessage, message.properties[MESSAGE_PROPERTY_TOOL_CALL_ID]);\n } else {\n return undefined;\n }\n};\n\nconst stringifyRef = (ref: Ref.Any) => {\n if (ref.target) {\n return stringifyObject(ref.target);\n }\n\n return ref.dxn.asEchoDXN()?.echoId ?? ref.dxn.asQueueDXN()?.objectId ?? '';\n};\n\nconst stringifyObject = (obj: Obj.Any) => {\n return Obj.getLabel(obj) ?? Obj.getTypename(obj) ?? obj.id;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCallback, useRef, useState } from 'react';\n\nimport { type Space } from '@dxos/client/echo';\n\nexport const useFlush = (space?: Space) => {\n const [state, setState] = useState<'idle' | 'flushing' | 'flushed'>('idle');\n const resetTimer = useRef<NodeJS.Timeout | null>(null);\n\n const handleFlush = useCallback(() => {\n if (!space) {\n return;\n }\n\n queueMicrotask(async () => {\n if (resetTimer.current) {\n clearTimeout(resetTimer.current);\n }\n\n setState('flushing');\n await space.db.flush();\n setState('flushed');\n\n resetTimer.current = setTimeout(() => {\n setState('idle');\n resetTimer.current = null;\n }, 1_000);\n });\n }, [space]);\n\n return { state, handleFlush };\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Option } from 'effect';\nimport { useEffect, useState } from 'react';\n\nimport { type Type } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\nimport { ItemAnnotation } from '@dxos/schema';\n\n// TODO(burdon): Pass in filter.\nexport const useItemTypes = (space?: Space): Type.Obj.Any[] => {\n const [types, setTypes] = useState<Type.Obj.Any[]>([]);\n useEffect(() => {\n if (!space) {\n return;\n }\n\n return space.db.schemaRegistry.query().subscribe(\n (query) => {\n const types = Array.from(\n new Set(\n [...space.db.graph.schemaRegistry.schemas, ...query.results].filter((type) =>\n Option.isSome(ItemAnnotation.get(type)),\n ),\n ),\n );\n\n setTypes(types);\n },\n { fire: true },\n );\n }, [space]);\n\n return types;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useMemo } from 'react';\n\nimport { Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { type Space } from '@dxos/client/echo';\nimport { Filter, Obj } from '@dxos/echo';\nimport { type ReferencesProvider } from '@dxos/react-ui-chat';\n\n/**\n * Resolve references to objects in the space.\n */\nexport const useReferencesProvider = (space?: Space): ReferencesProvider | undefined => {\n const blueprints = useCapabilities(Capabilities.BlueprintDefinition);\n\n return useMemo<ReferencesProvider | undefined>((): ReferencesProvider | undefined => {\n if (!space) {\n return undefined;\n }\n\n return {\n getReferences: async ({ query }) => {\n // TODO(burdon): Previously we filtered by types declared by the artifact definitions.\n // const schemas = blueprints.map((blueprint) => blueprint.schema).flat();\n // const { objects } = await space.db\n // .query(Filter.or(...schemas.map((schema) => Filter.type(schema as Type.Schema))))\n // .run();\n\n const { objects } = await space.db.query(Filter.everything()).run();\n\n return (\n objects\n // TODO(burdon): Remove cast ??? (+ two instances below).\n // .map((object) => {\n // log.info('object', { object, label: Obj.getLabel(object as any) });\n // return object;\n // })\n .filter((object) => stringMatch(query, Obj.getLabel(object as any) ?? ''))\n // TODO(dmaretskyi): `Type.getDXN` (at the point of writing) didn't work here as it was schema-only.\n .filter((object) => !!Obj.getDXN(object as Obj.Any))\n .map((object) => ({\n uri: Obj.getDXN(object as any).toString(),\n label: Obj.getLabel(object as any) ?? '',\n }))\n );\n },\n resolveReference: async ({ uri }) => {\n const object = await space.db.query(Filter.ids(uri)).first();\n return { uri, label: Obj.getLabel(object) ?? '' };\n },\n } satisfies ReferencesProvider;\n }, [space, blueprints]);\n};\n\nconst stringMatch = (query: string, label: string) => label.toLowerCase().startsWith(query.toLowerCase());\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type { Effect } from 'effect';\nimport { useCallback } from 'react';\n\nimport { useCapability } from '@dxos/app-framework';\nimport type { Space } from '@dxos/client/echo';\n\nimport { AssistantCapabilities } from '../capabilities';\n\n/**\n * Create an effectful function that has access to compute services\n */\nexport const useComputeRuntimeCallback = <T>(\n space: Space,\n fn: () => Effect.Effect<T, any, AssistantCapabilities.ComputeServices>,\n deps?: React.DependencyList,\n): (() => Promise<T>) => {\n const computeRuntime = useCapability(AssistantCapabilities.ComputeRuntime);\n const runtime = computeRuntime.getRuntime(space.id);\n\n return useCallback(() => runtime.runPromise(fn()), [runtime, ...(deps ?? [])]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Extension, Prec } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { useRxValue } from '@effect-rx/rx-react';\nimport { createContext } from '@radix-ui/react-context';\nimport { Array, Option } from 'effect';\nimport React, { type PropsWithChildren, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { Event } from '@dxos/async';\nimport { Obj } from '@dxos/echo';\nimport { useVoiceInput } from '@dxos/plugin-transcription';\nimport { type Space, getSpace, useQueue } from '@dxos/react-client/echo';\nimport { useIdentity } from '@dxos/react-client/halo';\nimport { Input, type ThemedClassName, useDynamicRef, useTranslation } from '@dxos/react-ui';\nimport { ChatEditor, type ChatEditorController, type ChatEditorProps, references } from '@dxos/react-ui-chat';\nimport { mx } from '@dxos/react-ui-theme';\nimport { DataType } from '@dxos/schema';\nimport { isNotFalsy } from '@dxos/util';\n\nimport { useReferencesProvider } from '../../hooks';\nimport { meta } from '../../meta';\nimport { type AiChatProcessor } from '../../processor';\nimport { type Assistant } from '../../types';\nimport {\n ChatActions,\n type ChatActionsProps,\n ChatOptions,\n type ChatPresetsProps,\n ChatReferences,\n ChatStatusIndicator,\n} from '../ChatPrompt';\nimport {\n type ChatThreadController,\n ChatThread as NaturalChatThread,\n type ChatThreadProps as NaturalChatThreadProps,\n} from '../ChatThread';\n\nimport { type ChatEvent } from './events';\n\n//\n// Context\n// NOTE: The context should not be exported. It is only used internally.\n// Components outside of this Radix-style group shuld define their own APIs.\n//\n\ntype ChatContextValue = {\n debug?: boolean;\n event: Event<ChatEvent>;\n space: Space;\n chat: Assistant.Chat;\n messages: DataType.Message[];\n processor: AiChatProcessor;\n};\n\nexport const [ChatContextProvider, useChatContext] = createContext<ChatContextValue>('Chat');\n\n//\n// Root\n//\n\ntype ChatRootProps = ThemedClassName<\n PropsWithChildren<\n Pick<ChatContextValue, 'chat' | 'processor'> & {\n onEvent?: (event: ChatEvent) => void;\n }\n >\n>;\n\nconst ChatRoot = ({ classNames, children, chat, processor, onEvent, ...props }: ChatRootProps) => {\n const [debug, setDebug] = useState(false);\n const space = getSpace(chat);\n\n // Messages.\n const queue = useQueue<DataType.Message>(chat?.queue.dxn);\n const pending = useRxValue(processor.messages);\n const streaming = useRxValue(processor.streaming);\n const lastPrompt = useRef<string | undefined>(undefined);\n\n const messages = useMemo(() => {\n const queueMessages = queue?.objects?.filter(Obj.instanceOf(DataType.Message)) ?? [];\n return Array.dedupeWith([...queueMessages, ...pending], (a, b) => a.id === b.id);\n }, [queue?.objects, pending]);\n\n // Events.\n const event = useMemo(() => new Event<ChatEvent>(), []);\n useEffect(() => {\n return event.on((ev) => {\n switch (ev.type) {\n case 'toggle-debug': {\n setDebug((current) => !current);\n break;\n }\n\n case 'submit': {\n const text = ev.text.trim();\n if (!streaming && text.length) {\n lastPrompt.current = ev.text;\n void processor.request({ message: text });\n }\n break;\n }\n\n case 'retry': {\n if (!streaming) {\n void processor.retry();\n }\n break;\n }\n\n case 'cancel': {\n if (streaming) {\n void processor.cancel();\n if (lastPrompt.current) {\n event.emit({ type: 'update-prompt', text: lastPrompt.current });\n }\n }\n break;\n }\n\n default: {\n onEvent?.(ev);\n }\n }\n });\n }, [event, processor, streaming, onEvent]);\n\n if (!space) {\n return null;\n }\n\n return (\n <ChatContextProvider\n debug={debug}\n event={event}\n chat={chat}\n space={space}\n messages={messages}\n processor={processor}\n {...props}\n >\n <div role='none' className={mx('flex flex-col h-full overflow-hidden', classNames)}>\n {children}\n </div>\n </ChatContextProvider>\n );\n};\n\nChatRoot.displayName = 'Chat.Root';\n\n//\n// Prompt\n//\n\ntype ChatPromptProps = ThemedClassName<\n {\n outline?: boolean;\n } & Pick<ChatEditorProps, 'placeholder'> &\n Omit<ChatPresetsProps, 'onChange'> & {\n expandable?: boolean;\n online?: boolean;\n onOnlineChange?: (online: boolean) => void;\n onPresetChange?: ChatPresetsProps['onChange'];\n }\n>;\n\nconst ChatPrompt = ({\n classNames,\n outline,\n placeholder,\n expandable,\n online,\n presets,\n preset,\n onPresetChange,\n onOnlineChange,\n}: ChatPromptProps) => {\n const { t } = useTranslation(meta.id);\n const { space, event, processor } = useChatContext(ChatPrompt.displayName);\n\n const error = useRxValue(processor.error).pipe(Option.getOrUndefined);\n const streaming = useRxValue(processor.streaming);\n const active = useRxValue(processor.active);\n const activeRef = useDynamicRef(active);\n\n const editorRef = useRef<ChatEditorController>(null);\n const [recordingState, setRecordingState] = useState(false);\n useEffect(() => {\n return event.on((event) => {\n switch (event.type) {\n case 'update-prompt':\n if (!editorRef.current?.getText()?.length) {\n editorRef.current?.setText(event.text);\n editorRef.current?.focus();\n }\n break;\n case 'record-start':\n setRecordingState(true);\n break;\n case 'record-stop':\n setRecordingState(false);\n break;\n }\n });\n }, [event]);\n\n // TODO(burdon): Configure capability in TranscriptionPlugin.\n const { recording } = useVoiceInput({\n active: recordingState,\n onUpdate: (text) => {\n editorRef.current?.setText(text);\n editorRef.current?.focus();\n },\n });\n\n // TODO(burdon): Reconcile with object tags.\n const referencesProvider = useReferencesProvider(space);\n const extensions = useMemo<Extension[]>(() => {\n return [\n referencesProvider && references({ provider: referencesProvider }),\n Prec.highest(\n keymap.of(\n [\n {\n key: 'cmd-d',\n preventDefault: true,\n run: () => {\n event.emit({ type: 'toggle-debug' });\n return true;\n },\n },\n expandable && {\n key: 'cmd-ArrowUp',\n preventDefault: true,\n run: () => {\n event.emit({ type: 'thread-open' });\n return true;\n },\n },\n expandable && {\n key: 'cmd-ArrowDown',\n preventDefault: true,\n run: () => {\n event.emit({ type: 'thread-close' });\n return true;\n },\n },\n ].filter(isNotFalsy),\n ),\n ),\n ].filter(isNotFalsy);\n }, [event, expandable, referencesProvider]);\n\n const handleSubmit = useCallback<NonNullable<ChatEditorProps['onSubmit']>>(\n (text) => {\n if (!activeRef.current) {\n event.emit({ type: 'submit', text });\n return true;\n }\n },\n [event],\n );\n\n const handleEvent = useCallback<NonNullable<ChatActionsProps['onEvent']>>(\n (ev) => {\n event.emit(ev);\n },\n [event],\n );\n\n return (\n <div\n className={mx(\n 'is-full flex flex-col density-fine',\n outline && [\n 'p-2 bg-groupSurface border border-subduedSeparator transition transition-border [&:has(.cm-content:focus)]:border-separator rounded',\n ],\n classNames,\n )}\n >\n <div className='flex gap-2'>\n <ChatStatusIndicator classNames='p-1' preset={preset} error={error} processing={streaming} />\n\n <ChatEditor\n ref={editorRef}\n autoFocus\n lineWrapping\n classNames='col-span-2 pbs-0.5'\n placeholder={placeholder ?? t('prompt placeholder')}\n extensions={extensions}\n onSubmit={handleSubmit}\n />\n </div>\n\n <div className='flex pbs-2 items-center'>\n <ChatOptions\n space={space}\n blueprintRegistry={processor.blueprintRegistry}\n context={processor.context}\n preset={preset}\n presets={presets}\n onPresetChange={onPresetChange}\n />\n\n <div role='none' className='pli-cardSpacingChrome grow'>\n <ChatReferences space={space} context={processor.context} />\n </div>\n\n <ChatActions\n classNames='col-span-2'\n microphone={true}\n recording={recording}\n processing={streaming}\n onEvent={handleEvent}\n >\n {online !== undefined && (\n <Input.Root>\n <Input.Switch classNames='mis-2 mie-2' checked={online} onCheckedChange={onOnlineChange} />\n </Input.Root>\n )}\n </ChatActions>\n </div>\n </div>\n );\n};\n\nChatPrompt.displayName = 'Chat.Prompt';\n\n//\n// Thread\n//\n\ntype ChatThreadProps = Omit<NaturalChatThreadProps, 'identity' | 'messages' | 'tools'>;\n\nconst ChatThread = (props: ChatThreadProps) => {\n const { event, messages, processor } = useChatContext(ChatThread.displayName);\n const identity = useIdentity();\n const error = useRxValue(processor.error).pipe(Option.getOrUndefined);\n\n const scrollerRef = useRef<ChatThreadController | null>(null);\n useEffect(() => {\n return event.on((event) => {\n switch (event.type) {\n case 'submit':\n case 'scroll-to-bottom':\n scrollerRef.current?.scrollToBottom();\n break;\n }\n });\n }, [event]);\n\n const handleEvent = useCallback<NonNullable<NaturalChatThreadProps['onEvent']>>(\n (ev) => {\n event.emit(ev);\n },\n [event],\n );\n\n if (!identity) {\n return null;\n }\n\n return (\n <NaturalChatThread\n {...props}\n ref={scrollerRef}\n identity={identity}\n messages={messages}\n error={error}\n onEvent={handleEvent}\n />\n );\n};\n\nChatThread.displayName = 'Chat.Thread';\n\n//\n// Chat\n//\n\nexport const Chat = {\n Root: ChatRoot,\n Prompt: ChatPrompt,\n Thread: ChatThread,\n};\n\nexport type { ChatRootProps, ChatThreadProps, ChatPromptProps, ChatEvent };\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type PropsWithChildren } from 'react';\n\nimport { IconButton, type ThemedClassName, useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { meta } from '../../meta';\nimport { type ChatEvent } from '../Chat';\n\nexport type ChatActionsProps = ThemedClassName<\n PropsWithChildren<{\n microphone?: boolean;\n recording?: boolean;\n processing?: boolean;\n onEvent?: (event: ChatEvent) => void;\n }>\n>;\n\nexport const ChatActions = ({ classNames, children, microphone, recording, processing, onEvent }: ChatActionsProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div className={mx('flex items-center mie-1', classNames)}>\n {children}\n\n <IconButton\n disabled={!processing}\n variant='ghost'\n size={5}\n icon='ph--x--regular'\n iconOnly\n label={t('button cancel processing')}\n onClick={() => onEvent?.({ type: 'cancel' })}\n />\n\n {microphone && (\n <IconButton\n disabled={!processing}\n classNames={mx(recording && 'bg-primary-500')}\n variant='ghost'\n size={5}\n icon='ph--microphone--regular'\n iconOnly\n noTooltip\n label={t('button microphone')}\n onMouseDown={() => onEvent?.({ type: 'record-start' })}\n onMouseUp={() => onEvent?.({ type: 'record-stop' })}\n onTouchStart={() => onEvent?.({ type: 'record-start' })}\n onTouchEnd={() => onEvent?.({ type: 'record-stop' })}\n />\n )}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type JSX, useMemo, useState } from 'react';\n\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { Filter, Obj, Type } from '@dxos/echo';\nimport { type Space, useQuery } from '@dxos/react-client/echo';\nimport { Icon, IconButton, Popover, Select, useTranslation } from '@dxos/react-ui';\nimport { SearchList } from '@dxos/react-ui-searchlist';\nimport { Tabs } from '@dxos/react-ui-tabs';\n\nimport { useActiveBlueprints, useBlueprintHandlers, useBlueprints, useContextObjects, useItemTypes } from '../../hooks';\nimport { meta } from '../../meta';\n\nconst panelClassNames = 'is-[calc(100dvw-.5rem)] sm:is-max md:is-[25rem] max-is-[--text-content]';\n\nexport type ChatOptionsProps = {\n space: Space;\n context: AiContextBinder;\n blueprintRegistry?: Blueprint.Registry;\n presets?: { id: string; label: string }[];\n preset?: string;\n onPresetChange?: (id: string) => void;\n};\n\n/**\n * Manages the runtime context for the chat.\n */\nexport const ChatOptions = ({\n space,\n context,\n blueprintRegistry,\n presets,\n preset,\n onPresetChange,\n}: ChatOptionsProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div role='none' className='flex gap-0.5'>\n <Popover.Root>\n <Popover.Trigger asChild>\n <IconButton variant='ghost' icon='ph--plus--regular' iconOnly size={5} label={t('button context objects')} />\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content side='top' classNames={panelClassNames}>\n <ObjectsPanel space={space} context={context} />\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n\n <Popover.Root>\n <Popover.Trigger asChild>\n <IconButton\n variant='ghost'\n icon='ph--sliders-horizontal--regular'\n iconOnly\n size={5}\n label={t('button context settings')}\n />\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content side='top' classNames={panelClassNames}>\n <Tabs.Root orientation='horizontal' defaultValue='blueprints' defaultActivePart='list'>\n <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'>\n <Tabs.Tabpanel value='blueprints'>\n <BlueprintsPanel blueprintRegistry={blueprintRegistry} space={space} context={context} />\n </Tabs.Tabpanel>\n <Tabs.Tabpanel value='model'>\n <ModelsPanel presets={presets} preset={preset} onPresetChange={onPresetChange} />\n </Tabs.Tabpanel>\n <Tabs.Tablist classNames='sm:overflow-x-hidden justify-center p-[--dx-cardSpacingChrome] border-bs border-subduedSeparator order-last'>\n <Tabs.IconTab\n value='blueprints'\n icon='ph--blueprint--regular'\n label={t('blueprints in context title')}\n />\n <Tabs.IconTab value='model' label={t('chat model title')} icon='ph--cpu--regular' />\n </Tabs.Tablist>\n </Tabs.Viewport>\n </Tabs.Root>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n </div>\n );\n};\n\nconst BlueprintsPanel = ({\n blueprintRegistry,\n space,\n context,\n}: Pick<ChatOptionsProps, 'blueprintRegistry' | 'space' | 'context'>) => {\n const { t } = useTranslation(meta.id);\n\n const blueprints = useBlueprints({ blueprintRegistry });\n const activeBlueprints = useActiveBlueprints({ context });\n const { onUpdateBlueprint } = useBlueprintHandlers({ space, context, blueprintRegistry });\n\n return (\n <SearchList.Root>\n <SearchList.Content classNames='plb-cardSpacingChrome'>\n {blueprints.map((blueprint) => {\n const isActive = activeBlueprints.has(blueprint.key);\n return (\n <SearchList.Item\n classNames='flex items-center overflow-hidden'\n key={blueprint.key}\n value={blueprint.name}\n onSelect={() => onUpdateBlueprint?.(blueprint.key, !isActive)}\n >\n <div className='grow truncate'>{blueprint.name}</div>\n <Icon icon='ph--check--regular' classNames={[!isActive && 'invisible']} />\n </SearchList.Item>\n );\n })}\n </SearchList.Content>\n <SearchList.Input placeholder={t('search placeholder')} classNames='mbe-cardSpacingChrome' />\n </SearchList.Root>\n );\n};\n\nconst ModelsPanel = ({\n presets,\n preset,\n onPresetChange,\n}: Pick<ChatOptionsProps, 'presets' | 'preset' | 'onPresetChange'>) => {\n return (\n <ul role='listbox' className='plb-cardSpacingChrome'>\n {presets?.map(({ id, label }) => {\n const isActive = preset === id;\n return (\n <li\n role='option'\n key={id}\n aria-selected={isActive}\n tabIndex={0}\n className='overflow-hidden dx-focus-ring flex gap-2 p-1 pis-2 pie-2 items-center rounded-sm select-none cursor-pointer hover:bg-hoverOverlay'\n onClick={() => onPresetChange?.(id)}\n >\n <div className='grow truncate'>{label}</div>\n <Icon icon='ph--check--regular' classNames={[!isActive && 'invisible']} />\n </li>\n );\n })}\n </ul>\n );\n};\n\nconst ANY = '__any__';\n\nconst ObjectsPanel = ({ space, context }: Pick<ChatOptionsProps, 'space' | 'context'>): JSX.Element => {\n const { t } = useTranslation(meta.id);\n\n // Item types sorted by label.\n const types = useItemTypes(space);\n const typenames = useMemo(() => {\n const typenames = types.map((type) => {\n const typename = Type.getTypename(type);\n return {\n typename,\n label: t('typename label', { ns: typename, defaultValue: typename }),\n };\n });\n\n typenames.sort((a, b) => a.label.localeCompare(b.label));\n return typenames;\n }, [types]);\n\n // Current type and filter.\n const [typename, setTypename] = useState<string>(ANY);\n const anyFilter = useMemo(\n () => Filter.or(...typenames.map(({ typename }) => Filter.typename(typename))),\n [typenames],\n );\n\n // Context objects.\n const objects = useQuery(space, typename === ANY ? anyFilter : Filter.typename(typename));\n const { objects: contextObjects, onUpdateObject } = useContextObjects({ space, context });\n\n return (\n <SearchList.Root classNames='pis-2 pie-2'>\n <SearchList.Content classNames='plb-cardSpacingChrome [&:has([cmdk-list-sizer]:empty)]:plb-0'>\n {objects.length ? (\n objects.map((object) => {\n const label = Obj.getLabel(object) ?? Obj.getTypename(object) ?? object.id;\n const isActive = contextObjects.findIndex((obj) => obj.id === object.id) !== -1;\n return (\n <SearchList.Item\n classNames='flex items-center overflow-hidden'\n key={object.id}\n value={object.id}\n onSelect={() => onUpdateObject?.(Obj.getDXN(object), !isActive)}\n >\n <div className='grow truncate'>{label}</div>\n <Icon icon='ph--check--regular' classNames={[!isActive && 'invisible']} />\n </SearchList.Item>\n );\n })\n ) : (\n <SearchList.Item>{t('no results')}</SearchList.Item>\n )}\n </SearchList.Content>\n\n <div role='none' className='grid grid-cols-[min-content_1fr] gap-2 mbe-cardSpacingChrome'>\n <Select.Root value={typename === ANY ? undefined : typename} onValueChange={setTypename}>\n <Select.TriggerButton density='fine' placeholder={t('type filter placeholder')} />\n <Select.Portal>\n <Select.Content>\n <Select.ScrollUpButton />\n <Select.Viewport>\n <Select.Option value={ANY}>{t('any type filter label')}</Select.Option>\n {typenames.map(({ typename, label }) => (\n <Select.Option key={typename} value={typename}>\n {label}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton />\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n <SearchList.Input placeholder={t('search placeholder')} classNames='mbe-0' />\n </div>\n </SearchList.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Select } from '@dxos/react-ui';\n\nexport type ChatPresetsProps = {\n presets?: { id: string; label: string }[];\n preset?: string;\n onChange?: (id: string) => void;\n};\n\nexport const ChatPresets = ({ presets, preset, onChange }: ChatPresetsProps) => {\n return (\n <Select.Root value={preset} onValueChange={onChange}>\n <Select.TriggerButton classNames='text-sm' />\n <Select.Content>\n {presets?.map(({ id, label }) => (\n <Select.Option key={id} value={id} classNames='text-sm'>\n {label}\n </Select.Option>\n ))}\n <Select.Arrow />\n </Select.Content>\n </Select.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AiContextBinder } from '@dxos/assistant';\nimport { Obj } from '@dxos/echo';\nimport { type Space } from '@dxos/react-client/echo';\nimport { IconButton, type Label, type ThemedClassName, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { useContextObjects } from '../../hooks';\nimport { meta } from '../../meta';\n\nexport type ChatReferencesProps = ThemedClassName<{\n context: AiContextBinder;\n space: Space;\n}>;\n\nexport const ChatReferences = ({ classNames, context, space }: ChatReferencesProps) => {\n const { t } = useTranslation(meta.id);\n const { objects, onUpdateObject } = useContextObjects({ space, context });\n\n return (\n <ul className={mx('flex flex-wrap', classNames)}>\n {objects.map((obj) => {\n const dxn = Obj.getDXN(obj);\n const typename = Obj.getTypename(obj);\n const label: Label = Obj.getLabel(obj) ?? (typename ? ['object name placeholder', { ns: typename }] : obj.id);\n return (\n <li key={dxn.toString()} className='dx-tag plb-0 pis-2 flex items-center' data-hue='neutral'>\n {toLocalizedString(label, t)}\n <IconButton\n iconOnly\n variant='ghost'\n label={t('remove object in context label')}\n classNames='p-0 hover:bg-transparent'\n size={3}\n icon='ph--x--bold'\n onClick={() => onUpdateObject?.(dxn, false)}\n />\n </li>\n );\n })}\n </ul>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { type ThemedClassName, Tooltip, useTimeout } from '@dxos/react-ui';\nimport { Spinner, type SpinnerProps } from '@dxos/react-ui-sfx';\nimport { mx } from '@dxos/react-ui-theme';\n\nconst period = 3_000;\n\nexport type ChatStatusIndicatorProps = ThemedClassName<\n {\n preset?: string;\n processing?: boolean;\n error?: Error;\n } & Pick<SpinnerProps, 'size' | 'onClick'>\n>;\n\nexport const ChatStatusIndicator = ({ classNames, preset, processing, error, ...props }: ChatStatusIndicatorProps) => {\n const [init, setInit] = useState(false);\n useEffect(() => setInit(false), [preset]);\n useTimeout(\n async () => {\n setInit(true);\n },\n period / 2,\n [preset],\n );\n\n return (\n <div role='none' className={mx('relative flex', classNames)}>\n <Spinner duration={period} state={!init ? 'flash' : error ? 'error' : processing ? 'spin' : 'pulse'} {...props} />\n {error && (\n <Tooltip.Trigger asChild content={error.message}>\n <div className='absolute inset-0' />\n </Tooltip.Trigger>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, {\n type CSSProperties,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react';\n\nimport { PublicKey } from '@dxos/keys';\nimport { type Identity } from '@dxos/react-client/halo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { MarkdownStream, type MarkdownStreamController, type MarkdownStreamProps } from '@dxos/react-ui-components';\nimport { mx } from '@dxos/react-ui-theme';\nimport { type DataType } from '@dxos/schema';\nimport { keyToFallback } from '@dxos/util';\n\nimport { type ChatEvent } from '../Chat';\n\nimport { blockToMarkdown, componentRegistry } from './registry';\nimport { MessageSyncer } from './sync';\n\nexport type ChatThreadController = Pick<MarkdownStreamController, 'setContext' | 'scrollToBottom'>;\n\nexport type ChatThreadProps = ThemedClassName<\n {\n identity?: Identity;\n messages?: DataType.Message[];\n error?: Error;\n onEvent?: (event: ChatEvent) => void;\n } & Pick<MarkdownStreamProps, 'cursor' | 'fadeIn'>\n>;\n\nexport const ChatThread = forwardRef<ChatThreadController | null, ChatThreadProps>(\n ({ classNames, identity, messages = [], error, cursor = false, fadeIn = true, onEvent }, forwardedRef) => {\n const userHue = useMemo(() => {\n return identity?.profile?.data?.hue || keyToFallback(identity?.identityKey ?? PublicKey.random()).hue;\n }, [identity]);\n\n // Expose controller.\n const [controller, setController] = useState<MarkdownStreamController | null>(null);\n useImperativeHandle(forwardedRef, () => (controller ? controller : (null as any)), [controller]);\n\n // Show error.\n useEffect(() => {\n controller?.scrollToBottom();\n }, [controller, error]);\n\n // Update document.\n const syncer = useMemo(() => controller && new MessageSyncer(controller, blockToMarkdown), [controller]);\n useEffect(() => {\n syncer?.sync(messages);\n }, [syncer, messages]);\n\n // Event handler.\n const handleEvent = useCallback<NonNullable<MarkdownStreamProps['onEvent']>>(\n (ev) => {\n switch (ev.type) {\n case 'submit': {\n ev.value &&\n onEvent?.({\n type: 'submit',\n text: ev.value,\n });\n break;\n }\n }\n },\n [onEvent],\n );\n\n return (\n <div\n className={mx('flex bs-full is-full justify-center overflow-hidden', classNames)}\n style={{ '--user-fill': `var(--dx-${userHue}Fill)` } as CSSProperties}\n >\n <MarkdownStream\n ref={setController}\n classNames='bs-full max-is-prose overflow-hidden'\n registry={componentRegistry}\n cursor={cursor}\n fadeIn={fadeIn}\n onEvent={handleEvent}\n />\n </div>\n );\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { log } from '@dxos/log';\nimport {\n PromptWidget,\n ReferenceWidget,\n SelectWidget,\n SuggestionWidget,\n SummaryWidget,\n ToggleContainer,\n} from '@dxos/react-ui-components';\nimport { type XmlWidgetProps, type XmlWidgetRegistry } from '@dxos/react-ui-editor';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\nimport { ContentBlock, type DataType } from '@dxos/schema';\n\nimport { ToolBlock } from '../ToolBlock';\n\nimport { type BlockRenderer, type MessageThreadContext } from './sync';\n\nconst Fallback = ({ _tag, ...props }: XmlWidgetProps<MessageThreadContext>) => {\n return (\n <ToggleContainer.Root classNames='rounded-sm'>\n <ToggleContainer.Header classNames='bg-groupSurface'>{_tag}</ToggleContainer.Header>\n <ToggleContainer.Content classNames='bg-modalSurface'>\n <Json classNames='!p-2 text-sm' data={props} />\n </ToggleContainer.Content>\n </ToggleContainer.Root>\n );\n};\n\nconst getTextChild = (children: any[]): string | null => {\n const child = children?.[0];\n return typeof child === 'string' ? child : null;\n};\n\n/**\n * Custom XML tags registry.\n */\nexport const componentRegistry: XmlWidgetRegistry = {\n //\n // Widgets\n //\n\n ['prompt' as const]: {\n block: true,\n factory: (props) => {\n const text = getTextChild(props.children);\n return text ? new PromptWidget(text) : null;\n },\n },\n ['reference' as const]: {\n block: false,\n factory: (props) => {\n const text = getTextChild(props.children);\n return text && props.ref ? new ReferenceWidget(text, props.ref) : null;\n },\n },\n ['select' as const]: {\n block: true,\n factory: (props) => {\n const options = props.children\n ?.map((option: any) => option._tag === 'option' && getTextChild(option.children))\n .filter(Boolean);\n return options?.length ? new SelectWidget(options) : null;\n },\n },\n ['suggestion' as const]: {\n block: true,\n factory: (props) => {\n const text = getTextChild(props.children);\n return text ? new SuggestionWidget(text) : null;\n },\n },\n ['summary' as const]: {\n block: true,\n factory: (props) => {\n const text = getTextChild(props.children);\n return text ? new SummaryWidget(text) : null;\n },\n },\n\n //\n // React\n //\n\n ['toolCall' as const]: {\n block: true,\n Component: ToolBlock,\n },\n ['toolResult' as const]: {\n block: true,\n Component: Fallback,\n },\n ['toolkit' as const]: {\n block: true,\n Component: Fallback,\n },\n\n //\n // Fallback\n //\n\n ['json' as const]: {\n block: true,\n Component: Fallback,\n },\n};\n\n/**\n * Convert block to markdown.\n */\nexport const blockToMarkdown: BlockRenderer = (\n context: MessageThreadContext,\n message: DataType.Message,\n block: ContentBlock.Any,\n) => {\n let str = _blockToMarkdown(context, message, block);\n if (str && !block.pending) {\n return (str += '\\n');\n }\n\n return str;\n};\n\nconst _blockToMarkdown = (context: MessageThreadContext, message: DataType.Message, block: ContentBlock.Any) => {\n log('blockToMarkdown', { block: JSON.stringify(block) });\n switch (block._tag) {\n case 'text': {\n if (message.sender.role === 'user') {\n return `\\n<prompt>${block.text}</prompt>\\n`;\n } else {\n const text = block.text.trim();\n if (text.length > 0) {\n return text;\n }\n }\n break;\n }\n\n case 'suggestion': {\n if (block.pending) {\n return;\n }\n return `<suggestion>${block.text}</suggestion>`;\n }\n case 'select': {\n if (block.pending || block.options.length === 0) {\n return;\n }\n\n return `<select>${block.options.map((option) => `<option>${option}</option>`).join('')}</select>`;\n }\n\n // TODO(burdon): Need label.\n case 'reference': {\n return `<reference ref=\"${block.reference.dxn.toString()}\">Ref</reference>`;\n }\n\n // case 'toolkit': {\n // return `<toolkit />`;\n // }\n\n case 'toolCall': {\n context.updateWidget(block.toolCallId, {\n blocks: [block],\n });\n return `<toolCall id=\"${block.toolCallId}\" />`;\n }\n case 'toolResult': {\n context.updateWidget(block.toolCallId, ({ blocks = [] }: { blocks: ContentBlock.Any[] }) => ({\n blocks: [...blocks, block],\n }));\n break;\n }\n\n case 'summary': {\n return `<summary>${ContentBlock.createSummaryMessage(block)}</summary>`;\n }\n\n // TODO(burdon): Need stable ID.\n default: {\n return `<json id=\"${message.id}\">\\n${JSON.stringify(block)}\\n</json>`;\n }\n }\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AiTool } from '@effect/ai';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { type AgentStatus } from '@dxos/ai';\nimport { useTranslation } from '@dxos/react-ui';\nimport {\n NumericTabs,\n TextCrawl,\n ToggleContainer,\n chatMessageJson,\n chatMessagePanel,\n chatMessagePanelContent,\n chatMessagePanelHeader,\n} from '@dxos/react-ui-components';\nimport { Json } from '@dxos/react-ui-syntax-highlighter';\nimport { type ContentBlock, type DataType } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\nimport { safeParseJson } from '@dxos/util';\n\nimport { meta } from '../../meta';\n\nexport const isToolMessage = (message: DataType.Message) => {\n return message.blocks.some((block) => block._tag === 'toolCall' || block._tag === 'toolResult');\n};\n\nexport type ToolBlockProps = {\n blocks: ContentBlock.Any[];\n};\n\nexport const ToolBlock = ({ blocks = [] }: ToolBlockProps) => {\n const { t } = useTranslation(meta.id);\n\n const getToolCaption = (tool?: AiTool.Any, status?: AgentStatus) => {\n if (!tool) {\n return t('calling tool label');\n }\n\n return status?.message ?? tool.description ?? [t('calling label'), tool.name].join(' ');\n };\n\n const items = useMemo(() => {\n let lastToolCall: { tool: AiTool.Any | undefined; block: ContentBlock.ToolCall } | undefined;\n // TODO(burdon): Get from context?\n const tools: AiTool.Any[] = []; //processor.conversation.toolkit?.tools ?? [];\n return blocks\n .filter((block) => block._tag === 'toolCall' || block._tag === 'toolResult' || block._tag === 'summary')\n .map((block) => {\n switch (block._tag) {\n case 'toolCall': {\n if (block.pending && lastToolCall?.block.toolCallId === block.toolCallId) {\n return null;\n }\n\n const tool = tools.find((tool) => tool.name === block.name);\n lastToolCall = { tool, block };\n return {\n title: getToolCaption(lastToolCall?.tool),\n content: {\n ...block,\n input: safeParseJson(block.input),\n },\n };\n }\n\n case 'toolResult': {\n // TODO(burdon): Parse error type.\n if (block.error) {\n return {\n title: t('error label'),\n content: block,\n };\n }\n\n const title = getToolCaption(lastToolCall?.tool ?? t('tool result label'));\n lastToolCall = undefined;\n return {\n title,\n content: {\n ...block,\n result: safeParseJson(block.result),\n },\n };\n }\n\n case 'summary': {\n if (!lastToolCall) {\n return null;\n }\n\n return {\n title: t('summary label'),\n content: block,\n };\n }\n }\n })\n .filter(isNonNullable);\n }, [blocks]);\n\n if (!items.length) {\n return null;\n }\n\n return <ToolContainer items={items} />;\n};\n\nToolBlock.displayName = 'ToolBlock';\n\ntype ToolContainerParams = {\n items: { title: string; content: any }[];\n};\n\nexport const ToolContainer = ({ items }: ToolContainerParams) => {\n const tabsRef = useRef<HTMLDivElement>(null);\n const [selected, setSelected] = useState(0);\n const [open, setOpen] = useState(false);\n useEffect(() => {\n if (open) {\n tabsRef.current?.focus();\n }\n }, [open]);\n\n const handleSelect = (index: number) => {\n setSelected(index);\n };\n\n const data = items[selected]?.content;\n\n return (\n <ToggleContainer.Root classNames={chatMessagePanel} open={open} onChangeOpen={setOpen}>\n <ToggleContainer.Header classNames={chatMessagePanelHeader}>\n <TextCrawl key='status-roll' lines={items.map((item) => item.title)} />\n </ToggleContainer.Header>\n <ToggleContainer.Content classNames={['grid grid-cols-[32px_1fr]', chatMessagePanelContent]}>\n <NumericTabs ref={tabsRef} classNames='p-1' length={items.length} selected={selected} onSelect={handleSelect} />\n <Json\n data={data}\n classNames={chatMessageJson}\n replacer={{\n maxDepth: 3,\n maxArrayLen: 10,\n maxStringLen: 128,\n }}\n />\n </ToggleContainer.Content>\n </ToggleContainer.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { log } from '@dxos/log';\nimport { type MarkdownStreamController } from '@dxos/react-ui-components';\nimport { type XmlWidgetStateManager } from '@dxos/react-ui-editor';\nimport { type ContentBlock, type DataType } from '@dxos/schema';\n\n/**\n * Update document.\n */\nexport type TextModel = Pick<MarkdownStreamController, 'reset' | 'append' | 'updateWidget'>;\n\n/**\n * Thread context passed to renderer.\n */\nexport class MessageThreadContext implements Pick<MarkdownStreamController, 'updateWidget'> {\n constructor(private readonly _widgetState?: XmlWidgetStateManager) {}\n\n updateWidget<T>(id: string, value: T) {\n this._widgetState?.updateWidget(id, value);\n }\n}\n\n/**\n * Renders a block to markdown.\n */\nexport type BlockRenderer = (\n context: MessageThreadContext,\n message: DataType.Message,\n block: ContentBlock.Any,\n) => string | undefined;\n\n/**\n * Syncs messages with the editor.\n */\nexport class MessageSyncer {\n private _initialMessageId?: string;\n private _currentMessageIndex = 0;\n private _currentBlockIndex = 0;\n private _currentBlockContent?: string;\n\n private readonly _context: MessageThreadContext;\n\n constructor(\n private readonly _model: TextModel,\n private readonly _blockRenderer: BlockRenderer,\n ) {\n this._context = new MessageThreadContext(this._model);\n }\n\n get context() {\n return this._context;\n }\n\n reset() {\n log('reset');\n this._initialMessageId = undefined;\n this._currentMessageIndex = 0;\n this._currentBlockIndex = 0;\n this._currentBlockContent = undefined;\n void this._model.reset('');\n }\n\n sync(messages: DataType.Message[]) {\n log('sync', {\n messages: messages.map((m) => m.blocks.length),\n currentMessageIndex: this._currentMessageIndex,\n currentBlockIndex: this._currentBlockIndex,\n currentBlockContent: this._currentBlockContent,\n });\n if (this._initialMessageId !== messages[0]?.id) {\n this.reset();\n this._initialMessageId = messages[0]?.id;\n }\n\n let i = this._currentMessageIndex;\n for (const message of messages.slice(this._currentMessageIndex)) {\n if (i > this._currentMessageIndex) {\n this._currentBlockIndex = 0;\n }\n\n this._currentMessageIndex = i;\n let j = this._currentBlockIndex;\n for (const block of message.blocks.slice(this._currentBlockIndex)) {\n this._currentBlockIndex = j;\n const currentBlockContent = this._blockRenderer(this._context, message, block);\n if (currentBlockContent) {\n let content: string = '';\n if (this._currentBlockContent && currentBlockContent.startsWith(this._currentBlockContent)) {\n content = currentBlockContent.slice(this._currentBlockContent.length);\n } else {\n content = currentBlockContent;\n }\n\n void this._model.append(content);\n this._currentBlockContent = currentBlockContent;\n log('append', { message: i, block: j, content });\n }\n\n if (block.pending) {\n return;\n } else {\n this._currentBlockContent = undefined;\n this._currentBlockIndex++;\n }\n j++;\n }\n i++;\n }\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["useSignalEffect", "useCallback", "useMemo", "useState", "Capabilities", "useCapabilities", "Blueprint", "Filter", "Obj", "Ref", "isNonNullable", "useBlueprintRegistry", "blueprints", "useCapabilities", "Capabilities", "BlueprintDefinition", "useMemo", "Blueprint", "Registry", "useBlueprints", "blueprintRegistry", "query", "useActiveBlueprints", "context", "active", "setActive", "useState", "Map", "useSignalEffect", "refs", "value", "map", "ref", "target", "filter", "isNonNullable", "blueprint", "key", "useBlueprintHandlers", "space", "onUpdateBlueprint", "useCallback", "checked", "objects", "db", "Filter", "type", "run", "storedBlueprint", "find", "getByKey", "add", "Obj", "clone", "bind", "Ref", "make", "unbind", "RegistryContext", "useContext", "useMemo", "AiConversation", "log", "Schema", "ModelProviders", "ModelProvider", "Schema", "Literal", "createModelLabel", "model", "parts", "split", "length", "AiServicePresets", "provider", "map", "i", "id", "label", "Registry", "Rx", "Cause", "Effect", "Exit", "Fiber", "Option", "Runtime", "AiService", "DEFAULT_EDGE_MODEL", "AiSession", "ArtifactDiffResolver", "GenerationObserver", "createSystemPrompt", "Obj", "throwCause", "log", "DataType", "trim", "defaultOptions", "model", "AiChatProcessor", "context", "_conversation", "conversation", "blueprintRegistry", "_options", "request", "requestParam", "_fiber", "cancel", "_lastRequest", "_rx", "set", "error", "none", "active", "createRequest", "system", "prompt", "message", "observer", "_observer", "runtime", "_services", "pipe", "provide", "provideService", "_artifactDiffResolver", "asVoid", "tapErrorCause", "cause", "void", "runFork", "response", "join", "runPromiseExit", "isSuccess", "isInterruptedOnly", "undefined", "err", "some", "Error", "runPromise", "gen", "interrupt", "retry", "updateName", "chat", "history", "getHistory", "fiber", "session", "run", "tap", "messages", "find", "sender", "role", "title", "blocks", "b", "_tag", "text", "name", "_pending", "_streaming", "streaming", "_onMessage", "_onBlock", "make", "get", "isSome", "match", "onNone", "onSome", "resolve", "_artifacts", "versions", "Map", "fn", "update", "pending", "bind", "block", "map", "filter", "getOrElse", "Message", "created", "Date", "toISOString", "observableRegistry", "onBlock", "onMessage", "capabilities", "modelRegistry", "getCapabilities", "useChatProcessor", "chat", "preset", "services", "blueprintRegistry", "settings", "observableRegistry", "useContext", "RegistryContext", "conversation", "useMemo", "queue", "target", "AiConversation", "processor", "undefined", "log", "model", "AiChatProcessor", "Effect", "useMemo", "useCapability", "TracingService", "useClient", "lazy", "AiService", "lazy", "AppGraphBuilder", "AssistantState", "BlueprintDefinition", "EdgeModelResolver", "IntentResolver", "LocalModelResolver", "ReactSurface", "Settings", "Toolkit", "ComputeRuntime", "useChatServices", "space", "chat", "client", "useClient", "spaces", "default", "computeRuntimeResolver", "useCapability", "AssistantCapabilities", "ComputeRuntime", "useMemo", "runtime", "getRuntime", "id", "runPromise", "Effect", "gen", "pipe", "provide", "traceQueue", "target", "TracingService", "layerQueue", "layerNoop", "useMemo", "AiContextBinder", "useContextBinder", "chat", "binder", "useMemo", "queue", "target", "AiContextBinder", "useState", "useOnline", "online", "setOnline", "useState", "useCallback", "useEffect", "useMemo", "useState", "usePresets", "online", "preset", "setPreset", "useState", "presets", "useMemo", "AiServicePresets", "filter", "provider", "presetOptions", "map", "id", "model", "label", "useEffect", "handlePresetChange", "useCallback", "find", "onPresetChange", "useCallback", "Ref", "log", "isNonNullable", "useContextObjects", "space", "context", "objects", "value", "map", "ref", "target", "filter", "handleUpdateObject", "dxn", "checked", "id", "asEchoDXN", "object", "db", "getObjectById", "echoId", "warn", "fromDXN", "bind", "unbind", "onUpdateObject", "useMemo", "Obj", "useQueue", "AgentStatus", "Obj", "MESSAGE_PROPERTY_TOOL_CALL_ID", "LogLevel", "ContentBlock", "DataType", "isNotFalsy", "ExecutionGraph", "addEvents", "events", "event", "Obj", "instanceOf", "DataType", "Message", "messageCommits", "messageToCommit", "_commits", "push", "map", "c", "branch", "forEach", "_branchNames", "add", "AgentStatus", "getBranchName", "parentMessage", "toolCallId", "id", "message", "icon", "parents", "getToolCallId", "undefined", "getGraph", "lastRequest", "idx", "findLastIndex", "tags", "includes", "commits", "slice", "branches", "Array", "from", "_define_property", "Set", "blocks", "block", "getMessageBranch", "parent", "getParentId", "_tag", "text", "trim", "length", "getGenericBlockId", "sender", "role", "split", "level", "LogLevel", "INFO", "name", "getToolResultId", "error", "ERROR", "ContentBlock", "createSummaryMessage", "statusText", "reasoningText", "stringifyRef", "reference", "filter", "isNotFalsy", "messageId", "options", "properties", "MESSAGE_PROPERTY_TOOL_CALL_ID", "ref", "target", "stringifyObject", "dxn", "asEchoDXN", "echoId", "asQueueDXN", "objectId", "obj", "getLabel", "getTypename", "useExecutionGraph", "queueRef", "lastRequest", "queue", "useQueue", "dxn", "useMemo", "graph", "ExecutionGraph", "addEvents", "objects", "filter", "Obj", "isObject", "getGraph", "useCallback", "useRef", "useState", "Option", "useEffect", "useState", "ItemAnnotation", "useItemTypes", "space", "types", "setTypes", "useState", "useEffect", "db", "schemaRegistry", "query", "subscribe", "Array", "from", "Set", "graph", "schemas", "results", "filter", "type", "Option", "isSome", "ItemAnnotation", "get", "fire", "useMemo", "Capabilities", "useCapabilities", "Filter", "Obj", "useReferencesProvider", "space", "blueprints", "useCapabilities", "Capabilities", "BlueprintDefinition", "useMemo", "undefined", "getReferences", "query", "objects", "db", "Filter", "everything", "run", "filter", "object", "stringMatch", "Obj", "getLabel", "getDXN", "map", "uri", "toString", "label", "resolveReference", "ids", "first", "toLowerCase", "startsWith", "useCallback", "useCapability", "Prec", "keymap", "useRxValue", "createContext", "Array", "Option", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "Event", "Obj", "useVoiceInput", "getSpace", "useQueue", "useIdentity", "Input", "useDynamicRef", "useTranslation", "ChatEditor", "references", "mx", "DataType", "isNotFalsy", "React", "IconButton", "useTranslation", "mx", "ChatActions", "classNames", "children", "microphone", "recording", "processing", "onEvent", "t", "useTranslation", "meta", "id", "div", "className", "mx", "IconButton", "disabled", "variant", "size", "icon", "iconOnly", "label", "onClick", "type", "noTooltip", "onMouseDown", "onMouseUp", "onTouchStart", "onTouchEnd", "React", "useMemo", "useState", "Filter", "Obj", "Type", "useQuery", "Icon", "IconButton", "Popover", "Select", "useTranslation", "SearchList", "Tabs", "panelClassNames", "ChatOptions", "space", "context", "blueprintRegistry", "presets", "preset", "onPresetChange", "t", "useTranslation", "meta", "id", "React", "div", "role", "className", "Popover", "Root", "Trigger", "asChild", "IconButton", "variant", "icon", "iconOnly", "size", "label", "Portal", "Content", "side", "classNames", "ObjectsPanel", "Arrow", "Tabs", "orientation", "defaultValue", "defaultActivePart", "Viewport", "Tabpanel", "value", "BlueprintsPanel", "ModelsPanel", "Tablist", "IconTab", "blueprints", "useBlueprints", "activeBlueprints", "useActiveBlueprints", "onUpdateBlueprint", "useBlueprintHandlers", "SearchList", "map", "blueprint", "isActive", "has", "key", "Item", "name", "onSelect", "Icon", "Input", "placeholder", "ul", "li", "aria-selected", "tabIndex", "onClick", "ANY", "types", "useItemTypes", "typenames", "useMemo", "type", "typename", "Type", "getTypename", "ns", "sort", "a", "b", "localeCompare", "setTypename", "useState", "anyFilter", "Filter", "or", "objects", "useQuery", "contextObjects", "onUpdateObject", "useContextObjects", "length", "object", "Obj", "getLabel", "findIndex", "obj", "getDXN", "Select", "undefined", "onValueChange", "TriggerButton", "density", "ScrollUpButton", "Option", "ScrollDownButton", "React", "Select", "React", "Obj", "IconButton", "toLocalizedString", "useTranslation", "mx", "ChatReferences", "classNames", "context", "space", "t", "useTranslation", "meta", "id", "objects", "onUpdateObject", "useContextObjects", "React", "ul", "className", "mx", "map", "obj", "dxn", "Obj", "getDXN", "typename", "getTypename", "label", "getLabel", "ns", "li", "key", "toString", "data-hue", "toLocalizedString", "IconButton", "iconOnly", "variant", "size", "icon", "onClick", "React", "useEffect", "useState", "Tooltip", "useTimeout", "Spinner", "mx", "period", "ChatStatusIndicator", "classNames", "preset", "processing", "error", "props", "init", "setInit", "useState", "useEffect", "useTimeout", "React", "div", "role", "className", "mx", "Spinner", "duration", "state", "Tooltip", "Trigger", "asChild", "content", "message", "React", "forwardRef", "useCallback", "useEffect", "useImperativeHandle", "useMemo", "useState", "PublicKey", "MarkdownStream", "mx", "keyToFallback", "React", "log", "PromptWidget", "ReferenceWidget", "SelectWidget", "SuggestionWidget", "SummaryWidget", "ToggleContainer", "Json", "ContentBlock", "React", "useEffect", "useMemo", "useRef", "useState", "useTranslation", "NumericTabs", "TextCrawl", "ToggleContainer", "chatMessageJson", "chatMessagePanel", "chatMessagePanelContent", "chatMessagePanelHeader", "Json", "isNonNullable", "safeParseJson", "ToolBlock", "blocks", "t", "useTranslation", "meta", "id", "getToolCaption", "tool", "status", "message", "description", "name", "join", "items", "useMemo", "lastToolCall", "tools", "filter", "block", "_tag", "map", "pending", "toolCallId", "find", "title", "content", "input", "safeParseJson", "error", "undefined", "result", "isNonNullable", "length", "React", "ToolContainer", "displayName", "tabsRef", "useRef", "selected", "setSelected", "useState", "open", "setOpen", "useEffect", "current", "focus", "handleSelect", "index", "data", "ToggleContainer", "Root", "classNames", "chatMessagePanel", "onChangeOpen", "Header", "chatMessagePanelHeader", "TextCrawl", "key", "lines", "item", "Content", "chatMessagePanelContent", "NumericTabs", "ref", "onSelect", "Json", "chatMessageJson", "replacer", "maxDepth", "maxArrayLen", "maxStringLen", "Fallback", "_tag", "props", "React", "ToggleContainer", "Root", "classNames", "Header", "Content", "Json", "data", "getTextChild", "children", "child", "componentRegistry", "block", "factory", "text", "PromptWidget", "ref", "ReferenceWidget", "options", "map", "option", "filter", "Boolean", "length", "SelectWidget", "SuggestionWidget", "SummaryWidget", "Component", "ToolBlock", "blockToMarkdown", "context", "message", "str", "_blockToMarkdown", "pending", "log", "JSON", "stringify", "sender", "role", "trim", "join", "reference", "dxn", "toString", "updateWidget", "toolCallId", "blocks", "ContentBlock", "createSummaryMessage", "id", "log", "MessageThreadContext", "updateWidget", "id", "value", "_widgetState", "MessageSyncer", "context", "_context", "reset", "_initialMessageId", "undefined", "_currentMessageIndex", "_currentBlockIndex", "_currentBlockContent", "_model", "sync", "messages", "map", "m", "blocks", "length", "currentMessageIndex", "currentBlockIndex", "currentBlockContent", "i", "message", "slice", "j", "block", "_blockRenderer", "content", "startsWith", "append", "pending", "_define_property", "ChatThread", "forwardRef", "classNames", "identity", "messages", "error", "cursor", "fadeIn", "onEvent", "forwardedRef", "userHue", "useMemo", "profile", "data", "hue", "keyToFallback", "identityKey", "PublicKey", "random", "controller", "setController", "useState", "useImperativeHandle", "useEffect", "scrollToBottom", "syncer", "MessageSyncer", "blockToMarkdown", "sync", "handleEvent", "useCallback", "ev", "type", "value", "text", "React", "div", "className", "mx", "style", "MarkdownStream", "ref", "registry", "componentRegistry", "ChatContextProvider", "useChatContext", "createContext", "ChatRoot", "classNames", "children", "chat", "processor", "onEvent", "props", "debug", "setDebug", "useState", "space", "getSpace", "queue", "useQueue", "dxn", "pending", "useRxValue", "messages", "streaming", "lastPrompt", "useRef", "undefined", "useMemo", "queueMessages", "objects", "filter", "Obj", "instanceOf", "DataType", "Message", "Array", "dedupeWith", "a", "b", "id", "event", "Event", "useEffect", "on", "ev", "type", "current", "text", "trim", "length", "request", "message", "retry", "cancel", "emit", "React", "div", "role", "className", "mx", "displayName", "ChatPrompt", "outline", "placeholder", "expandable", "online", "presets", "preset", "onPresetChange", "onOnlineChange", "t", "useTranslation", "meta", "error", "pipe", "Option", "getOrUndefined", "active", "activeRef", "useDynamicRef", "editorRef", "recordingState", "setRecordingState", "getText", "setText", "focus", "recording", "useVoiceInput", "onUpdate", "referencesProvider", "useReferencesProvider", "extensions", "references", "provider", "Prec", "highest", "keymap", "of", "key", "preventDefault", "run", "isNotFalsy", "handleSubmit", "useCallback", "handleEvent", "ChatStatusIndicator", "processing", "ChatEditor", "ref", "autoFocus", "lineWrapping", "onSubmit", "ChatOptions", "blueprintRegistry", "context", "ChatReferences", "ChatActions", "microphone", "Input", "Root", "Switch", "checked", "onCheckedChange", "ChatThread", "identity", "useIdentity", "scrollerRef", "scrollToBottom", "NaturalChatThread", "Chat", "Prompt", "Thread"]
7
- }