@dxos/plugin-automation 0.8.3 → 0.8.4-main.1da679c

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 (208) hide show
  1. package/dist/lib/browser/AutomationPanel-N5HFJJXW.mjs +11 -0
  2. package/dist/lib/browser/AutomationSettings-S3F2VT7Q.mjs +70 -0
  3. package/dist/lib/browser/AutomationSettings-S3F2VT7Q.mjs.map +7 -0
  4. package/dist/lib/browser/{FunctionsContainer-JY7V7PLF.mjs → FunctionsContainer-U4HASI4P.mjs} +6 -9
  5. package/dist/lib/browser/FunctionsContainer-U4HASI4P.mjs.map +7 -0
  6. package/dist/lib/browser/{FunctionsPanel-LY4IFKR7.mjs → FunctionsPanel-I443Y6KB.mjs} +3 -3
  7. package/dist/lib/browser/{app-graph-builder-T34RV5UA.mjs → app-graph-builder-SRA3X2GQ.mjs} +6 -6
  8. package/dist/lib/{node-esm/app-graph-builder-DYWAKQM3.mjs.map → browser/app-graph-builder-SRA3X2GQ.mjs.map} +3 -3
  9. package/dist/lib/browser/{chunk-C5VOC5EE.mjs → chunk-4TWQV33E.mjs} +14 -18
  10. package/dist/lib/browser/chunk-4TWQV33E.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-CRUNQZ2M.mjs +15 -0
  12. package/dist/lib/browser/chunk-CRUNQZ2M.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-IHAKPP5A.mjs → chunk-GW5U2DGT.mjs} +2 -2
  14. package/dist/lib/browser/{chunk-4E2KPMLB.mjs → chunk-HN7OHFCB.mjs} +5 -6
  15. package/dist/lib/browser/chunk-HN7OHFCB.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-NQGKPPXI.mjs +14 -0
  17. package/dist/lib/browser/chunk-NQGKPPXI.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-P6YOYDXP.mjs +53 -0
  19. package/dist/lib/browser/chunk-P6YOYDXP.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-N5VLW7UZ.mjs → chunk-S4SM663I.mjs} +20 -20
  21. package/dist/lib/browser/chunk-S4SM663I.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-UHXDXRP4.mjs +14 -0
  23. package/dist/lib/browser/chunk-UHXDXRP4.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-RHSCK7AU.mjs → chunk-Z5DT4MHW.mjs} +5 -5
  25. package/dist/lib/{node-esm/chunk-2IH4VB3R.mjs.map → browser/chunk-Z5DT4MHW.mjs.map} +3 -3
  26. package/dist/lib/browser/compute-runtime-G25R3RSS.mjs +154 -0
  27. package/dist/lib/browser/compute-runtime-G25R3RSS.mjs.map +7 -0
  28. package/dist/lib/browser/hooks/index.mjs +12 -0
  29. package/dist/lib/browser/index.mjs +30 -19
  30. package/dist/lib/browser/index.mjs.map +4 -4
  31. package/dist/lib/browser/{intent-resolver-AX46HSU7.mjs → intent-resolver-CMLGPFD6.mjs} +12 -11
  32. package/dist/lib/browser/intent-resolver-CMLGPFD6.mjs.map +7 -0
  33. package/dist/lib/browser/meta.json +1 -1
  34. package/dist/lib/browser/{react-surface-Z7A272CA.mjs → react-surface-IYFH2BEM.mjs} +18 -18
  35. package/dist/lib/browser/react-surface-IYFH2BEM.mjs.map +7 -0
  36. package/dist/lib/browser/types/index.mjs +8 -0
  37. package/dist/lib/node-esm/{AutomationPanel-Y3ODAHH7.mjs → AutomationPanel-MKOLA2FE.mjs} +4 -4
  38. package/dist/lib/node-esm/AutomationSettings-C3GNAUYC.mjs +71 -0
  39. package/dist/lib/node-esm/AutomationSettings-C3GNAUYC.mjs.map +7 -0
  40. package/dist/lib/node-esm/{FunctionsContainer-25M5VT3J.mjs → FunctionsContainer-VZIVURH6.mjs} +6 -9
  41. package/dist/lib/node-esm/FunctionsContainer-VZIVURH6.mjs.map +7 -0
  42. package/dist/lib/node-esm/{FunctionsPanel-HVGF5AJP.mjs → FunctionsPanel-ELINCXPW.mjs} +3 -3
  43. package/dist/lib/node-esm/{app-graph-builder-DYWAKQM3.mjs → app-graph-builder-R5XQJKZS.mjs} +6 -6
  44. package/dist/lib/{browser/app-graph-builder-T34RV5UA.mjs.map → node-esm/app-graph-builder-R5XQJKZS.mjs.map} +3 -3
  45. package/dist/lib/node-esm/{chunk-2T2OZC3A.mjs → chunk-AONUBWBE.mjs} +14 -18
  46. package/dist/lib/node-esm/chunk-AONUBWBE.mjs.map +7 -0
  47. package/dist/lib/node-esm/chunk-BTD2B4SZ.mjs +16 -0
  48. package/dist/lib/node-esm/chunk-BTD2B4SZ.mjs.map +7 -0
  49. package/dist/lib/node-esm/chunk-CTAX6WBZ.mjs +16 -0
  50. package/dist/lib/node-esm/chunk-CTAX6WBZ.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-2IH4VB3R.mjs → chunk-CX2AILIS.mjs} +5 -5
  52. package/dist/lib/{browser/chunk-RHSCK7AU.mjs.map → node-esm/chunk-CX2AILIS.mjs.map} +3 -3
  53. package/dist/lib/node-esm/{chunk-HCCLRNMJ.mjs → chunk-NK5N3QKD.mjs} +2 -2
  54. package/dist/lib/node-esm/{chunk-6JOJ2NN4.mjs → chunk-OEZNHUL2.mjs} +5 -6
  55. package/dist/lib/node-esm/chunk-OEZNHUL2.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-UAOO5IZQ.mjs +16 -0
  57. package/dist/lib/node-esm/chunk-UAOO5IZQ.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-XL33Y62M.mjs +54 -0
  59. package/dist/lib/node-esm/chunk-XL33Y62M.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-UFHDB2OA.mjs → chunk-ZOJVKPCA.mjs} +20 -20
  61. package/dist/lib/node-esm/chunk-ZOJVKPCA.mjs.map +7 -0
  62. package/dist/lib/node-esm/compute-runtime-LHO62OVM.mjs +155 -0
  63. package/dist/lib/node-esm/compute-runtime-LHO62OVM.mjs.map +7 -0
  64. package/dist/lib/node-esm/hooks/index.mjs +13 -0
  65. package/dist/lib/node-esm/hooks/index.mjs.map +7 -0
  66. package/dist/lib/node-esm/index.mjs +30 -19
  67. package/dist/lib/node-esm/index.mjs.map +4 -4
  68. package/dist/lib/node-esm/{intent-resolver-WXHFNJJI.mjs → intent-resolver-NUPI6NC6.mjs} +12 -11
  69. package/dist/lib/node-esm/intent-resolver-NUPI6NC6.mjs.map +7 -0
  70. package/dist/lib/node-esm/meta.json +1 -1
  71. package/dist/lib/node-esm/{react-surface-TP6IYSR4.mjs → react-surface-FDRJ76PK.mjs} +18 -18
  72. package/dist/lib/node-esm/react-surface-FDRJ76PK.mjs.map +7 -0
  73. package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -3
  74. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  75. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  76. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  77. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/capabilities.d.ts +18 -0
  79. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/compute-runtime.d.ts +5 -0
  81. package/dist/types/src/capabilities/compute-runtime.d.ts.map +1 -0
  82. package/dist/types/src/capabilities/index.d.ts +5 -3
  83. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  84. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  85. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  87. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +6 -5
  88. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  89. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +45 -3
  90. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
  91. package/dist/types/src/components/AutomationSettings.d.ts +5 -0
  92. package/dist/types/src/components/AutomationSettings.d.ts.map +1 -0
  93. package/dist/types/src/components/FunctionsContainer.d.ts.map +1 -1
  94. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
  95. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +1 -1
  96. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +2 -2
  97. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  98. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +45 -3
  99. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
  100. package/dist/types/src/components/TriggerSettings.d.ts +6 -0
  101. package/dist/types/src/components/TriggerSettings.d.ts.map +1 -0
  102. package/dist/types/src/components/index.d.ts +2 -2
  103. package/dist/types/src/components/index.d.ts.map +1 -1
  104. package/dist/types/src/hooks/index.d.ts +3 -0
  105. package/dist/types/src/hooks/index.d.ts.map +1 -0
  106. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +8 -0
  107. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +1 -0
  108. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +11 -0
  109. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -0
  110. package/dist/types/src/index.d.ts +1 -0
  111. package/dist/types/src/index.d.ts.map +1 -1
  112. package/dist/types/src/translations.d.ts +31 -29
  113. package/dist/types/src/translations.d.ts.map +1 -1
  114. package/dist/types/src/types/index.d.ts +2 -0
  115. package/dist/types/src/types/index.d.ts.map +1 -0
  116. package/dist/types/src/{types.d.ts → types/schema.d.ts} +3 -3
  117. package/dist/types/src/types/schema.d.ts.map +1 -0
  118. package/dist/types/tsconfig.tsbuildinfo +1 -1
  119. package/package.json +55 -34
  120. package/src/AutomationPlugin.tsx +9 -4
  121. package/src/capabilities/app-graph-builder.ts +2 -2
  122. package/src/capabilities/capabilities.ts +52 -0
  123. package/src/capabilities/compute-runtime.ts +124 -0
  124. package/src/capabilities/index.ts +3 -0
  125. package/src/capabilities/intent-resolver.ts +7 -7
  126. package/src/capabilities/react-surface.tsx +11 -11
  127. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +11 -8
  128. package/src/components/AutomationPanel/AutomationPanel.tsx +15 -27
  129. package/src/components/AutomationSettings.tsx +30 -0
  130. package/src/components/FunctionsContainer.tsx +10 -12
  131. package/src/components/FunctionsPanel/FunctionsPanel.tsx +2 -2
  132. package/src/components/TriggerEditor/SpecSelector.tsx +14 -14
  133. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +12 -9
  134. package/src/components/TriggerEditor/TriggerEditor.tsx +6 -12
  135. package/src/components/TriggerSettings.tsx +25 -0
  136. package/src/components/index.ts +1 -1
  137. package/src/hooks/index.ts +6 -0
  138. package/src/hooks/useComputeRuntimeCallback.ts +30 -0
  139. package/src/hooks/useTriggerRuntimeControls.ts +52 -0
  140. package/src/index.ts +1 -0
  141. package/src/translations.ts +10 -4
  142. package/src/types/index.ts +5 -0
  143. package/src/{types.ts → types/schema.ts} +2 -4
  144. package/dist/lib/browser/AutomationContainer-OGNK3HD5.mjs +0 -38
  145. package/dist/lib/browser/AutomationContainer-OGNK3HD5.mjs.map +0 -7
  146. package/dist/lib/browser/AutomationPanel-PRIIAXD5.mjs +0 -11
  147. package/dist/lib/browser/FunctionsContainer-JY7V7PLF.mjs.map +0 -7
  148. package/dist/lib/browser/chunk-4E2KPMLB.mjs.map +0 -7
  149. package/dist/lib/browser/chunk-C5VOC5EE.mjs.map +0 -7
  150. package/dist/lib/browser/chunk-N5VLW7UZ.mjs.map +0 -7
  151. package/dist/lib/browser/chunk-VQWJ5UYA.mjs +0 -14
  152. package/dist/lib/browser/chunk-VQWJ5UYA.mjs.map +0 -7
  153. package/dist/lib/browser/intent-resolver-AX46HSU7.mjs.map +0 -7
  154. package/dist/lib/browser/react-surface-Z7A272CA.mjs.map +0 -7
  155. package/dist/lib/browser/types.mjs +0 -8
  156. package/dist/lib/node/AutomationContainer-B7PSJFIS.cjs +0 -66
  157. package/dist/lib/node/AutomationContainer-B7PSJFIS.cjs.map +0 -7
  158. package/dist/lib/node/AutomationPanel-XYLZU4MI.cjs +0 -32
  159. package/dist/lib/node/AutomationPanel-XYLZU4MI.cjs.map +0 -7
  160. package/dist/lib/node/FunctionsContainer-4FGOQW5X.cjs +0 -67
  161. package/dist/lib/node/FunctionsContainer-4FGOQW5X.cjs.map +0 -7
  162. package/dist/lib/node/FunctionsPanel-EWWAZK3W.cjs +0 -31
  163. package/dist/lib/node/FunctionsPanel-EWWAZK3W.cjs.map +0 -7
  164. package/dist/lib/node/app-graph-builder-5XRIIV7E.cjs +0 -96
  165. package/dist/lib/node/app-graph-builder-5XRIIV7E.cjs.map +0 -7
  166. package/dist/lib/node/chunk-3EF7MLFX.cjs +0 -38
  167. package/dist/lib/node/chunk-3EF7MLFX.cjs.map +0 -7
  168. package/dist/lib/node/chunk-6X3XJ4VI.cjs +0 -122
  169. package/dist/lib/node/chunk-6X3XJ4VI.cjs.map +0 -7
  170. package/dist/lib/node/chunk-GIIVTK4O.cjs +0 -58
  171. package/dist/lib/node/chunk-GIIVTK4O.cjs.map +0 -7
  172. package/dist/lib/node/chunk-IXUCZ3YY.cjs +0 -173
  173. package/dist/lib/node/chunk-IXUCZ3YY.cjs.map +0 -7
  174. package/dist/lib/node/chunk-LQ6XK4N5.cjs +0 -253
  175. package/dist/lib/node/chunk-LQ6XK4N5.cjs.map +0 -7
  176. package/dist/lib/node/chunk-TH4XDKAY.cjs +0 -49
  177. package/dist/lib/node/chunk-TH4XDKAY.cjs.map +0 -7
  178. package/dist/lib/node/index.cjs +0 -124
  179. package/dist/lib/node/index.cjs.map +0 -7
  180. package/dist/lib/node/intent-resolver-EAREQZFE.cjs +0 -92
  181. package/dist/lib/node/intent-resolver-EAREQZFE.cjs.map +0 -7
  182. package/dist/lib/node/meta.json +0 -1
  183. package/dist/lib/node/react-surface-OI6CDHEI.cjs +0 -87
  184. package/dist/lib/node/react-surface-OI6CDHEI.cjs.map +0 -7
  185. package/dist/lib/node/types.cjs +0 -30
  186. package/dist/lib/node/types.cjs.map +0 -7
  187. package/dist/lib/node-esm/AutomationContainer-ANCUYDDA.mjs +0 -39
  188. package/dist/lib/node-esm/AutomationContainer-ANCUYDDA.mjs.map +0 -7
  189. package/dist/lib/node-esm/FunctionsContainer-25M5VT3J.mjs.map +0 -7
  190. package/dist/lib/node-esm/chunk-2T2OZC3A.mjs.map +0 -7
  191. package/dist/lib/node-esm/chunk-6JOJ2NN4.mjs.map +0 -7
  192. package/dist/lib/node-esm/chunk-UFHDB2OA.mjs.map +0 -7
  193. package/dist/lib/node-esm/chunk-WJHKFPX2.mjs +0 -16
  194. package/dist/lib/node-esm/chunk-WJHKFPX2.mjs.map +0 -7
  195. package/dist/lib/node-esm/intent-resolver-WXHFNJJI.mjs.map +0 -7
  196. package/dist/lib/node-esm/react-surface-TP6IYSR4.mjs.map +0 -7
  197. package/dist/types/src/components/AutomationContainer.d.ts +0 -5
  198. package/dist/types/src/components/AutomationContainer.d.ts.map +0 -1
  199. package/dist/types/src/types.d.ts.map +0 -1
  200. package/src/components/AutomationContainer.tsx +0 -30
  201. /package/dist/lib/browser/{AutomationPanel-PRIIAXD5.mjs.map → AutomationPanel-N5HFJJXW.mjs.map} +0 -0
  202. /package/dist/lib/browser/{FunctionsPanel-LY4IFKR7.mjs.map → FunctionsPanel-I443Y6KB.mjs.map} +0 -0
  203. /package/dist/lib/browser/{chunk-IHAKPP5A.mjs.map → chunk-GW5U2DGT.mjs.map} +0 -0
  204. /package/dist/lib/browser/{types.mjs.map → hooks/index.mjs.map} +0 -0
  205. /package/dist/lib/{node-esm/AutomationPanel-Y3ODAHH7.mjs.map → browser/types/index.mjs.map} +0 -0
  206. /package/dist/lib/node-esm/{FunctionsPanel-HVGF5AJP.mjs.map → AutomationPanel-MKOLA2FE.mjs.map} +0 -0
  207. /package/dist/lib/node-esm/{types.mjs.map → FunctionsPanel-ELINCXPW.mjs.map} +0 -0
  208. /package/dist/lib/node-esm/{chunk-HCCLRNMJ.mjs.map → chunk-NK5N3QKD.mjs.map} +0 -0
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  AUTOMATION_PLUGIN
3
- } from "./chunk-IHAKPP5A.mjs";
3
+ } from "./chunk-GW5U2DGT.mjs";
4
4
 
5
- // packages/plugins/plugin-automation/src/components/TriggerEditor/TriggerEditor.tsx
5
+ // src/components/TriggerEditor/TriggerEditor.tsx
6
6
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
7
7
  import React3, { useCallback as useCallback3, useMemo as useMemo3 } from "react";
8
8
  import { ComputeGraph } from "@dxos/conductor";
9
9
  import { Type as Type2 } from "@dxos/echo";
10
- import { FunctionType, FunctionTriggerSchema, ScriptType } from "@dxos/functions";
10
+ import { FunctionTrigger, FunctionType, ScriptType } from "@dxos/functions";
11
11
  import { Filter, Ref as Ref2, useQuery } from "@dxos/react-client/echo";
12
12
  import { Form as Form2, SelectInput as SelectInput2, useRefQueryLookupHandler } from "@dxos/react-ui-form";
13
13
 
14
- // packages/plugins/plugin-automation/src/components/TriggerEditor/FunctionInputEditor.tsx
14
+ // src/components/TriggerEditor/FunctionInputEditor.tsx
15
15
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
16
16
  import React, { useCallback, useMemo } from "react";
17
17
  import { Ref, Type } from "@dxos/echo";
@@ -73,10 +73,10 @@ var FunctionInputEditor = ({ functions, getValue, onValueChange, onQueryRefOptio
73
73
  }
74
74
  };
75
75
 
76
- // packages/plugins/plugin-automation/src/components/TriggerEditor/SpecSelector.tsx
76
+ // src/components/TriggerEditor/SpecSelector.tsx
77
77
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
78
78
  import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
79
- import { TriggerKind } from "@dxos/functions";
79
+ import { TriggerKinds } from "@dxos/functions";
80
80
  import { useTranslation } from "@dxos/react-ui";
81
81
  import { SelectInput, useInputProps } from "@dxos/react-ui-form";
82
82
  var SpecSelector = (props) => {
@@ -89,28 +89,28 @@ var SpecSelector = (props) => {
89
89
  const handleTypeChange = useCallback2((_type, value) => {
90
90
  const getDefaultTriggerSpec = (kind) => {
91
91
  switch (kind) {
92
- case TriggerKind.Timer:
92
+ case "timer":
93
93
  return {
94
- kind: TriggerKind.Timer,
94
+ kind: "timer",
95
95
  cron: ""
96
96
  };
97
- case TriggerKind.Subscription:
97
+ case "subscription":
98
98
  return {
99
- kind: TriggerKind.Subscription,
99
+ kind: "subscription",
100
100
  filter: {}
101
101
  };
102
- case TriggerKind.Queue:
102
+ case "queue":
103
103
  return {
104
- kind: TriggerKind.Queue,
104
+ kind: "queue",
105
105
  queue: ""
106
106
  };
107
- case TriggerKind.Email:
107
+ case "email":
108
108
  return {
109
- kind: TriggerKind.Email
109
+ kind: "email"
110
110
  };
111
- case TriggerKind.Webhook:
111
+ case "webhook":
112
112
  return {
113
- kind: TriggerKind.Webhook
113
+ kind: "webhook"
114
114
  };
115
115
  default:
116
116
  return void 0;
@@ -124,7 +124,7 @@ var SpecSelector = (props) => {
124
124
  }, [
125
125
  specProps
126
126
  ]);
127
- const options = useMemo2(() => Object.values(TriggerKind).map((kind) => ({
127
+ const options = useMemo2(() => TriggerKinds.map((kind) => ({
128
128
  value: kind,
129
129
  label: t(`trigger type ${kind}`)
130
130
  })), [
@@ -140,7 +140,7 @@ var SpecSelector = (props) => {
140
140
  }
141
141
  };
142
142
 
143
- // packages/plugins/plugin-automation/src/components/TriggerEditor/TriggerEditor.tsx
143
+ // src/components/TriggerEditor/TriggerEditor.tsx
144
144
  var TriggerEditor = ({ space, trigger, onSave, onCancel }) => {
145
145
  var _effect = _useSignals3();
146
146
  try {
@@ -154,7 +154,7 @@ var TriggerEditor = ({ space, trigger, onSave, onCancel }) => {
154
154
  return /* @__PURE__ */ React3.createElement(Form2, {
155
155
  outerSpacing: false,
156
156
  Custom,
157
- schema: FunctionTriggerSchema,
157
+ schema: FunctionTrigger,
158
158
  values: trigger,
159
159
  onSave: handleSave,
160
160
  onCancel,
@@ -227,4 +227,4 @@ var getFunctionOptions = (scripts, functions) => {
227
227
  export {
228
228
  TriggerEditor
229
229
  };
230
- //# sourceMappingURL=chunk-N5VLW7UZ.mjs.map
230
+ //# sourceMappingURL=chunk-S4SM663I.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 { Type } from '@dxos/echo';\nimport { FunctionTrigger, FunctionType, ScriptType } from '@dxos/functions';\nimport { Filter, Ref, type Space, useQuery } from '@dxos/react-client/echo';\nimport { type CustomInputMap, Form, SelectInput, useRefQueryLookupHandler } from '@dxos/react-ui-form';\n\nimport { FunctionInputEditor, type FunctionInputEditorProps } from './FunctionInputEditor';\nimport { SpecSelector } from './SpecSelector';\n\nexport type TriggerEditorProps = {\n space: Space;\n trigger: FunctionTrigger;\n onSave?: (trigger: Omit<FunctionTrigger, 'id'>) => void;\n onCancel?: () => void;\n};\n\nexport const TriggerEditor = ({ space, trigger, onSave, onCancel }: TriggerEditorProps) => {\n const handleSave = (values: FunctionTrigger) => {\n onSave?.(values);\n };\n\n const handleRefQueryLookup = useRefQueryLookupHandler({ space });\n const Custom = useCustomInputs(space, handleRefQueryLookup);\n\n return (\n <Form\n outerSpacing={false}\n Custom={Custom}\n schema={FunctionTrigger}\n values={trigger}\n onSave={handleSave}\n onCancel={onCancel}\n onQueryRefOptions={handleRefQueryLookup}\n />\n );\n};\n\nconst useCustomInputs = (space: Space, onQueryRefOptions: FunctionInputEditorProps['onQueryRefOptions']) => {\n const functions = useQuery(space, Filter.type(FunctionType));\n const workflows = useQuery(space, Filter.type(ComputeGraph));\n const scripts = useQuery(space, Filter.type(ScriptType));\n\n return useMemo(\n (): CustomInputMap => ({\n // Function selector.\n ['function' satisfies keyof FunctionTrigger]: (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 = Type.DXN.parse(dxnString);\n if (dxn) {\n const ref = Ref.fromDXN(dxn);\n props.onValueChange('object', ref);\n }\n },\n [props.onValueChange],\n );\n\n return (\n <SelectInput\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' as const]: SpecSelector,\n\n // Function input editor.\n ['input' as const]: (props) => (\n <FunctionInputEditor {...props} functions={functions} onQueryRefOptions={onQueryRefOptions} />\n ),\n }),\n [workflows, scripts, functions],\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: ScriptType[], functions: FunctionType[]) => {\n const getLabel = (fn: FunctionType) => 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", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Ref, Type } from '@dxos/echo';\nimport { type JsonPath } from '@dxos/echo-schema';\nimport { type FunctionType } from '@dxos/functions';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { Form, type FormInputStateProps, type QueryRefOptions, useFormValues } from '@dxos/react-ui-form';\n\nexport type FunctionInputEditorProps = {\n functions: FunctionType[];\n onQueryRefOptions: QueryRefOptions;\n} & FormInputStateProps;\n\n/**\n * Editor component for function input parameters.\n */\nexport const FunctionInputEditor = ({\n functions,\n getValue,\n onValueChange,\n onQueryRefOptions,\n}: FunctionInputEditorProps) => {\n const selectedFunctionValue = useFormValues(['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) => prevValue !== undefined && prevValue !== selectedFunctionValue,\n (currValue) => currValue !== undefined,\n () => onValueChange('object', {}),\n );\n\n const inputSchema = useMemo(() => selectedFunction?.inputSchema, [selectedFunction]);\n const effectSchema = useMemo(() => (inputSchema ? Type.toEffectSchema(inputSchema) : undefined), [inputSchema]);\n const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;\n\n const values = useMemo(() => getValue() ?? {}, [getValue]);\n\n const handleValuesChanged = useCallback(\n (values: any) => {\n onValueChange('object', values);\n },\n [onValueChange],\n );\n\n if (selectedFunction === undefined || effectSchema === undefined || propertyCount === 0) {\n return null;\n }\n\n return (\n <>\n <h3 className='text-md'>Function parameters</h3>\n {/* TODO(ZaymonFC): Try using <FormFields /> internal component for this nesting.\n This would allow errors to flow up to the root context. */}\n <Form\n schema={effectSchema}\n values={values}\n onValuesChanged={handleValuesChanged}\n onQueryRefOptions={onQueryRefOptions}\n outerSpacing={false}\n />\n </>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { type FunctionTrigger, TriggerKinds, type TriggerType } from '@dxos/functions';\nimport { useTranslation } from '@dxos/react-ui';\nimport { type InputProps, SelectInput, useInputProps } from '@dxos/react-ui-form';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\n\nexport type SpecSelectorProps = InputProps;\n\nexport const SpecSelector = (props: SpecSelectorProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const specProps = useInputProps(['spec' satisfies keyof FunctionTrigger]);\n\n const handleTypeChange = useCallback(\n (_type: any, value: string): TriggerType | undefined => {\n const getDefaultTriggerSpec = (kind: string) => {\n switch (kind) {\n case 'timer':\n return { kind: 'timer', cron: '' };\n case 'subscription':\n return { kind: 'subscription', filter: {} };\n case 'queue':\n return { kind: 'queue', queue: '' };\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('object', defaultSpec);\n },\n [specProps],\n );\n\n const options = useMemo(\n () =>\n TriggerKinds.map((kind) => ({\n value: kind,\n label: t(`trigger type ${kind}`),\n })),\n [t],\n );\n\n return <SelectInput {...props} options={options} onValueChange={handleTypeChange} />;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "ComputeGraph", "Type", "FunctionTrigger", "FunctionType", "ScriptType", "Filter", "Ref", "useQuery", "Form", "SelectInput", "useRefQueryLookupHandler", "React", "useCallback", "useMemo", "Ref", "Type", "useOnTransition", "Form", "useFormValues", "FunctionInputEditor", "functions", "getValue", "onValueChange", "onQueryRefOptions", "selectedFunctionValue", "useFormValues", "selectedFunctionId", "useMemo", "Ref", "isRef", "dxn", "toString", "split", "at", "selectedFunction", "find", "fn", "id", "useOnTransition", "prevValue", "undefined", "currValue", "inputSchema", "effectSchema", "Type", "toEffectSchema", "propertyCount", "properties", "Object", "keys", "length", "values", "handleValuesChanged", "useCallback", "h3", "className", "Form", "schema", "onValuesChanged", "outerSpacing", "React", "useCallback", "useMemo", "TriggerKinds", "useTranslation", "SelectInput", "useInputProps", "SpecSelector", "props", "t", "useTranslation", "AUTOMATION_PLUGIN", "specProps", "useInputProps", "handleTypeChange", "useCallback", "_type", "value", "getDefaultTriggerSpec", "kind", "cron", "filter", "queue", "undefined", "defaultSpec", "onValueChange", "options", "useMemo", "TriggerKinds", "map", "label", "React", "SelectInput", "TriggerEditor", "space", "trigger", "onSave", "onCancel", "handleSave", "values", "handleRefQueryLookup", "useRefQueryLookupHandler", "Custom", "useCustomInputs", "React", "Form", "outerSpacing", "schema", "FunctionTrigger", "onQueryRefOptions", "functions", "useQuery", "Filter", "type", "FunctionType", "workflows", "ComputeGraph", "scripts", "ScriptType", "useMemo", "props", "getValue", "useCallback", "formValue", "Ref", "isRef", "dxn", "toString", "undefined", "handleOnValueChange", "_type", "dxnString", "Type", "DXN", "parse", "ref", "fromDXN", "onValueChange", "SelectInput", "options", "getWorkflowOptions", "concat", "getFunctionOptions", "SpecSelector", "FunctionInputEditor", "graphs", "map", "graph", "label", "id", "value", "getLabel", "fn", "find", "s", "source", "target", "name"]
7
+ }
@@ -0,0 +1,14 @@
1
+ // src/capabilities/index.ts
2
+ import { lazy } from "@dxos/app-framework";
3
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-SRA3X2GQ.mjs"));
4
+ var ComputeRuntime = lazy(() => import("./compute-runtime-G25R3RSS.mjs"));
5
+ var IntentResolver = lazy(() => import("./intent-resolver-CMLGPFD6.mjs"));
6
+ var ReactSurface = lazy(() => import("./react-surface-IYFH2BEM.mjs"));
7
+
8
+ export {
9
+ AppGraphBuilder,
10
+ ComputeRuntime,
11
+ IntentResolver,
12
+ ReactSurface
13
+ };
14
+ //# sourceMappingURL=chunk-UHXDXRP4.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const ComputeRuntime = lazy(() => import('./compute-runtime'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n\nexport * from './capabilities';\n"],
5
+ "mappings": ";AAIA,SAASA,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,iBAAiBF,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMG,eAAeH,KAAK,MAAM,OAAO,8BAAA,CAAA;",
6
+ "names": ["lazy", "AppGraphBuilder", "lazy", "ComputeRuntime", "IntentResolver", "ReactSurface"]
7
+ }
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  AUTOMATION_PLUGIN
3
- } from "./chunk-IHAKPP5A.mjs";
3
+ } from "./chunk-GW5U2DGT.mjs";
4
4
 
5
- // packages/plugins/plugin-automation/src/components/FunctionsPanel/FunctionsPanel.tsx
5
+ // src/components/FunctionsPanel/FunctionsPanel.tsx
6
6
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
7
7
  import { Schema } from "effect";
8
8
  import React, { useCallback, useMemo } from "react";
9
- import { createIntent, LayoutAction, useIntentDispatcher } from "@dxos/app-framework";
9
+ import { LayoutAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
10
10
  import { FunctionType, ScriptType } from "@dxos/functions";
11
11
  import { Filter, fullyQualifiedId, useQuery } from "@dxos/react-client/echo";
12
12
  import { Button, useTranslation } from "@dxos/react-ui";
@@ -84,11 +84,11 @@ var FunctionsPanel = ({ space }) => {
84
84
  }
85
85
  };
86
86
 
87
- // packages/plugins/plugin-automation/src/components/FunctionsPanel/index.ts
87
+ // src/components/FunctionsPanel/index.ts
88
88
  var FunctionsPanel_default = FunctionsPanel;
89
89
 
90
90
  export {
91
91
  FunctionsPanel,
92
92
  FunctionsPanel_default
93
93
  };
94
- //# sourceMappingURL=chunk-RHSCK7AU.mjs.map
94
+ //# sourceMappingURL=chunk-Z5DT4MHW.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/FunctionsPanel/FunctionsPanel.tsx", "../../../src/components/FunctionsPanel/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { FunctionType, ScriptType } from '@dxos/functions';\nimport { Filter, fullyQualifiedId, useQuery, type Space } from '@dxos/react-client/echo';\nimport { Button, useTranslation } from '@dxos/react-ui';\nimport { controlItemClasses } from '@dxos/react-ui-form';\nimport { List } from '@dxos/react-ui-list';\nimport { ghostHover, mx } from '@dxos/react-ui-theme';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\n\nconst grid = 'grid grid-cols-[1fr_auto] min-bs-[2.5rem]';\n\nexport type FunctionsPanelProps = {\n space: Space;\n};\n\nexport const FunctionsPanel = ({ space }: FunctionsPanelProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const functions = useQuery(space, Filter.type(FunctionType));\n const scripts = useQuery(space, Filter.type(ScriptType));\n const { dispatchPromise: dispatch } = useIntentDispatcher();\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, ScriptType>,\n ),\n [functions, scripts],\n );\n\n const getScriptName = useCallback(\n (func: FunctionType) => {\n const script = functionToScriptMap[func.id];\n return script?.name;\n },\n [functionToScriptMap],\n );\n\n const handleGoToScript = useCallback(\n (func: FunctionType) => {\n const script = functionToScriptMap[func.id];\n if (script) {\n void dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(script)] }));\n }\n },\n [functionToScriptMap, dispatch],\n );\n\n return (\n <div role='none' className={mx(controlItemClasses)}>\n {functions.length > 0 && (\n <List.Root<FunctionType> items={functions} isItem={Schema.is(FunctionType)} getId={(func) => func.id}>\n {({ items }) => (\n <div role='list' className='flex flex-col w-full'>\n {items?.map((func) => (\n <List.Item<FunctionType>\n key={func.id}\n item={func}\n classNames={mx(grid, ghostHover, 'items-center', 'pli-2', 'min-bs-[3rem]')}\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 </List.Item>\n ))}\n </div>\n )}\n </List.Root>\n )}\n\n {functions.length === 0 && <div className='text-center plb-4 text-gray-500'>{t('no functions found')}</div>}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FunctionsPanel } from './FunctionsPanel';\n\nexport * from './FunctionsPanel';\nexport default FunctionsPanel;\n"],
5
- "mappings": ";;;;;;;AAIA,SAASA,cAAc;AACvB,OAAOC,SAASC,aAAaC,eAAe;AAE5C,SAASC,cAAcC,cAAcC,2BAA2B;AAChE,SAASC,cAAcC,kBAAkB;AACzC,SAASC,QAAQC,kBAAkBC,gBAA4B;AAC/D,SAASC,QAAQC,sBAAsB;AACvC,SAASC,0BAA0B;AACnC,SAASC,YAAY;AACrB,SAASC,YAAYC,UAAU;AAI/B,IAAMC,OAAO;AAMN,IAAMC,iBAAiB,CAAC,EAAEC,MAAK,MAAuB;;;AAC3D,UAAM,EAAEC,EAAC,IAAKC,eAAeC,iBAAAA;AAC7B,UAAMC,YAAYC,SAASL,OAAOM,OAAOC,KAAKC,YAAAA,CAAAA;AAC9C,UAAMC,UAAUJ,SAASL,OAAOM,OAAOC,KAAKG,UAAAA,CAAAA;AAC5C,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AAEtC,UAAMC,sBAAsBC,QAC1B,MACEX,UAAUY,OACR,CAACC,KAAKC,SAAAA;AACJ,YAAMC,WAAWD,KAAKE,QAAQC,QAAQC;AACtC,UAAIH,UAAU;AACZ,cAAMI,SAASd,QAAQe,KAAK,CAACC,MAAMA,EAAEH,OAAOH,QAAAA;AAC5C,YAAII,QAAQ;AACVN,cAAIC,KAAKI,EAAE,IAAIC;QACjB;MACF;AACA,aAAON;IACT,GACA,CAAC,CAAA,GAEL;MAACb;MAAWK;KAAQ;AAGtB,UAAMiB,gBAAgBC,YACpB,CAACT,SAAAA;AACC,YAAMK,SAAST,oBAAoBI,KAAKI,EAAE;AAC1C,aAAOC,QAAQK;IACjB,GACA;MAACd;KAAoB;AAGvB,UAAMe,mBAAmBF,YACvB,CAACT,SAAAA;AACC,YAAMK,SAAST,oBAAoBI,KAAKI,EAAE;AAC1C,UAAIC,QAAQ;AACV,aAAKX,SAASkB,aAAaC,aAAaC,MAAM;UAAEC,MAAM;UAAQC,SAAS;YAACC,iBAAiBZ,MAAAA;;QAAS,CAAA,CAAA;MACpG;IACF,GACA;MAACT;MAAqBF;KAAS;AAGjC,WACE,sBAAA,cAACwB,OAAAA;MAAIC,MAAK;MAAOC,WAAWC,GAAGC,kBAAAA;OAC5BpC,UAAUqC,SAAS,KAClB,sBAAA,cAACC,KAAKC,MAAI;MAAeC,OAAOxC;MAAWyC,QAAQC,OAAOC,GAAGvC,YAAAA;MAAewC,OAAO,CAAC9B,SAASA,KAAKI;OAC/F,CAAC,EAAEsB,MAAK,MACP,sBAAA,cAACR,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACxBM,OAAO3B,IAAI,CAACC,SACX,sBAAA,cAACwB,KAAKO,MAAI;MACRC,KAAKhC,KAAKI;MACV6B,MAAMjC;MACNkC,YAAYb,GAAGzC,MAAMuD,YAAY,gBAAgB,SAAS,eAAA;OAE1D,sBAAA,cAACjB,OAAAA;MAAIE,WAAU;OACb,sBAAA,cAACI,KAAKY,WAAS;MAACF,YAAW;OAAYlC,KAAKU,IAAI,GAC/CF,cAAcR,IAAAA,KACb,sBAAA,cAACkB,OAAAA;MAAIE,WAAU;OAAqCZ,cAAcR,IAAAA,CAAAA,CAAAA,GAGrEJ,oBAAoBI,KAAKI,EAAE,KAC1B,sBAAA,cAACiC,QAAAA;MAAOC,SAAS,MAAM3B,iBAAiBX,IAAAA;OAAQjB,EAAE,oCAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAS/DG,UAAUqC,WAAW,KAAK,sBAAA,cAACL,OAAAA;MAAIE,WAAU;OAAmCrC,EAAE,oBAAA,CAAA,CAAA;;;;AAGrF;;;ACzFA,IAAA,yBAAewD;",
6
- "names": ["Schema", "React", "useCallback", "useMemo", "createIntent", "LayoutAction", "useIntentDispatcher", "FunctionType", "ScriptType", "Filter", "fullyQualifiedId", "useQuery", "Button", "useTranslation", "controlItemClasses", "List", "ghostHover", "mx", "grid", "FunctionsPanel", "space", "t", "useTranslation", "AUTOMATION_PLUGIN", "functions", "useQuery", "Filter", "type", "FunctionType", "scripts", "ScriptType", "dispatchPromise", "dispatch", "useIntentDispatcher", "functionToScriptMap", "useMemo", "reduce", "map", "func", "scriptId", "source", "target", "id", "script", "find", "s", "getScriptName", "useCallback", "name", "handleGoToScript", "createIntent", "LayoutAction", "Open", "part", "subject", "fullyQualifiedId", "div", "role", "className", "mx", "controlItemClasses", "length", "List", "Root", "items", "isItem", "Schema", "is", "getId", "Item", "key", "item", "classNames", "ghostHover", "ItemTitle", "Button", "onClick", "FunctionsPanel"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { FunctionType, ScriptType } from '@dxos/functions';\nimport { Filter, type Space, fullyQualifiedId, useQuery } from '@dxos/react-client/echo';\nimport { Button, useTranslation } from '@dxos/react-ui';\nimport { controlItemClasses } from '@dxos/react-ui-form';\nimport { List } from '@dxos/react-ui-list';\nimport { ghostHover, mx } from '@dxos/react-ui-theme';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\n\nconst grid = 'grid grid-cols-[1fr_auto] min-bs-[2.5rem]';\n\nexport type FunctionsPanelProps = {\n space: Space;\n};\n\nexport const FunctionsPanel = ({ space }: FunctionsPanelProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const functions = useQuery(space, Filter.type(FunctionType));\n const scripts = useQuery(space, Filter.type(ScriptType));\n const { dispatchPromise: dispatch } = useIntentDispatcher();\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, ScriptType>,\n ),\n [functions, scripts],\n );\n\n const getScriptName = useCallback(\n (func: FunctionType) => {\n const script = functionToScriptMap[func.id];\n return script?.name;\n },\n [functionToScriptMap],\n );\n\n const handleGoToScript = useCallback(\n (func: FunctionType) => {\n const script = functionToScriptMap[func.id];\n if (script) {\n void dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(script)] }));\n }\n },\n [functionToScriptMap, dispatch],\n );\n\n return (\n <div role='none' className={mx(controlItemClasses)}>\n {functions.length > 0 && (\n <List.Root<FunctionType> items={functions} isItem={Schema.is(FunctionType)} getId={(func) => func.id}>\n {({ items }) => (\n <div role='list' className='flex flex-col w-full'>\n {items?.map((func) => (\n <List.Item<FunctionType>\n key={func.id}\n item={func}\n classNames={mx(grid, ghostHover, 'items-center', 'pli-2', 'min-bs-[3rem]')}\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 </List.Item>\n ))}\n </div>\n )}\n </List.Root>\n )}\n\n {functions.length === 0 && <div className='text-center plb-4 text-gray-500'>{t('no functions found')}</div>}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FunctionsPanel } from './FunctionsPanel';\n\nexport * from './FunctionsPanel';\nexport default FunctionsPanel;\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,cAAc;AACvB,OAAOC,SAASC,aAAaC,eAAe;AAE5C,SAASC,cAAcC,cAAcC,2BAA2B;AAChE,SAASC,cAAcC,kBAAkB;AACzC,SAASC,QAAoBC,kBAAkBC,gBAAgB;AAC/D,SAASC,QAAQC,sBAAsB;AACvC,SAASC,0BAA0B;AACnC,SAASC,YAAY;AACrB,SAASC,YAAYC,UAAU;AAI/B,IAAMC,OAAO;AAMN,IAAMC,iBAAiB,CAAC,EAAEC,MAAK,MAAuB;;;AAC3D,UAAM,EAAEC,EAAC,IAAKC,eAAeC,iBAAAA;AAC7B,UAAMC,YAAYC,SAASL,OAAOM,OAAOC,KAAKC,YAAAA,CAAAA;AAC9C,UAAMC,UAAUJ,SAASL,OAAOM,OAAOC,KAAKG,UAAAA,CAAAA;AAC5C,UAAM,EAAEC,iBAAiBC,SAAQ,IAAKC,oBAAAA;AAEtC,UAAMC,sBAAsBC,QAC1B,MACEX,UAAUY,OACR,CAACC,KAAKC,SAAAA;AACJ,YAAMC,WAAWD,KAAKE,QAAQC,QAAQC;AACtC,UAAIH,UAAU;AACZ,cAAMI,SAASd,QAAQe,KAAK,CAACC,MAAMA,EAAEH,OAAOH,QAAAA;AAC5C,YAAII,QAAQ;AACVN,cAAIC,KAAKI,EAAE,IAAIC;QACjB;MACF;AACA,aAAON;IACT,GACA,CAAC,CAAA,GAEL;MAACb;MAAWK;KAAQ;AAGtB,UAAMiB,gBAAgBC,YACpB,CAACT,SAAAA;AACC,YAAMK,SAAST,oBAAoBI,KAAKI,EAAE;AAC1C,aAAOC,QAAQK;IACjB,GACA;MAACd;KAAoB;AAGvB,UAAMe,mBAAmBF,YACvB,CAACT,SAAAA;AACC,YAAMK,SAAST,oBAAoBI,KAAKI,EAAE;AAC1C,UAAIC,QAAQ;AACV,aAAKX,SAASkB,aAAaC,aAAaC,MAAM;UAAEC,MAAM;UAAQC,SAAS;YAACC,iBAAiBZ,MAAAA;;QAAS,CAAA,CAAA;MACpG;IACF,GACA;MAACT;MAAqBF;KAAS;AAGjC,WACE,sBAAA,cAACwB,OAAAA;MAAIC,MAAK;MAAOC,WAAWC,GAAGC,kBAAAA;OAC5BpC,UAAUqC,SAAS,KAClB,sBAAA,cAACC,KAAKC,MAAI;MAAeC,OAAOxC;MAAWyC,QAAQC,OAAOC,GAAGvC,YAAAA;MAAewC,OAAO,CAAC9B,SAASA,KAAKI;OAC/F,CAAC,EAAEsB,MAAK,MACP,sBAAA,cAACR,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACxBM,OAAO3B,IAAI,CAACC,SACX,sBAAA,cAACwB,KAAKO,MAAI;MACRC,KAAKhC,KAAKI;MACV6B,MAAMjC;MACNkC,YAAYb,GAAGzC,MAAMuD,YAAY,gBAAgB,SAAS,eAAA;OAE1D,sBAAA,cAACjB,OAAAA;MAAIE,WAAU;OACb,sBAAA,cAACI,KAAKY,WAAS;MAACF,YAAW;OAAYlC,KAAKU,IAAI,GAC/CF,cAAcR,IAAAA,KACb,sBAAA,cAACkB,OAAAA;MAAIE,WAAU;OAAqCZ,cAAcR,IAAAA,CAAAA,CAAAA,GAGrEJ,oBAAoBI,KAAKI,EAAE,KAC1B,sBAAA,cAACiC,QAAAA;MAAOC,SAAS,MAAM3B,iBAAiBX,IAAAA;OAAQjB,EAAE,oCAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAS/DG,UAAUqC,WAAW,KAAK,sBAAA,cAACL,OAAAA;MAAIE,WAAU;OAAmCrC,EAAE,oBAAA,CAAA,CAAA;;;;AAGrF;;;ACzFA,IAAA,yBAAewD;",
6
+ "names": ["Schema", "React", "useCallback", "useMemo", "LayoutAction", "createIntent", "useIntentDispatcher", "FunctionType", "ScriptType", "Filter", "fullyQualifiedId", "useQuery", "Button", "useTranslation", "controlItemClasses", "List", "ghostHover", "mx", "grid", "FunctionsPanel", "space", "t", "useTranslation", "AUTOMATION_PLUGIN", "functions", "useQuery", "Filter", "type", "FunctionType", "scripts", "ScriptType", "dispatchPromise", "dispatch", "useIntentDispatcher", "functionToScriptMap", "useMemo", "reduce", "map", "func", "scriptId", "source", "target", "id", "script", "find", "s", "getScriptName", "useCallback", "name", "handleGoToScript", "createIntent", "LayoutAction", "Open", "part", "subject", "fullyQualifiedId", "div", "role", "className", "mx", "controlItemClasses", "length", "List", "Root", "items", "isItem", "Schema", "is", "getId", "Item", "key", "item", "classNames", "ghostHover", "ItemTitle", "Button", "onClick", "FunctionsPanel"]
7
7
  }
@@ -0,0 +1,154 @@
1
+ import {
2
+ AutomationCapabilities
3
+ } from "./chunk-CRUNQZ2M.mjs";
4
+ import "./chunk-GW5U2DGT.mjs";
5
+
6
+ // src/capabilities/compute-runtime.ts
7
+ import { AiToolkit } from "@effect/ai";
8
+ import { BrowserKeyValueStore } from "@effect/platform-browser";
9
+ import { Effect, Layer, ManagedRuntime } from "effect";
10
+ import { Capabilities, contributes } from "@dxos/app-framework";
11
+ import { makeToolExecutionServiceFromFunctions, makeToolResolverFromFunctions } from "@dxos/assistant";
12
+ import { Resource } from "@dxos/context";
13
+ import { Query, Ref } from "@dxos/echo";
14
+ import { CredentialsService, DatabaseService, FunctionImplementationResolver, InvocationTracer, LocalFunctionExecutionService, QueueService, RemoteFunctionExecutionService, TriggerDispatcher } from "@dxos/functions";
15
+ import { TriggerStateStore } from "@dxos/functions";
16
+ import { invariant } from "@dxos/invariant";
17
+ import { ClientCapabilities } from "@dxos/plugin-client";
18
+ import { PropertiesType } from "@dxos/react-client/echo";
19
+ function _check_private_redeclaration(obj, privateCollection) {
20
+ if (privateCollection.has(obj)) {
21
+ throw new TypeError("Cannot initialize the same private elements twice on an object");
22
+ }
23
+ }
24
+ function _class_apply_descriptor_get(receiver, descriptor) {
25
+ if (descriptor.get) {
26
+ return descriptor.get.call(receiver);
27
+ }
28
+ return descriptor.value;
29
+ }
30
+ function _class_apply_descriptor_set(receiver, descriptor, value) {
31
+ if (descriptor.set) {
32
+ descriptor.set.call(receiver, value);
33
+ } else {
34
+ if (!descriptor.writable) {
35
+ throw new TypeError("attempted to set read only private field");
36
+ }
37
+ descriptor.value = value;
38
+ }
39
+ }
40
+ function _class_extract_field_descriptor(receiver, privateMap, action) {
41
+ if (!privateMap.has(receiver)) {
42
+ throw new TypeError("attempted to " + action + " private field on non-instance");
43
+ }
44
+ return privateMap.get(receiver);
45
+ }
46
+ function _class_private_field_get(receiver, privateMap) {
47
+ var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
48
+ return _class_apply_descriptor_get(receiver, descriptor);
49
+ }
50
+ function _class_private_field_init(obj, privateMap, value) {
51
+ _check_private_redeclaration(obj, privateMap);
52
+ privateMap.set(obj, value);
53
+ }
54
+ function _class_private_field_set(receiver, privateMap, value) {
55
+ var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
56
+ _class_apply_descriptor_set(receiver, descriptor, value);
57
+ return value;
58
+ }
59
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-automation/src/capabilities/compute-runtime.ts";
60
+ var compute_runtime_default = (async (context) => {
61
+ const provider = await new ComputeRuntimeProviderImpl(context).open();
62
+ return contributes(AutomationCapabilities.ComputeRuntime, provider, async () => {
63
+ await provider.close();
64
+ });
65
+ });
66
+ var _runtimes = /* @__PURE__ */ new WeakMap();
67
+ var _context = /* @__PURE__ */ new WeakMap();
68
+ var ComputeRuntimeProviderImpl = class extends Resource {
69
+ async _open() {
70
+ }
71
+ async _close() {
72
+ await Promise.all(Array.from(_class_private_field_get(this, _runtimes).values()).map((rt) => rt.dispose()));
73
+ _class_private_field_get(this, _runtimes).clear();
74
+ }
75
+ getRuntime(spaceId) {
76
+ if (_class_private_field_get(this, _runtimes).has(spaceId)) {
77
+ return _class_private_field_get(this, _runtimes).get(spaceId);
78
+ }
79
+ const layer = Layer.unwrapEffect(Effect.gen(this, function* () {
80
+ const client = _class_private_field_get(this, _context).getCapability(ClientCapabilities.Client);
81
+ const serviceLayer = _class_private_field_get(this, _context).getCapability(Capabilities.AiServiceLayer) ?? Layer.die("AiService not found");
82
+ const functions = _class_private_field_get(this, _context).getCapabilities(Capabilities.Functions);
83
+ const toolkits = _class_private_field_get(this, _context).getCapabilities(Capabilities.Toolkit);
84
+ const handlers = _class_private_field_get(this, _context).getCapabilities(Capabilities.ToolkitHandler);
85
+ const allFunctions = functions.flat();
86
+ const toolkit = AiToolkit.merge(...toolkits);
87
+ const handlersLayer = Layer.mergeAll(Layer.empty, ...handlers);
88
+ const space = client.spaces.get(spaceId);
89
+ invariant(space, void 0, {
90
+ F: __dxlog_file,
91
+ L: 76,
92
+ S: this,
93
+ A: [
94
+ "space",
95
+ ""
96
+ ]
97
+ });
98
+ yield* Effect.promise(() => space.waitUntilReady());
99
+ return Layer.mergeAll(TriggerDispatcher.layer({
100
+ timeControl: "natural"
101
+ })).pipe(Layer.provideMerge(Layer.mergeAll(InvocationTracerLive, TriggerStateStore.layerKv.pipe(Layer.provide(BrowserKeyValueStore.layerLocalStorage)), serviceLayer, makeToolResolverFromFunctions(allFunctions, toolkit), makeToolExecutionServiceFromFunctions(allFunctions, toolkit, handlersLayer), CredentialsService.layerFromDatabase())), Layer.provideMerge(Layer.mergeAll(space ? DatabaseService.layer(space.db) : DatabaseService.notAvailable, space ? QueueService.layer(space.queues) : QueueService.notAvailable, LocalFunctionExecutionService.layerLive, RemoteFunctionExecutionService.mockLayer)), Layer.provideMerge(FunctionImplementationResolver.layerTest({
102
+ functions: allFunctions
103
+ })));
104
+ }));
105
+ const runtime = ManagedRuntime.make(layer);
106
+ _class_private_field_get(this, _runtimes).set(spaceId, runtime);
107
+ return runtime;
108
+ }
109
+ constructor(context) {
110
+ super(), _class_private_field_init(this, _runtimes, {
111
+ writable: true,
112
+ value: /* @__PURE__ */ new Map()
113
+ }), _class_private_field_init(this, _context, {
114
+ writable: true,
115
+ value: void 0
116
+ });
117
+ _class_private_field_set(this, _context, context);
118
+ }
119
+ };
120
+ var InvocationTracerLive = Layer.unwrapEffect(Effect.gen(function* () {
121
+ const { objects: [properties] } = yield* DatabaseService.runQuery(Query.type(PropertiesType));
122
+ invariant(properties, void 0, {
123
+ F: __dxlog_file,
124
+ L: 115,
125
+ S: this,
126
+ A: [
127
+ "properties",
128
+ ""
129
+ ]
130
+ });
131
+ if (!properties.invocationTraceQueue) {
132
+ const queue2 = yield* QueueService.createQueue({
133
+ subspaceTag: "trace"
134
+ });
135
+ properties.invocationTraceQueue = Ref.fromDXN(queue2.dxn);
136
+ }
137
+ const queue = properties.invocationTraceQueue.target;
138
+ invariant(queue, void 0, {
139
+ F: __dxlog_file,
140
+ L: 121,
141
+ S: this,
142
+ A: [
143
+ "queue",
144
+ ""
145
+ ]
146
+ });
147
+ return InvocationTracer.layerLive({
148
+ invocationTraceQueue: queue
149
+ });
150
+ }));
151
+ export {
152
+ compute_runtime_default as default
153
+ };
154
+ //# sourceMappingURL=compute-runtime-G25R3RSS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/compute-runtime.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type AiTool, AiToolkit } from '@effect/ai';\nimport { BrowserKeyValueStore } from '@effect/platform-browser';\nimport { Effect, Layer, ManagedRuntime } from 'effect';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { makeToolExecutionServiceFromFunctions, makeToolResolverFromFunctions } from '@dxos/assistant';\nimport { Resource } from '@dxos/context';\nimport { Query, Ref } from '@dxos/echo';\nimport {\n CredentialsService,\n DatabaseService,\n FunctionImplementationResolver,\n InvocationTracer,\n LocalFunctionExecutionService,\n QueueService,\n RemoteFunctionExecutionService,\n TriggerDispatcher,\n} from '@dxos/functions';\nimport { TriggerStateStore } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { type SpaceId } from '@dxos/keys';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PropertiesType } from '@dxos/react-client/echo';\n\nimport { AutomationCapabilities } from './capabilities';\n\nexport default async (context: PluginContext) => {\n const provider = await new ComputeRuntimeProviderImpl(context).open();\n return contributes(AutomationCapabilities.ComputeRuntime, provider, async () => {\n await provider.close();\n });\n};\n\nclass ComputeRuntimeProviderImpl extends Resource implements AutomationCapabilities.ComputeRuntimeProvider {\n readonly #runtimes = new Map<SpaceId, ManagedRuntime.ManagedRuntime<AutomationCapabilities.ComputeServices, never>>();\n readonly #context: PluginContext;\n\n constructor(context: PluginContext) {\n super();\n this.#context = context;\n }\n\n protected override async _open() {}\n\n protected override async _close() {\n await Promise.all(Array.from(this.#runtimes.values()).map((rt) => rt.dispose()));\n this.#runtimes.clear();\n }\n\n getRuntime(spaceId: SpaceId): ManagedRuntime.ManagedRuntime<AutomationCapabilities.ComputeServices, never> {\n if (this.#runtimes.has(spaceId)) {\n return this.#runtimes.get(spaceId)!;\n }\n\n const layer = Layer.unwrapEffect(\n Effect.gen(this, function* () {\n const client = this.#context.getCapability(ClientCapabilities.Client);\n const serviceLayer =\n this.#context.getCapability(Capabilities.AiServiceLayer) ?? Layer.die('AiService not found');\n\n // TODO(dmaretskyi): Make those reactive.\n const functions = this.#context.getCapabilities(Capabilities.Functions);\n const toolkits = this.#context.getCapabilities(Capabilities.Toolkit);\n const handlers = this.#context.getCapabilities(Capabilities.ToolkitHandler);\n\n const allFunctions = functions.flat();\n // TODO(wittjosiah): Don't cast.\n const toolkit = AiToolkit.merge(...toolkits) as AiToolkit.Any as AiToolkit.AiToolkit<AiTool.Any>;\n const handlersLayer = Layer.mergeAll(Layer.empty, ...handlers);\n\n const space = client.spaces.get(spaceId);\n invariant(space);\n yield* Effect.promise(() => space.waitUntilReady());\n\n return Layer.mergeAll(TriggerDispatcher.layer({ timeControl: 'natural' })).pipe(\n Layer.provideMerge(\n Layer.mergeAll(\n InvocationTracerLive,\n TriggerStateStore.layerKv.pipe(Layer.provide(BrowserKeyValueStore.layerLocalStorage)),\n serviceLayer,\n makeToolResolverFromFunctions(allFunctions, toolkit),\n makeToolExecutionServiceFromFunctions(allFunctions, toolkit, handlersLayer),\n CredentialsService.layerFromDatabase(),\n ),\n ),\n Layer.provideMerge(\n Layer.mergeAll(\n space ? DatabaseService.layer(space.db) : DatabaseService.notAvailable,\n space ? QueueService.layer(space.queues) : QueueService.notAvailable,\n LocalFunctionExecutionService.layerLive,\n RemoteFunctionExecutionService.mockLayer,\n ),\n ),\n Layer.provideMerge(FunctionImplementationResolver.layerTest({ functions: allFunctions })),\n );\n }),\n );\n\n const runtime = ManagedRuntime.make(layer);\n this.#runtimes.set(spaceId, runtime);\n\n return runtime;\n }\n}\n\nconst InvocationTracerLive = Layer.unwrapEffect(\n Effect.gen(function* () {\n const {\n objects: [properties],\n } = yield* DatabaseService.runQuery(Query.type(PropertiesType));\n invariant(properties);\n if (!properties.invocationTraceQueue) {\n const queue = yield* QueueService.createQueue({ subspaceTag: 'trace' });\n properties.invocationTraceQueue = Ref.fromDXN(queue.dxn);\n }\n const queue = properties.invocationTraceQueue.target;\n invariant(queue);\n return InvocationTracer.layerLive({ invocationTraceQueue: queue });\n }),\n);\n"],
5
+ "mappings": "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",
6
+ "names": ["AiToolkit", "BrowserKeyValueStore", "Effect", "Layer", "ManagedRuntime", "Capabilities", "contributes", "makeToolExecutionServiceFromFunctions", "makeToolResolverFromFunctions", "Resource", "Query", "Ref", "CredentialsService", "DatabaseService", "FunctionImplementationResolver", "InvocationTracer", "LocalFunctionExecutionService", "QueueService", "RemoteFunctionExecutionService", "TriggerDispatcher", "TriggerStateStore", "invariant", "ClientCapabilities", "PropertiesType", "context", "provider", "ComputeRuntimeProviderImpl", "open", "contributes", "AutomationCapabilities", "ComputeRuntime", "close", "Resource", "_open", "_close", "Promise", "all", "Array", "from", "values", "map", "rt", "dispose", "clear", "getRuntime", "spaceId", "has", "get", "layer", "Layer", "unwrapEffect", "Effect", "gen", "client", "getCapability", "ClientCapabilities", "Client", "serviceLayer", "Capabilities", "AiServiceLayer", "die", "functions", "getCapabilities", "Functions", "toolkits", "Toolkit", "handlers", "ToolkitHandler", "allFunctions", "flat", "toolkit", "AiToolkit", "merge", "handlersLayer", "mergeAll", "empty", "space", "spaces", "invariant", "promise", "waitUntilReady", "TriggerDispatcher", "timeControl", "pipe", "provideMerge", "InvocationTracerLive", "TriggerStateStore", "layerKv", "provide", "BrowserKeyValueStore", "layerLocalStorage", "makeToolResolverFromFunctions", "makeToolExecutionServiceFromFunctions", "CredentialsService", "layerFromDatabase", "DatabaseService", "db", "notAvailable", "QueueService", "queues", "LocalFunctionExecutionService", "layerLive", "RemoteFunctionExecutionService", "mockLayer", "FunctionImplementationResolver", "layerTest", "runtime", "ManagedRuntime", "make", "set", "Map", "objects", "properties", "runQuery", "Query", "type", "PropertiesType", "invocationTraceQueue", "queue", "createQueue", "subspaceTag", "Ref", "fromDXN", "dxn", "target", "InvocationTracer"]
7
+ }
@@ -0,0 +1,12 @@
1
+ import {
2
+ useComputeRuntimeCallback,
3
+ useTriggerRuntimeControls
4
+ } from "../chunk-P6YOYDXP.mjs";
5
+ import "../chunk-UHXDXRP4.mjs";
6
+ import "../chunk-CRUNQZ2M.mjs";
7
+ import "../chunk-GW5U2DGT.mjs";
8
+ export {
9
+ useComputeRuntimeCallback,
10
+ useTriggerRuntimeControls
11
+ };
12
+ //# sourceMappingURL=index.mjs.map
@@ -1,38 +1,43 @@
1
1
  import {
2
- AutomationContainer,
3
2
  AutomationPanel,
3
+ AutomationSettings,
4
4
  FunctionsContainer,
5
5
  FunctionsPanel
6
- } from "./chunk-VQWJ5UYA.mjs";
6
+ } from "./chunk-NQGKPPXI.mjs";
7
+ import {
8
+ AppGraphBuilder,
9
+ ComputeRuntime,
10
+ IntentResolver,
11
+ ReactSurface
12
+ } from "./chunk-UHXDXRP4.mjs";
13
+ import {
14
+ AutomationCapabilities
15
+ } from "./chunk-CRUNQZ2M.mjs";
7
16
  import {
8
17
  TriggerEditor
9
- } from "./chunk-N5VLW7UZ.mjs";
18
+ } from "./chunk-S4SM663I.mjs";
10
19
  import {
11
20
  AUTOMATION_PLUGIN,
12
21
  meta
13
- } from "./chunk-IHAKPP5A.mjs";
22
+ } from "./chunk-GW5U2DGT.mjs";
14
23
 
15
- // packages/plugins/plugin-automation/src/AutomationPlugin.tsx
16
- import { Capabilities, contributes, defineModule, definePlugin, Events } from "@dxos/app-framework";
17
- import { FunctionType, FunctionTrigger } from "@dxos/functions";
24
+ // src/AutomationPlugin.tsx
25
+ import { Capabilities, Events, contributes, defineModule, definePlugin } from "@dxos/app-framework";
26
+ import { FunctionTrigger, FunctionType } from "@dxos/functions";
18
27
  import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
19
28
 
20
- // packages/plugins/plugin-automation/src/capabilities/index.ts
21
- import { lazy } from "@dxos/app-framework";
22
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-T34RV5UA.mjs"));
23
- var IntentResolver = lazy(() => import("./intent-resolver-AX46HSU7.mjs"));
24
- var ReactSurface = lazy(() => import("./react-surface-Z7A272CA.mjs"));
25
-
26
- // packages/plugins/plugin-automation/src/translations.ts
27
- var translations_default = [
29
+ // src/translations.ts
30
+ var translations = [
28
31
  {
29
32
  "en-US": {
30
- [AUTOMATION_PLUGIN]: {
33
+ [meta.id]: {
31
34
  "plugin name": "Automation",
32
35
  "automation panel label": "Automations",
33
36
  "script automation label": "Automation",
34
37
  "automation verbose label": "Manage automations",
35
38
  "automation description": "You can manage all the triggers which automate your space here.",
39
+ "runtime label": "Enable Local Runtime",
40
+ "runtime description": "This will start a trigger dispatcher locally for this space to run triggers on your device while Composer is running.",
36
41
  "functions panel label": "Functions",
37
42
  "functions verbose label": "Manage deployed functions",
38
43
  "functions description": "You can manage all the functions deployed from your space on EDGE here.",
@@ -57,12 +62,12 @@ var translations_default = [
57
62
  }
58
63
  ];
59
64
 
60
- // packages/plugins/plugin-automation/src/AutomationPlugin.tsx
65
+ // src/AutomationPlugin.tsx
61
66
  var AutomationPlugin = () => definePlugin(meta, [
62
67
  defineModule({
63
68
  id: `${meta.id}/module/translations`,
64
69
  activatesOn: Events.SetupTranslations,
65
- activate: () => contributes(Capabilities.Translations, translations_default)
70
+ activate: () => contributes(Capabilities.Translations, translations)
66
71
  }),
67
72
  defineModule({
68
73
  id: `${meta.id}/module/schema`,
@@ -86,13 +91,19 @@ var AutomationPlugin = () => definePlugin(meta, [
86
91
  id: `${meta.id}/module/react-surface`,
87
92
  activatesOn: Events.SetupReactSurface,
88
93
  activate: ReactSurface
94
+ }),
95
+ defineModule({
96
+ id: `${meta.id}/module/compute-runtime`,
97
+ activatesOn: ClientEvents.ClientReady,
98
+ activate: ComputeRuntime
89
99
  })
90
100
  ]);
91
101
  export {
92
102
  AUTOMATION_PLUGIN,
93
- AutomationContainer,
103
+ AutomationCapabilities,
94
104
  AutomationPanel,
95
105
  AutomationPlugin,
106
+ AutomationSettings,
96
107
  FunctionsContainer,
97
108
  FunctionsPanel,
98
109
  TriggerEditor,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/AutomationPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { FunctionType, FunctionTrigger } from '@dxos/functions';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\n\nimport { AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const AutomationPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [FunctionType, FunctionTrigger]),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { AUTOMATION_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [AUTOMATION_PLUGIN]: {\n 'plugin name': 'Automation',\n 'automation panel label': 'Automations',\n 'script automation label': 'Automation',\n 'automation verbose label': 'Manage automations',\n 'automation description': 'You can manage all the triggers which automate your space here.',\n\n 'functions panel label': 'Functions',\n 'functions verbose label': 'Manage deployed functions',\n 'functions description': 'You can manage all the functions deployed from your space on EDGE here.',\n 'function copy id': 'Copy Function ID',\n 'no functions found': 'No functions found',\n 'go to function source button label': 'Show function source',\n\n 'trigger editor title': 'Configure Trigger',\n 'new trigger label': 'Add Trigger',\n 'trigger type timer': 'Timer',\n 'trigger type webhook': 'Webhook',\n 'trigger type websocket': 'Websocket',\n 'trigger type subscription': 'Subscription',\n 'trigger type email': 'Email',\n 'trigger type queue': 'Queue',\n\n 'trigger copy url': 'Copy URL',\n 'trigger copy email': 'Copy Email',\n\n 'trigger payload add': 'Add',\n 'trigger payload remove': 'Remove',\n 'trigger payload prop name placeholder': 'New payload property name',\n },\n },\n },\n];\n"],
5
- "mappings": ";;;;;;;;;;;;;;;AAIA,SAASA,cAAcC,aAAaC,cAAcC,cAAcC,cAAc;AAC9E,SAASC,cAAcC,uBAAuB;AAC9C,SAASC,oBAAoBC,oBAAoB;;;ACFjD,SAASC,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACF9C,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACG,iBAAAA,GAAoB;QACnB,eAAe;QACf,0BAA0B;QAC1B,2BAA2B;QAC3B,4BAA4B;QAC5B,0BAA0B;QAE1B,yBAAyB;QACzB,2BAA2B;QAC3B,yBAAyB;QACzB,oBAAoB;QACpB,sBAAsB;QACtB,sCAAsC;QAEtC,wBAAwB;QACxB,qBAAqB;QACrB,sBAAsB;QACtB,wBAAwB;QACxB,0BAA0B;QAC1B,6BAA6B;QAC7B,sBAAsB;QACtB,sBAAsB;QAEtB,oBAAoB;QACpB,sBAAsB;QAEtB,uBAAuB;QACvB,0BAA0B;QAC1B,yCAAyC;MAC3C;IACF;EACF;;;;AF5BK,IAAMC,mBAAmB,MAC9BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAcC,oBAAAA;EACzD,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaQ,aAAaC;IAC1BN,UAAU,MAAMC,YAAYM,mBAAmBC,QAAQ;MAACC;MAAcC;KAAgB;EACxF,CAAA;EACAf,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOa;IACpBX,UAAUY;EACZ,CAAA;EACAjB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOe;IACpBb,UAAUc;EACZ,CAAA;EACAnB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOiB;IACpBf,UAAUgB;EACZ,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "defineModule", "definePlugin", "Events", "FunctionType", "FunctionTrigger", "ClientCapabilities", "ClientEvents", "lazy", "AppGraphBuilder", "lazy", "IntentResolver", "ReactSurface", "AUTOMATION_PLUGIN", "AutomationPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "ClientEvents", "SetupSchema", "ClientCapabilities", "Schema", "FunctionType", "FunctionTrigger", "SetupAppGraph", "AppGraphBuilder", "SetupIntentResolver", "IntentResolver", "SetupReactSurface", "ReactSurface"]
3
+ "sources": ["../../../src/AutomationPlugin.tsx", "../../../src/translations.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, defineModule, definePlugin } from '@dxos/app-framework';\nimport { FunctionTrigger, FunctionType } from '@dxos/functions';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\n\nimport { AppGraphBuilder, ComputeRuntime, IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const AutomationPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [FunctionType, FunctionTrigger]),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/compute-runtime`,\n activatesOn: ClientEvents.ClientReady,\n activate: ComputeRuntime,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin name': 'Automation',\n 'automation panel label': 'Automations',\n 'script automation label': 'Automation',\n 'automation verbose label': 'Manage automations',\n 'automation description': 'You can manage all the triggers which automate your space here.',\n\n 'runtime label': 'Enable Local Runtime',\n 'runtime description':\n 'This will start a trigger dispatcher locally for this space to run triggers on your device while Composer is running.',\n\n 'functions panel label': 'Functions',\n 'functions verbose label': 'Manage deployed functions',\n 'functions description': 'You can manage all the functions deployed from your space on EDGE here.',\n 'function copy id': 'Copy Function ID',\n 'no functions found': 'No functions found',\n 'go to function source button label': 'Show function source',\n\n 'trigger editor title': 'Configure Trigger',\n 'new trigger label': 'Add Trigger',\n 'trigger type timer': 'Timer',\n 'trigger type webhook': 'Webhook',\n 'trigger type websocket': 'Websocket',\n 'trigger type subscription': 'Subscription',\n 'trigger type email': 'Email',\n 'trigger type queue': 'Queue',\n\n 'trigger copy url': 'Copy URL',\n 'trigger copy email': 'Copy Email',\n\n 'trigger payload add': 'Add',\n 'trigger payload remove': 'Remove',\n 'trigger payload prop name placeholder': 'New payload property name',\n },\n },\n },\n] as const satisfies Resource[];\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,cAAcC,QAAQC,aAAaC,cAAcC,oBAAoB;AAC9E,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,oBAAoBC,oBAAoB;;;ACE1C,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,0BAA0B;QAC1B,2BAA2B;QAC3B,4BAA4B;QAC5B,0BAA0B;QAE1B,iBAAiB;QACjB,uBACE;QAEF,yBAAyB;QACzB,2BAA2B;QAC3B,yBAAyB;QACzB,oBAAoB;QACpB,sBAAsB;QACtB,sCAAsC;QAEtC,wBAAwB;QACxB,qBAAqB;QACrB,sBAAsB;QACtB,wBAAwB;QACxB,0BAA0B;QAC1B,6BAA6B;QAC7B,sBAAsB;QACtB,sBAAsB;QAEtB,oBAAoB;QACpB,sBAAsB;QAEtB,uBAAuB;QACvB,0BAA0B;QAC1B,yCAAyC;MAC3C;IACF;EACF;;;;ADlCK,IAAMC,mBAAmB,MAC9BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAcC,YAAAA;EACzD,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaQ,aAAaC;IAC1BN,UAAU,MAAMC,YAAYM,mBAAmBC,QAAQ;MAACC;MAAcC;KAAgB;EACxF,CAAA;EACAf,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOa;IACpBX,UAAUY;EACZ,CAAA;EACAjB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOe;IACpBb,UAAUc;EACZ,CAAA;EACAnB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOiB;IACpBf,UAAUgB;EACZ,CAAA;EACArB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaQ,aAAaY;IAC1BjB,UAAUkB;EACZ,CAAA;CACD;",
6
+ "names": ["Capabilities", "Events", "contributes", "defineModule", "definePlugin", "FunctionTrigger", "FunctionType", "ClientCapabilities", "ClientEvents", "translations", "meta", "id", "AutomationPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "ClientEvents", "SetupSchema", "ClientCapabilities", "Schema", "FunctionType", "FunctionTrigger", "SetupAppGraph", "AppGraphBuilder", "SetupIntentResolver", "IntentResolver", "SetupReactSurface", "ReactSurface", "ClientReady", "ComputeRuntime"]
7
7
  }