@dxos/plugin-automation 0.8.4-main.4a85c3132b → 0.8.4-main.4f23b4e393

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 (354) hide show
  1. package/dist/lib/neutral/AutomationPanel-HI63JQ2X.mjs +11 -0
  2. package/dist/lib/neutral/AutomationPlugin.mjs +38 -0
  3. package/dist/lib/neutral/AutomationPlugin.mjs.map +7 -0
  4. package/dist/lib/{browser/cli/index.mjs → neutral/AutomationPlugin.node.mjs} +131 -127
  5. package/dist/lib/neutral/AutomationPlugin.node.mjs.map +7 -0
  6. package/dist/lib/neutral/AutomationSettings-LM5GSR4H.mjs +31 -0
  7. package/dist/lib/neutral/AutomationSettings-LM5GSR4H.mjs.map +7 -0
  8. package/dist/lib/neutral/FunctionsContainer-SR6DHMF6.mjs +38 -0
  9. package/dist/lib/neutral/FunctionsContainer-SR6DHMF6.mjs.map +7 -0
  10. package/dist/lib/{browser/chunk-U55ZXRYM.mjs → neutral/FunctionsPanel-SVRKRUXZ.mjs} +24 -25
  11. package/dist/lib/neutral/FunctionsPanel-SVRKRUXZ.mjs.map +7 -0
  12. package/dist/lib/{browser/chunk-XFXYU645.mjs → neutral/FunctionsRegistry-Z2B5MUD3.mjs} +18 -19
  13. package/dist/lib/neutral/FunctionsRegistry-Z2B5MUD3.mjs.map +7 -0
  14. package/dist/lib/neutral/TriggerSettings-XCHIZPOR.mjs +9 -0
  15. package/dist/lib/neutral/app-graph-builder-GDCGRYEP.mjs +75 -0
  16. package/dist/lib/neutral/app-graph-builder-GDCGRYEP.mjs.map +7 -0
  17. package/dist/lib/neutral/capabilities/index.mjs +15 -0
  18. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  19. package/dist/lib/neutral/capabilities/node.mjs +13 -0
  20. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  21. package/dist/lib/neutral/chunk-2JP77CMN.mjs +42 -0
  22. package/dist/lib/neutral/chunk-2JP77CMN.mjs.map +7 -0
  23. package/dist/lib/{browser/chunk-4EY2KMCM.mjs → neutral/chunk-6CKX6RIL.mjs} +24 -26
  24. package/dist/lib/neutral/chunk-6CKX6RIL.mjs.map +7 -0
  25. package/dist/lib/{browser/chunk-PZNBEKO5.mjs → neutral/chunk-ATECY555.mjs} +7 -4
  26. package/dist/lib/{browser/chunk-PZNBEKO5.mjs.map → neutral/chunk-ATECY555.mjs.map} +3 -3
  27. package/dist/lib/neutral/chunk-DSCOLDT5.mjs +93 -0
  28. package/dist/lib/neutral/chunk-DSCOLDT5.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  30. package/dist/lib/{browser/chunk-ZNI2CGQP.mjs → neutral/chunk-K3C5ZTZA.mjs} +52 -37
  31. package/dist/lib/neutral/chunk-K3C5ZTZA.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-M3TIHFXN.mjs +8 -0
  33. package/dist/lib/neutral/chunk-M3TIHFXN.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-UUC257FA.mjs +12 -0
  35. package/dist/lib/neutral/chunk-UUC257FA.mjs.map +7 -0
  36. package/dist/lib/neutral/components/index.mjs +16 -0
  37. package/dist/lib/neutral/compute-runtime-42CP6VG5.mjs +220 -0
  38. package/dist/lib/neutral/compute-runtime-42CP6VG5.mjs.map +7 -0
  39. package/dist/lib/neutral/containers/index.mjs +13 -0
  40. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  41. package/dist/lib/neutral/create-trigger-from-template-7K3OYOHQ.mjs +68 -0
  42. package/dist/lib/neutral/create-trigger-from-template-7K3OYOHQ.mjs.map +7 -0
  43. package/dist/lib/neutral/hooks/index.mjs +129 -0
  44. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  45. package/dist/lib/neutral/index.mjs +20 -0
  46. package/dist/lib/neutral/meta.json +1 -0
  47. package/dist/lib/neutral/meta.mjs +8 -0
  48. package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs +13 -0
  49. package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs.map +7 -0
  50. package/dist/lib/neutral/operations/index.mjs +8 -0
  51. package/dist/lib/neutral/plugin.mjs +16 -0
  52. package/dist/lib/neutral/plugin.mjs.map +7 -0
  53. package/dist/lib/neutral/react-surface-3OGMAMKV.mjs +57 -0
  54. package/dist/lib/neutral/react-surface-3OGMAMKV.mjs.map +7 -0
  55. package/dist/lib/neutral/translations.mjs +47 -0
  56. package/dist/lib/neutral/translations.mjs.map +7 -0
  57. package/dist/lib/neutral/types/index.mjs +16 -0
  58. package/dist/types/src/AutomationPlugin.d.ts +1 -0
  59. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  60. package/dist/types/src/{cli/plugin.d.ts → AutomationPlugin.node.d.ts} +2 -1
  61. package/dist/types/src/AutomationPlugin.node.d.ts.map +1 -0
  62. package/dist/types/src/AutomationPlugin.test.d.ts +2 -0
  63. package/dist/types/src/AutomationPlugin.test.d.ts.map +1 -0
  64. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  65. package/dist/types/src/capabilities/{compute-runtime/compute-runtime.d.ts → compute-runtime.d.ts} +9 -1
  66. package/dist/types/src/capabilities/compute-runtime.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/index.d.ts +6 -4
  68. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/node.d.ts +6 -0
  70. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  72. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  74. package/dist/types/src/commands/index.d.ts.map +1 -0
  75. package/dist/types/src/{cli/commands → commands}/trigger/create/index.d.ts +6 -6
  76. package/dist/types/src/commands/trigger/create/index.d.ts.map +1 -0
  77. package/dist/types/src/{cli/commands → commands}/trigger/create/queue.d.ts +1 -1
  78. package/dist/types/src/commands/trigger/create/queue.d.ts.map +1 -0
  79. package/dist/types/src/{cli/commands → commands}/trigger/create/subscription.d.ts +1 -1
  80. package/dist/types/src/commands/trigger/create/subscription.d.ts.map +1 -0
  81. package/dist/types/src/{cli/commands → commands}/trigger/create/timer.d.ts +1 -1
  82. package/dist/types/src/commands/trigger/create/timer.d.ts.map +1 -0
  83. package/dist/types/src/{cli/commands → commands}/trigger/index.d.ts +7 -7
  84. package/dist/types/src/commands/trigger/index.d.ts.map +1 -0
  85. package/dist/types/src/{cli/commands → commands}/trigger/list.d.ts +1 -1
  86. package/dist/types/src/commands/trigger/list.d.ts.map +1 -0
  87. package/dist/types/src/commands/trigger/options.d.ts.map +1 -0
  88. package/dist/types/src/{cli/commands → commands}/trigger/remove.d.ts +1 -1
  89. package/dist/types/src/commands/trigger/remove.d.ts.map +1 -0
  90. package/dist/types/src/{cli/commands → commands}/trigger/update/index.d.ts +5 -5
  91. package/dist/types/src/commands/trigger/update/index.d.ts.map +1 -0
  92. package/dist/types/src/commands/trigger/update/queue.d.ts.map +1 -0
  93. package/dist/types/src/commands/trigger/update/subscription.d.ts.map +1 -0
  94. package/dist/types/src/commands/trigger/update/timer.d.ts.map +1 -0
  95. package/dist/types/src/{cli/commands → commands}/trigger/util.d.ts +4 -4
  96. package/dist/types/src/commands/trigger/util.d.ts.map +1 -0
  97. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -1
  98. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  99. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +32 -32
  100. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/AutomationPanel/index.d.ts.map +1 -1
  102. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
  103. package/dist/types/src/components/FunctionsPanel/index.d.ts.map +1 -1
  104. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts.map +1 -1
  105. package/dist/types/src/components/FunctionsRegistry/index.d.ts.map +1 -1
  106. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts +6 -6
  107. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +1 -1
  108. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts +4 -4
  109. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +1 -1
  110. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +1 -1
  111. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  112. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +95 -93
  113. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
  114. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts +3 -1
  115. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts.map +1 -1
  116. package/dist/types/src/containers/AutomationSettings/index.d.ts +1 -2
  117. package/dist/types/src/containers/AutomationSettings/index.d.ts.map +1 -1
  118. package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts +2 -4
  119. package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts.map +1 -1
  120. package/dist/types/src/containers/FunctionsContainer/index.d.ts +1 -2
  121. package/dist/types/src/containers/FunctionsContainer/index.d.ts.map +1 -1
  122. package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts +3 -3
  123. package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts.map +1 -1
  124. package/dist/types/src/containers/TriggerSettings/index.d.ts +2 -2
  125. package/dist/types/src/containers/TriggerSettings/index.d.ts.map +1 -1
  126. package/dist/types/src/hooks/index.d.ts +2 -0
  127. package/dist/types/src/hooks/index.d.ts.map +1 -1
  128. package/dist/types/src/hooks/useComputeRuntime.d.ts +8 -0
  129. package/dist/types/src/hooks/useComputeRuntime.d.ts.map +1 -0
  130. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +2 -5
  131. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +1 -1
  132. package/dist/types/src/hooks/useComputeRuntimeService.d.ts +17 -0
  133. package/dist/types/src/hooks/useComputeRuntimeService.d.ts.map +1 -0
  134. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +1 -1
  135. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -1
  136. package/dist/types/src/index.d.ts +0 -3
  137. package/dist/types/src/index.d.ts.map +1 -1
  138. package/dist/types/src/meta.d.ts.map +1 -1
  139. package/dist/types/src/operations/create-trigger-from-template.d.ts +5 -0
  140. package/dist/types/src/operations/create-trigger-from-template.d.ts.map +1 -0
  141. package/dist/types/src/operations/index.d.ts +3 -0
  142. package/dist/types/src/operations/index.d.ts.map +1 -0
  143. package/dist/types/src/plugin.d.ts +4 -0
  144. package/dist/types/src/plugin.d.ts.map +1 -0
  145. package/dist/types/src/testing/test-functions.d.ts +78 -76
  146. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  147. package/dist/types/src/translations.d.ts +32 -33
  148. package/dist/types/src/translations.d.ts.map +1 -1
  149. package/dist/types/src/types/AutomationCapabilities.d.ts +22 -0
  150. package/dist/types/src/types/AutomationCapabilities.d.ts.map +1 -0
  151. package/dist/types/src/types/AutomationEvents.d.ts +3 -0
  152. package/dist/types/src/types/AutomationEvents.d.ts.map +1 -0
  153. package/dist/types/src/types/AutomationOperation.d.ts +19 -0
  154. package/dist/types/src/types/AutomationOperation.d.ts.map +1 -0
  155. package/dist/types/src/types/index.d.ts +3 -2
  156. package/dist/types/src/types/index.d.ts.map +1 -1
  157. package/dist/types/src/types/schema.d.ts +9 -30
  158. package/dist/types/src/types/schema.d.ts.map +1 -1
  159. package/dist/types/tsconfig.tsbuildinfo +1 -1
  160. package/package.json +115 -66
  161. package/src/AutomationPlugin.node.ts +29 -0
  162. package/src/AutomationPlugin.test.ts +27 -0
  163. package/src/AutomationPlugin.tsx +11 -9
  164. package/src/capabilities/app-graph-builder.ts +66 -0
  165. package/src/capabilities/compute-runtime.ts +325 -0
  166. package/src/capabilities/index.ts +10 -4
  167. package/src/capabilities/node.ts +13 -0
  168. package/src/capabilities/operation-handler.ts +16 -0
  169. package/src/capabilities/react-surface.tsx +59 -0
  170. package/src/{cli/commands → commands}/trigger/create/queue.ts +5 -8
  171. package/src/{cli/commands → commands}/trigger/create/subscription.ts +8 -11
  172. package/src/{cli/commands → commands}/trigger/create/timer.ts +4 -7
  173. package/src/{cli/commands → commands}/trigger/list.ts +7 -4
  174. package/src/{cli/commands → commands}/trigger/remove.ts +2 -3
  175. package/src/{cli/commands → commands}/trigger/update/queue.ts +17 -18
  176. package/src/{cli/commands → commands}/trigger/update/subscription.ts +15 -15
  177. package/src/{cli/commands → commands}/trigger/update/timer.ts +16 -16
  178. package/src/{cli/commands → commands}/trigger/util.ts +39 -24
  179. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +6 -5
  180. package/src/components/AutomationPanel/AutomationPanel.tsx +53 -46
  181. package/src/components/FunctionsPanel/FunctionsPanel.tsx +35 -27
  182. package/src/components/FunctionsRegistry/FunctionsRegistry.tsx +24 -19
  183. package/src/components/TriggerEditor/FunctionInputEditor.tsx +4 -4
  184. package/src/components/TriggerEditor/SpecSelector.tsx +17 -13
  185. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +14 -14
  186. package/src/components/TriggerEditor/TriggerEditor.tsx +30 -17
  187. package/src/containers/AutomationSettings/AutomationSettings.tsx +12 -8
  188. package/src/containers/AutomationSettings/index.ts +1 -3
  189. package/src/containers/FunctionsContainer/FunctionsContainer.tsx +11 -11
  190. package/src/containers/FunctionsContainer/index.ts +1 -3
  191. package/src/containers/TriggerSettings/TriggerSettings.tsx +32 -10
  192. package/src/containers/TriggerSettings/index.ts +2 -3
  193. package/src/hooks/index.ts +3 -0
  194. package/src/hooks/useComputeRuntime.ts +30 -0
  195. package/src/hooks/useComputeRuntimeCallback.ts +6 -42
  196. package/src/hooks/useComputeRuntimeService.ts +64 -0
  197. package/src/hooks/useTriggerRuntimeControls.ts +6 -3
  198. package/src/index.ts +0 -4
  199. package/src/meta.ts +3 -2
  200. package/src/operations/create-trigger-from-template.ts +71 -0
  201. package/src/operations/index.ts +7 -0
  202. package/src/plugin.ts +11 -0
  203. package/src/testing/test-functions.ts +6 -3
  204. package/src/translations.ts +38 -39
  205. package/src/types/AutomationCapabilities.ts +48 -0
  206. package/src/types/AutomationEvents.ts +11 -0
  207. package/src/types/AutomationOperation.ts +30 -0
  208. package/src/types/index.ts +4 -2
  209. package/src/types/schema.ts +3 -24
  210. package/dist/lib/browser/AutomationPanel-EHRSV2DL.mjs +0 -11
  211. package/dist/lib/browser/AutomationSettings-TJYG77L6.mjs +0 -37
  212. package/dist/lib/browser/AutomationSettings-TJYG77L6.mjs.map +0 -7
  213. package/dist/lib/browser/FunctionsContainer-XHEQSNNO.mjs +0 -43
  214. package/dist/lib/browser/FunctionsContainer-XHEQSNNO.mjs.map +0 -7
  215. package/dist/lib/browser/FunctionsPanel-5WPUZGRB.mjs +0 -10
  216. package/dist/lib/browser/FunctionsRegistry-XRXIZRLL.mjs +0 -10
  217. package/dist/lib/browser/TriggerSettings-HUQT53SV.mjs +0 -13
  218. package/dist/lib/browser/TriggerSettings-HUQT53SV.mjs.map +0 -7
  219. package/dist/lib/browser/app-graph-builder-HLARI3VW.mjs +0 -85
  220. package/dist/lib/browser/app-graph-builder-HLARI3VW.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-3P4R5WNC.mjs +0 -8
  222. package/dist/lib/browser/chunk-3P4R5WNC.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-4EY2KMCM.mjs.map +0 -7
  224. package/dist/lib/browser/chunk-QPG3AKFX.mjs +0 -93
  225. package/dist/lib/browser/chunk-QPG3AKFX.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-SEG5OCGB.mjs +0 -31
  227. package/dist/lib/browser/chunk-SEG5OCGB.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-U55ZXRYM.mjs.map +0 -7
  229. package/dist/lib/browser/chunk-WOBCY2FQ.mjs +0 -83
  230. package/dist/lib/browser/chunk-WOBCY2FQ.mjs.map +0 -7
  231. package/dist/lib/browser/chunk-XFXYU645.mjs.map +0 -7
  232. package/dist/lib/browser/chunk-ZNI2CGQP.mjs.map +0 -7
  233. package/dist/lib/browser/cli/index.mjs.map +0 -7
  234. package/dist/lib/browser/compute-runtime-L2RVWXY2.mjs +0 -124
  235. package/dist/lib/browser/compute-runtime-L2RVWXY2.mjs.map +0 -7
  236. package/dist/lib/browser/hooks/index.mjs +0 -13
  237. package/dist/lib/browser/index.mjs +0 -123
  238. package/dist/lib/browser/index.mjs.map +0 -7
  239. package/dist/lib/browser/meta.json +0 -1
  240. package/dist/lib/browser/operation-resolver-2U6ZQVXR.mjs +0 -83
  241. package/dist/lib/browser/operation-resolver-2U6ZQVXR.mjs.map +0 -7
  242. package/dist/lib/browser/react-surface-U6FAYV42.mjs +0 -69
  243. package/dist/lib/browser/react-surface-U6FAYV42.mjs.map +0 -7
  244. package/dist/lib/browser/types/index.mjs +0 -14
  245. package/dist/lib/node-esm/AutomationPanel-F7MPUR7U.mjs +0 -12
  246. package/dist/lib/node-esm/AutomationSettings-5AHJMILI.mjs +0 -38
  247. package/dist/lib/node-esm/AutomationSettings-5AHJMILI.mjs.map +0 -7
  248. package/dist/lib/node-esm/FunctionsContainer-U5UVRKVT.mjs +0 -44
  249. package/dist/lib/node-esm/FunctionsContainer-U5UVRKVT.mjs.map +0 -7
  250. package/dist/lib/node-esm/FunctionsPanel-UFL5LT2R.mjs +0 -11
  251. package/dist/lib/node-esm/FunctionsPanel-UFL5LT2R.mjs.map +0 -7
  252. package/dist/lib/node-esm/FunctionsRegistry-574OBZ5T.mjs +0 -11
  253. package/dist/lib/node-esm/FunctionsRegistry-574OBZ5T.mjs.map +0 -7
  254. package/dist/lib/node-esm/TriggerSettings-RDIJHUKK.mjs +0 -14
  255. package/dist/lib/node-esm/TriggerSettings-RDIJHUKK.mjs.map +0 -7
  256. package/dist/lib/node-esm/app-graph-builder-Z2TMQHVX.mjs +0 -86
  257. package/dist/lib/node-esm/app-graph-builder-Z2TMQHVX.mjs.map +0 -7
  258. package/dist/lib/node-esm/chunk-2X564LII.mjs +0 -10
  259. package/dist/lib/node-esm/chunk-2X564LII.mjs.map +0 -7
  260. package/dist/lib/node-esm/chunk-34HGM46Z.mjs +0 -32
  261. package/dist/lib/node-esm/chunk-34HGM46Z.mjs.map +0 -7
  262. package/dist/lib/node-esm/chunk-4DK33JDH.mjs +0 -84
  263. package/dist/lib/node-esm/chunk-4DK33JDH.mjs.map +0 -7
  264. package/dist/lib/node-esm/chunk-5FXNN3MV.mjs +0 -19
  265. package/dist/lib/node-esm/chunk-5FXNN3MV.mjs.map +0 -7
  266. package/dist/lib/node-esm/chunk-7AIKTEAX.mjs +0 -273
  267. package/dist/lib/node-esm/chunk-7AIKTEAX.mjs.map +0 -7
  268. package/dist/lib/node-esm/chunk-CMZ4NKSK.mjs +0 -271
  269. package/dist/lib/node-esm/chunk-CMZ4NKSK.mjs.map +0 -7
  270. package/dist/lib/node-esm/chunk-GXFQR3KI.mjs +0 -99
  271. package/dist/lib/node-esm/chunk-GXFQR3KI.mjs.map +0 -7
  272. package/dist/lib/node-esm/chunk-QNPYY3XZ.mjs +0 -94
  273. package/dist/lib/node-esm/chunk-QNPYY3XZ.mjs.map +0 -7
  274. package/dist/lib/node-esm/chunk-RTEXGGBX.mjs +0 -97
  275. package/dist/lib/node-esm/chunk-RTEXGGBX.mjs.map +0 -7
  276. package/dist/lib/node-esm/cli/index.mjs +0 -1109
  277. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  278. package/dist/lib/node-esm/compute-runtime-XD6A5Q7Q.mjs +0 -125
  279. package/dist/lib/node-esm/compute-runtime-XD6A5Q7Q.mjs.map +0 -7
  280. package/dist/lib/node-esm/hooks/index.mjs +0 -14
  281. package/dist/lib/node-esm/index.mjs +0 -124
  282. package/dist/lib/node-esm/index.mjs.map +0 -7
  283. package/dist/lib/node-esm/meta.json +0 -1
  284. package/dist/lib/node-esm/operation-resolver-XWJGBHJZ.mjs +0 -84
  285. package/dist/lib/node-esm/operation-resolver-XWJGBHJZ.mjs.map +0 -7
  286. package/dist/lib/node-esm/react-surface-BVNHCWQ7.mjs +0 -70
  287. package/dist/lib/node-esm/react-surface-BVNHCWQ7.mjs.map +0 -7
  288. package/dist/lib/node-esm/types/index.mjs +0 -15
  289. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  290. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  291. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  292. package/dist/types/src/capabilities/compute-runtime/compute-runtime.d.ts.map +0 -1
  293. package/dist/types/src/capabilities/compute-runtime/index.d.ts +0 -3
  294. package/dist/types/src/capabilities/compute-runtime/index.d.ts.map +0 -1
  295. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  296. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  297. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  298. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  299. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  300. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  301. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  302. package/dist/types/src/cli/commands/index.d.ts.map +0 -1
  303. package/dist/types/src/cli/commands/trigger/create/index.d.ts.map +0 -1
  304. package/dist/types/src/cli/commands/trigger/create/queue.d.ts.map +0 -1
  305. package/dist/types/src/cli/commands/trigger/create/subscription.d.ts.map +0 -1
  306. package/dist/types/src/cli/commands/trigger/create/timer.d.ts.map +0 -1
  307. package/dist/types/src/cli/commands/trigger/index.d.ts.map +0 -1
  308. package/dist/types/src/cli/commands/trigger/list.d.ts.map +0 -1
  309. package/dist/types/src/cli/commands/trigger/options.d.ts.map +0 -1
  310. package/dist/types/src/cli/commands/trigger/remove.d.ts.map +0 -1
  311. package/dist/types/src/cli/commands/trigger/update/index.d.ts.map +0 -1
  312. package/dist/types/src/cli/commands/trigger/update/queue.d.ts.map +0 -1
  313. package/dist/types/src/cli/commands/trigger/update/subscription.d.ts.map +0 -1
  314. package/dist/types/src/cli/commands/trigger/update/timer.d.ts.map +0 -1
  315. package/dist/types/src/cli/commands/trigger/util.d.ts.map +0 -1
  316. package/dist/types/src/cli/index.d.ts +0 -2
  317. package/dist/types/src/cli/index.d.ts.map +0 -1
  318. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  319. package/dist/types/src/types/capabilities.d.ts +0 -22
  320. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  321. package/dist/types/src/types/events.d.ts +0 -5
  322. package/dist/types/src/types/events.d.ts.map +0 -1
  323. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -72
  324. package/src/capabilities/app-graph-builder/index.ts +0 -7
  325. package/src/capabilities/compute-runtime/compute-runtime.ts +0 -146
  326. package/src/capabilities/compute-runtime/index.ts +0 -7
  327. package/src/capabilities/operation-resolver/index.ts +0 -7
  328. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -80
  329. package/src/capabilities/react-surface/index.ts +0 -7
  330. package/src/capabilities/react-surface/react-surface.tsx +0 -61
  331. package/src/cli/index.ts +0 -5
  332. package/src/cli/plugin.ts +0 -24
  333. package/src/types/capabilities.ts +0 -43
  334. package/src/types/events.ts +0 -11
  335. /package/dist/lib/{browser/AutomationPanel-EHRSV2DL.mjs.map → neutral/AutomationPanel-HI63JQ2X.mjs.map} +0 -0
  336. /package/dist/lib/{browser/FunctionsPanel-5WPUZGRB.mjs.map → neutral/TriggerSettings-XCHIZPOR.mjs.map} +0 -0
  337. /package/dist/lib/{browser/FunctionsRegistry-XRXIZRLL.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  338. /package/dist/lib/{browser/hooks → neutral/components}/index.mjs.map +0 -0
  339. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  340. /package/dist/lib/{node-esm/AutomationPanel-F7MPUR7U.mjs.map → neutral/meta.mjs.map} +0 -0
  341. /package/dist/lib/{node-esm/hooks → neutral/operations}/index.mjs.map +0 -0
  342. /package/dist/lib/{node-esm → neutral}/types/index.mjs.map +0 -0
  343. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  344. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
  345. /package/dist/types/src/{cli/commands → commands}/index.d.ts +0 -0
  346. /package/dist/types/src/{cli/commands → commands}/trigger/options.d.ts +0 -0
  347. /package/dist/types/src/{cli/commands → commands}/trigger/update/queue.d.ts +0 -0
  348. /package/dist/types/src/{cli/commands → commands}/trigger/update/subscription.d.ts +0 -0
  349. /package/dist/types/src/{cli/commands → commands}/trigger/update/timer.d.ts +0 -0
  350. /package/src/{cli/commands → commands}/index.ts +0 -0
  351. /package/src/{cli/commands → commands}/trigger/create/index.ts +0 -0
  352. /package/src/{cli/commands → commands}/trigger/index.ts +0 -0
  353. /package/src/{cli/commands → commands}/trigger/options.ts +0 -0
  354. /package/src/{cli/commands → commands}/trigger/update/index.ts +0 -0
@@ -1,13 +1,9 @@
1
- import {
2
- meta
3
- } from "./chunk-PZNBEKO5.mjs";
4
-
5
1
  // src/components/TriggerEditor/TriggerEditor.tsx
6
2
  import React3, { useCallback as useCallback3, useMemo as useMemo3 } from "react";
3
+ import { Operation, Script, Trigger as Trigger2 } from "@dxos/compute";
7
4
  import { ComputeGraph } from "@dxos/conductor";
8
- import { DXN, Obj as Obj2 } from "@dxos/echo";
9
- import { Function, Script, Trigger as Trigger2 } from "@dxos/functions";
10
- import { Filter as Filter2, Ref as Ref2, useQuery } from "@dxos/react-client/echo";
5
+ import { DXN, Entity, Feed, Filter as Filter2, Obj as Obj2, Ref as Ref2 } from "@dxos/echo";
6
+ import { useQuery } from "@dxos/react-client/echo";
11
7
  import { Input } from "@dxos/react-ui";
12
8
  import { QueryForm } from "@dxos/react-ui-components";
13
9
  import { Form as Form2, FormFieldLabel, SelectField as SelectField2, omitId } from "@dxos/react-ui-form";
@@ -17,6 +13,7 @@ import React, { useCallback, useMemo } from "react";
17
13
  import { JsonSchema, Obj, Ref } from "@dxos/echo";
18
14
  import { useOnTransition, useTranslation } from "@dxos/react-ui";
19
15
  import { Form, useFormValues } from "@dxos/react-ui-form";
16
+ import { meta } from "#meta";
20
17
  var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) => {
21
18
  const { t } = useTranslation(meta.id);
22
19
  const selectedFunctionValue = useFormValues(FunctionInputEditor.displayName, [
@@ -72,7 +69,7 @@ var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) =>
72
69
  return null;
73
70
  }
74
71
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Form.Label, {
75
- label: t("function parameters label"),
72
+ label: t("function-parameters.label"),
76
73
  asChild: true
77
74
  }), /* @__PURE__ */ React.createElement(Form.Root, {
78
75
  key: selectedFunction.id,
@@ -86,12 +83,13 @@ FunctionInputEditor.displayName = "AutomationTrigger.FunctionInputEditor";
86
83
 
87
84
  // src/components/TriggerEditor/SpecSelector.tsx
88
85
  import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
86
+ import { Trigger } from "@dxos/compute";
89
87
  import { Filter, Query } from "@dxos/echo";
90
- import { Trigger } from "@dxos/functions";
91
88
  import { useTranslation as useTranslation2 } from "@dxos/react-ui";
92
89
  import { SelectField, useFormFieldState } from "@dxos/react-ui-form";
90
+ import { meta as meta2 } from "#meta";
93
91
  var SpecSelector = (props) => {
94
- const { t } = useTranslation2(meta.id);
92
+ const { t } = useTranslation2(meta2.id);
95
93
  const specProps = useFormFieldState(SpecSelector.displayName, [
96
94
  "spec"
97
95
  ]);
@@ -99,30 +97,15 @@ var SpecSelector = (props) => {
99
97
  const getDefaultTriggerSpec = (kind) => {
100
98
  switch (kind) {
101
99
  case "timer":
102
- return {
103
- kind: "timer",
104
- cron: ""
105
- };
100
+ return Trigger.specTimer("");
106
101
  case "subscription":
107
- return {
108
- kind: "subscription",
109
- query: {
110
- ast: Query.select(Filter.nothing()).ast
111
- }
112
- };
102
+ return Trigger.specSubscription(Query.select(Filter.nothing()));
113
103
  case "queue":
114
- return {
115
- kind: "queue",
116
- queue: "dxn:queue:default"
117
- };
104
+ return Trigger.specQueue("dxn:queue:default");
118
105
  case "email":
119
- return {
120
- kind: "email"
121
- };
106
+ return Trigger.specEmail();
122
107
  case "webhook":
123
- return {
124
- kind: "webhook"
125
- };
108
+ return Trigger.specWebhook();
126
109
  default:
127
110
  return void 0;
128
111
  }
@@ -136,9 +119,17 @@ var SpecSelector = (props) => {
136
119
  props.type,
137
120
  specProps
138
121
  ]);
122
+ const kindLabels = {
123
+ timer: t("trigger-type.timer.label"),
124
+ webhook: t("trigger-type.webhook.label"),
125
+ websocket: t("trigger-type.websocket.label"),
126
+ subscription: t("trigger-type.subscription.label"),
127
+ email: t("trigger-type.email.label"),
128
+ queue: t("trigger-type.queue.label")
129
+ };
139
130
  const options = useMemo2(() => Trigger.Kinds.map((kind) => ({
140
131
  value: kind,
141
- label: t(`trigger type ${kind}`)
132
+ label: kindLabels[kind]
142
133
  })), [
143
134
  t
144
135
  ]);
@@ -159,12 +150,13 @@ var TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }) =
159
150
  readonlySpec
160
151
  });
161
152
  const handleValuesChanged = useCallback3((newValues) => {
162
- Obj2.change(trigger, (t) => {
163
- Object.assign(t, newValues);
153
+ Obj2.update(trigger, (trigger2) => {
154
+ Object.assign(trigger2, newValues);
164
155
  });
165
156
  }, [
166
157
  trigger
167
158
  ]);
159
+ const triggerSchema = useMemo3(() => omitId(Trigger2.Trigger), []);
168
160
  const defaultValues = useMemo3(() => {
169
161
  const { id: _, ...values } = trigger;
170
162
  return values;
@@ -173,17 +165,18 @@ var TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }) =
173
165
  ]);
174
166
  return /* @__PURE__ */ React3.createElement(Form2.Root, {
175
167
  ...formProps,
176
- schema: omitId(Trigger2.Trigger),
177
- defaultValues,
178
168
  db,
169
+ schema: triggerSchema,
170
+ defaultValues,
179
171
  fieldMap,
180
172
  onValuesChanged: handleValuesChanged
181
173
  }, /* @__PURE__ */ React3.createElement(Form2.Viewport, null, /* @__PURE__ */ React3.createElement(Form2.Content, null, /* @__PURE__ */ React3.createElement(Form2.FieldSet, null), /* @__PURE__ */ React3.createElement(Form2.Actions, null))));
182
174
  };
183
175
  var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
184
- const functions = useQuery(db, Filter2.type(Function.Function));
176
+ const functions = useQuery(db, Filter2.type(Operation.PersistentOperation));
185
177
  const workflows = useQuery(db, Filter2.type(ComputeGraph));
186
178
  const scripts = useQuery(db, Filter2.type(Script.Script));
179
+ const feeds = useQuery(db, Filter2.type(Feed.Feed));
187
180
  return useMemo3(() => ({
188
181
  // Function selector.
189
182
  ["function"]: (props) => {
@@ -218,6 +211,11 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
218
211
  ...props,
219
212
  readonly: readonlySpec
220
213
  }),
214
+ // Queue feed selector with parent labels.
215
+ "spec.queue": (props) => /* @__PURE__ */ React3.createElement(SelectField2, {
216
+ ...props,
217
+ options: getFeedQueueOptions(feeds)
218
+ }),
221
219
  // TODO(wittjosiah): Copied from ViewEditor.
222
220
  // Query input editor.
223
221
  "spec.query": (props) => {
@@ -247,6 +245,7 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
247
245
  workflows,
248
246
  scripts,
249
247
  functions,
248
+ feeds,
250
249
  readonlySpec
251
250
  ]);
252
251
  };
@@ -263,8 +262,24 @@ var getFunctionOptions = (scripts, functions) => {
263
262
  value: `dxn:echo:@:${fn.id}`
264
263
  }));
265
264
  };
265
+ var getFeedQueueOptions = (feeds) => {
266
+ return feeds.flatMap((feed) => {
267
+ const queueDXN = Feed.getQueueDxn(feed);
268
+ if (!queueDXN) {
269
+ return [];
270
+ }
271
+ const parent = Obj2.getParent(feed);
272
+ const label = parent ? Entity.getLabel(parent) : Entity.getLabel(feed);
273
+ return [
274
+ {
275
+ label: label ?? feed.id,
276
+ value: queueDXN.toString()
277
+ }
278
+ ];
279
+ });
280
+ };
266
281
 
267
282
  export {
268
283
  TriggerEditor
269
284
  };
270
- //# sourceMappingURL=chunk-ZNI2CGQP.mjs.map
285
+ //# sourceMappingURL=chunk-K3C5ZTZA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/TriggerEditor/TriggerEditor.tsx", "../../../src/components/TriggerEditor/FunctionInputEditor.tsx", "../../../src/components/TriggerEditor/SpecSelector.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Operation, Script, Trigger } from '@dxos/compute';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { type Database, DXN, Entity, Feed, Filter, Obj, type Query, Ref } from '@dxos/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { QueryForm, type QueryFormProps } from '@dxos/react-ui-components';\nimport {\n type ExcludeId,\n Form,\n FormFieldLabel,\n type FormFieldMap,\n type FormRootProps,\n SelectField,\n omitId,\n} from '@dxos/react-ui-form';\n\nimport { FunctionInputEditor } from './FunctionInputEditor';\nimport { SpecSelector } from './SpecSelector';\n\ntype TriggerFormSchema = ExcludeId<typeof Trigger.Trigger>;\n\nexport type TriggerEditorProps = {\n db: Database.Database;\n trigger: Trigger.Trigger;\n // TODO(wittjosiah): This needs to apply to whole spec but currently only applies to spec.kind & spec.query.\n readonlySpec?: boolean;\n} &\n // prettier-ignore\n Pick<QueryFormProps, 'types' | 'tags'> &\n Pick<FormRootProps<TriggerFormSchema>, 'onSave' | 'onCancel'>;\n\nexport const TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }: TriggerEditorProps) => {\n const fieldMap = useCustomInputs({ db, types, tags, readonlySpec });\n\n const handleValuesChanged = useCallback(\n (newValues: Partial<TriggerFormSchema>) => {\n Obj.update(trigger, (trigger) => {\n Object.assign(trigger, newValues);\n });\n },\n [trigger],\n );\n\n const triggerSchema = useMemo(() => omitId(Trigger.Trigger), []);\n const defaultValues = useMemo(() => {\n const { id: _, ...values } = trigger;\n return values;\n }, [trigger]);\n\n return (\n <Form.Root<TriggerFormSchema>\n {...formProps}\n db={db}\n schema={triggerSchema}\n defaultValues={defaultValues}\n fieldMap={fieldMap}\n onValuesChanged={handleValuesChanged}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Actions />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n\ntype UseCustomInputsProps = {\n db: Database.Database;\n readonlySpec?: boolean;\n} & Pick<QueryFormProps, 'types' | 'tags'>;\n\nconst useCustomInputs = ({ db, readonlySpec, types, tags }: UseCustomInputsProps): FormFieldMap => {\n const functions = useQuery(db, Filter.type(Operation.PersistentOperation));\n const workflows = useQuery(db, Filter.type(ComputeGraph));\n const scripts = useQuery(db, Filter.type(Script.Script));\n const feeds = useQuery(db, Filter.type(Feed.Feed));\n\n return useMemo(\n (): FormFieldMap => ({\n // Function selector.\n ['function' satisfies keyof Trigger.Trigger]: (props) => {\n const getValue = useCallback(() => {\n const formValue = props.getValue();\n if (Ref.isRef(formValue)) {\n return formValue.dxn.toString() as string;\n }\n return undefined;\n }, [props]);\n\n const handleOnValueChange = useCallback(\n (_type: any, dxnString: string) => {\n const dxn = DXN.parse(dxnString);\n if (dxn) {\n const ref = Ref.fromDXN(dxn);\n props.onValueChange(props.type, ref);\n }\n },\n [props.type, props.onValueChange],\n );\n\n return (\n <SelectField\n {...props}\n getValue={getValue as any}\n onValueChange={handleOnValueChange}\n options={getWorkflowOptions(workflows).concat(getFunctionOptions(scripts, functions))}\n />\n );\n },\n\n // Spec selector.\n 'spec.kind': (props) => <SpecSelector {...props} readonly={readonlySpec} />,\n\n // Queue feed selector with parent labels.\n 'spec.queue': (props) => <SelectField {...props} options={getFeedQueueOptions(feeds)} />,\n\n // TODO(wittjosiah): Copied from ViewEditor.\n // Query input editor.\n 'spec.query': (props) => {\n const handleChange = useCallback(\n (query: Query.Any) => props.onValueChange(props.type, { ast: query.ast }),\n [props.type, props.onValueChange],\n );\n\n return (\n <Input.Root>\n <FormFieldLabel label={props.label} asChild />\n <QueryForm initialQuery={(props.getValue() as any).ast} types={types} tags={tags} onChange={handleChange} />\n </Input.Root>\n );\n },\n\n // Function input editor.\n input: (props) => <FunctionInputEditor {...props} functions={functions} db={db} />,\n }),\n [workflows, scripts, functions, feeds, readonlySpec],\n );\n};\n\nconst getWorkflowOptions = (graphs: ComputeGraph[]) => {\n return graphs.map((graph) => ({ label: `compute-${graph.id}`, value: `dxn:echo:@:${graph.id}` }));\n};\n\nconst getFunctionOptions = (scripts: Script.Script[], functions: Operation.PersistentOperation[]) => {\n const getLabel = (fn: Operation.PersistentOperation) =>\n scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;\n return functions.map((fn) => ({ label: getLabel(fn), value: `dxn:echo:@:${fn.id}` }));\n};\n\nconst getFeedQueueOptions = (feeds: Feed.Feed[]) => {\n return feeds.flatMap((feed) => {\n const queueDXN = Feed.getQueueDxn(feed);\n if (!queueDXN) {\n return [];\n }\n const parent = Obj.getParent(feed);\n const label = parent ? Entity.getLabel(parent) : Entity.getLabel(feed);\n return [{ label: label ?? feed.id, value: queueDXN.toString() }];\n });\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as SchemaAST from 'effect/SchemaAST';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { type Operation } from '@dxos/compute';\nimport { type Database, JsonSchema, Obj, Ref } from '@dxos/echo';\nimport { type JsonPath } from '@dxos/echo/internal';\nimport { useOnTransition, useTranslation } from '@dxos/react-ui';\nimport { Form, type FormFieldStateProps, type FormRootProps, useFormValues } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\n\nexport type FunctionInputEditorProps = {\n type: SchemaAST.AST;\n functions: Operation.PersistentOperation[];\n db?: Database.Database;\n} & FormFieldStateProps;\n\nexport const FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }: FunctionInputEditorProps) => {\n const { t } = useTranslation(meta.id);\n const selectedFunctionValue = useFormValues(FunctionInputEditor.displayName, ['function' as JsonPath]);\n const selectedFunctionId = useMemo(() => {\n if (Ref.isRef(selectedFunctionValue)) {\n return selectedFunctionValue.dxn.toString().split('dxn:echo:@:').at(1);\n }\n }, [selectedFunctionValue]);\n\n const selectedFunction = useMemo(\n () => functions.find((fn) => fn.id === selectedFunctionId),\n [functions, selectedFunctionId],\n );\n\n useOnTransition(\n // Clear function parameter input when the function changes.\n selectedFunctionValue,\n (prevValue) => {\n if (!Ref.isRef(prevValue) || !Ref.isRef(selectedFunctionValue)) {\n return false;\n }\n\n return prevValue.dxn.toString() !== selectedFunctionValue.dxn.toString();\n },\n (currValue) => currValue !== undefined,\n () => onValueChange(type, {}),\n );\n\n const inputSchema = useMemo(() => selectedFunction?.inputSchema, [selectedFunction]);\n const effectSchema = useMemo(() => (inputSchema ? JsonSchema.toEffectSchema(inputSchema) : undefined), [inputSchema]);\n const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;\n const defaultValues = useMemo(() => {\n const raw = getValue() ?? {};\n return Obj.isObject(raw) ? { ...Obj.getSnapshot(raw) } : { ...raw };\n }, [getValue]);\n\n const handleValuesChanged = useCallback<NonNullable<FormRootProps['onValuesChanged']>>(\n (values) => {\n onValueChange(type, values);\n },\n [type, onValueChange],\n );\n\n if (selectedFunction === undefined || effectSchema === undefined || propertyCount === 0) {\n return null;\n }\n\n return (\n <>\n <Form.Label label={t('function-parameters.label')} asChild />\n <Form.Root\n key={selectedFunction.id}\n schema={effectSchema}\n defaultValues={defaultValues}\n db={db}\n onValuesChanged={handleValuesChanged}\n >\n <Form.FieldSet />\n </Form.Root>\n </>\n );\n};\n\nFunctionInputEditor.displayName = 'AutomationTrigger.FunctionInputEditor';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Trigger } from '@dxos/compute';\nimport { Filter, Query } from '@dxos/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { type FormFieldComponentProps, SelectField, useFormFieldState } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\n\nexport type SpecSelectorProps = FormFieldComponentProps;\n\nexport const SpecSelector = (props: SpecSelectorProps) => {\n const { t } = useTranslation(meta.id);\n const specProps = useFormFieldState(SpecSelector.displayName, ['spec' satisfies keyof Trigger.Trigger]);\n\n const handleTypeChange = useCallback(\n (_type: any, value: string): Trigger.Spec | undefined => {\n const getDefaultTriggerSpec = (kind: string) => {\n switch (kind) {\n case 'timer':\n return Trigger.specTimer('');\n case 'subscription':\n return Trigger.specSubscription(Query.select(Filter.nothing()));\n case 'queue':\n return Trigger.specQueue('dxn:queue:default');\n case 'email':\n return Trigger.specEmail();\n case 'webhook':\n return Trigger.specWebhook();\n default:\n return undefined;\n }\n };\n\n const defaultSpec = getDefaultTriggerSpec(value);\n if (!defaultSpec) {\n return;\n }\n\n // Update the entire spec object, not just the `spec.kind`.\n specProps.onValueChange(props.type, defaultSpec);\n },\n [props.type, specProps],\n );\n\n const kindLabels: Record<string, string> = {\n timer: t('trigger-type.timer.label'),\n webhook: t('trigger-type.webhook.label'),\n websocket: t('trigger-type.websocket.label'),\n subscription: t('trigger-type.subscription.label'),\n email: t('trigger-type.email.label'),\n queue: t('trigger-type.queue.label'),\n };\n\n const options = useMemo(\n () =>\n Trigger.Kinds.map((kind) => ({\n value: kind,\n label: kindLabels[kind],\n })),\n [t],\n );\n\n return <SelectField {...props} options={options} onValueChange={handleTypeChange} />;\n};\n\nSpecSelector.displayName = 'Form.SpecSelector';\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "Operation", "Script", "Trigger", "ComputeGraph", "DXN", "Entity", "Feed", "Filter", "Obj", "Ref", "useQuery", "Input", "QueryForm", "Form", "FormFieldLabel", "SelectField", "omitId", "React", "useCallback", "useMemo", "JsonSchema", "Obj", "Ref", "useOnTransition", "useTranslation", "Form", "useFormValues", "meta", "FunctionInputEditor", "type", "functions", "db", "getValue", "onValueChange", "t", "id", "selectedFunctionValue", "displayName", "selectedFunctionId", "isRef", "dxn", "toString", "split", "at", "selectedFunction", "find", "fn", "prevValue", "currValue", "undefined", "inputSchema", "effectSchema", "toEffectSchema", "propertyCount", "properties", "Object", "keys", "length", "defaultValues", "raw", "isObject", "getSnapshot", "handleValuesChanged", "values", "Label", "label", "asChild", "Root", "key", "schema", "onValuesChanged", "FieldSet", "React", "useCallback", "useMemo", "Trigger", "Filter", "Query", "useTranslation", "SelectField", "useFormFieldState", "meta", "SpecSelector", "props", "t", "id", "specProps", "displayName", "handleTypeChange", "_type", "value", "getDefaultTriggerSpec", "kind", "specTimer", "specSubscription", "select", "nothing", "specQueue", "specEmail", "specWebhook", "undefined", "defaultSpec", "onValueChange", "type", "kindLabels", "timer", "webhook", "websocket", "subscription", "email", "queue", "options", "Kinds", "map", "label", "TriggerEditor", "db", "types", "tags", "readonlySpec", "trigger", "formProps", "fieldMap", "useCustomInputs", "handleValuesChanged", "useCallback", "newValues", "Obj", "update", "Object", "assign", "triggerSchema", "useMemo", "omitId", "Trigger", "defaultValues", "id", "_", "values", "React", "Form", "Root", "schema", "onValuesChanged", "Viewport", "Content", "FieldSet", "Actions", "functions", "useQuery", "Filter", "type", "Operation", "PersistentOperation", "workflows", "ComputeGraph", "scripts", "Script", "feeds", "Feed", "props", "getValue", "formValue", "Ref", "isRef", "dxn", "toString", "undefined", "handleOnValueChange", "_type", "dxnString", "DXN", "parse", "ref", "fromDXN", "onValueChange", "SelectField", "options", "getWorkflowOptions", "concat", "getFunctionOptions", "SpecSelector", "readonly", "getFeedQueueOptions", "handleChange", "query", "ast", "Input", "FormFieldLabel", "label", "asChild", "QueryForm", "initialQuery", "onChange", "input", "FunctionInputEditor", "graphs", "map", "graph", "value", "getLabel", "fn", "find", "s", "source", "target", "name", "flatMap", "feed", "queueDXN", "getQueueDxn", "parent", "getParent", "Entity"]
7
+ }
@@ -0,0 +1,8 @@
1
+ // src/operations/index.ts
2
+ import { OperationHandlerSet } from "@dxos/compute";
3
+ var AutomationOperationHandlerSet = OperationHandlerSet.lazy(() => import("./create-trigger-from-template-7K3OYOHQ.mjs"));
4
+
5
+ export {
6
+ AutomationOperationHandlerSet
7
+ };
8
+ //# sourceMappingURL=chunk-M3TIHFXN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const AutomationOperationHandlerSet = OperationHandlerSet.lazy(() => import('./create-trigger-from-template'));\n"],
5
+ "mappings": ";AAIA,SAASA,2BAA2B;AAE7B,IAAMC,gCAAgCD,oBAAoBE,KAAK,MAAM,OAAO,6CAAA,CAAA;",
6
+ "names": ["OperationHandlerSet", "AutomationOperationHandlerSet", "lazy"]
7
+ }
@@ -0,0 +1,12 @@
1
+ // src/components/index.ts
2
+ import { lazy } from "react";
3
+ var AutomationPanel = lazy(() => import("./AutomationPanel-HI63JQ2X.mjs"));
4
+ var FunctionsPanel = lazy(() => import("./FunctionsPanel-SVRKRUXZ.mjs"));
5
+ var FunctionsRegistry = lazy(() => import("./FunctionsRegistry-Z2B5MUD3.mjs"));
6
+
7
+ export {
8
+ AutomationPanel,
9
+ FunctionsPanel,
10
+ FunctionsRegistry
11
+ };
12
+ //# sourceMappingURL=chunk-UUC257FA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './TriggerEditor';\n\nexport const AutomationPanel = lazy(() => import('./AutomationPanel'));\nexport const FunctionsPanel = lazy(() => import('./FunctionsPanel'));\nexport const FunctionsRegistry = lazy(() => import('./FunctionsRegistry'));\n"],
5
+ "mappings": ";AAIA,SAASA,YAAY;AAId,IAAMC,kBAAkBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC1C,IAAME,iBAAiBF,KAAK,MAAM,OAAO,+BAAA,CAAA;AACzC,IAAMG,oBAAoBH,KAAK,MAAM,OAAO,kCAAA,CAAA;",
6
+ "names": ["lazy", "AutomationPanel", "FunctionsPanel", "FunctionsRegistry"]
7
+ }
@@ -0,0 +1,16 @@
1
+ import {
2
+ AutomationPanel,
3
+ FunctionsPanel,
4
+ FunctionsRegistry
5
+ } from "../chunk-UUC257FA.mjs";
6
+ import {
7
+ TriggerEditor
8
+ } from "../chunk-K3C5ZTZA.mjs";
9
+ import "../chunk-J5LGTIGS.mjs";
10
+ export {
11
+ AutomationPanel,
12
+ FunctionsPanel,
13
+ FunctionsRegistry,
14
+ TriggerEditor
15
+ };
16
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,220 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/compute-runtime.ts
4
+ import { Registry } from "@effect-atom/atom";
5
+ import * as BrowserKeyValueStore from "@effect/platform-browser/BrowserKeyValueStore";
6
+ import * as KeyValueStore from "@effect/platform/KeyValueStore";
7
+ import * as Context from "effect/Context";
8
+ import * as Effect from "effect/Effect";
9
+ import * as Fiber from "effect/Fiber";
10
+ import * as Layer from "effect/Layer";
11
+ import * as ManagedRuntime from "effect/ManagedRuntime";
12
+ import { AiService, OpaqueToolkit } from "@dxos/ai";
13
+ import { Capabilities, Capability } from "@dxos/app-framework";
14
+ import { AppCapabilities } from "@dxos/app-toolkit";
15
+ import { AiContext, AiSession } from "@dxos/assistant";
16
+ import { McpServer } from "@dxos/assistant-toolkit";
17
+ import { ClientService } from "@dxos/client";
18
+ import { Blueprint, Credential, Operation, OperationHandlerSet, OperationRegistry, ServiceNotAvailableError } from "@dxos/compute";
19
+ import { Resource } from "@dxos/context";
20
+ import { Database, DXN, Feed, Filter, Obj } from "@dxos/echo";
21
+ import { AtomObj } from "@dxos/echo-atom";
22
+ import { createFeedServiceLayer } from "@dxos/echo-db";
23
+ import { acquireReleaseResource, asyncTaskTaggingLayer } from "@dxos/effect";
24
+ import { FunctionInvocationService, feedServiceFromQueueServiceLayer, QueueService, credentialsLayerFromDatabase } from "@dxos/functions";
25
+ import { AgentService } from "@dxos/functions-runtime";
26
+ import { FeedTraceSink, FunctionImplementationResolver, FunctionInvocationServiceLayerWithLocalLoopbackExecutor, ProcessManager, RemoteFunctionExecutionService, ServiceResolver, TriggerDispatcher, TriggerStateStore } from "@dxos/functions-runtime";
27
+ import { invariant } from "@dxos/invariant";
28
+ import { log } from "@dxos/log";
29
+ import { ClientCapabilities } from "@dxos/plugin-client";
30
+ import { AutomationCapabilities } from "#types";
31
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-automation/src/capabilities/compute-runtime.ts";
32
+ var compute_runtime_default = Capability.makeModule(Effect.fnUntraced(function* () {
33
+ const capabilities = yield* Capability.Service;
34
+ const provider = yield* Effect.tryPromise(() => new ComputeRuntimeProviderImpl(capabilities).open());
35
+ return Capability.contributes(AutomationCapabilities.ComputeRuntime, provider, () => Effect.tryPromise(() => provider.close()));
36
+ }));
37
+ var isDev = import.meta.env.DEV ?? false;
38
+ var triggerStateStoreLayer = typeof globalThis.localStorage !== "undefined" ? TriggerStateStore.layerKv.pipe(Layer.provide(BrowserKeyValueStore.layerLocalStorage)) : TriggerStateStore.layerMemory;
39
+ var ComputeRuntimeProviderImpl = class extends Resource {
40
+ #runtimes = /* @__PURE__ */ new Map();
41
+ #subscriptions = /* @__PURE__ */ new Map();
42
+ #capabilities;
43
+ constructor(capabilities) {
44
+ super();
45
+ this.#capabilities = capabilities;
46
+ }
47
+ async _open() {
48
+ }
49
+ async _close() {
50
+ for (const unsubscribe of this.#subscriptions.values()) {
51
+ unsubscribe();
52
+ }
53
+ this.#subscriptions.clear();
54
+ await Promise.all(Array.from(this.#runtimes.values()).map((rt) => rt.dispose()));
55
+ this.#runtimes.clear();
56
+ }
57
+ getRuntime(spaceId) {
58
+ if (this.#runtimes.has(spaceId)) {
59
+ log("getRuntime cache hit", {
60
+ spaceId
61
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 59, S: this });
62
+ return this.#runtimes.get(spaceId);
63
+ }
64
+ log("getRuntime building", {
65
+ spaceId
66
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 64, S: this });
67
+ const layer = Layer.unwrapScoped(Effect.gen(this, function* () {
68
+ log("compute runtime layer build: start", {
69
+ spaceId
70
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 68, S: this });
71
+ const client = this.#capabilities.get(ClientCapabilities.Client);
72
+ const aiServiceLayer = this.#capabilities.get(AppCapabilities.AiServiceLayer) ?? Layer.die("AiService not found");
73
+ const registry = this.#capabilities.get(Capabilities.AtomRegistry);
74
+ const operationHandlers = OperationHandlerSet.merge(...this.#capabilities.getAll(Capabilities.OperationHandler));
75
+ const opaqueToolkitProvider = Layer.succeed(OpaqueToolkit.OpaqueToolkitProvider, {
76
+ getToolkit: () => {
77
+ const toolkits = this.#capabilities.getAll(AppCapabilities.Toolkit);
78
+ return OpaqueToolkit.merge(...toolkits);
79
+ }
80
+ });
81
+ const blueprints = this.#capabilities.getAll(AppCapabilities.BlueprintDefinition).flatMap((blueprint) => blueprint.make());
82
+ const space = client.spaces.get(spaceId);
83
+ invariant(space, `Invalid space: ${spaceId}`, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 84, S: this, A: ["space", "`Invalid space: ${spaceId}`"] });
84
+ log("compute runtime layer build: waiting for space ready", {
85
+ spaceId
86
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 85, S: this });
87
+ const waitStarted = Date.now();
88
+ yield* Effect.promise(() => space.waitUntilReady());
89
+ log("compute runtime layer build: space ready", {
90
+ spaceId,
91
+ waitMs: Date.now() - waitStarted
92
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 90, S: this });
93
+ const mcpQuery = space.db.query(Filter.type(McpServer.McpServer));
94
+ this.#subscriptions.set(spaceId, mcpQuery.subscribe());
95
+ log("compute runtime layer build: composing inner layer", {
96
+ spaceId
97
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 97, S: this });
98
+ return Layer.scopedDiscard(Effect.gen(function* () {
99
+ log("compute runtime inner layer: acquiring services", {
100
+ spaceId
101
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 101, S: this });
102
+ const registry2 = yield* Registry.AtomRegistry;
103
+ const triggerDispatcher = yield* TriggerDispatcher;
104
+ log("compute runtime inner layer: services acquired", {
105
+ spaceId
106
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 106, S: this });
107
+ let inFlight;
108
+ const transition = (effect2) => {
109
+ if (inFlight) {
110
+ Effect.runFork(Fiber.interrupt(inFlight));
111
+ }
112
+ inFlight = Effect.runFork(effect2.pipe(Effect.tapErrorCause((cause) => Effect.logError("trigger dispatcher transition failed", cause))));
113
+ };
114
+ const unsubscribe = registry2.subscribe(AtomObj.make(space.properties), (properties) => {
115
+ const computeEnvironment = properties.computeEnvironment ?? "local";
116
+ transition(computeEnvironment === "local" ? triggerDispatcher.start() : triggerDispatcher.stop());
117
+ }, {
118
+ immediate: true
119
+ });
120
+ yield* Effect.addFinalizer(() => Effect.sync(() => {
121
+ log("compute runtime inner layer: finalize", {
122
+ spaceId
123
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 125, S: this });
124
+ unsubscribe();
125
+ if (inFlight) {
126
+ Effect.runFork(Fiber.interrupt(inFlight));
127
+ }
128
+ }));
129
+ log("compute runtime inner layer: acquire complete", {
130
+ spaceId
131
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 133, S: this });
132
+ })).pipe(
133
+ Layer.provideMerge(TriggerDispatcher.layer({
134
+ timeControl: "natural"
135
+ })),
136
+ Layer.provideMerge(AgentService.layer({
137
+ getMcpServers: () => mcpQuery.results.filter(Obj.instanceOf(McpServer.McpServer)).filter((server) => server.enabled !== false).map(({ url, protocol, apiKey }) => ({
138
+ url,
139
+ protocol,
140
+ apiKey
141
+ }))
142
+ })),
143
+ Layer.provideMerge(ProcessManager.ProcessOperationInvoker.layer),
144
+ Layer.provideMerge(ProcessManager.layer()),
145
+ // TODO(dmaretskyi): Duped in assistant testing layer.
146
+ Layer.provideMerge(
147
+ // TODO(dmaretskyi): Refactor to be able to merge resovler layers, also consider service mesh achitecture.
148
+ Layer.effect(ServiceResolver.ServiceResolver, Effect.gen(function* () {
149
+ const services = yield* Effect.context().pipe(Effect.map(Context.pick(Database.Service, Feed.FeedService)), Effect.map(Layer.succeedContext));
150
+ return ServiceResolver.compose(
151
+ ServiceResolver.succeed(AiContext.Service, (context2) => Effect.gen(function* () {
152
+ if (!context2.conversation) {
153
+ return yield* Effect.fail(new ServiceNotAvailableError(AiContext.Service.key));
154
+ }
155
+ const feed = yield* Database.resolve(DXN.parse(context2.conversation), Feed.Feed).pipe(Effect.orDie);
156
+ const runtime3 = yield* Effect.runtime();
157
+ const binder = yield* acquireReleaseResource(() => new AiContext.Binder({
158
+ feed,
159
+ runtime: runtime3
160
+ }));
161
+ return {
162
+ binder
163
+ };
164
+ }).pipe(Effect.provide(services))),
165
+ // AiSession.Service.
166
+ ServiceResolver.succeed(AiSession.Service, (context2) => Effect.gen(function* () {
167
+ if (!context2.conversation) {
168
+ return yield* Effect.fail(new ServiceNotAvailableError(AiSession.Service.key));
169
+ }
170
+ const feed = yield* Database.resolve(DXN.parse(context2.conversation), Feed.Feed).pipe(Effect.orDie);
171
+ const runtime3 = yield* Effect.runtime();
172
+ const session = yield* acquireReleaseResource(() => new AiSession.Session({
173
+ feed,
174
+ runtime: runtime3
175
+ }));
176
+ return session;
177
+ }).pipe(Effect.provide(services))),
178
+ yield* ServiceResolver.fromRequirements(Database.Service, OpaqueToolkit.OpaqueToolkitProvider, Feed.FeedService, QueueService, AiService.AiService, OperationRegistry.Service, Blueprint.RegistryService, Credential.CredentialsService)
179
+ );
180
+ }))
181
+ ),
182
+ Layer.provideMerge(Layer.succeed(Blueprint.RegistryService, new Blueprint.Registry(blueprints))),
183
+ Layer.provideMerge(Layer.succeed(Capability.Service, this.#capabilities)),
184
+ Layer.provideMerge(Layer.succeed(Registry.AtomRegistry, registry)),
185
+ Layer.provideMerge(Layer.mergeAll(FeedTraceSink.layerLive, triggerStateStoreLayer, KeyValueStore.layerMemory)),
186
+ Layer.provideMerge(OperationRegistry.layer),
187
+ Layer.provideMerge(feedServiceFromQueueServiceLayer),
188
+ Layer.provideMerge(OperationHandlerSet.provide(operationHandlers)),
189
+ Layer.provideMerge(Layer.effect(Operation.Service, Effect.gen(function* () {
190
+ const fis = yield* FunctionInvocationService;
191
+ return {
192
+ invoke: (op, ...args) => fis.invokeFunction(op, args[0]),
193
+ schedule: (op, ...args) => fis.invokeFunction(op, args[0]).pipe(Effect.fork, Effect.asVoid),
194
+ invokePromise: async () => ({
195
+ error: new Error("Not implemented")
196
+ })
197
+ };
198
+ }))),
199
+ Layer.provideMerge(FunctionInvocationServiceLayerWithLocalLoopbackExecutor.pipe(Layer.provideMerge(FunctionImplementationResolver.layerTest({
200
+ functions: operationHandlers
201
+ })), Layer.provideMerge(client.config.values.runtime?.services?.edge?.url ? RemoteFunctionExecutionService.fromClient(client, client.config.get("runtime.client.edgeFeatures.agents") ? spaceId : void 0) : RemoteFunctionExecutionService.layerMock))),
202
+ Layer.provideMerge(opaqueToolkitProvider),
203
+ Layer.provideMerge(aiServiceLayer),
204
+ Layer.provideMerge(credentialsLayerFromDatabase()),
205
+ Layer.provideMerge(ClientService.fromClient(client)),
206
+ Layer.provideMerge(space ? Database.layer(space.db) : Database.notAvailable)
207
+ ).pipe(Layer.provideMerge(space ? QueueService.layer(space.queues) : QueueService.notAvailable), Layer.provideMerge(space ? createFeedServiceLayer(space.queues) : Feed.notAvailable), Layer.provideMerge(isDev ? asyncTaskTaggingLayer() : Layer.empty));
208
+ }));
209
+ const runtime2 = ManagedRuntime.make(layer);
210
+ log("getRuntime ready (managed runtime created)", {
211
+ spaceId
212
+ }, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 189, S: this });
213
+ this.#runtimes.set(spaceId, runtime2);
214
+ return runtime2;
215
+ }
216
+ };
217
+ export {
218
+ compute_runtime_default as default
219
+ };
220
+ //# sourceMappingURL=compute-runtime-42CP6VG5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/compute-runtime.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Registry } from '@effect-atom/atom';\nimport * as BrowserKeyValueStore from '@effect/platform-browser/BrowserKeyValueStore';\nimport * as KeyValueStore from '@effect/platform/KeyValueStore';\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Fiber from 'effect/Fiber';\nimport * as Layer from 'effect/Layer';\nimport * as ManagedRuntime from 'effect/ManagedRuntime';\n\nimport { AiService, OpaqueToolkit } from '@dxos/ai';\nimport { Capabilities, Capability, type CapabilityManager } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { AiContext, AiSession } from '@dxos/assistant';\nimport { McpServer } from '@dxos/assistant-toolkit';\nimport { ClientService } from '@dxos/client';\nimport { SpaceProperties } from '@dxos/client-protocol';\nimport {\n Blueprint,\n Credential,\n Operation,\n OperationHandlerSet,\n OperationRegistry,\n ServiceNotAvailableError,\n} from '@dxos/compute';\nimport { Resource } from '@dxos/context';\nimport { Database, DXN, Feed, Filter, Obj } from '@dxos/echo';\nimport { AtomObj } from '@dxos/echo-atom';\nimport { createFeedServiceLayer } from '@dxos/echo-db';\nimport { acquireReleaseResource, asyncTaskTaggingLayer } from '@dxos/effect';\nimport {\n FunctionInvocationService,\n feedServiceFromQueueServiceLayer,\n QueueService,\n credentialsLayerFromDatabase,\n} from '@dxos/functions';\nimport { AgentService } from '@dxos/functions-runtime';\nimport {\n FeedTraceSink,\n FunctionImplementationResolver,\n FunctionInvocationServiceLayerWithLocalLoopbackExecutor,\n ProcessManager,\n RemoteFunctionExecutionService,\n ServiceResolver,\n TriggerDispatcher,\n TriggerStateStore,\n} from '@dxos/functions-runtime';\nimport { invariant } from '@dxos/invariant';\nimport { type SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AutomationCapabilities } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const capabilities = yield* Capability.Service;\n const provider = yield* Effect.tryPromise(() => new ComputeRuntimeProviderImpl(capabilities).open());\n return Capability.contributes(AutomationCapabilities.ComputeRuntime, provider, () =>\n Effect.tryPromise(() => provider.close()),\n );\n }),\n);\n\ndeclare global {\n interface ImportMeta {\n env: ImportMetaEnv;\n }\n\n interface ImportMetaEnv {\n DEV: boolean;\n }\n}\n\nconst isDev = import.meta.env.DEV ?? false;\n\n/** Node / test environments have no `localStorage`; browser keeps persistent trigger state. */\nconst triggerStateStoreLayer =\n typeof globalThis.localStorage !== 'undefined'\n ? TriggerStateStore.layerKv.pipe(Layer.provide(BrowserKeyValueStore.layerLocalStorage))\n : TriggerStateStore.layerMemory;\n\n/**\n * Adapts plugin capabilities to runtime layers.\n */\nclass ComputeRuntimeProviderImpl extends Resource implements AutomationCapabilities.ComputeRuntimeProvider {\n readonly #runtimes = new Map<SpaceId, AutomationCapabilities.ComputeRuntime>();\n readonly #subscriptions = new Map<SpaceId, () => void>();\n readonly #capabilities: CapabilityManager.CapabilityManager;\n\n constructor(capabilities: CapabilityManager.CapabilityManager) {\n super();\n this.#capabilities = capabilities;\n }\n\n protected override async _open() {}\n\n protected override async _close() {\n for (const unsubscribe of this.#subscriptions.values()) {\n unsubscribe();\n }\n this.#subscriptions.clear();\n await Promise.all(Array.from(this.#runtimes.values()).map((rt) => rt.dispose()));\n this.#runtimes.clear();\n }\n\n getRuntime(spaceId: SpaceId): AutomationCapabilities.ComputeRuntime {\n if (this.#runtimes.has(spaceId)) {\n log('getRuntime cache hit', { spaceId });\n return this.#runtimes.get(spaceId)!;\n }\n log('getRuntime building', { spaceId });\n\n const layer = Layer.unwrapScoped(\n Effect.gen(this, function* () {\n log('compute runtime layer build: start', { spaceId });\n const client = this.#capabilities.get(ClientCapabilities.Client);\n const aiServiceLayer =\n this.#capabilities.get(AppCapabilities.AiServiceLayer) ?? Layer.die('AiService not found');\n const registry = this.#capabilities.get(Capabilities.AtomRegistry);\n\n // TODO(dmaretskyi): Make these reactive.\n const operationHandlers = OperationHandlerSet.merge(\n ...this.#capabilities.getAll(Capabilities.OperationHandler),\n );\n\n const opaqueToolkitProvider = Layer.succeed(OpaqueToolkit.OpaqueToolkitProvider, {\n getToolkit: () => {\n const toolkits = this.#capabilities.getAll(AppCapabilities.Toolkit);\n return OpaqueToolkit.merge(...toolkits);\n },\n });\n\n const blueprints = this.#capabilities\n .getAll(AppCapabilities.BlueprintDefinition)\n .flatMap((blueprint) => blueprint.make());\n\n const space = client.spaces.get(spaceId);\n invariant(space, `Invalid space: ${spaceId}`);\n log('compute runtime layer build: waiting for space ready', { spaceId });\n const waitStarted = Date.now();\n yield* Effect.promise(() => space.waitUntilReady());\n log('compute runtime layer build: space ready', { spaceId, waitMs: Date.now() - waitStarted });\n\n // Maintain a live query of space-level MCP server configs.\n const mcpQuery = space.db.query(Filter.type(McpServer.McpServer));\n this.#subscriptions.set(spaceId, mcpQuery.subscribe());\n\n log('compute runtime layer build: composing inner layer', { spaceId });\n return Layer.scopedDiscard(\n Effect.gen(function* () {\n log('compute runtime inner layer: acquiring services', { spaceId });\n const registry = yield* Registry.AtomRegistry;\n const triggerDispatcher = yield* TriggerDispatcher;\n log('compute runtime inner layer: services acquired', { spaceId });\n // Track the in-flight start/stop so a new transition cancels the previous one\n // (preserving ordering on rapid toggles) and surfaces failures via the Effect logger.\n let inFlight: Fiber.RuntimeFiber<unknown, unknown> | undefined;\n const transition = (effect: Effect.Effect<unknown, unknown>) => {\n if (inFlight) {\n Effect.runFork(Fiber.interrupt(inFlight));\n }\n inFlight = Effect.runFork(\n effect.pipe(\n Effect.tapErrorCause((cause) => Effect.logError('trigger dispatcher transition failed', cause)),\n ),\n );\n };\n const unsubscribe = registry.subscribe(\n AtomObj.make(space.properties),\n (properties: Obj.Snapshot<SpaceProperties>) => {\n const computeEnvironment = properties.computeEnvironment ?? 'local';\n transition(computeEnvironment === 'local' ? triggerDispatcher.start() : triggerDispatcher.stop());\n },\n { immediate: true },\n );\n yield* Effect.addFinalizer(() =>\n Effect.sync(() => {\n log('compute runtime inner layer: finalize', { spaceId });\n unsubscribe();\n if (inFlight) {\n Effect.runFork(Fiber.interrupt(inFlight));\n }\n }),\n );\n log('compute runtime inner layer: acquire complete', { spaceId });\n }),\n )\n .pipe(\n Layer.provideMerge(TriggerDispatcher.layer({ timeControl: 'natural' })),\n Layer.provideMerge(\n AgentService.layer({\n getMcpServers: () =>\n mcpQuery.results\n .filter(Obj.instanceOf(McpServer.McpServer))\n .filter((server) => server.enabled !== false)\n .map(({ url, protocol, apiKey }) => ({ url, protocol, apiKey })),\n }),\n ),\n Layer.provideMerge(ProcessManager.ProcessOperationInvoker.layer),\n Layer.provideMerge(ProcessManager.layer()),\n // TODO(dmaretskyi): Duped in assistant testing layer.\n Layer.provideMerge(\n // TODO(dmaretskyi): Refactor to be able to merge resovler layers, also consider service mesh achitecture.\n Layer.effect(\n ServiceResolver.ServiceResolver,\n Effect.gen(function* () {\n const services = yield* Effect.context<Database.Service | Feed.FeedService>().pipe(\n Effect.map(Context.pick(Database.Service, Feed.FeedService)),\n Effect.map(Layer.succeedContext),\n );\n // AiContext.Binder.\n return ServiceResolver.compose(\n ServiceResolver.succeed(AiContext.Service, (context) =>\n Effect.gen(function* () {\n if (!context.conversation) {\n return yield* Effect.fail(new ServiceNotAvailableError(AiContext.Service.key));\n }\n const feed = yield* Database.resolve(DXN.parse(context.conversation), Feed.Feed).pipe(\n Effect.orDie,\n );\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const binder = yield* acquireReleaseResource(\n () =>\n new AiContext.Binder({\n feed,\n runtime,\n }),\n );\n return { binder };\n }).pipe(Effect.provide(services)),\n ),\n // AiSession.Service.\n ServiceResolver.succeed(AiSession.Service, (context) =>\n Effect.gen(function* () {\n if (!context.conversation) {\n return yield* Effect.fail(new ServiceNotAvailableError(AiSession.Service.key));\n }\n const feed = yield* Database.resolve(DXN.parse(context.conversation), Feed.Feed).pipe(\n Effect.orDie,\n );\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const session = yield* acquireReleaseResource(\n () =>\n new AiSession.Session({\n feed,\n runtime,\n }),\n );\n return session;\n }).pipe(Effect.provide(services)),\n ),\n yield* ServiceResolver.fromRequirements(\n Database.Service,\n OpaqueToolkit.OpaqueToolkitProvider,\n Feed.FeedService,\n QueueService,\n AiService.AiService,\n OperationRegistry.Service,\n Blueprint.RegistryService,\n Credential.CredentialsService,\n ),\n );\n }),\n ),\n ),\n Layer.provideMerge(Layer.succeed(Blueprint.RegistryService, new Blueprint.Registry(blueprints))),\n Layer.provideMerge(Layer.succeed(Capability.Service, this.#capabilities)),\n Layer.provideMerge(Layer.succeed(Registry.AtomRegistry, registry)),\n Layer.provideMerge(\n Layer.mergeAll(FeedTraceSink.layerLive, triggerStateStoreLayer, KeyValueStore.layerMemory),\n ),\n Layer.provideMerge(OperationRegistry.layer),\n Layer.provideMerge(feedServiceFromQueueServiceLayer),\n Layer.provideMerge(OperationHandlerSet.provide(operationHandlers)),\n Layer.provideMerge(\n Layer.effect(\n Operation.Service,\n Effect.gen(function* () {\n const fis = yield* FunctionInvocationService;\n return {\n invoke: (op: any, ...args: any[]) => (fis.invokeFunction as any)(op, args[0]),\n schedule: (op: any, ...args: any[]) =>\n (fis.invokeFunction as any)(op, args[0]).pipe(Effect.fork, Effect.asVoid),\n invokePromise: async () => ({ error: new Error('Not implemented') }),\n } as unknown as Operation.OperationService;\n }),\n ),\n ),\n Layer.provideMerge(\n FunctionInvocationServiceLayerWithLocalLoopbackExecutor.pipe(\n Layer.provideMerge(FunctionImplementationResolver.layerTest({ functions: operationHandlers })),\n Layer.provideMerge(\n client.config.values.runtime?.services?.edge?.url\n ? RemoteFunctionExecutionService.fromClient(\n client,\n client.config.get('runtime.client.edgeFeatures.agents') ? spaceId : undefined,\n )\n : RemoteFunctionExecutionService.layerMock,\n ),\n ),\n ),\n Layer.provideMerge(opaqueToolkitProvider),\n Layer.provideMerge(aiServiceLayer),\n Layer.provideMerge(credentialsLayerFromDatabase()),\n Layer.provideMerge(ClientService.fromClient(client)),\n Layer.provideMerge(space ? Database.layer(space.db) : Database.notAvailable),\n )\n .pipe(\n Layer.provideMerge(space ? QueueService.layer(space.queues) : QueueService.notAvailable),\n Layer.provideMerge(space ? createFeedServiceLayer(space.queues) : Feed.notAvailable),\n Layer.provideMerge(isDev ? asyncTaskTaggingLayer() : Layer.empty),\n );\n }),\n );\n\n const runtime = ManagedRuntime.make(layer);\n log('getRuntime ready (managed runtime created)', { spaceId });\n this.#runtimes.set(spaceId, runtime);\n return runtime;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Registry", "BrowserKeyValueStore", "KeyValueStore", "Context", "Effect", "Fiber", "Layer", "ManagedRuntime", "AiService", "OpaqueToolkit", "Capabilities", "Capability", "AppCapabilities", "AiContext", "AiSession", "McpServer", "ClientService", "Blueprint", "Credential", "Operation", "OperationHandlerSet", "OperationRegistry", "ServiceNotAvailableError", "Resource", "Database", "DXN", "Feed", "Filter", "Obj", "AtomObj", "createFeedServiceLayer", "acquireReleaseResource", "asyncTaskTaggingLayer", "FunctionInvocationService", "feedServiceFromQueueServiceLayer", "QueueService", "credentialsLayerFromDatabase", "AgentService", "FeedTraceSink", "FunctionImplementationResolver", "FunctionInvocationServiceLayerWithLocalLoopbackExecutor", "ProcessManager", "RemoteFunctionExecutionService", "ServiceResolver", "TriggerDispatcher", "TriggerStateStore", "invariant", "log", "ClientCapabilities", "AutomationCapabilities", "provider", "tryPromise", "ComputeRuntimeProviderImpl", "contributes", "isDev", "capabilities", "_open", "unsubscribe", "getRuntime", "spaceId", "aiServiceLayer", "get", "registry", "AtomRegistry", "operationHandlers", "getToolkit", "getAll", "promise", "space", "waitUntilReady", "waitMs", "waitStarted", "mcpQuery", "query", "type", "triggerDispatcher", "runFork", "interrupt", "inFlight", "pipe", "subscribe", "make", "properties", "transition", "computeEnvironment", "start", "immediate", "addFinalizer", "timeControl", "provideMerge", "getMcpServers", "url", "protocol", "apiKey", "effect", "succeed", "Service", "context", "gen", "feed", "resolve", "conversation", "binder", "Binder", "runtime", "fail", "session", "Session", "fis", "invoke", "schedule", "invokePromise", "error", "functions", "client", "config", "layer"]
7
+ }
@@ -0,0 +1,13 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/index.ts
4
+ import { lazy } from "react";
5
+ var AutomationSettings = lazy(() => import("../AutomationSettings-LM5GSR4H.mjs"));
6
+ var FunctionsContainer = lazy(() => import("../FunctionsContainer-SR6DHMF6.mjs"));
7
+ var TriggerSettings = lazy(() => import("../TriggerSettings-XCHIZPOR.mjs"));
8
+ export {
9
+ AutomationSettings,
10
+ FunctionsContainer,
11
+ TriggerSettings
12
+ };
13
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/containers/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const AutomationSettings: ComponentType<any> = lazy(() => import('./AutomationSettings'));\nexport const FunctionsContainer: ComponentType<any> = lazy(() => import('./FunctionsContainer'));\nexport const TriggerSettings: ComponentType<any> = lazy(() => import('./TriggerSettings'));\n"],
5
+ "mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,qBAAyCD,KAAK,MAAM,OAAO,oCAAA,CAAA;AACjE,IAAME,qBAAyCF,KAAK,MAAM,OAAO,oCAAA,CAAA;AACjE,IAAMG,kBAAsCH,KAAK,MAAM,OAAO,iCAAA,CAAA;",
6
+ "names": ["lazy", "AutomationSettings", "FunctionsContainer", "TriggerSettings"]
7
+ }