@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
@@ -1,3 +1,5 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
1
3
  // src/components/index.ts
2
4
  import { lazy } from "react";
3
5
 
@@ -5,14 +7,15 @@ import { lazy } from "react";
5
7
  import { useAtomValue as useAtomValue3 } from "@effect-atom/atom-react";
6
8
  import * as Array from "effect/Array";
7
9
  import * as Option4 from "effect/Option";
8
- import React14, { useCallback as useCallback6, useEffect as useEffect6, useMemo as useMemo5, useRef as useRef3, useState as useState7 } from "react";
10
+ import React15, { useCallback as useCallback6, useEffect as useEffect6, useMemo as useMemo5, useRef as useRef3, useState as useState7 } from "react";
11
+ import { Agent } from "@dxos/assistant-toolkit";
9
12
  import { Event } from "@dxos/async";
10
- import { Filter as Filter2, Obj as Obj3 } from "@dxos/echo";
13
+ import { Filter as Filter2, Obj as Obj3, Query } from "@dxos/echo";
11
14
  import { useQuery as useQuery2 } from "@dxos/react-client/echo";
12
15
  import { useIdentity } from "@dxos/react-client/halo";
13
16
  import { Menu } from "@dxos/react-ui-menu";
14
17
  import { Message as Message2 } from "@dxos/types";
15
- import { composable, composableProps } from "@dxos/ui-theme";
18
+ import { composable as composable2, composableProps as composableProps2 } from "@dxos/ui-theme";
16
19
  import { useChatKeymapExtensions as useChatKeymapExtensions2, useChatToolbarActions, useDebug } from "#hooks";
17
20
 
18
21
  // src/components/ChatPrompt/ChatActions.tsx
@@ -93,7 +96,7 @@ var ChatMcpErrors = ({ classNames, processor }) => {
93
96
  }, /* @__PURE__ */ React2.createElement("ul", {
94
97
  className: "flex flex-col gap-0.5 text-sm"
95
98
  }, errors.map((error) => /* @__PURE__ */ React2.createElement("li", {
96
- key: `${error.url}::${error.kind}`,
99
+ key: `${error.url}::${error.protocol}`,
97
100
  className: "truncate"
98
101
  }, /* @__PURE__ */ React2.createElement("span", {
99
102
  className: "font-mono"
@@ -121,7 +124,6 @@ var styles = {
121
124
  var ChatOptions = ({ chat, db, context, blueprintRegistry, presets, preset, onPresetChange }) => {
122
125
  const { t } = useTranslation3(meta3.id);
123
126
  return /* @__PURE__ */ React3.createElement("div", {
124
- role: "none",
125
127
  className: "flex"
126
128
  }, /* @__PURE__ */ React3.createElement(Popover.Root, null, /* @__PURE__ */ React3.createElement(Popover.Trigger, {
127
129
  asChild: true
@@ -227,14 +229,15 @@ var BlueprintsPanel = ({ blueprintRegistry, db, context }) => {
227
229
  }, /* @__PURE__ */ React3.createElement(SearchList.Content, {
228
230
  classNames: "flex flex-col"
229
231
  }, /* @__PURE__ */ React3.createElement(SearchList.Viewport, null, results.map((blueprint) => {
230
- const isActive = activeBlueprints.has(blueprint.key);
232
+ const blueprintKey = Obj.getMeta(blueprint).key ?? blueprint.id;
233
+ const isActive = activeBlueprints.has(blueprintKey);
231
234
  return /* @__PURE__ */ React3.createElement(SearchList.Item, {
232
235
  classNames: "flex items-center overflow-hidden",
233
- key: blueprint.key,
234
- value: blueprint.key,
236
+ key: blueprintKey,
237
+ value: blueprintKey,
235
238
  label: blueprint.name,
236
239
  checked: isActive,
237
- onSelect: () => onUpdateBlueprint?.(blueprint.key, !isActive)
240
+ onSelect: () => onUpdateBlueprint?.(blueprintKey, !isActive)
238
241
  });
239
242
  })), /* @__PURE__ */ React3.createElement(SearchList.Input, {
240
243
  placeholder: t("search.placeholder"),
@@ -299,9 +302,7 @@ var McpServersPanel = ({ db }) => {
299
302
  })), adding ? /* @__PURE__ */ React3.createElement(McpServerForm, {
300
303
  onSubmit: handleAdd,
301
304
  onCancel: () => setAdding(false)
302
- }) : /* @__PURE__ */ React3.createElement("div", {
303
- role: "none"
304
- }, /* @__PURE__ */ React3.createElement(IconButton2, {
305
+ }) : /* @__PURE__ */ React3.createElement("div", null, /* @__PURE__ */ React3.createElement(IconButton2, {
305
306
  variant: "ghost",
306
307
  icon: "ph--plus--regular",
307
308
  label: t("mcp-server-add.label"),
@@ -381,7 +382,6 @@ var McpServerForm = ({ onSubmit, onCancel }) => {
381
382
  value: apiKey,
382
383
  onChange: (event) => setApiKey(event.target.value)
383
384
  })), /* @__PURE__ */ React3.createElement("div", {
384
- role: "none",
385
385
  className: "flex gap-2"
386
386
  }, /* @__PURE__ */ React3.createElement(IconButton2, {
387
387
  variant: "ghost",
@@ -447,7 +447,7 @@ var ObjectsPanel = ({ db, context }) => {
447
447
  key: object.id,
448
448
  value: object.id,
449
449
  icon,
450
- iconClassNames: styles3?.surfaceText,
450
+ iconClassNames: styles3?.foreground,
451
451
  label: Obj.getLabel(object) ?? Obj.getTypename(object) ?? object.id,
452
452
  checked: isActive,
453
453
  onSelect: () => onUpdateObject?.(Obj.getDXN(object), !isActive)
@@ -456,7 +456,6 @@ var ObjectsPanel = ({ db, context }) => {
456
456
  value: "__empty__",
457
457
  label: t("no-results.message")
458
458
  }))), /* @__PURE__ */ React3.createElement("div", {
459
- role: "none",
460
459
  className: mx2("flex flex-col", styles.toolbar)
461
460
  }, /* @__PURE__ */ React3.createElement(Select.Root, {
462
461
  value: typename === ANY ? void 0 : typename,
@@ -526,7 +525,7 @@ var ChatReferences = ({ classNames, context, db }) => {
526
525
  }, /* @__PURE__ */ React5.createElement(Icon, {
527
526
  icon,
528
527
  size: 4,
529
- classNames: styles3?.surfaceText
528
+ classNames: styles3?.foreground
530
529
  }), toLocalizedString(label, t), /* @__PURE__ */ React5.createElement(IconButton3, {
531
530
  icon: "ph--x--bold",
532
531
  iconOnly: true,
@@ -557,7 +556,6 @@ var ChatStatusIndicator = ({ classNames, preset, processing, error, ...props })
557
556
  preset
558
557
  ]);
559
558
  return /* @__PURE__ */ React6.createElement("div", {
560
- role: "none",
561
559
  className: mx4("relative flex", classNames)
562
560
  }, /* @__PURE__ */ React6.createElement(Spinner, {
563
561
  duration: period,
@@ -632,7 +630,6 @@ var ChatPrompt = ({ classNames, outline, chat, db, processor, event, online, pla
632
630
  }, /* @__PURE__ */ React7.createElement(ChatMcpErrors, {
633
631
  processor
634
632
  }), /* @__PURE__ */ React7.createElement("div", {
635
- role: "none",
636
633
  className: "flex p-2 gap-2"
637
634
  }, /* @__PURE__ */ React7.createElement(ChatStatusIndicator, {
638
635
  classNames: "p-1",
@@ -648,7 +645,6 @@ var ChatPrompt = ({ classNames, outline, chat, db, processor, event, online, pla
648
645
  extensions,
649
646
  onSubmit: handleSubmit
650
647
  })), db && settings && /* @__PURE__ */ React7.createElement("div", {
651
- role: "none",
652
648
  className: "flex items-center overflow-hidden p-1.5"
653
649
  }, /* @__PURE__ */ React7.createElement(ChatOptions, {
654
650
  chat,
@@ -659,7 +655,6 @@ var ChatPrompt = ({ classNames, outline, chat, db, processor, event, online, pla
659
655
  presets,
660
656
  onPresetChange
661
657
  }), /* @__PURE__ */ React7.createElement("div", {
662
- role: "none",
663
658
  className: "flex h-8 grow overflow-x-auto scrollbar-none"
664
659
  }, /* @__PURE__ */ React7.createElement(ChatReferences, {
665
660
  db,
@@ -733,7 +728,6 @@ var ChatStatus = ({ classNames, icon }) => {
733
728
  interval: 500,
734
729
  active: isRunning
735
730
  })), show && /* @__PURE__ */ React8.createElement("div", {
736
- role: "none",
737
731
  className: "flex items-center"
738
732
  }, requestTiming && /* @__PURE__ */ React8.createElement(NaturalChatStatus.Text, null, /* @__PURE__ */ React8.createElement(Elapsed, {
739
733
  timing: requestTiming
@@ -844,7 +838,7 @@ var ReasoningWidget = class extends WidgetType {
844
838
  toDOM() {
845
839
  return Domino.of("div").classNames(styles2.padding).append(Domino.of("div").classNames("relative overflow-hidden p-px", styles2.border).attributes({
846
840
  "data-trail-container": ""
847
- }).append(Domino.of("div").classNames("relative z-10 bg-base-surface rounded-sm text-sm text-subdued px-2 py-1").append(Domino.of("div").classNames("max-h-[5lh] overflow-y-auto").text(this.text).attributes({
841
+ }).append(Domino.of("div").classNames("relative z-10 bg-base-surface rounded-sm text-sm text-subdued py-1").append(Domino.of("div").classNames("px-2 max-h-[5lh] overflow-y-auto dx-scrollbar-thin").text(this.text).attributes({
848
842
  "data-reasoning-text": ""
849
843
  })), Domino.of("div").attributes({
850
844
  "data-id": this.#pos
@@ -975,71 +969,22 @@ import { WidgetType as WidgetType5 } from "@codemirror/view";
975
969
  import { Domino as Domino5 } from "@dxos/ui";
976
970
  var StatusWidget = class extends WidgetType5 {
977
971
  text;
978
- #pos;
979
- /** The timer id last registered for this instance (may differ from the map if superseded). */
980
- #ownedTimerId = null;
981
- constructor(text, pos) {
972
+ constructor(text) {
982
973
  super(), this.text = text;
983
- this.#pos = pos === void 0 || pos === "" ? "status" : String(pos);
984
974
  }
985
975
  eq(other) {
986
- return this.text === other.text && this.#pos === other.#pos;
976
+ return this.text === other.text;
987
977
  }
988
978
  toDOM() {
989
979
  return Domino5.of("div").classNames(styles2.padding).append(Domino5.of("div").classNames("relative overflow-hidden rounded-sm").append(Domino5.of("div").classNames("grid grid-cols-[24px_1fr] gap-x-0.5 gap-y-0 items-start px-0.5 py-0.5 text-placeholder").append(Domino5.of("div").classNames("flex h-5 w-full shrink-0 items-center justify-center self-start").append(Domino5.of("span").classNames("block size-1.5 shrink-0 rounded-full bg-current opacity-45")), Domino5.of("div").classNames("relative min-w-0").append(Domino5.of("div").classNames("relative z-10 rounded-sm text-sm leading-5").attributes({
990
980
  "data-status-text": ""
991
- }).text(this.text), Domino5.of("div").attributes({
992
- "data-id": this.#pos
993
- }))))).root;
981
+ }).text(this.text))))).root;
994
982
  }
995
983
  updateDOM(dom) {
996
984
  dom.querySelector("[data-status-text]")?.replaceChildren(this.text);
997
- const trailHost = dom.querySelector("[data-id]");
998
- if (trailHost?.childElementCount === 0) {
999
- trailHost.append(...createTrailLayers2());
1000
- }
1001
- this.#scheduleTrailRemoval(dom);
1002
985
  return true;
1003
986
  }
1004
- destroy(_dom) {
1005
- this.#clearOwnedTrailTimer();
1006
- }
1007
- #scheduleTrailRemoval(dom) {
1008
- const previous = trailRemovalTimers2.get(this.#pos);
1009
- if (previous !== void 0) {
1010
- clearTimeout(previous);
1011
- }
1012
- const timerId = setTimeout(() => {
1013
- if (trailRemovalTimers2.get(this.#pos) !== timerId) {
1014
- return;
1015
- }
1016
- trailRemovalTimers2.delete(this.#pos);
1017
- this.#ownedTimerId = null;
1018
- dom.querySelector("[data-id]")?.remove();
1019
- }, TRAIL_REMOVAL_DELAY_MS2);
1020
- trailRemovalTimers2.set(this.#pos, timerId);
1021
- this.#ownedTimerId = timerId;
1022
- }
1023
- #clearOwnedTrailTimer() {
1024
- const active = trailRemovalTimers2.get(this.#pos);
1025
- if (active !== void 0 && active === this.#ownedTimerId) {
1026
- clearTimeout(active);
1027
- trailRemovalTimers2.delete(this.#pos);
1028
- }
1029
- this.#ownedTimerId = null;
1030
- }
1031
987
  };
1032
- var trail2 = [
1033
- "absolute z-0 aspect-[2/1] w-16",
1034
- "bg-[radial-gradient(at_100%_50%,_theme(colors.green.700),_transparent_80%)]",
1035
- "[offset-anchor:100%_50%] [offset-path:border-box]"
1036
- ];
1037
- var TRAIL_REMOVAL_DELAY_MS2 = 1e3;
1038
- var trailRemovalTimers2 = /* @__PURE__ */ new Map();
1039
- var createTrailLayers2 = () => [
1040
- Domino5.of("div").classNames(...trail2, "animate-trail").root,
1041
- Domino5.of("div").classNames(...trail2, "animate-trail-offset").root
1042
- ];
1043
988
 
1044
989
  // src/components/ChatThread/widgets/SummaryWidget.tsx
1045
990
  import React10 from "react";
@@ -1053,7 +998,6 @@ var SummaryWidget = ({ children }) => {
1053
998
  }, /* @__PURE__ */ React10.createElement(TogglePanel2.Header, {
1054
999
  classNames: "text-sm bg-group-surface"
1055
1000
  }, t("summary.label")), /* @__PURE__ */ React10.createElement(TogglePanel2.Content, null, /* @__PURE__ */ React10.createElement("div", {
1056
- role: "none",
1057
1001
  className: "p-1 text-sm text-subdued"
1058
1002
  }, children)));
1059
1003
  };
@@ -1272,9 +1216,9 @@ var componentRegistry = {
1272
1216
  status: {
1273
1217
  block: true,
1274
1218
  streaming: true,
1275
- factory: ({ children, range }) => {
1219
+ factory: ({ children }) => {
1276
1220
  const text = getXmlTextChild(children);
1277
- return text ? new StatusWidget(text, range.from) : null;
1221
+ return text ? new StatusWidget(text) : null;
1278
1222
  }
1279
1223
  },
1280
1224
  //
@@ -1287,7 +1231,6 @@ var componentRegistry = {
1287
1231
  toolCall: {
1288
1232
  block: true,
1289
1233
  Component: (props) => /* @__PURE__ */ React12.createElement("div", {
1290
- role: "none",
1291
1234
  className: "py-2"
1292
1235
  }, /* @__PURE__ */ React12.createElement(ToolWidget, props))
1293
1236
  },
@@ -1336,7 +1279,7 @@ var isBlockVisible = (viewType, message, block) => {
1336
1279
  var blockToMarkdownImpl = (context, message, block) => {
1337
1280
  log("blockToMarkdown", {
1338
1281
  block: JSON.stringify(block)
1339
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 151, S: void 0 });
1282
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 154, S: void 0 });
1340
1283
  switch (block._tag) {
1341
1284
  case "text": {
1342
1285
  if (message.sender.role === "user") {
@@ -1346,7 +1289,8 @@ var blockToMarkdownImpl = (context, message, block) => {
1346
1289
  pending: block.pending
1347
1290
  });
1348
1291
  } else {
1349
- return `<prompt>${block.text}</prompt>`;
1292
+ return `
1293
+ <prompt>${block.text}</prompt>`;
1350
1294
  }
1351
1295
  } else {
1352
1296
  const text = block.text.trim();
@@ -1573,7 +1517,6 @@ var ChatThread = /* @__PURE__ */ forwardRef(({ classNames, identity, messages =
1573
1517
  onEvent
1574
1518
  ]);
1575
1519
  return /* @__PURE__ */ React13.createElement("div", {
1576
- role: "none",
1577
1520
  "data-hue": userHue,
1578
1521
  className: "contents"
1579
1522
  }, /* @__PURE__ */ React13.createElement(MarkdownStream, {
@@ -1589,6 +1532,41 @@ var ChatThread = /* @__PURE__ */ forwardRef(({ classNames, identity, messages =
1589
1532
  }));
1590
1533
  });
1591
1534
 
1535
+ // src/components/TaskList/TaskList.tsx
1536
+ import React14 from "react";
1537
+ import { useObject as useObject2 } from "@dxos/react-client/echo";
1538
+ import { Icon as Icon2, Tag } from "@dxos/react-ui";
1539
+ import { Row, RowList } from "@dxos/react-ui-list";
1540
+ import { composable, composableProps } from "@dxos/ui-theme";
1541
+ var TaskList = composable(({ plan, ...props }, forwardedRef) => {
1542
+ const [snapshot] = useObject2(plan);
1543
+ const tasks = snapshot?.tasks ?? [];
1544
+ return /* @__PURE__ */ React14.createElement(RowList.Root, null, /* @__PURE__ */ React14.createElement(RowList.Viewport, {
1545
+ ...composableProps(props, {
1546
+ classNames: "dx-container"
1547
+ }),
1548
+ ref: forwardedRef
1549
+ }, /* @__PURE__ */ React14.createElement(RowList.Content, {
1550
+ "aria-label": "Tasks"
1551
+ }, tasks.map((task) => /* @__PURE__ */ React14.createElement(Row, {
1552
+ key: task.id,
1553
+ id: task.id,
1554
+ classNames: "py-0"
1555
+ }, /* @__PURE__ */ React14.createElement("div", {
1556
+ className: "flex items-center gap-2"
1557
+ }, /* @__PURE__ */ React14.createElement(Icon2, {
1558
+ icon: task.status === "done" ? "ph--check--regular" : "ph--circle--regular",
1559
+ classNames: task.status === "done" ? "text-success-text" : void 0,
1560
+ size: 4
1561
+ }), /* @__PURE__ */ React14.createElement("span", {
1562
+ className: "sr-only"
1563
+ }, task.status === "done" ? "done" : task.status === "in-progress" ? "in progress" : "to do"), /* @__PURE__ */ React14.createElement("span", {
1564
+ className: "truncate flex-1"
1565
+ }, task.title), task.status === "in-progress" && /* @__PURE__ */ React14.createElement(Tag, {
1566
+ palette: "info"
1567
+ }, "pending")))))));
1568
+ });
1569
+
1592
1570
  // src/components/Chat/Chat.tsx
1593
1571
  var ChatRoot = ({ children, chat, feed, processor, onEvent, ...props }) => {
1594
1572
  const [debug, setDebug] = useState7(false);
@@ -1599,7 +1577,7 @@ var ChatRoot = ({ children, chat, feed, processor, onEvent, ...props }) => {
1599
1577
  });
1600
1578
  const lastPrompt = useRef3(void 0);
1601
1579
  const db = props.db ?? (chat && Obj3.getDatabase(chat));
1602
- const feedMessages = useQuery2(feed, Filter2.type(Message2.Message));
1580
+ const feedMessages = useQuery2(db, feed ? Query.select(Filter2.type(Message2.Message)).from(feed) : Query.select(Filter2.nothing()));
1603
1581
  const pendingMessages = useAtomValue3(processor.messages);
1604
1582
  const messages = useMemo5(() => Array.dedupeWith([
1605
1583
  ...feedMessages,
@@ -1664,7 +1642,7 @@ var ChatRoot = ({ children, chat, feed, processor, onEvent, ...props }) => {
1664
1642
  streaming,
1665
1643
  onEvent
1666
1644
  ]);
1667
- return /* @__PURE__ */ React14.createElement(ChatContextProvider, {
1645
+ return /* @__PURE__ */ React15.createElement(ChatContextProvider, {
1668
1646
  debug,
1669
1647
  event,
1670
1648
  db,
@@ -1696,25 +1674,25 @@ var useRequestTiming = ({ active }) => {
1696
1674
  return requestTiming;
1697
1675
  };
1698
1676
  var CHAT_TOOLBAR_NAME = "Chat.Toolbar";
1699
- var ChatToolbar = composable(({ attendableId, companionTo, ...props }, forwardedRef) => {
1677
+ var ChatToolbar = composable2(({ attendableId, companionTo, ...props }, forwardedRef) => {
1700
1678
  const { chat } = useChatContext(CHAT_TOOLBAR_NAME);
1701
1679
  const menuActions = useChatToolbarActions({
1702
1680
  chat,
1703
1681
  companionTo
1704
1682
  });
1705
- return /* @__PURE__ */ React14.createElement(Menu.Root, {
1683
+ return /* @__PURE__ */ React15.createElement(Menu.Root, {
1706
1684
  ...menuActions,
1707
1685
  attendableId
1708
- }, /* @__PURE__ */ React14.createElement(Menu.Toolbar, {
1709
- ...composableProps(props),
1686
+ }, /* @__PURE__ */ React15.createElement(Menu.Toolbar, {
1687
+ ...composableProps2(props),
1710
1688
  ref: forwardedRef
1711
1689
  }));
1712
1690
  });
1713
1691
  ChatToolbar.displayName = CHAT_TOOLBAR_NAME;
1714
1692
  var CHAT_CONTENT_NAME = "Chat.Content";
1715
- var ChatContent = composable(({ children, ...props }, forwardedRef) => {
1716
- return /* @__PURE__ */ React14.createElement("div", {
1717
- ...composableProps(props, {
1693
+ var ChatContent = composable2(({ children, ...props }, forwardedRef) => {
1694
+ return /* @__PURE__ */ React15.createElement("div", {
1695
+ ...composableProps2(props, {
1718
1696
  classNames: "dx-expander flex flex-col"
1719
1697
  }),
1720
1698
  ref: forwardedRef
@@ -1755,9 +1733,11 @@ var ChatThread2 = ({ viewType, debug: debugProp, ...props }) => {
1755
1733
  event
1756
1734
  ]);
1757
1735
  if (!identity) {
1758
- return null;
1736
+ return /* @__PURE__ */ React15.createElement("div", {
1737
+ className: "dx-expander"
1738
+ });
1759
1739
  }
1760
- return /* @__PURE__ */ React14.createElement(ChatThread, {
1740
+ return /* @__PURE__ */ React15.createElement(ChatThread, {
1761
1741
  ...props,
1762
1742
  identity,
1763
1743
  messages,
@@ -1773,7 +1753,7 @@ ChatThread2.displayName = CHAT_THREAD_NAME;
1773
1753
  var CHAT_PROMPT_NAME = "Chat.Prompt";
1774
1754
  var ChatPrompt2 = (props) => {
1775
1755
  const { chat, db, processor, event } = useChatContext(CHAT_PROMPT_NAME);
1776
- return /* @__PURE__ */ React14.createElement(ChatPrompt, {
1756
+ return /* @__PURE__ */ React15.createElement(ChatPrompt, {
1777
1757
  ...props,
1778
1758
  chat,
1779
1759
  db,
@@ -1782,24 +1762,41 @@ var ChatPrompt2 = (props) => {
1782
1762
  });
1783
1763
  };
1784
1764
  ChatPrompt2.displayName = CHAT_PROMPT_NAME;
1765
+ var CHAT_TASK_LIST_NAME = "Chat.TaskList";
1766
+ var ChatTaskList = composable2(({ plan: planProp, ...props }, forwardedRef) => {
1767
+ const { chat } = useChatContext(CHAT_TASK_LIST_NAME);
1768
+ const parent = chat ? Obj3.getParent(chat) : void 0;
1769
+ const agent = parent && Obj3.instanceOf(Agent.Agent, parent) ? parent : void 0;
1770
+ const plan = planProp ?? agent?.plan.target;
1771
+ if (!plan) {
1772
+ return null;
1773
+ }
1774
+ return /* @__PURE__ */ React15.createElement(TaskList, {
1775
+ ...props,
1776
+ plan,
1777
+ ref: forwardedRef
1778
+ });
1779
+ });
1780
+ ChatTaskList.displayName = CHAT_TASK_LIST_NAME;
1785
1781
  var Chat = {
1786
1782
  Root: ChatRoot,
1787
1783
  Toolbar: ChatToolbar,
1788
1784
  Content: ChatContent,
1789
1785
  Prompt: ChatPrompt2,
1790
1786
  Status: ChatStatus,
1791
- Thread: ChatThread2
1787
+ Thread: ChatThread2,
1788
+ TaskList: ChatTaskList
1792
1789
  };
1793
1790
 
1794
1791
  // src/components/ProcessTree/ProcessTree.tsx
1795
1792
  import * as Match from "effect/Match";
1796
1793
  import * as Option5 from "effect/Option";
1797
- import React15 from "react";
1794
+ import React16 from "react";
1798
1795
  import { Process } from "@dxos/functions-runtime";
1799
- import { Icon as Icon2, IconButton as IconButton4, ScrollArea, Tooltip as Tooltip2, Treegrid } from "@dxos/react-ui";
1800
- import { composable as composable2, composableProps as composableProps2, mx as mx7 } from "@dxos/ui-theme";
1796
+ import { Icon as Icon3, IconButton as IconButton4, ScrollArea, Tooltip as Tooltip2, Treegrid } from "@dxos/react-ui";
1797
+ import { composable as composable3, composableProps as composableProps3, mx as mx7 } from "@dxos/ui-theme";
1801
1798
  import { Unit as Unit2 } from "@dxos/util";
1802
- var ProcessTree = composable2(({ processes, onProcessSelect, onProcessTerminate, ...props }, forwardedRef) => {
1799
+ var ProcessTree = composable3(({ processes, onProcessSelect, onProcessTerminate, ...props }, forwardedRef) => {
1803
1800
  const sortedProcesses = [
1804
1801
  ...processes.filter((process) => [
1805
1802
  Process.State.RUNNING,
@@ -1818,41 +1815,41 @@ var ProcessTree = composable2(({ processes, onProcessSelect, onProcessTerminate,
1818
1815
  const bCompletedAt = Option5.getOrElse(b.completedAt, () => Infinity);
1819
1816
  return bCompletedAt - aCompletedAt;
1820
1817
  });
1821
- return /* @__PURE__ */ React15.createElement(ScrollArea.Root, {
1822
- ...composableProps2(props, {
1818
+ return /* @__PURE__ */ React16.createElement(ScrollArea.Root, {
1819
+ ...composableProps3(props, {
1823
1820
  classNames: "dx-expander"
1824
1821
  }),
1825
1822
  thin: true,
1826
1823
  ref: forwardedRef
1827
- }, /* @__PURE__ */ React15.createElement(ScrollArea.Viewport, null, /* @__PURE__ */ React15.createElement(Treegrid.Root, {
1824
+ }, /* @__PURE__ */ React16.createElement(ScrollArea.Viewport, null, /* @__PURE__ */ React16.createElement(Treegrid.Root, {
1828
1825
  gridTemplateColumns: "1fr"
1829
1826
  }, sortedProcesses.filter((process) => process.parentPid === null).map((process) => {
1830
- return /* @__PURE__ */ React15.createElement(Treegrid.Row, {
1827
+ return /* @__PURE__ */ React16.createElement(Treegrid.Row, {
1831
1828
  key: process.pid.toString(),
1832
1829
  id: process.pid.toString(),
1833
1830
  parentOf: process.parentPid?.toString()
1834
- }, /* @__PURE__ */ React15.createElement(Treegrid.Cell, {
1831
+ }, /* @__PURE__ */ React16.createElement(Treegrid.Cell, {
1835
1832
  indent: true,
1836
1833
  classNames: mx7("grid grid-cols-[min-content_1fr_min-content_min-content] items-center gap-1 min-w-0", onProcessSelect && "dx-hover"),
1837
1834
  onClick: () => onProcessSelect?.(process)
1838
- }, /* @__PURE__ */ React15.createElement(Tooltip2.Trigger, {
1835
+ }, /* @__PURE__ */ React16.createElement(Tooltip2.Trigger, {
1839
1836
  className: "p-1",
1840
1837
  content: process.state.toString()
1841
- }, /* @__PURE__ */ React15.createElement(Icon2, {
1838
+ }, /* @__PURE__ */ React16.createElement(Icon3, {
1842
1839
  size: 4,
1840
+ synchronized: true,
1843
1841
  classNames: mx7(process.state === Process.State.RUNNING && "animate-spin", process.state === Process.State.FAILED && "text-error-text", process.state === Process.State.SUCCEEDED && "text-success-text"),
1844
1842
  icon: Match.value(process.state).pipe(Match.when(Process.State.RUNNING, () => "ph--spinner-gap--regular"), Match.when(Process.State.SUCCEEDED, () => "ph--check-circle--regular"), Match.when(Process.State.FAILED, () => "ph--warning--regular"), Match.when(Process.State.HYBERNATING, () => "ph--spinner--regular"), Match.when(Process.State.IDLE, () => "ph--hourglass--regular"), Match.when(Process.State.TERMINATING, () => "ph--x-circle--regular"), Match.when(Process.State.TERMINATED, () => "ph--x-circle--regular"), Match.orElse(() => "ph--spinner-gap--regular"))
1845
- })), /* @__PURE__ */ React15.createElement("div", {
1846
- role: "none",
1843
+ })), /* @__PURE__ */ React16.createElement("div", {
1847
1844
  className: "flex items-center gap-2 text-xs overflow-hidden"
1848
- }, /* @__PURE__ */ React15.createElement("span", {
1845
+ }, /* @__PURE__ */ React16.createElement("span", {
1849
1846
  className: "truncate text-description select-none"
1850
1847
  }, process.params.name ?? process.pid.toString())), [
1851
1848
  Process.State.FAILED,
1852
1849
  Process.State.SUCCEEDED
1853
- ].includes(process.state) && /* @__PURE__ */ React15.createElement("div", {
1850
+ ].includes(process.state) && /* @__PURE__ */ React16.createElement("div", {
1854
1851
  className: "text-xs text-description tabular-nums"
1855
- }, Unit2.Millisecond(process.metrics.wallTime).toString()) || /* @__PURE__ */ React15.createElement("div", null), onProcessTerminate && /* @__PURE__ */ React15.createElement(IconButton4, {
1852
+ }, Unit2.Millisecond(process.metrics.wallTime).toString()) || /* @__PURE__ */ React16.createElement("div", null), onProcessTerminate && /* @__PURE__ */ React16.createElement(IconButton4, {
1856
1853
  classNames: "min-h-0 p-1",
1857
1854
  icon: "ph--x--regular",
1858
1855
  iconOnly: true,
@@ -1870,12 +1867,12 @@ var ProcessTree = composable2(({ processes, onProcessSelect, onProcessTerminate,
1870
1867
  // src/components/TemplateEditor/TemplateEditor.tsx
1871
1868
  import { defaultHighlightStyle, syntaxHighlighting } from "@codemirror/language";
1872
1869
  import { composeRefs } from "@radix-ui/react-compose-refs";
1873
- import React16 from "react";
1870
+ import React17 from "react";
1874
1871
  import { createDocAccessor } from "@dxos/echo-db";
1875
1872
  import { useThemeContext, useTranslation as useTranslation8 } from "@dxos/react-ui";
1876
1873
  import { useTextEditor } from "@dxos/react-ui-editor";
1877
1874
  import { createBasicExtensions, createDataExtensions, createMarkdownExtensions, createThemeExtensions, decorateMarkdown } from "@dxos/ui-editor";
1878
- import { composable as composable3, composableProps as composableProps3 } from "@dxos/ui-theme";
1875
+ import { composable as composable4, composableProps as composableProps4 } from "@dxos/ui-theme";
1879
1876
  import { isNonNullable as isNonNullable2 } from "@dxos/util";
1880
1877
  import { meta as meta8 } from "#meta";
1881
1878
 
@@ -2136,7 +2133,7 @@ var xmlDecoratorPlugin = ViewPlugin2.fromClass(class {
2136
2133
  });
2137
2134
 
2138
2135
  // src/components/TemplateEditor/TemplateEditor.tsx
2139
- var TemplateEditor = composable3(({ classNames, id, template, lineNumbers = true, ...props }, forwardedRef) => {
2136
+ var TemplateEditor = composable4(({ classNames, id, template, lineNumbers = true, ...props }, forwardedRef) => {
2140
2137
  const { t } = useTranslation8(meta8.id);
2141
2138
  const { themeMode } = useThemeContext();
2142
2139
  const { parentRef } = useTextEditor(() => {
@@ -2176,8 +2173,8 @@ var TemplateEditor = composable3(({ classNames, id, template, lineNumbers = true
2176
2173
  template.source?.target,
2177
2174
  lineNumbers
2178
2175
  ]);
2179
- return /* @__PURE__ */ React16.createElement("div", {
2180
- ...composableProps3(props, {
2176
+ return /* @__PURE__ */ React17.createElement("div", {
2177
+ ...composableProps4(props, {
2181
2178
  role: "none",
2182
2179
  classNames: [
2183
2180
  "h-full overflow-hidden",
@@ -2189,21 +2186,22 @@ var TemplateEditor = composable3(({ classNames, id, template, lineNumbers = true
2189
2186
  });
2190
2187
 
2191
2188
  // src/components/Toolbox/Toolbox.tsx
2192
- import React17, { Fragment, useEffect as useEffect7, useState as useState8 } from "react";
2189
+ import React18, { Fragment, useEffect as useEffect7, useState as useState8 } from "react";
2193
2190
  import { Operation } from "@dxos/compute";
2191
+ import { Filter as Filter3 } from "@dxos/echo";
2194
2192
  import { log as log2 } from "@dxos/log";
2195
- import { Filter as Filter3, useQuery as useQuery3 } from "@dxos/react-client/echo";
2193
+ import { useQuery as useQuery3 } from "@dxos/react-client/echo";
2196
2194
  import { ScrollArea as ScrollArea2 } from "@dxos/react-ui";
2197
- import { composable as composable4, composableProps as composableProps4, mx as mx9 } from "@dxos/ui-theme";
2195
+ import { composable as composable5, composableProps as composableProps5, mx as mx9 } from "@dxos/ui-theme";
2198
2196
  import { ServiceType } from "#types";
2199
2197
  var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/components/Toolbox/Toolbox.tsx";
2200
- var Toolbox = composable4(({ functions, services, blueprints, activeBlueprints, ...props }, forwardedRef) => {
2201
- return /* @__PURE__ */ React17.createElement(ScrollArea2.Root, {
2202
- ...composableProps4(props),
2198
+ var Toolbox = composable5(({ functions, services, blueprints, activeBlueprints, ...props }, forwardedRef) => {
2199
+ return /* @__PURE__ */ React18.createElement(ScrollArea2.Root, {
2200
+ ...composableProps5(props),
2203
2201
  thin: true,
2204
2202
  orientation: "vertical",
2205
2203
  ref: forwardedRef
2206
- }, /* @__PURE__ */ React17.createElement(ScrollArea2.Viewport, null, blueprints && blueprints.length > 0 && /* @__PURE__ */ React17.createElement(Section, {
2204
+ }, /* @__PURE__ */ React18.createElement(ScrollArea2.Viewport, null, blueprints && blueprints.length > 0 && /* @__PURE__ */ React18.createElement(Section, {
2207
2205
  title: "Blueprints",
2208
2206
  items: blueprints.map(({ name, description, tools }) => ({
2209
2207
  name,
@@ -2212,7 +2210,7 @@ var Toolbox = composable4(({ functions, services, blueprints, activeBlueprints,
2212
2210
  name: `\u2219 ${safeToolId(toolId)}`
2213
2211
  }))
2214
2212
  }))
2215
- }), activeBlueprints && activeBlueprints.length > 0 && /* @__PURE__ */ React17.createElement(Section, {
2213
+ }), activeBlueprints && activeBlueprints.length > 0 && /* @__PURE__ */ React18.createElement(Section, {
2216
2214
  title: "Blueprints",
2217
2215
  items: activeBlueprints.map(({ target }) => ({
2218
2216
  name: target?.name ?? "",
@@ -2221,13 +2219,13 @@ var Toolbox = composable4(({ functions, services, blueprints, activeBlueprints,
2221
2219
  name: `\u2219 ${safeToolId(toolId)}`
2222
2220
  }))
2223
2221
  }))
2224
- }), services && services.length > 0 && /* @__PURE__ */ React17.createElement(Section, {
2222
+ }), services && services.length > 0 && /* @__PURE__ */ React18.createElement(Section, {
2225
2223
  title: "Services",
2226
2224
  items: services.map(({ service: { serviceId, name, description } }) => ({
2227
2225
  name: name ?? serviceId,
2228
2226
  description
2229
2227
  }))
2230
- }), functions && functions.length > 0 && /* @__PURE__ */ React17.createElement(Section, {
2228
+ }), functions && functions.length > 0 && /* @__PURE__ */ React18.createElement(Section, {
2231
2229
  title: "Functions",
2232
2230
  items: functions.map(({ name, description }) => ({
2233
2231
  name,
@@ -2240,24 +2238,24 @@ var Section = ({ title, items, striped }) => {
2240
2238
  const stripeClassNames = "odd:bg-neutral-50 dark:odd:bg-neutral-800";
2241
2239
  const gridClassNames = "grid grid-cols-[8rem_1fr]";
2242
2240
  const subGridClassNames = mx9("col-span-full grid grid-cols-subgrid text-xs px-2", striped && stripeClassNames);
2243
- return /* @__PURE__ */ React17.createElement("div", null, /* @__PURE__ */ React17.createElement("h1", {
2241
+ return /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("h1", {
2244
2242
  className: "px-2 text-sm"
2245
- }, title), /* @__PURE__ */ React17.createElement("div", {
2243
+ }, title), /* @__PURE__ */ React18.createElement("div", {
2246
2244
  className: gridClassNames
2247
- }, items.map(({ name, description, subitems }, i) => /* @__PURE__ */ React17.createElement(Fragment, {
2245
+ }, items.map(({ name, description, subitems }, i) => /* @__PURE__ */ React18.createElement(Fragment, {
2248
2246
  key: i
2249
- }, name && /* @__PURE__ */ React17.createElement("div", {
2247
+ }, name && /* @__PURE__ */ React18.createElement("div", {
2250
2248
  className: subGridClassNames
2251
- }, /* @__PURE__ */ React17.createElement("div", {
2249
+ }, /* @__PURE__ */ React18.createElement("div", {
2252
2250
  className: "truncate text-primary-500"
2253
- }, name), /* @__PURE__ */ React17.createElement("div", {
2251
+ }, name), /* @__PURE__ */ React18.createElement("div", {
2254
2252
  className: "line-clamp-2"
2255
- }, description)), subitems?.map(({ name: name2, description: description2 }, i2) => /* @__PURE__ */ React17.createElement("div", {
2253
+ }, description)), subitems?.map(({ name: name2, description: description2 }, i2) => /* @__PURE__ */ React18.createElement("div", {
2256
2254
  key: i2,
2257
2255
  className: mx9(subGridClassNames, striped && stripeClassNames)
2258
- }, /* @__PURE__ */ React17.createElement("div", {
2256
+ }, /* @__PURE__ */ React18.createElement("div", {
2259
2257
  className: "truncate"
2260
- }, name2), /* @__PURE__ */ React17.createElement("div", {
2258
+ }, name2), /* @__PURE__ */ React18.createElement("div", {
2261
2259
  className: "line-clamp-3 text-subdued"
2262
2260
  }, description2)))))));
2263
2261
  };
@@ -2267,14 +2265,14 @@ var ToolboxPanel = ({ classNames, db, processor }) => {
2267
2265
  useEffect7(() => {
2268
2266
  log2("creating service tools...", {
2269
2267
  services: services.length
2270
- }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 80, S: void 0 });
2268
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 81, S: void 0 });
2271
2269
  queueMicrotask(async () => {
2272
2270
  });
2273
2271
  }, [
2274
2272
  services
2275
2273
  ]);
2276
2274
  const functions = useQuery3(db, Filter3.type(Operation.PersistentOperation));
2277
- return /* @__PURE__ */ React17.createElement(Toolbox, {
2275
+ return /* @__PURE__ */ React18.createElement(Toolbox, {
2278
2276
  classNames,
2279
2277
  blueprints: processor?.context.getBlueprints(),
2280
2278
  services: serviceTools,
@@ -2286,15 +2284,15 @@ var safeToolId = (name) => {
2286
2284
  };
2287
2285
 
2288
2286
  // src/components/index.ts
2289
- var AssistantSettings = lazy(() => import("./AssistantSettings-GG52BLKS.mjs"));
2290
-
2287
+ var AssistantSettings = lazy(() => import("../AssistantSettings-GG52BLKS.mjs"));
2291
2288
  export {
2292
- useChatContext,
2289
+ AssistantSettings,
2293
2290
  Chat,
2294
2291
  ProcessTree,
2292
+ TaskList,
2295
2293
  TemplateEditor,
2296
2294
  Toolbox,
2297
2295
  ToolboxPanel,
2298
- AssistantSettings
2296
+ useChatContext
2299
2297
  };
2300
- //# sourceMappingURL=chunk-VK53MITK.mjs.map
2298
+ //# sourceMappingURL=index.mjs.map