@dxos/plugin-automation 0.8.4-main.c85a9c8dae → 0.8.4-main.d9fc60f731

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 (386) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +428 -0
  3. package/README.md +1 -1
  4. package/dist/lib/neutral/AutomationPanel-OKF2MDLO.mjs +12 -0
  5. package/dist/lib/neutral/AutomationPlugin.mjs +10 -0
  6. package/dist/lib/{browser/cli/index.mjs → neutral/AutomationPlugin.node.mjs} +191 -186
  7. package/dist/lib/neutral/AutomationPlugin.node.mjs.map +7 -0
  8. package/dist/lib/neutral/AutomationPlugin.workerd.mjs +23 -0
  9. package/dist/lib/neutral/AutomationPlugin.workerd.mjs.map +7 -0
  10. package/dist/lib/neutral/AutomationSettings-GQF5UFM6.mjs +32 -0
  11. package/dist/lib/neutral/AutomationSettings-GQF5UFM6.mjs.map +7 -0
  12. package/dist/lib/neutral/FunctionsContainer-YBTQGCL3.mjs +38 -0
  13. package/dist/lib/neutral/FunctionsContainer-YBTQGCL3.mjs.map +7 -0
  14. package/dist/lib/{browser/chunk-U55ZXRYM.mjs → neutral/FunctionsPanel-L32Z67B7.mjs} +24 -25
  15. package/dist/lib/neutral/FunctionsPanel-L32Z67B7.mjs.map +7 -0
  16. package/dist/lib/{browser/chunk-XFXYU645.mjs → neutral/FunctionsRegistry-RTCY3LXE.mjs} +24 -25
  17. package/dist/lib/neutral/FunctionsRegistry-RTCY3LXE.mjs.map +7 -0
  18. package/dist/lib/neutral/TriggerSettings-XCHIZPOR.mjs +9 -0
  19. package/dist/lib/neutral/app-graph-builder-Q3LJLICE.mjs +75 -0
  20. package/dist/lib/neutral/app-graph-builder-Q3LJLICE.mjs.map +7 -0
  21. package/dist/lib/neutral/capabilities/index.mjs +19 -0
  22. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  23. package/dist/lib/neutral/capabilities/node.mjs +17 -0
  24. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-2JP77CMN.mjs +42 -0
  26. package/dist/lib/neutral/chunk-2JP77CMN.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-7YWISQOZ.mjs +54 -0
  28. package/dist/lib/neutral/chunk-7YWISQOZ.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-C7H62AU3.mjs +435 -0
  30. package/dist/lib/neutral/chunk-C7H62AU3.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-CMM3AFHR.mjs +111 -0
  32. package/dist/lib/neutral/chunk-CMM3AFHR.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  34. package/dist/lib/neutral/chunk-LRVJEKMN.mjs +40 -0
  35. package/dist/lib/neutral/chunk-LRVJEKMN.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-MBIODLCB.mjs +12 -0
  37. package/dist/lib/neutral/chunk-MBIODLCB.mjs.map +7 -0
  38. package/dist/lib/neutral/chunk-NCCFEPBZ.mjs +76 -0
  39. package/dist/lib/neutral/chunk-NCCFEPBZ.mjs.map +7 -0
  40. package/dist/lib/{browser/chunk-ZNI2CGQP.mjs → neutral/chunk-RCBE37YU.mjs} +158 -60
  41. package/dist/lib/neutral/chunk-RCBE37YU.mjs.map +7 -0
  42. package/dist/lib/neutral/chunk-TJOQNSS5.mjs +8 -0
  43. package/dist/lib/neutral/chunk-TJOQNSS5.mjs.map +7 -0
  44. package/dist/lib/neutral/components/index.mjs +16 -0
  45. package/dist/lib/neutral/containers/index.mjs +13 -0
  46. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  47. package/dist/lib/neutral/create-trigger-from-template-5YUHZOFA.mjs +68 -0
  48. package/dist/lib/neutral/create-trigger-from-template-5YUHZOFA.mjs.map +7 -0
  49. package/dist/lib/neutral/hooks/index.mjs +10 -0
  50. package/dist/lib/neutral/index.mjs +16 -0
  51. package/dist/lib/neutral/layer-specs-OXK75RDW.mjs +141 -0
  52. package/dist/lib/neutral/layer-specs-OXK75RDW.mjs.map +7 -0
  53. package/dist/lib/neutral/meta.json +1 -0
  54. package/dist/lib/neutral/meta.mjs +8 -0
  55. package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs +13 -0
  56. package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs.map +7 -0
  57. package/dist/lib/neutral/operations/index.mjs +8 -0
  58. package/dist/lib/neutral/plugin.mjs +16 -0
  59. package/dist/lib/neutral/plugin.mjs.map +7 -0
  60. package/dist/lib/neutral/react-surface-FOOBGYNG.mjs +57 -0
  61. package/dist/lib/neutral/react-surface-FOOBGYNG.mjs.map +7 -0
  62. package/dist/lib/neutral/registry-sync-JYDDTBAE.mjs +82 -0
  63. package/dist/lib/neutral/registry-sync-JYDDTBAE.mjs.map +7 -0
  64. package/dist/lib/neutral/testing.mjs +8 -0
  65. package/dist/lib/neutral/translations.mjs +60 -0
  66. package/dist/lib/neutral/translations.mjs.map +7 -0
  67. package/dist/lib/neutral/trigger-runtime-controller-BOEJYGWC.mjs +77 -0
  68. package/dist/lib/neutral/trigger-runtime-controller-BOEJYGWC.mjs.map +7 -0
  69. package/dist/lib/neutral/types/index.mjs +12 -0
  70. package/dist/lib/neutral/types/index.mjs.map +7 -0
  71. package/dist/types/src/AutomationPlugin.d.ts +1 -0
  72. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  73. package/dist/types/src/{cli/plugin.d.ts → AutomationPlugin.node.d.ts} +2 -1
  74. package/dist/types/src/AutomationPlugin.node.d.ts.map +1 -0
  75. package/dist/types/src/AutomationPlugin.test.d.ts +2 -0
  76. package/dist/types/src/AutomationPlugin.test.d.ts.map +1 -0
  77. package/dist/types/src/AutomationPlugin.workerd.d.ts +4 -0
  78. package/dist/types/src/AutomationPlugin.workerd.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/index.d.ts +8 -4
  81. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/layer-specs.d.ts +6 -0
  83. package/dist/types/src/capabilities/layer-specs.d.ts.map +1 -0
  84. package/dist/types/src/capabilities/node.d.ts +8 -0
  85. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  86. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  87. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  88. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/registry-sync.d.ts +21 -0
  90. package/dist/types/src/capabilities/registry-sync.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/trigger-runtime-controller.d.ts +5 -0
  92. package/dist/types/src/capabilities/trigger-runtime-controller.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/trigger-runtime-controller.test.d.ts +2 -0
  94. package/dist/types/src/capabilities/trigger-runtime-controller.test.d.ts.map +1 -0
  95. package/dist/types/src/commands/index.d.ts.map +1 -0
  96. package/dist/types/src/{cli/commands → commands}/trigger/create/index.d.ts +6 -6
  97. package/dist/types/src/commands/trigger/create/index.d.ts.map +1 -0
  98. package/dist/types/src/{cli/commands → commands}/trigger/create/queue.d.ts +2 -2
  99. package/dist/types/src/commands/trigger/create/queue.d.ts.map +1 -0
  100. package/dist/types/src/{cli/commands → commands}/trigger/create/subscription.d.ts +1 -1
  101. package/dist/types/src/commands/trigger/create/subscription.d.ts.map +1 -0
  102. package/dist/types/src/{cli/commands → commands}/trigger/create/timer.d.ts +1 -1
  103. package/dist/types/src/commands/trigger/create/timer.d.ts.map +1 -0
  104. package/dist/types/src/{cli/commands → commands}/trigger/index.d.ts +8 -8
  105. package/dist/types/src/commands/trigger/index.d.ts.map +1 -0
  106. package/dist/types/src/{cli/commands → commands}/trigger/list.d.ts +1 -1
  107. package/dist/types/src/commands/trigger/list.d.ts.map +1 -0
  108. package/dist/types/src/{cli/commands → commands}/trigger/options.d.ts +1 -2
  109. package/dist/types/src/commands/trigger/options.d.ts.map +1 -0
  110. package/dist/types/src/{cli/commands → commands}/trigger/remove.d.ts +1 -1
  111. package/dist/types/src/commands/trigger/remove.d.ts.map +1 -0
  112. package/dist/types/src/{cli/commands → commands}/trigger/update/index.d.ts +5 -5
  113. package/dist/types/src/commands/trigger/update/index.d.ts.map +1 -0
  114. package/dist/types/src/{cli/commands → commands}/trigger/update/queue.d.ts +2 -3
  115. package/dist/types/src/commands/trigger/update/queue.d.ts.map +1 -0
  116. package/dist/types/src/commands/trigger/update/subscription.d.ts.map +1 -0
  117. package/dist/types/src/commands/trigger/update/timer.d.ts.map +1 -0
  118. package/dist/types/src/commands/trigger/util.d.ts +85 -0
  119. package/dist/types/src/commands/trigger/util.d.ts.map +1 -0
  120. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -1
  121. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  122. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +45 -32
  123. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/AutomationPanel/TriggerEdgeMetadata.d.ts +18 -0
  125. package/dist/types/src/components/AutomationPanel/TriggerEdgeMetadata.d.ts.map +1 -0
  126. package/dist/types/src/components/AutomationPanel/index.d.ts.map +1 -1
  127. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
  128. package/dist/types/src/components/FunctionsPanel/index.d.ts.map +1 -1
  129. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts.map +1 -1
  130. package/dist/types/src/components/FunctionsRegistry/index.d.ts.map +1 -1
  131. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts +6 -6
  132. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +1 -1
  133. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts +4 -4
  134. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +1 -1
  135. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +1 -1
  136. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  137. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +109 -93
  138. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
  139. package/dist/types/src/components/TriggerEditor/util.d.ts +14 -0
  140. package/dist/types/src/components/TriggerEditor/util.d.ts.map +1 -0
  141. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts +3 -1
  142. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts.map +1 -1
  143. package/dist/types/src/containers/AutomationSettings/index.d.ts +1 -2
  144. package/dist/types/src/containers/AutomationSettings/index.d.ts.map +1 -1
  145. package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts +2 -4
  146. package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts.map +1 -1
  147. package/dist/types/src/containers/FunctionsContainer/index.d.ts +1 -2
  148. package/dist/types/src/containers/FunctionsContainer/index.d.ts.map +1 -1
  149. package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts +3 -3
  150. package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts.map +1 -1
  151. package/dist/types/src/containers/TriggerSettings/index.d.ts +2 -2
  152. package/dist/types/src/containers/TriggerSettings/index.d.ts.map +1 -1
  153. package/dist/types/src/hooks/index.d.ts +1 -1
  154. package/dist/types/src/hooks/index.d.ts.map +1 -1
  155. package/dist/types/src/hooks/useEdgeTriggersDispatcherStatus.d.ts +13 -0
  156. package/dist/types/src/hooks/useEdgeTriggersDispatcherStatus.d.ts.map +1 -0
  157. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +1 -1
  158. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -1
  159. package/dist/types/src/index.d.ts +0 -3
  160. package/dist/types/src/index.d.ts.map +1 -1
  161. package/dist/types/src/meta.d.ts +1 -1
  162. package/dist/types/src/meta.d.ts.map +1 -1
  163. package/dist/types/src/operations/create-trigger-from-template.d.ts +5 -0
  164. package/dist/types/src/operations/create-trigger-from-template.d.ts.map +1 -0
  165. package/dist/types/src/operations/index.d.ts +3 -0
  166. package/dist/types/src/operations/index.d.ts.map +1 -0
  167. package/dist/types/src/plugin.d.ts +4 -0
  168. package/dist/types/src/plugin.d.ts.map +1 -0
  169. package/dist/types/src/testing/test-functions.d.ts +162 -46
  170. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  171. package/dist/types/src/testing.d.ts +2 -0
  172. package/dist/types/src/testing.d.ts.map +1 -0
  173. package/dist/types/src/translations.d.ts +45 -33
  174. package/dist/types/src/translations.d.ts.map +1 -1
  175. package/dist/types/src/types/AutomationOperation.d.ts +21 -0
  176. package/dist/types/src/types/AutomationOperation.d.ts.map +1 -0
  177. package/dist/types/src/types/index.d.ts +1 -2
  178. package/dist/types/src/types/index.d.ts.map +1 -1
  179. package/dist/types/src/types/schema.d.ts +11 -32
  180. package/dist/types/src/types/schema.d.ts.map +1 -1
  181. package/dist/types/tsconfig.tsbuildinfo +1 -1
  182. package/package.json +124 -75
  183. package/src/AutomationPlugin.node.ts +35 -0
  184. package/src/AutomationPlugin.test.ts +27 -0
  185. package/src/AutomationPlugin.tsx +33 -11
  186. package/src/AutomationPlugin.workerd.ts +18 -0
  187. package/src/capabilities/app-graph-builder.ts +66 -0
  188. package/src/capabilities/index.ts +15 -4
  189. package/src/capabilities/layer-specs.ts +197 -0
  190. package/src/capabilities/node.ts +18 -0
  191. package/src/capabilities/operation-handler.ts +16 -0
  192. package/src/capabilities/react-surface.tsx +59 -0
  193. package/src/capabilities/registry-sync.ts +110 -0
  194. package/src/capabilities/trigger-runtime-controller.test.ts +103 -0
  195. package/src/capabilities/trigger-runtime-controller.ts +126 -0
  196. package/src/{cli/commands → commands}/trigger/create/queue.ts +14 -16
  197. package/src/{cli/commands → commands}/trigger/create/subscription.ts +8 -11
  198. package/src/{cli/commands → commands}/trigger/create/timer.ts +4 -7
  199. package/src/{cli/commands → commands}/trigger/list.ts +7 -4
  200. package/src/{cli/commands → commands}/trigger/options.ts +3 -15
  201. package/src/{cli/commands → commands}/trigger/remove.ts +5 -5
  202. package/src/{cli/commands → commands}/trigger/update/queue.ts +39 -43
  203. package/src/{cli/commands → commands}/trigger/update/subscription.ts +22 -21
  204. package/src/{cli/commands → commands}/trigger/update/timer.ts +22 -20
  205. package/src/{cli/commands → commands}/trigger/util.ts +53 -38
  206. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +12 -5
  207. package/src/components/AutomationPanel/AutomationPanel.tsx +120 -58
  208. package/src/components/AutomationPanel/TriggerEdgeMetadata.tsx +148 -0
  209. package/src/components/FunctionsPanel/FunctionsPanel.tsx +35 -27
  210. package/src/components/FunctionsRegistry/FunctionsRegistry.tsx +32 -23
  211. package/src/components/TriggerEditor/FunctionInputEditor.tsx +9 -13
  212. package/src/components/TriggerEditor/SpecSelector.tsx +18 -14
  213. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +36 -18
  214. package/src/components/TriggerEditor/TriggerEditor.tsx +120 -25
  215. package/src/components/TriggerEditor/util.ts +51 -0
  216. package/src/containers/AutomationSettings/AutomationSettings.tsx +12 -8
  217. package/src/containers/AutomationSettings/index.ts +1 -3
  218. package/src/containers/FunctionsContainer/FunctionsContainer.tsx +11 -11
  219. package/src/containers/FunctionsContainer/index.ts +1 -3
  220. package/src/containers/TriggerSettings/TriggerSettings.tsx +32 -10
  221. package/src/containers/TriggerSettings/index.ts +2 -3
  222. package/src/hooks/index.ts +2 -1
  223. package/src/hooks/useEdgeTriggersDispatcherStatus.ts +78 -0
  224. package/src/hooks/useTriggerRuntimeControls.ts +13 -8
  225. package/src/index.ts +0 -4
  226. package/src/meta.ts +27 -7
  227. package/src/operations/create-trigger-from-template.ts +70 -0
  228. package/src/operations/index.ts +7 -0
  229. package/src/plugin.ts +11 -0
  230. package/src/testing/test-functions.ts +38 -4
  231. package/src/testing.ts +7 -0
  232. package/src/translations.ts +52 -39
  233. package/src/types/AutomationOperation.ts +39 -0
  234. package/src/types/index.ts +2 -2
  235. package/src/types/schema.ts +4 -25
  236. package/src/vite-env.d.ts +10 -0
  237. package/dist/lib/browser/AutomationPanel-EHRSV2DL.mjs +0 -11
  238. package/dist/lib/browser/AutomationSettings-TJYG77L6.mjs +0 -37
  239. package/dist/lib/browser/AutomationSettings-TJYG77L6.mjs.map +0 -7
  240. package/dist/lib/browser/FunctionsContainer-XHEQSNNO.mjs +0 -43
  241. package/dist/lib/browser/FunctionsContainer-XHEQSNNO.mjs.map +0 -7
  242. package/dist/lib/browser/FunctionsPanel-5WPUZGRB.mjs +0 -10
  243. package/dist/lib/browser/FunctionsRegistry-XRXIZRLL.mjs +0 -10
  244. package/dist/lib/browser/TriggerSettings-HUQT53SV.mjs +0 -13
  245. package/dist/lib/browser/TriggerSettings-HUQT53SV.mjs.map +0 -7
  246. package/dist/lib/browser/app-graph-builder-HLARI3VW.mjs +0 -85
  247. package/dist/lib/browser/app-graph-builder-HLARI3VW.mjs.map +0 -7
  248. package/dist/lib/browser/chunk-3P4R5WNC.mjs +0 -8
  249. package/dist/lib/browser/chunk-3P4R5WNC.mjs.map +0 -7
  250. package/dist/lib/browser/chunk-4EY2KMCM.mjs +0 -272
  251. package/dist/lib/browser/chunk-4EY2KMCM.mjs.map +0 -7
  252. package/dist/lib/browser/chunk-PZNBEKO5.mjs +0 -17
  253. package/dist/lib/browser/chunk-PZNBEKO5.mjs.map +0 -7
  254. package/dist/lib/browser/chunk-QPG3AKFX.mjs +0 -93
  255. package/dist/lib/browser/chunk-QPG3AKFX.mjs.map +0 -7
  256. package/dist/lib/browser/chunk-SEG5OCGB.mjs +0 -31
  257. package/dist/lib/browser/chunk-SEG5OCGB.mjs.map +0 -7
  258. package/dist/lib/browser/chunk-U55ZXRYM.mjs.map +0 -7
  259. package/dist/lib/browser/chunk-WOBCY2FQ.mjs +0 -83
  260. package/dist/lib/browser/chunk-WOBCY2FQ.mjs.map +0 -7
  261. package/dist/lib/browser/chunk-XFXYU645.mjs.map +0 -7
  262. package/dist/lib/browser/chunk-ZNI2CGQP.mjs.map +0 -7
  263. package/dist/lib/browser/cli/index.mjs.map +0 -7
  264. package/dist/lib/browser/compute-runtime-L2RVWXY2.mjs +0 -124
  265. package/dist/lib/browser/compute-runtime-L2RVWXY2.mjs.map +0 -7
  266. package/dist/lib/browser/hooks/index.mjs +0 -13
  267. package/dist/lib/browser/index.mjs +0 -123
  268. package/dist/lib/browser/index.mjs.map +0 -7
  269. package/dist/lib/browser/meta.json +0 -1
  270. package/dist/lib/browser/operation-resolver-2U6ZQVXR.mjs +0 -83
  271. package/dist/lib/browser/operation-resolver-2U6ZQVXR.mjs.map +0 -7
  272. package/dist/lib/browser/react-surface-U6FAYV42.mjs +0 -69
  273. package/dist/lib/browser/react-surface-U6FAYV42.mjs.map +0 -7
  274. package/dist/lib/browser/types/index.mjs +0 -14
  275. package/dist/lib/node-esm/AutomationPanel-F7MPUR7U.mjs +0 -12
  276. package/dist/lib/node-esm/AutomationSettings-5AHJMILI.mjs +0 -38
  277. package/dist/lib/node-esm/AutomationSettings-5AHJMILI.mjs.map +0 -7
  278. package/dist/lib/node-esm/FunctionsContainer-U5UVRKVT.mjs +0 -44
  279. package/dist/lib/node-esm/FunctionsContainer-U5UVRKVT.mjs.map +0 -7
  280. package/dist/lib/node-esm/FunctionsPanel-UFL5LT2R.mjs +0 -11
  281. package/dist/lib/node-esm/FunctionsRegistry-574OBZ5T.mjs +0 -11
  282. package/dist/lib/node-esm/TriggerSettings-RDIJHUKK.mjs +0 -14
  283. package/dist/lib/node-esm/TriggerSettings-RDIJHUKK.mjs.map +0 -7
  284. package/dist/lib/node-esm/app-graph-builder-Z2TMQHVX.mjs +0 -86
  285. package/dist/lib/node-esm/app-graph-builder-Z2TMQHVX.mjs.map +0 -7
  286. package/dist/lib/node-esm/chunk-2X564LII.mjs +0 -10
  287. package/dist/lib/node-esm/chunk-2X564LII.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-34HGM46Z.mjs +0 -32
  289. package/dist/lib/node-esm/chunk-34HGM46Z.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-4DK33JDH.mjs +0 -84
  291. package/dist/lib/node-esm/chunk-4DK33JDH.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-5FXNN3MV.mjs +0 -19
  293. package/dist/lib/node-esm/chunk-5FXNN3MV.mjs.map +0 -7
  294. package/dist/lib/node-esm/chunk-7AIKTEAX.mjs +0 -273
  295. package/dist/lib/node-esm/chunk-7AIKTEAX.mjs.map +0 -7
  296. package/dist/lib/node-esm/chunk-CMZ4NKSK.mjs +0 -271
  297. package/dist/lib/node-esm/chunk-CMZ4NKSK.mjs.map +0 -7
  298. package/dist/lib/node-esm/chunk-GXFQR3KI.mjs +0 -99
  299. package/dist/lib/node-esm/chunk-GXFQR3KI.mjs.map +0 -7
  300. package/dist/lib/node-esm/chunk-QNPYY3XZ.mjs +0 -94
  301. package/dist/lib/node-esm/chunk-QNPYY3XZ.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-RTEXGGBX.mjs +0 -97
  303. package/dist/lib/node-esm/chunk-RTEXGGBX.mjs.map +0 -7
  304. package/dist/lib/node-esm/cli/index.mjs +0 -1109
  305. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  306. package/dist/lib/node-esm/compute-runtime-XD6A5Q7Q.mjs +0 -125
  307. package/dist/lib/node-esm/compute-runtime-XD6A5Q7Q.mjs.map +0 -7
  308. package/dist/lib/node-esm/hooks/index.mjs +0 -14
  309. package/dist/lib/node-esm/index.mjs +0 -124
  310. package/dist/lib/node-esm/index.mjs.map +0 -7
  311. package/dist/lib/node-esm/meta.json +0 -1
  312. package/dist/lib/node-esm/operation-resolver-XWJGBHJZ.mjs +0 -84
  313. package/dist/lib/node-esm/operation-resolver-XWJGBHJZ.mjs.map +0 -7
  314. package/dist/lib/node-esm/react-surface-BVNHCWQ7.mjs +0 -70
  315. package/dist/lib/node-esm/react-surface-BVNHCWQ7.mjs.map +0 -7
  316. package/dist/lib/node-esm/types/index.mjs +0 -15
  317. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +0 -1
  318. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +0 -3
  319. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +0 -1
  320. package/dist/types/src/capabilities/compute-runtime/compute-runtime.d.ts +0 -6
  321. package/dist/types/src/capabilities/compute-runtime/compute-runtime.d.ts.map +0 -1
  322. package/dist/types/src/capabilities/compute-runtime/index.d.ts +0 -3
  323. package/dist/types/src/capabilities/compute-runtime/index.d.ts.map +0 -1
  324. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  325. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  326. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  327. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  328. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  329. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  330. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  331. package/dist/types/src/cli/commands/index.d.ts.map +0 -1
  332. package/dist/types/src/cli/commands/trigger/create/index.d.ts.map +0 -1
  333. package/dist/types/src/cli/commands/trigger/create/queue.d.ts.map +0 -1
  334. package/dist/types/src/cli/commands/trigger/create/subscription.d.ts.map +0 -1
  335. package/dist/types/src/cli/commands/trigger/create/timer.d.ts.map +0 -1
  336. package/dist/types/src/cli/commands/trigger/index.d.ts.map +0 -1
  337. package/dist/types/src/cli/commands/trigger/list.d.ts.map +0 -1
  338. package/dist/types/src/cli/commands/trigger/options.d.ts.map +0 -1
  339. package/dist/types/src/cli/commands/trigger/remove.d.ts.map +0 -1
  340. package/dist/types/src/cli/commands/trigger/update/index.d.ts.map +0 -1
  341. package/dist/types/src/cli/commands/trigger/update/queue.d.ts.map +0 -1
  342. package/dist/types/src/cli/commands/trigger/update/subscription.d.ts.map +0 -1
  343. package/dist/types/src/cli/commands/trigger/update/timer.d.ts.map +0 -1
  344. package/dist/types/src/cli/commands/trigger/util.d.ts +0 -46
  345. package/dist/types/src/cli/commands/trigger/util.d.ts.map +0 -1
  346. package/dist/types/src/cli/index.d.ts +0 -2
  347. package/dist/types/src/cli/index.d.ts.map +0 -1
  348. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  349. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +0 -12
  350. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +0 -1
  351. package/dist/types/src/types/capabilities.d.ts +0 -22
  352. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  353. package/dist/types/src/types/events.d.ts +0 -5
  354. package/dist/types/src/types/events.d.ts.map +0 -1
  355. package/src/capabilities/app-graph-builder/app-graph-builder.ts +0 -72
  356. package/src/capabilities/app-graph-builder/index.ts +0 -7
  357. package/src/capabilities/compute-runtime/compute-runtime.ts +0 -146
  358. package/src/capabilities/compute-runtime/index.ts +0 -7
  359. package/src/capabilities/operation-resolver/index.ts +0 -7
  360. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -80
  361. package/src/capabilities/react-surface/index.ts +0 -7
  362. package/src/capabilities/react-surface/react-surface.tsx +0 -61
  363. package/src/cli/index.ts +0 -5
  364. package/src/cli/plugin.ts +0 -24
  365. package/src/hooks/useComputeRuntimeCallback.ts +0 -67
  366. package/src/types/capabilities.ts +0 -43
  367. package/src/types/events.ts +0 -11
  368. /package/dist/lib/{browser/AutomationPanel-EHRSV2DL.mjs.map → neutral/AutomationPanel-OKF2MDLO.mjs.map} +0 -0
  369. /package/dist/lib/{browser/FunctionsPanel-5WPUZGRB.mjs.map → neutral/AutomationPlugin.mjs.map} +0 -0
  370. /package/dist/lib/{browser/FunctionsRegistry-XRXIZRLL.mjs.map → neutral/TriggerSettings-XCHIZPOR.mjs.map} +0 -0
  371. /package/dist/lib/{browser/hooks/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  372. /package/dist/lib/{browser/types → neutral/components}/index.mjs.map +0 -0
  373. /package/dist/lib/{node-esm → neutral}/hooks/index.mjs.map +0 -0
  374. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  375. /package/dist/lib/{node-esm/AutomationPanel-F7MPUR7U.mjs.map → neutral/meta.mjs.map} +0 -0
  376. /package/dist/lib/{node-esm/FunctionsPanel-UFL5LT2R.mjs.map → neutral/operations/index.mjs.map} +0 -0
  377. /package/dist/lib/{node-esm/FunctionsRegistry-574OBZ5T.mjs.map → neutral/testing.mjs.map} +0 -0
  378. /package/dist/types/src/capabilities/{app-graph-builder/app-graph-builder.d.ts → app-graph-builder.d.ts} +0 -0
  379. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
  380. /package/dist/types/src/{cli/commands → commands}/index.d.ts +0 -0
  381. /package/dist/types/src/{cli/commands → commands}/trigger/update/subscription.d.ts +0 -0
  382. /package/dist/types/src/{cli/commands → commands}/trigger/update/timer.d.ts +0 -0
  383. /package/src/{cli/commands → commands}/index.ts +0 -0
  384. /package/src/{cli/commands → commands}/trigger/create/index.ts +0 -0
  385. /package/src/{cli/commands → commands}/trigger/index.ts +0 -0
  386. /package/src/{cli/commands → commands}/trigger/update/index.ts +0 -0
@@ -13,19 +13,20 @@ import * as Option from 'effect/Option';
13
13
  import { CommandConfig } from '@dxos/cli-util';
14
14
  import { flushAndSync, print, spaceLayer, withTypes } from '@dxos/cli-util';
15
15
  import { Common } from '@dxos/cli-util';
16
- import { Database, Filter, JsonSchema, Ref } from '@dxos/echo';
17
- import { Function, Trigger } from '@dxos/functions';
16
+ import { Operation, Trigger } from '@dxos/compute';
17
+ import { Database, Feed as FeedNs, Filter, JsonSchema, Ref } from '@dxos/echo';
18
+ import { EID } from '@dxos/keys';
18
19
 
19
- import { Enabled, Input, Queue } from '../options';
20
- import { printTrigger, promptForSchemaInput, selectFunction, selectQueue } from '../util';
20
+ import { Enabled, Feed, Input } from '../options';
21
+ import { printTrigger, promptForSchemaInput, selectFunction, selectFeed } from '../util';
21
22
 
22
23
  export const queue = Command.make(
23
- 'queue',
24
+ 'feed',
24
25
  {
25
26
  spaceId: Common.spaceId.pipe(Options.optional),
26
27
  enabled: Enabled,
27
28
  functionId: Common.functionId.pipe(Options.optional),
28
- queue: Queue.pipe(Options.optional),
29
+ feed: Feed.pipe(Options.optional),
29
30
  input: Input.pipe(Options.optional),
30
31
  },
31
32
  (options) =>
@@ -36,15 +37,15 @@ export const queue = Command.make(
36
37
  onNone: () => selectFunction(),
37
38
  onSome: (id) => Effect.succeed(id),
38
39
  });
39
- const functions = yield* Database.runQuery(Filter.type(Function.Function));
40
+ const functions = yield* Database.runQuery(Filter.type(Operation.PersistentOperation));
40
41
  const fn = functions.find((fn) => fn.id === functionId);
41
42
  if (!fn) {
42
43
  return yield* Effect.fail(new Error(`Function not found: ${functionId}`));
43
44
  }
44
45
 
45
- const queueDxn = yield* Option.match(options.queue, {
46
- onNone: () => selectQueue(),
47
- onSome: (dxn) => Effect.succeed(dxn.toString()),
46
+ const feed = yield* Option.match(options.feed, {
47
+ onNone: () => selectFeed(),
48
+ onSome: (uri) => Database.resolve(EID.parse(uri), FeedNs.Feed),
48
49
  });
49
50
 
50
51
  const input = yield* Option.match(options.input, {
@@ -65,10 +66,7 @@ export const queue = Command.make(
65
66
  const trigger = Trigger.make({
66
67
  function: Ref.make(fn),
67
68
  enabled,
68
- spec: {
69
- kind: 'queue',
70
- queue: queueDxn,
71
- },
69
+ spec: Trigger.specFeed(feed),
72
70
  input,
73
71
  });
74
72
 
@@ -83,7 +81,7 @@ export const queue = Command.make(
83
81
  yield* flushAndSync({ indexes: true });
84
82
  }),
85
83
  ).pipe(
86
- Command.withDescription('Create a queue trigger.'),
84
+ Command.withDescription('Create a feed trigger.'),
87
85
  Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),
88
- Command.provideEffectDiscard(() => withTypes(Function.Function, Trigger.Trigger)),
86
+ Command.provideEffectDiscard(() => withTypes(Operation.PersistentOperation, Trigger.Trigger)),
89
87
  );
@@ -13,8 +13,8 @@ import * as Option from 'effect/Option';
13
13
  import { CommandConfig } from '@dxos/cli-util';
14
14
  import { flushAndSync, print, spaceLayer, withTypes } from '@dxos/cli-util';
15
15
  import { Common } from '@dxos/cli-util';
16
+ import { Operation, Trigger } from '@dxos/compute';
16
17
  import { Database, Filter, JsonSchema, Query, Ref } from '@dxos/echo';
17
- import { Function, Trigger } from '@dxos/functions';
18
18
 
19
19
  import { Deep, Delay, Enabled, Input, Typename } from '../options';
20
20
  import { printTrigger, promptForSchemaInput, selectFunction } from '../util';
@@ -38,7 +38,7 @@ export const subscription = Command.make(
38
38
  onNone: () => selectFunction(),
39
39
  onSome: (id) => Effect.succeed(id),
40
40
  });
41
- const functions = yield* Database.runQuery(Filter.type(Function.Function));
41
+ const functions = yield* Database.runQuery(Filter.type(Operation.PersistentOperation));
42
42
  const fn = functions.find((fn) => fn.id === functionId);
43
43
  if (!fn) {
44
44
  return yield* Effect.fail(new Error(`Function not found: ${functionId}`));
@@ -51,7 +51,7 @@ export const subscription = Command.make(
51
51
  }).pipe(Prompt.run),
52
52
  onSome: (value) => Effect.succeed(value),
53
53
  });
54
- const queryAst = Query.select(Filter.type(typename)).ast;
54
+ const subscriptionQuery = Query.select(Filter.type(typename));
55
55
 
56
56
  const deepOption = yield* Option.match(options.deep, {
57
57
  onNone: () =>
@@ -102,13 +102,10 @@ export const subscription = Command.make(
102
102
  const trigger = Trigger.make({
103
103
  function: Ref.make(fn),
104
104
  enabled,
105
- spec: {
106
- kind: 'subscription',
107
- query: {
108
- ast: queryAst,
109
- },
110
- options: Object.keys(subscriptionOptions).length > 0 ? subscriptionOptions : undefined,
111
- },
105
+ spec: Trigger.specSubscription(
106
+ subscriptionQuery,
107
+ Object.keys(subscriptionOptions).length > 0 ? subscriptionOptions : undefined,
108
+ ),
112
109
  input,
113
110
  });
114
111
  yield* Database.add(trigger);
@@ -124,5 +121,5 @@ export const subscription = Command.make(
124
121
  ).pipe(
125
122
  Command.withDescription('Create a subscription trigger.'),
126
123
  Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),
127
- Command.provideEffectDiscard(() => withTypes(Function.Function, Trigger.Trigger)),
124
+ Command.provideEffectDiscard(() => withTypes(Operation.PersistentOperation, Trigger.Trigger)),
128
125
  );
@@ -13,8 +13,8 @@ import * as Option from 'effect/Option';
13
13
  import { CommandConfig } from '@dxos/cli-util';
14
14
  import { flushAndSync, print, spaceLayer, withTypes } from '@dxos/cli-util';
15
15
  import { Common } from '@dxos/cli-util';
16
+ import { Operation, Trigger } from '@dxos/compute';
16
17
  import { Database, Filter, JsonSchema, Ref } from '@dxos/echo';
17
- import { Function, Trigger } from '@dxos/functions';
18
18
 
19
19
  import { Cron, Enabled, Input } from '../options';
20
20
  import { printTrigger, promptForSchemaInput, selectFunction } from '../util';
@@ -37,7 +37,7 @@ export const timer = Command.make(
37
37
  onNone: () => selectFunction(),
38
38
  onSome: (id) => Effect.succeed(id),
39
39
  });
40
- const functions = yield* Database.runQuery(Filter.type(Function.Function));
40
+ const functions = yield* Database.runQuery(Filter.type(Operation.PersistentOperation));
41
41
  const fn = functions.find((fn) => fn.id === functionId);
42
42
  if (!fn) {
43
43
  return yield* Effect.fail(new Error(`Function not found: ${functionId}`));
@@ -69,10 +69,7 @@ export const timer = Command.make(
69
69
  const trigger = Trigger.make({
70
70
  function: Ref.make(fn),
71
71
  enabled,
72
- spec: {
73
- kind: 'timer',
74
- cron,
75
- },
72
+ spec: Trigger.specTimer(cron),
76
73
  input,
77
74
  });
78
75
 
@@ -89,5 +86,5 @@ export const timer = Command.make(
89
86
  ).pipe(
90
87
  Command.withDescription('Create a timer trigger.'),
91
88
  Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),
92
- Command.provideEffectDiscard(() => withTypes(Function.Function, Trigger.Trigger)),
89
+ Command.provideEffectDiscard(() => withTypes(Operation.PersistentOperation, Trigger.Trigger)),
93
90
  );
@@ -9,8 +9,9 @@ import * as Effect from 'effect/Effect';
9
9
 
10
10
  import { CommandConfig, Common, printList, spaceIdWithDefault, spaceLayer } from '@dxos/cli-util';
11
11
  import { ClientService } from '@dxos/client';
12
- import { Database, Filter } from '@dxos/echo';
13
- import { Trigger } from '@dxos/functions';
12
+ import { Trigger } from '@dxos/compute';
13
+ import { Context } from '@dxos/context';
14
+ import { Database, Filter, Query } from '@dxos/echo';
14
15
 
15
16
  import { getTriggerRemoteStatus, printTrigger } from './util';
16
17
 
@@ -23,13 +24,15 @@ export const list = Command.make(
23
24
  const { json } = yield* CommandConfig;
24
25
 
25
26
  // Fetch local triggers
26
- const triggers = yield* Database.runQuery(Filter.type(Trigger.Trigger));
27
+ const triggers = yield* Database.runQuery(
28
+ Query.select(Filter.type(Trigger.Trigger)).debugLabel('cli.trigger.list'),
29
+ );
27
30
 
28
31
  // Fetch remote cron triggers to check availability
29
32
  const remoteCronIds = yield* Effect.gen(function* () {
30
33
  const client = yield* ClientService;
31
34
  const spaceId = yield* spaceIdWithDefault(spaceIdOption);
32
- const result = yield* Effect.promise(() => client.edge.http.getCronTriggers(spaceId)).pipe(
35
+ const result = yield* Effect.promise(() => client.edge.http.getCronTriggers(Context.default(), spaceId)).pipe(
33
36
  Effect.catchAll(() => Effect.succeed({ cronIds: [] })),
34
37
  );
35
38
  return result.cronIds;
@@ -3,9 +3,6 @@
3
3
  //
4
4
 
5
5
  import * as Options from '@effect/cli/Options';
6
- import * as Schema from 'effect/Schema';
7
-
8
- import { DXN } from '@dxos/keys';
9
6
 
10
7
  export const TriggerId = Options.text('id').pipe(Options.withDescription('The id of the trigger.'));
11
8
 
@@ -42,18 +39,9 @@ export const Cron = Options.text('cron').pipe(
42
39
  );
43
40
 
44
41
  //
45
- // Queue
42
+ // Feed
46
43
  //
47
44
 
48
- // TODO(dmaretskyi): Extract
49
- const DXNSchema = Schema.String.pipe(
50
- Schema.transform(Schema.instanceOf(DXN), {
51
- decode: (value: string) => DXN.parse(value),
52
- encode: (value: DXN) => value.toString(),
53
- }),
54
- );
55
-
56
- export const Queue = Options.text('queue').pipe(
57
- Options.withDescription('The DXN of the queue for the queue trigger.'),
58
- Options.withSchema(DXNSchema),
45
+ export const Feed = Options.text('feed').pipe(
46
+ Options.withDescription('The EID of the feed for the feed trigger (echo://<spaceId>/<objectId>).'),
59
47
  );
@@ -9,9 +9,9 @@ import * as Effect from 'effect/Effect';
9
9
  import * as Option from 'effect/Option';
10
10
 
11
11
  import { CommandConfig, Common, print, spaceLayer, withTypes } from '@dxos/cli-util';
12
- import { DXN } from '@dxos/echo';
13
- import { Database } from '@dxos/echo';
14
- import { Trigger } from '@dxos/functions';
12
+ import { Trigger } from '@dxos/compute';
13
+ import { Database, Ref } from '@dxos/echo';
14
+ import { EID } from '@dxos/keys';
15
15
 
16
16
  import { TriggerId } from './options';
17
17
  import { printTriggerRemoved, selectTrigger } from './util';
@@ -29,8 +29,8 @@ export const remove = Command.make(
29
29
  onNone: () => selectTrigger(),
30
30
  onSome: (id) => Effect.succeed(id),
31
31
  });
32
- const dxn = DXN.fromLocalObjectId(triggerId);
33
- const trigger = yield* Database.resolve(dxn, Trigger.Trigger);
32
+ const dxn = EID.make({ entityId: triggerId });
33
+ const trigger = yield* Database.resolve(Ref.fromURI(dxn), Trigger.Trigger);
34
34
  yield* Database.remove(trigger);
35
35
  if (json) {
36
36
  yield* Console.log(JSON.stringify({ id: trigger.id, removed: true }, null, 2));
@@ -12,38 +12,38 @@ import * as Option from 'effect/Option';
12
12
  import { CommandConfig } from '@dxos/cli-util';
13
13
  import { flushAndSync, print, spaceLayer, withTypes } from '@dxos/cli-util';
14
14
  import { Common } from '@dxos/cli-util';
15
- import { DXN, Database, Filter, JsonSchema, Obj, Ref } from '@dxos/echo';
16
- import { Function, Trigger } from '@dxos/functions';
15
+ import { Operation, Trigger } from '@dxos/compute';
16
+ import { Database, Feed as FeedNs, Filter, JsonSchema, Obj, Ref } from '@dxos/echo';
17
+ import { EID, type EntityId } from '@dxos/keys';
17
18
 
18
- import { Enabled, Input, Queue, TriggerId } from '../options';
19
- import { printTrigger, promptForSchemaInput, selectFunction, selectQueue, selectTrigger } from '../util';
19
+ import { Enabled, Feed, Input, TriggerId } from '../options';
20
+ import { printTrigger, promptForSchemaInput, selectFunction, selectFeed, selectTrigger } from '../util';
20
21
 
21
22
  export const queue = Command.make(
22
- 'queue',
23
+ 'feed',
23
24
  {
24
25
  spaceId: Common.spaceId.pipe(Options.optional),
25
26
  id: TriggerId.pipe(Options.optional),
26
27
  enabled: Enabled,
27
28
  functionId: Common.functionId.pipe(Options.optional),
28
- queue: Queue.pipe(Options.optional),
29
+ feed: Feed.pipe(Options.optional),
29
30
  input: Input.pipe(Options.optional),
30
31
  },
31
32
  (options) =>
32
33
  Effect.gen(function* () {
33
34
  const { json } = yield* CommandConfig;
34
-
35
35
  const triggerId = yield* Option.match(options.id, {
36
- onNone: () => selectTrigger('queue'),
36
+ onNone: () => selectTrigger('feed'),
37
37
  onSome: (id) => Effect.succeed(id),
38
38
  });
39
- const dxn = DXN.fromLocalObjectId(triggerId);
39
+ const dxn = EID.make({ entityId: triggerId as EntityId });
40
40
  const trigger = yield* Database.resolve(dxn, Trigger.Trigger);
41
- if (trigger.spec?.kind !== 'queue') {
41
+ if (trigger.spec?.kind !== 'feed') {
42
42
  return yield* Effect.fail(new Error(`Invalid trigger type: ${trigger.spec?.kind}`));
43
43
  }
44
44
 
45
45
  const currentFn = yield* updateFunction(trigger, options.functionId);
46
- yield* updateQueue(trigger, options.queue);
46
+ yield* updateFeed(trigger, options.feed);
47
47
  yield* updateInput(trigger, currentFn, options.input);
48
48
  yield* updateEnabled(trigger, options.id, options.enabled);
49
49
 
@@ -56,9 +56,9 @@ export const queue = Command.make(
56
56
  yield* flushAndSync({ indexes: true });
57
57
  }),
58
58
  ).pipe(
59
- Command.withDescription('Update a queue trigger.'),
59
+ Command.withDescription('Update a feed trigger.'),
60
60
  Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),
61
- Command.provideEffectDiscard(() => withTypes(Function.Function, Trigger.Trigger)),
61
+ Command.provideEffectDiscard(() => withTypes(Operation.PersistentOperation, Trigger.Trigger)),
62
62
  );
63
63
 
64
64
  /**
@@ -67,10 +67,10 @@ export const queue = Command.make(
67
67
  * @returns The current function (either original or newly assigned)
68
68
  */
69
69
  const updateFunction = Effect.fn(function* (trigger: Trigger.Trigger, functionIdOption: Option.Option<string>) {
70
- let currentFn: Function.Function | undefined = trigger.function
70
+ let currentFn: Operation.PersistentOperation | undefined = trigger.function
71
71
  ? yield* Database.load(trigger.function) as any
72
72
  : undefined;
73
- if (currentFn && !Obj.instanceOf(Function.Function, currentFn)) {
73
+ if (currentFn && !Obj.instanceOf(Operation.PersistentOperation, currentFn)) {
74
74
  currentFn = undefined;
75
75
  }
76
76
  const currentFunctionName = currentFn ? (currentFn.name ?? currentFn.id) : undefined;
@@ -87,19 +87,19 @@ const updateFunction = Effect.fn(function* (trigger: Trigger.Trigger, functionId
87
87
  onNone: () => selectFunction(),
88
88
  onSome: (id) => Effect.succeed(id),
89
89
  });
90
- const functions = yield* Database.runQuery(Filter.type(Function.Function));
90
+ const functions = yield* Database.runQuery(Filter.type(Operation.PersistentOperation));
91
91
  const foundFn = functions.find((fn) => fn.id === functionId);
92
- if (!foundFn || !Obj.instanceOf(Function.Function, foundFn)) {
92
+ if (!foundFn || !Obj.instanceOf(Operation.PersistentOperation, foundFn)) {
93
93
  return yield* Effect.fail(new Error(`Function not found: ${functionId}`));
94
94
  }
95
- Obj.change(trigger, (mutableTrigger) => {
96
- mutableTrigger.function = Ref.make(foundFn);
95
+ Obj.update(trigger, (trigger) => {
96
+ trigger.function = Ref.make(foundFn);
97
97
  });
98
98
  currentFn = foundFn;
99
99
  }
100
100
 
101
101
  if (!currentFn) {
102
- const functionId = trigger.function?.dxn.asEchoDXN()?.echoId ?? 'unknown';
102
+ const functionId = (trigger.function ? trigger.function.uri.toString() : undefined) ?? 'unknown';
103
103
  return yield* Effect.fail(new Error(`Invalid reference for ${functionId}`));
104
104
  }
105
105
 
@@ -107,32 +107,28 @@ const updateFunction = Effect.fn(function* (trigger: Trigger.Trigger, functionId
107
107
  });
108
108
 
109
109
  /**
110
- * Handles updating the queue DXN for a queue trigger.
111
- * Prompts for confirmation if queue is not provided, then updates the queue if confirmed.
110
+ * Handles updating the feed reference for a feed trigger.
111
+ * Prompts for confirmation if feed is not provided, then updates the feed if confirmed.
112
112
  */
113
- const updateQueue = Effect.fn(function* (trigger: Trigger.Trigger, queueOption: Option.Option<DXN>) {
114
- const currentQueue = trigger.spec?.kind === 'queue' ? trigger.spec.queue : undefined;
115
- const currentQueueStr = currentQueue
116
- ? typeof currentQueue === 'string'
117
- ? currentQueue
118
- : String(currentQueue)
119
- : undefined;
120
- const shouldChangeQueue = yield* Option.match(queueOption, {
113
+ const updateFeed = Effect.fn(function* (trigger: Trigger.Trigger, feedOption: Option.Option<string>) {
114
+ const currentFeed = trigger.spec?.kind === 'feed' ? trigger.spec.feed : undefined;
115
+ const currentFeedStr = currentFeed ? currentFeed.uri.toString() : undefined;
116
+ const shouldChangeFeed = yield* Option.match(feedOption, {
121
117
  onNone: () =>
122
118
  Prompt.confirm({
123
- message: `Change the queue${currentQueueStr ? ` (current: ${currentQueueStr})` : ''}?`,
119
+ message: `Change the feed${currentFeedStr ? ` (current: ${currentFeedStr})` : ''}?`,
124
120
  initial: false,
125
121
  }).pipe(Prompt.run),
126
122
  onSome: () => Effect.succeed(true),
127
123
  });
128
- if (shouldChangeQueue) {
129
- const queueDxn = yield* Option.match(queueOption, {
130
- onNone: () => selectQueue(),
131
- onSome: (dxn) => Effect.succeed(dxn.toString()),
124
+ if (shouldChangeFeed) {
125
+ const feed = yield* Option.match(feedOption, {
126
+ onNone: () => selectFeed(),
127
+ onSome: (uri) => Database.resolve(EID.parse(uri), FeedNs.Feed),
132
128
  });
133
- Obj.change(trigger, (mutableTrigger) => {
134
- if (mutableTrigger.spec?.kind === 'queue') {
135
- mutableTrigger.spec.queue = queueDxn;
129
+ Obj.update(trigger, (trigger) => {
130
+ if (trigger.spec?.kind === 'feed') {
131
+ trigger.spec.feed = Ref.make(feed);
136
132
  }
137
133
  });
138
134
  }
@@ -144,7 +140,7 @@ const updateQueue = Effect.fn(function* (trigger: Trigger.Trigger, queueOption:
144
140
  */
145
141
  const updateInput = Effect.fn(function* (
146
142
  trigger: Trigger.Trigger,
147
- fn: Function.Function,
143
+ fn: Operation.PersistentOperation,
148
144
  inputOption: Option.Option<Record<string, any>>,
149
145
  ) {
150
146
  const currentInput = trigger.input as Record<string, any> | undefined;
@@ -166,8 +162,8 @@ const updateInput = Effect.fn(function* (
166
162
  promptForSchemaInput(fn.inputSchema ? JsonSchema.toEffectSchema(fn.inputSchema) : undefined, currentInput),
167
163
  onSome: (value) => Effect.succeed(value as Record<string, any>),
168
164
  });
169
- Obj.change(trigger, (mutableTrigger) => {
170
- mutableTrigger.input = inputObj;
165
+ Obj.update(trigger, (trigger) => {
166
+ trigger.input = inputObj;
171
167
  });
172
168
  }
173
169
  });
@@ -189,7 +185,7 @@ const updateEnabled = Effect.fn(function* (
189
185
  }).pipe(Prompt.run),
190
186
  onSome: () => Effect.succeed(enabled),
191
187
  });
192
- Obj.change(trigger, (mutableTrigger) => {
193
- mutableTrigger.enabled = enabledValue;
188
+ Obj.update(trigger, (trigger) => {
189
+ trigger.enabled = enabledValue;
194
190
  });
195
191
  });
@@ -13,8 +13,9 @@ import * as Option from 'effect/Option';
13
13
  import { CommandConfig } from '@dxos/cli-util';
14
14
  import { flushAndSync, print, spaceLayer, withTypes } from '@dxos/cli-util';
15
15
  import { Common } from '@dxos/cli-util';
16
- import { DXN, Database, Filter, JsonSchema, Obj, Query, Ref } from '@dxos/echo';
17
- import { Function, Trigger } from '@dxos/functions';
16
+ import { Operation, Trigger } from '@dxos/compute';
17
+ import { Database, Filter, JsonSchema, Obj, Query, Ref } from '@dxos/echo';
18
+ import { DXN, EID } from '@dxos/keys';
18
19
 
19
20
  import { Deep, Delay, Enabled, Input, TriggerId, Typename } from '../options';
20
21
  import { printTrigger, promptForSchemaInput, selectFunction, selectTrigger } from '../util';
@@ -39,8 +40,8 @@ export const subscription = Command.make(
39
40
  onNone: () => selectTrigger('subscription'),
40
41
  onSome: (id) => Effect.succeed(id),
41
42
  });
42
- const dxn = DXN.fromLocalObjectId(triggerId);
43
- const trigger = yield* Database.resolve(dxn, Trigger.Trigger);
43
+ const dxn = EID.make({ entityId: triggerId });
44
+ const trigger = yield* Database.resolve(Ref.fromURI(dxn), Trigger.Trigger);
44
45
  if (trigger.spec?.kind !== 'subscription') {
45
46
  return yield* Effect.fail(new Error(`Invalid trigger type: ${trigger.spec?.kind}`));
46
47
  }
@@ -61,7 +62,7 @@ export const subscription = Command.make(
61
62
  ).pipe(
62
63
  Command.withDescription('Update a subscription trigger.'),
63
64
  Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),
64
- Command.provideEffectDiscard(() => withTypes(Function.Function, Trigger.Trigger)),
65
+ Command.provideEffectDiscard(() => withTypes(Operation.PersistentOperation, Trigger.Trigger)),
65
66
  );
66
67
 
67
68
  /**
@@ -78,8 +79,7 @@ const extractCurrentTypename = (spec: Trigger.SubscriptionSpec | undefined): Opt
78
79
  Match.withReturnType<Option.Option<string>>(),
79
80
  Match.when({ type: 'object' }, (f) =>
80
81
  Option.fromNullable(f.typename).pipe(
81
- Option.flatMap((dxn) => Option.fromNullable(DXN.tryParse(dxn))),
82
- Option.flatMap((dxn) => Option.fromNullable(dxn.asTypeDXN()?.type)),
82
+ Option.flatMap((dxn) => Option.fromNullable(DXN.isDXN(dxn) ? DXN.getName(dxn) : undefined)),
83
83
  ),
84
84
  ),
85
85
  Match.orElse(() => Option.none()),
@@ -95,10 +95,10 @@ const extractCurrentTypename = (spec: Trigger.SubscriptionSpec | undefined): Opt
95
95
  * @returns The current function (either original or newly assigned)
96
96
  */
97
97
  const updateFunction = Effect.fn(function* (trigger: Trigger.Trigger, functionIdOption: Option.Option<string>) {
98
- let currentFn: Function.Function | undefined = trigger.function
98
+ let currentFn: Operation.PersistentOperation | undefined = trigger.function
99
99
  ? yield* Database.load(trigger.function) as any
100
100
  : undefined;
101
- if (currentFn && !Obj.instanceOf(Function.Function, currentFn)) {
101
+ if (currentFn && !Obj.instanceOf(Operation.PersistentOperation, currentFn)) {
102
102
  currentFn = undefined;
103
103
  }
104
104
  const currentFunctionName = currentFn ? (currentFn.name ?? currentFn.id) : undefined;
@@ -115,19 +115,20 @@ const updateFunction = Effect.fn(function* (trigger: Trigger.Trigger, functionId
115
115
  onNone: () => selectFunction(),
116
116
  onSome: (id) => Effect.succeed(id),
117
117
  });
118
- const functions = yield* Database.runQuery(Filter.type(Function.Function));
118
+ const functions = yield* Database.runQuery(Filter.type(Operation.PersistentOperation));
119
119
  const foundFn = functions.find((fn) => fn.id === functionId);
120
- if (!foundFn || !Obj.instanceOf(Function.Function, foundFn)) {
120
+ if (!foundFn || !Obj.instanceOf(Operation.PersistentOperation, foundFn)) {
121
121
  return yield* Effect.fail(new Error(`Function not found: ${functionId}`));
122
122
  }
123
- Obj.change(trigger, (mutableTrigger) => {
124
- mutableTrigger.function = Ref.make(foundFn);
123
+ Obj.update(trigger, (trigger) => {
124
+ trigger.function = Ref.make(foundFn);
125
125
  });
126
126
  currentFn = foundFn;
127
127
  }
128
128
 
129
129
  if (!currentFn) {
130
- const functionId = trigger.function?.dxn.asEchoDXN()?.echoId ?? 'unknown';
130
+ const functionId =
131
+ (trigger.function ? EID.getEntityId(EID.tryParse(trigger.function.uri)!) : undefined) ?? 'unknown';
131
132
  return yield* Effect.fail(new Error(`Invalid reference for ${functionId}`));
132
133
  }
133
134
 
@@ -210,8 +211,8 @@ const updateSpec = Effect.fn(function* (
210
211
  subscriptionOptions.delay = delayOptionValue.value;
211
212
  }
212
213
 
213
- Obj.change(trigger, (mutableTrigger) => {
214
- const spec = mutableTrigger.spec;
214
+ Obj.update(trigger, (trigger) => {
215
+ const spec = trigger.spec;
215
216
  if (spec?.kind === 'subscription') {
216
217
  // Cast needed because QueryAST types are deeply readonly but spec.query expects mutable.
217
218
  spec.query = { ast: queryAst } as NonNullable<typeof spec.query>;
@@ -227,7 +228,7 @@ const updateSpec = Effect.fn(function* (
227
228
  */
228
229
  const updateInput = Effect.fn(function* (
229
230
  trigger: Trigger.Trigger,
230
- fn: Function.Function,
231
+ fn: Operation.PersistentOperation,
231
232
  inputOption: Option.Option<Record<string, any>>,
232
233
  ) {
233
234
  const currentInput = trigger.input as Record<string, any> | undefined;
@@ -249,8 +250,8 @@ const updateInput = Effect.fn(function* (
249
250
  promptForSchemaInput(fn.inputSchema ? JsonSchema.toEffectSchema(fn.inputSchema) : undefined, currentInput),
250
251
  onSome: (value) => Effect.succeed(value as Record<string, any>),
251
252
  });
252
- Obj.change(trigger, (mutableTrigger) => {
253
- mutableTrigger.input = inputObj;
253
+ Obj.update(trigger, (trigger) => {
254
+ trigger.input = inputObj;
254
255
  });
255
256
  }
256
257
  });
@@ -272,7 +273,7 @@ const updateEnabled = Effect.fn(function* (
272
273
  }).pipe(Prompt.run),
273
274
  onSome: () => Effect.succeed(enabled),
274
275
  });
275
- Obj.change(trigger, (mutableTrigger) => {
276
- mutableTrigger.enabled = enabledValue;
276
+ Obj.update(trigger, (trigger) => {
277
+ trigger.enabled = enabledValue;
277
278
  });
278
279
  });
@@ -12,8 +12,9 @@ import * as Option from 'effect/Option';
12
12
  import { CommandConfig } from '@dxos/cli-util';
13
13
  import { flushAndSync, print, spaceLayer, withTypes } from '@dxos/cli-util';
14
14
  import { Common } from '@dxos/cli-util';
15
- import { DXN, Database, Filter, JsonSchema, Obj, Ref } from '@dxos/echo';
16
- import { Function, Trigger } from '@dxos/functions';
15
+ import { Operation, Trigger } from '@dxos/compute';
16
+ import { Database, Filter, JsonSchema, Obj, Ref } from '@dxos/echo';
17
+ import { EID } from '@dxos/keys';
17
18
 
18
19
  import { Cron, Enabled, Input, TriggerId } from '../options';
19
20
  import { printTrigger, promptForSchemaInput, selectFunction, selectTrigger } from '../util';
@@ -36,8 +37,8 @@ export const timer = Command.make(
36
37
  onNone: () => selectTrigger('timer'),
37
38
  onSome: (id) => Effect.succeed(id),
38
39
  });
39
- const dxn = DXN.fromLocalObjectId(triggerId);
40
- const trigger = yield* Database.resolve(dxn, Trigger.Trigger);
40
+ const dxn = EID.make({ entityId: triggerId });
41
+ const trigger = yield* Database.resolve(Ref.fromURI(dxn), Trigger.Trigger);
41
42
  if (!trigger.spec || trigger.spec?.kind !== 'timer') {
42
43
  return yield* Effect.fail(new Error(`Invalid trigger type: ${trigger.spec?.kind}`));
43
44
  }
@@ -58,7 +59,7 @@ export const timer = Command.make(
58
59
  ).pipe(
59
60
  Command.withDescription('Update a timer trigger.'),
60
61
  Command.provide(({ spaceId }) => spaceLayer(spaceId, true)),
61
- Command.provideEffectDiscard(() => withTypes(Function.Function, Trigger.Trigger)),
62
+ Command.provideEffectDiscard(() => withTypes(Operation.PersistentOperation, Trigger.Trigger)),
62
63
  );
63
64
 
64
65
  /**
@@ -67,10 +68,10 @@ export const timer = Command.make(
67
68
  * @returns The current function (either original or newly assigned)
68
69
  */
69
70
  const updateFunction = Effect.fn(function* (trigger: Trigger.Trigger, functionIdOption: Option.Option<string>) {
70
- let currentFn: Function.Function | undefined = trigger.function
71
+ let currentFn: Operation.PersistentOperation | undefined = trigger.function
71
72
  ? yield* Database.load(trigger.function) as any
72
73
  : undefined;
73
- if (currentFn && !Obj.instanceOf(Function.Function, currentFn)) {
74
+ if (currentFn && !Obj.instanceOf(Operation.PersistentOperation, currentFn)) {
74
75
  currentFn = undefined;
75
76
  }
76
77
  const currentFunctionName = currentFn ? (currentFn.name ?? currentFn.id) : undefined;
@@ -87,19 +88,20 @@ const updateFunction = Effect.fn(function* (trigger: Trigger.Trigger, functionId
87
88
  onNone: () => selectFunction(),
88
89
  onSome: (id) => Effect.succeed(id),
89
90
  });
90
- const functions = yield* Database.runQuery(Filter.type(Function.Function));
91
+ const functions = yield* Database.runQuery(Filter.type(Operation.PersistentOperation));
91
92
  const foundFn = functions.find((fn) => fn.id === functionId);
92
- if (!foundFn || !Obj.instanceOf(Function.Function, foundFn)) {
93
+ if (!foundFn || !Obj.instanceOf(Operation.PersistentOperation, foundFn)) {
93
94
  return yield* Effect.fail(new Error(`Function not found: ${functionId}`));
94
95
  }
95
- Obj.change(trigger, (mutableTrigger) => {
96
- mutableTrigger.function = Ref.make(foundFn);
96
+ Obj.update(trigger, (trigger) => {
97
+ trigger.function = Ref.make(foundFn);
97
98
  });
98
99
  currentFn = foundFn;
99
100
  }
100
101
 
101
102
  if (!currentFn) {
102
- const functionId = trigger.function?.dxn.asEchoDXN()?.echoId ?? 'unknown';
103
+ const functionId =
104
+ (trigger.function ? EID.getEntityId(EID.tryParse(trigger.function.uri)!) : undefined) ?? 'unknown';
103
105
  return yield* Effect.fail(new Error(`Invalid reference for ${functionId}`));
104
106
  }
105
107
 
@@ -128,9 +130,9 @@ const updateCron = Effect.fn(function* (trigger: Trigger.Trigger, cronOption: Op
128
130
  }).pipe(Prompt.run),
129
131
  onSome: (value) => Effect.succeed(value),
130
132
  });
131
- Obj.change(trigger, (mutableTrigger) => {
132
- if (mutableTrigger.spec?.kind === 'timer') {
133
- mutableTrigger.spec.cron = cron;
133
+ Obj.update(trigger, (trigger) => {
134
+ if (trigger.spec?.kind === 'timer') {
135
+ trigger.spec.cron = cron;
134
136
  }
135
137
  });
136
138
  }
@@ -142,7 +144,7 @@ const updateCron = Effect.fn(function* (trigger: Trigger.Trigger, cronOption: Op
142
144
  */
143
145
  const updateInput = Effect.fn(function* (
144
146
  trigger: Trigger.Trigger,
145
- fn: Function.Function,
147
+ fn: Operation.PersistentOperation,
146
148
  inputOption: Option.Option<Record<string, any>>,
147
149
  ) {
148
150
  const currentInput = trigger.input as Record<string, any> | undefined;
@@ -164,8 +166,8 @@ const updateInput = Effect.fn(function* (
164
166
  promptForSchemaInput(fn.inputSchema ? JsonSchema.toEffectSchema(fn.inputSchema) : undefined, currentInput),
165
167
  onSome: (value) => Effect.succeed(value as Record<string, any>),
166
168
  });
167
- Obj.change(trigger, (mutableTrigger) => {
168
- mutableTrigger.input = inputObj;
169
+ Obj.update(trigger, (trigger) => {
170
+ trigger.input = inputObj;
169
171
  });
170
172
  }
171
173
  });
@@ -187,7 +189,7 @@ const updateEnabled = Effect.fn(function* (
187
189
  }).pipe(Prompt.run),
188
190
  onSome: () => Effect.succeed(enabled),
189
191
  });
190
- Obj.change(trigger, (mutableTrigger) => {
191
- mutableTrigger.enabled = enabledValue;
192
+ Obj.update(trigger, (trigger) => {
193
+ trigger.enabled = enabledValue;
192
194
  });
193
195
  });