@dxos/plugin-automation 0.7.5-labs.8a82073 → 0.7.5-labs.a8b535d

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 (308) hide show
  1. package/dist/lib/browser/AutomationPanel-ITYXSN5Z.mjs +132 -0
  2. package/dist/lib/browser/AutomationPanel-ITYXSN5Z.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-DQ7ZSYJJ.mjs → chunk-OFDNNRLE.mjs} +3 -6
  4. package/dist/lib/browser/{chunk-DQ7ZSYJJ.mjs.map → chunk-OFDNNRLE.mjs.map} +3 -3
  5. package/dist/lib/browser/chunk-U7QLNY2S.mjs +8 -0
  6. package/dist/lib/browser/chunk-U7QLNY2S.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-WY2C7JY4.mjs +119 -0
  8. package/dist/lib/browser/chunk-WY2C7JY4.mjs.map +7 -0
  9. package/dist/lib/browser/complementary-panel-4CPOJL4Y.mjs +56 -0
  10. package/dist/lib/browser/complementary-panel-4CPOJL4Y.mjs.map +7 -0
  11. package/dist/lib/browser/index.mjs +21 -373
  12. package/dist/lib/browser/index.mjs.map +4 -4
  13. package/dist/lib/browser/meta.json +1 -1
  14. package/dist/lib/browser/react-surface-SAPMN4PF.mjs +27 -0
  15. package/dist/lib/browser/react-surface-SAPMN4PF.mjs.map +7 -0
  16. package/dist/lib/node/{chunk-IPCNJYQL.cjs → AutomationPanel-X33HHDMQ.cjs} +19 -132
  17. package/dist/lib/node/AutomationPanel-X33HHDMQ.cjs.map +7 -0
  18. package/dist/lib/node/chunk-7Q5SNGCL.cjs +148 -0
  19. package/dist/lib/node/chunk-7Q5SNGCL.cjs.map +7 -0
  20. package/dist/lib/node/chunk-CB5OB6JH.cjs +40 -0
  21. package/dist/lib/node/chunk-CB5OB6JH.cjs.map +7 -0
  22. package/dist/lib/node/{chunk-TQEDPRY5.cjs → chunk-ORMEYEBE.cjs} +6 -9
  23. package/dist/lib/node/{chunk-TQEDPRY5.cjs.map → chunk-ORMEYEBE.cjs.map} +3 -3
  24. package/dist/lib/node/complementary-panel-ZYJJ42ZU.cjs +72 -0
  25. package/dist/lib/node/complementary-panel-ZYJJ42ZU.cjs.map +7 -0
  26. package/dist/lib/node/index.cjs +36 -374
  27. package/dist/lib/node/index.cjs.map +4 -4
  28. package/dist/lib/node/meta.json +1 -1
  29. package/dist/lib/node/{react-surface-BVZ63QP4.cjs → react-surface-2WRVAPGR.cjs} +9 -28
  30. package/dist/lib/node/react-surface-2WRVAPGR.cjs.map +7 -0
  31. package/dist/lib/node-esm/AutomationPanel-HY3GB4BT.mjs +133 -0
  32. package/dist/lib/node-esm/AutomationPanel-HY3GB4BT.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-JFHI22MF.mjs → chunk-6MUUH67V.mjs} +3 -6
  34. package/dist/lib/node-esm/{chunk-JFHI22MF.mjs.map → chunk-6MUUH67V.mjs.map} +3 -3
  35. package/dist/lib/node-esm/chunk-R3P2WPBQ.mjs +10 -0
  36. package/dist/lib/node-esm/chunk-R3P2WPBQ.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-UDD2VA6G.mjs +120 -0
  38. package/dist/lib/node-esm/chunk-UDD2VA6G.mjs.map +7 -0
  39. package/dist/lib/node-esm/complementary-panel-S42RIIAY.mjs +57 -0
  40. package/dist/lib/node-esm/complementary-panel-S42RIIAY.mjs.map +7 -0
  41. package/dist/lib/node-esm/index.mjs +21 -373
  42. package/dist/lib/node-esm/index.mjs.map +4 -4
  43. package/dist/lib/node-esm/meta.json +1 -1
  44. package/dist/lib/node-esm/react-surface-QWLPOYXO.mjs +28 -0
  45. package/dist/lib/node-esm/react-surface-QWLPOYXO.mjs.map +7 -0
  46. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  47. package/dist/types/src/capabilities/{ai-client.d.ts → complementary-panel.d.ts} +2 -3
  48. package/dist/types/src/capabilities/complementary-panel.d.ts.map +1 -0
  49. package/dist/types/src/capabilities/index.d.ts +1 -180
  50. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  51. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  52. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -2
  53. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  54. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
  55. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +1 -2
  56. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  57. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
  58. package/dist/types/src/components/index.d.ts +1 -11
  59. package/dist/types/src/components/index.d.ts.map +1 -1
  60. package/dist/types/src/index.d.ts +1 -3
  61. package/dist/types/src/index.d.ts.map +1 -1
  62. package/dist/types/src/meta.d.ts +0 -1
  63. package/dist/types/src/meta.d.ts.map +1 -1
  64. package/dist/types/src/testing/index.d.ts +0 -1
  65. package/dist/types/src/testing/index.d.ts.map +1 -1
  66. package/dist/types/src/testing/test-functions.d.ts +0 -2
  67. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  68. package/dist/types/src/translations.d.ts +1 -94
  69. package/dist/types/src/translations.d.ts.map +1 -1
  70. package/package.json +23 -73
  71. package/src/AutomationPlugin.tsx +9 -64
  72. package/src/capabilities/complementary-panel.ts +56 -0
  73. package/src/capabilities/index.ts +1 -5
  74. package/src/capabilities/react-surface.tsx +2 -16
  75. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +1 -2
  76. package/src/components/AutomationPanel/AutomationPanel.tsx +56 -49
  77. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +1 -2
  78. package/src/components/index.ts +0 -7
  79. package/src/index.ts +2 -3
  80. package/src/meta.ts +1 -2
  81. package/src/testing/index.ts +0 -1
  82. package/src/testing/test-functions.ts +0 -7
  83. package/src/translations.ts +1 -29
  84. package/dist/lib/browser/AutomationPanel-CL2TWZT5.mjs +0 -8
  85. package/dist/lib/browser/AutomationPanel-CL2TWZT5.mjs.map +0 -7
  86. package/dist/lib/browser/ChatContainer-EJ3IWL7Y.mjs +0 -12
  87. package/dist/lib/browser/ChatContainer-EJ3IWL7Y.mjs.map +0 -7
  88. package/dist/lib/browser/ai-client-UJLNYP7B.mjs +0 -22
  89. package/dist/lib/browser/ai-client-UJLNYP7B.mjs.map +0 -7
  90. package/dist/lib/browser/app-graph-builder-3H5TCRG4.mjs +0 -162
  91. package/dist/lib/browser/app-graph-builder-3H5TCRG4.mjs.map +0 -7
  92. package/dist/lib/browser/chunk-43WRHV2L.mjs +0 -150
  93. package/dist/lib/browser/chunk-43WRHV2L.mjs.map +0 -7
  94. package/dist/lib/browser/chunk-4M74P6YW.mjs +0 -284
  95. package/dist/lib/browser/chunk-4M74P6YW.mjs.map +0 -7
  96. package/dist/lib/browser/chunk-6KJRL5KV.mjs +0 -243
  97. package/dist/lib/browser/chunk-6KJRL5KV.mjs.map +0 -7
  98. package/dist/lib/browser/chunk-BQHXJZ4K.mjs +0 -15
  99. package/dist/lib/browser/chunk-BQHXJZ4K.mjs.map +0 -7
  100. package/dist/lib/browser/chunk-N4SSCQ7P.mjs +0 -1602
  101. package/dist/lib/browser/chunk-N4SSCQ7P.mjs.map +0 -7
  102. package/dist/lib/browser/intent-resolver-5YVZJFS3.mjs +0 -29
  103. package/dist/lib/browser/intent-resolver-5YVZJFS3.mjs.map +0 -7
  104. package/dist/lib/browser/react-surface-RRTZFTKR.mjs +0 -50
  105. package/dist/lib/browser/react-surface-RRTZFTKR.mjs.map +0 -7
  106. package/dist/lib/browser/types/index.mjs +0 -24
  107. package/dist/lib/browser/types/index.mjs.map +0 -7
  108. package/dist/lib/node/AutomationPanel-BCEY3YXO.cjs +0 -26
  109. package/dist/lib/node/AutomationPanel-BCEY3YXO.cjs.map +0 -7
  110. package/dist/lib/node/ChatContainer-QUWFEBTI.cjs +0 -33
  111. package/dist/lib/node/ChatContainer-QUWFEBTI.cjs.map +0 -7
  112. package/dist/lib/node/ai-client-AOB6TLNW.cjs +0 -38
  113. package/dist/lib/node/ai-client-AOB6TLNW.cjs.map +0 -7
  114. package/dist/lib/node/app-graph-builder-CDEQJEHY.cjs +0 -178
  115. package/dist/lib/node/app-graph-builder-CDEQJEHY.cjs.map +0 -7
  116. package/dist/lib/node/chunk-AWZVJZ2I.cjs +0 -34
  117. package/dist/lib/node/chunk-AWZVJZ2I.cjs.map +0 -7
  118. package/dist/lib/node/chunk-DKGNORZK.cjs +0 -1586
  119. package/dist/lib/node/chunk-DKGNORZK.cjs.map +0 -7
  120. package/dist/lib/node/chunk-H3RSMGJG.cjs +0 -173
  121. package/dist/lib/node/chunk-H3RSMGJG.cjs.map +0 -7
  122. package/dist/lib/node/chunk-IPCNJYQL.cjs.map +0 -7
  123. package/dist/lib/node/chunk-LC6KNDPQ.cjs +0 -302
  124. package/dist/lib/node/chunk-LC6KNDPQ.cjs.map +0 -7
  125. package/dist/lib/node/intent-resolver-MJFZT5IU.cjs +0 -44
  126. package/dist/lib/node/intent-resolver-MJFZT5IU.cjs.map +0 -7
  127. package/dist/lib/node/react-surface-BVZ63QP4.cjs.map +0 -7
  128. package/dist/lib/node/types/index.cjs +0 -46
  129. package/dist/lib/node/types/index.cjs.map +0 -7
  130. package/dist/lib/node-esm/AutomationPanel-YTIZ74RI.mjs +0 -9
  131. package/dist/lib/node-esm/AutomationPanel-YTIZ74RI.mjs.map +0 -7
  132. package/dist/lib/node-esm/ChatContainer-QSMDZRDU.mjs +0 -13
  133. package/dist/lib/node-esm/ChatContainer-QSMDZRDU.mjs.map +0 -7
  134. package/dist/lib/node-esm/ai-client-RUCCJ7JZ.mjs +0 -23
  135. package/dist/lib/node-esm/ai-client-RUCCJ7JZ.mjs.map +0 -7
  136. package/dist/lib/node-esm/app-graph-builder-GR3URVNX.mjs +0 -163
  137. package/dist/lib/node-esm/app-graph-builder-GR3URVNX.mjs.map +0 -7
  138. package/dist/lib/node-esm/chunk-7JO77AAS.mjs +0 -151
  139. package/dist/lib/node-esm/chunk-7JO77AAS.mjs.map +0 -7
  140. package/dist/lib/node-esm/chunk-CQPQXIJP.mjs +0 -285
  141. package/dist/lib/node-esm/chunk-CQPQXIJP.mjs.map +0 -7
  142. package/dist/lib/node-esm/chunk-CZXU4CFK.mjs +0 -244
  143. package/dist/lib/node-esm/chunk-CZXU4CFK.mjs.map +0 -7
  144. package/dist/lib/node-esm/chunk-D7RARVTS.mjs +0 -1603
  145. package/dist/lib/node-esm/chunk-D7RARVTS.mjs.map +0 -7
  146. package/dist/lib/node-esm/chunk-LSSWQIQD.mjs +0 -16
  147. package/dist/lib/node-esm/chunk-LSSWQIQD.mjs.map +0 -7
  148. package/dist/lib/node-esm/intent-resolver-FCKNRTKQ.mjs +0 -30
  149. package/dist/lib/node-esm/intent-resolver-FCKNRTKQ.mjs.map +0 -7
  150. package/dist/lib/node-esm/react-surface-Y5LQHUQN.mjs +0 -51
  151. package/dist/lib/node-esm/react-surface-Y5LQHUQN.mjs.map +0 -7
  152. package/dist/lib/node-esm/types/index.mjs +0 -25
  153. package/dist/lib/node-esm/types/index.mjs.map +0 -7
  154. package/dist/types/src/artifacts.stories.d.ts +0 -16
  155. package/dist/types/src/artifacts.stories.d.ts.map +0 -1
  156. package/dist/types/src/capabilities/ai-client.d.ts.map +0 -1
  157. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -180
  158. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  159. package/dist/types/src/capabilities/capabilities.d.ts +0 -5
  160. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  161. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  162. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  163. package/dist/types/src/components/Box/StatusLine.d.ts +0 -11
  164. package/dist/types/src/components/Box/StatusLine.d.ts.map +0 -1
  165. package/dist/types/src/components/Box/StatusLine.stories.d.ts +0 -9
  166. package/dist/types/src/components/Box/StatusLine.stories.d.ts.map +0 -1
  167. package/dist/types/src/components/Box/Tabbed.d.ts +0 -15
  168. package/dist/types/src/components/Box/Tabbed.d.ts.map +0 -1
  169. package/dist/types/src/components/Box/Tabbed.stories.d.ts +0 -8
  170. package/dist/types/src/components/Box/Tabbed.stories.d.ts.map +0 -1
  171. package/dist/types/src/components/Box/ToggleContainer.d.ts +0 -13
  172. package/dist/types/src/components/Box/ToggleContainer.d.ts.map +0 -1
  173. package/dist/types/src/components/Box/ToggleContainer.stories.d.ts +0 -9
  174. package/dist/types/src/components/Box/ToggleContainer.stories.d.ts.map +0 -1
  175. package/dist/types/src/components/Box/index.d.ts +0 -4
  176. package/dist/types/src/components/Box/index.d.ts.map +0 -1
  177. package/dist/types/src/components/ChatContainer/ChatContainer.d.ts +0 -7
  178. package/dist/types/src/components/ChatContainer/ChatContainer.d.ts.map +0 -1
  179. package/dist/types/src/components/ChatContainer/index.d.ts +0 -4
  180. package/dist/types/src/components/ChatContainer/index.d.ts.map +0 -1
  181. package/dist/types/src/components/MarkdownViewer/MarkdownViewer.d.ts +0 -14
  182. package/dist/types/src/components/MarkdownViewer/MarkdownViewer.d.ts.map +0 -1
  183. package/dist/types/src/components/MarkdownViewer/MarkdownViewer.stories.d.ts +0 -8
  184. package/dist/types/src/components/MarkdownViewer/MarkdownViewer.stories.d.ts.map +0 -1
  185. package/dist/types/src/components/MarkdownViewer/index.d.ts +0 -2
  186. package/dist/types/src/components/MarkdownViewer/index.d.ts.map +0 -1
  187. package/dist/types/src/components/Prompt/Prompt.d.ts +0 -7
  188. package/dist/types/src/components/Prompt/Prompt.d.ts.map +0 -1
  189. package/dist/types/src/components/Prompt/Prompt.stories.d.ts +0 -8
  190. package/dist/types/src/components/Prompt/Prompt.stories.d.ts.map +0 -1
  191. package/dist/types/src/components/Prompt/index.d.ts +0 -2
  192. package/dist/types/src/components/Prompt/index.d.ts.map +0 -1
  193. package/dist/types/src/components/Prompt/prompt-autocomplete.d.ts +0 -20
  194. package/dist/types/src/components/Prompt/prompt-autocomplete.d.ts.map +0 -1
  195. package/dist/types/src/components/PromptEditor/PromptEditor.d.ts +0 -10
  196. package/dist/types/src/components/PromptEditor/PromptEditor.d.ts.map +0 -1
  197. package/dist/types/src/components/PromptEditor/PromptEditor.stories.d.ts +0 -6
  198. package/dist/types/src/components/PromptEditor/PromptEditor.stories.d.ts.map +0 -1
  199. package/dist/types/src/components/PromptEditor/index.d.ts +0 -2
  200. package/dist/types/src/components/PromptEditor/index.d.ts.map +0 -1
  201. package/dist/types/src/components/PromptEditor/prompt-extension.d.ts +0 -4
  202. package/dist/types/src/components/PromptEditor/prompt-extension.d.ts.map +0 -1
  203. package/dist/types/src/components/PromptEditor/types.d.ts +0 -18
  204. package/dist/types/src/components/PromptEditor/types.d.ts.map +0 -1
  205. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +0 -6
  206. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +0 -1
  207. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts +0 -8
  208. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts.map +0 -1
  209. package/dist/types/src/components/ServiceRegistry/index.d.ts +0 -2
  210. package/dist/types/src/components/ServiceRegistry/index.d.ts.map +0 -1
  211. package/dist/types/src/components/Thread/Thread.d.ts +0 -11
  212. package/dist/types/src/components/Thread/Thread.d.ts.map +0 -1
  213. package/dist/types/src/components/Thread/Thread.stories.d.ts +0 -11
  214. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +0 -1
  215. package/dist/types/src/components/Thread/ThreadMessage.d.ts +0 -12
  216. package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +0 -1
  217. package/dist/types/src/components/Thread/index.d.ts +0 -2
  218. package/dist/types/src/components/Thread/index.d.ts.map +0 -1
  219. package/dist/types/src/hooks/email.d.ts +0 -4
  220. package/dist/types/src/hooks/email.d.ts.map +0 -1
  221. package/dist/types/src/hooks/index.d.ts +0 -6
  222. package/dist/types/src/hooks/index.d.ts.map +0 -1
  223. package/dist/types/src/hooks/invocation-handler.d.ts +0 -5
  224. package/dist/types/src/hooks/invocation-handler.d.ts.map +0 -1
  225. package/dist/types/src/hooks/processor.d.ts +0 -70
  226. package/dist/types/src/hooks/processor.d.ts.map +0 -1
  227. package/dist/types/src/hooks/processor.test.d.ts +0 -2
  228. package/dist/types/src/hooks/processor.test.d.ts.map +0 -1
  229. package/dist/types/src/hooks/useChatProcessor.d.ts +0 -7
  230. package/dist/types/src/hooks/useChatProcessor.d.ts.map +0 -1
  231. package/dist/types/src/hooks/useLocalTriggerManager.d.ts +0 -3
  232. package/dist/types/src/hooks/useLocalTriggerManager.d.ts.map +0 -1
  233. package/dist/types/src/hooks/useMessageQueue.d.ts +0 -41
  234. package/dist/types/src/hooks/useMessageQueue.d.ts.map +0 -1
  235. package/dist/types/src/hooks/useServices.d.ts +0 -7
  236. package/dist/types/src/hooks/useServices.d.ts.map +0 -1
  237. package/dist/types/src/presets.d.ts +0 -9
  238. package/dist/types/src/presets.d.ts.map +0 -1
  239. package/dist/types/src/testing/test-services.d.ts +0 -5
  240. package/dist/types/src/testing/test-services.d.ts.map +0 -1
  241. package/dist/types/src/tools/function.d.ts +0 -5
  242. package/dist/types/src/tools/function.d.ts.map +0 -1
  243. package/dist/types/src/tools/index.d.ts +0 -3
  244. package/dist/types/src/tools/index.d.ts.map +0 -1
  245. package/dist/types/src/tools/openapi.d.ts +0 -10
  246. package/dist/types/src/tools/openapi.d.ts.map +0 -1
  247. package/dist/types/src/tools/openapi.test.d.ts +0 -2
  248. package/dist/types/src/tools/openapi.test.d.ts.map +0 -1
  249. package/dist/types/src/types/index.d.ts +0 -4
  250. package/dist/types/src/types/index.d.ts.map +0 -1
  251. package/dist/types/src/types/registry.d.ts +0 -10
  252. package/dist/types/src/types/registry.d.ts.map +0 -1
  253. package/dist/types/src/types/schema.d.ts +0 -221
  254. package/dist/types/src/types/schema.d.ts.map +0 -1
  255. package/dist/types/src/types/types.d.ts +0 -18
  256. package/dist/types/src/types/types.d.ts.map +0 -1
  257. package/src/artifacts.stories.tsx +0 -241
  258. package/src/capabilities/ai-client.ts +0 -19
  259. package/src/capabilities/app-graph-builder.ts +0 -156
  260. package/src/capabilities/capabilities.ts +0 -12
  261. package/src/capabilities/intent-resolver.ts +0 -27
  262. package/src/components/Box/StatusLine.stories.tsx +0 -52
  263. package/src/components/Box/StatusLine.tsx +0 -76
  264. package/src/components/Box/Tabbed.stories.tsx +0 -51
  265. package/src/components/Box/Tabbed.tsx +0 -89
  266. package/src/components/Box/ToggleContainer.stories.tsx +0 -110
  267. package/src/components/Box/ToggleContainer.tsx +0 -108
  268. package/src/components/Box/index.ts +0 -7
  269. package/src/components/ChatContainer/ChatContainer.tsx +0 -52
  270. package/src/components/ChatContainer/index.ts +0 -8
  271. package/src/components/MarkdownViewer/MarkdownViewer.stories.tsx +0 -56
  272. package/src/components/MarkdownViewer/MarkdownViewer.tsx +0 -79
  273. package/src/components/MarkdownViewer/index.ts +0 -5
  274. package/src/components/Prompt/Prompt.stories.tsx +0 -50
  275. package/src/components/Prompt/Prompt.tsx +0 -36
  276. package/src/components/Prompt/index.ts +0 -5
  277. package/src/components/Prompt/prompt-autocomplete.ts +0 -200
  278. package/src/components/PromptEditor/PromptEditor.stories.tsx +0 -64
  279. package/src/components/PromptEditor/PromptEditor.tsx +0 -222
  280. package/src/components/PromptEditor/index.ts +0 -5
  281. package/src/components/PromptEditor/prompt-extension.ts +0 -43
  282. package/src/components/PromptEditor/types.tsx +0 -28
  283. package/src/components/ServiceRegistry/ServiceRegistry.stories.tsx +0 -49
  284. package/src/components/ServiceRegistry/ServiceRegistry.tsx +0 -75
  285. package/src/components/ServiceRegistry/index.ts +0 -5
  286. package/src/components/Thread/Thread.stories.tsx +0 -197
  287. package/src/components/Thread/Thread.tsx +0 -156
  288. package/src/components/Thread/ThreadMessage.tsx +0 -225
  289. package/src/components/Thread/index.ts +0 -5
  290. package/src/hooks/email.ts +0 -49
  291. package/src/hooks/index.ts +0 -10
  292. package/src/hooks/invocation-handler.ts +0 -109
  293. package/src/hooks/processor.test.ts +0 -15
  294. package/src/hooks/processor.ts +0 -210
  295. package/src/hooks/useChatProcessor.tsx +0 -86
  296. package/src/hooks/useLocalTriggerManager.ts +0 -82
  297. package/src/hooks/useMessageQueue.ts +0 -23
  298. package/src/hooks/useServices.ts +0 -28
  299. package/src/presets.ts +0 -248
  300. package/src/testing/test-services.ts +0 -131
  301. package/src/tools/function.ts +0 -47
  302. package/src/tools/index.ts +0 -6
  303. package/src/tools/openapi.test.ts +0 -227
  304. package/src/tools/openapi.ts +0 -331
  305. package/src/types/index.ts +0 -7
  306. package/src/types/registry.ts +0 -26
  307. package/src/types/schema.ts +0 -132
  308. package/src/types/types.ts +0 -21
@@ -1,331 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import jsonpointer from 'jsonpointer';
6
- import { type OpenAPIV2, type OpenAPIV3_1 } from 'openapi-types';
7
-
8
- import { ToolResult, type Tool } from '@dxos/artifact';
9
- import { JsonSchemaType, normalizeSchema, S, toEffectSchema } from '@dxos/echo-schema';
10
- import { invariant } from '@dxos/invariant';
11
- import { log } from '@dxos/log';
12
- import { deepMapValues } from '@dxos/util';
13
-
14
- import type { ApiAuthorization, ServiceType } from '../types';
15
-
16
- export type CreateToolsFromApiOptions = {
17
- authorization?: ApiAuthorization;
18
- instructions?: string;
19
- };
20
-
21
- export const createToolsFromService = async (service: ServiceType): Promise<Tool[]> => {
22
- invariant(service.interfaces?.length === 1 && service.interfaces[0].kind === 'api');
23
- const iface = service.interfaces[0];
24
- invariant(iface.schemaUrl);
25
- invariant(iface.schemaUrl);
26
- return createToolsFromApi(iface.schemaUrl, { authorization: iface.authorization });
27
- };
28
-
29
- export const createToolsFromApi = async (url: string, options?: CreateToolsFromApiOptions): Promise<Tool[]> => {
30
- const res = await fetch(url);
31
- const spec = (await res.json()) as OpenAPIV2.Document;
32
- log('spec', { spec });
33
-
34
- const tools: Tool[] = [];
35
- for (const [path, pathItem] of Object.entries(spec.paths)) {
36
- if (typeof pathItem !== 'object') {
37
- continue;
38
- }
39
-
40
- // TODO(burdon): ???
41
- const { ...methods } = pathItem;
42
- for (const [method, m] of Object.entries(methods)) {
43
- const methodItem: OpenAPIV2.OperationObject = m as OpenAPIV2.OperationObject;
44
- log('methodItem', { path, method, methodItem });
45
-
46
- const parametersResolved: OpenAPIV2.ParameterObject[] =
47
- methodItem.parameters?.map((parameter: any) => {
48
- const resolved = resolveJsonSchema(parameter, spec);
49
- return resolved;
50
- }) ?? [];
51
-
52
- const inputSchema: JsonSchemaType = {
53
- type: 'object',
54
- properties: {},
55
- };
56
-
57
- const endpointParameters: OpenAPIV2.ParameterObject[] = [];
58
- for (const parameter of parametersResolved) {
59
- log('parameter', { parameter });
60
-
61
- if (
62
- options?.authorization?.type === 'api-key' &&
63
- options.authorization.placement.type === 'query' &&
64
- parameter.in === 'query' &&
65
- parameter.name === options.authorization.placement.name
66
- ) {
67
- continue;
68
- }
69
-
70
- endpointParameters.push(parameter);
71
-
72
- if (parameter.schema) {
73
- inputSchema.properties![parameter.name] = normalizeSchema(parameter.schema);
74
- } else if (typeof parameter.type === 'string') {
75
- const { name, in: _in, required, ...schema } = parameter;
76
- inputSchema.properties![name] = normalizeSchema(schema);
77
- if (required) {
78
- inputSchema.required ??= [];
79
- inputSchema.required!.push(name);
80
- }
81
- }
82
- }
83
-
84
- log('inputSchema', { inputSchema });
85
- S.validateSync(JsonSchemaType)(inputSchema);
86
-
87
- const description = methodItem.description ?? methodItem.summary;
88
- if (!description) {
89
- log.warn('no description', { path, method });
90
- continue;
91
- }
92
-
93
- const endpoint: EndpointDescriptor = {
94
- document: spec,
95
- path,
96
- method,
97
- parameters: endpointParameters,
98
- authorization: options?.authorization,
99
- };
100
-
101
- tools.push({
102
- name: getToolName(path, method, methodItem),
103
- description: options?.instructions ? `${options.instructions}\n\n${description}` : description,
104
- parameters: inputSchema,
105
- execute: async (input) => {
106
- const response = await callApiEndpoint(endpoint, input);
107
- return ToolResult.Success(response);
108
- },
109
- });
110
- }
111
- }
112
-
113
- return tools;
114
- };
115
-
116
- const getToolName = (path: string, method: string, methodItem: OpenAPIV2.OperationObject) => {
117
- if (methodItem.operationId) {
118
- return methodItem.operationId;
119
- }
120
-
121
- // Generate a name from the path and method.
122
- let name = `${method.toLowerCase()}_${path.replaceAll(/[{}/]/g, '_')}`;
123
- while (name.length > MAX_TOOL_NAME_LENGTH) {
124
- const lengthBefore = name.length;
125
-
126
- for (const word of GENERIC_WORDS) {
127
- if (name.includes(word)) {
128
- name = name.replace(word, '');
129
- break;
130
- }
131
- }
132
- name = name.replaceAll('__', '_').replace(/_$/, '');
133
-
134
- const lengthAfter = name.length;
135
- if (lengthBefore === lengthAfter) {
136
- break;
137
- }
138
- }
139
- name = name.replaceAll('__', '_').replace(/_$/, '').replace(/^_/, '');
140
-
141
- return name.slice(0, MAX_TOOL_NAME_LENGTH);
142
- };
143
-
144
- const MAX_TOOL_NAME_LENGTH = 64;
145
- const GENERIC_WORDS = [
146
- 'services',
147
- 'service',
148
- 'api',
149
- 'rest',
150
- 'endpoint',
151
- 'get',
152
- 'post',
153
- 'put',
154
- 'delete',
155
- 'patch',
156
- 'head',
157
- 'options',
158
- 'trace',
159
- 'service',
160
- 'api',
161
- 'endpoint',
162
- ];
163
-
164
- type EndpointDescriptor = {
165
- document: OpenAPIV3_1.Document | OpenAPIV2.Document;
166
- path: string;
167
- method: string;
168
- parameters: OpenAPIV2.ParameterObject[];
169
- authorization?: ApiAuthorization;
170
- };
171
-
172
- const callApiEndpoint = async (endpoint: EndpointDescriptor, input: any) => {
173
- log.info('endpoint', { method: endpoint.method, name: endpoint.path, input });
174
-
175
- let url = getEndpointUrl(endpoint);
176
- const request: RequestInit = {
177
- method: endpoint.method,
178
- headers: {},
179
- };
180
- const query = new URLSearchParams();
181
- let body: any;
182
- for (const parameter of endpoint.parameters) {
183
- if (input[parameter.name] === undefined) {
184
- continue;
185
- }
186
-
187
- switch (parameter.in) {
188
- case 'header': {
189
- if (parameter.example) {
190
- (request.headers as any)[parameter.name] = parameter.default;
191
- }
192
- break;
193
- }
194
- case 'path': {
195
- url = url.replace(`{${parameter.name}}`, encodeURIComponent(input[parameter.name]));
196
- break;
197
- }
198
- case 'body': {
199
- const value = input[parameter.name];
200
-
201
- // Client-side validation
202
- const effectSchema = toEffectSchema(parameter.schema);
203
- S.validateSync(effectSchema)(value);
204
-
205
- if (body) {
206
- throw new Error(`Duplicate body parameter: ${parameter.name}`);
207
- }
208
- body = value;
209
- break;
210
- }
211
- case 'query': {
212
- query.set(parameter.name, input[parameter.name]);
213
- break;
214
- }
215
- }
216
- }
217
-
218
- if (
219
- (endpoint.authorization?.type === 'api-key' && endpoint.authorization.placement.type === 'authorization-header') ||
220
- endpoint.authorization?.type === 'oauth'
221
- ) {
222
- (request.headers as any).Authorization = await resolveAuthorization(endpoint.authorization);
223
- } else if (endpoint.authorization?.type === 'api-key' && endpoint.authorization.placement.type === 'query') {
224
- query.set(endpoint.authorization.placement.name, endpoint.authorization.key);
225
- }
226
-
227
- if (query.size > 0) {
228
- url += `?${query.toString()}`;
229
- }
230
-
231
- if (body) {
232
- request.body = JSON.stringify(body);
233
- (request.headers as any)['Content-Type'] = 'application/json';
234
- }
235
-
236
- log.info('request', { url, request });
237
- const response = await fetch(url, request);
238
-
239
- log.info('response', { ok: response.ok, status: response.status, statusText: response.statusText });
240
-
241
- if (response.ok) {
242
- const contentType = response.headers.get('Content-Type');
243
- if (contentType?.includes('application/json')) {
244
- return await response.json();
245
- } else {
246
- return await response.text();
247
- }
248
- } else {
249
- if (response.headers.get('Content-Type')?.includes('application/json')) {
250
- const responseBody = await response.text();
251
- let error: any;
252
- try {
253
- error = JSON.parse(responseBody);
254
- } catch {
255
- error = responseBody;
256
- }
257
- log.error('error', { error });
258
- throw new Error(error.message);
259
- } else {
260
- const error = await response.text();
261
- log.error('error', { error });
262
- throw new Error(error);
263
- }
264
- }
265
- };
266
-
267
- const getEndpointUrl = (endpoint: EndpointDescriptor) => {
268
- let url = '';
269
- if (isV3_1(endpoint.document) && endpoint.document.servers && endpoint.document.servers.length > 0) {
270
- url = endpoint.document.servers[0].url;
271
- } else {
272
- invariant(!isV3_1(endpoint.document));
273
- url = `${endpoint.document.schemes?.[0] ?? 'https'}://${endpoint.document.host}`;
274
- }
275
-
276
- if (!isV3_1(endpoint.document) && endpoint.document.basePath) {
277
- url += endpoint.document.basePath;
278
- }
279
-
280
- url += endpoint.path;
281
-
282
- return url;
283
- };
284
-
285
- export const resolveAuthorization = async (authorization: ApiAuthorization): Promise<string> => {
286
- switch (authorization.type) {
287
- case 'api-key': {
288
- invariant(authorization.placement.type === 'authorization-header');
289
- return `Bearer ${authorization.key}`;
290
- }
291
- case 'oauth': {
292
- const response = await fetch(authorization.tokenUrl, {
293
- method: 'POST',
294
- headers: {
295
- 'Content-Type': 'application/x-www-form-urlencoded',
296
- },
297
- body: `grant_type=${authorization.grantType}&client_id=${authorization.clientId}&client_secret=${authorization.clientSecret}`,
298
- });
299
- const data = await response.json();
300
- return `Bearer ${data.access_token}`;
301
- }
302
- default: {
303
- throw new Error(`Unknown authorization type: ${(authorization as any).type}`);
304
- }
305
- }
306
- };
307
-
308
- /**
309
- * Resolves all $ref properties in a JSON schema.
310
- * Doesn't assume the structure of the schema.
311
- * The function looks from $ref properties in the schema and resolves them to their values in the base object.
312
- */
313
- const resolveJsonSchema = (schema: any, base: any) => {
314
- return deepMapValues(schema, (value, recurse) => {
315
- if (typeof value === 'object' && value !== null && '$ref' in value && typeof value.$ref === 'string') {
316
- if (value.$ref.startsWith('#')) {
317
- const resolved = jsonpointer.get(base, value.$ref.slice(1));
318
- if (resolved) {
319
- return recurse(resolved);
320
- } else {
321
- log.warn('unresolved', { ref: value.$ref, base });
322
- }
323
- }
324
- }
325
- return recurse(value);
326
- });
327
- };
328
-
329
- const isV3_1 = (document: OpenAPIV3_1.Document | OpenAPIV2.Document): document is OpenAPIV3_1.Document => {
330
- return (document as any).openapi === '3.0.1';
331
- };
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- export * from './registry';
6
- export * from './schema';
7
- export * from './types';
@@ -1,26 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { type ServiceType } from './schema';
6
-
7
- export type ServiceQuery = {
8
- name?: string;
9
- category?: string;
10
- };
11
-
12
- export interface BaseServiceRegistry {
13
- queryServices(query?: ServiceQuery): Promise<ServiceType[]>;
14
- }
15
-
16
- export const categoryIcons: Record<string, string> = {
17
- finance: 'ph--bank--regular',
18
- health: 'ph--heart--regular',
19
- geolocation: 'ph--globe-simple--regular',
20
- education: 'ph--books--regular',
21
- entertainment: 'ph--music-notes--regular',
22
- shopping: 'ph--shopping-cart--regular',
23
- travel: 'ph--airplane-takeoff--regular',
24
- utilities: 'ph--lightning--regular',
25
- weather: 'ph--cloud-rain--regular',
26
- } as const;
@@ -1,132 +0,0 @@
1
- //
2
- // Copyright 2024 DXOS.org
3
- //
4
-
5
- import { ComputeGraph } from '@dxos/conductor';
6
- import { Expando, Ref, S, TypedObject, type Ref$ } from '@dxos/echo-schema';
7
- import { FunctionType } from '@dxos/functions';
8
-
9
- // TODO(burdon): Change to S.Literal (and discriminated union).
10
- export enum ChainInputType {
11
- VALUE = 0,
12
- PASS_THROUGH = 1,
13
- RETRIEVER = 2,
14
- FUNCTION = 3,
15
- QUERY = 4,
16
- RESOLVER = 5,
17
- CONTEXT = 6,
18
- SCHEMA = 7,
19
- }
20
-
21
- export const ChainInputSchema = S.mutable(
22
- S.Struct({
23
- name: S.String,
24
- type: S.optional(S.Enums(ChainInputType)),
25
- value: S.optional(S.String),
26
- }),
27
- );
28
-
29
- export type ChainInput = S.Schema.Type<typeof ChainInputSchema>;
30
-
31
- export class ChainPromptType extends TypedObject({ typename: 'dxos.org/type/ChainPrompt', version: '0.1.0' })({
32
- command: S.optional(S.String),
33
- template: S.String,
34
- inputs: S.optional(S.mutable(S.Array(ChainInputSchema))),
35
- }) {}
36
-
37
- export class ChainType extends TypedObject({ typename: 'dxos.org/type/Chain', version: '0.1.0' })({
38
- name: S.optional(S.String),
39
- prompts: S.optional(S.mutable(S.Array(Ref(ChainPromptType)))),
40
- }) {}
41
-
42
- export class AIChatType extends TypedObject({ typename: 'dxos.org/type/AIChat', version: '0.1.0' })({
43
- name: S.optional(S.String),
44
- // TODO(wittjosiah): Should be a ref to a Queue.
45
- queue: Ref(Expando),
46
- }) {}
47
-
48
- const ApiAuthorizationKey = S.Struct({
49
- type: S.Literal('api-key'),
50
- key: S.String,
51
- placement: S.Union(
52
- S.Struct({
53
- type: S.Literal('authorization-header'),
54
- }),
55
- S.Struct({
56
- type: S.Literal('query'),
57
- name: S.String,
58
- }),
59
- ),
60
- });
61
-
62
- const ApiAuthorizationOauth = S.Struct({
63
- type: S.Literal('oauth'),
64
- clientId: S.String,
65
- clientSecret: S.String,
66
- tokenUrl: S.String,
67
- grantType: S.String,
68
- });
69
-
70
- export const ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
71
- export type ApiAuthorization = S.Schema.Type<typeof ApiAuthorization>;
72
-
73
- const ServiceInterfaceFunction = S.Struct({
74
- kind: S.Literal('function'),
75
- fn: Ref(FunctionType) as Ref$<FunctionType>,
76
- });
77
-
78
- const ServiceInterfaceWorkflow = S.Struct({
79
- kind: S.Literal('workflow'),
80
- workflow: Ref(ComputeGraph) as Ref$<ComputeGraph>,
81
- });
82
-
83
- const ServiceInterfaceApi = S.Struct({
84
- kind: S.Literal('api'),
85
-
86
- /**
87
- * URL to fetch the openapi schema.
88
- */
89
- schemaUrl: S.optional(S.String),
90
-
91
- /**
92
- * Inlined openapi schema.
93
- */
94
- schema: S.optional(S.Any),
95
-
96
- /**
97
- * Authorization configuration if required.
98
- */
99
- authorization: S.optional(ApiAuthorization),
100
- });
101
-
102
- const ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
103
- export type ServiceInterface = S.Schema.Type<typeof ServiceInterface>;
104
-
105
- // export const ServiceType = S.Struct({
106
- // serviceId: S.String,
107
- // name: S.optional(S.String),
108
- // description: S.optional(S.String),
109
- // category: S.optional(S.String),
110
- // enabled: S.optional(S.Boolean),
111
-
112
- // /**
113
- // * Entries exposed: functions, workflows, and APIs.
114
- // */
115
- // interfaces: S.optional(S.Array(ServiceInterface)),
116
- // }).pipe(EchoObject('dxos.org/type/Service', '0.1.0'));
117
- // dxn:type:dxos.org/type/Service
118
-
119
- // export type ServiceType = S.Schema.Type<typeof ServiceType>;
120
-
121
- export class ServiceType extends TypedObject({ typename: 'dxos.org/type/ServiceType', version: '0.1.0' })({
122
- serviceId: S.String,
123
- name: S.optional(S.String),
124
- description: S.optional(S.String),
125
- category: S.optional(S.String),
126
- enabled: S.optional(S.Boolean),
127
-
128
- /**
129
- * Entries exposed: functions, workflows, and APIs.
130
- */
131
- interfaces: S.optional(S.Array(ServiceInterface)),
132
- }) {}
@@ -1,21 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { S } from '@dxos/echo-schema';
6
-
7
- import { AIChatType } from './schema';
8
- import { AUTOMATION_PLUGIN } from '../meta';
9
-
10
- export namespace AutomationAction {
11
- const AUTOMATION_ACTION = `${AUTOMATION_PLUGIN}/action`;
12
-
13
- export class Create extends S.TaggedClass<Create>()(`${AUTOMATION_ACTION}/create`, {
14
- input: S.Struct({
15
- name: S.optional(S.String),
16
- }),
17
- output: S.Struct({
18
- object: AIChatType,
19
- }),
20
- }) {}
21
- }