@dxos/plugin-assistant 0.8.4-main.3eb6e50203 → 0.8.4-main.4a85c3132b

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 (344) hide show
  1. package/dist/lib/browser/AssistantSettings-2LFAG5OQ.mjs +93 -0
  2. package/dist/lib/browser/AssistantSettings-2LFAG5OQ.mjs.map +7 -0
  3. package/dist/lib/browser/BlueprintArticle-CCS25MNW.mjs +36 -0
  4. package/dist/lib/browser/BlueprintArticle-CCS25MNW.mjs.map +7 -0
  5. package/dist/lib/browser/{ChatCompanion-CAKFZAWN.mjs → ChatCompanion-UGD4V34A.mjs} +11 -9
  6. package/dist/lib/browser/ChatCompanion-UGD4V34A.mjs.map +7 -0
  7. package/dist/lib/browser/ChatContainer-ZGRSZ5EU.mjs +12 -0
  8. package/dist/lib/browser/{ChatDialog-ASVBLOOS.mjs → ChatDialog-AET7GVIB.mjs} +7 -7
  9. package/dist/lib/browser/ChatDialog-AET7GVIB.mjs.map +7 -0
  10. package/dist/lib/browser/ProjectArticle-QDBTIFNE.mjs +91 -0
  11. package/dist/lib/browser/ProjectArticle-QDBTIFNE.mjs.map +7 -0
  12. package/dist/lib/browser/ProjectSettings-R6RRARLO.mjs +194 -0
  13. package/dist/lib/browser/ProjectSettings-R6RRARLO.mjs.map +7 -0
  14. package/dist/lib/browser/PromptArticle-USQO4WX6.mjs +71 -0
  15. package/dist/lib/browser/PromptArticle-USQO4WX6.mjs.map +7 -0
  16. package/dist/lib/browser/TriggerStatus-65X3EUSN.mjs +122 -0
  17. package/dist/lib/browser/TriggerStatus-65X3EUSN.mjs.map +7 -0
  18. package/dist/lib/browser/{app-graph-builder-MUZGUQSC.mjs → app-graph-builder-SFYYUKTT.mjs} +3 -3
  19. package/dist/lib/{node-esm/app-graph-builder-4QN5M6PD.mjs.map → browser/app-graph-builder-SFYYUKTT.mjs.map} +2 -2
  20. package/dist/lib/browser/blueprint-definition-5LQNBZON.mjs +35 -0
  21. package/dist/lib/browser/blueprint-definition-5LQNBZON.mjs.map +7 -0
  22. package/dist/lib/browser/blueprints/index.mjs +3 -7
  23. package/dist/lib/browser/{chunk-6BVCG5SJ.mjs → chunk-7DXYAXLZ.mjs} +8 -8
  24. package/dist/lib/browser/chunk-7DXYAXLZ.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-IJYAKPEU.mjs → chunk-JYY5AD65.mjs} +27 -27
  26. package/dist/lib/browser/chunk-JYY5AD65.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-LEXIQDXZ.mjs +26 -0
  28. package/dist/lib/browser/chunk-LEXIQDXZ.mjs.map +7 -0
  29. package/dist/lib/browser/{ChatContainer-QB37VONJ.mjs → chunk-RU4G5NY4.mjs} +17 -21
  30. package/dist/lib/browser/chunk-RU4G5NY4.mjs.map +7 -0
  31. package/dist/lib/browser/{chunk-JA7PUZC7.mjs → chunk-UUA6GNGG.mjs} +544 -393
  32. package/dist/lib/browser/chunk-UUA6GNGG.mjs.map +7 -0
  33. package/dist/lib/browser/index.mjs +38 -54
  34. package/dist/lib/browser/index.mjs.map +3 -3
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/{operation-resolver-2673CFJS.mjs → operation-resolver-ELXDQZEG.mjs} +23 -20
  37. package/dist/lib/browser/operation-resolver-ELXDQZEG.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-T3FN4GVP.mjs → react-surface-KYQSZO2I.mjs} +42 -23
  39. package/dist/lib/browser/react-surface-KYQSZO2I.mjs.map +7 -0
  40. package/dist/lib/browser/{repair-IRXDYF4R.mjs → repair-ZFZWZALX.mjs} +9 -8
  41. package/dist/lib/browser/repair-ZFZWZALX.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-XF6GKHCG.mjs → settings-YREVQAZ5.mjs} +2 -2
  43. package/dist/lib/browser/{state-OYDPWLKA.mjs → state-MPG42ZO4.mjs} +2 -2
  44. package/dist/lib/browser/toolkit-XRSBBB3L.mjs +16 -0
  45. package/dist/lib/browser/toolkit-XRSBBB3L.mjs.map +7 -0
  46. package/dist/lib/browser/types/index.mjs +1 -1
  47. package/dist/lib/node-esm/AssistantSettings-QWFEMJG7.mjs +94 -0
  48. package/dist/lib/node-esm/AssistantSettings-QWFEMJG7.mjs.map +7 -0
  49. package/dist/lib/node-esm/BlueprintArticle-SNEN6LOY.mjs +37 -0
  50. package/dist/lib/node-esm/BlueprintArticle-SNEN6LOY.mjs.map +7 -0
  51. package/dist/lib/node-esm/{ChatCompanion-W4PGOCGR.mjs → ChatCompanion-NP4R5BFE.mjs} +11 -9
  52. package/dist/lib/node-esm/ChatCompanion-NP4R5BFE.mjs.map +7 -0
  53. package/dist/lib/node-esm/ChatContainer-IFHDIFJH.mjs +13 -0
  54. package/dist/lib/node-esm/{ChatDialog-AFLPYSIU.mjs → ChatDialog-UZNQBTKZ.mjs} +7 -7
  55. package/dist/lib/node-esm/ChatDialog-UZNQBTKZ.mjs.map +7 -0
  56. package/dist/lib/node-esm/ProjectArticle-BCIBESJN.mjs +92 -0
  57. package/dist/lib/node-esm/ProjectArticle-BCIBESJN.mjs.map +7 -0
  58. package/dist/lib/node-esm/ProjectSettings-Q5QY6BYS.mjs +195 -0
  59. package/dist/lib/node-esm/ProjectSettings-Q5QY6BYS.mjs.map +7 -0
  60. package/dist/lib/node-esm/PromptArticle-PGMJMQK7.mjs +72 -0
  61. package/dist/lib/node-esm/PromptArticle-PGMJMQK7.mjs.map +7 -0
  62. package/dist/lib/node-esm/TriggerStatus-UR5S7PXJ.mjs +123 -0
  63. package/dist/lib/node-esm/TriggerStatus-UR5S7PXJ.mjs.map +7 -0
  64. package/dist/lib/node-esm/{app-graph-builder-4QN5M6PD.mjs → app-graph-builder-E25JXI34.mjs} +3 -3
  65. package/dist/lib/node-esm/app-graph-builder-E25JXI34.mjs.map +7 -0
  66. package/dist/lib/node-esm/blueprint-definition-CMJWGGJO.mjs +36 -0
  67. package/dist/lib/node-esm/blueprint-definition-CMJWGGJO.mjs.map +7 -0
  68. package/dist/lib/node-esm/blueprints/index.mjs +3 -7
  69. package/dist/lib/node-esm/chunk-3QBVFAYO.mjs +28 -0
  70. package/dist/lib/node-esm/chunk-3QBVFAYO.mjs.map +7 -0
  71. package/dist/lib/node-esm/{ChatContainer-ECFQVH6O.mjs → chunk-6NCLKQCL.mjs} +17 -21
  72. package/dist/lib/node-esm/chunk-6NCLKQCL.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-3XC7LQSO.mjs → chunk-GZ4ERNT2.mjs} +544 -393
  74. package/dist/lib/node-esm/chunk-GZ4ERNT2.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-MJD5XWQV.mjs → chunk-JMBYVUD6.mjs} +27 -27
  76. package/dist/lib/node-esm/chunk-JMBYVUD6.mjs.map +7 -0
  77. package/dist/lib/node-esm/{chunk-LB72WG6R.mjs → chunk-MWYYLALM.mjs} +8 -8
  78. package/dist/lib/node-esm/chunk-MWYYLALM.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +38 -54
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/meta.json +1 -1
  82. package/dist/lib/node-esm/{operation-resolver-2ZD2DXOU.mjs → operation-resolver-Q5GNP2GH.mjs} +23 -20
  83. package/dist/lib/node-esm/operation-resolver-Q5GNP2GH.mjs.map +7 -0
  84. package/dist/lib/node-esm/{react-surface-T4VMCCKZ.mjs → react-surface-JJRGVGKD.mjs} +42 -23
  85. package/dist/lib/node-esm/react-surface-JJRGVGKD.mjs.map +7 -0
  86. package/dist/lib/node-esm/{repair-DMI55PON.mjs → repair-LXFVOK4B.mjs} +9 -8
  87. package/dist/lib/node-esm/repair-LXFVOK4B.mjs.map +7 -0
  88. package/dist/lib/node-esm/{settings-NGGZA7S7.mjs → settings-N452OW6Y.mjs} +2 -2
  89. package/dist/lib/node-esm/{state-VSCPGN7R.mjs → state-WHZFKIEL.mjs} +2 -2
  90. package/dist/lib/node-esm/{toolkit-JPRJRDDB.mjs → toolkit-5IWGLUF4.mjs} +3 -6
  91. package/dist/lib/node-esm/toolkit-5IWGLUF4.mjs.map +7 -0
  92. package/dist/lib/node-esm/types/index.mjs +1 -1
  93. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  94. package/dist/types/src/blueprints/assistant/blueprint.d.ts +4 -0
  95. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -0
  96. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts +2 -0
  97. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts.map +1 -0
  98. package/dist/types/src/blueprints/assistant/index.d.ts +2 -0
  99. package/dist/types/src/blueprints/assistant/index.d.ts.map +1 -0
  100. package/dist/types/src/blueprints/index.d.ts +1 -6
  101. package/dist/types/src/blueprints/index.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/ai-service/ai-service.d.ts +1 -1
  103. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
  104. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +2 -22
  106. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +1 -2
  108. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts +1 -1
  110. package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts +1 -1
  112. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +1 -1
  114. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +1 -1
  116. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/repair/repair.d.ts +1 -1
  118. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
  119. package/dist/types/src/capabilities/settings/settings.d.ts +1 -1
  120. package/dist/types/src/capabilities/state/state.d.ts +1 -1
  121. package/dist/types/src/capabilities/toolkit/index.d.ts +1 -1
  122. package/dist/types/src/capabilities/toolkit/index.d.ts.map +1 -1
  123. package/dist/types/src/capabilities/toolkit/toolkit.d.ts +1 -1
  124. package/dist/types/src/capabilities/toolkit/toolkit.d.ts.map +1 -1
  125. package/dist/types/src/components/Chat/Chat.d.ts +6 -5
  126. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  127. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  128. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  129. package/dist/types/src/components/ChatThread/ChatThread.d.ts +1 -1
  130. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +15 -15
  131. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  132. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  133. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +14 -14
  134. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  135. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +14 -14
  136. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +14 -14
  137. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts +2 -2
  138. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts.map +1 -1
  139. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts.map +1 -1
  140. package/dist/types/src/components/index.d.ts +0 -11
  141. package/dist/types/src/components/index.d.ts.map +1 -1
  142. package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  143. package/dist/types/src/containers/AssistantSettings/index.d.ts +3 -0
  144. package/dist/types/src/containers/AssistantSettings/index.d.ts.map +1 -0
  145. package/dist/types/src/{components → containers/BlueprintArticle}/BlueprintArticle.d.ts +0 -1
  146. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -0
  147. package/dist/types/src/containers/BlueprintArticle/index.d.ts +3 -0
  148. package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +1 -0
  149. package/dist/types/src/{components → containers/ChatCompanion}/ChatCompanion.d.ts +0 -1
  150. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -0
  151. package/dist/types/src/containers/ChatCompanion/index.d.ts +3 -0
  152. package/dist/types/src/containers/ChatCompanion/index.d.ts.map +1 -0
  153. package/dist/types/src/{components → containers/ChatContainer}/ChatContainer.d.ts +2 -3
  154. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
  155. package/dist/types/src/containers/ChatContainer/index.d.ts +3 -0
  156. package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
  157. package/dist/types/src/{components → containers/ChatDialog}/ChatDialog.d.ts +0 -1
  158. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -0
  159. package/dist/types/src/containers/ChatDialog/index.d.ts +3 -0
  160. package/dist/types/src/containers/ChatDialog/index.d.ts.map +1 -0
  161. package/dist/types/src/containers/Project/ProjectArticle.d.ts +7 -0
  162. package/dist/types/src/containers/Project/ProjectArticle.d.ts.map +1 -0
  163. package/dist/types/src/containers/Project/ProjectSettings.d.ts +6 -0
  164. package/dist/types/src/containers/Project/ProjectSettings.d.ts.map +1 -0
  165. package/dist/types/src/containers/Project/index.d.ts +7 -0
  166. package/dist/types/src/containers/Project/index.d.ts.map +1 -0
  167. package/dist/types/src/containers/Project/triggers.d.ts +6 -0
  168. package/dist/types/src/containers/Project/triggers.d.ts.map +1 -0
  169. package/dist/types/src/{components → containers/PromptArticle}/PromptArticle.d.ts +0 -1
  170. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts.map +1 -0
  171. package/dist/types/src/containers/PromptArticle/index.d.ts +3 -0
  172. package/dist/types/src/containers/PromptArticle/index.d.ts.map +1 -0
  173. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +4 -0
  174. package/dist/types/src/{components → containers}/TriggerStatus/TriggerStatus.d.ts.map +1 -1
  175. package/dist/types/src/containers/TriggerStatus/index.d.ts +3 -0
  176. package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -0
  177. package/dist/types/src/containers/index.d.ts +10 -0
  178. package/dist/types/src/containers/index.d.ts.map +1 -0
  179. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  180. package/dist/types/src/hooks/useFilteredTypes.d.ts +1 -1
  181. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -1
  182. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  183. package/dist/types/src/index.d.ts +1 -0
  184. package/dist/types/src/index.d.ts.map +1 -1
  185. package/dist/types/src/processor/processor.d.ts +1 -1
  186. package/dist/types/src/processor/processor.d.ts.map +1 -1
  187. package/dist/types/src/translations.d.ts +14 -14
  188. package/dist/types/src/types/AssistantAction.d.ts +7 -11
  189. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  190. package/dist/types/src/types/service.d.ts.map +1 -1
  191. package/dist/types/tsconfig.tsbuildinfo +1 -1
  192. package/package.json +82 -82
  193. package/src/AssistantPlugin.tsx +12 -9
  194. package/src/blueprints/assistant/blueprint.conversations.json +1 -0
  195. package/src/blueprints/assistant/blueprint.test.ts +48 -0
  196. package/src/blueprints/assistant/blueprint.ts +27 -0
  197. package/src/blueprints/assistant/index.ts +5 -0
  198. package/src/blueprints/index.ts +1 -8
  199. package/src/capabilities/app-graph-builder/app-graph-builder.ts +1 -3
  200. package/src/capabilities/blueprint-definition/blueprint-definition.ts +25 -49
  201. package/src/capabilities/blueprint-definition/index.ts +0 -1
  202. package/src/capabilities/operation-resolver/operation-resolver.ts +21 -12
  203. package/src/capabilities/react-surface/react-surface.tsx +21 -11
  204. package/src/capabilities/repair/repair.ts +14 -7
  205. package/src/capabilities/toolkit/toolkit.ts +3 -15
  206. package/src/components/Chat/Chat.tsx +25 -15
  207. package/src/components/ChatProgress/ChatProgress.tsx +2 -2
  208. package/src/components/ChatPrompt/ChatActions.tsx +1 -1
  209. package/src/components/ChatPrompt/ChatOptions.tsx +29 -9
  210. package/src/components/ChatPrompt/ChatReferences.tsx +14 -4
  211. package/src/components/ChatThread/ChatThread.stories.tsx +4 -4
  212. package/src/components/ChatThread/ChatThread.tsx +2 -2
  213. package/src/components/ChatThread/registry.tsx +48 -15
  214. package/src/components/ChatThread/sync.test.ts +2 -0
  215. package/src/components/ChatThread/sync.ts +14 -8
  216. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +2 -2
  217. package/src/components/TemplateEditor/TemplateEditor.tsx +2 -2
  218. package/src/components/TemplateEditor/TemplateForm.stories.tsx +2 -2
  219. package/src/components/TemplateEditor/TemplateForm.tsx +6 -7
  220. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +4 -4
  221. package/src/components/ToolBlock/ToolBlock.tsx +4 -4
  222. package/src/components/Toolbox/Toolbox.stories.tsx +2 -2
  223. package/src/components/Toolbox/Toolbox.tsx +2 -2
  224. package/src/components/Typewriter/AssistantToolbar.tsx +3 -3
  225. package/src/components/Typewriter/Typewriter.stories.tsx +18 -15
  226. package/src/components/Typewriter/Typewriter.tsx +1 -1
  227. package/src/components/Typewriter/assistant-extension.tsx +3 -5
  228. package/src/components/index.ts +0 -18
  229. package/src/containers/AssistantSettings/index.ts +7 -0
  230. package/src/{components → containers/BlueprintArticle}/BlueprintArticle.tsx +10 -8
  231. package/src/containers/BlueprintArticle/index.ts +7 -0
  232. package/src/{components → containers/ChatCompanion}/ChatCompanion.tsx +4 -5
  233. package/src/containers/ChatCompanion/index.ts +7 -0
  234. package/src/{components → containers/ChatContainer}/ChatContainer.tsx +25 -24
  235. package/src/containers/ChatContainer/index.ts +7 -0
  236. package/src/{components → containers/ChatDialog}/ChatDialog.tsx +4 -7
  237. package/src/containers/ChatDialog/index.ts +7 -0
  238. package/src/containers/Project/ProjectArticle.tsx +117 -0
  239. package/src/containers/Project/ProjectSettings.tsx +118 -0
  240. package/src/containers/Project/index.ts +16 -0
  241. package/src/containers/Project/triggers.ts +131 -0
  242. package/src/containers/PromptArticle/PromptArticle.tsx +59 -0
  243. package/src/containers/PromptArticle/index.ts +7 -0
  244. package/src/{components → containers}/TriggerStatus/TriggerStatus.tsx +12 -4
  245. package/src/containers/TriggerStatus/index.ts +7 -0
  246. package/src/containers/index.ts +15 -0
  247. package/src/hooks/useBlueprintRegistry.ts +5 -2
  248. package/src/hooks/useFilteredTypes.ts +2 -2
  249. package/src/hooks/useReferencesProvider.ts +1 -5
  250. package/src/index.ts +1 -0
  251. package/src/processor/processor.test.ts +2 -1
  252. package/src/processor/processor.ts +17 -22
  253. package/src/testing/test-sequence.ts +3 -3
  254. package/src/testing/test-services.ts +1 -1
  255. package/src/translations.ts +11 -11
  256. package/src/types/AssistantAction.ts +3 -3
  257. package/src/types/service.ts +3 -3
  258. package/dist/lib/browser/BlueprintArticle-6SP2ZWJ2.mjs +0 -30
  259. package/dist/lib/browser/BlueprintArticle-6SP2ZWJ2.mjs.map +0 -7
  260. package/dist/lib/browser/ChatCompanion-CAKFZAWN.mjs.map +0 -7
  261. package/dist/lib/browser/ChatContainer-QB37VONJ.mjs.map +0 -7
  262. package/dist/lib/browser/ChatDialog-ASVBLOOS.mjs.map +0 -7
  263. package/dist/lib/browser/InitiativeContainer-V522FCYH.mjs +0 -266
  264. package/dist/lib/browser/InitiativeContainer-V522FCYH.mjs.map +0 -7
  265. package/dist/lib/browser/PromptArticle-PK3CBRUB.mjs +0 -52
  266. package/dist/lib/browser/PromptArticle-PK3CBRUB.mjs.map +0 -7
  267. package/dist/lib/browser/app-graph-builder-MUZGUQSC.mjs.map +0 -7
  268. package/dist/lib/browser/blueprint-definition-YAGWYVCL.mjs +0 -14
  269. package/dist/lib/browser/chunk-3ETBCBMH.mjs +0 -47
  270. package/dist/lib/browser/chunk-3ETBCBMH.mjs.map +0 -7
  271. package/dist/lib/browser/chunk-6BVCG5SJ.mjs.map +0 -7
  272. package/dist/lib/browser/chunk-DKQMSMBN.mjs +0 -326
  273. package/dist/lib/browser/chunk-DKQMSMBN.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-IJYAKPEU.mjs.map +0 -7
  275. package/dist/lib/browser/chunk-JA7PUZC7.mjs.map +0 -7
  276. package/dist/lib/browser/chunk-POPBT2AQ.mjs +0 -198
  277. package/dist/lib/browser/chunk-POPBT2AQ.mjs.map +0 -7
  278. package/dist/lib/browser/operation-resolver-2673CFJS.mjs.map +0 -7
  279. package/dist/lib/browser/react-surface-T3FN4GVP.mjs.map +0 -7
  280. package/dist/lib/browser/repair-IRXDYF4R.mjs.map +0 -7
  281. package/dist/lib/browser/toolkit-IDXQCSTX.mjs +0 -19
  282. package/dist/lib/browser/toolkit-IDXQCSTX.mjs.map +0 -7
  283. package/dist/lib/node-esm/BlueprintArticle-7LI6UXKZ.mjs +0 -31
  284. package/dist/lib/node-esm/BlueprintArticle-7LI6UXKZ.mjs.map +0 -7
  285. package/dist/lib/node-esm/ChatCompanion-W4PGOCGR.mjs.map +0 -7
  286. package/dist/lib/node-esm/ChatContainer-ECFQVH6O.mjs.map +0 -7
  287. package/dist/lib/node-esm/ChatDialog-AFLPYSIU.mjs.map +0 -7
  288. package/dist/lib/node-esm/InitiativeContainer-U4LGO3BW.mjs +0 -267
  289. package/dist/lib/node-esm/InitiativeContainer-U4LGO3BW.mjs.map +0 -7
  290. package/dist/lib/node-esm/PromptArticle-BHPABYLT.mjs +0 -53
  291. package/dist/lib/node-esm/PromptArticle-BHPABYLT.mjs.map +0 -7
  292. package/dist/lib/node-esm/blueprint-definition-H3LFAEK2.mjs +0 -15
  293. package/dist/lib/node-esm/chunk-2LEN26ZQ.mjs +0 -48
  294. package/dist/lib/node-esm/chunk-2LEN26ZQ.mjs.map +0 -7
  295. package/dist/lib/node-esm/chunk-3XC7LQSO.mjs.map +0 -7
  296. package/dist/lib/node-esm/chunk-75PHXBN3.mjs +0 -327
  297. package/dist/lib/node-esm/chunk-75PHXBN3.mjs.map +0 -7
  298. package/dist/lib/node-esm/chunk-F6LA7XNS.mjs +0 -199
  299. package/dist/lib/node-esm/chunk-F6LA7XNS.mjs.map +0 -7
  300. package/dist/lib/node-esm/chunk-LB72WG6R.mjs.map +0 -7
  301. package/dist/lib/node-esm/chunk-MJD5XWQV.mjs.map +0 -7
  302. package/dist/lib/node-esm/operation-resolver-2ZD2DXOU.mjs.map +0 -7
  303. package/dist/lib/node-esm/react-surface-T4VMCCKZ.mjs.map +0 -7
  304. package/dist/lib/node-esm/repair-DMI55PON.mjs.map +0 -7
  305. package/dist/lib/node-esm/toolkit-JPRJRDDB.mjs.map +0 -7
  306. package/dist/types/src/blueprints/assistant-blueprint.d.ts +0 -11
  307. package/dist/types/src/blueprints/assistant-blueprint.d.ts.map +0 -1
  308. package/dist/types/src/components/AssistantSettings/index.d.ts +0 -2
  309. package/dist/types/src/components/AssistantSettings/index.d.ts.map +0 -1
  310. package/dist/types/src/components/BlueprintArticle.d.ts.map +0 -1
  311. package/dist/types/src/components/ChatCompanion.d.ts.map +0 -1
  312. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  313. package/dist/types/src/components/ChatDialog.d.ts.map +0 -1
  314. package/dist/types/src/components/InitiativeContainer.d.ts +0 -9
  315. package/dist/types/src/components/InitiativeContainer.d.ts.map +0 -1
  316. package/dist/types/src/components/PromptArticle.d.ts.map +0 -1
  317. package/dist/types/src/components/TriggerStatus/TriggerStatus.d.ts +0 -4
  318. package/dist/types/src/components/TriggerStatus/index.d.ts +0 -2
  319. package/dist/types/src/components/TriggerStatus/index.d.ts.map +0 -1
  320. package/dist/types/src/functions/index.d.ts +0 -4
  321. package/dist/types/src/functions/index.d.ts.map +0 -1
  322. package/dist/types/src/functions/object-list.d.ts +0 -10
  323. package/dist/types/src/functions/object-list.d.ts.map +0 -1
  324. package/dist/types/src/functions/object-load.d.ts +0 -8
  325. package/dist/types/src/functions/object-load.d.ts.map +0 -1
  326. package/dist/types/src/functions/object-search.d.ts +0 -10
  327. package/dist/types/src/functions/object-search.d.ts.map +0 -1
  328. package/src/blueprints/assistant-blueprint.ts +0 -57
  329. package/src/components/AssistantSettings/index.ts +0 -5
  330. package/src/components/InitiativeContainer.tsx +0 -340
  331. package/src/components/PromptArticle.tsx +0 -49
  332. package/src/components/TriggerStatus/index.ts +0 -5
  333. package/src/functions/index.ts +0 -7
  334. package/src/functions/object-list.ts +0 -49
  335. package/src/functions/object-load.ts +0 -44
  336. package/src/functions/object-search.ts +0 -46
  337. /package/dist/lib/browser/{blueprint-definition-YAGWYVCL.mjs.map → ChatContainer-ZGRSZ5EU.mjs.map} +0 -0
  338. /package/dist/lib/browser/{settings-XF6GKHCG.mjs.map → settings-YREVQAZ5.mjs.map} +0 -0
  339. /package/dist/lib/browser/{state-OYDPWLKA.mjs.map → state-MPG42ZO4.mjs.map} +0 -0
  340. /package/dist/lib/node-esm/{blueprint-definition-H3LFAEK2.mjs.map → ChatContainer-IFHDIFJH.mjs.map} +0 -0
  341. /package/dist/lib/node-esm/{settings-NGGZA7S7.mjs.map → settings-N452OW6Y.mjs.map} +0 -0
  342. /package/dist/lib/node-esm/{state-VSCPGN7R.mjs.map → state-WHZFKIEL.mjs.map} +0 -0
  343. /package/dist/types/src/{components → containers}/AssistantSettings/AssistantSettings.d.ts +0 -0
  344. /package/src/{components → containers}/AssistantSettings/AssistantSettings.tsx +0 -0
@@ -0,0 +1,48 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { describe, expect, it } from '@effect/vitest';
6
+ import * as Effect from 'effect/Effect';
7
+ import * as Layer from 'effect/Layer';
8
+
9
+ import { AiConversationService } from '@dxos/assistant';
10
+ import { AssistantTestLayer } from '@dxos/assistant/testing';
11
+ import { DatabaseBlueprint } from '@dxos/assistant-toolkit';
12
+ import { addBlueprints } from '@dxos/assistant-toolkit/testing';
13
+ import { Blueprint } from '@dxos/blueprints';
14
+ import { TestHelpers } from '@dxos/effect/testing';
15
+ import { ObjectId } from '@dxos/keys';
16
+ import { Organization } from '@dxos/types';
17
+
18
+ import AssistantBlueprint from './blueprint';
19
+
20
+ ObjectId.dangerouslyDisableRandomness();
21
+
22
+ const TestLayer = AssistantTestLayer({
23
+ functions: [...Object.values(DatabaseBlueprint.functions)],
24
+ types: [Organization.Organization, Blueprint.Blueprint],
25
+ tracing: 'pretty',
26
+ });
27
+
28
+ const provideTestLayers = Effect.provide(AiConversationService.layerNewQueue().pipe(Layer.provideMerge(TestLayer)));
29
+
30
+ describe('Assistant Blueprint', () => {
31
+ // TODO(dmaretskyi): Regenerate memoized conversation with ALLOW_LLM_GENERATION=1.
32
+ it.effect.skip(
33
+ 'works with Database blueprint to create objects',
34
+ Effect.fnUntraced(
35
+ function* (_) {
36
+ yield* addBlueprints([AssistantBlueprint, DatabaseBlueprint]);
37
+ const messages = yield* AiConversationService.run({
38
+ prompt: 'Create a new organization called "Test Corp".',
39
+ });
40
+ const lastMessage = messages.at(-1);
41
+ expect(lastMessage).toBeDefined();
42
+ },
43
+ provideTestLayers,
44
+ TestHelpers.provideTestContext,
45
+ ),
46
+ { timeout: 60_000 },
47
+ );
48
+ });
@@ -0,0 +1,27 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type AppCapabilities } from '@dxos/app-toolkit';
6
+ import { templates } from '@dxos/assistant';
7
+ import { Blueprint } from '@dxos/blueprints';
8
+
9
+ const BLUEPRINT_KEY = 'dxos.org/blueprint/assistant';
10
+
11
+ const tools = ['open-item'];
12
+
13
+ const make = () =>
14
+ Blueprint.make({
15
+ key: BLUEPRINT_KEY,
16
+ name: 'Assistant',
17
+ tools: Blueprint.toolDefinitions({ tools }),
18
+ instructions: templates.system,
19
+ });
20
+
21
+ const blueprint: AppCapabilities.BlueprintDefinition = {
22
+ key: BLUEPRINT_KEY,
23
+ functions: [],
24
+ make,
25
+ };
26
+
27
+ export default blueprint;
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export { default as AssistantBlueprint } from './blueprint';
@@ -2,11 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Blueprint } from '@dxos/blueprints';
6
- import { type FunctionDefinition } from '@dxos/functions';
7
-
8
- import * as AssistantBlueprint from './assistant-blueprint';
9
-
10
- export { AssistantBlueprint };
11
- export const blueprints: Blueprint.Blueprint[] = AssistantBlueprint.blueprints;
12
- export const functions: FunctionDefinition[] = AssistantBlueprint.functions;
5
+ export * from './assistant';
@@ -68,9 +68,7 @@ export default Capability.makeModule(
68
68
  subject: ASSISTANT_DIALOG,
69
69
  state: true,
70
70
  blockAlign: 'end',
71
- props: {
72
- chat,
73
- },
71
+ props: { chat },
74
72
  });
75
73
  }),
76
74
  properties: {
@@ -8,67 +8,43 @@ import * as Record from 'effect/Record';
8
8
  import { Capability } from '@dxos/app-framework';
9
9
  import { AppCapabilities } from '@dxos/app-toolkit';
10
10
  import {
11
- Agent,
12
- Discord,
11
+ AgentFunctions,
12
+ BrowserBlueprint,
13
+ DatabaseBlueprint,
13
14
  DiscordBlueprint,
14
- EntityExtraction,
15
- Initiative,
16
- Linear,
15
+ EntityExtractionFunctions,
17
16
  LinearBlueprint,
18
- Planning,
19
- Research,
17
+ PlanningBlueprint,
18
+ ProjectBlueprint,
19
+ ProjectFunctions,
20
20
  ResearchBlueprint,
21
21
  WebSearchBlueprint,
22
+ MemoryBlueprint,
22
23
  } from '@dxos/assistant-toolkit';
23
- import { type Blueprint } from '@dxos/blueprints';
24
24
 
25
25
  import { AssistantBlueprint } from '../../blueprints';
26
26
 
27
- export const createBlueprint: () => Blueprint.Blueprint = AssistantBlueprint.make;
28
- export { AssistantBlueprint };
29
-
30
- export type BlueprintCapabilities = [
31
- Capability.Capability<typeof AppCapabilities.Functions>,
32
- Capability.Capability<typeof AppCapabilities.BlueprintDefinition>,
33
- Capability.Capability<typeof AppCapabilities.Functions>,
34
- Capability.Capability<typeof AppCapabilities.BlueprintDefinition>,
35
- Capability.Capability<typeof AppCapabilities.Functions>,
36
- Capability.Capability<typeof AppCapabilities.BlueprintDefinition>,
37
- Capability.Capability<typeof AppCapabilities.Functions>,
38
- Capability.Capability<typeof AppCapabilities.BlueprintDefinition>,
39
- Capability.Capability<typeof AppCapabilities.Functions>,
40
- Capability.Capability<typeof AppCapabilities.BlueprintDefinition>,
41
- Capability.Capability<typeof AppCapabilities.Functions>,
42
- Capability.Capability<typeof AppCapabilities.BlueprintDefinition>,
43
- Capability.Capability<typeof AppCapabilities.Functions>,
44
- Capability.Capability<typeof AppCapabilities.BlueprintDefinition>,
45
- ];
46
-
47
- export default Capability.makeModule<[], BlueprintCapabilities>(() =>
27
+ const blueprintDefinition = Capability.makeModule(() =>
48
28
  Effect.succeed([
49
- Capability.contributes(AppCapabilities.Functions, AssistantBlueprint.functions$),
50
- Capability.contributes(AppCapabilities.BlueprintDefinition, AssistantBlueprint.blueprint),
51
-
52
- // TODO(burdon): Factor out.
53
- Capability.contributes(AppCapabilities.Functions, [Research.create, Research.research]),
29
+ Capability.contributes(AppCapabilities.BlueprintDefinition, AssistantBlueprint),
30
+ Capability.contributes(AppCapabilities.BlueprintDefinition, BrowserBlueprint),
31
+ Capability.contributes(AppCapabilities.BlueprintDefinition, DatabaseBlueprint),
54
32
  Capability.contributes(AppCapabilities.BlueprintDefinition, ResearchBlueprint),
55
-
56
- // TODO(burdon): Factor out.
57
- Capability.contributes(AppCapabilities.Functions, [Agent.prompt, EntityExtraction.extract]),
58
33
  Capability.contributes(AppCapabilities.BlueprintDefinition, WebSearchBlueprint),
59
-
60
- // TODO(burdon): Factor out.
61
- Capability.contributes(AppCapabilities.Functions, [Discord.fetch]),
62
34
  Capability.contributes(AppCapabilities.BlueprintDefinition, DiscordBlueprint),
63
-
64
- // TODO(burdon): Factor out.
65
- Capability.contributes(AppCapabilities.Functions, [Linear.sync]),
66
35
  Capability.contributes(AppCapabilities.BlueprintDefinition, LinearBlueprint),
67
-
68
- Capability.contributes(AppCapabilities.Functions, Initiative.getFunctions()),
69
- Capability.contributes(AppCapabilities.BlueprintDefinition, Initiative.makeBlueprint()),
70
-
71
- Capability.contributes(AppCapabilities.Functions, Record.values(Planning.PlanningFunctions)),
72
- Capability.contributes(AppCapabilities.BlueprintDefinition, Planning.PlanningBlueprint),
36
+ Capability.contributes(AppCapabilities.BlueprintDefinition, ProjectBlueprint),
37
+ Capability.contributes(AppCapabilities.BlueprintDefinition, PlanningBlueprint),
38
+ Capability.contributes(AppCapabilities.BlueprintDefinition, MemoryBlueprint),
39
+
40
+ Capability.contributes(AppCapabilities.Functions, Record.values(AgentFunctions)),
41
+ Capability.contributes(AppCapabilities.Functions, Record.values(EntityExtractionFunctions)),
42
+ Capability.contributes(AppCapabilities.Functions, [
43
+ ProjectFunctions.Agent,
44
+ ProjectFunctions.GetContext,
45
+ ProjectFunctions.Qualifier,
46
+ ]),
73
47
  ]),
74
48
  );
49
+
50
+ export default blueprintDefinition;
@@ -5,4 +5,3 @@
5
5
  import { Capability } from '@dxos/app-framework';
6
6
 
7
7
  export const BlueprintDefinition = Capability.lazy('BlueprintDefinition', () => import('./blueprint-definition'));
8
- export { AssistantBlueprint } from './blueprint-definition';
@@ -6,7 +6,8 @@ import * as Effect from 'effect/Effect';
6
6
 
7
7
  import { Capabilities, Capability } from '@dxos/app-framework';
8
8
  import { AiContextBinder, AiConversation } from '@dxos/assistant';
9
- import { Agent, Chat } from '@dxos/assistant-toolkit';
9
+ import { AgentFunctions, Chat } from '@dxos/assistant-toolkit';
10
+ import { DatabaseBlueprint } from '@dxos/assistant-toolkit';
10
11
  import { Blueprint, Prompt } from '@dxos/blueprints';
11
12
  import { type Queue } from '@dxos/client/echo';
12
13
  import { Filter, Obj, Ref, Type } from '@dxos/echo';
@@ -15,12 +16,12 @@ import { invariant } from '@dxos/invariant';
15
16
  import { Operation, OperationResolver } from '@dxos/operation';
16
17
  import { AutomationCapabilities } from '@dxos/plugin-automation';
17
18
  import { ClientCapabilities } from '@dxos/plugin-client';
18
- import { Collection } from '@dxos/schema';
19
+ import { ManagedCollection } 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
24
  import { AssistantCapabilities, AssistantOperation } from '../../types';
23
- import { AssistantBlueprint, createBlueprint } from '../blueprint-definition/blueprint-definition';
24
25
 
25
26
  export default Capability.makeModule(
26
27
  Effect.fnUntraced(function* () {
@@ -28,15 +29,15 @@ export default Capability.makeModule(
28
29
  OperationResolver.make({
29
30
  operation: AssistantOperation.OnCreateSpace,
30
31
  handler: Effect.fnUntraced(function* ({ space, rootCollection }) {
31
- const chatCollection = Collection.makeManaged({ key: Chat.Chat.typename });
32
- const blueprintCollection = Collection.makeManaged({ key: Blueprint.Blueprint.typename });
33
- const promptCollection = Collection.makeManaged({ key: Type.getTypename(Prompt.Prompt) });
32
+ const chatCollection = ManagedCollection.makeManagedCollection({ key: Chat.Chat.typename });
33
+ const blueprintCollection = ManagedCollection.makeManagedCollection({ key: Blueprint.Blueprint.typename });
34
+ const promptCollection = ManagedCollection.makeManagedCollection({ key: Type.getTypename(Prompt.Prompt) });
34
35
  Obj.change(rootCollection, (c) => {
35
36
  c.objects.push(Ref.make(chatCollection), Ref.make(blueprintCollection), Ref.make(promptCollection));
36
37
  });
37
38
 
38
39
  // TODO(wittjosiah): Remove once function registry is avaiable.
39
- space.db.add(serializeFunction(Agent.prompt));
40
+ space.db.add(serializeFunction(AgentFunctions.Prompt));
40
41
 
41
42
  // Create default chat.
42
43
  const { object: chat } = yield* Operation.invoke(AssistantOperation.CreateChat, { db: space.db });
@@ -51,7 +52,7 @@ export default Capability.makeModule(
51
52
  const space = client.spaces.get(db.spaceId);
52
53
  invariant(space, 'Space not found');
53
54
  const queue = space.queues.create();
54
- const chat = Chat.make({ name, queue: Ref.fromDXN(queue.dxn) });
55
+ const chat = Chat.make({ name, queue: db.makeRef<any>(queue.dxn) });
55
56
  if (addToSpace) {
56
57
  space.db.add(chat);
57
58
  }
@@ -59,14 +60,22 @@ export default Capability.makeModule(
59
60
  // TODO(wittjosiah): This should be a space-level setting.
60
61
  // TODO(burdon): Clone when activated. Copy-on-write for template.
61
62
  const blueprints = yield* Effect.promise(() => db.query(Filter.type(Blueprint.Blueprint)).run());
62
- let defaultBlueprint = blueprints.find((blueprint) => blueprint.key === AssistantBlueprint.Key);
63
- if (!defaultBlueprint) {
64
- defaultBlueprint = db.add(createBlueprint());
63
+ let defaultAssistantBlueprint = blueprints.find((blueprint) => blueprint.key === AssistantBlueprint.key);
64
+ if (!defaultAssistantBlueprint) {
65
+ defaultAssistantBlueprint = db.add(AssistantBlueprint.make());
66
+ }
67
+ let defaultDatabaseBlueprint = blueprints.find((blueprint) => blueprint.key === DatabaseBlueprint.key);
68
+ if (!defaultDatabaseBlueprint) {
69
+ defaultDatabaseBlueprint = db.add(DatabaseBlueprint.make());
65
70
  }
66
71
 
67
72
  const binder = new AiContextBinder({ queue, registry });
68
73
  yield* Effect.promise(() =>
69
- binder.use((b: AiContextBinder) => b.bind({ blueprints: [Ref.make(defaultBlueprint!)] })),
74
+ binder.use((b: AiContextBinder) =>
75
+ b.bind({
76
+ blueprints: [Ref.make(defaultAssistantBlueprint!), Ref.make(defaultDatabaseBlueprint!)],
77
+ }),
78
+ ),
70
79
  );
71
80
 
72
81
  return { object: chat };
@@ -8,13 +8,13 @@ import React from 'react';
8
8
  import { Capabilities, Capability } from '@dxos/app-framework';
9
9
  import { Surface, useSettingsState } from '@dxos/app-framework/ui';
10
10
  import { AppCapabilities } from '@dxos/app-toolkit';
11
- import { Chat, Initiative } from '@dxos/assistant-toolkit';
11
+ import { Chat, Project } from '@dxos/assistant-toolkit';
12
12
  import { Blueprint, Prompt } from '@dxos/blueprints';
13
13
  import { getSpace } from '@dxos/client/echo';
14
14
  import { Sequence } from '@dxos/conductor';
15
15
  import { InvocationTraceContainer } from '@dxos/devtools';
16
16
  import { Obj } from '@dxos/echo';
17
- import { Layout } from '@dxos/react-ui';
17
+ import { Panel } from '@dxos/react-ui';
18
18
 
19
19
  import {
20
20
  AssistantSettings,
@@ -22,10 +22,11 @@ import {
22
22
  ChatCompanion,
23
23
  ChatContainer,
24
24
  ChatDialog,
25
- InitiativeContainer,
25
+ ProjectArticle,
26
+ ProjectSettings,
26
27
  PromptArticle,
27
28
  TriggerStatus,
28
- } from '../../components';
29
+ } from '../../containers';
29
30
  import { ASSISTANT_DIALOG, meta } from '../../meta';
30
31
  import { type Assistant } from '../../types';
31
32
 
@@ -50,11 +51,16 @@ export default Capability.makeModule(() =>
50
51
  component: ({ data, role, ref }) => <ChatContainer role={role} subject={data.subject} ref={ref} />,
51
52
  }),
52
53
  Surface.create({
53
- id: `${meta.id}/initiative`,
54
+ id: `${meta.id}/project`,
54
55
  role: 'article',
55
- filter: (data): data is { subject: Initiative.Initiative } =>
56
- Obj.instanceOf(Initiative.Initiative, data.subject),
57
- component: ({ data, role }) => <InitiativeContainer role={role} initiative={data.subject} />,
56
+ filter: (data): data is { subject: Project.Project } => Obj.instanceOf(Project.Project, data.subject),
57
+ component: ({ data, role }) => <ProjectArticle role={role} subject={data.subject} />,
58
+ }),
59
+ Surface.create({
60
+ id: `${meta.id}/project/companion/settings`,
61
+ role: 'object-settings',
62
+ filter: (data): data is { subject: Project.Project } => Obj.instanceOf(Project.Project, data.subject),
63
+ component: ({ data }) => <ProjectSettings subject={data.subject} />,
58
64
  }),
59
65
  // TODO(wittjosiah): This is flashing when chat changes.
60
66
  Surface.create({
@@ -77,9 +83,13 @@ export default Capability.makeModule(() =>
77
83
  // TODO(wittjosiah): Support invocation filtering for prompts.
78
84
  const target = Obj.instanceOf(Prompt.Prompt, data.companionTo) ? undefined : data.companionTo;
79
85
  return (
80
- <Layout.Main role={role}>
81
- <InvocationTraceContainer db={space?.db} queueDxn={queueDxn} target={target} detailAxis='block' />
82
- </Layout.Main>
86
+ <Panel.Root role={role} className='dx-article'>
87
+ <Panel.Content asChild>
88
+ <Panel.Content asChild>
89
+ <InvocationTraceContainer db={space?.db} queueDxn={queueDxn} target={target} detailAxis='block' />
90
+ </Panel.Content>
91
+ </Panel.Content>
92
+ </Panel.Root>
83
93
  );
84
94
  },
85
95
  }),
@@ -8,9 +8,10 @@ import { Capability } from '@dxos/app-framework';
8
8
  import { Chat } from '@dxos/assistant-toolkit';
9
9
  import { Blueprint, Prompt } from '@dxos/blueprints';
10
10
  import { Obj, Ref, Type } from '@dxos/echo';
11
+ import { Collection } from '@dxos/echo';
11
12
  import { SpaceCapabilities } from '@dxos/plugin-space';
12
13
  import { type Space } from '@dxos/react-client/echo';
13
- import { Collection } from '@dxos/schema';
14
+ import { ManagedCollection } from '@dxos/schema';
14
15
 
15
16
  export default Capability.makeModule(() =>
16
17
  Effect.succeed(
@@ -31,30 +32,36 @@ const ensureSystemCollections = async (space: Space) => {
31
32
 
32
33
  const objects = await Promise.all(rootCollection.objects.map((ref) => ref.load()));
33
34
  const chats = objects.find(
34
- (object) => Obj.instanceOf(Collection.Managed, object) && object.key === Chat.Chat.typename,
35
+ (object) => Obj.instanceOf(ManagedCollection.ManagedCollection, object) && object.key === Chat.Chat.typename,
35
36
  );
36
37
  if (!chats) {
37
- const chatsCollectionRef = Ref.make(Collection.makeManaged({ key: Chat.Chat.typename }));
38
+ const chatsCollectionRef = Ref.make(ManagedCollection.makeManagedCollection({ key: Chat.Chat.typename }));
38
39
  Obj.change(rootCollection, (c) => {
39
40
  c.objects.push(chatsCollectionRef);
40
41
  });
41
42
  }
42
43
 
43
44
  const blueprints = objects.find(
44
- (object) => Obj.instanceOf(Collection.Managed, object) && object.key === Blueprint.Blueprint.typename,
45
+ (object) =>
46
+ Obj.instanceOf(ManagedCollection.ManagedCollection, object) && object.key === Blueprint.Blueprint.typename,
45
47
  );
46
48
  if (!blueprints) {
47
- const blueprintsCollectionRef = Ref.make(Collection.makeManaged({ key: Blueprint.Blueprint.typename }));
49
+ const blueprintsCollectionRef = Ref.make(
50
+ ManagedCollection.makeManagedCollection({ key: Blueprint.Blueprint.typename }),
51
+ );
48
52
  Obj.change(rootCollection, (c) => {
49
53
  c.objects.push(blueprintsCollectionRef);
50
54
  });
51
55
  }
52
56
 
53
57
  const prompts = objects.find(
54
- (object) => Obj.instanceOf(Collection.Managed, object) && object.key === Type.getTypename(Prompt.Prompt),
58
+ (object) =>
59
+ Obj.instanceOf(ManagedCollection.ManagedCollection, object) && object.key === Type.getTypename(Prompt.Prompt),
55
60
  );
56
61
  if (!prompts) {
57
- const promptsCollectionRef = Ref.make(Collection.makeManaged({ key: Type.getTypename(Prompt.Prompt) }));
62
+ const promptsCollectionRef = Ref.make(
63
+ ManagedCollection.makeManagedCollection({ key: Type.getTypename(Prompt.Prompt) }),
64
+ );
58
65
  Obj.change(rootCollection, (c) => {
59
66
  c.objects.push(promptsCollectionRef);
60
67
  });
@@ -5,23 +5,11 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
  import * as Layer from 'effect/Layer';
7
7
 
8
+ import { GenericToolkit } from '@dxos/ai';
8
9
  import { Capability } from '@dxos/app-framework';
9
10
  import { AppCapabilities } from '@dxos/app-toolkit';
10
- import { GenericToolkit } from '@dxos/assistant';
11
- import { AssistantToolkit, SystemToolkit, WebSearchToolkit } from '@dxos/assistant-toolkit';
11
+ import { WebSearchToolkit } from '@dxos/assistant-toolkit';
12
12
 
13
13
  export default Capability.makeModule(() =>
14
- Effect.succeed([
15
- Capability.contributes(
16
- AppCapabilities.Toolkit,
17
- GenericToolkit.make(AssistantToolkit.AssistantToolkit, AssistantToolkit.layer()),
18
- ),
19
-
20
- // TODO(burdon): How to manage dependencies across blueprints.
21
- Capability.contributes(
22
- AppCapabilities.Toolkit,
23
- GenericToolkit.make(SystemToolkit.SystemToolkit, SystemToolkit.layer()),
24
- ),
25
- Capability.contributes(AppCapabilities.Toolkit, GenericToolkit.make(WebSearchToolkit, Layer.empty)),
26
- ]),
14
+ Effect.succeed([Capability.contributes(AppCapabilities.Toolkit, GenericToolkit.make(WebSearchToolkit, Layer.empty))]),
27
15
  );
@@ -8,7 +8,15 @@ 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';
11
+ import React, {
12
+ type ComponentPropsWithoutRef,
13
+ type PropsWithChildren,
14
+ useCallback,
15
+ useEffect,
16
+ useMemo,
17
+ useRef,
18
+ useState,
19
+ } from 'react';
12
20
 
13
21
  import { type Chat as ChatModule } from '@dxos/assistant-toolkit';
14
22
  import { Event } from '@dxos/async';
@@ -19,7 +27,7 @@ import { useIdentity } from '@dxos/react-client/halo';
19
27
  import { Input, type ThemedClassName, useDynamicRef, useTranslation } from '@dxos/react-ui';
20
28
  import { ChatEditor, type ChatEditorController, type ChatEditorProps } from '@dxos/react-ui-chat';
21
29
  import { type MarkdownStreamController } from '@dxos/react-ui-components';
22
- import { MenuProvider, ToolbarMenu } from '@dxos/react-ui-menu';
30
+ import { Menu } from '@dxos/react-ui-menu';
23
31
  import { Message } from '@dxos/types';
24
32
  import { mx } from '@dxos/ui-theme';
25
33
  import { isTruthy } from '@dxos/util';
@@ -84,7 +92,8 @@ const ChatRoot = ({ children, chat, processor, onEvent, ...props }: ChatRootProp
84
92
  return event.on((ev) => {
85
93
  switch (ev.type) {
86
94
  case 'toggle-debug': {
87
- setDebug((current) => !current);
95
+ setDebug((debug) => !debug);
96
+
88
97
  // Dump state to console.
89
98
  queueMicrotask(async () => {
90
99
  const objects = processor.context.getObjects();
@@ -162,11 +171,11 @@ ChatRoot.displayName = 'Chat.Root';
162
171
 
163
172
  const CHAT_VIEWPORT_NAME = 'Chat.Viewport';
164
173
 
165
- type ChatViewportProps = ThemedClassName<PropsWithChildren>;
174
+ type ChatViewportProps = ThemedClassName<PropsWithChildren<ComponentPropsWithoutRef<'div'>>>;
166
175
 
167
- const ChatViewport = ({ classNames, children }: ChatViewportProps) => {
176
+ const ChatViewport = ({ classNames, children, ...props }: ChatViewportProps) => {
168
177
  return (
169
- <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)}>
170
179
  {children}
171
180
  </div>
172
181
  );
@@ -362,9 +371,9 @@ const ChatPrompt = ({
362
371
  <div
363
372
  role='group'
364
373
  className={mx(
365
- 'flex flex-col is-full density-fine',
374
+ 'flex flex-col w-full dx-density-fine',
366
375
  outline &&
367
- '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',
368
377
  classNames,
369
378
  )}
370
379
  >
@@ -374,7 +383,7 @@ const ChatPrompt = ({
374
383
  ref={editorRef}
375
384
  autoFocus
376
385
  lineWrapping
377
- classNames='col-span-2 pbs-0.5'
386
+ classNames='col-span-2 pt-0.5'
378
387
  placeholder={placeholder ?? t('prompt placeholder')}
379
388
  extensions={extensions}
380
389
  onSubmit={handleSubmit}
@@ -407,7 +416,7 @@ const ChatPrompt = ({
407
416
  {online !== undefined && (
408
417
  <Input.Root>
409
418
  <Input.Label srOnly>{t('online switch label')}</Input.Label>
410
- <Input.Switch classNames='mli-2' checked={online} onCheckedChange={onOnlineChange} />
419
+ <Input.Switch classNames='mx-2' checked={online} onCheckedChange={onOnlineChange} />
411
420
  </Input.Root>
412
421
  )}
413
422
  </ChatActions>
@@ -425,19 +434,20 @@ ChatPrompt.displayName = CHAT_PROMPT_NAME;
425
434
 
426
435
  const CHAT_TOOLBAR_NAME = 'Chat.Toolbar';
427
436
 
428
- type ChatToolbarProps = ThemedClassName<{ companionTo?: Obj.Unknown }>;
437
+ type ChatToolbarProps = ThemedClassName<{ companionTo?: Obj.Unknown } & ComponentPropsWithoutRef<typeof Menu.Root>>;
429
438
 
430
- const ChatToolbar = ({ classNames, companionTo }: ChatToolbarProps) => {
439
+ const ChatToolbar = ({ classNames, companionTo, ...props }: ChatToolbarProps) => {
431
440
  const { chat } = useChatContext(CHAT_TOOLBAR_NAME);
432
441
  const menu = useChatToolbarActions({ chat, companionTo });
433
442
 
434
443
  return (
435
- <MenuProvider
444
+ <Menu.Root
445
+ {...props}
436
446
  {...menu}
437
447
  attendableId={companionTo ? Obj.getDXN(companionTo).toString() : chat ? Obj.getDXN(chat).toString() : ''}
438
448
  >
439
- <ToolbarMenu classNames={classNames} textBlockWidth />
440
- </MenuProvider>
449
+ <Menu.Toolbar classNames={classNames} textBlockWidth />
450
+ </Menu.Root>
441
451
  );
442
452
  };
443
453
 
@@ -45,9 +45,9 @@ export const ChatProgress = ({ chat }: ChatProgressProps) => {
45
45
  }, [nodes.length]);
46
46
 
47
47
  return (
48
- <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'>
49
49
  <ProgressBar nodes={nodes} index={index} onSelect={handleSelect} />
50
- <TextCrawl classNames='pis-4 text-sm text-description' lines={lines} autoAdvance />
50
+ <TextCrawl classNames='ps-4 text-sm text-description' lines={lines} autoAdvance />
51
51
  </div>
52
52
  );
53
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