@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,131 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Option from 'effect/Option';
6
+
7
+ import { type Project, ProjectFunctions } from '@dxos/assistant-toolkit';
8
+ import { Feed, Obj, Ref } from '@dxos/echo';
9
+ import { FunctionDefinition, Trigger } from '@dxos/functions';
10
+ import { Filter } from '@dxos/react-client/echo';
11
+
12
+ // TODO(dmaretskyi): Perhaps the association is better done with a relation.
13
+
14
+ /**
15
+ * Foreign key {@link PROJECT_TRIGGER_EXTENSION_KEY} => <initative id : ObjectId>
16
+ */
17
+ const PROJECT_TRIGGER_EXTENSION_KEY = 'dxos.org/extension/ProjectTrigger';
18
+
19
+ /**
20
+ * Foreign key {@link PROJECT_TRIGGER_EXTENSION_KEY} => <dxn string of subscription target>
21
+ */
22
+ const PROJECT_TRIGGER_TARGET_EXTENSION_KEY = 'dxos.org/extension/ProjectTriggerTarget';
23
+
24
+ /**
25
+ * Syncs triggers in the database with the project subscriptions.
26
+ */
27
+ export const syncTriggers = async (project: Project.Project) => {
28
+ const db = Obj.getDatabase(project);
29
+ if (!db) {
30
+ return;
31
+ }
32
+
33
+ const triggers = await db
34
+ .query(Filter.foreignKeys(Trigger.Trigger, [{ source: PROJECT_TRIGGER_EXTENSION_KEY, id: project.id }]))
35
+ .run();
36
+
37
+ // Delete triggers that are not in subscriptions.
38
+ for (const trigger of triggers) {
39
+ const target = Obj.getKeys(trigger, PROJECT_TRIGGER_TARGET_EXTENSION_KEY).at(0)?.id;
40
+
41
+ const exists = project.subscriptions.find((subscription) => subscription.dxn.toString() === target);
42
+ if (!exists && !(project.useQualifyingAgent && target === Obj.getDXN(project)?.toString())) {
43
+ db.remove(trigger);
44
+ }
45
+ }
46
+
47
+ // Add triggers that are not in the database.
48
+ for (const subscription of project.subscriptions) {
49
+ const relevantTrigger = triggers.find((trigger) =>
50
+ Obj.getKeys(trigger, PROJECT_TRIGGER_TARGET_EXTENSION_KEY).some((key) => key.id === subscription.dxn.toString()),
51
+ );
52
+ if (relevantTrigger) {
53
+ continue;
54
+ }
55
+
56
+ const target = await subscription.tryLoad();
57
+ if (!target) {
58
+ continue;
59
+ }
60
+
61
+ const queueDxn = Option.some(target).pipe(
62
+ Option.filter(Obj.instanceOf(Feed.Feed)),
63
+ Option.map(Feed.getQueueDxn),
64
+ Option.getOrUndefined,
65
+ );
66
+ if (!queueDxn) {
67
+ continue;
68
+ }
69
+
70
+ db.add(
71
+ Trigger.make({
72
+ [Obj.Parent]: project,
73
+ [Obj.Meta]: {
74
+ keys: [
75
+ // TODO(dmaretskyi): Query by parent instead of manually adding keys.
76
+ { source: PROJECT_TRIGGER_EXTENSION_KEY, id: project.id },
77
+ { source: PROJECT_TRIGGER_TARGET_EXTENSION_KEY, id: subscription.dxn.toString() },
78
+ ],
79
+ },
80
+ enabled: true,
81
+ spec: {
82
+ kind: 'queue',
83
+ queue: queueDxn.toString(),
84
+ },
85
+ function: Ref.make(
86
+ FunctionDefinition.serialize(
87
+ project.useQualifyingAgent ? ProjectFunctions.Qualifier : ProjectFunctions.Agent,
88
+ ),
89
+ ),
90
+ input: {
91
+ project: Ref.make(project),
92
+ event: '{{event}}',
93
+ },
94
+ concurrency: project.useQualifyingAgent ? 5 : undefined,
95
+ }),
96
+ );
97
+ }
98
+
99
+ if (project.useQualifyingAgent) {
100
+ const qualifierTrigger = triggers.find((trigger) =>
101
+ Obj.getKeys(trigger, PROJECT_TRIGGER_TARGET_EXTENSION_KEY).some(
102
+ (key) => key.id === Obj.getDXN(project)?.toString(),
103
+ ),
104
+ );
105
+ if (!qualifierTrigger && project.queue) {
106
+ db.add(
107
+ Trigger.make({
108
+ [Obj.Parent]: project,
109
+ [Obj.Meta]: {
110
+ keys: [
111
+ { source: PROJECT_TRIGGER_EXTENSION_KEY, id: project.id },
112
+ { source: PROJECT_TRIGGER_TARGET_EXTENSION_KEY, id: Obj.getDXN(project)?.toString() ?? '' },
113
+ ],
114
+ },
115
+ function: Ref.make(FunctionDefinition.serialize(ProjectFunctions.Agent)),
116
+ enabled: true,
117
+ spec: {
118
+ kind: 'queue',
119
+ queue: project.queue.dxn.toString(),
120
+ },
121
+ input: {
122
+ project: Ref.make(project),
123
+ event: '{{event}}',
124
+ },
125
+ }),
126
+ );
127
+ }
128
+ }
129
+
130
+ await db.flush({ indexes: true });
131
+ };
@@ -0,0 +1,59 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import React, { useMemo } from 'react';
6
+
7
+ import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
8
+ import { AgentFunctions } from '@dxos/assistant-toolkit';
9
+ import { type Prompt } from '@dxos/blueprints';
10
+ import { Obj } from '@dxos/echo';
11
+ import { type FunctionDefinition } from '@dxos/functions';
12
+ import { invariant } from '@dxos/invariant';
13
+ import { invokeFunctionWithTracing, useComputeRuntimeCallback } from '@dxos/plugin-automation';
14
+ import { Panel, Toolbar, useTranslation } from '@dxos/react-ui';
15
+ import { useAttention } from '@dxos/react-ui-attention';
16
+
17
+ import { TemplateEditor } from '../../components';
18
+ import { meta } from '../../meta';
19
+
20
+ export type PromptArticleProps = SurfaceComponentProps<Prompt.Prompt>;
21
+
22
+ export const PromptArticle = ({ role, subject }: PromptArticleProps) => {
23
+ const { t } = useTranslation(meta.id);
24
+ const { hasAttention } = useAttention(Obj.getDXN(subject).toString());
25
+ const db = Obj.getDatabase(subject);
26
+
27
+ const inputData = useMemo<FunctionDefinition.Input<typeof AgentFunctions.Prompt> | undefined>(
28
+ () =>
29
+ subject && db
30
+ ? {
31
+ prompt: db.makeRef(Obj.getDXN(subject)),
32
+ input: {},
33
+ }
34
+ : undefined,
35
+ [subject, db],
36
+ );
37
+
38
+ const handleRun = useComputeRuntimeCallback(
39
+ db?.spaceId,
40
+ () => {
41
+ invariant(inputData);
42
+ return invokeFunctionWithTracing(AgentFunctions.Prompt, inputData);
43
+ },
44
+ [inputData],
45
+ );
46
+
47
+ return (
48
+ <Panel.Root role={role} className='dx-article'>
49
+ <Panel.Toolbar asChild>
50
+ <Toolbar.Root disabled={!hasAttention} onClick={handleRun}>
51
+ <Toolbar.IconButton iconOnly icon='ph--play--regular' label={t('run prompt label')} onClick={handleRun} />
52
+ </Toolbar.Root>
53
+ </Panel.Toolbar>
54
+ <Panel.Content asChild>
55
+ <TemplateEditor id={subject.id} template={subject.instructions} />
56
+ </Panel.Content>
57
+ </Panel.Root>
58
+ );
59
+ };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { PromptArticle } from './PromptArticle';
6
+
7
+ export default PromptArticle;
@@ -10,7 +10,7 @@ import { type InvocationsState } from '@dxos/functions-runtime';
10
10
  import { useTriggerRuntimeControls } from '@dxos/plugin-automation';
11
11
  import { ClientCapabilities } from '@dxos/plugin-client/types';
12
12
  import { StatusBar } from '@dxos/plugin-status-bar';
13
- import { parseId } from '@dxos/react-client/echo';
13
+ import { type Database, parseId } from '@dxos/react-client/echo';
14
14
  import { Icon, Input, Popover, useTranslation } from '@dxos/react-ui';
15
15
  import { Settings } from '@dxos/react-ui-form';
16
16
  import { mx } from '@dxos/ui-theme';
@@ -35,9 +35,9 @@ const getIcon = (state: TriggerStatusState): string => {
35
35
  const getIconClassNames = (state: TriggerStatusState): string | undefined => {
36
36
  switch (state) {
37
37
  case 'running':
38
- return 'animate-pulse text-accentText';
38
+ return 'animate-pulse text-accent-text';
39
39
  case 'error':
40
- return 'text-errorText';
40
+ return 'text-error-text';
41
41
  default:
42
42
  return undefined;
43
43
  }
@@ -54,6 +54,14 @@ const useCurrentSpace = () => {
54
54
  export const TriggerStatus = () => {
55
55
  const space = useCurrentSpace();
56
56
  const db = space?.db;
57
+ if (!db) {
58
+ return null;
59
+ }
60
+
61
+ return <SpaceStatusMain db={db} />;
62
+ };
63
+
64
+ const SpaceStatusMain = ({ db }: { db: Database.Database }) => {
57
65
  const { state, start, stop } = useTriggerRuntimeControls(db);
58
66
  const isRunning = state?.enabled ?? false;
59
67
 
@@ -121,7 +129,7 @@ const TriggerStatusPopover = ({
121
129
  const { t } = useTranslation(meta.id);
122
130
 
123
131
  return (
124
- <div className='min-is-[240px] p-2 space-y-3'>
132
+ <div className='min-w-[240px] p-2 space-y-3'>
125
133
  {/* Runtime Toggle */}
126
134
  <Settings.ItemInput title={t('trigger runtime label')} description={t('trigger runtime description')}>
127
135
  <Input.Switch classNames='justify-self-end' checked={isRunning} onCheckedChange={onToggle} />
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { TriggerStatus } from './TriggerStatus';
6
+
7
+ export default TriggerStatus;
@@ -0,0 +1,15 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type ComponentType, lazy } from 'react';
6
+
7
+ export * from './Project';
8
+
9
+ export const AssistantSettings: ComponentType<any> = lazy(() => import('./AssistantSettings'));
10
+ export const BlueprintArticle: ComponentType<any> = lazy(() => import('./BlueprintArticle'));
11
+ export const ChatCompanion: ComponentType<any> = lazy(() => import('./ChatCompanion'));
12
+ export const ChatContainer: ComponentType<any> = lazy(() => import('./ChatContainer'));
13
+ export const ChatDialog: ComponentType<any> = lazy(() => import('./ChatDialog'));
14
+ export const PromptArticle: ComponentType<any> = lazy(() => import('./PromptArticle'));
15
+ export const TriggerStatus: ComponentType<any> = lazy(() => import('./TriggerStatus'));
@@ -17,8 +17,11 @@ import { distinctBy } from '@dxos/util';
17
17
  */
18
18
  // TODO(burdon): Reconcile with eventual public registry.
19
19
  export const useBlueprintRegistry = () => {
20
- const blueprints = useCapabilities(AppCapabilities.BlueprintDefinition);
21
- return useMemo(() => new Blueprint.Registry(blueprints), [blueprints]);
20
+ const blueprintDefinitions = useCapabilities(AppCapabilities.BlueprintDefinition);
21
+ return useMemo(
22
+ () => new Blueprint.Registry(blueprintDefinitions.map((blueprint) => blueprint.make())),
23
+ [blueprintDefinitions],
24
+ );
22
25
  };
23
26
 
24
27
  export const useBlueprints = ({
@@ -10,8 +10,8 @@ import { EntityKind, SystemTypeAnnotation, getTypeAnnotation } from '@dxos/echo/
10
10
 
11
11
  // TODO(burdon): Pass in filter.
12
12
  // TODO(wittjosiah): Factor out.
13
- export const useFilteredTypes = (db?: Database.Database): Type.Entity.Any[] => {
14
- const [types, setTypes] = useState<Type.Entity.Any[]>([]);
13
+ export const useFilteredTypes = (db?: Database.Database): Type.AnyEntity[] => {
14
+ const [types, setTypes] = useState<Type.AnyEntity[]>([]);
15
15
  useEffect(() => {
16
16
  if (!db) {
17
17
  return;
@@ -4,8 +4,6 @@
4
4
 
5
5
  import { useMemo } from 'react';
6
6
 
7
- import { useCapabilities } from '@dxos/app-framework/ui';
8
- import { AppCapabilities } from '@dxos/app-toolkit';
9
7
  import { type Space } from '@dxos/client/echo';
10
8
  import { Filter, Obj } from '@dxos/echo';
11
9
  import { type ReferencesProvider } from '@dxos/react-ui-chat';
@@ -14,8 +12,6 @@ import { type ReferencesProvider } from '@dxos/react-ui-chat';
14
12
  * Resolve references to objects in the space.
15
13
  */
16
14
  export const useReferencesProvider = (space?: Space): ReferencesProvider | undefined => {
17
- const blueprints = useCapabilities(AppCapabilities.BlueprintDefinition);
18
-
19
15
  return useMemo<ReferencesProvider | undefined>((): ReferencesProvider | undefined => {
20
16
  if (!space) {
21
17
  return undefined;
@@ -52,7 +48,7 @@ export const useReferencesProvider = (space?: Space): ReferencesProvider | undef
52
48
  return { uri, label: Obj.getLabel(object) ?? '' };
53
49
  },
54
50
  } satisfies ReferencesProvider;
55
- }, [space, blueprints]);
51
+ }, [space]);
56
52
  };
57
53
 
58
54
  const stringMatch = (query: string, label: string) => label.toLowerCase().startsWith(query.toLowerCase());
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ export * from './blueprints';
5
6
  export * from './capabilities';
6
7
  export * from './components';
7
8
  export * from './hooks';
@@ -10,8 +10,9 @@ import * as Layer from 'effect/Layer';
10
10
  import * as Schema from 'effect/Schema';
11
11
 
12
12
  import { AiService } from '@dxos/ai';
13
+ import { GenericToolkit } from '@dxos/ai';
13
14
  import { AiServiceTestingPreset } from '@dxos/ai/testing';
14
- import { AiConversation, GenericToolkit, ToolExecutionServices } from '@dxos/assistant';
15
+ import { AiConversation, ToolExecutionServices } from '@dxos/assistant';
15
16
  import { acquireReleaseResource } from '@dxos/effect';
16
17
  import { TestHelpers } from '@dxos/effect/testing';
17
18
  import { CredentialsService, QueueService, TracingService } from '@dxos/functions';
@@ -88,7 +88,7 @@ export class AiChatProcessor {
88
88
  private readonly _pending = Atom.make<Message.Message[]>([]);
89
89
 
90
90
  /** Currently streaming message (from the AI service). */
91
- private readonly _streaming = Atom.make<Option.Option<Message.Message>>(Option.none());
91
+ private readonly _streaming = Atom.make<Message.Message[]>([]);
92
92
 
93
93
  /** Currently active request fiber. */
94
94
  private _fiber: Fiber.Fiber<void, any> | undefined;
@@ -97,18 +97,13 @@ export class AiChatProcessor {
97
97
  private _lastRequest: AiRequest | undefined;
98
98
 
99
99
  /** Streaming state. */
100
- public readonly streaming = Atom.make<boolean>((get) => Option.isSome(get(this._streaming)));
100
+ public readonly streaming = Atom.make<boolean>((get) => get(this._streaming).length > 0);
101
101
 
102
102
  /** Active state. */
103
103
  public readonly active = Atom.make(false);
104
104
 
105
105
  /** Array of Messages (incl. the current message being streamed). */
106
- public readonly messages = Atom.make<Message.Message[]>((get) =>
107
- Option.match(get(this._streaming), {
108
- onNone: () => get(this._pending),
109
- onSome: (streaming) => [...get(this._pending), streaming],
110
- }),
111
- );
106
+ public readonly messages = Atom.make<Message.Message[]>((get) => [...get(this._pending), ...get(this._streaming)]);
112
107
 
113
108
  /** Last error. */
114
109
  public readonly error = Atom.make<Option.Option<Error>>(Option.none());
@@ -273,29 +268,29 @@ export class AiChatProcessor {
273
268
  },
274
269
  };
275
270
 
276
- private _onMessage = Effect.fn(
277
- function* (this: AiChatProcessor, message: Message.Message) {
278
- this._registry.set(this._streaming, Option.none());
279
- this._registry.update(this._pending, (pending) => [...pending, message]);
280
- }.bind(this),
281
- );
282
-
271
+ // TODO(dmaretskyi): Due to the way effect streams do buffering, we cannot rely on _onBlock and _onMessage to be called in order.
283
272
  private _onBlock = Effect.fn(
284
273
  function* (this: AiChatProcessor, block: ContentBlock.Any) {
285
274
  this._registry.update(this._streaming, (streaming) => {
286
- const blocks = streaming.pipe(
287
- Option.map((streaming) => streaming.blocks.filter((b: ContentBlock.Any) => !b.pending)),
288
- Option.getOrElse(() => []),
289
- );
275
+ const blocks = streaming.filter((message) => message.blocks.every((block) => !block.pending));
290
276
 
291
- return Option.some(
277
+ // AiSession emits a message per each assistant content-block, so we do the same.
278
+ return [
279
+ ...blocks,
292
280
  Obj.make(Message.Message, {
293
281
  created: new Date().toISOString(),
294
282
  sender: { role: 'assistant' },
295
- blocks: [...blocks, block],
283
+ blocks: [block],
296
284
  }),
297
- );
285
+ ];
298
286
  });
299
287
  }.bind(this),
300
288
  );
289
+
290
+ private _onMessage = Effect.fn(
291
+ function* (this: AiChatProcessor, message: Message.Message) {
292
+ this._registry.set(this._streaming, []);
293
+ this._registry.update(this._pending, (pending) => [...pending, message]);
294
+ }.bind(this),
295
+ );
301
296
  }
@@ -9,16 +9,16 @@ export const RESEARCH_SEQUENCE_DEFINITION: SequenceDefinition = {
9
9
  steps: [
10
10
  {
11
11
  instructions: 'Research information and entities related to the selected objects.',
12
- tools: [ToolId.make('search/web_search')],
12
+ tools: [ToolId.make('search/web-search')],
13
13
  },
14
14
  {
15
15
  instructions:
16
16
  'Based on your research find matching entires that are already in the graph. Do exaustive research.',
17
- tools: [ToolId.make('search/local_search')],
17
+ tools: [ToolId.make('search/local-search')],
18
18
  },
19
19
  {
20
20
  instructions: 'Add researched data to the graph. Make connections to existing objects.',
21
- tools: [ToolId.make('search/local_search'), ToolId.make('graph/writer')],
21
+ tools: [ToolId.make('search/local-search'), ToolId.make('graph/writer')],
22
22
  },
23
23
  ],
24
24
  };
@@ -6,7 +6,7 @@ import { Obj, type Type } from '@dxos/echo';
6
6
 
7
7
  import { type ApiAuthorization, type BaseServiceRegistry, ServiceType, categoryIcons } from '../types';
8
8
 
9
- const ServiceTypeSchema = ServiceType as unknown as Type.Obj.Any;
9
+ const ServiceTypeSchema = ServiceType as unknown as Type.AnyObj;
10
10
 
11
11
  export class MockServiceRegistry implements BaseServiceRegistry {
12
12
  async queryServices(): Promise<ServiceType[]> {
@@ -2,7 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Chat, Initiative } from '@dxos/assistant-toolkit';
5
+ import { Chat, Project } from '@dxos/assistant-toolkit';
6
6
  import { Blueprint, Prompt } from '@dxos/blueprints';
7
7
  import { Sequence } from '@dxos/conductor';
8
8
  import { Type } from '@dxos/echo';
@@ -53,15 +53,15 @@ export const translations = [
53
53
  'delete object label': 'Delete AI Chat',
54
54
  'object deleted label': 'AI Chat deleted',
55
55
  },
56
- [Initiative.Initiative.typename]: {
57
- 'typename label': 'Initiative',
58
- 'typename label_zero': 'Initiatives',
59
- 'typename label_one': 'Initiative',
60
- 'typename label_other': 'Initiatives',
61
- 'object name placeholder': 'New initiative',
62
- 'rename object label': 'Rename initiative',
63
- 'delete object label': 'Delete initiative',
64
- 'object deleted label': 'Initiative deleted',
56
+ [Project.Project.typename]: {
57
+ 'typename label': 'Project',
58
+ 'typename label_zero': 'Projects',
59
+ 'typename label_one': 'Project',
60
+ 'typename label_other': 'Projects',
61
+ 'object name placeholder': 'New project',
62
+ 'rename object label': 'Rename project',
63
+ 'delete object label': 'Delete project',
64
+ 'object deleted label': 'Project deleted',
65
65
  },
66
66
  // TODO(burdon): Reconcile with react-ui-chat.
67
67
  [meta.id]: {
@@ -106,7 +106,7 @@ export const translations = [
106
106
  'chat update name label': 'Update AI Chat name',
107
107
 
108
108
  'toolkit label': 'Toolkit',
109
- 'summary label': 'Summary',
109
+ 'stats label': 'Stats',
110
110
 
111
111
  'search placeholder': 'Search...',
112
112
  'prompt placeholder': 'Enter question or command...',
@@ -7,9 +7,9 @@ import * as Schema from 'effect/Schema';
7
7
  import { Capability } from '@dxos/app-framework';
8
8
  import { Chat } from '@dxos/assistant-toolkit';
9
9
  import { SpaceSchema } from '@dxos/client/echo';
10
- import { Database, Type } from '@dxos/echo';
10
+ import { Database, Obj } from '@dxos/echo';
11
+ import { Collection } from '@dxos/echo';
11
12
  import { Operation } from '@dxos/operation';
12
- import { Collection } from '@dxos/schema';
13
13
 
14
14
  import { meta } from '../meta';
15
15
 
@@ -61,7 +61,7 @@ export namespace AssistantOperation {
61
61
  services: [Capability.Service],
62
62
  schema: {
63
63
  input: Schema.Struct({
64
- companionTo: Type.Obj,
64
+ companionTo: Obj.Unknown,
65
65
  chat: Chat.Chat.pipe(Schema.optional),
66
66
  }),
67
67
  output: Schema.Void,
@@ -5,7 +5,7 @@
5
5
  import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { ComputeGraph } from '@dxos/conductor';
8
- import { Type } from '@dxos/echo';
8
+ import { Ref, Type } from '@dxos/echo';
9
9
  import { Function } from '@dxos/functions';
10
10
 
11
11
  // TODO(burdon): Factor out and reconcile with https://github.com/dxos/dxos/blob/main/packages/plugins/plugin-token-manager/src/defs/presets.ts#L7
@@ -37,12 +37,12 @@ export type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;
37
37
 
38
38
  const ServiceInterfaceFunction = Schema.Struct({
39
39
  kind: Schema.Literal('function'),
40
- fn: Type.Ref(Function.Function),
40
+ fn: Ref.Ref(Function.Function),
41
41
  });
42
42
 
43
43
  const ServiceInterfaceWorkflow = Schema.Struct({
44
44
  kind: Schema.Literal('workflow'),
45
- workflow: Type.Ref(ComputeGraph),
45
+ workflow: Ref.Ref(ComputeGraph),
46
46
  });
47
47
 
48
48
  const ServiceInterfaceApi = Schema.Struct({
@@ -1,30 +0,0 @@
1
- import {
2
- TemplateEditor
3
- } from "./chunk-DKQMSMBN.mjs";
4
- import "./chunk-EXVT7D4B.mjs";
5
- import "./chunk-J5LGTIGS.mjs";
6
-
7
- // src/components/BlueprintArticle.tsx
8
- import React from "react";
9
- import { Obj } from "@dxos/echo";
10
- import { Layout, Toolbar } from "@dxos/react-ui";
11
- import { useAttention } from "@dxos/react-ui-attention";
12
- var BlueprintArticle = ({ role, subject }) => {
13
- const { hasAttention } = useAttention(Obj.getDXN(subject).toString());
14
- return /* @__PURE__ */ React.createElement(Layout.Main, {
15
- role,
16
- toolbar: true
17
- }, /* @__PURE__ */ React.createElement(Toolbar.Root, {
18
- disabled: !hasAttention
19
- }), /* @__PURE__ */ React.createElement(TemplateEditor, {
20
- id: subject.id,
21
- template: subject.instructions,
22
- classNames: "container-max-width"
23
- }));
24
- };
25
- var BlueprintArticle_default = BlueprintArticle;
26
- export {
27
- BlueprintArticle,
28
- BlueprintArticle_default as default
29
- };
30
- //# sourceMappingURL=BlueprintArticle-6SP2ZWJ2.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/BlueprintArticle.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { type Blueprint } from '@dxos/blueprints';\nimport { Obj } from '@dxos/echo';\nimport { Layout, Toolbar } from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\n\nimport { TemplateEditor } from './TemplateEditor';\n\nexport type BlueprintArticleProps = SurfaceComponentProps<Blueprint.Blueprint>;\n\nexport const BlueprintArticle = ({ role, subject }: BlueprintArticleProps) => {\n const { hasAttention } = useAttention(Obj.getDXN(subject).toString());\n\n return (\n <Layout.Main role={role} toolbar>\n <Toolbar.Root disabled={!hasAttention} />\n <TemplateEditor id={subject.id} template={subject.instructions} classNames='container-max-width' />\n </Layout.Main>\n );\n};\n\nexport default BlueprintArticle;\n"],
5
- "mappings": ";;;;;;;AAIA,OAAOA,WAAW;AAIlB,SAASC,WAAW;AACpB,SAASC,QAAQC,eAAe;AAChC,SAASC,oBAAoB;AAMtB,IAAMC,mBAAmB,CAAC,EAAEC,MAAMC,QAAO,MAAyB;AACvE,QAAM,EAAEC,aAAY,IAAKC,aAAaC,IAAIC,OAAOJ,OAAAA,EAASK,SAAQ,CAAA;AAElE,SACE,sBAAA,cAACC,OAAOC,MAAI;IAACR;IAAYS,SAAAA;KACvB,sBAAA,cAACC,QAAQC,MAAI;IAACC,UAAU,CAACV;MACzB,sBAAA,cAACW,gBAAAA;IAAeC,IAAIb,QAAQa;IAAIC,UAAUd,QAAQe;IAAcC,YAAW;;AAGjF;AAEA,IAAA,2BAAelB;",
6
- "names": ["React", "Obj", "Layout", "Toolbar", "useAttention", "BlueprintArticle", "role", "subject", "hasAttention", "useAttention", "Obj", "getDXN", "toString", "Layout", "Main", "toolbar", "Toolbar", "Root", "disabled", "TemplateEditor", "id", "template", "instructions", "classNames"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChatCompanion.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useAtomCapability, useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Chat } from '@dxos/assistant-toolkit';\nimport { Blueprint } from '@dxos/blueprints';\nimport { getSpace } from '@dxos/client/echo';\nimport { DXN, Filter, Obj, Query, Ref } from '@dxos/echo';\nimport { SpaceOperation } from '@dxos/plugin-space/types';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport { ChatContainer, type ChatEvent } from '../components';\nimport { useBlueprintRegistry, useContextBinder } from '../hooks';\nimport { Assistant, AssistantCapabilities, AssistantOperation } from '../types';\n\nexport type ChatCompanionProps = {\n role?: string;\n data: {\n subject: Chat.Chat | 'assistant-chat';\n companionTo: Obj.Unknown;\n };\n};\n\nexport const ChatCompanion = forwardRef<HTMLDivElement, ChatCompanionProps>(\n ({ role, data }: ChatCompanionProps, forwardedRef) => {\n const { invokePromise } = useOperationInvoker();\n const blueprintRegistry = useBlueprintRegistry();\n const companionTo = data.companionTo;\n\n const space = getSpace(companionTo);\n const [chat, setChat] = useState(data.subject === 'assistant-chat' ? undefined : data.subject);\n\n // Watch the state atom directly to detect when plus button clears the chat selection.\n const state = useAtomCapability(AssistantCapabilities.State);\n const companionToId = Obj.getDXN(companionTo).toString();\n const currentChatState = state?.currentChat[companionToId];\n\n // Track if initial setup has been done (to distinguish initial mount from plus button click).\n // Reset when companionTo changes.\n const initialSetupDoneRef = useRef(false);\n const prevCompanionToIdRef = useRef(companionToId);\n if (prevCompanionToIdRef.current !== companionToId) {\n initialSetupDoneRef.current = false;\n prevCompanionToIdRef.current = companionToId;\n }\n\n // Sync local chat state with the state atom.\n // When currentChatState is undefined (plus button clicked), reset local chat.\n // When data.subject is a Chat object, use it directly.\n // When currentChatState is a different chat, fetch and set it.\n useEffect(() => {\n // If state says no chat selected AND current chat is persisted, reset local state (handles plus button click).\n // Don't reset in-memory chats - they're expected to have currentChatState === undefined.\n if (!currentChatState && chat && getSpace(chat)) {\n setChat(undefined);\n } else if (data.subject !== 'assistant-chat') {\n // If data.subject is a Chat object (resolved from graph), use it.\n setChat(data.subject);\n } else if (currentChatState && space) {\n // currentChatState is set but graph couldn't resolve it - fetch manually.\n const currentChatDxnStr = chat ? Obj.getDXN(chat).toString() : undefined;\n if (currentChatState !== currentChatDxnStr) {\n // Parse DXN and fetch the chat object from the database.\n const parsedDxn = DXN.tryParse(currentChatState);\n if (parsedDxn) {\n const chatRef = space.db.makeRef(parsedDxn);\n const resolvedChat = chatRef?.target;\n if (Obj.instanceOf(Assistant.Chat, resolvedChat)) {\n setChat(resolvedChat);\n }\n }\n }\n }\n }, [currentChatState, data.subject, space, chat]);\n\n const chatQueue = space && chat ? space.queues.get(chat.queue.dxn) : undefined;\n const binder = useContextBinder(chatQueue);\n\n // Initialize companion chat if it doesn't exist, but don't add it to the space immediately.\n useAsyncEffect(async () => {\n if (!space || chat) {\n return;\n }\n\n // Only query for existing chats on initial mount, not when plus button is clicked.\n if (!initialSetupDoneRef.current) {\n // Query for existing companion chats linked to this object.\n const existingChats = await space.db\n .query(Query.select(Filter.id(companionTo.id)).targetOf(Chat.CompanionTo).source())\n .run();\n\n initialSetupDoneRef.current = true;\n\n // Use existing chat if found on initial mount.\n if (existingChats.length > 0) {\n const existingChat = existingChats.at(-1) as Assistant.Chat;\n setChat(existingChat);\n await invokePromise(AssistantOperation.SetCurrentChat, { companionTo, chat: existingChat });\n return;\n }\n }\n\n // Create chat in-memory only - it will be added to space on first message.\n const { data: createResult } = await invokePromise(AssistantOperation.CreateChat, {\n db: space.db,\n addToSpace: false,\n });\n setChat(createResult?.object);\n }, [chat, space, companionTo, invokePromise]);\n\n // Add chat to space and create relation when user submits the first message.\n const handleEvent = useCallback(\n async (event: ChatEvent) => {\n if (!chat || !space) {\n return;\n }\n\n // If chat is not in space yet, persist it on first submit.\n if (event.type === 'submit' && !getSpace(chat)) {\n await invokePromise(SpaceOperation.AddObject, {\n object: chat,\n target: space.db,\n hidden: true,\n });\n await invokePromise(SpaceOperation.AddRelation, {\n db: space.db,\n schema: Chat.CompanionTo,\n source: chat,\n target: companionTo,\n });\n await invokePromise(AssistantOperation.SetCurrentChat, {\n companionTo,\n chat,\n });\n }\n },\n [chat, space, companionTo, invokePromise],\n );\n\n const metadata = useCapabilities(AppCapabilities.Metadata);\n const blueprintKeys = useMemo(\n () =>\n Function.pipe(\n metadata,\n Array.findFirst(\n (\n capability,\n ): capability is {\n id: string;\n metadata: { blueprints?: string[] };\n } => capability.id === Obj.getTypename(companionTo),\n ),\n Option.flatMap((c) => Option.fromNullable(c.metadata.blueprints)),\n Option.getOrElse(() => [] as string[]),\n ),\n [metadata, companionTo],\n );\n const existingBlueprints = useQuery(space?.db, Filter.type(Blueprint.Blueprint));\n const pluginBlueprints = useMemo(\n () => existingBlueprints.filter((blueprint) => blueprintKeys.includes(blueprint.key)),\n [existingBlueprints, blueprintKeys],\n );\n\n // Initialize related blueprints that are not already in the space.\n useAsyncEffect(async () => {\n if (!space) {\n return;\n }\n\n // NOTE: This must be run instead of using the useQuery result to avoid duplicates.\n const existingBlueprints = await space.db.query(Filter.type(Blueprint.Blueprint)).run();\n for (const key of blueprintKeys) {\n const existingBlueprint = existingBlueprints.find((blueprint) => blueprint.key === key);\n if (existingBlueprint) {\n continue;\n }\n\n const blueprint = blueprintRegistry.getByKey(key);\n if (!blueprint) {\n continue;\n }\n\n space.db.add(Obj.clone(blueprint, { deep: true }));\n }\n }, [space, blueprintRegistry, blueprintKeys]);\n\n useAsyncEffect(async () => {\n if (!binder?.isOpen) {\n return;\n }\n\n if (pluginBlueprints.length > 0) {\n await binder.bind({\n blueprints: pluginBlueprints.map((blueprint) => Ref.make(blueprint)),\n });\n }\n\n if (Obj.instanceOf(Blueprint.Blueprint, companionTo)) {\n await binder.bind({ blueprints: [Ref.make(companionTo)] });\n } else {\n await binder.bind({ objects: [Ref.make(companionTo)] });\n }\n }, [binder, companionTo, blueprintKeys]);\n\n return (\n <ChatContainer\n role={role}\n space={space}\n subject={chat}\n companionTo={companionTo}\n onEvent={handleEvent}\n ref={forwardedRef}\n />\n );\n },\n);\n\nexport default ChatCompanion;\n"],
5
- "mappings": "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",
6
- "names": ["Array", "Function", "Option", "React", "forwardRef", "useCallback", "useEffect", "useMemo", "useRef", "useState", "useAtomCapability", "useCapabilities", "useOperationInvoker", "AppCapabilities", "Chat", "Blueprint", "getSpace", "DXN", "Filter", "Obj", "Query", "Ref", "SpaceOperation", "useQuery", "useAsyncEffect", "ChatCompanion", "forwardRef", "role", "data", "forwardedRef", "invokePromise", "useOperationInvoker", "blueprintRegistry", "useBlueprintRegistry", "companionTo", "space", "getSpace", "chat", "setChat", "useState", "subject", "undefined", "state", "useAtomCapability", "AssistantCapabilities", "State", "companionToId", "Obj", "getDXN", "toString", "currentChatState", "currentChat", "initialSetupDoneRef", "useRef", "prevCompanionToIdRef", "current", "useEffect", "currentChatDxnStr", "parsedDxn", "DXN", "tryParse", "chatRef", "db", "makeRef", "resolvedChat", "target", "instanceOf", "Assistant", "Chat", "chatQueue", "queues", "get", "queue", "dxn", "binder", "useContextBinder", "useAsyncEffect", "existingChats", "query", "Query", "select", "Filter", "id", "targetOf", "CompanionTo", "source", "run", "length", "existingChat", "at", "AssistantOperation", "SetCurrentChat", "createResult", "CreateChat", "addToSpace", "object", "handleEvent", "useCallback", "event", "type", "SpaceOperation", "AddObject", "hidden", "AddRelation", "schema", "metadata", "useCapabilities", "AppCapabilities", "Metadata", "blueprintKeys", "useMemo", "pipe", "findFirst", "capability", "getTypename", "flatMap", "c", "fromNullable", "blueprints", "getOrElse", "existingBlueprints", "useQuery", "Blueprint", "pluginBlueprints", "filter", "blueprint", "includes", "key", "existingBlueprint", "find", "getByKey", "add", "clone", "deep", "isOpen", "bind", "map", "Ref", "make", "objects", "ChatContainer", "onEvent", "ref"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChatContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef } from 'react';\n\nimport { useAtomCapability } from '@dxos/app-framework/ui';\nimport { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';\nimport { type Space, getSpace } from '@dxos/client/echo';\nimport { type Obj } from '@dxos/echo';\nimport { Layout } from '@dxos/react-ui';\n\nimport { useBlueprintRegistry, useChatProcessor, useChatServices, useOnline, usePresets } from '../hooks';\nimport { AssistantCapabilities, type ChatType } from '../types';\n\nimport { Chat as ChatComponent, type ChatRootProps } from './Chat';\n\nexport type ChatContainerProps = SurfaceComponentProps<\n ChatType.Chat | undefined,\n {\n space?: Space;\n companionTo?: Obj.Unknown;\n } & Pick<ChatRootProps, 'onEvent'>\n>;\n\nexport const ChatContainer = forwardRef<HTMLDivElement, ChatContainerProps>((props, forwardedRef) => {\n const { role, subject: chat, space: spaceProp, companionTo, onEvent } = props;\n const space = spaceProp ?? getSpace(chat);\n const settings = useAtomCapability(AssistantCapabilities.Settings);\n const services = useChatServices({ id: space?.id, chat });\n const [online, setOnline] = useOnline();\n const { preset, ...chatProps } = usePresets(online);\n const blueprintRegistry = useBlueprintRegistry();\n const processor = useChatProcessor({\n space,\n chat,\n preset,\n services,\n blueprintRegistry,\n settings,\n });\n\n if (!processor) {\n return null;\n }\n\n return (\n <Layout.Main toolbar role={role} ref={forwardedRef}>\n <ChatComponent.Root db={space?.db} chat={chat} processor={processor} onEvent={onEvent}>\n <ChatComponent.Toolbar companionTo={companionTo} />\n <ChatComponent.Viewport classNames='container-max-width'>\n <ChatComponent.Thread />\n <div role='none' className='p-4'>\n <ChatComponent.Prompt\n {...chatProps}\n outline\n preset={preset?.id}\n online={online}\n onOnlineChange={setOnline}\n />\n </div>\n </ChatComponent.Viewport>\n </ChatComponent.Root>\n </Layout.Main>\n );\n});\n\nexport default ChatContainer;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAIA,OAAOA,SAASC,kBAAkB;AAElC,SAASC,yBAAyB;AAElC,SAAqBC,gBAAgB;AAErC,SAASC,cAAc;AAehB,IAAMC,gBAAgBC,2BAA+C,CAACC,OAAOC,iBAAAA;AAClF,QAAM,EAAEC,MAAMC,SAASC,MAAMC,OAAOC,WAAWC,aAAaC,QAAO,IAAKR;AACxE,QAAMK,QAAQC,aAAaG,SAASL,IAAAA;AACpC,QAAMM,WAAWC,kBAAkBC,sBAAsBC,QAAQ;AACjE,QAAMC,WAAWC,gBAAgB;IAAEC,IAAIX,OAAOW;IAAIZ;EAAK,CAAA;AACvD,QAAM,CAACa,QAAQC,SAAAA,IAAaC,UAAAA;AAC5B,QAAM,EAAEC,QAAQ,GAAGC,UAAAA,IAAcC,WAAWL,MAAAA;AAC5C,QAAMM,oBAAoBC,qBAAAA;AAC1B,QAAMC,YAAYC,iBAAiB;IACjCrB;IACAD;IACAgB;IACAN;IACAS;IACAb;EACF,CAAA;AAEA,MAAI,CAACe,WAAW;AACd,WAAO;EACT;AAEA,SACE,sBAAA,cAACE,OAAOC,MAAI;IAACC,SAAAA;IAAQ3B;IAAY4B,KAAK7B;KACpC,sBAAA,cAAC8B,KAAcC,MAAI;IAACC,IAAI5B,OAAO4B;IAAI7B;IAAYqB;IAAsBjB;KACnE,sBAAA,cAACuB,KAAcG,SAAO;IAAC3B;MACvB,sBAAA,cAACwB,KAAcI,UAAQ;IAACC,YAAW;KACjC,sBAAA,cAACL,KAAcM,QAAM,IAAA,GACrB,sBAAA,cAACC,OAAAA;IAAIpC,MAAK;IAAOqC,WAAU;KACzB,sBAAA,cAACR,KAAcS,QAAM;IAClB,GAAGnB;IACJoB,SAAAA;IACArB,QAAQA,QAAQJ;IAChBC;IACAyB,gBAAgBxB;;AAO9B,CAAA;AAEA,IAAA,wBAAepB;",
6
- "names": ["React", "forwardRef", "useAtomCapability", "getSpace", "Layout", "ChatContainer", "forwardRef", "props", "forwardedRef", "role", "subject", "chat", "space", "spaceProp", "companionTo", "onEvent", "getSpace", "settings", "useAtomCapability", "AssistantCapabilities", "Settings", "services", "useChatServices", "id", "online", "setOnline", "useOnline", "preset", "chatProps", "usePresets", "blueprintRegistry", "useBlueprintRegistry", "processor", "useChatProcessor", "Layout", "Main", "toolbar", "ref", "ChatComponent", "Root", "db", "Toolbar", "Viewport", "classNames", "Thread", "div", "className", "Prompt", "outline", "onOnlineChange"]
7
- }