@dxos/plugin-assistant 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (451) hide show
  1. package/dist/lib/browser/AssistantSettings-RBJHZPUJ.mjs +93 -0
  2. package/dist/lib/browser/AssistantSettings-RBJHZPUJ.mjs.map +7 -0
  3. package/dist/lib/browser/BlueprintArticle-FTGO6Y2F.mjs +35 -0
  4. package/dist/lib/browser/BlueprintArticle-FTGO6Y2F.mjs.map +7 -0
  5. package/dist/lib/browser/{ChatCompanion-ECQYUQ2B.mjs → ChatCompanion-J7UAC5TX.mjs} +76 -26
  6. package/dist/lib/browser/ChatCompanion-J7UAC5TX.mjs.map +7 -0
  7. package/dist/lib/browser/ChatContainer-QPPZHQRQ.mjs +12 -0
  8. package/dist/lib/browser/{ChatDialog-SMK4RSZU.mjs → ChatDialog-NYU67AQS.mjs} +9 -9
  9. package/dist/lib/browser/ChatDialog-NYU67AQS.mjs.map +7 -0
  10. package/dist/lib/browser/ProjectArticle-ZB27ZROW.mjs +92 -0
  11. package/dist/lib/browser/ProjectArticle-ZB27ZROW.mjs.map +7 -0
  12. package/dist/lib/browser/ProjectSettings-DDYTUL25.mjs +117 -0
  13. package/dist/lib/browser/ProjectSettings-DDYTUL25.mjs.map +7 -0
  14. package/dist/lib/browser/PromptArticle-RHTAHF23.mjs +71 -0
  15. package/dist/lib/browser/PromptArticle-RHTAHF23.mjs.map +7 -0
  16. package/dist/lib/browser/TracePanel-UPRPODLO.mjs +228 -0
  17. package/dist/lib/browser/TracePanel-UPRPODLO.mjs.map +7 -0
  18. package/dist/lib/browser/TriggerStatus-X35WDCK5.mjs +112 -0
  19. package/dist/lib/browser/TriggerStatus-X35WDCK5.mjs.map +7 -0
  20. package/dist/lib/browser/{ai-service-5GUDOEWF.mjs → ai-service-CY2BYPH6.mjs} +5 -4
  21. package/dist/lib/browser/ai-service-CY2BYPH6.mjs.map +7 -0
  22. package/dist/lib/browser/{app-graph-builder-DSNH2OMY.mjs → app-graph-builder-RXT6BPSZ.mjs} +74 -42
  23. package/dist/lib/browser/app-graph-builder-RXT6BPSZ.mjs.map +7 -0
  24. package/dist/lib/browser/blueprint-definition-O4XHPNJB.mjs +37 -0
  25. package/dist/lib/browser/blueprint-definition-O4XHPNJB.mjs.map +7 -0
  26. package/dist/lib/browser/blueprints/index.mjs +3 -7
  27. package/dist/lib/browser/{chunk-EXVT7D4B.mjs → chunk-2VIEX4RA.mjs} +3 -3
  28. package/dist/lib/browser/{chunk-EXVT7D4B.mjs.map → chunk-2VIEX4RA.mjs.map} +1 -1
  29. package/dist/lib/browser/chunk-IWAEH25L.mjs +101 -0
  30. package/dist/lib/browser/chunk-IWAEH25L.mjs.map +7 -0
  31. package/dist/lib/browser/{chunk-ML3QCFKA.mjs → chunk-JYY5AD65.mjs} +50 -29
  32. package/dist/lib/browser/chunk-JYY5AD65.mjs.map +7 -0
  33. package/dist/lib/browser/{chunk-3JYPE2MM.mjs → chunk-KR3KDUVF.mjs} +637 -346
  34. package/dist/lib/browser/chunk-KR3KDUVF.mjs.map +7 -0
  35. package/dist/lib/browser/{chunk-V772AMZM.mjs → chunk-MZWRGUND.mjs} +51 -48
  36. package/dist/lib/browser/chunk-MZWRGUND.mjs.map +7 -0
  37. package/dist/lib/browser/chunk-ZZRRSIQQ.mjs +26 -0
  38. package/dist/lib/browser/chunk-ZZRRSIQQ.mjs.map +7 -0
  39. package/dist/lib/browser/{edge-model-resolver-26BOY6HY.mjs → edge-model-resolver-YTMFQEN5.mjs} +4 -3
  40. package/dist/lib/browser/edge-model-resolver-YTMFQEN5.mjs.map +7 -0
  41. package/dist/lib/browser/index.mjs +128 -91
  42. package/dist/lib/browser/index.mjs.map +4 -4
  43. package/dist/lib/browser/{local-model-resolver-ZFIM6GGV.mjs → local-model-resolver-CGRQH37T.mjs} +4 -3
  44. package/dist/lib/browser/local-model-resolver-CGRQH37T.mjs.map +7 -0
  45. package/dist/lib/browser/markdown-QGCIPTMQ.mjs +155 -0
  46. package/dist/lib/browser/markdown-QGCIPTMQ.mjs.map +7 -0
  47. package/dist/lib/browser/meta.json +1 -1
  48. package/dist/lib/browser/{operation-resolver-7XJLBRQY.mjs → operation-resolver-BNMDF2JV.mjs} +64 -43
  49. package/dist/lib/browser/operation-resolver-BNMDF2JV.mjs.map +7 -0
  50. package/dist/lib/browser/react-surface-XPQLYF6H.mjs +150 -0
  51. package/dist/lib/browser/react-surface-XPQLYF6H.mjs.map +7 -0
  52. package/dist/lib/browser/{settings-4ZDLUMYE.mjs → settings-BVW4UWJL.mjs} +6 -5
  53. package/dist/lib/browser/settings-BVW4UWJL.mjs.map +7 -0
  54. package/dist/lib/browser/{state-AN6336ZX.mjs → state-TKE6OVOG.mjs} +5 -4
  55. package/dist/lib/browser/{state-AN6336ZX.mjs.map → state-TKE6OVOG.mjs.map} +3 -3
  56. package/dist/lib/browser/toolkit-XRSBBB3L.mjs +16 -0
  57. package/dist/lib/browser/toolkit-XRSBBB3L.mjs.map +7 -0
  58. package/dist/lib/browser/types/index.mjs +2 -2
  59. package/dist/lib/node-esm/AssistantSettings-KYN2CIJJ.mjs +94 -0
  60. package/dist/lib/node-esm/AssistantSettings-KYN2CIJJ.mjs.map +7 -0
  61. package/dist/lib/node-esm/BlueprintArticle-DFTPXAYU.mjs +36 -0
  62. package/dist/lib/node-esm/BlueprintArticle-DFTPXAYU.mjs.map +7 -0
  63. package/dist/lib/node-esm/{ChatCompanion-Q4FUZ2MW.mjs → ChatCompanion-OJJVO44R.mjs} +76 -26
  64. package/dist/lib/node-esm/ChatCompanion-OJJVO44R.mjs.map +7 -0
  65. package/dist/lib/node-esm/ChatContainer-RIVOAWFM.mjs +13 -0
  66. package/dist/lib/node-esm/{ChatDialog-AP45PVZR.mjs → ChatDialog-IEZLH7T5.mjs} +9 -9
  67. package/dist/lib/node-esm/ChatDialog-IEZLH7T5.mjs.map +7 -0
  68. package/dist/lib/node-esm/ProjectArticle-WVJI6IYZ.mjs +93 -0
  69. package/dist/lib/node-esm/ProjectArticle-WVJI6IYZ.mjs.map +7 -0
  70. package/dist/lib/node-esm/ProjectSettings-JQLRY6AS.mjs +118 -0
  71. package/dist/lib/node-esm/ProjectSettings-JQLRY6AS.mjs.map +7 -0
  72. package/dist/lib/node-esm/PromptArticle-HPCQDVFD.mjs +72 -0
  73. package/dist/lib/node-esm/PromptArticle-HPCQDVFD.mjs.map +7 -0
  74. package/dist/lib/node-esm/TracePanel-KAUU6OVE.mjs +229 -0
  75. package/dist/lib/node-esm/TracePanel-KAUU6OVE.mjs.map +7 -0
  76. package/dist/lib/node-esm/TriggerStatus-V3QMIE7T.mjs +113 -0
  77. package/dist/lib/node-esm/TriggerStatus-V3QMIE7T.mjs.map +7 -0
  78. package/dist/lib/node-esm/{ai-service-PXKKCFIF.mjs → ai-service-ZI3A6RVG.mjs} +5 -4
  79. package/dist/lib/node-esm/ai-service-ZI3A6RVG.mjs.map +7 -0
  80. package/dist/lib/node-esm/{app-graph-builder-TJCUEXW5.mjs → app-graph-builder-H24ZSWEY.mjs} +74 -42
  81. package/dist/lib/node-esm/app-graph-builder-H24ZSWEY.mjs.map +7 -0
  82. package/dist/lib/node-esm/blueprint-definition-LWPM3FBG.mjs +38 -0
  83. package/dist/lib/node-esm/blueprint-definition-LWPM3FBG.mjs.map +7 -0
  84. package/dist/lib/node-esm/blueprints/index.mjs +3 -7
  85. package/dist/lib/node-esm/chunk-5BLOZBHM.mjs +102 -0
  86. package/dist/lib/node-esm/chunk-5BLOZBHM.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-AK3JJ76X.mjs +28 -0
  88. package/dist/lib/node-esm/chunk-AK3JJ76X.mjs.map +7 -0
  89. package/dist/lib/node-esm/{chunk-ZRIPP7YF.mjs → chunk-JMBYVUD6.mjs} +50 -29
  90. package/dist/lib/node-esm/chunk-JMBYVUD6.mjs.map +7 -0
  91. package/dist/lib/node-esm/{chunk-XI5T3MJC.mjs → chunk-QYHBAOBD.mjs} +637 -346
  92. package/dist/lib/node-esm/chunk-QYHBAOBD.mjs.map +7 -0
  93. package/dist/lib/node-esm/{chunk-POWB2BPC.mjs → chunk-TEYTGR67.mjs} +3 -3
  94. package/dist/lib/node-esm/{chunk-POWB2BPC.mjs.map → chunk-TEYTGR67.mjs.map} +1 -1
  95. package/dist/lib/node-esm/{chunk-355W5B27.mjs → chunk-VSA3KDAW.mjs} +51 -48
  96. package/dist/lib/node-esm/chunk-VSA3KDAW.mjs.map +7 -0
  97. package/dist/lib/node-esm/{edge-model-resolver-G5KMODPO.mjs → edge-model-resolver-CMJ3KNLQ.mjs} +4 -3
  98. package/dist/lib/node-esm/edge-model-resolver-CMJ3KNLQ.mjs.map +7 -0
  99. package/dist/lib/node-esm/index.mjs +128 -91
  100. package/dist/lib/node-esm/index.mjs.map +4 -4
  101. package/dist/lib/node-esm/{local-model-resolver-KDZLYI7Y.mjs → local-model-resolver-FFDAKOXN.mjs} +4 -3
  102. package/dist/lib/node-esm/local-model-resolver-FFDAKOXN.mjs.map +7 -0
  103. package/dist/lib/node-esm/markdown-5FJCWKIE.mjs +156 -0
  104. package/dist/lib/node-esm/markdown-5FJCWKIE.mjs.map +7 -0
  105. package/dist/lib/node-esm/meta.json +1 -1
  106. package/dist/lib/node-esm/{operation-resolver-SX4WMNA7.mjs → operation-resolver-TWGZ3ODO.mjs} +64 -43
  107. package/dist/lib/node-esm/operation-resolver-TWGZ3ODO.mjs.map +7 -0
  108. package/dist/lib/node-esm/react-surface-6I6JOQBD.mjs +151 -0
  109. package/dist/lib/node-esm/react-surface-6I6JOQBD.mjs.map +7 -0
  110. package/dist/lib/node-esm/{settings-CQEOHR3R.mjs → settings-5CL6CQFK.mjs} +6 -5
  111. package/dist/lib/node-esm/settings-5CL6CQFK.mjs.map +7 -0
  112. package/dist/lib/node-esm/{state-HDON4REW.mjs → state-XBRFX5FL.mjs} +5 -4
  113. package/dist/lib/node-esm/{state-HDON4REW.mjs.map → state-XBRFX5FL.mjs.map} +3 -3
  114. package/dist/lib/node-esm/toolkit-5IWGLUF4.mjs +17 -0
  115. package/dist/lib/node-esm/toolkit-5IWGLUF4.mjs.map +7 -0
  116. package/dist/lib/node-esm/types/index.mjs +2 -2
  117. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  118. package/dist/types/src/blueprints/assistant/blueprint.d.ts +4 -0
  119. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -0
  120. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts +2 -0
  121. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts.map +1 -0
  122. package/dist/types/src/blueprints/assistant/index.d.ts +2 -0
  123. package/dist/types/src/blueprints/assistant/index.d.ts.map +1 -0
  124. package/dist/types/src/blueprints/index.d.ts +1 -6
  125. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  126. package/dist/types/src/capabilities/ai-service/ai-service.d.ts +3 -2
  127. package/dist/types/src/capabilities/ai-service/ai-service.d.ts.map +1 -1
  128. package/dist/types/src/capabilities/ai-service/index.d.ts +1 -1
  129. package/dist/types/src/capabilities/ai-service/index.d.ts.map +1 -1
  130. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
  131. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  132. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +4 -19
  133. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  134. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -2
  135. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  136. package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts +4 -3
  137. package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts.map +1 -1
  138. package/dist/types/src/capabilities/index.d.ts +1 -1
  139. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  140. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts +4 -3
  141. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts.map +1 -1
  142. package/dist/types/src/capabilities/markdown/index.d.ts +3 -0
  143. package/dist/types/src/capabilities/markdown/index.d.ts.map +1 -0
  144. package/dist/types/src/capabilities/markdown/markdown.d.ts +5 -0
  145. package/dist/types/src/capabilities/markdown/markdown.d.ts.map +1 -0
  146. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  147. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  148. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  149. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  150. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  151. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  152. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  153. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  154. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  155. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  156. package/dist/types/src/capabilities/settings/settings.d.ts +4 -3
  157. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  158. package/dist/types/src/capabilities/state/index.d.ts +6 -0
  159. package/dist/types/src/capabilities/state/index.d.ts.map +1 -1
  160. package/dist/types/src/capabilities/state/state.d.ts +7 -1
  161. package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
  162. package/dist/types/src/capabilities/toolkit/index.d.ts +1 -1
  163. package/dist/types/src/capabilities/toolkit/index.d.ts.map +1 -1
  164. package/dist/types/src/capabilities/toolkit/toolkit.d.ts +3 -2
  165. package/dist/types/src/capabilities/toolkit/toolkit.d.ts.map +1 -1
  166. package/dist/types/src/components/Chat/Chat.d.ts +12 -8
  167. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  168. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +2 -2
  169. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
  170. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  171. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  172. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  173. package/dist/types/src/components/ChatThread/ChatThread.d.ts +1 -1
  174. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  175. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +133 -7
  176. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  177. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  178. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  179. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +131 -5
  180. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  181. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  182. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +131 -5
  183. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  184. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +4 -4
  185. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  186. package/dist/types/src/components/Toolbox/Toolbox.d.ts +2 -2
  187. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  188. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +131 -5
  189. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  190. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts +2 -2
  191. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts.map +1 -1
  192. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts.map +1 -1
  193. package/dist/types/src/components/index.d.ts +0 -12
  194. package/dist/types/src/components/index.d.ts.map +1 -1
  195. package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  196. package/dist/types/src/containers/AssistantSettings/index.d.ts +3 -0
  197. package/dist/types/src/containers/AssistantSettings/index.d.ts.map +1 -0
  198. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +6 -0
  199. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -0
  200. package/dist/types/src/containers/BlueprintArticle/index.d.ts +3 -0
  201. package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +1 -0
  202. package/dist/types/src/{components → containers/ChatCompanion}/ChatCompanion.d.ts +3 -3
  203. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -0
  204. package/dist/types/src/containers/ChatCompanion/index.d.ts +3 -0
  205. package/dist/types/src/containers/ChatCompanion/index.d.ts.map +1 -0
  206. package/dist/types/src/{components → containers/ChatContainer}/ChatContainer.d.ts +6 -6
  207. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
  208. package/dist/types/src/containers/ChatContainer/index.d.ts +3 -0
  209. package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
  210. package/dist/types/src/{components → containers/ChatDialog}/ChatDialog.d.ts +2 -3
  211. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -0
  212. package/dist/types/src/containers/ChatDialog/index.d.ts +3 -0
  213. package/dist/types/src/containers/ChatDialog/index.d.ts.map +1 -0
  214. package/dist/types/src/containers/Project/ProjectArticle.d.ts +7 -0
  215. package/dist/types/src/containers/Project/ProjectArticle.d.ts.map +1 -0
  216. package/dist/types/src/containers/Project/ProjectSettings.d.ts +6 -0
  217. package/dist/types/src/containers/Project/ProjectSettings.d.ts.map +1 -0
  218. package/dist/types/src/containers/Project/index.d.ts +7 -0
  219. package/dist/types/src/containers/Project/index.d.ts.map +1 -0
  220. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts +6 -0
  221. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts.map +1 -0
  222. package/dist/types/src/containers/PromptArticle/index.d.ts +3 -0
  223. package/dist/types/src/containers/PromptArticle/index.d.ts.map +1 -0
  224. package/dist/types/src/containers/TracePanel/TracePanel.d.ts +3 -0
  225. package/dist/types/src/containers/TracePanel/TracePanel.d.ts.map +1 -0
  226. package/dist/types/src/containers/TracePanel/index.d.ts +3 -0
  227. package/dist/types/src/containers/TracePanel/index.d.ts.map +1 -0
  228. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +4 -0
  229. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -0
  230. package/dist/types/src/containers/TriggerStatus/index.d.ts +3 -0
  231. package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -0
  232. package/dist/types/src/containers/index.d.ts +11 -0
  233. package/dist/types/src/containers/index.d.ts.map +1 -0
  234. package/dist/types/src/extensions/index.d.ts +2 -0
  235. package/dist/types/src/extensions/index.d.ts.map +1 -0
  236. package/dist/types/src/extensions/prompt-extension.d.ts +10 -0
  237. package/dist/types/src/extensions/prompt-extension.d.ts.map +1 -0
  238. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  239. package/dist/types/src/hooks/useChatProcessor.d.ts +2 -1
  240. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  241. package/dist/types/src/hooks/useChatServices.d.ts +2 -2
  242. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  243. package/dist/types/src/hooks/useChatToolbarActions.d.ts +2 -2
  244. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -1
  245. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  246. package/dist/types/src/hooks/useFilteredTypes.d.ts +1 -1
  247. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -1
  248. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  249. package/dist/types/src/index.d.ts +1 -0
  250. package/dist/types/src/index.d.ts.map +1 -1
  251. package/dist/types/src/processor/processor.d.ts +7 -3
  252. package/dist/types/src/processor/processor.d.ts.map +1 -1
  253. package/dist/types/src/processor/update-name.d.ts +2 -2
  254. package/dist/types/src/processor/update-name.d.ts.map +1 -1
  255. package/dist/types/src/translations.d.ts +131 -5
  256. package/dist/types/src/translations.d.ts.map +1 -1
  257. package/dist/types/src/types/Assistant.d.ts +5 -27
  258. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  259. package/dist/types/src/types/AssistantAction.d.ts +35 -15
  260. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  261. package/dist/types/src/types/capabilities.d.ts +8 -0
  262. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  263. package/dist/types/src/types/index.d.ts +1 -0
  264. package/dist/types/src/types/index.d.ts.map +1 -1
  265. package/dist/types/src/types/service.d.ts.map +1 -1
  266. package/dist/types/tsconfig.tsbuildinfo +1 -1
  267. package/package.json +95 -92
  268. package/src/AssistantPlugin.tsx +82 -45
  269. package/src/blueprints/assistant/blueprint.conversations.json +1 -0
  270. package/src/blueprints/assistant/blueprint.test.ts +48 -0
  271. package/src/blueprints/assistant/blueprint.ts +27 -0
  272. package/src/blueprints/assistant/index.ts +5 -0
  273. package/src/blueprints/index.ts +1 -8
  274. package/src/capabilities/ai-service/ai-service.ts +4 -3
  275. package/src/capabilities/app-graph-builder/app-graph-builder.ts +67 -31
  276. package/src/capabilities/blueprint-definition/blueprint-definition.ts +36 -42
  277. package/src/capabilities/blueprint-definition/index.ts +0 -1
  278. package/src/capabilities/edge-model-resolver/edge-model-resolver.ts +4 -3
  279. package/src/capabilities/index.ts +1 -1
  280. package/src/capabilities/local-model-resolver/local-model-resolver.ts +4 -3
  281. package/src/capabilities/markdown/index.ts +7 -0
  282. package/src/capabilities/markdown/markdown.ts +39 -0
  283. package/src/capabilities/operation-resolver/operation-resolver.ts +53 -26
  284. package/src/capabilities/react-surface/react-surface.tsx +68 -30
  285. package/src/capabilities/settings/settings.ts +3 -2
  286. package/src/capabilities/state/state.ts +1 -0
  287. package/src/capabilities/toolkit/toolkit.ts +5 -16
  288. package/src/components/Chat/Chat.tsx +66 -33
  289. package/src/components/ChatProgress/ChatProgress.tsx +4 -5
  290. package/src/components/ChatPrompt/ChatActions.tsx +9 -1
  291. package/src/components/ChatPrompt/ChatOptions.tsx +29 -9
  292. package/src/components/ChatPrompt/ChatReferences.tsx +14 -4
  293. package/src/components/ChatThread/ChatThread.stories.tsx +11 -11
  294. package/src/components/ChatThread/ChatThread.tsx +15 -6
  295. package/src/components/ChatThread/Link.tsx +1 -1
  296. package/src/components/ChatThread/registry.tsx +51 -18
  297. package/src/components/ChatThread/sync.test.ts +2 -0
  298. package/src/components/ChatThread/sync.ts +14 -8
  299. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +3 -7
  300. package/src/components/TemplateEditor/TemplateEditor.tsx +2 -2
  301. package/src/components/TemplateEditor/TemplateForm.stories.tsx +3 -3
  302. package/src/components/TemplateEditor/TemplateForm.tsx +6 -7
  303. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +4 -4
  304. package/src/components/ToolBlock/ToolBlock.tsx +15 -15
  305. package/src/components/Toolbox/Toolbox.stories.tsx +3 -3
  306. package/src/components/Toolbox/Toolbox.tsx +49 -48
  307. package/src/components/Typewriter/AssistantToolbar.tsx +3 -3
  308. package/src/components/Typewriter/Typewriter.stories.tsx +18 -15
  309. package/src/components/Typewriter/Typewriter.tsx +1 -1
  310. package/src/components/Typewriter/assistant-extension.tsx +3 -5
  311. package/src/components/index.ts +0 -9
  312. package/src/{components → containers}/AssistantSettings/AssistantSettings.tsx +15 -15
  313. package/src/containers/AssistantSettings/index.ts +7 -0
  314. package/src/containers/BlueprintArticle/BlueprintArticle.tsx +29 -0
  315. package/src/containers/BlueprintArticle/index.ts +7 -0
  316. package/src/{components → containers/ChatCompanion}/ChatCompanion.tsx +86 -22
  317. package/src/containers/ChatCompanion/index.ts +7 -0
  318. package/src/containers/ChatContainer/ChatContainer.tsx +92 -0
  319. package/src/containers/ChatContainer/index.ts +7 -0
  320. package/src/{components → containers/ChatDialog}/ChatDialog.tsx +7 -9
  321. package/src/containers/ChatDialog/index.ts +7 -0
  322. package/src/containers/Project/ProjectArticle.tsx +124 -0
  323. package/src/containers/Project/ProjectSettings.tsx +135 -0
  324. package/src/containers/Project/index.ts +16 -0
  325. package/src/containers/PromptArticle/PromptArticle.tsx +59 -0
  326. package/src/containers/PromptArticle/index.ts +7 -0
  327. package/src/containers/TracePanel/TracePanel.tsx +260 -0
  328. package/src/containers/TracePanel/index.ts +7 -0
  329. package/src/containers/TriggerStatus/TriggerStatus.tsx +140 -0
  330. package/src/containers/TriggerStatus/index.ts +7 -0
  331. package/src/containers/index.ts +16 -0
  332. package/src/extensions/index.ts +5 -0
  333. package/src/extensions/prompt-extension.ts +142 -0
  334. package/src/hooks/useBlueprintRegistry.ts +8 -4
  335. package/src/hooks/useChatProcessor.ts +2 -1
  336. package/src/hooks/useChatServices.ts +3 -3
  337. package/src/hooks/useChatToolbarActions.ts +6 -5
  338. package/src/hooks/useContextObjects.ts +7 -3
  339. package/src/hooks/useFilteredTypes.ts +3 -3
  340. package/src/hooks/useReferencesProvider.ts +1 -5
  341. package/src/index.ts +1 -0
  342. package/src/meta.ts +2 -2
  343. package/src/processor/processor.test.ts +8 -7
  344. package/src/processor/processor.ts +47 -26
  345. package/src/processor/update-name.ts +2 -3
  346. package/src/testing/test-sequence.ts +3 -3
  347. package/src/testing/test-services.ts +1 -1
  348. package/src/translations.ts +30 -3
  349. package/src/types/Assistant.ts +4 -38
  350. package/src/types/AssistantAction.ts +28 -13
  351. package/src/types/capabilities.ts +4 -2
  352. package/src/types/events.ts +1 -1
  353. package/src/types/index.ts +3 -0
  354. package/src/types/service.ts +4 -4
  355. package/dist/lib/browser/BlueprintArticle-WP3G5GLG.mjs +0 -31
  356. package/dist/lib/browser/BlueprintArticle-WP3G5GLG.mjs.map +0 -7
  357. package/dist/lib/browser/ChatCompanion-ECQYUQ2B.mjs.map +0 -7
  358. package/dist/lib/browser/ChatContainer-QCCOFBUX.mjs +0 -73
  359. package/dist/lib/browser/ChatContainer-QCCOFBUX.mjs.map +0 -7
  360. package/dist/lib/browser/ChatDialog-SMK4RSZU.mjs.map +0 -7
  361. package/dist/lib/browser/PromptArticle-K362ZPAE.mjs +0 -53
  362. package/dist/lib/browser/PromptArticle-K362ZPAE.mjs.map +0 -7
  363. package/dist/lib/browser/ai-service-5GUDOEWF.mjs.map +0 -7
  364. package/dist/lib/browser/app-graph-builder-DSNH2OMY.mjs.map +0 -7
  365. package/dist/lib/browser/blueprint-definition-DGHH7MUU.mjs +0 -14
  366. package/dist/lib/browser/chunk-3JYPE2MM.mjs.map +0 -7
  367. package/dist/lib/browser/chunk-DKQMSMBN.mjs +0 -326
  368. package/dist/lib/browser/chunk-DKQMSMBN.mjs.map +0 -7
  369. package/dist/lib/browser/chunk-ML3QCFKA.mjs.map +0 -7
  370. package/dist/lib/browser/chunk-MRJVYGLU.mjs +0 -208
  371. package/dist/lib/browser/chunk-MRJVYGLU.mjs.map +0 -7
  372. package/dist/lib/browser/chunk-V772AMZM.mjs.map +0 -7
  373. package/dist/lib/browser/chunk-WGQTU6UJ.mjs +0 -41
  374. package/dist/lib/browser/chunk-WGQTU6UJ.mjs.map +0 -7
  375. package/dist/lib/browser/edge-model-resolver-26BOY6HY.mjs.map +0 -7
  376. package/dist/lib/browser/local-model-resolver-ZFIM6GGV.mjs.map +0 -7
  377. package/dist/lib/browser/operation-resolver-7XJLBRQY.mjs.map +0 -7
  378. package/dist/lib/browser/react-surface-NCITRSJJ.mjs +0 -109
  379. package/dist/lib/browser/react-surface-NCITRSJJ.mjs.map +0 -7
  380. package/dist/lib/browser/repair-6QGAKOVM.mjs +0 -54
  381. package/dist/lib/browser/repair-6QGAKOVM.mjs.map +0 -7
  382. package/dist/lib/browser/settings-4ZDLUMYE.mjs.map +0 -7
  383. package/dist/lib/browser/toolkit-7AVTEPMA.mjs +0 -18
  384. package/dist/lib/browser/toolkit-7AVTEPMA.mjs.map +0 -7
  385. package/dist/lib/node-esm/BlueprintArticle-WZ76E2C4.mjs +0 -32
  386. package/dist/lib/node-esm/BlueprintArticle-WZ76E2C4.mjs.map +0 -7
  387. package/dist/lib/node-esm/ChatCompanion-Q4FUZ2MW.mjs.map +0 -7
  388. package/dist/lib/node-esm/ChatContainer-AKI33HIB.mjs +0 -74
  389. package/dist/lib/node-esm/ChatContainer-AKI33HIB.mjs.map +0 -7
  390. package/dist/lib/node-esm/ChatDialog-AP45PVZR.mjs.map +0 -7
  391. package/dist/lib/node-esm/PromptArticle-D4HAIIC6.mjs +0 -54
  392. package/dist/lib/node-esm/PromptArticle-D4HAIIC6.mjs.map +0 -7
  393. package/dist/lib/node-esm/ai-service-PXKKCFIF.mjs.map +0 -7
  394. package/dist/lib/node-esm/app-graph-builder-TJCUEXW5.mjs.map +0 -7
  395. package/dist/lib/node-esm/blueprint-definition-SEMDEIYG.mjs +0 -15
  396. package/dist/lib/node-esm/chunk-355W5B27.mjs.map +0 -7
  397. package/dist/lib/node-esm/chunk-75PHXBN3.mjs +0 -327
  398. package/dist/lib/node-esm/chunk-75PHXBN3.mjs.map +0 -7
  399. package/dist/lib/node-esm/chunk-DCA5QWQT.mjs +0 -209
  400. package/dist/lib/node-esm/chunk-DCA5QWQT.mjs.map +0 -7
  401. package/dist/lib/node-esm/chunk-MSBPC4RJ.mjs +0 -42
  402. package/dist/lib/node-esm/chunk-MSBPC4RJ.mjs.map +0 -7
  403. package/dist/lib/node-esm/chunk-XI5T3MJC.mjs.map +0 -7
  404. package/dist/lib/node-esm/chunk-ZRIPP7YF.mjs.map +0 -7
  405. package/dist/lib/node-esm/edge-model-resolver-G5KMODPO.mjs.map +0 -7
  406. package/dist/lib/node-esm/local-model-resolver-KDZLYI7Y.mjs.map +0 -7
  407. package/dist/lib/node-esm/operation-resolver-SX4WMNA7.mjs.map +0 -7
  408. package/dist/lib/node-esm/react-surface-ST6V7LPE.mjs +0 -110
  409. package/dist/lib/node-esm/react-surface-ST6V7LPE.mjs.map +0 -7
  410. package/dist/lib/node-esm/repair-QJ7CQDKU.mjs +0 -55
  411. package/dist/lib/node-esm/repair-QJ7CQDKU.mjs.map +0 -7
  412. package/dist/lib/node-esm/settings-CQEOHR3R.mjs.map +0 -7
  413. package/dist/lib/node-esm/toolkit-OWGCEKOO.mjs +0 -19
  414. package/dist/lib/node-esm/toolkit-OWGCEKOO.mjs.map +0 -7
  415. package/dist/types/src/blueprints/assistant-blueprint.d.ts +0 -209
  416. package/dist/types/src/blueprints/assistant-blueprint.d.ts.map +0 -1
  417. package/dist/types/src/capabilities/repair/index.d.ts +0 -3
  418. package/dist/types/src/capabilities/repair/index.d.ts.map +0 -1
  419. package/dist/types/src/capabilities/repair/repair.d.ts +0 -6
  420. package/dist/types/src/capabilities/repair/repair.d.ts.map +0 -1
  421. package/dist/types/src/components/AssistantSettings/index.d.ts +0 -2
  422. package/dist/types/src/components/AssistantSettings/index.d.ts.map +0 -1
  423. package/dist/types/src/components/BlueprintArticle.d.ts +0 -7
  424. package/dist/types/src/components/BlueprintArticle.d.ts.map +0 -1
  425. package/dist/types/src/components/ChatCompanion.d.ts.map +0 -1
  426. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  427. package/dist/types/src/components/ChatDialog.d.ts.map +0 -1
  428. package/dist/types/src/components/PromptArticle.d.ts +0 -7
  429. package/dist/types/src/components/PromptArticle.d.ts.map +0 -1
  430. package/dist/types/src/functions/index.d.ts +0 -4
  431. package/dist/types/src/functions/index.d.ts.map +0 -1
  432. package/dist/types/src/functions/object-list.d.ts +0 -10
  433. package/dist/types/src/functions/object-list.d.ts.map +0 -1
  434. package/dist/types/src/functions/object-load.d.ts +0 -8
  435. package/dist/types/src/functions/object-load.d.ts.map +0 -1
  436. package/dist/types/src/functions/object-search.d.ts +0 -10
  437. package/dist/types/src/functions/object-search.d.ts.map +0 -1
  438. package/src/blueprints/assistant-blueprint.ts +0 -62
  439. package/src/capabilities/repair/index.ts +0 -7
  440. package/src/capabilities/repair/repair.ts +0 -63
  441. package/src/components/AssistantSettings/index.ts +0 -5
  442. package/src/components/BlueprintArticle.tsx +0 -29
  443. package/src/components/ChatContainer.tsx +0 -61
  444. package/src/components/PromptArticle.tsx +0 -50
  445. package/src/functions/index.ts +0 -7
  446. package/src/functions/object-list.ts +0 -49
  447. package/src/functions/object-load.ts +0 -47
  448. package/src/functions/object-search.ts +0 -46
  449. /package/dist/lib/browser/{blueprint-definition-DGHH7MUU.mjs.map → ChatContainer-QPPZHQRQ.mjs.map} +0 -0
  450. /package/dist/lib/node-esm/{blueprint-definition-SEMDEIYG.mjs.map → ChatContainer-RIVOAWFM.mjs.map} +0 -0
  451. /package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.d.ts +0 -0
@@ -0,0 +1,260 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+ import React, { useMemo } from 'react';
7
+
8
+ import { Filter, Obj, Query } from '@dxos/echo';
9
+ import { InvocationOutcome, InvocationTraceEndEvent, InvocationTraceStartEvent } from '@dxos/functions-runtime';
10
+ import { useTriggerRuntimeControls } from '@dxos/plugin-automation';
11
+ import { useActiveSpace } from '@dxos/plugin-space';
12
+ import { type Space } from '@dxos/react-client/echo';
13
+ import { Input, Panel, Toolbar, useTranslation } from '@dxos/react-ui';
14
+ import { Timeline, type Commit } from '@dxos/react-ui-components';
15
+ import { Message } from '@dxos/types';
16
+
17
+ import { AtomObj, AtomQuery, AtomRef } from '@dxos/echo-atom';
18
+ import { LogLevel } from '@dxos/log';
19
+ import { Atom } from '@effect-atom/atom';
20
+ import { useAtomValue } from '@effect-atom/atom-react';
21
+ import * as Array from 'effect/Array';
22
+ import { pipe } from 'effect/Function';
23
+ import { meta } from '../../meta';
24
+
25
+ export const TracePanel = () => {
26
+ const space = useActiveSpace();
27
+ if (!space) {
28
+ return null;
29
+ }
30
+
31
+ return <TracePanelMain space={space} />;
32
+ };
33
+
34
+ const TracePanelMain = ({ space }: { space: Space }) => {
35
+ const { t } = useTranslation(meta.id);
36
+ const { state, start, stop } = useTriggerRuntimeControls(space.db);
37
+ const isRunning = state?.enabled ?? false;
38
+
39
+ const { branches, commits } = useAtomValue(useMemo(() => getExecutionGraph(space), [space]));
40
+
41
+ return (
42
+ <Panel.Root>
43
+ <Panel.Toolbar asChild>
44
+ <Toolbar.Root>
45
+ <Input.Root>
46
+ <Input.Switch checked={isRunning} onCheckedChange={isRunning ? stop : start} />
47
+ </Input.Root>
48
+ <span className='text-sm'>{t('trigger runtime label')}</span>
49
+ </Toolbar.Root>
50
+ </Panel.Toolbar>
51
+ <Panel.Content>
52
+ <Timeline branches={branches} commits={commits} compact />
53
+ </Panel.Content>
54
+ </Panel.Root>
55
+ );
56
+ };
57
+
58
+ type InvocationInfo = {
59
+ startEvent: InvocationTraceStartEvent;
60
+ endEvent: InvocationTraceEndEvent | null;
61
+ subevents: Obj.Unknown[];
62
+ };
63
+
64
+ const getExecutionGraph = (
65
+ space: Space,
66
+ {
67
+ invocationsLimit = 100,
68
+ subeventsLimit = 20,
69
+ showSubeventsForLastNInvocations = 4,
70
+ }: { invocationsLimit?: number; subeventsLimit?: number; showSubeventsForLastNInvocations?: number } = {},
71
+ ): Atom.Atom<{
72
+ branches: string[];
73
+ commits: Commit[];
74
+ }> => {
75
+ return pipe(
76
+ space.properties,
77
+ (_) => AtomObj.make(_),
78
+ // space properies => Atom<Atom<InvocationTraceEvent[]>>
79
+ (_) =>
80
+ Atom.make((get) => {
81
+ const queueDxn = get(_).invocationTraceQueue?.dxn;
82
+ return AtomQuery.make(
83
+ space.db,
84
+ !queueDxn
85
+ ? (Query.select(Filter.nothing()) as Query.Query<never>) // TODO(dmaretskyi): Broken echo types here.
86
+ : Query.select(
87
+ Filter.or(Filter.type(InvocationTraceStartEvent), Filter.type(InvocationTraceEndEvent)),
88
+ ).from({
89
+ queues: [queueDxn.toString()],
90
+ }),
91
+ );
92
+ }),
93
+ // Flatten atoms
94
+ (_) => Atom.make((get) => get(get(_))),
95
+ // Atom<InvocationTraceEvent[]> => Atom<InvocationInfo[]>
96
+ (_) =>
97
+ Atom.make((get) => {
98
+ const events = get(_);
99
+ const invocations: InvocationInfo[] = [];
100
+
101
+ for (const event of events) {
102
+ if (Schema.is(InvocationTraceStartEvent)(event)) {
103
+ const invocationInfo: InvocationInfo = {
104
+ startEvent: event,
105
+ endEvent: null,
106
+ subevents: [],
107
+ };
108
+ invocations.push(invocationInfo);
109
+ } else if (Schema.is(InvocationTraceEndEvent)(event)) {
110
+ const invocationInfo = invocations.find((i) => i.startEvent.invocationId === event.invocationId);
111
+ if (invocationInfo) {
112
+ invocationInfo.endEvent = event;
113
+ }
114
+ }
115
+ }
116
+
117
+ let expandedBudget = showSubeventsForLastNInvocations;
118
+ for (let i = invocations.length - 1; i >= 0; i--) {
119
+ const invocation = invocations[i];
120
+ if (!invocation.startEvent.invocationTraceQueue) {
121
+ continue;
122
+ }
123
+ const subevents = get(
124
+ AtomQuery.make(
125
+ space.db,
126
+ Query.select(Filter.everything())
127
+ .limit(subeventsLimit)
128
+ .from({ queues: [invocation.startEvent.invocationTraceQueue?.dxn?.toString()] }),
129
+ ),
130
+ );
131
+ invocation.subevents = subevents;
132
+ if (subevents.length > 0) {
133
+ expandedBudget--;
134
+ }
135
+ if (expandedBudget <= 0) {
136
+ break;
137
+ }
138
+ }
139
+
140
+ return invocations;
141
+ }),
142
+
143
+ // Build commit graph from InvocationInfo[]
144
+ (_) =>
145
+ Atom.make((get) => {
146
+ const invocations = get(_);
147
+ // Two alternating branches for subevents to save horizontal space.
148
+ const branches: string[] = ['invocations'];
149
+ const commits: Commit[] = [];
150
+
151
+ const sorted = invocations.sort((a, b) => a.startEvent.timestamp - b.startEvent.timestamp);
152
+ let idx = 0;
153
+ for (const invocation of sorted.slice(-invocationsLimit)) {
154
+ const trigger = invocation.startEvent.trigger && AtomRef.make(invocation.startEvent.trigger).pipe(get);
155
+ const fn =
156
+ (invocation.startEvent.invocationTarget &&
157
+ AtomRef.make(invocation.startEvent.invocationTarget).pipe(get)) ??
158
+ (trigger?.function && AtomRef.make(trigger.function).pipe(get));
159
+
160
+ const functionName = fn ? Obj.getLabel(fn) : undefined;
161
+ const triggerName = trigger?.spec?.kind ?? 'trigger';
162
+ const label = functionName ? `${functionName} on ${triggerName}` : triggerName;
163
+
164
+ const branchName = `invocation-${invocation.startEvent.invocationId.slice(0, 8)}`;
165
+
166
+ if (invocation.endEvent && invocation.subevents.length === 0) {
167
+ commits.push({
168
+ id: invocation.endEvent.id,
169
+ branch: 'invocations',
170
+ parents: commits.length > 0 ? [commits.at(-1)!.id] : [],
171
+ icon:
172
+ invocation.endEvent.outcome === InvocationOutcome.SUCCESS
173
+ ? 'ph--check-circle--regular'
174
+ : 'ph--x-circle--regular',
175
+ level: invocation.endEvent.outcome === InvocationOutcome.SUCCESS ? LogLevel.INFO : LogLevel.ERROR,
176
+ message: `${label} - ${invocation.endEvent.outcome}`,
177
+ timestamp: new Date(invocation.endEvent.timestamp),
178
+ });
179
+ continue;
180
+ }
181
+
182
+ commits.push({
183
+ id: invocation.startEvent.id,
184
+ branch: 'invocations',
185
+ parents: commits.length > 0 ? [commits.at(-1)!.id] : [],
186
+ icon: invocation.endEvent ? 'ph--play--regular' : 'ph--spinner-gap--regular',
187
+ level: invocation.endEvent ? LogLevel.INFO : LogLevel.VERBOSE,
188
+ message: label,
189
+ timestamp: new Date(invocation.startEvent.timestamp),
190
+ });
191
+
192
+ for (const subevent of invocation.subevents.slice(-subeventsLimit)) {
193
+ if (Obj.instanceOf(Message.Message, subevent)) {
194
+ for (const block of subevent.blocks) {
195
+ switch (block._tag) {
196
+ case 'text':
197
+ commits.push({
198
+ id: subevent.id,
199
+ branch: branchName,
200
+ parents: [commits.at(-1)!.id],
201
+ icon: 'ph--robot--regular',
202
+ level: LogLevel.VERBOSE,
203
+ message: block.text.slice(0, 50),
204
+ timestamp: new Date(subevent.created),
205
+ });
206
+ if (!branches.includes(branchName)) {
207
+ branches.push(branchName);
208
+ }
209
+ break;
210
+ case 'toolCall':
211
+ commits.push({
212
+ id: subevent.id,
213
+ branch: branchName,
214
+ parents: [commits.at(-1)!.id],
215
+ icon: 'ph--wrench--regular',
216
+ level: LogLevel.VERBOSE,
217
+ message: block.name,
218
+ timestamp: new Date(subevent.created),
219
+ });
220
+ if (!branches.includes(branchName)) {
221
+ branches.push(branchName);
222
+ }
223
+ break;
224
+ }
225
+ }
226
+ }
227
+ }
228
+
229
+ if (!invocation.endEvent && invocation.subevents.length > 0) {
230
+ commits.push({
231
+ id: invocation.startEvent.invocationId + 'pending',
232
+ branch: branchName,
233
+ parents: [commits.at(-1)!.id],
234
+ icon: 'ph--dots-three-vertical--regular',
235
+ level: LogLevel.VERBOSE,
236
+ message: 'Running...',
237
+ timestamp: new Date(),
238
+ });
239
+ }
240
+
241
+ if (invocation.endEvent && invocation.subevents.length > 0) {
242
+ commits.push({
243
+ id: invocation.endEvent.id,
244
+ branch: 'invocations',
245
+ parents: Array.dedupe([invocation.startEvent.invocationId, commits.at(-1)!.id]),
246
+ icon:
247
+ invocation.endEvent.outcome === InvocationOutcome.SUCCESS
248
+ ? 'ph--check-circle--regular'
249
+ : 'ph--x-circle--regular',
250
+ level: invocation.endEvent.outcome === InvocationOutcome.SUCCESS ? LogLevel.INFO : LogLevel.ERROR,
251
+ message: `${label} - ${invocation.endEvent.outcome === InvocationOutcome.SUCCESS ? 'Success' : 'Failure'}`,
252
+ timestamp: new Date(invocation.endEvent.timestamp),
253
+ });
254
+ }
255
+ }
256
+
257
+ return { branches, commits };
258
+ }),
259
+ );
260
+ };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { TracePanel } from './TracePanel';
6
+
7
+ export default TracePanel;
@@ -0,0 +1,140 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import React, { useMemo } from 'react';
6
+
7
+ import { type InvocationsState } from '@dxos/functions-runtime';
8
+ import { useTriggerRuntimeControls } from '@dxos/plugin-automation';
9
+ import { useActiveSpace } from '@dxos/plugin-space';
10
+ import { StatusBar } from '@dxos/plugin-status-bar';
11
+ import { type Database } from '@dxos/react-client/echo';
12
+ import { Icon, Input, Popover, useTranslation } from '@dxos/react-ui';
13
+ import { Settings } from '@dxos/react-ui-form';
14
+ import { mx } from '@dxos/ui-theme';
15
+
16
+ import { meta } from '../../meta';
17
+
18
+ type TriggerStatusState = 'disabled' | 'idle' | 'running' | 'error';
19
+
20
+ const getIcon = (state: TriggerStatusState): string => {
21
+ switch (state) {
22
+ case 'disabled':
23
+ return 'ph--lightning-slash--regular';
24
+ case 'idle':
25
+ return 'ph--lightning--regular';
26
+ case 'running':
27
+ return 'ph--lightning--fill';
28
+ case 'error':
29
+ return 'ph--warning--regular';
30
+ }
31
+ };
32
+
33
+ const getIconClassNames = (state: TriggerStatusState): string | undefined => {
34
+ switch (state) {
35
+ case 'running':
36
+ return 'animate-pulse text-accent-text';
37
+ case 'error':
38
+ return 'text-error-text';
39
+ default:
40
+ return undefined;
41
+ }
42
+ };
43
+
44
+ export const TriggerStatus = () => {
45
+ const space = useActiveSpace();
46
+ const db = space?.db;
47
+ if (!db) {
48
+ return null;
49
+ }
50
+
51
+ return <SpaceStatusMain db={db} />;
52
+ };
53
+
54
+ const SpaceStatusMain = ({ db }: { db: Database.Database }) => {
55
+ const { state, start, stop } = useTriggerRuntimeControls(db);
56
+ const isRunning = state?.enabled ?? false;
57
+
58
+ // Determine the current trigger status state.
59
+ const triggerState: TriggerStatusState = useMemo(() => {
60
+ if (!isRunning) {
61
+ return 'disabled';
62
+ }
63
+
64
+ // Check if there's any pending invocation.
65
+ const hasPending = state?.invocations.some((invocation) => invocation.result === null);
66
+ if (hasPending) {
67
+ return 'running';
68
+ }
69
+
70
+ // Check if the last invocation failed.
71
+ const lastInvocation = state?.invocations.at(-1);
72
+ if (lastInvocation?.result?._tag === 'Failure') {
73
+ return 'error';
74
+ }
75
+
76
+ return 'idle';
77
+ }, [isRunning, state?.invocations]);
78
+
79
+ const { t } = useTranslation(meta.id);
80
+ const title = t(`trigger status ${triggerState} label`);
81
+ const icon = <Icon icon={getIcon(triggerState)} classNames={getIconClassNames(triggerState)} />;
82
+
83
+ return (
84
+ <Popover.Root>
85
+ <Popover.Trigger asChild>
86
+ <StatusBar.Item title={title}>{icon}</StatusBar.Item>
87
+ </Popover.Trigger>
88
+ <Popover.Portal>
89
+ <Popover.Content>
90
+ <TriggerStatusPopover
91
+ isRunning={isRunning}
92
+ state={triggerState}
93
+ currentFunctionName={state?.invocations.at(-1)?.function?.name ?? state?.invocations.at(-1)?.function?.key}
94
+ lastInvocation={state?.invocations.at(-1)}
95
+ onToggle={isRunning ? stop : start}
96
+ />
97
+ <Popover.Arrow />
98
+ </Popover.Content>
99
+ </Popover.Portal>
100
+ </Popover.Root>
101
+ );
102
+ };
103
+
104
+ interface TriggerStatusPopoverProps {
105
+ isRunning: boolean;
106
+ state: TriggerStatusState;
107
+ currentFunctionName?: string;
108
+ lastInvocation?: InvocationsState;
109
+ onToggle: () => void;
110
+ }
111
+
112
+ const TriggerStatusPopover = ({
113
+ isRunning,
114
+ state,
115
+ currentFunctionName,
116
+ lastInvocation,
117
+ onToggle,
118
+ }: TriggerStatusPopoverProps) => {
119
+ const { t } = useTranslation(meta.id);
120
+
121
+ return (
122
+ <div className='min-w-[240px] p-2 space-y-3'>
123
+ {/* Runtime Toggle */}
124
+ <Settings.ItemInput title={t('trigger runtime label')} description={t('trigger runtime description')}>
125
+ <Input.Switch classNames='justify-self-end' checked={isRunning} onCheckedChange={onToggle} />
126
+ </Settings.ItemInput>
127
+
128
+ {/* Status Indicator */}
129
+ <div className='flex items-center gap-2 pt-2 border-t border-separator'>
130
+ <Icon icon={getIcon(state)} classNames={mx(getIconClassNames(state), 'shrink-0')} />
131
+ <span className='text-sm'>{t(`trigger status ${state} label`)}</span>
132
+ {currentFunctionName && state === 'running' && (
133
+ <span className='text-xs text-description'>{currentFunctionName}</span>
134
+ )}
135
+ </div>
136
+ </div>
137
+ );
138
+ };
139
+
140
+ export default TriggerStatus;
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { TriggerStatus } from './TriggerStatus';
6
+
7
+ export default TriggerStatus;
@@ -0,0 +1,16 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type ComponentType, lazy } from 'react';
6
+
7
+ export * from './Project';
8
+
9
+ export const AssistantSettings: ComponentType<any> = lazy(() => import('./AssistantSettings'));
10
+ export const BlueprintArticle: ComponentType<any> = lazy(() => import('./BlueprintArticle'));
11
+ export const ChatCompanion: ComponentType<any> = lazy(() => import('./ChatCompanion'));
12
+ export const ChatContainer: ComponentType<any> = lazy(() => import('./ChatContainer'));
13
+ export const ChatDialog: ComponentType<any> = lazy(() => import('./ChatDialog'));
14
+ export const PromptArticle: ComponentType<any> = lazy(() => import('./PromptArticle'));
15
+ export const TracePanel: ComponentType<any> = lazy(() => import('./TracePanel'));
16
+ export const TriggerStatus: ComponentType<any> = lazy(() => import('./TriggerStatus'));
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export { promptRunExtension, type PromptExtensionOptions } from './prompt-extension';
@@ -0,0 +1,142 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { syntaxTree } from '@codemirror/language';
6
+ import { type Extension } from '@codemirror/state';
7
+ import { Decoration, type DecorationSet, EditorView, ViewPlugin, type ViewUpdate, WidgetType } from '@codemirror/view';
8
+
9
+ export type PromptExtensionOptions = {
10
+ /** Called when the user clicks the run button on a prompt code block. */
11
+ onRun: (promptText: string) => void;
12
+ };
13
+
14
+ /**
15
+ * CodeMirror extension that adds a green "run" button to ```prompt fenced code blocks.
16
+ */
17
+ export const promptRunExtension = ({ onRun }: PromptExtensionOptions): Extension => {
18
+ return [
19
+ ViewPlugin.fromClass(
20
+ class {
21
+ decorations: DecorationSet;
22
+
23
+ constructor(view: EditorView) {
24
+ this.decorations = this.buildDecorations(view);
25
+ }
26
+
27
+ update(update: ViewUpdate) {
28
+ if (update.docChanged || update.viewportChanged || update.selectionSet || update.focusChanged) {
29
+ this.decorations = this.buildDecorations(update.view);
30
+ }
31
+ }
32
+
33
+ buildDecorations(view: EditorView): DecorationSet {
34
+ const decorations: Array<{ from: number; to: number; decoration: Decoration }> = [];
35
+
36
+ syntaxTree(view.state).iterate({
37
+ enter: (node) => {
38
+ if (node.name === 'FencedCode') {
39
+ const info = node.node.getChild('CodeInfo');
40
+ if (info) {
41
+ const type = view.state.sliceDoc(info.from, info.to);
42
+ const text = node.node.getChild('CodeText');
43
+ if (type === 'prompt' && text) {
44
+ const content = view.state.sliceDoc(text.from, text.to).trim();
45
+ if (content.length > 0) {
46
+ const widget = new PromptRunWidget(content, onRun);
47
+ decorations.push({
48
+ from: node.from,
49
+ to: node.from,
50
+ decoration: Decoration.widget({ widget, side: -1 }),
51
+ });
52
+ }
53
+ }
54
+ }
55
+ }
56
+ },
57
+ });
58
+
59
+ return Decoration.set(
60
+ decorations.sort((a, b) => a.from - b.from || a.to - b.to).map((d) => d.decoration.range(d.from, d.to)),
61
+ );
62
+ }
63
+ },
64
+ {
65
+ decorations: (v) => v.decorations,
66
+ },
67
+ ),
68
+ EditorView.theme({
69
+ '& .cm-prompt-run-container': {
70
+ position: 'relative',
71
+ display: 'block',
72
+ height: '0',
73
+ },
74
+ '& .cm-prompt-run': {
75
+ position: 'absolute',
76
+ right: '8px',
77
+ top: '8px',
78
+ zIndex: '10',
79
+ display: 'inline-flex',
80
+ alignItems: 'center',
81
+ justifyContent: 'center',
82
+ width: '24px',
83
+ height: '24px',
84
+ border: 'none',
85
+ borderRadius: '4px',
86
+ background: 'var(--color-success, #22c55e)',
87
+ cursor: 'pointer',
88
+ opacity: '0.85',
89
+ transition: 'opacity 0.15s ease',
90
+ '&:hover': {
91
+ opacity: '1',
92
+ },
93
+ },
94
+ '& .cm-prompt-run-icon': {
95
+ width: '0',
96
+ height: '0',
97
+ borderTop: '5px solid transparent',
98
+ borderBottom: '5px solid transparent',
99
+ borderLeft: '8px solid white',
100
+ marginLeft: '2px',
101
+ },
102
+ }),
103
+ ];
104
+ };
105
+
106
+ class PromptRunWidget extends WidgetType {
107
+ constructor(
108
+ private readonly _promptText: string,
109
+ private readonly _onRun: (promptText: string) => void,
110
+ ) {
111
+ super();
112
+ }
113
+
114
+ override eq(other: this) {
115
+ return this._promptText === other._promptText;
116
+ }
117
+
118
+ override ignoreEvent() {
119
+ return false;
120
+ }
121
+
122
+ override toDOM() {
123
+ const container = document.createElement('div');
124
+ container.className = 'cm-prompt-run-container';
125
+
126
+ const button = document.createElement('button');
127
+ button.className = 'cm-prompt-run';
128
+ button.title = 'Run prompt in new chat';
129
+ button.addEventListener('mousedown', (event) => {
130
+ event.preventDefault();
131
+ event.stopPropagation();
132
+ this._onRun(this._promptText);
133
+ });
134
+
135
+ const icon = document.createElement('span');
136
+ icon.className = 'cm-prompt-run-icon';
137
+ button.appendChild(icon);
138
+ container.appendChild(button);
139
+
140
+ return container;
141
+ }
142
+ }
@@ -4,8 +4,8 @@
4
4
 
5
5
  import { useCallback, useEffect, useMemo, useState } from 'react';
6
6
 
7
- import { Common } from '@dxos/app-framework';
8
- import { useCapabilities } from '@dxos/app-framework/react';
7
+ import { useCapabilities } from '@dxos/app-framework/ui';
8
+ import { AppCapabilities } from '@dxos/app-toolkit';
9
9
  import { type AiContextBinder } from '@dxos/assistant';
10
10
  import { Blueprint } from '@dxos/blueprints';
11
11
  import { type Database, Filter, Obj, Ref } from '@dxos/echo';
@@ -16,9 +16,13 @@ import { distinctBy } from '@dxos/util';
16
16
  * Provide a registry of blueprints from plugins.
17
17
  */
18
18
  // TODO(burdon): Reconcile with eventual public registry.
19
+ // TODO(dmaretskyi): Reconcile with blueprint registry in compute runtime.
19
20
  export const useBlueprintRegistry = () => {
20
- const blueprints = useCapabilities(Common.Capability.BlueprintDefinition);
21
- return useMemo(() => new Blueprint.Registry(blueprints), [blueprints]);
21
+ const blueprintDefinitions = useCapabilities(AppCapabilities.BlueprintDefinition);
22
+ return useMemo(
23
+ () => new Blueprint.Registry(blueprintDefinitions.map((blueprint) => blueprint.make())),
24
+ [blueprintDefinitions],
25
+ );
22
26
  };
23
27
 
24
28
  export const useBlueprints = ({
@@ -7,6 +7,7 @@ import type * as Runtime from 'effect/Runtime';
7
7
  import { useContext, useMemo, useState } from 'react';
8
8
 
9
9
  import { AiConversation } from '@dxos/assistant';
10
+ import { type Chat } from '@dxos/assistant-toolkit';
10
11
  import { type Blueprint } from '@dxos/blueprints';
11
12
  import { log } from '@dxos/log';
12
13
  import { type Queue, type Space } from '@dxos/react-client/echo';
@@ -17,7 +18,7 @@ import { type Assistant } from '../types';
17
18
 
18
19
  export type UseChatProcessorProps = {
19
20
  space?: Space;
20
- chat?: Assistant.Chat;
21
+ chat?: Chat.Chat;
21
22
  preset?: AiServicePreset;
22
23
  services?: () => Promise<Runtime.Runtime<AiChatServices>>;
23
24
  blueprintRegistry?: Blueprint.Registry;
@@ -6,7 +6,8 @@ import * as Effect from 'effect/Effect';
6
6
  import type * as Runtime from 'effect/Runtime';
7
7
  import { useMemo } from 'react';
8
8
 
9
- import { useCapability } from '@dxos/app-framework/react';
9
+ import { useCapability } from '@dxos/app-framework/ui';
10
+ import { type Chat } from '@dxos/assistant-toolkit';
10
11
  import { type Key } from '@dxos/echo';
11
12
  import { TracingService } from '@dxos/functions';
12
13
  import { TracingServiceExt } from '@dxos/functions-runtime';
@@ -14,11 +15,10 @@ import { AutomationCapabilities } from '@dxos/plugin-automation';
14
15
  import { useClient } from '@dxos/react-client';
15
16
 
16
17
  import { type AiChatServices } from '../processor';
17
- import { type Assistant } from '../types';
18
18
 
19
19
  export type UseChatServicesProps = {
20
20
  id?: Key.SpaceId;
21
- chat?: Assistant.Chat;
21
+ chat?: Chat.Chat;
22
22
  };
23
23
 
24
24
  /**