@dxos/plugin-assistant 0.8.4-main.67995b8 → 0.8.4-main.f5c0578

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 (350) hide show
  1. package/dist/lib/browser/{BlueprintContainer-IZ4AK5EO.mjs → BlueprintContainer-H7H4BQ2C.mjs} +4 -3
  2. package/dist/lib/browser/{ChatContainer-RP3QEXYX.mjs → ChatContainer-SB7YC2XP.mjs} +37 -14
  3. package/dist/lib/browser/ChatContainer-SB7YC2XP.mjs.map +7 -0
  4. package/dist/lib/browser/{ChatDialog-ZVLXFHEY.mjs → ChatDialog-X6PFOQSQ.mjs} +23 -8
  5. package/dist/lib/browser/ChatDialog-X6PFOQSQ.mjs.map +7 -0
  6. package/dist/lib/browser/{SequenceContainer-3UDVKWPA.mjs → SequenceContainer-627OQ557.mjs} +3 -2
  7. package/dist/lib/browser/SequenceContainer-627OQ557.mjs.map +7 -0
  8. package/dist/lib/browser/ai-service-7KJ5LXBT.mjs +22 -0
  9. package/dist/lib/browser/ai-service-7KJ5LXBT.mjs.map +7 -0
  10. package/dist/lib/browser/{app-graph-builder-XSEOKJLG.mjs → app-graph-builder-ERU5XY2S.mjs} +14 -12
  11. package/dist/lib/browser/app-graph-builder-ERU5XY2S.mjs.map +7 -0
  12. package/dist/lib/browser/blueprint-definition-CMGIZAOW.mjs +146 -0
  13. package/dist/lib/browser/blueprint-definition-CMGIZAOW.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-63GG6U6D.mjs → chunk-BVH6VK6Q.mjs} +817 -789
  15. package/dist/lib/browser/chunk-BVH6VK6Q.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  17. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-JBFDQMUJ.mjs +193 -0
  19. package/dist/lib/browser/chunk-JBFDQMUJ.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-LKP65RPA.mjs +20 -0
  21. package/dist/lib/browser/{chunk-FDCJSQYF.mjs.map → chunk-LKP65RPA.mjs.map} +1 -1
  22. package/dist/lib/browser/{chunk-KFXSBNZR.mjs → chunk-NZDCKQ6W.mjs} +3 -3
  23. package/dist/lib/{node-esm/chunk-VIIMA3XQ.mjs.map → browser/chunk-NZDCKQ6W.mjs.map} +2 -2
  24. package/dist/lib/browser/chunk-QB7OVS6Z.mjs +16 -0
  25. package/dist/lib/browser/chunk-QB7OVS6Z.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-Y66UJUHV.mjs +280 -0
  27. package/dist/lib/browser/chunk-Y66UJUHV.mjs.map +7 -0
  28. package/dist/lib/browser/edge-model-resolver-2HB4PCWH.mjs +24 -0
  29. package/dist/lib/browser/edge-model-resolver-2HB4PCWH.mjs.map +7 -0
  30. package/dist/lib/browser/index.mjs +83 -48
  31. package/dist/lib/browser/index.mjs.map +4 -4
  32. package/dist/lib/browser/{intent-resolver-MV3VSZLS.mjs → intent-resolver-DGRO2XSG.mjs} +20 -14
  33. package/dist/lib/browser/intent-resolver-DGRO2XSG.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-surface-3GYEHQRP.mjs → react-surface-LPSIBHEJ.mjs} +36 -23
  36. package/dist/lib/browser/react-surface-LPSIBHEJ.mjs.map +7 -0
  37. package/dist/lib/browser/{settings-5GTTCVGD.mjs → settings-ZFNQYSYP.mjs} +6 -5
  38. package/dist/lib/{node-esm/settings-J2EXEM5H.mjs.map → browser/settings-ZFNQYSYP.mjs.map} +1 -1
  39. package/dist/lib/browser/toolkit-IW4FBLLB.mjs +105 -0
  40. package/dist/lib/browser/toolkit-IW4FBLLB.mjs.map +7 -0
  41. package/dist/lib/browser/types/index.mjs +7 -4
  42. package/dist/lib/node-esm/{BlueprintContainer-RGTMNLNX.mjs → BlueprintContainer-VH4EE4CM.mjs} +4 -3
  43. package/dist/lib/{browser/BlueprintContainer-IZ4AK5EO.mjs.map → node-esm/BlueprintContainer-VH4EE4CM.mjs.map} +1 -1
  44. package/dist/lib/node-esm/{ChatContainer-W3W6FWV3.mjs → ChatContainer-7JLMWHMX.mjs} +37 -14
  45. package/dist/lib/node-esm/ChatContainer-7JLMWHMX.mjs.map +7 -0
  46. package/dist/lib/node-esm/{ChatDialog-QW4JRKVO.mjs → ChatDialog-QDD722F2.mjs} +23 -8
  47. package/dist/lib/node-esm/ChatDialog-QDD722F2.mjs.map +7 -0
  48. package/dist/lib/node-esm/{SequenceContainer-RQQH5XOC.mjs → SequenceContainer-EQ5NP2PG.mjs} +3 -2
  49. package/dist/lib/node-esm/SequenceContainer-EQ5NP2PG.mjs.map +7 -0
  50. package/dist/lib/node-esm/ai-service-LDD32477.mjs +23 -0
  51. package/dist/lib/node-esm/ai-service-LDD32477.mjs.map +7 -0
  52. package/dist/lib/node-esm/{app-graph-builder-PANCJUHV.mjs → app-graph-builder-RCT4ANP2.mjs} +14 -12
  53. package/dist/lib/node-esm/app-graph-builder-RCT4ANP2.mjs.map +7 -0
  54. package/dist/lib/node-esm/blueprint-definition-AEWYMW6I.mjs +147 -0
  55. package/dist/lib/node-esm/blueprint-definition-AEWYMW6I.mjs.map +7 -0
  56. package/dist/lib/node-esm/{chunk-BFO3KHYL.mjs → chunk-ETS2CIDF.mjs} +817 -789
  57. package/dist/lib/node-esm/chunk-ETS2CIDF.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-VIIMA3XQ.mjs → chunk-GAWXJ7K5.mjs} +3 -3
  59. package/dist/lib/{browser/chunk-KFXSBNZR.mjs.map → node-esm/chunk-GAWXJ7K5.mjs.map} +2 -2
  60. package/dist/lib/node-esm/chunk-GENVBE3B.mjs +194 -0
  61. package/dist/lib/node-esm/chunk-GENVBE3B.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  63. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-KOC6ESG7.mjs +22 -0
  65. package/dist/lib/node-esm/{chunk-QN2H2EHV.mjs.map → chunk-KOC6ESG7.mjs.map} +1 -1
  66. package/dist/lib/node-esm/chunk-QS6GWTVA.mjs +281 -0
  67. package/dist/lib/node-esm/chunk-QS6GWTVA.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-X6AANUHZ.mjs +17 -0
  69. package/dist/lib/node-esm/chunk-X6AANUHZ.mjs.map +7 -0
  70. package/dist/lib/node-esm/edge-model-resolver-UDDR2IA6.mjs +25 -0
  71. package/dist/lib/node-esm/edge-model-resolver-UDDR2IA6.mjs.map +7 -0
  72. package/dist/lib/node-esm/index.mjs +83 -48
  73. package/dist/lib/node-esm/index.mjs.map +4 -4
  74. package/dist/lib/node-esm/{intent-resolver-3FMC3GHC.mjs → intent-resolver-7CKWG7TZ.mjs} +20 -14
  75. package/dist/lib/node-esm/intent-resolver-7CKWG7TZ.mjs.map +7 -0
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/{react-surface-QDQWJ7FZ.mjs → react-surface-3EPAE4I4.mjs} +36 -23
  78. package/dist/lib/node-esm/react-surface-3EPAE4I4.mjs.map +7 -0
  79. package/dist/lib/node-esm/{settings-J2EXEM5H.mjs → settings-UI4VQCWW.mjs} +6 -5
  80. package/dist/lib/{browser/settings-5GTTCVGD.mjs.map → node-esm/settings-UI4VQCWW.mjs.map} +1 -1
  81. package/dist/lib/node-esm/toolkit-2VNUL77B.mjs +106 -0
  82. package/dist/lib/node-esm/toolkit-2VNUL77B.mjs.map +7 -0
  83. package/dist/lib/node-esm/types/index.mjs +7 -4
  84. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/ai-service.d.ts +5 -0
  86. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/blueprint-definition.d.ts +3 -0
  89. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  90. package/dist/types/src/capabilities/capabilities.d.ts +11 -0
  91. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  92. package/dist/types/src/capabilities/edge-model-resolver.d.ts +5 -0
  93. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -0
  94. package/dist/types/src/capabilities/index.d.ts +5 -0
  95. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/toolkit.d.ts +5 -0
  99. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
  100. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  101. package/dist/types/src/components/Chat/Chat.d.ts +6 -8
  102. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  103. package/dist/types/src/components/ChatContainer.d.ts +5 -4
  104. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  105. package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
  106. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +13 -0
  107. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -0
  108. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +3 -3
  109. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  110. package/dist/types/src/components/ChatPrompt/index.d.ts +1 -1
  111. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
  112. package/dist/types/src/components/ChatThread/ChatMessage.d.ts +4 -3
  113. package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +1 -1
  114. package/dist/types/src/components/ChatThread/ChatThread.d.ts +2 -2
  115. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  116. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +33 -6
  117. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  118. package/dist/types/src/components/ChatThread/Link.d.ts +9 -0
  119. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -0
  120. package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +1 -1
  121. package/dist/types/src/components/SequenceContainer.d.ts.map +1 -1
  122. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +1 -1
  123. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +1 -1
  124. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +1 -1
  125. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  126. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  127. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  128. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/Timeline/Timeline.d.ts +42 -0
  130. package/dist/types/src/components/Timeline/Timeline.d.ts.map +1 -0
  131. package/dist/types/src/components/Timeline/Timeline.stories.d.ts +11 -0
  132. package/dist/types/src/components/Timeline/Timeline.stories.d.ts.map +1 -0
  133. package/dist/types/src/components/Timeline/index.d.ts +2 -0
  134. package/dist/types/src/components/Timeline/index.d.ts.map +1 -0
  135. package/dist/types/src/components/Toolbox/Toolbox.d.ts +4 -7
  136. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  137. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +1 -2
  138. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  139. package/dist/types/src/components/index.d.ts +2 -1
  140. package/dist/types/src/components/index.d.ts.map +1 -1
  141. package/dist/types/src/events.d.ts +1 -1
  142. package/dist/types/src/events.d.ts.map +1 -1
  143. package/dist/types/src/execution-graph/execution-graph.d.ts +21 -0
  144. package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -0
  145. package/dist/types/src/execution-graph/index.d.ts +2 -0
  146. package/dist/types/src/execution-graph/index.d.ts.map +1 -0
  147. package/dist/types/src/functions/analysis.d.ts +5 -0
  148. package/dist/types/src/functions/analysis.d.ts.map +1 -0
  149. package/dist/types/src/functions/index.d.ts +4 -0
  150. package/dist/types/src/functions/index.d.ts.map +1 -0
  151. package/dist/types/src/functions/list.d.ts +10 -0
  152. package/dist/types/src/functions/list.d.ts.map +1 -0
  153. package/dist/types/src/functions/load.d.ts +8 -0
  154. package/dist/types/src/functions/load.d.ts.map +1 -0
  155. package/dist/types/src/hooks/chat-processor.d.ts +28 -42
  156. package/dist/types/src/hooks/chat-processor.d.ts.map +1 -1
  157. package/dist/types/src/hooks/errors.d.ts +4 -0
  158. package/dist/types/src/hooks/errors.d.ts.map +1 -0
  159. package/dist/types/src/hooks/index.d.ts +6 -1
  160. package/dist/types/src/hooks/index.d.ts.map +1 -1
  161. package/dist/types/src/hooks/presets.d.ts +2 -2
  162. package/dist/types/src/hooks/presets.d.ts.map +1 -1
  163. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +21 -0
  164. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -0
  165. package/dist/types/src/hooks/useChatProcessor.d.ts +7 -14
  166. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  167. package/dist/types/src/hooks/useChatServices.d.ts +4 -3
  168. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  169. package/dist/types/src/hooks/useExecutionGraph.d.ts +7 -0
  170. package/dist/types/src/hooks/useExecutionGraph.d.ts.map +1 -0
  171. package/dist/types/src/hooks/useOnline.d.ts +3 -0
  172. package/dist/types/src/hooks/useOnline.d.ts.map +1 -0
  173. package/dist/types/src/hooks/usePresets.d.ts +7 -0
  174. package/dist/types/src/hooks/usePresets.d.ts.map +1 -0
  175. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  176. package/dist/types/src/hooks/useResolveRef.d.ts +4 -0
  177. package/dist/types/src/hooks/useResolveRef.d.ts.map +1 -0
  178. package/dist/types/src/parser/filter-generator.d.ts.map +1 -1
  179. package/dist/types/src/parser/query-parser.d.ts.map +1 -1
  180. package/dist/types/src/stories/Chat.stories.d.ts +66 -5
  181. package/dist/types/src/stories/Chat.stories.d.ts.map +1 -1
  182. package/dist/types/src/stories/components/BlueprintContainer.d.ts +5 -0
  183. package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +1 -0
  184. package/dist/types/src/stories/components/ChatContainer.d.ts +5 -0
  185. package/dist/types/src/stories/components/ChatContainer.d.ts.map +1 -0
  186. package/dist/types/src/stories/components/GraphContainer.d.ts +6 -0
  187. package/dist/types/src/stories/components/GraphContainer.d.ts.map +1 -0
  188. package/dist/types/src/stories/components/LoggingContainer.d.ts +5 -0
  189. package/dist/types/src/stories/components/LoggingContainer.d.ts.map +1 -0
  190. package/dist/types/src/stories/components/SurfaceContainer.d.ts +8 -0
  191. package/dist/types/src/stories/components/SurfaceContainer.d.ts.map +1 -0
  192. package/dist/types/src/stories/components/TasksContainer.d.ts +5 -0
  193. package/dist/types/src/stories/components/TasksContainer.d.ts.map +1 -0
  194. package/dist/types/src/stories/components/index.d.ts +8 -0
  195. package/dist/types/src/stories/components/index.d.ts.map +1 -0
  196. package/dist/types/src/stories/components/types.d.ts +7 -0
  197. package/dist/types/src/stories/components/types.d.ts.map +1 -0
  198. package/dist/types/src/stories/hooks/index.d.ts +3 -0
  199. package/dist/types/src/stories/hooks/index.d.ts.map +1 -0
  200. package/dist/types/src/stories/hooks/useFlush.d.ts +6 -0
  201. package/dist/types/src/stories/hooks/useFlush.d.ts.map +1 -0
  202. package/dist/types/src/stories/hooks/useMatcherExtension.d.ts +3 -0
  203. package/dist/types/src/stories/hooks/useMatcherExtension.d.ts.map +1 -0
  204. package/dist/types/src/stories/testing/data.d.ts +142 -0
  205. package/dist/types/src/stories/testing/data.d.ts.map +1 -0
  206. package/dist/types/src/stories/testing/index.d.ts +3 -0
  207. package/dist/types/src/stories/testing/index.d.ts.map +1 -0
  208. package/dist/types/src/stories/testing/testing.d.ts +26 -0
  209. package/dist/types/src/stories/testing/testing.d.ts.map +1 -0
  210. package/dist/types/src/testing/test-functions.d.ts +5 -2
  211. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  212. package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
  213. package/dist/types/src/tools/function.d.ts.map +1 -1
  214. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  215. package/dist/types/src/translations.d.ts +5 -0
  216. package/dist/types/src/translations.d.ts.map +1 -1
  217. package/dist/types/src/types/Assistant.d.ts +42 -0
  218. package/dist/types/src/types/Assistant.d.ts.map +1 -0
  219. package/dist/types/src/types/AssistantAction.d.ts +91 -0
  220. package/dist/types/src/types/AssistantAction.d.ts.map +1 -0
  221. package/dist/types/src/types/defs.d.ts +2 -0
  222. package/dist/types/src/types/defs.d.ts.map +1 -0
  223. package/dist/types/src/types/index.d.ts +3 -1
  224. package/dist/types/src/types/index.d.ts.map +1 -1
  225. package/dist/types/src/types/service.d.ts +6 -6
  226. package/dist/types/src/types/service.d.ts.map +1 -1
  227. package/dist/types/tsconfig.tsbuildinfo +1 -1
  228. package/package.json +85 -79
  229. package/src/AssistantPlugin.tsx +37 -16
  230. package/src/capabilities/ai-service.ts +28 -0
  231. package/src/capabilities/app-graph-builder.ts +8 -8
  232. package/src/capabilities/blueprint-definition.ts +32 -0
  233. package/src/capabilities/capabilities.ts +22 -0
  234. package/src/capabilities/edge-model-resolver.ts +29 -0
  235. package/src/capabilities/index.ts +6 -0
  236. package/src/capabilities/intent-resolver.ts +13 -12
  237. package/src/capabilities/react-surface.tsx +22 -15
  238. package/src/capabilities/toolkit.ts +106 -0
  239. package/src/components/AssistantSettings/AssistantSettings.tsx +1 -1
  240. package/src/components/Chat/Chat.tsx +77 -64
  241. package/src/components/ChatContainer.tsx +38 -14
  242. package/src/components/ChatDialog.tsx +10 -6
  243. package/src/components/ChatPrompt/ChatOptions.tsx +59 -0
  244. package/src/components/ChatPrompt/ChatReferences.tsx +11 -9
  245. package/src/components/ChatPrompt/index.ts +1 -1
  246. package/src/components/ChatThread/ChatMessage.tsx +141 -118
  247. package/src/components/ChatThread/ChatThread.stories.tsx +236 -104
  248. package/src/components/ChatThread/ChatThread.tsx +2 -2
  249. package/src/components/ChatThread/Link.tsx +23 -0
  250. package/src/components/ChatThread/ToolBlock.tsx +20 -16
  251. package/src/components/SequenceContainer.tsx +2 -1
  252. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +3 -2
  253. package/src/components/SequenceEditor/SequenceEditor.tsx +1 -1
  254. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +9 -2
  255. package/src/components/TemplateEditor/TemplateEditor.tsx +3 -2
  256. package/src/components/TemplateEditor/TemplateForm.stories.tsx +9 -2
  257. package/src/components/TemplateEditor/TemplateForm.tsx +2 -1
  258. package/src/components/Timeline/Timeline.stories.tsx +144 -0
  259. package/src/components/Timeline/Timeline.tsx +202 -0
  260. package/src/components/Timeline/index.ts +5 -0
  261. package/src/components/Toolbox/Toolbox.stories.tsx +6 -12
  262. package/src/components/Toolbox/Toolbox.tsx +16 -40
  263. package/src/components/index.ts +1 -4
  264. package/src/events.ts +2 -2
  265. package/src/execution-graph/execution-graph.ts +184 -0
  266. package/src/execution-graph/index.ts +5 -0
  267. package/src/functions/analysis.ts +20 -0
  268. package/src/functions/index.ts +7 -0
  269. package/src/functions/list.ts +42 -0
  270. package/src/functions/load.ts +43 -0
  271. package/src/hooks/chat-processor.ts +123 -177
  272. package/src/hooks/errors.ts +8 -0
  273. package/src/hooks/index.ts +6 -1
  274. package/src/hooks/presets.ts +6 -5
  275. package/src/hooks/useBlueprintRegistry.ts +79 -0
  276. package/src/hooks/useChatProcessor.ts +21 -83
  277. package/src/hooks/useChatServices.ts +29 -22
  278. package/src/hooks/useExecutionGraph.ts +16 -0
  279. package/src/hooks/useOnline.ts +10 -0
  280. package/src/hooks/usePresets.ts +45 -0
  281. package/src/hooks/useReferencesProvider.ts +11 -9
  282. package/src/hooks/useResolveRef.ts +33 -0
  283. package/src/parser/filter-generator.ts +6 -13
  284. package/src/parser/query-parser.ts +1 -1
  285. package/src/queue-logger.ts +5 -5
  286. package/src/stories/Chat.stories.tsx +236 -290
  287. package/src/stories/components/BlueprintContainer.tsx +34 -0
  288. package/src/stories/components/ChatContainer.tsx +80 -0
  289. package/src/stories/components/GraphContainer.tsx +118 -0
  290. package/src/stories/components/LoggingContainer.tsx +29 -0
  291. package/src/stories/components/SurfaceContainer.tsx +62 -0
  292. package/src/stories/components/TasksContainer.tsx +51 -0
  293. package/src/stories/components/index.ts +12 -0
  294. package/src/stories/components/types.ts +11 -0
  295. package/src/stories/hooks/index.ts +6 -0
  296. package/src/stories/hooks/useFlush.ts +35 -0
  297. package/src/stories/hooks/useMatcherExtension.ts +45 -0
  298. package/src/stories/testing/data.ts +130 -0
  299. package/src/stories/testing/index.ts +6 -0
  300. package/src/stories/testing/testing.tsx +163 -0
  301. package/src/testing/test-functions.ts +8 -3
  302. package/src/testing/test-sequence.ts +1 -1
  303. package/src/tools/function.ts +4 -1
  304. package/src/tools/openapi.test.ts +7 -5
  305. package/src/tools/openapi.ts +4 -1
  306. package/src/translations.ts +7 -0
  307. package/src/types/Assistant.ts +62 -0
  308. package/src/types/AssistantAction.ts +54 -0
  309. package/src/types/defs.ts +5 -0
  310. package/src/types/index.ts +4 -1
  311. package/dist/lib/browser/ChatContainer-RP3QEXYX.mjs.map +0 -7
  312. package/dist/lib/browser/ChatDialog-ZVLXFHEY.mjs.map +0 -7
  313. package/dist/lib/browser/SequenceContainer-3UDVKWPA.mjs.map +0 -7
  314. package/dist/lib/browser/app-graph-builder-XSEOKJLG.mjs.map +0 -7
  315. package/dist/lib/browser/chunk-63GG6U6D.mjs.map +0 -7
  316. package/dist/lib/browser/chunk-7W7LHTRH.mjs +0 -171
  317. package/dist/lib/browser/chunk-7W7LHTRH.mjs.map +0 -7
  318. package/dist/lib/browser/chunk-FDCJSQYF.mjs +0 -40
  319. package/dist/lib/browser/chunk-LERGF5YG.mjs +0 -108
  320. package/dist/lib/browser/chunk-LERGF5YG.mjs.map +0 -7
  321. package/dist/lib/browser/intent-resolver-MV3VSZLS.mjs.map +0 -7
  322. package/dist/lib/browser/react-surface-3GYEHQRP.mjs.map +0 -7
  323. package/dist/lib/node-esm/ChatContainer-W3W6FWV3.mjs.map +0 -7
  324. package/dist/lib/node-esm/ChatDialog-QW4JRKVO.mjs.map +0 -7
  325. package/dist/lib/node-esm/SequenceContainer-RQQH5XOC.mjs.map +0 -7
  326. package/dist/lib/node-esm/app-graph-builder-PANCJUHV.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-BFO3KHYL.mjs.map +0 -7
  328. package/dist/lib/node-esm/chunk-MS3PJARN.mjs +0 -109
  329. package/dist/lib/node-esm/chunk-MS3PJARN.mjs.map +0 -7
  330. package/dist/lib/node-esm/chunk-QN2H2EHV.mjs +0 -41
  331. package/dist/lib/node-esm/chunk-Z7PUODRT.mjs +0 -172
  332. package/dist/lib/node-esm/chunk-Z7PUODRT.mjs.map +0 -7
  333. package/dist/lib/node-esm/intent-resolver-3FMC3GHC.mjs.map +0 -7
  334. package/dist/lib/node-esm/react-surface-QDQWJ7FZ.mjs.map +0 -7
  335. package/dist/types/src/capability-definitions.d.ts +0 -7
  336. package/dist/types/src/capability-definitions.d.ts.map +0 -1
  337. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts +0 -9
  338. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts.map +0 -1
  339. package/dist/types/src/hooks/chat-processor.test.d.ts +0 -2
  340. package/dist/types/src/hooks/chat-processor.test.d.ts.map +0 -1
  341. package/dist/types/src/hooks/useBlueprints.d.ts +0 -9
  342. package/dist/types/src/hooks/useBlueprints.d.ts.map +0 -1
  343. package/dist/types/src/types/schema.d.ts +0 -120
  344. package/dist/types/src/types/schema.d.ts.map +0 -1
  345. package/src/capability-definitions.ts +0 -15
  346. package/src/components/ChatPrompt/ChatOptionsMenu.tsx +0 -52
  347. package/src/hooks/chat-processor.test.ts +0 -16
  348. package/src/hooks/useBlueprints.ts +0 -57
  349. package/src/types/schema.ts +0 -108
  350. /package/dist/lib/{node-esm/BlueprintContainer-RGTMNLNX.mjs.map → browser/BlueprintContainer-H7H4BQ2C.mjs.map} +0 -0
@@ -2,13 +2,17 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import React, { Fragment, type FC, type PropsWithChildren } from 'react';
5
+ import React, { type FC, Fragment, type PropsWithChildren, useMemo } from 'react';
6
6
 
7
7
  import { type Tool } from '@dxos/ai';
8
- import { Surface } from '@dxos/app-framework';
8
+ import { ErrorBoundary, Surface } from '@dxos/app-framework';
9
+ import { resolveRef } from '@dxos/client';
10
+ import { Obj } from '@dxos/echo';
9
11
  import { invariant } from '@dxos/invariant';
12
+ import { DXN, DXN_ECHO_REGEXP } from '@dxos/keys';
13
+ import { useClient } from '@dxos/react-client';
10
14
  import { type Space } from '@dxos/react-client/echo';
11
- import { Button, Icon, IconButton, useTranslation, type ThemedClassName } from '@dxos/react-ui';
15
+ import { Button, IconButton, Link, type ThemedClassName, useTranslation } from '@dxos/react-ui';
12
16
  import {
13
17
  MarkdownViewer,
14
18
  ToggleContainer as NativeToggleContainer,
@@ -18,35 +22,39 @@ import { mx } from '@dxos/react-ui-theme';
18
22
  import { type ContentBlock, type DataType } from '@dxos/schema';
19
23
  import { safeParseJson } from '@dxos/util';
20
24
 
21
- import { Json, ToolBlock, isToolMessage } from './ToolBlock';
22
- import { type ChatProcessor } from '../../hooks';
23
25
  import { meta } from '../../meta';
24
26
  import { type ChatEvent } from '../Chat';
25
- import { ToolboxContainer } from '../Toolbox';
27
+ import { Toolbox } from '../Toolbox';
28
+
29
+ import { ObjectLink } from './Link';
30
+ import { Json, ToolBlock, isToolMessage } from './ToolBlock';
31
+
32
+ const panelClasses = 'flex flex-col is-full bg-activeSurface rounded-sm';
33
+ const marginClasses = 'pie-4 pis-4';
34
+ const paddingClasses = 'pis-2 pie-2 pbs-0.5 pbe-0.5';
26
35
 
27
36
  export type ChatMessageProps = ThemedClassName<{
28
37
  debug?: boolean;
29
38
  space?: Space;
30
39
  message: DataType.Message;
31
- // TODO(burdon): Move to context.
32
- processor?: ChatProcessor;
33
40
  tools?: Tool[];
34
41
  onEvent?: (event: ChatEvent) => void;
42
+ onDelete?: () => void;
35
43
  }>;
36
44
 
37
- export const ChatMessage = ({ classNames, debug, space, message, processor, tools, onEvent }: ChatMessageProps) => {
45
+ export const ChatMessage = ({ classNames, debug, space, message, tools, onEvent, onDelete }: ChatMessageProps) => {
38
46
  const { t } = useTranslation(meta.id);
39
47
  const {
40
48
  sender: { role },
41
49
  blocks,
42
50
  } = message;
43
51
 
44
- // TODO(burdon): Restructure types to make check unnecessary.
52
+ // TODO(burdon): Consolidate tools upstream?
45
53
  if (isToolMessage(message)) {
46
54
  return (
47
- <MessageContainer classNames={mx(classNames, 'animate-[fadeIn_0.5s]')}>
55
+ <MessageItem classNames={mx(classNames, 'animate-[fadeIn_0.5s]')}>
48
56
  <ToolBlock classNames={panelClasses} message={message} tools={tools} />
49
- </MessageContainer>
57
+ </MessageItem>
50
58
  );
51
59
  }
52
60
 
@@ -64,16 +72,18 @@ export const ChatMessage = ({ classNames, debug, space, message, processor, tool
64
72
  return null;
65
73
  }
66
74
 
67
- const Component: BlockComponent = components[block._tag] ?? components.default!;
75
+ const Component: ContentBlockComponent = components[block._tag] ?? components.default!;
68
76
  if (!Component) {
69
77
  return null;
70
78
  }
71
79
 
72
80
  return (
73
81
  <Fragment key={idx}>
74
- <MessageContainer classNames={classNames} user={block._tag === 'text' && role === 'user'}>
75
- <Component space={space} processor={processor} block={block} onEvent={onEvent} />
76
- </MessageContainer>
82
+ <MessageItem classNames={classNames} user={block._tag === 'text' && role === 'user'}>
83
+ <ErrorBoundary data={block}>
84
+ <Component space={space} block={block} onEvent={onEvent} />
85
+ </ErrorBoundary>
86
+ </MessageItem>
77
87
  {debug && (
78
88
  <div className={mx('flex justify-end text-subdued', marginClasses)}>
79
89
  <pre className='text-xs'>{JSON.stringify({ block: block._tag })}</pre>
@@ -82,64 +92,122 @@ export const ChatMessage = ({ classNames, debug, space, message, processor, tool
82
92
  </Fragment>
83
93
  );
84
94
  })}
85
- <div className={mx('flex justify-end pbs-2 pbe-2 opacity-50 hover:opacity-100', marginClasses)}>
86
- <IconButton
87
- classNames='animate-[fadeIn_0.5s]'
88
- icon='ph--trash--regular'
89
- iconOnly
90
- label={t('button delete message')}
91
- onClick={() => onEvent?.({ type: 'delete', id: message.id })}
92
- />
93
- </div>
95
+
96
+ {onDelete && (
97
+ <div className={mx('flex justify-end pbs-2 pbe-2 opacity-50 hover:opacity-100', marginClasses)}>
98
+ <IconButton
99
+ classNames='animate-[fadeIn_0.5s]'
100
+ icon='ph--trash--regular'
101
+ iconOnly
102
+ label={t('button delete message')}
103
+ onClick={() => onDelete()}
104
+ />
105
+ </div>
106
+ )}
94
107
  </>
95
108
  );
96
109
  };
97
110
 
98
- type BlockComponentProps = {
111
+ type ContentBlockProps = {
99
112
  space?: Space;
100
113
  block: ContentBlock.Any;
101
- /** @deprecated Replace with context */
102
- processor?: ChatProcessor;
103
114
  onEvent?: (event: ChatEvent) => void;
104
115
  };
105
116
 
106
- type BlockComponent = FC<BlockComponentProps>;
117
+ type ContentBlockComponent = FC<ContentBlockProps>;
107
118
 
108
- const components: Partial<Record<ContentBlock.Any['_tag'] | 'default', BlockComponent>> = {
119
+ /**
120
+ * Components for rendering content blocks.
121
+ */
122
+ const components: Partial<Record<ContentBlock.Any['_tag'] | 'default', ContentBlockComponent>> = {
109
123
  //
110
124
  // Text
111
125
  //
112
- ['text' as const]: ({ block }) => {
126
+ ['text' as const]: ({ space, block }) => {
113
127
  invariant(block._tag === 'text');
114
- // const [open, setOpen] = useState(block.disposition === 'cot' && block.pending);
115
- const title = block.disposition ? titles[block.disposition] : undefined;
116
- if (!title) {
117
- return <MarkdownViewer content={block.text} />;
118
- }
128
+ return (
129
+ <MarkdownViewer
130
+ content={preprocessTextContent(block.text)}
131
+ components={{
132
+ a: ({ node: { properties }, children, href, ...props }) => {
133
+ if (space && typeof properties?.href === 'string' && properties?.href?.startsWith('dxn')) {
134
+ try {
135
+ // TODO(burdon): Check valid length (since serialized).
136
+ const dxn = DXN.parse(properties.href);
137
+ return <ObjectLink space={space} dxn={dxn} />;
138
+ } catch {}
139
+ }
119
140
 
120
- // TOOD(burdon): Store last time user opened/closed COT.
121
- // Autoclose when streaming ends.
122
- // useEffect(() => {
123
- // if (block.disposition === 'cot' && !block.pending) {
124
- // setOpen(false);
125
- // }
126
- // }, [block.disposition, block.pending]);
141
+ // TODO(burdon): Can we revert to the default handler?
142
+ return (
143
+ <Link href={href} target='_blank' rel='noopener noreferrer' {...props}>
144
+ {children}
145
+ </Link>
146
+ );
147
+ },
148
+ img: ({ node: { properties }, ...props }) => {
149
+ const client = useClient();
150
+ if (space && typeof properties?.src === 'string' && properties?.src?.startsWith('dxn')) {
151
+ try {
152
+ const dxn = DXN.parse(properties?.src);
153
+ const subject = resolveRef(client, dxn, space);
154
+ const data = useMemo(() => ({ subject }), [subject]);
155
+ return <Surface role='card--transclusion' data={data} limit={1} />;
156
+ } catch {}
157
+ }
158
+ return <img {...properties} />;
159
+ },
160
+ }}
161
+ />
162
+ );
163
+ },
127
164
 
165
+ //
166
+ // Suggest
167
+ //
168
+ ['suggest' as const]: ({ block, onEvent }) => {
169
+ const { t } = useTranslation(meta.id);
170
+ invariant(block._tag === 'suggest');
128
171
  return (
129
- <ToggleContainer
130
- // open={open}
131
- defaultOpen={systemDispositions.includes(block.disposition ?? '') && block.pending}
132
- title={title}
133
- icon={
134
- block.pending ? (
135
- <Icon icon={'ph--circle-notch--regular'} classNames='text-subdued animate-spin' size={4} />
136
- ) : undefined
137
- }
138
- >
139
- <MarkdownViewer
140
- content={block.text}
141
- classNames={['pbe-2', systemDispositions.includes(block.disposition ?? '') && 'text-sm text-subdued']}
142
- />
172
+ <IconButton
173
+ icon='ph--lightning--regular'
174
+ label={block.text}
175
+ title={t('button suggest')}
176
+ onClick={() => onEvent?.({ type: 'submit', text: block.text })}
177
+ />
178
+ );
179
+ },
180
+
181
+ //
182
+ // Select
183
+ //
184
+ ['select' as const]: ({ block, onEvent }) => {
185
+ const { t } = useTranslation(meta.id);
186
+ invariant(block._tag === 'select');
187
+ return (
188
+ <div className='flex flex-wrap gap-1'>
189
+ {block.options.map((option, idx) => (
190
+ <Button
191
+ classNames={'animate-[fadeIn_0.5s] rounded-sm text-sm'}
192
+ key={idx}
193
+ onClick={() => onEvent?.({ type: 'submit', text: option })}
194
+ title={t('button select option')}
195
+ >
196
+ {option}
197
+ </Button>
198
+ ))}
199
+ </div>
200
+ );
201
+ },
202
+
203
+ //
204
+ // Toolkit
205
+ //
206
+ ['toolkit' as const]: ({ block }) => {
207
+ invariant(block._tag === 'toolkit');
208
+ return (
209
+ <ToggleContainer title='Toolbox' classNames={panelClasses} defaultOpen>
210
+ <Toolbox classNames={marginClasses} />
143
211
  </ToggleContainer>
144
212
  );
145
213
  },
@@ -147,42 +215,11 @@ const components: Partial<Record<ContentBlock.Any['_tag'] | 'default', BlockComp
147
215
  //
148
216
  // JSON
149
217
  //
150
- ['json' as const]: ({ space, processor, block, onEvent }) => {
218
+ ['json' as const]: ({ block, onEvent }) => {
151
219
  invariant(block._tag === 'json');
152
220
 
221
+ // TODO(burdon): Disposition is deprecated.
153
222
  switch (block.disposition) {
154
- case 'tool_list': {
155
- return (
156
- <ToggleContainer title={titles[block.disposition]} defaultOpen={true}>
157
- <ToolboxContainer space={space} processor={processor} classNames='pbe-2' />
158
- </ToggleContainer>
159
- );
160
- }
161
-
162
- case 'suggest': {
163
- const { text = '' }: { text: string } = safeParseJson(block.data ?? '{}') ?? ({} as any);
164
- return (
165
- <IconButton icon='ph--lightning--regular' label={text} onClick={() => onEvent?.({ type: 'submit', text })} />
166
- );
167
- }
168
-
169
- case 'select': {
170
- const { options = [] }: { options: string[] } = safeParseJson(block.data ?? '{}') ?? ({} as any);
171
- return (
172
- <div className='flex flex-wrap gap-1'>
173
- {options.map((text, idx) => (
174
- <Button
175
- classNames={'animate-[fadeIn_0.5s] rounded-sm text-sm'}
176
- key={idx}
177
- onClick={() => onEvent?.({ type: 'submit', text })}
178
- >
179
- {text}
180
- </Button>
181
- ))}
182
- </div>
183
- );
184
- }
185
-
186
223
  case 'graph': {
187
224
  return (
188
225
  <div className='flex flex-wrap gap-1'>
@@ -204,9 +241,8 @@ const components: Partial<Record<ContentBlock.Any['_tag'] | 'default', BlockComp
204
241
  }
205
242
 
206
243
  default: {
207
- const title = block.disposition ? titles[block.disposition] : undefined;
208
244
  return (
209
- <ToggleContainer title={title ?? 'JSON'}>
245
+ <ToggleContainer title={block.disposition ?? block._tag}>
210
246
  <Json data={safeParseJson(block.data ?? block)} />
211
247
  </ToggleContainer>
212
248
  );
@@ -215,41 +251,21 @@ const components: Partial<Record<ContentBlock.Any['_tag'] | 'default', BlockComp
215
251
  },
216
252
 
217
253
  //
218
- // Default
254
+ // Fallback
219
255
  //
220
256
  default: ({ block }) => {
221
- let title = titles[block._tag];
222
- if (block._tag === 'toolCall') {
223
- title = `Tool [${block.name}]`; // TODO(burdon): Get label from tool.
224
- } else {
225
- title = block._tag;
226
- }
227
-
228
257
  return (
229
- <ToggleContainer title={title ?? 'JSON'}>
258
+ <ToggleContainer title={block._tag}>
230
259
  <Json data={block} />
231
260
  </ToggleContainer>
232
261
  );
233
262
  },
234
263
  };
235
264
 
236
- // TODO(burdon): Translations.
237
- const titles: Record<string, string> = {
238
- ['cot' as const]: 'Chain of thought',
239
- ['artifact' as const]: 'Artifact',
240
- ['tool_use' as const]: 'Tool request',
241
- ['tool_result' as const]: 'Tool result',
242
- ['tool_list' as const]: 'Tools',
243
- ['artifact-update' as const]: 'Artifact(s) changed',
244
- };
245
-
246
- const systemDispositions: string[] = ['cot', 'artifact-update'];
247
-
248
- const panelClasses = 'flex flex-col is-full bg-activeSurface rounded-sm';
249
- const marginClasses = 'pie-4 pis-4';
250
- const paddingClasses = 'pis-2 pie-2 pbs-0.5 pbe-0.5';
251
-
252
- const MessageContainer = ({ classNames, children, user }: ThemedClassName<PropsWithChildren<{ user?: boolean }>>) => {
265
+ /**
266
+ * Wrapper for each message.
267
+ */
268
+ const MessageItem = ({ classNames, children, user }: ThemedClassName<PropsWithChildren<{ user?: boolean }>>) => {
253
269
  if (!children) {
254
270
  return null;
255
271
  }
@@ -266,3 +282,10 @@ const MessageContainer = ({ classNames, children, user }: ThemedClassName<PropsW
266
282
  const ToggleContainer = (props: ToggleContainerProps) => {
267
283
  return <NativeToggleContainer {...props} classNames={mx(panelClasses, props.classNames)} />;
268
284
  };
285
+
286
+ export const renderObjectLink = (obj: Obj.Any, transclusion?: boolean) =>
287
+ `${transclusion ? '!' : ''}[${Obj.getLabel(obj)}](${Obj.getDXN(obj).toString()})`;
288
+
289
+ // TODO(burdon): Move to parser.
290
+ const preprocessTextContent = (content: string) =>
291
+ content.replaceAll(new RegExp(DXN_ECHO_REGEXP, 'g'), (_, dxn) => `<${dxn}>`);