@dxos/plugin-automation 0.8.4-main.406dc2a → 0.8.4-main.4668b7de9b

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 (361) 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/neutral/AutomationPlugin.node.mjs +1113 -0
  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/neutral/FunctionsPanel-L32Z67B7.mjs +97 -0
  15. package/dist/lib/neutral/FunctionsPanel-L32Z67B7.mjs.map +7 -0
  16. package/dist/lib/neutral/FunctionsRegistry-RTCY3LXE.mjs +95 -0
  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/neutral/chunk-RCBE37YU.mjs +368 -0
  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/operations/index.mjs.map +7 -0
  59. package/dist/lib/neutral/plugin.mjs +16 -0
  60. package/dist/lib/neutral/plugin.mjs.map +7 -0
  61. package/dist/lib/neutral/react-surface-FOOBGYNG.mjs +57 -0
  62. package/dist/lib/neutral/react-surface-FOOBGYNG.mjs.map +7 -0
  63. package/dist/lib/neutral/registry-sync-JYDDTBAE.mjs +82 -0
  64. package/dist/lib/neutral/registry-sync-JYDDTBAE.mjs.map +7 -0
  65. package/dist/lib/neutral/testing.mjs +8 -0
  66. package/dist/lib/neutral/testing.mjs.map +7 -0
  67. package/dist/lib/neutral/translations.mjs +60 -0
  68. package/dist/lib/neutral/translations.mjs.map +7 -0
  69. package/dist/lib/neutral/trigger-runtime-controller-BOEJYGWC.mjs +77 -0
  70. package/dist/lib/neutral/trigger-runtime-controller-BOEJYGWC.mjs.map +7 -0
  71. package/dist/lib/neutral/types/index.mjs +12 -0
  72. package/dist/lib/neutral/types/index.mjs.map +7 -0
  73. package/dist/types/src/AutomationPlugin.d.ts +3 -1
  74. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  75. package/dist/types/src/AutomationPlugin.node.d.ts +4 -0
  76. package/dist/types/src/AutomationPlugin.node.d.ts.map +1 -0
  77. package/dist/types/src/AutomationPlugin.test.d.ts +2 -0
  78. package/dist/types/src/AutomationPlugin.test.d.ts.map +1 -0
  79. package/dist/types/src/AutomationPlugin.workerd.d.ts +4 -0
  80. package/dist/types/src/AutomationPlugin.workerd.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  82. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/index.d.ts +8 -5
  84. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/layer-specs.d.ts +6 -0
  86. package/dist/types/src/capabilities/layer-specs.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/node.d.ts +8 -0
  88. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  90. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  92. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/registry-sync.d.ts +21 -0
  94. package/dist/types/src/capabilities/registry-sync.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/trigger-runtime-controller.d.ts +5 -0
  96. package/dist/types/src/capabilities/trigger-runtime-controller.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/trigger-runtime-controller.test.d.ts +2 -0
  98. package/dist/types/src/capabilities/trigger-runtime-controller.test.d.ts.map +1 -0
  99. package/dist/types/src/commands/index.d.ts +2 -0
  100. package/dist/types/src/commands/index.d.ts.map +1 -0
  101. package/dist/types/src/commands/trigger/create/index.d.ts +25 -0
  102. package/dist/types/src/commands/trigger/create/index.d.ts.map +1 -0
  103. package/dist/types/src/commands/trigger/create/queue.d.ts +13 -0
  104. package/dist/types/src/commands/trigger/create/queue.d.ts.map +1 -0
  105. package/dist/types/src/commands/trigger/create/subscription.d.ts +15 -0
  106. package/dist/types/src/commands/trigger/create/subscription.d.ts.map +1 -0
  107. package/dist/types/src/commands/trigger/create/timer.d.ts +13 -0
  108. package/dist/types/src/commands/trigger/create/timer.d.ts.map +1 -0
  109. package/dist/types/src/commands/trigger/index.d.ts +57 -0
  110. package/dist/types/src/commands/trigger/index.d.ts.map +1 -0
  111. package/dist/types/src/commands/trigger/list.d.ts +7 -0
  112. package/dist/types/src/commands/trigger/list.d.ts.map +1 -0
  113. package/dist/types/src/commands/trigger/options.d.ts +10 -0
  114. package/dist/types/src/commands/trigger/options.d.ts.map +1 -0
  115. package/dist/types/src/commands/trigger/remove.d.ts +8 -0
  116. package/dist/types/src/commands/trigger/remove.d.ts.map +1 -0
  117. package/dist/types/src/commands/trigger/update/index.d.ts +28 -0
  118. package/dist/types/src/commands/trigger/update/index.d.ts.map +1 -0
  119. package/dist/types/src/commands/trigger/update/queue.d.ts +11 -0
  120. package/dist/types/src/commands/trigger/update/queue.d.ts.map +1 -0
  121. package/dist/types/src/commands/trigger/update/subscription.d.ts +13 -0
  122. package/dist/types/src/commands/trigger/update/subscription.d.ts.map +1 -0
  123. package/dist/types/src/commands/trigger/update/timer.d.ts +11 -0
  124. package/dist/types/src/commands/trigger/update/timer.d.ts.map +1 -0
  125. package/dist/types/src/commands/trigger/util.d.ts +85 -0
  126. package/dist/types/src/commands/trigger/util.d.ts.map +1 -0
  127. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +6 -7
  128. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  129. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +45 -27
  130. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
  131. package/dist/types/src/components/AutomationPanel/TriggerEdgeMetadata.d.ts +18 -0
  132. package/dist/types/src/components/AutomationPanel/TriggerEdgeMetadata.d.ts.map +1 -0
  133. package/dist/types/src/components/AutomationPanel/index.d.ts.map +1 -1
  134. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
  135. package/dist/types/src/components/FunctionsPanel/index.d.ts.map +1 -1
  136. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts +8 -0
  137. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts.map +1 -0
  138. package/dist/types/src/components/FunctionsRegistry/index.d.ts +4 -0
  139. package/dist/types/src/components/FunctionsRegistry/index.d.ts.map +1 -0
  140. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts +12 -9
  141. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +1 -1
  142. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts +6 -3
  143. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +1 -1
  144. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +9 -8
  145. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  146. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +117 -29
  147. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
  148. package/dist/types/src/components/TriggerEditor/util.d.ts +14 -0
  149. package/dist/types/src/components/TriggerEditor/util.d.ts.map +1 -0
  150. package/dist/types/src/components/index.d.ts +3 -4
  151. package/dist/types/src/components/index.d.ts.map +1 -1
  152. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts +6 -0
  153. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts.map +1 -0
  154. package/dist/types/src/containers/AutomationSettings/index.d.ts +2 -0
  155. package/dist/types/src/containers/AutomationSettings/index.d.ts.map +1 -0
  156. package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts +4 -0
  157. package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts.map +1 -0
  158. package/dist/types/src/containers/FunctionsContainer/index.d.ts +2 -0
  159. package/dist/types/src/containers/FunctionsContainer/index.d.ts.map +1 -0
  160. package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts.map +1 -0
  161. package/dist/types/src/containers/TriggerSettings/index.d.ts +3 -0
  162. package/dist/types/src/containers/TriggerSettings/index.d.ts.map +1 -0
  163. package/dist/types/src/containers/index.d.ts +5 -0
  164. package/dist/types/src/containers/index.d.ts.map +1 -0
  165. package/dist/types/src/hooks/index.d.ts +1 -1
  166. package/dist/types/src/hooks/index.d.ts.map +1 -1
  167. package/dist/types/src/hooks/useEdgeTriggersDispatcherStatus.d.ts +13 -0
  168. package/dist/types/src/hooks/useEdgeTriggersDispatcherStatus.d.ts.map +1 -0
  169. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +6 -5
  170. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -1
  171. package/dist/types/src/index.d.ts +1 -4
  172. package/dist/types/src/index.d.ts.map +1 -1
  173. package/dist/types/src/meta.d.ts +2 -2
  174. package/dist/types/src/meta.d.ts.map +1 -1
  175. package/dist/types/src/operations/create-trigger-from-template.d.ts +5 -0
  176. package/dist/types/src/operations/create-trigger-from-template.d.ts.map +1 -0
  177. package/dist/types/src/operations/index.d.ts +3 -0
  178. package/dist/types/src/operations/index.d.ts.map +1 -0
  179. package/dist/types/src/plugin.d.ts +4 -0
  180. package/dist/types/src/plugin.d.ts.map +1 -0
  181. package/dist/types/src/testing/test-functions.d.ts +318 -3
  182. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  183. package/dist/types/src/testing.d.ts +2 -0
  184. package/dist/types/src/testing.d.ts.map +1 -0
  185. package/dist/types/src/translations.d.ts +45 -28
  186. package/dist/types/src/translations.d.ts.map +1 -1
  187. package/dist/types/src/types/AutomationOperation.d.ts +21 -0
  188. package/dist/types/src/types/AutomationOperation.d.ts.map +1 -0
  189. package/dist/types/src/types/index.d.ts +1 -0
  190. package/dist/types/src/types/index.d.ts.map +1 -1
  191. package/dist/types/src/types/schema.d.ts +13 -5
  192. package/dist/types/src/types/schema.d.ts.map +1 -1
  193. package/dist/types/tsconfig.tsbuildinfo +1 -1
  194. package/package.json +136 -69
  195. package/src/AutomationPlugin.node.ts +35 -0
  196. package/src/AutomationPlugin.test.ts +27 -0
  197. package/src/AutomationPlugin.tsx +39 -36
  198. package/src/AutomationPlugin.workerd.ts +18 -0
  199. package/src/capabilities/app-graph-builder.ts +59 -80
  200. package/src/capabilities/index.ts +14 -7
  201. package/src/capabilities/layer-specs.ts +197 -0
  202. package/src/capabilities/node.ts +18 -0
  203. package/src/capabilities/operation-handler.ts +16 -0
  204. package/src/capabilities/react-surface.tsx +49 -45
  205. package/src/capabilities/registry-sync.ts +110 -0
  206. package/src/capabilities/trigger-runtime-controller.test.ts +103 -0
  207. package/src/capabilities/trigger-runtime-controller.ts +126 -0
  208. package/src/commands/index.ts +5 -0
  209. package/src/commands/trigger/create/index.ts +14 -0
  210. package/src/commands/trigger/create/queue.ts +87 -0
  211. package/src/commands/trigger/create/subscription.ts +125 -0
  212. package/src/commands/trigger/create/timer.ts +90 -0
  213. package/src/commands/trigger/index.ts +16 -0
  214. package/src/commands/trigger/list.ts +70 -0
  215. package/src/commands/trigger/options.ts +47 -0
  216. package/src/commands/trigger/remove.ts +45 -0
  217. package/src/commands/trigger/update/index.ts +14 -0
  218. package/src/commands/trigger/update/queue.ts +191 -0
  219. package/src/commands/trigger/update/subscription.ts +279 -0
  220. package/src/commands/trigger/update/timer.ts +195 -0
  221. package/src/commands/trigger/util.ts +410 -0
  222. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +13 -7
  223. package/src/components/AutomationPanel/AutomationPanel.tsx +260 -100
  224. package/src/components/AutomationPanel/TriggerEdgeMetadata.tsx +148 -0
  225. package/src/components/FunctionsPanel/FunctionsPanel.tsx +50 -30
  226. package/src/components/FunctionsRegistry/FunctionsRegistry.tsx +119 -0
  227. package/src/components/FunctionsRegistry/index.ts +8 -0
  228. package/src/components/TriggerEditor/FunctionInputEditor.tsx +39 -42
  229. package/src/components/TriggerEditor/SpecSelector.tsx +28 -22
  230. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +105 -41
  231. package/src/components/TriggerEditor/TriggerEditor.tsx +179 -56
  232. package/src/components/TriggerEditor/util.ts +51 -0
  233. package/src/components/index.ts +1 -2
  234. package/src/containers/AutomationSettings/AutomationSettings.tsx +31 -0
  235. package/src/containers/AutomationSettings/index.ts +5 -0
  236. package/src/containers/FunctionsContainer/FunctionsContainer.tsx +33 -0
  237. package/src/containers/FunctionsContainer/index.ts +5 -0
  238. package/src/containers/TriggerSettings/TriggerSettings.tsx +48 -0
  239. package/src/containers/TriggerSettings/index.ts +6 -0
  240. package/src/containers/index.ts +9 -0
  241. package/src/hooks/index.ts +2 -1
  242. package/src/hooks/useEdgeTriggersDispatcherStatus.ts +78 -0
  243. package/src/hooks/useTriggerRuntimeControls.ts +39 -19
  244. package/src/index.ts +1 -5
  245. package/src/meta.ts +30 -7
  246. package/src/operations/create-trigger-from-template.ts +70 -0
  247. package/src/operations/index.ts +7 -0
  248. package/src/plugin.ts +11 -0
  249. package/src/testing/test-functions.ts +43 -9
  250. package/src/testing.ts +7 -0
  251. package/src/translations.ts +53 -33
  252. package/src/types/AutomationOperation.ts +39 -0
  253. package/src/types/index.ts +2 -0
  254. package/src/types/schema.ts +6 -6
  255. package/src/vite-env.d.ts +10 -0
  256. package/dist/lib/browser/AutomationPanel-3PHA5FTJ.mjs +0 -11
  257. package/dist/lib/browser/AutomationSettings-3EYSPFKB.mjs +0 -69
  258. package/dist/lib/browser/AutomationSettings-3EYSPFKB.mjs.map +0 -7
  259. package/dist/lib/browser/FunctionsContainer-HHBMPUOD.mjs +0 -36
  260. package/dist/lib/browser/FunctionsContainer-HHBMPUOD.mjs.map +0 -7
  261. package/dist/lib/browser/FunctionsPanel-NRIKAPQV.mjs +0 -10
  262. package/dist/lib/browser/app-graph-builder-DV5HMFX4.mjs +0 -81
  263. package/dist/lib/browser/app-graph-builder-DV5HMFX4.mjs.map +0 -7
  264. package/dist/lib/browser/chunk-5ARH77PV.mjs +0 -15
  265. package/dist/lib/browser/chunk-5ARH77PV.mjs.map +0 -7
  266. package/dist/lib/browser/chunk-6TUZQIEN.mjs +0 -14
  267. package/dist/lib/browser/chunk-6TUZQIEN.mjs.map +0 -7
  268. package/dist/lib/browser/chunk-DK7BLEKU.mjs +0 -14
  269. package/dist/lib/browser/chunk-DK7BLEKU.mjs.map +0 -7
  270. package/dist/lib/browser/chunk-DLLE4FKP.mjs +0 -94
  271. package/dist/lib/browser/chunk-DLLE4FKP.mjs.map +0 -7
  272. package/dist/lib/browser/chunk-MVPRI3DB.mjs +0 -53
  273. package/dist/lib/browser/chunk-MVPRI3DB.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-SUKAEYF3.mjs +0 -267
  275. package/dist/lib/browser/chunk-SUKAEYF3.mjs.map +0 -7
  276. package/dist/lib/browser/chunk-VGBZKM3O.mjs +0 -38
  277. package/dist/lib/browser/chunk-VGBZKM3O.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-VL3KSDVL.mjs +0 -183
  279. package/dist/lib/browser/chunk-VL3KSDVL.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-WWURMV25.mjs +0 -13
  281. package/dist/lib/browser/chunk-WWURMV25.mjs.map +0 -7
  282. package/dist/lib/browser/compute-runtime-YJREH6WP.mjs +0 -160
  283. package/dist/lib/browser/compute-runtime-YJREH6WP.mjs.map +0 -7
  284. package/dist/lib/browser/hooks/index.mjs +0 -12
  285. package/dist/lib/browser/index.mjs +0 -121
  286. package/dist/lib/browser/index.mjs.map +0 -7
  287. package/dist/lib/browser/intent-resolver-D2OHKQRR.mjs +0 -77
  288. package/dist/lib/browser/intent-resolver-D2OHKQRR.mjs.map +0 -7
  289. package/dist/lib/browser/meta.json +0 -1
  290. package/dist/lib/browser/react-surface-G7CG7BML.mjs +0 -63
  291. package/dist/lib/browser/react-surface-G7CG7BML.mjs.map +0 -7
  292. package/dist/lib/browser/types/index.mjs +0 -8
  293. package/dist/lib/node-esm/AutomationPanel-EETYIR35.mjs +0 -12
  294. package/dist/lib/node-esm/AutomationSettings-WKSMWITV.mjs +0 -70
  295. package/dist/lib/node-esm/AutomationSettings-WKSMWITV.mjs.map +0 -7
  296. package/dist/lib/node-esm/FunctionsContainer-ZKVOBUHV.mjs +0 -37
  297. package/dist/lib/node-esm/FunctionsContainer-ZKVOBUHV.mjs.map +0 -7
  298. package/dist/lib/node-esm/FunctionsPanel-SAMRTELO.mjs +0 -11
  299. package/dist/lib/node-esm/app-graph-builder-TR2WXPX2.mjs +0 -82
  300. package/dist/lib/node-esm/app-graph-builder-TR2WXPX2.mjs.map +0 -7
  301. package/dist/lib/node-esm/chunk-2EWXIFEK.mjs +0 -16
  302. package/dist/lib/node-esm/chunk-2EWXIFEK.mjs.map +0 -7
  303. package/dist/lib/node-esm/chunk-5MQJPJR2.mjs +0 -15
  304. package/dist/lib/node-esm/chunk-5MQJPJR2.mjs.map +0 -7
  305. package/dist/lib/node-esm/chunk-AKHETVIQ.mjs +0 -184
  306. package/dist/lib/node-esm/chunk-AKHETVIQ.mjs.map +0 -7
  307. package/dist/lib/node-esm/chunk-B7N3H45O.mjs +0 -16
  308. package/dist/lib/node-esm/chunk-B7N3H45O.mjs.map +0 -7
  309. package/dist/lib/node-esm/chunk-CJUI6AKX.mjs +0 -39
  310. package/dist/lib/node-esm/chunk-CJUI6AKX.mjs.map +0 -7
  311. package/dist/lib/node-esm/chunk-J3XEBEIE.mjs +0 -268
  312. package/dist/lib/node-esm/chunk-J3XEBEIE.mjs.map +0 -7
  313. package/dist/lib/node-esm/chunk-QCA543ZR.mjs +0 -54
  314. package/dist/lib/node-esm/chunk-QCA543ZR.mjs.map +0 -7
  315. package/dist/lib/node-esm/chunk-WHCSOUNN.mjs +0 -16
  316. package/dist/lib/node-esm/chunk-WHCSOUNN.mjs.map +0 -7
  317. package/dist/lib/node-esm/chunk-YQXW3JXD.mjs +0 -95
  318. package/dist/lib/node-esm/chunk-YQXW3JXD.mjs.map +0 -7
  319. package/dist/lib/node-esm/compute-runtime-CMEPAYND.mjs +0 -161
  320. package/dist/lib/node-esm/compute-runtime-CMEPAYND.mjs.map +0 -7
  321. package/dist/lib/node-esm/hooks/index.mjs +0 -13
  322. package/dist/lib/node-esm/index.mjs +0 -122
  323. package/dist/lib/node-esm/index.mjs.map +0 -7
  324. package/dist/lib/node-esm/intent-resolver-2LGBVXT5.mjs +0 -78
  325. package/dist/lib/node-esm/intent-resolver-2LGBVXT5.mjs.map +0 -7
  326. package/dist/lib/node-esm/meta.json +0 -1
  327. package/dist/lib/node-esm/react-surface-OMZSBDHS.mjs +0 -64
  328. package/dist/lib/node-esm/react-surface-OMZSBDHS.mjs.map +0 -7
  329. package/dist/lib/node-esm/types/index.mjs +0 -9
  330. package/dist/types/src/capabilities/capabilities.d.ts +0 -19
  331. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  332. package/dist/types/src/capabilities/compute-runtime.d.ts +0 -5
  333. package/dist/types/src/capabilities/compute-runtime.d.ts.map +0 -1
  334. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  335. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  336. package/dist/types/src/components/AutomationSettings.d.ts +0 -5
  337. package/dist/types/src/components/AutomationSettings.d.ts.map +0 -1
  338. package/dist/types/src/components/FunctionsContainer.d.ts +0 -7
  339. package/dist/types/src/components/FunctionsContainer.d.ts.map +0 -1
  340. package/dist/types/src/components/TriggerSettings.d.ts.map +0 -1
  341. package/dist/types/src/events.d.ts +0 -4
  342. package/dist/types/src/events.d.ts.map +0 -1
  343. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +0 -8
  344. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +0 -1
  345. package/src/capabilities/capabilities.ts +0 -48
  346. package/src/capabilities/compute-runtime.ts +0 -138
  347. package/src/capabilities/intent-resolver.ts +0 -72
  348. package/src/components/AutomationSettings.tsx +0 -30
  349. package/src/components/FunctionsContainer.tsx +0 -29
  350. package/src/components/TriggerSettings.tsx +0 -25
  351. package/src/events.ts +0 -11
  352. package/src/hooks/useComputeRuntimeCallback.ts +0 -30
  353. /package/dist/lib/{browser/AutomationPanel-3PHA5FTJ.mjs.map → neutral/AutomationPanel-OKF2MDLO.mjs.map} +0 -0
  354. /package/dist/lib/{browser/FunctionsPanel-NRIKAPQV.mjs.map → neutral/AutomationPlugin.mjs.map} +0 -0
  355. /package/dist/lib/{browser/hooks/index.mjs.map → neutral/TriggerSettings-XCHIZPOR.mjs.map} +0 -0
  356. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  357. /package/dist/lib/{node-esm/hooks → neutral/components}/index.mjs.map +0 -0
  358. /package/dist/lib/{node-esm/types → neutral/hooks}/index.mjs.map +0 -0
  359. /package/dist/lib/{node-esm/AutomationPanel-EETYIR35.mjs.map → neutral/index.mjs.map} +0 -0
  360. /package/dist/lib/{node-esm/FunctionsPanel-SAMRTELO.mjs.map → neutral/meta.mjs.map} +0 -0
  361. /package/dist/types/src/{components → containers/TriggerSettings}/TriggerSettings.d.ts +0 -0
@@ -0,0 +1,40 @@
1
+ // src/meta.ts
2
+ import { Plugin } from "@dxos/app-framework";
3
+ import { DXN } from "@dxos/keys";
4
+ import { trim } from "@dxos/util";
5
+ var meta = Plugin.makeMeta({
6
+ key: DXN.make("org.dxos.plugin.automation"),
7
+ name: "Automation",
8
+ author: "DXOS",
9
+ description: trim`
10
+ Event-driven workflow automation engine for DXOS Composer.
11
+ Triggers connect ECHO objects, timer schedules, incoming feeds (email, webhook), and data
12
+ subscriptions to persistent compute functions — enabling automated pipelines that react to
13
+ changes in real time without manual intervention.
14
+
15
+ Each trigger references a PersistentOperation (a compiled function derived from a Script or
16
+ a visual ComputeGraph workflow) and carries optional structured input forwarded at invocation.
17
+ A per-space TriggerDispatcher manages execution: running locally in the browser when
18
+ computeEnvironment is "local", or delegating to the DXOS edge for server-side reliability.
19
+
20
+ The AutomationPanel settings surface lets users create, configure, enable, disable, and
21
+ force-run triggers from within any space. The TriggerEditor form supports all spec kinds —
22
+ timer (cron), feed, subscription, email, and webhook — with a query builder for
23
+ subscription-type triggers and a structured input editor for passing data to functions.
24
+
25
+ Operation handlers and blueprints contributed by any plugin in the application are
26
+ automatically merged and made available to every space's OperationRegistry, so new
27
+ capabilities registered by other plugins become instantly invocable from automation triggers.
28
+ `,
29
+ icon: "ph--atom--regular",
30
+ source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-automation",
31
+ spec: "PLUGIN.mdl",
32
+ tags: [
33
+ "system"
34
+ ]
35
+ });
36
+
37
+ export {
38
+ meta
39
+ };
40
+ //# sourceMappingURL=chunk-LRVJEKMN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { DXN } from '@dxos/keys';\nimport { trim } from '@dxos/util';\n\nexport const meta = Plugin.makeMeta({\n key: DXN.make('org.dxos.plugin.automation'),\n name: 'Automation',\n author: 'DXOS',\n description: trim`\n Event-driven workflow automation engine for DXOS Composer.\n Triggers connect ECHO objects, timer schedules, incoming feeds (email, webhook), and data\n subscriptions to persistent compute functions — enabling automated pipelines that react to\n changes in real time without manual intervention.\n\n Each trigger references a PersistentOperation (a compiled function derived from a Script or\n a visual ComputeGraph workflow) and carries optional structured input forwarded at invocation.\n A per-space TriggerDispatcher manages execution: running locally in the browser when\n computeEnvironment is \"local\", or delegating to the DXOS edge for server-side reliability.\n\n The AutomationPanel settings surface lets users create, configure, enable, disable, and\n force-run triggers from within any space. The TriggerEditor form supports all spec kinds —\n timer (cron), feed, subscription, email, and webhook — with a query builder for\n subscription-type triggers and a structured input editor for passing data to functions.\n\n Operation handlers and blueprints contributed by any plugin in the application are\n automatically merged and made available to every space's OperationRegistry, so new\n capabilities registered by other plugins become instantly invocable from automation triggers.\n `,\n icon: 'ph--atom--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-automation',\n spec: 'PLUGIN.mdl',\n tags: ['system'],\n});\n"],
5
+ "mappings": ";AAIA,SAASA,cAAc;AACvB,SAASC,WAAW;AACpB,SAASC,YAAY;AAEd,IAAMC,OAAOH,OAAOI,SAAS;EAClCC,KAAKJ,IAAIK,KAAK,4BAAA;EACdC,MAAM;EACNC,QAAQ;EACRC,aAAaP;;;;;;;;;;;;;;;;;;;;EAoBbQ,MAAM;EACNC,QAAQ;EACRC,MAAM;EACNC,MAAM;IAAC;;AACT,CAAA;",
6
+ "names": ["Plugin", "DXN", "trim", "meta", "makeMeta", "key", "make", "name", "author", "description", "icon", "source", "spec", "tags"]
7
+ }
@@ -0,0 +1,12 @@
1
+ // src/components/index.ts
2
+ import { lazy } from "react";
3
+ var AutomationPanel = lazy(() => import("./AutomationPanel-OKF2MDLO.mjs"));
4
+ var FunctionsPanel = lazy(() => import("./FunctionsPanel-L32Z67B7.mjs"));
5
+ var FunctionsRegistry = lazy(() => import("./FunctionsRegistry-RTCY3LXE.mjs"));
6
+
7
+ export {
8
+ AutomationPanel,
9
+ FunctionsPanel,
10
+ FunctionsRegistry
11
+ };
12
+ //# sourceMappingURL=chunk-MBIODLCB.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,76 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-J5LGTIGS.mjs";
4
+
5
+ // src/types/schema.ts
6
+ import * as Schema from "effect/Schema";
7
+ import { Database } from "@dxos/echo";
8
+ import { meta } from "#meta";
9
+ var TriggerTemplate = Schema.Union(Schema.Struct({
10
+ type: Schema.Literal("timer"),
11
+ cron: Schema.String
12
+ }), Schema.Struct({
13
+ type: Schema.Literal("feed"),
14
+ feed: Schema.Any
15
+ }));
16
+ (function(AutomationAction2) {
17
+ class CreateTriggerFromTemplate2 extends Schema.TaggedClass()(`${meta.id}.action.create-trigger-from-template`, {
18
+ input: Schema.Struct({
19
+ db: Database.Database,
20
+ template: TriggerTemplate,
21
+ enabled: Schema.optional(Schema.Boolean),
22
+ // TODO(wittjosiah): Improve how this lookup is done.
23
+ scriptName: Schema.optional(Schema.String),
24
+ input: Schema.optional(Schema.Record({
25
+ key: Schema.String,
26
+ value: Schema.Any
27
+ }))
28
+ }),
29
+ output: Schema.Void
30
+ }) {
31
+ }
32
+ AutomationAction2.CreateTriggerFromTemplate = CreateTriggerFromTemplate2;
33
+ })(AutomationAction || (AutomationAction = {}));
34
+ var AutomationAction;
35
+
36
+ // src/types/AutomationOperation.ts
37
+ var AutomationOperation_exports = {};
38
+ __export(AutomationOperation_exports, {
39
+ CreateTriggerFromTemplate: () => CreateTriggerFromTemplate,
40
+ _EchoURIReference: () => _EchoURIReference
41
+ });
42
+ import * as Schema2 from "effect/Schema";
43
+ import { Capability } from "@dxos/app-framework";
44
+ import { Operation } from "@dxos/compute";
45
+ import { Database as Database2, DXN } from "@dxos/echo";
46
+ import { EID as _EchoURIReference } from "@dxos/keys";
47
+ import { meta as meta2 } from "#meta";
48
+ var makeKey = (name) => DXN.make(`${meta2.id}.operation.${name}`);
49
+ var CreateTriggerFromTemplate = Operation.make({
50
+ meta: {
51
+ key: makeKey("createTriggerFromTemplate"),
52
+ name: "Create Trigger From Template",
53
+ icon: "ph--lightning--regular"
54
+ },
55
+ services: [
56
+ Capability.Service
57
+ ],
58
+ input: Schema2.Struct({
59
+ db: Database2.Database,
60
+ template: TriggerTemplate,
61
+ enabled: Schema2.optional(Schema2.Boolean),
62
+ scriptName: Schema2.optional(Schema2.String),
63
+ input: Schema2.optional(Schema2.Record({
64
+ key: Schema2.String,
65
+ value: Schema2.Any
66
+ }))
67
+ }),
68
+ output: Schema2.Void
69
+ });
70
+
71
+ export {
72
+ TriggerTemplate,
73
+ AutomationAction,
74
+ AutomationOperation_exports
75
+ };
76
+ //# sourceMappingURL=chunk-NCCFEPBZ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/schema.ts", "../../../src/types/AutomationOperation.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Database } from '@dxos/echo';\n\nimport { meta } from '#meta';\n\nexport const TriggerTemplate = Schema.Union(\n Schema.Struct({ type: Schema.Literal('timer'), cron: Schema.String }),\n Schema.Struct({ type: Schema.Literal('feed'), feed: Schema.Any }),\n);\n\nexport namespace AutomationAction {\n export class CreateTriggerFromTemplate extends Schema.TaggedClass<CreateTriggerFromTemplate>()(\n `${meta.id}.action.create-trigger-from-template`,\n {\n input: Schema.Struct({\n db: Database.Database,\n template: TriggerTemplate,\n enabled: Schema.optional(Schema.Boolean),\n // TODO(wittjosiah): Improve how this lookup is done.\n scriptName: Schema.optional(Schema.String),\n input: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n output: Schema.Void,\n },\n ) {}\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Operation } from '@dxos/compute';\nimport { Database, DXN } from '@dxos/echo';\n// Value-side `EID` import keeps TS declaration emit portable — `TriggerTemplate`\n// references `EID.Schema` and the inferred `CreateTriggerFromTemplate` type\n// otherwise needs a transitive `@dxos/keys` import that's hard for d.ts emit to surface.\nimport { EID as _EchoURIReference } from '@dxos/keys';\n\nimport { meta } from '#meta';\n\nimport { TriggerTemplate } from './schema';\nexport { _EchoURIReference };\n\nconst makeKey = (name: string) => DXN.make(`${meta.id}.operation.${name}`);\n\nexport const CreateTriggerFromTemplate = Operation.make({\n meta: {\n key: makeKey('createTriggerFromTemplate'),\n name: 'Create Trigger From Template',\n icon: 'ph--lightning--regular',\n },\n services: [Capability.Service],\n input: Schema.Struct({\n db: Database.Database,\n template: TriggerTemplate,\n enabled: Schema.optional(Schema.Boolean),\n scriptName: Schema.optional(Schema.String),\n input: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n output: Schema.Void,\n});\n"],
5
+ "mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,gBAAgB;AAEzB,SAASC,YAAY;AAEd,IAAMC,kBAAyBC,aAC7BC,cAAO;EAAEC,MAAaC,eAAQ,OAAA;EAAUC,MAAaC;AAAO,CAAA,GAC5DJ,cAAO;EAAEC,MAAaC,eAAQ,MAAA;EAASG,MAAaC;AAAI,CAAA,CAAA;UAGhDC,mBAAAA;EACR,MAAMC,mCAAyCC,mBAAW,EAC/D,GAAGZ,KAAKa,EAAE,wCACV;IACEC,OAAcX,cAAO;MACnBY,IAAIhB,SAASA;MACbiB,UAAUf;MACVgB,SAAgBC,gBAAgBC,cAAO;;MAEvCC,YAAmBF,gBAAgBX,aAAM;MACzCO,OAAcI,gBAAgBG,cAAO;QAAEC,KAAYf;QAAQgB,OAAcd;MAAI,CAAA,CAAA;IAC/E,CAAA;IACAe,QAAeC;EACjB,CAAA,EAAA;EACC;oBAbUd,4BAAAA;AAcf,GAfiBD,qBAAAA,mBAAAA,CAAAA,EAAAA;;;;ACfjB;;;;;AAMA,YAAYgB,aAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,YAAAA,WAAUC,WAAW;AAI9B,SAASC,OAAOC,yBAAyB;AAEzC,SAASC,QAAAA,aAAY;AAKrB,IAAMC,UAAU,CAACC,SAAiBC,IAAIC,KAAK,GAAGC,MAAKC,EAAE,cAAcJ,IAAAA,EAAM;AAElE,IAAMK,4BAA4BC,UAAUJ,KAAK;EACtDC,MAAM;IACJI,KAAKR,QAAQ,2BAAA;IACbC,MAAM;IACNQ,MAAM;EACR;EACAC,UAAU;IAACC,WAAWC;;EACtBC,OAAcC,eAAO;IACnBC,IAAIC,UAASA;IACbC,UAAUC;IACVC,SAAgBC,iBAAgBC,eAAO;IACvCC,YAAmBF,iBAAgBG,cAAM;IACzCV,OAAcO,iBAAgBI,eAAO;MAAEhB,KAAYe;MAAQE,OAAcC;IAAI,CAAA,CAAA;EAC/E,CAAA;EACAC,QAAeC;AACjB,CAAA;",
6
+ "names": ["Schema", "Database", "meta", "TriggerTemplate", "Union", "Struct", "type", "Literal", "cron", "String", "feed", "Any", "AutomationAction", "CreateTriggerFromTemplate", "TaggedClass", "id", "input", "db", "template", "enabled", "optional", "Boolean", "scriptName", "Record", "key", "value", "output", "Void", "Schema", "Capability", "Operation", "Database", "DXN", "EID", "_EchoURIReference", "meta", "makeKey", "name", "DXN", "make", "meta", "id", "CreateTriggerFromTemplate", "Operation", "key", "icon", "services", "Capability", "Service", "input", "Struct", "db", "Database", "template", "TriggerTemplate", "enabled", "optional", "Boolean", "scriptName", "String", "Record", "value", "Any", "output", "Void"]
7
+ }
@@ -0,0 +1,368 @@
1
+ // src/components/TriggerEditor/TriggerEditor.tsx
2
+ import * as Option from "effect/Option";
3
+ import * as Record from "effect/Record";
4
+ import React3, { useCallback as useCallback3, useMemo as useMemo3 } from "react";
5
+ import { Operation as Operation2, Script, Trigger as Trigger2 } from "@dxos/compute";
6
+ import { ComputeGraph } from "@dxos/conductor";
7
+ import { Annotation, Entity, Feed, Filter as Filter2, Obj as Obj3, Query as Query2, Ref as Ref2, Scope, Type } from "@dxos/echo";
8
+ import { DXN as DXN2, EID as EID2 } from "@dxos/keys";
9
+ import { useQuery } from "@dxos/react-client/echo";
10
+ import { Input } from "@dxos/react-ui";
11
+ import { QueryForm } from "@dxos/react-ui-components";
12
+ import { Form as Form2, FormFieldLabel, SelectField as SelectField2, omitId } from "@dxos/react-ui-form";
13
+
14
+ // src/components/TriggerEditor/FunctionInputEditor.tsx
15
+ import React, { useCallback, useMemo } from "react";
16
+ import { JsonSchema, Obj as Obj2, Ref } from "@dxos/echo";
17
+ import { useOnTransition, useTranslation } from "@dxos/react-ui";
18
+ import { Form, useFormValues } from "@dxos/react-ui-form";
19
+ import { meta } from "#meta";
20
+
21
+ // src/components/TriggerEditor/util.ts
22
+ import { Operation } from "@dxos/compute";
23
+ import { Obj } from "@dxos/echo";
24
+ import { DXN, EID } from "@dxos/keys";
25
+ var getOperationUri = (fn) => {
26
+ if (Obj.getDatabase(fn) === void 0) {
27
+ const key = Operation.getKey(fn);
28
+ const version = Operation.getVersion(fn);
29
+ const dxn = key ? DXN.tryMake(version ? `dxn:${key}:${version}` : `dxn:${key}`) : void 0;
30
+ if (dxn) {
31
+ return dxn;
32
+ }
33
+ }
34
+ return Obj.getURI(fn);
35
+ };
36
+ var findOperationByUri = (functions, uri) => {
37
+ const eid = EID.tryParse(uri);
38
+ if (eid) {
39
+ const entityId = EID.getEntityId(eid);
40
+ return entityId ? functions.find((fn) => fn.id === entityId) : void 0;
41
+ }
42
+ if (DXN.isDXN(uri)) {
43
+ const key = DXN.getName(uri);
44
+ const version = DXN.getVersion(uri);
45
+ return functions.find((fn) => Operation.getKey(fn) === key && (version === void 0 || Operation.getVersion(fn) === version));
46
+ }
47
+ return void 0;
48
+ };
49
+
50
+ // src/components/TriggerEditor/FunctionInputEditor.tsx
51
+ var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) => {
52
+ const { t } = useTranslation(meta.id);
53
+ const selectedFunctionValue = useFormValues(FunctionInputEditor.displayName, [
54
+ "function"
55
+ ]);
56
+ const selectedFunction = useMemo(() => Ref.isRef(selectedFunctionValue) ? findOperationByUri(functions, selectedFunctionValue.uri) : void 0, [
57
+ functions,
58
+ selectedFunctionValue
59
+ ]);
60
+ useOnTransition(
61
+ // Clear function parameter input when the function changes.
62
+ selectedFunctionValue,
63
+ (prevValue) => {
64
+ if (!Ref.isRef(prevValue) || !Ref.isRef(selectedFunctionValue)) {
65
+ return false;
66
+ }
67
+ return prevValue.uri !== selectedFunctionValue.uri;
68
+ },
69
+ (currValue) => currValue !== void 0,
70
+ () => onValueChange(type, {})
71
+ );
72
+ const inputSchema = useMemo(() => selectedFunction?.inputSchema, [
73
+ selectedFunction
74
+ ]);
75
+ const effectSchema = useMemo(() => inputSchema ? JsonSchema.toEffectSchema(inputSchema) : void 0, [
76
+ inputSchema
77
+ ]);
78
+ const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;
79
+ const defaultValues = useMemo(() => {
80
+ const raw = getValue() ?? {};
81
+ return Obj2.isObject(raw) ? {
82
+ ...Obj2.getSnapshot(raw)
83
+ } : {
84
+ ...raw
85
+ };
86
+ }, [
87
+ getValue
88
+ ]);
89
+ const handleValuesChanged = useCallback((values) => {
90
+ onValueChange(type, values);
91
+ }, [
92
+ type,
93
+ onValueChange
94
+ ]);
95
+ if (selectedFunction === void 0 || effectSchema === void 0 || propertyCount === 0) {
96
+ return null;
97
+ }
98
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Form.Label, {
99
+ label: t("function-parameters.label"),
100
+ asChild: true
101
+ }), /* @__PURE__ */ React.createElement(Form.Root, {
102
+ key: selectedFunction.id,
103
+ schema: effectSchema,
104
+ defaultValues,
105
+ db,
106
+ onValuesChanged: handleValuesChanged
107
+ }, /* @__PURE__ */ React.createElement(Form.FieldSet, null)));
108
+ };
109
+ FunctionInputEditor.displayName = "AutomationTrigger.FunctionInputEditor";
110
+
111
+ // src/components/TriggerEditor/SpecSelector.tsx
112
+ import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
113
+ import { Trigger } from "@dxos/compute";
114
+ import { Filter, Query } from "@dxos/echo";
115
+ import { useTranslation as useTranslation2 } from "@dxos/react-ui";
116
+ import { SelectField, useFormFieldState } from "@dxos/react-ui-form";
117
+ import { meta as meta2 } from "#meta";
118
+ var SpecSelector = (props) => {
119
+ const { t } = useTranslation2(meta2.id);
120
+ const specProps = useFormFieldState(SpecSelector.displayName, [
121
+ "spec"
122
+ ]);
123
+ const handleTypeChange = useCallback2((_type, value) => {
124
+ const getDefaultTriggerSpec = (kind) => {
125
+ switch (kind) {
126
+ case "timer":
127
+ return Trigger.specTimer("");
128
+ case "subscription":
129
+ return Trigger.specSubscription(Query.select(Filter.nothing()));
130
+ case "feed":
131
+ return {
132
+ kind: "feed"
133
+ };
134
+ case "email":
135
+ return Trigger.specEmail();
136
+ case "webhook":
137
+ return Trigger.specWebhook();
138
+ default:
139
+ return void 0;
140
+ }
141
+ };
142
+ const defaultSpec = getDefaultTriggerSpec(value);
143
+ if (!defaultSpec) {
144
+ return;
145
+ }
146
+ specProps.onValueChange(props.type, defaultSpec);
147
+ }, [
148
+ props.type,
149
+ specProps
150
+ ]);
151
+ const kindLabels = {
152
+ timer: t("trigger-type.timer.label"),
153
+ webhook: t("trigger-type.webhook.label"),
154
+ websocket: t("trigger-type.websocket.label"),
155
+ subscription: t("trigger-type.subscription.label"),
156
+ email: t("trigger-type.email.label"),
157
+ feed: t("trigger-type.feed.label")
158
+ };
159
+ const options = useMemo2(() => Trigger.Kinds.map((kind) => ({
160
+ value: kind,
161
+ label: kindLabels[kind]
162
+ })), [
163
+ t
164
+ ]);
165
+ return /* @__PURE__ */ React2.createElement(SelectField, {
166
+ ...props,
167
+ options,
168
+ onValueChange: handleTypeChange
169
+ });
170
+ };
171
+ SpecSelector.displayName = "Form.SpecSelector";
172
+
173
+ // src/components/TriggerEditor/TriggerEditor.tsx
174
+ var TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }) => {
175
+ const fieldMap = useCustomInputs({
176
+ db,
177
+ types,
178
+ tags,
179
+ readonlySpec
180
+ });
181
+ const handleValuesChanged = useCallback3((newValues) => {
182
+ Obj3.update(trigger, (trigger2) => {
183
+ Object.assign(trigger2, newValues);
184
+ });
185
+ }, [
186
+ trigger
187
+ ]);
188
+ const triggerSchema = useMemo3(() => omitId(Trigger2.Trigger), []);
189
+ const defaultValues = useMemo3(() => {
190
+ const { id: _, ...values } = trigger;
191
+ return values;
192
+ }, [
193
+ trigger
194
+ ]);
195
+ return /* @__PURE__ */ React3.createElement(Form2.Root, {
196
+ ...formProps,
197
+ db,
198
+ schema: triggerSchema,
199
+ defaultValues,
200
+ fieldMap,
201
+ onValuesChanged: handleValuesChanged
202
+ }, /* @__PURE__ */ React3.createElement(Form2.Viewport, null, /* @__PURE__ */ React3.createElement(Form2.Content, null, /* @__PURE__ */ React3.createElement(Form2.FieldSet, null), /* @__PURE__ */ React3.createElement(Form2.Actions, null))));
203
+ };
204
+ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
205
+ const functions = useQuery(db, Query2.select(Filter2.type(Operation2.PersistentOperation)).from(Scope.space(), Scope.registry()));
206
+ const workflows = useQuery(db, Filter2.type(ComputeGraph));
207
+ const scripts = useQuery(db, Filter2.type(Script.Script));
208
+ const feeds = useQuery(db, Filter2.type(Feed.Feed));
209
+ return useMemo3(() => ({
210
+ // Function selector.
211
+ ["function"]: (props) => {
212
+ const getValue = useCallback3(() => {
213
+ const formValue = props.getValue();
214
+ if (Ref2.isRef(formValue)) {
215
+ return formValue.uri;
216
+ }
217
+ return void 0;
218
+ }, [
219
+ props
220
+ ]);
221
+ const handleOnValueChange = useCallback3((_type, uriString) => {
222
+ const uri = EID2.tryParse(uriString) ?? (DXN2.isDXN(uriString) ? uriString : void 0);
223
+ if (uri) {
224
+ props.onValueChange(props.type, Ref2.fromURI(uri));
225
+ }
226
+ }, [
227
+ props.type,
228
+ props.onValueChange
229
+ ]);
230
+ return /* @__PURE__ */ React3.createElement(SelectField2, {
231
+ ...props,
232
+ getValue,
233
+ onValueChange: handleOnValueChange,
234
+ options: getWorkflowOptions(workflows).concat(getFunctionOptions(scripts, functions))
235
+ });
236
+ },
237
+ // Spec selector.
238
+ "spec.kind": (props) => /* @__PURE__ */ React3.createElement(SpecSelector, {
239
+ ...props,
240
+ readonly: readonlySpec
241
+ }),
242
+ // Feed selector with parent labels.
243
+ "spec.feed": (props) => {
244
+ const getValue = useCallback3(() => {
245
+ const formValue = props.getValue();
246
+ if (Ref2.isRef(formValue)) {
247
+ return formValue.uri.toString();
248
+ }
249
+ return void 0;
250
+ }, [
251
+ props
252
+ ]);
253
+ const handleOnValueChange = useCallback3((_type, dxnString) => {
254
+ const uri = EID2.tryParse(dxnString);
255
+ if (uri) {
256
+ props.onValueChange(props.type, Ref2.fromURI(uri));
257
+ }
258
+ }, [
259
+ props.type,
260
+ props.onValueChange
261
+ ]);
262
+ return /* @__PURE__ */ React3.createElement(SelectField2, {
263
+ ...props,
264
+ getValue,
265
+ onValueChange: handleOnValueChange,
266
+ options: getFeedOptions(feeds)
267
+ });
268
+ },
269
+ // TODO(wittjosiah): Copied from ViewEditor.
270
+ // Query input editor.
271
+ "spec.query": (props) => {
272
+ const handleChange = useCallback3((query) => props.onValueChange(props.type, {
273
+ ast: query.ast
274
+ }), [
275
+ props.type,
276
+ props.onValueChange
277
+ ]);
278
+ return /* @__PURE__ */ React3.createElement(Input.Root, null, /* @__PURE__ */ React3.createElement(FormFieldLabel, {
279
+ label: props.label,
280
+ asChild: true
281
+ }), /* @__PURE__ */ React3.createElement(QueryForm, {
282
+ initialQuery: props.getValue().ast,
283
+ types,
284
+ tags,
285
+ onChange: handleChange
286
+ }));
287
+ },
288
+ // Function input editor.
289
+ input: (props) => /* @__PURE__ */ React3.createElement(FunctionInputEditor, {
290
+ ...props,
291
+ functions,
292
+ db
293
+ })
294
+ }), [
295
+ workflows,
296
+ scripts,
297
+ functions,
298
+ feeds,
299
+ readonlySpec
300
+ ]);
301
+ };
302
+ var getObjectIconProps = (object) => {
303
+ const type = Entity.getType(object);
304
+ const schema = type ? Type.getSchema(type) : void 0;
305
+ const annotation = schema ? Option.getOrUndefined(Annotation.IconAnnotation.get(schema)) : void 0;
306
+ return annotation ? {
307
+ icon: annotation.icon,
308
+ iconHue: annotation.hue
309
+ } : {};
310
+ };
311
+ var getWorkflowOptions = (graphs) => {
312
+ return graphs.map((graph) => ({
313
+ label: `compute-${graph.id}`,
314
+ value: Obj3.getURI(graph),
315
+ ...getObjectIconProps(graph)
316
+ }));
317
+ };
318
+ var getFunctionOptions = (scripts, functions) => {
319
+ const getLabel = (fn) => scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;
320
+ return functions.map((fn) => {
321
+ const { icon: schemaIcon, iconHue } = getObjectIconProps(fn);
322
+ return {
323
+ label: getLabel(fn),
324
+ value: getOperationUri(fn),
325
+ icon: fn.icon ?? schemaIcon,
326
+ iconHue
327
+ };
328
+ });
329
+ };
330
+ var getFeedDisplayName = (feed) => Entity.getLabel(feed) ?? feed.name ?? Entity.getTypename(feed) ?? "Feed";
331
+ var computeRefRole = (entity) => {
332
+ const parent = Obj3.getParent(entity);
333
+ if (!parent) {
334
+ return void 0;
335
+ }
336
+ for (const key of Record.keys(parent)) {
337
+ if (Ref2.isRef(parent[key]) && parent[key].target?.id === entity.id) {
338
+ return `$.${key}`;
339
+ }
340
+ }
341
+ return void 0;
342
+ };
343
+ var getFeedOptions = (feeds) => {
344
+ return feeds.map((feed) => {
345
+ const parent = Obj3.getParent(feed);
346
+ const displayObject = parent ?? feed;
347
+ const role = computeRefRole(feed);
348
+ if (parent) {
349
+ return {
350
+ label: Entity.getLabel(parent) ?? Entity.getTypename(parent) ?? "Parent",
351
+ secondaryLabel: role ?? getFeedDisplayName(feed),
352
+ value: Obj3.getURI(feed),
353
+ ...getObjectIconProps(displayObject)
354
+ };
355
+ }
356
+ return {
357
+ label: getFeedDisplayName(feed),
358
+ secondaryLabel: role,
359
+ value: Obj3.getURI(feed),
360
+ ...getObjectIconProps(displayObject)
361
+ };
362
+ });
363
+ };
364
+
365
+ export {
366
+ TriggerEditor
367
+ };
368
+ //# sourceMappingURL=chunk-RCBE37YU.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/util.ts", "../../../src/components/TriggerEditor/SpecSelector.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Option from 'effect/Option';\nimport * as Record from 'effect/Record';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Operation, Script, Trigger } from '@dxos/compute';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Annotation, type Database, Entity, Feed, Filter, Obj, Query, Ref, Scope, Type } from '@dxos/echo';\nimport { DXN, EID } from '@dxos/keys';\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';\nimport { getOperationUri } from './util';\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(\n db,\n Query.select(Filter.type(Operation.PersistentOperation)).from(Scope.space(), Scope.registry()),\n );\n\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.uri;\n }\n return undefined;\n }, [props]);\n\n const handleOnValueChange = useCallback(\n (_type: any, uriString: string) => {\n // Function references are either an EID (space-resident) or a key DXN (registry).\n const uri = EID.tryParse(uriString) ?? (DXN.isDXN(uriString) ? uriString : undefined);\n if (uri) {\n props.onValueChange(props.type, Ref.fromURI(uri));\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 // Feed selector with parent labels.\n 'spec.feed': (props) => {\n const getValue = useCallback(() => {\n const formValue = props.getValue();\n if (Ref.isRef(formValue)) {\n return formValue.uri.toString() as string;\n }\n return undefined;\n }, [props]);\n\n const handleOnValueChange = useCallback(\n (_type: any, dxnString: string) => {\n const uri = EID.tryParse(dxnString);\n if (uri) {\n props.onValueChange(props.type, Ref.fromURI(uri));\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={getFeedOptions(feeds)}\n />\n );\n },\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 getObjectIconProps = (object: Entity.Unknown): { icon?: string; iconHue?: string } => {\n const type = Entity.getType(object);\n const schema = type ? Type.getSchema(type) : undefined;\n const annotation = schema ? Option.getOrUndefined(Annotation.IconAnnotation.get(schema)) : undefined;\n return annotation ? { icon: annotation.icon, iconHue: annotation.hue } : {};\n};\n\nconst getWorkflowOptions = (graphs: ComputeGraph[]) => {\n return graphs.map((graph) => ({\n label: `compute-${graph.id}`,\n value: Obj.getURI(graph),\n ...getObjectIconProps(graph),\n }));\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) => {\n const { icon: schemaIcon, iconHue } = getObjectIconProps(fn);\n return {\n label: getLabel(fn),\n value: getOperationUri(fn),\n icon: fn.icon ?? schemaIcon,\n iconHue,\n };\n });\n};\n\nconst getFeedDisplayName = (feed: Feed.Feed): string =>\n Entity.getLabel(feed) ?? feed.name ?? Entity.getTypename(feed) ?? 'Feed';\n\nconst computeRefRole = (entity: Feed.Feed): string | undefined => {\n const parent = Obj.getParent(entity);\n if (!parent) {\n return undefined;\n }\n for (const key of Record.keys(parent)) {\n if (Ref.isRef(parent[key]) && parent[key].target?.id === entity.id) {\n return `$.${key}`;\n }\n }\n return undefined;\n};\n\nconst getFeedOptions = (feeds: Feed.Feed[]) => {\n return feeds.map((feed) => {\n const parent = Obj.getParent(feed);\n const displayObject = parent ?? feed;\n const role = computeRefRole(feed);\n\n if (parent) {\n return {\n label: Entity.getLabel(parent) ?? Entity.getTypename(parent) ?? 'Parent',\n secondaryLabel: role ?? getFeedDisplayName(feed),\n value: Obj.getURI(feed),\n ...getObjectIconProps(displayObject),\n };\n }\n\n return {\n label: getFeedDisplayName(feed),\n secondaryLabel: role,\n value: Obj.getURI(feed),\n ...getObjectIconProps(displayObject),\n };\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\nimport { findOperationByUri } from './util';\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 selectedFunction = useMemo(\n () => (Ref.isRef(selectedFunctionValue) ? findOperationByUri(functions, selectedFunctionValue.uri) : undefined),\n [functions, selectedFunctionValue],\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.uri !== selectedFunctionValue.uri;\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 { Operation } from '@dxos/compute';\nimport { Obj } from '@dxos/echo';\nimport { DXN, EID, type URI } from '@dxos/keys';\n\n/**\n * Reference URI for an operation. Registry operations (no owning database) are referenced by\n * their versioned key DXN so they resolve via the operation registry; space-resident operations\n * are referenced by their EID.\n */\n// TODO(wittjosiah): There should be a generic & consistent way to get the dxn uri for entities if its available.\nexport const getOperationUri = (fn: Operation.PersistentOperation): URI.URI => {\n if (Obj.getDatabase(fn) === undefined) {\n const key = Operation.getKey(fn);\n const version = Operation.getVersion(fn);\n const dxn = key ? DXN.tryMake(version ? `dxn:${key}:${version}` : `dxn:${key}`) : undefined;\n if (dxn) {\n return dxn;\n }\n }\n\n return Obj.getURI(fn);\n};\n\n/**\n * Resolve an operation from a list by its reference URI (an EID for space-resident operations,\n * or a versioned key DXN for registry operations).\n */\nexport const findOperationByUri = (\n functions: readonly Operation.PersistentOperation[],\n uri: URI.URI,\n): Operation.PersistentOperation | undefined => {\n const eid = EID.tryParse(uri);\n if (eid) {\n const entityId = EID.getEntityId(eid);\n return entityId ? functions.find((fn) => fn.id === entityId) : undefined;\n }\n\n if (DXN.isDXN(uri)) {\n const key = DXN.getName(uri);\n const version = DXN.getVersion(uri);\n return functions.find(\n (fn) => Operation.getKey(fn) === key && (version === undefined || Operation.getVersion(fn) === version),\n );\n }\n\n return undefined;\n};\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 'feed':\n return { kind: 'feed' } satisfies Trigger.FeedSpec;\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 feed: t('trigger-type.feed.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": ["Option", "Record", "React", "useCallback", "useMemo", "Operation", "Script", "Trigger", "ComputeGraph", "Annotation", "Entity", "Feed", "Filter", "Obj", "Query", "Ref", "Scope", "Type", "DXN", "EID", "useQuery", "Input", "QueryForm", "Form", "FormFieldLabel", "SelectField", "omitId", "React", "useCallback", "useMemo", "JsonSchema", "Obj", "Ref", "useOnTransition", "useTranslation", "Form", "useFormValues", "meta", "Operation", "Obj", "DXN", "EID", "getOperationUri", "fn", "getDatabase", "undefined", "key", "getKey", "version", "getVersion", "dxn", "tryMake", "getURI", "findOperationByUri", "functions", "uri", "eid", "tryParse", "entityId", "getEntityId", "find", "id", "isDXN", "getName", "FunctionInputEditor", "type", "functions", "db", "getValue", "onValueChange", "t", "useTranslation", "meta", "id", "selectedFunctionValue", "useFormValues", "displayName", "selectedFunction", "useMemo", "Ref", "isRef", "findOperationByUri", "uri", "undefined", "useOnTransition", "prevValue", "currValue", "inputSchema", "effectSchema", "JsonSchema", "toEffectSchema", "propertyCount", "properties", "Object", "keys", "length", "defaultValues", "raw", "Obj", "isObject", "getSnapshot", "handleValuesChanged", "useCallback", "values", "Form", "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", "specEmail", "specWebhook", "undefined", "defaultSpec", "onValueChange", "type", "kindLabels", "timer", "webhook", "websocket", "subscription", "email", "feed", "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", "Query", "select", "Filter", "type", "Operation", "PersistentOperation", "from", "Scope", "space", "registry", "workflows", "ComputeGraph", "scripts", "Script", "feeds", "Feed", "props", "getValue", "formValue", "Ref", "isRef", "uri", "undefined", "handleOnValueChange", "_type", "uriString", "EID", "tryParse", "DXN", "isDXN", "onValueChange", "fromURI", "SelectField", "options", "getWorkflowOptions", "concat", "getFunctionOptions", "SpecSelector", "readonly", "toString", "dxnString", "getFeedOptions", "handleChange", "query", "ast", "Input", "FormFieldLabel", "label", "asChild", "QueryForm", "initialQuery", "onChange", "input", "FunctionInputEditor", "getObjectIconProps", "object", "Entity", "getType", "Type", "getSchema", "annotation", "getOrUndefined", "Annotation", "IconAnnotation", "get", "icon", "iconHue", "hue", "graphs", "map", "graph", "value", "getURI", "getLabel", "fn", "find", "s", "source", "target", "name", "schemaIcon", "getOperationUri", "getFeedDisplayName", "feed", "getTypename", "computeRefRole", "entity", "parent", "getParent", "key", "keys", "displayObject", "role", "secondaryLabel"]
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-5YUHZOFA.mjs"));
4
+
5
+ export {
6
+ AutomationOperationHandlerSet
7
+ };
8
+ //# sourceMappingURL=chunk-TJOQNSS5.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,16 @@
1
+ import {
2
+ AutomationPanel,
3
+ FunctionsPanel,
4
+ FunctionsRegistry
5
+ } from "../chunk-MBIODLCB.mjs";
6
+ import {
7
+ TriggerEditor
8
+ } from "../chunk-RCBE37YU.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,13 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/containers/index.ts
4
+ import { lazy } from "react";
5
+ var AutomationSettings = lazy(() => import("../AutomationSettings-GQF5UFM6.mjs"));
6
+ var FunctionsContainer = lazy(() => import("../FunctionsContainer-YBTQGCL3.mjs"));
7
+ var TriggerSettings = lazy(() => import("../TriggerSettings-XCHIZPOR.mjs"));
8
+ export {
9
+ AutomationSettings,
10
+ FunctionsContainer,
11
+ TriggerSettings
12
+ };
13
+ //# sourceMappingURL=index.mjs.map