@dxos/plugin-assistant 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef

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 (483) hide show
  1. package/dist/lib/browser/AssistantSettings-GG52BLKS.mjs +40 -0
  2. package/dist/lib/browser/AssistantSettings-GG52BLKS.mjs.map +7 -0
  3. package/dist/lib/browser/blueprints/index.mjs +26 -3
  4. package/dist/lib/browser/blueprints/index.mjs.map +4 -4
  5. package/dist/lib/browser/{chunk-ATHYBVGN.mjs → chunk-DVOOFAWU.mjs} +4 -5
  6. package/dist/lib/browser/chunk-DVOOFAWU.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-M55MBYG7.mjs +932 -0
  8. package/dist/lib/browser/chunk-M55MBYG7.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-RUV2WOQH.mjs → chunk-SEMCG4ZK.mjs} +58 -17
  10. package/dist/lib/browser/chunk-SEMCG4ZK.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-VK53MITK.mjs +2300 -0
  12. package/dist/lib/browser/chunk-VK53MITK.mjs.map +7 -0
  13. package/dist/lib/browser/cli/index.mjs +73 -0
  14. package/dist/lib/browser/cli/index.mjs.map +7 -0
  15. package/dist/lib/browser/components/index.mjs +20 -0
  16. package/dist/lib/browser/components/index.mjs.map +7 -0
  17. package/dist/lib/browser/{create-chat-LBZHGVSN.mjs → create-chat-E2ZLVTLP.mjs} +4 -13
  18. package/dist/lib/browser/create-chat-E2ZLVTLP.mjs.map +7 -0
  19. package/dist/lib/browser/{ensure-companion-chat-FR4AWZ2P.mjs → ensure-companion-chat-7GDMXSQW.mjs} +4 -4
  20. package/dist/lib/browser/ensure-companion-chat-7GDMXSQW.mjs.map +7 -0
  21. package/dist/lib/browser/hooks/index.mjs +39 -0
  22. package/dist/lib/browser/hooks/index.mjs.map +7 -0
  23. package/dist/lib/browser/index.mjs +43 -3233
  24. package/dist/lib/browser/index.mjs.map +4 -4
  25. package/dist/lib/browser/meta.json +1 -1
  26. package/dist/lib/browser/{on-create-space-54RNX5JI.mjs → on-create-space-4J3KTNAJ.mjs} +3 -3
  27. package/dist/lib/browser/{on-create-space-54RNX5JI.mjs.map → on-create-space-4J3KTNAJ.mjs.map} +1 -1
  28. package/dist/lib/browser/operations/index.mjs +3 -3
  29. package/dist/lib/browser/operations/index.mjs.map +3 -3
  30. package/dist/lib/browser/{resolve-navigation-targets-NZOD66NY.mjs → resolve-navigation-targets-3ZPQE6SZ.mjs} +3 -3
  31. package/dist/lib/browser/{resolve-navigation-targets-NZOD66NY.mjs.map → resolve-navigation-targets-3ZPQE6SZ.mjs.map} +1 -1
  32. package/dist/lib/browser/{run-prompt-in-new-chat-4YQ37XIS.mjs → run-prompt-in-new-chat-AA3KPBDN.mjs} +9 -39
  33. package/dist/lib/browser/run-prompt-in-new-chat-AA3KPBDN.mjs.map +7 -0
  34. package/dist/lib/browser/{set-current-chat-WJI3WAVM.mjs → set-current-chat-P4VHI3YF.mjs} +4 -4
  35. package/dist/lib/browser/set-current-chat-P4VHI3YF.mjs.map +7 -0
  36. package/dist/lib/browser/translations.mjs +172 -0
  37. package/dist/lib/browser/translations.mjs.map +7 -0
  38. package/dist/lib/browser/types/index.mjs +1 -3
  39. package/dist/lib/browser/{update-chat-name-3Y36KFAS.mjs → update-chat-name-VWKNUON7.mjs} +7 -22
  40. package/dist/lib/browser/update-chat-name-VWKNUON7.mjs.map +7 -0
  41. package/dist/lib/node-esm/AssistantSettings-23A5IMHS.mjs +41 -0
  42. package/dist/lib/node-esm/AssistantSettings-23A5IMHS.mjs.map +7 -0
  43. package/dist/lib/node-esm/blueprints/index.mjs +26 -3
  44. package/dist/lib/node-esm/blueprints/index.mjs.map +4 -4
  45. package/dist/lib/node-esm/chunk-FWC3ZGPH.mjs +933 -0
  46. package/dist/lib/node-esm/chunk-FWC3ZGPH.mjs.map +7 -0
  47. package/dist/lib/node-esm/chunk-JKEB3NFZ.mjs +2302 -0
  48. package/dist/lib/node-esm/chunk-JKEB3NFZ.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-PXAJSTGZ.mjs → chunk-MBDVPB4V.mjs} +4 -5
  50. package/dist/lib/node-esm/chunk-MBDVPB4V.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-PY4X6FJT.mjs → chunk-XAFVSEUJ.mjs} +58 -17
  52. package/dist/lib/node-esm/chunk-XAFVSEUJ.mjs.map +7 -0
  53. package/dist/lib/node-esm/cli/index.mjs +74 -0
  54. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  55. package/dist/lib/node-esm/components/index.mjs +21 -0
  56. package/dist/lib/node-esm/components/index.mjs.map +7 -0
  57. package/dist/lib/node-esm/{create-chat-3BEG4R6J.mjs → create-chat-UQQ3542N.mjs} +4 -13
  58. package/dist/lib/node-esm/create-chat-UQQ3542N.mjs.map +7 -0
  59. package/dist/lib/node-esm/{ensure-companion-chat-BLP7NT32.mjs → ensure-companion-chat-LVCPD4DJ.mjs} +4 -4
  60. package/dist/lib/node-esm/ensure-companion-chat-LVCPD4DJ.mjs.map +7 -0
  61. package/dist/lib/node-esm/hooks/index.mjs +40 -0
  62. package/dist/lib/node-esm/hooks/index.mjs.map +7 -0
  63. package/dist/lib/node-esm/index.mjs +43 -3233
  64. package/dist/lib/node-esm/index.mjs.map +4 -4
  65. package/dist/lib/node-esm/meta.json +1 -1
  66. package/dist/lib/node-esm/{on-create-space-YRPZ6HZY.mjs → on-create-space-M63UBTTT.mjs} +3 -3
  67. package/dist/lib/node-esm/{on-create-space-YRPZ6HZY.mjs.map → on-create-space-M63UBTTT.mjs.map} +1 -1
  68. package/dist/lib/node-esm/operations/index.mjs +3 -3
  69. package/dist/lib/node-esm/operations/index.mjs.map +3 -3
  70. package/dist/lib/node-esm/{resolve-navigation-targets-3PPK7XLH.mjs → resolve-navigation-targets-HO77CAFT.mjs} +3 -3
  71. package/dist/lib/node-esm/{resolve-navigation-targets-3PPK7XLH.mjs.map → resolve-navigation-targets-HO77CAFT.mjs.map} +1 -1
  72. package/dist/lib/node-esm/{run-prompt-in-new-chat-2IJBSDTM.mjs → run-prompt-in-new-chat-RIRYYYPK.mjs} +9 -39
  73. package/dist/lib/node-esm/run-prompt-in-new-chat-RIRYYYPK.mjs.map +7 -0
  74. package/dist/lib/node-esm/{set-current-chat-KBMMZULR.mjs → set-current-chat-Z7GJ52VX.mjs} +4 -4
  75. package/dist/lib/node-esm/set-current-chat-Z7GJ52VX.mjs.map +7 -0
  76. package/dist/lib/node-esm/translations.mjs +173 -0
  77. package/dist/lib/node-esm/translations.mjs.map +7 -0
  78. package/dist/lib/node-esm/types/index.mjs +1 -3
  79. package/dist/lib/node-esm/{update-chat-name-HM2P4NSI.mjs → update-chat-name-GV4HX32Z.mjs} +7 -22
  80. package/dist/lib/node-esm/update-chat-name-GV4HX32Z.mjs.map +7 -0
  81. package/dist/types/src/AssistantPlugin.d.ts +1 -0
  82. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  83. package/dist/types/src/AssistantPlugin.node.d.ts +4 -0
  84. package/dist/types/src/AssistantPlugin.node.d.ts.map +1 -0
  85. package/dist/types/src/AssistantPlugin.test.d.ts +2 -0
  86. package/dist/types/src/AssistantPlugin.test.d.ts.map +1 -0
  87. package/dist/types/src/blueprints/assistant/blueprint.d.ts +2 -2
  88. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/companion-chat-provisioner.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/index.d.ts +5 -17
  95. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/local-model-resolver.d.ts +6 -3
  97. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/markdown.d.ts +1 -1
  99. package/dist/types/src/capabilities/markdown.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/migrations.d.ts +1 -1
  101. package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  103. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/settings.d.ts +1 -13
  106. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  109. package/dist/types/src/cli/index.d.ts +2 -0
  110. package/dist/types/src/cli/index.d.ts.map +1 -0
  111. package/dist/types/src/cli/plugin.d.ts +10 -0
  112. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  113. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +1 -1
  114. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  115. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts +1 -539
  116. package/dist/types/src/components/AssistantSettings/AssistantSettings.stories.d.ts.map +1 -1
  117. package/dist/types/src/components/Chat/Chat.d.ts +32 -42
  118. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  119. package/dist/types/src/components/Chat/context.d.ts +29 -0
  120. package/dist/types/src/components/Chat/context.d.ts.map +1 -0
  121. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  122. package/dist/types/src/components/ChatPrompt/ChatMcpErrors.d.ts +12 -0
  123. package/dist/types/src/components/ChatPrompt/ChatMcpErrors.d.ts.map +1 -0
  124. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +6 -2
  125. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  126. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts +19 -0
  127. package/dist/types/src/components/ChatPrompt/ChatOptions.stories.d.ts.map +1 -0
  128. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
  129. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts +28 -0
  130. package/dist/types/src/components/ChatPrompt/ChatPrompt.d.ts.map +1 -0
  131. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  132. package/dist/types/src/components/ChatPrompt/ChatStatus.d.ts +20 -0
  133. package/dist/types/src/components/ChatPrompt/ChatStatus.d.ts.map +1 -0
  134. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
  135. package/dist/types/src/components/ChatPrompt/index.d.ts +3 -0
  136. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
  137. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts +14 -0
  138. package/dist/types/src/components/ChatThread/Anchor.stories.d.ts.map +1 -0
  139. package/dist/types/src/components/ChatThread/ChatThread.d.ts +6 -3
  140. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  141. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +4 -541
  142. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  143. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
  144. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts +9 -540
  145. package/dist/types/src/components/ChatThread/MarkdownStream.stories.d.ts.map +1 -1
  146. package/dist/types/src/components/ChatThread/registry.d.ts +18 -0
  147. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  148. package/dist/types/src/components/ChatThread/sync.d.ts +40 -14
  149. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  150. package/dist/types/src/components/ChatThread/tool-widget-state.d.ts.map +1 -1
  151. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts +4 -4
  152. package/dist/types/src/components/ChatThread/widgets/FallbackWidget.d.ts.map +1 -1
  153. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.d.ts.map +1 -1
  154. package/dist/types/src/components/ChatThread/widgets/ReasoningWidget.stories.d.ts.map +1 -1
  155. package/dist/types/src/components/ChatThread/widgets/ReferenceWidget.d.ts.map +1 -1
  156. package/dist/types/src/components/ChatThread/widgets/SelectWidget.d.ts.map +1 -1
  157. package/dist/types/src/components/ChatThread/widgets/StatsWidget.d.ts.map +1 -1
  158. package/dist/types/src/components/ChatThread/widgets/StatusWidget.d.ts.map +1 -1
  159. package/dist/types/src/components/ChatThread/widgets/SuggestionWidget.d.ts.map +1 -1
  160. package/dist/types/src/components/ChatThread/widgets/SummaryWidget.d.ts.map +1 -1
  161. package/dist/types/src/components/ChatThread/widgets/ToolWidget.d.ts.map +1 -1
  162. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts +1 -539
  163. package/dist/types/src/components/ChatThread/widgets/ToolWidget.stories.d.ts.map +1 -1
  164. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts +5 -0
  165. package/dist/types/src/components/ChatThread/widgets/defaults.d.ts.map +1 -0
  166. package/dist/types/src/components/ChatThread/widgets/index.d.ts +1 -2
  167. package/dist/types/src/components/ChatThread/widgets/index.d.ts.map +1 -1
  168. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts +2 -1
  169. package/dist/types/src/components/ProcessTree/ProcessTree.d.ts.map +1 -1
  170. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts +0 -1
  171. package/dist/types/src/components/ProcessTree/ProcessTree.stories.d.ts.map +1 -1
  172. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -2
  173. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  174. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +1 -539
  175. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  176. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +3 -3
  177. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  178. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +1 -539
  179. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  180. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -1
  181. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -1
  182. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +4 -4
  183. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  184. package/dist/types/src/components/Toolbox/Toolbox.d.ts +3 -3
  185. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  186. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +1 -539
  187. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  188. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts +2 -2
  189. package/dist/types/src/containers/AgentArticle/AgentArticle.d.ts.map +1 -1
  190. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts +7 -540
  191. package/dist/types/src/containers/AgentArticle/AgentArticle.stories.d.ts.map +1 -1
  192. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts +1 -1
  193. package/dist/types/src/containers/AgentProperties/AgentProperties.d.ts.map +1 -1
  194. package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts +1 -539
  195. package/dist/types/src/containers/AgentProperties/AgentProperties.stories.d.ts.map +1 -1
  196. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +1 -1
  197. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -1
  198. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +1 -1
  199. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -1
  200. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -1
  201. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts +6 -0
  202. package/dist/types/src/containers/RoutineArticle/RoutineArticle.d.ts.map +1 -0
  203. package/dist/types/src/containers/RoutineArticle/index.d.ts +2 -0
  204. package/dist/types/src/containers/RoutineArticle/index.d.ts.map +1 -0
  205. package/dist/types/src/containers/RoutineList/RoutineList.d.ts +6 -0
  206. package/dist/types/src/containers/RoutineList/RoutineList.d.ts.map +1 -0
  207. package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts +21 -0
  208. package/dist/types/src/containers/RoutineList/RoutineList.stories.d.ts.map +1 -0
  209. package/dist/types/src/containers/RoutineList/index.d.ts +2 -0
  210. package/dist/types/src/containers/RoutineList/index.d.ts.map +1 -0
  211. package/dist/types/src/containers/TracePanel/TracePanel.d.ts +6 -4
  212. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -1
  213. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts +13 -0
  214. package/dist/types/src/containers/TracePanel/TracePanel.stories.d.ts.map +1 -0
  215. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts +1 -1
  216. package/dist/types/src/containers/TracePanel/dxn-extractor.d.ts.map +1 -1
  217. package/dist/types/src/containers/TracePanel/execution-graph.d.ts +97 -0
  218. package/dist/types/src/containers/TracePanel/execution-graph.d.ts.map +1 -0
  219. package/dist/types/src/containers/TracePanel/execution-graph.test.d.ts +2 -0
  220. package/dist/types/src/containers/TracePanel/execution-graph.test.d.ts.map +1 -0
  221. package/dist/types/src/containers/TracePanel/index.d.ts.map +1 -1
  222. package/dist/types/src/containers/TracePanel/testing/index.d.ts +3 -0
  223. package/dist/types/src/containers/TracePanel/testing/index.d.ts.map +1 -0
  224. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts +14 -0
  225. package/dist/types/src/containers/TracePanel/testing/simulated-agent.d.ts.map +1 -0
  226. package/dist/types/src/containers/TracePanel/testing/snapshot-playback.d.ts +12 -0
  227. package/dist/types/src/containers/TracePanel/testing/snapshot-playback.d.ts.map +1 -0
  228. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +3 -2
  229. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -1
  230. package/dist/types/src/containers/TriggerStatus/index.d.ts +1 -1
  231. package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -1
  232. package/dist/types/src/containers/index.d.ts +2 -2
  233. package/dist/types/src/containers/index.d.ts.map +1 -1
  234. package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -1
  235. package/dist/types/src/hooks/index.d.ts +2 -0
  236. package/dist/types/src/hooks/index.d.ts.map +1 -1
  237. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +1 -1
  238. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  239. package/dist/types/src/hooks/useChatKeymap.d.ts +12 -0
  240. package/dist/types/src/hooks/useChatKeymap.d.ts.map +1 -0
  241. package/dist/types/src/hooks/useChatProcessor.d.ts +1 -1
  242. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  243. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  244. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -1
  245. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  246. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  247. package/dist/types/src/hooks/useDebug.d.ts +10 -0
  248. package/dist/types/src/hooks/useDebug.d.ts.map +1 -0
  249. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -1
  250. package/dist/types/src/hooks/useFlush.d.ts +1 -1
  251. package/dist/types/src/hooks/useFlush.d.ts.map +1 -1
  252. package/dist/types/src/hooks/usePresets.d.ts.map +1 -1
  253. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  254. package/dist/types/src/index.d.ts +3 -5
  255. package/dist/types/src/index.d.ts.map +1 -1
  256. package/dist/types/src/operations/create-chat.d.ts +1 -1
  257. package/dist/types/src/operations/create-chat.d.ts.map +1 -1
  258. package/dist/types/src/operations/definitions.d.ts +24 -19
  259. package/dist/types/src/operations/definitions.d.ts.map +1 -1
  260. package/dist/types/src/operations/ensure-companion-chat.d.ts +1 -1
  261. package/dist/types/src/operations/ensure-companion-chat.d.ts.map +1 -1
  262. package/dist/types/src/operations/index.d.ts +1 -1
  263. package/dist/types/src/operations/index.d.ts.map +1 -1
  264. package/dist/types/src/operations/on-create-space.d.ts +1 -1
  265. package/dist/types/src/operations/on-create-space.d.ts.map +1 -1
  266. package/dist/types/src/operations/prompt.test.d.ts +2 -0
  267. package/dist/types/src/operations/prompt.test.d.ts.map +1 -0
  268. package/dist/types/src/operations/resolve-navigation-targets.d.ts +1 -1
  269. package/dist/types/src/operations/resolve-navigation-targets.d.ts.map +1 -1
  270. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts +1 -1
  271. package/dist/types/src/operations/run-prompt-in-new-chat.d.ts.map +1 -1
  272. package/dist/types/src/operations/set-current-chat.d.ts +1 -1
  273. package/dist/types/src/operations/set-current-chat.d.ts.map +1 -1
  274. package/dist/types/src/operations/update-chat-name.d.ts +1 -1
  275. package/dist/types/src/operations/update-chat-name.d.ts.map +1 -1
  276. package/dist/types/src/processor/presets.d.ts +1 -1
  277. package/dist/types/src/processor/presets.d.ts.map +1 -1
  278. package/dist/types/src/processor/processor.d.ts +25 -7
  279. package/dist/types/src/processor/processor.d.ts.map +1 -1
  280. package/dist/types/src/queue-logger.d.ts.map +1 -1
  281. package/dist/types/src/testing/index.d.ts +1 -0
  282. package/dist/types/src/testing/index.d.ts.map +1 -1
  283. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  284. package/dist/types/src/testing/test-generator.test.d.ts +2 -0
  285. package/dist/types/src/testing/test-generator.test.d.ts.map +1 -0
  286. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  287. package/dist/types/src/testing/test-trace.d.ts +5 -0
  288. package/dist/types/src/testing/test-trace.d.ts.map +1 -0
  289. package/dist/types/src/testing/trace-timeline.test.d.ts +2 -0
  290. package/dist/types/src/testing/trace-timeline.test.d.ts.map +1 -0
  291. package/dist/types/src/translations.d.ts +2 -539
  292. package/dist/types/src/translations.d.ts.map +1 -1
  293. package/dist/types/src/types/Assistant.d.ts +22 -6
  294. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  295. package/dist/types/src/types/Settings.d.ts +22 -6
  296. package/dist/types/src/types/Settings.d.ts.map +1 -1
  297. package/dist/types/src/types/capabilities.d.ts +1 -13
  298. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  299. package/dist/types/src/types/events.d.ts.map +1 -1
  300. package/dist/types/src/types/index.d.ts +0 -1
  301. package/dist/types/src/types/index.d.ts.map +1 -1
  302. package/dist/types/src/types/service.d.ts +1 -1
  303. package/dist/types/src/types/service.d.ts.map +1 -1
  304. package/dist/types/tsconfig.tsbuildinfo +1 -1
  305. package/package.json +113 -99
  306. package/src/AssistantPlugin.node.ts +125 -0
  307. package/src/AssistantPlugin.test.ts +35 -0
  308. package/src/AssistantPlugin.tsx +22 -16
  309. package/src/blueprints/assistant/blueprint.test.ts +3 -3
  310. package/src/blueprints/assistant/blueprint.ts +3 -3
  311. package/src/capabilities/app-graph-builder.ts +5 -61
  312. package/src/capabilities/blueprint-definition.ts +2 -4
  313. package/src/capabilities/index.ts +2 -1
  314. package/src/capabilities/local-model-resolver.ts +14 -4
  315. package/src/capabilities/markdown.ts +1 -1
  316. package/src/capabilities/migrations.ts +1 -7
  317. package/src/capabilities/operation-handler.ts +1 -1
  318. package/src/capabilities/react-surface.tsx +38 -28
  319. package/src/capabilities/toolkit.ts +2 -2
  320. package/src/{components/Typewriter → cli}/index.ts +1 -1
  321. package/src/cli/plugin.ts +83 -0
  322. package/src/components/AssistantSettings/AssistantSettings.stories.tsx +3 -2
  323. package/src/components/AssistantSettings/AssistantSettings.tsx +22 -111
  324. package/src/components/Chat/Chat.tsx +82 -286
  325. package/src/components/Chat/context.ts +39 -0
  326. package/src/components/ChatPrompt/ChatActions.tsx +10 -10
  327. package/src/components/ChatPrompt/ChatMcpErrors.tsx +50 -0
  328. package/src/components/ChatPrompt/ChatOptions.stories.tsx +136 -0
  329. package/src/components/ChatPrompt/ChatOptions.tsx +229 -37
  330. package/src/components/ChatPrompt/ChatPrompt.tsx +182 -0
  331. package/src/components/ChatPrompt/ChatReferences.tsx +1 -1
  332. package/src/components/ChatPrompt/ChatStatus.tsx +123 -0
  333. package/src/components/ChatPrompt/index.ts +3 -0
  334. package/src/components/ChatThread/Anchor.stories.tsx +95 -0
  335. package/src/components/ChatThread/ChatThread.stories.tsx +39 -29
  336. package/src/components/ChatThread/ChatThread.tsx +36 -21
  337. package/src/components/ChatThread/DEBUG.md +41 -0
  338. package/src/components/ChatThread/MarkdownStream.stories.tsx +43 -5
  339. package/src/components/ChatThread/registry.tsx +72 -24
  340. package/src/components/ChatThread/sync.test.ts +175 -15
  341. package/src/components/ChatThread/sync.ts +87 -102
  342. package/src/components/ChatThread/testing/reasoning.md +25 -0
  343. package/src/components/ChatThread/widgets/FallbackWidget.tsx +2 -2
  344. package/src/components/ChatThread/widgets/ReasoningWidget.stories.tsx +1 -1
  345. package/src/components/ChatThread/widgets/ReasoningWidget.ts +6 -6
  346. package/src/components/ChatThread/widgets/ReferenceWidget.ts +3 -1
  347. package/src/components/ChatThread/widgets/SelectWidget.ts +3 -1
  348. package/src/components/ChatThread/widgets/StatsWidget.ts +3 -1
  349. package/src/components/ChatThread/widgets/StatusWidget.ts +3 -3
  350. package/src/components/ChatThread/widgets/SuggestionWidget.ts +1 -1
  351. package/src/components/ChatThread/widgets/SummaryWidget.tsx +3 -2
  352. package/src/components/ChatThread/widgets/ToolWidget.stories.tsx +3 -2
  353. package/src/components/ChatThread/widgets/ToolWidget.tsx +2 -2
  354. package/src/components/ChatThread/widgets/defaults.ts +8 -0
  355. package/src/components/ChatThread/widgets/index.ts +1 -2
  356. package/src/components/ProcessTree/ProcessTree.stories.tsx +12 -38
  357. package/src/components/ProcessTree/ProcessTree.tsx +70 -37
  358. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +3 -2
  359. package/src/components/TemplateEditor/TemplateEditor.tsx +5 -5
  360. package/src/components/TemplateEditor/TemplateForm.stories.tsx +4 -3
  361. package/src/components/TemplateEditor/TemplateForm.tsx +3 -3
  362. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +1 -1
  363. package/src/components/ToolBlock/ToolBlock.tsx +2 -2
  364. package/src/components/Toolbox/Toolbox.stories.tsx +2 -1
  365. package/src/components/Toolbox/Toolbox.tsx +2 -2
  366. package/src/containers/AgentArticle/AgentArticle.stories.tsx +40 -25
  367. package/src/containers/AgentArticle/AgentArticle.tsx +96 -53
  368. package/src/containers/AgentProperties/AgentProperties.stories.tsx +14 -4
  369. package/src/containers/AgentProperties/AgentProperties.tsx +46 -88
  370. package/src/containers/BlueprintArticle/BlueprintArticle.tsx +1 -1
  371. package/src/containers/ChatCompanion/ChatCompanion.tsx +1 -1
  372. package/src/containers/ChatContainer/ChatContainer.tsx +16 -6
  373. package/src/containers/ChatDialog/ChatDialog.tsx +3 -9
  374. package/src/containers/{PromptArticle/PromptArticle.tsx → RoutineArticle/RoutineArticle.tsx} +4 -4
  375. package/src/containers/RoutineArticle/index.ts +5 -0
  376. package/src/containers/{PromptList/PromptList.stories.tsx → RoutineList/RoutineList.stories.tsx} +11 -10
  377. package/src/containers/{PromptList/PromptList.tsx → RoutineList/RoutineList.tsx} +6 -5
  378. package/src/containers/RoutineList/index.ts +5 -0
  379. package/src/containers/TracePanel/TracePanel.stories.tsx +278 -0
  380. package/src/containers/TracePanel/TracePanel.tsx +95 -318
  381. package/src/containers/TracePanel/dxn-extractor.test.ts +7 -7
  382. package/src/containers/TracePanel/dxn-extractor.ts +4 -4
  383. package/src/containers/TracePanel/execution-graph.test.ts +382 -0
  384. package/src/containers/TracePanel/execution-graph.ts +579 -0
  385. package/src/containers/TracePanel/testing/index.ts +6 -0
  386. package/src/containers/TracePanel/testing/simulated-agent.ts +114 -0
  387. package/src/containers/TracePanel/testing/snapshot-playback.ts +45 -0
  388. package/src/containers/TriggerStatus/TriggerStatus.tsx +19 -34
  389. package/src/containers/TriggerStatus/index.ts +1 -1
  390. package/src/containers/index.ts +2 -2
  391. package/src/hooks/index.ts +2 -0
  392. package/src/hooks/useBlueprintRegistry.ts +1 -1
  393. package/src/hooks/useChatKeymap.ts +52 -0
  394. package/src/hooks/useChatProcessor.ts +11 -11
  395. package/src/hooks/useDebug.ts +38 -0
  396. package/src/index.ts +8 -6
  397. package/src/operations/create-chat.ts +1 -2
  398. package/src/operations/definitions.ts +3 -4
  399. package/src/operations/ensure-companion-chat.ts +1 -1
  400. package/src/operations/index.ts +1 -1
  401. package/src/operations/on-create-space.ts +1 -1
  402. package/src/operations/prompt.test.ts +77 -0
  403. package/src/operations/resolve-navigation-targets.ts +1 -1
  404. package/src/operations/run-prompt-in-new-chat.ts +2 -3
  405. package/src/operations/set-current-chat.ts +1 -1
  406. package/src/operations/update-chat-name.ts +2 -2
  407. package/src/processor/presets.ts +9 -1
  408. package/src/processor/processor.test.ts +4 -4
  409. package/src/processor/processor.ts +43 -27
  410. package/src/queue-logger.ts +19 -8
  411. package/src/testing/data/trace-timeline.dx.json +4657 -0
  412. package/src/testing/index.ts +1 -0
  413. package/src/testing/test-generator.test.ts +81 -0
  414. package/src/testing/test-generator.ts +46 -40
  415. package/src/testing/test-trace.ts +20 -0
  416. package/src/testing/trace-timeline.conversations.json +1 -0
  417. package/src/testing/trace-timeline.test.ts +249 -0
  418. package/src/translations.ts +49 -34
  419. package/src/types/Assistant.ts +11 -0
  420. package/src/types/Settings.ts +63 -8
  421. package/src/types/index.ts +0 -1
  422. package/src/types/service.ts +1 -1
  423. package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs +0 -97
  424. package/dist/lib/browser/AssistantSettings-7QMO3LGF.mjs.map +0 -7
  425. package/dist/lib/browser/chunk-ATHYBVGN.mjs.map +0 -7
  426. package/dist/lib/browser/chunk-EZRS3J25.mjs +0 -30
  427. package/dist/lib/browser/chunk-EZRS3J25.mjs.map +0 -7
  428. package/dist/lib/browser/chunk-RUV2WOQH.mjs.map +0 -7
  429. package/dist/lib/browser/create-chat-LBZHGVSN.mjs.map +0 -7
  430. package/dist/lib/browser/ensure-companion-chat-FR4AWZ2P.mjs.map +0 -7
  431. package/dist/lib/browser/run-prompt-in-new-chat-4YQ37XIS.mjs.map +0 -7
  432. package/dist/lib/browser/set-current-chat-WJI3WAVM.mjs.map +0 -7
  433. package/dist/lib/browser/update-chat-name-3Y36KFAS.mjs.map +0 -7
  434. package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs +0 -98
  435. package/dist/lib/node-esm/AssistantSettings-UVUTKO7E.mjs.map +0 -7
  436. package/dist/lib/node-esm/chunk-NZIKC7AN.mjs +0 -32
  437. package/dist/lib/node-esm/chunk-NZIKC7AN.mjs.map +0 -7
  438. package/dist/lib/node-esm/chunk-PXAJSTGZ.mjs.map +0 -7
  439. package/dist/lib/node-esm/chunk-PY4X6FJT.mjs.map +0 -7
  440. package/dist/lib/node-esm/create-chat-3BEG4R6J.mjs.map +0 -7
  441. package/dist/lib/node-esm/ensure-companion-chat-BLP7NT32.mjs.map +0 -7
  442. package/dist/lib/node-esm/run-prompt-in-new-chat-2IJBSDTM.mjs.map +0 -7
  443. package/dist/lib/node-esm/set-current-chat-KBMMZULR.mjs.map +0 -7
  444. package/dist/lib/node-esm/update-chat-name-HM2P4NSI.mjs.map +0 -7
  445. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +0 -10
  446. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +0 -1
  447. package/dist/types/src/components/ChatProgress/index.d.ts +0 -2
  448. package/dist/types/src/components/ChatProgress/index.d.ts.map +0 -1
  449. package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts +0 -14
  450. package/dist/types/src/components/ChatThread/widgets/PromptWidget.d.ts.map +0 -1
  451. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts +0 -12
  452. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts.map +0 -1
  453. package/dist/types/src/components/Typewriter/Typewriter.d.ts +0 -11
  454. package/dist/types/src/components/Typewriter/Typewriter.d.ts.map +0 -1
  455. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts +0 -7
  456. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts.map +0 -1
  457. package/dist/types/src/components/Typewriter/assistant-extension.d.ts +0 -5
  458. package/dist/types/src/components/Typewriter/assistant-extension.d.ts.map +0 -1
  459. package/dist/types/src/components/Typewriter/index.d.ts +0 -2
  460. package/dist/types/src/components/Typewriter/index.d.ts.map +0 -1
  461. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts +0 -6
  462. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts.map +0 -1
  463. package/dist/types/src/containers/PromptArticle/index.d.ts +0 -2
  464. package/dist/types/src/containers/PromptArticle/index.d.ts.map +0 -1
  465. package/dist/types/src/containers/PromptList/PromptList.d.ts +0 -6
  466. package/dist/types/src/containers/PromptList/PromptList.d.ts.map +0 -1
  467. package/dist/types/src/containers/PromptList/PromptList.stories.d.ts +0 -559
  468. package/dist/types/src/containers/PromptList/PromptList.stories.d.ts.map +0 -1
  469. package/dist/types/src/containers/PromptList/index.d.ts +0 -2
  470. package/dist/types/src/containers/PromptList/index.d.ts.map +0 -1
  471. package/dist/types/src/types/defs.d.ts +0 -2
  472. package/dist/types/src/types/defs.d.ts.map +0 -1
  473. package/src/blueprints/assistant/blueprint.conversations.json +0 -1
  474. package/src/components/ChatProgress/ChatProgress.tsx +0 -56
  475. package/src/components/ChatProgress/index.ts +0 -5
  476. package/src/components/ChatThread/widgets/PromptWidget.ts +0 -28
  477. package/src/components/Typewriter/AssistantToolbar.tsx +0 -161
  478. package/src/components/Typewriter/Typewriter.stories.tsx +0 -86
  479. package/src/components/Typewriter/Typewriter.tsx +0 -50
  480. package/src/components/Typewriter/assistant-extension.tsx +0 -141
  481. package/src/containers/PromptArticle/index.ts +0 -5
  482. package/src/containers/PromptList/index.ts +0 -5
  483. package/src/types/defs.ts +0 -5
@@ -0,0 +1,249 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { describe, it } from '@effect/vitest';
6
+ import * as Effect from 'effect/Effect';
7
+
8
+ import {
9
+ AgentHandlers,
10
+ AgentPrompt,
11
+ DatabaseBlueprint,
12
+ DatabaseHandlers,
13
+ WebSearchBlueprint,
14
+ WebSearchHandlers,
15
+ WebSearchToolkitOpaque,
16
+ } from '@dxos/assistant-toolkit';
17
+ import { Blueprint, Routine, Trace, Trigger, Operation } from '@dxos/compute';
18
+ import { ExampleHandlers, Reply } from '@dxos/compute/testing';
19
+ import { Database, Feed, Filter, Obj, Query, Ref } from '@dxos/echo';
20
+ import { TestHelpers } from '@dxos/effect/testing';
21
+ import { AgentService } from '@dxos/functions-runtime';
22
+ import { FeedTraceSink, TriggerDispatcher } from '@dxos/functions-runtime';
23
+ import { AssistantTestLayerWithTriggers } from '@dxos/functions-runtime/testing';
24
+ import { ObjectId } from '@dxos/keys';
25
+ import { dbg } from '@dxos/log';
26
+ import { renderTimelineAscii } from '@dxos/react-ui-components';
27
+ import { Organization, Person } from '@dxos/types';
28
+
29
+ import { buildExecutionGraph } from '../containers/TracePanel/execution-graph';
30
+
31
+ ObjectId.dangerouslyDisableRandomness();
32
+
33
+ const queryTraceMessages = Effect.gen(function* () {
34
+ yield* FeedTraceSink.flush();
35
+ yield* Database.flush();
36
+ const feed = yield* FeedTraceSink.getOrCreateTraceFeed();
37
+ return yield* Database.runQuery(Query.select(Filter.type(Trace.Message)).from(feed));
38
+ });
39
+
40
+ const TestLayer = AssistantTestLayerWithTriggers({
41
+ types: [Organization.Organization, Person.Person],
42
+ blueprints: [DatabaseBlueprint.make(), WebSearchBlueprint.make()],
43
+ operationHandlers: [DatabaseHandlers, AgentHandlers, WebSearchHandlers, ExampleHandlers],
44
+ toolkits: [WebSearchToolkitOpaque],
45
+ tracing: 'feed',
46
+ aiServicePreset: 'edge-remote',
47
+ });
48
+
49
+ describe('Trace timeline', () => {
50
+ describe('Agent', () => {
51
+ it.effect(
52
+ 'create objects via AgentService',
53
+ Effect.fnUntraced(
54
+ function* ({ expect }) {
55
+ const agent = yield* AgentService.createSession({
56
+ blueprints: [DatabaseBlueprint.make()],
57
+ });
58
+ yield* agent.submitPrompt('Create an organization called "Cyberdyne Systems".');
59
+ yield* agent.waitForCompletion();
60
+
61
+ yield* agent.submitPrompt('Create a person named "John Connor".');
62
+ yield* agent.waitForCompletion();
63
+
64
+ const messages = yield* queryTraceMessages;
65
+ dbg(messages.flatMap(({ meta, events }) => events.map((event) => ({ ...meta, ...event }))));
66
+ const { commits, branches } = buildExecutionGraph({ traceMessages: messages });
67
+ dbg(branches);
68
+ const graph = renderTimelineAscii(commits, branches);
69
+ expect(`\n${graph}\n`).toMatchInlineSnapshot(`
70
+ "
71
+ ● [atom] Agent processing request...
72
+ ├──● [user] Create an organization called "Cyberdyne Systems".
73
+ │ ● [function] List schemas - Success
74
+ │ ● [function] Create object - Success
75
+ │ ● [function] Add to context - Success
76
+ ◆──╯ [atom] Agent completed request
77
+ ● │ [atom] Agent processing request...
78
+ │ ● [user] Create a person named "John Connor".
79
+ │ ● [function] Create object - Success
80
+ │ ● [function] Add to context - Success
81
+ ◆──╯ [atom] Agent completed request
82
+ "
83
+ `);
84
+ },
85
+ Effect.provide(TestLayer),
86
+ TestHelpers.provideTestContext,
87
+ ),
88
+ { timeout: 120_000 },
89
+ );
90
+
91
+ it.effect(
92
+ 'invoke prompt and query schema',
93
+ Effect.fnUntraced(
94
+ function* ({ expect }) {
95
+ const agent = yield* AgentService.createSession({
96
+ blueprints: [DatabaseBlueprint.make()],
97
+ });
98
+ yield* Database.add(Obj.make(Organization.Organization, { name: 'Acme Corp' }));
99
+ yield* Database.add(Obj.make(Organization.Organization, { name: 'Globex Industries' }));
100
+ yield* agent.submitPrompt('Search for all organizations. How many are there?');
101
+ yield* agent.waitForCompletion();
102
+
103
+ const messages = yield* queryTraceMessages;
104
+ const { commits, branches } = buildExecutionGraph({ traceMessages: messages });
105
+ const graph = renderTimelineAscii(commits, branches);
106
+ expect(`\n${graph}\n`).toMatchInlineSnapshot(`
107
+ "
108
+ ● [atom] Agent processing request...
109
+ ├──● [user] Search for all organizations. How many are there?
110
+ │ ● [function] List schemas - Success
111
+ │ ● [function] Query - Success
112
+ │ ● [function] Query - Success
113
+ ◆──╯ [atom] Agent completed request
114
+ "
115
+ `);
116
+ },
117
+ Effect.provide(TestLayer),
118
+ TestHelpers.provideTestContext,
119
+ ),
120
+ { timeout: 120_000 },
121
+ );
122
+
123
+ it.effect(
124
+ 'sequential prompts in a session',
125
+ Effect.fnUntraced(
126
+ function* ({ expect }) {
127
+ const agent = yield* AgentService.createSession({
128
+ blueprints: [DatabaseBlueprint.make()],
129
+ });
130
+ yield* agent.submitPrompt('List all available schemas. Tell me what typenames are available.');
131
+ yield* agent.waitForCompletion();
132
+
133
+ yield* agent.submitPrompt('Create an organization called "DXOS" and a person named "Alice".');
134
+ yield* agent.waitForCompletion();
135
+
136
+ yield* agent.submitPrompt('Search for all organizations and persons.');
137
+ yield* agent.waitForCompletion();
138
+
139
+ const messages = yield* queryTraceMessages;
140
+ const { commits, branches } = buildExecutionGraph({ traceMessages: messages });
141
+ const graph = renderTimelineAscii(commits, branches);
142
+ expect(`\n${graph}\n`).toMatchInlineSnapshot(`
143
+ "
144
+ ● [atom] Agent processing request...
145
+ ├──● [user] List all available schemas. Tell me what typenames are available.
146
+ │ ● [function] List schemas - Success
147
+ ◆──╯ [atom] Agent completed request
148
+ ● │ [atom] Agent processing request...
149
+ │ ● [user] Create an organization called "DXOS" and a person named "Alice".
150
+ │ ● [function] Create object - Success
151
+ │ ● [function] Create object - Success
152
+ ◆──╯ [atom] Agent completed request
153
+ ● │ [atom] Agent processing request...
154
+ │ ● [user] Search for all organizations and persons.
155
+ │ ● [function] Query - Success
156
+ │ ● [function] Query - Success
157
+ ◆──╯ [atom] Agent completed request
158
+ "
159
+ `);
160
+ },
161
+ Effect.provide(TestLayer),
162
+ TestHelpers.provideTestContext,
163
+ ),
164
+ { timeout: 180_000 },
165
+ );
166
+ });
167
+
168
+ describe('Triggers', () => {
169
+ it.effect(
170
+ 'prompt trigger',
171
+ Effect.fnUntraced(
172
+ function* ({ expect }) {
173
+ const feed = yield* Database.add(Feed.make());
174
+ yield* Feed.append(feed, [
175
+ Obj.make(Organization.Organization, {
176
+ name: 'DXOS',
177
+ }),
178
+ ]);
179
+ const prompt = yield* Database.add(
180
+ Routine.make({
181
+ name: 'Research',
182
+ instructions: 'Research the given topic, or object.',
183
+ blueprints: [Ref.make(yield* Blueprint.upsert(WebSearchBlueprint.key))],
184
+ }),
185
+ );
186
+ yield* Database.add(
187
+ Trigger.make({
188
+ function: Ref.make(Operation.serialize(AgentPrompt)),
189
+ enabled: true,
190
+ spec: Trigger.specFeed(feed),
191
+ input: {
192
+ prompt: Ref.make(prompt),
193
+ input: '{{event.item}}',
194
+ },
195
+ }),
196
+ );
197
+
198
+ const dispatcher = yield* TriggerDispatcher;
199
+ yield* dispatcher
200
+ .invokeScheduledTriggers({ kinds: ['queue'], untilExhausted: true })
201
+ .pipe(Effect.flatMap(Effect.forEach((result) => result.result)));
202
+
203
+ const messages = yield* queryTraceMessages;
204
+ const { commits, branches } = buildExecutionGraph({ traceMessages: messages });
205
+ const graph = renderTimelineAscii(commits, branches);
206
+ expect(`\n${graph}\n`).toMatchInlineSnapshot(`
207
+ "
208
+ ● [function] Agent
209
+ ● [function] Agent - Success
210
+ "
211
+ `);
212
+ },
213
+ Effect.provide(TestLayer),
214
+ TestHelpers.provideTestContext,
215
+ ),
216
+ { timeout: 120_000 },
217
+ );
218
+ });
219
+
220
+ describe('Operations', () => {
221
+ it.effect(
222
+ 'operation',
223
+ Effect.fnUntraced(
224
+ function* ({ expect }) {
225
+ yield* Operation.invoke(Reply, { data: 'test-1' });
226
+ yield* Operation.invoke(Reply, { data: 'test-2' });
227
+ yield* Operation.invoke(Reply, { data: 'test-3' });
228
+
229
+ const messages = yield* queryTraceMessages;
230
+ const { commits, branches } = buildExecutionGraph({ traceMessages: messages });
231
+ const graph = renderTimelineAscii(commits, branches);
232
+ expect(`\n${graph}\n`).toMatchInlineSnapshot(`
233
+ "
234
+ ● [function] Reply
235
+ ● [function] Reply - Success
236
+ ● [function] Reply
237
+ ● [function] Reply - Success
238
+ ● [function] Reply
239
+ ● [function] Reply - Success
240
+ "
241
+ `);
242
+ },
243
+ Effect.provide(TestLayer),
244
+ TestHelpers.provideTestContext,
245
+ ),
246
+ { timeout: 120_000 },
247
+ );
248
+ });
249
+ });
@@ -2,19 +2,22 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Chat, Agent } from '@dxos/assistant-toolkit';
6
- import { Blueprint, Prompt } from '@dxos/blueprints';
5
+ import { Chat, Agent, McpServer } from '@dxos/assistant-toolkit';
6
+ import { Blueprint, Routine } 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';
10
+ import { translations as componentsTranslations } from '@dxos/react-ui-components/translations';
11
+ import { translations as formTranslations } from '@dxos/react-ui-form/translations';
10
12
 
11
13
  import { meta } from '#meta';
12
14
 
13
15
  // TODO(burdon): Standardize translation names.
14
- export const translations = [
16
+ export const translations: Resource[] = [
17
+ ...componentsTranslations,
18
+ ...formTranslations,
15
19
  {
16
20
  'en-US': {
17
- // TODO(burdon): From assistant.
18
21
  [Blueprint.Blueprint.typename]: {
19
22
  'typename.label': 'Blueprint',
20
23
  'typename.label_zero': 'Blueprints',
@@ -26,18 +29,17 @@ export const translations = [
26
29
  'delete-object.label': 'Delete blueprint',
27
30
  'object-deleted.label': 'Blueprint deleted',
28
31
  },
29
- [Type.getTypename(Prompt.Prompt)]: {
30
- 'typename.label': 'Prompt',
31
- 'typename.label_zero': 'Prompts',
32
- 'typename.label_one': 'Prompt',
33
- 'typename.label_other': 'Prompts',
34
- 'object-name.placeholder': 'New prompt',
35
- 'add-object.label': 'Add prompt',
36
- 'rename-object.label': 'Rename prompt',
37
- 'delete-object.label': 'Delete prompt',
38
- 'object-deleted.label': 'Prompt deleted',
32
+ [Type.getTypename(Routine.Routine)]: {
33
+ 'typename.label': 'Routine',
34
+ 'typename.label_zero': 'Routines',
35
+ 'typename.label_one': 'Routine',
36
+ 'typename.label_other': 'Routines',
37
+ 'object-name.placeholder': 'New routine',
38
+ 'add-object.label': 'Add routine',
39
+ 'rename-object.label': 'Rename routine',
40
+ 'delete-object.label': 'Delete routine',
41
+ 'object-deleted.label': 'Routine deleted',
39
42
  },
40
- // TODO(burdon): From conductor.
41
43
  [Sequence.typename]: {
42
44
  'typename.label': 'Sequence',
43
45
  'typename.label_zero': 'Sequences',
@@ -57,6 +59,12 @@ export const translations = [
57
59
  'delete-object.label': 'Delete AI Chat',
58
60
  'object-deleted.label': 'AI Chat deleted',
59
61
  },
62
+ [McpServer.McpServer.typename]: {
63
+ 'typename.label': 'MCP Server',
64
+ 'typename.label_zero': 'MCP Servers',
65
+ 'typename.label_one': 'MCP Server',
66
+ 'typename.label_other': 'MCP Servers',
67
+ },
60
68
  [Agent.Agent.typename]: {
61
69
  'typename.label': 'Agent',
62
70
  'typename.label_zero': 'Agents',
@@ -121,10 +129,27 @@ export const translations = [
121
129
  'context-settings.button': 'Chat settings',
122
130
  'microphone.button': 'Click to speak',
123
131
  'cancel-processing.button': 'Stop processing',
124
- 'blueprints-in-context.title': 'Blueprints',
125
- 'objects-in-context.title': 'Content',
126
- 'remove-object-in-context.label': 'Remove document',
127
- 'chat-model.title': 'Model',
132
+
133
+ 'options.blueprints.title': 'Skills',
134
+ 'options.mcp.title': 'MCP',
135
+ 'options.chat-model.title': 'Models',
136
+ 'remove-object.label': 'Remove object',
137
+
138
+ 'chat-view.title': 'View',
139
+ 'chat-view.normal.label': 'Normal',
140
+ 'chat-view.summary.label': 'Summary',
141
+ 'chat-view.thinking.label': 'Thinking',
142
+ 'chat-view.debug.label': 'Debug',
143
+ 'mcp-server-add.label': 'Add MCP server',
144
+ 'mcp-server-remove.label': 'Remove MCP server',
145
+ 'mcp-server-name.label': 'Server name',
146
+ 'mcp-server-name.placeholder': 'Name',
147
+ 'mcp-server-url.label': 'Server URL',
148
+ 'mcp-server-url.placeholder': 'https://...',
149
+ 'mcp-server-protocol.label': 'Protocol',
150
+ 'mcp-server-api-key.label': 'API key',
151
+ 'mcp-server-api-key.placeholder': 'API key (optional)',
152
+ 'mcp-server-error.label': 'MCP server unavailable',
128
153
 
129
154
  'debug.button': 'Debug',
130
155
  'online-switch.label': 'Online',
@@ -133,20 +158,10 @@ export const translations = [
133
158
  'branch-thread.menu': 'Branch chat',
134
159
  'chat-toolbar.title': 'Chat toolbar',
135
160
 
136
- 'settings.default.label': 'Default',
137
- 'settings.custom-prompts.label': 'Use custom prompts',
138
- 'settings.custom-prompts.description': 'Allow the assistant to use custom prompts defined in your spaces.',
139
- 'settings.llm-provider.label': 'LLM provider',
140
- 'settings.llm-provider.description': 'Select which language model service to use for AI responses.',
141
- 'settings.edge-llm-model.label': 'Remote language model',
142
- 'settings.edge-llm-model.description': 'Choose the remote language model used for AI requests.',
143
- 'settings.ollama-llm-model.label': 'Ollama language model',
144
- 'settings.ollama-llm-model.description': 'Choose the locally hosted Ollama model for AI requests.',
145
- 'settings.default-llm-model.label': 'Default language model',
146
-
147
161
  // Trigger status
148
162
  'trigger-status-disabled.label': 'Triggers disabled',
149
163
  'trigger-status-idle.label': 'Triggers idle',
164
+ 'trigger-status-edge.label': 'Triggers will run on EDGE',
150
165
  'trigger-status-running.label': 'Trigger running',
151
166
  'trigger-status-error.label': 'Trigger error',
152
167
  'trigger-runtime.label': 'Auto trigger execution',
@@ -154,17 +169,17 @@ export const translations = [
154
169
  'trigger-duration.label': 'Duration',
155
170
 
156
171
  // AgentArticle.
157
- 'project-empty-spec.message': 'Open Properties to configure the agent.',
158
- 'project-empty-spec.description': 'Open Assistant to interact with the agent.',
172
+ 'project-empty-spec.message': 'Open the Properties companion to configure the agent.',
173
+ 'project-empty-spec.description': 'Open the Assistant companion to interact with the agent.',
159
174
  'artifacts.label': 'Artifacts',
160
175
  'input-queue.label': 'Inputs',
161
176
 
162
177
  // AgentProperties.
163
178
  'instructions.label': 'Instructions',
164
- 'agent.spec.placeholder': 'Enter instructions, goals, and constraints for the assistant.',
179
+ 'instructions.placeholder': 'Enter instructions, goals, and constraints for the assistant.',
165
180
  'reset-history.button': 'Reset',
166
181
  'subscriptions.label': 'Subscriptions',
167
182
  },
168
183
  },
169
184
  },
170
- ] as const satisfies Resource[];
185
+ ];
@@ -12,3 +12,14 @@ export type Chat = ChatModule.Chat;
12
12
  import * as SettingsModule from './Settings';
13
13
  export const Settings = SettingsModule.Settings;
14
14
  export type Settings = SettingsModule.Settings;
15
+
16
+ export const ChatViews = SettingsModule.ChatViews;
17
+ export const ChatView = SettingsModule.ChatView;
18
+ export type ChatView = SettingsModule.ChatView;
19
+
20
+ export const ModelProviders = SettingsModule.ModelProviders;
21
+ export const ModelProvider = SettingsModule.ModelProvider;
22
+ export type ModelProvider = SettingsModule.ModelProvider;
23
+
24
+ export const ModelDefaults = SettingsModule.ModelDefaults;
25
+ export type ModelDefaults = SettingsModule.ModelDefaults;
@@ -6,16 +6,71 @@
6
6
 
7
7
  import * as Schema from 'effect/Schema';
8
8
 
9
- import { LLM_PROVIDERS } from './defs';
9
+ import { getLiteralValues } from '@dxos/effect';
10
10
 
11
- export const Settings = Schema.mutable(
11
+ export const ModelProvider = Schema.Union(
12
+ Schema.Literal('edge').annotations({ title: 'DXOS' }),
13
+ Schema.Literal('ollama').annotations({ title: 'Ollama' }),
14
+ Schema.Literal('lmstudio').annotations({ title: 'LM Studio' }),
15
+ );
16
+ export type ModelProvider = Schema.Schema.Type<typeof ModelProvider>;
17
+ export const ModelProviders = getLiteralValues(ModelProvider);
18
+
19
+ export const ChatView = Schema.Union(
20
+ Schema.Literal('normal').annotations({ title: 'Normal' }),
21
+ Schema.Literal('summary').annotations({ title: 'Summary' }),
22
+ Schema.Literal('thinking').annotations({ title: 'Thinking' }),
23
+ Schema.Literal('debug').annotations({ title: 'Debug' }),
24
+ );
25
+ export type ChatView = Schema.Schema.Type<typeof ChatView>;
26
+ export const ChatViews = getLiteralValues(ChatView);
27
+
28
+ export const ModelDefaults = Schema.mutable(
12
29
  Schema.Struct({
13
- llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),
14
- edgeModel: Schema.optional(Schema.String),
15
- ollamaModel: Schema.optional(Schema.String),
16
- lmstudioModel: Schema.optional(Schema.String),
17
- customPrompts: Schema.optional(Schema.Boolean),
30
+ edge: Schema.optional(
31
+ Schema.String.annotations({
32
+ title: 'Remote language model',
33
+ description: 'Choose the remote language model used for AI requests.',
34
+ }),
35
+ ),
36
+ ollama: Schema.optional(
37
+ Schema.String.annotations({
38
+ title: 'Ollama language model',
39
+ description: 'Choose the locally hosted Ollama model for AI requests.',
40
+ }),
41
+ ),
42
+ lmstudio: Schema.optional(
43
+ Schema.String.annotations({
44
+ title: 'LM Studio language model',
45
+ description: 'Choose the locally hosted LM Studio model for AI requests.',
46
+ }),
47
+ ),
18
48
  }),
19
49
  );
50
+ export type ModelDefaults = Schema.Schema.Type<typeof ModelDefaults>;
20
51
 
21
- export type Settings = Schema.Schema.Type<typeof Settings>;
52
+ export const Settings = Schema.mutable(
53
+ Schema.Struct({
54
+ customPrompts: Schema.optional(
55
+ Schema.Boolean.annotations({
56
+ title: 'Use custom prompts',
57
+ description: 'Allow the assistant to use custom prompts defined in your spaces.',
58
+ }),
59
+ ),
60
+ chatView: Schema.optional(
61
+ ChatView.annotations({
62
+ title: 'Chat view',
63
+ description:
64
+ 'Controls which message blocks are shown in the chat: normal hides reasoning, thinking shows reasoning, debug shows raw blocks, summary shows only conversational text.',
65
+ }),
66
+ ),
67
+ modelProvider: Schema.optional(
68
+ ModelProvider.annotations({
69
+ title: 'LLM provider',
70
+ description: 'Select which language model service to use for AI responses.',
71
+ }),
72
+ ),
73
+ modelDefaults: Schema.optional(ModelDefaults),
74
+ }),
75
+ );
76
+ export interface Settings extends Schema.Schema.Type<typeof Settings> {}
@@ -8,6 +8,5 @@ export type { Chat as ChatType } from '@dxos/assistant-toolkit';
8
8
  export * as Assistant from './Assistant';
9
9
 
10
10
  export * from './capabilities';
11
- export * from './defs';
12
11
  export * from './events';
13
12
  export * from './service';
@@ -4,9 +4,9 @@
4
4
 
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
+ import { Operation } from '@dxos/compute';
7
8
  import { ComputeGraph } from '@dxos/conductor';
8
9
  import { Ref, Type } from '@dxos/echo';
9
- import { Operation } from '@dxos/operation';
10
10
 
11
11
  // TODO(burdon): Factor out and reconcile with https://github.com/dxos/dxos/blob/main/packages/plugins/plugin-token-manager/src/defs/presets.ts#L7
12
12
 
@@ -1,97 +0,0 @@
1
- import "./chunk-J5LGTIGS.mjs";
2
-
3
- // src/components/AssistantSettings/AssistantSettings.tsx
4
- import React from "react";
5
- import { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from "@dxos/ai";
6
- import { Input, Select, useTranslation } from "@dxos/react-ui";
7
- import { Settings as SettingsForm } from "@dxos/react-ui-form";
8
- import { meta } from "#meta";
9
- import { LLM_PROVIDERS } from "#types";
10
- var DEFAULT_VALUE = "__default";
11
- var LLM_PROVIDER_LABELS = {
12
- edge: "DXOS",
13
- ollama: "Ollama",
14
- lmstudio: "LM Studio"
15
- };
16
- var AssistantSettings = ({ settings, onSettingsChange }) => {
17
- const { t } = useTranslation(meta.id);
18
- return /* @__PURE__ */ React.createElement(SettingsForm.Viewport, null, /* @__PURE__ */ React.createElement(SettingsForm.Section, {
19
- title: t("settings.title", {
20
- ns: meta.id
21
- })
22
- }, /* @__PURE__ */ React.createElement(SettingsForm.Item, {
23
- title: t("settings.custom-prompts.label"),
24
- description: t("settings.custom-prompts.description")
25
- }, /* @__PURE__ */ React.createElement(Input.Switch, {
26
- disabled: !onSettingsChange,
27
- checked: !!settings.customPrompts,
28
- onCheckedChange: (checked) => onSettingsChange?.((s) => ({
29
- ...s,
30
- customPrompts: checked
31
- }))
32
- })), /* @__PURE__ */ React.createElement(SettingsForm.Item, {
33
- title: t("settings.llm-provider.label"),
34
- description: t("settings.llm-provider.description")
35
- }, /* @__PURE__ */ React.createElement(Select.Root, {
36
- disabled: !onSettingsChange,
37
- value: settings.llmProvider ?? "edge",
38
- onValueChange: (value) => {
39
- onSettingsChange?.((s) => ({
40
- ...s,
41
- llmProvider: value === DEFAULT_VALUE ? void 0 : value
42
- }));
43
- }
44
- }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
45
- disabled: !onSettingsChange,
46
- placeholder: t("settings.llm-provider.label")
47
- }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, /* @__PURE__ */ React.createElement(Select.Option, {
48
- value: DEFAULT_VALUE
49
- }, t("settings.default.label")), LLM_PROVIDERS.map((model) => /* @__PURE__ */ React.createElement(Select.Option, {
50
- key: model,
51
- value: model
52
- }, LLM_PROVIDER_LABELS[model]))), /* @__PURE__ */ React.createElement(Select.Arrow, null))))), /* @__PURE__ */ React.createElement(SettingsForm.Item, {
53
- title: t("settings.edge-llm-model.label"),
54
- description: t("settings.edge-llm-model.description")
55
- }, /* @__PURE__ */ React.createElement(Select.Root, {
56
- disabled: !onSettingsChange,
57
- value: settings.edgeModel ?? DEFAULT_VALUE,
58
- onValueChange: (value) => {
59
- onSettingsChange?.((s) => ({
60
- ...s,
61
- edgeModel: value === DEFAULT_VALUE ? void 0 : value
62
- }));
63
- }
64
- }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
65
- disabled: !onSettingsChange,
66
- placeholder: t("settings.default-llm-model.label")
67
- }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, /* @__PURE__ */ React.createElement(Select.Option, {
68
- value: DEFAULT_VALUE
69
- }, t("settings.default.label")), DEFAULT_EDGE_MODELS.map((model) => /* @__PURE__ */ React.createElement(Select.Option, {
70
- key: model,
71
- value: model
72
- }, model))), /* @__PURE__ */ React.createElement(Select.Arrow, null))))), /* @__PURE__ */ React.createElement(SettingsForm.Item, {
73
- title: t("settings.ollama-llm-model.label"),
74
- description: t("settings.ollama-llm-model.description")
75
- }, /* @__PURE__ */ React.createElement(Select.Root, {
76
- disabled: !onSettingsChange,
77
- value: settings.ollamaModel ?? DEFAULT_VALUE,
78
- onValueChange: (value) => {
79
- onSettingsChange?.((s) => ({
80
- ...s,
81
- ollamaModel: value === DEFAULT_VALUE ? void 0 : value
82
- }));
83
- }
84
- }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
85
- disabled: !onSettingsChange,
86
- placeholder: t("settings.default-llm-model.label")
87
- }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, /* @__PURE__ */ React.createElement(Select.Option, {
88
- value: DEFAULT_VALUE
89
- }, t("settings.default.label")), DEFAULT_OLLAMA_MODELS.map((model) => /* @__PURE__ */ React.createElement(Select.Option, {
90
- key: model,
91
- value: model
92
- }, model))), /* @__PURE__ */ React.createElement(Select.Arrow, null)))))));
93
- };
94
- export {
95
- AssistantSettings as default
96
- };
97
- //# sourceMappingURL=AssistantSettings-7QMO3LGF.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { Settings as SettingsForm } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\nimport { type Assistant, LLM_PROVIDERS } from '#types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport type AssistantSettingsProps = AppSurface.SettingsArticleProps<Assistant.Settings>;\n\nexport const AssistantSettings = ({ settings, onSettingsChange }: AssistantSettingsProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <SettingsForm.Viewport>\n <SettingsForm.Section title={t('settings.title', { ns: meta.id })}>\n <SettingsForm.Item\n title={t('settings.custom-prompts.label')}\n description={t('settings.custom-prompts.description')}\n >\n <Input.Switch\n disabled={!onSettingsChange}\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => onSettingsChange?.((s) => ({ ...s, customPrompts: checked }))}\n />\n </SettingsForm.Item>\n\n <SettingsForm.Item\n title={t('settings.llm-provider.label')}\n description={t('settings.llm-provider.description')}\n >\n <Select.Root\n disabled={!onSettingsChange}\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n onSettingsChange?.((s) => ({\n ...s,\n llmProvider: value === DEFAULT_VALUE ? undefined : (value as any),\n }));\n }}\n >\n <Select.TriggerButton disabled={!onSettingsChange} placeholder={t('settings.llm-provider.label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings.default.label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </SettingsForm.Item>\n\n <SettingsForm.Item\n title={t('settings.edge-llm-model.label')}\n description={t('settings.edge-llm-model.description')}\n >\n <Select.Root\n disabled={!onSettingsChange}\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n onSettingsChange?.((s) => ({ ...s, edgeModel: value === DEFAULT_VALUE ? undefined : value }));\n }}\n >\n <Select.TriggerButton disabled={!onSettingsChange} placeholder={t('settings.default-llm-model.label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings.default.label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </SettingsForm.Item>\n\n <SettingsForm.Item\n title={t('settings.ollama-llm-model.label')}\n description={t('settings.ollama-llm-model.description')}\n >\n <Select.Root\n disabled={!onSettingsChange}\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n onSettingsChange?.((s) => ({ ...s, ollamaModel: value === DEFAULT_VALUE ? undefined : value }));\n }}\n >\n <Select.TriggerButton disabled={!onSettingsChange} placeholder={t('settings.default-llm-model.label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings.default.label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </SettingsForm.Item>\n </SettingsForm.Section>\n </SettingsForm.Viewport>\n );\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "DEFAULT_EDGE_MODELS", "DEFAULT_OLLAMA_MODELS", "Input", "Select", "useTranslation", "Settings", "SettingsForm", "meta", "LLM_PROVIDERS", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "onSettingsChange", "t", "useTranslation", "meta", "id", "SettingsForm", "Viewport", "Section", "title", "ns", "Item", "description", "Input", "Switch", "disabled", "checked", "customPrompts", "onCheckedChange", "s", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Option", "LLM_PROVIDERS", "map", "model", "key", "Arrow", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/definitions.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\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 { Prompt } from '@dxos/blueprints';\nimport { SpaceSchema } from '@dxos/client/echo';\nimport { Collection, Database, DXN, Feed, Obj, Ref } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\n\nimport { meta } from '#meta';\n\nconst ASSISTANT_OPERATION = `${meta.id}.operation`;\n\nexport const OnCreateSpace = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.on-create-space`, name: 'On Create Space' },\n services: [Capability.Service],\n input: Schema.Struct({\n space: SpaceSchema,\n rootCollection: Collection.Collection,\n }),\n output: Schema.Void,\n});\n\nexport const CreateChat = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.create-chat`, name: 'Create Chat' },\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: Chat.Chat,\n }),\n});\n\nexport const UpdateChatName = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.update-chat-name`, name: 'Update Chat Name' },\n services: [Database.Service, Feed.FeedService, AiService.AiService],\n input: Schema.Struct({\n chat: Chat.Chat,\n }),\n output: Schema.Void,\n});\n\nexport const SetCurrentChat = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.set-current-chat`, name: 'Set Current Chat' },\n services: [Capability.Service],\n input: Schema.Struct({\n companionTo: Obj.Unknown,\n chat: Chat.Chat.pipe(Schema.optional),\n }),\n output: Schema.Void,\n});\n\nexport const RunPromptInNewChat = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.run-prompt-in-new-chat`, name: 'Run Prompt In New Chat' },\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 Prompt object reference (e.g. from the prompts surface). */\n prompt: Schema.Union(Schema.String, Ref.Ref(Prompt.Prompt)),\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: 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: `${ASSISTANT_OPERATION}.resolve-navigation-targets`,\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 },\n input: Schema.Struct({\n query: Schema.optional(\n Schema.Struct({\n dxn: DXN.Schema.pipe(Schema.optional),\n }),\n ),\n }),\n output: Schema.Struct({\n targets: Schema.Array(NavigationTargetSchema),\n }),\n services: [Capability.Service],\n});\n\nexport const EnsureCompanionChat = Operation.make({\n meta: { key: `${ASSISTANT_OPERATION}.ensure-companion-chat`, name: 'Ensure Companion Chat' },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n companionTo: Obj.Unknown,\n }),\n output: Schema.Struct({\n chat: 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"],
5
- "mappings": "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",
6
- "names": ["Schema", "AiService", "Capability", "Chat", "Prompt", "SpaceSchema", "Collection", "Database", "DXN", "Feed", "Obj", "Ref", "Operation", "meta", "ASSISTANT_OPERATION", "meta", "id", "OnCreateSpace", "Operation", "make", "key", "name", "services", "Capability", "Service", "input", "Struct", "space", "SpaceSchema", "rootCollection", "Collection", "output", "Void", "CreateChat", "db", "Database", "optional", "String", "addToSpace", "Boolean", "object", "Chat", "UpdateChatName", "Feed", "FeedService", "AiService", "chat", "SetCurrentChat", "companionTo", "Obj", "Unknown", "pipe", "RunPromptInNewChat", "objects", "Array", "blueprints", "prompt", "Union", "Ref", "Prompt", "background", "NavigationTargetSchema", "path", "annotations", "description", "label", "type", "ResolveNavigationTargets", "query", "dxn", "DXN", "Schema", "targets", "EnsureCompanionChat", "persisted", "BlueprintForm"]
7
- }