@dxos/plugin-automation 0.8.4-main.c85a9c8dae → 0.8.4-main.d05673bc65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/lib/browser/AutomationPanel-IGLIQY2N.mjs +11 -0
  2. package/dist/lib/browser/{AutomationSettings-TJYG77L6.mjs → AutomationSettings-EDO3N5WI.mjs} +7 -7
  3. package/dist/lib/browser/{AutomationSettings-TJYG77L6.mjs.map → AutomationSettings-EDO3N5WI.mjs.map} +1 -1
  4. package/dist/lib/browser/{FunctionsContainer-XHEQSNNO.mjs → FunctionsContainer-R4ZMYSFJ.mjs} +4 -4
  5. package/dist/lib/browser/{FunctionsPanel-5WPUZGRB.mjs → FunctionsPanel-NMA4RYJL.mjs} +3 -3
  6. package/dist/lib/browser/{FunctionsRegistry-XRXIZRLL.mjs → FunctionsRegistry-TMKAEG5E.mjs} +3 -3
  7. package/dist/lib/browser/TriggerSettings-56AIMOEC.mjs +11 -0
  8. package/dist/lib/browser/{app-graph-builder-HLARI3VW.mjs → app-graph-builder-74ILZP25.mjs} +16 -18
  9. package/dist/lib/browser/app-graph-builder-74ILZP25.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-U55ZXRYM.mjs → chunk-75XLBFAG.mjs} +4 -5
  11. package/dist/lib/browser/chunk-75XLBFAG.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-ZNI2CGQP.mjs → chunk-BWEKRPFJ.mjs} +29 -5
  13. package/dist/lib/browser/chunk-BWEKRPFJ.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-PZNBEKO5.mjs → chunk-EL64ZPPN.mjs} +2 -2
  15. package/dist/lib/browser/{chunk-PZNBEKO5.mjs.map → chunk-EL64ZPPN.mjs.map} +1 -1
  16. package/dist/lib/browser/{chunk-XFXYU645.mjs → chunk-FUVAC5EC.mjs} +2 -2
  17. package/dist/lib/browser/{chunk-WOBCY2FQ.mjs → chunk-GVHAETEQ.mjs} +7 -7
  18. package/dist/lib/browser/{chunk-WOBCY2FQ.mjs.map → chunk-GVHAETEQ.mjs.map} +1 -1
  19. package/dist/lib/browser/{chunk-SEG5OCGB.mjs → chunk-H2MV4XE6.mjs} +3 -3
  20. package/dist/lib/browser/{chunk-4EY2KMCM.mjs → chunk-O23LHDEX.mjs} +4 -7
  21. package/dist/lib/browser/chunk-O23LHDEX.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-QPG3AKFX.mjs → chunk-OAZ2JYXV.mjs} +2 -2
  23. package/dist/lib/browser/{chunk-3P4R5WNC.mjs → chunk-Z7F7X2C5.mjs} +2 -2
  24. package/dist/lib/browser/cli/index.mjs +21 -14
  25. package/dist/lib/browser/cli/index.mjs.map +3 -3
  26. package/dist/lib/browser/{compute-runtime-L2RVWXY2.mjs → compute-runtime-F3UMRKCL.mjs} +3 -3
  27. package/dist/lib/browser/hooks/index.mjs +3 -3
  28. package/dist/lib/browser/index.mjs +11 -11
  29. package/dist/lib/browser/meta.json +1 -1
  30. package/dist/lib/browser/{operation-resolver-2U6ZQVXR.mjs → operation-resolver-IRC2DZU7.mjs} +8 -7
  31. package/dist/lib/browser/operation-resolver-IRC2DZU7.mjs.map +7 -0
  32. package/dist/lib/browser/{react-surface-U6FAYV42.mjs → react-surface-5MFPVWIN.mjs} +14 -18
  33. package/dist/lib/browser/react-surface-5MFPVWIN.mjs.map +7 -0
  34. package/dist/lib/browser/types/index.mjs +2 -2
  35. package/dist/lib/node-esm/{AutomationPanel-F7MPUR7U.mjs → AutomationPanel-O2BCQA7P.mjs} +4 -4
  36. package/dist/lib/node-esm/{AutomationSettings-5AHJMILI.mjs → AutomationSettings-LJNRQUX7.mjs} +7 -7
  37. package/dist/lib/node-esm/{AutomationSettings-5AHJMILI.mjs.map → AutomationSettings-LJNRQUX7.mjs.map} +1 -1
  38. package/dist/lib/node-esm/{FunctionsContainer-U5UVRKVT.mjs → FunctionsContainer-GYRPQZM7.mjs} +4 -4
  39. package/dist/lib/node-esm/{FunctionsPanel-UFL5LT2R.mjs → FunctionsPanel-DCXXLSVP.mjs} +3 -3
  40. package/dist/lib/node-esm/{FunctionsRegistry-574OBZ5T.mjs → FunctionsRegistry-7WCHC64E.mjs} +3 -3
  41. package/dist/lib/node-esm/FunctionsRegistry-7WCHC64E.mjs.map +7 -0
  42. package/dist/lib/node-esm/TriggerSettings-ONY5ZUKW.mjs +12 -0
  43. package/dist/lib/node-esm/TriggerSettings-ONY5ZUKW.mjs.map +7 -0
  44. package/dist/lib/node-esm/{app-graph-builder-Z2TMQHVX.mjs → app-graph-builder-VDXPOWCH.mjs} +16 -18
  45. package/dist/lib/node-esm/app-graph-builder-VDXPOWCH.mjs.map +7 -0
  46. package/dist/lib/node-esm/{chunk-QNPYY3XZ.mjs → chunk-2UF55HSG.mjs} +2 -2
  47. package/dist/lib/node-esm/{chunk-4DK33JDH.mjs → chunk-6B4WZRVH.mjs} +7 -7
  48. package/dist/lib/node-esm/{chunk-4DK33JDH.mjs.map → chunk-6B4WZRVH.mjs.map} +1 -1
  49. package/dist/lib/node-esm/{chunk-RTEXGGBX.mjs → chunk-6JVB3IHW.mjs} +2 -2
  50. package/dist/lib/node-esm/{chunk-7AIKTEAX.mjs → chunk-FPXVLTEY.mjs} +4 -7
  51. package/dist/lib/node-esm/chunk-FPXVLTEY.mjs.map +7 -0
  52. package/dist/lib/node-esm/{chunk-34HGM46Z.mjs → chunk-JVUE5PMI.mjs} +3 -3
  53. package/dist/lib/node-esm/{chunk-GXFQR3KI.mjs → chunk-K7T2MVB7.mjs} +4 -5
  54. package/dist/lib/node-esm/chunk-K7T2MVB7.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-CMZ4NKSK.mjs → chunk-Q5JSKD6Z.mjs} +29 -5
  56. package/dist/lib/node-esm/chunk-Q5JSKD6Z.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-2X564LII.mjs → chunk-R5YEWJCG.mjs} +2 -2
  58. package/dist/lib/node-esm/{chunk-5FXNN3MV.mjs → chunk-WC5AT7B3.mjs} +2 -2
  59. package/dist/lib/node-esm/{chunk-5FXNN3MV.mjs.map → chunk-WC5AT7B3.mjs.map} +1 -1
  60. package/dist/lib/node-esm/cli/index.mjs +21 -14
  61. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  62. package/dist/lib/node-esm/{compute-runtime-XD6A5Q7Q.mjs → compute-runtime-AMFVJMF2.mjs} +3 -3
  63. package/dist/lib/node-esm/hooks/index.mjs +3 -3
  64. package/dist/lib/node-esm/index.mjs +11 -11
  65. package/dist/lib/node-esm/meta.json +1 -1
  66. package/dist/lib/node-esm/{operation-resolver-XWJGBHJZ.mjs → operation-resolver-CBLQHL4N.mjs} +8 -7
  67. package/dist/lib/node-esm/operation-resolver-CBLQHL4N.mjs.map +7 -0
  68. package/dist/lib/node-esm/{react-surface-BVNHCWQ7.mjs → react-surface-Z74AHU4T.mjs} +14 -18
  69. package/dist/lib/node-esm/react-surface-Z74AHU4T.mjs.map +7 -0
  70. package/dist/lib/node-esm/types/index.mjs +2 -2
  71. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  73. package/dist/types/src/cli/commands/trigger/util.d.ts +2 -2
  74. package/dist/types/src/cli/commands/trigger/util.d.ts.map +1 -1
  75. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  76. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  77. package/dist/types/src/containers/TriggerSettings/index.d.ts +2 -2
  78. package/dist/types/src/containers/TriggerSettings/index.d.ts.map +1 -1
  79. package/dist/types/src/types/schema.d.ts +3 -3
  80. package/dist/types/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +39 -39
  82. package/src/capabilities/app-graph-builder/app-graph-builder.ts +14 -13
  83. package/src/capabilities/operation-resolver/operation-resolver.ts +4 -4
  84. package/src/capabilities/react-surface/react-surface.tsx +9 -13
  85. package/src/cli/commands/trigger/util.ts +27 -18
  86. package/src/components/AutomationPanel/AutomationPanel.tsx +1 -2
  87. package/src/components/FunctionsPanel/FunctionsPanel.tsx +2 -2
  88. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +2 -2
  89. package/src/components/TriggerEditor/TriggerEditor.tsx +21 -4
  90. package/src/containers/AutomationSettings/AutomationSettings.tsx +1 -1
  91. package/src/containers/TriggerSettings/index.ts +2 -3
  92. package/src/meta.ts +1 -1
  93. package/src/types/capabilities.ts +1 -1
  94. package/src/types/events.ts +1 -1
  95. package/src/types/schema.ts +3 -3
  96. package/dist/lib/browser/AutomationPanel-EHRSV2DL.mjs +0 -11
  97. package/dist/lib/browser/TriggerSettings-HUQT53SV.mjs +0 -13
  98. package/dist/lib/browser/TriggerSettings-HUQT53SV.mjs.map +0 -7
  99. package/dist/lib/browser/app-graph-builder-HLARI3VW.mjs.map +0 -7
  100. package/dist/lib/browser/chunk-4EY2KMCM.mjs.map +0 -7
  101. package/dist/lib/browser/chunk-U55ZXRYM.mjs.map +0 -7
  102. package/dist/lib/browser/chunk-ZNI2CGQP.mjs.map +0 -7
  103. package/dist/lib/browser/operation-resolver-2U6ZQVXR.mjs.map +0 -7
  104. package/dist/lib/browser/react-surface-U6FAYV42.mjs.map +0 -7
  105. package/dist/lib/node-esm/TriggerSettings-RDIJHUKK.mjs +0 -14
  106. package/dist/lib/node-esm/TriggerSettings-RDIJHUKK.mjs.map +0 -7
  107. package/dist/lib/node-esm/app-graph-builder-Z2TMQHVX.mjs.map +0 -7
  108. package/dist/lib/node-esm/chunk-7AIKTEAX.mjs.map +0 -7
  109. package/dist/lib/node-esm/chunk-CMZ4NKSK.mjs.map +0 -7
  110. package/dist/lib/node-esm/chunk-GXFQR3KI.mjs.map +0 -7
  111. package/dist/lib/node-esm/operation-resolver-XWJGBHJZ.mjs.map +0 -7
  112. package/dist/lib/node-esm/react-surface-BVNHCWQ7.mjs.map +0 -7
  113. /package/dist/lib/browser/{AutomationPanel-EHRSV2DL.mjs.map → AutomationPanel-IGLIQY2N.mjs.map} +0 -0
  114. /package/dist/lib/browser/{FunctionsContainer-XHEQSNNO.mjs.map → FunctionsContainer-R4ZMYSFJ.mjs.map} +0 -0
  115. /package/dist/lib/browser/{FunctionsPanel-5WPUZGRB.mjs.map → FunctionsPanel-NMA4RYJL.mjs.map} +0 -0
  116. /package/dist/lib/browser/{FunctionsRegistry-XRXIZRLL.mjs.map → FunctionsRegistry-TMKAEG5E.mjs.map} +0 -0
  117. /package/dist/lib/{node-esm/AutomationPanel-F7MPUR7U.mjs.map → browser/TriggerSettings-56AIMOEC.mjs.map} +0 -0
  118. /package/dist/lib/browser/{chunk-XFXYU645.mjs.map → chunk-FUVAC5EC.mjs.map} +0 -0
  119. /package/dist/lib/browser/{chunk-SEG5OCGB.mjs.map → chunk-H2MV4XE6.mjs.map} +0 -0
  120. /package/dist/lib/browser/{chunk-QPG3AKFX.mjs.map → chunk-OAZ2JYXV.mjs.map} +0 -0
  121. /package/dist/lib/browser/{chunk-3P4R5WNC.mjs.map → chunk-Z7F7X2C5.mjs.map} +0 -0
  122. /package/dist/lib/browser/{compute-runtime-L2RVWXY2.mjs.map → compute-runtime-F3UMRKCL.mjs.map} +0 -0
  123. /package/dist/lib/node-esm/{FunctionsPanel-UFL5LT2R.mjs.map → AutomationPanel-O2BCQA7P.mjs.map} +0 -0
  124. /package/dist/lib/node-esm/{FunctionsContainer-U5UVRKVT.mjs.map → FunctionsContainer-GYRPQZM7.mjs.map} +0 -0
  125. /package/dist/lib/node-esm/{FunctionsRegistry-574OBZ5T.mjs.map → FunctionsPanel-DCXXLSVP.mjs.map} +0 -0
  126. /package/dist/lib/node-esm/{chunk-QNPYY3XZ.mjs.map → chunk-2UF55HSG.mjs.map} +0 -0
  127. /package/dist/lib/node-esm/{chunk-RTEXGGBX.mjs.map → chunk-6JVB3IHW.mjs.map} +0 -0
  128. /package/dist/lib/node-esm/{chunk-34HGM46Z.mjs.map → chunk-JVUE5PMI.mjs.map} +0 -0
  129. /package/dist/lib/node-esm/{chunk-2X564LII.mjs.map → chunk-R5YEWJCG.mjs.map} +0 -0
  130. /package/dist/lib/node-esm/{compute-runtime-XD6A5Q7Q.mjs.map → compute-runtime-AMFVJMF2.mjs.map} +0 -0
@@ -0,0 +1,11 @@
1
+ import {
2
+ AutomationPanel,
3
+ AutomationPanel_default
4
+ } from "./chunk-O23LHDEX.mjs";
5
+ import "./chunk-BWEKRPFJ.mjs";
6
+ import "./chunk-EL64ZPPN.mjs";
7
+ export {
8
+ AutomationPanel,
9
+ AutomationPanel_default as default
10
+ };
11
+ //# sourceMappingURL=AutomationPanel-IGLIQY2N.mjs.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  TriggersSettings
3
- } from "./chunk-SEG5OCGB.mjs";
4
- import "./chunk-QPG3AKFX.mjs";
5
- import "./chunk-WOBCY2FQ.mjs";
3
+ } from "./chunk-H2MV4XE6.mjs";
4
+ import "./chunk-OAZ2JYXV.mjs";
5
+ import "./chunk-GVHAETEQ.mjs";
6
6
  import {
7
7
  AutomationPanel
8
- } from "./chunk-4EY2KMCM.mjs";
9
- import "./chunk-ZNI2CGQP.mjs";
8
+ } from "./chunk-O23LHDEX.mjs";
9
+ import "./chunk-BWEKRPFJ.mjs";
10
10
  import {
11
11
  meta
12
- } from "./chunk-PZNBEKO5.mjs";
12
+ } from "./chunk-EL64ZPPN.mjs";
13
13
 
14
14
  // src/containers/AutomationSettings/AutomationSettings.tsx
15
15
  import React from "react";
@@ -34,4 +34,4 @@ var AutomationSettings_default = AutomationSettings;
34
34
  export {
35
35
  AutomationSettings_default as default
36
36
  };
37
- //# sourceMappingURL=AutomationSettings-TJYG77L6.mjs.map
37
+ //# sourceMappingURL=AutomationSettings-EDO3N5WI.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/containers/AutomationSettings/AutomationSettings.tsx", "../../../src/containers/AutomationSettings/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\n\nimport { AutomationPanel, type AutomationPanelProps } from '../../components/AutomationPanel';\nimport { meta } from '../../meta';\nimport { TriggersSettings } from '../TriggerSettings/TriggerSettings';\n\nexport const AutomationSettings = (props: AutomationPanelProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <Settings.Root>\n <Settings.Section\n title={t('automation verbose label', { ns: meta.id })}\n description={t('automation description', { ns: meta.id })}\n >\n <AutomationPanel {...props} />\n <TriggersSettings db={props.space.db} />\n </Settings.Section>\n </Settings.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { AutomationSettings } from './AutomationSettings';\n\nexport default AutomationSettings;\n"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\n\nimport { AutomationPanel, type AutomationPanelProps } from '../../components/AutomationPanel';\nimport { meta } from '../../meta';\nimport { TriggersSettings } from '../TriggerSettings';\n\nexport const AutomationSettings = (props: AutomationPanelProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <Settings.Root>\n <Settings.Section\n title={t('automation verbose label', { ns: meta.id })}\n description={t('automation description', { ns: meta.id })}\n >\n <AutomationPanel {...props} />\n <TriggersSettings db={props.space.db} />\n </Settings.Section>\n </Settings.Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { AutomationSettings } from './AutomationSettings';\n\nexport default AutomationSettings;\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,sBAAsB;AAC/B,SAASC,gBAAgB;AAMlB,IAAMC,qBAAqB,CAACC,UAAAA;AACjC,QAAM,EAAEC,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AACpC,SACE,sBAAA,cAACC,SAASC,MAAI,MACZ,sBAAA,cAACD,SAASE,SAAO;IACfC,OAAOP,EAAE,4BAA4B;MAAEQ,IAAIN,KAAKC;IAAG,CAAA;IACnDM,aAAaT,EAAE,0BAA0B;MAAEQ,IAAIN,KAAKC;IAAG,CAAA;KAEvD,sBAAA,cAACO,iBAAoBX,KAAAA,GACrB,sBAAA,cAACY,kBAAAA;IAAiBC,IAAIb,MAAMc,MAAMD;;AAI1C;;;ACpBA,IAAA,6BAAeE;",
6
6
  "names": ["React", "useTranslation", "Settings", "AutomationSettings", "props", "t", "useTranslation", "meta", "id", "Settings", "Root", "Section", "title", "ns", "description", "AutomationPanel", "TriggersSettings", "db", "space", "AutomationSettings"]
7
7
  }
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  FunctionsPanel
3
- } from "./chunk-U55ZXRYM.mjs";
3
+ } from "./chunk-75XLBFAG.mjs";
4
4
  import {
5
5
  FunctionsRegistry
6
- } from "./chunk-XFXYU645.mjs";
6
+ } from "./chunk-FUVAC5EC.mjs";
7
7
  import {
8
8
  meta
9
- } from "./chunk-PZNBEKO5.mjs";
9
+ } from "./chunk-EL64ZPPN.mjs";
10
10
 
11
11
  // src/containers/FunctionsContainer/FunctionsContainer.tsx
12
12
  import React from "react";
@@ -40,4 +40,4 @@ var FunctionsContainer_default = FunctionsContainer;
40
40
  export {
41
41
  FunctionsContainer_default as default
42
42
  };
43
- //# sourceMappingURL=FunctionsContainer-XHEQSNNO.mjs.map
43
+ //# sourceMappingURL=FunctionsContainer-R4ZMYSFJ.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  FunctionsPanel,
3
3
  FunctionsPanel_default
4
- } from "./chunk-U55ZXRYM.mjs";
5
- import "./chunk-PZNBEKO5.mjs";
4
+ } from "./chunk-75XLBFAG.mjs";
5
+ import "./chunk-EL64ZPPN.mjs";
6
6
  export {
7
7
  FunctionsPanel,
8
8
  FunctionsPanel_default as default
9
9
  };
10
- //# sourceMappingURL=FunctionsPanel-5WPUZGRB.mjs.map
10
+ //# sourceMappingURL=FunctionsPanel-NMA4RYJL.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  FunctionsRegistry,
3
3
  FunctionsRegistry_default
4
- } from "./chunk-XFXYU645.mjs";
5
- import "./chunk-PZNBEKO5.mjs";
4
+ } from "./chunk-FUVAC5EC.mjs";
5
+ import "./chunk-EL64ZPPN.mjs";
6
6
  export {
7
7
  FunctionsRegistry,
8
8
  FunctionsRegistry_default as default
9
9
  };
10
- //# sourceMappingURL=FunctionsRegistry-XRXIZRLL.mjs.map
10
+ //# sourceMappingURL=FunctionsRegistry-TMKAEG5E.mjs.map
@@ -0,0 +1,11 @@
1
+ import {
2
+ TriggersSettings
3
+ } from "./chunk-H2MV4XE6.mjs";
4
+ import "./chunk-OAZ2JYXV.mjs";
5
+ import "./chunk-GVHAETEQ.mjs";
6
+ import "./chunk-EL64ZPPN.mjs";
7
+ export {
8
+ TriggersSettings,
9
+ TriggersSettings as default
10
+ };
11
+ //# sourceMappingURL=TriggerSettings-56AIMOEC.mjs.map
@@ -1,25 +1,26 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-PZNBEKO5.mjs";
3
+ } from "./chunk-EL64ZPPN.mjs";
4
4
 
5
5
  // src/capabilities/app-graph-builder/app-graph-builder.ts
6
6
  import * as Effect from "effect/Effect";
7
7
  import { Capability } from "@dxos/app-framework";
8
8
  import { AppCapabilities } from "@dxos/app-toolkit";
9
9
  import { Script } from "@dxos/functions";
10
- import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
10
+ import { COMPANION_PREFIX } from "@dxos/app-toolkit";
11
+ import { PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
11
12
  import { GraphBuilder, NodeMatcher } from "@dxos/plugin-graph";
12
13
  import { meta as spaceMeta } from "@dxos/plugin-space";
13
14
  var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function* () {
14
15
  const extensions = yield* Effect.all([
15
16
  GraphBuilder.createExtension({
16
- id: `${meta.id}/space-settings-automation`,
17
- match: NodeMatcher.whenNodeType(`${spaceMeta.id}/settings`),
17
+ id: `${meta.id}.space-settings-automation`,
18
+ match: NodeMatcher.whenNodeType(`${spaceMeta.id}.settings`),
18
19
  connector: (node) => Effect.succeed([
19
20
  {
20
- id: `automation-${node.id}`,
21
- type: `${meta.id}/space-settings-automation`,
22
- data: `${meta.id}/space-settings-automation`,
21
+ id: `${meta.id}.automations`,
22
+ type: `${meta.id}.space-settings-automation`,
23
+ data: `${meta.id}.space-settings-automation`,
23
24
  properties: {
24
25
  label: [
25
26
  "automation panel label",
@@ -33,13 +34,13 @@ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function
33
34
  ])
34
35
  }),
35
36
  GraphBuilder.createExtension({
36
- id: `${meta.id}/space-settings-functions`,
37
- match: NodeMatcher.whenNodeType(`${spaceMeta.id}/settings`),
37
+ id: `${meta.id}.space-settings-functions`,
38
+ match: NodeMatcher.whenNodeType(`${spaceMeta.id}.settings`),
38
39
  connector: (node) => Effect.succeed([
39
40
  {
40
- id: `functions-${node.id}`,
41
- type: `${meta.id}/space-settings-functions`,
42
- data: `${meta.id}/space-settings-functions`,
41
+ id: `${meta.id}.functions`,
42
+ type: `${meta.id}.space-settings-functions`,
43
+ data: `${meta.id}.space-settings-functions`,
43
44
  properties: {
44
45
  label: [
45
46
  "functions panel label",
@@ -53,14 +54,11 @@ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function
53
54
  ])
54
55
  }),
55
56
  GraphBuilder.createTypeExtension({
56
- id: `${meta.id}/script-companion`,
57
+ id: `${meta.id}.script-companion`,
57
58
  type: Script.Script,
58
59
  connector: (script) => Effect.succeed([
59
60
  {
60
- id: [
61
- script.id,
62
- "automation"
63
- ].join(ATTENDABLE_PATH_SEPARATOR),
61
+ id: `${COMPANION_PREFIX}automation`,
64
62
  type: PLANK_COMPANION_TYPE,
65
63
  data: "automation",
66
64
  properties: {
@@ -82,4 +80,4 @@ var app_graph_builder_default = Capability.makeModule(Effect.fnUntraced(function
82
80
  export {
83
81
  app_graph_builder_default as default
84
82
  };
85
- //# sourceMappingURL=app-graph-builder-HLARI3VW.mjs.map
83
+ //# sourceMappingURL=app-graph-builder-74ILZP25.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Script } from '@dxos/functions';\nimport { COMPANION_PREFIX } from '@dxos/app-toolkit';\nimport { PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { GraphBuilder, NodeMatcher } from '@dxos/plugin-graph';\nimport { meta as spaceMeta } from '@dxos/plugin-space';\n\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const extensions = yield* Effect.all([\n GraphBuilder.createExtension({\n id: `${meta.id}.space-settings-automation`,\n match: NodeMatcher.whenNodeType(`${spaceMeta.id}.settings`),\n connector: (node) =>\n Effect.succeed([\n {\n id: `${meta.id}.automations`,\n type: `${meta.id}.space-settings-automation`,\n data: `${meta.id}.space-settings-automation`,\n properties: {\n label: ['automation panel label', { ns: meta.id }],\n icon: 'ph--lightning--regular',\n },\n },\n ]),\n }),\n GraphBuilder.createExtension({\n id: `${meta.id}.space-settings-functions`,\n match: NodeMatcher.whenNodeType(`${spaceMeta.id}.settings`),\n connector: (node) =>\n Effect.succeed([\n {\n id: `${meta.id}.functions`,\n type: `${meta.id}.space-settings-functions`,\n data: `${meta.id}.space-settings-functions`,\n properties: {\n label: ['functions panel label', { ns: meta.id }],\n icon: 'ph--function--regular',\n },\n },\n ]),\n }),\n GraphBuilder.createTypeExtension({\n id: `${meta.id}.script-companion`,\n type: Script.Script,\n connector: (script) =>\n Effect.succeed([\n {\n id: `${COMPANION_PREFIX}automation`,\n type: PLANK_COMPANION_TYPE,\n data: 'automation',\n properties: {\n label: ['script automation label', { ns: meta.id }],\n icon: 'ph--lightning--regular',\n disposition: 'hidden',\n },\n },\n ]),\n }),\n ]);\n\n return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);\n }),\n);\n"],
5
+ "mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,cAAc;AACvB,SAASC,wBAAwB;AACjC,SAASC,4BAA4B;AACrC,SAASC,cAAcC,mBAAmB;AAC1C,SAASC,QAAQC,iBAAiB;AAIlC,IAAA,4BAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,aAAa,OAAcC,WAAI;IACnCC,aAAaC,gBAAgB;MAC3BC,IAAI,GAAGC,KAAKD,EAAE;MACdE,OAAOC,YAAYC,aAAa,GAAGC,UAAUL,EAAE,WAAW;MAC1DM,WAAW,CAACC,SACHC,eAAQ;QACb;UACER,IAAI,GAAGC,KAAKD,EAAE;UACdS,MAAM,GAAGR,KAAKD,EAAE;UAChBU,MAAM,GAAGT,KAAKD,EAAE;UAChBW,YAAY;YACVC,OAAO;cAAC;cAA0B;gBAAEC,IAAIZ,KAAKD;cAAG;;YAChDc,MAAM;UACR;QACF;OACD;IACL,CAAA;IACAhB,aAAaC,gBAAgB;MAC3BC,IAAI,GAAGC,KAAKD,EAAE;MACdE,OAAOC,YAAYC,aAAa,GAAGC,UAAUL,EAAE,WAAW;MAC1DM,WAAW,CAACC,SACHC,eAAQ;QACb;UACER,IAAI,GAAGC,KAAKD,EAAE;UACdS,MAAM,GAAGR,KAAKD,EAAE;UAChBU,MAAM,GAAGT,KAAKD,EAAE;UAChBW,YAAY;YACVC,OAAO;cAAC;cAAyB;gBAAEC,IAAIZ,KAAKD;cAAG;;YAC/Cc,MAAM;UACR;QACF;OACD;IACL,CAAA;IACAhB,aAAaiB,oBAAoB;MAC/Bf,IAAI,GAAGC,KAAKD,EAAE;MACdS,MAAMO,OAAOA;MACbV,WAAW,CAACW,WACHT,eAAQ;QACb;UACER,IAAI,GAAGkB,gBAAAA;UACPT,MAAMU;UACNT,MAAM;UACNC,YAAY;YACVC,OAAO;cAAC;cAA2B;gBAAEC,IAAIZ,KAAKD;cAAG;;YACjDc,MAAM;YACNM,aAAa;UACf;QACF;OACD;IACL,CAAA;GACD;AAED,SAAO3B,WAAW4B,YAAYC,gBAAgBC,iBAAiB3B,UAAAA;AACjE,CAAA,CAAA;",
6
+ "names": ["Effect", "Capability", "AppCapabilities", "Script", "COMPANION_PREFIX", "PLANK_COMPANION_TYPE", "GraphBuilder", "NodeMatcher", "meta", "spaceMeta", "Capability", "makeModule", "fnUntraced", "extensions", "all", "GraphBuilder", "createExtension", "id", "meta", "match", "NodeMatcher", "whenNodeType", "spaceMeta", "connector", "node", "succeed", "type", "data", "properties", "label", "ns", "icon", "createTypeExtension", "Script", "script", "COMPANION_PREFIX", "PLANK_COMPANION_TYPE", "disposition", "contributes", "AppCapabilities", "AppGraphBuilder"]
7
+ }
@@ -1,13 +1,12 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-PZNBEKO5.mjs";
3
+ } from "./chunk-EL64ZPPN.mjs";
4
4
 
5
5
  // src/components/FunctionsPanel/FunctionsPanel.tsx
6
6
  import * as Schema from "effect/Schema";
7
7
  import React, { useCallback, useMemo } from "react";
8
8
  import { useOperationInvoker } from "@dxos/app-framework/ui";
9
- import { LayoutOperation } from "@dxos/app-toolkit";
10
- import { Obj } from "@dxos/echo";
9
+ import { LayoutOperation, getObjectPathFromObject } from "@dxos/app-toolkit";
11
10
  import { Function, Script } from "@dxos/functions";
12
11
  import { SpaceOperation } from "@dxos/plugin-space/types";
13
12
  import { Filter, useQuery } from "@dxos/react-client/echo";
@@ -44,7 +43,7 @@ var FunctionsPanel = ({ space }) => {
44
43
  if (script) {
45
44
  void invokePromise(LayoutOperation.Open, {
46
45
  subject: [
47
- Obj.getDXN(script).toString()
46
+ getObjectPathFromObject(script)
48
47
  ]
49
48
  });
50
49
  }
@@ -95,4 +94,4 @@ export {
95
94
  FunctionsPanel,
96
95
  FunctionsPanel_default
97
96
  };
98
- //# sourceMappingURL=chunk-U55ZXRYM.mjs.map
97
+ //# sourceMappingURL=chunk-75XLBFAG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/FunctionsPanel/FunctionsPanel.tsx", "../../../src/components/FunctionsPanel/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation, getObjectPathFromObject } from '@dxos/app-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { Function, Script } from '@dxos/functions';\nimport { SpaceOperation } from '@dxos/plugin-space/types';\nimport { Filter, type Space, useQuery } from '@dxos/react-client/echo';\nimport { Button, IconButton, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\nimport { List } from '@dxos/react-ui-list';\nimport { ghostHover, mx } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\nexport type FunctionsPanelProps = {\n space: Space;\n};\n\nexport const FunctionsPanel = ({ space }: FunctionsPanelProps) => {\n const { t } = useTranslation(meta.id);\n const functions = useQuery(space.db, Filter.type(Function.Function));\n const scripts = useQuery(space.db, Filter.type(Script.Script));\n const { invokePromise } = useOperationInvoker();\n\n const functionToScriptMap = useMemo(\n () =>\n functions.reduce(\n (map, func) => {\n const scriptId = func.source?.target?.id;\n if (scriptId) {\n const script = scripts.find((s) => s.id === scriptId);\n if (script) {\n map[func.id] = script;\n }\n }\n return map;\n },\n {} as Record<string, Script.Script>,\n ),\n [functions, scripts],\n );\n\n const getScriptName = useCallback(\n (func: Function.Function) => {\n const script = functionToScriptMap[func.id];\n return script?.name;\n },\n [functionToScriptMap],\n );\n\n const handleGoToScript = useCallback(\n (func: Function.Function) => {\n const script = functionToScriptMap[func.id];\n if (script) {\n void invokePromise(LayoutOperation.Open, { subject: [getObjectPathFromObject(script)] });\n }\n },\n [functionToScriptMap, invokePromise],\n );\n\n const handleDelete = useCallback(\n (func: Function.Function) => invokePromise(SpaceOperation.RemoveObjects, { objects: [func] }),\n [invokePromise],\n );\n\n return (\n <Settings.Container>\n {functions.length > 0 && (\n <List.Root<Function.Function> items={functions} isItem={Schema.is(Function.Function)} getId={(func) => func.id}>\n {({ items }) => (\n <div role='list' className='flex flex-col w-full'>\n {items?.map((func) => (\n <List.Item<Function.Function>\n key={func.id}\n item={func}\n classNames={mx('grid grid-cols-[1fr_auto] min-h-[2.5rem] min-h-[3rem] px-2 items-center', ghostHover)}\n >\n <div className='flex flex-col truncate'>\n <List.ItemTitle classNames='truncate'>{func.name}</List.ItemTitle>\n {getScriptName(func) && (\n <div className='text-xs text-description truncate'>{getScriptName(func)}</div>\n )}\n </div>\n {functionToScriptMap[func.id] && (\n <Button onClick={() => handleGoToScript(func)}>{t('go to function source button label')}</Button>\n )}\n <IconButton\n iconOnly\n icon='ph--trash--regular'\n label={t('delete function button label')}\n onClick={() => handleDelete(func)}\n />\n </List.Item>\n ))}\n </div>\n )}\n </List.Root>\n )}\n\n {functions.length === 0 && <div className='text-center py-4 text-description'>{t('no functions found')}</div>}\n </Settings.Container>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FunctionsPanel } from './FunctionsPanel';\n\nexport * from './FunctionsPanel';\nexport default FunctionsPanel;\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "React", "useCallback", "useMemo", "useOperationInvoker", "LayoutOperation", "getObjectPathFromObject", "Function", "Script", "SpaceOperation", "Filter", "useQuery", "Button", "IconButton", "useTranslation", "Settings", "List", "ghostHover", "mx", "FunctionsPanel", "space", "t", "useTranslation", "meta", "id", "functions", "useQuery", "db", "Filter", "type", "Function", "scripts", "Script", "invokePromise", "useOperationInvoker", "functionToScriptMap", "useMemo", "reduce", "map", "func", "scriptId", "source", "target", "script", "find", "s", "getScriptName", "useCallback", "name", "handleGoToScript", "LayoutOperation", "Open", "subject", "getObjectPathFromObject", "handleDelete", "SpaceOperation", "RemoveObjects", "objects", "Settings", "Container", "length", "List", "Root", "items", "isItem", "is", "getId", "div", "role", "className", "Item", "key", "item", "classNames", "mx", "ghostHover", "ItemTitle", "Button", "onClick", "IconButton", "iconOnly", "icon", "label", "FunctionsPanel"]
7
+ }
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-PZNBEKO5.mjs";
3
+ } from "./chunk-EL64ZPPN.mjs";
4
4
 
5
5
  // src/components/TriggerEditor/TriggerEditor.tsx
6
6
  import React3, { useCallback as useCallback3, useMemo as useMemo3 } from "react";
7
7
  import { ComputeGraph } from "@dxos/conductor";
8
- import { DXN, Obj as Obj2 } from "@dxos/echo";
8
+ import { DXN, Entity, Feed, Obj as Obj2 } from "@dxos/echo";
9
9
  import { Function, Script, Trigger as Trigger2 } from "@dxos/functions";
10
10
  import { Filter as Filter2, Ref as Ref2, useQuery } from "@dxos/react-client/echo";
11
11
  import { Input } from "@dxos/react-ui";
@@ -165,6 +165,7 @@ var TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }) =
165
165
  }, [
166
166
  trigger
167
167
  ]);
168
+ const triggerSchema = useMemo3(() => omitId(Trigger2.Trigger), []);
168
169
  const defaultValues = useMemo3(() => {
169
170
  const { id: _, ...values } = trigger;
170
171
  return values;
@@ -173,9 +174,9 @@ var TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }) =
173
174
  ]);
174
175
  return /* @__PURE__ */ React3.createElement(Form2.Root, {
175
176
  ...formProps,
176
- schema: omitId(Trigger2.Trigger),
177
- defaultValues,
178
177
  db,
178
+ schema: triggerSchema,
179
+ defaultValues,
179
180
  fieldMap,
180
181
  onValuesChanged: handleValuesChanged
181
182
  }, /* @__PURE__ */ React3.createElement(Form2.Viewport, null, /* @__PURE__ */ React3.createElement(Form2.Content, null, /* @__PURE__ */ React3.createElement(Form2.FieldSet, null), /* @__PURE__ */ React3.createElement(Form2.Actions, null))));
@@ -184,6 +185,7 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
184
185
  const functions = useQuery(db, Filter2.type(Function.Function));
185
186
  const workflows = useQuery(db, Filter2.type(ComputeGraph));
186
187
  const scripts = useQuery(db, Filter2.type(Script.Script));
188
+ const feeds = useQuery(db, Filter2.type(Feed.Feed));
187
189
  return useMemo3(() => ({
188
190
  // Function selector.
189
191
  ["function"]: (props) => {
@@ -218,6 +220,11 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
218
220
  ...props,
219
221
  readonly: readonlySpec
220
222
  }),
223
+ // Queue feed selector with parent labels.
224
+ "spec.queue": (props) => /* @__PURE__ */ React3.createElement(SelectField2, {
225
+ ...props,
226
+ options: getFeedQueueOptions(feeds)
227
+ }),
221
228
  // TODO(wittjosiah): Copied from ViewEditor.
222
229
  // Query input editor.
223
230
  "spec.query": (props) => {
@@ -247,6 +254,7 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
247
254
  workflows,
248
255
  scripts,
249
256
  functions,
257
+ feeds,
250
258
  readonlySpec
251
259
  ]);
252
260
  };
@@ -263,8 +271,24 @@ var getFunctionOptions = (scripts, functions) => {
263
271
  value: `dxn:echo:@:${fn.id}`
264
272
  }));
265
273
  };
274
+ var getFeedQueueOptions = (feeds) => {
275
+ return feeds.flatMap((feed) => {
276
+ const queueDxn = Feed.getQueueDxn(feed);
277
+ if (!queueDxn) {
278
+ return [];
279
+ }
280
+ const parent = Obj2.getParent(feed);
281
+ const label = parent ? Entity.getLabel(parent) : Entity.getLabel(feed);
282
+ return [
283
+ {
284
+ label: label ?? feed.id,
285
+ value: queueDxn.toString()
286
+ }
287
+ ];
288
+ });
289
+ };
266
290
 
267
291
  export {
268
292
  TriggerEditor
269
293
  };
270
- //# sourceMappingURL=chunk-ZNI2CGQP.mjs.map
294
+ //# sourceMappingURL=chunk-BWEKRPFJ.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/TriggerEditor/TriggerEditor.tsx", "../../../src/components/TriggerEditor/FunctionInputEditor.tsx", "../../../src/components/TriggerEditor/SpecSelector.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { DXN, type Database, Entity, Feed, Obj, type Query } from '@dxos/echo';\nimport { Function, Script, Trigger } from '@dxos/functions';\nimport { Filter, Ref, useQuery } from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { QueryForm, type QueryFormProps } from '@dxos/react-ui-components';\nimport {\n type ExcludeId,\n Form,\n FormFieldLabel,\n type FormFieldMap,\n type FormRootProps,\n SelectField,\n omitId,\n} from '@dxos/react-ui-form';\n\nimport { FunctionInputEditor } from './FunctionInputEditor';\nimport { SpecSelector } from './SpecSelector';\n\ntype TriggerFormSchema = ExcludeId<typeof Trigger.Trigger>;\n\nexport type TriggerEditorProps = {\n db: Database.Database;\n trigger: Trigger.Trigger;\n // TODO(wittjosiah): This needs to apply to whole spec but currently only applies to spec.kind & spec.query.\n readonlySpec?: boolean;\n} &\n // prettier-ignore\n Pick<QueryFormProps, 'types' | 'tags'> &\n Pick<FormRootProps<TriggerFormSchema>, 'onSave' | 'onCancel'>;\n\nexport const TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }: TriggerEditorProps) => {\n const fieldMap = useCustomInputs({\n db,\n types,\n tags,\n readonlySpec,\n });\n\n const handleValuesChanged = useCallback(\n (newValues: Partial<TriggerFormSchema>) => {\n Obj.change(trigger, (t) => {\n Object.assign(t, newValues);\n });\n },\n [trigger],\n );\n\n const triggerSchema = useMemo(() => omitId(Trigger.Trigger), []);\n const defaultValues = useMemo(() => {\n const { id: _, ...values } = trigger;\n return values;\n }, [trigger]);\n\n return (\n <Form.Root<TriggerFormSchema>\n {...formProps}\n db={db}\n schema={triggerSchema}\n defaultValues={defaultValues}\n fieldMap={fieldMap}\n onValuesChanged={handleValuesChanged}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Actions />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n\ntype UseCustomInputsProps = {\n db: Database.Database;\n readonlySpec?: boolean;\n} & Pick<QueryFormProps, 'types' | 'tags'>;\n\nconst useCustomInputs = ({ db, readonlySpec, types, tags }: UseCustomInputsProps): FormFieldMap => {\n const functions = useQuery(db, Filter.type(Function.Function));\n const workflows = useQuery(db, Filter.type(ComputeGraph));\n const scripts = useQuery(db, Filter.type(Script.Script));\n const feeds = useQuery(db, Filter.type(Feed.Feed));\n\n return useMemo(\n (): FormFieldMap => ({\n // Function selector.\n ['function' satisfies keyof Trigger.Trigger]: (props) => {\n const getValue = useCallback(() => {\n const formValue = props.getValue();\n if (Ref.isRef(formValue)) {\n return formValue.dxn.toString() as string;\n }\n return undefined;\n }, [props]);\n\n const handleOnValueChange = useCallback(\n (_type: any, dxnString: string) => {\n const dxn = DXN.parse(dxnString);\n if (dxn) {\n const ref = Ref.fromDXN(dxn);\n props.onValueChange(props.type, ref);\n }\n },\n [props.type, props.onValueChange],\n );\n\n return (\n <SelectField\n {...props}\n getValue={getValue as any}\n onValueChange={handleOnValueChange}\n options={getWorkflowOptions(workflows).concat(getFunctionOptions(scripts, functions))}\n />\n );\n },\n\n // Spec selector.\n 'spec.kind': (props) => <SpecSelector {...props} readonly={readonlySpec} />,\n\n // Queue feed selector with parent labels.\n 'spec.queue': (props) => <SelectField {...props} options={getFeedQueueOptions(feeds)} />,\n\n // TODO(wittjosiah): Copied from ViewEditor.\n // Query input editor.\n 'spec.query': (props) => {\n const handleChange = useCallback(\n (query: Query.Any) => props.onValueChange(props.type, { ast: query.ast }),\n [props.type, props.onValueChange],\n );\n\n return (\n <Input.Root>\n <FormFieldLabel label={props.label} asChild />\n <QueryForm initialQuery={(props.getValue() as any).ast} types={types} tags={tags} onChange={handleChange} />\n </Input.Root>\n );\n },\n\n // Function input editor.\n input: (props) => <FunctionInputEditor {...props} functions={functions} db={db} />,\n }),\n [workflows, scripts, functions, feeds, readonlySpec],\n );\n};\n\nconst getWorkflowOptions = (graphs: ComputeGraph[]) => {\n return graphs.map((graph) => ({ label: `compute-${graph.id}`, value: `dxn:echo:@:${graph.id}` }));\n};\n\nconst getFunctionOptions = (scripts: Script.Script[], functions: Function.Function[]) => {\n const getLabel = (fn: Function.Function) => scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;\n return functions.map((fn) => ({ label: getLabel(fn), value: `dxn:echo:@:${fn.id}` }));\n};\n\nconst getFeedQueueOptions = (feeds: Feed.Feed[]) => {\n return feeds.flatMap((feed) => {\n const queueDxn = Feed.getQueueDxn(feed);\n if (!queueDxn) {\n return [];\n }\n const parent = Obj.getParent(feed);\n const label = parent ? Entity.getLabel(parent) : Entity.getLabel(feed);\n return [{ label: label ?? feed.id, value: queueDxn.toString() }];\n });\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as SchemaAST from 'effect/SchemaAST';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { type Database, JsonSchema, Obj, Ref } from '@dxos/echo';\nimport { type JsonPath } from '@dxos/echo/internal';\nimport { type Function } from '@dxos/functions';\nimport { useOnTransition, useTranslation } from '@dxos/react-ui';\nimport { Form, type FormFieldStateProps, type FormRootProps, useFormValues } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\n\nexport type FunctionInputEditorProps = {\n type: SchemaAST.AST;\n functions: Function.Function[];\n db?: Database.Database;\n} & FormFieldStateProps;\n\nexport const FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }: FunctionInputEditorProps) => {\n const { t } = useTranslation(meta.id);\n const selectedFunctionValue = useFormValues(FunctionInputEditor.displayName, ['function' as JsonPath]);\n const selectedFunctionId = useMemo(() => {\n if (Ref.isRef(selectedFunctionValue)) {\n return selectedFunctionValue.dxn.toString().split('dxn:echo:@:').at(1);\n }\n }, [selectedFunctionValue]);\n\n const selectedFunction = useMemo(\n () => functions.find((fn) => fn.id === selectedFunctionId),\n [functions, selectedFunctionId],\n );\n\n useOnTransition(\n // Clear function parameter input when the function changes.\n selectedFunctionValue,\n (prevValue) => {\n if (!Ref.isRef(prevValue) || !Ref.isRef(selectedFunctionValue)) {\n return false;\n }\n\n return prevValue.dxn.toString() !== selectedFunctionValue.dxn.toString();\n },\n (currValue) => currValue !== undefined,\n () => onValueChange(type, {}),\n );\n\n const inputSchema = useMemo(() => selectedFunction?.inputSchema, [selectedFunction]);\n const effectSchema = useMemo(() => (inputSchema ? JsonSchema.toEffectSchema(inputSchema) : undefined), [inputSchema]);\n const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;\n const defaultValues = useMemo(() => {\n const raw = getValue() ?? {};\n return Obj.isObject(raw) ? { ...Obj.getSnapshot(raw) } : { ...raw };\n }, [getValue]);\n\n const handleValuesChanged = useCallback<NonNullable<FormRootProps['onValuesChanged']>>(\n (values) => {\n onValueChange(type, values);\n },\n [type, onValueChange],\n );\n\n if (selectedFunction === undefined || effectSchema === undefined || propertyCount === 0) {\n return null;\n }\n\n return (\n <>\n <Form.Label label={t('function parameters label')} asChild />\n <Form.Root\n key={selectedFunction.id}\n schema={effectSchema}\n defaultValues={defaultValues}\n db={db}\n onValuesChanged={handleValuesChanged}\n >\n <Form.FieldSet />\n </Form.Root>\n </>\n );\n};\n\nFunctionInputEditor.displayName = 'AutomationTrigger.FunctionInputEditor';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Filter, Query } from '@dxos/echo';\nimport { Trigger } from '@dxos/functions';\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 { kind: 'timer', cron: '' };\n case 'subscription':\n return {\n kind: 'subscription',\n query: {\n ast: Query.select(Filter.nothing()).ast,\n },\n };\n case 'queue':\n return { kind: 'queue', queue: 'dxn:queue:default' };\n case 'email':\n return { kind: 'email' };\n case 'webhook':\n return { kind: 'webhook' };\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 options = useMemo(\n () =>\n Trigger.Kinds.map((kind) => ({\n value: kind,\n label: t(`trigger type ${kind}`),\n })),\n [t],\n );\n\n return <SelectField {...props} options={options} onValueChange={handleTypeChange} />;\n};\n\nSpecSelector.displayName = 'Form.SpecSelector';\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "ComputeGraph", "DXN", "Entity", "Feed", "Obj", "Function", "Script", "Trigger", "Filter", "Ref", "useQuery", "Input", "QueryForm", "Form", "FormFieldLabel", "SelectField", "omitId", "React", "useCallback", "useMemo", "JsonSchema", "Obj", "Ref", "useOnTransition", "useTranslation", "Form", "useFormValues", "FunctionInputEditor", "type", "functions", "db", "getValue", "onValueChange", "t", "useTranslation", "meta", "id", "selectedFunctionValue", "useFormValues", "displayName", "selectedFunctionId", "useMemo", "Ref", "isRef", "dxn", "toString", "split", "at", "selectedFunction", "find", "fn", "useOnTransition", "prevValue", "currValue", "undefined", "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", "Filter", "Query", "Trigger", "useTranslation", "SelectField", "useFormFieldState", "SpecSelector", "props", "t", "useTranslation", "meta", "id", "specProps", "useFormFieldState", "displayName", "handleTypeChange", "useCallback", "_type", "value", "getDefaultTriggerSpec", "kind", "cron", "query", "ast", "Query", "select", "Filter", "nothing", "queue", "undefined", "defaultSpec", "onValueChange", "type", "options", "useMemo", "Trigger", "Kinds", "map", "label", "React", "SelectField", "TriggerEditor", "db", "types", "tags", "readonlySpec", "trigger", "formProps", "fieldMap", "useCustomInputs", "handleValuesChanged", "useCallback", "newValues", "Obj", "change", "t", "Object", "assign", "triggerSchema", "useMemo", "omitId", "Trigger", "defaultValues", "id", "_", "values", "React", "Form", "Root", "schema", "onValuesChanged", "Viewport", "Content", "FieldSet", "Actions", "functions", "useQuery", "Filter", "type", "Function", "workflows", "ComputeGraph", "scripts", "Script", "feeds", "Feed", "props", "getValue", "formValue", "Ref", "isRef", "dxn", "toString", "undefined", "handleOnValueChange", "_type", "dxnString", "DXN", "parse", "ref", "fromDXN", "onValueChange", "SelectField", "options", "getWorkflowOptions", "concat", "getFunctionOptions", "SpecSelector", "readonly", "getFeedQueueOptions", "handleChange", "query", "ast", "Input", "FormFieldLabel", "label", "asChild", "QueryForm", "initialQuery", "onChange", "input", "FunctionInputEditor", "graphs", "map", "graph", "value", "getLabel", "fn", "find", "s", "source", "target", "name", "flatMap", "feed", "queueDxn", "getQueueDxn", "parent", "getParent", "Entity"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  // src/meta.ts
2
2
  import { trim } from "@dxos/util";
3
3
  var meta = {
4
- id: "dxos.org/plugin/automation",
4
+ id: "org.dxos.plugin.automation",
5
5
  name: "Automation",
6
6
  description: trim`
7
7
  Workflow automation engine that triggers custom actions based on object events and conditions.
@@ -14,4 +14,4 @@ var meta = {
14
14
  export {
15
15
  meta
16
16
  };
17
- //# sourceMappingURL=chunk-PZNBEKO5.mjs.map
17
+ //# sourceMappingURL=chunk-EL64ZPPN.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/automation',\n name: 'Automation',\n description: trim`\n Workflow automation engine that triggers custom actions based on object events and conditions.\n Create automated pipelines that respond to changes and streamline repetitive tasks.\n `,\n icon: 'ph--robot--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-automation',\n};\n"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.automation',\n name: 'Automation',\n description: trim`\n Workflow automation engine that triggers custom actions based on object events and conditions.\n Create automated pipelines that respond to changes and streamline repetitive tasks.\n `,\n icon: 'ph--robot--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-automation',\n};\n"],
5
5
  "mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,QAAQ;AACV;",
6
6
  "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "source"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-PZNBEKO5.mjs";
3
+ } from "./chunk-EL64ZPPN.mjs";
4
4
 
5
5
  // src/components/FunctionsRegistry/FunctionsRegistry.tsx
6
6
  import * as Schema from "effect/Schema";
@@ -93,4 +93,4 @@ export {
93
93
  FunctionsRegistry,
94
94
  FunctionsRegistry_default
95
95
  };
96
- //# sourceMappingURL=chunk-XFXYU645.mjs.map
96
+ //# sourceMappingURL=chunk-FUVAC5EC.mjs.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-PZNBEKO5.mjs";
3
+ } from "./chunk-EL64ZPPN.mjs";
4
4
 
5
5
  // src/types/capabilities.ts
6
6
  import { Capability } from "@dxos/app-framework";
7
7
  (function(AutomationCapabilities2) {
8
- AutomationCapabilities2.ComputeRuntime = Capability.make(`${meta.id}/capability/compute-runtime`);
8
+ AutomationCapabilities2.ComputeRuntime = Capability.make(`${meta.id}.capability.compute-runtime`);
9
9
  })(AutomationCapabilities || (AutomationCapabilities = {}));
10
10
  var AutomationCapabilities;
11
11
 
12
12
  // src/types/events.ts
13
13
  import { ActivationEvent } from "@dxos/app-framework";
14
14
  (function(AutomationEvents2) {
15
- AutomationEvents2.ComputeRuntimeReady = ActivationEvent.make(`${meta.id}/event/compute-runtime-ready`);
15
+ AutomationEvents2.ComputeRuntimeReady = ActivationEvent.make(`${meta.id}.event.compute-runtime-ready`);
16
16
  })(AutomationEvents || (AutomationEvents = {}));
17
17
  var AutomationEvents;
18
18
 
@@ -29,7 +29,7 @@ var TriggerTemplate = Schema.Union(Schema.Struct({
29
29
  queueDXN: Schema.Any
30
30
  }));
31
31
  (function(AutomationAction2) {
32
- class CreateTriggerFromTemplate extends Schema.TaggedClass()(`${meta.id}/action/create-trigger-from-template`, {
32
+ class CreateTriggerFromTemplate extends Schema.TaggedClass()(`${meta.id}.action.create-trigger-from-template`, {
33
33
  input: Schema.Struct({
34
34
  db: Database.Database,
35
35
  template: TriggerTemplate,
@@ -46,11 +46,11 @@ var TriggerTemplate = Schema.Union(Schema.Struct({
46
46
  }
47
47
  AutomationAction2.CreateTriggerFromTemplate = CreateTriggerFromTemplate;
48
48
  })(AutomationAction || (AutomationAction = {}));
49
- var AUTOMATION_OPERATION = `${meta.id}/operation`;
49
+ var AUTOMATION_OPERATION = `${meta.id}.operation`;
50
50
  (function(AutomationOperation2) {
51
51
  AutomationOperation2.CreateTriggerFromTemplate = Operation.make({
52
52
  meta: {
53
- key: `${AUTOMATION_OPERATION}/create-trigger-from-template`,
53
+ key: `${AUTOMATION_OPERATION}.create-trigger-from-template`,
54
54
  name: "Create Trigger From Template"
55
55
  },
56
56
  services: [
@@ -80,4 +80,4 @@ export {
80
80
  AutomationAction,
81
81
  AutomationOperation
82
82
  };
83
- //# sourceMappingURL=chunk-WOBCY2FQ.mjs.map
83
+ //# sourceMappingURL=chunk-GVHAETEQ.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/capabilities.ts", "../../../src/types/events.ts", "../../../src/types/schema.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as ManagedRuntime from 'effect/ManagedRuntime';\n\nimport { type AiService, type ToolExecutionService, type ToolResolverService } from '@dxos/ai';\nimport { Capability } from '@dxos/app-framework';\nimport { type Database, type Feed } from '@dxos/echo';\nimport type { CredentialsService, FunctionInvocationService, QueueService, TracingService } from '@dxos/functions';\nimport type { TriggerDispatcher, TriggerStateStore } from '@dxos/functions-runtime';\nimport type { SpaceId } from '@dxos/keys';\n\nimport { meta } from '../meta';\n\nexport namespace AutomationCapabilities {\n /**\n * Service stack for executing agents, functions, and triggers.\n */\n export type ComputeServices =\n | TriggerDispatcher\n | TriggerStateStore\n | AiService.AiService\n | Database.Service\n | Feed.Service\n | QueueService\n | CredentialsService\n | FunctionInvocationService\n | TracingService\n // TODO(dmaretskyi): Those should be provided at AI-chat call site.\n | ToolResolverService\n | ToolExecutionService;\n\n export type ComputeRuntime = ManagedRuntime.ManagedRuntime<AutomationCapabilities.ComputeServices, never>;\n export interface ComputeRuntimeProvider {\n getRuntime(spaceId: SpaceId): ComputeRuntime;\n }\n\n /**\n * Runtime for executing agents, functions, and triggers.\n */\n export const ComputeRuntime = Capability.make<ComputeRuntimeProvider>(`${meta.id}/capability/compute-runtime`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvent } from '@dxos/app-framework';\n\nimport { meta } from '../meta';\n\nexport namespace AutomationEvents {\n export const ComputeRuntimeReady = ActivationEvent.make(`${meta.id}/event/compute-runtime-ready`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Database } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\n\nimport { meta } from '../meta';\n\nconst TriggerTemplate = Schema.Union(\n Schema.Struct({ type: Schema.Literal('timer'), cron: Schema.String }),\n Schema.Struct({ type: Schema.Literal('queue'), queueDXN: Schema.Any }),\n);\n\nexport namespace AutomationAction {\n export class CreateTriggerFromTemplate extends Schema.TaggedClass<CreateTriggerFromTemplate>()(\n `${meta.id}/action/create-trigger-from-template`,\n {\n input: Schema.Struct({\n db: Database.Database,\n template: TriggerTemplate,\n enabled: Schema.optional(Schema.Boolean),\n // TODO(wittjosiah): Improve how this lookup is done.\n scriptName: Schema.optional(Schema.String),\n input: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n output: Schema.Void,\n },\n ) {}\n}\n\nconst AUTOMATION_OPERATION = `${meta.id}/operation`;\n\nexport namespace AutomationOperation {\n export const CreateTriggerFromTemplate = Operation.make({\n meta: { key: `${AUTOMATION_OPERATION}/create-trigger-from-template`, name: 'Create Trigger From Template' },\n services: [Capability.Service],\n schema: {\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 });\n}\n"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as ManagedRuntime from 'effect/ManagedRuntime';\n\nimport { type AiService, type ToolExecutionService, type ToolResolverService } from '@dxos/ai';\nimport { Capability } from '@dxos/app-framework';\nimport { type Database, type Feed } from '@dxos/echo';\nimport type { CredentialsService, FunctionInvocationService, QueueService, TracingService } from '@dxos/functions';\nimport type { TriggerDispatcher, TriggerStateStore } from '@dxos/functions-runtime';\nimport type { SpaceId } from '@dxos/keys';\n\nimport { meta } from '../meta';\n\nexport namespace AutomationCapabilities {\n /**\n * Service stack for executing agents, functions, and triggers.\n */\n export type ComputeServices =\n | TriggerDispatcher\n | TriggerStateStore\n | AiService.AiService\n | Database.Service\n | Feed.Service\n | QueueService\n | CredentialsService\n | FunctionInvocationService\n | TracingService\n // TODO(dmaretskyi): Those should be provided at AI-chat call site.\n | ToolResolverService\n | ToolExecutionService;\n\n export type ComputeRuntime = ManagedRuntime.ManagedRuntime<AutomationCapabilities.ComputeServices, never>;\n export interface ComputeRuntimeProvider {\n getRuntime(spaceId: SpaceId): ComputeRuntime;\n }\n\n /**\n * Runtime for executing agents, functions, and triggers.\n */\n export const ComputeRuntime = Capability.make<ComputeRuntimeProvider>(`${meta.id}.capability.compute-runtime`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { ActivationEvent } from '@dxos/app-framework';\n\nimport { meta } from '../meta';\n\nexport namespace AutomationEvents {\n export const ComputeRuntimeReady = ActivationEvent.make(`${meta.id}.event.compute-runtime-ready`);\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Capability } from '@dxos/app-framework';\nimport { Database } from '@dxos/echo';\nimport { Operation } from '@dxos/operation';\n\nimport { meta } from '../meta';\n\nconst TriggerTemplate = Schema.Union(\n Schema.Struct({ type: Schema.Literal('timer'), cron: Schema.String }),\n Schema.Struct({ type: Schema.Literal('queue'), queueDXN: Schema.Any }),\n);\n\nexport namespace AutomationAction {\n export class CreateTriggerFromTemplate extends Schema.TaggedClass<CreateTriggerFromTemplate>()(\n `${meta.id}.action.create-trigger-from-template`,\n {\n input: Schema.Struct({\n db: Database.Database,\n template: TriggerTemplate,\n enabled: Schema.optional(Schema.Boolean),\n // TODO(wittjosiah): Improve how this lookup is done.\n scriptName: Schema.optional(Schema.String),\n input: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),\n }),\n output: Schema.Void,\n },\n ) {}\n}\n\nconst AUTOMATION_OPERATION = `${meta.id}.operation`;\n\nexport namespace AutomationOperation {\n export const CreateTriggerFromTemplate = Operation.make({\n meta: { key: `${AUTOMATION_OPERATION}.create-trigger-from-template`, name: 'Create Trigger From Template' },\n services: [Capability.Service],\n schema: {\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 });\n}\n"],
5
5
  "mappings": ";;;;;AAOA,SAASA,kBAAkB;UAQVC,yBAAAA;0BA0BFC,iBAAiBC,WAAWC,KAA6B,GAAGC,KAAKC,EAAE,6BAA6B;AAC/G,GA3BiBL,2BAAAA,yBAAAA,CAAAA,EAAAA;;;;ACXjB,SAASM,uBAAuB;UAIfC,mBAAAA;oBACFC,sBAAsBC,gBAAgBC,KAAK,GAAGC,KAAKC,EAAE,8BAA8B;AAClG,GAFiBL,qBAAAA,mBAAAA,CAAAA,EAAAA;;;;ACJjB,YAAYM,YAAY;AAExB,SAASC,cAAAA,mBAAkB;AAC3B,SAASC,gBAAgB;AACzB,SAASC,iBAAiB;AAI1B,IAAMC,kBAAyBC,aACtBC,cAAO;EAAEC,MAAaC,eAAQ,OAAA;EAAUC,MAAaC;AAAO,CAAA,GAC5DJ,cAAO;EAAEC,MAAaC,eAAQ,OAAA;EAAUG,UAAiBC;AAAI,CAAA,CAAA;UAGrDC,mBAAAA;EACR,MAAMC,kCAAyCC,mBAAW,EAC/D,GAAGC,KAAKC,EAAE,wCACV;IACEC,OAAcZ,cAAO;MACnBa,IAAIC,SAASA;MACbC,UAAUjB;MACVkB,SAAgBC,gBAAgBC,cAAO;;MAEvCC,YAAmBF,gBAAgBb,aAAM;MACzCQ,OAAcK,gBAAgBG,cAAO;QAAEC,KAAYjB;QAAQkB,OAAchB;MAAI,CAAA,CAAA;IAC/E,CAAA;IACAiB,QAAeC;EACjB,CAAA,EAAA;EACC;oBAbUhB,4BAAAA;AAcf,GAfiBD,qBAAAA,mBAAAA,CAAAA,EAAAA;AAiBjB,IAAMkB,uBAAuB,GAAGf,KAAKC,EAAE;UAEtBe,sBAAAA;uBACFlB,4BAA4BmB,UAAUC,KAAK;IACtDlB,MAAM;MAAEW,KAAK,GAAGI,oBAAAA;MAAqDI,MAAM;IAA+B;IAC1GC,UAAU;MAACC,YAAWC;;IACtBC,QAAQ;MACNrB,OAAcZ,cAAO;QACnBa,IAAIC,SAASA;QACbC,UAAUjB;QACVkB,SAAgBC,gBAAgBC,cAAO;QACvCC,YAAmBF,gBAAgBb,aAAM;QACzCQ,OAAcK,gBAAgBG,cAAO;UAAEC,KAAYjB;UAAQkB,OAAchB;QAAI,CAAA,CAAA;MAC/E,CAAA;MACAiB,QAAeC;IACjB;EACF,CAAA;AACF,GAfiBE,wBAAAA,sBAAAA,CAAAA,EAAAA;;;",
6
6
  "names": ["Capability", "AutomationCapabilities", "ComputeRuntime", "Capability", "make", "meta", "id", "ActivationEvent", "AutomationEvents", "ComputeRuntimeReady", "ActivationEvent", "make", "meta", "id", "Schema", "Capability", "Database", "Operation", "TriggerTemplate", "Union", "Struct", "type", "Literal", "cron", "String", "queueDXN", "Any", "AutomationAction", "CreateTriggerFromTemplate", "TaggedClass", "meta", "id", "input", "db", "Database", "template", "enabled", "optional", "Boolean", "scriptName", "Record", "key", "value", "output", "Void", "AUTOMATION_OPERATION", "AutomationOperation", "Operation", "make", "name", "services", "Capability", "Service", "schema"]
7
7
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  useTriggerRuntimeControls
3
- } from "./chunk-QPG3AKFX.mjs";
3
+ } from "./chunk-OAZ2JYXV.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-PZNBEKO5.mjs";
6
+ } from "./chunk-EL64ZPPN.mjs";
7
7
 
8
8
  // src/containers/TriggerSettings/TriggerSettings.tsx
9
9
  import React from "react";
@@ -28,4 +28,4 @@ var TriggersSettings = ({ db }) => {
28
28
  export {
29
29
  TriggersSettings
30
30
  };
31
- //# sourceMappingURL=chunk-SEG5OCGB.mjs.map
31
+ //# sourceMappingURL=chunk-H2MV4XE6.mjs.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  TriggerEditor
3
- } from "./chunk-ZNI2CGQP.mjs";
3
+ } from "./chunk-BWEKRPFJ.mjs";
4
4
  import {
5
5
  meta
6
- } from "./chunk-PZNBEKO5.mjs";
6
+ } from "./chunk-EL64ZPPN.mjs";
7
7
 
8
8
  // src/components/AutomationPanel/AutomationPanel.tsx
9
9
  import * as Array from "effect/Array";
@@ -49,9 +49,6 @@ var AutomationPanel = ({ space, object, initialTrigger, onDone }) => {
49
49
  ],
50
50
  kind: [
51
51
  "user"
52
- ],
53
- registered: [
54
- "registered"
55
52
  ]
56
53
  }
57
54
  });
@@ -209,7 +206,7 @@ var TriggerListItem = ({ trigger, functions, onSelect, onDelete, onResetCursor,
209
206
  }, "Position: ", cursor)), copyAction && /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
210
207
  label: t(copyAction.translationKey),
211
208
  value: copyAction.contentProvider()
212
- })), actionProps ? /* @__PURE__ */ React.createElement(List.ItemButton, {
209
+ })), actionProps ? /* @__PURE__ */ React.createElement(List.ItemIconButton, {
213
210
  ...actionProps,
214
211
  autoHide: false
215
212
  }) : /* @__PURE__ */ React.createElement("div", null), onDelete && /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
@@ -269,4 +266,4 @@ export {
269
266
  AutomationPanel,
270
267
  AutomationPanel_default
271
268
  };
272
- //# sourceMappingURL=chunk-4EY2KMCM.mjs.map
269
+ //# sourceMappingURL=chunk-O23LHDEX.mjs.map