@dxos/plugin-automation 0.8.4-main.74a063c4e0 → 0.8.4-main.765dc60934

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 (278) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/AutomationPanel-HI63JQ2X.mjs +11 -0
  4. package/dist/lib/neutral/AutomationPlugin.mjs +10 -0
  5. package/dist/lib/{browser/cli/index.mjs → neutral/AutomationPlugin.node.mjs} +102 -112
  6. package/dist/lib/neutral/AutomationPlugin.node.mjs.map +7 -0
  7. package/dist/lib/neutral/AutomationSettings-LM5GSR4H.mjs +31 -0
  8. package/dist/lib/neutral/AutomationSettings-LM5GSR4H.mjs.map +7 -0
  9. package/dist/lib/neutral/FunctionsContainer-CEMKJIGV.mjs +38 -0
  10. package/dist/lib/neutral/FunctionsContainer-CEMKJIGV.mjs.map +7 -0
  11. package/dist/lib/neutral/FunctionsPanel-SVRKRUXZ.mjs +97 -0
  12. package/dist/lib/neutral/FunctionsPanel-SVRKRUXZ.mjs.map +7 -0
  13. package/dist/lib/neutral/FunctionsRegistry-7ITCFJCW.mjs +95 -0
  14. package/dist/lib/neutral/FunctionsRegistry-7ITCFJCW.mjs.map +7 -0
  15. package/dist/lib/neutral/TriggerSettings-XCHIZPOR.mjs +9 -0
  16. package/dist/lib/neutral/app-graph-builder-GDCGRYEP.mjs +75 -0
  17. package/dist/lib/neutral/app-graph-builder-GDCGRYEP.mjs.map +7 -0
  18. package/dist/lib/neutral/capabilities/index.mjs +15 -0
  19. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  20. package/dist/lib/neutral/capabilities/node.mjs +13 -0
  21. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  22. package/dist/lib/neutral/chunk-2JP77CMN.mjs +42 -0
  23. package/dist/lib/neutral/chunk-2JP77CMN.mjs.map +7 -0
  24. package/dist/lib/neutral/chunk-6CKX6RIL.mjs +270 -0
  25. package/dist/lib/neutral/chunk-6CKX6RIL.mjs.map +7 -0
  26. package/dist/lib/neutral/chunk-ATECY555.mjs +20 -0
  27. package/dist/lib/neutral/chunk-ATECY555.mjs.map +7 -0
  28. package/dist/lib/neutral/chunk-CNFKEN7S.mjs +37 -0
  29. package/dist/lib/neutral/chunk-CNFKEN7S.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-DSCOLDT5.mjs +93 -0
  31. package/dist/lib/neutral/chunk-DSCOLDT5.mjs.map +7 -0
  32. package/dist/lib/neutral/chunk-K3C5ZTZA.mjs +285 -0
  33. package/dist/lib/neutral/chunk-K3C5ZTZA.mjs.map +7 -0
  34. package/dist/lib/neutral/chunk-M3TIHFXN.mjs +8 -0
  35. package/dist/lib/neutral/chunk-M3TIHFXN.mjs.map +7 -0
  36. package/dist/lib/neutral/chunk-YV7TKOVL.mjs +12 -0
  37. package/dist/lib/neutral/chunk-YV7TKOVL.mjs.map +7 -0
  38. package/dist/lib/neutral/components/index.mjs +16 -0
  39. package/dist/lib/neutral/components/index.mjs.map +7 -0
  40. package/dist/lib/neutral/compute-runtime-D7MPZJ4R.mjs +222 -0
  41. package/dist/lib/neutral/compute-runtime-D7MPZJ4R.mjs.map +7 -0
  42. package/dist/lib/neutral/containers/index.mjs +13 -0
  43. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  44. package/dist/lib/{browser/create-trigger-from-template-JPF5BFMX.mjs → neutral/create-trigger-from-template-7K3OYOHQ.mjs} +13 -22
  45. package/dist/lib/neutral/create-trigger-from-template-7K3OYOHQ.mjs.map +7 -0
  46. package/dist/lib/neutral/hooks/index.mjs +129 -0
  47. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  48. package/dist/lib/neutral/index.mjs +20 -0
  49. package/dist/lib/neutral/index.mjs.map +7 -0
  50. package/dist/lib/neutral/meta.json +1 -0
  51. package/dist/lib/neutral/meta.mjs +8 -0
  52. package/dist/lib/neutral/meta.mjs.map +7 -0
  53. package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs +13 -0
  54. package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs.map +7 -0
  55. package/dist/lib/neutral/operations/index.mjs +8 -0
  56. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  57. package/dist/lib/neutral/plugin.mjs +16 -0
  58. package/dist/lib/neutral/plugin.mjs.map +7 -0
  59. package/dist/lib/neutral/react-surface-3OGMAMKV.mjs +57 -0
  60. package/dist/lib/neutral/react-surface-3OGMAMKV.mjs.map +7 -0
  61. package/dist/lib/neutral/testing.mjs +8 -0
  62. package/dist/lib/neutral/testing.mjs.map +7 -0
  63. package/dist/lib/neutral/translations.mjs +47 -0
  64. package/dist/lib/neutral/translations.mjs.map +7 -0
  65. package/dist/lib/neutral/types/index.mjs +16 -0
  66. package/dist/lib/neutral/types/index.mjs.map +7 -0
  67. package/dist/types/src/AutomationPlugin.d.ts +1 -0
  68. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  69. package/dist/types/src/{cli/plugin.d.ts → AutomationPlugin.node.d.ts} +2 -1
  70. package/dist/types/src/AutomationPlugin.node.d.ts.map +1 -0
  71. package/dist/types/src/AutomationPlugin.test.d.ts +2 -0
  72. package/dist/types/src/AutomationPlugin.test.d.ts.map +1 -0
  73. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/compute-runtime.d.ts +8 -0
  75. package/dist/types/src/capabilities/compute-runtime.d.ts.map +1 -1
  76. package/dist/types/src/capabilities/index.d.ts +2 -2
  77. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/node.d.ts +4 -1
  79. package/dist/types/src/capabilities/node.d.ts.map +1 -1
  80. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  81. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  83. package/dist/types/src/commands/index.d.ts.map +1 -0
  84. package/dist/types/src/{cli/commands → commands}/trigger/create/index.d.ts +6 -6
  85. package/dist/types/src/commands/trigger/create/index.d.ts.map +1 -0
  86. package/dist/types/src/{cli/commands → commands}/trigger/create/queue.d.ts +1 -1
  87. package/dist/types/src/commands/trigger/create/queue.d.ts.map +1 -0
  88. package/dist/types/src/{cli/commands → commands}/trigger/create/subscription.d.ts +1 -1
  89. package/dist/types/src/commands/trigger/create/subscription.d.ts.map +1 -0
  90. package/dist/types/src/{cli/commands → commands}/trigger/create/timer.d.ts +1 -1
  91. package/dist/types/src/commands/trigger/create/timer.d.ts.map +1 -0
  92. package/dist/types/src/{cli/commands → commands}/trigger/index.d.ts +7 -7
  93. package/dist/types/src/commands/trigger/index.d.ts.map +1 -0
  94. package/dist/types/src/commands/trigger/list.d.ts.map +1 -0
  95. package/dist/types/src/commands/trigger/options.d.ts.map +1 -0
  96. package/dist/types/src/{cli/commands → commands}/trigger/remove.d.ts +1 -1
  97. package/dist/types/src/commands/trigger/remove.d.ts.map +1 -0
  98. package/dist/types/src/{cli/commands → commands}/trigger/update/index.d.ts +5 -5
  99. package/dist/types/src/commands/trigger/update/index.d.ts.map +1 -0
  100. package/dist/types/src/commands/trigger/update/queue.d.ts.map +1 -0
  101. package/dist/types/src/commands/trigger/update/subscription.d.ts.map +1 -0
  102. package/dist/types/src/commands/trigger/update/timer.d.ts.map +1 -0
  103. package/dist/types/src/{cli/commands → commands}/trigger/util.d.ts +4 -4
  104. package/dist/types/src/commands/trigger/util.d.ts.map +1 -0
  105. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -1
  106. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  107. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +32 -29
  108. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/AutomationPanel/index.d.ts.map +1 -1
  110. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
  111. package/dist/types/src/components/FunctionsPanel/index.d.ts.map +1 -1
  112. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts.map +1 -1
  113. package/dist/types/src/components/FunctionsRegistry/index.d.ts.map +1 -1
  114. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts +5 -5
  115. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +1 -1
  116. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts +4 -4
  117. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +1 -1
  118. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +1 -1
  119. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  120. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +95 -90
  121. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
  122. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts +3 -1
  123. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts.map +1 -1
  124. package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts +2 -4
  125. package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts.map +1 -1
  126. package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts +3 -3
  127. package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts.map +1 -1
  128. package/dist/types/src/hooks/useComputeRuntime.d.ts +1 -0
  129. package/dist/types/src/hooks/useComputeRuntime.d.ts.map +1 -1
  130. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +1 -1
  131. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +1 -1
  132. package/dist/types/src/hooks/useComputeRuntimeService.d.ts +14 -2
  133. package/dist/types/src/hooks/useComputeRuntimeService.d.ts.map +1 -1
  134. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +1 -1
  135. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -1
  136. package/dist/types/src/index.d.ts +2 -2
  137. package/dist/types/src/index.d.ts.map +1 -1
  138. package/dist/types/src/meta.d.ts.map +1 -1
  139. package/dist/types/src/operations/create-trigger-from-template.d.ts +3 -3
  140. package/dist/types/src/operations/create-trigger-from-template.d.ts.map +1 -1
  141. package/dist/types/src/operations/index.d.ts +1 -2
  142. package/dist/types/src/operations/index.d.ts.map +1 -1
  143. package/dist/types/src/plugin.d.ts +4 -0
  144. package/dist/types/src/plugin.d.ts.map +1 -0
  145. package/dist/types/src/testing/test-functions.d.ts +77 -77
  146. package/dist/types/src/testing.d.ts +2 -0
  147. package/dist/types/src/testing.d.ts.map +1 -0
  148. package/dist/types/src/translations.d.ts +32 -30
  149. package/dist/types/src/translations.d.ts.map +1 -1
  150. package/dist/types/src/types/AutomationCapabilities.d.ts +22 -0
  151. package/dist/types/src/types/AutomationCapabilities.d.ts.map +1 -0
  152. package/dist/types/src/types/AutomationEvents.d.ts +3 -0
  153. package/dist/types/src/types/AutomationEvents.d.ts.map +1 -0
  154. package/dist/types/src/{operations/definitions.d.ts → types/AutomationOperation.d.ts} +5 -5
  155. package/dist/types/src/types/AutomationOperation.d.ts.map +1 -0
  156. package/dist/types/src/types/index.d.ts +3 -2
  157. package/dist/types/src/types/index.d.ts.map +1 -1
  158. package/dist/types/src/types/schema.d.ts.map +1 -1
  159. package/dist/types/tsconfig.tsbuildinfo +1 -1
  160. package/package.json +113 -82
  161. package/src/AutomationPlugin.node.ts +29 -0
  162. package/src/AutomationPlugin.test.ts +27 -0
  163. package/src/AutomationPlugin.tsx +7 -7
  164. package/src/capabilities/app-graph-builder.ts +10 -6
  165. package/src/capabilities/compute-runtime.ts +218 -138
  166. package/src/capabilities/index.ts +1 -1
  167. package/src/capabilities/node.ts +6 -0
  168. package/src/capabilities/operation-handler.ts +1 -1
  169. package/src/capabilities/react-surface.tsx +6 -6
  170. package/src/{cli/commands → commands}/trigger/create/queue.ts +5 -9
  171. package/src/{cli/commands → commands}/trigger/create/subscription.ts +6 -10
  172. package/src/{cli/commands → commands}/trigger/create/timer.ts +2 -6
  173. package/src/{cli/commands → commands}/trigger/list.ts +5 -3
  174. package/src/{cli/commands → commands}/trigger/remove.ts +2 -3
  175. package/src/{cli/commands → commands}/trigger/update/queue.ts +13 -14
  176. package/src/{cli/commands → commands}/trigger/update/subscription.ts +9 -10
  177. package/src/{cli/commands → commands}/trigger/update/timer.ts +10 -11
  178. package/src/{cli/commands → commands}/trigger/util.ts +19 -16
  179. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +9 -4
  180. package/src/components/AutomationPanel/AutomationPanel.tsx +40 -35
  181. package/src/components/FunctionsPanel/FunctionsPanel.tsx +4 -4
  182. package/src/components/FunctionsRegistry/FunctionsRegistry.tsx +14 -9
  183. package/src/components/TriggerEditor/FunctionInputEditor.tsx +1 -1
  184. package/src/components/TriggerEditor/SpecSelector.tsx +6 -11
  185. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +12 -7
  186. package/src/components/TriggerEditor/TriggerEditor.tsx +8 -9
  187. package/src/containers/AutomationSettings/AutomationSettings.tsx +5 -2
  188. package/src/containers/FunctionsContainer/FunctionsContainer.tsx +3 -4
  189. package/src/containers/TriggerSettings/TriggerSettings.tsx +29 -7
  190. package/src/hooks/useComputeRuntime.ts +17 -3
  191. package/src/hooks/useComputeRuntimeCallback.ts +2 -3
  192. package/src/hooks/useComputeRuntimeService.ts +49 -9
  193. package/src/hooks/useTriggerRuntimeControls.ts +6 -3
  194. package/src/index.ts +2 -2
  195. package/src/meta.ts +2 -1
  196. package/src/operations/create-trigger-from-template.ts +51 -55
  197. package/src/operations/index.ts +1 -3
  198. package/src/plugin.ts +11 -0
  199. package/src/testing/test-functions.ts +6 -6
  200. package/src/testing.ts +7 -0
  201. package/src/translations.ts +8 -6
  202. package/src/types/AutomationCapabilities.ts +48 -0
  203. package/src/types/AutomationEvents.ts +11 -0
  204. package/src/{operations/definitions.ts → types/AutomationOperation.ts} +4 -2
  205. package/src/types/index.ts +4 -2
  206. package/dist/lib/browser/chunk-POEIL4RN.mjs +0 -44
  207. package/dist/lib/browser/chunk-POEIL4RN.mjs.map +0 -7
  208. package/dist/lib/browser/chunk-WQLEMRPU.mjs +0 -54
  209. package/dist/lib/browser/chunk-WQLEMRPU.mjs.map +0 -7
  210. package/dist/lib/browser/cli/index.mjs.map +0 -7
  211. package/dist/lib/browser/create-trigger-from-template-JPF5BFMX.mjs.map +0 -7
  212. package/dist/lib/browser/hooks/index.mjs +0 -85
  213. package/dist/lib/browser/hooks/index.mjs.map +0 -7
  214. package/dist/lib/browser/index.mjs +0 -90
  215. package/dist/lib/browser/index.mjs.map +0 -7
  216. package/dist/lib/browser/meta.json +0 -1
  217. package/dist/lib/browser/operations/index.mjs +0 -14
  218. package/dist/lib/browser/operations/index.mjs.map +0 -7
  219. package/dist/lib/browser/types/index.mjs +0 -14
  220. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  221. package/dist/lib/node-esm/chunk-JWZAVQLF.mjs +0 -56
  222. package/dist/lib/node-esm/chunk-JWZAVQLF.mjs.map +0 -7
  223. package/dist/lib/node-esm/chunk-SP3P4OUI.mjs +0 -45
  224. package/dist/lib/node-esm/chunk-SP3P4OUI.mjs.map +0 -7
  225. package/dist/lib/node-esm/cli/index.mjs +0 -1123
  226. package/dist/lib/node-esm/cli/index.mjs.map +0 -7
  227. package/dist/lib/node-esm/create-trigger-from-template-FT75A4SF.mjs +0 -78
  228. package/dist/lib/node-esm/create-trigger-from-template-FT75A4SF.mjs.map +0 -7
  229. package/dist/lib/node-esm/hooks/index.mjs +0 -86
  230. package/dist/lib/node-esm/hooks/index.mjs.map +0 -7
  231. package/dist/lib/node-esm/index.mjs +0 -91
  232. package/dist/lib/node-esm/index.mjs.map +0 -7
  233. package/dist/lib/node-esm/meta.json +0 -1
  234. package/dist/lib/node-esm/operations/index.mjs +0 -15
  235. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  236. package/dist/lib/node-esm/types/index.mjs +0 -15
  237. package/dist/types/src/cli/commands/index.d.ts.map +0 -1
  238. package/dist/types/src/cli/commands/trigger/create/index.d.ts.map +0 -1
  239. package/dist/types/src/cli/commands/trigger/create/queue.d.ts.map +0 -1
  240. package/dist/types/src/cli/commands/trigger/create/subscription.d.ts.map +0 -1
  241. package/dist/types/src/cli/commands/trigger/create/timer.d.ts.map +0 -1
  242. package/dist/types/src/cli/commands/trigger/index.d.ts.map +0 -1
  243. package/dist/types/src/cli/commands/trigger/list.d.ts.map +0 -1
  244. package/dist/types/src/cli/commands/trigger/options.d.ts.map +0 -1
  245. package/dist/types/src/cli/commands/trigger/remove.d.ts.map +0 -1
  246. package/dist/types/src/cli/commands/trigger/update/index.d.ts.map +0 -1
  247. package/dist/types/src/cli/commands/trigger/update/queue.d.ts.map +0 -1
  248. package/dist/types/src/cli/commands/trigger/update/subscription.d.ts.map +0 -1
  249. package/dist/types/src/cli/commands/trigger/update/timer.d.ts.map +0 -1
  250. package/dist/types/src/cli/commands/trigger/util.d.ts.map +0 -1
  251. package/dist/types/src/cli/index.d.ts +0 -2
  252. package/dist/types/src/cli/index.d.ts.map +0 -1
  253. package/dist/types/src/cli/plugin.d.ts.map +0 -1
  254. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  255. package/dist/types/src/types/capabilities.d.ts +0 -25
  256. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  257. package/dist/types/src/types/events.d.ts +0 -5
  258. package/dist/types/src/types/events.d.ts.map +0 -1
  259. package/src/cli/index.ts +0 -5
  260. package/src/cli/plugin.ts +0 -23
  261. package/src/types/capabilities.ts +0 -56
  262. package/src/types/events.ts +0 -11
  263. /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/AutomationPanel-HI63JQ2X.mjs.map} +0 -0
  264. /package/dist/lib/{browser/types/index.mjs.map → neutral/AutomationPlugin.mjs.map} +0 -0
  265. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/TriggerSettings-XCHIZPOR.mjs.map} +0 -0
  266. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  267. /package/dist/lib/{node-esm/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  268. /package/dist/types/src/{cli/commands → commands}/index.d.ts +0 -0
  269. /package/dist/types/src/{cli/commands → commands}/trigger/list.d.ts +0 -0
  270. /package/dist/types/src/{cli/commands → commands}/trigger/options.d.ts +0 -0
  271. /package/dist/types/src/{cli/commands → commands}/trigger/update/queue.d.ts +0 -0
  272. /package/dist/types/src/{cli/commands → commands}/trigger/update/subscription.d.ts +0 -0
  273. /package/dist/types/src/{cli/commands → commands}/trigger/update/timer.d.ts +0 -0
  274. /package/src/{cli/commands → commands}/index.ts +0 -0
  275. /package/src/{cli/commands → commands}/trigger/create/index.ts +0 -0
  276. /package/src/{cli/commands → commands}/trigger/index.ts +0 -0
  277. /package/src/{cli/commands → commands}/trigger/options.ts +0 -0
  278. /package/src/{cli/commands → commands}/trigger/update/index.ts +0 -0
@@ -0,0 +1,93 @@
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("queue"),
14
+ queueDXN: 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/AutomationCapabilities.ts
37
+ var AutomationCapabilities_exports = {};
38
+ __export(AutomationCapabilities_exports, {
39
+ ComputeRuntime: () => ComputeRuntime
40
+ });
41
+ import { Capability } from "@dxos/app-framework";
42
+ import { meta as meta2 } from "#meta";
43
+ var ComputeRuntime = Capability.make(`${meta2.id}.capability.compute-runtime`);
44
+
45
+ // src/types/AutomationEvents.ts
46
+ var AutomationEvents_exports = {};
47
+ __export(AutomationEvents_exports, {
48
+ ComputeRuntimeReady: () => ComputeRuntimeReady
49
+ });
50
+ import { ActivationEvent } from "@dxos/app-framework";
51
+ import { meta as meta3 } from "#meta";
52
+ var ComputeRuntimeReady = ActivationEvent.make(`${meta3.id}.event.compute-runtime-ready`);
53
+
54
+ // src/types/AutomationOperation.ts
55
+ var AutomationOperation_exports = {};
56
+ __export(AutomationOperation_exports, {
57
+ CreateTriggerFromTemplate: () => CreateTriggerFromTemplate
58
+ });
59
+ import * as Schema2 from "effect/Schema";
60
+ import { Capability as Capability2 } from "@dxos/app-framework";
61
+ import { Operation } from "@dxos/compute";
62
+ import { Database as Database2 } from "@dxos/echo";
63
+ import { meta as meta4 } from "#meta";
64
+ var AUTOMATION_OPERATION = `${meta4.id}.operation`;
65
+ var CreateTriggerFromTemplate = Operation.make({
66
+ meta: {
67
+ key: `${AUTOMATION_OPERATION}.create-trigger-from-template`,
68
+ name: "Create Trigger From Template"
69
+ },
70
+ services: [
71
+ Capability2.Service
72
+ ],
73
+ input: Schema2.Struct({
74
+ db: Database2.Database,
75
+ template: TriggerTemplate,
76
+ enabled: Schema2.optional(Schema2.Boolean),
77
+ scriptName: Schema2.optional(Schema2.String),
78
+ input: Schema2.optional(Schema2.Record({
79
+ key: Schema2.String,
80
+ value: Schema2.Any
81
+ }))
82
+ }),
83
+ output: Schema2.Void
84
+ });
85
+
86
+ export {
87
+ TriggerTemplate,
88
+ AutomationAction,
89
+ AutomationCapabilities_exports,
90
+ AutomationEvents_exports,
91
+ AutomationOperation_exports
92
+ };
93
+ //# sourceMappingURL=chunk-DSCOLDT5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/schema.ts", "../../../src/types/AutomationCapabilities.ts", "../../../src/types/AutomationEvents.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('queue'), queueDXN: 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 type * as ManagedRuntime from 'effect/ManagedRuntime';\n\nimport { type AiService, type OpaqueToolkit } from '@dxos/ai';\nimport { Capability } from '@dxos/app-framework';\nimport type { Blueprint, Credential, Operation, OperationRegistry, Process } from '@dxos/compute';\nimport { type Database, type Feed } from '@dxos/echo';\nimport type { QueueService } from '@dxos/functions';\nimport { AgentService } from '@dxos/functions-runtime';\nimport type { ProcessManager, TriggerDispatcher, TriggerStateStore } from '@dxos/functions-runtime';\nimport type { SpaceId } from '@dxos/keys';\n\nimport { meta } from '#meta';\n\n/**\n * Service stack for executing agents, functions, and triggers.\n */\nexport type ComputeServices =\n | TriggerDispatcher\n | TriggerStateStore\n | AiService.AiService\n | Database.Service\n | Feed.FeedService\n | QueueService\n | Credential.CredentialsService\n | Blueprint.RegistryService\n | AgentService.AgentService\n | Process.ProcessMonitorService\n | ProcessManager.Service\n | Operation.Service\n | OperationRegistry.Service\n | OpaqueToolkit.OpaqueToolkitProvider;\n\nexport type ComputeRuntime = ManagedRuntime.ManagedRuntime<ComputeServices, never>;\n\nexport interface ComputeRuntimeProvider {\n getRuntime(spaceId: SpaceId): ComputeRuntime;\n}\n\n/**\n * Runtime for executing agents, functions, and triggers.\n */\nexport const ComputeRuntime = Capability.make<ComputeRuntimeProvider>(`${meta.id}.capability.compute-runtime`);\n", "//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { ActivationEvent } from '@dxos/app-framework';\n\nimport { meta } from '#meta';\n\nexport const ComputeRuntimeReady = ActivationEvent.make(`${meta.id}.event.compute-runtime-ready`);\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 } from '@dxos/echo';\n\nimport { meta } from '#meta';\n\nimport { TriggerTemplate } from './schema';\n\nconst AUTOMATION_OPERATION = `${meta.id}.operation`;\n\nexport const CreateTriggerFromTemplate = Operation.make({\n meta: { key: `${AUTOMATION_OPERATION}.create-trigger-from-template`, name: 'Create Trigger From Template' },\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,OAAA;EAAUG,UAAiBC;AAAI,CAAA,CAAA;UAGrDC,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;;;;AASA,SAASgB,kBAAkB;AAQ3B,SAASC,QAAAA,aAAY;AA8Bd,IAAMC,iBAAiBF,WAAWG,KAA6B,GAAGF,MAAKG,EAAE,6BAA6B;;;AC/C7G;;;;AAMA,SAASC,uBAAuB;AAEhC,SAASC,QAAAA,aAAY;AAEd,IAAMC,sBAAsBF,gBAAgBG,KAAK,GAAGF,MAAKG,EAAE,8BAA8B;;;ACVhG;;;;AAMA,YAAYC,aAAY;AAExB,SAASC,cAAAA,mBAAkB;AAC3B,SAASC,iBAAiB;AAC1B,SAASC,YAAAA,iBAAgB;AAEzB,SAASC,QAAAA,aAAY;AAIrB,IAAMC,uBAAuB,GAAGC,MAAKC,EAAE;AAEhC,IAAMC,4BAA4BC,UAAUC,KAAK;EACtDJ,MAAM;IAAEK,KAAK,GAAGN,oBAAAA;IAAqDO,MAAM;EAA+B;EAC1GC,UAAU;IAACC,YAAWC;;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", "queueDXN", "Any", "AutomationAction", "CreateTriggerFromTemplate", "TaggedClass", "id", "input", "db", "template", "enabled", "optional", "Boolean", "scriptName", "Record", "key", "value", "output", "Void", "Capability", "meta", "ComputeRuntime", "make", "id", "ActivationEvent", "meta", "ComputeRuntimeReady", "make", "id", "Schema", "Capability", "Operation", "Database", "meta", "AUTOMATION_OPERATION", "meta", "id", "CreateTriggerFromTemplate", "Operation", "make", "key", "name", "services", "Capability", "Service", "input", "Struct", "db", "Database", "template", "TriggerTemplate", "enabled", "optional", "Boolean", "scriptName", "String", "Record", "value", "Any", "output", "Void"]
7
+ }
@@ -0,0 +1,285 @@
1
+ // src/components/TriggerEditor/TriggerEditor.tsx
2
+ import React3, { useCallback as useCallback3, useMemo as useMemo3 } from "react";
3
+ import { Operation, Script, Trigger as Trigger2 } from "@dxos/compute";
4
+ import { ComputeGraph } from "@dxos/conductor";
5
+ import { DXN, Entity, Feed, Filter as Filter2, Obj as Obj2, Ref as Ref2 } from "@dxos/echo";
6
+ import { useQuery } from "@dxos/react-client/echo";
7
+ import { Input } from "@dxos/react-ui";
8
+ import { QueryForm } from "@dxos/react-ui-components";
9
+ import { Form as Form2, FormFieldLabel, SelectField as SelectField2, omitId } from "@dxos/react-ui-form";
10
+
11
+ // src/components/TriggerEditor/FunctionInputEditor.tsx
12
+ import React, { useCallback, useMemo } from "react";
13
+ import { JsonSchema, Obj, Ref } from "@dxos/echo";
14
+ import { useOnTransition, useTranslation } from "@dxos/react-ui";
15
+ import { Form, useFormValues } from "@dxos/react-ui-form";
16
+ import { meta } from "#meta";
17
+ var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) => {
18
+ const { t } = useTranslation(meta.id);
19
+ const selectedFunctionValue = useFormValues(FunctionInputEditor.displayName, [
20
+ "function"
21
+ ]);
22
+ const selectedFunctionId = useMemo(() => {
23
+ if (Ref.isRef(selectedFunctionValue)) {
24
+ return selectedFunctionValue.dxn.toString().split("dxn:echo:@:").at(1);
25
+ }
26
+ }, [
27
+ selectedFunctionValue
28
+ ]);
29
+ const selectedFunction = useMemo(() => functions.find((fn) => fn.id === selectedFunctionId), [
30
+ functions,
31
+ selectedFunctionId
32
+ ]);
33
+ useOnTransition(
34
+ // Clear function parameter input when the function changes.
35
+ selectedFunctionValue,
36
+ (prevValue) => {
37
+ if (!Ref.isRef(prevValue) || !Ref.isRef(selectedFunctionValue)) {
38
+ return false;
39
+ }
40
+ return prevValue.dxn.toString() !== selectedFunctionValue.dxn.toString();
41
+ },
42
+ (currValue) => currValue !== void 0,
43
+ () => onValueChange(type, {})
44
+ );
45
+ const inputSchema = useMemo(() => selectedFunction?.inputSchema, [
46
+ selectedFunction
47
+ ]);
48
+ const effectSchema = useMemo(() => inputSchema ? JsonSchema.toEffectSchema(inputSchema) : void 0, [
49
+ inputSchema
50
+ ]);
51
+ const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;
52
+ const defaultValues = useMemo(() => {
53
+ const raw = getValue() ?? {};
54
+ return Obj.isObject(raw) ? {
55
+ ...Obj.getSnapshot(raw)
56
+ } : {
57
+ ...raw
58
+ };
59
+ }, [
60
+ getValue
61
+ ]);
62
+ const handleValuesChanged = useCallback((values) => {
63
+ onValueChange(type, values);
64
+ }, [
65
+ type,
66
+ onValueChange
67
+ ]);
68
+ if (selectedFunction === void 0 || effectSchema === void 0 || propertyCount === 0) {
69
+ return null;
70
+ }
71
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Form.Label, {
72
+ label: t("function-parameters.label"),
73
+ asChild: true
74
+ }), /* @__PURE__ */ React.createElement(Form.Root, {
75
+ key: selectedFunction.id,
76
+ schema: effectSchema,
77
+ defaultValues,
78
+ db,
79
+ onValuesChanged: handleValuesChanged
80
+ }, /* @__PURE__ */ React.createElement(Form.FieldSet, null)));
81
+ };
82
+ FunctionInputEditor.displayName = "AutomationTrigger.FunctionInputEditor";
83
+
84
+ // src/components/TriggerEditor/SpecSelector.tsx
85
+ import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
86
+ import { Trigger } from "@dxos/compute";
87
+ import { Filter, Query } from "@dxos/echo";
88
+ import { useTranslation as useTranslation2 } from "@dxos/react-ui";
89
+ import { SelectField, useFormFieldState } from "@dxos/react-ui-form";
90
+ import { meta as meta2 } from "#meta";
91
+ var SpecSelector = (props) => {
92
+ const { t } = useTranslation2(meta2.id);
93
+ const specProps = useFormFieldState(SpecSelector.displayName, [
94
+ "spec"
95
+ ]);
96
+ const handleTypeChange = useCallback2((_type, value) => {
97
+ const getDefaultTriggerSpec = (kind) => {
98
+ switch (kind) {
99
+ case "timer":
100
+ return Trigger.specTimer("");
101
+ case "subscription":
102
+ return Trigger.specSubscription(Query.select(Filter.nothing()));
103
+ case "queue":
104
+ return Trigger.specQueue("dxn:queue:default");
105
+ case "email":
106
+ return Trigger.specEmail();
107
+ case "webhook":
108
+ return Trigger.specWebhook();
109
+ default:
110
+ return void 0;
111
+ }
112
+ };
113
+ const defaultSpec = getDefaultTriggerSpec(value);
114
+ if (!defaultSpec) {
115
+ return;
116
+ }
117
+ specProps.onValueChange(props.type, defaultSpec);
118
+ }, [
119
+ props.type,
120
+ specProps
121
+ ]);
122
+ const kindLabels = {
123
+ timer: t("trigger-type.timer.label"),
124
+ webhook: t("trigger-type.webhook.label"),
125
+ websocket: t("trigger-type.websocket.label"),
126
+ subscription: t("trigger-type.subscription.label"),
127
+ email: t("trigger-type.email.label"),
128
+ queue: t("trigger-type.queue.label")
129
+ };
130
+ const options = useMemo2(() => Trigger.Kinds.map((kind) => ({
131
+ value: kind,
132
+ label: kindLabels[kind]
133
+ })), [
134
+ t
135
+ ]);
136
+ return /* @__PURE__ */ React2.createElement(SelectField, {
137
+ ...props,
138
+ options,
139
+ onValueChange: handleTypeChange
140
+ });
141
+ };
142
+ SpecSelector.displayName = "Form.SpecSelector";
143
+
144
+ // src/components/TriggerEditor/TriggerEditor.tsx
145
+ var TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }) => {
146
+ const fieldMap = useCustomInputs({
147
+ db,
148
+ types,
149
+ tags,
150
+ readonlySpec
151
+ });
152
+ const handleValuesChanged = useCallback3((newValues) => {
153
+ Obj2.update(trigger, (trigger2) => {
154
+ Object.assign(trigger2, newValues);
155
+ });
156
+ }, [
157
+ trigger
158
+ ]);
159
+ const triggerSchema = useMemo3(() => omitId(Trigger2.Trigger), []);
160
+ const defaultValues = useMemo3(() => {
161
+ const { id: _, ...values } = trigger;
162
+ return values;
163
+ }, [
164
+ trigger
165
+ ]);
166
+ return /* @__PURE__ */ React3.createElement(Form2.Root, {
167
+ ...formProps,
168
+ db,
169
+ schema: triggerSchema,
170
+ defaultValues,
171
+ fieldMap,
172
+ onValuesChanged: handleValuesChanged
173
+ }, /* @__PURE__ */ React3.createElement(Form2.Viewport, null, /* @__PURE__ */ React3.createElement(Form2.Content, null, /* @__PURE__ */ React3.createElement(Form2.FieldSet, null), /* @__PURE__ */ React3.createElement(Form2.Actions, null))));
174
+ };
175
+ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
176
+ const functions = useQuery(db, Filter2.type(Operation.PersistentOperation));
177
+ const workflows = useQuery(db, Filter2.type(ComputeGraph));
178
+ const scripts = useQuery(db, Filter2.type(Script.Script));
179
+ const feeds = useQuery(db, Filter2.type(Feed.Feed));
180
+ return useMemo3(() => ({
181
+ // Function selector.
182
+ ["function"]: (props) => {
183
+ const getValue = useCallback3(() => {
184
+ const formValue = props.getValue();
185
+ if (Ref2.isRef(formValue)) {
186
+ return formValue.dxn.toString();
187
+ }
188
+ return void 0;
189
+ }, [
190
+ props
191
+ ]);
192
+ const handleOnValueChange = useCallback3((_type, dxnString) => {
193
+ const dxn = DXN.parse(dxnString);
194
+ if (dxn) {
195
+ const ref = Ref2.fromDXN(dxn);
196
+ props.onValueChange(props.type, ref);
197
+ }
198
+ }, [
199
+ props.type,
200
+ props.onValueChange
201
+ ]);
202
+ return /* @__PURE__ */ React3.createElement(SelectField2, {
203
+ ...props,
204
+ getValue,
205
+ onValueChange: handleOnValueChange,
206
+ options: getWorkflowOptions(workflows).concat(getFunctionOptions(scripts, functions))
207
+ });
208
+ },
209
+ // Spec selector.
210
+ "spec.kind": (props) => /* @__PURE__ */ React3.createElement(SpecSelector, {
211
+ ...props,
212
+ readonly: readonlySpec
213
+ }),
214
+ // Queue feed selector with parent labels.
215
+ "spec.queue": (props) => /* @__PURE__ */ React3.createElement(SelectField2, {
216
+ ...props,
217
+ options: getFeedQueueOptions(feeds)
218
+ }),
219
+ // TODO(wittjosiah): Copied from ViewEditor.
220
+ // Query input editor.
221
+ "spec.query": (props) => {
222
+ const handleChange = useCallback3((query) => props.onValueChange(props.type, {
223
+ ast: query.ast
224
+ }), [
225
+ props.type,
226
+ props.onValueChange
227
+ ]);
228
+ return /* @__PURE__ */ React3.createElement(Input.Root, null, /* @__PURE__ */ React3.createElement(FormFieldLabel, {
229
+ label: props.label,
230
+ asChild: true
231
+ }), /* @__PURE__ */ React3.createElement(QueryForm, {
232
+ initialQuery: props.getValue().ast,
233
+ types,
234
+ tags,
235
+ onChange: handleChange
236
+ }));
237
+ },
238
+ // Function input editor.
239
+ input: (props) => /* @__PURE__ */ React3.createElement(FunctionInputEditor, {
240
+ ...props,
241
+ functions,
242
+ db
243
+ })
244
+ }), [
245
+ workflows,
246
+ scripts,
247
+ functions,
248
+ feeds,
249
+ readonlySpec
250
+ ]);
251
+ };
252
+ var getWorkflowOptions = (graphs) => {
253
+ return graphs.map((graph) => ({
254
+ label: `compute-${graph.id}`,
255
+ value: `dxn:echo:@:${graph.id}`
256
+ }));
257
+ };
258
+ var getFunctionOptions = (scripts, functions) => {
259
+ const getLabel = (fn) => scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;
260
+ return functions.map((fn) => ({
261
+ label: getLabel(fn),
262
+ value: `dxn:echo:@:${fn.id}`
263
+ }));
264
+ };
265
+ var getFeedQueueOptions = (feeds) => {
266
+ return feeds.flatMap((feed) => {
267
+ const queueDXN = Feed.getQueueDxn(feed);
268
+ if (!queueDXN) {
269
+ return [];
270
+ }
271
+ const parent = Obj2.getParent(feed);
272
+ const label = parent ? Entity.getLabel(parent) : Entity.getLabel(feed);
273
+ return [
274
+ {
275
+ label: label ?? feed.id,
276
+ value: queueDXN.toString()
277
+ }
278
+ ];
279
+ });
280
+ };
281
+
282
+ export {
283
+ TriggerEditor
284
+ };
285
+ //# sourceMappingURL=chunk-K3C5ZTZA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/TriggerEditor/TriggerEditor.tsx", "../../../src/components/TriggerEditor/FunctionInputEditor.tsx", "../../../src/components/TriggerEditor/SpecSelector.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Operation, Script, Trigger } from '@dxos/compute';\nimport { ComputeGraph } from '@dxos/conductor';\nimport { type Database, DXN, Entity, Feed, Filter, Obj, type Query, Ref } from '@dxos/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { QueryForm, type QueryFormProps } from '@dxos/react-ui-components';\nimport {\n type ExcludeId,\n Form,\n FormFieldLabel,\n type FormFieldMap,\n type FormRootProps,\n SelectField,\n omitId,\n} from '@dxos/react-ui-form';\n\nimport { FunctionInputEditor } from './FunctionInputEditor';\nimport { SpecSelector } from './SpecSelector';\n\ntype TriggerFormSchema = ExcludeId<typeof Trigger.Trigger>;\n\nexport type TriggerEditorProps = {\n db: Database.Database;\n trigger: Trigger.Trigger;\n // TODO(wittjosiah): This needs to apply to whole spec but currently only applies to spec.kind & spec.query.\n readonlySpec?: boolean;\n} &\n // prettier-ignore\n Pick<QueryFormProps, 'types' | 'tags'> &\n Pick<FormRootProps<TriggerFormSchema>, 'onSave' | 'onCancel'>;\n\nexport const TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }: TriggerEditorProps) => {\n const fieldMap = useCustomInputs({ db, types, tags, readonlySpec });\n\n const handleValuesChanged = useCallback(\n (newValues: Partial<TriggerFormSchema>) => {\n Obj.update(trigger, (trigger) => {\n Object.assign(trigger, newValues);\n });\n },\n [trigger],\n );\n\n const triggerSchema = useMemo(() => omitId(Trigger.Trigger), []);\n const defaultValues = useMemo(() => {\n const { id: _, ...values } = trigger;\n return values;\n }, [trigger]);\n\n return (\n <Form.Root<TriggerFormSchema>\n {...formProps}\n db={db}\n schema={triggerSchema}\n defaultValues={defaultValues}\n fieldMap={fieldMap}\n onValuesChanged={handleValuesChanged}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Actions />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n\ntype UseCustomInputsProps = {\n db: Database.Database;\n readonlySpec?: boolean;\n} & Pick<QueryFormProps, 'types' | 'tags'>;\n\nconst useCustomInputs = ({ db, readonlySpec, types, tags }: UseCustomInputsProps): FormFieldMap => {\n const functions = useQuery(db, Filter.type(Operation.PersistentOperation));\n const workflows = useQuery(db, Filter.type(ComputeGraph));\n const scripts = useQuery(db, Filter.type(Script.Script));\n const feeds = useQuery(db, Filter.type(Feed.Feed));\n\n return useMemo(\n (): FormFieldMap => ({\n // Function selector.\n ['function' satisfies keyof Trigger.Trigger]: (props) => {\n const getValue = useCallback(() => {\n const formValue = props.getValue();\n if (Ref.isRef(formValue)) {\n return formValue.dxn.toString() as string;\n }\n return undefined;\n }, [props]);\n\n const handleOnValueChange = useCallback(\n (_type: any, dxnString: string) => {\n const dxn = DXN.parse(dxnString);\n if (dxn) {\n const ref = Ref.fromDXN(dxn);\n props.onValueChange(props.type, ref);\n }\n },\n [props.type, props.onValueChange],\n );\n\n return (\n <SelectField\n {...props}\n getValue={getValue as any}\n onValueChange={handleOnValueChange}\n options={getWorkflowOptions(workflows).concat(getFunctionOptions(scripts, functions))}\n />\n );\n },\n\n // Spec selector.\n 'spec.kind': (props) => <SpecSelector {...props} readonly={readonlySpec} />,\n\n // Queue feed selector with parent labels.\n 'spec.queue': (props) => <SelectField {...props} options={getFeedQueueOptions(feeds)} />,\n\n // TODO(wittjosiah): Copied from ViewEditor.\n // Query input editor.\n 'spec.query': (props) => {\n const handleChange = useCallback(\n (query: Query.Any) => props.onValueChange(props.type, { ast: query.ast }),\n [props.type, props.onValueChange],\n );\n\n return (\n <Input.Root>\n <FormFieldLabel label={props.label} asChild />\n <QueryForm initialQuery={(props.getValue() as any).ast} types={types} tags={tags} onChange={handleChange} />\n </Input.Root>\n );\n },\n\n // Function input editor.\n input: (props) => <FunctionInputEditor {...props} functions={functions} db={db} />,\n }),\n [workflows, scripts, functions, feeds, readonlySpec],\n );\n};\n\nconst getWorkflowOptions = (graphs: ComputeGraph[]) => {\n return graphs.map((graph) => ({ label: `compute-${graph.id}`, value: `dxn:echo:@:${graph.id}` }));\n};\n\nconst getFunctionOptions = (scripts: Script.Script[], functions: Operation.PersistentOperation[]) => {\n const getLabel = (fn: Operation.PersistentOperation) =>\n scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;\n return functions.map((fn) => ({ label: getLabel(fn), value: `dxn:echo:@:${fn.id}` }));\n};\n\nconst getFeedQueueOptions = (feeds: Feed.Feed[]) => {\n return feeds.flatMap((feed) => {\n const queueDXN = Feed.getQueueDxn(feed);\n if (!queueDXN) {\n return [];\n }\n const parent = Obj.getParent(feed);\n const label = parent ? Entity.getLabel(parent) : Entity.getLabel(feed);\n return [{ label: label ?? feed.id, value: queueDXN.toString() }];\n });\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as SchemaAST from 'effect/SchemaAST';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { type Operation } from '@dxos/compute';\nimport { type Database, JsonSchema, Obj, Ref } from '@dxos/echo';\nimport { type JsonPath } from '@dxos/echo/internal';\nimport { useOnTransition, useTranslation } from '@dxos/react-ui';\nimport { Form, type FormFieldStateProps, type FormRootProps, useFormValues } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\n\nexport type FunctionInputEditorProps = {\n type: SchemaAST.AST;\n functions: Operation.PersistentOperation[];\n db?: Database.Database;\n} & FormFieldStateProps;\n\nexport const FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }: FunctionInputEditorProps) => {\n const { t } = useTranslation(meta.id);\n const selectedFunctionValue = useFormValues(FunctionInputEditor.displayName, ['function' as JsonPath]);\n const selectedFunctionId = useMemo(() => {\n if (Ref.isRef(selectedFunctionValue)) {\n return selectedFunctionValue.dxn.toString().split('dxn:echo:@:').at(1);\n }\n }, [selectedFunctionValue]);\n\n const selectedFunction = useMemo(\n () => functions.find((fn) => fn.id === selectedFunctionId),\n [functions, selectedFunctionId],\n );\n\n useOnTransition(\n // Clear function parameter input when the function changes.\n selectedFunctionValue,\n (prevValue) => {\n if (!Ref.isRef(prevValue) || !Ref.isRef(selectedFunctionValue)) {\n return false;\n }\n\n return prevValue.dxn.toString() !== selectedFunctionValue.dxn.toString();\n },\n (currValue) => currValue !== undefined,\n () => onValueChange(type, {}),\n );\n\n const inputSchema = useMemo(() => selectedFunction?.inputSchema, [selectedFunction]);\n const effectSchema = useMemo(() => (inputSchema ? JsonSchema.toEffectSchema(inputSchema) : undefined), [inputSchema]);\n const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;\n const defaultValues = useMemo(() => {\n const raw = getValue() ?? {};\n return Obj.isObject(raw) ? { ...Obj.getSnapshot(raw) } : { ...raw };\n }, [getValue]);\n\n const handleValuesChanged = useCallback<NonNullable<FormRootProps['onValuesChanged']>>(\n (values) => {\n onValueChange(type, values);\n },\n [type, onValueChange],\n );\n\n if (selectedFunction === undefined || effectSchema === undefined || propertyCount === 0) {\n return null;\n }\n\n return (\n <>\n <Form.Label label={t('function-parameters.label')} asChild />\n <Form.Root\n key={selectedFunction.id}\n schema={effectSchema}\n defaultValues={defaultValues}\n db={db}\n onValuesChanged={handleValuesChanged}\n >\n <Form.FieldSet />\n </Form.Root>\n </>\n );\n};\n\nFunctionInputEditor.displayName = 'AutomationTrigger.FunctionInputEditor';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Trigger } from '@dxos/compute';\nimport { Filter, Query } from '@dxos/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { type FormFieldComponentProps, SelectField, useFormFieldState } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\n\nexport type SpecSelectorProps = FormFieldComponentProps;\n\nexport const SpecSelector = (props: SpecSelectorProps) => {\n const { t } = useTranslation(meta.id);\n const specProps = useFormFieldState(SpecSelector.displayName, ['spec' satisfies keyof Trigger.Trigger]);\n\n const handleTypeChange = useCallback(\n (_type: any, value: string): Trigger.Spec | undefined => {\n const getDefaultTriggerSpec = (kind: string) => {\n switch (kind) {\n case 'timer':\n return Trigger.specTimer('');\n case 'subscription':\n return Trigger.specSubscription(Query.select(Filter.nothing()));\n case 'queue':\n return Trigger.specQueue('dxn:queue:default');\n case 'email':\n return Trigger.specEmail();\n case 'webhook':\n return Trigger.specWebhook();\n default:\n return undefined;\n }\n };\n\n const defaultSpec = getDefaultTriggerSpec(value);\n if (!defaultSpec) {\n return;\n }\n\n // Update the entire spec object, not just the `spec.kind`.\n specProps.onValueChange(props.type, defaultSpec);\n },\n [props.type, specProps],\n );\n\n const kindLabels: Record<string, string> = {\n timer: t('trigger-type.timer.label'),\n webhook: t('trigger-type.webhook.label'),\n websocket: t('trigger-type.websocket.label'),\n subscription: t('trigger-type.subscription.label'),\n email: t('trigger-type.email.label'),\n queue: t('trigger-type.queue.label'),\n };\n\n const options = useMemo(\n () =>\n Trigger.Kinds.map((kind) => ({\n value: kind,\n label: kindLabels[kind],\n })),\n [t],\n );\n\n return <SelectField {...props} options={options} onValueChange={handleTypeChange} />;\n};\n\nSpecSelector.displayName = 'Form.SpecSelector';\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "Operation", "Script", "Trigger", "ComputeGraph", "DXN", "Entity", "Feed", "Filter", "Obj", "Ref", "useQuery", "Input", "QueryForm", "Form", "FormFieldLabel", "SelectField", "omitId", "React", "useCallback", "useMemo", "JsonSchema", "Obj", "Ref", "useOnTransition", "useTranslation", "Form", "useFormValues", "meta", "FunctionInputEditor", "type", "functions", "db", "getValue", "onValueChange", "t", "id", "selectedFunctionValue", "displayName", "selectedFunctionId", "isRef", "dxn", "toString", "split", "at", "selectedFunction", "find", "fn", "prevValue", "currValue", "undefined", "inputSchema", "effectSchema", "toEffectSchema", "propertyCount", "properties", "Object", "keys", "length", "defaultValues", "raw", "isObject", "getSnapshot", "handleValuesChanged", "values", "Label", "label", "asChild", "Root", "key", "schema", "onValuesChanged", "FieldSet", "React", "useCallback", "useMemo", "Trigger", "Filter", "Query", "useTranslation", "SelectField", "useFormFieldState", "meta", "SpecSelector", "props", "t", "id", "specProps", "displayName", "handleTypeChange", "_type", "value", "getDefaultTriggerSpec", "kind", "specTimer", "specSubscription", "select", "nothing", "specQueue", "specEmail", "specWebhook", "undefined", "defaultSpec", "onValueChange", "type", "kindLabels", "timer", "webhook", "websocket", "subscription", "email", "queue", "options", "Kinds", "map", "label", "TriggerEditor", "db", "types", "tags", "readonlySpec", "trigger", "formProps", "fieldMap", "useCustomInputs", "handleValuesChanged", "useCallback", "newValues", "Obj", "update", "Object", "assign", "triggerSchema", "useMemo", "omitId", "Trigger", "defaultValues", "id", "_", "values", "React", "Form", "Root", "schema", "onValuesChanged", "Viewport", "Content", "FieldSet", "Actions", "functions", "useQuery", "Filter", "type", "Operation", "PersistentOperation", "workflows", "ComputeGraph", "scripts", "Script", "feeds", "Feed", "props", "getValue", "formValue", "Ref", "isRef", "dxn", "toString", "undefined", "handleOnValueChange", "_type", "dxnString", "DXN", "parse", "ref", "fromDXN", "onValueChange", "SelectField", "options", "getWorkflowOptions", "concat", "getFunctionOptions", "SpecSelector", "readonly", "getFeedQueueOptions", "handleChange", "query", "ast", "Input", "FormFieldLabel", "label", "asChild", "QueryForm", "initialQuery", "onChange", "input", "FunctionInputEditor", "graphs", "map", "graph", "value", "getLabel", "fn", "find", "s", "source", "target", "name", "flatMap", "feed", "queueDXN", "getQueueDxn", "parent", "getParent", "Entity"]
7
+ }
@@ -0,0 +1,8 @@
1
+ // src/operations/index.ts
2
+ import { OperationHandlerSet } from "@dxos/compute";
3
+ var AutomationOperationHandlerSet = OperationHandlerSet.lazy(() => import("./create-trigger-from-template-7K3OYOHQ.mjs"));
4
+
5
+ export {
6
+ AutomationOperationHandlerSet
7
+ };
8
+ //# sourceMappingURL=chunk-M3TIHFXN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { OperationHandlerSet } from '@dxos/compute';\n\nexport const AutomationOperationHandlerSet = OperationHandlerSet.lazy(() => import('./create-trigger-from-template'));\n"],
5
+ "mappings": ";AAIA,SAASA,2BAA2B;AAE7B,IAAMC,gCAAgCD,oBAAoBE,KAAK,MAAM,OAAO,6CAAA,CAAA;",
6
+ "names": ["OperationHandlerSet", "AutomationOperationHandlerSet", "lazy"]
7
+ }
@@ -0,0 +1,12 @@
1
+ // src/components/index.ts
2
+ import { lazy } from "react";
3
+ var AutomationPanel = lazy(() => import("./AutomationPanel-HI63JQ2X.mjs"));
4
+ var FunctionsPanel = lazy(() => import("./FunctionsPanel-SVRKRUXZ.mjs"));
5
+ var FunctionsRegistry = lazy(() => import("./FunctionsRegistry-7ITCFJCW.mjs"));
6
+
7
+ export {
8
+ AutomationPanel,
9
+ FunctionsPanel,
10
+ FunctionsRegistry
11
+ };
12
+ //# sourceMappingURL=chunk-YV7TKOVL.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './TriggerEditor';\n\nexport const AutomationPanel = lazy(() => import('./AutomationPanel'));\nexport const FunctionsPanel = lazy(() => import('./FunctionsPanel'));\nexport const FunctionsRegistry = lazy(() => import('./FunctionsRegistry'));\n"],
5
+ "mappings": ";AAIA,SAASA,YAAY;AAId,IAAMC,kBAAkBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AAC1C,IAAME,iBAAiBF,KAAK,MAAM,OAAO,+BAAA,CAAA;AACzC,IAAMG,oBAAoBH,KAAK,MAAM,OAAO,kCAAA,CAAA;",
6
+ "names": ["lazy", "AutomationPanel", "FunctionsPanel", "FunctionsRegistry"]
7
+ }
@@ -0,0 +1,16 @@
1
+ import {
2
+ AutomationPanel,
3
+ FunctionsPanel,
4
+ FunctionsRegistry
5
+ } from "../chunk-YV7TKOVL.mjs";
6
+ import {
7
+ TriggerEditor
8
+ } from "../chunk-K3C5ZTZA.mjs";
9
+ import "../chunk-J5LGTIGS.mjs";
10
+ export {
11
+ AutomationPanel,
12
+ FunctionsPanel,
13
+ FunctionsRegistry,
14
+ TriggerEditor
15
+ };
16
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }