@dxos/plugin-assistant 0.8.4-main.abd8ff62ef → 0.8.4-main.bc2380dfbc

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 (414) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/AgentArticle-5XDDEXMP.mjs +169 -0
  4. package/dist/lib/neutral/AgentArticle-5XDDEXMP.mjs.map +7 -0
  5. package/dist/lib/neutral/AgentProperties-CNH4JMDZ.mjs +100 -0
  6. package/dist/lib/neutral/AgentProperties-CNH4JMDZ.mjs.map +7 -0
  7. package/dist/lib/neutral/AssistantPlugin.mjs +10 -0
  8. package/dist/lib/neutral/AssistantPlugin.node.mjs +46 -0
  9. package/dist/lib/neutral/AssistantPlugin.node.mjs.map +7 -0
  10. package/dist/lib/neutral/AssistantPlugin.workerd.mjs +40 -0
  11. package/dist/lib/neutral/AssistantPlugin.workerd.mjs.map +7 -0
  12. package/dist/lib/neutral/BlueprintArticle-U7LUBFOS.mjs +27 -0
  13. package/dist/lib/neutral/BlueprintArticle-U7LUBFOS.mjs.map +7 -0
  14. package/dist/lib/neutral/ChatArticle-WVAFZPVI.mjs +8 -0
  15. package/dist/lib/neutral/ChatCompanion-DFRMRUK3.mjs +133 -0
  16. package/dist/lib/neutral/ChatCompanion-DFRMRUK3.mjs.map +7 -0
  17. package/dist/lib/neutral/ChatDialog-QKZLG7SQ.mjs +72 -0
  18. package/dist/lib/neutral/ChatDialog-QKZLG7SQ.mjs.map +7 -0
  19. package/dist/lib/neutral/PlanArticle-TS5ULWYS.mjs +28 -0
  20. package/dist/lib/neutral/PlanArticle-TS5ULWYS.mjs.map +7 -0
  21. package/dist/lib/neutral/RoutineArticle-H7ECM7AH.mjs +116 -0
  22. package/dist/lib/neutral/RoutineArticle-H7ECM7AH.mjs.map +7 -0
  23. package/dist/lib/neutral/RoutineList-CLDXGQUD.mjs +48 -0
  24. package/dist/lib/neutral/RoutineList-CLDXGQUD.mjs.map +7 -0
  25. package/dist/lib/neutral/TracePanel-C77SPEIS.mjs +672 -0
  26. package/dist/lib/neutral/TracePanel-C77SPEIS.mjs.map +7 -0
  27. package/dist/lib/neutral/TriggerStatus-WTFYUIG5.mjs +92 -0
  28. package/dist/lib/neutral/TriggerStatus-WTFYUIG5.mjs.map +7 -0
  29. package/dist/lib/neutral/ai-service-GJXMI5OI.mjs +22 -0
  30. package/dist/lib/neutral/ai-service-GJXMI5OI.mjs.map +7 -0
  31. package/dist/lib/neutral/app-graph-builder-5QBICPYP.mjs +200 -0
  32. package/dist/lib/neutral/app-graph-builder-5QBICPYP.mjs.map +7 -0
  33. package/dist/lib/neutral/blueprint-definition-VXJYQ5AE.mjs +32 -0
  34. package/dist/lib/neutral/blueprint-definition-VXJYQ5AE.mjs.map +7 -0
  35. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  36. package/dist/lib/neutral/capabilities/index.mjs +35 -0
  37. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-3FIV362Z.mjs +8 -0
  39. package/dist/lib/neutral/chunk-3FIV362Z.mjs.map +7 -0
  40. package/dist/lib/neutral/chunk-4CQZCMRP.mjs +25 -0
  41. package/dist/lib/neutral/chunk-4CQZCMRP.mjs.map +7 -0
  42. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-5H6UJHLF.mjs} +4 -5
  43. package/dist/lib/neutral/chunk-5H6UJHLF.mjs.map +7 -0
  44. package/dist/lib/neutral/chunk-ITJX2YZZ.mjs +98 -0
  45. package/dist/lib/neutral/chunk-ITJX2YZZ.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-IZQWGJNG.mjs +380 -0
  47. package/dist/lib/neutral/chunk-IZQWGJNG.mjs.map +7 -0
  48. package/dist/lib/neutral/chunk-SLIPV6NN.mjs +106 -0
  49. package/dist/lib/neutral/chunk-SLIPV6NN.mjs.map +7 -0
  50. package/dist/lib/neutral/companion-chat-provisioner-2Y6PRSDK.mjs +116 -0
  51. package/dist/lib/neutral/companion-chat-provisioner-2Y6PRSDK.mjs.map +7 -0
  52. package/dist/lib/{browser/chunk-VK53MITK.mjs → neutral/components/index.mjs} +139 -141
  53. package/dist/lib/neutral/components/index.mjs.map +7 -0
  54. package/dist/lib/neutral/containers/index.mjs +29 -0
  55. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  56. package/dist/lib/{browser/create-chat-E2ZLVTLP.mjs → neutral/create-chat-QQZURUBW.mjs} +10 -12
  57. package/dist/lib/neutral/create-chat-QQZURUBW.mjs.map +7 -0
  58. package/dist/lib/neutral/create-object-UZCJCPWM.mjs +93 -0
  59. package/dist/lib/neutral/create-object-UZCJCPWM.mjs.map +7 -0
  60. package/dist/lib/neutral/edge-model-resolver-XDNBZ3US.mjs +21 -0
  61. package/dist/lib/neutral/edge-model-resolver-XDNBZ3US.mjs.map +7 -0
  62. package/dist/lib/{browser/ensure-companion-chat-7GDMXSQW.mjs → neutral/ensure-companion-chat-5S4LZM2H.mjs} +9 -16
  63. package/dist/lib/neutral/ensure-companion-chat-5S4LZM2H.mjs.map +7 -0
  64. package/dist/lib/{browser/chunk-M55MBYG7.mjs → neutral/hooks/index.mjs} +106 -111
  65. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  66. package/dist/lib/neutral/index.mjs +32 -0
  67. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs +24 -0
  68. package/dist/lib/neutral/local-model-resolver-I2BENFFS.mjs.map +7 -0
  69. package/dist/lib/neutral/markdown-KTBFOMFM.mjs +110 -0
  70. package/dist/lib/neutral/markdown-KTBFOMFM.mjs.map +7 -0
  71. package/dist/lib/neutral/meta.json +1 -0
  72. package/dist/lib/neutral/meta.mjs +12 -0
  73. package/dist/lib/neutral/migrations-7DEMVBOG.mjs +28 -0
  74. package/dist/lib/neutral/migrations-7DEMVBOG.mjs.map +7 -0
  75. package/dist/lib/{browser/on-create-space-4J3KTNAJ.mjs → neutral/on-create-space-Q2R7OSP6.mjs} +4 -7
  76. package/dist/lib/neutral/on-create-space-Q2R7OSP6.mjs.map +7 -0
  77. package/dist/lib/neutral/operation-handler-SF36MOB5.mjs +13 -0
  78. package/dist/lib/neutral/operation-handler-SF36MOB5.mjs.map +7 -0
  79. package/dist/lib/neutral/operations/index.mjs +8 -0
  80. package/dist/lib/neutral/plugin.mjs +16 -0
  81. package/dist/lib/neutral/plugin.mjs.map +7 -0
  82. package/dist/lib/neutral/react-surface-T4R65UJU.mjs +174 -0
  83. package/dist/lib/neutral/react-surface-T4R65UJU.mjs.map +7 -0
  84. package/dist/lib/{browser/resolve-navigation-targets-3ZPQE6SZ.mjs → neutral/resolve-navigation-targets-VXBSWV5L.mjs} +3 -5
  85. package/dist/lib/neutral/resolve-navigation-targets-VXBSWV5L.mjs.map +7 -0
  86. package/dist/lib/{browser/run-prompt-in-new-chat-AA3KPBDN.mjs → neutral/run-prompt-in-new-chat-VJXXZ6SI.mjs} +16 -19
  87. package/dist/lib/neutral/run-prompt-in-new-chat-VJXXZ6SI.mjs.map +7 -0
  88. package/dist/lib/{browser/set-current-chat-P4VHI3YF.mjs → neutral/set-current-chat-ZFDCYK5I.mjs} +4 -10
  89. package/dist/lib/neutral/set-current-chat-ZFDCYK5I.mjs.map +7 -0
  90. package/dist/lib/neutral/settings-W4BLWQ53.mjs +28 -0
  91. package/dist/lib/neutral/settings-W4BLWQ53.mjs.map +7 -0
  92. package/dist/lib/neutral/state-H3G7QCU6.mjs +28 -0
  93. package/dist/lib/neutral/state-H3G7QCU6.mjs.map +7 -0
  94. package/dist/lib/neutral/testing.mjs +8 -0
  95. package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs +21 -0
  96. package/dist/lib/neutral/toggle-trace-panel-debug-JGTB6KVJ.mjs.map +7 -0
  97. package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs +14 -0
  98. package/dist/lib/neutral/toolkit-GVWXPDLJ.mjs.map +7 -0
  99. package/dist/lib/{browser → neutral}/translations.mjs +5 -2
  100. package/dist/lib/neutral/translations.mjs.map +7 -0
  101. package/dist/lib/neutral/types/index.mjs +20 -0
  102. package/dist/lib/neutral/types/index.mjs.map +7 -0
  103. package/dist/lib/{browser/update-chat-name-VWKNUON7.mjs → neutral/update-chat-name-ENXRUMDJ.mjs} +3 -5
  104. package/dist/lib/neutral/update-chat-name-ENXRUMDJ.mjs.map +7 -0
  105. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  106. package/dist/types/src/AssistantPlugin.node.d.ts.map +1 -1
  107. package/dist/types/src/AssistantPlugin.workerd.d.ts +4 -0
  108. package/dist/types/src/AssistantPlugin.workerd.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/create-object.d.ts +31 -0
  111. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  112. package/dist/types/src/capabilities/index.d.ts +27 -1
  113. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/markdown.d.ts +1 -1
  115. package/dist/types/src/capabilities/migrations.d.ts +2 -1
  116. package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
  117. package/dist/types/src/components/Chat/Chat.d.ts +11 -5
  118. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  119. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +2 -2
  120. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  121. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +2 -2
  122. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  123. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +2 -3
  124. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  126. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts +2 -15
  127. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts.map +1 -1
  128. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts.map +1 -1
  129. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
  130. package/dist/types/src/components/TaskList/TaskList.d.ts +10 -0
  131. package/dist/types/src/components/TaskList/TaskList.d.ts.map +1 -0
  132. package/dist/types/src/components/TaskList/TaskList.stories.d.ts +16 -0
  133. package/dist/types/src/components/TaskList/TaskList.stories.d.ts.map +1 -0
  134. package/dist/types/src/components/TaskList/index.d.ts +2 -0
  135. package/dist/types/src/components/TaskList/index.d.ts.map +1 -0
  136. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +1 -2
  137. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  138. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +1 -1
  139. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  140. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  141. package/dist/types/src/components/index.d.ts +1 -0
  142. package/dist/types/src/components/index.d.ts.map +1 -1
  143. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -1
  144. package/dist/types/src/containers/{ChatContainer/ChatContainer.d.ts → ChatArticle/ChatArticle.d.ts} +3 -3
  145. package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -0
  146. package/dist/types/src/containers/ChatArticle/index.d.ts +2 -0
  147. package/dist/types/src/containers/ChatArticle/index.d.ts.map +1 -0
  148. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -1
  149. package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts +6 -0
  150. package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts.map +1 -0
  151. package/dist/types/src/containers/PlanArticle/index.d.ts +2 -0
  152. package/dist/types/src/containers/PlanArticle/index.d.ts.map +1 -0
  153. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts.map +1 -1
  154. package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts +15 -0
  155. package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts.map +1 -0
  156. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -1
  157. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -1
  158. package/dist/types/src/containers/TracePanel/execution-graph.d.ts +11 -2
  159. package/dist/types/src/containers/TracePanel/execution-graph.d.ts.map +1 -1
  160. package/dist/types/src/containers/TracePanel/span-tree.d.ts +73 -0
  161. package/dist/types/src/containers/TracePanel/span-tree.d.ts.map +1 -0
  162. package/dist/types/src/containers/TracePanel/span-tree.test.d.ts +2 -0
  163. package/dist/types/src/containers/TracePanel/span-tree.test.d.ts.map +1 -0
  164. package/dist/types/src/containers/index.d.ts +4 -3
  165. package/dist/types/src/containers/index.d.ts.map +1 -1
  166. package/dist/types/src/feed-logger.d.ts +13 -0
  167. package/dist/types/src/feed-logger.d.ts.map +1 -0
  168. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +3 -3
  169. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  170. package/dist/types/src/hooks/useChatProcessor.d.ts +1 -1
  171. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  172. package/dist/types/src/hooks/useChatServices.d.ts +1 -1
  173. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  174. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -1
  175. package/dist/types/src/hooks/useContextBinder.d.ts +2 -2
  176. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  177. package/dist/types/src/hooks/useContextObjects.d.ts +2 -2
  178. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  179. package/dist/types/src/index.d.ts +2 -4
  180. package/dist/types/src/index.d.ts.map +1 -1
  181. package/dist/types/src/operations/create-chat.d.ts +2 -2
  182. package/dist/types/src/operations/create-chat.d.ts.map +1 -1
  183. package/dist/types/src/operations/ensure-companion-chat.d.ts +2 -2
  184. package/dist/types/src/operations/ensure-companion-chat.d.ts.map +1 -1
  185. package/dist/types/src/operations/index.d.ts +0 -1
  186. package/dist/types/src/operations/index.d.ts.map +1 -1
  187. package/dist/types/src/operations/on-create-space.d.ts +2 -2
  188. package/dist/types/src/operations/on-create-space.d.ts.map +1 -1
  189. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +2 -2
  190. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -1
  191. package/dist/types/src/operations/set-current-chat.d.ts +2 -2
  192. package/dist/types/src/operations/set-current-chat.d.ts.map +1 -1
  193. package/dist/types/src/operations/toggle-trace-panel-debug.d.ts +5 -0
  194. package/dist/types/src/operations/toggle-trace-panel-debug.d.ts.map +1 -0
  195. package/dist/types/src/operations/update-chat-name.d.ts +2 -2
  196. package/dist/types/src/operations/update-chat-name.d.ts.map +1 -1
  197. package/dist/types/src/plugin.d.ts +4 -0
  198. package/dist/types/src/plugin.d.ts.map +1 -0
  199. package/dist/types/src/processor/processor.d.ts +11 -11
  200. package/dist/types/src/processor/processor.d.ts.map +1 -1
  201. package/dist/types/src/testing/test-generator.d.ts +2 -3
  202. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  203. package/dist/types/src/testing/test-sequence.d.ts +3 -3
  204. package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
  205. package/dist/types/src/testing.d.ts +2 -0
  206. package/dist/types/src/testing.d.ts.map +1 -0
  207. package/dist/types/src/translations.d.ts.map +1 -1
  208. package/dist/types/src/types/Assistant.d.ts +1 -0
  209. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  210. package/dist/types/src/types/AssistantCapabilities.d.ts +30 -0
  211. package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -0
  212. package/dist/types/src/types/AssistantEvents.d.ts +3 -0
  213. package/dist/types/src/types/AssistantEvents.d.ts.map +1 -0
  214. package/dist/types/src/{operations/definitions.d.ts → types/AssistantOperation.d.ts} +10 -6
  215. package/dist/types/src/types/AssistantOperation.d.ts.map +1 -0
  216. package/dist/types/src/types/Settings.d.ts +1 -0
  217. package/dist/types/src/types/Settings.d.ts.map +1 -1
  218. package/dist/types/src/types/index.d.ts +3 -2
  219. package/dist/types/src/types/index.d.ts.map +1 -1
  220. package/dist/types/src/util/suggestions.d.ts +9 -0
  221. package/dist/types/src/util/suggestions.d.ts.map +1 -0
  222. package/dist/types/src/util/suggestions.test.d.ts +2 -0
  223. package/dist/types/src/util/suggestions.test.d.ts.map +1 -0
  224. package/dist/types/tsconfig.tsbuildinfo +1 -1
  225. package/package.json +152 -128
  226. package/src/AssistantPlugin.node.ts +7 -88
  227. package/src/AssistantPlugin.test.ts +3 -3
  228. package/src/AssistantPlugin.ts +126 -0
  229. package/src/AssistantPlugin.workerd.ts +41 -0
  230. package/src/blueprints/assistant/blueprint.ts +1 -1
  231. package/src/capabilities/app-graph-builder.ts +48 -9
  232. package/src/capabilities/companion-chat-provisioner.ts +4 -5
  233. package/src/capabilities/create-object.ts +107 -0
  234. package/src/capabilities/index.ts +1 -0
  235. package/src/capabilities/markdown.ts +2 -2
  236. package/src/capabilities/migrations.ts +3 -3
  237. package/src/capabilities/react-surface.tsx +15 -7
  238. package/src/components/Chat/Chat.tsx +35 -5
  239. package/src/components/ChatPrompt/ChatMcpErrors.tsx +1 -1
  240. package/src/components/ChatPrompt/ChatOptions.stories.tsx +4 -4
  241. package/src/components/ChatPrompt/ChatOptions.tsx +12 -11
  242. package/src/components/ChatPrompt/ChatPrompt.tsx +3 -3
  243. package/src/components/ChatPrompt/ChatReferences.tsx +3 -3
  244. package/src/components/ChatPrompt/ChatStatus.tsx +1 -1
  245. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +1 -1
  246. package/src/components/ChatThread/Anchor.stories.tsx +3 -3
  247. package/src/components/ChatThread/ChatThread.stories.tsx +25 -29
  248. package/src/components/ChatThread/ChatThread.tsx +1 -1
  249. package/src/components/ChatThread/registry.tsx +8 -4
  250. package/src/components/ChatThread/sync.test.ts +4 -6
  251. package/src/components/ChatThread/widgets/ReasoningWidget.ts +2 -2
  252. package/src/components/ChatThread/widgets/StatusWidget.ts +3 -83
  253. package/src/components/ChatThread/widgets/SummaryWidget.tsx +1 -3
  254. package/src/components/ProcessTree/ProcessTree.tsx +2 -1
  255. package/src/components/TaskList/TaskList.stories.tsx +44 -0
  256. package/src/components/TaskList/TaskList.tsx +45 -0
  257. package/src/{cli → components/TaskList}/index.ts +1 -1
  258. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +1 -1
  259. package/src/components/TemplateEditor/TemplateForm.stories.tsx +2 -6
  260. package/src/components/TemplateEditor/TemplateForm.tsx +48 -69
  261. package/src/components/Toolbox/Toolbox.stories.tsx +4 -4
  262. package/src/components/Toolbox/Toolbox.tsx +2 -2
  263. package/src/components/index.ts +1 -0
  264. package/src/containers/AgentArticle/AgentArticle.stories.tsx +7 -7
  265. package/src/containers/AgentArticle/AgentArticle.tsx +11 -7
  266. package/src/containers/AgentProperties/AgentProperties.stories.tsx +4 -4
  267. package/src/containers/AgentProperties/AgentProperties.tsx +4 -4
  268. package/src/containers/{ChatContainer/ChatContainer.tsx → ChatArticle/ChatArticle.tsx} +11 -9
  269. package/src/containers/ChatArticle/index.ts +5 -0
  270. package/src/containers/ChatCompanion/ChatCompanion.tsx +20 -29
  271. package/src/containers/PlanArticle/PlanArticle.tsx +33 -0
  272. package/src/containers/PlanArticle/index.ts +5 -0
  273. package/src/containers/RoutineArticle/RoutineArticle.stories.tsx +75 -0
  274. package/src/containers/RoutineArticle/RoutineArticle.tsx +74 -24
  275. package/src/containers/RoutineList/RoutineList.stories.tsx +3 -3
  276. package/src/containers/RoutineList/RoutineList.tsx +3 -3
  277. package/src/containers/TracePanel/TracePanel.stories.tsx +33 -26
  278. package/src/containers/TracePanel/TracePanel.tsx +72 -33
  279. package/src/containers/TracePanel/dxn-extractor.ts +7 -7
  280. package/src/containers/TracePanel/execution-graph.test.ts +218 -213
  281. package/src/containers/TracePanel/execution-graph.ts +316 -271
  282. package/src/containers/TracePanel/span-tree.test.ts +166 -0
  283. package/src/containers/TracePanel/span-tree.ts +214 -0
  284. package/src/containers/index.ts +4 -3
  285. package/src/{queue-logger.ts → feed-logger.ts} +37 -27
  286. package/src/hooks/useBlueprintRegistry.ts +12 -6
  287. package/src/hooks/useChatProcessor.ts +3 -3
  288. package/src/hooks/useChatServices.ts +1 -1
  289. package/src/hooks/useChatToolbarActions.ts +86 -88
  290. package/src/hooks/useContextBinder.ts +4 -4
  291. package/src/hooks/useContextObjects.ts +2 -2
  292. package/src/index.ts +2 -9
  293. package/src/operations/create-chat.ts +16 -11
  294. package/src/operations/ensure-companion-chat.ts +47 -45
  295. package/src/operations/index.ts +1 -2
  296. package/src/operations/on-create-space.ts +3 -3
  297. package/src/operations/prompt.test.ts +5 -5
  298. package/src/operations/resolve-navigation-targets.ts +2 -2
  299. package/src/operations/run-prompt-in-new-chat.ts +85 -84
  300. package/src/operations/set-current-chat.ts +3 -4
  301. package/src/operations/toggle-trace-panel-debug.ts +27 -0
  302. package/src/operations/update-chat-name.ts +2 -2
  303. package/src/plugin.ts +11 -0
  304. package/src/processor/processor.test.ts +1 -1
  305. package/src/processor/processor.ts +15 -15
  306. package/src/testing/test-generator.test.ts +41 -52
  307. package/src/testing/test-generator.ts +174 -189
  308. package/src/testing/test-sequence.ts +3 -3
  309. package/src/testing/trace-timeline.conversations.json +1 -1
  310. package/src/testing/trace-timeline.test.ts +3 -5
  311. package/src/testing.ts +7 -0
  312. package/src/translations.ts +5 -2
  313. package/src/types/Assistant.ts +2 -1
  314. package/src/types/AssistantCapabilities.ts +35 -0
  315. package/src/types/AssistantEvents.ts +11 -0
  316. package/src/{operations/definitions.ts → types/AssistantOperation.ts} +15 -0
  317. package/src/types/Settings.ts +6 -0
  318. package/src/types/index.ts +5 -2
  319. package/src/util/suggestions.test.ts +52 -0
  320. package/src/util/suggestions.ts +42 -0
  321. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  322. package/dist/lib/browser/chunk-DVOOFAWU.mjs +0 -175
  323. package/dist/lib/browser/chunk-DVOOFAWU.mjs.map +0 -7
  324. package/dist/lib/browser/chunk-M55MBYG7.mjs.map +0 -7
  325. package/dist/lib/browser/chunk-SEMCG4ZK.mjs +0 -195
  326. package/dist/lib/browser/chunk-SEMCG4ZK.mjs.map +0 -7
  327. package/dist/lib/browser/chunk-VK53MITK.mjs.map +0 -7
  328. package/dist/lib/browser/cli/index.mjs +0 -73
  329. package/dist/lib/browser/cli/index.mjs.map +0 -7
  330. package/dist/lib/browser/components/index.mjs +0 -20
  331. package/dist/lib/browser/create-chat-E2ZLVTLP.mjs.map +0 -7
  332. package/dist/lib/browser/ensure-companion-chat-7GDMXSQW.mjs.map +0 -7
  333. package/dist/lib/browser/hooks/index.mjs +0 -39
  334. package/dist/lib/browser/index.mjs +0 -84
  335. package/dist/lib/browser/index.mjs.map +0 -7
  336. package/dist/lib/browser/meta.json +0 -1
  337. package/dist/lib/browser/on-create-space-4J3KTNAJ.mjs.map +0 -7
  338. package/dist/lib/browser/operations/index.mjs +0 -13
  339. package/dist/lib/browser/operations/index.mjs.map +0 -7
  340. package/dist/lib/browser/resolve-navigation-targets-3ZPQE6SZ.mjs.map +0 -7
  341. package/dist/lib/browser/run-prompt-in-new-chat-AA3KPBDN.mjs.map +0 -7
  342. package/dist/lib/browser/set-current-chat-P4VHI3YF.mjs.map +0 -7
  343. package/dist/lib/browser/translations.mjs.map +0 -7
  344. package/dist/lib/browser/types/index.mjs +0 -18
  345. package/dist/lib/browser/update-chat-name-VWKNUON7.mjs.map +0 -7
  346. package/dist/lib/node-esm/AssistantSettings-23A5IMHS.mjs +0 -41
  347. package/dist/lib/node-esm/AssistantSettings-23A5IMHS.mjs.map +0 -7
  348. package/dist/lib/node-esm/blueprints/index.mjs +0 -32
  349. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  350. package/dist/lib/node-esm/chunk-FWC3ZGPH.mjs +0 -933
  351. package/dist/lib/node-esm/chunk-FWC3ZGPH.mjs.map +0 -7
  352. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  353. package/dist/lib/node-esm/chunk-JKEB3NFZ.mjs +0 -2302
  354. package/dist/lib/node-esm/chunk-JKEB3NFZ.mjs.map +0 -7
  355. package/dist/lib/node-esm/chunk-MBDVPB4V.mjs +0 -176
  356. package/dist/lib/node-esm/chunk-MBDVPB4V.mjs.map +0 -7
  357. package/dist/lib/node-esm/chunk-XAFVSEUJ.mjs +0 -196
  358. package/dist/lib/node-esm/chunk-XAFVSEUJ.mjs.map +0 -7
  359. package/dist/lib/node-esm/cli/index.mjs +0 -74
  360. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  361. package/dist/lib/node-esm/components/index.mjs +0 -21
  362. package/dist/lib/node-esm/create-chat-UQQ3542N.mjs +0 -74
  363. package/dist/lib/node-esm/create-chat-UQQ3542N.mjs.map +0 -7
  364. package/dist/lib/node-esm/ensure-companion-chat-LVCPD4DJ.mjs +0 -66
  365. package/dist/lib/node-esm/ensure-companion-chat-LVCPD4DJ.mjs.map +0 -7
  366. package/dist/lib/node-esm/hooks/index.mjs +0 -40
  367. package/dist/lib/node-esm/index.mjs +0 -85
  368. package/dist/lib/node-esm/index.mjs.map +0 -7
  369. package/dist/lib/node-esm/meta.json +0 -1
  370. package/dist/lib/node-esm/on-create-space-M63UBTTT.mjs +0 -23
  371. package/dist/lib/node-esm/on-create-space-M63UBTTT.mjs.map +0 -7
  372. package/dist/lib/node-esm/operations/index.mjs +0 -14
  373. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  374. package/dist/lib/node-esm/resolve-navigation-targets-HO77CAFT.mjs +0 -23
  375. package/dist/lib/node-esm/resolve-navigation-targets-HO77CAFT.mjs.map +0 -7
  376. package/dist/lib/node-esm/run-prompt-in-new-chat-RIRYYYPK.mjs +0 -107
  377. package/dist/lib/node-esm/run-prompt-in-new-chat-RIRYYYPK.mjs.map +0 -7
  378. package/dist/lib/node-esm/set-current-chat-Z7GJ52VX.mjs +0 -55
  379. package/dist/lib/node-esm/set-current-chat-Z7GJ52VX.mjs.map +0 -7
  380. package/dist/lib/node-esm/translations.mjs +0 -173
  381. package/dist/lib/node-esm/translations.mjs.map +0 -7
  382. package/dist/lib/node-esm/types/index.mjs +0 -19
  383. package/dist/lib/node-esm/update-chat-name-GV4HX32Z.mjs +0 -57
  384. package/dist/lib/node-esm/update-chat-name-GV4HX32Z.mjs.map +0 -7
  385. package/dist/types/src/cli/index.d.ts +0 -2
  386. package/dist/types/src/cli/index.d.ts.map +0 -1
  387. package/dist/types/src/cli/plugin.d.ts +0 -10
  388. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  389. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +0 -1
  390. package/dist/types/src/containers/ChatContainer/index.d.ts +0 -2
  391. package/dist/types/src/containers/ChatContainer/index.d.ts.map +0 -1
  392. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  393. package/dist/types/src/queue-logger.d.ts +0 -11
  394. package/dist/types/src/queue-logger.d.ts.map +0 -1
  395. package/dist/types/src/types/capabilities.d.ts +0 -32
  396. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  397. package/dist/types/src/types/events.d.ts +0 -5
  398. package/dist/types/src/types/events.d.ts.map +0 -1
  399. package/src/AssistantPlugin.tsx +0 -238
  400. package/src/cli/plugin.ts +0 -83
  401. package/src/containers/ChatContainer/index.ts +0 -5
  402. package/src/types/capabilities.ts +0 -35
  403. package/src/types/events.ts +0 -11
  404. /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/AssistantPlugin.mjs.map} +0 -0
  405. /package/dist/lib/{browser → neutral}/AssistantSettings-GG52BLKS.mjs +0 -0
  406. /package/dist/lib/{browser → neutral}/AssistantSettings-GG52BLKS.mjs.map +0 -0
  407. /package/dist/lib/{browser/components/index.mjs.map → neutral/ChatArticle-WVAFZPVI.mjs.map} +0 -0
  408. /package/dist/lib/{browser/hooks → neutral/blueprints}/index.mjs.map +0 -0
  409. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  410. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  411. /package/dist/lib/{node-esm/components → neutral}/index.mjs.map +0 -0
  412. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
  413. /package/dist/lib/{node-esm/hooks → neutral/operations}/index.mjs.map +0 -0
  414. /package/dist/lib/{node-esm/types/index.mjs.map → neutral/testing.mjs.map} +0 -0
@@ -0,0 +1,93 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/create-object.ts
4
+ import * as Effect from "effect/Effect";
5
+ import { Capability } from "@dxos/app-framework";
6
+ import { Agent, AgentBlueprint, Chat } from "@dxos/assistant-toolkit";
7
+ import { Blueprint, Operation, Routine } from "@dxos/compute";
8
+ import { Sequence } from "@dxos/conductor";
9
+ import { Obj } from "@dxos/echo";
10
+ import { AutomationCapabilities } from "@dxos/plugin-automation";
11
+ import { SpaceOperation } from "@dxos/plugin-space";
12
+ import { SpaceCapabilities } from "@dxos/plugin-space";
13
+ import { AssistantOperation } from "#types";
14
+ var create_object_default = Capability.makeModule(Effect.fnUntraced(function* () {
15
+ return [
16
+ Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
17
+ id: Chat.Chat.typename,
18
+ createObject: (props, options) => Effect.gen(function* () {
19
+ const { object } = yield* Operation.invoke(AssistantOperation.CreateChat, {
20
+ db: options.db,
21
+ name: props?.name
22
+ });
23
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
24
+ object,
25
+ target: options.target,
26
+ hidden: true,
27
+ targetNodeId: options.targetNodeId
28
+ });
29
+ })
30
+ }),
31
+ Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
32
+ id: Blueprint.Blueprint.typename,
33
+ inputSchema: AssistantOperation.BlueprintForm,
34
+ createObject: (props, options) => Effect.gen(function* () {
35
+ const object = Blueprint.make(props);
36
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
37
+ object,
38
+ target: options.target,
39
+ hidden: true,
40
+ targetNodeId: options.targetNodeId
41
+ });
42
+ })
43
+ }),
44
+ Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
45
+ id: Routine.Routine.typename,
46
+ createObject: (props, options) => Effect.gen(function* () {
47
+ const object = Routine.make(props);
48
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
49
+ object,
50
+ target: options.target,
51
+ hidden: true,
52
+ targetNodeId: options.targetNodeId
53
+ });
54
+ })
55
+ }),
56
+ Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
57
+ id: Sequence.Sequence.typename,
58
+ createObject: (props, options) => Effect.gen(function* () {
59
+ const object = Obj.make(Sequence.Sequence, props);
60
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
61
+ object,
62
+ target: options.target,
63
+ hidden: true,
64
+ targetNodeId: options.targetNodeId
65
+ });
66
+ })
67
+ }),
68
+ Capability.contributes(SpaceCapabilities.CreateObjectEntry, {
69
+ id: Agent.Agent.typename,
70
+ createObject: (props, options) => Effect.gen(function* () {
71
+ const object = yield* Agent.makeInitialized({
72
+ name: "",
73
+ instructions: ""
74
+ }, AgentBlueprint.make()).pipe(withComputeRuntime(options.db.spaceId));
75
+ return yield* Operation.invoke(SpaceOperation.AddObject, {
76
+ object,
77
+ target: options.target,
78
+ hidden: true,
79
+ targetNodeId: options.targetNodeId
80
+ });
81
+ })
82
+ })
83
+ ];
84
+ }));
85
+ var withComputeRuntime = (spaceId) => (effect) => Effect.gen(function* () {
86
+ const provider = yield* Capability.get(AutomationCapabilities.ComputeRuntime).pipe(Effect.orDie);
87
+ const runtime = yield* provider.getRuntime(spaceId).runtimeEffect;
88
+ return yield* effect.pipe(Effect.provide(runtime));
89
+ });
90
+ export {
91
+ create_object_default as default
92
+ };
93
+ //# sourceMappingURL=create-object-UZCJCPWM.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/create-object.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Agent, AgentBlueprint, Chat } from '@dxos/assistant-toolkit';\nimport { Blueprint, Operation, Routine } from '@dxos/compute';\nimport { Sequence } from '@dxos/conductor';\nimport { Obj } from '@dxos/echo';\nimport { type SpaceId } from '@dxos/keys';\nimport { AutomationCapabilities } from '@dxos/plugin-automation';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\n\nimport { AssistantOperation } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return [\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Chat.Chat.typename,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const { object } = yield* Operation.invoke(AssistantOperation.CreateChat, {\n db: options.db,\n name: props?.name,\n });\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Blueprint.Blueprint.typename,\n inputSchema: AssistantOperation.BlueprintForm,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = Blueprint.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Routine.Routine.typename,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = Routine.make(props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Sequence.Sequence.typename,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = Obj.make(Sequence.Sequence, props);\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Agent.Agent.typename,\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = yield* Agent.makeInitialized({ name: '', instructions: '' }, AgentBlueprint.make()).pipe(\n withComputeRuntime(options.db.spaceId),\n );\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }),\n }),\n ];\n }),\n);\n\n// TODO(dmaretskyi): Extract to a helper module.\nconst withComputeRuntime =\n (spaceId: SpaceId) =>\n <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n ): Effect.Effect<A, E, Exclude<R, AutomationCapabilities.ComputeServices> | Capability.Service> =>\n Effect.gen(function* () {\n const provider = yield* Capability.get(AutomationCapabilities.ComputeRuntime).pipe(Effect.orDie);\n const runtime = yield* provider.getRuntime(spaceId).runtimeEffect;\n return yield* effect.pipe(Effect.provide(runtime));\n });\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,OAAOC,gBAAgBC,YAAY;AAC5C,SAASC,WAAWC,WAAWC,eAAe;AAC9C,SAASC,gBAAgB;AACzB,SAASC,WAAW;AAEpB,SAASC,8BAA8B;AACvC,SAASC,sBAAsB;AAC/B,SAASC,yBAAyB;AAElC,SAASC,0BAA0B;AAEnC,IAAA,wBAAeZ,WAAWa,WACjBC,kBAAW,aAAA;AAChB,SAAO;IACLd,WAAWe,YAAYJ,kBAAkBK,mBAAmB;MAC1DC,IAAId,KAAKA,KAAKe;MACdC,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAM,EAAEC,OAAM,IAAK,OAAOlB,UAAUmB,OAAOZ,mBAAmBa,YAAY;UACxEC,IAAIL,QAAQK;UACZC,MAAMP,OAAOO;QACf,CAAA;AACA,eAAO,OAAOtB,UAAUmB,OAAOd,eAAekB,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;IACA/B,WAAWe,YAAYJ,kBAAkBK,mBAAmB;MAC1DC,IAAIb,UAAUA,UAAUc;MACxBc,aAAapB,mBAAmBqB;MAChCd,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAMC,SAASnB,UAAU8B,KAAKd,KAAAA;AAC9B,eAAO,OAAOf,UAAUmB,OAAOd,eAAekB,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;IACA/B,WAAWe,YAAYJ,kBAAkBK,mBAAmB;MAC1DC,IAAIX,QAAQA,QAAQY;MACpBC,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAMC,SAASjB,QAAQ4B,KAAKd,KAAAA;AAC5B,eAAO,OAAOf,UAAUmB,OAAOd,eAAekB,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;IACA/B,WAAWe,YAAYJ,kBAAkBK,mBAAmB;MAC1DC,IAAIV,SAASA,SAASW;MACtBC,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAMC,SAASf,IAAI0B,KAAK3B,SAASA,UAAUa,KAAAA;AAC3C,eAAO,OAAOf,UAAUmB,OAAOd,eAAekB,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;IACA/B,WAAWe,YAAYJ,kBAAkBK,mBAAmB;MAC1DC,IAAIhB,MAAMA,MAAMiB;MAChBC,cAAc,CAACC,OAAOC,YACbC,WAAI,aAAA;AACT,cAAMC,SAAS,OAAOtB,MAAMkC,gBAAgB;UAAER,MAAM;UAAIS,cAAc;QAAG,GAAGlC,eAAegC,KAAI,CAAA,EAAIG,KACjGC,mBAAmBjB,QAAQK,GAAGa,OAAO,CAAA;AAEvC,eAAO,OAAOlC,UAAUmB,OAAOd,eAAekB,WAAW;UACvDL;UACAM,QAAQR,QAAQQ;UAChBC,QAAQ;UACRC,cAAcV,QAAQU;QACxB,CAAA;MACF,CAAA;IACJ,CAAA;;AAEJ,CAAA,CAAA;AAIF,IAAMO,qBACJ,CAACC,YACD,CACEC,WAEOlB,WAAI,aAAA;AACT,QAAMmB,WAAW,OAAOzC,WAAW0C,IAAIjC,uBAAuBkC,cAAc,EAAEN,KAAYO,YAAK;AAC/F,QAAMC,UAAU,OAAOJ,SAASK,WAAWP,OAAAA,EAASQ;AACpD,SAAO,OAAOP,OAAOH,KAAYW,eAAQH,OAAAA,CAAAA;AAC3C,CAAA;",
6
+ "names": ["Effect", "Capability", "Agent", "AgentBlueprint", "Chat", "Blueprint", "Operation", "Routine", "Sequence", "Obj", "AutomationCapabilities", "SpaceOperation", "SpaceCapabilities", "AssistantOperation", "makeModule", "fnUntraced", "contributes", "CreateObjectEntry", "id", "typename", "createObject", "props", "options", "gen", "object", "invoke", "CreateChat", "db", "name", "AddObject", "target", "hidden", "targetNodeId", "inputSchema", "BlueprintForm", "make", "makeInitialized", "instructions", "pipe", "withComputeRuntime", "spaceId", "effect", "provider", "get", "ComputeRuntime", "orDie", "runtime", "getRuntime", "runtimeEffect", "provide"]
7
+ }
@@ -0,0 +1,21 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/edge-model-resolver.ts
4
+ import * as AnthropicClient from "@effect/ai-anthropic/AnthropicClient";
5
+ import * as FetchHttpClient from "@effect/platform/FetchHttpClient";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Layer from "effect/Layer";
8
+ import { AnthropicResolver } from "@dxos/ai/resolvers";
9
+ import { Capability } from "@dxos/app-framework";
10
+ import { AppCapabilities } from "@dxos/app-toolkit";
11
+ var edgeModelResolver = Capability.makeModule(() => Effect.succeed([
12
+ Capability.contributes(AppCapabilities.AiModelResolver, AnthropicResolver.make().pipe(Layer.provide(AnthropicClient.layer({
13
+ // TODO(dmaretskyi): Read endpoint from config/settings.
14
+ apiUrl: "https://ai-service.dxos.workers.dev/provider/anthropic"
15
+ })), Layer.provide(FetchHttpClient.layer)))
16
+ ]));
17
+ var edge_model_resolver_default = edgeModelResolver;
18
+ export {
19
+ edge_model_resolver_default as default
20
+ };
21
+ //# sourceMappingURL=edge-model-resolver-XDNBZ3US.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/edge-model-resolver.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as AnthropicClient from '@effect/ai-anthropic/AnthropicClient';\nimport * as FetchHttpClient from '@effect/platform/FetchHttpClient';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\n\nimport { AnthropicResolver } from '@dxos/ai/resolvers';\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\n\nexport type EdgeModelResolverCapabilities = [Capability.Capability<typeof AppCapabilities.AiModelResolver>];\n\nconst edgeModelResolver = Capability.makeModule<[], EdgeModelResolverCapabilities>(() =>\n Effect.succeed([\n Capability.contributes(\n AppCapabilities.AiModelResolver,\n AnthropicResolver.make().pipe(\n Layer.provide(\n AnthropicClient.layer({\n // TODO(dmaretskyi): Read endpoint from config/settings.\n apiUrl: 'https://ai-service.dxos.workers.dev/provider/anthropic',\n }),\n ),\n Layer.provide(FetchHttpClient.layer),\n ),\n ),\n ]),\n);\n\nexport default edgeModelResolver;\n"],
5
+ "mappings": ";;;AAIA,YAAYA,qBAAqB;AACjC,YAAYC,qBAAqB;AACjC,YAAYC,YAAY;AACxB,YAAYC,WAAW;AAEvB,SAASC,yBAAyB;AAClC,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAIhC,IAAMC,oBAAoBF,WAAWG,WAA8C,MAC1EC,eAAQ;EACbJ,WAAWK,YACTJ,gBAAgBK,iBAChBP,kBAAkBQ,KAAI,EAAGC,KACjBC,cACYC,sBAAM;;IAEpBC,QAAQ;EACV,CAAA,CAAA,GAEIF,cAAwBC,qBAAK,CAAA,CAAA;CAGxC,CAAA;AAGH,IAAA,8BAAeR;",
6
+ "names": ["AnthropicClient", "FetchHttpClient", "Effect", "Layer", "AnthropicResolver", "Capability", "AppCapabilities", "edgeModelResolver", "makeModule", "succeed", "contributes", "AiModelResolver", "make", "pipe", "provide", "layer", "apiUrl"]
7
+ }
@@ -1,11 +1,3 @@
1
- import {
2
- AssistantCapabilities
3
- } from "./chunk-SEMCG4ZK.mjs";
4
- import {
5
- CreateChat,
6
- EnsureCompanionChat,
7
- SetCurrentChat
8
- } from "./chunk-DVOOFAWU.mjs";
9
1
  import "./chunk-J5LGTIGS.mjs";
10
2
 
11
3
  // src/operations/ensure-companion-chat.ts
@@ -14,17 +6,18 @@ import { Capabilities, Capability } from "@dxos/app-framework";
14
6
  import { Chat } from "@dxos/assistant-toolkit";
15
7
  import { Operation } from "@dxos/compute";
16
8
  import { Filter, Obj, Query } from "@dxos/echo";
17
- var handler = EnsureCompanionChat.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ db, companionTo }) {
9
+ import { AssistantCapabilities, AssistantOperation } from "#types";
10
+ var handler = AssistantOperation.EnsureCompanionChat.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ db, companionTo }) {
18
11
  const operationInvoker = yield* Capability.get(Capabilities.OperationInvoker);
19
- const companionDxn = Obj.getDXN(companionTo).toString();
12
+ const companionDXN = Obj.getDXN(companionTo).toString();
20
13
  const existingChats = yield* Effect.promise(() => db.query(Query.select(Filter.id(companionTo.id)).targetOf(Chat.CompanionTo).source()).run());
21
14
  if (existingChats.length > 0) {
22
15
  const chat2 = existingChats.at(-1);
23
16
  yield* Capabilities.updateAtomValue(AssistantCapabilities.CompanionChatCache, (current) => ({
24
17
  ...current,
25
- [companionDxn]: chat2
18
+ [companionDXN]: chat2
26
19
  }));
27
- yield* Effect.promise(() => operationInvoker.invokePromise(SetCurrentChat, {
20
+ yield* Effect.promise(() => operationInvoker.invokePromise(AssistantOperation.SetCurrentChat, {
28
21
  companionTo,
29
22
  chat: chat2
30
23
  }));
@@ -34,14 +27,14 @@ var handler = EnsureCompanionChat.pipe(Operation.withHandler(Effect.fnUntraced(f
34
27
  };
35
28
  }
36
29
  const cache = yield* Capabilities.getAtomValue(AssistantCapabilities.CompanionChatCache);
37
- const cached = cache[companionDxn];
30
+ const cached = cache[companionDXN];
38
31
  if (cached) {
39
32
  return {
40
33
  chat: cached,
41
34
  persisted: false
42
35
  };
43
36
  }
44
- const { data } = yield* Effect.promise(() => operationInvoker.invokePromise(CreateChat, {
37
+ const { data } = yield* Effect.promise(() => operationInvoker.invokePromise(AssistantOperation.CreateChat, {
45
38
  db,
46
39
  addToSpace: false
47
40
  }));
@@ -51,7 +44,7 @@ var handler = EnsureCompanionChat.pipe(Operation.withHandler(Effect.fnUntraced(f
51
44
  const chat = data.object;
52
45
  yield* Capabilities.updateAtomValue(AssistantCapabilities.CompanionChatCache, (current) => ({
53
46
  ...current,
54
- [companionDxn]: chat
47
+ [companionDXN]: chat
55
48
  }));
56
49
  return {
57
50
  chat,
@@ -62,4 +55,4 @@ var ensure_companion_chat_default = handler;
62
55
  export {
63
56
  ensure_companion_chat_default as default
64
57
  };
65
- //# sourceMappingURL=ensure-companion-chat-7GDMXSQW.mjs.map
58
+ //# sourceMappingURL=ensure-companion-chat-5S4LZM2H.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/ensure-companion-chat.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { Filter, Obj, Query } from '@dxos/echo';\n\nimport { AssistantCapabilities, AssistantOperation } from '#types';\n\nconst handler: Operation.WithHandler<typeof AssistantOperation.EnsureCompanionChat> =\n AssistantOperation.EnsureCompanionChat.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ db, companionTo }) {\n const operationInvoker = yield* Capability.get(Capabilities.OperationInvoker);\n const companionDXN = Obj.getDXN(companionTo).toString();\n\n // 1. Look for an existing persisted companion chat in the space.\n const existingChats = yield* Effect.promise(() =>\n db.query(Query.select(Filter.id(companionTo.id)).targetOf(Chat.CompanionTo).source()).run(),\n );\n if (existingChats.length > 0) {\n const chat = existingChats.at(-1) as Chat.Chat;\n // Cache the persisted chat so the graph connector can resolve it immediately\n // via the cache fallback, without waiting for AtomObj.make(ref) to hydrate.\n yield* Capabilities.updateAtomValue(AssistantCapabilities.CompanionChatCache, (current) => ({\n ...current,\n [companionDXN]: chat,\n }));\n yield* Effect.promise(() =>\n operationInvoker.invokePromise(AssistantOperation.SetCurrentChat, { companionTo, chat }),\n );\n return { chat, persisted: true };\n }\n\n // 2. Return cached transient chat for this companion if present.\n const cache = yield* Capabilities.getAtomValue(AssistantCapabilities.CompanionChatCache);\n const cached = cache[companionDXN] as Chat.Chat | undefined;\n if (cached) {\n return { chat: cached, persisted: false };\n }\n\n // 3. Create a new transient chat, cache it, and return it without persisting.\n const { data } = yield* Effect.promise(() =>\n operationInvoker.invokePromise(AssistantOperation.CreateChat, { db, addToSpace: false }),\n );\n if (!data?.object) {\n return yield* Effect.fail(new Error('CreateChat did not return a chat object'));\n }\n const chat = data.object;\n yield* Capabilities.updateAtomValue(AssistantCapabilities.CompanionChatCache, (current) => ({\n ...current,\n [companionDXN]: chat,\n }));\n return { chat, persisted: false };\n }),\n ),\n );\n\nexport default handler;\n"],
5
+ "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,YAAY;AACrB,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,KAAKC,aAAa;AAEnC,SAASC,uBAAuBC,0BAA0B;AAE1D,IAAMC,UACJD,mBAAmBE,oBAAoBC,KACrCR,UAAUS,YACDC,kBAAW,WAAW,EAAEC,IAAIC,YAAW,GAAE;AAC9C,QAAMC,mBAAmB,OAAOf,WAAWgB,IAAIjB,aAAakB,gBAAgB;AAC5E,QAAMC,eAAed,IAAIe,OAAOL,WAAAA,EAAaM,SAAQ;AAGrD,QAAMC,gBAAgB,OAAcC,eAAQ,MAC1CT,GAAGU,MAAMlB,MAAMmB,OAAOrB,OAAOsB,GAAGX,YAAYW,EAAE,CAAA,EAAGC,SAASzB,KAAK0B,WAAW,EAAEC,OAAM,CAAA,EAAIC,IAAG,CAAA;AAE3F,MAAIR,cAAcS,SAAS,GAAG;AAC5B,UAAMC,QAAOV,cAAcW,GAAG,EAAC;AAG/B,WAAOjC,aAAakC,gBAAgB3B,sBAAsB4B,oBAAoB,CAACC,aAAa;MAC1F,GAAGA;MACH,CAACjB,YAAAA,GAAea;IAClB,EAAA;AACA,WAAcT,eAAQ,MACpBP,iBAAiBqB,cAAc7B,mBAAmB8B,gBAAgB;MAAEvB;MAAaiB,MAAAA;IAAK,CAAA,CAAA;AAExF,WAAO;MAAEA,MAAAA;MAAMO,WAAW;IAAK;EACjC;AAGA,QAAMC,QAAQ,OAAOxC,aAAayC,aAAalC,sBAAsB4B,kBAAkB;AACvF,QAAMO,SAASF,MAAMrB,YAAAA;AACrB,MAAIuB,QAAQ;AACV,WAAO;MAAEV,MAAMU;MAAQH,WAAW;IAAM;EAC1C;AAGA,QAAM,EAAEI,KAAI,IAAK,OAAcpB,eAAQ,MACrCP,iBAAiBqB,cAAc7B,mBAAmBoC,YAAY;IAAE9B;IAAI+B,YAAY;EAAM,CAAA,CAAA;AAExF,MAAI,CAACF,MAAMG,QAAQ;AACjB,WAAO,OAAcC,YAAK,IAAIC,MAAM,yCAAA,CAAA;EACtC;AACA,QAAMhB,OAAOW,KAAKG;AAClB,SAAO9C,aAAakC,gBAAgB3B,sBAAsB4B,oBAAoB,CAACC,aAAa;IAC1F,GAAGA;IACH,CAACjB,YAAAA,GAAea;EAClB,EAAA;AACA,SAAO;IAAEA;IAAMO,WAAW;EAAM;AAClC,CAAA,CAAA,CAAA;AAIN,IAAA,gCAAe9B;",
6
+ "names": ["Effect", "Capabilities", "Capability", "Chat", "Operation", "Filter", "Obj", "Query", "AssistantCapabilities", "AssistantOperation", "handler", "EnsureCompanionChat", "pipe", "withHandler", "fnUntraced", "db", "companionTo", "operationInvoker", "get", "OperationInvoker", "companionDXN", "getDXN", "toString", "existingChats", "promise", "query", "select", "id", "targetOf", "CompanionTo", "source", "run", "length", "chat", "at", "updateAtomValue", "CompanionChatCache", "current", "invokePromise", "SetCurrentChat", "persisted", "cache", "getAtomValue", "cached", "data", "CreateChat", "addToSpace", "object", "fail", "Error"]
7
+ }
@@ -1,6 +1,4 @@
1
- import {
2
- UpdateChatName
3
- } from "./chunk-DVOOFAWU.mjs";
1
+ import "../chunk-J5LGTIGS.mjs";
4
2
 
5
3
  // src/hooks/useBlueprintRegistry.ts
6
4
  import { useCallback, useEffect, useMemo, useState } from "react";
@@ -25,7 +23,7 @@ var useBlueprints = ({ blueprintRegistry, db }) => {
25
23
  const blueprints = distinctBy([
26
24
  ...staticBlueprints,
27
25
  ...spaceBlueprints
28
- ], (b) => b.key);
26
+ ], (b) => Obj.getMeta(b).key);
29
27
  blueprints.sort(({ name: a }, { name: b }) => a.localeCompare(b));
30
28
  return blueprints;
31
29
  }, [
@@ -43,9 +41,9 @@ var useActiveBlueprints = ({ context }) => {
43
41
  const updateActive = () => {
44
42
  const blueprints = context.getBlueprints();
45
43
  setActive(new Map(blueprints.map((blueprint) => [
46
- blueprint.key,
44
+ Obj.getMeta(blueprint).key,
47
45
  blueprint
48
- ])));
46
+ ]).filter((entry) => entry[0] !== void 0)));
49
47
  };
50
48
  updateActive();
51
49
  return context.subscribeBlueprints(updateActive);
@@ -60,7 +58,7 @@ var useBlueprintHandlers = ({ db, context, blueprintRegistry }) => {
60
58
  return;
61
59
  }
62
60
  const objects = await db.query(Filter.type(Blueprint.Blueprint)).run();
63
- let storedBlueprint = objects.find((blueprint) => blueprint.key === key);
61
+ let storedBlueprint = objects.find((blueprint) => Obj.getMeta(blueprint).key === key);
64
62
  if (checked) {
65
63
  if (!storedBlueprint) {
66
64
  const blueprint = blueprintRegistry.getByKey(key);
@@ -210,13 +208,14 @@ import * as Fiber from "effect/Fiber";
210
208
  import * as Option from "effect/Option";
211
209
  import * as Stream from "effect/Stream";
212
210
  import { DEFAULT_EDGE_MODEL } from "@dxos/ai";
213
- import { AiContextService, createSystemPrompt, formatSystemPrompt, McpServerError, PartialBlock, ToolExecutionServices } from "@dxos/assistant";
211
+ import { AiContext, createSystemPrompt, formatSystemPrompt, McpServerError, PartialBlock, ToolExecutionServices } from "@dxos/assistant";
214
212
  import { Trace, Operation } from "@dxos/compute";
215
213
  import { Obj as Obj2 } from "@dxos/echo";
216
214
  import { runAndForwardErrors, unwrapExit } from "@dxos/effect";
217
215
  import { AgentService } from "@dxos/functions-runtime";
218
216
  import { log } from "@dxos/log";
219
217
  import { Message } from "@dxos/types";
218
+ import { AssistantOperation } from "#types";
220
219
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/processor/processor.ts";
221
220
  var defaultOptions = {
222
221
  model: DEFAULT_EDGE_MODEL,
@@ -290,7 +289,7 @@ var AiChatProcessor = class {
290
289
  blueprints,
291
290
  objects
292
291
  });
293
- }).pipe(Effect.provideService(AiContextService, {
292
+ }).pipe(Effect.provideService(AiContext.Service, {
294
293
  binder: this.context
295
294
  }), Effect.orDie));
296
295
  }
@@ -389,7 +388,7 @@ var AiChatProcessor = class {
389
388
  * Update the current chat's name.
390
389
  */
391
390
  async updateName(chat) {
392
- unwrapExit(await this._runtime.runPromiseExit(Operation.invoke(UpdateChatName, {
391
+ unwrapExit(await this._runtime.runPromiseExit(Operation.invoke(AssistantOperation.UpdateChatName, {
393
392
  chat
394
393
  })));
395
394
  }
@@ -444,13 +443,13 @@ var AiChatProcessor = class {
444
443
  }
445
444
  }
446
445
  /**
447
- * Records a per-server MCP failure, deduped by url+kind so repeat misconfigurations
446
+ * Records a per-server MCP failure, deduped by url+protocol so repeat misconfigurations
448
447
  * across turns do not spam the UI.
449
448
  */
450
449
  #handleMcpError(event) {
451
450
  log.warn("MCP server error", event, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 235, S: this });
452
451
  this.#registry.update(this.mcpErrors, (errors) => {
453
- if (errors.some((existing) => existing.url === event.url && existing.kind === event.kind)) {
452
+ if (errors.some((existing) => existing.url === event.url && existing.protocol === event.protocol)) {
454
453
  return errors;
455
454
  }
456
455
  return [
@@ -491,7 +490,7 @@ var AiChatProcessor = class {
491
490
  hasName: !!chat.name,
492
491
  chance
493
492
  }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 273, S: this });
494
- return Operation.schedule(UpdateChatName, {
493
+ return Operation.schedule(AssistantOperation.UpdateChatName, {
495
494
  chat
496
495
  });
497
496
  }
@@ -512,7 +511,7 @@ var useChatProcessor = ({ space, chat, preset, runtime: runtime3, blueprintRegis
512
511
  }
513
512
  const feedServiceLayer = createFeedServiceLayer(space.queues);
514
513
  const runtime4 = await runAndForwardErrors2(Effect2.runtime().pipe(Effect2.provide(feedServiceLayer)));
515
- const session2 = new AiSession({
514
+ const session2 = new AiSession.Session({
516
515
  feed: feedTarget,
517
516
  runtime: runtime4,
518
517
  registry: observableRegistry
@@ -557,7 +556,7 @@ var useChatProcessor = ({ space, chat, preset, runtime: runtime3, blueprintRegis
557
556
  import { useMemo as useMemo4 } from "react";
558
557
  import { useCapability } from "@dxos/app-framework/ui";
559
558
  import { getPersonalSpace } from "@dxos/app-toolkit";
560
- import { AutomationCapabilities } from "@dxos/plugin-automation/types";
559
+ import { AutomationCapabilities } from "@dxos/plugin-automation";
561
560
  import { useClient } from "@dxos/react-client";
562
561
  var useChatServices = ({ id }) => {
563
562
  const client = useClient();
@@ -569,123 +568,120 @@ var useChatServices = ({ id }) => {
569
568
  };
570
569
 
571
570
  // src/hooks/useChatToolbarActions.ts
572
- import { Atom as Atom2 } from "@effect-atom/atom-react";
573
571
  import * as Effect3 from "effect/Effect";
574
- import { useMemo as useMemo5 } from "react";
575
572
  import { useOperationInvoker } from "@dxos/app-framework/ui";
576
573
  import { Chat } from "@dxos/assistant-toolkit";
577
574
  import { Filter as Filter2, Obj as Obj3, Query } from "@dxos/echo";
578
575
  import { runAndForwardErrors as runAndForwardErrors3 } from "@dxos/effect";
579
576
  import { invariant } from "@dxos/invariant";
580
577
  import { useQuery as useQuery2 } from "@dxos/react-client/echo";
581
- import { MenuBuilder, useMenuActions } from "@dxos/react-ui-menu";
578
+ import { MenuBuilder, useMenuBuilder } from "@dxos/react-ui-menu";
582
579
  import { useChatContext } from "#components";
583
580
  import { meta } from "#meta";
584
- import { AssistantOperation } from "#operations";
581
+ import { AssistantOperation as AssistantOperation2 } from "#types";
585
582
  var __dxlog_file3 = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useChatToolbarActions.ts";
586
583
  var useChatToolbarActions = ({ chat, companionTo }) => {
587
584
  const { invoke } = useOperationInvoker();
588
585
  const { db } = useChatContext("useChatToolbarActions");
589
586
  const query = companionTo ? Query.select(Filter2.id(companionTo.id)).targetOf(Chat.CompanionTo).source() : Query.select(Filter2.nothing());
590
587
  const chats = useQuery2(db, query);
591
- return useMenuActions(useMemo5(() => {
592
- return Atom2.make(() => {
593
- const builder = MenuBuilder.make().root({
594
- label: [
595
- "chat-toolbar.title",
596
- {
597
- ns: meta.id
598
- }
599
- ]
600
- }).action("new", {
601
- label: [
602
- "new-thread.button",
603
- {
604
- ns: meta.id
605
- }
606
- ],
607
- icon: "ph--plus--regular",
608
- type: "new",
609
- disabled: !companionTo
610
- }, () => {
611
- invariant(companionTo, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 44, S: void 0, A: ["companionTo", ""] });
612
- return invoke(AssistantOperation.SetCurrentChat, {
613
- companionTo,
614
- chat: void 0
615
- }).pipe(runAndForwardErrors3);
616
- }).action("rename", {
588
+ const chatsVersion = chats.map((chat2) => `${chat2.id}:${Obj3.getLabel(chat2) ?? ""}`).join("|");
589
+ return useMenuBuilder(() => {
590
+ const builder = MenuBuilder.make().root({
591
+ label: [
592
+ "chat-toolbar.title",
593
+ {
594
+ ns: meta.id
595
+ }
596
+ ]
597
+ }).action("new", {
598
+ label: [
599
+ "new-thread.button",
600
+ {
601
+ ns: meta.id
602
+ }
603
+ ],
604
+ icon: "ph--plus--regular",
605
+ type: "new",
606
+ disabled: !companionTo
607
+ }, () => {
608
+ invariant(companionTo, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 44, S: void 0, A: ["companionTo", ""] });
609
+ return invoke(AssistantOperation2.SetCurrentChat, {
610
+ companionTo,
611
+ chat: void 0
612
+ }).pipe(runAndForwardErrors3);
613
+ }).action("rename", {
614
+ label: [
615
+ "rename-thread.button",
616
+ {
617
+ ns: meta.id
618
+ }
619
+ ],
620
+ icon: "ph--magic-wand--regular",
621
+ type: "rename",
622
+ disabled: !chat
623
+ }, () => Effect3.gen(function* () {
624
+ invariant(chat, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 60, S: this, A: ["chat", ""] });
625
+ yield* invoke(AssistantOperation2.UpdateChatName, {
626
+ chat
627
+ });
628
+ }).pipe(runAndForwardErrors3)).action("branch", {
629
+ label: [
630
+ "branch-thread.menu",
631
+ {
632
+ ns: meta.id
633
+ }
634
+ ],
635
+ icon: "ph--git-branch--regular",
636
+ type: "branch",
637
+ disabled: true
638
+ }, () => {
639
+ });
640
+ if (chats.length > 0) {
641
+ builder.group("chats", {
617
642
  label: [
618
- "rename-thread.button",
643
+ "chat-history.label",
619
644
  {
620
645
  ns: meta.id
621
646
  }
622
647
  ],
623
- icon: "ph--magic-wand--regular",
624
- type: "rename",
625
- disabled: !chat
626
- }, () => Effect3.gen(function* () {
627
- invariant(chat, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 60, S: this, A: ["chat", ""] });
628
- yield* invoke(AssistantOperation.UpdateChatName, {
629
- chat
648
+ icon: "ph--clock-counter-clockwise--regular",
649
+ selectCardinality: "single",
650
+ variant: "dropdownMenu"
651
+ }, (builder2) => {
652
+ chats.toSorted((a, b) => a.id.localeCompare(b.id)).forEach((chat2) => {
653
+ builder2.action(chat2.id, {
654
+ label: Obj3.getLabel(chat2) ?? [
655
+ "object-name.placeholder",
656
+ {
657
+ ns: Chat.Chat.typename
658
+ }
659
+ ]
660
+ }, () => Effect3.gen(function* () {
661
+ invariant(companionTo, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 97, S: this, A: ["companionTo", ""] });
662
+ yield* invoke(AssistantOperation2.SetCurrentChat, {
663
+ companionTo,
664
+ chat: chat2
665
+ });
666
+ }).pipe(runAndForwardErrors3));
630
667
  });
631
- }).pipe(runAndForwardErrors3)).action("branch", {
632
- label: [
633
- "branch-thread.menu",
634
- {
635
- ns: meta.id
636
- }
637
- ],
638
- icon: "ph--git-branch--regular",
639
- type: "branch",
640
- disabled: true
641
- }, () => {
642
668
  });
643
- if (chats.length > 0) {
644
- builder.group("chats", {
645
- label: [
646
- "chat-history.label",
647
- {
648
- ns: meta.id
649
- }
650
- ],
651
- icon: "ph--clock-counter-clockwise--regular",
652
- selectCardinality: "single",
653
- variant: "dropdownMenu"
654
- }, (builder2) => {
655
- chats.toSorted((a, b) => a.id.localeCompare(b.id)).forEach((chat2) => {
656
- builder2.action(chat2.id, {
657
- label: Obj3.getLabel(chat2) ?? [
658
- "object-name.placeholder",
659
- {
660
- ns: Chat.Chat.typename
661
- }
662
- ]
663
- }, () => Effect3.gen(function* () {
664
- invariant(companionTo, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 97, S: this, A: ["companionTo", ""] });
665
- yield* invoke(AssistantOperation.SetCurrentChat, {
666
- companionTo,
667
- chat: chat2
668
- });
669
- }).pipe(runAndForwardErrors3));
670
- });
671
- });
672
- }
673
- return builder.build();
674
- });
669
+ }
670
+ return builder.build();
675
671
  }, [
676
- chats.length,
672
+ chatsVersion,
677
673
  db?.spaceId,
678
674
  companionTo?.id,
679
675
  chat?.id,
680
676
  invoke
681
- ]));
677
+ ]);
682
678
  };
683
679
 
684
680
  // src/hooks/useContextBinder.ts
685
681
  import { RegistryContext as RegistryContext2 } from "@effect-atom/atom-react";
686
682
  import * as Effect4 from "effect/Effect";
687
683
  import { useContext as useContext2, useState as useState3 } from "react";
688
- import { AiContextBinder } from "@dxos/assistant";
684
+ import { AiContext as AiContext2 } from "@dxos/assistant";
689
685
  import { createFeedServiceLayer as createFeedServiceLayer2 } from "@dxos/echo-db";
690
686
  import { runAndForwardErrors as runAndForwardErrors4 } from "@dxos/effect";
691
687
  import { useAsyncEffect as useAsyncEffect2 } from "@dxos/react-ui";
@@ -699,7 +695,7 @@ var useContextBinder = (space, feed) => {
699
695
  }
700
696
  const feedServiceLayer = createFeedServiceLayer2(space.queues);
701
697
  const runtime3 = await runAndForwardErrors4(Effect4.runtime().pipe(Effect4.provide(feedServiceLayer)));
702
- const binder2 = new AiContextBinder({
698
+ const binder2 = new AiContext2.Binder({
703
699
  feed,
704
700
  runtime: runtime3,
705
701
  registry
@@ -717,9 +713,9 @@ var useContextBinder = (space, feed) => {
717
713
  };
718
714
 
719
715
  // src/hooks/useContextObjects.ts
720
- import { Atom as Atom3, useAtomValue } from "@effect-atom/atom-react";
716
+ import { Atom as Atom2, useAtomValue } from "@effect-atom/atom-react";
721
717
  import { useCallback as useCallback2 } from "react";
722
- var emptyObjectsAtom = Atom3.make([]);
718
+ var emptyObjectsAtom = Atom2.make([]);
723
719
  var useContextObjects = ({ db, context }) => {
724
720
  const objects = useAtomValue(context?.objects ?? emptyObjectsAtom);
725
721
  const handleUpdateObject = useCallback2(async (dxn, checked) => {
@@ -849,13 +845,13 @@ var useOnline = () => {
849
845
  };
850
846
 
851
847
  // src/hooks/usePresets.ts
852
- import { useCallback as useCallback5, useEffect as useEffect3, useMemo as useMemo6, useState as useState7 } from "react";
848
+ import { useCallback as useCallback5, useEffect as useEffect3, useMemo as useMemo5, useState as useState7 } from "react";
853
849
  var usePresets = (online) => {
854
850
  const [preset, setPreset] = useState7();
855
- const presets = useMemo6(() => AiServicePresets.filter((preset2) => online === (preset2.provider === "dxos-remote")), [
851
+ const presets = useMemo5(() => AiServicePresets.filter((preset2) => online === (preset2.provider === "dxos-remote")), [
856
852
  online
857
853
  ]);
858
- const presetOptions = useMemo6(() => presets.map(({ id, model, label }) => ({
854
+ const presetOptions = useMemo5(() => presets.map(({ id, model, label }) => ({
859
855
  id,
860
856
  label: label ?? model
861
857
  })), [
@@ -882,10 +878,10 @@ var usePresets = (online) => {
882
878
  };
883
879
 
884
880
  // src/hooks/useReferencesProvider.ts
885
- import { useMemo as useMemo7 } from "react";
881
+ import { useMemo as useMemo6 } from "react";
886
882
  import { Filter as Filter3, Obj as Obj4 } from "@dxos/echo";
887
883
  var useReferencesProvider = (space) => {
888
- return useMemo7(() => {
884
+ return useMemo6(() => {
889
885
  if (!space) {
890
886
  return void 0;
891
887
  }
@@ -910,12 +906,11 @@ var useReferencesProvider = (space) => {
910
906
  ]);
911
907
  };
912
908
  var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
913
-
914
909
  export {
915
- useBlueprintRegistry,
916
- useBlueprints,
917
910
  useActiveBlueprints,
918
911
  useBlueprintHandlers,
912
+ useBlueprintRegistry,
913
+ useBlueprints,
919
914
  useChatKeymapExtensions,
920
915
  useChatProcessor,
921
916
  useChatServices,
@@ -929,4 +924,4 @@ export {
929
924
  usePresets,
930
925
  useReferencesProvider
931
926
  };
932
- //# sourceMappingURL=chunk-M55MBYG7.mjs.map
927
+ //# sourceMappingURL=index.mjs.map