@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
@@ -2,54 +2,58 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import * as Context from 'effect/Context';
6
5
  import * as Effect from 'effect/Effect';
7
6
  import * as Layer from 'effect/Layer';
8
7
  import { describe, test } from 'vitest';
9
8
 
10
- import { Database, Feed, Obj } from '@dxos/echo';
9
+ import { Database, Entity, Feed, Obj } from '@dxos/echo';
11
10
  import { EffectEx } from '@dxos/effect';
12
11
  import { type Message } from '@dxos/types';
13
12
 
14
13
  import { createMessageGenerator } from './test-generator';
15
14
 
16
15
  /**
17
- * In-memory FeedService that records appends and emits a change event whenever
18
- * `append` is called. Used to verify the streaming-message generator emits
19
- * per-chunk updates.
16
+ * In-memory Database.Service that records appendToFeed calls and emits a change event
17
+ * whenever `appendToFeed` is called. Used to verify the streaming-message generator
18
+ * emits per-chunk updates.
20
19
  */
21
- const makeRecordingFeedLayer = () => {
20
+ const makeRecordingDatabaseLayer = () => {
22
21
  const items: Message.Message[] = [];
23
22
  const subscribers = new Set<() => void>();
24
23
 
25
- const feedService: Context.Tag.Service<Feed.FeedService> = {
26
- append: async (_feed: Feed.Feed, newItems) => {
24
+ const dbService: Database.Database = {
25
+ get spaceId() {
26
+ return 'recording' as any;
27
+ },
28
+ add: (obj: any) => obj as any,
29
+ addType: async () => undefined as any,
30
+ remove: () => {},
31
+ appendToFeed: async (_feed: Feed.Feed, newItems: Entity.Unknown[]) => {
27
32
  items.push(...(newItems as Message.Message[]));
28
33
  for (const fn of subscribers) {
29
34
  fn();
30
35
  }
31
36
  },
32
- remove: async () => {},
33
- query: () =>
34
- ({
35
- subscribe: () => () => {},
36
- results: [],
37
- run: async () => [],
38
- }) as any,
39
- sync: async () => {},
40
- getSyncState: async () => ({ blocksToPull: 0, blocksToPush: 0, totalBlocks: 0 }),
41
- };
37
+ removeFeedItemsByIds: async () => {},
38
+ queryFeed: () => ({ subscribe: () => () => {}, results: [], run: async () => [] }) as any,
39
+ query: () => ({ subscribe: () => () => {}, results: [], run: async () => [] }) as any,
40
+ syncFeed: async () => {},
41
+ getFeedSyncState: async () => ({ blocksToPull: 0, blocksToPush: 0, totalBlocks: 0 }),
42
+ flush: async () => {},
43
+ makeRef: () => undefined as any,
44
+ deleteFromFeed: async () => {},
45
+ } as unknown as Database.Database;
42
46
 
43
47
  return {
44
48
  items,
45
49
  onAppend: (cb: () => void) => subscribers.add(cb),
46
- layer: Layer.succeed(Feed.FeedService, feedService),
50
+ layer: Layer.succeed(Database.Service, { db: dbService }),
47
51
  };
48
52
  };
49
53
 
50
54
  describe('createMessageGenerator', () => {
51
55
  test('streaming message publishes updates for chunk mutations', async ({ expect }) => {
52
- const recording = makeRecordingFeedLayer();
56
+ const recording = makeRecordingDatabaseLayer();
53
57
  let updates = 0;
54
58
  recording.onAppend(() => updates++);
55
59
 
@@ -57,10 +61,10 @@ describe('createMessageGenerator', () => {
57
61
 
58
62
  // The streaming step is the third entry (index 2) — earlier indices are the initial
59
63
  // user prompt and an assistant message with an Organization link (which requires
60
- // `Database.Service`, unavailable in this unit-test layer).
64
+ // a real database; the recording layer stub is sufficient for this streaming test).
61
65
  await EffectEx.runAndForwardErrors(
62
66
  createMessageGenerator()[2]!.pipe(
63
- Effect.provide(Layer.mergeAll(Feed.ContextFeedService.layer(feed), recording.layer, Database.notAvailable)),
67
+ Effect.provide(Layer.mergeAll(Feed.ContextFeedService.layer(feed), recording.layer)),
64
68
  ),
65
69
  );
66
70
 
@@ -19,11 +19,7 @@ export const createMessage = (role: Actor.Role, blocks: ContentBlock.Any[]): Mes
19
19
  });
20
20
  };
21
21
 
22
- export type MessageGenerator = Effect.Effect<
23
- void,
24
- never,
25
- Database.Service | Feed.ContextFeedService | Feed.FeedService
26
- >;
22
+ export type MessageGenerator = Effect.Effect<void, never, Database.Service | Feed.ContextFeedService>;
27
23
 
28
24
  export const createMessageGenerator = (): MessageGenerator[] => [
29
25
  Effect.gen(function* () {
@@ -75,7 +71,7 @@ export const createMessageGenerator = (): MessageGenerator[] => [
75
71
  // so the syncer renders progressive deltas through the feed (not via the controller).
76
72
  Effect.gen(function* () {
77
73
  const { feed } = yield* Feed.ContextFeedService;
78
- const feedService = yield* Feed.FeedService;
74
+ const { db } = yield* Database.Service;
79
75
  const message = createMessage('assistant', [{ _tag: 'text', text: '', pending: true }]);
80
76
  yield* Feed.append(feed, [message]);
81
77
 
@@ -92,13 +88,13 @@ export const createMessageGenerator = (): MessageGenerator[] => [
92
88
  block.text += chunk;
93
89
  });
94
90
  // Feed queries only react to feed-level updates, not in-place object mutations.
95
- await feedService.append(feed, []);
91
+ await db.appendToFeed(feed, []);
96
92
  }
97
93
  Obj.update(message, (message) => {
98
94
  const block = message.blocks[0] as Mutable<ContentBlock.Text>;
99
95
  block.pending = false;
100
96
  });
101
- await feedService.append(feed, []);
97
+ await db.appendToFeed(feed, []);
102
98
  });
103
99
  }),
104
100
 
@@ -5,13 +5,14 @@
5
5
  import * as Option from 'effect/Option';
6
6
 
7
7
  import { Process } from '@dxos/compute';
8
+ import { Annotation } from '@dxos/echo';
8
9
 
9
10
  export const makeProcess = (
10
11
  overrides: Partial<Process.Info> & Pick<Process.Info, 'pid' | 'state'> & { name: string },
11
12
  ): Process.Info => ({
12
13
  parentPid: null,
13
14
  key: `test.process.${overrides.name}`,
14
- params: { name: overrides.name, target: null },
15
+ params: { name: overrides.name, annotations: Annotation.buildDictionary(() => {}) },
15
16
  error: null,
16
17
  startedAt: Date.now() - 10_000,
17
18
  completedAt: Option.none(),
@@ -7,14 +7,14 @@ import * as Effect from 'effect/Effect';
7
7
 
8
8
  import {
9
9
  AgentHandlers,
10
- AgentPrompt,
11
- DatabaseBlueprint,
12
10
  DatabaseHandlers,
13
- WebSearchBlueprint,
11
+ DatabaseSkill,
12
+ RunInstructions,
14
13
  WebSearchHandlers,
14
+ WebSearchSkill,
15
15
  WebSearchToolkitOpaque,
16
16
  } from '@dxos/assistant-toolkit';
17
- import { Blueprint, Routine, Trace, Trigger, Operation } from '@dxos/compute';
17
+ import { Instructions, Operation, Skill, Trace, Trigger } from '@dxos/compute';
18
18
  import { ExampleHandlers, Reply } from '@dxos/compute/testing';
19
19
  import { Database, Feed, Filter, Obj, Query, Ref } from '@dxos/echo';
20
20
  import { TestHelpers } from '@dxos/effect/testing';
@@ -39,7 +39,7 @@ const queryTraceMessages = Effect.gen(function* () {
39
39
 
40
40
  const TestLayer = AssistantTestLayerWithTriggers({
41
41
  types: [Organization.Organization, Person.Person],
42
- blueprints: [DatabaseBlueprint.make(), WebSearchBlueprint.make()],
42
+ skills: [DatabaseSkill.make(), WebSearchSkill.make()],
43
43
  operationHandlers: [DatabaseHandlers, AgentHandlers, WebSearchHandlers, ExampleHandlers],
44
44
  toolkits: [WebSearchToolkitOpaque],
45
45
  tracing: 'feed',
@@ -54,7 +54,7 @@ describe.skip('Trace timeline', () => {
54
54
  Effect.fnUntraced(
55
55
  function* ({ expect }) {
56
56
  const agent = yield* AgentService.createSession({
57
- blueprints: [DatabaseBlueprint.make()],
57
+ skills: [DatabaseSkill.make()],
58
58
  });
59
59
  yield* agent.submitPrompt('Create an organization called "Cyberdyne Systems".');
60
60
  yield* agent.waitForCompletion();
@@ -92,7 +92,7 @@ describe.skip('Trace timeline', () => {
92
92
  Effect.fnUntraced(
93
93
  function* ({ expect }) {
94
94
  const agent = yield* AgentService.createSession({
95
- blueprints: [DatabaseBlueprint.make()],
95
+ skills: [DatabaseSkill.make()],
96
96
  });
97
97
  yield* Database.add(Obj.make(Organization.Organization, { name: 'Acme Corp' }));
98
98
  yield* Database.add(Obj.make(Organization.Organization, { name: 'Globex Industries' }));
@@ -124,7 +124,7 @@ describe.skip('Trace timeline', () => {
124
124
  Effect.fnUntraced(
125
125
  function* ({ expect }) {
126
126
  const agent = yield* AgentService.createSession({
127
- blueprints: [DatabaseBlueprint.make()],
127
+ skills: [DatabaseSkill.make()],
128
128
  });
129
129
  yield* agent.submitPrompt('List all available schemas. Tell me what typenames are available.');
130
130
  yield* agent.waitForCompletion();
@@ -165,20 +165,20 @@ describe.skip('Trace timeline', () => {
165
165
  name: 'DXOS',
166
166
  }),
167
167
  ]);
168
- const prompt = yield* Database.add(
169
- Routine.make({
168
+ const instructions = yield* Database.add(
169
+ Instructions.make({
170
170
  name: 'Research',
171
- instructions: 'Research the given topic, or object.',
172
- blueprints: [Ref.make(yield* Blueprint.upsert(WebSearchBlueprint.key))],
171
+ text: 'Research the given topic, or object.',
172
+ skills: [Ref.make(yield* Skill.upsert(WebSearchSkill.key))],
173
173
  }),
174
174
  );
175
175
  yield* Database.add(
176
176
  Trigger.make({
177
- function: Ref.make(Operation.serialize(AgentPrompt)),
177
+ runnable: Ref.make(Operation.serialize(RunInstructions)),
178
178
  enabled: true,
179
179
  spec: Trigger.specFeed(feed),
180
180
  input: {
181
- prompt: Ref.make(prompt),
181
+ instructions: Ref.make(instructions),
182
182
  input: '{{event.item}}',
183
183
  },
184
184
  }),
@@ -2,8 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Chat, Agent, McpServer } from '@dxos/assistant-toolkit';
6
- import { Blueprint, Routine } from '@dxos/compute';
5
+ import { Agent, Chat, McpServer } from '@dxos/assistant-toolkit';
6
+ import { Instructions, Skill } from '@dxos/compute';
7
7
  import { Sequence } from '@dxos/conductor';
8
8
  import { Type } from '@dxos/echo';
9
9
  import { type Resource } from '@dxos/react-ui';
@@ -12,24 +12,23 @@ import { translations as formTranslations } from '@dxos/react-ui-form/translatio
12
12
 
13
13
  import { meta } from '#meta';
14
14
 
15
- // TODO(burdon): Standardize translation names.
16
15
  export const translations: Resource[] = [
17
16
  ...componentsTranslations,
18
17
  ...formTranslations,
19
18
  {
20
19
  'en-US': {
21
- [Type.getTypename(Blueprint.Blueprint)]: {
22
- 'typename.label': 'Blueprint',
23
- 'typename.label_zero': 'Blueprints',
24
- 'typename.label_one': 'Blueprint',
25
- 'typename.label_other': 'Blueprints',
26
- 'object-name.placeholder': 'New blueprint',
27
- 'add-object.label': 'Add blueprint',
28
- 'rename-object.label': 'Rename blueprint',
29
- 'delete-object.label': 'Delete blueprint',
30
- 'object-deleted.label': 'Blueprint deleted',
20
+ [Type.getTypename(Skill.Skill)]: {
21
+ 'typename.label': 'Skill',
22
+ 'typename.label_zero': 'Skills',
23
+ 'typename.label_one': 'Skill',
24
+ 'typename.label_other': 'Skills',
25
+ 'object-name.placeholder': 'New skill',
26
+ 'add-object.label': 'Add skill',
27
+ 'rename-object.label': 'Rename skill',
28
+ 'delete-object.label': 'Delete skill',
29
+ 'object-deleted.label': 'Skill deleted',
31
30
  },
32
- [Type.getTypename(Routine.Routine)]: {
31
+ [Type.getTypename(Instructions.Instructions)]: {
33
32
  'typename.label': 'Routine',
34
33
  'typename.label_zero': 'Routines',
35
34
  'typename.label_one': 'Routine',
@@ -52,15 +51,15 @@ export const translations: Resource[] = [
52
51
  'object-deleted.label': 'Sequence deleted',
53
52
  },
54
53
  [Type.getTypename(Chat.Chat)]: {
55
- 'typename.label': 'AI Chat',
56
- 'typename.label_zero': 'AI Chats',
57
- 'typename.label_one': 'AI Chat',
58
- 'typename.label_other': 'AI Chats',
59
- 'object-name.placeholder': 'New AI Chat',
60
- 'add-object.label': 'Add AI chat',
61
- 'rename-object.label': 'Rename AI Chat',
62
- 'delete-object.label': 'Delete AI Chat',
63
- 'object-deleted.label': 'AI Chat deleted',
54
+ 'typename.label': 'Session',
55
+ 'typename.label_zero': 'Sessions',
56
+ 'typename.label_one': 'Session',
57
+ 'typename.label_other': 'Sessions',
58
+ 'object-name.placeholder': 'New session',
59
+ 'add-object.label': 'Add Session',
60
+ 'rename-object.label': 'Rename session',
61
+ 'delete-object.label': 'Delete session',
62
+ 'object-deleted.label': 'Session deleted',
64
63
  },
65
64
  [Type.getTypename(McpServer.McpServer)]: {
66
65
  'typename.label': 'MCP Server',
@@ -80,18 +79,15 @@ export const translations: Resource[] = [
80
79
  'object-deleted.label': 'Agent deleted',
81
80
  },
82
81
  // TODO(burdon): Reconcile with react-ui-chat.
83
- [meta.id]: {
82
+ [meta.profile.key]: {
84
83
  'templates.label': 'Templates',
85
84
  'open-ambient-chat.label': 'Open Assistant',
86
85
  'assistant-chat.label': 'Assistant',
87
86
  'plugin.name': 'Assistant',
88
- 'settings.title': 'Assistant settings',
89
87
  'object.placeholder': 'New prompt',
90
88
  'create-object.label': 'Create prompt',
91
89
  'create-trigger.label': 'Create trigger',
92
90
  'create-stack-section.label': 'Create prompt',
93
- 'command.placeholder': 'Enter slash command...',
94
- 'template.placeholder': 'Enter template...',
95
91
  'value.placeholder': 'Enter value...',
96
92
  'prompt-rules.label': 'Prompt Rules',
97
93
  'typename.placeholder': 'Enter typename of objects which this template is for',
@@ -100,7 +96,7 @@ export const translations: Resource[] = [
100
96
  'service-registry.label': 'Service Registry',
101
97
  'type-filter.placeholder': 'Type',
102
98
  'any-type-filter.label': 'Any',
103
- 'no-blueprint.message': 'No active blueprints',
99
+ 'no-skill.message': 'No active skills',
104
100
  'tool-call.label': 'Calling',
105
101
  'tool-result.label': 'Success',
106
102
  'tool-error.label': 'Tool call failed',
@@ -128,14 +124,29 @@ export const translations: Resource[] = [
128
124
  'summary.label': 'Summary',
129
125
  'thinking.label': 'Thinking',
130
126
 
127
+ 'integration-prompt.title': 'Connect {{service}}',
128
+ 'integration-prompt.description': 'This action needs access to {{service}}. Connect it to continue.',
129
+ 'integration-prompt.unavailable': 'No connector is available for {{service}}.',
130
+
131
131
  'search.placeholder': 'Search...',
132
132
  'prompt.placeholder': 'Enter question or command...',
133
133
  'context-objects.button': 'Add to context',
134
134
  'context-settings.button': 'Chat settings',
135
135
  'microphone.button': 'Click to speak',
136
+ 'recording.placeholder': 'Recording…',
137
+ 'stop-recording.label': 'Stop recording',
138
+ 'hold-to-record.label': 'Hold to record',
139
+ 'start-recording.label': 'Start recording',
140
+ 'recording-options.label': 'Recording options',
141
+ 'record-mode.label': 'Record mode',
142
+ 'record-mode.toggle.label': 'Toggle',
143
+ 'record-mode.hold.label': 'Hold (push-to-talk)',
144
+ 'audio-device.label': 'Microphone',
145
+ 'audio-device.default.label': 'System default',
146
+ 'settings.entity-extraction.label': 'Entity extraction',
136
147
  'cancel-processing.button': 'Stop processing',
137
148
 
138
- 'options.blueprints.title': 'Skills',
149
+ 'options.skills.title': 'Skills',
139
150
  'options.mcp.title': 'MCP',
140
151
  'options.chat-model.title': 'Models',
141
152
  'remove-object.label': 'Remove object',
@@ -156,11 +167,33 @@ export const translations: Resource[] = [
156
167
  'mcp-server-api-key.placeholder': 'API key (optional)',
157
168
  'mcp-server-error.label': 'MCP server unavailable',
158
169
  'ai-service-error.label': 'AI service error',
170
+ 'view-usage.label': 'View usage',
171
+
172
+ // LLM provider labels.
173
+ 'settings.provider.edge.label': 'Edge',
174
+ 'settings.provider.built-in.label': 'Built-in',
175
+ 'settings.provider.ollama.label': 'Ollama',
176
+ 'settings.provider.lmstudio.label': 'LM Studio',
177
+
178
+ // Ollama local model management (desktop only).
179
+ 'settings.ollama.title': 'Local models',
180
+ 'settings.ollama.installed.label': 'Downloaded models',
181
+ 'settings.ollama.empty.message': 'No models downloaded. Pull one below to get started.',
182
+ 'settings.ollama.pull.label': 'Pull model',
183
+ 'settings.ollama.pull.placeholder': 'Search or enter a model name (e.g. llama3.2:1b)',
184
+ 'settings.ollama.pull-custom.label': 'Pull “{{name}}”',
185
+ 'settings.ollama.pulling.label': 'Pulling…',
186
+ 'settings.ollama.pulling.message': 'Downloading… {{percent}}%',
187
+ 'settings.ollama.cancel.label': 'Cancel download',
188
+ 'settings.ollama.loaded.label': 'Loaded',
189
+ 'settings.ollama.loaded.vram': 'Loaded · {{size}}',
190
+ 'settings.ollama.load.label': 'Load into memory',
191
+ 'settings.ollama.unload.label': 'Unload from memory',
192
+ 'settings.ollama.remove.label': 'Delete model',
193
+ 'settings.ollama.failed.message': 'Could not reach the local model service: {{error}}',
159
194
 
160
195
  'debug.button': 'Debug',
161
196
  'online-switch.label': 'Online',
162
- 'run-prompt.label': 'Run prompt',
163
- 'routine-running.label': 'Running…',
164
197
  'typename.label': 'Typename',
165
198
  'branch-thread.menu': 'Branch chat',
166
199
  'chat-toolbar.title': 'Chat toolbar',
@@ -186,6 +219,16 @@ export const translations: Resource[] = [
186
219
  'instructions.placeholder': 'Enter instructions, goals, and constraints for the assistant.',
187
220
  'reset-history.button': 'Reset',
188
221
  'subscriptions.label': 'Subscriptions',
222
+
223
+ // Per-space Home article: starter-prompt cards + the pinned assistant prompt.
224
+ 'space-home.suggestions.heading': 'Get started',
225
+ 'space-home.suggestion-magazine.label': 'Create feeds for tracking the latest AI news and build a magazine',
226
+ 'space-home.suggestion-spreadsheet.label':
227
+ "Look up and create a spreadsheet of MLB's top starters by month for {{year}}",
228
+ 'space-home.suggestion-kanban.label': 'Create a kanban view for tracking tasks',
229
+ 'space-home.prompt.placeholder': 'Ask the assistant anything…',
230
+
231
+ 'nav-tree-group-ai.label': 'Assistant',
189
232
  },
190
233
  },
191
234
  },
@@ -9,6 +9,8 @@ import { Chat as ChatModule } from '@dxos/assistant-toolkit';
9
9
  export const Chat = ChatModule.Chat;
10
10
  export type Chat = ChatModule.Chat;
11
11
 
12
+ import { type DXN } from '@dxos/keys';
13
+
12
14
  // Re-export Settings as merged const/type (not as namespace).
13
15
  import * as SettingsModule from './Settings';
14
16
  export const Settings = SettingsModule.Settings;
@@ -18,7 +20,7 @@ export const ChatViews = SettingsModule.ChatViews;
18
20
  export const ChatView = SettingsModule.ChatView;
19
21
  export type ChatView = SettingsModule.ChatView;
20
22
 
21
- export const ModelProviders = SettingsModule.ModelProviders;
23
+ export const ModelProviders: readonly DXN.DXN[] = SettingsModule.ModelProviders;
22
24
  export const ModelProvider = SettingsModule.ModelProvider;
23
25
  export type ModelProvider = SettingsModule.ModelProvider;
24
26
 
@@ -13,8 +13,11 @@ import { type Obj } from '@dxos/echo';
13
13
  import { meta } from '#meta';
14
14
 
15
15
  import * as Assistant from './Assistant';
16
+ import * as Ollama from './Ollama';
16
17
 
17
- export const Settings = Capability.make<Atom.Writable<Assistant.Settings>>(`${meta.id}.capability.settings`);
18
+ export const Settings = Capability.make<Atom.Writable<Assistant.Settings>>(`${meta.profile.key}.capability.settings`);
19
+
20
+ export const OllamaManager = Capability.make<Ollama.Manager>(`${meta.profile.key}.capability.ollama-manager`);
18
21
 
19
22
  export const StateSchema = Schema.mutable(
20
23
  Schema.Struct({
@@ -27,9 +30,27 @@ export const StateSchema = Schema.mutable(
27
30
 
28
31
  export type AssistantState = Schema.Schema.Type<typeof StateSchema>;
29
32
 
30
- export const State = Capability.make<Atom.Writable<AssistantState>>(`${meta.id}.capability.state`);
33
+ export const State = Capability.make<Atom.Writable<AssistantState>>(`${meta.profile.key}.capability.state`);
31
34
 
32
35
  /** Session-scoped cache of transient (not yet persisted) companion chats keyed by companion DXN string. */
33
36
  export const CompanionChatCache = Capability.make<Atom.Writable<Record<string, Obj.Unknown | undefined>>>(
34
- `${meta.id}.capability.companion-chat-cache`,
37
+ `${meta.profile.key}.capability.companion-chat-cache`,
38
+ );
39
+
40
+ export const HomeSuggestionsCacheSchema = Schema.mutable(
41
+ Schema.Record({
42
+ key: Schema.String,
43
+ value: Schema.Struct({
44
+ /** Epoch ms timestamp of the successful generation that produced these prompts. */
45
+ generatedAt: Schema.Number,
46
+ /** Non-empty, trimmed prompts from a successful generation. */
47
+ prompts: Schema.Array(Schema.String),
48
+ }),
49
+ }),
50
+ );
51
+ export type HomeSuggestionsCache = Schema.Schema.Type<typeof HomeSuggestionsCacheSchema>;
52
+
53
+ /** Per-space cache of LLM-generated home starter prompts, persisted across page reloads. */
54
+ export const HomeSuggestionsCache = Capability.make<Atom.Writable<HomeSuggestionsCache>>(
55
+ `${meta.profile.key}.capability.home-suggestions-cache`,
35
56
  );
@@ -8,4 +8,4 @@ import { ActivationEvent } from '@dxos/app-framework';
8
8
 
9
9
  import { meta } from '#meta';
10
10
 
11
- export const SetupAiServiceProviders = ActivationEvent.make(`${meta.id}.event.setup-ai-service-providers`);
11
+ export const SetupAiServiceProviders = ActivationEvent.make(`${meta.profile.key}.event.setupAiServiceProviders`);
@@ -9,13 +9,13 @@ import * as Schema from 'effect/Schema';
9
9
  import { AiService } from '@dxos/ai';
10
10
  import { Capability } from '@dxos/app-framework';
11
11
  import { Chat } from '@dxos/assistant-toolkit';
12
- import { Routine, Operation } from '@dxos/compute';
13
- import { Database, Feed, Obj, Ref, Type } from '@dxos/echo';
14
- import { DXN } from '@dxos/keys';
12
+ import { Operation } from '@dxos/compute';
13
+ import { Database, Obj, Type } from '@dxos/echo';
14
+ import { DXN, URI } from '@dxos/keys';
15
15
 
16
16
  import { meta } from '#meta';
17
17
 
18
- const makeKey = (name: string) => DXN.make(`${meta.id}.operation.${name}`);
18
+ const makeKey = (name: string) => DXN.make(`${meta.profile.key}.operation.${name}`);
19
19
 
20
20
  export const CreateChat = Operation.make({
21
21
  meta: { key: makeKey('createChat'), name: 'Create Chat', icon: 'ph--chat-text--regular' },
@@ -37,7 +37,7 @@ export const UpdateChatName = Operation.make({
37
37
  name: 'Update Chat Name',
38
38
  icon: 'ph--pencil--regular',
39
39
  },
40
- services: [Database.Service, Feed.FeedService, AiService.AiService],
40
+ services: [Database.Service, AiService.AiService],
41
41
  input: Schema.Struct({
42
42
  chat: Type.getSchema(Chat.Chat),
43
43
  /** Initial user message text; used when the feed has no history yet (e.g. auto-rename on first send). */
@@ -60,31 +60,6 @@ export const SetCurrentChat = Operation.make({
60
60
  output: Schema.Void,
61
61
  });
62
62
 
63
- export const RunPromptInNewChat = Operation.make({
64
- meta: {
65
- key: makeKey('runPromptInNewChat'),
66
- name: 'Run Prompt In New Chat',
67
- icon: 'ph--chat-text--regular',
68
- },
69
- services: [Capability.Service],
70
- input: Schema.Struct({
71
- db: Database.Database,
72
- /** Context objects to bind to the new chat. */
73
- objects: Schema.optional(Schema.Array(Obj.Unknown)),
74
- /** Blueprint keys to look up and bind to the new chat. */
75
- blueprints: Schema.optional(Schema.Array(Schema.String)),
76
- /** Raw instructions or an existing Routine object reference. */
77
- prompt: Schema.Union(Schema.String, Ref.Ref(Routine.Routine)),
78
- /**
79
- * When true, skips opening the chat: runs the Agent prompt operation against the new chat via the compute runtime (traced).
80
- */
81
- background: Schema.optional(Schema.Boolean),
82
- }),
83
- output: Schema.Struct({
84
- object: Type.getSchema(Chat.Chat),
85
- }),
86
- });
87
-
88
63
  const NavigationTargetSchema = Schema.Struct({
89
64
  path: Schema.String.annotations({ description: 'Navigation path to use with the Open operation.' }),
90
65
  label: Schema.String.annotations({ description: 'Human-readable label.' }),
@@ -96,13 +71,14 @@ export const ResolveNavigationTargets = Operation.make({
96
71
  key: makeKey('resolveNavigationTargets'),
97
72
  name: 'Resolve navigation targets',
98
73
  description:
99
- '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.',
74
+ "Resolve a navigation path for the Open operation. Pass an object's URI (its DXN, e.g. a context object's <dxn>) as the query uri to resolve that object to its navigation target, or omit the query to list pages that can be navigated to. Pass the returned target path to Open.",
100
75
  icon: 'ph--compass--regular',
101
76
  },
102
77
  input: Schema.Struct({
103
78
  query: Schema.optional(
104
79
  Schema.Struct({
105
- dxn: Schema.optional(DXN.Schema),
80
+ // An object URI (e.g. a context object's `<dxn>`); accepts both `echo:` EIDs and `dxn:` DXNs.
81
+ uri: Schema.optional(URI.Schema),
106
82
  }),
107
83
  ),
108
84
  }),
@@ -143,12 +119,25 @@ export const EnsureCompanionChat = Operation.make({
143
119
  }),
144
120
  });
145
121
 
146
- export const BlueprintForm = Schema.Struct({
122
+ export const SkillForm = Schema.Struct({
147
123
  key: Schema.String,
148
124
  name: Schema.String,
149
125
  description: Schema.optional(Schema.String),
150
126
  });
151
127
 
128
+ export const GenerateHomeSuggestions = Operation.make({
129
+ meta: {
130
+ key: makeKey('generateHomeSuggestions'),
131
+ name: 'Generate Home Suggestions',
132
+ icon: 'ph--sparkle--regular',
133
+ // Internal UI operation — not exposed as an agent tool.
134
+ skipRegistry: true,
135
+ },
136
+ services: [Capability.Service, AiService.AiService],
137
+ input: Schema.Struct({ db: Database.Database }),
138
+ output: Schema.Struct({ prompts: Schema.Array(Schema.String) }),
139
+ });
140
+
152
141
  export const ToggleTracePanelDebug = Operation.make({
153
142
  meta: {
154
143
  key: makeKey('toggleTracePanelDebug'),
@@ -0,0 +1,16 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { Surface } from '@dxos/app-framework/ui';
6
+
7
+ /**
8
+ * Role token for surfaces an agent requests inline in the conversation via the `<surface>` content
9
+ * block. `role` selects the concrete surface to render (e.g. `integration-prompt`); `data` carries
10
+ * its payload (e.g. `{ service: 'gmail.com' }`). Plugins contribute renderers by filtering on the
11
+ * inner `role`, which keeps the chat renderer decoupled from the specific surfaces it can host.
12
+ */
13
+ export const ChatSurface: Surface.RoleToken<{
14
+ role: string;
15
+ data?: Record<string, unknown>;
16
+ }> = Surface.makeType('org.dxos.plugin.assistant.role.chatSurface');
@@ -0,0 +1,59 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ // @import-as-namespace
6
+
7
+ import { Atom } from '@effect-atom/atom-react';
8
+ import type * as Effect from 'effect/Effect';
9
+
10
+ import { type OllamaAdmin } from '@dxos/ai/resolvers';
11
+
12
+ /**
13
+ * Reactive state of the local Ollama model installation, surfaced to the settings UI.
14
+ */
15
+ export type ModelsState = {
16
+ kind: 'idle' | 'loading' | 'ready' | 'failed';
17
+ models: OllamaAdmin.Model[];
18
+ /** Models currently loaded into memory (from `/api/ps`). */
19
+ loaded: OllamaAdmin.RunningModel[];
20
+ /** In-flight pulls keyed by model name. */
21
+ pulls: Record<string, OllamaAdmin.PullProgress>;
22
+ /** Per-model action errors (load/unload/remove/pull), keyed by model name, shown inline. */
23
+ errors: Record<string, string>;
24
+ /** Connection-level error reaching the service (no specific model). */
25
+ error?: string;
26
+ };
27
+
28
+ /**
29
+ * Stable, empty model state. Subscribed to when no sidecar manager is present (web/mobile) so a
30
+ * reactive read keeps an unconditional hook order.
31
+ */
32
+ export const emptyState: Atom.Atom<ModelsState> = Atom.make<ModelsState>({
33
+ kind: 'idle',
34
+ models: [],
35
+ loaded: [],
36
+ pulls: {},
37
+ errors: {},
38
+ });
39
+
40
+ /**
41
+ * Capability for managing locally-installed Ollama models. Implemented by the native (desktop)
42
+ * plugin against the bundled sidecar; absent in the browser/mobile, where the UI renders nothing.
43
+ */
44
+ export type Manager = {
45
+ readonly endpoint: string;
46
+ state: Atom.Writable<ModelsState>;
47
+ /** List installed models (and currently-loaded models). Ensures the sidecar is running. */
48
+ refresh: Effect.Effect<void>;
49
+ /** Refresh only the currently-loaded models; cheap, for polling while a chat runs. */
50
+ refreshLoaded: Effect.Effect<void>;
51
+ pull: (name: string) => Effect.Effect<void>;
52
+ /** Abort an in-flight pull, leaving any already-downloaded layers in place. */
53
+ cancel: (name: string) => Effect.Effect<void>;
54
+ /** Load a model into memory (kept resident until unloaded). */
55
+ load: (name: string) => Effect.Effect<void>;
56
+ /** Unload a model from memory. */
57
+ unload: (name: string) => Effect.Effect<void>;
58
+ remove: (name: string) => Effect.Effect<void>;
59
+ };