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