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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/dist/lib/browser/{BlueprintContainer-IZ4AK5EO.mjs → BlueprintContainer-GMSYKGSO.mjs} +14 -6
  2. package/dist/lib/browser/BlueprintContainer-GMSYKGSO.mjs.map +7 -0
  3. package/dist/lib/browser/ChatCompanion-M3FDKTQM.mjs +151 -0
  4. package/dist/lib/browser/ChatCompanion-M3FDKTQM.mjs.map +7 -0
  5. package/dist/lib/browser/{ChatContainer-RP3QEXYX.mjs → ChatContainer-KAH7XITI.mjs} +34 -14
  6. package/dist/lib/browser/ChatContainer-KAH7XITI.mjs.map +7 -0
  7. package/dist/lib/browser/{ChatDialog-ZVLXFHEY.mjs → ChatDialog-ZWRGABW6.mjs} +27 -12
  8. package/dist/lib/browser/ChatDialog-ZWRGABW6.mjs.map +7 -0
  9. package/dist/lib/browser/ai-service-ERTZBTP3.mjs +19 -0
  10. package/dist/lib/browser/ai-service-ERTZBTP3.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-builder-XSEOKJLG.mjs → app-graph-builder-R5T7BJPC.mjs} +60 -41
  12. package/dist/lib/browser/app-graph-builder-R5T7BJPC.mjs.map +7 -0
  13. package/dist/lib/browser/blueprint-definition-AGTDXTXO.mjs +13 -0
  14. package/dist/lib/browser/blueprint-definition-AGTDXTXO.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-357IHWQL.mjs +1519 -0
  16. package/dist/lib/browser/chunk-357IHWQL.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-A2NVNXPL.mjs +170 -0
  18. package/dist/lib/browser/chunk-A2NVNXPL.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-CQW6UPJM.mjs +199 -0
  20. package/dist/lib/browser/chunk-CQW6UPJM.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-GNI6HL6G.mjs +219 -0
  22. package/dist/lib/browser/chunk-GNI6HL6G.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-GXHZTOWJ.mjs +378 -0
  24. package/dist/lib/browser/chunk-GXHZTOWJ.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  26. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-L5OA5OGS.mjs +262 -0
  28. package/dist/lib/browser/chunk-L5OA5OGS.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-MEN5WTLA.mjs +182 -0
  30. package/dist/lib/browser/chunk-MEN5WTLA.mjs.map +7 -0
  31. package/dist/lib/browser/chunk-PUG24BEC.mjs +277 -0
  32. package/dist/lib/browser/chunk-PUG24BEC.mjs.map +7 -0
  33. package/dist/lib/browser/chunk-SJJV3HEX.mjs +16 -0
  34. package/dist/lib/browser/chunk-SJJV3HEX.mjs.map +7 -0
  35. package/dist/lib/browser/chunk-WBG5PTSX.mjs +23 -0
  36. package/dist/lib/browser/chunk-WBG5PTSX.mjs.map +7 -0
  37. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs +18 -0
  38. package/dist/lib/browser/edge-model-resolver-O6OFYIO2.mjs.map +7 -0
  39. package/dist/lib/browser/index.mjs +185 -76
  40. package/dist/lib/browser/index.mjs.map +4 -4
  41. package/dist/lib/browser/intent-resolver-3C5TABOX.mjs +136 -0
  42. package/dist/lib/browser/intent-resolver-3C5TABOX.mjs.map +7 -0
  43. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs +17 -0
  44. package/dist/lib/browser/local-model-resolver-GO6ZEMLL.mjs.map +7 -0
  45. package/dist/lib/browser/meta.json +1 -1
  46. package/dist/lib/browser/react-surface-EYKA5IFU.mjs +90 -0
  47. package/dist/lib/browser/react-surface-EYKA5IFU.mjs.map +7 -0
  48. package/dist/lib/browser/{settings-5GTTCVGD.mjs → settings-VMVBYZLN.mjs} +8 -7
  49. package/dist/lib/{node-esm/settings-J2EXEM5H.mjs.map → browser/settings-VMVBYZLN.mjs.map} +1 -1
  50. package/dist/lib/browser/state-CFREPBB6.mjs +21 -0
  51. package/dist/lib/browser/state-CFREPBB6.mjs.map +7 -0
  52. package/dist/lib/browser/toolkit-F3NQ7TSI.mjs +21 -0
  53. package/dist/lib/browser/toolkit-F3NQ7TSI.mjs.map +7 -0
  54. package/dist/lib/browser/types/index.mjs +7 -4
  55. package/dist/lib/node-esm/{BlueprintContainer-RGTMNLNX.mjs → BlueprintContainer-6GBLMK4Z.mjs} +14 -6
  56. package/dist/lib/node-esm/BlueprintContainer-6GBLMK4Z.mjs.map +7 -0
  57. package/dist/lib/node-esm/ChatCompanion-OV426GCP.mjs +152 -0
  58. package/dist/lib/node-esm/ChatCompanion-OV426GCP.mjs.map +7 -0
  59. package/dist/lib/node-esm/{ChatContainer-W3W6FWV3.mjs → ChatContainer-UKY7NHFY.mjs} +34 -14
  60. package/dist/lib/node-esm/ChatContainer-UKY7NHFY.mjs.map +7 -0
  61. package/dist/lib/node-esm/{ChatDialog-QW4JRKVO.mjs → ChatDialog-2BDQIEXH.mjs} +27 -12
  62. package/dist/lib/node-esm/ChatDialog-2BDQIEXH.mjs.map +7 -0
  63. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs +20 -0
  64. package/dist/lib/node-esm/ai-service-MUYLV3NT.mjs.map +7 -0
  65. package/dist/lib/node-esm/{app-graph-builder-PANCJUHV.mjs → app-graph-builder-I52RYVWH.mjs} +60 -41
  66. package/dist/lib/node-esm/app-graph-builder-I52RYVWH.mjs.map +7 -0
  67. package/dist/lib/node-esm/blueprint-definition-CFCUD2VC.mjs +14 -0
  68. package/dist/lib/node-esm/blueprint-definition-CFCUD2VC.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-2CAETDW2.mjs +183 -0
  70. package/dist/lib/node-esm/chunk-2CAETDW2.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-4J5FYNNM.mjs +171 -0
  72. package/dist/lib/node-esm/chunk-4J5FYNNM.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-5ARE4R2I.mjs +220 -0
  74. package/dist/lib/node-esm/chunk-5ARE4R2I.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-7ZYOYW7F.mjs +264 -0
  76. package/dist/lib/node-esm/chunk-7ZYOYW7F.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-HJPIYMWD.mjs +1520 -0
  78. package/dist/lib/node-esm/chunk-HJPIYMWD.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  80. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  81. package/dist/lib/node-esm/chunk-O36P4LN5.mjs +200 -0
  82. package/dist/lib/node-esm/chunk-O36P4LN5.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-WE6KTH72.mjs +25 -0
  84. package/dist/lib/node-esm/chunk-WE6KTH72.mjs.map +7 -0
  85. package/dist/lib/node-esm/chunk-XM4BVQQR.mjs +278 -0
  86. package/dist/lib/node-esm/chunk-XM4BVQQR.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-XQBL2SBL.mjs +17 -0
  88. package/dist/lib/node-esm/chunk-XQBL2SBL.mjs.map +7 -0
  89. package/dist/lib/node-esm/chunk-YIO5MEPR.mjs +380 -0
  90. package/dist/lib/node-esm/chunk-YIO5MEPR.mjs.map +7 -0
  91. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs +19 -0
  92. package/dist/lib/node-esm/edge-model-resolver-2ARXDOYS.mjs.map +7 -0
  93. package/dist/lib/node-esm/index.mjs +185 -76
  94. package/dist/lib/node-esm/index.mjs.map +4 -4
  95. package/dist/lib/node-esm/intent-resolver-HQ27YALS.mjs +137 -0
  96. package/dist/lib/node-esm/intent-resolver-HQ27YALS.mjs.map +7 -0
  97. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs +18 -0
  98. package/dist/lib/node-esm/local-model-resolver-WOQ2D2R2.mjs.map +7 -0
  99. package/dist/lib/node-esm/meta.json +1 -1
  100. package/dist/lib/node-esm/react-surface-UOC3CBPH.mjs +91 -0
  101. package/dist/lib/node-esm/react-surface-UOC3CBPH.mjs.map +7 -0
  102. package/dist/lib/node-esm/{settings-J2EXEM5H.mjs → settings-7AUVNDM2.mjs} +8 -7
  103. package/dist/lib/{browser/settings-5GTTCVGD.mjs.map → node-esm/settings-7AUVNDM2.mjs.map} +1 -1
  104. package/dist/lib/node-esm/state-XXND44OW.mjs +22 -0
  105. package/dist/lib/node-esm/state-XXND44OW.mjs.map +7 -0
  106. package/dist/lib/node-esm/toolkit-7CH5UNSQ.mjs +22 -0
  107. package/dist/lib/node-esm/toolkit-7CH5UNSQ.mjs.map +7 -0
  108. package/dist/lib/node-esm/types/index.mjs +7 -4
  109. package/dist/types/src/AssistantPlugin.d.ts +1 -1
  110. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  111. package/dist/types/src/capabilities/ai-service.d.ts +4 -0
  112. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  114. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/blueprint-definition.d.ts +7 -0
  116. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/capabilities.d.ts +11 -0
  118. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/edge-model-resolver.d.ts +4 -0
  120. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/index.d.ts +11 -3
  122. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  123. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  124. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  125. package/dist/types/src/capabilities/local-model-resolver.d.ts +10 -0
  126. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  128. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/settings.d.ts +1 -1
  130. package/dist/types/src/capabilities/state.d.ts +4 -0
  131. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  132. package/dist/types/src/capabilities/toolkit.d.ts +4 -0
  133. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
  134. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  135. package/dist/types/src/components/BlueprintContainer.d.ts.map +1 -1
  136. package/dist/types/src/components/Chat/Chat.d.ts +21 -17
  137. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  138. package/dist/types/src/components/Chat/events.d.ts +5 -0
  139. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  140. package/dist/types/src/components/ChatCompanion.d.ts +13 -0
  141. package/dist/types/src/components/ChatCompanion.d.ts.map +1 -0
  142. package/dist/types/src/components/ChatContainer.d.ts +4 -4
  143. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  144. package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
  145. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +7 -0
  146. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -0
  147. package/dist/types/src/components/ChatProgress/index.d.ts +2 -0
  148. package/dist/types/src/components/ChatProgress/index.d.ts.map +1 -0
  149. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  150. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +20 -0
  151. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -0
  152. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
  153. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +4 -5
  154. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  155. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +6 -4
  156. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
  157. package/dist/types/src/components/ChatPrompt/index.d.ts +1 -1
  158. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
  159. package/dist/types/src/components/ChatThread/ChatThread.d.ts +12 -7
  160. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  161. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +120 -33
  162. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  163. package/dist/types/src/components/ChatThread/Link.d.ts +9 -0
  164. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -0
  165. package/dist/types/src/components/ChatThread/reducers.d.ts +40 -0
  166. package/dist/types/src/components/ChatThread/reducers.d.ts.map +1 -0
  167. package/dist/types/src/components/ChatThread/registry.d.ts +11 -0
  168. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -0
  169. package/dist/types/src/components/ChatThread/sync.d.ts +36 -0
  170. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -0
  171. package/dist/types/src/components/ChatThread/sync.test.d.ts +2 -0
  172. package/dist/types/src/components/ChatThread/sync.test.d.ts.map +1 -0
  173. package/dist/types/src/components/ChatToolbar/ChatToolbar.d.ts +6 -0
  174. package/dist/types/src/components/ChatToolbar/ChatToolbar.d.ts.map +1 -0
  175. package/dist/types/src/components/ChatToolbar/index.d.ts +2 -0
  176. package/dist/types/src/components/ChatToolbar/index.d.ts.map +1 -0
  177. package/dist/types/src/components/ChatToolbar/useChatToolbarActions.d.ts +9 -0
  178. package/dist/types/src/components/ChatToolbar/useChatToolbarActions.d.ts.map +1 -0
  179. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -6
  180. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  181. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +265 -7
  182. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  183. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +1 -1
  184. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  185. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +262 -2
  186. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  187. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts +12 -0
  188. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +1 -0
  189. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +19 -0
  190. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -0
  191. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts +2 -0
  192. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts.map +1 -0
  193. package/dist/types/src/components/ToolBlock/index.d.ts +3 -0
  194. package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -0
  195. package/dist/types/src/components/Toolbox/Toolbox.d.ts +6 -11
  196. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  197. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +266 -5
  198. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  199. package/dist/types/src/components/index.d.ts +4 -5
  200. package/dist/types/src/components/index.d.ts.map +1 -1
  201. package/dist/types/src/events.d.ts +1 -1
  202. package/dist/types/src/events.d.ts.map +1 -1
  203. package/dist/types/src/functions/analysis.d.ts +5 -0
  204. package/dist/types/src/functions/analysis.d.ts.map +1 -0
  205. package/dist/types/src/functions/index.d.ts +4 -0
  206. package/dist/types/src/functions/index.d.ts.map +1 -0
  207. package/dist/types/src/functions/object-list.d.ts +10 -0
  208. package/dist/types/src/functions/object-list.d.ts.map +1 -0
  209. package/dist/types/src/functions/object-load.d.ts +8 -0
  210. package/dist/types/src/functions/object-load.d.ts.map +1 -0
  211. package/dist/types/src/hooks/index.d.ts +7 -3
  212. package/dist/types/src/hooks/index.d.ts.map +1 -1
  213. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +25 -0
  214. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -0
  215. package/dist/types/src/hooks/useChatProcessor.d.ts +8 -21
  216. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  217. package/dist/types/src/hooks/useChatServices.d.ts +5 -6
  218. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  219. package/dist/types/src/hooks/useContextBinder.d.ts +4 -0
  220. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -0
  221. package/dist/types/src/hooks/useContextObjects.d.ts +15 -0
  222. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -0
  223. package/dist/types/src/hooks/useFlush.d.ts +6 -0
  224. package/dist/types/src/hooks/useFlush.d.ts.map +1 -0
  225. package/dist/types/src/hooks/useItemTypes.d.ts +4 -0
  226. package/dist/types/src/hooks/useItemTypes.d.ts.map +1 -0
  227. package/dist/types/src/hooks/useOnline.d.ts +3 -0
  228. package/dist/types/src/hooks/useOnline.d.ts.map +1 -0
  229. package/dist/types/src/hooks/usePresets.d.ts +7 -0
  230. package/dist/types/src/hooks/usePresets.d.ts.map +1 -0
  231. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  232. package/dist/types/src/index.d.ts +2 -0
  233. package/dist/types/src/index.d.ts.map +1 -1
  234. package/dist/types/src/meta.d.ts +1 -2
  235. package/dist/types/src/meta.d.ts.map +1 -1
  236. package/dist/types/src/processor/index.d.ts +4 -0
  237. package/dist/types/src/processor/index.d.ts.map +1 -0
  238. package/dist/types/src/{hooks → processor}/presets.d.ts +3 -3
  239. package/dist/types/src/processor/presets.d.ts.map +1 -0
  240. package/dist/types/src/processor/processor.d.ts +74 -0
  241. package/dist/types/src/processor/processor.d.ts.map +1 -0
  242. package/dist/types/src/processor/processor.test.d.ts +2 -0
  243. package/dist/types/src/processor/processor.test.d.ts.map +1 -0
  244. package/dist/types/src/processor/update-name.d.ts +10 -0
  245. package/dist/types/src/processor/update-name.d.ts.map +1 -0
  246. package/dist/types/src/testing/index.d.ts +1 -1
  247. package/dist/types/src/testing/index.d.ts.map +1 -1
  248. package/dist/types/src/testing/test-generator.d.ts +7 -0
  249. package/dist/types/src/testing/test-generator.d.ts.map +1 -0
  250. package/dist/types/src/testing/test-sequence.d.ts +0 -4
  251. package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
  252. package/dist/types/src/testing/test-services.d.ts +2 -2
  253. package/dist/types/src/testing/test-services.d.ts.map +1 -1
  254. package/dist/types/src/toolkits/AssistantToolkit.d.ts +21 -0
  255. package/dist/types/src/toolkits/AssistantToolkit.d.ts.map +1 -0
  256. package/dist/types/src/toolkits/SystemToolkit.d.ts +69 -0
  257. package/dist/types/src/toolkits/SystemToolkit.d.ts.map +1 -0
  258. package/dist/types/src/toolkits/index.d.ts +3 -0
  259. package/dist/types/src/toolkits/index.d.ts.map +1 -0
  260. package/dist/types/src/translations.d.ts +29 -12
  261. package/dist/types/src/translations.d.ts.map +1 -1
  262. package/dist/types/src/types/Assistant.d.ts +48 -0
  263. package/dist/types/src/types/Assistant.d.ts.map +1 -0
  264. package/dist/types/src/types/AssistantAction.d.ts +119 -0
  265. package/dist/types/src/types/AssistantAction.d.ts.map +1 -0
  266. package/dist/types/src/types/defs.d.ts +2 -0
  267. package/dist/types/src/types/defs.d.ts.map +1 -0
  268. package/dist/types/src/types/index.d.ts +3 -1
  269. package/dist/types/src/types/index.d.ts.map +1 -1
  270. package/dist/types/src/types/service.d.ts +21 -18
  271. package/dist/types/src/types/service.d.ts.map +1 -1
  272. package/dist/types/tsconfig.tsbuildinfo +1 -1
  273. package/package.json +97 -96
  274. package/src/AssistantPlugin.tsx +154 -107
  275. package/src/capabilities/ai-service.ts +27 -0
  276. package/src/capabilities/app-graph-builder.ts +76 -51
  277. package/src/capabilities/blueprint-definition.ts +66 -0
  278. package/src/capabilities/capabilities.ts +18 -0
  279. package/src/capabilities/edge-model-resolver.ts +25 -0
  280. package/src/capabilities/index.ts +9 -0
  281. package/src/capabilities/intent-resolver.ts +72 -23
  282. package/src/capabilities/local-model-resolver.ts +30 -0
  283. package/src/capabilities/react-surface.tsx +10 -77
  284. package/src/capabilities/state.ts +20 -0
  285. package/src/capabilities/toolkit.ts +19 -0
  286. package/src/components/AssistantSettings/AssistantSettings.tsx +83 -76
  287. package/src/components/BlueprintContainer.tsx +8 -2
  288. package/src/components/Chat/Chat.tsx +189 -181
  289. package/src/components/Chat/events.ts +7 -0
  290. package/src/components/ChatCompanion.tsx +136 -0
  291. package/src/components/ChatContainer.tsx +19 -13
  292. package/src/components/ChatDialog.tsx +18 -14
  293. package/src/components/ChatProgress/ChatProgress.tsx +67 -0
  294. package/src/components/{SequenceEditor → ChatProgress}/index.ts +1 -1
  295. package/src/components/ChatPrompt/ChatActions.tsx +10 -24
  296. package/src/components/ChatPrompt/ChatOptions.tsx +225 -0
  297. package/src/components/ChatPrompt/ChatPresets.tsx +1 -0
  298. package/src/components/ChatPrompt/ChatReferences.tsx +31 -36
  299. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +25 -22
  300. package/src/components/ChatPrompt/index.ts +1 -1
  301. package/src/components/ChatThread/ChatThread.stories.tsx +98 -112
  302. package/src/components/ChatThread/ChatThread.tsx +69 -29
  303. package/src/components/ChatThread/Link.tsx +26 -0
  304. package/src/components/ChatThread/reducers.ts +151 -0
  305. package/src/components/ChatThread/registry.tsx +184 -0
  306. package/src/components/ChatThread/sync.test.ts +81 -0
  307. package/src/components/ChatThread/sync.ts +113 -0
  308. package/src/components/ChatToolbar/ChatToolbar.tsx +23 -0
  309. package/src/components/ChatToolbar/index.ts +5 -0
  310. package/src/components/ChatToolbar/useChatToolbarActions.ts +126 -0
  311. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +28 -15
  312. package/src/components/TemplateEditor/TemplateEditor.tsx +29 -54
  313. package/src/components/TemplateEditor/TemplateForm.stories.tsx +15 -10
  314. package/src/components/TemplateEditor/TemplateForm.tsx +4 -2
  315. package/src/components/TemplateEditor/handlebars-extension.ts +166 -0
  316. package/src/components/ToolBlock/ToolBlock.tsx +152 -0
  317. package/src/components/ToolBlock/ToolBlockWidget.tsx +5 -0
  318. package/src/components/ToolBlock/index.ts +6 -0
  319. package/src/components/Toolbox/Toolbox.stories.tsx +14 -23
  320. package/src/components/Toolbox/Toolbox.tsx +23 -53
  321. package/src/components/index.ts +3 -6
  322. package/src/events.ts +2 -2
  323. package/src/functions/analysis.ts +22 -0
  324. package/src/functions/index.ts +7 -0
  325. package/src/functions/object-list.ts +48 -0
  326. package/src/functions/object-load.ts +45 -0
  327. package/src/hooks/index.ts +7 -4
  328. package/src/hooks/useBlueprintRegistry.ts +94 -0
  329. package/src/hooks/useChatProcessor.ts +30 -99
  330. package/src/hooks/useChatServices.ts +30 -49
  331. package/src/hooks/useContextBinder.ts +30 -0
  332. package/src/hooks/useContextObjects.ts +58 -0
  333. package/src/hooks/useFlush.ts +35 -0
  334. package/src/hooks/useItemTypes.ts +37 -0
  335. package/src/hooks/useOnline.ts +10 -0
  336. package/src/hooks/usePresets.ts +44 -0
  337. package/src/hooks/useReferencesProvider.ts +11 -9
  338. package/src/index.ts +2 -0
  339. package/src/meta.ts +9 -6
  340. package/src/processor/index.ts +7 -0
  341. package/src/{hooks → processor}/presets.ts +15 -7
  342. package/src/processor/processor.test.ts +81 -0
  343. package/src/processor/processor.ts +277 -0
  344. package/src/processor/update-name.ts +57 -0
  345. package/src/queue-logger.ts +10 -10
  346. package/src/testing/index.ts +1 -1
  347. package/src/testing/test-generator.ts +261 -0
  348. package/src/testing/test-sequence.ts +2 -27
  349. package/src/testing/test-services.ts +2 -8
  350. package/src/toolkits/AssistantToolkit.ts +55 -0
  351. package/src/toolkits/SystemToolkit.ts +292 -0
  352. package/src/toolkits/index.ts +6 -0
  353. package/src/translations.ts +32 -12
  354. package/src/types/Assistant.ts +63 -0
  355. package/src/types/AssistantAction.ts +70 -0
  356. package/src/types/defs.ts +5 -0
  357. package/src/types/index.ts +4 -1
  358. package/src/types/service.ts +17 -9
  359. package/src/vite-env.d.ts +30 -0
  360. package/dist/lib/browser/BlueprintContainer-IZ4AK5EO.mjs.map +0 -7
  361. package/dist/lib/browser/ChatContainer-RP3QEXYX.mjs.map +0 -7
  362. package/dist/lib/browser/ChatDialog-ZVLXFHEY.mjs.map +0 -7
  363. package/dist/lib/browser/SequenceContainer-3UDVKWPA.mjs +0 -162
  364. package/dist/lib/browser/SequenceContainer-3UDVKWPA.mjs.map +0 -7
  365. package/dist/lib/browser/app-graph-builder-XSEOKJLG.mjs.map +0 -7
  366. package/dist/lib/browser/chunk-63GG6U6D.mjs +0 -2226
  367. package/dist/lib/browser/chunk-63GG6U6D.mjs.map +0 -7
  368. package/dist/lib/browser/chunk-7W7LHTRH.mjs +0 -171
  369. package/dist/lib/browser/chunk-7W7LHTRH.mjs.map +0 -7
  370. package/dist/lib/browser/chunk-FDCJSQYF.mjs +0 -40
  371. package/dist/lib/browser/chunk-FDCJSQYF.mjs.map +0 -7
  372. package/dist/lib/browser/chunk-KFXSBNZR.mjs +0 -89
  373. package/dist/lib/browser/chunk-KFXSBNZR.mjs.map +0 -7
  374. package/dist/lib/browser/chunk-LERGF5YG.mjs +0 -108
  375. package/dist/lib/browser/chunk-LERGF5YG.mjs.map +0 -7
  376. package/dist/lib/browser/intent-resolver-MV3VSZLS.mjs +0 -75
  377. package/dist/lib/browser/intent-resolver-MV3VSZLS.mjs.map +0 -7
  378. package/dist/lib/browser/react-surface-3GYEHQRP.mjs +0 -150
  379. package/dist/lib/browser/react-surface-3GYEHQRP.mjs.map +0 -7
  380. package/dist/lib/node-esm/BlueprintContainer-RGTMNLNX.mjs.map +0 -7
  381. package/dist/lib/node-esm/ChatContainer-W3W6FWV3.mjs.map +0 -7
  382. package/dist/lib/node-esm/ChatDialog-QW4JRKVO.mjs.map +0 -7
  383. package/dist/lib/node-esm/SequenceContainer-RQQH5XOC.mjs +0 -163
  384. package/dist/lib/node-esm/SequenceContainer-RQQH5XOC.mjs.map +0 -7
  385. package/dist/lib/node-esm/app-graph-builder-PANCJUHV.mjs.map +0 -7
  386. package/dist/lib/node-esm/chunk-BFO3KHYL.mjs +0 -2227
  387. package/dist/lib/node-esm/chunk-BFO3KHYL.mjs.map +0 -7
  388. package/dist/lib/node-esm/chunk-MS3PJARN.mjs +0 -109
  389. package/dist/lib/node-esm/chunk-MS3PJARN.mjs.map +0 -7
  390. package/dist/lib/node-esm/chunk-QN2H2EHV.mjs +0 -41
  391. package/dist/lib/node-esm/chunk-QN2H2EHV.mjs.map +0 -7
  392. package/dist/lib/node-esm/chunk-VIIMA3XQ.mjs +0 -90
  393. package/dist/lib/node-esm/chunk-VIIMA3XQ.mjs.map +0 -7
  394. package/dist/lib/node-esm/chunk-Z7PUODRT.mjs +0 -172
  395. package/dist/lib/node-esm/chunk-Z7PUODRT.mjs.map +0 -7
  396. package/dist/lib/node-esm/intent-resolver-3FMC3GHC.mjs +0 -76
  397. package/dist/lib/node-esm/intent-resolver-3FMC3GHC.mjs.map +0 -7
  398. package/dist/lib/node-esm/react-surface-QDQWJ7FZ.mjs +0 -151
  399. package/dist/lib/node-esm/react-surface-QDQWJ7FZ.mjs.map +0 -7
  400. package/dist/types/src/capability-definitions.d.ts +0 -7
  401. package/dist/types/src/capability-definitions.d.ts.map +0 -1
  402. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts +0 -9
  403. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts.map +0 -1
  404. package/dist/types/src/components/ChatThread/ChatMessage.d.ts +0 -17
  405. package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +0 -1
  406. package/dist/types/src/components/ChatThread/ToolBlock.d.ts +0 -19
  407. package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +0 -1
  408. package/dist/types/src/components/ChatThread/reducer.d.ts +0 -12
  409. package/dist/types/src/components/ChatThread/reducer.d.ts.map +0 -1
  410. package/dist/types/src/components/PromptSettings.d.ts +0 -6
  411. package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
  412. package/dist/types/src/components/SequenceContainer.d.ts +0 -8
  413. package/dist/types/src/components/SequenceContainer.d.ts.map +0 -1
  414. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +0 -13
  415. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +0 -1
  416. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +0 -8
  417. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +0 -1
  418. package/dist/types/src/components/SequenceEditor/index.d.ts +0 -2
  419. package/dist/types/src/components/SequenceEditor/index.d.ts.map +0 -1
  420. package/dist/types/src/hooks/chat-processor.d.ts +0 -86
  421. package/dist/types/src/hooks/chat-processor.d.ts.map +0 -1
  422. package/dist/types/src/hooks/chat-processor.test.d.ts +0 -2
  423. package/dist/types/src/hooks/chat-processor.test.d.ts.map +0 -1
  424. package/dist/types/src/hooks/presets.d.ts.map +0 -1
  425. package/dist/types/src/hooks/useBlueprints.d.ts +0 -9
  426. package/dist/types/src/hooks/useBlueprints.d.ts.map +0 -1
  427. package/dist/types/src/parser/filter-generator.d.ts +0 -4
  428. package/dist/types/src/parser/filter-generator.d.ts.map +0 -1
  429. package/dist/types/src/parser/filter-generator.test.d.ts +0 -2
  430. package/dist/types/src/parser/filter-generator.test.d.ts.map +0 -1
  431. package/dist/types/src/parser/index.d.ts +0 -4
  432. package/dist/types/src/parser/index.d.ts.map +0 -1
  433. package/dist/types/src/parser/query-parser.d.ts +0 -15
  434. package/dist/types/src/parser/query-parser.d.ts.map +0 -1
  435. package/dist/types/src/parser/query-parser.test.d.ts +0 -2
  436. package/dist/types/src/parser/query-parser.test.d.ts.map +0 -1
  437. package/dist/types/src/parser/types.d.ts +0 -24
  438. package/dist/types/src/parser/types.d.ts.map +0 -1
  439. package/dist/types/src/stories/Chat.stories.d.ts +0 -207
  440. package/dist/types/src/stories/Chat.stories.d.ts.map +0 -1
  441. package/dist/types/src/testing/test-functions.d.ts +0 -3
  442. package/dist/types/src/testing/test-functions.d.ts.map +0 -1
  443. package/dist/types/src/tools/function.d.ts +0 -5
  444. package/dist/types/src/tools/function.d.ts.map +0 -1
  445. package/dist/types/src/tools/index.d.ts +0 -3
  446. package/dist/types/src/tools/index.d.ts.map +0 -1
  447. package/dist/types/src/tools/openapi.d.ts +0 -10
  448. package/dist/types/src/tools/openapi.d.ts.map +0 -1
  449. package/dist/types/src/tools/openapi.test.d.ts +0 -2
  450. package/dist/types/src/tools/openapi.test.d.ts.map +0 -1
  451. package/dist/types/src/types/schema.d.ts +0 -120
  452. package/dist/types/src/types/schema.d.ts.map +0 -1
  453. package/src/capability-definitions.ts +0 -15
  454. package/src/components/ChatPrompt/ChatOptionsMenu.tsx +0 -52
  455. package/src/components/ChatThread/ChatMessage.tsx +0 -268
  456. package/src/components/ChatThread/ToolBlock.tsx +0 -121
  457. package/src/components/ChatThread/reducer.ts +0 -52
  458. package/src/components/PromptSettings.tsx +0 -89
  459. package/src/components/SequenceContainer.tsx +0 -132
  460. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +0 -32
  461. package/src/components/SequenceEditor/SequenceEditor.tsx +0 -50
  462. package/src/hooks/chat-processor.test.ts +0 -16
  463. package/src/hooks/chat-processor.ts +0 -314
  464. package/src/hooks/useBlueprints.ts +0 -57
  465. package/src/parser/filter-generator.test.ts +0 -32
  466. package/src/parser/filter-generator.ts +0 -81
  467. package/src/parser/index.ts +0 -7
  468. package/src/parser/query-parser.test.ts +0 -139
  469. package/src/parser/query-parser.ts +0 -199
  470. package/src/parser/types.ts +0 -34
  471. package/src/shims.d.ts +0 -8
  472. package/src/stories/Chat.stories.tsx +0 -371
  473. package/src/testing/test-functions.ts +0 -11
  474. package/src/tools/function.ts +0 -46
  475. package/src/tools/index.ts +0 -6
  476. package/src/tools/openapi.test.ts +0 -217
  477. package/src/tools/openapi.ts +0 -338
  478. package/src/types/schema.ts +0 -108
  479. package/src/typings.d.ts +0 -9
@@ -9,6 +9,7 @@ import { type Resource } from '@dxos/react-ui';
9
9
  import { meta } from './meta';
10
10
  import { Assistant } from './types';
11
11
 
12
+ // TODO(burdon): Standardize translation names.
12
13
  export const translations = [
13
14
  {
14
15
  'en-US': {
@@ -33,19 +34,18 @@ export const translations = [
33
34
  'delete object label': 'Delete sequence',
34
35
  },
35
36
  [Assistant.Chat.typename]: {
36
- 'typename label': 'Assistant',
37
- 'typename label_zero': 'Assistants',
38
- 'typename label_one': 'Assistant',
39
- 'typename label_other': 'Assistants',
40
- 'object name placeholder': 'New assistant',
41
- 'rename object label': 'Rename assistant',
42
- 'delete object label': 'Delete assistant',
37
+ 'typename label': 'AI Chat',
38
+ 'object name placeholder': 'New AI Chat',
39
+ 'rename object label': 'Rename AI Chat',
40
+ 'delete object label': 'Delete AI Chat',
43
41
  },
42
+ // TODO(burdon): Reconcile with react-ui-chat.
44
43
  [meta.id]: {
45
44
  'templates label': 'Templates',
46
45
  'open ambient chat label': 'Open Assistant',
47
46
  'assistant chat label': 'Assistant',
48
47
  'plugin name': 'Assistant',
48
+ 'settings title': 'Assistant settings',
49
49
  'object placeholder': 'New prompt',
50
50
  'create object label': 'Create prompt',
51
51
  'create trigger label': 'Create trigger',
@@ -58,24 +58,44 @@ export const translations = [
58
58
  'description placeholder': 'Enter description of when this template should be used',
59
59
  'select preset template placeholder': 'Select preset',
60
60
  'service registry label': 'Service Registry',
61
+ 'type filter placeholder': 'Type',
62
+ 'any type filter label': 'Any',
63
+ 'no blueprint message': 'No active blueprints',
64
+ 'calling tool label': 'Calling tool...',
65
+ 'calling label': 'Calling',
66
+ 'error label': 'Error',
61
67
 
62
68
  'sequence logs label': 'Logs',
63
69
 
64
70
  'assistant dialog title': 'Assistant',
65
71
  'open assistant label': 'Open assistant',
66
72
 
67
- 'no tools': 'No tools are configured.',
73
+ 'no tools': 'No tools are configured',
74
+ 'no results': 'No results',
68
75
 
76
+ 'button retry': 'Retry',
77
+ 'button suggestion': 'Assistant suggestion',
78
+ 'button select option': 'Select option',
79
+ 'button cancel': 'Cancel',
69
80
  'button save': 'Save',
70
81
  'button run': 'Run',
82
+ 'button new thread': 'New Chat',
83
+ 'chat history label': 'Chat History',
84
+ 'chat update name label': 'Update AI Chat name',
85
+
86
+ 'toolkit label': 'Toolkit',
87
+ 'summary label': 'Summary',
71
88
 
72
89
  'search placeholder': 'Search...',
73
- 'prompt placeholder': 'Ask or search for anything...',
74
- 'context objects placeholder': 'Add to context...',
75
- 'button add blueprint': 'Configure blueprints',
90
+ 'prompt placeholder': 'Enter question or command...',
91
+ 'button context objects': 'Add to context',
92
+ 'button context settings': 'Chat settings',
76
93
  'button microphone': 'Click to speak',
77
94
  'button cancel processing': 'Stop processing',
78
- 'button scroll down': 'Scroll down',
95
+ 'blueprints in context title': 'Blueprints',
96
+ 'objects in context title': 'Content',
97
+ 'remove object in context label': 'Remove document',
98
+ 'chat model title': 'Model',
79
99
 
80
100
  'settings default label': 'Default',
81
101
  'settings custom prompts label': 'Use custom prompts',
@@ -0,0 +1,63 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { Obj, Ref, Type } from '@dxos/echo';
8
+ import { FormAnnotation, LabelAnnotation } from '@dxos/echo/internal';
9
+ import { Queue } from '@dxos/echo-db';
10
+
11
+ import { LLM_PROVIDERS } from './defs';
12
+
13
+ /**
14
+ * AI chat.
15
+ */
16
+ export const Chat = Schema.Struct({
17
+ name: Schema.String.pipe(Schema.optional),
18
+ queue: Type.Ref(Queue).pipe(FormAnnotation.set(false)),
19
+ // TODO(dmaretskyi): Eventually this and the message queue will be the same.
20
+ traceQueue: Type.Ref(Queue).pipe(FormAnnotation.set(false), Schema.optional),
21
+ }).pipe(
22
+ Type.Obj({
23
+ typename: 'dxos.org/type/assistant/Chat',
24
+ version: '0.2.0',
25
+ }),
26
+ LabelAnnotation.set(['name']),
27
+ );
28
+
29
+ export interface Chat extends Schema.Schema.Type<typeof Chat> {}
30
+
31
+ export const makeChat = ({ name, queue }: { name?: string; queue: Queue }) =>
32
+ Obj.make(Chat, { name, queue: Ref.fromDXN(queue.dxn) });
33
+
34
+ /**
35
+ * Relation between a Chat and companion objects (e.g., artifacts).
36
+ */
37
+ export const CompanionTo = Schema.Struct({
38
+ id: Type.ObjectId,
39
+ }).pipe(
40
+ Type.Relation({
41
+ typename: 'dxos.org/relation/assistant/CompanionTo',
42
+ version: '0.1.0',
43
+ source: Chat,
44
+ target: Type.Expando,
45
+ }),
46
+ );
47
+
48
+ export interface CompanionTo extends Schema.Schema.Type<typeof CompanionTo> {}
49
+
50
+ /**
51
+ * Plugin settings.
52
+ */
53
+ export const Settings = Schema.mutable(
54
+ Schema.Struct({
55
+ llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),
56
+ edgeModel: Schema.optional(Schema.String),
57
+ ollamaModel: Schema.optional(Schema.String),
58
+ lmstudioModel: Schema.optional(Schema.String),
59
+ customPrompts: Schema.optional(Schema.Boolean),
60
+ }),
61
+ );
62
+
63
+ export type Settings = Schema.Schema.Type<typeof Settings>;
@@ -0,0 +1,70 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import * as Schema from 'effect/Schema';
6
+
7
+ import { Blueprint } from '@dxos/blueprints';
8
+ import { EchoObjectSchema, SpaceSchema } from '@dxos/client/echo';
9
+ import { Sequence } from '@dxos/conductor';
10
+ import { DataType } from '@dxos/schema';
11
+
12
+ import { meta } from '../meta';
13
+
14
+ import { Chat } from './Assistant';
15
+
16
+ // TODO(burdon): Name?
17
+ export class onCreateSpace extends Schema.TaggedClass<onCreateSpace>()(`${meta.id}/on-space-created`, {
18
+ input: Schema.Struct({
19
+ space: SpaceSchema,
20
+ rootCollection: DataType.Collection,
21
+ }),
22
+ output: Schema.Void,
23
+ }) {}
24
+
25
+ export class CreateChat extends Schema.TaggedClass<CreateChat>()(`${meta.id}/action/create-chat`, {
26
+ input: Schema.Struct({
27
+ space: SpaceSchema,
28
+ name: Schema.optional(Schema.String),
29
+ }),
30
+ output: Schema.Struct({
31
+ object: Chat,
32
+ }),
33
+ }) {}
34
+
35
+ export class UpdateChatName extends Schema.TaggedClass<UpdateChatName>()(`${meta.id}/action/update-name`, {
36
+ input: Schema.Struct({
37
+ chat: Chat,
38
+ }),
39
+ output: Schema.Void,
40
+ }) {}
41
+
42
+ export const BlueprintForm = Schema.Struct({
43
+ key: Schema.String,
44
+ name: Schema.String,
45
+ description: Schema.optional(Schema.String),
46
+ });
47
+
48
+ export class CreateBlueprint extends Schema.TaggedClass<CreateBlueprint>()(`${meta.id}/action/create-blueprint`, {
49
+ input: BlueprintForm,
50
+ output: Schema.Struct({
51
+ object: Blueprint.Blueprint,
52
+ }),
53
+ }) {}
54
+
55
+ export class CreateSequence extends Schema.TaggedClass<CreateSequence>()(`${meta.id}/action/create-sequence`, {
56
+ input: Schema.Struct({
57
+ name: Schema.optional(Schema.String),
58
+ }),
59
+ output: Schema.Struct({
60
+ object: Sequence,
61
+ }),
62
+ }) {}
63
+
64
+ export class SetCurrentChat extends Schema.TaggedClass<SetCurrentChat>()(`${meta.id}/action/set-current-chat`, {
65
+ input: Schema.Struct({
66
+ companionTo: EchoObjectSchema,
67
+ chat: Chat,
68
+ }),
69
+ output: Schema.Void,
70
+ }) {}
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export const LLM_PROVIDERS = ['edge', 'ollama', 'lmstudio'] as const;
@@ -2,5 +2,8 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- export * from './schema';
5
+ export * as Assistant from './Assistant';
6
+ export * as AssistantAction from './AssistantAction';
7
+
8
+ export * from './defs';
6
9
  export * from './service';
@@ -2,12 +2,14 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { Schema } from 'effect';
5
+ import * as Schema from 'effect/Schema';
6
6
 
7
7
  import { ComputeGraph } from '@dxos/conductor';
8
8
  import { Type } from '@dxos/echo';
9
- import { TypedObject } from '@dxos/echo-schema';
10
- import { FunctionType } from '@dxos/functions';
9
+ import { TypedObject } from '@dxos/echo/internal';
10
+ import { Function } from '@dxos/functions';
11
+
12
+ // TODO(burdon): Factor out and reconcile with https://github.com/dxos/dxos/blob/main/packages/plugins/plugin-token-manager/src/defs/presets.ts#L7
11
13
 
12
14
  const ApiAuthorizationKey = Schema.Struct({
13
15
  type: Schema.Literal('api-key'),
@@ -36,7 +38,7 @@ export type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;
36
38
 
37
39
  const ServiceInterfaceFunction = Schema.Struct({
38
40
  kind: Schema.Literal('function'),
39
- fn: Type.Ref(FunctionType),
41
+ fn: Type.Ref(Function.Function),
40
42
  });
41
43
 
42
44
  const ServiceInterfaceWorkflow = Schema.Struct({
@@ -63,7 +65,13 @@ const ServiceInterfaceApi = Schema.Struct({
63
65
  authorization: Schema.optional(ApiAuthorization),
64
66
  });
65
67
 
66
- const ServiceInterface = Schema.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
68
+ const ServiceInterface = Schema.Union(
69
+ // Service types.
70
+ ServiceInterfaceFunction,
71
+ ServiceInterfaceWorkflow,
72
+ ServiceInterfaceApi,
73
+ );
74
+
67
75
  export type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;
68
76
 
69
77
  export class ServiceType extends TypedObject({
@@ -86,15 +94,15 @@ export class ServiceType extends TypedObject({
86
94
  // Service Registry
87
95
  //
88
96
 
97
+ export interface BaseServiceRegistry {
98
+ queryServices(query?: ServiceQuery): Promise<ServiceType[]>;
99
+ }
100
+
89
101
  export type ServiceQuery = {
90
102
  name?: string;
91
103
  category?: string;
92
104
  };
93
105
 
94
- export interface BaseServiceRegistry {
95
- queryServices(query?: ServiceQuery): Promise<ServiceType[]>;
96
- }
97
-
98
106
  export const categoryIcons: Record<string, string> = {
99
107
  finance: 'ph--bank--regular',
100
108
  health: 'ph--heart--regular',
@@ -0,0 +1,30 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ /// <reference types="vite/client" />
6
+
7
+ interface ViteTypeOptions {
8
+ // By adding this line, you can make the type of ImportMetaEnv strict
9
+ // to disallow unknown keys.
10
+ // strictImportMetaEnv: unknown
11
+ }
12
+
13
+ interface ImportMetaEnv {
14
+ readonly VITE_LINEAR_API_KEY: string | undefined;
15
+ // more env variables...
16
+ }
17
+
18
+ interface ImportMeta {
19
+ readonly env: ImportMetaEnv;
20
+ }
21
+
22
+ declare module '*.wav' {
23
+ const src: string;
24
+ export default src;
25
+ }
26
+
27
+ declare module '*?raw' {
28
+ const content: string;
29
+ export default content;
30
+ }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/BlueprintContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Blueprint } from '@dxos/blueprints';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { TemplateEditor } from './TemplateEditor';\n\nexport type BlueprintContainerProps = {\n blueprint: Blueprint.Blueprint;\n};\n\nexport const BlueprintContainer = ({ blueprint }: BlueprintContainerProps) => {\n return (\n <StackItem.Content classNames='container-max-width'>\n <TemplateEditor id={blueprint.id} template={blueprint.instructions} />\n </StackItem.Content>\n );\n};\n\nexport default BlueprintContainer;\n"],
5
- "mappings": ";;;;;;;AAIA,OAAOA,WAAW;AAGlB,SAASC,iBAAiB;AAQnB,IAAMC,qBAAqB,CAAC,EAAEC,UAAS,MAA2B;;;AACvE,WACE,sBAAA,cAACC,UAAUC,SAAO;MAACC,YAAW;OAC5B,sBAAA,cAACC,gBAAAA;MAAeC,IAAIL,UAAUK;MAAIC,UAAUN,UAAUO;;;;;AAG5D;AAEA,IAAA,6BAAeR;",
6
- "names": ["React", "StackItem", "BlueprintContainer", "blueprint", "StackItem", "Content", "classNames", "TemplateEditor", "id", "template", "instructions"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChatContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, useCapability } from '@dxos/app-framework';\nimport { type AssociatedArtifact } from '@dxos/blueprints';\nimport { getSpace } from '@dxos/client/echo';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { Chat } from './Chat';\nimport { useChatProcessor, useChatServices } from '../hooks';\nimport { meta } from '../meta';\nimport { type Assistant } from '../types';\n\nexport type ChatContainerProps = {\n role: string;\n chat: Assistant.Chat;\n artifact?: AssociatedArtifact;\n};\n\nexport const ChatContainer = ({ role, chat, artifact }: ChatContainerProps) => {\n const space = getSpace(chat);\n const settings = useCapability(Capabilities.SettingsStore).getStore<Assistant.Settings>(meta.id)?.value;\n const services = useChatServices({ space });\n const processor = useChatProcessor({ chat, services, settings });\n if (!processor) {\n return null;\n }\n\n // TODO(burdon): Add attention attributes.\n return (\n <StackItem.Content classNames='container-max-width'>\n <Chat.Root chat={chat} processor={processor} artifact={artifact}>\n <Chat.Thread />\n <div className='pbe-4 pis-2 pie-2'>\n <Chat.Prompt classNames='border border-subduedSeparator rounded-md' />\n </div>\n </Chat.Root>\n </StackItem.Content>\n );\n};\n\nexport default ChatContainer;\n"],
5
- "mappings": ";;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,qBAAqB;AAE5C,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAanB,IAAMC,gBAAgB,CAAC,EAAEC,MAAMC,MAAMC,SAAQ,MAAsB;;;AACxE,UAAMC,QAAQC,SAASH,IAAAA;AACvB,UAAMI,WAAWC,cAAcC,aAAaC,aAAa,EAAEC,SAA6BC,KAAKC,EAAE,GAAGC;AAClG,UAAMC,WAAWC,gBAAgB;MAAEX;IAAM,CAAA;AACzC,UAAMY,YAAYC,iBAAiB;MAAEf;MAAMY;MAAUR;IAAS,CAAA;AAC9D,QAAI,CAACU,WAAW;AACd,aAAO;IACT;AAGA,WACE,sBAAA,cAACE,UAAUC,SAAO;MAACC,YAAW;OAC5B,sBAAA,cAACC,KAAKC,MAAI;MAACpB;MAAYc;MAAsBb;OAC3C,sBAAA,cAACkB,KAAKE,QAAM,IAAA,GACZ,sBAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACJ,KAAKK,QAAM;MAACN,YAAW;;;;;AAKlC;AAEA,IAAA,wBAAepB;",
6
- "names": ["React", "Capabilities", "useCapability", "getSpace", "StackItem", "ChatContainer", "role", "chat", "artifact", "space", "getSpace", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "meta", "id", "value", "services", "useChatServices", "processor", "useChatProcessor", "StackItem", "Content", "classNames", "Chat", "Root", "Thread", "div", "className", "Prompt"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChatDialog.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { useCapability, Capabilities } from '@dxos/app-framework';\nimport { getSpace } from '@dxos/client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { ChatDialog as NativeChatDialog } from '@dxos/react-ui-chat';\n\nimport { Chat, type ChatRootProps } from './Chat';\nimport { useChatProcessor, useChatServices } from '../hooks';\nimport { meta } from '../meta';\nimport { type Assistant } from '../types';\n\nexport type ChatDialogProps = {\n chat?: Assistant.Chat;\n};\n\nexport const ChatDialog = ({ chat }: ChatDialogProps) => {\n const { t } = useTranslation(meta.id);\n\n const space = getSpace(chat);\n const settings = useCapability(Capabilities.SettingsStore).getStore<Assistant.Settings>(meta.id)?.value;\n const services = useChatServices({ space });\n const processor = useChatProcessor({ chat, services, settings });\n\n // TODO(burdon): Refocus when open.\n const [open, setOpen] = useState(true);\n const [expanded, setExpanded] = useState(false);\n const handleEvent = useCallback<NonNullable<ChatRootProps['onEvent']>>((event) => {\n switch (event.type) {\n case 'submit':\n case 'thread-open':\n setOpen(true);\n setExpanded(true);\n break;\n case 'thread-close':\n setOpen(false);\n break;\n }\n }, []);\n\n if (!chat || !processor) {\n return null;\n }\n\n return (\n <Chat.Root chat={chat} processor={processor} onEvent={handleEvent}>\n <NativeChatDialog.Root open={open} expanded={expanded} onOpenChange={setOpen}>\n <NativeChatDialog.Header title={t('assistant dialog title')} />\n <NativeChatDialog.Content>\n <Chat.Thread />\n </NativeChatDialog.Content>\n <NativeChatDialog.Footer>\n <Chat.Prompt expandable />\n </NativeChatDialog.Footer>\n </NativeChatDialog.Root>\n </Chat.Root>\n );\n};\n\nexport default ChatDialog;\n"],
5
- "mappings": ";;;;;;;;;;;;;AAIA,OAAOA,SAASC,aAAaC,gBAAgB;AAE7C,SAASC,eAAeC,oBAAoB;AAC5C,SAASC,gBAAgB;AACzB,SAASC,sBAAsB;AAC/B,SAASC,cAAcC,wBAAwB;AAWxC,IAAMC,aAAa,CAAC,EAAEC,KAAI,MAAmB;;;AAClD,UAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,UAAMC,QAAQC,SAASN,IAAAA;AACvB,UAAMO,WAAWC,cAAcC,aAAaC,aAAa,EAAEC,SAA6BR,KAAKC,EAAE,GAAGQ;AAClG,UAAMC,WAAWC,gBAAgB;MAAET;IAAM,CAAA;AACzC,UAAMU,YAAYC,iBAAiB;MAAEhB;MAAMa;MAAUN;IAAS,CAAA;AAG9D,UAAM,CAACU,MAAMC,OAAAA,IAAWC,SAAS,IAAA;AACjC,UAAM,CAACC,UAAUC,WAAAA,IAAeF,SAAS,KAAA;AACzC,UAAMG,cAAcC,YAAmD,CAACC,UAAAA;AACtE,cAAQA,MAAMC,MAAI;QAChB,KAAK;QACL,KAAK;AACHP,kBAAQ,IAAA;AACRG,sBAAY,IAAA;AACZ;QACF,KAAK;AACHH,kBAAQ,KAAA;AACR;MACJ;IACF,GAAG,CAAA,CAAE;AAEL,QAAI,CAAClB,QAAQ,CAACe,WAAW;AACvB,aAAO;IACT;AAEA,WACE,sBAAA,cAACW,KAAKC,MAAI;MAAC3B;MAAYe;MAAsBa,SAASN;OACpD,sBAAA,cAACO,iBAAiBF,MAAI;MAACV;MAAYG;MAAoBU,cAAcZ;OACnE,sBAAA,cAACW,iBAAiBE,QAAM;MAACC,OAAO/B,EAAE,wBAAA;QAClC,sBAAA,cAAC4B,iBAAiBI,SAAO,MACvB,sBAAA,cAACP,KAAKQ,QAAM,IAAA,CAAA,GAEd,sBAAA,cAACL,iBAAiBM,QAAM,MACtB,sBAAA,cAACT,KAAKU,QAAM;MAACC,YAAAA;;;;;AAKvB;AAEA,IAAA,qBAAetC;",
6
- "names": ["React", "useCallback", "useState", "useCapability", "Capabilities", "getSpace", "useTranslation", "ChatDialog", "NativeChatDialog", "ChatDialog", "chat", "t", "useTranslation", "meta", "id", "space", "getSpace", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "value", "services", "useChatServices", "processor", "useChatProcessor", "open", "setOpen", "useState", "expanded", "setExpanded", "handleEvent", "useCallback", "event", "type", "Chat", "Root", "onEvent", "NativeChatDialog", "onOpenChange", "Header", "title", "Content", "Thread", "Footer", "Prompt", "expandable"]
7
- }
@@ -1,162 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-FDCJSQYF.mjs";
4
-
5
- // src/components/SequenceContainer.tsx
6
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
7
- import JSON5 from "json5";
8
- import React2, { useCallback, useEffect, useMemo, useRef, useState } from "react";
9
- import { ToolRegistry } from "@dxos/ai";
10
- import { getSpace } from "@dxos/client/echo";
11
- import { Key } from "@dxos/echo";
12
- import { Toolbar, useTranslation } from "@dxos/react-ui";
13
- import { useSelectionManager } from "@dxos/react-ui-attention";
14
- import { StackItem } from "@dxos/react-ui-stack";
15
-
16
- // src/components/SequenceEditor/SequenceEditor.tsx
17
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
18
- import React, { forwardRef, useImperativeHandle } from "react";
19
- import { SequenceDefinition } from "@dxos/conductor";
20
- import { Type } from "@dxos/echo";
21
- import { useThemeContext } from "@dxos/react-ui";
22
- import { createBasicExtensions, createJsonExtensions, createThemeExtensions, useTextEditor } from "@dxos/react-ui-editor";
23
- import { mx } from "@dxos/react-ui-theme";
24
- var SequenceEditor = /* @__PURE__ */ forwardRef(({ classNames, sequence }, forwardedRef) => {
25
- var _effect = _useSignals();
26
- try {
27
- const { themeMode } = useThemeContext();
28
- const { parentRef, view } = useTextEditor({
29
- initialValue: JSON.stringify(sequence, null, 2),
30
- extensions: [
31
- createBasicExtensions({
32
- lineNumbers: true,
33
- lineWrapping: false,
34
- monospace: true,
35
- scrollPastEnd: true
36
- }),
37
- createThemeExtensions({
38
- themeMode,
39
- syntaxHighlighting: true
40
- }),
41
- createJsonExtensions({
42
- schema: Type.toJsonSchema(SequenceDefinition, {
43
- strict: true
44
- })
45
- })
46
- ]
47
- });
48
- useImperativeHandle(forwardedRef, () => view, [
49
- view
50
- ]);
51
- return /* @__PURE__ */ React.createElement("div", {
52
- ref: parentRef,
53
- className: mx("overflow-hidden", classNames)
54
- });
55
- } finally {
56
- _effect.f();
57
- }
58
- });
59
-
60
- // src/components/SequenceContainer.tsx
61
- var EXA_API_KEY = "9c7e17ff-0c85-4cd5-827a-8b489f139e03";
62
- var parseSequence = (text) => {
63
- try {
64
- const json = JSON5.parse(text);
65
- const { steps } = json;
66
- return {
67
- steps
68
- };
69
- } catch (error) {
70
- }
71
- };
72
- var SequenceContainer = ({ sequence }) => {
73
- var _effect = _useSignals2();
74
- try {
75
- const { t } = useTranslation(meta.id);
76
- const selectionManager = useSelectionManager();
77
- const [definition, setDefinition] = useState();
78
- useEffect(() => {
79
- setDefinition({
80
- steps: sequence.steps.map(({ instructions, tools }) => ({
81
- instructions,
82
- tools
83
- }))
84
- });
85
- }, [
86
- sequence
87
- ]);
88
- const editorRef = useRef(void 0);
89
- const toolRegistry = useMemo(() => {
90
- const space = getSpace(sequence);
91
- if (!space) {
92
- return;
93
- }
94
- const _queue = space.queues.create();
95
- return new ToolRegistry([]);
96
- }, [
97
- sequence
98
- ]);
99
- const formatAndSave = useCallback(() => {
100
- if (!sequence) {
101
- return;
102
- }
103
- const text = editorRef.current?.state.doc.toString();
104
- if (!text) {
105
- return;
106
- }
107
- const definition2 = parseSequence(text);
108
- if (!definition2) {
109
- return;
110
- }
111
- setDefinition(definition2);
112
- const formatted = JSON.stringify(definition2, null, 2);
113
- editorRef.current?.dispatch({
114
- changes: {
115
- from: 0,
116
- to: text.length,
117
- insert: formatted
118
- }
119
- });
120
- sequence.steps.length = 0;
121
- for (const step of definition2.steps) {
122
- sequence.steps.push({
123
- id: Key.ObjectId.random(),
124
- instructions: step.instructions,
125
- tools: step.tools
126
- });
127
- }
128
- return sequence;
129
- }, [
130
- sequence
131
- ]);
132
- const handleSave = useCallback(() => formatAndSave(), [
133
- formatAndSave
134
- ]);
135
- const handleRun = useCallback(async () => {
136
- }, [
137
- sequence,
138
- formatAndSave,
139
- selectionManager,
140
- toolRegistry
141
- ]);
142
- return /* @__PURE__ */ React2.createElement(StackItem.Content, {
143
- toolbar: true
144
- }, /* @__PURE__ */ React2.createElement(Toolbar.Root, null, /* @__PURE__ */ React2.createElement(Toolbar.Button, {
145
- onClick: handleSave
146
- }, t("button save")), /* @__PURE__ */ React2.createElement(Toolbar.Button, {
147
- onClick: handleRun
148
- }, t("button run"))), definition && /* @__PURE__ */ React2.createElement(SequenceEditor, {
149
- ref: editorRef,
150
- sequence: definition
151
- }));
152
- } finally {
153
- _effect.f();
154
- }
155
- };
156
- var SequenceContainer_default = SequenceContainer;
157
- export {
158
- EXA_API_KEY,
159
- SequenceContainer,
160
- SequenceContainer_default as default
161
- };
162
- //# sourceMappingURL=SequenceContainer-3UDVKWPA.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/SequenceContainer.tsx", "../../../src/components/SequenceEditor/SequenceEditor.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type EditorView } from '@codemirror/view';\nimport JSON5 from 'json5';\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { ToolRegistry } from '@dxos/ai';\nimport { getSpace } from '@dxos/client/echo';\nimport { type Sequence, type SequenceDefinition } from '@dxos/conductor';\nimport { Key } from '@dxos/echo';\nimport { Toolbar, useTranslation } from '@dxos/react-ui';\nimport { useSelectionManager } from '@dxos/react-ui-attention';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { SequenceEditor } from './SequenceEditor';\nimport { meta } from '../meta';\n\n// TODO(burdon): Move to config.\nexport const EXA_API_KEY = '9c7e17ff-0c85-4cd5-827a-8b489f139e03';\n\n// TODO(burdon): Validate.\nconst parseSequence = (text: string): SequenceDefinition | undefined => {\n try {\n const json = JSON5.parse(text);\n const { steps } = json;\n return { steps };\n } catch (error) {\n // Ignore.\n }\n};\n\nexport const SequenceContainer = ({ sequence }: { sequence: Sequence }) => {\n const { t } = useTranslation(meta.id);\n const selectionManager = useSelectionManager();\n const [definition, setDefinition] = useState<SequenceDefinition>();\n useEffect(() => {\n setDefinition({\n steps: sequence.steps.map(({ instructions, tools }) => ({ instructions, tools })),\n });\n }, [sequence]);\n\n const editorRef = useRef<EditorView | undefined>(undefined);\n\n // TODO(burdon): Factor out.\n const toolRegistry = useMemo(() => {\n const space = getSpace(sequence);\n if (!space) {\n return;\n }\n\n // TODO(burdon): How should the queue be created?\n // eslint-disable-next-line no-unused-vars\n const _queue = space.queues.create();\n\n return new ToolRegistry([\n // createExaTool({ apiKey: EXA_API_KEY }),\n // createLocalSearchTool(space.db, queue),\n // createGraphWriterTool({\n // db: space.db,\n // queue,\n // schema: [], // TODO(burdon): Get schema from client/sequence?\n // onDone: async (objects) => {\n // await queue.append(objects);\n // },\n // }),\n ]);\n }, [sequence]);\n\n const formatAndSave = useCallback((): SequenceDefinition | undefined => {\n if (!sequence) {\n return;\n }\n\n const text = editorRef.current?.state.doc.toString();\n if (!text) {\n return;\n }\n\n const definition = parseSequence(text);\n if (!definition) {\n return;\n }\n\n setDefinition(definition);\n const formatted = JSON.stringify(definition, null, 2);\n editorRef.current?.dispatch({\n changes: { from: 0, to: text.length, insert: formatted },\n });\n\n sequence.steps.length = 0;\n for (const step of definition.steps) {\n sequence.steps.push({\n id: Key.ObjectId.random(),\n instructions: step.instructions,\n tools: step.tools,\n });\n }\n\n return sequence;\n }, [sequence]);\n\n // TODO(burdon): Save raw sequence separately from parsed sequence? (like Script).\n const handleSave = useCallback(() => formatAndSave(), [formatAndSave]);\n\n const handleRun = useCallback(async () => {\n // if (!aiClient?.value || !toolRegistry) {\n // return;\n // }\n // formatAndSave();\n // // Get input from selection.\n // const input = Array.from(getSelectionSet(selectionManager)).map((id) => DXN.fromLocalObjectId(id));\n // if (!input.length) {\n // return;\n // }\n // const machine = new SequenceMachine(toolRegistry, sequence).setLogger(new QueueLogger(sequence));\n // await machine.runToCompletion({ aiClient: aiClient.value, input });\n }, [sequence, formatAndSave, selectionManager, toolRegistry]);\n\n return (\n <StackItem.Content toolbar>\n <Toolbar.Root>\n <Toolbar.Button onClick={handleSave}>{t('button save')}</Toolbar.Button>\n <Toolbar.Button onClick={handleRun}>{t('button run')}</Toolbar.Button>\n </Toolbar.Root>\n {definition && <SequenceEditor ref={editorRef} sequence={definition} />}\n </StackItem.Content>\n );\n};\n\nexport default SequenceContainer;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { forwardRef, useImperativeHandle } from 'react';\n\nimport { SequenceDefinition } from '@dxos/conductor';\nimport { Type } from '@dxos/echo';\nimport { useThemeContext, type ThemedClassName } from '@dxos/react-ui';\nimport {\n type EditorView,\n createBasicExtensions,\n createJsonExtensions,\n createThemeExtensions,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport type SequenceEditorProps = ThemedClassName<{\n sequence: SequenceDefinition;\n}>;\n\n// TODO(burdon): Factor out JsonEditor.\nexport const SequenceEditor = forwardRef<EditorView | undefined, SequenceEditorProps>(\n ({ classNames, sequence }, forwardedRef) => {\n const { themeMode } = useThemeContext();\n const { parentRef, view } = useTextEditor({\n initialValue: JSON.stringify(sequence, null, 2),\n extensions: [\n createBasicExtensions({\n lineNumbers: true,\n lineWrapping: false,\n monospace: true,\n scrollPastEnd: true,\n }),\n createThemeExtensions({\n themeMode,\n syntaxHighlighting: true,\n }),\n createJsonExtensions({\n schema: Type.toJsonSchema(SequenceDefinition, { strict: true }),\n }),\n ],\n });\n\n useImperativeHandle(forwardedRef, () => view, [view]);\n\n return <div ref={parentRef} className={mx('overflow-hidden', classNames)} />;\n },\n);\n"],
5
- "mappings": "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",
6
- "names": ["JSON5", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "ToolRegistry", "getSpace", "Key", "Toolbar", "useTranslation", "useSelectionManager", "StackItem", "React", "forwardRef", "useImperativeHandle", "SequenceDefinition", "Type", "useThemeContext", "createBasicExtensions", "createJsonExtensions", "createThemeExtensions", "useTextEditor", "mx", "SequenceEditor", "forwardRef", "classNames", "sequence", "forwardedRef", "themeMode", "useThemeContext", "parentRef", "view", "useTextEditor", "initialValue", "JSON", "stringify", "extensions", "createBasicExtensions", "lineNumbers", "lineWrapping", "monospace", "scrollPastEnd", "createThemeExtensions", "syntaxHighlighting", "createJsonExtensions", "schema", "Type", "toJsonSchema", "SequenceDefinition", "strict", "useImperativeHandle", "div", "ref", "className", "mx", "EXA_API_KEY", "parseSequence", "text", "json", "JSON5", "parse", "steps", "error", "SequenceContainer", "sequence", "t", "useTranslation", "meta", "id", "selectionManager", "useSelectionManager", "definition", "setDefinition", "useState", "useEffect", "map", "instructions", "tools", "editorRef", "useRef", "undefined", "toolRegistry", "useMemo", "space", "getSpace", "_queue", "queues", "create", "ToolRegistry", "formatAndSave", "useCallback", "current", "state", "doc", "toString", "formatted", "JSON", "stringify", "dispatch", "changes", "from", "to", "length", "insert", "step", "push", "Key", "ObjectId", "random", "handleSave", "handleRun", "React", "StackItem", "Content", "toolbar", "Toolbar", "Root", "Button", "onClick", "SequenceEditor", "ref"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n type PromiseIntentDispatcher,\n type PluginContext,\n} from '@dxos/app-framework';\nimport { Sequence } from '@dxos/conductor';\nimport { Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport { createExtension, ROOT_ID } from '@dxos/plugin-graph';\nimport { getActiveSpace, rxFromQuery } from '@dxos/plugin-space';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { type Space, Filter, Query, type QueryResult, fullyQualifiedId, getSpace } from '@dxos/react-client/echo';\n\nimport { ASSISTANT_DIALOG, meta } from '../meta';\nimport { Assistant } from '../types';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/assistant`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: `${LayoutAction.UpdateDialog._tag}/assistant/open`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const space = getActiveSpace(context) ?? client.spaces.default;\n const chat = await getOrCreateChat(dispatch, space);\n if (!chat) {\n return;\n }\n\n await dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: ASSISTANT_DIALOG,\n options: {\n state: true,\n blockAlign: 'end',\n props: {\n chat,\n },\n },\n }),\n );\n },\n properties: {\n label: ['open assistant label', { ns: meta.id }],\n icon: 'ph--sparkle--regular',\n disposition: 'pin-end',\n position: 'hoist',\n keyBinding: {\n macos: 'shift+meta+k',\n windows: 'shift+ctrl+k',\n },\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n createExtension({\n id: `${meta.id}/object-chat-companion`,\n connector: (node) => {\n let query: QueryResult<Assistant.Chat> | undefined;\n return Rx.make((get) => {\n const nodeOption = get(node);\n if (Option.isNone(nodeOption)) {\n return [];\n }\n\n const object = nodeOption.value.data;\n if (!Obj.isObject(object)) {\n return [];\n }\n\n const space = getSpace(object);\n if (!space) {\n return [];\n }\n\n if (!query) {\n query = space.db.query(Query.select(Filter.ids(object.id)).targetOf(Assistant.CompanionTo).source());\n }\n\n const chat = get(rxFromQuery(query))[0];\n return [\n {\n id: [fullyQualifiedId(object), 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: chat ?? 'assistant-chat',\n properties: {\n label: ['assistant chat label', { ns: meta.id }],\n icon: 'ph--sparkle--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ];\n });\n },\n }),\n\n createExtension({\n id: `${meta.id}/sequence-logs`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(Sequence, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'logs'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'logs',\n properties: {\n label: ['sequence logs label', { ns: meta.id }],\n icon: 'ph--clock-countdown--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n\n// TODO(burdon): Factor out.\nconst getOrCreateChat = async (\n dispatch: PromiseIntentDispatcher,\n space: Space,\n): Promise<Assistant.Chat | undefined> => {\n // TODO(wittjosiah): This should be possible with a single query.\n const { objects: allChats } = await space.db.query(Query.type(Assistant.Chat)).run();\n const { objects: relatedChats } = await space.db\n .query(Query.type(Assistant.Chat).sourceOf(Assistant.CompanionTo).source())\n .run();\n const chats = allChats.filter((chat) => !relatedChats.includes(chat));\n // console.log('objects', JSON.stringify(objects, null, 2));\n if (chats.length > 0) {\n // TODO(burdon): Is this the most recent?\n return chats[chats.length - 1];\n }\n\n const { data } = await dispatch(createIntent(Assistant.CreateChat, { space }));\n invariant(Obj.instanceOf(Assistant.Chat, data?.object));\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: data.object }));\n return data.object;\n};\n"],
5
- "mappings": "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",
6
- "names": ["Rx", "Option", "pipe", "Capabilities", "contributes", "createIntent", "LayoutAction", "Sequence", "Obj", "invariant", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "createExtension", "ROOT_ID", "getActiveSpace", "rxFromQuery", "SpaceAction", "Filter", "Query", "fullyQualifiedId", "getSpace", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "LayoutAction", "UpdateDialog", "_tag", "data", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "client", "ClientCapabilities", "Client", "space", "getActiveSpace", "spaces", "default", "chat", "getOrCreateChat", "createIntent", "part", "subject", "ASSISTANT_DIALOG", "options", "state", "blockAlign", "props", "properties", "label", "ns", "icon", "disposition", "position", "keyBinding", "macos", "windows", "getOrElse", "connector", "query", "nodeOption", "isNone", "object", "value", "Obj", "isObject", "getSpace", "db", "Query", "select", "Filter", "ids", "targetOf", "Assistant", "CompanionTo", "source", "rxFromQuery", "fullyQualifiedId", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "PLANK_COMPANION_TYPE", "instanceOf", "Sequence", "objects", "allChats", "Chat", "run", "relatedChats", "sourceOf", "chats", "filter", "includes", "length", "CreateChat", "invariant", "SpaceAction", "AddObject", "target"]
7
- }