@dxos/plugin-assistant 0.9.0 → 0.9.1-staging.ee54ba693a

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 (619) hide show
  1. package/PLUGIN.mdl +18 -24
  2. package/dist/lib/neutral/{AgentArticle-K7XM46OQ.mjs → AgentArticle-GV6EEW3I.mjs} +9 -8
  3. package/dist/lib/neutral/AgentArticle-GV6EEW3I.mjs.map +7 -0
  4. package/dist/lib/neutral/AssistantPlugin.mjs +1 -1
  5. package/dist/lib/neutral/AssistantPlugin.node.mjs +6 -6
  6. package/dist/lib/neutral/AssistantPlugin.node.mjs.map +3 -3
  7. package/dist/lib/neutral/AssistantPlugin.workerd.mjs +7 -34
  8. package/dist/lib/neutral/AssistantPlugin.workerd.mjs.map +4 -4
  9. package/dist/lib/neutral/AssistantSettings-3N5M5VCN.mjs +302 -0
  10. package/dist/lib/neutral/AssistantSettings-3N5M5VCN.mjs.map +7 -0
  11. package/dist/lib/neutral/{ChatArticle-VNVZCDUR.mjs → ChatArticle-OO7GGEFW.mjs} +2 -2
  12. package/dist/lib/neutral/{ChatCompanion-LBUHYWQG.mjs → ChatCompanion-GIFJRY6I.mjs} +28 -28
  13. package/dist/lib/neutral/ChatCompanion-GIFJRY6I.mjs.map +7 -0
  14. package/dist/lib/neutral/{ChatDialog-DCA6FLOV.mjs → ChatDialog-5MXN4MXS.mjs} +9 -8
  15. package/dist/lib/neutral/ChatDialog-5MXN4MXS.mjs.map +7 -0
  16. package/dist/lib/neutral/IntegrationPrompt-2HJQFYJE.mjs +72 -0
  17. package/dist/lib/neutral/IntegrationPrompt-2HJQFYJE.mjs.map +7 -0
  18. package/dist/lib/neutral/{PlanArticle-TS5ULWYS.mjs → PlanArticle-VPK2IYWU.mjs} +8 -2
  19. package/dist/lib/neutral/PlanArticle-VPK2IYWU.mjs.map +7 -0
  20. package/dist/lib/neutral/SpaceHomePrompt-ISAB76LD.mjs +114 -0
  21. package/dist/lib/neutral/SpaceHomePrompt-ISAB76LD.mjs.map +7 -0
  22. package/dist/lib/neutral/SpaceHomeSuggestions-IDH77QQR.mjs +63 -0
  23. package/dist/lib/neutral/SpaceHomeSuggestions-IDH77QQR.mjs.map +7 -0
  24. package/dist/lib/neutral/TracePanel-JKNWADJ4.mjs +12 -0
  25. package/dist/lib/neutral/TracePanel-JKNWADJ4.mjs.map +7 -0
  26. package/dist/lib/neutral/{TriggerStatus-X7Y5JFZJ.mjs → TriggerStatus-FURRBHYA.mjs} +9 -7
  27. package/dist/lib/neutral/TriggerStatus-FURRBHYA.mjs.map +7 -0
  28. package/dist/lib/neutral/{agent-hydrator-PJBYVMBW.mjs → agent-hydrator-OBO3RHLO.mjs} +3 -4
  29. package/dist/lib/neutral/agent-hydrator-OBO3RHLO.mjs.map +7 -0
  30. package/dist/lib/neutral/{agent-service-WCAP5MLI.mjs → agent-service-XFJ4VQMT.mjs} +6 -6
  31. package/dist/lib/neutral/agent-service-XFJ4VQMT.mjs.map +7 -0
  32. package/dist/lib/neutral/ai-context-LIKJYMIN.mjs +14 -0
  33. package/dist/lib/neutral/ai-context-LIKJYMIN.mjs.map +7 -0
  34. package/dist/lib/neutral/{ai-service-AADUIKBY.mjs → ai-service-DM6YXWUC.mjs} +9 -5
  35. package/dist/lib/neutral/ai-service-DM6YXWUC.mjs.map +7 -0
  36. package/dist/lib/neutral/{app-graph-builder-WUFHQH3Y.mjs → app-graph-builder-OPVOEQY7.mjs} +45 -28
  37. package/dist/lib/neutral/app-graph-builder-OPVOEQY7.mjs.map +7 -0
  38. package/dist/lib/neutral/automation-templates-MADJLXGJ.mjs +97 -0
  39. package/dist/lib/neutral/automation-templates-MADJLXGJ.mjs.map +7 -0
  40. package/dist/lib/neutral/capabilities/index.mjs +21 -19
  41. package/dist/lib/neutral/capabilities/index.mjs.map +3 -3
  42. package/dist/lib/neutral/{chunk-KLYLW4WH.mjs → chunk-5IHQ52KJ.mjs} +1 -1
  43. package/dist/lib/neutral/chunk-5IHQ52KJ.mjs.map +7 -0
  44. package/dist/lib/neutral/{chunk-YXRGZYYH.mjs → chunk-6Q4OBGIK.mjs} +87 -59
  45. package/dist/lib/neutral/chunk-6Q4OBGIK.mjs.map +7 -0
  46. package/dist/lib/neutral/chunk-BXI2R4OO.mjs +410 -0
  47. package/dist/lib/neutral/chunk-BXI2R4OO.mjs.map +7 -0
  48. package/dist/lib/neutral/{chunk-5H6UJHLF.mjs → chunk-CMPLPDYE.mjs} +12 -12
  49. package/dist/lib/neutral/chunk-CMPLPDYE.mjs.map +7 -0
  50. package/dist/lib/neutral/chunk-GPHT3HYS.mjs +8 -0
  51. package/dist/lib/neutral/{chunk-SMFJD7BP.mjs.map → chunk-GPHT3HYS.mjs.map} +2 -2
  52. package/dist/lib/neutral/chunk-HKLSFB5I.mjs +90 -0
  53. package/dist/lib/neutral/chunk-HKLSFB5I.mjs.map +7 -0
  54. package/dist/lib/neutral/chunk-L7AR4VTA.mjs +53 -0
  55. package/dist/lib/neutral/chunk-L7AR4VTA.mjs.map +7 -0
  56. package/dist/lib/neutral/chunk-LS72HWMM.mjs +42 -0
  57. package/dist/lib/neutral/chunk-LS72HWMM.mjs.map +7 -0
  58. package/dist/lib/neutral/{chunk-HLANPOBA.mjs → chunk-OZWZGIV2.mjs} +5 -3
  59. package/dist/lib/neutral/chunk-OZWZGIV2.mjs.map +7 -0
  60. package/dist/lib/neutral/{toolkit-GVWXPDLJ.mjs → chunk-QOKLFHUS.mjs} +3 -4
  61. package/dist/lib/neutral/{toolkit-GVWXPDLJ.mjs.map → chunk-QOKLFHUS.mjs.map} +1 -1
  62. package/dist/lib/neutral/{TracePanel-KTZJ6JNR.mjs → chunk-SCTHQVIJ.mjs} +11 -23
  63. package/dist/lib/neutral/chunk-SCTHQVIJ.mjs.map +7 -0
  64. package/dist/lib/neutral/chunk-U4LTLBAX.mjs +56 -0
  65. package/dist/lib/neutral/chunk-U4LTLBAX.mjs.map +7 -0
  66. package/dist/lib/neutral/{chunk-RKVVK3R3.mjs → chunk-UPKFUZ6V.mjs} +22 -17
  67. package/dist/lib/neutral/chunk-UPKFUZ6V.mjs.map +7 -0
  68. package/dist/lib/neutral/{operation-handler-SF36MOB5.mjs → chunk-V2Y4XE3O.mjs} +3 -4
  69. package/dist/lib/neutral/{operation-handler-SF36MOB5.mjs.map → chunk-V2Y4XE3O.mjs.map} +1 -1
  70. package/dist/lib/neutral/chunk-XVGEJWJX.mjs +133 -0
  71. package/dist/lib/neutral/chunk-XVGEJWJX.mjs.map +7 -0
  72. package/dist/lib/neutral/{companion-chat-provisioner-YZZ73P6E.mjs → companion-chat-provisioner-IQV5VIVE.mjs} +14 -8
  73. package/dist/lib/neutral/companion-chat-provisioner-IQV5VIVE.mjs.map +7 -0
  74. package/dist/lib/neutral/components/index.mjs +749 -632
  75. package/dist/lib/neutral/components/index.mjs.map +4 -4
  76. package/dist/lib/neutral/{integration-provider-RBD3AFJU.mjs → connector-ITLLTBPZ.mjs} +13 -14
  77. package/dist/lib/neutral/connector-ITLLTBPZ.mjs.map +7 -0
  78. package/dist/lib/neutral/containers/index.mjs +15 -13
  79. package/dist/lib/neutral/containers/index.mjs.map +3 -3
  80. package/dist/lib/neutral/{create-chat-SGGQ6HVN.mjs → create-chat-YGVZZYGP.mjs} +18 -16
  81. package/dist/lib/neutral/create-chat-YGVZZYGP.mjs.map +7 -0
  82. package/dist/lib/neutral/{create-object-U2SOFZLR.mjs → create-object-5PAEJ6KM.mjs} +11 -27
  83. package/dist/lib/neutral/create-object-5PAEJ6KM.mjs.map +7 -0
  84. package/dist/lib/neutral/{edge-model-resolver-BBVOJBGJ.mjs → edge-model-resolver-WDJWDZTT.mjs} +2 -2
  85. package/dist/lib/neutral/execution-graph/index.mjs +336 -62
  86. package/dist/lib/neutral/execution-graph/index.mjs.map +4 -4
  87. package/dist/lib/neutral/extensions/index.mjs +8 -0
  88. package/dist/lib/neutral/{fork-chat-34KEF4ZJ.mjs → fork-chat-RMAAYYQF.mjs} +16 -19
  89. package/dist/lib/neutral/fork-chat-RMAAYYQF.mjs.map +7 -0
  90. package/dist/lib/neutral/generate-home-suggestions-6MM2XWPV.mjs +93 -0
  91. package/dist/lib/neutral/generate-home-suggestions-6MM2XWPV.mjs.map +7 -0
  92. package/dist/lib/neutral/hooks/index.mjs +393 -508
  93. package/dist/lib/neutral/hooks/index.mjs.map +4 -4
  94. package/dist/lib/neutral/index.mjs +14 -10
  95. package/dist/lib/neutral/markdown-extension-R4TKDTIF.mjs +41 -0
  96. package/dist/lib/neutral/markdown-extension-R4TKDTIF.mjs.map +7 -0
  97. package/dist/lib/neutral/meta.json +1 -1
  98. package/dist/lib/neutral/meta.mjs +1 -1
  99. package/dist/lib/neutral/navigation-resolver-PYGP2DAW.mjs +18 -0
  100. package/dist/lib/neutral/navigation-resolver-PYGP2DAW.mjs.map +7 -0
  101. package/dist/lib/neutral/operation-handler-2LEN45GP.mjs +8 -0
  102. package/dist/lib/neutral/operation-handler-2LEN45GP.mjs.map +7 -0
  103. package/dist/lib/neutral/operations/index.mjs +1 -1
  104. package/dist/lib/neutral/plugin.mjs +2 -2
  105. package/dist/lib/neutral/plugin.workerd.mjs +13 -0
  106. package/dist/lib/neutral/plugin.workerd.mjs.map +7 -0
  107. package/dist/lib/neutral/{react-surface-XRTBW5OJ.mjs → react-surface-HEJEK44F.mjs} +42 -45
  108. package/dist/lib/neutral/react-surface-HEJEK44F.mjs.map +7 -0
  109. package/dist/lib/neutral/resolve-navigation-targets-PBQ3OLUE.mjs +28 -0
  110. package/dist/lib/neutral/resolve-navigation-targets-PBQ3OLUE.mjs.map +7 -0
  111. package/dist/lib/neutral/{run-prompt-in-new-chat-D5IIE2C7.mjs → run-prompt-in-new-chat-RNUJE2FM.mjs} +31 -31
  112. package/dist/lib/neutral/run-prompt-in-new-chat-RNUJE2FM.mjs.map +7 -0
  113. package/dist/lib/neutral/{settings-W4BLWQ53.mjs → settings-7Q3RITIT.mjs} +3 -3
  114. package/dist/lib/neutral/{settings-W4BLWQ53.mjs.map → settings-7Q3RITIT.mjs.map} +3 -3
  115. package/dist/lib/neutral/skill-definition-553MQRTR.mjs +8 -0
  116. package/dist/lib/neutral/skill-definition-553MQRTR.mjs.map +7 -0
  117. package/dist/lib/neutral/skills/index.mjs +8 -0
  118. package/dist/lib/neutral/skills/index.mjs.map +7 -0
  119. package/dist/lib/neutral/{state-H3G7QCU6.mjs → state-4LGAKSSD.mjs} +9 -3
  120. package/dist/lib/neutral/state-4LGAKSSD.mjs.map +7 -0
  121. package/dist/lib/neutral/testing.mjs +1 -1
  122. package/dist/lib/neutral/toolkit-ETWLG5NT.mjs +8 -0
  123. package/dist/lib/neutral/toolkit-ETWLG5NT.mjs.map +7 -0
  124. package/dist/lib/neutral/translations.mjs +69 -31
  125. package/dist/lib/neutral/translations.mjs.map +3 -3
  126. package/dist/lib/neutral/types/index.mjs +5 -1
  127. package/dist/lib/neutral/{update-chat-name-Y7JWIP64.mjs → update-chat-name-IJJELRR6.mjs} +3 -3
  128. package/dist/lib/neutral/{update-chat-name-Y7JWIP64.mjs.map → update-chat-name-IJJELRR6.mjs.map} +2 -2
  129. package/dist/types/dx.config.d.ts +28 -0
  130. package/dist/types/dx.config.d.ts.map +1 -0
  131. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  132. package/dist/types/src/AssistantPlugin.workerd.d.ts.map +1 -1
  133. package/dist/types/src/capabilities/agent-hydrator.d.ts +1 -1
  134. package/dist/types/src/capabilities/agent-service.d.ts +1 -2
  135. package/dist/types/src/capabilities/agent-service.d.ts.map +1 -1
  136. package/dist/types/src/capabilities/ai-context.d.ts +1 -2
  137. package/dist/types/src/capabilities/ai-context.d.ts.map +1 -1
  138. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -3
  139. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  140. package/dist/types/src/capabilities/automation-templates.d.ts +1 -2
  141. package/dist/types/src/capabilities/automation-templates.d.ts.map +1 -1
  142. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts +1 -1
  143. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -1
  144. package/dist/types/src/capabilities/{integration-provider.d.ts → connector.d.ts} +2 -2
  145. package/dist/types/src/capabilities/connector.d.ts.map +1 -0
  146. package/dist/types/src/capabilities/create-object.d.ts +1 -27
  147. package/dist/types/src/capabilities/create-object.d.ts.map +1 -1
  148. package/dist/types/src/capabilities/index.d.ts +18 -57
  149. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  150. package/dist/types/src/capabilities/markdown-extension.d.ts +1 -1
  151. package/dist/types/src/capabilities/migrations.d.ts +1 -2
  152. package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
  153. package/dist/types/src/capabilities/navigation-resolver.d.ts +5 -0
  154. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -0
  155. package/dist/types/src/capabilities/react-surface.d.ts +2 -2
  156. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  157. package/dist/types/src/capabilities/settings.d.ts +1 -2
  158. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  159. package/dist/types/src/capabilities/skill-definition.d.ts +5 -0
  160. package/dist/types/src/capabilities/skill-definition.d.ts.map +1 -0
  161. package/dist/types/src/capabilities/state.d.ts +1 -17
  162. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  163. package/dist/types/src/capabilities/toolkit.d.ts +1 -2
  164. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  165. package/dist/types/src/components/AgentProperties/AgentProperties.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/Chat/Chat.d.ts +10 -8
  167. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  168. package/dist/types/src/components/Chat/Chat.stories.d.ts +32 -0
  169. package/dist/types/src/components/Chat/Chat.stories.d.ts.map +1 -0
  170. package/dist/types/src/components/Chat/events.d.ts +0 -4
  171. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  172. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts +2 -2
  173. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  174. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  175. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts +2 -2
  176. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -1
  177. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts +5 -5
  178. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts.map +1 -1
  179. package/dist/types/src/components/ChatPrompt/useChatVoiceInput.d.ts +9 -0
  180. package/dist/types/src/components/ChatPrompt/useChatVoiceInput.d.ts.map +1 -0
  181. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +4 -4
  182. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  183. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +2 -2
  184. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -1
  185. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  186. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts +2 -2
  187. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts.map +1 -1
  188. package/dist/types/src/components/ChatThread/widgets/SurfaceWidget.d.ts +11 -0
  189. package/dist/types/src/components/ChatThread/widgets/SurfaceWidget.d.ts.map +1 -0
  190. package/dist/types/src/components/ChatThread/widgets/index.d.ts +1 -0
  191. package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -1
  192. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +6 -0
  193. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
  194. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +1 -0
  195. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -1
  196. package/dist/types/src/components/TaskList/TaskList.d.ts +8 -0
  197. package/dist/types/src/components/TaskList/TaskList.d.ts.map +1 -1
  198. package/dist/types/src/components/TaskList/TaskList.stories.d.ts +5 -2
  199. package/dist/types/src/components/TaskList/TaskList.stories.d.ts.map +1 -1
  200. package/dist/types/src/components/Toolbox/Toolbox.d.ts +3 -3
  201. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  202. package/dist/types/src/components/index.d.ts +1 -4
  203. package/dist/types/src/components/index.d.ts.map +1 -1
  204. package/dist/types/src/constants.d.ts +1 -1
  205. package/dist/types/src/constants.d.ts.map +1 -1
  206. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts +2 -2
  207. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -1
  208. package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.d.ts +1 -1
  209. package/dist/types/src/containers/AssistantSettings/AssistantSettings.d.ts.map +1 -0
  210. package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -1
  211. package/dist/types/src/containers/AssistantSettings/OllamaModels.d.ts +12 -0
  212. package/dist/types/src/containers/AssistantSettings/OllamaModels.d.ts.map +1 -0
  213. package/dist/types/src/{components/TemplateEditor/TemplateEditor.stories.d.ts → containers/AssistantSettings/OllamaModels.stories.d.ts} +9 -7
  214. package/dist/types/src/containers/AssistantSettings/OllamaModels.stories.d.ts.map +1 -0
  215. package/dist/types/src/{components → containers}/AssistantSettings/index.d.ts.map +1 -1
  216. package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts +3 -10
  217. package/dist/types/src/containers/ChatArticle/ChatArticle.d.ts.map +1 -1
  218. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +4 -11
  219. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -1
  220. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -1
  221. package/dist/types/src/containers/IntegrationPrompt/IntegrationPrompt.d.ts +13 -0
  222. package/dist/types/src/containers/IntegrationPrompt/IntegrationPrompt.d.ts.map +1 -0
  223. package/dist/types/src/containers/IntegrationPrompt/index.d.ts +2 -0
  224. package/dist/types/src/{components/RoutineProperties → containers/IntegrationPrompt}/index.d.ts.map +1 -1
  225. package/dist/types/src/containers/PlanArticle/PlanArticle.d.ts.map +1 -1
  226. package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts +15 -0
  227. package/dist/types/src/containers/SpaceHomePrompt/SpaceHomePrompt.d.ts.map +1 -0
  228. package/dist/types/src/containers/SpaceHomePrompt/index.d.ts +2 -0
  229. package/dist/types/src/containers/SpaceHomePrompt/index.d.ts.map +1 -0
  230. package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts +13 -0
  231. package/dist/types/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.d.ts.map +1 -0
  232. package/dist/types/src/containers/SpaceHomeSuggestions/index.d.ts +2 -0
  233. package/dist/types/src/containers/SpaceHomeSuggestions/index.d.ts.map +1 -0
  234. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -1
  235. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -1
  236. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts +1 -1
  237. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts.map +1 -1
  238. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -1
  239. package/dist/types/src/containers/index.d.ts +4 -3
  240. package/dist/types/src/containers/index.d.ts.map +1 -1
  241. package/dist/types/src/execution-graph/execution-graph.d.ts +20 -1
  242. package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -1
  243. package/dist/types/src/execution-graph/index.d.ts +3 -2
  244. package/dist/types/src/execution-graph/index.d.ts.map +1 -1
  245. package/dist/types/src/execution-graph/pending-block-status.d.ts +26 -0
  246. package/dist/types/src/execution-graph/pending-block-status.d.ts.map +1 -0
  247. package/dist/types/src/execution-graph/pending-block-status.test.d.ts +2 -0
  248. package/dist/types/src/execution-graph/pending-block-status.test.d.ts.map +1 -0
  249. package/dist/types/src/execution-graph/span-tree.d.ts +13 -0
  250. package/dist/types/src/execution-graph/span-tree.d.ts.map +1 -1
  251. package/dist/types/src/extensions/index.d.ts +1 -1
  252. package/dist/types/src/extensions/index.d.ts.map +1 -1
  253. package/dist/types/src/extensions/prompt-extension.d.ts +1 -1
  254. package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -1
  255. package/dist/types/src/feed-logger.d.ts +3 -2
  256. package/dist/types/src/feed-logger.d.ts.map +1 -1
  257. package/dist/types/src/hooks/index.d.ts +4 -2
  258. package/dist/types/src/hooks/index.d.ts.map +1 -1
  259. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  260. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  261. package/dist/types/src/hooks/useHomeSuggestions.d.ts +8 -0
  262. package/dist/types/src/hooks/useHomeSuggestions.d.ts.map +1 -0
  263. package/dist/types/src/hooks/usePresets.d.ts +6 -2
  264. package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
  265. package/dist/types/src/hooks/useProcessEphemeralStatus.d.ts +10 -0
  266. package/dist/types/src/hooks/useProcessEphemeralStatus.d.ts.map +1 -0
  267. package/dist/types/src/hooks/useSkillRegistry.d.ts +21 -0
  268. package/dist/types/src/hooks/useSkillRegistry.d.ts.map +1 -0
  269. package/dist/types/src/hooks/useTraceMessages.d.ts +12 -0
  270. package/dist/types/src/hooks/useTraceMessages.d.ts.map +1 -0
  271. package/dist/types/src/index.d.ts +1 -1
  272. package/dist/types/src/index.d.ts.map +1 -1
  273. package/dist/types/src/meta.d.ts +32 -2
  274. package/dist/types/src/meta.d.ts.map +1 -1
  275. package/dist/types/src/operations/create-chat.d.ts.map +1 -1
  276. package/dist/types/src/operations/fork-chat.d.ts.map +1 -1
  277. package/dist/types/src/operations/generate-home-suggestions.d.ts +5 -0
  278. package/dist/types/src/operations/generate-home-suggestions.d.ts.map +1 -0
  279. package/dist/types/src/operations/generate-home-suggestions.test.d.ts +2 -0
  280. package/dist/types/src/operations/generate-home-suggestions.test.d.ts.map +1 -0
  281. package/dist/types/src/operations/index.d.ts.map +1 -1
  282. package/dist/types/src/operations/resolve-navigation-targets.d.ts +3 -15
  283. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -1
  284. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +2 -2
  285. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -1
  286. package/dist/types/src/paths.d.ts +1 -1
  287. package/dist/types/src/paths.d.ts.map +1 -1
  288. package/dist/types/src/plugin.workerd.d.ts +2 -0
  289. package/dist/types/src/plugin.workerd.d.ts.map +1 -0
  290. package/dist/types/src/processor/presets.d.ts +20 -9
  291. package/dist/types/src/processor/presets.d.ts.map +1 -1
  292. package/dist/types/src/processor/processor.d.ts +33 -209
  293. package/dist/types/src/processor/processor.d.ts.map +1 -1
  294. package/dist/types/src/skills/assistant/index.d.ts +2 -0
  295. package/dist/types/src/skills/assistant/index.d.ts.map +1 -0
  296. package/dist/types/src/skills/assistant/skill.d.ts +4 -0
  297. package/dist/types/src/skills/assistant/skill.d.ts.map +1 -0
  298. package/dist/types/src/skills/assistant/skill.node.test.d.ts +2 -0
  299. package/dist/types/src/skills/assistant/skill.node.test.d.ts.map +1 -0
  300. package/dist/types/src/skills/index.d.ts.map +1 -0
  301. package/dist/types/src/templates/daily-digest.d.ts +2 -2
  302. package/dist/types/src/templates/daily-digest.d.ts.map +1 -1
  303. package/dist/types/src/templates/index.d.ts +3 -3
  304. package/dist/types/src/templates/index.d.ts.map +1 -1
  305. package/dist/types/src/templates/research-brief.d.ts +2 -2
  306. package/dist/types/src/templates/research-brief.d.ts.map +1 -1
  307. package/dist/types/src/templates/routine-templates.test.d.ts +2 -0
  308. package/dist/types/src/templates/routine-templates.test.d.ts.map +1 -0
  309. package/dist/types/src/templates/scaffold.d.ts +9 -9
  310. package/dist/types/src/templates/scaffold.d.ts.map +1 -1
  311. package/dist/types/src/testing/test-generator.d.ts +1 -1
  312. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  313. package/dist/types/src/testing/test-sequence.d.ts +1 -8
  314. package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
  315. package/dist/types/src/testing/test-trace.d.ts.map +1 -1
  316. package/dist/types/src/translations.d.ts.map +1 -1
  317. package/dist/types/src/types/Assistant.d.ts +5 -12
  318. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  319. package/dist/types/src/types/AssistantCapabilities.d.ts +21 -0
  320. package/dist/types/src/types/AssistantCapabilities.d.ts.map +1 -1
  321. package/dist/types/src/types/AssistantEvents.d.ts.map +1 -1
  322. package/dist/types/src/types/AssistantOperation.d.ts +17 -110
  323. package/dist/types/src/types/AssistantOperation.d.ts.map +1 -1
  324. package/dist/types/src/types/ChatSurface.d.ts +12 -0
  325. package/dist/types/src/types/ChatSurface.d.ts.map +1 -0
  326. package/dist/types/src/types/Ollama.d.ts +44 -0
  327. package/dist/types/src/types/Ollama.d.ts.map +1 -0
  328. package/dist/types/src/types/Settings.d.ts +5 -4
  329. package/dist/types/src/types/Settings.d.ts.map +1 -1
  330. package/dist/types/src/types/index.d.ts +2 -0
  331. package/dist/types/src/types/index.d.ts.map +1 -1
  332. package/dist/types/src/types/service.d.ts +4 -3
  333. package/dist/types/src/types/service.d.ts.map +1 -1
  334. package/dist/types/src/util/error-cause.d.ts +3 -0
  335. package/dist/types/src/util/error-cause.d.ts.map +1 -0
  336. package/dist/types/src/util/suggestions.d.ts +1 -1
  337. package/dist/types/tsconfig.tsbuildinfo +1 -1
  338. package/dx.config.ts +38 -0
  339. package/package.json +103 -90
  340. package/src/AssistantPlugin.conversations.json +1 -1
  341. package/src/AssistantPlugin.node.ts +5 -5
  342. package/src/AssistantPlugin.test.ts +27 -41
  343. package/src/AssistantPlugin.ts +14 -12
  344. package/src/AssistantPlugin.workerd.ts +15 -6
  345. package/src/capabilities/agent-hydrator.ts +1 -2
  346. package/src/capabilities/agent-service.ts +7 -5
  347. package/src/capabilities/ai-context.ts +7 -32
  348. package/src/capabilities/ai-service.ts +3 -2
  349. package/src/capabilities/app-graph-builder.ts +43 -28
  350. package/src/capabilities/automation-templates.ts +3 -3
  351. package/src/capabilities/companion-chat-provisioner.ts +22 -6
  352. package/src/capabilities/{integration-provider.ts → connector.ts} +7 -12
  353. package/src/capabilities/create-object.ts +9 -26
  354. package/src/capabilities/index.ts +4 -12
  355. package/src/capabilities/markdown-extension.ts +7 -4
  356. package/src/capabilities/navigation-resolver.ts +20 -0
  357. package/src/capabilities/react-surface.tsx +55 -52
  358. package/src/capabilities/settings.ts +2 -2
  359. package/src/capabilities/skill-definition.ts +72 -0
  360. package/src/capabilities/state.ts +8 -1
  361. package/src/components/AgentProperties/AgentProperties.stories.tsx +1 -2
  362. package/src/components/AgentProperties/AgentProperties.tsx +1 -1
  363. package/src/components/Chat/Chat.stories.tsx +94 -0
  364. package/src/components/Chat/Chat.tsx +67 -16
  365. package/src/components/Chat/events.ts +0 -6
  366. package/src/components/ChatPrompt/ChatActions.tsx +185 -20
  367. package/src/components/ChatPrompt/ChatMcpErrors.tsx +1 -1
  368. package/src/components/ChatPrompt/ChatOptions.stories.tsx +3 -3
  369. package/src/components/ChatPrompt/ChatOptions.tsx +43 -50
  370. package/src/components/ChatPrompt/ChatPrompt.tsx +31 -47
  371. package/src/components/ChatPrompt/ChatReferences.tsx +1 -1
  372. package/src/components/ChatPrompt/useChatVoiceInput.ts +103 -0
  373. package/src/components/ChatThread/Anchor.stories.tsx +1 -1
  374. package/src/components/ChatThread/ChatThread.stories.tsx +7 -16
  375. package/src/components/ChatThread/DEBUG.md +23 -0
  376. package/src/components/ChatThread/MarkdownStream.stories.tsx +3 -3
  377. package/src/components/ChatThread/registry.tsx +43 -17
  378. package/src/components/ChatThread/widgets/ReasoningWidget.stories.tsx +2 -2
  379. package/src/components/ChatThread/widgets/SummaryWidget.tsx +1 -1
  380. package/src/components/ChatThread/widgets/SurfaceWidget.tsx +41 -0
  381. package/src/components/ChatThread/widgets/ToolWidget.tsx +1 -1
  382. package/src/components/ChatThread/widgets/index.ts +1 -0
  383. package/src/components/ProcessTree/ProcessTree.stories.tsx +7 -0
  384. package/src/components/ProcessTree/ProcessTree.tsx +183 -88
  385. package/src/components/TaskList/TaskList.stories.tsx +24 -3
  386. package/src/components/TaskList/TaskList.tsx +122 -28
  387. package/src/components/ToolBlock/ToolBlock.tsx +1 -1
  388. package/src/components/Toolbox/Toolbox.tsx +11 -11
  389. package/src/components/index.ts +1 -6
  390. package/src/constants.ts +1 -1
  391. package/src/containers/AgentArticle/AgentArticle.stories.tsx +12 -13
  392. package/src/containers/AgentArticle/AgentArticle.tsx +10 -10
  393. package/src/{components → containers}/AssistantSettings/AssistantSettings.stories.tsx +3 -2
  394. package/src/containers/AssistantSettings/AssistantSettings.tsx +90 -0
  395. package/src/containers/AssistantSettings/OllamaModels.stories.tsx +108 -0
  396. package/src/containers/AssistantSettings/OllamaModels.tsx +255 -0
  397. package/src/containers/ChatArticle/ChatArticle.stories.tsx +3 -3
  398. package/src/containers/ChatArticle/ChatArticle.tsx +25 -28
  399. package/src/containers/ChatCompanion/ChatCompanion.tsx +27 -27
  400. package/src/containers/ChatDialog/ChatDialog.tsx +10 -7
  401. package/src/containers/IntegrationPrompt/IntegrationPrompt.tsx +79 -0
  402. package/src/containers/IntegrationPrompt/index.ts +5 -0
  403. package/src/containers/PlanArticle/PlanArticle.tsx +5 -1
  404. package/src/containers/SpaceHomePrompt/SpaceHomePrompt.tsx +107 -0
  405. package/src/containers/SpaceHomePrompt/index.ts +5 -0
  406. package/src/containers/SpaceHomeSuggestions/SpaceHomeSuggestions.tsx +83 -0
  407. package/src/containers/SpaceHomeSuggestions/index.ts +5 -0
  408. package/src/containers/TracePanel/TracePanel.stories.tsx +89 -47
  409. package/src/containers/TracePanel/TracePanel.tsx +15 -37
  410. package/src/containers/TracePanel/dxn-extractor.test.ts +2 -2
  411. package/src/containers/TriggerStatus/TriggerStatus.tsx +10 -6
  412. package/src/containers/index.ts +4 -3
  413. package/src/execution-graph/SPEC.md +1 -1
  414. package/src/execution-graph/execution-graph.test.ts +213 -25
  415. package/src/execution-graph/execution-graph.ts +337 -70
  416. package/src/execution-graph/index.ts +15 -5
  417. package/src/execution-graph/pending-block-status.test.ts +114 -0
  418. package/src/execution-graph/pending-block-status.ts +88 -0
  419. package/src/execution-graph/span-tree.test.ts +33 -1
  420. package/src/execution-graph/span-tree.ts +43 -2
  421. package/src/execution-graph/sub-agent-delegation.test.ts +34 -19
  422. package/src/extensions/index.ts +1 -1
  423. package/src/extensions/prompt-extension.ts +102 -73
  424. package/src/feed-logger.ts +24 -22
  425. package/src/functions/services.test.ts +4 -4
  426. package/src/hooks/index.ts +4 -2
  427. package/src/hooks/useChatProcessor.ts +12 -16
  428. package/src/hooks/useChatServices.ts +2 -2
  429. package/src/hooks/useChatToolbarActions.ts +5 -5
  430. package/src/hooks/useContextBinder.ts +2 -4
  431. package/src/hooks/useDebug.ts +2 -2
  432. package/src/hooks/useHomeSuggestions.ts +55 -0
  433. package/src/hooks/usePresets.ts +80 -11
  434. package/src/hooks/useProcessEphemeralStatus.ts +192 -0
  435. package/src/hooks/useReferencesProvider.ts +1 -1
  436. package/src/hooks/useSkillRegistry.ts +125 -0
  437. package/src/hooks/useTraceMessages.ts +41 -0
  438. package/src/index.ts +1 -1
  439. package/src/meta.ts +3 -31
  440. package/src/operations/create-chat.ts +11 -12
  441. package/src/operations/fork-chat.ts +15 -20
  442. package/src/operations/generate-home-suggestions.test.ts +103 -0
  443. package/src/operations/generate-home-suggestions.ts +116 -0
  444. package/src/operations/index.ts +1 -0
  445. package/src/operations/prompt.node.test.ts +14 -17
  446. package/src/operations/resolve-navigation-targets.ts +32 -19
  447. package/src/operations/run-prompt-in-new-chat.ts +34 -35
  448. package/src/operations/update-chat-name.ts +2 -2
  449. package/src/paths.ts +5 -3
  450. package/src/plugin.workerd.ts +5 -0
  451. package/src/processor/presets.ts +38 -61
  452. package/src/processor/processor.node.test.ts +72 -2
  453. package/src/processor/processor.ts +91 -21
  454. package/src/skills/assistant/index.ts +5 -0
  455. package/src/{blueprints/assistant/blueprint.node.test.ts → skills/assistant/skill.node.test.ts} +8 -8
  456. package/src/{blueprints/assistant/blueprint.ts → skills/assistant/skill.ts} +9 -9
  457. package/src/templates/daily-digest.ts +10 -12
  458. package/src/templates/index.ts +3 -3
  459. package/src/templates/research-brief.ts +15 -13
  460. package/src/templates/routine-templates.test.ts +55 -0
  461. package/src/templates/scaffold.ts +22 -57
  462. package/src/testing/data/trace-timeline-multiple.dx.json +1 -1
  463. package/src/testing/data/trace-timeline-remote.dx.json +1 -1
  464. package/src/testing/data/trace-timeline.dx.json +3430 -1093
  465. package/src/testing/test-generator.test.ts +26 -22
  466. package/src/testing/test-generator.ts +4 -8
  467. package/src/testing/test-trace.ts +2 -1
  468. package/src/testing/trace-timeline.node.test.ts +14 -14
  469. package/src/translations.ts +74 -31
  470. package/src/types/Assistant.ts +3 -1
  471. package/src/types/AssistantCapabilities.ts +24 -3
  472. package/src/types/AssistantEvents.ts +1 -1
  473. package/src/types/AssistantOperation.ts +22 -33
  474. package/src/types/ChatSurface.ts +16 -0
  475. package/src/types/Ollama.ts +59 -0
  476. package/src/types/Settings.ts +12 -10
  477. package/src/types/index.ts +3 -0
  478. package/src/types/service.ts +14 -14
  479. package/src/util/error-cause.ts +21 -0
  480. package/src/util/suggestions.ts +1 -1
  481. package/dist/lib/neutral/AgentArticle-K7XM46OQ.mjs.map +0 -7
  482. package/dist/lib/neutral/AssistantSettings-GG52BLKS.mjs +0 -40
  483. package/dist/lib/neutral/AssistantSettings-GG52BLKS.mjs.map +0 -7
  484. package/dist/lib/neutral/BlueprintArticle-ZBOZNZM7.mjs +0 -27
  485. package/dist/lib/neutral/BlueprintArticle-ZBOZNZM7.mjs.map +0 -7
  486. package/dist/lib/neutral/ChatCompanion-LBUHYWQG.mjs.map +0 -7
  487. package/dist/lib/neutral/ChatDialog-DCA6FLOV.mjs.map +0 -7
  488. package/dist/lib/neutral/PlanArticle-TS5ULWYS.mjs.map +0 -7
  489. package/dist/lib/neutral/RoutineArticle-5NYXHRG6.mjs +0 -119
  490. package/dist/lib/neutral/RoutineArticle-5NYXHRG6.mjs.map +0 -7
  491. package/dist/lib/neutral/RoutineList-SO5ETHNT.mjs +0 -48
  492. package/dist/lib/neutral/RoutineList-SO5ETHNT.mjs.map +0 -7
  493. package/dist/lib/neutral/RoutineProperties-FISLMW2R.mjs +0 -17
  494. package/dist/lib/neutral/RoutineProperties-FISLMW2R.mjs.map +0 -7
  495. package/dist/lib/neutral/TracePanel-KTZJ6JNR.mjs.map +0 -7
  496. package/dist/lib/neutral/TriggerStatus-X7Y5JFZJ.mjs.map +0 -7
  497. package/dist/lib/neutral/agent-hydrator-PJBYVMBW.mjs.map +0 -7
  498. package/dist/lib/neutral/agent-service-WCAP5MLI.mjs.map +0 -7
  499. package/dist/lib/neutral/ai-context-7WRHWYXY.mjs +0 -42
  500. package/dist/lib/neutral/ai-context-7WRHWYXY.mjs.map +0 -7
  501. package/dist/lib/neutral/ai-service-AADUIKBY.mjs.map +0 -7
  502. package/dist/lib/neutral/app-graph-builder-WUFHQH3Y.mjs.map +0 -7
  503. package/dist/lib/neutral/automation-templates-M2XQWGR6.mjs +0 -115
  504. package/dist/lib/neutral/automation-templates-M2XQWGR6.mjs.map +0 -7
  505. package/dist/lib/neutral/blueprint-definition-MH2QLYQH.mjs +0 -39
  506. package/dist/lib/neutral/blueprint-definition-MH2QLYQH.mjs.map +0 -7
  507. package/dist/lib/neutral/blueprints/index.mjs +0 -8
  508. package/dist/lib/neutral/chunk-5H6UJHLF.mjs.map +0 -7
  509. package/dist/lib/neutral/chunk-HLANPOBA.mjs.map +0 -7
  510. package/dist/lib/neutral/chunk-KLYLW4WH.mjs.map +0 -7
  511. package/dist/lib/neutral/chunk-QAZMOFPI.mjs +0 -130
  512. package/dist/lib/neutral/chunk-QAZMOFPI.mjs.map +0 -7
  513. package/dist/lib/neutral/chunk-RKVVK3R3.mjs.map +0 -7
  514. package/dist/lib/neutral/chunk-SMFJD7BP.mjs +0 -8
  515. package/dist/lib/neutral/chunk-XYHPOGTK.mjs +0 -43
  516. package/dist/lib/neutral/chunk-XYHPOGTK.mjs.map +0 -7
  517. package/dist/lib/neutral/chunk-YXRGZYYH.mjs.map +0 -7
  518. package/dist/lib/neutral/companion-chat-provisioner-YZZ73P6E.mjs.map +0 -7
  519. package/dist/lib/neutral/create-chat-SGGQ6HVN.mjs.map +0 -7
  520. package/dist/lib/neutral/create-object-U2SOFZLR.mjs.map +0 -7
  521. package/dist/lib/neutral/fork-chat-34KEF4ZJ.mjs.map +0 -7
  522. package/dist/lib/neutral/integration-provider-RBD3AFJU.mjs.map +0 -7
  523. package/dist/lib/neutral/markdown-extension-YMIFDMYF.mjs +0 -110
  524. package/dist/lib/neutral/markdown-extension-YMIFDMYF.mjs.map +0 -7
  525. package/dist/lib/neutral/react-surface-XRTBW5OJ.mjs.map +0 -7
  526. package/dist/lib/neutral/resolve-navigation-targets-ZHIMMH7L.mjs +0 -22
  527. package/dist/lib/neutral/resolve-navigation-targets-ZHIMMH7L.mjs.map +0 -7
  528. package/dist/lib/neutral/run-prompt-in-new-chat-D5IIE2C7.mjs.map +0 -7
  529. package/dist/lib/neutral/state-H3G7QCU6.mjs.map +0 -7
  530. package/dist/types/src/blueprints/assistant/blueprint.d.ts +0 -4
  531. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +0 -1
  532. package/dist/types/src/blueprints/assistant/blueprint.node.test.d.ts +0 -2
  533. package/dist/types/src/blueprints/assistant/blueprint.node.test.d.ts.map +0 -1
  534. package/dist/types/src/blueprints/assistant/index.d.ts +0 -2
  535. package/dist/types/src/blueprints/assistant/index.d.ts.map +0 -1
  536. package/dist/types/src/blueprints/index.d.ts.map +0 -1
  537. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -5
  538. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  539. package/dist/types/src/capabilities/integration-provider.d.ts.map +0 -1
  540. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +0 -1
  541. package/dist/types/src/components/RoutineProperties/RoutineProperties.d.ts +0 -7
  542. package/dist/types/src/components/RoutineProperties/RoutineProperties.d.ts.map +0 -1
  543. package/dist/types/src/components/RoutineProperties/RoutineProperties.stories.d.ts +0 -15
  544. package/dist/types/src/components/RoutineProperties/RoutineProperties.stories.d.ts.map +0 -1
  545. package/dist/types/src/components/RoutineProperties/index.d.ts +0 -2
  546. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +0 -13
  547. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +0 -1
  548. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +0 -1
  549. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +0 -21
  550. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +0 -1
  551. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +0 -16
  552. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +0 -1
  553. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts +0 -12
  554. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +0 -1
  555. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +0 -3
  556. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +0 -1
  557. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +0 -8
  558. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +0 -1
  559. package/dist/types/src/components/TemplateEditor/index.d.ts +0 -2
  560. package/dist/types/src/components/TemplateEditor/index.d.ts.map +0 -1
  561. package/dist/types/src/components/TemplateEditor/types.d.ts +0 -18
  562. package/dist/types/src/components/TemplateEditor/types.d.ts.map +0 -1
  563. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +0 -6
  564. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +0 -1
  565. package/dist/types/src/containers/BlueprintArticle/index.d.ts +0 -2
  566. package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +0 -1
  567. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts +0 -6
  568. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts.map +0 -1
  569. package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts +0 -15
  570. package/dist/types/src/containers/RoutineArticle/RoutineArticle.stories.d.ts.map +0 -1
  571. package/dist/types/src/containers/RoutineArticle/index.d.ts +0 -2
  572. package/dist/types/src/containers/RoutineArticle/index.d.ts.map +0 -1
  573. package/dist/types/src/containers/RoutineList/RoutineList.d.ts +0 -6
  574. package/dist/types/src/containers/RoutineList/RoutineList.d.ts.map +0 -1
  575. package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts +0 -21
  576. package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts.map +0 -1
  577. package/dist/types/src/containers/RoutineList/index.d.ts +0 -2
  578. package/dist/types/src/containers/RoutineList/index.d.ts.map +0 -1
  579. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +0 -66
  580. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +0 -1
  581. package/dist/types/src/hooks/useOnline.d.ts +0 -3
  582. package/dist/types/src/hooks/useOnline.d.ts.map +0 -1
  583. package/dist/types/src/templates/automation-templates.test.d.ts +0 -2
  584. package/dist/types/src/templates/automation-templates.test.d.ts.map +0 -1
  585. package/src/blueprints/assistant/index.ts +0 -5
  586. package/src/capabilities/blueprint-definition.ts +0 -65
  587. package/src/components/AssistantSettings/AssistantSettings.tsx +0 -43
  588. package/src/components/RoutineProperties/RoutineProperties.stories.tsx +0 -59
  589. package/src/components/RoutineProperties/RoutineProperties.tsx +0 -23
  590. package/src/components/RoutineProperties/index.ts +0 -5
  591. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +0 -95
  592. package/src/components/TemplateEditor/TemplateEditor.tsx +0 -80
  593. package/src/components/TemplateEditor/TemplateForm.stories.tsx +0 -76
  594. package/src/components/TemplateEditor/TemplateForm.tsx +0 -204
  595. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +0 -274
  596. package/src/components/TemplateEditor/extensions/index.ts +0 -6
  597. package/src/components/TemplateEditor/extensions/xml-extension.ts +0 -64
  598. package/src/components/TemplateEditor/index.ts +0 -5
  599. package/src/components/TemplateEditor/types.tsx +0 -28
  600. package/src/containers/BlueprintArticle/BlueprintArticle.tsx +0 -29
  601. package/src/containers/BlueprintArticle/index.ts +0 -5
  602. package/src/containers/RoutineArticle/RoutineArticle.stories.tsx +0 -75
  603. package/src/containers/RoutineArticle/RoutineArticle.tsx +0 -109
  604. package/src/containers/RoutineArticle/index.ts +0 -5
  605. package/src/containers/RoutineList/RoutineList.stories.tsx +0 -130
  606. package/src/containers/RoutineList/RoutineList.tsx +0 -50
  607. package/src/containers/RoutineList/index.ts +0 -5
  608. package/src/hooks/useBlueprintRegistry.ts +0 -125
  609. package/src/hooks/useOnline.ts +0 -10
  610. package/src/templates/automation-templates.test.ts +0 -66
  611. package/src/testing/trace-timeline.node.conversations.json +0 -1
  612. /package/dist/lib/neutral/{ChatArticle-VNVZCDUR.mjs.map → ChatArticle-OO7GGEFW.mjs.map} +0 -0
  613. /package/dist/lib/neutral/{edge-model-resolver-BBVOJBGJ.mjs.map → edge-model-resolver-WDJWDZTT.mjs.map} +0 -0
  614. /package/dist/lib/neutral/{blueprints → extensions}/index.mjs.map +0 -0
  615. /package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.stories.d.ts +0 -0
  616. /package/dist/types/src/{components → containers}/AssistantSettings/index.d.ts +0 -0
  617. /package/dist/types/src/{blueprints → skills}/index.d.ts +0 -0
  618. /package/src/{components → containers}/AssistantSettings/index.ts +0 -0
  619. /package/src/{blueprints → skills}/index.ts +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/AssistantPlugin.ts", "raw-loader:/__w/dxos/dxos/packages/plugins/plugin-assistant/PLUGIN.mdl?raw"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { ActivationEvent, ActivationEvents, Capability, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { AiContext } from '@dxos/assistant';\nimport { Agent, Chat, McpServer, Memory, Plan } from '@dxos/assistant-toolkit';\nimport { Blueprint, Routine } from '@dxos/compute';\nimport { Sequence } from '@dxos/conductor';\nimport { Feed } from '@dxos/echo';\nimport { ClientEvents } from '@dxos/plugin-client';\nimport { DeckEvents } from '@dxos/plugin-deck';\nimport { MarkdownEvents } from '@dxos/plugin-markdown';\nimport { Text } from '@dxos/schema';\nimport { HasSubject, Message } from '@dxos/types';\n\nimport {\n AgentHydrator,\n AgentRuntime,\n AiContext as AiContextCapability,\n AiService,\n IntegrationProvider,\n AppGraphBuilder,\n AutomationTemplates,\n AssistantState,\n BlueprintDefinition,\n CompanionChatProvisioner,\n CreateObject,\n EdgeModelResolver,\n LocalModelResolver,\n MarkdownExtension,\n Migrations,\n OperationHandler,\n ReactSurface,\n Settings,\n Toolkit,\n} from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { AssistantEvents, type AssistantPluginOptions } from '#types';\n\n// eslint-disable-next-line import/no-relative-packages\nimport pluginSpec from '../PLUGIN.mdl?raw';\n\nconst StateReady = AppActivationEvents.createStateEvent(meta.id);\n\nexport const AssistantPlugin = Plugin.define<AssistantPluginOptions | void>(meta)\n .pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addBlueprintDefinitionModule({ activate: BlueprintDefinition }),\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSchemaModule({\n schema: [\n Chat.Chat,\n Chat.CompanionTo,\n Blueprint.Blueprint,\n AiContext.Binding,\n Feed.Feed,\n HasSubject.HasSubject,\n Message.Message,\n Routine.Routine,\n Agent.Agent,\n McpServer.McpServer,\n Plan.Plan,\n Sequence.Sequence,\n Memory.Memory,\n Text.Text,\n ],\n }),\n AppPlugin.addSettingsModule({ activate: Settings }),\n AppPlugin.addSurfaceModule({\n activate: ReactSurface,\n firesBeforeActivation: [AppActivationEvents.SetupArtifactDefinition],\n }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.addModule({\n id: 'automation-templates',\n activatesOn: AppActivationEvents.SetupSchema,\n activate: AutomationTemplates,\n }),\n Plugin.addModule({\n id: 'markdown',\n activatesOn: MarkdownEvents.SetupExtensions,\n activate: MarkdownExtension,\n }),\n Plugin.addModule({\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: AppActivationEvents.SetupSettings,\n firesAfterActivation: [StateReady],\n activate: AssistantState,\n }),\n Plugin.addModule({\n activatesOn: AssistantEvents.SetupAiServiceProviders,\n activate: EdgeModelResolver,\n }),\n Plugin.addModule({\n activatesOn: AssistantEvents.SetupAiServiceProviders,\n activate: LocalModelResolver,\n }),\n Plugin.addModule((options) => ({\n id: Capability.getModuleTag(AiService),\n firesBeforeActivation: [AssistantEvents.SetupAiServiceProviders],\n // TODO(dmaretskyi): This should activate lazily when the AI chat is used.\n activatesOn: ActivationEvents.SetupProcessManager,\n activate: () => AiService(options),\n })),\n Plugin.addModule({\n // Process-affinity `AiContext.Service` LayerSpec — needed so operations\n // dispatched as their own processes (e.g. via `Operation.invoke` from\n // `AiSession.createRequest` or `TriggerDispatcher`) can resolve\n // conversation-scoped services without an inline `Effect.provideService`\n // upstream. See `capabilities/ai-context.ts` for the rationale.\n activatesOn: ActivationEvents.SetupProcessManager,\n activate: AiContextCapability,\n }),\n Plugin.addModule({\n activatesOn: ActivationEvents.SetupProcessManager,\n activate: AgentRuntime,\n }),\n )\n .pipe(\n Plugin.addModule({\n // TODO(wittjosiah): Use a different event.\n activatesOn: ActivationEvents.Startup,\n activate: Toolkit,\n }),\n Plugin.addModule({\n activatesOn: ActivationEvents.ProcessManagerReady,\n activate: AgentHydrator,\n }),\n Plugin.addModule({\n activatesOn: ActivationEvent.allOf(\n ActivationEvents.ProcessManagerReady,\n AppActivationEvents.AppGraphReady,\n DeckEvents.StateReady,\n StateReady,\n ),\n activate: CompanionChatProvisioner,\n }),\n Plugin.addModule({\n activatesOn: ClientEvents.SetupMigration,\n activate: Migrations,\n }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.SetupIntegrationProviders,\n activate: IntegrationProvider,\n }),\n AppPlugin.addPluginAssetModule({\n asset: { pluginId: meta.id, path: 'PLUGIN.mdl', content: pluginSpec, mimeType: 'application/x-mdl' },\n }),\n Plugin.make,\n );\n\nexport default AssistantPlugin;\n", "---\nid: org.dxos.plugin.assistant\nname: AssistantPlugin\nversion: 0.1.0\n---\n\nAn AI assistant plugin for DXOS Composer that provides conversational AI, blueprint-driven automation,\nmulti-provider LLM support, and deep ECHO integration.\n\n## Extensions\n\nThe following extension dialects are used in this document.\nEach extension is defined in the Appendix or resolved via its URI.\n\n| Term | URI |\n|-------------|-------------------------------|\n| `type` | `org.dxos.mdl.type@1.0` |\n| `feat` | `org.dxos.mdl.feat@1.0` |\n| `test` | `org.dxos.mdl.test@1.0` |\n| `component` | `org.dxos.mdl.component@1.0` |\n| `op` | `org.dxos.mdl.op@1.0` |\n\n## Types\n\n```mdl\ntype ModelProvider\n literals: edge | ollama | lmstudio\n```\n\n```mdl\ntype ChatView\n literals: normal | summary | thinking | debug\n```\n\n```mdl\ntype ModelDefaults\n fields:\n edge?: string\n ollama?: string\n lmstudio?: string\n```\n\n```mdl\ntype Settings\n fields:\n customPrompts?: boolean\n chatView?: ChatView\n modelProvider?: ModelProvider\n modelDefaults?: ModelDefaults\n tracePanelDebug?: boolean\n```\n\n```mdl\ntype Chat\n fields:\n id: string\n name?: string\n messages: Message[]\n```\n\n```mdl\ntype Message\n fields:\n id: string\n role: user | assistant | system\n content: string\n timestamp: string\n```\n\n```mdl\ntype NavigationTarget\n fields:\n path: string\n label: string\n type: string\n```\n\n```mdl\ntype BlueprintForm\n fields:\n key: string\n name: string\n description?: string\n```\n\n## Components\n\n```mdl\ncomponent ChatPanel\n desc: Main conversational interface for interacting with the AI assistant.\n props:\n chat: Chat\n companionTo?: Obj\n state:\n messages: Message[]\n pending: boolean\n view: ChatView\n slots:\n toolbar?: ReactNode\n empty?: ReactNode\n actions:\n sendMessage(content: string)\n clearHistory()\n switchView(view: ChatView)\n emits:\n onMessage(message: Message)\n layout: |\n \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 [toolbar slot] \u2502\n \u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u2502 \u2502\n \u2502 message list \u2502\n \u2502 [empty slot] \u2502\n \u2502 \u2502\n \u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n \u2502 input + send \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n```mdl\ncomponent TracePanel\n desc: Displays the execution trace of an AI operation as a commit graph or raw JSON.\n props:\n chat: Chat\n state:\n debug: boolean\n actions:\n toggleDebug()\n layout: |\n \u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n \u2502 trace / span tree \u2502\n \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n```mdl\ncomponent AssistantSettings\n desc: Settings panel for configuring the AI model provider, model defaults, and chat view.\n props:\n settings: Settings\n emits:\n onChange(settings: Settings)\n```\n\n## Operations\n\n```mdl\nop CreateChat\n desc: Creates a new Chat object and optionally adds it to the active space.\n input:\n db: Database\n name?: string\n addToSpace?: boolean\n output: Chat\n effects: [echo:write]\n```\n\n```mdl\nop UpdateChatName\n desc: Automatically derives and updates the name of a chat using the AI service.\n input:\n chat: Chat\n output: void\n effects: [echo:write, ai:infer]\n```\n\n```mdl\nop SetCurrentChat\n desc: Associates a primary object with a specific companion chat in session state.\n input:\n companionTo: Obj\n chat?: Chat\n output: void\n```\n\n```mdl\nop RunPromptInNewChat\n desc: Creates a new chat, binds context objects and blueprints, then runs a prompt.\n input:\n db: Database\n objects?: Obj[]\n blueprints?: string[]\n prompt: string | RoutineRef\n background?: boolean\n output: Chat\n effects: [echo:write, ai:infer]\n note: |\n When background is true, the prompt runs via the compute runtime without\n opening the chat UI. The returned Chat can be used to track progress.\n```\n\n```mdl\nop EnsureCompanionChat\n desc: Returns the companion chat for an object, creating one if none exists.\n input:\n db: Database\n companionTo: Obj\n output:\n chat: Chat\n persisted: boolean\n effects: [echo:write]\n```\n\n```mdl\nop ResolveNavigationTargets\n desc: Returns navigation paths for objects in the active space, optionally filtered by DXN.\n input:\n query?:\n dxn?: DXN\n output:\n targets: NavigationTarget[]\n```\n\n```mdl\nop OnCreateSpace\n desc: Provisions initial assistant objects when a new space is created.\n input:\n space: Space\n rootCollection: Collection\n output: void\n effects: [echo:write]\n```\n\n```mdl\nop ToggleTracePanelDebug\n desc: Toggles the trace panel between commit-graph and raw JSON debug view.\n input:\n state?: boolean\n output: boolean\n```\n\n## Features\n\n```mdl\nfeat F-1: AI Chat\n\n req F-1.1: User can create a new Chat object in any space.\n req F-1.2: User can type a message and receive a streamed AI response.\n req F-1.3: Chat history is persisted to ECHO and replicated to all peers.\n req F-1.4:\n when: chat has enough messages\n then: chat name is automatically derived from the conversation\n```\n\n```mdl\nfeat F-2: Companion Chat\n\n req F-2.1:\n when: user opens an object that supports companions\n then: a companion chat panel is shown alongside the object\n req F-2.2:\n when: companion chat does not yet exist\n then: op:EnsureCompanionChat creates one and optionally persists it\n req F-2.3:\n when: user sends a message in the companion chat\n then: the primary object is automatically bound as AI context\n```\n\n```mdl\nfeat F-3: Blueprint System\n\n req F-3.1: Blueprints define named AI configurations (instructions, tools, model).\n req F-3.2: Built-in blueprints include: Assistant, Browser, Database, WebSearch, Discord, Linear, Agent, Planning, Memory, Automation, BlueprintManager, AgentWizard.\n req F-3.3:\n when: user selects a blueprint for a chat\n then: chat uses that blueprint's instructions and tool set\n req F-3.4: op:RunPromptInNewChat accepts blueprint keys to bind before sending the prompt.\n```\n\n```mdl\nfeat F-4: Multi-Provider LLM\n\n req F-4.1: Supported providers: DXOS Edge (remote), Ollama (local), LM Studio (local).\n req F-4.2: User can configure the active provider and per-provider default model in Settings.\n req F-4.3:\n when: the active provider is unavailable\n then: AiService falls back to the next registered resolver\n```\n\n```mdl\nfeat F-5: Tool Execution\n\n req F-5.1: The assistant blueprint exposes LayoutOperation.Open and ResolveNavigationTargets as tools.\n req F-5.2: Web search tool is registered via WebSearchToolkit.\n req F-5.3:\n when: AI invokes a tool during a conversation\n then: operation is dispatched via the compute runtime and result returned to the model\n```\n\n```mdl\nfeat F-6: ECHO Integration\n\n req F-6.1: Chat, CompanionTo, Blueprint, Feed, Message, Memory, Plan, Routine, Agent, McpServer, and Sequence schemas are registered with ECHO.\n req F-6.2:\n when: a new space is created\n then: op:OnCreateSpace provisions default assistant objects\n req F-6.3: AiContext.Binding schema supports binding ECHO objects as named context variables in a conversation.\n```\n\n```mdl\nfeat F-7: Execution Trace\n\n req F-7.1: Every AI operation produces a structured span tree captured in the TracePanel.\n req F-7.2: User can toggle between commit-graph and raw JSON views via op:ToggleTracePanelDebug.\n```\n\n## Acceptance\n\n```mdl\ntest T-1: Create chat and send message\n given: a space is open and the assistant plugin is active\n when: user creates a new Chat and sends \"Hello\"\n then:\n - Chat object appears in the space\n - AI response is appended to Chat.messages\n - Chat is persisted to ECHO\n```\n\n```mdl\ntest T-2: Companion chat provisioning\n given: user opens a document with no companion chat\n when: companion panel initializes\n then:\n - op:EnsureCompanionChat creates a new Chat\n - persisted === false until user sends a message\n```\n\n```mdl\ntest T-3: Blueprint binding\n given: a chat exists\n when: user binds the \"WebSearch\" blueprint key\n then:\n - blueprint instructions are applied to the next AI request\n - web search tool is available in the tool list\n```\n\n```mdl\ntest T-4: Model provider switch\n given: assistant settings are open\n when: user switches provider from edge to ollama\n then:\n - Settings.modelProvider === ollama\n - next AI request is routed to the Ollama resolver\n```\n\n```mdl\ntest T-5: Run prompt in background\n given: a database and a prompt string are available\n when: op:RunPromptInNewChat is called with background: true\n then:\n - a new Chat is created and returned\n - the prompt runs via compute runtime without opening the UI\n```\n\n```mdl\ntest T-6: Navigation target resolution\n given: active space contains documents and collections\n when: op:ResolveNavigationTargets is called with no query\n then:\n - returned targets include paths for all top-level navigable objects\n - each target has a non-empty label and type\n```\n\n```mdl\ntest T-7: Trace panel debug toggle\n given: trace panel is showing commit-graph view\n when: op:ToggleTracePanelDebug is invoked with no argument\n then:\n - tracePanelDebug setting flips to true\n - trace panel switches to raw JSON view\n```\n\n---\n\n## Appendix: Extension Definitions\n\nExtension block types used in this document are defined below using\nthe core `ext` primitive \u2014 the only construct the base language provides.\n\n```mdl\next type\n uri: org.dxos.mdl.type@1.0\n desc: A named data structure with typed fields and optional literals.\n fields:\n desc?: Prose\n fields?: FieldMap\n literals?: UnionList\n extends?: TypeRef[]\n```\n\n```mdl\next feat\n uri: org.dxos.mdl.feat@1.0\n desc: A named feature grouping one or more requirements.\n fields:\n desc?: Prose\n req: RequirementList\n nesting: self\n```\n\n```mdl\next test\n uri: org.dxos.mdl.test@1.0\n desc: An acceptance scenario expressed as given / when / then steps.\n fields:\n given?: Step | Step[]\n when?: Step | Step[]\n then: Step | Step[]\n tags?: TagList\n```\n\n```mdl\next component\n uri: org.dxos.mdl.component@1.0\n desc: A UI component with props, internal state, slots, actions, and events.\n fields:\n desc?: Prose\n props?: FieldMap\n state?: FieldMap\n slots?: FieldMap\n actions?: ActionMap\n emits?: EventMap\n layout?: CodeBlock\n```\n\n```mdl\next op\n uri: org.dxos.mdl.op@1.0\n desc: |\n A named operation with typed inputs, outputs, and declared errors.\n Pure ops have no effects or requires. Effectful ops declare both.\n fields:\n desc?: Prose\n input?: FieldMap\n output?: TypeExpr\n errors?: ErrorMap\n effects?: EffectList\n requires?: ServiceList\n note?: Prose\n```\n"],
5
- "mappings": "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",
6
- "names": ["ActivationEvent", "ActivationEvents", "Capability", "Plugin", "AppActivationEvents", "AppPlugin", "AiContext", "Agent", "Chat", "McpServer", "Memory", "Plan", "Blueprint", "Routine", "Sequence", "Feed", "ClientEvents", "DeckEvents", "MarkdownEvents", "Text", "HasSubject", "Message", "AgentHydrator", "AgentRuntime", "AiContextCapability", "AiService", "IntegrationProvider", "AppGraphBuilder", "AutomationTemplates", "AssistantState", "BlueprintDefinition", "CompanionChatProvisioner", "CreateObject", "EdgeModelResolver", "LocalModelResolver", "MarkdownExtension", "Migrations", "OperationHandler", "ReactSurface", "Settings", "Toolkit", "meta", "translations", "AssistantEvents", "StateReady", "AppActivationEvents", "createStateEvent", "meta", "id", "AssistantPlugin", "Plugin", "define", "pipe", "AppPlugin", "addAppGraphModule", "activate", "AppGraphBuilder", "addBlueprintDefinitionModule", "BlueprintDefinition", "addCreateObjectModule", "CreateObject", "addOperationHandlerModule", "OperationHandler", "addSchemaModule", "schema", "Chat", "CompanionTo", "Blueprint", "AiContext", "Binding", "Feed", "HasSubject", "Message", "Routine", "Agent", "McpServer", "Plan", "Sequence", "Memory", "Text", "addSettingsModule", "Settings", "addSurfaceModule", "ReactSurface", "firesBeforeActivation", "SetupArtifactDefinition", "addTranslationsModule", "translations", "addModule", "activatesOn", "SetupSchema", "AutomationTemplates", "MarkdownEvents", "SetupExtensions", "MarkdownExtension", "SetupSettings", "firesAfterActivation", "AssistantState", "AssistantEvents", "SetupAiServiceProviders", "EdgeModelResolver", "LocalModelResolver", "options", "Capability", "getModuleTag", "AiService", "ActivationEvents", "SetupProcessManager", "AiContextCapability", "AgentRuntime", "Startup", "Toolkit", "ProcessManagerReady", "AgentHydrator", "ActivationEvent", "allOf", "AppGraphReady", "DeckEvents", "CompanionChatProvisioner", "ClientEvents", "SetupMigration", "Migrations", "SetupIntegrationProviders", "IntegrationProvider", "addPluginAssetModule", "asset", "pluginId", "path", "content", "pluginSpec", "mimeType", "make"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/containers/ChatArticle/ChatArticle.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { useAtomCapability, useCapability } from '@dxos/app-framework/ui';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { getSpace } from '@dxos/client/echo';\nimport { type Obj } from '@dxos/echo';\nimport { useRegistry } from '@dxos/react-client/echo';\nimport { Panel } from '@dxos/react-ui';\n\nimport { Chat as ChatComponent, type ChatRootProps } from '#components';\nimport { useChatProcessor, useChatServices, useOnline, usePresets } from '#hooks';\nimport { type Assistant, AssistantCapabilities, type ChatType } from '#types';\n\nexport type ChatArticleProps = AppSurface.ObjectSectionProps<ChatType.Chat> & {\n companionTo?: Obj.Unknown;\n} & Pick<ChatRootProps, 'onEvent' | 'onSubmit'>;\n\nexport const ChatArticle = forwardRef<HTMLDivElement, ChatArticleProps>(\n ({ role, attendableId, subject: chat, companionTo, onEvent, onSubmit }, forwardedRef) => {\n const registry = useRegistry();\n const settings = useAtomCapability(AssistantCapabilities.Settings);\n const atomRegistry = useCapability(Capabilities.AtomRegistry);\n const stateAtom = useCapability(AssistantCapabilities.State);\n // Transient (pre-submit) chats have no database; fall back to the companion's space.\n const space = getSpace(chat) ?? getSpace(companionTo);\n const runtime = useChatServices({ id: space?.id });\n\n const [online, setOnline] = useOnline();\n const { preset, ...chatProps } = usePresets(online);\n const processor = useChatProcessor({ space, chat, preset, runtime, registry, settings });\n const pendingSubmitted = useRef(false);\n\n // Reset the one-shot guard when the target conversation changes, so a pending prompt for a new\n // `attendableId` is still auto-submitted within the same mount.\n useEffect(() => {\n pendingSubmitted.current = false;\n }, [attendableId]);\n\n useEffect(() => {\n if (!processor || !attendableId || pendingSubmitted.current) {\n return;\n }\n\n const state = atomRegistry.get(stateAtom);\n const pendingPrompt = state.pendingPrompts[attendableId];\n if (pendingPrompt) {\n pendingSubmitted.current = true;\n atomRegistry.update(stateAtom, (current) => {\n const { [attendableId]: _, ...rest } = current.pendingPrompts;\n return { ...current, pendingPrompts: rest };\n });\n\n void processor.request({ message: pendingPrompt });\n }\n }, [processor, attendableId, atomRegistry, stateAtom]);\n\n const feedTarget = chat?.feed.target;\n const view = (chat?.view as Assistant.ChatView | undefined) ?? settings.chatView;\n\n if (!processor) {\n return null;\n }\n\n return (\n <ChatComponent.Root\n chat={chat}\n feed={feedTarget}\n db={space?.db}\n processor={processor}\n onEvent={onEvent}\n onSubmit={onSubmit}\n >\n <Panel.Root role={role} ref={forwardedRef}>\n <Panel.Toolbar className='bg-toolbar-surface'>\n <ChatComponent.Toolbar classNames='dx-document' attendableId={attendableId} companionTo={companionTo} />\n </Panel.Toolbar>\n <Panel.Content>\n <ChatComponent.Content>\n <div className='dx-container relative'>\n <ChatComponent.Thread viewType={view} />\n {view !== 'summary' && (\n <div className='absolute bottom-2 left-0 right-0'>\n <div className='dx-document px-4'>\n <ChatComponent.Status classNames='px-3 rounded-sm bg-group-surface' />\n </div>\n </div>\n )}\n </div>\n <div className='dx-document px-4 pb-4'>\n <div className='flex flex-col items-center py-2 overflow-hidden'>\n <ChatComponent.TaskList classNames='max-h-[120px] border border-separator rounded-sm text-description' />\n </div>\n <ChatComponent.Prompt\n {...chatProps}\n outline\n preset={preset?.id}\n online={online}\n onOnlineChange={setOnline}\n />\n </div>\n </ChatComponent.Content>\n </Panel.Content>\n </Panel.Root>\n </ChatComponent.Root>\n );\n },\n);\n"],
5
- "mappings": "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",
6
- "names": ["React", "forwardRef", "useEffect", "useRef", "Capabilities", "useAtomCapability", "useCapability", "getSpace", "useRegistry", "Panel", "Chat", "ChatComponent", "useChatProcessor", "useChatServices", "useOnline", "usePresets", "AssistantCapabilities", "ChatArticle", "role", "attendableId", "subject", "chat", "companionTo", "onEvent", "onSubmit", "forwardedRef", "registry", "settings", "Settings", "atomRegistry", "AtomRegistry", "stateAtom", "State", "space", "runtime", "id", "online", "setOnline", "preset", "chatProps", "processor", "pendingSubmitted", "current", "state", "get", "pendingPrompt", "pendingPrompts", "update", "_", "rest", "request", "message", "feedTarget", "feed", "target", "view", "chatView", "Root", "db", "ref", "Toolbar", "className", "classNames", "Content", "div", "Thread", "viewType", "Status", "TaskList", "Prompt", "outline", "onOnlineChange"]
7
- }
@@ -1,8 +0,0 @@
1
- // src/operations/index.ts
2
- import { OperationHandlerSet } from "@dxos/compute";
3
- var AssistantOperationHandlerSet = OperationHandlerSet.lazy(() => import("./create-chat-SGGQ6HVN.mjs"), () => import("./ensure-companion-chat-AMOF3C66.mjs"), () => import("./fork-chat-34KEF4ZJ.mjs"), () => import("./resolve-navigation-targets-ZHIMMH7L.mjs"), () => import("./run-prompt-in-new-chat-D5IIE2C7.mjs"), () => import("./set-current-chat-VWBPSIMZ.mjs"), () => import("./toggle-trace-panel-debug-JGTB6KVJ.mjs"), () => import("./update-chat-name-Y7JWIP64.mjs"));
4
-
5
- export {
6
- AssistantOperationHandlerSet
7
- };
8
- //# sourceMappingURL=chunk-SMFJD7BP.mjs.map
@@ -1,43 +0,0 @@
1
- // src/meta.ts
2
- import { Plugin } from "@dxos/app-framework";
3
- import { DXN } from "@dxos/keys";
4
- import { trim } from "@dxos/util";
5
- var meta = Plugin.makeMeta({
6
- key: DXN.make("org.dxos.plugin.assistant"),
7
- name: "Assistant",
8
- author: "DXOS",
9
- description: trim`
10
- AssistantPlugin brings a conversational AI assistant into DXOS Composer, letting users chat naturally
11
- with objects in their spaces. Every Chat is a first-class ECHO object — messages are persisted,
12
- replicated across peers in real time, and can be bound to any document or collection as a companion
13
- panel that appears alongside the primary view.
14
-
15
- AI capabilities are delivered through a flexible multi-provider model layer. Users can route requests
16
- to the DXOS Edge service, a locally running Ollama instance, or LM Studio, and switch providers at
17
- any time in Settings. Each provider can be configured with a preferred model, and the runtime
18
- automatically falls back when a provider is unavailable.
19
-
20
- Blueprints give every chat a specialised identity. Built-in blueprints cover general assistance,
21
- web browsing, database interaction, web search, Discord and Linear integration, autonomous agents,
22
- planning, memory, automation, and a wizard for authoring new blueprints. Binding a blueprint
23
- changes the system instructions and the tool set exposed to the model in a single step.
24
-
25
- Tool execution runs through the DXOS compute runtime so every AI action — opening a document,
26
- searching the web, querying a database — produces a structured execution trace. The optional
27
- TracePanel visualises that trace as a commit graph or raw JSON, giving developers full observability
28
- into what the model did and why.
29
- `,
30
- icon: "ph--sparkle--regular",
31
- iconHue: "sky",
32
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-assistant",
33
- spec: "PLUGIN.mdl"
34
- });
35
- var ASSISTANT_DIALOG = DXN.make(`${meta.id}.assistantDialog`);
36
- var ASSISTANT_COMPANION_VARIANT = "assistant-chat";
37
-
38
- export {
39
- meta,
40
- ASSISTANT_DIALOG,
41
- ASSISTANT_COMPANION_VARIANT
42
- };
43
- //# sourceMappingURL=chunk-XYHPOGTK.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { DXN } from '@dxos/keys';\nimport { trim } from '@dxos/util';\n\nexport const meta = Plugin.makeMeta({\n key: DXN.make('org.dxos.plugin.assistant'),\n name: 'Assistant',\n author: 'DXOS',\n description: trim`\n AssistantPlugin brings a conversational AI assistant into DXOS Composer, letting users chat naturally\n with objects in their spaces. Every Chat is a first-class ECHO object — messages are persisted,\n replicated across peers in real time, and can be bound to any document or collection as a companion\n panel that appears alongside the primary view.\n\n AI capabilities are delivered through a flexible multi-provider model layer. Users can route requests\n to the DXOS Edge service, a locally running Ollama instance, or LM Studio, and switch providers at\n any time in Settings. Each provider can be configured with a preferred model, and the runtime\n automatically falls back when a provider is unavailable.\n\n Blueprints give every chat a specialised identity. Built-in blueprints cover general assistance,\n web browsing, database interaction, web search, Discord and Linear integration, autonomous agents,\n planning, memory, automation, and a wizard for authoring new blueprints. Binding a blueprint\n changes the system instructions and the tool set exposed to the model in a single step.\n\n Tool execution runs through the DXOS compute runtime so every AI action — opening a document,\n searching the web, querying a database — produces a structured execution trace. The optional\n TracePanel visualises that trace as a commit graph or raw JSON, giving developers full observability\n into what the model did and why.\n `,\n icon: 'ph--sparkle--regular',\n iconHue: 'sky',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-assistant',\n spec: 'PLUGIN.mdl',\n});\n\nexport const ASSISTANT_DIALOG = DXN.make(`${meta.id}.assistantDialog`);\n\n/** Companion variant identifier for the assistant chat panel. */\nexport const ASSISTANT_COMPANION_VARIANT = 'assistant-chat';\n"],
5
- "mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,WAAW;AACpB,SAASC,YAAY;AAEd,IAAMC,OAAOH,OAAOI,SAAS;EAClCC,KAAKJ,IAAIK,KAAK,2BAAA;EACdC,MAAM;EACNC,QAAQ;EACRC,aAAaP;;;;;;;;;;;;;;;;;;;;;EAqBbQ,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;AACR,CAAA;AAEO,IAAMC,mBAAmBb,IAAIK,KAAK,GAAGH,KAAKY,EAAE,kBAAkB;AAG9D,IAAMC,8BAA8B;",
6
- "names": ["Plugin", "DXN", "trim", "meta", "makeMeta", "key", "make", "name", "author", "description", "icon", "iconHue", "source", "spec", "ASSISTANT_DIALOG", "id", "ASSISTANT_COMPANION_VARIANT"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/types/Assistant.ts", "../../../src/types/Settings.ts", "../../../src/types/AssistantOperation.ts", "../../../src/types/AssistantCapabilities.ts", "../../../src/types/AssistantEvents.ts", "../../../src/types/service.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\n// Re-export Chat schema for backward compatibility.\nimport { Chat as ChatModule } from '@dxos/assistant-toolkit';\nexport const Chat = ChatModule.Chat;\nexport type Chat = ChatModule.Chat;\n\n// Re-export Settings as merged const/type (not as namespace).\nimport * as SettingsModule from './Settings';\nexport const Settings = SettingsModule.Settings;\nexport type Settings = SettingsModule.Settings;\n\nexport const ChatViews = SettingsModule.ChatViews;\nexport const ChatView = SettingsModule.ChatView;\nexport type ChatView = SettingsModule.ChatView;\n\nexport const ModelProviders = SettingsModule.ModelProviders;\nexport const ModelProvider = SettingsModule.ModelProvider;\nexport type ModelProvider = SettingsModule.ModelProvider;\n\nexport const ModelDefaults = SettingsModule.ModelDefaults;\nexport type ModelDefaults = SettingsModule.ModelDefaults;\n", "//\n// Copyright 2024 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { SchemaEx } from '@dxos/effect';\n\nexport const ModelProvider = Schema.Union(\n Schema.Literal('edge').annotations({ title: 'DXOS' }),\n Schema.Literal('ollama').annotations({ title: 'Ollama' }),\n Schema.Literal('lmstudio').annotations({ title: 'LM Studio' }),\n);\nexport type ModelProvider = Schema.Schema.Type<typeof ModelProvider>;\nexport const ModelProviders = SchemaEx.getLiteralValues(ModelProvider);\n\nexport const ChatView = Schema.Union(\n Schema.Literal('normal').annotations({ title: 'Normal' }),\n Schema.Literal('summary').annotations({ title: 'Summary' }),\n Schema.Literal('thinking').annotations({ title: 'Thinking' }),\n Schema.Literal('debug').annotations({ title: 'Debug' }),\n);\nexport type ChatView = Schema.Schema.Type<typeof ChatView>;\nexport const ChatViews = SchemaEx.getLiteralValues(ChatView);\n\nexport const ModelDefaults = Schema.mutable(\n Schema.Struct({\n edge: Schema.optional(\n Schema.String.annotations({\n title: 'Remote language model',\n description: 'Choose the remote language model used for AI requests.',\n }),\n ),\n ollama: Schema.optional(\n Schema.String.annotations({\n title: 'Ollama language model',\n description: 'Choose the locally hosted Ollama model for AI requests.',\n }),\n ),\n lmstudio: Schema.optional(\n Schema.String.annotations({\n title: 'LM Studio language model',\n description: 'Choose the locally hosted LM Studio model for AI requests.',\n }),\n ),\n }),\n);\nexport type ModelDefaults = Schema.Schema.Type<typeof ModelDefaults>;\n\nexport const Settings = Schema.mutable(\n Schema.Struct({\n customPrompts: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Use custom prompts',\n description: 'Allow the assistant to use custom prompts defined in your spaces.',\n }),\n ),\n chatView: Schema.optional(\n ChatView.annotations({\n title: 'Chat view',\n description:\n 'Controls which message blocks are shown in the chat: normal hides reasoning, thinking shows reasoning, debug shows raw blocks, summary shows only conversational text.',\n }),\n ),\n modelProvider: Schema.optional(\n ModelProvider.annotations({\n title: 'LLM provider',\n description: 'Select which language model service to use for AI responses.',\n }),\n ),\n modelDefaults: Schema.optional(ModelDefaults),\n tracePanelDebug: Schema.optional(\n Schema.Boolean.annotations({\n title: 'Trace panel debug',\n description: 'Show the raw span tree as JSON in the trace panel instead of the commit graph.',\n }),\n ),\n }),\n);\nexport interface Settings extends Schema.Schema.Type<typeof Settings> {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { AiService } from '@dxos/ai';\nimport { Capability } from '@dxos/app-framework';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { Routine, Operation } from '@dxos/compute';\nimport { Database, Feed, Obj, Ref, Type } from '@dxos/echo';\nimport { DXN } from '@dxos/keys';\n\nimport { meta } from '#meta';\n\nconst makeKey = (name: string) => DXN.make(`${meta.id}.operation.${name}`);\n\nexport const CreateChat = Operation.make({\n meta: { key: makeKey('createChat'), name: 'Create Chat', icon: 'ph--chat-text--regular' },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n name: Schema.optional(Schema.String),\n /** If false, chat is created in-memory only and not added to space. Defaults to true. */\n addToSpace: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n object: Type.getSchema(Chat.Chat),\n }),\n});\n\nexport const UpdateChatName = Operation.make({\n meta: {\n key: makeKey('updateChatName'),\n name: 'Update Chat Name',\n icon: 'ph--pencil--regular',\n },\n services: [Database.Service, Feed.FeedService, AiService.AiService],\n input: Schema.Struct({\n chat: Type.getSchema(Chat.Chat),\n /** Initial user message text; used when the feed has no history yet (e.g. auto-rename on first send). */\n prompt: Schema.optional(Schema.String),\n }),\n output: Schema.Void,\n});\n\nexport const SetCurrentChat = Operation.make({\n meta: {\n key: makeKey('setCurrentChat'),\n name: 'Set Current Chat',\n icon: 'ph--chat-text--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n companionTo: Obj.Unknown,\n chat: Type.getSchema(Chat.Chat).pipe(Schema.optional),\n }),\n output: Schema.Void,\n});\n\nexport const RunPromptInNewChat = Operation.make({\n meta: {\n key: makeKey('runPromptInNewChat'),\n name: 'Run Prompt In New Chat',\n icon: 'ph--chat-text--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n /** Context objects to bind to the new chat. */\n objects: Schema.optional(Schema.Array(Obj.Unknown)),\n /** Blueprint keys to look up and bind to the new chat. */\n blueprints: Schema.optional(Schema.Array(Schema.String)),\n /** Raw instructions or an existing Routine object reference. */\n prompt: Schema.Union(Schema.String, Ref.Ref(Routine.Routine)),\n /**\n * When true, skips opening the chat: runs the Agent prompt operation against the new chat via the compute runtime (traced).\n */\n background: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Struct({\n object: Type.getSchema(Chat.Chat),\n }),\n});\n\nconst NavigationTargetSchema = Schema.Struct({\n path: Schema.String.annotations({ description: 'Navigation path to use with the Open operation.' }),\n label: Schema.String.annotations({ description: 'Human-readable label.' }),\n type: Schema.String.annotations({ description: 'Object type.' }),\n});\n\nexport const ResolveNavigationTargets = Operation.make({\n meta: {\n key: makeKey('resolveNavigationTargets'),\n name: 'Resolve navigation targets',\n description:\n 'Resolve navigation targets within the application. The returned paths can be used with the Open operation. Without a query, returns pages that can be navigated to.',\n icon: 'ph--compass--regular',\n },\n input: Schema.Struct({\n query: Schema.optional(\n Schema.Struct({\n dxn: Schema.optional(DXN.Schema),\n }),\n ),\n }),\n output: Schema.Struct({\n targets: Schema.Array(NavigationTargetSchema),\n }),\n services: [Capability.Service],\n});\n\nexport const ForkChat = Operation.make({\n meta: { key: makeKey('forkChat'), name: 'Fork Chat', icon: 'ph--git-branch--regular', skipRegistry: true },\n services: [Capability.Service, Database.Service],\n input: Schema.Struct({\n chat: Type.getSchema(Chat.Chat),\n /** When provided, the forked chat is set as the companion for this object rather than opened standalone. */\n companionTo: Schema.optional(Obj.Unknown),\n }),\n output: Schema.Struct({\n object: Type.getSchema(Chat.Chat),\n }),\n});\n\nexport const EnsureCompanionChat = Operation.make({\n meta: {\n key: makeKey('ensureCompanionChat'),\n name: 'Ensure Companion Chat',\n icon: 'ph--chat-text--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n companionTo: Obj.Unknown,\n }),\n output: Schema.Struct({\n chat: Type.getSchema(Chat.Chat),\n /** Whether the returned chat was already persisted in the space. */\n persisted: Schema.Boolean,\n }),\n});\n\nexport const BlueprintForm = Schema.Struct({\n key: Schema.String,\n name: Schema.String,\n description: Schema.optional(Schema.String),\n});\n\nexport const ToggleTracePanelDebug = Operation.make({\n meta: {\n key: makeKey('toggleTracePanelDebug'),\n name: 'Toggle trace panel debug',\n description: 'Toggle trace panel between commit graph and raw span tree JSON.',\n icon: 'ph--bug--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n state: Schema.optional(Schema.Boolean),\n }),\n output: Schema.Boolean,\n});\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type Atom } from '@effect-atom/atom-react';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Obj } from '@dxos/echo';\n\nimport { meta } from '#meta';\n\nimport * as Assistant from './Assistant';\n\nexport const Settings = Capability.make<Atom.Writable<Assistant.Settings>>(`${meta.id}.capability.settings`);\n\nexport const StateSchema = Schema.mutable(\n Schema.Struct({\n /** Map of primary object dxn to current chat dxn. */\n currentChat: Schema.Record({ key: Schema.String, value: Schema.UndefinedOr(Schema.String) }),\n /** Map of chat object path to prompt text to auto-submit when the chat opens. */\n pendingPrompts: Schema.Record({ key: Schema.String, value: Schema.UndefinedOr(Schema.String) }),\n }),\n);\n\nexport type AssistantState = Schema.Schema.Type<typeof StateSchema>;\n\nexport const State = Capability.make<Atom.Writable<AssistantState>>(`${meta.id}.capability.state`);\n\n/** Session-scoped cache of transient (not yet persisted) companion chats keyed by companion DXN string. */\nexport const CompanionChatCache = Capability.make<Atom.Writable<Record<string, Obj.Unknown | undefined>>>(\n `${meta.id}.capability.companion-chat-cache`,\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { ActivationEvent } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\n\nexport const SetupAiServiceProviders = ActivationEvent.make(`${meta.id}.event.setup-ai-service-providers`);\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Operation } from '@dxos/compute';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { DXN, Ref, Type } from '@dxos/echo';\n\n// TODO(burdon): Factor out and reconcile with https://github.com/dxos/dxos/blob/main/packages/plugins/plugin-token-manager/src/defs/presets.ts#L7\n\nconst ApiAuthorizationKey = Schema.Struct({\n type: Schema.Literal('api-key'),\n key: Schema.String,\n placement: Schema.Union(\n Schema.Struct({\n type: Schema.Literal('authorization-header'),\n }),\n Schema.Struct({\n type: Schema.Literal('query'),\n name: Schema.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = Schema.Struct({\n type: Schema.Literal('oauth'),\n clientId: Schema.String,\n clientSecret: Schema.String,\n tokenUrl: Schema.String,\n grantType: Schema.String,\n});\n\nexport const ApiAuthorization = Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = Schema.Struct({\n kind: Schema.Literal('function'),\n fn: Ref.Ref(Operation.PersistentOperation),\n});\n\nconst ServiceInterfaceWorkflow = Schema.Struct({\n kind: Schema.Literal('workflow'),\n workflow: Ref.Ref(ComputeGraph),\n});\n\nconst ServiceInterfaceApi = Schema.Struct({\n kind: Schema.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: Schema.optional(Schema.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: Schema.optional(Schema.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: Schema.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = Schema.Union(\n // Service types.\n ServiceInterfaceFunction,\n ServiceInterfaceWorkflow,\n ServiceInterfaceApi,\n) as any;\n\nexport type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;\n\nexport const ServiceType = Schema.Struct({\n serviceId: Schema.String,\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n category: Schema.optional(Schema.String),\n enabled: Schema.optional(Schema.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: Schema.optional(Schema.Array(ServiceInterface)),\n}).pipe(Type.makeObject(DXN.make('org.dxos.type.service', '0.1.0')));\n\nexport type ServiceType = Type.InstanceType<typeof ServiceType>;\n\n//\n// Service Registry\n//\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\n}\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport const categoryIcons: Record<string, string> = {\n finance: 'ph--bank--regular',\n health: 'ph--heart--regular',\n geolocation: 'ph--globe-simple--regular',\n education: 'ph--books--regular',\n entertainment: 'ph--music-notes--regular',\n shopping: 'ph--shopping-cart--regular',\n travel: 'ph--airplane-takeoff--regular',\n utilities: 'ph--lightning--regular',\n weather: 'ph--cloud-rain--regular',\n} as const;\n"],
5
- "mappings": "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",
6
- "names": ["ChatView", "ChatViews", "ModelDefaults", "ModelProvider", "ModelProviders", "Settings", "Chat", "ChatModule", "Schema", "SchemaEx", "ModelProvider", "Union", "Literal", "annotations", "title", "ModelProviders", "getLiteralValues", "ChatView", "ChatViews", "ModelDefaults", "mutable", "Struct", "edge", "optional", "String", "description", "ollama", "lmstudio", "Settings", "customPrompts", "Boolean", "chatView", "modelProvider", "modelDefaults", "tracePanelDebug", "Chat", "ChatModule", "Settings", "ChatViews", "ChatView", "ModelProviders", "ModelProvider", "ModelDefaults", "Schema", "AiService", "Capability", "Chat", "Routine", "Operation", "Database", "Feed", "Obj", "Ref", "Type", "DXN", "meta", "makeKey", "name", "make", "id", "CreateChat", "key", "icon", "services", "Service", "input", "Struct", "db", "optional", "String", "addToSpace", "Boolean", "output", "object", "getSchema", "UpdateChatName", "FeedService", "chat", "prompt", "Void", "SetCurrentChat", "companionTo", "Unknown", "pipe", "RunPromptInNewChat", "objects", "Array", "blueprints", "Union", "background", "NavigationTargetSchema", "path", "annotations", "description", "label", "type", "ResolveNavigationTargets", "query", "dxn", "targets", "ForkChat", "skipRegistry", "EnsureCompanionChat", "persisted", "BlueprintForm", "ToggleTracePanelDebug", "state", "Settings", "Schema", "Capability", "meta", "make", "id", "StateSchema", "mutable", "Struct", "currentChat", "Record", "key", "String", "value", "UndefinedOr", "pendingPrompts", "State", "CompanionChatCache", "ActivationEvent", "meta", "SetupAiServiceProviders", "make", "id", "Schema", "Operation", "ComputeGraph", "DXN", "Ref", "Type", "ApiAuthorizationKey", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "PersistentOperation", "ServiceInterfaceWorkflow", "workflow", "ServiceInterfaceApi", "schemaUrl", "optional", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "Array", "pipe", "makeObject", "make", "categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/companion-chat-provisioner.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Registry } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Graph, type Node } from '@dxos/app-graph';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { DeckCapabilities, PLANK_COMPANION_TYPE, type StoredDeckState } from '@dxos/plugin-deck';\nimport { getLinkedVariant } from '@dxos/react-ui-attention';\nimport { byPosition } from '@dxos/util';\n\nimport { ASSISTANT_COMPANION_VARIANT } from '#meta';\nimport { AssistantCapabilities, AssistantOperation } from '#types';\n\n/**\n * Non-React capability that watches deck companion state and provisions transient chats\n * for active planks when the assistant companion is selected.\n */\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const operationInvoker = yield* Capability.get(Capabilities.OperationInvoker);\n const { graph } = yield* Capability.get(AppCapabilities.AppGraph);\n const registry: Registry.Registry = yield* Capability.get(Capabilities.AtomRegistry);\n const deckStateAtom = yield* Capability.get(DeckCapabilities.State);\n const cacheAtom = yield* Capability.get(AssistantCapabilities.CompanionChatCache);\n const stateAtom = yield* Capability.get(AssistantCapabilities.State);\n\n const plankSubs = new Map<string, () => void>();\n\n /** Unsubscribe a single plank and remove it from the map. */\n const unsubPlank = (plankId: string) => {\n plankSubs.get(plankId)?.();\n plankSubs.delete(plankId);\n };\n\n /** Unsubscribe all per-plank subscriptions. */\n const unsubAllPlanks = () => {\n for (const unsub of plankSubs.values()) {\n unsub();\n }\n plankSubs.clear();\n };\n\n /**\n * Attempt to provision for a single plank.\n * Returns true when the plank is resolved (provisioned or already cached)\n * so the caller can tear down the connection subscription.\n */\n const provisionForPlank = (plankId: string, companionVariant: string | undefined): boolean => {\n const node: Node.Node | null = Graph.getNode(graph, plankId).pipe(Option.getOrNull);\n if (!node || !Obj.isObject(node.data) || Obj.instanceOf(Chat.Chat, node.data)) {\n return false;\n }\n\n if (resolveEffectiveVariant(graph, plankId, companionVariant) !== ASSISTANT_COMPANION_VARIANT) {\n return false;\n }\n\n const object = node.data;\n const companionUri = Obj.getURI(object);\n const cache = registry.get(cacheAtom);\n if (cache[companionUri]) {\n return true;\n }\n\n const db = Obj.getDatabase(object);\n if (!db) {\n log.warn('No db for object', { plankId, companionUri });\n return false;\n }\n\n void operationInvoker\n .invokePromise(AssistantOperation.EnsureCompanionChat, { db, companionTo: object })\n .catch((error) => log.warn('Failed to provision companion chat', { plankId, error }));\n\n return false;\n };\n\n const provision = () => {\n const deckState: StoredDeckState = registry.get(deckStateAtom);\n const deck = deckState.decks[deckState.activeDeck];\n if (!deck?.companionOpen) {\n unsubAllPlanks();\n return;\n }\n\n const plankIds = new Set(deck.solo ? [deck.solo] : deck.active);\n\n // Remove subscriptions for planks that are no longer active.\n for (const trackedId of plankSubs.keys()) {\n if (!plankIds.has(trackedId)) {\n unsubPlank(trackedId);\n }\n }\n\n for (const plankId of plankIds) {\n const resolved = provisionForPlank(plankId, deck.companionVariant);\n\n if (resolved) {\n // Already provisioned — no need to watch connections.\n unsubPlank(plankId);\n } else if (!plankSubs.has(plankId)) {\n // Not yet resolved — subscribe to child connections so we re-try\n // when graph builder extensions add companion nodes (after expand).\n plankSubs.set(\n plankId,\n registry.subscribe(graph.connections(plankId, 'child'), () => {\n if (provisionForPlank(plankId, deck.companionVariant)) {\n unsubPlank(plankId);\n }\n }),\n );\n }\n }\n };\n\n provision();\n\n const unsub1 = registry.subscribe(deckStateAtom, provision);\n const unsub2 = registry.subscribe(stateAtom, provision);\n\n return Capability.contributes(Capabilities.Null, null, () =>\n Effect.sync(() => {\n unsub1();\n unsub2();\n unsubAllPlanks();\n }),\n );\n }),\n);\n\n/**\n * Mirrors useSelectedCompanion fallback logic outside of React.\n * Returns the variant that would actually be rendered for a given plank.\n */\nconst resolveEffectiveVariant = (\n graph: Graph.BaseGraph,\n plankId: string,\n preferredVariant: string | undefined,\n): string | undefined => {\n const companions = Graph.getConnections(graph, plankId, 'child')\n .filter((node) => node.type === PLANK_COMPANION_TYPE)\n .toSorted((a, b) => byPosition(a.properties, b.properties));\n\n if (companions.length === 0) {\n return undefined;\n }\n\n if (preferredVariant) {\n const preferred = companions.find((companion) => getLinkedVariant(companion.id) === preferredVariant);\n if (preferred) {\n return getLinkedVariant(preferred.id);\n }\n }\n\n return getLinkedVariant(companions[0].id);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Option", "Capabilities", "Capability", "Graph", "AppCapabilities", "Chat", "Obj", "log", "DeckCapabilities", "PLANK_COMPANION_TYPE", "getLinkedVariant", "byPosition", "ASSISTANT_COMPANION_VARIANT", "AssistantCapabilities", "AssistantOperation", "registry", "AtomRegistry", "deckStateAtom", "get", "State", "cacheAtom", "CompanionChatCache", "stateAtom", "plankSubs", "Map", "plankId", "unsub", "clear", "node", "resolveEffectiveVariant", "object", "cache", "companionUri", "warn", "operationInvoker", "companionTo", "catch", "error", "provision", "deckState", "deck", "companionOpen", "unsubAllPlanks", "trackedId", "unsubPlank", "resolved", "unsub2", "contributes", "unsub1", "companions", "undefined", "preferredVariant", "preferred"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/create-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 { AiContext } from '@dxos/assistant';\nimport { Chat, DatabaseBlueprint, AgentWizardBlueprint } from '@dxos/assistant-toolkit';\nimport { Blueprint, Operation } from '@dxos/compute';\nimport { Feed, Obj, Ref } from '@dxos/echo';\nimport { createFeedServiceLayer } from '@dxos/echo-client';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AssistantBlueprint } from '#blueprints';\nimport { AssistantOperation } from '#types';\n\nconst handler: Operation.WithHandler<typeof AssistantOperation.CreateChat> = AssistantOperation.CreateChat.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ db, name, addToSpace = true }) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const client = yield* Capability.get(ClientCapabilities.Client);\n const space = client.spaces.get(db.spaceId);\n invariant(space, 'Space not found');\n const feed = space.db.add(Feed.make());\n const chat = Chat.make({ name, feed: Ref.make(feed) });\n Obj.setParent(feed, chat);\n if (addToSpace) {\n space.db.add(chat);\n }\n\n // Dynamic import to avoid circular dependency with the barrel that also exports BlueprintManagerHandlers.\n const { BlueprintManagerBlueprint } = yield* Effect.promise(() => import('@dxos/assistant-toolkit'));\n\n const feedServiceLayer = createFeedServiceLayer(space.queues);\n const runtime = yield* Effect.runtime<Feed.FeedService>().pipe(Effect.provide(feedServiceLayer));\n const binder = new AiContext.Binder({ feed, runtime, registry });\n\n // Bind default blueprints via registry refs — no DB clone needed since the ECHO ref\n // resolver already spans the hypergraph registry.\n yield* Effect.promise(() =>\n binder.use((b: AiContext.Binder) =>\n b.bind({\n blueprints: [AssistantBlueprint, DatabaseBlueprint, AgentWizardBlueprint, BlueprintManagerBlueprint].map(\n ({ key }) => Ref.fromURI(Blueprint.registryURI(key)),\n ),\n }),\n ),\n );\n\n return { object: chat };\n }),\n ),\n);\n\nexport default handler;\n"],
5
- "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiB;AAC1B,SAASC,MAAMC,mBAAmBC,4BAA4B;AAC9D,SAASC,WAAWC,iBAAiB;AACrC,SAASC,MAAMC,KAAKC,WAAW;AAC/B,SAASC,8BAA8B;AACvC,SAASC,iBAAiB;AAC1B,SAASC,0BAA0B;AAEnC,SAASC,0BAA0B;AACnC,SAASC,0BAA0B;AAEnC,IAAA,eAA6EA;IAIvE,UAAMC,mBAAgBf,WAAeY,KAAAA,UAAmBI,YAAM,kBAAA,WAAA,EAAA,IAAA,MAAA,aAAA,KAAA,GAAA;AAC9D,QAAMC,WAAQF,OAAOG,WAAcC,IAAAA,aAAO,YAAA;AAC1CR,QAAAA,SAAUM,OAAO,WAAA,IAAA,mBAAA,MAAA;AACjB,QAAMG,QAAOH,OAAQ,OAAKV,IAAKc,GAAI,OAAA;AACnC,YAAMC,OAAOpB,mBAAU,EAAA,YAAA,YAAA,GAAA,cAAA,GAAA,IAAA,GAAA,MAAA,GAAA,CAAA,SAAA,mBAAA,EAAA,CAAA;QAAEqB,OAAAA,MAAAA,GAAAA,IAAAA,KAAAA,KAAAA,CAAAA;QAAMH,OAAMX,KAAQ,KAACW;IAAM;IAChDI,MAAAA,IAAUJ,KAAAA,IAAME;EACpB,CAAA;MACEL,UAASQ,MAAIH,IAAAA;AACf,MAAA,YAAA;AAEA,UAAA,GAAA,IAAA,IAAA;EACA;AAGA,QAAMI,EAAAA,0BAAwBA,IAAO,OAAiCC,eAAQC,MAAAA,OAAAA,yBAAAA,CAAAA;AAC9E,QAAMC,mBAAa5B,uBAAiB,MAAA,MAAA;QAAEmB,WAAAA,OAAAA,eAAAA,EAAAA,KAAAA,eAAAA,gBAAAA,CAAAA;QAAMM,SAAAA,IAAAA,UAAAA,OAAAA;IAASI;IAAS,SAAAJ;IAE9D;EACA,CAAA;wBAImBb,MAAAA,OAAAA,IAAAA,CAAAA,MAAAA,EAAAA,KAAAA;gBAAoBV;MAAmBC;MAAsB2B;MAA2BC;MAGvG;IAIG,EAAA,IAAA,CAAA,EAAA,IAAA,MAAA,IAAA,QAAA,UAAA,YAAA,GAAA,CAAA,CAAA;EAAEC,CAAAA,CAAAA,CAAAA;AAAa,SAAA;IACxB,QAAA;EAIJ;;;",
6
- "names": ["Effect", "Capabilities", "Capability", "AiContext", "Chat", "DatabaseBlueprint", "AgentWizardBlueprint", "Blueprint", "Operation", "Feed", "Obj", "Ref", "createFeedServiceLayer", "invariant", "ClientCapabilities", "AssistantBlueprint", "AssistantOperation", "client", "Client", "space", "spaces", "spaceId", "feed", "make", "chat", "name", "setParent", "add", "runtime", "provide", "feedServiceLayer", "binder", "registry", "BlueprintManagerBlueprint", "map", "object"]
7
- }
@@ -1,7 +0,0 @@
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';\nimport * as Layer from 'effect/Layer';\n\nimport { Capability, Capabilities } from '@dxos/app-framework';\nimport { Agent, AgentBlueprint, Chat } from '@dxos/assistant-toolkit';\nimport { Blueprint, Operation, Routine, ServiceResolver } from '@dxos/compute';\nimport { Sequence } from '@dxos/conductor';\nimport { Database, Feed, Obj, Type } from '@dxos/echo';\nimport { SpaceCapabilities, SpaceOperation } from '@dxos/plugin-space';\n\nimport { AssistantOperation } from '#types';\n\nimport { getChatsPath } from '../paths';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return [\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Type.getTypename(Chat.Chat),\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 ?? getChatsPath(options.db.spaceId),\n });\n }),\n }),\n Capability.contributes(SpaceCapabilities.CreateObjectEntry, {\n id: Type.getTypename(Blueprint.Blueprint),\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: Type.getTypename(Routine.Routine),\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: Type.getTypename(Sequence.Sequence),\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: Type.getTypename(Agent.Agent),\n createObject: (props, options) =>\n Effect.gen(function* () {\n const object = yield* Agent.makeInitialized({ name: '', instructions: '' }, AgentBlueprint.make());\n\n return yield* Operation.invoke(SpaceOperation.AddObject, {\n object,\n target: options.target,\n hidden: true,\n targetNodeId: options.targetNodeId,\n });\n }).pipe(\n Effect.provide(\n ServiceResolver.provide({ space: options.db.spaceId }, Database.Service, Feed.FeedService).pipe(\n Layer.provide(Capability.asLayer(Capabilities.ServiceResolver, ServiceResolver.ServiceResolver)),\n ),\n ),\n ),\n }),\n ];\n }),\n);\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Layer", "Capability", "Capabilities", "Agent", "AgentBlueprint", "Chat", "Blueprint", "Operation", "Routine", "ServiceResolver", "Sequence", "Database", "Feed", "Obj", "Type", "SpaceCapabilities", "SpaceOperation", "AssistantOperation", "Capability", "makeModule", "fnUntraced", "contributes", "SpaceCapabilities", "CreateObjectEntry", "id", "Type", "getTypename", "Chat", "createObject", "props", "options", "gen", "object", "Operation", "invoke", "AssistantOperation", "CreateChat", "db", "name", "SpaceOperation", "AddObject", "target", "hidden", "targetNodeId", "getChatsPath", "spaceId", "Blueprint", "inputSchema", "BlueprintForm", "make", "Routine", "Sequence", "Obj", "Agent", "makeInitialized", "instructions", "AgentBlueprint", "pipe", "provide", "ServiceResolver", "space", "Database", "Service", "Feed", "FeedService", "asLayer", "Capabilities"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/fork-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 { getObjectPathFromObject, LayoutOperation } from '@dxos/app-toolkit';\nimport { AiContext, SessionLink } from '@dxos/assistant';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { Database, Feed, Filter, Obj, Ref } from '@dxos/echo';\nimport { createFeedServiceLayer } from '@dxos/echo-client';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { SpaceOperation } from '@dxos/plugin-space';\nimport { Message } from '@dxos/types';\n\nimport { AssistantOperation } from '#types';\n\nconst handler: Operation.WithHandler<typeof AssistantOperation.ForkChat> = AssistantOperation.ForkChat.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ chat, companionTo }) {\n const { db } = yield* Database.Service;\n const sourceFeed = chat.feed.target;\n invariant(sourceFeed, 'Chat feed not found.');\n\n const client = yield* Capability.get(ClientCapabilities.Client);\n const space = client.spaces.get(db.spaceId);\n invariant(space, 'Space not found.');\n\n const feedServiceLayer = createFeedServiceLayer(space.queues);\n\n const messages = yield* Feed.runQuery(sourceFeed, Filter.type(Message.Message)).pipe(\n Effect.provide(feedServiceLayer),\n );\n\n // Sort chronologically to find the last message.\n const sorted = messages\n .filter(Obj.instanceOf(Message.Message))\n .sort((a, b) => a.created.localeCompare(b.created));\n\n // Create a new chat, then apply source bindings and session link.\n const sourceName = Obj.getLabel(chat);\n const { object: newChat } = yield* Operation.invoke(AssistantOperation.CreateChat, {\n db,\n name: sourceName ? `${sourceName} (fork)` : undefined,\n });\n const newFeed = newChat.feed.target;\n invariant(newFeed, 'New chat feed not found.');\n\n if (sorted.length > 0) {\n const lastMessage = sorted[sorted.length - 1];\n\n // Append a SessionLink record pointing to the last message of the source feed.\n yield* Feed.append(newFeed, [\n Obj.make(SessionLink.SessionLink, {\n feedRef: Ref.make(sourceFeed),\n messageId: lastMessage.id,\n }),\n ]).pipe(Effect.provide(feedServiceLayer));\n }\n\n // Copy source chat's blueprint and object bindings to the new feed.\n // Sort chronologically so add/remove events are applied in the correct order.\n const sourceBindings = (yield* Feed.runQuery(sourceFeed, Filter.type(AiContext.Binding)).pipe(\n Effect.provide(feedServiceLayer),\n )).filter(Obj.instanceOf(AiContext.Binding));\n\n if (sourceBindings.length > 0) {\n // Reduce binding events to the final active set.\n const blueprintRefMap = new Map<string, Ref.Ref<any>>();\n const objectRefMap = new Map<string, Ref.Ref<any>>();\n for (const binding of sourceBindings) {\n binding.blueprints.added.forEach((ref: Ref.Ref<any>) => blueprintRefMap.set(ref.uri, ref));\n binding.blueprints.removed.forEach((ref: Ref.Ref<any>) => blueprintRefMap.delete(ref.uri));\n binding.objects.added.forEach((ref: Ref.Ref<any>) => objectRefMap.set(ref.uri, ref));\n binding.objects.removed.forEach((ref: Ref.Ref<any>) => objectRefMap.delete(ref.uri));\n }\n\n yield* Feed.append(newFeed, [\n Obj.make(AiContext.Binding, {\n blueprints: { added: Array.from(blueprintRefMap.values()), removed: [] },\n objects: { added: Array.from(objectRefMap.values()), removed: [] },\n }),\n ]).pipe(Effect.provide(feedServiceLayer));\n }\n\n if (companionTo) {\n // Wire the forked chat as a companion and switch to it without navigating away.\n yield* Operation.invoke(SpaceOperation.AddRelation, {\n db,\n schema: Chat.CompanionTo,\n source: newChat,\n target: companionTo,\n });\n const operationInvoker = yield* Capability.get(Capabilities.OperationInvoker);\n yield* Effect.promise(() =>\n operationInvoker.invokePromise(AssistantOperation.SetCurrentChat, { companionTo, chat: newChat }),\n );\n } else {\n // Navigate to the forked chat as a standalone plank.\n const chatPath = getObjectPathFromObject(newChat);\n yield* Operation.invoke(LayoutOperation.Open, { subject: [chatPath] });\n }\n\n return { object: newChat };\n }),\n ),\n);\n\nexport default handler;\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capabilities", "Capability", "getObjectPathFromObject", "LayoutOperation", "AiContext", "SessionLink", "Chat", "Operation", "Database", "Feed", "Filter", "Obj", "Ref", "createFeedServiceLayer", "invariant", "ClientCapabilities", "SpaceOperation", "Message", "AssistantOperation", "sourceFeed", "target", "client", "space", "spaces", "feedServiceLayer", "messages", "runQuery", "type", "pipe", "provide", "sorted", "filter", "instanceOf", "a", "created", "localeCompare", "sourceName", "getLabel", "chat", "db", "name", "undefined", "newFeed", "newChat", "feed", "length", "lastMessage", "feedRef", "messageId", "blueprintRefMap", "sourceBindings", "binding", "blueprints", "added", "forEach", "objects", "ref", "objectRefMap", "uri", "removed", "append", "Array", "companionTo", "schema", "CompanionTo", "source", "operationInvoker", "subject", "chatPath"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/integration-provider.ts"],
4
- "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Obj, Ref } from '@dxos/echo';\nimport {\n type CredentialForm,\n Integration,\n IntegrationProvider as IntegrationProviderCapability,\n} from '@dxos/plugin-integration';\nimport { AccessToken } from '@dxos/types';\n\nimport { ANTHROPIC_PROVIDER_ID, ANTHROPIC_SOURCE } from '../constants';\n\n/** API-key form for the Anthropic BYOK provider; key is best-effort validated against `/v1/models`. */\nconst AnthropicTokenForm = Schema.Struct({\n token: Schema.String.annotations({\n title: 'API key',\n description: 'Your Anthropic API key — find it at https://console.anthropic.com/settings/keys.',\n }),\n});\n\n/**\n * Best-effort validation: 401/403 from Anthropic blocks the save; CORS/network failures\n * are tolerated so the form still works in environments where the direct browser call is blocked.\n */\nconst validateAnthropicKey = (apiKey: string): Effect.Effect<void, Error> =>\n Effect.tryPromise({\n try: () =>\n fetch('https://api.anthropic.com/v1/models', {\n headers: {\n 'x-api-key': apiKey,\n 'anthropic-version': '2023-06-01',\n 'anthropic-dangerous-direct-browser-access': 'true',\n },\n }),\n catch: (cause) => cause,\n }).pipe(\n Effect.matchEffect({\n onSuccess: (response) =>\n response.status === 401 || response.status === 403\n ? Effect.fail(\n new Error('Invalid Anthropic API key. Check it at https://console.anthropic.com/settings/keys.'),\n )\n : Effect.void,\n onFailure: () => Effect.void,\n }),\n );\n\nconst credentialForm: CredentialForm<Schema.Schema.Type<typeof AnthropicTokenForm>> = {\n schema: AnthropicTokenForm,\n defaultValues: { token: '' },\n // Validates before the dialog closes so 401/403 errors are shown inline.\n onValidate: ({ values }) => validateAnthropicKey(values.token.trim()),\n onSubmit: ({ values, provider }) =>\n Effect.sync(() => {\n const accessToken = Obj.make(AccessToken.AccessToken, {\n source: ANTHROPIC_SOURCE,\n token: values.token.trim(),\n });\n const integration = Obj.make(Integration.Integration, {\n name: provider.label ?? 'Anthropic',\n providerId: provider.id,\n accessToken: Ref.make(accessToken),\n targets: [],\n });\n return { kind: 'complete' as const, accessToken, integration };\n }),\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n return Capability.contributes(IntegrationProviderCapability, [\n {\n id: ANTHROPIC_PROVIDER_ID,\n source: ANTHROPIC_SOURCE,\n label: 'Anthropic',\n credentialForm,\n },\n ]);\n }),\n);\n"],
5
- "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,KAAKC,WAAW;AACzB,SAEEC,aACAC,uBAAuBC,qCAClB;AACP,SAASC,mBAAmB;AAK5B,IAAMC,qBAA4BC,cAAO;EACvCC,OAAcC,cAAOC,YAAY;IAC/BC,OAAO;IACPC,aAAa;EACf,CAAA;AACF,CAAA;AAMA,IAAMC,uBAAuB,CAACC,WACrBC,kBAAW;EAChBC,KAAK,MACHC,MAAM,uCAAuC;IAC3CC,SAAS;MACP,aAAaJ;MACb,qBAAqB;MACrB,6CAA6C;IAC/C;EACF,CAAA;EACFK,OAAO,CAACC,UAAUA;AACpB,CAAA,EAAGC,KACMC,mBAAY;EACjBC,WAAW,CAACC,aACVA,SAASC,WAAW,OAAOD,SAASC,WAAW,MACpCC,YACL,IAAIC,MAAM,qFAAA,CAAA,IAELC;EACbC,WAAW,MAAaD;AAC1B,CAAA,CAAA;AAGJ,IAAME,iBAAgF;EACpFC,QAAQzB;EACR0B,eAAe;IAAExB,OAAO;EAAG;;EAE3ByB,YAAY,CAAC,EAAEC,OAAM,MAAOrB,qBAAqBqB,OAAO1B,MAAM2B,KAAI,CAAA;EAClEC,UAAU,CAAC,EAAEF,QAAQG,SAAQ,MACpBC,YAAK,MAAA;AACV,UAAMC,cAAcC,IAAIC,KAAKC,YAAYA,aAAa;MACpDC,QAAQC;MACRpC,OAAO0B,OAAO1B,MAAM2B,KAAI;IAC1B,CAAA;AACA,UAAMU,cAAcL,IAAIC,KAAKK,YAAYA,aAAa;MACpDC,MAAMV,SAASW,SAAS;MACxBC,YAAYZ,SAASa;MACrBX,aAAaY,IAAIV,KAAKF,WAAAA;MACtBa,SAAS,CAAA;IACX,CAAA;AACA,WAAO;MAAEC,MAAM;MAAqBd;MAAaM;IAAY;EAC/D,CAAA;AACJ;AAEA,IAAA,+BAAeS,WAAWC,WACjBC,kBAAW,aAAA;AAChB,SAAOF,WAAWG,YAAYC,+BAA+B;IAC3D;MACER,IAAIS;MACJhB,QAAQC;MACRI,OAAO;MACPlB;IACF;GACD;AACH,CAAA,CAAA;",
6
- "names": ["Effect", "Schema", "Capability", "Obj", "Ref", "Integration", "IntegrationProvider", "IntegrationProviderCapability", "AccessToken", "AnthropicTokenForm", "Struct", "token", "String", "annotations", "title", "description", "validateAnthropicKey", "apiKey", "tryPromise", "try", "fetch", "headers", "catch", "cause", "pipe", "matchEffect", "onSuccess", "response", "status", "fail", "Error", "void", "onFailure", "credentialForm", "schema", "defaultValues", "onValidate", "values", "trim", "onSubmit", "provider", "sync", "accessToken", "Obj", "make", "AccessToken", "source", "ANTHROPIC_SOURCE", "integration", "Integration", "name", "label", "providerId", "id", "Ref", "targets", "kind", "Capability", "makeModule", "fnUntraced", "contributes", "IntegrationProviderCapability", "ANTHROPIC_PROVIDER_ID"]
7
- }
@@ -1,110 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/capabilities/markdown-extension.ts
4
- import * as Effect from "effect/Effect";
5
- import { Capabilities, Capability } from "@dxos/app-framework";
6
- import { Obj } from "@dxos/echo";
7
- import { MarkdownCapabilities } from "@dxos/plugin-markdown/types";
8
- import { AssistantOperation } from "#types";
9
-
10
- // src/extensions/prompt-extension.ts
11
- import { syntaxTree } from "@codemirror/language";
12
- import { Decoration, ViewPlugin, WidgetType } from "@codemirror/view";
13
- import { Domino } from "@dxos/ui";
14
- var promptRunExtension = ({ onRun }) => {
15
- return [
16
- ViewPlugin.fromClass(class {
17
- decorations;
18
- constructor(view) {
19
- this.decorations = this.buildDecorations(view);
20
- }
21
- update(update) {
22
- if (update.docChanged || update.viewportChanged || update.selectionSet || update.focusChanged) {
23
- this.decorations = this.buildDecorations(update.view);
24
- }
25
- }
26
- buildDecorations(view) {
27
- const decorations = [];
28
- syntaxTree(view.state).iterate({
29
- enter: (node) => {
30
- if (node.name === "FencedCode") {
31
- const info = node.node.getChild("CodeInfo");
32
- if (info) {
33
- const type = view.state.sliceDoc(info.from, info.to);
34
- const text = node.node.getChild("CodeText");
35
- if (type === "prompt" && text) {
36
- const content = view.state.sliceDoc(text.from, text.to).trim();
37
- if (content.length > 0) {
38
- const widget = new PromptRunWidget(content, onRun);
39
- decorations.push({
40
- from: node.from,
41
- to: node.from,
42
- decoration: Decoration.widget({
43
- widget,
44
- side: -1
45
- })
46
- });
47
- }
48
- }
49
- }
50
- }
51
- }
52
- });
53
- return Decoration.set(decorations.sort((a, b) => a.from - b.from || a.to - b.to).map((d) => d.decoration.range(d.from, d.to)));
54
- }
55
- }, {
56
- decorations: (v) => v.decorations
57
- })
58
- ];
59
- };
60
- var PromptRunWidget = class extends WidgetType {
61
- prompt;
62
- onClick;
63
- constructor(prompt, onClick) {
64
- super(), this.prompt = prompt, this.onClick = onClick;
65
- }
66
- eq(other) {
67
- return this.prompt === other.prompt;
68
- }
69
- ignoreEvent() {
70
- return false;
71
- }
72
- toDOM() {
73
- return Domino.of("div").classNames("relative").append(Domino.of("button").classNames("dx-button absolute right-0 top-4").on("mousedown", (event) => {
74
- event.preventDefault();
75
- event.stopPropagation();
76
- this.onClick(this.prompt);
77
- }).append(Domino.of("svg", Domino.SVG).classNames("w-4 h-4 cursor-pointer").append(Domino.of("use", Domino.SVG).attributes({
78
- href: Domino.icon("ph--play--regular")
79
- })))).root;
80
- }
81
- };
82
-
83
- // src/capabilities/markdown-extension.ts
84
- var markdown_extension_default = Capability.makeModule(Effect.fnUntraced(function* () {
85
- const capabilities = yield* Capability.Service;
86
- return Capability.contributes(MarkdownCapabilities.ExtensionProvider, [
87
- ({ document: doc }) => {
88
- if (!doc) {
89
- return void 0;
90
- }
91
- const db = Obj.getDatabase(doc);
92
- if (!db) {
93
- return void 0;
94
- }
95
- const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);
96
- return promptRunExtension({
97
- onRun: (promptText) => {
98
- void invokePromise(AssistantOperation.RunPromptInNewChat, {
99
- db,
100
- prompt: promptText
101
- });
102
- }
103
- });
104
- }
105
- ]);
106
- }));
107
- export {
108
- markdown_extension_default as default
109
- };
110
- //# sourceMappingURL=markdown-extension-YMIFDMYF.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/markdown-extension.ts", "../../../src/extensions/prompt-extension.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 { Obj } from '@dxos/echo';\nimport { MarkdownCapabilities } from '@dxos/plugin-markdown/types';\n\nimport { AssistantOperation } from '#types';\n\nimport { promptRunExtension } from '../extensions';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const capabilities = yield* Capability.Service;\n\n return Capability.contributes(MarkdownCapabilities.ExtensionProvider, [\n ({ document: doc }) => {\n if (!doc) {\n return undefined;\n }\n\n const db = Obj.getDatabase(doc);\n if (!db) {\n return undefined;\n }\n\n const { invokePromise } = capabilities.get(Capabilities.OperationInvoker);\n\n return promptRunExtension({\n onRun: (promptText) => {\n void invokePromise(AssistantOperation.RunPromptInNewChat, { db, prompt: promptText });\n },\n });\n },\n ]);\n }),\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { syntaxTree } from '@codemirror/language';\nimport { type Extension } from '@codemirror/state';\nimport { Decoration, type DecorationSet, EditorView, ViewPlugin, type ViewUpdate, WidgetType } from '@codemirror/view';\n\nimport { Domino } from '@dxos/ui';\n\nexport type PromptExtensionOptions = {\n /** Called when the user clicks the run button on a prompt code block. */\n onRun: (promptText: string) => void;\n};\n\n/**\n * CodeMirror extension that adds a green \"run\" button to ```prompt fenced code blocks.\n */\nexport const promptRunExtension = ({ onRun }: PromptExtensionOptions): Extension => {\n return [\n ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(view: EditorView) {\n this.decorations = this.buildDecorations(view);\n }\n\n update(update: ViewUpdate) {\n if (update.docChanged || update.viewportChanged || update.selectionSet || update.focusChanged) {\n this.decorations = this.buildDecorations(update.view);\n }\n }\n\n buildDecorations(view: EditorView): DecorationSet {\n const decorations: Array<{ from: number; to: number; decoration: Decoration }> = [];\n\n syntaxTree(view.state).iterate({\n enter: (node) => {\n if (node.name === 'FencedCode') {\n const info = node.node.getChild('CodeInfo');\n if (info) {\n const type = view.state.sliceDoc(info.from, info.to);\n const text = node.node.getChild('CodeText');\n if (type === 'prompt' && text) {\n const content = view.state.sliceDoc(text.from, text.to).trim();\n if (content.length > 0) {\n const widget = new PromptRunWidget(content, onRun);\n decorations.push({\n from: node.from,\n to: node.from,\n decoration: Decoration.widget({ widget, side: -1 }),\n });\n }\n }\n }\n }\n },\n });\n\n return Decoration.set(\n decorations.sort((a, b) => a.from - b.from || a.to - b.to).map((d) => d.decoration.range(d.from, d.to)),\n );\n }\n },\n {\n decorations: (v) => v.decorations,\n },\n ),\n ];\n};\n\nclass PromptRunWidget extends WidgetType {\n constructor(\n private readonly prompt: string,\n private readonly onClick: (promptText: string) => void,\n ) {\n super();\n }\n\n override eq(other: this) {\n return this.prompt === other.prompt;\n }\n\n override ignoreEvent() {\n return false;\n }\n\n override toDOM() {\n return Domino.of('div')\n .classNames('relative')\n .append(\n Domino.of('button')\n .classNames('dx-button absolute right-0 top-4')\n .on('mousedown', (event) => {\n event.preventDefault();\n event.stopPropagation();\n this.onClick(this.prompt);\n })\n .append(\n Domino.of('svg', Domino.SVG)\n .classNames('w-4 h-4 cursor-pointer')\n .append(\n Domino.of('use', Domino.SVG).attributes({\n href: Domino.icon('ph--play--regular'),\n }),\n ),\n ),\n ).root;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capabilities", "Capability", "Obj", "MarkdownCapabilities", "AssistantOperation", "syntaxTree", "Decoration", "ViewPlugin", "WidgetType", "Domino", "promptRunExtension", "onRun", "fromClass", "decorations", "view", "buildDecorations", "update", "docChanged", "viewportChanged", "selectionSet", "focusChanged", "state", "iterate", "enter", "node", "name", "info", "getChild", "type", "sliceDoc", "from", "to", "text", "content", "trim", "length", "widget", "PromptRunWidget", "push", "decoration", "side", "set", "sort", "a", "b", "map", "d", "range", "v", "prompt", "onClick", "eq", "other", "ignoreEvent", "toDOM", "of", "classNames", "append", "on", "event", "preventDefault", "stopPropagation", "SVG", "attributes", "href", "icon", "root", "Capability", "makeModule", "fnUntraced", "capabilities", "Service", "contributes", "MarkdownCapabilities", "ExtensionProvider", "document", "doc", "undefined", "db", "Obj", "getDatabase", "invokePromise", "get", "Capabilities", "OperationInvoker", "promptRunExtension", "onRun", "promptText", "AssistantOperation", "RunPromptInNewChat", "prompt"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React, { type ComponentProps, useEffect } from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface, useSettingsState } from '@dxos/app-framework/ui';\nimport { AppSurface, useActiveSpace } from '@dxos/app-toolkit/ui';\nimport { Chat, Agent, Plan } from '@dxos/assistant-toolkit';\nimport { getSpace } from '@dxos/client/echo';\nimport { Blueprint, Routine } from '@dxos/compute';\nimport { Sequence } from '@dxos/conductor';\nimport { InvocationTraceContainer } from '@dxos/devtools';\nimport { Feed, Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { Panel } from '@dxos/react-ui';\n\nimport { AssistantSettings } from '#components';\nimport {\n BlueprintArticle,\n ChatCompanion,\n ChatArticle,\n ChatDialog,\n AgentArticle,\n AgentProperties,\n PlanArticle,\n RoutineArticle,\n RoutineList,\n TracePanel,\n TriggerStatus,\n} from '#containers';\nimport { ASSISTANT_COMPANION_VARIANT, ASSISTANT_DIALOG, meta } from '#meta';\nimport { type Assistant } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: 'pluginSettings',\n filter: AppSurface.settings(AppSurface.Article, meta.id),\n component: ({ data: { subject } }) => {\n const { settings, updateSettings } = useSettingsState<Assistant.Settings>(subject.atom);\n return <AssistantSettings settings={settings} onSettingsChange={updateSettings} />;\n },\n }),\n Surface.create({\n id: 'chat',\n role: 'article',\n filter: (data): data is { attendableId: string; subject: Chat.Chat; variant: undefined } =>\n typeof data.attendableId === 'string' &&\n Obj.instanceOf(Chat.Chat, data.subject) &&\n data.variant !== ASSISTANT_COMPANION_VARIANT,\n component: ({ data, role, ref }) => {\n return <ChatArticle role={role} subject={data.subject} attendableId={data.attendableId} ref={ref} />;\n },\n }),\n Surface.create({\n id: 'agent',\n filter: AppSurface.object(AppSurface.Article, Agent.Agent),\n component: ({ data, role }) => (\n <AgentArticle role={role} subject={data.subject} attendableId={data.attendableId} />\n ),\n }),\n Surface.create({\n id: 'agentProperties',\n filter: AppSurface.object(AppSurface.ObjectProperties, Agent.Agent),\n component: ({ data }) => <AgentProperties subject={data.subject} />,\n }),\n Surface.create({\n id: 'companionChat',\n role: 'article',\n filter: (data): data is { subject: Chat.Chat | null; attendableId: string; companionTo: Obj.Unknown } =>\n typeof data.attendableId === 'string' &&\n Obj.isObject(data.companionTo) &&\n (Obj.instanceOf(Chat.Chat, data.subject) || data.subject === null),\n component: ({ data: { subject, attendableId, companionTo }, role, ref }) => (\n <ChatCompanion\n role={role}\n subject={subject}\n attendableId={attendableId}\n companionTo={companionTo}\n ref={ref}\n />\n ),\n }),\n Surface.create({\n id: 'companionInvocations',\n role: 'article',\n filter: (data): data is { companionTo: Sequence.Sequence } =>\n (Obj.instanceOf(Sequence.Sequence, data.companionTo) || Obj.instanceOf(Routine.Routine, data.companionTo)) &&\n data.subject === 'invocations',\n component: ({ data, role }) => {\n const space = getSpace(data.companionTo);\n const feed = space?.properties.invocationTraceFeed?.target;\n const feedDXN = feed ? Feed.getQueueUri(feed) : undefined;\n // TODO(wittjosiah): Support invocation filtering for prompts.\n const target = Obj.instanceOf(Routine.Routine, data.companionTo) ? undefined : data.companionTo;\n\n return (\n <Panel.Root role={role} className='dx-document'>\n <Panel.Content asChild>\n <InvocationTraceContainer db={space?.db} feedDXN={feedDXN} target={target} detailAxis='block' />\n </Panel.Content>\n </Panel.Root>\n );\n },\n }),\n Surface.create({\n id: 'blueprint',\n filter: AppSurface.object(AppSurface.Article, Blueprint.Blueprint),\n component: ({ data, role }) => (\n <BlueprintArticle role={role} subject={data.subject} attendableId={data.attendableId} />\n ),\n }),\n Surface.create({\n id: 'prompt',\n filter: AppSurface.object(AppSurface.Article, Routine.Routine),\n component: ({ data, role }) => (\n <RoutineArticle role={role} subject={data.subject} attendableId={data.attendableId} />\n ),\n }),\n Surface.create({\n id: 'plan',\n filter: AppSurface.object(AppSurface.Article, Plan.Plan),\n component: ({ data, role }) => (\n <PlanArticle role={role} subject={data.subject} attendableId={data.attendableId} />\n ),\n }),\n Surface.create({\n id: ASSISTANT_DIALOG,\n filter: AppSurface.component<ComponentProps<typeof ChatDialog>>(AppSurface.Dialog, ASSISTANT_DIALOG),\n component: ({ data }) => <ChatDialog {...data.props} />,\n }),\n Surface.create({\n id: 'trace',\n filter: AppSurface.literal(Surface.makeType<{ subject: string }>('deck-companion--trace'), 'trace'),\n component: () => {\n const space = useActiveSpace();\n useEffect(() => {\n log('trace panel surface', { hasSpace: Boolean(space), spaceId: space?.id });\n }, [space?.id]);\n\n if (!space) {\n return null;\n }\n\n return <TracePanel space={space} />;\n },\n }),\n Surface.create({\n id: 'triggerStatus',\n role: 'status-indicator',\n component: () => {\n const space = useActiveSpace();\n if (!space) {\n return null;\n }\n\n return <TriggerStatus role='status-indicator' space={space} />;\n },\n }),\n Surface.create({\n id: 'prompts',\n filter: AppSurface.subject(\n Surface.makeType<{ subject: Obj.Any; attendableId: string }>('prompts'),\n Obj.isObject,\n ),\n component: ({ data }) => <RoutineList subject={data.subject} />,\n }),\n ]),\n ),\n);\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "React", "useEffect", "Capabilities", "Capability", "Surface", "useSettingsState", "AppSurface", "useActiveSpace", "Chat", "Agent", "Plan", "getSpace", "Blueprint", "Routine", "Sequence", "InvocationTraceContainer", "Feed", "Obj", "log", "Panel", "AssistantSettings", "BlueprintArticle", "ChatCompanion", "ChatArticle", "ChatDialog", "AgentArticle", "AgentProperties", "PlanArticle", "RoutineArticle", "RoutineList", "TracePanel", "TriggerStatus", "ASSISTANT_COMPANION_VARIANT", "ASSISTANT_DIALOG", "meta", "id", "filter", "component", "settings", "updateSettings", "onSettingsChange", "role", "subject", "attendableId", "ref", "data", "create", "companionTo", "space", "feed", "properties", "feedDXN", "getQueueUri", "target", "instanceOf", "asChild", "db", "detailAxis", "hasSpace", "spaceId"]
7
- }
@@ -1,22 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/operations/resolve-navigation-targets.ts
4
- import * as Effect from "effect/Effect";
5
- import { Capability } from "@dxos/app-framework";
6
- import { AppCapabilities } from "@dxos/app-toolkit";
7
- import { Operation } from "@dxos/compute";
8
- import { DXN as _DXNReference } from "@dxos/keys";
9
- import { AssistantOperation } from "#types";
10
- var resolve_navigation_targets_default = AssistantOperation.ResolveNavigationTargets.pipe(Operation.withHandler(Effect.fn(function* ({ query }) {
11
- const capabilities = yield* Capability.Service;
12
- const resolvers = capabilities.getAll(AppCapabilities.NavigationTargetResolver);
13
- const results = yield* Effect.forEach(resolvers, (resolver) => resolver(query).pipe(Effect.catchAll(() => Effect.succeed([]))));
14
- return {
15
- targets: results.flat()
16
- };
17
- })));
18
- export {
19
- _DXNReference,
20
- resolve_navigation_targets_default as default
21
- };
22
- //# sourceMappingURL=resolve-navigation-targets-ZHIMMH7L.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/resolve-navigation-targets.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\n// Value-side `DXN` re-export keeps the inferred `default` export's `.d.ts` portable —\n// `AssistantOperation.ResolveNavigationTargets` references `DXN.Schema` and the emitter\n// would otherwise emit an unresolvable type-only reference.\nimport { DXN as _DXNReference } from '@dxos/keys';\nexport { _DXNReference };\n\nimport { AssistantOperation } from '#types';\n\nexport default AssistantOperation.ResolveNavigationTargets.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ query }) {\n const capabilities = yield* Capability.Service;\n\n // Delegate to contributed resolvers.\n const resolvers = capabilities.getAll(AppCapabilities.NavigationTargetResolver);\n const results = yield* Effect.forEach(resolvers, (resolver) =>\n resolver(query as AppCapabilities.NavigationQuery).pipe(Effect.catchAll(() => Effect.succeed([]))),\n );\n return { targets: results.flat() };\n }),\n ),\n);\n"],
5
- "mappings": ";;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAI1B,SAASC,OAAOC,qBAAqB;AAGrC,SAASC,0BAA0B;AAEnC,IAAA,qCAAeC,mBAAmBC,yBAAyBC,KACzDC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAK,GAAE;AAC5B,QAAMC,eAAe,OAAOC,WAAWC;AAGvC,QAAMC,YAAYH,aAAaI,OAAOC,gBAAgBC,wBAAwB;AAC9E,QAAMC,UAAU,OAAcC,eAAQL,WAAW,CAACM,aAChDA,SAASV,KAAAA,EAA0CJ,KAAYe,gBAAS,MAAaC,eAAQ,CAAA,CAAE,CAAA,CAAA,CAAA;AAEjG,SAAO;IAAEC,SAASL,QAAQM,KAAI;EAAG;AACnC,CAAA,CAAA,CAAA;",
6
- "names": ["Effect", "Capability", "AppCapabilities", "Operation", "DXN", "_DXNReference", "AssistantOperation", "AssistantOperation", "ResolveNavigationTargets", "pipe", "Operation", "withHandler", "fn", "query", "capabilities", "Capability", "Service", "resolvers", "getAll", "AppCapabilities", "NavigationTargetResolver", "results", "forEach", "resolver", "catchAll", "succeed", "targets", "flat"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/run-prompt-in-new-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 { getObjectPathFromObject, LayoutOperation } from '@dxos/app-toolkit';\nimport { AiContext } from '@dxos/assistant';\nimport { AgentPrompt } from '@dxos/assistant-toolkit';\nimport { Blueprint, Operation, Routine, Template } from '@dxos/compute';\nimport { Database, Feed, Filter, Obj, Ref } from '@dxos/echo';\nimport { createFeedServiceLayer } from '@dxos/echo-client';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { Text } from '@dxos/schema';\n\nimport { AssistantCapabilities, AssistantOperation } from '#types';\n\nconst handler: Operation.WithHandler<typeof AssistantOperation.RunPromptInNewChat> =\n AssistantOperation.RunPromptInNewChat.pipe(\n Operation.withHandler(\n Effect.fnUntraced(\n function* ({ db, prompt, objects, blueprints, background }) {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const { object: chat } = yield* Operation.invoke(AssistantOperation.CreateChat, { db });\n\n if ((objects && objects.length > 0) || (blueprints && blueprints.length > 0)) {\n const feedTarget = chat.feed.target;\n invariant(feedTarget, 'Chat feed not found.');\n const client = yield* Capability.get(ClientCapabilities.Client);\n const space = client.spaces.get(db.spaceId);\n invariant(space, 'Space not found.');\n const feedServiceLayer = createFeedServiceLayer(space.queues);\n const runtime = yield* Effect.runtime<Feed.FeedService>().pipe(Effect.provide(feedServiceLayer));\n const binder = new AiContext.Binder({ feed: feedTarget, runtime, registry });\n yield* Effect.promise(() =>\n binder.use(async (b: AiContext.Binder) => {\n const bindingProps: Parameters<AiContext.Binder['bind']>[0] = {};\n\n if (objects && objects.length > 0) {\n bindingProps.objects = objects.map((obj) => Ref.make(obj));\n }\n\n if (blueprints && blueprints.length > 0) {\n const allBlueprints = await db.query(Filter.type(Blueprint.Blueprint)).run();\n const matchedBlueprints = allBlueprints.filter((blueprint) => {\n const blueprintKey = Obj.getMeta(blueprint).key;\n return blueprintKey !== undefined && blueprints.includes(blueprintKey);\n });\n if (matchedBlueprints.length > 0) {\n bindingProps.blueprints = matchedBlueprints.map((blueprint) => Ref.make(blueprint));\n }\n }\n\n await b.bind(bindingProps);\n }),\n );\n }\n\n if (background) {\n const promptRef =\n typeof prompt === 'string'\n ? Ref.make(\n Routine.make({\n instructions: prompt,\n blueprints: [],\n context: [],\n }),\n )\n : prompt;\n yield* Database.flush();\n yield* Operation.invoke(\n AgentPrompt,\n {\n prompt: promptRef,\n input: {},\n chat: Ref.make(chat),\n },\n { spaceId: db.spaceId },\n ).pipe(\n Effect.catchAll((error) => {\n log.catch(error);\n return Effect.void;\n }),\n );\n return { object: chat };\n }\n\n const chatPath = getObjectPathFromObject(chat);\n const pendingPromptText =\n typeof prompt === 'string'\n ? prompt\n : yield* Effect.gen(function* () {\n const promptObj = yield* Effect.promise(() => prompt.load());\n const source = yield* Effect.promise(() => promptObj.instructions.load());\n invariant(Obj.instanceOf(Text.Text, source), 'Prompt instructions must be Text.');\n return Template.process(source.content ?? '');\n });\n yield* Capabilities.updateAtomValue(AssistantCapabilities.State, (current) => ({\n ...current,\n pendingPrompts: { ...current.pendingPrompts, [chatPath]: pendingPromptText },\n }));\n yield* Operation.invoke(LayoutOperation.Open, { subject: [chatPath] });\n return { object: chat };\n },\n (effect, { db }) => effect.pipe(Effect.provide(Database.layer(db))),\n ),\n ),\n );\n\nexport default handler;\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capabilities", "Capability", "getObjectPathFromObject", "LayoutOperation", "AiContext", "AgentPrompt", "Blueprint", "Operation", "Routine", "Template", "Database", "Filter", "Obj", "Ref", "createFeedServiceLayer", "invariant", "log", "ClientCapabilities", "Text", "AssistantCapabilities", "AssistantOperation", "object", "db", "objects", "feedTarget", "client", "space", "spaces", "feedServiceLayer", "runtime", "binder", "feed", "registry", "length", "bindingProps", "blueprints", "matchedBlueprints", "allBlueprints", "blueprintKey", "getMeta", "blueprint", "key", "undefined", "background", "instructions", "context", "prompt", "promptRef", "input", "chat", "spaceId", "pipe", "error", "promptObj", "promise", "instanceOf", "source", "content", "updateAtomValue", "pendingPrompts", "pendingPromptText", "subject", "chatPath", "effect"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/state.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type Obj } from '@dxos/echo';\nimport { createKvsStore } from '@dxos/effect';\n\nimport { meta } from '#meta';\nimport { AssistantCapabilities } from '#types';\n\nexport default Capability.makeModule(() =>\n Effect.sync(() => {\n // NOTE: This needs to be a chat object rather than a string id to avoid a query race.\n // TODO(wittjosiah): Handle serialization and hydration for this so it can be cached.\n const stateAtom = createKvsStore({\n key: meta.id,\n schema: AssistantCapabilities.StateSchema,\n defaultValue: () => ({\n currentChat: {},\n pendingPrompts: {},\n }),\n });\n\n const companionChatCacheAtom = Atom.make<Record<string, Obj.Unknown | undefined>>({}).pipe(Atom.keepAlive);\n\n return [\n Capability.contributes(AssistantCapabilities.State, stateAtom),\n Capability.contributes(AssistantCapabilities.CompanionChatCache, companionChatCacheAtom),\n ];\n }),\n);\n"],
5
- "mappings": ";;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAE3B,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AACrB,SAASC,6BAA6B;AAEtC,IAAA,gBAAeH,WAAWI,WAAW,MAC5BC,YAAK,MAAA;AAGV,QAAMC,YAAYL,eAAe;IAC/BM,KAAKL,KAAKM;IACVC,QAAQN,sBAAsBO;IAC9BC,cAAc,OAAO;MACnBC,aAAa,CAAC;MACdC,gBAAgB,CAAC;IACnB;EACF,CAAA;AAEA,QAAMC,yBAAyBhB,KAAKiB,KAA8C,CAAC,CAAA,EAAGC,KAAKlB,KAAKmB,SAAS;AAEzG,SAAO;IACLjB,WAAWkB,YAAYf,sBAAsBgB,OAAOb,SAAAA;IACpDN,WAAWkB,YAAYf,sBAAsBiB,oBAAoBN,sBAAAA;;AAErE,CAAA,CAAA;",
6
- "names": ["Atom", "Effect", "Capability", "createKvsStore", "meta", "AssistantCapabilities", "makeModule", "sync", "stateAtom", "key", "id", "schema", "StateSchema", "defaultValue", "currentChat", "pendingPrompts", "companionChatCacheAtom", "make", "pipe", "keepAlive", "contributes", "State", "CompanionChatCache"]
7
- }