@dxos/plugin-automation 0.8.4-main.5ea62a8 → 0.8.4-main.66e292d

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 (191) hide show
  1. package/dist/lib/browser/AutomationPanel-M4M77L4V.mjs +11 -0
  2. package/dist/lib/browser/AutomationSettings-4HCI6KJR.mjs +68 -0
  3. package/dist/lib/browser/AutomationSettings-4HCI6KJR.mjs.map +7 -0
  4. package/dist/lib/browser/FunctionsContainer-CDVBRQCT.mjs +144 -0
  5. package/dist/lib/browser/FunctionsContainer-CDVBRQCT.mjs.map +7 -0
  6. package/dist/lib/browser/{FunctionsPanel-I443Y6KB.mjs → FunctionsPanel-CRW6SJUN.mjs} +3 -3
  7. package/dist/lib/browser/{app-graph-builder-4OFKIRAI.mjs → app-graph-builder-W7LLC6XW.mjs} +12 -11
  8. package/dist/lib/browser/app-graph-builder-W7LLC6XW.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-4MBM6C6A.mjs +100 -0
  10. package/dist/lib/browser/chunk-4MBM6C6A.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-S4SM663I.mjs → chunk-7W6QMY3L.mjs} +61 -24
  12. package/dist/lib/browser/chunk-7W6QMY3L.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-CZVA5NMD.mjs +14 -0
  14. package/dist/lib/browser/chunk-CZVA5NMD.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-LZQFZO3B.mjs +17 -0
  16. package/dist/lib/browser/chunk-LZQFZO3B.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-PUUREQ2B.mjs → chunk-T6ZESHDY.mjs} +75 -27
  18. package/dist/lib/browser/chunk-T6ZESHDY.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-Z5DT4MHW.mjs → chunk-TWWFNOIR.mjs} +30 -15
  20. package/dist/lib/browser/chunk-TWWFNOIR.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-XAKZ4ANY.mjs +15 -0
  22. package/dist/lib/browser/chunk-XAKZ4ANY.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-HN7OHFCB.mjs → chunk-YBPJCY3F.mjs} +3 -3
  24. package/dist/lib/browser/chunk-YBPJCY3F.mjs.map +7 -0
  25. package/dist/lib/browser/compute-runtime-B4XJVY4Y.mjs +113 -0
  26. package/dist/lib/browser/compute-runtime-B4XJVY4Y.mjs.map +7 -0
  27. package/dist/lib/browser/hooks/index.mjs +13 -0
  28. package/dist/lib/browser/index.mjs +47 -18
  29. package/dist/lib/browser/index.mjs.map +4 -4
  30. package/dist/lib/browser/{intent-resolver-4PSYSQQG.mjs → intent-resolver-5HR7M7T6.mjs} +10 -10
  31. package/dist/lib/browser/intent-resolver-5HR7M7T6.mjs.map +7 -0
  32. package/dist/lib/browser/meta.json +1 -1
  33. package/dist/lib/browser/{react-surface-N4ZVZH4O.mjs → react-surface-TKU2EQ5A.mjs} +20 -20
  34. package/dist/lib/browser/react-surface-TKU2EQ5A.mjs.map +7 -0
  35. package/dist/lib/browser/types/index.mjs +2 -2
  36. package/dist/lib/node-esm/{AutomationPanel-KUP2555Y.mjs → AutomationPanel-F5CTC6AT.mjs} +4 -4
  37. package/dist/lib/node-esm/AutomationSettings-BQLJIFRT.mjs +69 -0
  38. package/dist/lib/node-esm/AutomationSettings-BQLJIFRT.mjs.map +7 -0
  39. package/dist/lib/node-esm/FunctionsContainer-ZHHJPQAZ.mjs +145 -0
  40. package/dist/lib/node-esm/FunctionsContainer-ZHHJPQAZ.mjs.map +7 -0
  41. package/dist/lib/node-esm/{FunctionsPanel-ELINCXPW.mjs → FunctionsPanel-RVVCS6VH.mjs} +3 -3
  42. package/dist/lib/node-esm/FunctionsPanel-RVVCS6VH.mjs.map +7 -0
  43. package/dist/lib/node-esm/{app-graph-builder-555IHYOB.mjs → app-graph-builder-SLQOO7GH.mjs} +12 -11
  44. package/dist/lib/node-esm/app-graph-builder-SLQOO7GH.mjs.map +7 -0
  45. package/dist/lib/node-esm/chunk-3IYSC75Z.mjs +16 -0
  46. package/dist/lib/node-esm/chunk-3IYSC75Z.mjs.map +7 -0
  47. package/dist/lib/node-esm/chunk-7B6NAAI6.mjs +101 -0
  48. package/dist/lib/node-esm/chunk-7B6NAAI6.mjs.map +7 -0
  49. package/dist/lib/node-esm/chunk-CEVIVRTY.mjs +19 -0
  50. package/dist/lib/node-esm/chunk-CEVIVRTY.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-ZOJVKPCA.mjs → chunk-CF2SWXPW.mjs} +61 -24
  52. package/dist/lib/node-esm/chunk-CF2SWXPW.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-OEZNHUL2.mjs → chunk-ECJKIUBO.mjs} +3 -3
  54. package/dist/lib/node-esm/chunk-ECJKIUBO.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-JU7JA5X4.mjs → chunk-F76XVENA.mjs} +75 -27
  56. package/dist/lib/node-esm/chunk-F76XVENA.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-KB7NFEYY.mjs +16 -0
  58. package/dist/lib/node-esm/chunk-KB7NFEYY.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-CX2AILIS.mjs → chunk-RVK52XGK.mjs} +30 -15
  60. package/dist/lib/node-esm/chunk-RVK52XGK.mjs.map +7 -0
  61. package/dist/lib/node-esm/compute-runtime-JUWTQXOV.mjs +114 -0
  62. package/dist/lib/node-esm/compute-runtime-JUWTQXOV.mjs.map +7 -0
  63. package/dist/lib/node-esm/hooks/index.mjs +14 -0
  64. package/dist/lib/node-esm/hooks/index.mjs.map +7 -0
  65. package/dist/lib/node-esm/index.mjs +47 -18
  66. package/dist/lib/node-esm/index.mjs.map +4 -4
  67. package/dist/lib/node-esm/{intent-resolver-6ZGBUILG.mjs → intent-resolver-KDRYB5BC.mjs} +10 -10
  68. package/dist/lib/node-esm/intent-resolver-KDRYB5BC.mjs.map +7 -0
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/{react-surface-XE7ILYWA.mjs → react-surface-7QROSEGH.mjs} +20 -20
  71. package/dist/lib/node-esm/react-surface-7QROSEGH.mjs.map +7 -0
  72. package/dist/lib/node-esm/types/index.mjs +2 -2
  73. package/dist/types/src/AutomationPlugin.d.ts +1 -1
  74. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  76. package/dist/types/src/capabilities/capabilities.d.ts +20 -0
  77. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  78. package/dist/types/src/capabilities/compute-runtime.d.ts +5 -0
  79. package/dist/types/src/capabilities/compute-runtime.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/index.d.ts +2 -0
  81. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  82. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  83. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +6 -5
  84. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  85. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +5 -1
  86. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
  87. package/dist/types/src/components/AutomationSettings.d.ts +5 -0
  88. package/dist/types/src/components/AutomationSettings.d.ts.map +1 -0
  89. package/dist/types/src/components/FunctionsContainer.d.ts.map +1 -1
  90. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
  91. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts +8 -0
  92. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts.map +1 -0
  93. package/dist/types/src/components/FunctionsRegistry/index.d.ts +2 -0
  94. package/dist/types/src/components/FunctionsRegistry/index.d.ts.map +1 -0
  95. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts +2 -2
  96. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +1 -1
  97. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +1 -1
  98. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +7 -5
  99. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  100. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +9 -4
  101. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
  102. package/dist/types/src/components/TriggerSettings.d.ts +6 -0
  103. package/dist/types/src/components/TriggerSettings.d.ts.map +1 -0
  104. package/dist/types/src/components/index.d.ts +2 -2
  105. package/dist/types/src/components/index.d.ts.map +1 -1
  106. package/dist/types/src/events.d.ts +4 -0
  107. package/dist/types/src/events.d.ts.map +1 -0
  108. package/dist/types/src/hooks/index.d.ts +3 -0
  109. package/dist/types/src/hooks/index.d.ts.map +1 -0
  110. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +12 -0
  111. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +1 -0
  112. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +11 -0
  113. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -0
  114. package/dist/types/src/index.d.ts +3 -0
  115. package/dist/types/src/index.d.ts.map +1 -1
  116. package/dist/types/src/meta.d.ts +0 -1
  117. package/dist/types/src/meta.d.ts.map +1 -1
  118. package/dist/types/src/testing/test-functions.d.ts +2 -3
  119. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  120. package/dist/types/src/translations.d.ts +5 -0
  121. package/dist/types/src/translations.d.ts.map +1 -1
  122. package/dist/types/src/types/schema.d.ts +1 -1
  123. package/dist/types/src/types/schema.d.ts.map +1 -1
  124. package/dist/types/tsconfig.tsbuildinfo +1 -1
  125. package/package.json +61 -38
  126. package/src/AutomationPlugin.tsx +36 -30
  127. package/src/capabilities/app-graph-builder.ts +14 -13
  128. package/src/capabilities/capabilities.ts +41 -0
  129. package/src/capabilities/compute-runtime.ts +129 -0
  130. package/src/capabilities/index.ts +3 -0
  131. package/src/capabilities/intent-resolver.ts +5 -5
  132. package/src/capabilities/react-surface.tsx +15 -15
  133. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +7 -11
  134. package/src/components/AutomationPanel/AutomationPanel.tsx +109 -38
  135. package/src/components/{AutomationContainer.tsx → AutomationSettings.tsx} +8 -6
  136. package/src/components/FunctionsContainer.tsx +11 -4
  137. package/src/components/FunctionsPanel/FunctionsPanel.tsx +35 -16
  138. package/src/components/FunctionsRegistry/FunctionsRegistry.tsx +127 -0
  139. package/src/components/FunctionsRegistry/index.ts +5 -0
  140. package/src/components/TriggerEditor/FunctionInputEditor.tsx +10 -4
  141. package/src/components/TriggerEditor/SpecSelector.tsx +14 -8
  142. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +63 -23
  143. package/src/components/TriggerEditor/TriggerEditor.tsx +45 -19
  144. package/src/components/TriggerSettings.tsx +25 -0
  145. package/src/components/index.ts +1 -1
  146. package/src/events.ts +11 -0
  147. package/src/hooks/index.ts +6 -0
  148. package/src/hooks/useComputeRuntimeCallback.ts +68 -0
  149. package/src/hooks/useTriggerRuntimeControls.ts +53 -0
  150. package/src/index.ts +3 -0
  151. package/src/meta.ts +6 -5
  152. package/src/testing/test-functions.ts +3 -3
  153. package/src/translations.ts +7 -0
  154. package/src/types/schema.ts +1 -1
  155. package/dist/lib/browser/AutomationContainer-A46DB774.mjs +0 -35
  156. package/dist/lib/browser/AutomationContainer-A46DB774.mjs.map +0 -7
  157. package/dist/lib/browser/AutomationPanel-TQXXZHLR.mjs +0 -11
  158. package/dist/lib/browser/FunctionsContainer-U4HASI4P.mjs +0 -36
  159. package/dist/lib/browser/FunctionsContainer-U4HASI4P.mjs.map +0 -7
  160. package/dist/lib/browser/app-graph-builder-4OFKIRAI.mjs.map +0 -7
  161. package/dist/lib/browser/chunk-GW5U2DGT.mjs +0 -15
  162. package/dist/lib/browser/chunk-GW5U2DGT.mjs.map +0 -7
  163. package/dist/lib/browser/chunk-HN7OHFCB.mjs.map +0 -7
  164. package/dist/lib/browser/chunk-IAUUJ5RL.mjs +0 -14
  165. package/dist/lib/browser/chunk-IAUUJ5RL.mjs.map +0 -7
  166. package/dist/lib/browser/chunk-PUUREQ2B.mjs.map +0 -7
  167. package/dist/lib/browser/chunk-S4SM663I.mjs.map +0 -7
  168. package/dist/lib/browser/chunk-Z5DT4MHW.mjs.map +0 -7
  169. package/dist/lib/browser/intent-resolver-4PSYSQQG.mjs.map +0 -7
  170. package/dist/lib/browser/react-surface-N4ZVZH4O.mjs.map +0 -7
  171. package/dist/lib/node-esm/AutomationContainer-5S3BBZVY.mjs +0 -36
  172. package/dist/lib/node-esm/AutomationContainer-5S3BBZVY.mjs.map +0 -7
  173. package/dist/lib/node-esm/FunctionsContainer-VZIVURH6.mjs +0 -37
  174. package/dist/lib/node-esm/FunctionsContainer-VZIVURH6.mjs.map +0 -7
  175. package/dist/lib/node-esm/app-graph-builder-555IHYOB.mjs.map +0 -7
  176. package/dist/lib/node-esm/chunk-7XZGYNT6.mjs +0 -16
  177. package/dist/lib/node-esm/chunk-7XZGYNT6.mjs.map +0 -7
  178. package/dist/lib/node-esm/chunk-CX2AILIS.mjs.map +0 -7
  179. package/dist/lib/node-esm/chunk-JU7JA5X4.mjs.map +0 -7
  180. package/dist/lib/node-esm/chunk-NK5N3QKD.mjs +0 -17
  181. package/dist/lib/node-esm/chunk-NK5N3QKD.mjs.map +0 -7
  182. package/dist/lib/node-esm/chunk-OEZNHUL2.mjs.map +0 -7
  183. package/dist/lib/node-esm/chunk-ZOJVKPCA.mjs.map +0 -7
  184. package/dist/lib/node-esm/intent-resolver-6ZGBUILG.mjs.map +0 -7
  185. package/dist/lib/node-esm/react-surface-XE7ILYWA.mjs.map +0 -7
  186. package/dist/types/src/components/AutomationContainer.d.ts +0 -5
  187. package/dist/types/src/components/AutomationContainer.d.ts.map +0 -1
  188. /package/dist/lib/browser/{AutomationPanel-TQXXZHLR.mjs.map → AutomationPanel-M4M77L4V.mjs.map} +0 -0
  189. /package/dist/lib/browser/{FunctionsPanel-I443Y6KB.mjs.map → FunctionsPanel-CRW6SJUN.mjs.map} +0 -0
  190. /package/dist/lib/{node-esm/AutomationPanel-KUP2555Y.mjs.map → browser/hooks/index.mjs.map} +0 -0
  191. /package/dist/lib/node-esm/{FunctionsPanel-ELINCXPW.mjs.map → AutomationPanel-F5CTC6AT.mjs.map} +0 -0
@@ -0,0 +1,11 @@
1
+ import {
2
+ AutomationPanel,
3
+ AutomationPanel_default
4
+ } from "./chunk-T6ZESHDY.mjs";
5
+ import "./chunk-7W6QMY3L.mjs";
6
+ import "./chunk-LZQFZO3B.mjs";
7
+ export {
8
+ AutomationPanel,
9
+ AutomationPanel_default as default
10
+ };
11
+ //# sourceMappingURL=AutomationPanel-M4M77L4V.mjs.map
@@ -0,0 +1,68 @@
1
+ import {
2
+ useTriggerRuntimeControls
3
+ } from "./chunk-4MBM6C6A.mjs";
4
+ import "./chunk-XAKZ4ANY.mjs";
5
+ import {
6
+ AutomationPanel
7
+ } from "./chunk-T6ZESHDY.mjs";
8
+ import "./chunk-7W6QMY3L.mjs";
9
+ import {
10
+ meta
11
+ } from "./chunk-LZQFZO3B.mjs";
12
+
13
+ // src/components/AutomationSettings.tsx
14
+ import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
15
+ import React2 from "react";
16
+ import { useTranslation as useTranslation2 } from "@dxos/react-ui";
17
+ import { ControlPage, ControlSection } from "@dxos/react-ui-form";
18
+
19
+ // src/components/TriggerSettings.tsx
20
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
21
+ import React from "react";
22
+ import { Input, useTranslation } from "@dxos/react-ui";
23
+ import { ControlItemInput } from "@dxos/react-ui-form";
24
+ var TriggersSettings = ({ space }) => {
25
+ var _effect = _useSignals();
26
+ try {
27
+ const { triggers, isRunning, start, stop } = useTriggerRuntimeControls(space);
28
+ const { t } = useTranslation(meta.id);
29
+ return /* @__PURE__ */ React.createElement("div", {
30
+ className: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
31
+ }, /* @__PURE__ */ React.createElement(ControlItemInput, {
32
+ title: t("runtime label"),
33
+ description: t("runtime description")
34
+ }, /* @__PURE__ */ React.createElement(Input.Switch, {
35
+ classNames: "justify-self-end",
36
+ checked: isRunning,
37
+ onCheckedChange: isRunning ? stop : start
38
+ })));
39
+ } finally {
40
+ _effect.f();
41
+ }
42
+ };
43
+
44
+ // src/components/AutomationSettings.tsx
45
+ var AutomationSettings = (props) => {
46
+ var _effect = _useSignals2();
47
+ try {
48
+ const { t } = useTranslation2(meta.id);
49
+ return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
50
+ title: t("automation verbose label", {
51
+ ns: meta.id
52
+ }),
53
+ description: t("automation description", {
54
+ ns: meta.id
55
+ })
56
+ }, /* @__PURE__ */ React2.createElement(AutomationPanel, props), /* @__PURE__ */ React2.createElement(TriggersSettings, {
57
+ space: props.space
58
+ })));
59
+ } finally {
60
+ _effect.f();
61
+ }
62
+ };
63
+ var AutomationSettings_default = AutomationSettings;
64
+ export {
65
+ AutomationSettings,
66
+ AutomationSettings_default as default
67
+ };
68
+ //# sourceMappingURL=AutomationSettings-4HCI6KJR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AutomationSettings.tsx", "../../../src/components/TriggerSettings.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useTranslation } from '@dxos/react-ui';\nimport { ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\n\nimport { AutomationPanel, type AutomationPanelProps } from './AutomationPanel';\nimport { TriggersSettings } from './TriggerSettings';\n\nexport const AutomationSettings = (props: AutomationPanelProps) => {\n const { t } = useTranslation(meta.id);\n return (\n <ControlPage>\n <ControlSection\n title={t('automation verbose label', { ns: meta.id })}\n description={t('automation description', { ns: meta.id })}\n >\n <AutomationPanel {...props} />\n <TriggersSettings space={props.space} />\n </ControlSection>\n </ControlPage>\n );\n};\n\nexport default AutomationSettings;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\nimport { Input, useTranslation } from '@dxos/react-ui';\nimport { ControlItemInput } from '@dxos/react-ui-form';\n\nimport { useTriggerRuntimeControls } from '../hooks';\nimport { meta } from '../meta';\n\nexport const TriggersSettings = ({ space }: { space: Space }) => {\n const { triggers, isRunning, start, stop } = useTriggerRuntimeControls(space);\n const { t } = useTranslation(meta.id);\n\n return (\n <div className='container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]'>\n <ControlItemInput title={t('runtime label')} description={t('runtime description')}>\n <Input.Switch classNames='justify-self-end' checked={isRunning} onCheckedChange={isRunning ? stop : start} />\n </ControlItemInput>\n </div>\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAIA,OAAOA,YAAW;AAElB,SAASC,kBAAAA,uBAAsB;AAC/B,SAASC,aAAaC,sBAAsB;;;;ACH5C,OAAOC,WAAW;AAGlB,SAASC,OAAOC,sBAAsB;AACtC,SAASC,wBAAwB;AAK1B,IAAMC,mBAAmB,CAAC,EAAEC,MAAK,MAAoB;;;AAC1D,UAAM,EAAEC,UAAUC,WAAWC,OAAOC,KAAI,IAAKC,0BAA0BL,KAAAA;AACvE,UAAM,EAAEM,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,WACE,sBAAA,cAACC,OAAAA;MAAIC,WAAU;OACb,sBAAA,cAACC,kBAAAA;MAAiBC,OAAOP,EAAE,eAAA;MAAkBQ,aAAaR,EAAE,qBAAA;OAC1D,sBAAA,cAACS,MAAMC,QAAM;MAACC,YAAW;MAAmBC,SAAShB;MAAWiB,iBAAiBjB,YAAYE,OAAOD;;;;;AAI5G;;;ADVO,IAAMiB,qBAAqB,CAACC,UAAAA;;;AACjC,UAAM,EAAEC,EAAC,IAAKC,gBAAeC,KAAKC,EAAE;AACpC,WACE,gBAAAC,OAAA,cAACC,aAAAA,MACC,gBAAAD,OAAA,cAACE,gBAAAA;MACCC,OAAOP,EAAE,4BAA4B;QAAEQ,IAAIN,KAAKC;MAAG,CAAA;MACnDM,aAAaT,EAAE,0BAA0B;QAAEQ,IAAIN,KAAKC;MAAG,CAAA;OAEvD,gBAAAC,OAAA,cAACM,iBAAoBX,KAAAA,GACrB,gBAAAK,OAAA,cAACO,kBAAAA;MAAiBC,OAAOb,MAAMa;;;;;AAIvC;AAEA,IAAA,6BAAed;",
6
+ "names": ["React", "useTranslation", "ControlPage", "ControlSection", "React", "Input", "useTranslation", "ControlItemInput", "TriggersSettings", "space", "triggers", "isRunning", "start", "stop", "useTriggerRuntimeControls", "t", "useTranslation", "meta", "id", "div", "className", "ControlItemInput", "title", "description", "Input", "Switch", "classNames", "checked", "onCheckedChange", "AutomationSettings", "props", "t", "useTranslation", "meta", "id", "React", "ControlPage", "ControlSection", "title", "ns", "description", "AutomationPanel", "TriggersSettings", "space"]
7
+ }
@@ -0,0 +1,144 @@
1
+ import {
2
+ FunctionsPanel
3
+ } from "./chunk-TWWFNOIR.mjs";
4
+ import {
5
+ meta
6
+ } from "./chunk-LZQFZO3B.mjs";
7
+
8
+ // src/components/FunctionsContainer.tsx
9
+ import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
10
+ import React2 from "react";
11
+ import { useTranslation as useTranslation2 } from "@dxos/react-ui";
12
+ import { ControlPage, ControlSection } from "@dxos/react-ui-form";
13
+
14
+ // src/components/FunctionsRegistry/FunctionsRegistry.tsx
15
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
16
+ import * as Array from "effect/Array";
17
+ import * as EffectFunction from "effect/Function";
18
+ import * as Order from "effect/Order";
19
+ import * as Schema from "effect/Schema";
20
+ import { useState } from "react";
21
+ import React, { useCallback } from "react";
22
+ import { Function } from "@dxos/functions";
23
+ import { getDeployedFunctions } from "@dxos/functions-runtime/edge";
24
+ import { useClient } from "@dxos/react-client";
25
+ import { Filter, Query, useQuery } from "@dxos/react-client/echo";
26
+ import { useAsyncEffect } from "@dxos/react-ui";
27
+ import { IconButton, useTranslation } from "@dxos/react-ui";
28
+ import { controlItemClasses } from "@dxos/react-ui-form";
29
+ import { List } from "@dxos/react-ui-list";
30
+ import { ghostHover, mx } from "@dxos/react-ui-theme";
31
+ var grid = "grid grid-cols-[1fr_1fr_auto] min-bs-[2.5rem]";
32
+ var FunctionsRegistry = ({ space }) => {
33
+ var _effect = _useSignals();
34
+ try {
35
+ const client = useClient();
36
+ const [loading, setLoading] = useState(true);
37
+ const [functions, setFunctions] = useState([]);
38
+ const { t } = useTranslation(meta.id);
39
+ const dbFunctions = useQuery(space, Filter.type(Function.Function));
40
+ const state = (func) => {
41
+ const dbFunction = dbFunctions.find((f) => f.key === func.key);
42
+ if (!dbFunction) {
43
+ return "import";
44
+ }
45
+ if (dbFunction.version === func.version && dbFunction.updated === func.updated) {
46
+ return "none";
47
+ }
48
+ return "update";
49
+ };
50
+ useAsyncEffect(async () => {
51
+ setLoading(true);
52
+ const functions2 = await getDeployedFunctions(client);
53
+ setFunctions(functions2);
54
+ setLoading(false);
55
+ }, []);
56
+ const dedupedFunctions = EffectFunction.pipe(functions, Array.filter((_) => _.key !== void 0), Array.sort(Order.reverse(Order.mapInput(Order.string, (_) => _.updated ?? ""))), Array.dedupeWith((self, that) => self.key === that.key), Array.sort(Order.mapInput(Order.string, (_) => _.key ?? "")));
57
+ const hanleImportOrUpdate = useCallback(async (func) => {
58
+ const { objects: [existingFunc] } = await space.db.query(Query.type(Function.Function, {
59
+ key: func.key
60
+ })).run();
61
+ if (!existingFunc) {
62
+ space.db.add(func);
63
+ return;
64
+ }
65
+ Function.setFrom(existingFunc, func);
66
+ }, [
67
+ space
68
+ ]);
69
+ return /* @__PURE__ */ React.createElement("div", {
70
+ role: "none",
71
+ className: mx(controlItemClasses)
72
+ }, dedupedFunctions.length > 0 && /* @__PURE__ */ React.createElement(List.Root, {
73
+ items: dedupedFunctions,
74
+ isItem: Schema.is(Function.Function),
75
+ getId: (func) => func.id
76
+ }, ({ items }) => /* @__PURE__ */ React.createElement("div", {
77
+ role: "list",
78
+ className: "flex flex-col is-full"
79
+ }, items?.map((func) => /* @__PURE__ */ React.createElement(List.Item, {
80
+ key: func.id,
81
+ item: func,
82
+ classNames: mx(grid, ghostHover, "items-center", "pli-2", "min-bs-[3rem]")
83
+ }, /* @__PURE__ */ React.createElement("div", {
84
+ className: "flex flex-col truncate"
85
+ }, /* @__PURE__ */ React.createElement(List.ItemTitle, {
86
+ classNames: "truncate"
87
+ }, func.name), /* @__PURE__ */ React.createElement("div", {
88
+ className: "text-xs text-description truncate"
89
+ }, func.key)), /* @__PURE__ */ React.createElement("div", {
90
+ className: "flex flex-col truncate"
91
+ }, /* @__PURE__ */ React.createElement("div", {
92
+ className: "text-xs text-description truncate"
93
+ }, func.version), /* @__PURE__ */ React.createElement("div", {
94
+ className: "text-xs text-description truncate"
95
+ }, func.updated ? `Uploaded ${new Date(func.updated).toLocaleString()}` : "")), /* @__PURE__ */ React.createElement(IconButton, {
96
+ iconOnly: true,
97
+ icon: state(func) === "update" ? "ph--arrows-clockwise--regular" : "ph--download--regular",
98
+ label: state(func) === "update" ? t("update function button label") : t("import function button label"),
99
+ disabled: state(func) === "none",
100
+ onClick: () => hanleImportOrUpdate(func)
101
+ }))))), dedupedFunctions.length === 0 && !loading && /* @__PURE__ */ React.createElement("div", {
102
+ className: "text-center plb-4 text-gray-500"
103
+ }, t("no functions found")), loading && /* @__PURE__ */ React.createElement("div", {
104
+ className: "text-center plb-4 text-gray-500"
105
+ }, t("loading functions")));
106
+ } finally {
107
+ _effect.f();
108
+ }
109
+ };
110
+
111
+ // src/components/FunctionsContainer.tsx
112
+ var FunctionsContainer = ({ space }) => {
113
+ var _effect = _useSignals2();
114
+ try {
115
+ const { t } = useTranslation2(meta.id);
116
+ return /* @__PURE__ */ React2.createElement(ControlPage, null, /* @__PURE__ */ React2.createElement(ControlSection, {
117
+ title: t("functions verbose label", {
118
+ ns: meta.id
119
+ }),
120
+ description: t("functions description", {
121
+ ns: meta.id
122
+ })
123
+ }, /* @__PURE__ */ React2.createElement(FunctionsPanel, {
124
+ space
125
+ })), /* @__PURE__ */ React2.createElement(ControlSection, {
126
+ title: t("functions registry verbose label", {
127
+ ns: meta.id
128
+ }),
129
+ description: t("functions registry description", {
130
+ ns: meta.id
131
+ })
132
+ }, /* @__PURE__ */ React2.createElement(FunctionsRegistry, {
133
+ space
134
+ })));
135
+ } finally {
136
+ _effect.f();
137
+ }
138
+ };
139
+ var FunctionsContainer_default = FunctionsContainer;
140
+ export {
141
+ FunctionsContainer,
142
+ FunctionsContainer_default as default
143
+ };
144
+ //# sourceMappingURL=FunctionsContainer-CDVBRQCT.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/FunctionsContainer.tsx", "../../../src/components/FunctionsRegistry/FunctionsRegistry.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\n\nimport { FunctionsPanel } from './FunctionsPanel';\nimport { FunctionsRegistry } from './FunctionsRegistry';\n\nexport const FunctionsContainer = ({ space }: { space: Space }) => {\n const { t } = useTranslation(meta.id);\n return (\n <ControlPage>\n <ControlSection\n title={t('functions verbose label', { ns: meta.id })}\n description={t('functions description', { ns: meta.id })}\n >\n <FunctionsPanel space={space} />\n </ControlSection>\n <ControlSection\n title={t('functions registry verbose label', { ns: meta.id })}\n description={t('functions registry description', { ns: meta.id })}\n >\n <FunctionsRegistry space={space} />\n </ControlSection>\n </ControlPage>\n );\n};\n\nexport default FunctionsContainer;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as EffectFunction from 'effect/Function';\nimport * as Order from 'effect/Order';\nimport * as Schema from 'effect/Schema';\nimport { useState } from 'react';\nimport React, { useCallback } from 'react';\n\nimport { Function } from '@dxos/functions';\nimport { getDeployedFunctions } from '@dxos/functions-runtime/edge';\nimport { useClient } from '@dxos/react-client';\nimport { Filter, Query, type Space, useQuery } from '@dxos/react-client/echo';\nimport { useAsyncEffect } from '@dxos/react-ui';\nimport { IconButton, 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 { meta } from '../../meta';\n\nconst grid = 'grid grid-cols-[1fr_1fr_auto] min-bs-[2.5rem]';\n\ntype FunctionsRegistryProps = {\n space: Space;\n};\n\nexport const FunctionsRegistry = ({ space }: FunctionsRegistryProps) => {\n const client = useClient();\n const [loading, setLoading] = useState(true);\n const [functions, setFunctions] = useState<Function.Function[]>([]);\n const { t } = useTranslation(meta.id);\n\n const dbFunctions = useQuery(space, Filter.type(Function.Function));\n\n const state = (func: Function.Function) => {\n const dbFunction = dbFunctions.find((f) => f.key === func.key);\n if (!dbFunction) {\n return 'import';\n }\n if (dbFunction.version === func.version && dbFunction.updated === func.updated) {\n return 'none';\n }\n return 'update';\n };\n\n useAsyncEffect(async () => {\n setLoading(true);\n const functions = await getDeployedFunctions(client);\n setFunctions(functions);\n setLoading(false);\n }, []);\n\n const dedupedFunctions = EffectFunction.pipe(\n functions,\n Array.filter((_) => _.key !== undefined),\n Array.sort(Order.reverse(Order.mapInput(Order.string, (_: Function.Function) => _.updated ?? ''))),\n Array.dedupeWith((self, that) => self.key === that.key),\n Array.sort(Order.mapInput(Order.string, (_: Function.Function) => _.key ?? '')),\n );\n\n const hanleImportOrUpdate = useCallback(\n async (func: Function.Function) => {\n const {\n objects: [existingFunc],\n } = await space.db.query(Query.type(Function.Function, { key: func.key })).run();\n if (!existingFunc) {\n space.db.add(func);\n return;\n }\n Function.setFrom(existingFunc, func);\n },\n [space],\n );\n\n return (\n <div role='none' className={mx(controlItemClasses)}>\n {dedupedFunctions.length > 0 && (\n <List.Root<Function.Function>\n items={dedupedFunctions}\n isItem={Schema.is(Function.Function)}\n getId={(func) => func.id}\n >\n {({ items }) => (\n <div role='list' className='flex flex-col is-full'>\n {items?.map((func) => (\n <List.Item<Function.Function>\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 <div className='text-xs text-description truncate'>{func.key}</div>\n </div>\n <div className='flex flex-col truncate'>\n <div className='text-xs text-description truncate'>{func.version}</div>\n <div className='text-xs text-description truncate'>\n {func.updated ? `Uploaded ${new Date(func.updated).toLocaleString()}` : ''}\n </div>\n </div>\n\n <IconButton\n iconOnly\n icon={state(func) === 'update' ? 'ph--arrows-clockwise--regular' : 'ph--download--regular'}\n label={\n state(func) === 'update' ? t('update function button label') : t('import function button label')\n }\n disabled={state(func) === 'none'}\n onClick={() => hanleImportOrUpdate(func)}\n />\n </List.Item>\n ))}\n </div>\n )}\n </List.Root>\n )}\n\n {dedupedFunctions.length === 0 && !loading && (\n <div className='text-center plb-4 text-gray-500'>{t('no functions found')}</div>\n )}\n {loading && <div className='text-center plb-4 text-gray-500'>{t('loading functions')}</div>}\n </div>\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;AAIA,OAAOA,YAAW;AAGlB,SAASC,kBAAAA,uBAAsB;AAC/B,SAASC,aAAaC,sBAAsB;;;;ACJ5C,YAAYC,WAAW;AACvB,YAAYC,oBAAoB;AAChC,YAAYC,WAAW;AACvB,YAAYC,YAAY;AACxB,SAASC,gBAAgB;AACzB,OAAOC,SAASC,mBAAmB;AAEnC,SAASC,gBAAgB;AACzB,SAASC,4BAA4B;AACrC,SAASC,iBAAiB;AAC1B,SAASC,QAAQC,OAAmBC,gBAAgB;AACpD,SAASC,sBAAsB;AAC/B,SAASC,YAAYC,sBAAsB;AAC3C,SAASC,0BAA0B;AACnC,SAASC,YAAY;AACrB,SAASC,YAAYC,UAAU;AAI/B,IAAMC,OAAO;AAMN,IAAMC,oBAAoB,CAAC,EAAEC,MAAK,MAA0B;;;AACjE,UAAMC,SAASC,UAAAA;AACf,UAAM,CAACC,SAASC,UAAAA,IAAcC,SAAS,IAAA;AACvC,UAAM,CAACC,WAAWC,YAAAA,IAAgBF,SAA8B,CAAA,CAAE;AAClE,UAAM,EAAEG,EAAC,IAAKC,eAAeC,KAAKC,EAAE;AAEpC,UAAMC,cAAcC,SAASb,OAAOc,OAAOC,KAAKC,SAASA,QAAQ,CAAA;AAEjE,UAAMC,QAAQ,CAACC,SAAAA;AACb,YAAMC,aAAaP,YAAYQ,KAAK,CAACC,MAAMA,EAAEC,QAAQJ,KAAKI,GAAG;AAC7D,UAAI,CAACH,YAAY;AACf,eAAO;MACT;AACA,UAAIA,WAAWI,YAAYL,KAAKK,WAAWJ,WAAWK,YAAYN,KAAKM,SAAS;AAC9E,eAAO;MACT;AACA,aAAO;IACT;AAEAC,mBAAe,YAAA;AACbrB,iBAAW,IAAA;AACX,YAAME,aAAY,MAAMoB,qBAAqBzB,MAAAA;AAC7CM,mBAAaD,UAAAA;AACbF,iBAAW,KAAA;IACb,GAAG,CAAA,CAAE;AAEL,UAAMuB,mBAAkCC,oBACtCtB,WACMuB,aAAO,CAACC,MAAMA,EAAER,QAAQS,MAAAA,GACxBC,WAAWC,cAAcC,eAAeC,cAAQ,CAACL,MAAyBA,EAAEN,WAAW,EAAA,CAAA,CAAA,GACvFY,iBAAW,CAACC,MAAMC,SAASD,KAAKf,QAAQgB,KAAKhB,GAAG,GAChDU,WAAWE,eAAeC,cAAQ,CAACL,MAAyBA,EAAER,OAAO,EAAA,CAAA,CAAA;AAG7E,UAAMiB,sBAAsBC,YAC1B,OAAOtB,SAAAA;AACL,YAAM,EACJuB,SAAS,CAACC,YAAAA,EAAa,IACrB,MAAM1C,MAAM2C,GAAGC,MAAMC,MAAM9B,KAAKC,SAASA,UAAU;QAAEM,KAAKJ,KAAKI;MAAI,CAAA,CAAA,EAAIwB,IAAG;AAC9E,UAAI,CAACJ,cAAc;AACjB1C,cAAM2C,GAAGI,IAAI7B,IAAAA;AACb;MACF;AACAF,eAASgC,QAAQN,cAAcxB,IAAAA;IACjC,GACA;MAAClB;KAAM;AAGT,WACE,sBAAA,cAACiD,OAAAA;MAAIC,MAAK;MAAOC,WAAWC,GAAGC,kBAAAA;OAC5B1B,iBAAiB2B,SAAS,KACzB,sBAAA,cAACC,KAAKC,MAAI;MACRC,OAAO9B;MACP+B,QAAeC,UAAG3C,SAASA,QAAQ;MACnC4C,OAAO,CAAC1C,SAASA,KAAKP;OAErB,CAAC,EAAE8C,MAAK,MACP,sBAAA,cAACR,OAAAA;MAAIC,MAAK;MAAOC,WAAU;OACxBM,OAAOI,IAAI,CAAC3C,SACX,sBAAA,cAACqC,KAAKO,MAAI;MACRxC,KAAKJ,KAAKP;MACVoD,MAAM7C;MACN8C,YAAYZ,GAAGtD,MAAMmE,YAAY,gBAAgB,SAAS,eAAA;OAE1D,sBAAA,cAAChB,OAAAA;MAAIE,WAAU;OACb,sBAAA,cAACI,KAAKW,WAAS;MAACF,YAAW;OAAY9C,KAAKiD,IAAI,GAChD,sBAAA,cAAClB,OAAAA;MAAIE,WAAU;OAAqCjC,KAAKI,GAAG,CAAA,GAE9D,sBAAA,cAAC2B,OAAAA;MAAIE,WAAU;OACb,sBAAA,cAACF,OAAAA;MAAIE,WAAU;OAAqCjC,KAAKK,OAAO,GAChE,sBAAA,cAAC0B,OAAAA;MAAIE,WAAU;OACZjC,KAAKM,UAAU,YAAY,IAAI4C,KAAKlD,KAAKM,OAAO,EAAE6C,eAAc,CAAA,KAAO,EAAA,CAAA,GAI5E,sBAAA,cAACC,YAAAA;MACCC,UAAAA;MACAC,MAAMvD,MAAMC,IAAAA,MAAU,WAAW,kCAAkC;MACnEuD,OACExD,MAAMC,IAAAA,MAAU,WAAWV,EAAE,8BAAA,IAAkCA,EAAE,8BAAA;MAEnEkE,UAAUzD,MAAMC,IAAAA,MAAU;MAC1ByD,SAAS,MAAMpC,oBAAoBrB,IAAAA;YAShDS,iBAAiB2B,WAAW,KAAK,CAACnD,WACjC,sBAAA,cAAC8C,OAAAA;MAAIE,WAAU;OAAmC3C,EAAE,oBAAA,CAAA,GAErDL,WAAW,sBAAA,cAAC8C,OAAAA;MAAIE,WAAU;OAAmC3C,EAAE,mBAAA,CAAA,CAAA;;;;AAGtE;;;AD/GO,IAAMoE,qBAAqB,CAAC,EAAEC,MAAK,MAAoB;;;AAC5D,UAAM,EAAEC,EAAC,IAAKC,gBAAeC,KAAKC,EAAE;AACpC,WACE,gBAAAC,OAAA,cAACC,aAAAA,MACC,gBAAAD,OAAA,cAACE,gBAAAA;MACCC,OAAOP,EAAE,2BAA2B;QAAEQ,IAAIN,KAAKC;MAAG,CAAA;MAClDM,aAAaT,EAAE,yBAAyB;QAAEQ,IAAIN,KAAKC;MAAG,CAAA;OAEtD,gBAAAC,OAAA,cAACM,gBAAAA;MAAeX;SAElB,gBAAAK,OAAA,cAACE,gBAAAA;MACCC,OAAOP,EAAE,oCAAoC;QAAEQ,IAAIN,KAAKC;MAAG,CAAA;MAC3DM,aAAaT,EAAE,kCAAkC;QAAEQ,IAAIN,KAAKC;MAAG,CAAA;OAE/D,gBAAAC,OAAA,cAACO,mBAAAA;MAAkBZ;;;;;AAI3B;AAEA,IAAA,6BAAeD;",
6
+ "names": ["React", "useTranslation", "ControlPage", "ControlSection", "Array", "EffectFunction", "Order", "Schema", "useState", "React", "useCallback", "Function", "getDeployedFunctions", "useClient", "Filter", "Query", "useQuery", "useAsyncEffect", "IconButton", "useTranslation", "controlItemClasses", "List", "ghostHover", "mx", "grid", "FunctionsRegistry", "space", "client", "useClient", "loading", "setLoading", "useState", "functions", "setFunctions", "t", "useTranslation", "meta", "id", "dbFunctions", "useQuery", "Filter", "type", "Function", "state", "func", "dbFunction", "find", "f", "key", "version", "updated", "useAsyncEffect", "getDeployedFunctions", "dedupedFunctions", "pipe", "filter", "_", "undefined", "sort", "reverse", "mapInput", "string", "dedupeWith", "self", "that", "hanleImportOrUpdate", "useCallback", "objects", "existingFunc", "db", "query", "Query", "run", "add", "setFrom", "div", "role", "className", "mx", "controlItemClasses", "length", "List", "Root", "items", "isItem", "is", "getId", "map", "Item", "item", "classNames", "ghostHover", "ItemTitle", "name", "Date", "toLocaleString", "IconButton", "iconOnly", "icon", "label", "disabled", "onClick", "FunctionsContainer", "space", "t", "useTranslation", "meta", "id", "React", "ControlPage", "ControlSection", "title", "ns", "description", "FunctionsPanel", "FunctionsRegistry"]
7
+ }
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  FunctionsPanel,
3
3
  FunctionsPanel_default
4
- } from "./chunk-Z5DT4MHW.mjs";
5
- import "./chunk-GW5U2DGT.mjs";
4
+ } from "./chunk-TWWFNOIR.mjs";
5
+ import "./chunk-LZQFZO3B.mjs";
6
6
  export {
7
7
  FunctionsPanel,
8
8
  FunctionsPanel_default as default
9
9
  };
10
- //# sourceMappingURL=FunctionsPanel-I443Y6KB.mjs.map
10
+ //# sourceMappingURL=FunctionsPanel-CRW6SJUN.mjs.map
@@ -1,20 +1,21 @@
1
1
  import {
2
2
  meta
3
- } from "./chunk-GW5U2DGT.mjs";
3
+ } from "./chunk-LZQFZO3B.mjs";
4
4
 
5
5
  // src/capabilities/app-graph-builder.ts
6
- import { Rx } from "@effect-rx/rx-react";
7
- import { Option, pipe } from "effect";
6
+ import { Atom } from "@effect-atom/atom-react";
7
+ import * as Function from "effect/Function";
8
+ import * as Option from "effect/Option";
8
9
  import { Capabilities, contributes } from "@dxos/app-framework";
9
10
  import { Obj } from "@dxos/echo";
10
- import { ScriptType } from "@dxos/functions";
11
+ import { Script } from "@dxos/functions";
11
12
  import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
12
13
  import { createExtension } from "@dxos/plugin-graph";
13
- import { SPACE_PLUGIN } from "@dxos/plugin-space";
14
- var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
14
+ import { meta as spaceMeta } from "@dxos/plugin-space";
15
+ var app_graph_builder_default = ((context) => contributes(Capabilities.AppGraphBuilder, [
15
16
  createExtension({
16
17
  id: `${meta.id}/space-settings-automation`,
17
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.type === `${SPACE_PLUGIN}/settings` ? Option.some(node2) : Option.none()), Option.map((node2) => [
18
+ connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.type === `${spaceMeta.id}/settings` ? Option.some(node2) : Option.none()), Option.map((node2) => [
18
19
  {
19
20
  id: `automation-${node2.id}`,
20
21
  type: `${meta.id}/space-settings-automation`,
@@ -33,7 +34,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
33
34
  }),
34
35
  createExtension({
35
36
  id: `${meta.id}/space-settings-functions`,
36
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.type === `${SPACE_PLUGIN}/settings` ? Option.some(node2) : Option.none()), Option.map((node2) => [
37
+ connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.type === `${spaceMeta.id}/settings` ? Option.some(node2) : Option.none()), Option.map((node2) => [
37
38
  {
38
39
  id: `functions-${node2.id}`,
39
40
  type: `${meta.id}/space-settings-functions`,
@@ -52,7 +53,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
52
53
  }),
53
54
  createExtension({
54
55
  id: `${meta.id}/script-companion`,
55
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(ScriptType, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
56
+ connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(Script.Script, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
56
57
  {
57
58
  id: [
58
59
  node2.id,
@@ -73,8 +74,8 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
73
74
  }
74
75
  ]), Option.getOrElse(() => [])))
75
76
  })
76
- ]);
77
+ ]));
77
78
  export {
78
79
  app_graph_builder_default as default
79
80
  };
80
- //# sourceMappingURL=app-graph-builder-4OFKIRAI.mjs.map
81
+ //# sourceMappingURL=app-graph-builder-W7LLC6XW.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { Script } from '@dxos/functions';\nimport { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension } from '@dxos/plugin-graph';\nimport { meta as spaceMeta } from '@dxos/plugin-space';\n\nimport { meta } from '../meta';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${meta.id}/space-settings-automation`,\n connector: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (node.type === `${spaceMeta.id}/settings` ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: `automation-${node.id}`,\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 Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${meta.id}/space-settings-functions`,\n connector: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (node.type === `${spaceMeta.id}/settings` ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: `functions-${node.id}`,\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 Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${meta.id}/script-companion`,\n connector: (node) =>\n Atom.make((get) =>\n Function.pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(Script.Script, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'automation'].join(ATTENDABLE_PATH_SEPARATOR),\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 Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
5
+ "mappings": ";;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,WAAW;AACpB,SAASC,cAAc;AACvB,SAASC,2BAA2BC,4BAA4B;AAChE,SAASC,uBAAuB;AAChC,SAASC,QAAQC,iBAAiB;AAIlC,IAAA,6BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,KAAKC,KAAK,CAACC,QACAC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUA,MAAKM,SAAS,GAAGC,UAAUV,EAAE,cAAqBW,YAAKR,KAAAA,IAAeS,YAAI,CAAA,GAC7FC,WAAI,CAACV,UAAS;MACnB;QACEH,IAAI,cAAcG,MAAKH,EAAE;QACzBS,MAAM,GAAGR,KAAKD,EAAE;QAChBc,MAAM,GAAGb,KAAKD,EAAE;QAChBe,YAAY;UACVC,OAAO;YAAC;YAA0B;cAAEC,IAAIhB,KAAKD;YAAG;;UAChDkB,MAAM;QACR;MACF;KACD,GACMC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;EACApB,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,KAAKC,KAAK,CAACC,QACAC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUA,MAAKM,SAAS,GAAGC,UAAUV,EAAE,cAAqBW,YAAKR,KAAAA,IAAeS,YAAI,CAAA,GAC7FC,WAAI,CAACV,UAAS;MACnB;QACEH,IAAI,aAAaG,MAAKH,EAAE;QACxBS,MAAM,GAAGR,KAAKD,EAAE;QAChBc,MAAM,GAAGb,KAAKD,EAAE;QAChBe,YAAY;UACVC,OAAO;YAAC;YAAyB;cAAEC,IAAIhB,KAAKD;YAAG;;UAC/CkB,MAAM;QACR;MACF;KACD,GACMC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;EACApB,gBAAgB;IACdC,IAAI,GAAGC,KAAKD,EAAE;IACdE,WAAW,CAACC,SACVC,KAAKC,KAAK,CAACC,QACAC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUiB,IAAIC,WAAWC,OAAOA,QAAQnB,MAAKW,IAAI,IAAWH,YAAKR,KAAAA,IAAeS,YAAI,CAAA,GAC7FC,WAAI,CAACV,UAAS;MACnB;QACEH,IAAI;UAACG,MAAKH;UAAI;UAAcuB,KAAKC,yBAAAA;QACjCf,MAAMgB;QACNX,MAAM;QACNC,YAAY;UACVC,OAAO;YAAC;YAA2B;cAAEC,IAAIhB,KAAKD;YAAG;;UACjDkB,MAAM;UACNQ,aAAa;QACf;MACF;KACD,GACMP,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
+ "names": ["Atom", "Function", "Option", "Capabilities", "contributes", "Obj", "Script", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "createExtension", "meta", "spaceMeta", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "connector", "node", "Atom", "make", "get", "pipe", "flatMap", "type", "spaceMeta", "some", "none", "map", "data", "properties", "label", "ns", "icon", "getOrElse", "Obj", "instanceOf", "Script", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE", "disposition"]
7
+ }
@@ -0,0 +1,100 @@
1
+ import {
2
+ AutomationCapabilities
3
+ } from "./chunk-XAKZ4ANY.mjs";
4
+
5
+ // src/hooks/useComputeRuntimeCallback.ts
6
+ import * as Cause from "effect/Cause";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Exit from "effect/Exit";
9
+ import { useCallback } from "react";
10
+ import { useCapability } from "@dxos/app-framework/react";
11
+ import { FunctionInvocationService } from "@dxos/functions";
12
+ import { InvocationTracer, TracingServiceExt } from "@dxos/functions-runtime";
13
+ import { log } from "@dxos/log";
14
+
15
+ // src/capabilities/index.ts
16
+ import { lazy } from "@dxos/app-framework";
17
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-W7LLC6XW.mjs"));
18
+ var ComputeRuntime = lazy(() => import("./compute-runtime-B4XJVY4Y.mjs"));
19
+ var IntentResolver = lazy(() => import("./intent-resolver-5HR7M7T6.mjs"));
20
+ var ReactSurface = lazy(() => import("./react-surface-TKU2EQ5A.mjs"));
21
+
22
+ // src/hooks/useComputeRuntimeCallback.ts
23
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-automation/src/hooks/useComputeRuntimeCallback.ts";
24
+ var useComputeRuntimeCallback = (space, fn, deps) => {
25
+ const computeRuntime = useCapability(AutomationCapabilities.ComputeRuntime);
26
+ const runtime = space !== void 0 ? computeRuntime.getRuntime(space.id) : void 0;
27
+ return useCallback(() => {
28
+ if (!runtime) {
29
+ throw new TypeError("Space not provided to useComputeRuntimeCallback");
30
+ }
31
+ return runtime.runPromise(fn());
32
+ }, [
33
+ runtime,
34
+ ...deps ?? []
35
+ ]);
36
+ };
37
+ var invokeFunctionWithTracing = (functionDef, inputData) => Effect.gen(function* () {
38
+ const tracer = yield* InvocationTracer;
39
+ const trace = yield* tracer.traceInvocationStart({
40
+ target: void 0,
41
+ payload: {
42
+ data: {}
43
+ }
44
+ });
45
+ const result = yield* FunctionInvocationService.invokeFunction(functionDef, inputData).pipe(Effect.provide(TracingServiceExt.layerQueue(trace.invocationTraceQueue)), Effect.exit);
46
+ if (Exit.isFailure(result)) {
47
+ const error = Cause.prettyErrors(result.cause)[0];
48
+ log.error(error.message, error.cause ?? error.stack, {
49
+ F: __dxlog_file,
50
+ L: 58,
51
+ S: this,
52
+ C: (f, a) => f(...a)
53
+ });
54
+ }
55
+ yield* tracer.traceInvocationEnd({
56
+ trace,
57
+ // TODO(dmaretskyi): Might miss errors.
58
+ exception: Exit.isFailure(result) ? Cause.prettyErrors(result.cause)[0] : void 0
59
+ });
60
+ return result;
61
+ });
62
+
63
+ // src/hooks/useTriggerRuntimeControls.ts
64
+ import * as Effect2 from "effect/Effect";
65
+ import { Filter } from "@dxos/echo";
66
+ import { Trigger } from "@dxos/functions";
67
+ import { TriggerDispatcher } from "@dxos/functions-runtime";
68
+ import { useQuery } from "@dxos/react-client/echo";
69
+ import { useAsyncState } from "@dxos/react-ui";
70
+ var useTriggerRuntimeControls = (space) => {
71
+ const triggers = useQuery(space, Filter.type(Trigger.Trigger));
72
+ const [isRunningState, setIsRunningState] = useAsyncState(useComputeRuntimeCallback(space, () => TriggerDispatcher.pipe(Effect2.map((t) => t.running))));
73
+ const start = useComputeRuntimeCallback(space, Effect2.fnUntraced(function* () {
74
+ const dispatcher = yield* TriggerDispatcher;
75
+ yield* dispatcher.start();
76
+ setIsRunningState(true);
77
+ }));
78
+ const stop = useComputeRuntimeCallback(space, Effect2.fnUntraced(function* () {
79
+ const dispatcher = yield* TriggerDispatcher;
80
+ yield* dispatcher.stop();
81
+ setIsRunningState(false);
82
+ }));
83
+ return {
84
+ triggers,
85
+ isRunning: isRunningState ?? false,
86
+ start: () => void start(),
87
+ stop: () => void stop()
88
+ };
89
+ };
90
+
91
+ export {
92
+ useComputeRuntimeCallback,
93
+ invokeFunctionWithTracing,
94
+ useTriggerRuntimeControls,
95
+ AppGraphBuilder,
96
+ ComputeRuntime,
97
+ IntentResolver,
98
+ ReactSurface
99
+ };
100
+ //# sourceMappingURL=chunk-4MBM6C6A.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useComputeRuntimeCallback.ts", "../../../src/capabilities/index.ts", "../../../src/hooks/useTriggerRuntimeControls.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Cause from 'effect/Cause';\nimport * as Effect from 'effect/Effect';\nimport * as Exit from 'effect/Exit';\nimport { useCallback } from 'react';\n\nimport { useCapability } from '@dxos/app-framework/react';\nimport { type FunctionDefinition, FunctionInvocationService } from '@dxos/functions';\nimport { InvocationTracer, TracingServiceExt } from '@dxos/functions-runtime';\nimport { log } from '@dxos/log';\nimport type { Space } from '@dxos/react-client/echo';\n\nimport { AutomationCapabilities } from '../capabilities';\n\n/**\n * Create an effectful function that has access to compute services\n */\n// TODO(burdon): Factor out (figure out cross-plugin capabilities dependencies).\nexport const useComputeRuntimeCallback = <T>(\n space: Space | undefined,\n fn: () => Effect.Effect<T, any, AutomationCapabilities.ComputeServices>,\n deps?: React.DependencyList,\n): (() => Promise<T>) => {\n const computeRuntime = useCapability(AutomationCapabilities.ComputeRuntime);\n const runtime = space !== undefined ? computeRuntime.getRuntime(space.id) : undefined;\n\n return useCallback(() => {\n if (!runtime) {\n throw new TypeError('Space not provided to useComputeRuntimeCallback');\n }\n\n return runtime.runPromise(fn());\n }, [runtime, ...(deps ?? [])]);\n};\n\n// TODO(wittjosiah): Function invoking should automatically be traced (DX-647).\nexport const invokeFunctionWithTracing = <I, O>(functionDef: FunctionDefinition<I, O>, inputData: I) =>\n Effect.gen(function* () {\n const tracer = yield* InvocationTracer;\n const trace = yield* tracer.traceInvocationStart({\n target: undefined,\n payload: {\n data: {},\n },\n });\n\n // Invoke the function.\n const result = yield* FunctionInvocationService.invokeFunction(functionDef, inputData).pipe(\n Effect.provide(TracingServiceExt.layerQueue(trace.invocationTraceQueue)),\n Effect.exit,\n );\n\n if (Exit.isFailure(result)) {\n const error = Cause.prettyErrors(result.cause)[0];\n log.error(error.message, error.cause ?? error.stack);\n }\n\n yield* tracer.traceInvocationEnd({\n trace,\n // TODO(dmaretskyi): Might miss errors.\n exception: Exit.isFailure(result) ? Cause.prettyErrors(result.cause)[0] : undefined,\n });\n\n return result;\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 ComputeRuntime = lazy(() => import('./compute-runtime'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n\nexport * from './capabilities';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Filter } from '@dxos/echo';\nimport { Trigger } from '@dxos/functions';\nimport { TriggerDispatcher } from '@dxos/functions-runtime';\nimport { type Space, useQuery } from '@dxos/react-client/echo';\nimport { useAsyncState } from '@dxos/react-ui';\n\nimport { useComputeRuntimeCallback } from './useComputeRuntimeCallback';\n\ninterface TriggerRuntimeControls {\n triggers: Trigger.Trigger[];\n isRunning: boolean;\n start: () => void;\n stop: () => void;\n}\n\nexport const useTriggerRuntimeControls = (space: Space | undefined): TriggerRuntimeControls => {\n const triggers = useQuery(space, Filter.type(Trigger.Trigger));\n\n const [isRunningState, setIsRunningState] = useAsyncState(\n useComputeRuntimeCallback(space, () => TriggerDispatcher.pipe(Effect.map((t) => t.running))),\n );\n\n const start = useComputeRuntimeCallback(\n space,\n Effect.fnUntraced(function* () {\n const dispatcher = yield* TriggerDispatcher;\n yield* dispatcher.start();\n setIsRunningState(true);\n }),\n );\n\n const stop = useComputeRuntimeCallback(\n space,\n Effect.fnUntraced(function* () {\n const dispatcher = yield* TriggerDispatcher;\n yield* dispatcher.stop();\n setIsRunningState(false);\n }),\n );\n\n return {\n triggers,\n isRunning: isRunningState ?? false,\n start: () => void start(),\n stop: () => void stop(),\n };\n};\n"],
5
+ "mappings": ";;;;;AAIA,YAAYA,WAAW;AACvB,YAAYC,YAAY;AACxB,YAAYC,UAAU;AACtB,SAASC,mBAAmB;AAE5B,SAASC,qBAAqB;AAC9B,SAAkCC,iCAAiC;AACnE,SAASC,kBAAkBC,yBAAyB;AACpD,SAASC,WAAW;;;ACRpB,SAASC,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;;;;ADYvC,IAAMI,4BAA4B,CACvCC,OACAC,IACAC,SAAAA;AAEA,QAAMC,iBAAiBC,cAAcC,uBAAuBC,cAAc;AAC1E,QAAMC,UAAUP,UAAUQ,SAAYL,eAAeM,WAAWT,MAAMU,EAAE,IAAIF;AAE5E,SAAOG,YAAY,MAAA;AACjB,QAAI,CAACJ,SAAS;AACZ,YAAM,IAAIK,UAAU,iDAAA;IACtB;AAEA,WAAOL,QAAQM,WAAWZ,GAAAA,CAAAA;EAC5B,GAAG;IAACM;OAAaL,QAAQ,CAAA;GAAI;AAC/B;AAGO,IAAMY,4BAA4B,CAAOC,aAAuCC,cAC9EC,WAAI,aAAA;AACT,QAAMC,SAAS,OAAOC;AACtB,QAAMC,QAAQ,OAAOF,OAAOG,qBAAqB;IAC/CC,QAAQd;IACRe,SAAS;MACPC,MAAM,CAAC;IACT;EACF,CAAA;AAGA,QAAMC,SAAS,OAAOC,0BAA0BC,eAAeZ,aAAaC,SAAAA,EAAWY,KAC9EC,eAAQC,kBAAkBC,WAAWX,MAAMY,oBAAoB,CAAA,GAC/DC,WAAI;AAGb,MAASC,eAAUT,MAAAA,GAAS;AAC1B,UAAMU,QAAcC,mBAAaX,OAAOY,KAAK,EAAE,CAAA;AAC/CC,QAAIH,MAAMA,MAAMI,SAASJ,MAAME,SAASF,MAAMK,OAAK;;;;;;EACrD;AAEA,SAAOtB,OAAOuB,mBAAmB;IAC/BrB;;IAEAsB,WAAgBR,eAAUT,MAAAA,IAAgBW,mBAAaX,OAAOY,KAAK,EAAE,CAAA,IAAK7B;EAC5E,CAAA;AAEA,SAAOiB;AACT,CAAA;;;AE/DF,YAAYkB,aAAY;AAExB,SAASC,cAAc;AACvB,SAASC,eAAe;AACxB,SAASC,yBAAyB;AAClC,SAAqBC,gBAAgB;AACrC,SAASC,qBAAqB;AAWvB,IAAMC,4BAA4B,CAACC,UAAAA;AACxC,QAAMC,WAAWC,SAASF,OAAOG,OAAOC,KAAKC,QAAQA,OAAO,CAAA;AAE5D,QAAM,CAACC,gBAAgBC,iBAAAA,IAAqBC,cAC1CC,0BAA0BT,OAAO,MAAMU,kBAAkBC,KAAYC,YAAI,CAACC,MAAMA,EAAEC,OAAO,CAAA,CAAA,CAAA;AAG3F,QAAMC,QAAQN,0BACZT,OACOgB,mBAAW,aAAA;AAChB,UAAMC,aAAa,OAAOP;AAC1B,WAAOO,WAAWF,MAAK;AACvBR,sBAAkB,IAAA;EACpB,CAAA,CAAA;AAGF,QAAMW,OAAOT,0BACXT,OACOgB,mBAAW,aAAA;AAChB,UAAMC,aAAa,OAAOP;AAC1B,WAAOO,WAAWC,KAAI;AACtBX,sBAAkB,KAAA;EACpB,CAAA,CAAA;AAGF,SAAO;IACLN;IACAkB,WAAWb,kBAAkB;IAC7BS,OAAO,MAAM,KAAKA,MAAAA;IAClBG,MAAM,MAAM,KAAKA,KAAAA;EACnB;AACF;",
6
+ "names": ["Cause", "Effect", "Exit", "useCallback", "useCapability", "FunctionInvocationService", "InvocationTracer", "TracingServiceExt", "log", "lazy", "AppGraphBuilder", "lazy", "ComputeRuntime", "IntentResolver", "ReactSurface", "useComputeRuntimeCallback", "space", "fn", "deps", "computeRuntime", "useCapability", "AutomationCapabilities", "ComputeRuntime", "runtime", "undefined", "getRuntime", "id", "useCallback", "TypeError", "runPromise", "invokeFunctionWithTracing", "functionDef", "inputData", "gen", "tracer", "InvocationTracer", "trace", "traceInvocationStart", "target", "payload", "data", "result", "FunctionInvocationService", "invokeFunction", "pipe", "provide", "TracingServiceExt", "layerQueue", "invocationTraceQueue", "exit", "isFailure", "error", "prettyErrors", "cause", "log", "message", "stack", "traceInvocationEnd", "exception", "Effect", "Filter", "Trigger", "TriggerDispatcher", "useQuery", "useAsyncState", "useTriggerRuntimeControls", "space", "triggers", "useQuery", "Filter", "type", "Trigger", "isRunningState", "setIsRunningState", "useAsyncState", "useComputeRuntimeCallback", "TriggerDispatcher", "pipe", "map", "t", "running", "start", "fnUntraced", "dispatcher", "stop", "isRunning"]
7
+ }