@dxos/plugin-assistant 0.8.4-main.5ea62a8 → 0.8.4-main.ae835ea

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 (441) hide show
  1. package/dist/lib/browser/{BlueprintContainer-OWUSKPRK.mjs → BlueprintContainer-GMSYKGSO.mjs} +13 -6
  2. package/dist/lib/browser/BlueprintContainer-GMSYKGSO.mjs.map +7 -0
  3. package/dist/lib/browser/{ChatCompanion-FRCVSLPP.mjs → ChatCompanion-M3FDKTQM.mjs} +39 -14
  4. package/dist/lib/browser/ChatCompanion-M3FDKTQM.mjs.map +7 -0
  5. package/dist/lib/browser/{ChatContainer-YBJBIVUZ.mjs → ChatContainer-KAH7XITI.mjs} +10 -11
  6. package/dist/lib/browser/ChatContainer-KAH7XITI.mjs.map +7 -0
  7. package/dist/lib/browser/{ChatDialog-MTPJLEHM.mjs → ChatDialog-ZWRGABW6.mjs} +8 -10
  8. package/dist/lib/browser/ChatDialog-ZWRGABW6.mjs.map +7 -0
  9. package/dist/lib/browser/ai-service-ERTZBTP3.mjs +19 -0
  10. package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-builder-7AAWTWGA.mjs → app-graph-builder-R5T7BJPC.mjs} +41 -11
  12. package/dist/lib/browser/app-graph-builder-R5T7BJPC.mjs.map +7 -0
  13. package/dist/lib/browser/blueprint-definition-AGTDXTXO.mjs +13 -0
  14. package/dist/lib/browser/chunk-357IHWQL.mjs +1519 -0
  15. package/dist/lib/browser/chunk-357IHWQL.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-6QMISAU6.mjs → chunk-A2NVNXPL.mjs} +15 -12
  17. package/dist/lib/browser/chunk-A2NVNXPL.mjs.map +7 -0
  18. package/dist/lib/browser/{chunk-V5H5CCZA.mjs → chunk-CQW6UPJM.mjs} +24 -43
  19. package/dist/lib/browser/chunk-CQW6UPJM.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-SMIVXXAI.mjs → chunk-GNI6HL6G.mjs} +37 -20
  21. package/dist/lib/browser/chunk-GNI6HL6G.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-GXHZTOWJ.mjs +378 -0
  23. package/dist/lib/browser/chunk-GXHZTOWJ.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-L5OA5OGS.mjs +262 -0
  25. package/dist/lib/browser/chunk-L5OA5OGS.mjs.map +7 -0
  26. package/dist/lib/browser/{chunk-OYFQS7JM.mjs → chunk-MEN5WTLA.mjs} +64 -39
  27. package/dist/lib/browser/chunk-MEN5WTLA.mjs.map +7 -0
  28. package/dist/lib/browser/{chunk-CFXXQM25.mjs → chunk-PUG24BEC.mjs} +118 -23
  29. package/dist/lib/browser/chunk-PUG24BEC.mjs.map +7 -0
  30. package/dist/lib/browser/{chunk-IJAJRAR7.mjs → chunk-SJJV3HEX.mjs} +2 -4
  31. package/dist/lib/browser/chunk-SJJV3HEX.mjs.map +7 -0
  32. package/dist/lib/browser/chunk-WBG5PTSX.mjs +23 -0
  33. package/dist/lib/browser/chunk-WBG5PTSX.mjs.map +7 -0
  34. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +18 -0
  35. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +7 -0
  36. package/dist/lib/browser/index.mjs +85 -51
  37. package/dist/lib/browser/index.mjs.map +4 -4
  38. package/dist/lib/browser/{intent-resolver-BQO5SVGI.mjs → intent-resolver-3C5TABOX.mjs} +38 -14
  39. package/dist/lib/browser/intent-resolver-3C5TABOX.mjs.map +7 -0
  40. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs +17 -0
  41. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs.map +7 -0
  42. package/dist/lib/browser/meta.json +1 -1
  43. package/dist/lib/browser/{react-surface-VNCD2H7C.mjs → react-surface-EYKA5IFU.mjs} +11 -30
  44. package/dist/lib/browser/react-surface-EYKA5IFU.mjs.map +7 -0
  45. package/dist/lib/browser/{settings-36V3VUMW.mjs → settings-VMVBYZLN.mjs} +5 -5
  46. package/dist/lib/browser/{settings-36V3VUMW.mjs.map → settings-VMVBYZLN.mjs.map} +1 -1
  47. package/dist/lib/browser/{state-D5IVKNYG.mjs → state-CFREPBB6.mjs} +5 -5
  48. package/dist/lib/browser/{state-D5IVKNYG.mjs.map → state-CFREPBB6.mjs.map} +1 -1
  49. package/dist/lib/browser/toolkit-F3NQ7TSI.mjs +21 -0
  50. package/dist/lib/browser/toolkit-F3NQ7TSI.mjs.map +7 -0
  51. package/dist/lib/browser/types/index.mjs +2 -2
  52. package/dist/lib/node-esm/{BlueprintContainer-UFVWCRN6.mjs → BlueprintContainer-6GBLMK4Z.mjs} +13 -6
  53. package/dist/lib/node-esm/BlueprintContainer-6GBLMK4Z.mjs.map +7 -0
  54. package/dist/lib/node-esm/{ChatCompanion-ZNRZEKH5.mjs → ChatCompanion-OV426GCP.mjs} +39 -14
  55. package/dist/lib/node-esm/ChatCompanion-OV426GCP.mjs.map +7 -0
  56. package/dist/lib/node-esm/{ChatContainer-TUCITJJW.mjs → ChatContainer-UKY7NHFY.mjs} +10 -11
  57. package/dist/lib/node-esm/ChatContainer-UKY7NHFY.mjs.map +7 -0
  58. package/dist/lib/node-esm/{ChatDialog-JLM7RDZQ.mjs → ChatDialog-2BDQIEXH.mjs} +8 -10
  59. package/dist/lib/node-esm/ChatDialog-2BDQIEXH.mjs.map +7 -0
  60. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +20 -0
  61. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +7 -0
  62. package/dist/lib/node-esm/{app-graph-builder-PNAFQUYT.mjs → app-graph-builder-I52RYVWH.mjs} +41 -11
  63. package/dist/lib/node-esm/app-graph-builder-I52RYVWH.mjs.map +7 -0
  64. package/dist/lib/node-esm/{blueprint-definition-275J3XL2.mjs → blueprint-definition-CFCUD2VC.mjs} +5 -4
  65. package/dist/lib/node-esm/{chunk-CAQKGW3B.mjs → chunk-2CAETDW2.mjs} +63 -39
  66. package/dist/lib/node-esm/chunk-2CAETDW2.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-RLBN4RNR.mjs → chunk-4J5FYNNM.mjs} +15 -12
  68. package/dist/lib/node-esm/chunk-4J5FYNNM.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-7YOGZI66.mjs → chunk-5ARE4R2I.mjs} +37 -20
  70. package/dist/lib/node-esm/chunk-5ARE4R2I.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-7ZYOYW7F.mjs +264 -0
  72. package/dist/lib/node-esm/chunk-7ZYOYW7F.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-HJPIYMWD.mjs +1520 -0
  74. package/dist/lib/node-esm/chunk-HJPIYMWD.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-UWUUZQWJ.mjs → chunk-O36P4LN5.mjs} +24 -43
  76. package/dist/lib/node-esm/chunk-O36P4LN5.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-WE6KTH72.mjs +25 -0
  78. package/dist/lib/node-esm/chunk-WE6KTH72.mjs.map +7 -0
  79. package/dist/lib/node-esm/{chunk-FNZJJL7G.mjs → chunk-XM4BVQQR.mjs} +118 -23
  80. package/dist/lib/node-esm/chunk-XM4BVQQR.mjs.map +7 -0
  81. package/dist/lib/node-esm/{chunk-YPXEA46Q.mjs → chunk-XQBL2SBL.mjs} +2 -4
  82. package/dist/lib/node-esm/chunk-XQBL2SBL.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-YIO5MEPR.mjs +380 -0
  84. package/dist/lib/node-esm/chunk-YIO5MEPR.mjs.map +7 -0
  85. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs +19 -0
  86. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +7 -0
  87. package/dist/lib/node-esm/index.mjs +85 -51
  88. package/dist/lib/node-esm/index.mjs.map +4 -4
  89. package/dist/lib/node-esm/{intent-resolver-FIS3T5KP.mjs → intent-resolver-HQ27YALS.mjs} +38 -14
  90. package/dist/lib/node-esm/intent-resolver-HQ27YALS.mjs.map +7 -0
  91. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs +18 -0
  92. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs.map +7 -0
  93. package/dist/lib/node-esm/meta.json +1 -1
  94. package/dist/lib/node-esm/{react-surface-4NLRKNBU.mjs → react-surface-UOC3CBPH.mjs} +11 -30
  95. package/dist/lib/node-esm/react-surface-UOC3CBPH.mjs.map +7 -0
  96. package/dist/lib/node-esm/{settings-7ZCZ6AS5.mjs → settings-7AUVNDM2.mjs} +5 -5
  97. package/dist/lib/node-esm/{settings-7ZCZ6AS5.mjs.map → settings-7AUVNDM2.mjs.map} +1 -1
  98. package/dist/lib/node-esm/{state-4VLKPLW3.mjs → state-XXND44OW.mjs} +5 -5
  99. package/dist/lib/node-esm/{state-4VLKPLW3.mjs.map → state-XXND44OW.mjs.map} +1 -1
  100. package/dist/lib/node-esm/toolkit-7CH5UNSQ.mjs +22 -0
  101. package/dist/lib/node-esm/toolkit-7CH5UNSQ.mjs.map +7 -0
  102. package/dist/lib/node-esm/types/index.mjs +2 -2
  103. package/dist/types/src/AssistantPlugin.d.ts +1 -1
  104. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/ai-service.d.ts +2 -3
  106. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/blueprint-definition.d.ts +1 -1
  109. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/capabilities.d.ts +0 -8
  111. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
  117. package/dist/types/src/components/BlueprintContainer.d.ts.map +1 -1
  118. package/dist/types/src/components/Chat/Chat.d.ts +4 -3
  119. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  120. package/dist/types/src/components/ChatCompanion.d.ts.map +1 -1
  121. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
  122. package/dist/types/src/components/ChatThread/ChatThread.d.ts +10 -5
  123. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  124. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +35 -26
  125. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  126. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -1
  127. package/dist/types/src/components/ChatThread/registry.d.ts +11 -0
  128. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -0
  129. package/dist/types/src/components/ChatThread/sync.d.ts +36 -0
  130. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -0
  131. package/dist/types/src/components/ChatThread/sync.test.d.ts +2 -0
  132. package/dist/types/src/components/ChatThread/sync.test.d.ts.map +1 -0
  133. package/dist/types/src/components/ChatToolbar/ChatToolbar.d.ts +6 -0
  134. package/dist/types/src/components/ChatToolbar/ChatToolbar.d.ts.map +1 -0
  135. package/dist/types/src/components/ChatToolbar/index.d.ts +2 -0
  136. package/dist/types/src/components/ChatToolbar/index.d.ts.map +1 -0
  137. package/dist/types/src/components/{Toolbar → ChatToolbar}/useChatToolbarActions.d.ts +1 -3
  138. package/dist/types/src/components/ChatToolbar/useChatToolbarActions.d.ts.map +1 -0
  139. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
  140. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  141. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +21 -14
  142. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  143. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +1 -1
  144. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  145. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +21 -14
  146. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  147. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +19 -0
  148. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -0
  149. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts +2 -0
  150. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts.map +1 -0
  151. package/dist/types/src/components/ToolBlock/index.d.ts +3 -0
  152. package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -0
  153. package/dist/types/src/components/Toolbox/Toolbox.d.ts +2 -2
  154. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  155. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +21 -14
  156. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  157. package/dist/types/src/components/index.d.ts +1 -5
  158. package/dist/types/src/components/index.d.ts.map +1 -1
  159. package/dist/types/src/functions/analysis.d.ts.map +1 -1
  160. package/dist/types/src/functions/index.d.ts +2 -2
  161. package/dist/types/src/functions/index.d.ts.map +1 -1
  162. package/dist/types/src/functions/{list.d.ts → object-list.d.ts} +1 -1
  163. package/dist/types/src/functions/object-list.d.ts.map +1 -0
  164. package/dist/types/src/functions/{load.d.ts → object-load.d.ts} +1 -1
  165. package/dist/types/src/functions/object-load.d.ts.map +1 -0
  166. package/dist/types/src/hooks/index.d.ts +0 -3
  167. package/dist/types/src/hooks/index.d.ts.map +1 -1
  168. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +2 -1
  169. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  170. package/dist/types/src/hooks/useChatProcessor.d.ts +2 -2
  171. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  172. package/dist/types/src/hooks/useChatServices.d.ts +2 -2
  173. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  174. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  175. package/dist/types/src/index.d.ts +2 -0
  176. package/dist/types/src/index.d.ts.map +1 -1
  177. package/dist/types/src/meta.d.ts +1 -2
  178. package/dist/types/src/meta.d.ts.map +1 -1
  179. package/dist/types/src/processor/index.d.ts +1 -0
  180. package/dist/types/src/processor/index.d.ts.map +1 -1
  181. package/dist/types/src/processor/presets.d.ts +1 -1
  182. package/dist/types/src/processor/presets.d.ts.map +1 -1
  183. package/dist/types/src/processor/processor.d.ts +11 -17
  184. package/dist/types/src/processor/processor.d.ts.map +1 -1
  185. package/dist/types/src/processor/update-name.d.ts +10 -0
  186. package/dist/types/src/processor/update-name.d.ts.map +1 -0
  187. package/dist/types/src/testing/index.d.ts +1 -2
  188. package/dist/types/src/testing/index.d.ts.map +1 -1
  189. package/dist/types/src/testing/test-generator.d.ts +7 -0
  190. package/dist/types/src/testing/test-generator.d.ts.map +1 -0
  191. package/dist/types/src/testing/test-services.d.ts +2 -2
  192. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  193. package/dist/types/src/toolkits/AssistantToolkit.d.ts +21 -0
  194. package/dist/types/src/toolkits/AssistantToolkit.d.ts.map +1 -0
  195. package/dist/types/src/toolkits/SystemToolkit.d.ts +69 -0
  196. package/dist/types/src/toolkits/SystemToolkit.d.ts.map +1 -0
  197. package/dist/types/src/toolkits/index.d.ts +3 -0
  198. package/dist/types/src/toolkits/index.d.ts.map +1 -0
  199. package/dist/types/src/translations.d.ts +6 -4
  200. package/dist/types/src/translations.d.ts.map +1 -1
  201. package/dist/types/src/types/Assistant.d.ts +15 -9
  202. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  203. package/dist/types/src/types/AssistantAction.d.ts +18 -6
  204. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  205. package/dist/types/src/types/service.d.ts +12 -12
  206. package/dist/types/src/types/service.d.ts.map +1 -1
  207. package/dist/types/tsconfig.tsbuildinfo +1 -1
  208. package/package.json +93 -110
  209. package/src/AssistantPlugin.tsx +140 -129
  210. package/src/capabilities/ai-service.ts +6 -7
  211. package/src/capabilities/app-graph-builder.ts +36 -4
  212. package/src/capabilities/blueprint-definition.ts +39 -15
  213. package/src/capabilities/capabilities.ts +0 -13
  214. package/src/capabilities/edge-model-resolver.ts +5 -7
  215. package/src/capabilities/intent-resolver.ts +33 -6
  216. package/src/capabilities/local-model-resolver.ts +6 -8
  217. package/src/capabilities/react-surface.tsx +1 -21
  218. package/src/capabilities/toolkit.ts +10 -154
  219. package/src/components/BlueprintContainer.tsx +8 -2
  220. package/src/components/Chat/Chat.tsx +72 -70
  221. package/src/components/ChatCompanion.tsx +33 -8
  222. package/src/components/ChatContainer.tsx +4 -4
  223. package/src/components/ChatDialog.tsx +8 -8
  224. package/src/components/ChatProgress/ChatProgress.tsx +2 -3
  225. package/src/components/ChatPrompt/ChatOptions.tsx +17 -25
  226. package/src/components/ChatThread/ChatThread.stories.tsx +75 -229
  227. package/src/components/ChatThread/ChatThread.tsx +64 -46
  228. package/src/components/ChatThread/Link.tsx +11 -8
  229. package/src/components/ChatThread/registry.tsx +184 -0
  230. package/src/components/ChatThread/sync.test.ts +81 -0
  231. package/src/components/ChatThread/sync.ts +113 -0
  232. package/src/components/{Toolbar/Toolbar.tsx → ChatToolbar/ChatToolbar.tsx} +5 -2
  233. package/src/components/{Toolbar → ChatToolbar}/index.ts +1 -1
  234. package/src/components/{Toolbar → ChatToolbar}/useChatToolbarActions.ts +2 -1
  235. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +5 -5
  236. package/src/components/TemplateEditor/TemplateEditor.tsx +18 -10
  237. package/src/components/TemplateEditor/TemplateForm.stories.tsx +3 -5
  238. package/src/components/TemplateEditor/TemplateForm.tsx +1 -1
  239. package/src/components/TemplateEditor/handlebars-extension.ts +12 -11
  240. package/src/components/{ChatThread → ToolBlock}/ToolBlock.tsx +31 -26
  241. package/src/components/ToolBlock/ToolBlockWidget.tsx +5 -0
  242. package/src/components/ToolBlock/index.ts +6 -0
  243. package/src/components/Toolbox/Toolbox.stories.tsx +4 -7
  244. package/src/components/Toolbox/Toolbox.tsx +3 -3
  245. package/src/components/index.ts +1 -3
  246. package/src/functions/analysis.ts +4 -2
  247. package/src/functions/index.ts +2 -2
  248. package/src/functions/{list.ts → object-list.ts} +6 -4
  249. package/src/functions/{load.ts → object-load.ts} +9 -7
  250. package/src/hooks/index.ts +0 -3
  251. package/src/hooks/useBlueprintRegistry.ts +17 -3
  252. package/src/hooks/useChatProcessor.ts +13 -5
  253. package/src/hooks/useChatServices.ts +26 -42
  254. package/src/hooks/useContextBinder.ts +17 -5
  255. package/src/hooks/useItemTypes.ts +1 -1
  256. package/src/index.ts +2 -0
  257. package/src/meta.ts +9 -6
  258. package/src/processor/index.ts +1 -0
  259. package/src/processor/presets.ts +1 -1
  260. package/src/processor/processor.test.ts +21 -17
  261. package/src/processor/processor.ts +30 -57
  262. package/src/processor/update-name.ts +57 -0
  263. package/src/queue-logger.ts +5 -5
  264. package/src/testing/index.ts +1 -2
  265. package/src/testing/test-generator.ts +261 -0
  266. package/src/testing/test-services.ts +2 -8
  267. package/src/toolkits/AssistantToolkit.ts +55 -0
  268. package/src/toolkits/SystemToolkit.ts +292 -0
  269. package/src/toolkits/index.ts +6 -0
  270. package/src/translations.ts +6 -5
  271. package/src/types/Assistant.ts +10 -8
  272. package/src/types/AssistantAction.ts +10 -2
  273. package/src/types/service.ts +17 -9
  274. package/dist/lib/browser/BlueprintContainer-OWUSKPRK.mjs.map +0 -7
  275. package/dist/lib/browser/ChatCompanion-FRCVSLPP.mjs.map +0 -7
  276. package/dist/lib/browser/ChatContainer-YBJBIVUZ.mjs.map +0 -7
  277. package/dist/lib/browser/ChatDialog-MTPJLEHM.mjs.map +0 -7
  278. package/dist/lib/browser/SequenceContainer-TF5QNXYM.mjs +0 -150
  279. package/dist/lib/browser/SequenceContainer-TF5QNXYM.mjs.map +0 -7
  280. package/dist/lib/browser/ai-service-NRZPTUHO.mjs +0 -22
  281. package/dist/lib/browser/ai-service-NRZPTUHO.mjs.map +0 -7
  282. package/dist/lib/browser/app-graph-builder-7AAWTWGA.mjs.map +0 -7
  283. package/dist/lib/browser/blueprint-definition-CRZPIA5A.mjs +0 -12
  284. package/dist/lib/browser/chunk-6QMISAU6.mjs.map +0 -7
  285. package/dist/lib/browser/chunk-CFXXQM25.mjs.map +0 -7
  286. package/dist/lib/browser/chunk-IJAJRAR7.mjs.map +0 -7
  287. package/dist/lib/browser/chunk-O4LUJEDV.mjs +0 -20
  288. package/dist/lib/browser/chunk-O4LUJEDV.mjs.map +0 -7
  289. package/dist/lib/browser/chunk-OYFQS7JM.mjs.map +0 -7
  290. package/dist/lib/browser/chunk-SMIVXXAI.mjs.map +0 -7
  291. package/dist/lib/browser/chunk-V5H5CCZA.mjs.map +0 -7
  292. package/dist/lib/browser/chunk-XL557TXF.mjs +0 -2332
  293. package/dist/lib/browser/chunk-XL557TXF.mjs.map +0 -7
  294. package/dist/lib/browser/edge-model-resolver-E5M3CC46.mjs +0 -22
  295. package/dist/lib/browser/edge-model-resolver-E5M3CC46.mjs.map +0 -7
  296. package/dist/lib/browser/intent-resolver-BQO5SVGI.mjs.map +0 -7
  297. package/dist/lib/browser/local-model-resolver-VZ5WZQIC.mjs +0 -21
  298. package/dist/lib/browser/local-model-resolver-VZ5WZQIC.mjs.map +0 -7
  299. package/dist/lib/browser/react-surface-VNCD2H7C.mjs.map +0 -7
  300. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs +0 -191
  301. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs.map +0 -7
  302. package/dist/lib/node-esm/BlueprintContainer-UFVWCRN6.mjs.map +0 -7
  303. package/dist/lib/node-esm/ChatCompanion-ZNRZEKH5.mjs.map +0 -7
  304. package/dist/lib/node-esm/ChatContainer-TUCITJJW.mjs.map +0 -7
  305. package/dist/lib/node-esm/ChatDialog-JLM7RDZQ.mjs.map +0 -7
  306. package/dist/lib/node-esm/SequenceContainer-UXOVZPZO.mjs +0 -151
  307. package/dist/lib/node-esm/SequenceContainer-UXOVZPZO.mjs.map +0 -7
  308. package/dist/lib/node-esm/ai-service-UDEPIPTO.mjs +0 -23
  309. package/dist/lib/node-esm/ai-service-UDEPIPTO.mjs.map +0 -7
  310. package/dist/lib/node-esm/app-graph-builder-PNAFQUYT.mjs.map +0 -7
  311. package/dist/lib/node-esm/chunk-2X6VEO32.mjs +0 -2333
  312. package/dist/lib/node-esm/chunk-2X6VEO32.mjs.map +0 -7
  313. package/dist/lib/node-esm/chunk-7YOGZI66.mjs.map +0 -7
  314. package/dist/lib/node-esm/chunk-CAQKGW3B.mjs.map +0 -7
  315. package/dist/lib/node-esm/chunk-FNZJJL7G.mjs.map +0 -7
  316. package/dist/lib/node-esm/chunk-RLBN4RNR.mjs.map +0 -7
  317. package/dist/lib/node-esm/chunk-UWUUZQWJ.mjs.map +0 -7
  318. package/dist/lib/node-esm/chunk-VFY2JG62.mjs +0 -22
  319. package/dist/lib/node-esm/chunk-VFY2JG62.mjs.map +0 -7
  320. package/dist/lib/node-esm/chunk-YPXEA46Q.mjs.map +0 -7
  321. package/dist/lib/node-esm/edge-model-resolver-SZHDLXCT.mjs +0 -23
  322. package/dist/lib/node-esm/edge-model-resolver-SZHDLXCT.mjs.map +0 -7
  323. package/dist/lib/node-esm/intent-resolver-FIS3T5KP.mjs.map +0 -7
  324. package/dist/lib/node-esm/local-model-resolver-2KCBKMYA.mjs +0 -22
  325. package/dist/lib/node-esm/local-model-resolver-2KCBKMYA.mjs.map +0 -7
  326. package/dist/lib/node-esm/react-surface-4NLRKNBU.mjs.map +0 -7
  327. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs +0 -192
  328. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs.map +0 -7
  329. package/dist/types/src/components/ChatThread/ChatMessage.d.ts +0 -33
  330. package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +0 -1
  331. package/dist/types/src/components/ChatThread/ToolBlock.d.ts +0 -19
  332. package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +0 -1
  333. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  334. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  335. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  336. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  337. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  338. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  339. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -263
  340. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  341. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  342. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  343. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -4
  344. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  345. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  346. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  347. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +0 -1
  348. package/dist/types/src/execution-graph/execution-graph.d.ts +0 -21
  349. package/dist/types/src/execution-graph/execution-graph.d.ts.map +0 -1
  350. package/dist/types/src/execution-graph/index.d.ts +0 -2
  351. package/dist/types/src/execution-graph/index.d.ts.map +0 -1
  352. package/dist/types/src/functions/list.d.ts.map +0 -1
  353. package/dist/types/src/functions/load.d.ts.map +0 -1
  354. package/dist/types/src/hooks/useExecutionGraph.d.ts +0 -7
  355. package/dist/types/src/hooks/useExecutionGraph.d.ts.map +0 -1
  356. package/dist/types/src/hooks/useMatcherExtension.d.ts +0 -3
  357. package/dist/types/src/hooks/useMatcherExtension.d.ts.map +0 -1
  358. package/dist/types/src/hooks/useResolveRef.d.ts +0 -4
  359. package/dist/types/src/hooks/useResolveRef.d.ts.map +0 -1
  360. package/dist/types/src/parser/filter-generator.d.ts +0 -4
  361. package/dist/types/src/parser/filter-generator.d.ts.map +0 -1
  362. package/dist/types/src/parser/filter-generator.test.d.ts +0 -2
  363. package/dist/types/src/parser/filter-generator.test.d.ts.map +0 -1
  364. package/dist/types/src/parser/index.d.ts +0 -4
  365. package/dist/types/src/parser/index.d.ts.map +0 -1
  366. package/dist/types/src/parser/query-parser.d.ts +0 -15
  367. package/dist/types/src/parser/query-parser.d.ts.map +0 -1
  368. package/dist/types/src/parser/query-parser.test.d.ts +0 -2
  369. package/dist/types/src/parser/query-parser.test.d.ts.map +0 -1
  370. package/dist/types/src/parser/types.d.ts +0 -24
  371. package/dist/types/src/parser/types.d.ts.map +0 -1
  372. package/dist/types/src/stories/Chat.stories.d.ts +0 -26
  373. package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
  374. package/dist/types/src/stories/components/BlueprintContainer.d.ts +0 -4
  375. package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +0 -1
  376. package/dist/types/src/stories/components/ChatContainer.d.ts +0 -4
  377. package/dist/types/src/stories/components/ChatContainer.d.ts.map +0 -1
  378. package/dist/types/src/stories/components/CommentsContainer.d.ts +0 -4
  379. package/dist/types/src/stories/components/CommentsContainer.d.ts.map +0 -1
  380. package/dist/types/src/stories/components/GraphContainer.d.ts +0 -6
  381. package/dist/types/src/stories/components/GraphContainer.d.ts.map +0 -1
  382. package/dist/types/src/stories/components/LoggingContainer.d.ts +0 -4
  383. package/dist/types/src/stories/components/LoggingContainer.d.ts.map +0 -1
  384. package/dist/types/src/stories/components/MessageContainer.d.ts +0 -4
  385. package/dist/types/src/stories/components/MessageContainer.d.ts.map +0 -1
  386. package/dist/types/src/stories/components/SurfaceContainer.d.ts +0 -8
  387. package/dist/types/src/stories/components/SurfaceContainer.d.ts.map +0 -1
  388. package/dist/types/src/stories/components/TasksContainer.d.ts +0 -4
  389. package/dist/types/src/stories/components/TasksContainer.d.ts.map +0 -1
  390. package/dist/types/src/stories/components/TokenManagerContainer.d.ts +0 -3
  391. package/dist/types/src/stories/components/TokenManagerContainer.d.ts.map +0 -1
  392. package/dist/types/src/stories/components/index.d.ts +0 -11
  393. package/dist/types/src/stories/components/index.d.ts.map +0 -1
  394. package/dist/types/src/stories/components/types.d.ts +0 -7
  395. package/dist/types/src/stories/components/types.d.ts.map +0 -1
  396. package/dist/types/src/stories/testing/data.d.ts +0 -5
  397. package/dist/types/src/stories/testing/data.d.ts.map +0 -1
  398. package/dist/types/src/stories/testing/index.d.ts +0 -3
  399. package/dist/types/src/stories/testing/index.d.ts.map +0 -1
  400. package/dist/types/src/stories/testing/testing.d.ts +0 -44
  401. package/dist/types/src/stories/testing/testing.d.ts.map +0 -1
  402. package/dist/types/src/testing/test-data.d.ts +0 -4
  403. package/dist/types/src/testing/test-data.d.ts.map +0 -1
  404. package/dist/types/src/testing/test-functions.d.ts +0 -6
  405. package/dist/types/src/testing/test-functions.d.ts.map +0 -1
  406. package/src/components/ChatThread/ChatMessage.tsx +0 -334
  407. package/src/components/PromptSettings.tsx +0 -90
  408. package/src/components/SequenceContainer.tsx +0 -131
  409. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -33
  410. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  411. package/src/components/SequenceEditor/index.ts +0 -5
  412. package/src/execution-graph/execution-graph.ts +0 -211
  413. package/src/execution-graph/index.ts +0 -5
  414. package/src/hooks/useExecutionGraph.ts +0 -20
  415. package/src/hooks/useMatcherExtension.ts +0 -45
  416. package/src/hooks/useResolveRef.ts +0 -33
  417. package/src/parser/filter-generator.test.ts +0 -32
  418. package/src/parser/filter-generator.ts +0 -76
  419. package/src/parser/index.ts +0 -7
  420. package/src/parser/query-parser.test.ts +0 -139
  421. package/src/parser/query-parser.ts +0 -199
  422. package/src/parser/types.ts +0 -36
  423. package/src/stories/Chat.stories.tsx +0 -469
  424. package/src/stories/components/BlueprintContainer.tsx +0 -32
  425. package/src/stories/components/ChatContainer.tsx +0 -57
  426. package/src/stories/components/CommentsContainer.tsx +0 -25
  427. package/src/stories/components/GraphContainer.tsx +0 -118
  428. package/src/stories/components/LoggingContainer.tsx +0 -21
  429. package/src/stories/components/MessageContainer.tsx +0 -27
  430. package/src/stories/components/SurfaceContainer.tsx +0 -52
  431. package/src/stories/components/TasksContainer.tsx +0 -49
  432. package/src/stories/components/TokenManagerContainer.tsx +0 -14
  433. package/src/stories/components/index.ts +0 -15
  434. package/src/stories/components/types.ts +0 -11
  435. package/src/stories/testing/data.ts +0 -142
  436. package/src/stories/testing/index.ts +0 -6
  437. package/src/stories/testing/testing.tsx +0 -254
  438. package/src/testing/test-data.ts +0 -109
  439. package/src/testing/test-functions.ts +0 -16
  440. /package/dist/lib/browser/{blueprint-definition-CRZPIA5A.mjs.map → blueprint-definition-AGTDXTXO.mjs.map} +0 -0
  441. /package/dist/lib/node-esm/{blueprint-definition-275J3XL2.mjs.map → blueprint-definition-CFCUD2VC.mjs.map} +0 -0
@@ -0,0 +1,55 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Tool from '@effect/ai/Tool';
6
+ import * as Toolkit from '@effect/ai/Toolkit';
7
+ import * as Effect from 'effect/Effect';
8
+ import type * as Layer from 'effect/Layer';
9
+ import * as Record from 'effect/Record';
10
+ import * as Schema from 'effect/Schema';
11
+
12
+ import { type PluginContext } from '@dxos/app-framework';
13
+ import { AiContextService, ArtifactId } from '@dxos/assistant';
14
+ import { Ref } from '@dxos/echo';
15
+ import { DatabaseService } from '@dxos/functions';
16
+ import { trim } from '@dxos/util';
17
+
18
+ const Toolkit$ = Toolkit.make(
19
+ Tool.make('add-to-context', {
20
+ description: trim`
21
+ Adds the object to the chat context.
22
+ `,
23
+ parameters: {
24
+ id: ArtifactId.annotations({
25
+ description: 'The ID of the document to read.',
26
+ }),
27
+ },
28
+ success: Schema.Void,
29
+ failure: Schema.Never,
30
+ dependencies: [AiContextService, DatabaseService],
31
+ }),
32
+ );
33
+
34
+ export namespace AssistantToolkit {
35
+ export const Toolkit = Toolkit$;
36
+
37
+ export const tools = Record.keys(Toolkit$.tools);
38
+
39
+ export const createLayer = (
40
+ _context: PluginContext,
41
+ ): Layer.Layer<Tool.Handler<any>, never, AiContextService | DatabaseService> =>
42
+ Toolkit$.toLayer({
43
+ 'add-to-context': Effect.fnUntraced(function* ({ id }) {
44
+ const { binder } = yield* AiContextService;
45
+ const { db } = yield* DatabaseService;
46
+ const ref = Ref.fromDXN(ArtifactId.toDXN(id, db.spaceId));
47
+ yield* Effect.promise(() =>
48
+ binder.bind({
49
+ blueprints: [],
50
+ objects: [ref],
51
+ }),
52
+ );
53
+ }),
54
+ });
55
+ }
@@ -0,0 +1,292 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Tool from '@effect/ai/Tool';
6
+ import * as Toolkit from '@effect/ai/Toolkit';
7
+ import * as Effect from 'effect/Effect';
8
+ import type * as Layer from 'effect/Layer';
9
+ import * as Record from 'effect/Record';
10
+ import * as Schema from 'effect/Schema';
11
+
12
+ import { Capabilities, type PluginContext, createIntent } from '@dxos/app-framework';
13
+ import { ArtifactId } from '@dxos/assistant';
14
+ import { DXN, Filter, Obj, Relation, SchemaNotFoundError, Tag, Type } from '@dxos/echo';
15
+ import { DatabaseService } from '@dxos/functions';
16
+ import { invariant } from '@dxos/invariant';
17
+ import { ClientCapabilities } from '@dxos/plugin-client';
18
+ import { SpaceCapabilities, getActiveSpace } from '@dxos/plugin-space';
19
+ import { SpaceAction } from '@dxos/plugin-space/types';
20
+ import { DataType } from '@dxos/schema';
21
+ import { trim } from '@dxos/util';
22
+
23
+ // TODO(burdon): Factor out (is there a way to remove plugin deps?)
24
+ // TODO(burdon): Reconcile with functions (currently reuses plugin framework intents).
25
+
26
+ const Toolkit$ = Toolkit.make(
27
+ //
28
+ // Schema
29
+ //
30
+
31
+ Tool.make('schema-list', {
32
+ description: trim`
33
+ Lists schemas definitions.
34
+ `,
35
+ parameters: {
36
+ // TODO(wittjosiah): Remove this once parameter-less tools are fixed.
37
+ limit: Schema.Number,
38
+ },
39
+ // TODO(dmaretskyi): Effect returns ({ result, encodedResult })
40
+ success: Schema.Any,
41
+ failure: Schema.Never,
42
+ }),
43
+
44
+ Tool.make('schema-add', {
45
+ description: trim`
46
+ Adds a schema to the space.
47
+ The name will be used when displayed to the user.
48
+ The typename must be in the format of "example.com/type/Type".
49
+ `,
50
+ parameters: {
51
+ name: Schema.String,
52
+ typename: Schema.String,
53
+ jsonSchema: Schema.Any,
54
+ },
55
+ success: Schema.Any,
56
+ failure: Schema.Never,
57
+ }),
58
+
59
+ //
60
+ // Objects
61
+ //
62
+
63
+ Tool.make('object-create', {
64
+ description: trim`
65
+ Creates a new object and adds it to the current space.
66
+ Get the schema from the schema-list tool and ensure that the data matches the corresponding schema.
67
+ `,
68
+ parameters: {
69
+ typename: Schema.String,
70
+ data: Schema.Any,
71
+ },
72
+ success: Schema.Any,
73
+ failure: Schema.Never,
74
+ }),
75
+
76
+ Tool.make('object-remove', {
77
+ description: trim`
78
+ Removes an object or relation from the database.
79
+ `,
80
+ parameters: {
81
+ id: ArtifactId.annotations({
82
+ description: 'The ID of the object.',
83
+ }),
84
+ },
85
+ success: Schema.Any,
86
+ failure: Schema.Never,
87
+ }),
88
+
89
+ //
90
+ // Relations
91
+ //
92
+
93
+ Tool.make('relation-create', {
94
+ description: trim`
95
+ Creates a new relation and adds it to the current space.
96
+ Get the schema from the schema-list tool and ensure that the data matches the corresponding schema.
97
+ `,
98
+ parameters: {
99
+ typename: Schema.String,
100
+ source: ArtifactId.annotations({
101
+ description: 'The ID of the source object.',
102
+ }),
103
+ target: ArtifactId.annotations({
104
+ description: 'The ID of the target object.',
105
+ }),
106
+ data: Schema.Any.annotations({
107
+ description: 'The data to be stored in the relation.',
108
+ }),
109
+ },
110
+ success: Schema.Any,
111
+ failure: Schema.Never,
112
+ }),
113
+
114
+ //
115
+ // Tags
116
+ //
117
+
118
+ Tool.make('tag-add', {
119
+ description: trim`
120
+ Adds a tag to an object.
121
+ Tags are objects of type ${Tag.Tag.typename}.
122
+ `,
123
+ parameters: {
124
+ tagId: ArtifactId.annotations({
125
+ description: 'The ID of the tag.',
126
+ }),
127
+ objectId: ArtifactId.annotations({
128
+ description: 'The ID of the object.',
129
+ }),
130
+ },
131
+ success: Schema.Any,
132
+ failure: Schema.Never,
133
+ }),
134
+
135
+ Tool.make('tag-remove', {
136
+ description: trim`
137
+ Removes a tag from an object.
138
+ Tags are objects of type ${Tag.Tag.typename}.
139
+ `,
140
+ parameters: {
141
+ tagId: ArtifactId.annotations({
142
+ description: 'The ID of the tag.',
143
+ }),
144
+ objectId: ArtifactId.annotations({
145
+ description: 'The ID of the object.',
146
+ }),
147
+ },
148
+ success: Schema.Any,
149
+ failure: Schema.Never,
150
+ }),
151
+ );
152
+
153
+ export namespace SystemToolkit {
154
+ export const Toolkit = Toolkit$;
155
+
156
+ export const tools = Record.keys(Toolkit$.tools);
157
+
158
+ export const createLayer = (context: PluginContext): Layer.Layer<Tool.Handler<any>, never, never> =>
159
+ Toolkit$.toLayer({
160
+ 'schema-list': () => {
161
+ const space = getActiveSpace(context);
162
+ invariant(space, 'No active space');
163
+
164
+ return Effect.gen(function* () {
165
+ const registered = context
166
+ // TODO(burdon): Can we remove plugin dependency? Get from layer?
167
+ .getCapabilities(ClientCapabilities.Schema)
168
+ .flat()
169
+ .map((schema) => {
170
+ const meta = Type.getMeta(schema);
171
+ return {
172
+ typename: Type.getTypename(schema),
173
+ jsonSchema: Type.toJsonSchema(schema),
174
+ kind: meta?.sourceSchema ? 'relation' : 'record',
175
+ };
176
+ });
177
+
178
+ // TODO(burdon): Can we remove plugin dependency? Get from layer?
179
+ const forms = context.getCapabilities(SpaceCapabilities.ObjectForm).map((form) => ({
180
+ typename: Type.getTypename(form.objectSchema),
181
+ jsonSchema: Type.toJsonSchema(form.objectSchema),
182
+ kind: 'item',
183
+ }));
184
+
185
+ const schemas = [...registered, ...forms];
186
+ if (space) {
187
+ const { objects } = yield* DatabaseService.runQuery(Filter.type(DataType.StoredSchema));
188
+ schemas.push(
189
+ ...objects.map((object) => ({
190
+ typename: object.typename,
191
+ jsonSchema: object.jsonSchema,
192
+ kind: 'record',
193
+ })),
194
+ );
195
+ }
196
+
197
+ return schemas;
198
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)));
199
+ },
200
+
201
+ 'schema-add': ({ name, typename, jsonSchema }) => {
202
+ return Effect.gen(function* () {
203
+ const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
204
+ const space = getActiveSpace(context);
205
+ invariant(space, 'No active space');
206
+
207
+ const schema = Type.toEffectSchema(jsonSchema).pipe(Type.Obj({ typename, version: '0.1.0' }));
208
+ yield* dispatch(createIntent(SpaceAction.AddSchema, { space, name, typename, schema }));
209
+ }).pipe(Effect.orDie);
210
+ },
211
+
212
+ 'object-create': ({ typename, data }) => {
213
+ const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
214
+ const space = getActiveSpace(context);
215
+ invariant(space, 'No active space');
216
+
217
+ return Effect.gen(function* () {
218
+ const schemas = context.getCapabilities(ClientCapabilities.Schema).flat();
219
+ const { objects } = yield* DatabaseService.runQuery(Filter.type(DataType.StoredSchema));
220
+ schemas.push(...objects.map((object) => Type.toEffectSchema(object.jsonSchema)));
221
+ const schema = schemas.find((schema) => Type.getTypename(schema) === typename);
222
+ if (!schema) {
223
+ throw new SchemaNotFoundError(typename);
224
+ }
225
+
226
+ const object = Obj.make(schema, data);
227
+ yield* dispatch(createIntent(SpaceAction.AddObject, { object, target: space, hidden: true }));
228
+ return object;
229
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.orDie);
230
+ },
231
+
232
+ 'object-remove': ({ id }) => {
233
+ const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
234
+ const space = getActiveSpace(context);
235
+ invariant(space, 'No active space');
236
+
237
+ return Effect.gen(function* () {
238
+ const object = yield* DatabaseService.resolve(DXN.parse(id));
239
+ yield* dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object] }));
240
+ return object;
241
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.orDie);
242
+ },
243
+
244
+ 'relation-create': ({ typename, source, target, data }) => {
245
+ const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
246
+ const space = getActiveSpace(context);
247
+ invariant(space, 'No active space');
248
+
249
+ return Effect.gen(function* () {
250
+ const schemas = context.getCapabilities(ClientCapabilities.Schema).flat();
251
+ const schema = schemas.find((schema) => Type.getTypename(schema) === typename);
252
+ if (!schema) {
253
+ throw new SchemaNotFoundError(typename);
254
+ }
255
+
256
+ const sourceObj = yield* DatabaseService.resolve(DXN.parse(source));
257
+ const targetObj = yield* DatabaseService.resolve(DXN.parse(target));
258
+ const relation = Relation.make(schema, {
259
+ [Relation.Source]: sourceObj,
260
+ [Relation.Target]: targetObj,
261
+ ...data,
262
+ });
263
+ yield* dispatch(createIntent(SpaceAction.AddObject, { object: relation, target: space, hidden: true }));
264
+ return relation;
265
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.orDie);
266
+ },
267
+
268
+ 'tag-add': ({ tagId, objectId }) => {
269
+ const space = getActiveSpace(context);
270
+ invariant(space, 'No active space');
271
+
272
+ return Effect.gen(function* () {
273
+ const object = yield* DatabaseService.resolve(DXN.parse(objectId));
274
+ const meta = Obj.getMeta(object);
275
+ meta.tags = [DXN.parse(tagId).toString()];
276
+ return object;
277
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.orDie);
278
+ },
279
+
280
+ 'tag-remove': ({ tagId, objectId }) => {
281
+ const space = getActiveSpace(context);
282
+ invariant(space, 'No active space');
283
+
284
+ return Effect.gen(function* () {
285
+ const object = yield* DatabaseService.resolve(DXN.parse(objectId));
286
+ const meta = Obj.getMeta(object);
287
+ meta.tags = meta.tags?.filter((tag) => tag !== DXN.parse(tagId).toString());
288
+ return object;
289
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.orDie);
290
+ },
291
+ });
292
+ }
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './AssistantToolkit';
6
+ export * from './SystemToolkit';
@@ -60,6 +60,10 @@ export const translations = [
60
60
  'service registry label': 'Service Registry',
61
61
  'type filter placeholder': 'Type',
62
62
  'any type filter label': 'Any',
63
+ 'no blueprint message': 'No active blueprints',
64
+ 'calling tool label': 'Calling tool...',
65
+ 'calling label': 'Calling',
66
+ 'error label': 'Error',
63
67
 
64
68
  'sequence logs label': 'Logs',
65
69
 
@@ -77,16 +81,13 @@ export const translations = [
77
81
  'button run': 'Run',
78
82
  'button new thread': 'New Chat',
79
83
  'chat history label': 'Chat History',
84
+ 'chat update name label': 'Update AI Chat name',
80
85
 
81
86
  'toolkit label': 'Toolkit',
82
87
  'summary label': 'Summary',
83
88
 
84
- 'calling tool label': 'Calling tool...',
85
- 'calling label': 'Calling',
86
- 'error label': 'Error',
87
-
88
89
  'search placeholder': 'Search...',
89
- 'prompt placeholder': 'Ask or search for anything...',
90
+ 'prompt placeholder': 'Enter question or command...',
90
91
  'button context objects': 'Add to context',
91
92
  'button context settings': 'Chat settings',
92
93
  'button microphone': 'Click to speak',
@@ -2,11 +2,11 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
 
7
- import { Queue } from '@dxos/client/echo';
8
- import { Type } from '@dxos/echo';
9
- import { LabelAnnotation } from '@dxos/echo-schema';
7
+ import { Obj, Ref, Type } from '@dxos/echo';
8
+ import { FormAnnotation, LabelAnnotation } from '@dxos/echo/internal';
9
+ import { Queue } from '@dxos/echo-db';
10
10
 
11
11
  import { LLM_PROVIDERS } from './defs';
12
12
 
@@ -14,11 +14,10 @@ import { LLM_PROVIDERS } from './defs';
14
14
  * AI chat.
15
15
  */
16
16
  export const Chat = Schema.Struct({
17
- id: Type.ObjectId,
18
- name: Schema.optional(Schema.String),
19
- queue: Type.Ref(Queue),
17
+ name: Schema.String.pipe(Schema.optional),
18
+ queue: Type.Ref(Queue).pipe(FormAnnotation.set(false)),
20
19
  // TODO(dmaretskyi): Eventually this and the message queue will be the same.
21
- traceQueue: Schema.optional(Type.Ref(Queue)),
20
+ traceQueue: Type.Ref(Queue).pipe(FormAnnotation.set(false), Schema.optional),
22
21
  }).pipe(
23
22
  Type.Obj({
24
23
  typename: 'dxos.org/type/assistant/Chat',
@@ -29,6 +28,9 @@ export const Chat = Schema.Struct({
29
28
 
30
29
  export interface Chat extends Schema.Schema.Type<typeof Chat> {}
31
30
 
31
+ export const makeChat = ({ name, queue }: { name?: string; queue: Queue }) =>
32
+ Obj.make(Chat, { name, queue: Ref.fromDXN(queue.dxn) });
33
+
32
34
  /**
33
35
  * Relation between a Chat and companion objects (e.g., artifacts).
34
36
  */
@@ -2,7 +2,7 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { Blueprint } from '@dxos/blueprints';
8
8
  import { EchoObjectSchema, SpaceSchema } from '@dxos/client/echo';
@@ -13,7 +13,8 @@ import { meta } from '../meta';
13
13
 
14
14
  import { Chat } from './Assistant';
15
15
 
16
- export class OnSpaceCreated extends Schema.TaggedClass<OnSpaceCreated>()(`${meta.id}/on-space-created`, {
16
+ // TODO(burdon): Name?
17
+ export class onCreateSpace extends Schema.TaggedClass<onCreateSpace>()(`${meta.id}/on-space-created`, {
17
18
  input: Schema.Struct({
18
19
  space: SpaceSchema,
19
20
  rootCollection: DataType.Collection,
@@ -31,6 +32,13 @@ export class CreateChat extends Schema.TaggedClass<CreateChat>()(`${meta.id}/act
31
32
  }),
32
33
  }) {}
33
34
 
35
+ export class UpdateChatName extends Schema.TaggedClass<UpdateChatName>()(`${meta.id}/action/update-name`, {
36
+ input: Schema.Struct({
37
+ chat: Chat,
38
+ }),
39
+ output: Schema.Void,
40
+ }) {}
41
+
34
42
  export const BlueprintForm = Schema.Struct({
35
43
  key: Schema.String,
36
44
  name: Schema.String,
@@ -2,12 +2,14 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { ComputeGraph } from '@dxos/conductor';
8
8
  import { Type } from '@dxos/echo';
9
- import { TypedObject } from '@dxos/echo-schema';
10
- import { FunctionType } from '@dxos/functions';
9
+ import { TypedObject } from '@dxos/echo/internal';
10
+ import { Function } from '@dxos/functions';
11
+
12
+ // TODO(burdon): Factor out and reconcile with https://github.com/dxos/dxos/blob/main/packages/plugins/plugin-token-manager/src/defs/presets.ts#L7
11
13
 
12
14
  const ApiAuthorizationKey = Schema.Struct({
13
15
  type: Schema.Literal('api-key'),
@@ -36,7 +38,7 @@ export type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;
36
38
 
37
39
  const ServiceInterfaceFunction = Schema.Struct({
38
40
  kind: Schema.Literal('function'),
39
- fn: Type.Ref(FunctionType),
41
+ fn: Type.Ref(Function.Function),
40
42
  });
41
43
 
42
44
  const ServiceInterfaceWorkflow = Schema.Struct({
@@ -63,7 +65,13 @@ const ServiceInterfaceApi = Schema.Struct({
63
65
  authorization: Schema.optional(ApiAuthorization),
64
66
  });
65
67
 
66
- const ServiceInterface = Schema.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
68
+ const ServiceInterface = Schema.Union(
69
+ // Service types.
70
+ ServiceInterfaceFunction,
71
+ ServiceInterfaceWorkflow,
72
+ ServiceInterfaceApi,
73
+ );
74
+
67
75
  export type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;
68
76
 
69
77
  export class ServiceType extends TypedObject({
@@ -86,15 +94,15 @@ export class ServiceType extends TypedObject({
86
94
  // Service Registry
87
95
  //
88
96
 
97
+ export interface BaseServiceRegistry {
98
+ queryServices(query?: ServiceQuery): Promise<ServiceType[]>;
99
+ }
100
+
89
101
  export type ServiceQuery = {
90
102
  name?: string;
91
103
  category?: string;
92
104
  };
93
105
 
94
- export interface BaseServiceRegistry {
95
- queryServices(query?: ServiceQuery): Promise<ServiceType[]>;
96
- }
97
-
98
106
  export const categoryIcons: Record<string, string> = {
99
107
  finance: 'ph--bank--regular',
100
108
  health: 'ph--heart--regular',
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/BlueprintContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Blueprint } from '@dxos/blueprints';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { TemplateEditor } from './TemplateEditor';\n\nexport type BlueprintContainerProps = {\n blueprint: Blueprint.Blueprint;\n};\n\nexport const BlueprintContainer = ({ blueprint }: BlueprintContainerProps) => {\n return (\n <StackItem.Content classNames='container-max-width'>\n <TemplateEditor id={blueprint.id} template={blueprint.instructions} />\n </StackItem.Content>\n );\n};\n\nexport default BlueprintContainer;\n"],
5
- "mappings": ";;;;;;;;AAIA,OAAOA,WAAW;AAGlB,SAASC,iBAAiB;AAQnB,IAAMC,qBAAqB,CAAC,EAAEC,UAAS,MAA2B;;;AACvE,WACE,sBAAA,cAACC,UAAUC,SAAO;MAACC,YAAW;OAC5B,sBAAA,cAACC,gBAAAA;MAAeC,IAAIL,UAAUK;MAAIC,UAAUN,UAAUO;;;;;AAG5D;AAEA,IAAA,6BAAeR;",
6
- "names": ["React", "StackItem", "BlueprintContainer", "blueprint", "StackItem", "Content", "classNames", "TemplateEditor", "id", "template", "instructions"]
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 { Array, Effect, Option, pipe } from 'effect';\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, createIntent, useCapabilities, useIntentDispatcher } from '@dxos/app-framework';\nimport { Blueprint } from '@dxos/blueprints';\nimport { getSpace } from '@dxos/client/echo';\nimport { Filter, Obj, Query, Ref } from '@dxos/echo';\nimport { DatabaseService } from '@dxos/functions';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { useAsyncEffect } from '@dxos/react-ui';\n\nimport { ChatContainer } from '../components';\nimport { useContextBinder } from '../hooks';\nimport { Assistant, AssistantAction } from '../types';\n\nexport type ChatCompanionProps = {\n role?: string;\n data: { companionTo: Obj.Any; subject: Assistant.Chat | 'assistant-chat' };\n};\n\nexport const ChatCompanion = ({ role, data }: ChatCompanionProps) => {\n const companionTo = data.companionTo;\n const space = getSpace(companionTo);\n const chat = data.subject === 'assistant-chat' ? undefined : data.subject;\n const binder = useContextBinder(chat);\n const { dispatch } = useIntentDispatcher();\n\n // Initialize companion chat if it doesn't exist.\n useAsyncEffect(async () => {\n if (chat || !space) {\n return;\n }\n\n // TODO(burdon): Garbage collection of queues?\n // TODO(wittjosiah): Figure out how to prevent companion chats from showing up in the navtree.\n await Effect.gen(function* () {\n const { objects } = yield* DatabaseService.runQuery(\n Query.select(Filter.ids(companionTo.id)).targetOf(Assistant.CompanionTo).source(),\n );\n\n // TODO(wittjosiah): This should be the default sort order.\n let nextChat = objects.toSorted((a, b) => a.id.localeCompare(b.id)).at(-1);\n if (!nextChat) {\n const { object } = yield* dispatch(createIntent(AssistantAction.CreateChat, { space }));\n nextChat = object;\n yield* dispatch(createIntent(SpaceAction.AddObject, { object: nextChat, target: space, hidden: true }));\n yield* dispatch(\n createIntent(SpaceAction.AddRelation, {\n space,\n schema: Assistant.CompanionTo,\n source: nextChat,\n target: data.companionTo,\n }),\n );\n }\n\n yield* dispatch(createIntent(AssistantAction.SetCurrentChat, { companionTo, chat: nextChat }));\n }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.runPromise);\n }, [space, chat, companionTo]);\n\n const metadata = useCapabilities(Capabilities.Metadata);\n const blueprintKeys = useMemo(\n () =>\n pipe(\n metadata,\n Array.findFirst(\n (capability): capability is { id: string; 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 allBlueprints = useQuery(space, Filter.type(Blueprint.Blueprint));\n const pluginBlueprints = useMemo(\n () => allBlueprints.filter((blueprint) => blueprintKeys.includes(blueprint.key)),\n [allBlueprints, blueprintKeys],\n );\n\n // TODO(wittjosiah): Occasionally this fails to bind but seems to be an upstream issue.\n // It seems like the queue object signal emits as an empty array after previously emitting a non-empty array.\n useAsyncEffect(async () => {\n if (!binder) {\n return;\n }\n\n if (pluginBlueprints.length > 0) {\n await binder.bind({ blueprints: pluginBlueprints.map((blueprint) => Ref.make(blueprint)) });\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, pluginBlueprints]);\n\n if (!chat) {\n return null;\n }\n\n return <ChatContainer role={role} chat={chat} companionTo={companionTo} />;\n};\n\nexport default ChatCompanion;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAIA,SAASA,OAAOC,QAAQC,QAAQC,YAAY;AAC5C,OAAOC,SAASC,eAAe;AAE/B,SAASC,cAAcC,cAAcC,iBAAiBC,2BAA2B;AACjF,SAASC,iBAAiB;AAC1B,SAASC,gBAAgB;AACzB,SAASC,QAAQC,KAAKC,OAAOC,WAAW;AACxC,SAASC,uBAAuB;AAChC,SAASC,mBAAmB;AAC5B,SAASC,gBAAgB;AACzB,SAASC,sBAAsB;AAWxB,IAAMC,gBAAgB,CAAC,EAAEC,MAAMC,KAAI,MAAsB;;;AAC9D,UAAMC,cAAcD,KAAKC;AACzB,UAAMC,QAAQC,SAASF,WAAAA;AACvB,UAAMG,OAAOJ,KAAKK,YAAY,mBAAmBC,SAAYN,KAAKK;AAClE,UAAME,SAASC,iBAAiBJ,IAAAA;AAChC,UAAM,EAAEK,SAAQ,IAAKC,oBAAAA;AAGrBC,mBAAe,YAAA;AACb,UAAIP,QAAQ,CAACF,OAAO;AAClB;MACF;AAIA,YAAMU,OAAOC,IAAI,aAAA;AACf,cAAM,EAAEC,QAAO,IAAK,OAAOC,gBAAgBC,SACzCC,MAAMC,OAAOC,OAAOC,IAAInB,YAAYoB,EAAE,CAAA,EAAGC,SAASC,kBAAUC,WAAW,EAAEC,OAAM,CAAA;AAIjF,YAAIC,WAAWZ,QAAQa,SAAS,CAACC,GAAGC,MAAMD,EAAEP,GAAGS,cAAcD,EAAER,EAAE,CAAA,EAAGU,GAAG,EAAC;AACxE,YAAI,CAACL,UAAU;AACb,gBAAM,EAAEM,OAAM,IAAK,OAAOvB,SAASwB,aAAaC,wBAAgBC,YAAY;YAAEjC;UAAM,CAAA,CAAA;AACpFwB,qBAAWM;AACX,iBAAOvB,SAASwB,aAAaG,YAAYC,WAAW;YAAEL,QAAQN;YAAUY,QAAQpC;YAAOqC,QAAQ;UAAK,CAAA,CAAA;AACpG,iBAAO9B,SACLwB,aAAaG,YAAYI,aAAa;YACpCtC;YACAuC,QAAQlB,kBAAUC;YAClBC,QAAQC;YACRY,QAAQtC,KAAKC;UACf,CAAA,CAAA;QAEJ;AAEA,eAAOQ,SAASwB,aAAaC,wBAAgBQ,gBAAgB;UAAEzC;UAAaG,MAAMsB;QAAS,CAAA,CAAA;MAC7F,CAAA,EAAGiB,KAAK/B,OAAOgC,QAAQ7B,gBAAgB8B,MAAM3C,MAAM4C,EAAE,CAAA,GAAIlC,OAAOmC,UAAU;IAC5E,GAAG;MAAC7C;MAAOE;MAAMH;KAAY;AAE7B,UAAM+C,WAAWC,gBAAgBC,aAAaC,QAAQ;AACtD,UAAMC,gBAAgBC,QACpB,MACEV,KACEK,UACAM,MAAMC,UACJ,CAACC,eACCA,WAAWnC,OAAOoC,IAAIC,YAAYzD,WAAAA,CAAAA,GAEtC0D,OAAOC,QAAQ,CAACC,MAAMF,OAAOG,aAAaD,EAAEb,SAASe,UAAU,CAAA,GAC/DJ,OAAOK,UAAU,MAAM,CAAA,CAAE,CAAA,GAE7B;MAAChB;MAAU/C;KAAY;AAEzB,UAAMgE,gBAAgBC,SAAShE,OAAOiB,OAAOgD,KAAKC,UAAUA,SAAS,CAAA;AACrE,UAAMC,mBAAmBhB,QACvB,MAAMY,cAAcK,OAAO,CAACC,cAAcnB,cAAcoB,SAASD,UAAUE,GAAG,CAAA,GAC9E;MAACR;MAAeb;KAAc;AAKhCzC,mBAAe,YAAA;AACb,UAAI,CAACJ,QAAQ;AACX;MACF;AAEA,UAAI8D,iBAAiBK,SAAS,GAAG;AAC/B,cAAMnE,OAAOoE,KAAK;UAAEZ,YAAYM,iBAAiBO,IAAI,CAACL,cAAcM,IAAIC,KAAKP,SAAAA,CAAAA;QAAY,CAAA;MAC3F;AAEA,UAAId,IAAIsB,WAAWX,UAAUA,WAAWnE,WAAAA,GAAc;AACpD,cAAMM,OAAOoE,KAAK;UAAEZ,YAAY;YAACc,IAAIC,KAAK7E,WAAAA;;QAAc,CAAA;MAC1D,OAAO;AACL,cAAMM,OAAOoE,KAAK;UAAE7D,SAAS;YAAC+D,IAAIC,KAAK7E,WAAAA;;QAAc,CAAA;MACvD;IACF,GAAG;MAACM;MAAQN;MAAaoE;KAAiB;AAE1C,QAAI,CAACjE,MAAM;AACT,aAAO;IACT;AAEA,WAAO,sBAAA,cAAC4E,eAAAA;MAAcjF;MAAYK;MAAYH;;;;;AAChD;AAEA,IAAA,wBAAeH;",
6
- "names": ["Array", "Effect", "Option", "pipe", "React", "useMemo", "Capabilities", "createIntent", "useCapabilities", "useIntentDispatcher", "Blueprint", "getSpace", "Filter", "Obj", "Query", "Ref", "DatabaseService", "SpaceAction", "useQuery", "useAsyncEffect", "ChatCompanion", "role", "data", "companionTo", "space", "getSpace", "chat", "subject", "undefined", "binder", "useContextBinder", "dispatch", "useIntentDispatcher", "useAsyncEffect", "Effect", "gen", "objects", "DatabaseService", "runQuery", "Query", "select", "Filter", "ids", "id", "targetOf", "Assistant", "CompanionTo", "source", "nextChat", "toSorted", "a", "b", "localeCompare", "at", "object", "createIntent", "AssistantAction", "CreateChat", "SpaceAction", "AddObject", "target", "hidden", "AddRelation", "schema", "SetCurrentChat", "pipe", "provide", "layer", "db", "runPromise", "metadata", "useCapabilities", "Capabilities", "Metadata", "blueprintKeys", "useMemo", "Array", "findFirst", "capability", "Obj", "getTypename", "Option", "flatMap", "c", "fromNullable", "blueprints", "getOrElse", "allBlueprints", "useQuery", "type", "Blueprint", "pluginBlueprints", "filter", "blueprint", "includes", "key", "length", "bind", "map", "Ref", "make", "instanceOf", "ChatContainer"]
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 from 'react';\n\nimport { Capabilities, useCapability } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/client/echo';\nimport { type Obj } from '@dxos/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { useBlueprintRegistry, useChatProcessor, useChatServices, useOnline, usePresets } from '../hooks';\nimport { meta } from '../meta';\nimport { type Assistant } from '../types';\n\nimport { Chat } from './Chat';\nimport { Toolbar } from './Toolbar';\n\nexport type ChatContainerProps = {\n chat: Assistant.Chat;\n companionTo?: Obj.Any;\n role?: string;\n};\n\nexport const ChatContainer = ({ chat, companionTo }: ChatContainerProps) => {\n const space = getSpace(chat);\n const settings = useCapability(Capabilities.SettingsStore).getStore<Assistant.Settings>(meta.id)?.value;\n const services = useChatServices({ space, chat });\n const [online, setOnline] = useOnline();\n const { preset, ...chatProps } = usePresets(online);\n const blueprintRegistry = useBlueprintRegistry();\n const processor = useChatProcessor({ chat, preset, services, blueprintRegistry, settings });\n\n if (!processor) {\n return null;\n }\n\n return (\n <StackItem.Content toolbar={!!companionTo} classNames='container-max-width'>\n {!!companionTo && <Toolbar chat={chat} companionTo={companionTo} />}\n <Chat.Root chat={chat} processor={processor}>\n <Chat.Thread />\n <div className='p-2'>\n <Chat.Prompt {...chatProps} outline preset={preset?.id} online={online} onOnlineChange={setOnline} />\n </div>\n </Chat.Root>\n </StackItem.Content>\n );\n};\n\nexport default ChatContainer;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,qBAAqB;AAC5C,SAASC,gBAAgB;AAEzB,SAASC,iBAAiB;AAenB,IAAMC,gBAAgB,CAAC,EAAEC,MAAMC,YAAW,MAAsB;;;AACrE,UAAMC,QAAQC,SAASH,IAAAA;AACvB,UAAMI,WAAWC,cAAcC,aAAaC,aAAa,EAAEC,SAA6BC,KAAKC,EAAE,GAAGC;AAClG,UAAMC,WAAWC,gBAAgB;MAAEX;MAAOF;IAAK,CAAA;AAC/C,UAAM,CAACc,QAAQC,SAAAA,IAAaC,UAAAA;AAC5B,UAAM,EAAEC,QAAQ,GAAGC,UAAAA,IAAcC,WAAWL,MAAAA;AAC5C,UAAMM,oBAAoBC,qBAAAA;AAC1B,UAAMC,YAAYC,iBAAiB;MAAEvB;MAAMiB;MAAQL;MAAUQ;MAAmBhB;IAAS,CAAA;AAEzF,QAAI,CAACkB,WAAW;AACd,aAAO;IACT;AAEA,WACE,sBAAA,cAACE,UAAUC,SAAO;MAACC,SAAS,CAAC,CAACzB;MAAa0B,YAAW;OACnD,CAAC,CAAC1B,eAAe,sBAAA,cAAC2B,SAAAA;MAAQ5B;MAAYC;QACvC,sBAAA,cAAC4B,KAAKC,MAAI;MAAC9B;MAAYsB;OACrB,sBAAA,cAACO,KAAKE,QAAM,IAAA,GACZ,sBAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACJ,KAAKK,QAAM;MAAE,GAAGhB;MAAWiB,SAAAA;MAAQlB,QAAQA,QAAQP;MAAII;MAAgBsB,gBAAgBrB;;;;;AAKlG;AAEA,IAAA,wBAAehB;",
6
- "names": ["React", "Capabilities", "useCapability", "getSpace", "StackItem", "ChatContainer", "chat", "companionTo", "space", "getSpace", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "meta", "id", "value", "services", "useChatServices", "online", "setOnline", "useOnline", "preset", "chatProps", "usePresets", "blueprintRegistry", "useBlueprintRegistry", "processor", "useChatProcessor", "StackItem", "Content", "toolbar", "classNames", "Toolbar", "Chat", "Root", "Thread", "div", "className", "Prompt", "outline", "onOnlineChange"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChatDialog.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { Capabilities, useCapability } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { ChatDialog as NativeChatDialog } from '@dxos/react-ui-chat';\n\nimport { useBlueprintRegistry, useChatProcessor, useChatServices, useOnline, usePresets } from '../hooks';\nimport { meta } from '../meta';\nimport { type Assistant } from '../types';\n\nimport { Chat, type ChatRootProps } from './Chat';\n\nexport type ChatDialogProps = {\n chat?: Assistant.Chat;\n};\n\nexport const ChatDialog = ({ chat }: ChatDialogProps) => {\n const { t } = useTranslation(meta.id);\n\n const space = getSpace(chat);\n const settings = useCapability(Capabilities.SettingsStore).getStore<Assistant.Settings>(meta.id)?.value;\n const services = useChatServices({ space, chat });\n const [online, setOnline] = useOnline();\n const { preset, ...chatProps } = usePresets(online);\n const blueprintRegistry = useBlueprintRegistry();\n const processor = useChatProcessor({ chat, preset, services, blueprintRegistry, settings });\n\n // TODO(burdon): Refocus when open.\n const [open, setOpen] = useState(true);\n const [expanded, setExpanded] = useState(false);\n const handleEvent = useCallback<NonNullable<ChatRootProps['onEvent']>>((event) => {\n switch (event.type) {\n case 'submit':\n case 'thread-open':\n setOpen(true);\n setExpanded(true);\n break;\n case 'thread-close':\n setOpen(false);\n break;\n }\n }, []);\n\n if (!chat || !processor) {\n return null;\n }\n\n return (\n <Chat.Root chat={chat} processor={processor} onEvent={handleEvent}>\n <NativeChatDialog.Root open={open} expanded={expanded} onOpenChange={setOpen}>\n <NativeChatDialog.Header title={t('assistant dialog title')} />\n <NativeChatDialog.Content>\n <Chat.Thread />\n </NativeChatDialog.Content>\n <NativeChatDialog.Footer classNames='p-1.5'>\n <Chat.Prompt {...chatProps} preset={preset?.id} online={online} onOnlineChange={setOnline} expandable />\n </NativeChatDialog.Footer>\n </NativeChatDialog.Root>\n </Chat.Root>\n );\n};\n\nexport default ChatDialog;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAIA,OAAOA,SAASC,aAAaC,gBAAgB;AAE7C,SAASC,cAAcC,qBAAqB;AAC5C,SAASC,gBAAgB;AACzB,SAASC,sBAAsB;AAC/B,SAASC,cAAcC,wBAAwB;AAYxC,IAAMC,aAAa,CAAC,EAAEC,KAAI,MAAmB;;;AAClD,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,UAAMC,QAAQC,SAASN,IAAAA;AACvB,UAAMO,WAAWC,cAAcC,aAAaC,aAAa,EAAEC,SAA6BR,KAAKC,EAAE,GAAGQ;AAClG,UAAMC,WAAWC,gBAAgB;MAAET;MAAOL;IAAK,CAAA;AAC/C,UAAM,CAACe,QAAQC,SAAAA,IAAaC,UAAAA;AAC5B,UAAM,EAAEC,QAAQ,GAAGC,UAAAA,IAAcC,WAAWL,MAAAA;AAC5C,UAAMM,oBAAoBC,qBAAAA;AAC1B,UAAMC,YAAYC,iBAAiB;MAAExB;MAAMkB;MAAQL;MAAUQ;MAAmBd;IAAS,CAAA;AAGzF,UAAM,CAACkB,MAAMC,OAAAA,IAAWC,SAAS,IAAA;AACjC,UAAM,CAACC,UAAUC,WAAAA,IAAeF,SAAS,KAAA;AACzC,UAAMG,cAAcC,YAAmD,CAACC,UAAAA;AACtE,cAAQA,MAAMC,MAAI;QAChB,KAAK;QACL,KAAK;AACHP,kBAAQ,IAAA;AACRG,sBAAY,IAAA;AACZ;QACF,KAAK;AACHH,kBAAQ,KAAA;AACR;MACJ;IACF,GAAG,CAAA,CAAE;AAEL,QAAI,CAAC1B,QAAQ,CAACuB,WAAW;AACvB,aAAO;IACT;AAEA,WACE,sBAAA,cAACW,KAAKC,MAAI;MAACnC;MAAYuB;MAAsBa,SAASN;OACpD,sBAAA,cAACO,iBAAiBF,MAAI;MAACV;MAAYG;MAAoBU,cAAcZ;OACnE,sBAAA,cAACW,iBAAiBE,QAAM;MAACC,OAAOvC,EAAE,wBAAA;QAClC,sBAAA,cAACoC,iBAAiBI,SAAO,MACvB,sBAAA,cAACP,KAAKQ,QAAM,IAAA,CAAA,GAEd,sBAAA,cAACL,iBAAiBM,QAAM;MAACC,YAAW;OAClC,sBAAA,cAACV,KAAKW,QAAM;MAAE,GAAG1B;MAAWD,QAAQA,QAAQd;MAAIW;MAAgB+B,gBAAgB9B;MAAW+B,YAAAA;;;;;AAKrG;AAEA,IAAA,qBAAehD;",
6
- "names": ["React", "useCallback", "useState", "Capabilities", "useCapability", "getSpace", "useTranslation", "ChatDialog", "NativeChatDialog", "ChatDialog", "chat", "t", "useTranslation", "meta", "id", "space", "getSpace", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "value", "services", "useChatServices", "online", "setOnline", "useOnline", "preset", "chatProps", "usePresets", "blueprintRegistry", "useBlueprintRegistry", "processor", "useChatProcessor", "open", "setOpen", "useState", "expanded", "setExpanded", "handleEvent", "useCallback", "event", "type", "Chat", "Root", "onEvent", "NativeChatDialog", "onOpenChange", "Header", "title", "Content", "Thread", "Footer", "classNames", "Prompt", "onOnlineChange", "expandable"]
7
- }