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