@dxos/plugin-assistant 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae

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 (681) hide show
  1. package/dist/lib/browser/AssistantSettings-2LFAG5OQ.mjs +93 -0
  2. package/dist/lib/browser/AssistantSettings-2LFAG5OQ.mjs.map +7 -0
  3. package/dist/lib/browser/BlueprintArticle-CCS25MNW.mjs +36 -0
  4. package/dist/lib/browser/BlueprintArticle-CCS25MNW.mjs.map +7 -0
  5. package/dist/lib/browser/ChatCompanion-UGD4V34A.mjs +202 -0
  6. package/dist/lib/browser/ChatCompanion-UGD4V34A.mjs.map +7 -0
  7. package/dist/lib/browser/ChatContainer-ZGRSZ5EU.mjs +12 -0
  8. package/dist/lib/browser/ChatDialog-AET7GVIB.mjs +85 -0
  9. package/dist/lib/browser/ChatDialog-AET7GVIB.mjs.map +7 -0
  10. package/dist/lib/browser/ProjectArticle-QDBTIFNE.mjs +91 -0
  11. package/dist/lib/browser/ProjectArticle-QDBTIFNE.mjs.map +7 -0
  12. package/dist/lib/browser/ProjectSettings-R6RRARLO.mjs +194 -0
  13. package/dist/lib/browser/ProjectSettings-R6RRARLO.mjs.map +7 -0
  14. package/dist/lib/browser/PromptArticle-USQO4WX6.mjs +71 -0
  15. package/dist/lib/browser/PromptArticle-USQO4WX6.mjs.map +7 -0
  16. package/dist/lib/browser/TriggerStatus-65X3EUSN.mjs +122 -0
  17. package/dist/lib/browser/TriggerStatus-65X3EUSN.mjs.map +7 -0
  18. package/dist/lib/browser/ai-service-CY2BYPH6.mjs +22 -0
  19. package/dist/lib/browser/ai-service-CY2BYPH6.mjs.map +7 -0
  20. package/dist/lib/browser/app-graph-builder-SFYYUKTT.mjs +234 -0
  21. package/dist/lib/browser/app-graph-builder-SFYYUKTT.mjs.map +7 -0
  22. package/dist/lib/browser/blueprint-definition-RB5RHZZM.mjs +34 -0
  23. package/dist/lib/browser/blueprint-definition-RB5RHZZM.mjs.map +7 -0
  24. package/dist/lib/browser/blueprints/index.mjs +8 -0
  25. package/dist/lib/browser/chunk-7DXYAXLZ.mjs +230 -0
  26. package/dist/lib/browser/chunk-7DXYAXLZ.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-EXVT7D4B.mjs +23 -0
  28. package/dist/lib/browser/chunk-EXVT7D4B.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-JYY5AD65.mjs +286 -0
  30. package/dist/lib/browser/chunk-JYY5AD65.mjs.map +7 -0
  31. package/dist/lib/browser/chunk-LEXIQDXZ.mjs +26 -0
  32. package/dist/lib/browser/chunk-LEXIQDXZ.mjs.map +7 -0
  33. package/dist/lib/browser/chunk-RU4G5NY4.mjs +69 -0
  34. package/dist/lib/browser/chunk-RU4G5NY4.mjs.map +7 -0
  35. package/dist/lib/browser/chunk-UUA6GNGG.mjs +2125 -0
  36. package/dist/lib/browser/chunk-UUA6GNGG.mjs.map +7 -0
  37. package/dist/lib/browser/edge-model-resolver-YTMFQEN5.mjs +21 -0
  38. package/dist/lib/browser/edge-model-resolver-YTMFQEN5.mjs.map +7 -0
  39. package/dist/lib/browser/index.mjs +271 -226
  40. package/dist/lib/browser/index.mjs.map +4 -4
  41. package/dist/lib/browser/local-model-resolver-CGRQH37T.mjs +20 -0
  42. package/dist/lib/browser/local-model-resolver-CGRQH37T.mjs.map +7 -0
  43. package/dist/lib/browser/meta.json +1 -1
  44. package/dist/lib/browser/operation-resolver-ELXDQZEG.mjs +136 -0
  45. package/dist/lib/browser/operation-resolver-ELXDQZEG.mjs.map +7 -0
  46. package/dist/lib/browser/react-surface-KYQSZO2I.mjs +144 -0
  47. package/dist/lib/browser/react-surface-KYQSZO2I.mjs.map +7 -0
  48. package/dist/lib/browser/repair-ZFZWZALX.mjs +52 -0
  49. package/dist/lib/browser/repair-ZFZWZALX.mjs.map +7 -0
  50. package/dist/lib/browser/settings-YREVQAZ5.mjs +33 -0
  51. package/dist/lib/browser/settings-YREVQAZ5.mjs.map +7 -0
  52. package/dist/lib/browser/state-MPG42ZO4.mjs +26 -0
  53. package/dist/lib/browser/state-MPG42ZO4.mjs.map +7 -0
  54. package/dist/lib/browser/toolkit-XRSBBB3L.mjs +16 -0
  55. package/dist/lib/browser/toolkit-XRSBBB3L.mjs.map +7 -0
  56. package/dist/lib/browser/types/index.mjs +8 -4
  57. package/dist/lib/node-esm/AssistantSettings-QWFEMJG7.mjs +94 -0
  58. package/dist/lib/node-esm/AssistantSettings-QWFEMJG7.mjs.map +7 -0
  59. package/dist/lib/node-esm/BlueprintArticle-SNEN6LOY.mjs +37 -0
  60. package/dist/lib/node-esm/BlueprintArticle-SNEN6LOY.mjs.map +7 -0
  61. package/dist/lib/node-esm/ChatCompanion-NP4R5BFE.mjs +203 -0
  62. package/dist/lib/node-esm/ChatCompanion-NP4R5BFE.mjs.map +7 -0
  63. package/dist/lib/node-esm/ChatContainer-IFHDIFJH.mjs +13 -0
  64. package/dist/lib/node-esm/ChatContainer-IFHDIFJH.mjs.map +7 -0
  65. package/dist/lib/node-esm/ChatDialog-UZNQBTKZ.mjs +86 -0
  66. package/dist/lib/node-esm/ChatDialog-UZNQBTKZ.mjs.map +7 -0
  67. package/dist/lib/node-esm/ProjectArticle-BCIBESJN.mjs +92 -0
  68. package/dist/lib/node-esm/ProjectArticle-BCIBESJN.mjs.map +7 -0
  69. package/dist/lib/node-esm/ProjectSettings-Q5QY6BYS.mjs +195 -0
  70. package/dist/lib/node-esm/ProjectSettings-Q5QY6BYS.mjs.map +7 -0
  71. package/dist/lib/node-esm/PromptArticle-PGMJMQK7.mjs +72 -0
  72. package/dist/lib/node-esm/PromptArticle-PGMJMQK7.mjs.map +7 -0
  73. package/dist/lib/node-esm/TriggerStatus-UR5S7PXJ.mjs +123 -0
  74. package/dist/lib/node-esm/TriggerStatus-UR5S7PXJ.mjs.map +7 -0
  75. package/dist/lib/node-esm/ai-service-ZI3A6RVG.mjs +23 -0
  76. package/dist/lib/node-esm/ai-service-ZI3A6RVG.mjs.map +7 -0
  77. package/dist/lib/node-esm/app-graph-builder-E25JXI34.mjs +235 -0
  78. package/dist/lib/node-esm/app-graph-builder-E25JXI34.mjs.map +7 -0
  79. package/dist/lib/node-esm/blueprint-definition-L7XKRYIW.mjs +35 -0
  80. package/dist/lib/node-esm/blueprint-definition-L7XKRYIW.mjs.map +7 -0
  81. package/dist/lib/node-esm/blueprints/index.mjs +9 -0
  82. package/dist/lib/node-esm/blueprints/index.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-3QBVFAYO.mjs +28 -0
  84. package/dist/lib/node-esm/chunk-3QBVFAYO.mjs.map +7 -0
  85. package/dist/lib/node-esm/chunk-6NCLKQCL.mjs +70 -0
  86. package/dist/lib/node-esm/chunk-6NCLKQCL.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-GZ4ERNT2.mjs +2126 -0
  88. package/dist/lib/node-esm/chunk-GZ4ERNT2.mjs.map +7 -0
  89. package/dist/lib/node-esm/chunk-JMBYVUD6.mjs +288 -0
  90. package/dist/lib/node-esm/chunk-JMBYVUD6.mjs.map +7 -0
  91. package/dist/lib/node-esm/chunk-MWYYLALM.mjs +231 -0
  92. package/dist/lib/node-esm/chunk-MWYYLALM.mjs.map +7 -0
  93. package/dist/lib/node-esm/{chunk-73ABYRYX.mjs → chunk-POWB2BPC.mjs} +7 -2
  94. package/dist/lib/node-esm/chunk-POWB2BPC.mjs.map +7 -0
  95. package/dist/lib/node-esm/edge-model-resolver-CMJ3KNLQ.mjs +22 -0
  96. package/dist/lib/node-esm/edge-model-resolver-CMJ3KNLQ.mjs.map +7 -0
  97. package/dist/lib/node-esm/index.mjs +271 -226
  98. package/dist/lib/node-esm/index.mjs.map +4 -4
  99. package/dist/lib/node-esm/local-model-resolver-FFDAKOXN.mjs +21 -0
  100. package/dist/lib/node-esm/local-model-resolver-FFDAKOXN.mjs.map +7 -0
  101. package/dist/lib/node-esm/meta.json +1 -1
  102. package/dist/lib/node-esm/operation-resolver-Q5GNP2GH.mjs +137 -0
  103. package/dist/lib/node-esm/operation-resolver-Q5GNP2GH.mjs.map +7 -0
  104. package/dist/lib/node-esm/react-surface-JJRGVGKD.mjs +145 -0
  105. package/dist/lib/node-esm/react-surface-JJRGVGKD.mjs.map +7 -0
  106. package/dist/lib/node-esm/repair-LXFVOK4B.mjs +53 -0
  107. package/dist/lib/node-esm/repair-LXFVOK4B.mjs.map +7 -0
  108. package/dist/lib/node-esm/settings-N452OW6Y.mjs +34 -0
  109. package/dist/lib/node-esm/settings-N452OW6Y.mjs.map +7 -0
  110. package/dist/lib/node-esm/state-WHZFKIEL.mjs +27 -0
  111. package/dist/lib/node-esm/state-WHZFKIEL.mjs.map +7 -0
  112. package/dist/lib/node-esm/toolkit-5IWGLUF4.mjs +17 -0
  113. package/dist/lib/node-esm/toolkit-5IWGLUF4.mjs.map +7 -0
  114. package/dist/lib/node-esm/types/index.mjs +8 -4
  115. package/dist/types/src/AssistantPlugin.d.ts +2 -1
  116. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  117. package/dist/types/src/blueprints/assistant/blueprint.d.ts +4 -0
  118. package/dist/types/src/blueprints/assistant/blueprint.d.ts.map +1 -0
  119. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts +2 -0
  120. package/dist/types/src/blueprints/assistant/blueprint.test.d.ts.map +1 -0
  121. package/dist/types/src/blueprints/assistant/index.d.ts +2 -0
  122. package/dist/types/src/blueprints/assistant/index.d.ts.map +1 -0
  123. package/dist/types/src/blueprints/index.d.ts +2 -0
  124. package/dist/types/src/blueprints/index.d.ts.map +1 -0
  125. package/dist/types/src/capabilities/ai-service/ai-service.d.ts +6 -0
  126. package/dist/types/src/capabilities/ai-service/ai-service.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/ai-service/index.d.ts +3 -0
  128. package/dist/types/src/capabilities/ai-service/index.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  130. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  132. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts +6 -0
  134. package/dist/types/src/capabilities/blueprint-definition/blueprint-definition.d.ts.map +1 -0
  135. package/dist/types/src/capabilities/blueprint-definition/index.d.ts +3 -0
  136. package/dist/types/src/capabilities/blueprint-definition/index.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts +7 -0
  138. package/dist/types/src/capabilities/edge-model-resolver/edge-model-resolver.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/edge-model-resolver/index.d.ts +3 -0
  140. package/dist/types/src/capabilities/edge-model-resolver/index.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/index.d.ts +10 -11
  142. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  143. package/dist/types/src/capabilities/local-model-resolver/index.d.ts +3 -0
  144. package/dist/types/src/capabilities/local-model-resolver/index.d.ts.map +1 -0
  145. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts +13 -0
  146. package/dist/types/src/capabilities/local-model-resolver/local-model-resolver.d.ts.map +1 -0
  147. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  148. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  150. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  151. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  152. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  153. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  154. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  155. package/dist/types/src/capabilities/repair/index.d.ts +3 -0
  156. package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
  157. package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
  158. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
  159. package/dist/types/src/capabilities/settings/index.d.ts +15 -0
  160. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  161. package/dist/types/src/capabilities/settings/settings.d.ts +18 -0
  162. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  163. package/dist/types/src/capabilities/state/index.d.ts +11 -0
  164. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  165. package/dist/types/src/capabilities/state/state.d.ts +13 -0
  166. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  167. package/dist/types/src/capabilities/toolkit/index.d.ts +3 -0
  168. package/dist/types/src/capabilities/toolkit/index.d.ts.map +1 -0
  169. package/dist/types/src/capabilities/toolkit/toolkit.d.ts +6 -0
  170. package/dist/types/src/capabilities/toolkit/toolkit.d.ts.map +1 -0
  171. package/dist/types/src/components/Chat/Chat.d.ts +28 -14
  172. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  173. package/dist/types/src/components/Chat/events.d.ts +5 -1
  174. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  175. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +2 -2
  176. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -1
  177. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  178. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +3 -3
  179. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -1
  180. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +3 -3
  181. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  182. package/dist/types/src/components/ChatThread/ChatThread.d.ts +7 -8
  183. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  184. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +250 -76
  185. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  186. package/dist/types/src/components/ChatThread/registry.d.ts +1 -1
  187. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -1
  188. package/dist/types/src/components/ChatThread/sync.d.ts +12 -6
  189. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -1
  190. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
  191. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  192. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +234 -65
  193. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  194. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +11 -1
  195. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  196. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +235 -66
  197. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  198. package/dist/types/src/components/TemplateEditor/extensions/handlebars-extension.d.ts.map +1 -0
  199. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts +3 -0
  200. package/dist/types/src/components/TemplateEditor/extensions/index.d.ts.map +1 -0
  201. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts +8 -0
  202. package/dist/types/src/components/TemplateEditor/extensions/xml-extension.d.ts.map +1 -0
  203. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +10 -8
  204. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -1
  205. package/dist/types/src/components/Toolbox/Toolbox.d.ts +6 -7
  206. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  207. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +234 -64
  208. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  209. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts +12 -0
  210. package/dist/types/src/components/Typewriter/AssistantToolbar.d.ts.map +1 -0
  211. package/dist/types/src/components/Typewriter/Typewriter.d.ts +11 -0
  212. package/dist/types/src/components/Typewriter/Typewriter.d.ts.map +1 -0
  213. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts +7 -0
  214. package/dist/types/src/components/Typewriter/Typewriter.stories.d.ts.map +1 -0
  215. package/dist/types/src/components/Typewriter/assistant-extension.d.ts +5 -0
  216. package/dist/types/src/components/Typewriter/assistant-extension.d.ts.map +1 -0
  217. package/dist/types/src/components/Typewriter/index.d.ts +2 -0
  218. package/dist/types/src/components/Typewriter/index.d.ts.map +1 -0
  219. package/dist/types/src/components/index.d.ts +0 -11
  220. package/dist/types/src/components/index.d.ts.map +1 -1
  221. package/dist/types/src/containers/AssistantSettings/AssistantSettings.d.ts +8 -0
  222. package/dist/types/src/containers/AssistantSettings/AssistantSettings.d.ts.map +1 -0
  223. package/dist/types/src/containers/AssistantSettings/index.d.ts +3 -0
  224. package/dist/types/src/containers/AssistantSettings/index.d.ts.map +1 -0
  225. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts +6 -0
  226. package/dist/types/src/containers/BlueprintArticle/BlueprintArticle.d.ts.map +1 -0
  227. package/dist/types/src/containers/BlueprintArticle/index.d.ts +3 -0
  228. package/dist/types/src/containers/BlueprintArticle/index.d.ts.map +1 -0
  229. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts +12 -0
  230. package/dist/types/src/containers/ChatCompanion/ChatCompanion.d.ts.map +1 -0
  231. package/dist/types/src/containers/ChatCompanion/index.d.ts +3 -0
  232. package/dist/types/src/containers/ChatCompanion/index.d.ts.map +1 -0
  233. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts +18 -0
  234. package/dist/types/src/containers/ChatContainer/ChatContainer.d.ts.map +1 -0
  235. package/dist/types/src/containers/ChatContainer/index.d.ts +3 -0
  236. package/dist/types/src/containers/ChatContainer/index.d.ts.map +1 -0
  237. package/dist/types/src/{components → containers/ChatDialog}/ChatDialog.d.ts +2 -3
  238. package/dist/types/src/containers/ChatDialog/ChatDialog.d.ts.map +1 -0
  239. package/dist/types/src/containers/ChatDialog/index.d.ts +3 -0
  240. package/dist/types/src/containers/ChatDialog/index.d.ts.map +1 -0
  241. package/dist/types/src/containers/Project/ProjectArticle.d.ts +7 -0
  242. package/dist/types/src/containers/Project/ProjectArticle.d.ts.map +1 -0
  243. package/dist/types/src/containers/Project/ProjectSettings.d.ts +6 -0
  244. package/dist/types/src/containers/Project/ProjectSettings.d.ts.map +1 -0
  245. package/dist/types/src/containers/Project/index.d.ts +7 -0
  246. package/dist/types/src/containers/Project/index.d.ts.map +1 -0
  247. package/dist/types/src/containers/Project/triggers.d.ts +6 -0
  248. package/dist/types/src/containers/Project/triggers.d.ts.map +1 -0
  249. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts +6 -0
  250. package/dist/types/src/containers/PromptArticle/PromptArticle.d.ts.map +1 -0
  251. package/dist/types/src/containers/PromptArticle/index.d.ts +3 -0
  252. package/dist/types/src/containers/PromptArticle/index.d.ts.map +1 -0
  253. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts +4 -0
  254. package/dist/types/src/containers/TriggerStatus/TriggerStatus.d.ts.map +1 -0
  255. package/dist/types/src/containers/TriggerStatus/index.d.ts +3 -0
  256. package/dist/types/src/containers/TriggerStatus/index.d.ts.map +1 -0
  257. package/dist/types/src/containers/index.d.ts +10 -0
  258. package/dist/types/src/containers/index.d.ts.map +1 -0
  259. package/dist/types/src/hooks/index.d.ts +2 -1
  260. package/dist/types/src/hooks/index.d.ts.map +1 -1
  261. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +5 -5
  262. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -1
  263. package/dist/types/src/hooks/useChatProcessor.d.ts +5 -2
  264. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  265. package/dist/types/src/hooks/useChatServices.d.ts +5 -5
  266. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  267. package/dist/types/src/hooks/useChatToolbarActions.d.ts +8 -0
  268. package/dist/types/src/hooks/useChatToolbarActions.d.ts.map +1 -0
  269. package/dist/types/src/hooks/useContextBinder.d.ts +2 -2
  270. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -1
  271. package/dist/types/src/hooks/useContextObjects.d.ts +7 -7
  272. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -1
  273. package/dist/types/src/hooks/useFilteredTypes.d.ts +3 -0
  274. package/dist/types/src/hooks/useFilteredTypes.d.ts.map +1 -0
  275. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  276. package/dist/types/src/index.d.ts +3 -1
  277. package/dist/types/src/index.d.ts.map +1 -1
  278. package/dist/types/src/meta.d.ts +2 -2
  279. package/dist/types/src/meta.d.ts.map +1 -1
  280. package/dist/types/src/processor/index.d.ts +1 -0
  281. package/dist/types/src/processor/index.d.ts.map +1 -1
  282. package/dist/types/src/processor/processor.d.ts +24 -19
  283. package/dist/types/src/processor/processor.d.ts.map +1 -1
  284. package/dist/types/src/processor/update-name.d.ts +10 -0
  285. package/dist/types/src/processor/update-name.d.ts.map +1 -0
  286. package/dist/types/src/queue-logger.d.ts.map +1 -1
  287. package/dist/types/src/testing/index.d.ts +0 -2
  288. package/dist/types/src/testing/index.d.ts.map +1 -1
  289. package/dist/types/src/testing/test-generator.d.ts +5 -4
  290. package/dist/types/src/testing/test-generator.d.ts.map +1 -1
  291. package/dist/types/src/testing/test-services.d.ts +2 -2
  292. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  293. package/dist/types/src/translations.d.ts +359 -27
  294. package/dist/types/src/translations.d.ts.map +1 -1
  295. package/dist/types/src/types/Assistant.d.ts +7 -29
  296. package/dist/types/src/types/Assistant.d.ts.map +1 -1
  297. package/dist/types/src/types/AssistantAction.d.ts +86 -100
  298. package/dist/types/src/types/AssistantAction.d.ts.map +1 -1
  299. package/dist/types/src/types/capabilities.d.ts +33 -0
  300. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  301. package/dist/types/src/types/events.d.ts +5 -0
  302. package/dist/types/src/types/events.d.ts.map +1 -0
  303. package/dist/types/src/types/index.d.ts +4 -1
  304. package/dist/types/src/types/index.d.ts.map +1 -1
  305. package/dist/types/src/types/service.d.ts +13 -215
  306. package/dist/types/src/types/service.d.ts.map +1 -1
  307. package/dist/types/tsconfig.tsbuildinfo +1 -1
  308. package/package.json +120 -112
  309. package/src/AssistantPlugin.tsx +117 -112
  310. package/src/blueprints/assistant/blueprint.conversations.json +1 -0
  311. package/src/blueprints/assistant/blueprint.test.ts +48 -0
  312. package/src/blueprints/assistant/blueprint.ts +27 -0
  313. package/src/blueprints/assistant/index.ts +5 -0
  314. package/src/{components/Toolbar → blueprints}/index.ts +1 -1
  315. package/src/capabilities/ai-service/ai-service.ts +30 -0
  316. package/src/capabilities/ai-service/index.ts +7 -0
  317. package/src/capabilities/app-graph-builder/app-graph-builder.ts +198 -0
  318. package/src/capabilities/app-graph-builder/index.ts +7 -0
  319. package/src/capabilities/blueprint-definition/blueprint-definition.ts +48 -0
  320. package/src/capabilities/blueprint-definition/index.ts +7 -0
  321. package/src/capabilities/edge-model-resolver/edge-model-resolver.ts +33 -0
  322. package/src/capabilities/edge-model-resolver/index.ts +7 -0
  323. package/src/capabilities/index.ts +10 -14
  324. package/src/capabilities/local-model-resolver/index.ts +7 -0
  325. package/src/capabilities/local-model-resolver/local-model-resolver.ts +38 -0
  326. package/src/capabilities/operation-resolver/index.ts +7 -0
  327. package/src/capabilities/operation-resolver/operation-resolver.ts +121 -0
  328. package/src/capabilities/react-surface/index.ts +7 -0
  329. package/src/capabilities/react-surface/react-surface.tsx +121 -0
  330. package/src/capabilities/repair/index.ts +7 -0
  331. package/src/capabilities/repair/repair.ts +69 -0
  332. package/src/capabilities/settings/index.ts +7 -0
  333. package/src/capabilities/settings/settings.ts +31 -0
  334. package/src/capabilities/state/index.ts +7 -0
  335. package/src/capabilities/state/state.ts +27 -0
  336. package/src/capabilities/toolkit/index.ts +7 -0
  337. package/src/capabilities/toolkit/toolkit.ts +15 -0
  338. package/src/components/Chat/Chat.tsx +229 -153
  339. package/src/components/Chat/events.ts +7 -1
  340. package/src/components/ChatProgress/ChatProgress.tsx +6 -20
  341. package/src/components/ChatPrompt/ChatActions.tsx +12 -6
  342. package/src/components/ChatPrompt/ChatOptions.tsx +119 -86
  343. package/src/components/ChatPrompt/ChatReferences.tsx +19 -10
  344. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +1 -1
  345. package/src/components/ChatThread/ChatThread.stories.tsx +59 -38
  346. package/src/components/ChatThread/ChatThread.tsx +40 -37
  347. package/src/components/ChatThread/Link.tsx +4 -4
  348. package/src/components/ChatThread/registry.tsx +72 -49
  349. package/src/components/ChatThread/sync.test.ts +35 -17
  350. package/src/components/ChatThread/sync.ts +61 -14
  351. package/src/components/ChatThread/testing/thread.md +37 -0
  352. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +17 -7
  353. package/src/components/TemplateEditor/TemplateEditor.tsx +25 -13
  354. package/src/components/TemplateEditor/TemplateForm.stories.tsx +17 -9
  355. package/src/components/TemplateEditor/TemplateForm.tsx +80 -34
  356. package/src/components/TemplateEditor/extensions/handlebars-extension.ts +274 -0
  357. package/src/components/TemplateEditor/extensions/index.ts +6 -0
  358. package/src/components/TemplateEditor/extensions/xml-extension.ts +64 -0
  359. package/src/components/ToolBlock/ToolBlock.tsx +39 -48
  360. package/src/components/Toolbox/Toolbox.stories.tsx +11 -12
  361. package/src/components/Toolbox/Toolbox.tsx +52 -54
  362. package/src/components/Typewriter/AssistantToolbar.tsx +161 -0
  363. package/src/components/Typewriter/Typewriter.stories.tsx +86 -0
  364. package/src/components/Typewriter/Typewriter.tsx +54 -0
  365. package/src/components/Typewriter/assistant-extension.tsx +142 -0
  366. package/src/components/Typewriter/index.ts +5 -0
  367. package/src/components/index.ts +0 -12
  368. package/src/{components → containers}/AssistantSettings/AssistantSettings.tsx +28 -20
  369. package/src/containers/AssistantSettings/index.ts +7 -0
  370. package/src/containers/BlueprintArticle/BlueprintArticle.tsx +30 -0
  371. package/src/containers/BlueprintArticle/index.ts +7 -0
  372. package/src/containers/ChatCompanion/ChatCompanion.tsx +225 -0
  373. package/src/containers/ChatCompanion/index.ts +7 -0
  374. package/src/containers/ChatContainer/ChatContainer.tsx +69 -0
  375. package/src/containers/ChatContainer/index.ts +7 -0
  376. package/src/{components → containers/ChatDialog}/ChatDialog.tsx +18 -14
  377. package/src/containers/ChatDialog/index.ts +7 -0
  378. package/src/containers/Project/ProjectArticle.tsx +117 -0
  379. package/src/containers/Project/ProjectSettings.tsx +118 -0
  380. package/src/containers/Project/index.ts +16 -0
  381. package/src/containers/Project/triggers.ts +131 -0
  382. package/src/containers/PromptArticle/PromptArticle.tsx +59 -0
  383. package/src/containers/PromptArticle/index.ts +7 -0
  384. package/src/containers/TriggerStatus/TriggerStatus.tsx +150 -0
  385. package/src/containers/TriggerStatus/index.ts +7 -0
  386. package/src/containers/index.ts +15 -0
  387. package/src/hooks/index.ts +2 -1
  388. package/src/hooks/useBlueprintRegistry.ts +35 -21
  389. package/src/hooks/useChatProcessor.ts +26 -14
  390. package/src/hooks/useChatServices.ts +16 -18
  391. package/src/hooks/useChatToolbarActions.ts +122 -0
  392. package/src/hooks/useContextBinder.ts +21 -7
  393. package/src/hooks/useContextObjects.ts +13 -25
  394. package/src/hooks/useFilteredTypes.ts +37 -0
  395. package/src/hooks/useReferencesProvider.ts +5 -8
  396. package/src/index.ts +3 -1
  397. package/src/meta.ts +8 -3
  398. package/src/processor/index.ts +1 -0
  399. package/src/processor/presets.ts +1 -1
  400. package/src/processor/processor.test.ts +19 -27
  401. package/src/processor/processor.ts +83 -90
  402. package/src/processor/update-name.ts +58 -0
  403. package/src/queue-logger.ts +8 -9
  404. package/src/testing/index.ts +0 -2
  405. package/src/testing/test-generator.ts +14 -13
  406. package/src/testing/test-sequence.ts +3 -3
  407. package/src/testing/test-services.ts +10 -14
  408. package/src/translations.ts +52 -19
  409. package/src/types/Assistant.ts +4 -37
  410. package/src/types/AssistantAction.ts +67 -53
  411. package/src/types/capabilities.ts +27 -0
  412. package/src/types/events.ts +11 -0
  413. package/src/types/index.ts +6 -1
  414. package/src/types/service.ts +26 -15
  415. package/dist/lib/browser/BlueprintContainer-TO35YXHT.mjs +0 -29
  416. package/dist/lib/browser/BlueprintContainer-TO35YXHT.mjs.map +0 -7
  417. package/dist/lib/browser/ChatCompanion-ZIKNUUSU.mjs +0 -127
  418. package/dist/lib/browser/ChatCompanion-ZIKNUUSU.mjs.map +0 -7
  419. package/dist/lib/browser/ChatContainer-MA5BVDGH.mjs +0 -73
  420. package/dist/lib/browser/ChatContainer-MA5BVDGH.mjs.map +0 -7
  421. package/dist/lib/browser/ChatDialog-7OXLIWZI.mjs +0 -86
  422. package/dist/lib/browser/ChatDialog-7OXLIWZI.mjs.map +0 -7
  423. package/dist/lib/browser/SequenceContainer-2FEWMQGW.mjs +0 -150
  424. package/dist/lib/browser/SequenceContainer-2FEWMQGW.mjs.map +0 -7
  425. package/dist/lib/browser/ai-service-ERTZBTP3.mjs +0 -19
  426. package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +0 -7
  427. package/dist/lib/browser/app-graph-builder-VKFRYY2N.mjs +0 -154
  428. package/dist/lib/browser/app-graph-builder-VKFRYY2N.mjs.map +0 -7
  429. package/dist/lib/browser/blueprint-definition-NSJARW5U.mjs +0 -12
  430. package/dist/lib/browser/chunk-2CE2KPKZ.mjs +0 -175
  431. package/dist/lib/browser/chunk-2CE2KPKZ.mjs.map +0 -7
  432. package/dist/lib/browser/chunk-43I2LR6O.mjs +0 -216
  433. package/dist/lib/browser/chunk-43I2LR6O.mjs.map +0 -7
  434. package/dist/lib/browser/chunk-5EGXHCAZ.mjs +0 -16
  435. package/dist/lib/browser/chunk-5EGXHCAZ.mjs.map +0 -7
  436. package/dist/lib/browser/chunk-5RICKAMN.mjs +0 -18
  437. package/dist/lib/browser/chunk-5RICKAMN.mjs.map +0 -7
  438. package/dist/lib/browser/chunk-B2RCJXEO.mjs +0 -202
  439. package/dist/lib/browser/chunk-B2RCJXEO.mjs.map +0 -7
  440. package/dist/lib/browser/chunk-BRJMNZOS.mjs +0 -169
  441. package/dist/lib/browser/chunk-BRJMNZOS.mjs.map +0 -7
  442. package/dist/lib/browser/chunk-P5P7QXBS.mjs +0 -296
  443. package/dist/lib/browser/chunk-P5P7QXBS.mjs.map +0 -7
  444. package/dist/lib/browser/chunk-UDH4MR7H.mjs +0 -1744
  445. package/dist/lib/browser/chunk-UDH4MR7H.mjs.map +0 -7
  446. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +0 -18
  447. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +0 -7
  448. package/dist/lib/browser/intent-resolver-5LB25ZRN.mjs +0 -112
  449. package/dist/lib/browser/intent-resolver-5LB25ZRN.mjs.map +0 -7
  450. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs +0 -17
  451. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs.map +0 -7
  452. package/dist/lib/browser/react-surface-WQZXU624.mjs +0 -107
  453. package/dist/lib/browser/react-surface-WQZXU624.mjs.map +0 -7
  454. package/dist/lib/browser/settings-4B2NA4CE.mjs +0 -23
  455. package/dist/lib/browser/settings-4B2NA4CE.mjs.map +0 -7
  456. package/dist/lib/browser/state-LXTS54DI.mjs +0 -21
  457. package/dist/lib/browser/state-LXTS54DI.mjs.map +0 -7
  458. package/dist/lib/browser/toolkit-NQ2GXCF5.mjs +0 -199
  459. package/dist/lib/browser/toolkit-NQ2GXCF5.mjs.map +0 -7
  460. package/dist/lib/node-esm/BlueprintContainer-J664LTU3.mjs +0 -30
  461. package/dist/lib/node-esm/BlueprintContainer-J664LTU3.mjs.map +0 -7
  462. package/dist/lib/node-esm/ChatCompanion-YDXJIVCF.mjs +0 -128
  463. package/dist/lib/node-esm/ChatCompanion-YDXJIVCF.mjs.map +0 -7
  464. package/dist/lib/node-esm/ChatContainer-WLTOQLHH.mjs +0 -74
  465. package/dist/lib/node-esm/ChatContainer-WLTOQLHH.mjs.map +0 -7
  466. package/dist/lib/node-esm/ChatDialog-ADKF62SY.mjs +0 -87
  467. package/dist/lib/node-esm/ChatDialog-ADKF62SY.mjs.map +0 -7
  468. package/dist/lib/node-esm/SequenceContainer-PGGJUQ46.mjs +0 -151
  469. package/dist/lib/node-esm/SequenceContainer-PGGJUQ46.mjs.map +0 -7
  470. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +0 -20
  471. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +0 -7
  472. package/dist/lib/node-esm/app-graph-builder-K6AYO4YM.mjs +0 -155
  473. package/dist/lib/node-esm/app-graph-builder-K6AYO4YM.mjs.map +0 -7
  474. package/dist/lib/node-esm/blueprint-definition-WD2IVMAI.mjs +0 -13
  475. package/dist/lib/node-esm/chunk-73ABYRYX.mjs.map +0 -7
  476. package/dist/lib/node-esm/chunk-DBDKOC3I.mjs +0 -203
  477. package/dist/lib/node-esm/chunk-DBDKOC3I.mjs.map +0 -7
  478. package/dist/lib/node-esm/chunk-DSE2IILK.mjs +0 -217
  479. package/dist/lib/node-esm/chunk-DSE2IILK.mjs.map +0 -7
  480. package/dist/lib/node-esm/chunk-I7BZMIAG.mjs +0 -170
  481. package/dist/lib/node-esm/chunk-I7BZMIAG.mjs.map +0 -7
  482. package/dist/lib/node-esm/chunk-TBQOICXZ.mjs +0 -297
  483. package/dist/lib/node-esm/chunk-TBQOICXZ.mjs.map +0 -7
  484. package/dist/lib/node-esm/chunk-U2NYUS2N.mjs +0 -177
  485. package/dist/lib/node-esm/chunk-U2NYUS2N.mjs.map +0 -7
  486. package/dist/lib/node-esm/chunk-UPPSDTOJ.mjs +0 -1745
  487. package/dist/lib/node-esm/chunk-UPPSDTOJ.mjs.map +0 -7
  488. package/dist/lib/node-esm/chunk-XQGWSZ4T.mjs +0 -17
  489. package/dist/lib/node-esm/chunk-XQGWSZ4T.mjs.map +0 -7
  490. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs +0 -19
  491. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +0 -7
  492. package/dist/lib/node-esm/intent-resolver-I64MNI4C.mjs +0 -113
  493. package/dist/lib/node-esm/intent-resolver-I64MNI4C.mjs.map +0 -7
  494. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs +0 -18
  495. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs.map +0 -7
  496. package/dist/lib/node-esm/react-surface-TVVVRIR3.mjs +0 -108
  497. package/dist/lib/node-esm/react-surface-TVVVRIR3.mjs.map +0 -7
  498. package/dist/lib/node-esm/settings-7Y3CRASE.mjs +0 -24
  499. package/dist/lib/node-esm/settings-7Y3CRASE.mjs.map +0 -7
  500. package/dist/lib/node-esm/state-BO6GUFLB.mjs +0 -22
  501. package/dist/lib/node-esm/state-BO6GUFLB.mjs.map +0 -7
  502. package/dist/lib/node-esm/toolkit-V57PRJNG.mjs +0 -200
  503. package/dist/lib/node-esm/toolkit-V57PRJNG.mjs.map +0 -7
  504. package/dist/types/src/capabilities/ai-service.d.ts +0 -4
  505. package/dist/types/src/capabilities/ai-service.d.ts.map +0 -1
  506. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  507. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  508. package/dist/types/src/capabilities/blueprint-definition.d.ts +0 -7
  509. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +0 -1
  510. package/dist/types/src/capabilities/capabilities.d.ts +0 -11
  511. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  512. package/dist/types/src/capabilities/edge-model-resolver.d.ts +0 -4
  513. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +0 -1
  514. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  515. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  516. package/dist/types/src/capabilities/local-model-resolver.d.ts +0 -10
  517. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +0 -1
  518. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  519. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  520. package/dist/types/src/capabilities/settings.d.ts +0 -4
  521. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  522. package/dist/types/src/capabilities/state.d.ts +0 -4
  523. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  524. package/dist/types/src/capabilities/toolkit.d.ts +0 -4
  525. package/dist/types/src/capabilities/toolkit.d.ts.map +0 -1
  526. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +0 -6
  527. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +0 -1
  528. package/dist/types/src/components/AssistantSettings/index.d.ts +0 -2
  529. package/dist/types/src/components/AssistantSettings/index.d.ts.map +0 -1
  530. package/dist/types/src/components/BlueprintContainer.d.ts +0 -8
  531. package/dist/types/src/components/BlueprintContainer.d.ts.map +0 -1
  532. package/dist/types/src/components/ChatCompanion.d.ts +0 -13
  533. package/dist/types/src/components/ChatCompanion.d.ts.map +0 -1
  534. package/dist/types/src/components/ChatContainer.d.ts +0 -11
  535. package/dist/types/src/components/ChatContainer.d.ts.map +0 -1
  536. package/dist/types/src/components/ChatDialog.d.ts.map +0 -1
  537. package/dist/types/src/components/ChatThread/reducers.d.ts +0 -40
  538. package/dist/types/src/components/ChatThread/reducers.d.ts.map +0 -1
  539. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  540. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  541. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  542. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  543. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  544. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  545. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -269
  546. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  547. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  548. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  549. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +0 -1
  550. package/dist/types/src/components/Toolbar/Toolbar.d.ts +0 -5
  551. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +0 -1
  552. package/dist/types/src/components/Toolbar/index.d.ts +0 -2
  553. package/dist/types/src/components/Toolbar/index.d.ts.map +0 -1
  554. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts +0 -11
  555. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +0 -1
  556. package/dist/types/src/events.d.ts +0 -4
  557. package/dist/types/src/events.d.ts.map +0 -1
  558. package/dist/types/src/functions/analysis.d.ts +0 -5
  559. package/dist/types/src/functions/analysis.d.ts.map +0 -1
  560. package/dist/types/src/functions/index.d.ts +0 -4
  561. package/dist/types/src/functions/index.d.ts.map +0 -1
  562. package/dist/types/src/functions/list.d.ts +0 -10
  563. package/dist/types/src/functions/list.d.ts.map +0 -1
  564. package/dist/types/src/functions/load.d.ts +0 -8
  565. package/dist/types/src/functions/load.d.ts.map +0 -1
  566. package/dist/types/src/hooks/useItemTypes.d.ts +0 -4
  567. package/dist/types/src/hooks/useItemTypes.d.ts.map +0 -1
  568. package/dist/types/src/stories/Chat.stories.d.ts +0 -32
  569. package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
  570. package/dist/types/src/stories/QueryEditor.stories.d.ts +0 -7
  571. package/dist/types/src/stories/QueryEditor.stories.d.ts.map +0 -1
  572. package/dist/types/src/stories/components/BlueprintContainer.d.ts +0 -4
  573. package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +0 -1
  574. package/dist/types/src/stories/components/ChatContainer.d.ts +0 -4
  575. package/dist/types/src/stories/components/ChatContainer.d.ts.map +0 -1
  576. package/dist/types/src/stories/components/ChessContainer.d.ts +0 -4
  577. package/dist/types/src/stories/components/ChessContainer.d.ts.map +0 -1
  578. package/dist/types/src/stories/components/CommentsContainer.d.ts +0 -4
  579. package/dist/types/src/stories/components/CommentsContainer.d.ts.map +0 -1
  580. package/dist/types/src/stories/components/DebugCard.d.ts +0 -8
  581. package/dist/types/src/stories/components/DebugCard.d.ts.map +0 -1
  582. package/dist/types/src/stories/components/ExecutionGraphContainer.d.ts +0 -7
  583. package/dist/types/src/stories/components/ExecutionGraphContainer.d.ts.map +0 -1
  584. package/dist/types/src/stories/components/GraphContainer.d.ts +0 -6
  585. package/dist/types/src/stories/components/GraphContainer.d.ts.map +0 -1
  586. package/dist/types/src/stories/components/InvocationsContainer.d.ts +0 -4
  587. package/dist/types/src/stories/components/InvocationsContainer.d.ts.map +0 -1
  588. package/dist/types/src/stories/components/MessageContainer.d.ts +0 -4
  589. package/dist/types/src/stories/components/MessageContainer.d.ts.map +0 -1
  590. package/dist/types/src/stories/components/ProjectContainer.d.ts +0 -4
  591. package/dist/types/src/stories/components/ProjectContainer.d.ts.map +0 -1
  592. package/dist/types/src/stories/components/PromptContainer.d.ts +0 -6
  593. package/dist/types/src/stories/components/PromptContainer.d.ts.map +0 -1
  594. package/dist/types/src/stories/components/ResearchInputStack.d.ts +0 -4
  595. package/dist/types/src/stories/components/ResearchInputStack.d.ts.map +0 -1
  596. package/dist/types/src/stories/components/ResearchOutputStack.d.ts +0 -4
  597. package/dist/types/src/stories/components/ResearchOutputStack.d.ts.map +0 -1
  598. package/dist/types/src/stories/components/ScriptContainer.d.ts +0 -4
  599. package/dist/types/src/stories/components/ScriptContainer.d.ts.map +0 -1
  600. package/dist/types/src/stories/components/TasksContainer.d.ts +0 -4
  601. package/dist/types/src/stories/components/TasksContainer.d.ts.map +0 -1
  602. package/dist/types/src/stories/components/TokenManagerContainer.d.ts +0 -3
  603. package/dist/types/src/stories/components/TokenManagerContainer.d.ts.map +0 -1
  604. package/dist/types/src/stories/components/TriggersContainer.d.ts +0 -3
  605. package/dist/types/src/stories/components/TriggersContainer.d.ts.map +0 -1
  606. package/dist/types/src/stories/components/index.d.ts +0 -18
  607. package/dist/types/src/stories/components/index.d.ts.map +0 -1
  608. package/dist/types/src/stories/components/types.d.ts +0 -7
  609. package/dist/types/src/stories/components/types.d.ts.map +0 -1
  610. package/dist/types/src/stories/testing/data.d.ts +0 -9
  611. package/dist/types/src/stories/testing/data.d.ts.map +0 -1
  612. package/dist/types/src/stories/testing/index.d.ts +0 -3
  613. package/dist/types/src/stories/testing/index.d.ts.map +0 -1
  614. package/dist/types/src/stories/testing/schema.d.ts +0 -7
  615. package/dist/types/src/stories/testing/schema.d.ts.map +0 -1
  616. package/dist/types/src/stories/testing/testing.d.ts +0 -51
  617. package/dist/types/src/stories/testing/testing.d.ts.map +0 -1
  618. package/dist/types/src/testing/test-data.d.ts +0 -14
  619. package/dist/types/src/testing/test-data.d.ts.map +0 -1
  620. package/dist/types/src/testing/test-functions.d.ts +0 -6
  621. package/dist/types/src/testing/test-functions.d.ts.map +0 -1
  622. package/src/capabilities/ai-service.ts +0 -27
  623. package/src/capabilities/app-graph-builder.ts +0 -163
  624. package/src/capabilities/blueprint-definition.ts +0 -64
  625. package/src/capabilities/capabilities.ts +0 -18
  626. package/src/capabilities/edge-model-resolver.ts +0 -25
  627. package/src/capabilities/intent-resolver.ts +0 -94
  628. package/src/capabilities/local-model-resolver.ts +0 -30
  629. package/src/capabilities/react-surface.tsx +0 -91
  630. package/src/capabilities/settings.ts +0 -19
  631. package/src/capabilities/state.ts +0 -20
  632. package/src/capabilities/toolkit.ts +0 -168
  633. package/src/components/AssistantSettings/index.ts +0 -5
  634. package/src/components/BlueprintContainer.tsx +0 -24
  635. package/src/components/ChatCompanion.tsx +0 -114
  636. package/src/components/ChatContainer.tsx +0 -51
  637. package/src/components/ChatThread/reducers.ts +0 -151
  638. package/src/components/PromptSettings.tsx +0 -90
  639. package/src/components/SequenceContainer.tsx +0 -131
  640. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -35
  641. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  642. package/src/components/SequenceEditor/index.ts +0 -5
  643. package/src/components/TemplateEditor/handlebars-extension.ts +0 -165
  644. package/src/components/Toolbar/Toolbar.tsx +0 -21
  645. package/src/components/Toolbar/useChatToolbarActions.ts +0 -126
  646. package/src/events.ts +0 -11
  647. package/src/functions/analysis.ts +0 -22
  648. package/src/functions/index.ts +0 -7
  649. package/src/functions/list.ts +0 -48
  650. package/src/functions/load.ts +0 -46
  651. package/src/hooks/useItemTypes.ts +0 -37
  652. package/src/stories/Chat.stories.tsx +0 -882
  653. package/src/stories/QueryEditor.stories.tsx +0 -114
  654. package/src/stories/components/BlueprintContainer.tsx +0 -34
  655. package/src/stories/components/ChatContainer.tsx +0 -74
  656. package/src/stories/components/ChessContainer.tsx +0 -17
  657. package/src/stories/components/CommentsContainer.tsx +0 -25
  658. package/src/stories/components/DebugCard.tsx +0 -61
  659. package/src/stories/components/ExecutionGraphContainer.tsx +0 -30
  660. package/src/stories/components/GraphContainer.tsx +0 -106
  661. package/src/stories/components/InvocationsContainer.tsx +0 -17
  662. package/src/stories/components/MessageContainer.tsx +0 -22
  663. package/src/stories/components/ProjectContainer.tsx +0 -17
  664. package/src/stories/components/PromptContainer.tsx +0 -52
  665. package/src/stories/components/ResearchInputStack.tsx +0 -30
  666. package/src/stories/components/ResearchOutputStack.tsx +0 -29
  667. package/src/stories/components/ScriptContainer.tsx +0 -28
  668. package/src/stories/components/TasksContainer.tsx +0 -47
  669. package/src/stories/components/TokenManagerContainer.tsx +0 -14
  670. package/src/stories/components/TriggersContainer.tsx +0 -12
  671. package/src/stories/components/index.ts +0 -22
  672. package/src/stories/components/types.ts +0 -11
  673. package/src/stories/testing/data.ts +0 -135
  674. package/src/stories/testing/index.ts +0 -6
  675. package/src/stories/testing/schema.ts +0 -17
  676. package/src/stories/testing/testing.tsx +0 -291
  677. package/src/testing/test-data.ts +0 -248
  678. package/src/testing/test-functions.ts +0 -16
  679. /package/dist/lib/browser/{blueprint-definition-NSJARW5U.mjs.map → ChatContainer-ZGRSZ5EU.mjs.map} +0 -0
  680. /package/dist/lib/{node-esm/blueprint-definition-WD2IVMAI.mjs.map → browser/blueprints/index.mjs.map} +0 -0
  681. /package/dist/types/src/components/TemplateEditor/{handlebars-extension.d.ts → extensions/handlebars-extension.d.ts} +0 -0
@@ -0,0 +1,86 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import type * as LanguageModel from '@effect/ai/LanguageModel';
6
+ import type { Meta, StoryObj } from '@storybook/react-vite';
7
+ import * as Layer from 'effect/Layer';
8
+ import * as ManagedRuntime from 'effect/ManagedRuntime';
9
+ import type * as Runtime from 'effect/Runtime';
10
+ import React, { useEffect, useState } from 'react';
11
+
12
+ import { AiService } from '@dxos/ai';
13
+ import { AiServiceTestingPreset } from '@dxos/ai/testing';
14
+ import { withLayout, withTheme } from '@dxos/react-ui/testing';
15
+
16
+ import { Typewriter } from './Typewriter';
17
+
18
+ const meta: Meta<typeof Typewriter> = {
19
+ title: 'plugins/plugin-assistant/components/Typewriter',
20
+ component: Typewriter,
21
+ decorators: [withTheme(), withLayout({ layout: 'column' })],
22
+ };
23
+
24
+ export default meta;
25
+
26
+ type Story = StoryObj<typeof Typewriter>;
27
+
28
+ const sampleText = `# The Future of Artificial Intelligence
29
+
30
+ Artificial Intelligence (AI) has rapidly evolved from a theoretical concept to a transformative force reshaping industries, economies, and daily life. At its core, AI refers to the development of computer systems capable of performing tasks that typically require human intelligence, such as visual perception, speech recognition, decision-making, and language translation.
31
+
32
+ ## Machine Learning and Neural Networks
33
+
34
+ The resurgence of AI in recent years is largely driven by advancements in machine learning (ML) and deep learning. Neural networks, inspired by the human brain's architecture, enable computers to learn from vast amounts of data. This has led to breakthroughs in areas like natural language processing (NLP), allowing models like GPT-4 to generate human-like text and code.
35
+
36
+ ## Ethical Considerations
37
+
38
+ As AI becomes more autonomous, ethical concerns have moved to the forefront. Issues such as algorithmic bias, data privacy, and the potential displacement of jobs are critical topics of debate. Ensuring that AI systems are fair, transparent, and aligned with human values is essential for their sustainable development.
39
+
40
+ ## Conclusion
41
+
42
+ The journey of AI is just beginning. With responsible innovation and global collaboration, AI has the potential to solve some of humanity's most pressing challenges, from climate change to personalized medicine.
43
+
44
+ (try selecting some text to see the AI assistant, or wait for the proofreader to find the typo below)
45
+
46
+ The quick brown fox jumps over teh lazy dog. i think this is cool.
47
+ `;
48
+
49
+ export const Default: Story = {
50
+ render: () => {
51
+ const [runtime, setRuntime] = useState<Runtime.Runtime<LanguageModel.LanguageModel>>();
52
+ useEffect(() => {
53
+ let disposed = false;
54
+ const rt = ManagedRuntime.make(
55
+ AiService.model('@anthropic/claude-haiku-4-5').pipe(
56
+ Layer.provide(AiServiceTestingPreset('edge-remote')),
57
+ Layer.orDie,
58
+ ),
59
+ );
60
+ queueMicrotask(async () => {
61
+ try {
62
+ if (disposed) {
63
+ return;
64
+ }
65
+ const runtime = await rt.runtime();
66
+ if (disposed) {
67
+ return;
68
+ }
69
+ setRuntime(runtime);
70
+ } catch (error) {
71
+ console.error('Failed to initialize runtime:', error);
72
+ }
73
+ });
74
+ return () => {
75
+ disposed = true;
76
+ void rt.dispose();
77
+ };
78
+ }, []);
79
+
80
+ if (!runtime) {
81
+ return <div>...Loading</div>;
82
+ }
83
+
84
+ return <Typewriter initialContent={sampleText} runtime={runtime} />;
85
+ },
86
+ };
@@ -0,0 +1,54 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { type Extension } from '@codemirror/state';
6
+ import type * as LanguageModel from '@effect/ai/LanguageModel';
7
+ import type * as Runtime from 'effect/Runtime';
8
+ import React, { useMemo, useRef } from 'react';
9
+
10
+ import { DensityProvider, ThemeProvider } from '@dxos/react-ui';
11
+ import { Editor, type EditorController } from '@dxos/react-ui-editor';
12
+ import {
13
+ createBasicExtensions,
14
+ createMarkdownExtensions,
15
+ createThemeExtensions,
16
+ decorateMarkdown,
17
+ } from '@dxos/ui-editor';
18
+
19
+ import { assistant } from './assistant-extension';
20
+
21
+ export type TypewriterProps = {
22
+ initialContent?: string;
23
+ extensions?: Extension[];
24
+ runtime: Runtime.Runtime<LanguageModel.LanguageModel>;
25
+ };
26
+
27
+ export const Typewriter = ({ initialContent = '', extensions = [], runtime }: TypewriterProps) => {
28
+ const editorRef = useRef<EditorController>(null);
29
+ const extension = useMemo(
30
+ () => [
31
+ createBasicExtensions({ scrollPastEnd: true, search: true }),
32
+ createThemeExtensions({ syntaxHighlighting: true }),
33
+ createMarkdownExtensions(),
34
+ decorateMarkdown(),
35
+ assistant(runtime),
36
+ ...extensions,
37
+ ],
38
+ [runtime, extensions],
39
+ );
40
+
41
+ return (
42
+ <ThemeProvider>
43
+ <DensityProvider density='fine'>
44
+ <div className='w-full h-full grid overflow-hidden'>
45
+ <Editor.Root ref={editorRef}>
46
+ <Editor.Viewport>
47
+ <Editor.Content initialValue={initialContent} extensions={extension} />
48
+ </Editor.Viewport>
49
+ </Editor.Root>
50
+ </div>
51
+ </DensityProvider>
52
+ </ThemeProvider>
53
+ );
54
+ };
@@ -0,0 +1,142 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { type Diagnostic, linter } from '@codemirror/lint';
6
+ import { type Extension, StateField } from '@codemirror/state';
7
+ import { EditorView, type Tooltip, showTooltip } from '@codemirror/view';
8
+ import * as LanguageModel from '@effect/ai/LanguageModel';
9
+ import * as Effect from 'effect/Effect';
10
+ import * as Runtime from 'effect/Runtime';
11
+ import React from 'react';
12
+ import { createRoot } from 'react-dom/client';
13
+
14
+ import { unwrapExit } from '@dxos/effect';
15
+ import { log } from '@dxos/log';
16
+
17
+ import { AssistantToolbar } from './AssistantToolbar';
18
+
19
+ export const assistant = (runtime: Runtime.Runtime<LanguageModel.LanguageModel>): Extension[] => {
20
+ return [
21
+ assistantState(runtime),
22
+ assistantLinter(runtime),
23
+ EditorView.baseTheme({
24
+ '.cm-tooltip-assistant': {
25
+ backgroundColor: 'transparent !important',
26
+ border: 'none !important',
27
+ padding: '0 !important',
28
+ },
29
+ }),
30
+ ];
31
+ };
32
+
33
+ //
34
+ // Toolbar State & Tooltip
35
+ //
36
+
37
+ const assistantState = (runtime: Runtime.Runtime<LanguageModel.LanguageModel>) =>
38
+ StateField.define<Tooltip | null>({
39
+ create: () => null,
40
+ update: (tooltip, tr): Tooltip | null => {
41
+ if (tr.selection || tr.docChanged) {
42
+ const { from, to } = tr.state.selection.main;
43
+ if (from === to) {
44
+ return null;
45
+ } // No selection
46
+
47
+ // Check if we should show tooltip
48
+ // We return a tooltip object
49
+ return {
50
+ pos: from,
51
+ above: false,
52
+ strictSide: true,
53
+ create: (view) => {
54
+ const dom = document.createElement('div');
55
+ dom.classList.add('cm-tooltip-assistant');
56
+ const root = createRoot(dom);
57
+
58
+ root.render(React.createElement(AssistantToolbar, { view, runtime, from, to }));
59
+
60
+ return {
61
+ dom,
62
+ destroy: () => {
63
+ // Delay unmount to allow animations if needed, but for now just cleanup
64
+ setTimeout(() => root.unmount(), 0);
65
+ },
66
+ };
67
+ },
68
+ };
69
+ }
70
+ return tooltip;
71
+ },
72
+ provide: (f) => showTooltip.from(f),
73
+ });
74
+
75
+ //
76
+ // Linter
77
+ //
78
+
79
+ const assistantLinter = (runtime: Runtime.Runtime<LanguageModel.LanguageModel>) =>
80
+ linter(async (view) => {
81
+ const text = view.state.doc.toString();
82
+ if (text.length < 10) {
83
+ return [];
84
+ }
85
+
86
+ // Run proofreading effect
87
+ const prompt = `Proofread the following text. Identify typos and simple grammar mistakes. Return ONLY a valid JSON array of objects with fields: "original" (string), "replacement" (string), "context" (string, 3-5 words around match). Text: \n\n${text}`;
88
+
89
+ // We mocked the model behavior in the story, but here we assume the model returns a string.
90
+ // In a real implementation we would parse the JSON.
91
+ // For this refactor, we just wire it up.
92
+
93
+ // NOTE: This runs on every doc view update that triggers linter. Linter is debounced by default (750ms).
94
+
95
+ try {
96
+ const result = unwrapExit(
97
+ await Effect.gen(function* () {
98
+ const generated = yield* LanguageModel.generateText({ prompt });
99
+ return generated.text;
100
+ }).pipe(Runtime.runPromiseExit(runtime)),
101
+ );
102
+
103
+ // Parse result - assuming simpler mock response format for now or we build a robust parser
104
+ // For the purpose of this task (UX demo), we can assume the mock returns a specific format or we parse it.
105
+ // Let's assume the mock returns a JSON string.
106
+
107
+ let suggestions: any[] = [];
108
+ try {
109
+ // Find JSON in response
110
+ const match = result.match(/\[.*\]/s);
111
+ if (match) {
112
+ suggestions = JSON.parse(match[0]);
113
+ }
114
+ } catch {}
115
+
116
+ const diagnostics: Diagnostic[] = [];
117
+ for (const s of suggestions) {
118
+ // Naive finding of position
119
+ const idx = text.indexOf(s.original);
120
+ if (idx !== -1) {
121
+ diagnostics.push({
122
+ from: idx,
123
+ to: idx + s.original.length,
124
+ severity: 'info',
125
+ message: `Suggestion: ${s.replacement}`,
126
+ actions: [
127
+ {
128
+ name: 'Apply',
129
+ apply: (view, from, to) => {
130
+ view.dispatch({ changes: { from, to, insert: s.replacement } });
131
+ },
132
+ },
133
+ ],
134
+ });
135
+ }
136
+ }
137
+ return diagnostics;
138
+ } catch (error) {
139
+ log.catch(error);
140
+ return [];
141
+ }
142
+ });
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ export * from './Typewriter';
@@ -2,18 +2,6 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { lazy } from 'react';
6
-
7
- export * from './AssistantSettings';
8
5
  export * from './Chat';
9
- export * from './ChatProgress';
10
- export * from './PromptSettings';
11
6
  export * from './TemplateEditor';
12
- export * from './Toolbar';
13
7
  export * from './Toolbox';
14
-
15
- export const BlueprintContainer = lazy(() => import('./BlueprintContainer'));
16
- export const ChatCompanion = lazy(() => import('./ChatCompanion'));
17
- export const ChatContainer = lazy(() => import('./ChatContainer'));
18
- export const ChatDialog = lazy(() => import('./ChatDialog'));
19
- export const SequenceContainer = lazy(() => import('./SequenceContainer'));
@@ -6,7 +6,7 @@ import React from 'react';
6
6
 
7
7
  import { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';
8
8
  import { Input, Select, useTranslation } from '@dxos/react-ui';
9
- import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';
9
+ import { Settings } from '@dxos/react-ui-form';
10
10
 
11
11
  import { meta } from '../../meta';
12
12
  import { type Assistant, LLM_PROVIDERS } from '../../types';
@@ -20,25 +20,33 @@ const LLM_PROVIDER_LABELS = {
20
20
  lmstudio: 'LM Studio',
21
21
  } as const;
22
22
 
23
- export const AssistantSettings = ({ settings }: { settings: Assistant.Settings }) => {
23
+ export type AssistantSettingsComponentProps = {
24
+ settings: Assistant.Settings;
25
+ onSettingsChange: (fn: (current: Assistant.Settings) => Assistant.Settings) => void;
26
+ };
27
+
28
+ export const AssistantSettings = ({ settings, onSettingsChange }: AssistantSettingsComponentProps) => {
24
29
  const { t } = useTranslation(meta.id);
25
30
 
26
31
  return (
27
- <ControlPage>
28
- <ControlSection title={t('settings title', { ns: meta.id })}>
29
- <ControlGroup>
30
- <ControlItemInput title={t('settings custom prompts label')}>
32
+ <Settings.Root>
33
+ <Settings.Section title={t('settings title', { ns: meta.id })}>
34
+ <Settings.Group>
35
+ <Settings.ItemInput title={t('settings custom prompts label')}>
31
36
  <Input.Switch
32
37
  checked={!!settings.customPrompts}
33
- onCheckedChange={(checked) => (settings.customPrompts = checked)}
38
+ onCheckedChange={(checked) => onSettingsChange((s) => ({ ...s, customPrompts: checked }))}
34
39
  />
35
- </ControlItemInput>
40
+ </Settings.ItemInput>
36
41
 
37
- <ControlItemInput title={t('settings llm provider label')}>
42
+ <Settings.ItemInput title={t('settings llm provider label')}>
38
43
  <Select.Root
39
44
  value={settings.llmProvider ?? 'edge'}
40
45
  onValueChange={(value) => {
41
- settings.llmProvider = value === DEFAULT_VALUE ? undefined : (value as any);
46
+ onSettingsChange((s) => ({
47
+ ...s,
48
+ llmProvider: value === DEFAULT_VALUE ? undefined : (value as any),
49
+ }));
42
50
  }}
43
51
  >
44
52
  <Select.TriggerButton placeholder={t('settings llm provider label')} />
@@ -56,13 +64,13 @@ export const AssistantSettings = ({ settings }: { settings: Assistant.Settings }
56
64
  </Select.Content>
57
65
  </Select.Portal>
58
66
  </Select.Root>
59
- </ControlItemInput>
67
+ </Settings.ItemInput>
60
68
 
61
- <ControlItemInput title={t('settings edge llm model label')}>
69
+ <Settings.ItemInput title={t('settings edge llm model label')}>
62
70
  <Select.Root
63
71
  value={settings.edgeModel ?? DEFAULT_VALUE}
64
72
  onValueChange={(value) => {
65
- settings.edgeModel = value === DEFAULT_VALUE ? undefined : value;
73
+ onSettingsChange((s) => ({ ...s, edgeModel: value === DEFAULT_VALUE ? undefined : value }));
66
74
  }}
67
75
  >
68
76
  <Select.TriggerButton placeholder={t('settings default llm model label')} />
@@ -80,13 +88,13 @@ export const AssistantSettings = ({ settings }: { settings: Assistant.Settings }
80
88
  </Select.Content>
81
89
  </Select.Portal>
82
90
  </Select.Root>
83
- </ControlItemInput>
91
+ </Settings.ItemInput>
84
92
 
85
- <ControlItemInput title={t('settings ollama llm model label')}>
93
+ <Settings.ItemInput title={t('settings ollama llm model label')}>
86
94
  <Select.Root
87
95
  value={settings.ollamaModel ?? DEFAULT_VALUE}
88
96
  onValueChange={(value) => {
89
- settings.ollamaModel = value === DEFAULT_VALUE ? undefined : value;
97
+ onSettingsChange((s) => ({ ...s, ollamaModel: value === DEFAULT_VALUE ? undefined : value }));
90
98
  }}
91
99
  >
92
100
  <Select.TriggerButton placeholder={t('settings default llm model label')} />
@@ -104,9 +112,9 @@ export const AssistantSettings = ({ settings }: { settings: Assistant.Settings }
104
112
  </Select.Content>
105
113
  </Select.Portal>
106
114
  </Select.Root>
107
- </ControlItemInput>
108
- </ControlGroup>
109
- </ControlSection>
110
- </ControlPage>
115
+ </Settings.ItemInput>
116
+ </Settings.Group>
117
+ </Settings.Section>
118
+ </Settings.Root>
111
119
  );
112
120
  };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { AssistantSettings } from './AssistantSettings';
6
+
7
+ export default AssistantSettings;
@@ -0,0 +1,30 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import React from 'react';
6
+
7
+ import { type SurfaceComponentProps } from '@dxos/app-toolkit/ui';
8
+ import { type Blueprint } from '@dxos/blueprints';
9
+ import { Obj } from '@dxos/echo';
10
+ import { Panel, Toolbar } from '@dxos/react-ui';
11
+ import { useAttention } from '@dxos/react-ui-attention';
12
+
13
+ import { TemplateEditor } from '../../components';
14
+
15
+ export type BlueprintArticleProps = SurfaceComponentProps<Blueprint.Blueprint>;
16
+
17
+ export const BlueprintArticle = ({ role, subject }: BlueprintArticleProps) => {
18
+ const { hasAttention } = useAttention(Obj.getDXN(subject).toString());
19
+
20
+ return (
21
+ <Panel.Root role={role} classNames='dx-article'>
22
+ <Panel.Toolbar asChild>
23
+ <Toolbar.Root disabled={!hasAttention} />
24
+ </Panel.Toolbar>
25
+ <Panel.Content asChild>
26
+ <TemplateEditor id={subject.id} template={subject.instructions} />
27
+ </Panel.Content>
28
+ </Panel.Root>
29
+ );
30
+ };
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { BlueprintArticle } from './BlueprintArticle';
6
+
7
+ export default BlueprintArticle;
@@ -0,0 +1,225 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Array from 'effect/Array';
6
+ import * as Function from 'effect/Function';
7
+ import * as Option from 'effect/Option';
8
+ import React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';
9
+
10
+ import { useAtomCapability, useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';
11
+ import { AppCapabilities } from '@dxos/app-toolkit';
12
+ import { Chat } from '@dxos/assistant-toolkit';
13
+ import { Blueprint } from '@dxos/blueprints';
14
+ import { getSpace } from '@dxos/client/echo';
15
+ import { DXN, Filter, Obj, Query, Ref } from '@dxos/echo';
16
+ import { SpaceOperation } from '@dxos/plugin-space/types';
17
+ import { useQuery } from '@dxos/react-client/echo';
18
+ import { useAsyncEffect } from '@dxos/react-ui';
19
+
20
+ import { type ChatEvent } from '../../components';
21
+ import { useBlueprintRegistry, useContextBinder } from '../../hooks';
22
+ import { Assistant, AssistantCapabilities, AssistantOperation } from '../../types';
23
+ import ChatContainer from '../ChatContainer';
24
+
25
+ export type ChatCompanionProps = {
26
+ role?: string;
27
+ data: {
28
+ subject: Chat.Chat | 'assistant-chat';
29
+ companionTo: Obj.Unknown;
30
+ };
31
+ };
32
+
33
+ export const ChatCompanion = forwardRef<HTMLDivElement, ChatCompanionProps>(
34
+ ({ role, data }: ChatCompanionProps, forwardedRef) => {
35
+ const { invokePromise } = useOperationInvoker();
36
+ const blueprintRegistry = useBlueprintRegistry();
37
+ const companionTo = data.companionTo;
38
+
39
+ const space = getSpace(companionTo);
40
+ const [chat, setChat] = useState(data.subject === 'assistant-chat' ? undefined : data.subject);
41
+
42
+ // Watch the state atom directly to detect when plus button clears the chat selection.
43
+ const state = useAtomCapability(AssistantCapabilities.State);
44
+ const companionToId = Obj.getDXN(companionTo).toString();
45
+ const currentChatState = state?.currentChat[companionToId];
46
+
47
+ // Track if initial setup has been done (to distinguish initial mount from plus button click).
48
+ // Reset when companionTo changes.
49
+ const initialSetupDoneRef = useRef(false);
50
+ const prevCompanionToIdRef = useRef(companionToId);
51
+ if (prevCompanionToIdRef.current !== companionToId) {
52
+ initialSetupDoneRef.current = false;
53
+ prevCompanionToIdRef.current = companionToId;
54
+ }
55
+
56
+ // Sync local chat state with the state atom.
57
+ // When currentChatState is undefined (plus button clicked), reset local chat.
58
+ // When data.subject is a Chat object, use it directly.
59
+ // When currentChatState is a different chat, fetch and set it.
60
+ useEffect(() => {
61
+ // If state says no chat selected AND current chat is persisted, reset local state (handles plus button click).
62
+ // Don't reset in-memory chats - they're expected to have currentChatState === undefined.
63
+ if (!currentChatState && chat && getSpace(chat)) {
64
+ setChat(undefined);
65
+ } else if (data.subject !== 'assistant-chat') {
66
+ // If data.subject is a Chat object (resolved from graph), use it.
67
+ setChat(data.subject);
68
+ } else if (currentChatState && space) {
69
+ // currentChatState is set but graph couldn't resolve it - fetch manually.
70
+ const currentChatDxnStr = chat ? Obj.getDXN(chat).toString() : undefined;
71
+ if (currentChatState !== currentChatDxnStr) {
72
+ // Parse DXN and fetch the chat object from the database.
73
+ const parsedDxn = DXN.tryParse(currentChatState);
74
+ if (parsedDxn) {
75
+ const chatRef = space.db.makeRef(parsedDxn);
76
+ const resolvedChat = chatRef?.target;
77
+ if (Obj.instanceOf(Assistant.Chat, resolvedChat)) {
78
+ setChat(resolvedChat);
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }, [currentChatState, data.subject, space, chat]);
84
+
85
+ const chatQueue = space && chat ? space.queues.get(chat.queue.dxn) : undefined;
86
+ const binder = useContextBinder(chatQueue);
87
+
88
+ // Initialize companion chat if it doesn't exist, but don't add it to the space immediately.
89
+ useAsyncEffect(async () => {
90
+ if (!space || chat) {
91
+ return;
92
+ }
93
+
94
+ // Only query for existing chats on initial mount, not when plus button is clicked.
95
+ if (!initialSetupDoneRef.current) {
96
+ // Query for existing companion chats linked to this object.
97
+ const existingChats = await space.db
98
+ .query(Query.select(Filter.id(companionTo.id)).targetOf(Chat.CompanionTo).source())
99
+ .run();
100
+
101
+ initialSetupDoneRef.current = true;
102
+
103
+ // Use existing chat if found on initial mount.
104
+ if (existingChats.length > 0) {
105
+ const existingChat = existingChats.at(-1) as Assistant.Chat;
106
+ setChat(existingChat);
107
+ await invokePromise(AssistantOperation.SetCurrentChat, { companionTo, chat: existingChat });
108
+ return;
109
+ }
110
+ }
111
+
112
+ // Create chat in-memory only - it will be added to space on first message.
113
+ const { data: createResult } = await invokePromise(AssistantOperation.CreateChat, {
114
+ db: space.db,
115
+ addToSpace: false,
116
+ });
117
+ setChat(createResult?.object);
118
+ }, [chat, space, companionTo, invokePromise]);
119
+
120
+ // Add chat to space and create relation when user submits the first message.
121
+ const handleEvent = useCallback(
122
+ async (event: ChatEvent) => {
123
+ if (!chat || !space) {
124
+ return;
125
+ }
126
+
127
+ // If chat is not in space yet, persist it on first submit.
128
+ if (event.type === 'submit' && !getSpace(chat)) {
129
+ await invokePromise(SpaceOperation.AddObject, {
130
+ object: chat,
131
+ target: space.db,
132
+ hidden: true,
133
+ });
134
+ await invokePromise(SpaceOperation.AddRelation, {
135
+ db: space.db,
136
+ schema: Chat.CompanionTo,
137
+ source: chat,
138
+ target: companionTo,
139
+ });
140
+ await invokePromise(AssistantOperation.SetCurrentChat, {
141
+ companionTo,
142
+ chat,
143
+ });
144
+ }
145
+ },
146
+ [chat, space, companionTo, invokePromise],
147
+ );
148
+
149
+ const metadata = useCapabilities(AppCapabilities.Metadata);
150
+ const blueprintKeys = useMemo(
151
+ () =>
152
+ Function.pipe(
153
+ metadata,
154
+ Array.findFirst(
155
+ (
156
+ capability,
157
+ ): capability is {
158
+ id: string;
159
+ metadata: { blueprints?: string[] };
160
+ } => capability.id === Obj.getTypename(companionTo),
161
+ ),
162
+ Option.flatMap((c) => Option.fromNullable(c.metadata.blueprints)),
163
+ Option.getOrElse(() => [] as string[]),
164
+ ),
165
+ [metadata, companionTo],
166
+ );
167
+ const existingBlueprints = useQuery(space?.db, Filter.type(Blueprint.Blueprint));
168
+ const pluginBlueprints = useMemo(
169
+ () => existingBlueprints.filter((blueprint) => blueprintKeys.includes(blueprint.key)),
170
+ [existingBlueprints, blueprintKeys],
171
+ );
172
+
173
+ // Initialize related blueprints that are not already in the space.
174
+ useAsyncEffect(async () => {
175
+ if (!space) {
176
+ return;
177
+ }
178
+
179
+ // NOTE: This must be run instead of using the useQuery result to avoid duplicates.
180
+ const existingBlueprints = await space.db.query(Filter.type(Blueprint.Blueprint)).run();
181
+ for (const key of blueprintKeys) {
182
+ const existingBlueprint = existingBlueprints.find((blueprint) => blueprint.key === key);
183
+ if (existingBlueprint) {
184
+ continue;
185
+ }
186
+
187
+ const blueprint = blueprintRegistry.getByKey(key);
188
+ if (!blueprint) {
189
+ continue;
190
+ }
191
+
192
+ space.db.add(Obj.clone(blueprint, { deep: true }));
193
+ }
194
+ }, [space, blueprintRegistry, blueprintKeys]);
195
+
196
+ useAsyncEffect(async () => {
197
+ if (!binder?.isOpen) {
198
+ return;
199
+ }
200
+
201
+ if (pluginBlueprints.length > 0) {
202
+ await binder.bind({
203
+ blueprints: pluginBlueprints.map((blueprint) => Ref.make(blueprint)),
204
+ });
205
+ }
206
+
207
+ if (Obj.instanceOf(Blueprint.Blueprint, companionTo)) {
208
+ await binder.bind({ blueprints: [Ref.make(companionTo)] });
209
+ } else {
210
+ await binder.bind({ objects: [Ref.make(companionTo)] });
211
+ }
212
+ }, [binder, companionTo, blueprintKeys]);
213
+
214
+ return (
215
+ <ChatContainer
216
+ role={role}
217
+ space={space}
218
+ subject={chat}
219
+ companionTo={companionTo}
220
+ onEvent={handleEvent}
221
+ ref={forwardedRef}
222
+ />
223
+ );
224
+ },
225
+ );