@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
@@ -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
+ }
@@ -1,37 +1,61 @@
1
- import {
2
- meta
3
- } from "./chunk-PZNBEKO5.mjs";
4
-
5
1
  // src/components/TriggerEditor/TriggerEditor.tsx
2
+ import * as Option from "effect/Option";
3
+ import * as Record from "effect/Record";
6
4
  import React3, { useCallback as useCallback3, useMemo as useMemo3 } from "react";
5
+ import { Operation as Operation2, Script, Trigger as Trigger2 } from "@dxos/compute";
7
6
  import { ComputeGraph } from "@dxos/conductor";
8
- import { DXN, Obj as Obj2 } from "@dxos/echo";
9
- import { Function, Script, Trigger as Trigger2 } from "@dxos/functions";
10
- import { Filter as Filter2, Ref as Ref2, useQuery } from "@dxos/react-client/echo";
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";
11
10
  import { Input } from "@dxos/react-ui";
12
11
  import { QueryForm } from "@dxos/react-ui-components";
13
12
  import { Form as Form2, FormFieldLabel, SelectField as SelectField2, omitId } from "@dxos/react-ui-form";
14
13
 
15
14
  // src/components/TriggerEditor/FunctionInputEditor.tsx
16
15
  import React, { useCallback, useMemo } from "react";
17
- import { JsonSchema, Obj, Ref } from "@dxos/echo";
16
+ import { JsonSchema, Obj as Obj2, Ref } from "@dxos/echo";
18
17
  import { useOnTransition, useTranslation } from "@dxos/react-ui";
19
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
20
51
  var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) => {
21
52
  const { t } = useTranslation(meta.id);
22
53
  const selectedFunctionValue = useFormValues(FunctionInputEditor.displayName, [
23
54
  "function"
24
55
  ]);
25
- const selectedFunctionId = useMemo(() => {
26
- if (Ref.isRef(selectedFunctionValue)) {
27
- return selectedFunctionValue.dxn.toString().split("dxn:echo:@:").at(1);
28
- }
29
- }, [
30
- selectedFunctionValue
31
- ]);
32
- const selectedFunction = useMemo(() => functions.find((fn) => fn.id === selectedFunctionId), [
56
+ const selectedFunction = useMemo(() => Ref.isRef(selectedFunctionValue) ? findOperationByUri(functions, selectedFunctionValue.uri) : void 0, [
33
57
  functions,
34
- selectedFunctionId
58
+ selectedFunctionValue
35
59
  ]);
36
60
  useOnTransition(
37
61
  // Clear function parameter input when the function changes.
@@ -40,7 +64,7 @@ var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) =>
40
64
  if (!Ref.isRef(prevValue) || !Ref.isRef(selectedFunctionValue)) {
41
65
  return false;
42
66
  }
43
- return prevValue.dxn.toString() !== selectedFunctionValue.dxn.toString();
67
+ return prevValue.uri !== selectedFunctionValue.uri;
44
68
  },
45
69
  (currValue) => currValue !== void 0,
46
70
  () => onValueChange(type, {})
@@ -54,8 +78,8 @@ var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) =>
54
78
  const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;
55
79
  const defaultValues = useMemo(() => {
56
80
  const raw = getValue() ?? {};
57
- return Obj.isObject(raw) ? {
58
- ...Obj.getSnapshot(raw)
81
+ return Obj2.isObject(raw) ? {
82
+ ...Obj2.getSnapshot(raw)
59
83
  } : {
60
84
  ...raw
61
85
  };
@@ -72,7 +96,7 @@ var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) =>
72
96
  return null;
73
97
  }
74
98
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Form.Label, {
75
- label: t("function parameters label"),
99
+ label: t("function-parameters.label"),
76
100
  asChild: true
77
101
  }), /* @__PURE__ */ React.createElement(Form.Root, {
78
102
  key: selectedFunction.id,
@@ -86,12 +110,13 @@ FunctionInputEditor.displayName = "AutomationTrigger.FunctionInputEditor";
86
110
 
87
111
  // src/components/TriggerEditor/SpecSelector.tsx
88
112
  import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
113
+ import { Trigger } from "@dxos/compute";
89
114
  import { Filter, Query } from "@dxos/echo";
90
- import { Trigger } from "@dxos/functions";
91
115
  import { useTranslation as useTranslation2 } from "@dxos/react-ui";
92
116
  import { SelectField, useFormFieldState } from "@dxos/react-ui-form";
117
+ import { meta as meta2 } from "#meta";
93
118
  var SpecSelector = (props) => {
94
- const { t } = useTranslation2(meta.id);
119
+ const { t } = useTranslation2(meta2.id);
95
120
  const specProps = useFormFieldState(SpecSelector.displayName, [
96
121
  "spec"
97
122
  ]);
@@ -99,30 +124,17 @@ var SpecSelector = (props) => {
99
124
  const getDefaultTriggerSpec = (kind) => {
100
125
  switch (kind) {
101
126
  case "timer":
102
- return {
103
- kind: "timer",
104
- cron: ""
105
- };
127
+ return Trigger.specTimer("");
106
128
  case "subscription":
129
+ return Trigger.specSubscription(Query.select(Filter.nothing()));
130
+ case "feed":
107
131
  return {
108
- kind: "subscription",
109
- query: {
110
- ast: Query.select(Filter.nothing()).ast
111
- }
112
- };
113
- case "queue":
114
- return {
115
- kind: "queue",
116
- queue: "dxn:queue:default"
132
+ kind: "feed"
117
133
  };
118
134
  case "email":
119
- return {
120
- kind: "email"
121
- };
135
+ return Trigger.specEmail();
122
136
  case "webhook":
123
- return {
124
- kind: "webhook"
125
- };
137
+ return Trigger.specWebhook();
126
138
  default:
127
139
  return void 0;
128
140
  }
@@ -136,9 +148,17 @@ var SpecSelector = (props) => {
136
148
  props.type,
137
149
  specProps
138
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
+ };
139
159
  const options = useMemo2(() => Trigger.Kinds.map((kind) => ({
140
160
  value: kind,
141
- label: t(`trigger type ${kind}`)
161
+ label: kindLabels[kind]
142
162
  })), [
143
163
  t
144
164
  ]);
@@ -159,12 +179,13 @@ var TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }) =
159
179
  readonlySpec
160
180
  });
161
181
  const handleValuesChanged = useCallback3((newValues) => {
162
- Obj2.change(trigger, (t) => {
163
- Object.assign(t, newValues);
182
+ Obj3.update(trigger, (trigger2) => {
183
+ Object.assign(trigger2, newValues);
164
184
  });
165
185
  }, [
166
186
  trigger
167
187
  ]);
188
+ const triggerSchema = useMemo3(() => omitId(Trigger2.Trigger), []);
168
189
  const defaultValues = useMemo3(() => {
169
190
  const { id: _, ...values } = trigger;
170
191
  return values;
@@ -173,34 +194,34 @@ var TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }) =
173
194
  ]);
174
195
  return /* @__PURE__ */ React3.createElement(Form2.Root, {
175
196
  ...formProps,
176
- schema: omitId(Trigger2.Trigger),
177
- defaultValues,
178
197
  db,
198
+ schema: triggerSchema,
199
+ defaultValues,
179
200
  fieldMap,
180
201
  onValuesChanged: handleValuesChanged
181
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))));
182
203
  };
183
204
  var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
184
- const functions = useQuery(db, Filter2.type(Function.Function));
205
+ const functions = useQuery(db, Query2.select(Filter2.type(Operation2.PersistentOperation)).from(Scope.space(), Scope.registry()));
185
206
  const workflows = useQuery(db, Filter2.type(ComputeGraph));
186
207
  const scripts = useQuery(db, Filter2.type(Script.Script));
208
+ const feeds = useQuery(db, Filter2.type(Feed.Feed));
187
209
  return useMemo3(() => ({
188
210
  // Function selector.
189
211
  ["function"]: (props) => {
190
212
  const getValue = useCallback3(() => {
191
213
  const formValue = props.getValue();
192
214
  if (Ref2.isRef(formValue)) {
193
- return formValue.dxn.toString();
215
+ return formValue.uri;
194
216
  }
195
217
  return void 0;
196
218
  }, [
197
219
  props
198
220
  ]);
199
- const handleOnValueChange = useCallback3((_type, dxnString) => {
200
- const dxn = DXN.parse(dxnString);
201
- if (dxn) {
202
- const ref = Ref2.fromDXN(dxn);
203
- props.onValueChange(props.type, ref);
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));
204
225
  }
205
226
  }, [
206
227
  props.type,
@@ -218,6 +239,33 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
218
239
  ...props,
219
240
  readonly: readonlySpec
220
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
+ },
221
269
  // TODO(wittjosiah): Copied from ViewEditor.
222
270
  // Query input editor.
223
271
  "spec.query": (props) => {
@@ -247,24 +295,74 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
247
295
  workflows,
248
296
  scripts,
249
297
  functions,
298
+ feeds,
250
299
  readonlySpec
251
300
  ]);
252
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
+ };
253
311
  var getWorkflowOptions = (graphs) => {
254
312
  return graphs.map((graph) => ({
255
313
  label: `compute-${graph.id}`,
256
- value: `dxn:echo:@:${graph.id}`
314
+ value: Obj3.getURI(graph),
315
+ ...getObjectIconProps(graph)
257
316
  }));
258
317
  };
259
318
  var getFunctionOptions = (scripts, functions) => {
260
319
  const getLabel = (fn) => scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;
261
- return functions.map((fn) => ({
262
- label: getLabel(fn),
263
- value: `dxn:echo:@:${fn.id}`
264
- }));
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
+ });
265
363
  };
266
364
 
267
365
  export {
268
366
  TriggerEditor
269
367
  };
270
- //# sourceMappingURL=chunk-ZNI2CGQP.mjs.map
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": ";AAIA,YAAYA,YAAY;AACxB,YAAYC,YAAY;AACxB,OAAOC,UAASC,eAAAA,cAAaC,WAAAA,gBAAe;AAE5C,SAASC,aAAAA,YAAWC,QAAQC,WAAAA,gBAAe;AAC3C,SAASC,oBAAoB;AAC7B,SAASC,YAA2BC,QAAQC,MAAMC,UAAAA,SAAQC,OAAAA,MAAKC,SAAAA,QAAOC,OAAAA,MAAKC,OAAOC,YAAY;AAC9F,SAASC,OAAAA,MAAKC,OAAAA,YAAW;AACzB,SAASC,gBAAgB;AACzB,SAASC,aAAa;AACtB,SAASC,iBAAsC;AAC/C,SAEEC,QAAAA,OACAC,gBAGAC,eAAAA,cACAC,cACK;;;AClBP,OAAOC,SAASC,aAAaC,eAAe;AAG5C,SAAwBC,YAAYC,OAAAA,MAAKC,WAAW;AAEpD,SAASC,iBAAiBC,sBAAsB;AAChD,SAASC,MAAoDC,qBAAqB;AAElF,SAASC,YAAY;;;ACTrB,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,KAAKC,WAAqB;AAQ5B,IAAMC,kBAAkB,CAACC,OAAAA;AAC9B,MAAIJ,IAAIK,YAAYD,EAAAA,MAAQE,QAAW;AACrC,UAAMC,MAAMR,UAAUS,OAAOJ,EAAAA;AAC7B,UAAMK,UAAUV,UAAUW,WAAWN,EAAAA;AACrC,UAAMO,MAAMJ,MAAMN,IAAIW,QAAQH,UAAU,OAAOF,GAAAA,IAAOE,OAAAA,KAAY,OAAOF,GAAAA,EAAK,IAAID;AAClF,QAAIK,KAAK;AACP,aAAOA;IACT;EACF;AAEA,SAAOX,IAAIa,OAAOT,EAAAA;AACpB;AAMO,IAAMU,qBAAqB,CAChCC,WACAC,QAAAA;AAEA,QAAMC,MAAMf,IAAIgB,SAASF,GAAAA;AACzB,MAAIC,KAAK;AACP,UAAME,WAAWjB,IAAIkB,YAAYH,GAAAA;AACjC,WAAOE,WAAWJ,UAAUM,KAAK,CAACjB,OAAOA,GAAGkB,OAAOH,QAAAA,IAAYb;EACjE;AAEA,MAAIL,IAAIsB,MAAMP,GAAAA,GAAM;AAClB,UAAMT,MAAMN,IAAIuB,QAAQR,GAAAA;AACxB,UAAMP,UAAUR,IAAIS,WAAWM,GAAAA;AAC/B,WAAOD,UAAUM,KACf,CAACjB,OAAOL,UAAUS,OAAOJ,EAAAA,MAAQG,QAAQE,YAAYH,UAAaP,UAAUW,WAAWN,EAAAA,MAAQK,QAAM;EAEzG;AAEA,SAAOH;AACT;;;AD3BO,IAAMmB,sBAAsB,CAAC,EAAEC,MAAMC,WAAWC,IAAIC,UAAUC,cAAa,MAA4B;AAC5G,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,QAAMC,wBAAwBC,cAAcX,oBAAoBY,aAAa;IAAC;GAAuB;AACrG,QAAMC,mBAAmBC,QACvB,MAAOC,IAAIC,MAAMN,qBAAAA,IAAyBO,mBAAmBf,WAAWQ,sBAAsBQ,GAAG,IAAIC,QACrG;IAACjB;IAAWQ;GAAsB;AAGpCU;;IAEEV;IACA,CAACW,cAAAA;AACC,UAAI,CAACN,IAAIC,MAAMK,SAAAA,KAAc,CAACN,IAAIC,MAAMN,qBAAAA,GAAwB;AAC9D,eAAO;MACT;AAEA,aAAOW,UAAUH,QAAQR,sBAAsBQ;IACjD;IACA,CAACI,cAAcA,cAAcH;IAC7B,MAAMd,cAAcJ,MAAM,CAAC,CAAA;EAAA;AAG7B,QAAMsB,cAAcT,QAAQ,MAAMD,kBAAkBU,aAAa;IAACV;GAAiB;AACnF,QAAMW,eAAeV,QAAQ,MAAOS,cAAcE,WAAWC,eAAeH,WAAAA,IAAeJ,QAAY;IAACI;GAAY;AACpH,QAAMI,gBAAgBJ,aAAaK,aAAaC,OAAOC,KAAKP,YAAYK,UAAU,EAAEG,SAAS;AAC7F,QAAMC,gBAAgBlB,QAAQ,MAAA;AAC5B,UAAMmB,MAAM7B,SAAAA,KAAc,CAAC;AAC3B,WAAO8B,KAAIC,SAASF,GAAAA,IAAO;MAAE,GAAGC,KAAIE,YAAYH,GAAAA;IAAK,IAAI;MAAE,GAAGA;IAAI;EACpE,GAAG;IAAC7B;GAAS;AAEb,QAAMiC,sBAAsBC,YAC1B,CAACC,WAAAA;AACClC,kBAAcJ,MAAMsC,MAAAA;EACtB,GACA;IAACtC;IAAMI;GAAc;AAGvB,MAAIQ,qBAAqBM,UAAaK,iBAAiBL,UAAaQ,kBAAkB,GAAG;AACvF,WAAO;EACT;AAEA,SACE,sBAAA,cAAA,MAAA,UAAA,MACE,sBAAA,cAACa,KAAKC,OAAK;IAACC,OAAOpC,EAAE,2BAAA;IAA8BqC,SAAAA;MACnD,sBAAA,cAACH,KAAKI,MAAI;IACRC,KAAKhC,iBAAiBJ;IACtBqC,QAAQtB;IACRQ;IACA7B;IACA4C,iBAAiBV;KAEjB,sBAAA,cAACG,KAAKQ,UAAQ,IAAA,CAAA,CAAA;AAItB;AAEAhD,oBAAoBY,cAAc;;;AE5ElC,OAAOqC,UAASC,eAAAA,cAAaC,WAAAA,gBAAe;AAE5C,SAASC,eAAe;AACxB,SAASC,QAAQC,aAAa;AAC9B,SAASC,kBAAAA,uBAAsB;AAC/B,SAAuCC,aAAaC,yBAAyB;AAE7E,SAASC,QAAAA,aAAY;AAId,IAAMC,eAAe,CAACC,UAAAA;AAC3B,QAAM,EAAEC,EAAC,IAAKN,gBAAeG,MAAKI,EAAE;AACpC,QAAMC,YAAYN,kBAAkBE,aAAaK,aAAa;IAAC;GAAuC;AAEtG,QAAMC,mBAAmBf,aACvB,CAACgB,OAAYC,UAAAA;AACX,UAAMC,wBAAwB,CAACC,SAAAA;AAC7B,cAAQA,MAAAA;QACN,KAAK;AACH,iBAAOjB,QAAQkB,UAAU,EAAA;QAC3B,KAAK;AACH,iBAAOlB,QAAQmB,iBAAiBjB,MAAMkB,OAAOnB,OAAOoB,QAAO,CAAA,CAAA;QAC7D,KAAK;AACH,iBAAO;YAAEJ,MAAM;UAAO;QACxB,KAAK;AACH,iBAAOjB,QAAQsB,UAAS;QAC1B,KAAK;AACH,iBAAOtB,QAAQuB,YAAW;QAC5B;AACE,iBAAOC;MACX;IACF;AAEA,UAAMC,cAAcT,sBAAsBD,KAAAA;AAC1C,QAAI,CAACU,aAAa;AAChB;IACF;AAGAd,cAAUe,cAAclB,MAAMmB,MAAMF,WAAAA;EACtC,GACA;IAACjB,MAAMmB;IAAMhB;GAAU;AAGzB,QAAMiB,aAAqC;IACzCC,OAAOpB,EAAE,0BAAA;IACTqB,SAASrB,EAAE,4BAAA;IACXsB,WAAWtB,EAAE,8BAAA;IACbuB,cAAcvB,EAAE,iCAAA;IAChBwB,OAAOxB,EAAE,0BAAA;IACTyB,MAAMzB,EAAE,yBAAA;EACV;AAEA,QAAM0B,UAAUpC,SACd,MACEC,QAAQoC,MAAMC,IAAI,CAACpB,UAAU;IAC3BF,OAAOE;IACPqB,OAAOV,WAAWX,IAAAA;EACpB,EAAA,GACF;IAACR;GAAE;AAGL,SAAO,gBAAAZ,OAAA,cAACO,aAAAA;IAAa,GAAGI;IAAO2B;IAAkBT,eAAeb;;AAClE;AAEAN,aAAaK,cAAc;;;AH7BpB,IAAM2B,gBAAgB,CAAC,EAAEC,IAAIC,OAAOC,MAAMC,cAAcC,SAAS,GAAGC,UAAAA,MAA+B;AACxG,QAAMC,WAAWC,gBAAgB;IAAEP;IAAIC;IAAOC;IAAMC;EAAa,CAAA;AAEjE,QAAMK,sBAAsBC,aAC1B,CAACC,cAAAA;AACCC,IAAAA,KAAIC,OAAOR,SAAS,CAACA,aAAAA;AACnBS,aAAOC,OAAOV,UAASM,SAAAA;IACzB,CAAA;EACF,GACA;IAACN;GAAQ;AAGX,QAAMW,gBAAgBC,SAAQ,MAAMC,OAAOC,SAAQA,OAAO,GAAG,CAAA,CAAE;AAC/D,QAAMC,gBAAgBH,SAAQ,MAAA;AAC5B,UAAM,EAAEI,IAAIC,GAAG,GAAGC,OAAAA,IAAWlB;AAC7B,WAAOkB;EACT,GAAG;IAAClB;GAAQ;AAEZ,SACE,gBAAAmB,OAAA,cAACC,MAAKC,MAAI;IACP,GAAGpB;IACJL;IACA0B,QAAQX;IACRI;IACAb;IACAqB,iBAAiBnB;KAEjB,gBAAAe,OAAA,cAACC,MAAKI,UAAQ,MACZ,gBAAAL,OAAA,cAACC,MAAKK,SAAO,MACX,gBAAAN,OAAA,cAACC,MAAKM,UAAQ,IAAA,GACd,gBAAAP,OAAA,cAACC,MAAKO,SAAO,IAAA,CAAA,CAAA,CAAA;AAKvB;AAOA,IAAMxB,kBAAkB,CAAC,EAAEP,IAAIG,cAAcF,OAAOC,KAAI,MAAwB;AAC9E,QAAM8B,YAAYC,SAChBjC,IACAkC,OAAMC,OAAOC,QAAOC,KAAKC,WAAUC,mBAAmB,CAAA,EAAGC,KAAKC,MAAMC,MAAK,GAAID,MAAME,SAAQ,CAAA,CAAA;AAG7F,QAAMC,YAAYX,SAASjC,IAAIoC,QAAOC,KAAKQ,YAAAA,CAAAA;AAC3C,QAAMC,UAAUb,SAASjC,IAAIoC,QAAOC,KAAKU,OAAOA,MAAM,CAAA;AACtD,QAAMC,QAAQf,SAASjC,IAAIoC,QAAOC,KAAKY,KAAKA,IAAI,CAAA;AAEhD,SAAOjC,SACL,OAAqB;;IAEnB,CAAC,UAAA,GAA6C,CAACkC,UAAAA;AAC7C,YAAMC,WAAW1C,aAAY,MAAA;AAC3B,cAAM2C,YAAYF,MAAMC,SAAQ;AAChC,YAAIE,KAAIC,MAAMF,SAAAA,GAAY;AACxB,iBAAOA,UAAUG;QACnB;AACA,eAAOC;MACT,GAAG;QAACN;OAAM;AAEV,YAAMO,sBAAsBhD,aAC1B,CAACiD,OAAYC,cAAAA;AAEX,cAAMJ,MAAMK,KAAIC,SAASF,SAAAA,MAAeG,KAAIC,MAAMJ,SAAAA,IAAaA,YAAYH;AAC3E,YAAID,KAAK;AACPL,gBAAMc,cAAcd,MAAMb,MAAMgB,KAAIY,QAAQV,GAAAA,CAAAA;QAC9C;MACF,GACA;QAACL,MAAMb;QAAMa,MAAMc;OAAc;AAGnC,aACE,gBAAAzC,OAAA,cAAC2C,cAAAA;QACE,GAAGhB;QACJC;QACAa,eAAeP;QACfU,SAASC,mBAAmBxB,SAAAA,EAAWyB,OAAOC,mBAAmBxB,SAASd,SAAAA,CAAAA;;IAGhF;;IAGA,aAAa,CAACkB,UAAU,gBAAA3B,OAAA,cAACgD,cAAAA;MAAc,GAAGrB;MAAOsB,UAAUrE;;;IAG3D,aAAa,CAAC+C,UAAAA;AACZ,YAAMC,WAAW1C,aAAY,MAAA;AAC3B,cAAM2C,YAAYF,MAAMC,SAAQ;AAChC,YAAIE,KAAIC,MAAMF,SAAAA,GAAY;AACxB,iBAAOA,UAAUG,IAAIkB,SAAQ;QAC/B;AACA,eAAOjB;MACT,GAAG;QAACN;OAAM;AAEV,YAAMO,sBAAsBhD,aAC1B,CAACiD,OAAYgB,cAAAA;AACX,cAAMnB,MAAMK,KAAIC,SAASa,SAAAA;AACzB,YAAInB,KAAK;AACPL,gBAAMc,cAAcd,MAAMb,MAAMgB,KAAIY,QAAQV,GAAAA,CAAAA;QAC9C;MACF,GACA;QAACL,MAAMb;QAAMa,MAAMc;OAAc;AAGnC,aACE,gBAAAzC,OAAA,cAAC2C,cAAAA;QACE,GAAGhB;QACJC;QACAa,eAAeP;QACfU,SAASQ,eAAe3B,KAAAA;;IAG9B;;;IAIA,cAAc,CAACE,UAAAA;AACb,YAAM0B,eAAenE,aACnB,CAACoE,UAAqB3B,MAAMc,cAAcd,MAAMb,MAAM;QAAEyC,KAAKD,MAAMC;MAAI,CAAA,GACvE;QAAC5B,MAAMb;QAAMa,MAAMc;OAAc;AAGnC,aACE,gBAAAzC,OAAA,cAACwD,MAAMtD,MAAI,MACT,gBAAAF,OAAA,cAACyD,gBAAAA;QAAeC,OAAO/B,MAAM+B;QAAOC,SAAAA;UACpC,gBAAA3D,OAAA,cAAC4D,WAAAA;QAAUC,cAAelC,MAAMC,SAAQ,EAAW2B;QAAK7E;QAAcC;QAAYmF,UAAUT;;IAGlG;;IAGAU,OAAO,CAACpC,UAAU,gBAAA3B,OAAA,cAACgE,qBAAAA;MAAqB,GAAGrC;MAAOlB;MAAsBhC;;EAC1E,IACA;IAAC4C;IAAWE;IAASd;IAAWgB;IAAO7C;GAAa;AAExD;AAEA,IAAMqF,qBAAqB,CAACC,WAAAA;AAC1B,QAAMpD,OAAOqD,OAAOC,QAAQF,MAAAA;AAC5B,QAAM/D,SAASW,OAAOuD,KAAKC,UAAUxD,IAAAA,IAAQmB;AAC7C,QAAMsC,aAAapE,SAAgBqE,sBAAeC,WAAWC,eAAeC,IAAIxE,MAAAA,CAAAA,IAAW8B;AAC3F,SAAOsC,aAAa;IAAEK,MAAML,WAAWK;IAAMC,SAASN,WAAWO;EAAI,IAAI,CAAC;AAC5E;AAEA,IAAMjC,qBAAqB,CAACkC,WAAAA;AAC1B,SAAOA,OAAOC,IAAI,CAACC,WAAW;IAC5BvB,OAAO,WAAWuB,MAAMpF,EAAE;IAC1BqF,OAAO9F,KAAI+F,OAAOF,KAAAA;IAClB,GAAGhB,mBAAmBgB,KAAAA;EACxB,EAAA;AACF;AAEA,IAAMlC,qBAAqB,CAACxB,SAA0Bd,cAAAA;AACpD,QAAM2E,WAAW,CAACC,OAChB9D,QAAQ+D,KAAK,CAACC,MAAMF,GAAGG,QAAQC,QAAQ5F,OAAO0F,EAAE1F,EAAE,GAAG6F,QAAQL,GAAGK;AAClE,SAAOjF,UAAUuE,IAAI,CAACK,OAAAA;AACpB,UAAM,EAAET,MAAMe,YAAYd,QAAO,IAAKZ,mBAAmBoB,EAAAA;AACzD,WAAO;MACL3B,OAAO0B,SAASC,EAAAA;MAChBH,OAAOU,gBAAgBP,EAAAA;MACvBT,MAAMS,GAAGT,QAAQe;MACjBd;IACF;EACF,CAAA;AACF;AAEA,IAAMgB,qBAAqB,CAACC,SAC1B3B,OAAOiB,SAASU,IAAAA,KAASA,KAAKJ,QAAQvB,OAAO4B,YAAYD,IAAAA,KAAS;AAEpE,IAAME,iBAAiB,CAACC,WAAAA;AACtB,QAAMC,SAAS9G,KAAI+G,UAAUF,MAAAA;AAC7B,MAAI,CAACC,QAAQ;AACX,WAAOjE;EACT;AACA,aAAWmE,OAAcC,YAAKH,MAAAA,GAAS;AACrC,QAAIpE,KAAIC,MAAMmE,OAAOE,GAAAA,CAAI,KAAKF,OAAOE,GAAAA,EAAKX,QAAQ5F,OAAOoG,OAAOpG,IAAI;AAClE,aAAO,KAAKuG,GAAAA;IACd;EACF;AACA,SAAOnE;AACT;AAEA,IAAMmB,iBAAiB,CAAC3B,UAAAA;AACtB,SAAOA,MAAMuD,IAAI,CAACc,SAAAA;AAChB,UAAMI,SAAS9G,KAAI+G,UAAUL,IAAAA;AAC7B,UAAMQ,gBAAgBJ,UAAUJ;AAChC,UAAMS,OAAOP,eAAeF,IAAAA;AAE5B,QAAII,QAAQ;AACV,aAAO;QACLxC,OAAOS,OAAOiB,SAASc,MAAAA,KAAW/B,OAAO4B,YAAYG,MAAAA,KAAW;QAChEM,gBAAgBD,QAAQV,mBAAmBC,IAAAA;QAC3CZ,OAAO9F,KAAI+F,OAAOW,IAAAA;QAClB,GAAG7B,mBAAmBqC,aAAAA;MACxB;IACF;AAEA,WAAO;MACL5C,OAAOmC,mBAAmBC,IAAAA;MAC1BU,gBAAgBD;MAChBrB,OAAO9F,KAAI+F,OAAOW,IAAAA;MAClB,GAAG7B,mBAAmBqC,aAAAA;IACxB;EACF,CAAA;AACF;",
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