@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
@@ -4,39 +4,33 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { Capability, Common } from '@dxos/app-framework';
7
+ import { Capabilities, Capability } from '@dxos/app-framework';
8
+ import { getObjectPathFromObject, LayoutOperation } from '@dxos/app-toolkit';
8
9
  import { AiContextBinder, AiConversation } from '@dxos/assistant';
9
- import { Agent } from '@dxos/assistant-toolkit';
10
+ import { AgentFunctions, Chat, ProjectWizardBlueprint } from '@dxos/assistant-toolkit';
11
+ import { DatabaseBlueprint } from '@dxos/assistant-toolkit';
10
12
  import { Blueprint, Prompt } from '@dxos/blueprints';
11
13
  import { type Queue } from '@dxos/client/echo';
12
- import { Filter, Obj, Ref, Type } from '@dxos/echo';
14
+ import { Filter, Obj, Ref } from '@dxos/echo';
13
15
  import { TracingService, serializeFunction } from '@dxos/functions';
14
16
  import { invariant } from '@dxos/invariant';
15
17
  import { Operation, OperationResolver } from '@dxos/operation';
16
18
  import { AutomationCapabilities } from '@dxos/plugin-automation';
17
19
  import { ClientCapabilities } from '@dxos/plugin-client';
18
- import { Collection } from '@dxos/schema';
19
20
  import { type Message } from '@dxos/types';
20
21
 
22
+ import { AssistantBlueprint } from '../../blueprints';
21
23
  import { type AiChatServices, updateName } from '../../processor';
22
- import { Assistant, AssistantCapabilities, AssistantOperation } from '../../types';
23
- import { AssistantBlueprint, createBlueprint } from '../blueprint-definition/blueprint-definition';
24
+ import { AssistantCapabilities, AssistantOperation } from '../../types';
24
25
 
25
26
  export default Capability.makeModule(
26
27
  Effect.fnUntraced(function* () {
27
- return Capability.contributes(Common.Capability.OperationResolver, [
28
+ return Capability.contributes(Capabilities.OperationResolver, [
28
29
  OperationResolver.make({
29
30
  operation: AssistantOperation.OnCreateSpace,
30
- handler: Effect.fnUntraced(function* ({ space, rootCollection }) {
31
- const chatCollection = Collection.makeManaged({ key: Assistant.Chat.typename });
32
- const blueprintCollection = Collection.makeManaged({ key: Blueprint.Blueprint.typename });
33
- const promptCollection = Collection.makeManaged({ key: Type.getTypename(Prompt.Prompt) });
34
- Obj.change(rootCollection, (c) => {
35
- c.objects.push(Ref.make(chatCollection), Ref.make(blueprintCollection), Ref.make(promptCollection));
36
- });
37
-
31
+ handler: Effect.fnUntraced(function* ({ space }) {
38
32
  // TODO(wittjosiah): Remove once function registry is avaiable.
39
- space.db.add(serializeFunction(Agent.prompt));
33
+ space.db.add(serializeFunction(AgentFunctions.Prompt));
40
34
 
41
35
  // Create default chat.
42
36
  const { object: chat } = yield* Operation.invoke(AssistantOperation.CreateChat, { db: space.db });
@@ -45,26 +39,46 @@ export default Capability.makeModule(
45
39
  }),
46
40
  OperationResolver.make({
47
41
  operation: AssistantOperation.CreateChat,
48
- handler: Effect.fnUntraced(function* ({ db, name }) {
49
- const registry = yield* Capability.get(Common.Capability.AtomRegistry);
42
+ handler: Effect.fnUntraced(function* ({ db, name, addToSpace = true }) {
43
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
50
44
  const client = yield* Capability.get(ClientCapabilities.Client);
51
45
  const space = client.spaces.get(db.spaceId);
52
46
  invariant(space, 'Space not found');
53
47
  const queue = space.queues.create();
54
- const chat = Assistant.make({ name, queue: Ref.fromDXN(queue.dxn) });
55
- space.db.add(chat);
48
+ const chat = Chat.make({ name, queue: db.makeRef<any>(queue.dxn) });
49
+ if (addToSpace) {
50
+ space.db.add(chat);
51
+ }
56
52
 
57
53
  // TODO(wittjosiah): This should be a space-level setting.
58
54
  // TODO(burdon): Clone when activated. Copy-on-write for template.
59
55
  const blueprints = yield* Effect.promise(() => db.query(Filter.type(Blueprint.Blueprint)).run());
60
- let defaultBlueprint = blueprints.find((blueprint) => blueprint.key === AssistantBlueprint.Key);
61
- if (!defaultBlueprint) {
62
- defaultBlueprint = db.add(createBlueprint());
56
+ let defaultAssistantBlueprint = blueprints.find((blueprint) => blueprint.key === AssistantBlueprint.key);
57
+ if (!defaultAssistantBlueprint) {
58
+ defaultAssistantBlueprint = db.add(AssistantBlueprint.make());
59
+ }
60
+ let defaultDatabaseBlueprint = blueprints.find((blueprint) => blueprint.key === DatabaseBlueprint.key);
61
+ if (!defaultDatabaseBlueprint) {
62
+ defaultDatabaseBlueprint = db.add(DatabaseBlueprint.make());
63
+ }
64
+ let defaultProjectWizardBlueprint = blueprints.find(
65
+ (blueprint) => blueprint.key === ProjectWizardBlueprint.key,
66
+ );
67
+ if (!defaultProjectWizardBlueprint) {
68
+ defaultProjectWizardBlueprint = db.add(ProjectWizardBlueprint.make());
63
69
  }
64
70
 
65
71
  const binder = new AiContextBinder({ queue, registry });
66
72
  yield* Effect.promise(() =>
67
- binder.use((b: AiContextBinder) => b.bind({ blueprints: [Ref.make(defaultBlueprint!)] })),
73
+ binder.use((b: AiContextBinder) =>
74
+ b.bind({
75
+ blueprints: [
76
+ Ref.make(defaultAssistantBlueprint!),
77
+ Ref.make(defaultDatabaseBlueprint!),
78
+ Ref.make(defaultProjectWizardBlueprint!),
79
+ ],
80
+ }),
81
+ ),
68
82
  );
69
83
 
70
84
  return { object: chat };
@@ -73,7 +87,7 @@ export default Capability.makeModule(
73
87
  OperationResolver.make({
74
88
  operation: AssistantOperation.UpdateChatName,
75
89
  handler: Effect.fnUntraced(function* ({ chat }) {
76
- const registry = yield* Capability.get(Common.Capability.AtomRegistry);
90
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
77
91
  const db = Obj.getDatabase(chat);
78
92
  const queue = chat.queue.target as Queue<Message.Message>;
79
93
  if (!db || !queue) {
@@ -99,12 +113,25 @@ export default Capability.makeModule(
99
113
  handler: Effect.fnUntraced(function* ({ companionTo, chat }) {
100
114
  const companionToId = Obj.getDXN(companionTo).toString();
101
115
  const chatId = chat && Obj.getDXN(chat).toString();
102
- yield* Common.Capability.updateAtomValue(AssistantCapabilities.State, (current) => ({
116
+ yield* Capabilities.updateAtomValue(AssistantCapabilities.State, (current) => ({
103
117
  ...current,
104
118
  currentChat: { ...current.currentChat, [companionToId]: chatId },
105
119
  }));
106
120
  }),
107
121
  }),
122
+ OperationResolver.make({
123
+ operation: AssistantOperation.RunPromptInNewChat,
124
+ handler: Effect.fnUntraced(function* ({ db, prompt }) {
125
+ const { object: chat } = yield* Operation.invoke(AssistantOperation.CreateChat, { db });
126
+ const chatPath = getObjectPathFromObject(chat);
127
+ yield* Capabilities.updateAtomValue(AssistantCapabilities.State, (current) => ({
128
+ ...current,
129
+ pendingPrompts: { ...current.pendingPrompts, [chatPath]: prompt },
130
+ }));
131
+ yield* Operation.invoke(LayoutOperation.Open, { subject: [chatPath] });
132
+ return { object: chat };
133
+ }),
134
+ }),
108
135
  ]);
109
136
  }),
110
137
  );
@@ -5,14 +5,16 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
  import React from 'react';
7
7
 
8
- import { Capability, Common } from '@dxos/app-framework';
9
- import { useSettingsState } from '@dxos/app-framework/react';
8
+ import { Capabilities, Capability } from '@dxos/app-framework';
9
+ import { Surface, useSettingsState } from '@dxos/app-framework/ui';
10
+ import { AppCapabilities } from '@dxos/app-toolkit';
11
+ import { Chat, Project } from '@dxos/assistant-toolkit';
10
12
  import { Blueprint, Prompt } from '@dxos/blueprints';
11
13
  import { getSpace } from '@dxos/client/echo';
12
14
  import { Sequence } from '@dxos/conductor';
13
15
  import { InvocationTraceContainer } from '@dxos/devtools';
14
16
  import { Obj } from '@dxos/echo';
15
- import { Layout } from '@dxos/react-ui-mosaic';
17
+ import { Panel } from '@dxos/react-ui';
16
18
 
17
19
  import {
18
20
  AssistantSettings,
@@ -20,42 +22,65 @@ import {
20
22
  ChatCompanion,
21
23
  ChatContainer,
22
24
  ChatDialog,
25
+ ProjectArticle,
26
+ ProjectSettings,
23
27
  PromptArticle,
24
- } from '../../components';
28
+ TracePanel,
29
+ TriggerStatus,
30
+ } from '../../containers';
25
31
  import { ASSISTANT_DIALOG, meta } from '../../meta';
26
- import { Assistant } from '../../types';
32
+ import { type Assistant } from '../../types';
27
33
 
28
34
  export default Capability.makeModule(() =>
29
35
  Effect.succeed(
30
- Capability.contributes(Common.Capability.ReactSurface, [
31
- Common.createSurface({
32
- id: `${meta.id}/plugin-settings`,
36
+ Capability.contributes(Capabilities.ReactSurface, [
37
+ Surface.create({
38
+ id: `${meta.id}.plugin-settings`,
33
39
  role: 'article',
34
- filter: (data): data is { subject: Common.Capability.Settings } =>
35
- Common.Capability.isSettings(data.subject) && data.subject.prefix === meta.id,
40
+ filter: (data): data is { subject: AppCapabilities.Settings } =>
41
+ AppCapabilities.isSettings(data.subject) && data.subject.prefix === meta.id,
36
42
  component: ({ data: { subject } }) => {
37
43
  const { settings, updateSettings } = useSettingsState<Assistant.Settings>(subject.atom);
38
44
  return <AssistantSettings settings={settings} onSettingsChange={updateSettings} />;
39
45
  },
40
46
  }),
41
- Common.createSurface({
42
- id: `${meta.id}/chat`,
47
+ Surface.create({
48
+ id: `${meta.id}.chat`,
43
49
  role: 'article',
44
- filter: (data): data is { subject: Assistant.Chat; variant: undefined } =>
45
- Obj.instanceOf(Assistant.Chat, data.subject) && data.variant !== 'assistant-chat',
46
- component: ({ data, role, ref }) => <ChatContainer role={role} subject={data.subject} ref={ref} />,
50
+ filter: (data): data is { attendableId: string; subject: Chat.Chat; variant: undefined } =>
51
+ typeof data.attendableId === 'string' &&
52
+ Obj.instanceOf(Chat.Chat, data.subject) &&
53
+ data.variant !== 'assistant-chat',
54
+ component: ({ data, role, ref }) => (
55
+ <ChatContainer role={role} subject={data.subject} attendableId={data.attendableId} ref={ref} />
56
+ ),
57
+ }),
58
+ Surface.create({
59
+ id: `${meta.id}.project`,
60
+ role: 'article',
61
+ filter: (data): data is { subject: Project.Project } => Obj.instanceOf(Project.Project, data.subject),
62
+ component: ({ data, role }) => <ProjectArticle role={role} subject={data.subject} />,
63
+ }),
64
+ Surface.create({
65
+ id: `${meta.id}.project.companion.settings`,
66
+ role: 'object-settings',
67
+ filter: (data): data is { subject: Project.Project } => Obj.instanceOf(Project.Project, data.subject),
68
+ component: ({ data }) => <ProjectSettings subject={data.subject} />,
47
69
  }),
48
70
  // TODO(wittjosiah): This is flashing when chat changes.
49
- Common.createSurface({
50
- id: `${meta.id}/companion-chat`,
71
+ Surface.create({
72
+ id: `${meta.id}.companion-chat`,
51
73
  role: 'article',
52
- filter: (data): data is { companionTo: Obj.Unknown; subject: Assistant.Chat | 'assistant-chat' } =>
74
+ filter: (
75
+ data,
76
+ ): data is { attendableId: string; companionTo: Obj.Unknown; subject: Chat.Chat | 'assistant-chat' } =>
77
+ typeof data.attendableId === 'string' &&
53
78
  Obj.isObject(data.companionTo) &&
54
- (Obj.instanceOf(Assistant.Chat, data.subject) || data.subject === 'assistant-chat'),
79
+ (Obj.instanceOf(Chat.Chat, data.subject) || data.subject === 'assistant-chat'),
55
80
  component: ({ data, role, ref }) => <ChatCompanion role={role} data={data} ref={ref} />,
56
81
  }),
57
- Common.createSurface({
58
- id: `${meta.id}/companion-invocations`,
82
+ Surface.create({
83
+ id: `${meta.id}.companion-invocations`,
59
84
  role: 'article',
60
85
  filter: (data): data is { companionTo: Sequence } =>
61
86
  (Obj.instanceOf(Sequence, data.companionTo) || Obj.instanceOf(Prompt.Prompt, data.companionTo)) &&
@@ -66,30 +91,43 @@ export default Capability.makeModule(() =>
66
91
  // TODO(wittjosiah): Support invocation filtering for prompts.
67
92
  const target = Obj.instanceOf(Prompt.Prompt, data.companionTo) ? undefined : data.companionTo;
68
93
  return (
69
- <Layout.Main role={role}>
70
- <InvocationTraceContainer db={space?.db} queueDxn={queueDxn} target={target} detailAxis='block' />
71
- </Layout.Main>
94
+ <Panel.Root role={role} className='dx-document'>
95
+ <Panel.Content asChild>
96
+ <InvocationTraceContainer db={space?.db} queueDxn={queueDxn} target={target} detailAxis='block' />
97
+ </Panel.Content>
98
+ </Panel.Root>
72
99
  );
73
100
  },
74
101
  }),
75
- Common.createSurface({
76
- id: `${meta.id}/blueprint`,
102
+ Surface.create({
103
+ id: `${meta.id}.blueprint`,
77
104
  role: 'article',
78
105
  filter: (data): data is { subject: Blueprint.Blueprint } => Obj.instanceOf(Blueprint.Blueprint, data.subject),
79
106
  component: ({ data }) => <BlueprintArticle subject={data.subject} />,
80
107
  }),
81
- Common.createSurface({
82
- id: `${meta.id}/prompt`,
108
+ Surface.create({
109
+ id: `${meta.id}.prompt`,
83
110
  role: 'article',
84
111
  filter: (data): data is { subject: Prompt.Prompt } => Obj.instanceOf(Prompt.Prompt, data.subject),
85
112
  component: ({ data }) => <PromptArticle subject={data.subject} />,
86
113
  }),
87
- Common.createSurface({
114
+ Surface.create({
88
115
  id: ASSISTANT_DIALOG,
89
116
  role: 'dialog',
90
- filter: (data): data is { props: { chat: Assistant.Chat } } => data.component === ASSISTANT_DIALOG,
117
+ filter: (data): data is { props: { chat: Chat.Chat } } => data.component === ASSISTANT_DIALOG,
91
118
  component: ({ data }) => <ChatDialog {...data.props} />,
92
119
  }),
120
+ Surface.create({
121
+ id: `${meta.id}.trace`,
122
+ role: 'deck-companion--trace',
123
+ filter: (data): data is { subject: 'trace' } => data.subject === 'trace',
124
+ component: () => <TracePanel />,
125
+ }),
126
+ Surface.create({
127
+ id: `${meta.id}.status`,
128
+ role: 'status',
129
+ component: () => <TriggerStatus />,
130
+ }),
93
131
  ]),
94
132
  ),
95
133
  );
@@ -4,7 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { Capability, Common } from '@dxos/app-framework';
7
+ import { Capability } from '@dxos/app-framework';
8
+ import { AppCapabilities } from '@dxos/app-toolkit';
8
9
  import { createKvsStore } from '@dxos/effect';
9
10
 
10
11
  import { meta } from '../../meta';
@@ -20,7 +21,7 @@ export default Capability.makeModule(() =>
20
21
 
21
22
  return [
22
23
  Capability.contributes(AssistantCapabilities.Settings, settingsAtom),
23
- Capability.contributes(Common.Capability.Settings, {
24
+ Capability.contributes(AppCapabilities.Settings, {
24
25
  prefix: meta.id,
25
26
  schema: Assistant.Settings,
26
27
  atom: settingsAtom,
@@ -19,6 +19,7 @@ export default Capability.makeModule(() =>
19
19
  schema: AssistantCapabilities.StateSchema,
20
20
  defaultValue: () => ({
21
21
  currentChat: {},
22
+ pendingPrompts: {},
22
23
  }),
23
24
  });
24
25
 
@@ -5,22 +5,11 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
  import * as Layer from 'effect/Layer';
7
7
 
8
- import { Capability, Common } from '@dxos/app-framework';
9
- import { GenericToolkit } from '@dxos/assistant';
10
- import { AssistantToolkit, SystemToolkit, WebSearchToolkit } from '@dxos/assistant-toolkit';
8
+ import { GenericToolkit } from '@dxos/ai';
9
+ import { Capability } from '@dxos/app-framework';
10
+ import { AppCapabilities } from '@dxos/app-toolkit';
11
+ import { WebSearchToolkit } from '@dxos/assistant-toolkit';
11
12
 
12
13
  export default Capability.makeModule(() =>
13
- Effect.succeed([
14
- Capability.contributes(
15
- Common.Capability.Toolkit,
16
- GenericToolkit.make(AssistantToolkit.AssistantToolkit, AssistantToolkit.layer()),
17
- ),
18
-
19
- // TODO(burdon): How to manage dependencies across blueprints.
20
- Capability.contributes(
21
- Common.Capability.Toolkit,
22
- GenericToolkit.make(SystemToolkit.SystemToolkit, SystemToolkit.layer()),
23
- ),
24
- Capability.contributes(Common.Capability.Toolkit, GenericToolkit.make(WebSearchToolkit, Layer.empty)),
25
- ]),
14
+ Effect.succeed([Capability.contributes(AppCapabilities.Toolkit, GenericToolkit.make(WebSearchToolkit, Layer.empty))]),
26
15
  );
@@ -8,17 +8,26 @@ import { useAtomValue } from '@effect-atom/atom-react';
8
8
  import { createContext } from '@radix-ui/react-context';
9
9
  import * as Array from 'effect/Array';
10
10
  import * as Option from 'effect/Option';
11
- import React, { type PropsWithChildren, useCallback, useEffect, useMemo, useRef, useState } from 'react';
12
-
11
+ import React, {
12
+ type ComponentPropsWithoutRef,
13
+ type PropsWithChildren,
14
+ useCallback,
15
+ useEffect,
16
+ useMemo,
17
+ useRef,
18
+ useState,
19
+ } from 'react';
20
+
21
+ import { type Chat as ChatModule } from '@dxos/assistant-toolkit';
13
22
  import { Event } from '@dxos/async';
14
- import { type Database, Obj } from '@dxos/echo';
23
+ import { type Database, Filter, Obj } from '@dxos/echo';
15
24
  import { useVoiceInput } from '@dxos/plugin-transcription';
16
- import { useQueue } from '@dxos/react-client/echo';
25
+ import { useQuery } from '@dxos/react-client/echo';
17
26
  import { useIdentity } from '@dxos/react-client/halo';
18
27
  import { Input, type ThemedClassName, useDynamicRef, useTranslation } from '@dxos/react-ui';
19
28
  import { ChatEditor, type ChatEditorController, type ChatEditorProps } from '@dxos/react-ui-chat';
20
29
  import { type MarkdownStreamController } from '@dxos/react-ui-components';
21
- import { MenuProvider, ToolbarMenu } from '@dxos/react-ui-menu';
30
+ import { Menu } from '@dxos/react-ui-menu';
22
31
  import { Message } from '@dxos/types';
23
32
  import { mx } from '@dxos/ui-theme';
24
33
  import { isTruthy } from '@dxos/util';
@@ -26,7 +35,6 @@ import { isTruthy } from '@dxos/util';
26
35
  import { useChatToolbarActions } from '../../hooks';
27
36
  import { meta } from '../../meta';
28
37
  import { type AiChatProcessor } from '../../processor';
29
- import { type Assistant } from '../../types';
30
38
  import {
31
39
  ChatActions,
32
40
  type ChatActionsProps,
@@ -49,7 +57,7 @@ type ChatContextValue = {
49
57
  debug?: boolean;
50
58
  event: Event<ChatEvent>;
51
59
  db?: Database.Database;
52
- chat?: Assistant.Chat;
60
+ chat?: ChatModule.Chat;
53
61
  messages: Message.Message[];
54
62
  processor: AiChatProcessor;
55
63
  };
@@ -73,11 +81,10 @@ const ChatRoot = ({ children, chat, processor, onEvent, ...props }: ChatRootProp
73
81
  const lastPrompt = useRef<string | undefined>(undefined);
74
82
 
75
83
  // Messages.
76
- const queue = useQueue<Message.Message>(chat?.queue.dxn);
84
+ const storedMessages = useQuery(chat?.queue?.target, Filter.type(Message.Message));
77
85
  const messages = useMemo(() => {
78
- const queueMessages = queue?.objects?.filter(Obj.instanceOf(Message.Message)) ?? [];
79
- return Array.dedupeWith([...queueMessages, ...pending], ({ id: a }, { id: b }) => a === b);
80
- }, [queue?.objects, pending]);
86
+ return Array.dedupeWith([...storedMessages, ...pending], ({ id: a }, { id: b }) => a === b);
87
+ }, [storedMessages, pending]);
81
88
 
82
89
  // Events.
83
90
  const event = useMemo(() => new Event<ChatEvent>(), []);
@@ -85,7 +92,26 @@ const ChatRoot = ({ children, chat, processor, onEvent, ...props }: ChatRootProp
85
92
  return event.on((ev) => {
86
93
  switch (ev.type) {
87
94
  case 'toggle-debug': {
88
- setDebug((current) => !current);
95
+ setDebug((debug) => !debug);
96
+
97
+ // Dump state to console.
98
+ queueMicrotask(async () => {
99
+ const objects = processor.context.getObjects();
100
+ const blueprints = processor.context.getBlueprints();
101
+ const tools = await processor.getTools();
102
+ const system = await processor.getSystemPrompt();
103
+ // eslint-disable-next-line no-console
104
+ console.log('Chat processor state:', { objects, blueprints });
105
+ // eslint-disable-next-line no-console
106
+ console.log(`
107
+ ==== System Prompt ====
108
+ ${system}
109
+ ==== Tools ====
110
+ ${Object.values(tools)
111
+ .map((tool) => JSON.stringify(tool, null, 2))
112
+ .join('\n')}
113
+ `);
114
+ });
89
115
  break;
90
116
  }
91
117
 
@@ -143,24 +169,30 @@ ChatRoot.displayName = 'Chat.Root';
143
169
  // Viewport
144
170
  //
145
171
 
146
- type ChatViewportProps = ThemedClassName<PropsWithChildren>;
172
+ const CHAT_VIEWPORT_NAME = 'Chat.Viewport';
173
+
174
+ type ChatViewportProps = ThemedClassName<PropsWithChildren<ComponentPropsWithoutRef<'div'>>>;
147
175
 
148
- const ChatViewport = ({ classNames, children }: ChatViewportProps) => {
176
+ const ChatViewport = ({ classNames, children, ...props }: ChatViewportProps) => {
149
177
  return (
150
- <div role='none' className={mx('flex flex-col bs-full is-full', classNames)}>
178
+ <div role='none' {...props} className={mx('flex flex-col h-full w-full', classNames)}>
151
179
  {children}
152
180
  </div>
153
181
  );
154
182
  };
155
183
 
184
+ ChatViewport.displayName = CHAT_VIEWPORT_NAME;
185
+
156
186
  //
157
187
  // Thread
158
188
  //
159
189
 
190
+ const CHAT_THREAD_NAME = 'Chat.Thread';
191
+
160
192
  type ChatThreadProps = Omit<NaturalChatThreadProps, 'identity' | 'messages' | 'tools'>;
161
193
 
162
194
  const ChatThread = (props: ChatThreadProps) => {
163
- const { debug, event, messages, processor } = useChatContext(ChatThread.displayName);
195
+ const { debug, event, messages, processor } = useChatContext(CHAT_THREAD_NAME);
164
196
  const identity = useIdentity();
165
197
  const error = useAtomValue(processor.error).pipe(Option.getOrUndefined);
166
198
 
@@ -206,12 +238,14 @@ const ChatThread = (props: ChatThreadProps) => {
206
238
  );
207
239
  };
208
240
 
209
- ChatThread.displayName = 'Chat.Thread';
241
+ ChatThread.displayName = CHAT_THREAD_NAME;
210
242
 
211
243
  //
212
244
  // Prompt
213
245
  //
214
246
 
247
+ const CHAT_PROMPT_NAME = 'Chat.Prompt';
248
+
215
249
  type ChatPromptProps = ThemedClassName<
216
250
  {
217
251
  outline?: boolean;
@@ -238,7 +272,7 @@ const ChatPrompt = ({
238
272
  onOnlineChange,
239
273
  }: ChatPromptProps) => {
240
274
  const { t } = useTranslation(meta.id);
241
- const { db, processor, event } = useChatContext(ChatPrompt.displayName);
275
+ const { db, processor, event } = useChatContext(CHAT_PROMPT_NAME);
242
276
 
243
277
  const error = useAtomValue(processor.error).pipe(Option.getOrUndefined);
244
278
  const streaming = useAtomValue(processor.streaming);
@@ -337,9 +371,9 @@ const ChatPrompt = ({
337
371
  <div
338
372
  role='group'
339
373
  className={mx(
340
- 'flex flex-col is-full density-fine',
374
+ 'flex flex-col w-full dx-density-fine',
341
375
  outline &&
342
- 'bg-groupSurface border border-subduedSeparator transition transition-border [&:has(.cm-content:focus)]:border-separator rounded',
376
+ 'bg-group-surface border border-subdued-separator transition transition-border [&:has(.cm-content:focus)]:border-separator rounded-sm',
343
377
  classNames,
344
378
  )}
345
379
  >
@@ -349,7 +383,7 @@ const ChatPrompt = ({
349
383
  ref={editorRef}
350
384
  autoFocus
351
385
  lineWrapping
352
- classNames='col-span-2 pbs-0.5'
386
+ classNames='col-span-2 pt-0.5'
353
387
  placeholder={placeholder ?? t('prompt placeholder')}
354
388
  extensions={extensions}
355
389
  onSubmit={handleSubmit}
@@ -382,7 +416,7 @@ const ChatPrompt = ({
382
416
  {online !== undefined && (
383
417
  <Input.Root>
384
418
  <Input.Label srOnly>{t('online switch label')}</Input.Label>
385
- <Input.Switch classNames='mli-2' checked={online} onCheckedChange={onOnlineChange} />
419
+ <Input.Switch classNames='mx-2' checked={online} onCheckedChange={onOnlineChange} />
386
420
  </Input.Root>
387
421
  )}
388
422
  </ChatActions>
@@ -392,29 +426,28 @@ const ChatPrompt = ({
392
426
  );
393
427
  };
394
428
 
395
- ChatPrompt.displayName = 'Chat.Prompt';
429
+ ChatPrompt.displayName = CHAT_PROMPT_NAME;
396
430
 
397
431
  //
398
432
  // Toolbar
399
433
  //
400
434
 
401
- type ChatToolbarProps = ThemedClassName<{ companionTo?: Obj.Unknown }>;
435
+ const CHAT_TOOLBAR_NAME = 'Chat.Toolbar';
436
+
437
+ type ChatToolbarProps = { companionTo?: Obj.Unknown } & ComponentPropsWithoutRef<typeof Menu.Root>;
402
438
 
403
- const ChatToolbar = ({ classNames, companionTo }: ChatToolbarProps) => {
404
- const { chat } = useChatContext(ChatToolbar.displayName);
439
+ const ChatToolbar = ({ companionTo, ...props }: ChatToolbarProps) => {
440
+ const { chat } = useChatContext(CHAT_TOOLBAR_NAME);
405
441
  const menu = useChatToolbarActions({ chat, companionTo });
406
442
 
407
443
  return (
408
- <MenuProvider
409
- {...menu}
410
- attendableId={companionTo ? Obj.getDXN(companionTo).toString() : chat ? Obj.getDXN(chat).toString() : ''}
411
- >
412
- <ToolbarMenu classNames={classNames} textBlockWidth />
413
- </MenuProvider>
444
+ <Menu.Root {...props} {...menu}>
445
+ <Menu.Toolbar />
446
+ </Menu.Root>
414
447
  );
415
448
  };
416
449
 
417
- ChatToolbar.displayName = 'Chat.Toolbar';
450
+ ChatToolbar.displayName = CHAT_TOOLBAR_NAME;
418
451
 
419
452
  //
420
453
  // Chat
@@ -4,13 +4,12 @@
4
4
 
5
5
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
6
6
 
7
+ import { type Chat } from '@dxos/assistant-toolkit';
7
8
  import { addEventListener } from '@dxos/async';
8
9
  import { ProgressBar, type ProgressBarProps, TextCrawl, useExecutionGraph } from '@dxos/react-ui-components';
9
10
 
10
- import { type Assistant } from '../../types';
11
-
12
11
  export type ChatProgressProps = {
13
- chat: Assistant.Chat;
12
+ chat: Chat.Chat;
14
13
  };
15
14
 
16
15
  export const ChatProgress = ({ chat }: ChatProgressProps) => {
@@ -46,9 +45,9 @@ export const ChatProgress = ({ chat }: ChatProgressProps) => {
46
45
  }, [nodes.length]);
47
46
 
48
47
  return (
49
- <div role='none' tabIndex={0} ref={ref} className='flex flex-col outline-none'>
48
+ <div role='none' tabIndex={0} ref={ref} className='flex flex-col outline-hidden'>
50
49
  <ProgressBar nodes={nodes} index={index} onSelect={handleSelect} />
51
- <TextCrawl classNames='pis-4 text-sm text-description' lines={lines} autoAdvance />
50
+ <TextCrawl classNames='ps-4 text-sm text-description' lines={lines} autoAdvance />
52
51
  </div>
53
52
  );
54
53
  };
@@ -23,7 +23,7 @@ export const ChatActions = ({ classNames, children, microphone, recording, proce
23
23
  const { t } = useTranslation(meta.id);
24
24
 
25
25
  return (
26
- <div className={mx('flex items-center mie-1', classNames)}>
26
+ <div className={mx('flex items-center me-1', classNames)}>
27
27
  {children}
28
28
 
29
29
  <IconButton
@@ -50,6 +50,14 @@ export const ChatActions = ({ classNames, children, microphone, recording, proce
50
50
  onTouchEnd={() => onEvent?.({ type: 'record-stop' })}
51
51
  />
52
52
  )}
53
+
54
+ <IconButton
55
+ variant='ghost'
56
+ icon='ph--wrench--regular'
57
+ iconOnly
58
+ label={t('debug button')}
59
+ onClick={() => onEvent?.({ type: 'toggle-debug' })}
60
+ />
53
61
  </div>
54
62
  );
55
63
  };