@dxos/plugin-assistant 0.8.4-main.2e9d522 → 0.8.4-main.3c1ae3b

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 (481) hide show
  1. package/dist/lib/browser/BlueprintArticle-BWSLH6LG.mjs +36 -0
  2. package/dist/lib/browser/BlueprintArticle-BWSLH6LG.mjs.map +7 -0
  3. package/dist/lib/browser/ChatCompanion-U7VMDYO6.mjs +159 -0
  4. package/dist/lib/browser/ChatCompanion-U7VMDYO6.mjs.map +7 -0
  5. package/dist/lib/browser/ChatContainer-JXDZQ2EY.mjs +79 -0
  6. package/dist/lib/browser/ChatContainer-JXDZQ2EY.mjs.map +7 -0
  7. package/dist/lib/browser/{ChatDialog-X6VN6QZI.mjs → ChatDialog-5NNGCRKJ.mjs} +30 -12
  8. package/dist/lib/browser/ChatDialog-5NNGCRKJ.mjs.map +7 -0
  9. package/dist/lib/browser/PromptArticle-Q7JYGFQV.mjs +59 -0
  10. package/dist/lib/browser/PromptArticle-Q7JYGFQV.mjs.map +7 -0
  11. package/dist/lib/browser/ai-service-ERTZBTP3.mjs +19 -0
  12. package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +7 -0
  13. package/dist/lib/browser/app-graph-builder-ADZRPJ3V.mjs +199 -0
  14. package/dist/lib/browser/app-graph-builder-ADZRPJ3V.mjs.map +7 -0
  15. package/dist/lib/browser/blueprint-definition-7HPQPCL7.mjs +12 -0
  16. package/dist/lib/browser/blueprint-definition-7HPQPCL7.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-5JZRYQZL.mjs +229 -0
  18. package/dist/lib/browser/chunk-5JZRYQZL.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-7ZJIXQ2Y.mjs +335 -0
  20. package/dist/lib/browser/chunk-7ZJIXQ2Y.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-F6YX2HHA.mjs +262 -0
  22. package/dist/lib/browser/chunk-F6YX2HHA.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  24. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-LRE4VEZV.mjs +16 -0
  26. package/dist/lib/browser/chunk-LRE4VEZV.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-SWEOO227.mjs +1930 -0
  28. package/dist/lib/browser/chunk-SWEOO227.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-WBG5PTSX.mjs +23 -0
  30. package/dist/lib/browser/chunk-WBG5PTSX.mjs.map +7 -0
  31. package/dist/lib/browser/chunk-YDSFERCV.mjs +178 -0
  32. package/dist/lib/browser/chunk-YDSFERCV.mjs.map +7 -0
  33. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +18 -0
  34. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +7 -0
  35. package/dist/lib/browser/index.mjs +227 -101
  36. package/dist/lib/browser/index.mjs.map +4 -4
  37. package/dist/lib/browser/intent-resolver-Q7TX3MV7.mjs +143 -0
  38. package/dist/lib/browser/intent-resolver-Q7TX3MV7.mjs.map +7 -0
  39. package/dist/lib/browser/local-model-resolver-34MVHRKD.mjs +17 -0
  40. package/dist/lib/browser/local-model-resolver-34MVHRKD.mjs.map +7 -0
  41. package/dist/lib/browser/meta.json +1 -1
  42. package/dist/lib/browser/react-surface-VXXS6ZVC.mjs +100 -0
  43. package/dist/lib/browser/react-surface-VXXS6ZVC.mjs.map +7 -0
  44. package/dist/lib/browser/repair-3MZXLUHO.mjs +44 -0
  45. package/dist/lib/browser/repair-3MZXLUHO.mjs.map +7 -0
  46. package/dist/lib/browser/{settings-2DGP3UTS.mjs → settings-HD5WA24I.mjs} +8 -7
  47. package/dist/lib/{node-esm/settings-47RYZOU4.mjs.map → browser/settings-HD5WA24I.mjs.map} +1 -1
  48. package/dist/lib/browser/state-GG7Z3NB7.mjs +25 -0
  49. package/dist/lib/browser/state-GG7Z3NB7.mjs.map +7 -0
  50. package/dist/lib/browser/toolkit-VYDAWNE4.mjs +17 -0
  51. package/dist/lib/browser/toolkit-VYDAWNE4.mjs.map +7 -0
  52. package/dist/lib/browser/types/index.mjs +7 -4
  53. package/dist/lib/node-esm/BlueprintArticle-R2XYBRCK.mjs +37 -0
  54. package/dist/lib/node-esm/BlueprintArticle-R2XYBRCK.mjs.map +7 -0
  55. package/dist/lib/node-esm/ChatCompanion-O4T7PMMC.mjs +160 -0
  56. package/dist/lib/node-esm/ChatCompanion-O4T7PMMC.mjs.map +7 -0
  57. package/dist/lib/node-esm/ChatContainer-OWAZI6ZF.mjs +80 -0
  58. package/dist/lib/node-esm/ChatContainer-OWAZI6ZF.mjs.map +7 -0
  59. package/dist/lib/node-esm/{ChatDialog-RJ6FDX4Q.mjs → ChatDialog-IBXH5FRI.mjs} +30 -12
  60. package/dist/lib/node-esm/ChatDialog-IBXH5FRI.mjs.map +7 -0
  61. package/dist/lib/node-esm/PromptArticle-IV7O5UZ3.mjs +60 -0
  62. package/dist/lib/node-esm/PromptArticle-IV7O5UZ3.mjs.map +7 -0
  63. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +20 -0
  64. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +7 -0
  65. package/dist/lib/node-esm/app-graph-builder-26KXQ5ZY.mjs +200 -0
  66. package/dist/lib/node-esm/app-graph-builder-26KXQ5ZY.mjs.map +7 -0
  67. package/dist/lib/node-esm/blueprint-definition-S3DNWJFV.mjs +13 -0
  68. package/dist/lib/node-esm/blueprint-definition-S3DNWJFV.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-CKW4IYLY.mjs +336 -0
  70. package/dist/lib/node-esm/chunk-CKW4IYLY.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-E4JSYCWZ.mjs +230 -0
  72. package/dist/lib/node-esm/chunk-E4JSYCWZ.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-GWKWQSEQ.mjs +264 -0
  74. package/dist/lib/node-esm/chunk-GWKWQSEQ.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  76. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-VGSP5WMV.mjs +180 -0
  78. package/dist/lib/node-esm/chunk-VGSP5WMV.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-WE6KTH72.mjs +25 -0
  80. package/dist/lib/node-esm/chunk-WE6KTH72.mjs.map +7 -0
  81. package/dist/lib/node-esm/chunk-YWFWT57N.mjs +17 -0
  82. package/dist/lib/node-esm/chunk-YWFWT57N.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-ZNSHGWE4.mjs +1931 -0
  84. package/dist/lib/node-esm/chunk-ZNSHGWE4.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 +227 -101
  88. package/dist/lib/node-esm/index.mjs.map +4 -4
  89. package/dist/lib/node-esm/intent-resolver-LTKMN3YB.mjs +144 -0
  90. package/dist/lib/node-esm/intent-resolver-LTKMN3YB.mjs.map +7 -0
  91. package/dist/lib/node-esm/local-model-resolver-TP2NTSAX.mjs +18 -0
  92. package/dist/lib/node-esm/local-model-resolver-TP2NTSAX.mjs.map +7 -0
  93. package/dist/lib/node-esm/meta.json +1 -1
  94. package/dist/lib/node-esm/react-surface-AOBQALOV.mjs +101 -0
  95. package/dist/lib/node-esm/react-surface-AOBQALOV.mjs.map +7 -0
  96. package/dist/lib/node-esm/repair-RER5H7Y6.mjs +45 -0
  97. package/dist/lib/node-esm/repair-RER5H7Y6.mjs.map +7 -0
  98. package/dist/lib/node-esm/{settings-47RYZOU4.mjs → settings-YJQVKHH5.mjs} +8 -7
  99. package/dist/lib/{browser/settings-2DGP3UTS.mjs.map → node-esm/settings-YJQVKHH5.mjs.map} +1 -1
  100. package/dist/lib/node-esm/state-FSUHFMDM.mjs +26 -0
  101. package/dist/lib/node-esm/state-FSUHFMDM.mjs.map +7 -0
  102. package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs +18 -0
  103. package/dist/lib/node-esm/toolkit-HFJZLVIR.mjs.map +7 -0
  104. package/dist/lib/node-esm/types/index.mjs +7 -4
  105. package/dist/types/src/AssistantPlugin.d.ts +1 -1
  106. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/ai-service.d.ts +4 -0
  108. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  110. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/blueprint-definition.d.ts +7 -0
  112. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/capabilities.d.ts +10 -0
  114. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/edge-model-resolver.d.ts +4 -0
  116. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/index.d.ts +12 -3
  118. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  119. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  120. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  121. package/dist/types/src/capabilities/local-model-resolver.d.ts +10 -0
  122. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  124. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  125. package/dist/types/src/capabilities/repair.d.ts +4 -0
  126. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/settings.d.ts +1 -1
  128. package/dist/types/src/capabilities/state.d.ts +4 -0
  129. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  130. package/dist/types/src/capabilities/toolkit.d.ts +4 -0
  131. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
  132. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  133. package/dist/types/src/components/BlueprintArticle.d.ts +7 -0
  134. package/dist/types/src/components/BlueprintArticle.d.ts.map +1 -0
  135. package/dist/types/src/components/Chat/Chat.d.ts +35 -21
  136. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  137. package/dist/types/src/components/Chat/events.d.ts +9 -0
  138. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  139. package/dist/types/src/components/ChatCompanion.d.ts +13 -0
  140. package/dist/types/src/components/ChatCompanion.d.ts.map +1 -0
  141. package/dist/types/src/components/ChatContainer.d.ts +14 -6
  142. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  143. package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
  144. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +7 -0
  145. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -0
  146. package/dist/types/src/components/ChatProgress/index.d.ts +2 -0
  147. package/dist/types/src/components/ChatProgress/index.d.ts.map +1 -0
  148. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  149. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +20 -0
  150. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -0
  151. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
  152. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +4 -5
  153. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  154. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +6 -4
  155. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
  156. package/dist/types/src/components/ChatPrompt/index.d.ts +1 -1
  157. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
  158. package/dist/types/src/components/ChatThread/ChatThread.d.ts +12 -10
  159. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  160. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +170 -70
  161. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  162. package/dist/types/src/components/ChatThread/Link.d.ts +9 -0
  163. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -0
  164. package/dist/types/src/components/ChatThread/reducers.d.ts +40 -0
  165. package/dist/types/src/components/ChatThread/reducers.d.ts.map +1 -0
  166. package/dist/types/src/components/ChatThread/registry.d.ts +11 -0
  167. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -0
  168. package/dist/types/src/components/ChatThread/sync.d.ts +42 -0
  169. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -0
  170. package/dist/types/src/components/ChatThread/sync.test.d.ts +2 -0
  171. package/dist/types/src/components/ChatThread/sync.test.d.ts.map +1 -0
  172. package/dist/types/src/components/PromptArticle.d.ts +7 -0
  173. package/dist/types/src/components/PromptArticle.d.ts.map +1 -0
  174. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +3 -6
  175. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  176. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +317 -7
  177. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  178. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +3 -2
  179. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  180. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +314 -2
  181. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  182. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts +12 -0
  183. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  184. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  185. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  186. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  187. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  188. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +21 -0
  189. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -0
  190. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts +2 -0
  191. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts.map +1 -0
  192. package/dist/types/src/components/ToolBlock/index.d.ts +3 -0
  193. package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -0
  194. package/dist/types/src/components/Toolbox/Toolbox.d.ts +6 -11
  195. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  196. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +318 -5
  197. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  198. package/dist/types/src/components/index.d.ts +9 -6
  199. package/dist/types/src/components/index.d.ts.map +1 -1
  200. package/dist/types/src/events.d.ts +1 -1
  201. package/dist/types/src/events.d.ts.map +1 -1
  202. package/dist/types/src/functions/analysis.d.ts +5 -0
  203. package/dist/types/src/functions/analysis.d.ts.map +1 -0
  204. package/dist/types/src/functions/index.d.ts +4 -0
  205. package/dist/types/src/functions/index.d.ts.map +1 -0
  206. package/dist/types/src/functions/object-list.d.ts +10 -0
  207. package/dist/types/src/functions/object-list.d.ts.map +1 -0
  208. package/dist/types/src/functions/object-load.d.ts +8 -0
  209. package/dist/types/src/functions/object-load.d.ts.map +1 -0
  210. package/dist/types/src/hooks/index.d.ts +8 -3
  211. package/dist/types/src/hooks/index.d.ts.map +1 -1
  212. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +25 -0
  213. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -0
  214. package/dist/types/src/hooks/useChatProcessor.d.ts +8 -19
  215. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  216. package/dist/types/src/hooks/useChatServices.d.ts +5 -6
  217. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  218. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  219. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  220. package/dist/types/src/hooks/useContextBinder.d.ts +4 -0
  221. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -0
  222. package/dist/types/src/hooks/useContextObjects.d.ts +15 -0
  223. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -0
  224. package/dist/types/src/hooks/useFilteredTypes.d.ts +4 -0
  225. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -0
  226. package/dist/types/src/hooks/useFlush.d.ts +6 -0
  227. package/dist/types/src/hooks/useFlush.d.ts.map +1 -0
  228. package/dist/types/src/hooks/useOnline.d.ts +3 -0
  229. package/dist/types/src/hooks/useOnline.d.ts.map +1 -0
  230. package/dist/types/src/hooks/usePresets.d.ts +7 -0
  231. package/dist/types/src/hooks/usePresets.d.ts.map +1 -0
  232. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  233. package/dist/types/src/index.d.ts +2 -0
  234. package/dist/types/src/index.d.ts.map +1 -1
  235. package/dist/types/src/meta.d.ts +1 -2
  236. package/dist/types/src/meta.d.ts.map +1 -1
  237. package/dist/types/src/processor/index.d.ts +4 -0
  238. package/dist/types/src/processor/index.d.ts.map +1 -0
  239. package/dist/types/src/{hooks → processor}/presets.d.ts +3 -3
  240. package/dist/types/src/processor/presets.d.ts.map +1 -0
  241. package/dist/types/src/processor/processor.d.ts +75 -0
  242. package/dist/types/src/processor/processor.d.ts.map +1 -0
  243. package/dist/types/src/processor/processor.test.d.ts +2 -0
  244. package/dist/types/src/processor/processor.test.d.ts.map +1 -0
  245. package/dist/types/src/processor/update-name.d.ts +10 -0
  246. package/dist/types/src/processor/update-name.d.ts.map +1 -0
  247. package/dist/types/src/queue-logger.d.ts.map +1 -1
  248. package/dist/types/src/testing/index.d.ts +1 -1
  249. package/dist/types/src/testing/index.d.ts.map +1 -1
  250. package/dist/types/src/testing/test-generator.d.ts +8 -0
  251. package/dist/types/src/testing/test-generator.d.ts.map +1 -0
  252. package/dist/types/src/testing/test-sequence.d.ts +0 -4
  253. package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
  254. package/dist/types/src/testing/test-services.d.ts +2 -2
  255. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  256. package/dist/types/src/translations.d.ts +262 -37
  257. package/dist/types/src/translations.d.ts.map +1 -1
  258. package/dist/types/src/types/Assistant.d.ts +45 -0
  259. package/dist/types/src/types/Assistant.d.ts.map +1 -0
  260. package/dist/types/src/types/AssistantAction.d.ts +129 -0
  261. package/dist/types/src/types/AssistantAction.d.ts.map +1 -0
  262. package/dist/types/src/types/defs.d.ts +2 -0
  263. package/dist/types/src/types/defs.d.ts.map +1 -0
  264. package/dist/types/src/types/index.d.ts +3 -1
  265. package/dist/types/src/types/index.d.ts.map +1 -1
  266. package/dist/types/src/types/service.d.ts +135 -85
  267. package/dist/types/src/types/service.d.ts.map +1 -1
  268. package/dist/types/tsconfig.tsbuildinfo +1 -1
  269. package/package.json +99 -93
  270. package/src/AssistantPlugin.tsx +151 -85
  271. package/src/capabilities/ai-service.ts +27 -0
  272. package/src/capabilities/app-graph-builder.ts +104 -149
  273. package/src/capabilities/blueprint-definition.ts +66 -0
  274. package/src/capabilities/capabilities.ts +17 -0
  275. package/src/capabilities/edge-model-resolver.ts +25 -0
  276. package/src/capabilities/index.ts +10 -0
  277. package/src/capabilities/intent-resolver.ts +92 -15
  278. package/src/capabilities/local-model-resolver.ts +30 -0
  279. package/src/capabilities/react-surface.tsx +27 -78
  280. package/src/capabilities/repair.ts +49 -0
  281. package/src/capabilities/state.ts +22 -0
  282. package/src/capabilities/toolkit.ts +17 -0
  283. package/src/components/AssistantSettings/AssistantSettings.tsx +83 -76
  284. package/src/components/BlueprintArticle.tsx +29 -0
  285. package/src/components/Chat/Chat.tsx +260 -217
  286. package/src/components/Chat/events.ts +13 -0
  287. package/src/components/ChatCompanion.tsx +166 -0
  288. package/src/components/ChatContainer.tsx +39 -22
  289. package/src/components/ChatDialog.tsx +25 -14
  290. package/src/components/ChatProgress/ChatProgress.tsx +67 -0
  291. package/src/components/{SequenceEditor → ChatProgress}/index.ts +1 -1
  292. package/src/components/ChatPrompt/ChatActions.tsx +10 -26
  293. package/src/components/ChatPrompt/ChatOptions.tsx +234 -0
  294. package/src/components/ChatPrompt/ChatPresets.tsx +1 -0
  295. package/src/components/ChatPrompt/ChatReferences.tsx +31 -36
  296. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +25 -22
  297. package/src/components/ChatPrompt/index.ts +1 -1
  298. package/src/components/ChatThread/ChatThread.stories.tsx +122 -116
  299. package/src/components/ChatThread/ChatThread.tsx +65 -35
  300. package/src/components/ChatThread/Link.tsx +26 -0
  301. package/src/components/ChatThread/reducers.ts +151 -0
  302. package/src/components/ChatThread/registry.tsx +174 -0
  303. package/src/components/ChatThread/sync.test.ts +89 -0
  304. package/src/components/ChatThread/sync.ts +148 -0
  305. package/src/components/ChatThread/testing/thread.md +37 -0
  306. package/src/components/PromptArticle.tsx +51 -0
  307. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +40 -19
  308. package/src/components/TemplateEditor/TemplateEditor.tsx +30 -52
  309. package/src/components/TemplateEditor/TemplateForm.stories.tsx +19 -14
  310. package/src/components/TemplateEditor/TemplateForm.tsx +8 -5
  311. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +269 -0
  312. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  313. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  314. package/src/components/ToolBlock/ToolBlock.tsx +143 -0
  315. package/src/components/ToolBlock/ToolBlockWidget.tsx +5 -0
  316. package/src/components/ToolBlock/index.ts +6 -0
  317. package/src/components/Toolbox/Toolbox.stories.tsx +14 -23
  318. package/src/components/Toolbox/Toolbox.tsx +25 -55
  319. package/src/components/index.ts +3 -7
  320. package/src/events.ts +2 -2
  321. package/src/functions/analysis.ts +22 -0
  322. package/src/functions/index.ts +7 -0
  323. package/src/functions/object-list.ts +49 -0
  324. package/src/functions/object-load.ts +46 -0
  325. package/src/hooks/index.ts +8 -4
  326. package/src/hooks/useBlueprintRegistry.ts +95 -0
  327. package/src/hooks/useChatProcessor.ts +35 -104
  328. package/src/hooks/useChatServices.ts +33 -73
  329. package/src/hooks/useChatToolbarActions.ts +122 -0
  330. package/src/hooks/useContextBinder.ts +30 -0
  331. package/src/hooks/useContextObjects.ts +58 -0
  332. package/src/hooks/useFilteredTypes.ts +38 -0
  333. package/src/hooks/useFlush.ts +35 -0
  334. package/src/hooks/useOnline.ts +10 -0
  335. package/src/hooks/usePresets.ts +44 -0
  336. package/src/hooks/useReferencesProvider.ts +14 -11
  337. package/src/index.ts +2 -0
  338. package/src/meta.ts +9 -6
  339. package/src/processor/index.ts +7 -0
  340. package/src/{hooks → processor}/presets.ts +16 -8
  341. package/src/processor/processor.test.ts +72 -0
  342. package/src/processor/processor.ts +277 -0
  343. package/src/processor/update-name.ts +56 -0
  344. package/src/queue-logger.ts +13 -17
  345. package/src/testing/index.ts +1 -1
  346. package/src/testing/test-generator.ts +262 -0
  347. package/src/testing/test-sequence.ts +2 -27
  348. package/src/testing/test-services.ts +2 -8
  349. package/src/translations.ts +48 -26
  350. package/src/types/Assistant.ts +63 -0
  351. package/src/types/AssistantAction.ts +79 -0
  352. package/src/types/defs.ts +5 -0
  353. package/src/types/index.ts +4 -1
  354. package/src/types/service.ts +17 -9
  355. package/src/vite-env.d.ts +30 -0
  356. package/dist/lib/browser/ChatContainer-M3IHQLRS.mjs +0 -54
  357. package/dist/lib/browser/ChatContainer-M3IHQLRS.mjs.map +0 -7
  358. package/dist/lib/browser/ChatDialog-X6VN6QZI.mjs.map +0 -7
  359. package/dist/lib/browser/SequenceContainer-3UDVKWPA.mjs +0 -162
  360. package/dist/lib/browser/SequenceContainer-3UDVKWPA.mjs.map +0 -7
  361. package/dist/lib/browser/TemplateContainer-RPJ2LBOB.mjs +0 -27
  362. package/dist/lib/browser/TemplateContainer-RPJ2LBOB.mjs.map +0 -7
  363. package/dist/lib/browser/app-graph-builder-JTXBKE7O.mjs +0 -223
  364. package/dist/lib/browser/app-graph-builder-JTXBKE7O.mjs.map +0 -7
  365. package/dist/lib/browser/chunk-AEAEKWOC.mjs +0 -98
  366. package/dist/lib/browser/chunk-AEAEKWOC.mjs.map +0 -7
  367. package/dist/lib/browser/chunk-EQDW6BYQ.mjs +0 -108
  368. package/dist/lib/browser/chunk-EQDW6BYQ.mjs.map +0 -7
  369. package/dist/lib/browser/chunk-FDCJSQYF.mjs +0 -40
  370. package/dist/lib/browser/chunk-FDCJSQYF.mjs.map +0 -7
  371. package/dist/lib/browser/chunk-JQBVLTM5.mjs +0 -158
  372. package/dist/lib/browser/chunk-JQBVLTM5.mjs.map +0 -7
  373. package/dist/lib/browser/chunk-OWY4CUQY.mjs +0 -2245
  374. package/dist/lib/browser/chunk-OWY4CUQY.mjs.map +0 -7
  375. package/dist/lib/browser/intent-resolver-5RMMCMXG.mjs +0 -60
  376. package/dist/lib/browser/intent-resolver-5RMMCMXG.mjs.map +0 -7
  377. package/dist/lib/browser/react-surface-66VY37YQ.mjs +0 -150
  378. package/dist/lib/browser/react-surface-66VY37YQ.mjs.map +0 -7
  379. package/dist/lib/node-esm/ChatContainer-VZT74PO2.mjs +0 -55
  380. package/dist/lib/node-esm/ChatContainer-VZT74PO2.mjs.map +0 -7
  381. package/dist/lib/node-esm/ChatDialog-RJ6FDX4Q.mjs.map +0 -7
  382. package/dist/lib/node-esm/SequenceContainer-RQQH5XOC.mjs +0 -163
  383. package/dist/lib/node-esm/SequenceContainer-RQQH5XOC.mjs.map +0 -7
  384. package/dist/lib/node-esm/TemplateContainer-A3NAQCZE.mjs +0 -28
  385. package/dist/lib/node-esm/TemplateContainer-A3NAQCZE.mjs.map +0 -7
  386. package/dist/lib/node-esm/app-graph-builder-OWSOXFTD.mjs +0 -224
  387. package/dist/lib/node-esm/app-graph-builder-OWSOXFTD.mjs.map +0 -7
  388. package/dist/lib/node-esm/chunk-2XL6MNPE.mjs +0 -99
  389. package/dist/lib/node-esm/chunk-2XL6MNPE.mjs.map +0 -7
  390. package/dist/lib/node-esm/chunk-BISJDTBK.mjs +0 -159
  391. package/dist/lib/node-esm/chunk-BISJDTBK.mjs.map +0 -7
  392. package/dist/lib/node-esm/chunk-E33DNNDW.mjs +0 -109
  393. package/dist/lib/node-esm/chunk-E33DNNDW.mjs.map +0 -7
  394. package/dist/lib/node-esm/chunk-QN2H2EHV.mjs +0 -41
  395. package/dist/lib/node-esm/chunk-QN2H2EHV.mjs.map +0 -7
  396. package/dist/lib/node-esm/chunk-SENTQAEO.mjs +0 -2246
  397. package/dist/lib/node-esm/chunk-SENTQAEO.mjs.map +0 -7
  398. package/dist/lib/node-esm/intent-resolver-YPPYELY3.mjs +0 -61
  399. package/dist/lib/node-esm/intent-resolver-YPPYELY3.mjs.map +0 -7
  400. package/dist/lib/node-esm/react-surface-RJMRBR2M.mjs +0 -151
  401. package/dist/lib/node-esm/react-surface-RJMRBR2M.mjs.map +0 -7
  402. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts +0 -9
  403. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts.map +0 -1
  404. package/dist/types/src/components/ChatThread/ChatMessage.d.ts +0 -17
  405. package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +0 -1
  406. package/dist/types/src/components/ChatThread/ToolBlock.d.ts +0 -19
  407. package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +0 -1
  408. package/dist/types/src/components/ChatThread/reducer.d.ts +0 -12
  409. package/dist/types/src/components/ChatThread/reducer.d.ts.map +0 -1
  410. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  411. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  412. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  413. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  414. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  415. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  416. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -8
  417. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  418. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  419. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  420. package/dist/types/src/components/TemplateContainer.d.ts +0 -8
  421. package/dist/types/src/components/TemplateContainer.d.ts.map +0 -1
  422. package/dist/types/src/hooks/chat-processor.d.ts +0 -86
  423. package/dist/types/src/hooks/chat-processor.d.ts.map +0 -1
  424. package/dist/types/src/hooks/chat-processor.test.d.ts +0 -2
  425. package/dist/types/src/hooks/chat-processor.test.d.ts.map +0 -1
  426. package/dist/types/src/hooks/presets.d.ts.map +0 -1
  427. package/dist/types/src/hooks/useBlueprints.d.ts +0 -9
  428. package/dist/types/src/hooks/useBlueprints.d.ts.map +0 -1
  429. package/dist/types/src/parser/filter-generator.d.ts +0 -4
  430. package/dist/types/src/parser/filter-generator.d.ts.map +0 -1
  431. package/dist/types/src/parser/filter-generator.test.d.ts +0 -2
  432. package/dist/types/src/parser/filter-generator.test.d.ts.map +0 -1
  433. package/dist/types/src/parser/index.d.ts +0 -4
  434. package/dist/types/src/parser/index.d.ts.map +0 -1
  435. package/dist/types/src/parser/query-parser.d.ts +0 -15
  436. package/dist/types/src/parser/query-parser.d.ts.map +0 -1
  437. package/dist/types/src/parser/query-parser.test.d.ts +0 -2
  438. package/dist/types/src/parser/query-parser.test.d.ts.map +0 -1
  439. package/dist/types/src/parser/types.d.ts +0 -24
  440. package/dist/types/src/parser/types.d.ts.map +0 -1
  441. package/dist/types/src/stories/Chat.stories.d.ts +0 -249
  442. package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
  443. package/dist/types/src/testing/test-functions.d.ts +0 -3
  444. package/dist/types/src/testing/test-functions.d.ts.map +0 -1
  445. package/dist/types/src/tools/function.d.ts +0 -5
  446. package/dist/types/src/tools/function.d.ts.map +0 -1
  447. package/dist/types/src/tools/index.d.ts +0 -3
  448. package/dist/types/src/tools/index.d.ts.map +0 -1
  449. package/dist/types/src/tools/openapi.d.ts +0 -10
  450. package/dist/types/src/tools/openapi.d.ts.map +0 -1
  451. package/dist/types/src/tools/openapi.test.d.ts +0 -2
  452. package/dist/types/src/tools/openapi.test.d.ts.map +0 -1
  453. package/dist/types/src/types/schema.d.ts +0 -88
  454. package/dist/types/src/types/schema.d.ts.map +0 -1
  455. package/src/components/ChatPrompt/ChatOptionsMenu.tsx +0 -52
  456. package/src/components/ChatThread/ChatMessage.tsx +0 -268
  457. package/src/components/ChatThread/ToolBlock.tsx +0 -121
  458. package/src/components/ChatThread/reducer.ts +0 -52
  459. package/src/components/PromptSettings.tsx +0 -89
  460. package/src/components/SequenceContainer.tsx +0 -132
  461. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -32
  462. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  463. package/src/components/TemplateContainer.tsx +0 -24
  464. package/src/hooks/chat-processor.test.ts +0 -16
  465. package/src/hooks/chat-processor.ts +0 -314
  466. package/src/hooks/useBlueprints.ts +0 -57
  467. package/src/parser/filter-generator.test.ts +0 -32
  468. package/src/parser/filter-generator.ts +0 -81
  469. package/src/parser/index.ts +0 -7
  470. package/src/parser/query-parser.test.ts +0 -139
  471. package/src/parser/query-parser.ts +0 -199
  472. package/src/parser/types.ts +0 -34
  473. package/src/shims.d.ts +0 -8
  474. package/src/stories/Chat.stories.tsx +0 -378
  475. package/src/testing/test-functions.ts +0 -11
  476. package/src/tools/function.ts +0 -46
  477. package/src/tools/index.ts +0 -6
  478. package/src/tools/openapi.test.ts +0 -217
  479. package/src/tools/openapi.ts +0 -338
  480. package/src/types/schema.ts +0 -95
  481. package/src/typings.d.ts +0 -9
@@ -2,17 +2,13 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { getSpace, Ref, type Queue, type Space } from '@dxos/client/echo';
5
+ import { type Queue, Ref, type Space, getSpace } from '@dxos/client/echo';
6
6
  import { type Sequence, type SequenceEvent, type SequenceLogger } from '@dxos/conductor';
7
7
  import { DXN, Key, Obj } from '@dxos/echo';
8
- import {
9
- InvocationOutcome,
10
- InvocationTraceEndEvent,
11
- InvocationTraceEventType,
12
- InvocationTraceStartEvent,
13
- TraceEvent,
14
- type InvocationTraceEvent,
15
- } from '@dxos/functions';
8
+ import { InvocationTraceEndEvent, InvocationTraceEventType, InvocationTraceStartEvent } from '@dxos/functions-runtime';
9
+ import { TraceEvent } from '@dxos/functions-runtime';
10
+ import { InvocationOutcome } from '@dxos/functions-runtime';
11
+ import { type InvocationTraceEvent } from '@dxos/functions-runtime';
16
12
  import { invariant } from '@dxos/invariant';
17
13
  import { QueueSubspaceTags } from '@dxos/keys';
18
14
 
@@ -39,7 +35,7 @@ export class QueueLogger implements SequenceLogger {
39
35
  Obj.make(InvocationTraceStartEvent, {
40
36
  type: InvocationTraceEventType.START,
41
37
  invocationId: event.invocationId,
42
- timestampMs: Date.now(),
38
+ timestamp: Date.now(),
43
39
  input: {},
44
40
  invocationTraceQueue: Ref.fromDXN(this._getTraceQueueDxn(event.invocationId)),
45
41
  invocationTarget: Ref.make(this.sequence),
@@ -51,7 +47,7 @@ export class QueueLogger implements SequenceLogger {
51
47
  Obj.make(InvocationTraceEndEvent, {
52
48
  type: InvocationTraceEventType.END,
53
49
  invocationId: event.invocationId,
54
- timestampMs: Date.now(),
50
+ timestamp: Date.now(),
55
51
  outcome: InvocationOutcome.SUCCESS,
56
52
  }),
57
53
  ]);
@@ -62,10 +58,10 @@ export class QueueLogger implements SequenceLogger {
62
58
  Obj.make(TraceEvent, {
63
59
  outcome: event.type,
64
60
  truncated: false,
65
- ingestionTimestampMs: Date.now(),
61
+ ingestionTimestamp: Date.now(),
66
62
  logs: [
67
63
  {
68
- timestampMs: Date.now(),
64
+ timestamp: Date.now(),
69
65
  level: 'info',
70
66
  message: event.type,
71
67
  context: { step: event.step },
@@ -80,10 +76,10 @@ export class QueueLogger implements SequenceLogger {
80
76
  Obj.make(TraceEvent, {
81
77
  outcome: event.type,
82
78
  truncated: false,
83
- ingestionTimestampMs: Date.now(),
79
+ ingestionTimestamp: Date.now(),
84
80
  logs: [
85
81
  {
86
- timestampMs: Date.now(),
82
+ timestamp: Date.now(),
87
83
  level: 'info',
88
84
  message: event.type,
89
85
  context: { message: event.message },
@@ -98,10 +94,10 @@ export class QueueLogger implements SequenceLogger {
98
94
  Obj.make(TraceEvent, {
99
95
  outcome: event.type,
100
96
  truncated: false,
101
- ingestionTimestampMs: Date.now(),
97
+ ingestionTimestamp: Date.now(),
102
98
  logs: [
103
99
  {
104
- timestampMs: Date.now(),
100
+ timestamp: Date.now(),
105
101
  level: 'info',
106
102
  message: event.type,
107
103
  context: { block: event.block },
@@ -2,6 +2,6 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ export * from './test-generator';
5
6
  export * from './test-sequence';
6
- export * from './test-functions';
7
7
  export * from './test-services';
@@ -0,0 +1,262 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Obj } from '@dxos/echo';
8
+ import { Database } from '@dxos/echo';
9
+ import { ContextQueueService } from '@dxos/functions';
10
+ import { faker } from '@dxos/random';
11
+ import { renderObjectLink } from '@dxos/react-ui-components';
12
+ import { type Actor, type ContentBlock, Message, Organization } from '@dxos/types';
13
+ import { trim } from '@dxos/util';
14
+
15
+ export const createMessage = (role: Actor.Role, blocks: ContentBlock.Any[]): Message.Message => {
16
+ return Obj.make(Message.Message, {
17
+ created: new Date().toISOString(),
18
+ sender: { role },
19
+ blocks,
20
+ });
21
+ };
22
+
23
+ export type MessageGenerator = Effect.Effect<void, never, Database.Service | ContextQueueService>;
24
+
25
+ export const createMessageGenerator = (): MessageGenerator[] => [
26
+ Effect.gen(function* () {
27
+ const { queue } = yield* ContextQueueService;
28
+ yield* Effect.promise(() =>
29
+ queue.append([
30
+ createMessage('user', [
31
+ {
32
+ _tag: 'text',
33
+ text: faker.lorem.sentence(5),
34
+ },
35
+ ]),
36
+ ]),
37
+ );
38
+ }),
39
+
40
+ Effect.gen(function* () {
41
+ const { queue } = yield* ContextQueueService;
42
+ yield* Effect.promise(() =>
43
+ queue.append([
44
+ createMessage('assistant', [
45
+ {
46
+ _tag: 'text',
47
+ text:
48
+ trim`
49
+ ## Markdown
50
+ Here is a [link](https://dxos.org)
51
+
52
+ And some **bold** text.
53
+
54
+ And some JSON
55
+ \`\`\`json
56
+ {
57
+ "key": "value"
58
+ }
59
+ \`\`\`
60
+
61
+ And some code
62
+ \`\`\`js
63
+ const x = 1;
64
+ \`\`\`
65
+ ` + '\n',
66
+ },
67
+ {
68
+ _tag: 'text',
69
+ disposition: 'cot',
70
+ text:
71
+ [
72
+ faker.lorem.paragraph(),
73
+ '',
74
+ ...Array.from({
75
+ length: faker.number.int({ min: 3, max: 5 }),
76
+ }).map((_, idx) => `${idx + 1}. ${faker.lorem.paragraph()}`),
77
+ ].join('\n') + '\n',
78
+ },
79
+ ]),
80
+ ]),
81
+ );
82
+ }),
83
+
84
+ Effect.gen(function* () {
85
+ const { queue } = yield* ContextQueueService;
86
+ yield* Effect.promise(() =>
87
+ queue.append([
88
+ createMessage('assistant', [
89
+ {
90
+ _tag: 'text',
91
+ text: 'How can I help?',
92
+ },
93
+ {
94
+ _tag: 'suggestion',
95
+ text: 'List tools',
96
+ },
97
+ {
98
+ _tag: 'suggestion',
99
+ text: 'Show info',
100
+ },
101
+ {
102
+ _tag: 'suggestion',
103
+ text: faker.lorem.paragraph(),
104
+ },
105
+ ]),
106
+ createMessage('assistant', [
107
+ {
108
+ _tag: 'text',
109
+ text: 'Select an option:',
110
+ },
111
+ {
112
+ _tag: 'select',
113
+ options: ['Option 1', 'Option 2', 'Option 3'],
114
+ },
115
+ ]),
116
+ ]),
117
+ );
118
+ }),
119
+
120
+ Effect.gen(function* () {
121
+ const { queue } = yield* ContextQueueService;
122
+ yield* Effect.promise(() =>
123
+ queue.append([
124
+ createMessage('assistant', [
125
+ {
126
+ _tag: 'toolkit',
127
+ },
128
+ ]),
129
+ ]),
130
+ );
131
+ }),
132
+
133
+ Effect.gen(function* () {
134
+ const { queue } = yield* ContextQueueService;
135
+ yield* Effect.promise(() =>
136
+ queue.append([
137
+ createMessage('user', [
138
+ {
139
+ _tag: 'text',
140
+ text: faker.lorem.sentence(5),
141
+ },
142
+ ]),
143
+ ]),
144
+ );
145
+ }),
146
+
147
+ Effect.gen(function* () {
148
+ const { queue } = yield* ContextQueueService;
149
+ const { db } = yield* Database.Service;
150
+ const obj1 = db.add(Obj.make(Organization.Organization, { name: 'DXOS' }));
151
+ // const obj2 = db.add(Obj.make(Person.Person, { fullName: 'Alice' }));
152
+ // const obj3 = db.add(Obj.make(Person.Person, { fullName: 'Bob' }));
153
+ // const obj4 = db.add(Obj.make(Person.Person, { fullName: 'Charlie' }));
154
+ yield* Effect.promise(() =>
155
+ queue.append([
156
+ createMessage('assistant', [
157
+ // Inline tag.
158
+ {
159
+ _tag: 'text',
160
+ text: [faker.lorem.paragraph(), renderObjectLink(obj1), faker.lorem.paragraph(), '\n'].join(' '),
161
+ },
162
+
163
+ // Inline cards.
164
+ // ...[obj1, obj2, obj3, obj4].map(
165
+ // (obj) =>
166
+ // ({
167
+ // _tag: 'text',
168
+ // text: renderObjectLink(obj, true) + '\n',
169
+ // }) satisfies ContentBlock.Text,
170
+ // ),
171
+ ]),
172
+ ]),
173
+ );
174
+ }),
175
+
176
+ Effect.gen(function* () {
177
+ const { queue } = yield* ContextQueueService;
178
+ yield* Effect.promise(() =>
179
+ queue.append([
180
+ createMessage('assistant', [
181
+ {
182
+ _tag: 'text',
183
+ text: faker.lorem.paragraph() + '\n',
184
+ },
185
+ ]),
186
+ createMessage('assistant', [
187
+ {
188
+ _tag: 'toolCall',
189
+ toolCallId: '1234',
190
+ name: 'search',
191
+ input: JSON.stringify({}),
192
+ providerExecuted: false,
193
+ },
194
+ ]),
195
+ createMessage('user', [
196
+ {
197
+ _tag: 'toolResult',
198
+ toolCallId: '1234',
199
+ name: 'search',
200
+ result: 'This is a tool result.',
201
+ providerExecuted: false,
202
+ },
203
+ ]),
204
+ ]),
205
+ );
206
+ }),
207
+
208
+ Effect.gen(function* () {
209
+ const { queue } = yield* ContextQueueService;
210
+ yield* Effect.promise(() =>
211
+ queue.append([
212
+ createMessage('assistant', [
213
+ {
214
+ _tag: 'text',
215
+ text: faker.lorem.paragraph() + '\n',
216
+ },
217
+ ]),
218
+ createMessage('assistant', [
219
+ {
220
+ _tag: 'toolCall',
221
+ toolCallId: '4567',
222
+ name: 'create',
223
+ input: JSON.stringify({}),
224
+ providerExecuted: false,
225
+ },
226
+ ]),
227
+ createMessage('user', [
228
+ {
229
+ _tag: 'toolResult',
230
+ toolCallId: '4567',
231
+ name: 'create',
232
+ result: 'This is a tool result.',
233
+ providerExecuted: false,
234
+ },
235
+ ]),
236
+ createMessage('assistant', [
237
+ {
238
+ _tag: 'text',
239
+ text:
240
+ Array.from({ length: faker.number.int({ min: 2, max: 3 }) })
241
+ .map(() => faker.lorem.paragraph())
242
+ .join('\n\n') + '\n',
243
+ },
244
+ ]),
245
+ ]),
246
+ );
247
+ }),
248
+
249
+ Effect.gen(function* () {
250
+ const { queue } = yield* ContextQueueService;
251
+ yield* Effect.promise(() =>
252
+ queue.append([
253
+ createMessage('assistant', [
254
+ {
255
+ _tag: 'text',
256
+ text: faker.lorem.paragraph(),
257
+ },
258
+ ]),
259
+ ]),
260
+ );
261
+ }),
262
+ ];
@@ -2,33 +2,8 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { ToolId, ToolRegistry } from '@dxos/ai';
6
- // import { createExaTool, createGraphWriterTool, createLocalSearchTool } from '@dxos/assistant';
7
- import { type Space } from '@dxos/client/echo';
8
- import { SequenceParser, type SequenceDefinition } from '@dxos/conductor';
9
- import { type DXN } from '@dxos/keys';
10
- import { isNonNullable } from '@dxos/util';
11
-
12
- // TODO(dmaretskyi): make db available through services (same as function executor).
13
- // TODO(burdon): Can tools implement "aspects" so that variants can be used rather than an explicit reference?
14
- export const createToolRegistry = (space: Space, queueDxn?: DXN): ToolRegistry => {
15
- return new ToolRegistry(
16
- [
17
- // createExaTool({ apiKey: EXA_API_KEY }),
18
- // createLocalSearchTool(space.db, queueDxn && space.queues.get(queueDxn)),
19
- // queueDxn &&
20
- // createGraphWriterTool({
21
- // db: space.db,
22
- // queue: space.queues.get(queueDxn),
23
- // schema: DataTypes,
24
- // onDone: async (objects) => {
25
- // const queue = space.queues.get(queueDxn);
26
- // await queue.append(objects);
27
- // },
28
- // }),
29
- ].filter(isNonNullable),
30
- );
31
- };
5
+ import { ToolId } from '@dxos/ai';
6
+ import { type SequenceDefinition, SequenceParser } from '@dxos/conductor';
32
7
 
33
8
  export const RESEARCH_SEQUENCE_DEFINITION: SequenceDefinition = {
34
9
  steps: [
@@ -4,16 +4,10 @@
4
4
 
5
5
  import { Obj } from '@dxos/echo';
6
6
 
7
- import {
8
- type ApiAuthorization,
9
- type BaseServiceRegistry,
10
- type ServiceQuery,
11
- ServiceType,
12
- categoryIcons,
13
- } from '../types';
7
+ import { type ApiAuthorization, type BaseServiceRegistry, ServiceType, categoryIcons } from '../types';
14
8
 
15
9
  export class MockServiceRegistry implements BaseServiceRegistry {
16
- async queryServices(query?: ServiceQuery): Promise<ServiceType[]> {
10
+ async queryServices(): Promise<ServiceType[]> {
17
11
  return TEST_SERVICES;
18
12
  }
19
13
  }
@@ -2,13 +2,15 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Blueprint, Template } from '@dxos/blueprints';
5
+ import { Blueprint, Prompt } from '@dxos/blueprints';
6
6
  import { Sequence } from '@dxos/conductor';
7
+ import { Type } from '@dxos/echo';
7
8
  import { type Resource } from '@dxos/react-ui';
8
9
 
9
10
  import { meta } from './meta';
10
11
  import { Assistant } from './types';
11
12
 
13
+ // TODO(burdon): Standardize translation names.
12
14
  export const translations = [
13
15
  {
14
16
  'en-US': {
@@ -21,15 +23,17 @@ export const translations = [
21
23
  'object name placeholder': 'New blueprint',
22
24
  'rename object label': 'Rename blueprint',
23
25
  'delete object label': 'Delete blueprint',
26
+ 'object deleted label': 'Blueprint deleted',
24
27
  },
25
- [Template.Template.typename]: {
26
- 'typename label': 'Template',
27
- 'typename label_zero': 'Templates',
28
- 'typename label_one': 'Template',
29
- 'typename label_other': 'Templates',
30
- 'object name placeholder': 'New template',
31
- 'rename object label': 'Rename template',
32
- 'delete object label': 'Delete template',
28
+ [Type.getTypename(Prompt.Prompt)]: {
29
+ 'typename label': 'Prompt',
30
+ 'typename label_zero': 'Prompts',
31
+ 'typename label_one': 'Prompt',
32
+ 'typename label_other': 'Prompts',
33
+ 'object name placeholder': 'New prompt',
34
+ 'rename object label': 'Rename prompt',
35
+ 'delete object label': 'Delete prompt',
36
+ 'object deleted label': 'Prompt deleted',
33
37
  },
34
38
  // TODO(burdon): From conductor.
35
39
  [Sequence.typename]: {
@@ -40,21 +44,22 @@ export const translations = [
40
44
  'object name placeholder': 'New sequence',
41
45
  'rename object label': 'Rename sequence',
42
46
  'delete object label': 'Delete sequence',
47
+ 'object deleted label': 'Sequence deleted',
43
48
  },
44
49
  [Assistant.Chat.typename]: {
45
- 'typename label': 'Assistant',
46
- 'typename label_zero': 'Assistants',
47
- 'typename label_one': 'Assistant',
48
- 'typename label_other': 'Assistants',
49
- 'object name placeholder': 'New assistant',
50
- 'rename object label': 'Rename assistant',
51
- 'delete object label': 'Delete assistant',
50
+ 'typename label': 'AI Chat',
51
+ 'object name placeholder': 'New AI Chat',
52
+ 'rename object label': 'Rename AI Chat',
53
+ 'delete object label': 'Delete AI Chat',
54
+ 'object deleted label': 'AI Chat deleted',
52
55
  },
56
+ // TODO(burdon): Reconcile with react-ui-chat.
53
57
  [meta.id]: {
54
58
  'templates label': 'Templates',
55
59
  'open ambient chat label': 'Open Assistant',
56
60
  'assistant chat label': 'Assistant',
57
61
  'plugin name': 'Assistant',
62
+ 'settings title': 'Assistant settings',
58
63
  'object placeholder': 'New prompt',
59
64
  'create object label': 'Create prompt',
60
65
  'create trigger label': 'Create trigger',
@@ -67,24 +72,41 @@ export const translations = [
67
72
  'description placeholder': 'Enter description of when this template should be used',
68
73
  'select preset template placeholder': 'Select preset',
69
74
  'service registry label': 'Service Registry',
75
+ 'type filter placeholder': 'Type',
76
+ 'any type filter label': 'Any',
77
+ 'no blueprint message': 'No active blueprints',
78
+ 'tool call label': 'Calling tool...',
79
+ 'tool result label': 'Success',
80
+ 'tool error label': 'Tool call failed',
70
81
 
71
- 'sequence logs label': 'Logs',
82
+ 'invocations label': 'Invocations',
72
83
 
73
84
  'assistant dialog title': 'Assistant',
74
85
  'open assistant label': 'Open assistant',
75
86
 
76
- 'no tools': 'No tools are configured.',
87
+ 'no tools': 'No tools are configured',
88
+ 'no results': 'No results',
77
89
 
78
- 'button save': 'Save',
79
- 'button run': 'Run',
90
+ 'cancel button': 'Cancel',
91
+ 'save button': 'Save',
92
+ 'new thread button': 'New Chat',
93
+ 'rename thread button': 'Rename Chat',
94
+ 'chat history label': 'Chat History',
95
+ 'chat update name label': 'Update AI Chat name',
96
+
97
+ 'toolkit label': 'Toolkit',
98
+ 'summary label': 'Summary',
80
99
 
81
100
  'search placeholder': 'Search...',
82
- 'prompt placeholder': 'Ask or search for anything...',
83
- 'context objects placeholder': 'Add to context...',
84
- 'button add blueprint': 'Configure blueprints',
85
- 'button microphone': 'Click to speak',
86
- 'button cancel processing': 'Stop processing',
87
- 'button scroll down': 'Scroll down',
101
+ 'prompt placeholder': 'Enter question or command...',
102
+ 'context objects button': 'Add to context',
103
+ 'context settings button': 'Chat settings',
104
+ 'microphone button': 'Click to speak',
105
+ 'cancel processing button': 'Stop processing',
106
+ 'blueprints in context title': 'Blueprints',
107
+ 'objects in context title': 'Content',
108
+ 'remove object in context label': 'Remove document',
109
+ 'chat model title': 'Model',
88
110
 
89
111
  'settings default label': 'Default',
90
112
  'settings custom prompts label': 'Use custom prompts',
@@ -0,0 +1,63 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { Obj, Ref, Type } from '@dxos/echo';
8
+ import { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';
9
+ import { Queue } from '@dxos/echo-db';
10
+
11
+ import { LLM_PROVIDERS } from './defs';
12
+
13
+ /**
14
+ * AI chat.
15
+ */
16
+ export const Chat = Schema.Struct({
17
+ name: Schema.String.pipe(Schema.optional),
18
+ queue: Type.Ref(Queue).pipe(FormInputAnnotation.set(false)),
19
+ // TODO(dmaretskyi): Eventually this and the message queue will be the same.
20
+ traceQueue: Type.Ref(Queue).pipe(FormInputAnnotation.set(false), Schema.optional),
21
+ }).pipe(
22
+ Type.Obj({
23
+ typename: 'dxos.org/type/assistant/Chat',
24
+ version: '0.2.0',
25
+ }),
26
+ LabelAnnotation.set(['name']),
27
+ );
28
+
29
+ export interface Chat extends Schema.Schema.Type<typeof Chat> {}
30
+
31
+ export const makeChat = ({ name, queue }: { name?: string; queue: Queue }) =>
32
+ Obj.make(Chat, { name, queue: Ref.fromDXN(queue.dxn) });
33
+
34
+ /**
35
+ * Relation between a Chat and companion objects (e.g., artifacts).
36
+ */
37
+ export const CompanionTo = Schema.Struct({
38
+ id: Obj.ID,
39
+ }).pipe(
40
+ Type.Relation({
41
+ typename: 'dxos.org/relation/assistant/CompanionTo',
42
+ version: '0.1.0',
43
+ source: Chat,
44
+ target: Type.Expando,
45
+ }),
46
+ );
47
+
48
+ export interface CompanionTo extends Schema.Schema.Type<typeof CompanionTo> {}
49
+
50
+ /**
51
+ * Plugin settings.
52
+ */
53
+ export const Settings = Schema.mutable(
54
+ Schema.Struct({
55
+ llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),
56
+ edgeModel: Schema.optional(Schema.String),
57
+ ollamaModel: Schema.optional(Schema.String),
58
+ lmstudioModel: Schema.optional(Schema.String),
59
+ customPrompts: Schema.optional(Schema.Boolean),
60
+ }),
61
+ );
62
+
63
+ export type Settings = Schema.Schema.Type<typeof Settings>;
@@ -0,0 +1,79 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { Blueprint, Prompt } from '@dxos/blueprints';
8
+ import { EchoObjectSchema, SpaceSchema } from '@dxos/client/echo';
9
+ import { Sequence } from '@dxos/conductor';
10
+ import { Collection } from '@dxos/schema';
11
+
12
+ import { meta } from '../meta';
13
+
14
+ import { Chat } from './Assistant';
15
+
16
+ // TODO(burdon): Name?
17
+ export class OnCreateSpace extends Schema.TaggedClass<OnCreateSpace>()(`${meta.id}/on-space-created`, {
18
+ input: Schema.Struct({
19
+ space: SpaceSchema,
20
+ rootCollection: Collection.Collection,
21
+ }),
22
+ output: Schema.Void,
23
+ }) {}
24
+
25
+ export class CreateChat extends Schema.TaggedClass<CreateChat>()(`${meta.id}/action/create-chat`, {
26
+ input: Schema.Struct({
27
+ space: SpaceSchema,
28
+ name: Schema.optional(Schema.String),
29
+ }),
30
+ output: Schema.Struct({
31
+ object: Chat,
32
+ }),
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
+
42
+ export const BlueprintForm = Schema.Struct({
43
+ key: Schema.String,
44
+ name: Schema.String,
45
+ description: Schema.optional(Schema.String),
46
+ });
47
+
48
+ export class CreateBlueprint extends Schema.TaggedClass<CreateBlueprint>()(`${meta.id}/action/create-blueprint`, {
49
+ input: BlueprintForm,
50
+ output: Schema.Struct({
51
+ object: Blueprint.Blueprint,
52
+ }),
53
+ }) {}
54
+
55
+ export class CreatePrompt extends Schema.TaggedClass<CreatePrompt>()(`${meta.id}/action/create-prompt`, {
56
+ input: Schema.Struct({
57
+ name: Schema.optional(Schema.String),
58
+ }),
59
+ output: Schema.Struct({
60
+ object: Prompt.Prompt,
61
+ }),
62
+ }) {}
63
+
64
+ export class CreateSequence extends Schema.TaggedClass<CreateSequence>()(`${meta.id}/action/create-sequence`, {
65
+ input: Schema.Struct({
66
+ name: Schema.optional(Schema.String),
67
+ }),
68
+ output: Schema.Struct({
69
+ object: Sequence,
70
+ }),
71
+ }) {}
72
+
73
+ export class SetCurrentChat extends Schema.TaggedClass<SetCurrentChat>()(`${meta.id}/action/set-current-chat`, {
74
+ input: Schema.Struct({
75
+ companionTo: EchoObjectSchema,
76
+ chat: Chat.pipe(Schema.optional),
77
+ }),
78
+ output: Schema.Void,
79
+ }) {}
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export const LLM_PROVIDERS = ['edge', 'ollama', 'lmstudio'] as const;