@dxos/plugin-automation 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7

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 (219) hide show
  1. package/dist/lib/browser/AutomationPanel-GH5TMGD6.mjs +11 -0
  2. package/dist/lib/browser/AutomationSettings-M6VFFEWK.mjs +37 -0
  3. package/dist/lib/browser/AutomationSettings-M6VFFEWK.mjs.map +7 -0
  4. package/dist/lib/browser/FunctionsContainer-R4ZMYSFJ.mjs +43 -0
  5. package/dist/lib/browser/FunctionsContainer-R4ZMYSFJ.mjs.map +7 -0
  6. package/dist/lib/browser/{FunctionsPanel-ZX4J75UM.mjs → FunctionsPanel-NMA4RYJL.mjs} +3 -3
  7. package/dist/lib/browser/FunctionsRegistry-TMKAEG5E.mjs +10 -0
  8. package/dist/lib/browser/TriggerSettings-56AIMOEC.mjs +11 -0
  9. package/dist/lib/browser/{app-graph-builder-LAQMEBMH.mjs → app-graph-builder-74ILZP25.mjs} +19 -20
  10. package/dist/lib/browser/app-graph-builder-74ILZP25.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-QW3EM35H.mjs → chunk-24ZULVVT.mjs} +60 -15
  12. package/dist/lib/browser/chunk-24ZULVVT.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-BFUIVUQH.mjs → chunk-75XLBFAG.mjs} +11 -16
  14. package/dist/lib/browser/chunk-75XLBFAG.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-YWLEY2FD.mjs → chunk-7HT7OLB5.mjs} +119 -50
  16. package/dist/lib/browser/chunk-7HT7OLB5.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-PZNBEKO5.mjs → chunk-EL64ZPPN.mjs} +2 -2
  18. package/dist/lib/browser/{chunk-PZNBEKO5.mjs.map → chunk-EL64ZPPN.mjs.map} +1 -1
  19. package/dist/lib/browser/{FunctionsContainer-6QLC7JP4.mjs → chunk-FUVAC5EC.mjs} +15 -48
  20. package/dist/lib/browser/chunk-FUVAC5EC.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-JOXPQ27I.mjs → chunk-GVHAETEQ.mjs} +7 -7
  22. package/dist/lib/browser/chunk-GVHAETEQ.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-H2MV4XE6.mjs +31 -0
  24. package/dist/lib/browser/chunk-H2MV4XE6.mjs.map +7 -0
  25. package/dist/lib/browser/{chunk-RAF2FJST.mjs → chunk-OAZ2JYXV.mjs} +19 -12
  26. package/dist/lib/browser/chunk-OAZ2JYXV.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-BKFQBKYO.mjs → chunk-Z7F7X2C5.mjs} +2 -2
  28. package/dist/lib/browser/cli/index.mjs +62 -54
  29. package/dist/lib/browser/cli/index.mjs.map +3 -3
  30. package/dist/lib/browser/{compute-runtime-WTWLQ67J.mjs → compute-runtime-F3UMRKCL.mjs} +28 -18
  31. package/dist/lib/browser/compute-runtime-F3UMRKCL.mjs.map +7 -0
  32. package/dist/lib/browser/hooks/index.mjs +3 -3
  33. package/dist/lib/browser/index.mjs +26 -25
  34. package/dist/lib/browser/index.mjs.map +4 -4
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/{operation-resolver-Q3MWOR7K.mjs → operation-resolver-IRC2DZU7.mjs} +11 -9
  37. package/dist/lib/browser/operation-resolver-IRC2DZU7.mjs.map +7 -0
  38. package/dist/lib/browser/react-surface-RCVPEK2V.mjs +65 -0
  39. package/dist/lib/browser/react-surface-RCVPEK2V.mjs.map +7 -0
  40. package/dist/lib/browser/types/index.mjs +2 -2
  41. package/dist/lib/node-esm/{AutomationPanel-B7NAGDFA.mjs → AutomationPanel-7LW44A5O.mjs} +4 -4
  42. package/dist/lib/node-esm/AutomationPanel-7LW44A5O.mjs.map +7 -0
  43. package/dist/lib/node-esm/AutomationSettings-EYJ4YLYT.mjs +38 -0
  44. package/dist/lib/node-esm/AutomationSettings-EYJ4YLYT.mjs.map +7 -0
  45. package/dist/lib/node-esm/FunctionsContainer-GYRPQZM7.mjs +44 -0
  46. package/dist/lib/node-esm/FunctionsContainer-GYRPQZM7.mjs.map +7 -0
  47. package/dist/lib/node-esm/{FunctionsPanel-SS6GIVNU.mjs → FunctionsPanel-DCXXLSVP.mjs} +3 -3
  48. package/dist/lib/node-esm/FunctionsPanel-DCXXLSVP.mjs.map +7 -0
  49. package/dist/lib/node-esm/FunctionsRegistry-7WCHC64E.mjs +11 -0
  50. package/dist/lib/node-esm/FunctionsRegistry-7WCHC64E.mjs.map +7 -0
  51. package/dist/lib/node-esm/TriggerSettings-ONY5ZUKW.mjs +12 -0
  52. package/dist/lib/node-esm/TriggerSettings-ONY5ZUKW.mjs.map +7 -0
  53. package/dist/lib/node-esm/{app-graph-builder-4UCMXHYY.mjs → app-graph-builder-VDXPOWCH.mjs} +19 -20
  54. package/dist/lib/node-esm/app-graph-builder-VDXPOWCH.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-HQLVREIX.mjs → chunk-2UF55HSG.mjs} +19 -12
  56. package/dist/lib/node-esm/chunk-2UF55HSG.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-2CKVH7JC.mjs → chunk-37CFAD4Y.mjs} +119 -50
  58. package/dist/lib/node-esm/chunk-37CFAD4Y.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-RX52VKI2.mjs → chunk-6B4WZRVH.mjs} +7 -7
  60. package/dist/lib/node-esm/chunk-6B4WZRVH.mjs.map +7 -0
  61. package/dist/lib/node-esm/{FunctionsContainer-J4O2ULWR.mjs → chunk-6JVB3IHW.mjs} +15 -48
  62. package/dist/lib/node-esm/chunk-6JVB3IHW.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-JVUE5PMI.mjs +32 -0
  64. package/dist/lib/node-esm/chunk-JVUE5PMI.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-KWKWOGS5.mjs → chunk-K7T2MVB7.mjs} +11 -16
  66. package/dist/lib/node-esm/chunk-K7T2MVB7.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-LJAXQ6CX.mjs → chunk-QUJ4MTMR.mjs} +60 -15
  68. package/dist/lib/node-esm/chunk-QUJ4MTMR.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-K7GCM342.mjs → chunk-R5YEWJCG.mjs} +2 -2
  70. package/dist/lib/node-esm/{chunk-5FXNN3MV.mjs → chunk-WC5AT7B3.mjs} +2 -2
  71. package/dist/lib/node-esm/{chunk-5FXNN3MV.mjs.map → chunk-WC5AT7B3.mjs.map} +1 -1
  72. package/dist/lib/node-esm/cli/index.mjs +62 -54
  73. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{compute-runtime-ZHROOBLY.mjs → compute-runtime-AMFVJMF2.mjs} +28 -18
  75. package/dist/lib/node-esm/compute-runtime-AMFVJMF2.mjs.map +7 -0
  76. package/dist/lib/node-esm/hooks/index.mjs +3 -3
  77. package/dist/lib/node-esm/index.mjs +26 -25
  78. package/dist/lib/node-esm/index.mjs.map +4 -4
  79. package/dist/lib/node-esm/meta.json +1 -1
  80. package/dist/lib/node-esm/{operation-resolver-R5GA4YNO.mjs → operation-resolver-CBLQHL4N.mjs} +11 -9
  81. package/dist/lib/node-esm/operation-resolver-CBLQHL4N.mjs.map +7 -0
  82. package/dist/lib/node-esm/{react-surface-S6VZJCEZ.mjs → react-surface-X4ZKOBC3.mjs} +25 -25
  83. package/dist/lib/node-esm/react-surface-X4ZKOBC3.mjs.map +7 -0
  84. package/dist/lib/node-esm/types/index.mjs +2 -2
  85. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  86. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +1 -1
  87. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/compute-runtime/compute-runtime.d.ts +1 -1
  89. package/dist/types/src/capabilities/compute-runtime/compute-runtime.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  91. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  93. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  95. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  97. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  98. package/dist/types/src/cli/commands/trigger/update/queue.d.ts.map +1 -1
  99. package/dist/types/src/cli/commands/trigger/util.d.ts +2 -2
  100. package/dist/types/src/cli/commands/trigger/util.d.ts.map +1 -1
  101. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  102. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +3 -4
  103. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  104. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +1 -0
  105. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
  106. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
  107. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts.map +1 -1
  108. package/dist/types/src/components/FunctionsRegistry/index.d.ts +3 -1
  109. package/dist/types/src/components/FunctionsRegistry/index.d.ts.map +1 -1
  110. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +1 -1
  111. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  112. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +2 -0
  113. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
  114. package/dist/types/src/components/index.d.ts +3 -4
  115. package/dist/types/src/components/index.d.ts.map +1 -1
  116. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts +4 -0
  117. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts.map +1 -0
  118. package/dist/types/src/containers/AutomationSettings/index.d.ts +3 -0
  119. package/dist/types/src/containers/AutomationSettings/index.d.ts.map +1 -0
  120. package/dist/types/src/{components → containers/FunctionsContainer}/FunctionsContainer.d.ts +0 -1
  121. package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts.map +1 -0
  122. package/dist/types/src/containers/FunctionsContainer/index.d.ts +3 -0
  123. package/dist/types/src/containers/FunctionsContainer/index.d.ts.map +1 -0
  124. package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts.map +1 -0
  125. package/dist/types/src/containers/TriggerSettings/index.d.ts +3 -0
  126. package/dist/types/src/containers/TriggerSettings/index.d.ts.map +1 -0
  127. package/dist/types/src/containers/index.d.ts +5 -0
  128. package/dist/types/src/containers/index.d.ts.map +1 -0
  129. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +2 -1
  130. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -1
  131. package/dist/types/src/translations.d.ts +1 -0
  132. package/dist/types/src/translations.d.ts.map +1 -1
  133. package/dist/types/src/types/capabilities.d.ts +2 -2
  134. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  135. package/dist/types/src/types/schema.d.ts +3 -3
  136. package/dist/types/tsconfig.tsbuildinfo +1 -1
  137. package/package.json +50 -46
  138. package/src/AutomationPlugin.tsx +7 -6
  139. package/src/capabilities/app-graph-builder/app-graph-builder.ts +17 -15
  140. package/src/capabilities/compute-runtime/compute-runtime.ts +26 -13
  141. package/src/capabilities/operation-resolver/operation-resolver.ts +7 -6
  142. package/src/capabilities/react-surface/react-surface.tsx +16 -19
  143. package/src/cli/commands/trigger/create/queue.ts +4 -4
  144. package/src/cli/commands/trigger/create/subscription.ts +4 -4
  145. package/src/cli/commands/trigger/create/timer.ts +4 -4
  146. package/src/cli/commands/trigger/list.ts +2 -2
  147. package/src/cli/commands/trigger/remove.ts +2 -2
  148. package/src/cli/commands/trigger/update/queue.ts +5 -5
  149. package/src/cli/commands/trigger/update/subscription.ts +5 -5
  150. package/src/cli/commands/trigger/update/timer.ts +5 -5
  151. package/src/cli/commands/trigger/util.ts +34 -25
  152. package/src/cli/plugin.ts +3 -2
  153. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +3 -3
  154. package/src/components/AutomationPanel/AutomationPanel.tsx +137 -69
  155. package/src/components/FunctionsPanel/FunctionsPanel.tsx +9 -11
  156. package/src/components/FunctionsRegistry/FunctionsRegistry.tsx +9 -10
  157. package/src/components/FunctionsRegistry/index.ts +4 -1
  158. package/src/components/TriggerEditor/FunctionInputEditor.tsx +13 -4
  159. package/src/components/TriggerEditor/SpecSelector.tsx +1 -1
  160. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +46 -4
  161. package/src/components/TriggerEditor/TriggerEditor.tsx +37 -6
  162. package/src/components/index.ts +1 -2
  163. package/src/{components → containers/AutomationSettings}/AutomationSettings.tsx +8 -11
  164. package/src/containers/AutomationSettings/index.ts +7 -0
  165. package/src/{components → containers/FunctionsContainer}/FunctionsContainer.tsx +10 -13
  166. package/src/containers/FunctionsContainer/index.ts +7 -0
  167. package/src/containers/TriggerSettings/TriggerSettings.tsx +26 -0
  168. package/src/containers/TriggerSettings/index.ts +6 -0
  169. package/src/containers/index.ts +9 -0
  170. package/src/hooks/useComputeRuntimeCallback.ts +1 -1
  171. package/src/hooks/useTriggerRuntimeControls.ts +22 -8
  172. package/src/meta.ts +1 -1
  173. package/src/testing/test-functions.ts +5 -5
  174. package/src/translations.ts +2 -0
  175. package/src/types/capabilities.ts +3 -2
  176. package/src/types/events.ts +1 -1
  177. package/src/types/schema.ts +3 -3
  178. package/dist/lib/browser/AutomationPanel-FAS6ADCW.mjs +0 -11
  179. package/dist/lib/browser/AutomationSettings-XN2OIYWL.mjs +0 -56
  180. package/dist/lib/browser/AutomationSettings-XN2OIYWL.mjs.map +0 -7
  181. package/dist/lib/browser/FunctionsContainer-6QLC7JP4.mjs.map +0 -7
  182. package/dist/lib/browser/app-graph-builder-LAQMEBMH.mjs.map +0 -7
  183. package/dist/lib/browser/chunk-54PANILA.mjs +0 -14
  184. package/dist/lib/browser/chunk-54PANILA.mjs.map +0 -7
  185. package/dist/lib/browser/chunk-BFUIVUQH.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-JOXPQ27I.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-QW3EM35H.mjs.map +0 -7
  188. package/dist/lib/browser/chunk-RAF2FJST.mjs.map +0 -7
  189. package/dist/lib/browser/chunk-YWLEY2FD.mjs.map +0 -7
  190. package/dist/lib/browser/compute-runtime-WTWLQ67J.mjs.map +0 -7
  191. package/dist/lib/browser/operation-resolver-Q3MWOR7K.mjs.map +0 -7
  192. package/dist/lib/browser/react-surface-EV3AC62F.mjs +0 -65
  193. package/dist/lib/browser/react-surface-EV3AC62F.mjs.map +0 -7
  194. package/dist/lib/node-esm/AutomationSettings-M5PMZJ6P.mjs +0 -57
  195. package/dist/lib/node-esm/AutomationSettings-M5PMZJ6P.mjs.map +0 -7
  196. package/dist/lib/node-esm/FunctionsContainer-J4O2ULWR.mjs.map +0 -7
  197. package/dist/lib/node-esm/app-graph-builder-4UCMXHYY.mjs.map +0 -7
  198. package/dist/lib/node-esm/chunk-2CKVH7JC.mjs.map +0 -7
  199. package/dist/lib/node-esm/chunk-7QRUPEHH.mjs +0 -16
  200. package/dist/lib/node-esm/chunk-7QRUPEHH.mjs.map +0 -7
  201. package/dist/lib/node-esm/chunk-HQLVREIX.mjs.map +0 -7
  202. package/dist/lib/node-esm/chunk-KWKWOGS5.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-LJAXQ6CX.mjs.map +0 -7
  204. package/dist/lib/node-esm/chunk-RX52VKI2.mjs.map +0 -7
  205. package/dist/lib/node-esm/compute-runtime-ZHROOBLY.mjs.map +0 -7
  206. package/dist/lib/node-esm/operation-resolver-R5GA4YNO.mjs.map +0 -7
  207. package/dist/lib/node-esm/react-surface-S6VZJCEZ.mjs.map +0 -7
  208. package/dist/types/src/components/AutomationSettings.d.ts +0 -5
  209. package/dist/types/src/components/AutomationSettings.d.ts.map +0 -1
  210. package/dist/types/src/components/FunctionsContainer.d.ts.map +0 -1
  211. package/dist/types/src/components/TriggerSettings.d.ts.map +0 -1
  212. package/src/components/TriggerSettings.tsx +0 -25
  213. /package/dist/lib/browser/{AutomationPanel-FAS6ADCW.mjs.map → AutomationPanel-GH5TMGD6.mjs.map} +0 -0
  214. /package/dist/lib/browser/{FunctionsPanel-ZX4J75UM.mjs.map → FunctionsPanel-NMA4RYJL.mjs.map} +0 -0
  215. /package/dist/lib/{node-esm/AutomationPanel-B7NAGDFA.mjs.map → browser/FunctionsRegistry-TMKAEG5E.mjs.map} +0 -0
  216. /package/dist/lib/{node-esm/FunctionsPanel-SS6GIVNU.mjs.map → browser/TriggerSettings-56AIMOEC.mjs.map} +0 -0
  217. /package/dist/lib/browser/{chunk-BKFQBKYO.mjs.map → chunk-Z7F7X2C5.mjs.map} +0 -0
  218. /package/dist/lib/node-esm/{chunk-K7GCM342.mjs.map → chunk-R5YEWJCG.mjs.map} +0 -0
  219. /package/dist/types/src/{components → containers/TriggerSettings}/TriggerSettings.d.ts +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/FunctionsPanel/FunctionsPanel.tsx", "../../../src/components/FunctionsPanel/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation, getObjectPathFromObject } from '@dxos/app-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { Function, Script } from '@dxos/functions';\nimport { SpaceOperation } from '@dxos/plugin-space/types';\nimport { Filter, type Space, useQuery } from '@dxos/react-client/echo';\nimport { Button, IconButton, useTranslation } from '@dxos/react-ui';\nimport { Settings } from '@dxos/react-ui-form';\nimport { List } from '@dxos/react-ui-list';\nimport { ghostHover, mx } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\nexport type FunctionsPanelProps = {\n space: Space;\n};\n\nexport const FunctionsPanel = ({ space }: FunctionsPanelProps) => {\n const { t } = useTranslation(meta.id);\n const functions = useQuery(space.db, Filter.type(Function.Function));\n const scripts = useQuery(space.db, Filter.type(Script.Script));\n const { invokePromise } = useOperationInvoker();\n\n const functionToScriptMap = useMemo(\n () =>\n functions.reduce(\n (map, func) => {\n const scriptId = func.source?.target?.id;\n if (scriptId) {\n const script = scripts.find((s) => s.id === scriptId);\n if (script) {\n map[func.id] = script;\n }\n }\n return map;\n },\n {} as Record<string, Script.Script>,\n ),\n [functions, scripts],\n );\n\n const getScriptName = useCallback(\n (func: Function.Function) => {\n const script = functionToScriptMap[func.id];\n return script?.name;\n },\n [functionToScriptMap],\n );\n\n const handleGoToScript = useCallback(\n (func: Function.Function) => {\n const script = functionToScriptMap[func.id];\n if (script) {\n void invokePromise(LayoutOperation.Open, { subject: [getObjectPathFromObject(script)] });\n }\n },\n [functionToScriptMap, invokePromise],\n );\n\n const handleDelete = useCallback(\n (func: Function.Function) => invokePromise(SpaceOperation.RemoveObjects, { objects: [func] }),\n [invokePromise],\n );\n\n return (\n <Settings.Container>\n {functions.length > 0 && (\n <List.Root<Function.Function> items={functions} isItem={Schema.is(Function.Function)} getId={(func) => func.id}>\n {({ items }) => (\n <div role='list' className='flex flex-col w-full'>\n {items?.map((func) => (\n <List.Item<Function.Function>\n key={func.id}\n item={func}\n classNames={mx('grid grid-cols-[1fr_auto] min-h-[2.5rem] min-h-[3rem] px-2 items-center', ghostHover)}\n >\n <div className='flex flex-col truncate'>\n <List.ItemTitle classNames='truncate'>{func.name}</List.ItemTitle>\n {getScriptName(func) && (\n <div className='text-xs text-description truncate'>{getScriptName(func)}</div>\n )}\n </div>\n {functionToScriptMap[func.id] && (\n <Button onClick={() => handleGoToScript(func)}>{t('go to function source button label')}</Button>\n )}\n <IconButton\n iconOnly\n icon='ph--trash--regular'\n label={t('delete function button label')}\n onClick={() => handleDelete(func)}\n />\n </List.Item>\n ))}\n </div>\n )}\n </List.Root>\n )}\n\n {functions.length === 0 && <div className='text-center py-4 text-description'>{t('no functions found')}</div>}\n </Settings.Container>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FunctionsPanel } from './FunctionsPanel';\n\nexport * from './FunctionsPanel';\nexport default FunctionsPanel;\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "React", "useCallback", "useMemo", "useOperationInvoker", "LayoutOperation", "getObjectPathFromObject", "Function", "Script", "SpaceOperation", "Filter", "useQuery", "Button", "IconButton", "useTranslation", "Settings", "List", "ghostHover", "mx", "FunctionsPanel", "space", "t", "useTranslation", "meta", "id", "functions", "useQuery", "db", "Filter", "type", "Function", "scripts", "Script", "invokePromise", "useOperationInvoker", "functionToScriptMap", "useMemo", "reduce", "map", "func", "scriptId", "source", "target", "script", "find", "s", "getScriptName", "useCallback", "name", "handleGoToScript", "LayoutOperation", "Open", "subject", "getObjectPathFromObject", "handleDelete", "SpaceOperation", "RemoveObjects", "objects", "Settings", "Container", "length", "List", "Root", "items", "isItem", "is", "getId", "div", "role", "className", "Item", "key", "item", "classNames", "mx", "ghostHover", "ItemTitle", "Button", "onClick", "IconButton", "iconOnly", "icon", "label", "FunctionsPanel"]
7
+ }
@@ -1,12 +1,12 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  meta
4
- } from "./chunk-5FXNN3MV.mjs";
4
+ } from "./chunk-WC5AT7B3.mjs";
5
5
 
6
6
  // src/components/TriggerEditor/TriggerEditor.tsx
7
7
  import React3, { useCallback as useCallback3, useMemo as useMemo3 } from "react";
8
8
  import { ComputeGraph } from "@dxos/conductor";
9
- import { DXN } from "@dxos/echo";
9
+ import { DXN, Entity, Feed, Obj as Obj2 } from "@dxos/echo";
10
10
  import { Function, Script, Trigger as Trigger2 } from "@dxos/functions";
11
11
  import { Filter as Filter2, Ref as Ref2, useQuery } from "@dxos/react-client/echo";
12
12
  import { Input } from "@dxos/react-ui";
@@ -15,7 +15,7 @@ import { Form as Form2, FormFieldLabel, SelectField as SelectField2, omitId } fr
15
15
 
16
16
  // src/components/TriggerEditor/FunctionInputEditor.tsx
17
17
  import React, { useCallback, useMemo } from "react";
18
- import { Ref, Type } from "@dxos/echo";
18
+ import { JsonSchema, Obj, Ref } from "@dxos/echo";
19
19
  import { useOnTransition, useTranslation } from "@dxos/react-ui";
20
20
  import { Form, useFormValues } from "@dxos/react-ui-form";
21
21
  var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) => {
@@ -49,15 +49,22 @@ var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) =>
49
49
  const inputSchema = useMemo(() => selectedFunction?.inputSchema, [
50
50
  selectedFunction
51
51
  ]);
52
- const effectSchema = useMemo(() => inputSchema ? Type.toEffectSchema(inputSchema) : void 0, [
52
+ const effectSchema = useMemo(() => inputSchema ? JsonSchema.toEffectSchema(inputSchema) : void 0, [
53
53
  inputSchema
54
54
  ]);
55
55
  const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;
56
- const values = useMemo(() => getValue() ?? {}, [
56
+ const defaultValues = useMemo(() => {
57
+ const raw = getValue() ?? {};
58
+ return Obj.isObject(raw) ? {
59
+ ...Obj.getSnapshot(raw)
60
+ } : {
61
+ ...raw
62
+ };
63
+ }, [
57
64
  getValue
58
65
  ]);
59
- const handleValuesChanged = useCallback((values2) => {
60
- onValueChange(type, values2);
66
+ const handleValuesChanged = useCallback((values) => {
67
+ onValueChange(type, values);
61
68
  }, [
62
69
  type,
63
70
  onValueChange
@@ -69,8 +76,9 @@ var FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }) =>
69
76
  label: t("function parameters label"),
70
77
  asChild: true
71
78
  }), /* @__PURE__ */ React.createElement(Form.Root, {
79
+ key: selectedFunction.id,
72
80
  schema: effectSchema,
73
- values,
81
+ defaultValues,
74
82
  db,
75
83
  onValuesChanged: handleValuesChanged
76
84
  }, /* @__PURE__ */ React.createElement(Form.FieldSet, null)));
@@ -106,7 +114,7 @@ var SpecSelector = (props) => {
106
114
  case "queue":
107
115
  return {
108
116
  kind: "queue",
109
- queue: "dxn:"
117
+ queue: "dxn:queue:default"
110
118
  };
111
119
  case "email":
112
120
  return {
@@ -151,18 +159,33 @@ var TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }) =
151
159
  tags,
152
160
  readonlySpec
153
161
  });
162
+ const handleValuesChanged = useCallback3((newValues) => {
163
+ Obj2.change(trigger, (t) => {
164
+ Object.assign(t, newValues);
165
+ });
166
+ }, [
167
+ trigger
168
+ ]);
169
+ const defaultValues = useMemo3(() => {
170
+ const { id: _, ...values } = trigger;
171
+ return values;
172
+ }, [
173
+ trigger
174
+ ]);
154
175
  return /* @__PURE__ */ React3.createElement(Form2.Root, {
155
176
  ...formProps,
156
177
  schema: omitId(Trigger2.Trigger),
157
- values: trigger,
178
+ defaultValues,
158
179
  db,
159
- fieldMap
180
+ fieldMap,
181
+ onValuesChanged: handleValuesChanged
160
182
  }, /* @__PURE__ */ React3.createElement(Form2.Viewport, null, /* @__PURE__ */ React3.createElement(Form2.Content, null, /* @__PURE__ */ React3.createElement(Form2.FieldSet, null), /* @__PURE__ */ React3.createElement(Form2.Actions, null))));
161
183
  };
162
184
  var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
163
185
  const functions = useQuery(db, Filter2.type(Function.Function));
164
186
  const workflows = useQuery(db, Filter2.type(ComputeGraph));
165
187
  const scripts = useQuery(db, Filter2.type(Script.Script));
188
+ const feeds = useQuery(db, Filter2.type(Feed.Feed));
166
189
  return useMemo3(() => ({
167
190
  // Function selector.
168
191
  ["function"]: (props) => {
@@ -193,13 +216,18 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
193
216
  });
194
217
  },
195
218
  // Spec selector.
196
- ["spec.kind"]: (props) => /* @__PURE__ */ React3.createElement(SpecSelector, {
219
+ "spec.kind": (props) => /* @__PURE__ */ React3.createElement(SpecSelector, {
197
220
  ...props,
198
221
  readonly: readonlySpec
199
222
  }),
223
+ // Queue feed selector with parent labels.
224
+ "spec.queue": (props) => /* @__PURE__ */ React3.createElement(SelectField2, {
225
+ ...props,
226
+ options: getFeedQueueOptions(feeds)
227
+ }),
200
228
  // TODO(wittjosiah): Copied from ViewEditor.
201
229
  // Query input editor.
202
- ["spec.query"]: (props) => {
230
+ "spec.query": (props) => {
203
231
  const handleChange = useCallback3((query) => props.onValueChange(props.type, {
204
232
  ast: query.ast
205
233
  }), [
@@ -217,7 +245,7 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
217
245
  }));
218
246
  },
219
247
  // Function input editor.
220
- ["input"]: (props) => /* @__PURE__ */ React3.createElement(FunctionInputEditor, {
248
+ input: (props) => /* @__PURE__ */ React3.createElement(FunctionInputEditor, {
221
249
  ...props,
222
250
  functions,
223
251
  db
@@ -226,6 +254,7 @@ var useCustomInputs = ({ db, readonlySpec, types, tags }) => {
226
254
  workflows,
227
255
  scripts,
228
256
  functions,
257
+ feeds,
229
258
  readonlySpec
230
259
  ]);
231
260
  };
@@ -242,8 +271,24 @@ var getFunctionOptions = (scripts, functions) => {
242
271
  value: `dxn:echo:@:${fn.id}`
243
272
  }));
244
273
  };
274
+ var getFeedQueueOptions = (feeds) => {
275
+ return feeds.flatMap((feed) => {
276
+ const queueDxn = Feed.getQueueDxn(feed);
277
+ if (!queueDxn) {
278
+ return [];
279
+ }
280
+ const parent = Obj2.getParent(feed);
281
+ const label = parent ? Entity.getLabel(parent) : Entity.getLabel(feed);
282
+ return [
283
+ {
284
+ label: label ?? feed.id,
285
+ value: queueDxn.toString()
286
+ }
287
+ ];
288
+ });
289
+ };
245
290
 
246
291
  export {
247
292
  TriggerEditor
248
293
  };
249
- //# sourceMappingURL=chunk-LJAXQ6CX.mjs.map
294
+ //# sourceMappingURL=chunk-QUJ4MTMR.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/TriggerEditor/TriggerEditor.tsx", "../../../src/components/TriggerEditor/FunctionInputEditor.tsx", "../../../src/components/TriggerEditor/SpecSelector.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { DXN, type Database, Entity, Feed, Obj, type Query } from '@dxos/echo';\nimport { Function, Script, Trigger } from '@dxos/functions';\nimport { Filter, Ref, useQuery } from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { QueryForm, type QueryFormProps } from '@dxos/react-ui-components';\nimport {\n type ExcludeId,\n Form,\n FormFieldLabel,\n type FormFieldMap,\n type FormRootProps,\n SelectField,\n omitId,\n} from '@dxos/react-ui-form';\n\nimport { FunctionInputEditor } from './FunctionInputEditor';\nimport { SpecSelector } from './SpecSelector';\n\ntype TriggerFormSchema = ExcludeId<typeof Trigger.Trigger>;\n\nexport type TriggerEditorProps = {\n db: Database.Database;\n trigger: Trigger.Trigger;\n // TODO(wittjosiah): This needs to apply to whole spec but currently only applies to spec.kind & spec.query.\n readonlySpec?: boolean;\n} &\n // prettier-ignore\n Pick<QueryFormProps, 'types' | 'tags'> &\n Pick<FormRootProps<TriggerFormSchema>, 'onSave' | 'onCancel'>;\n\nexport const TriggerEditor = ({ db, types, tags, readonlySpec, trigger, ...formProps }: TriggerEditorProps) => {\n const fieldMap = useCustomInputs({\n db,\n types,\n tags,\n readonlySpec,\n });\n\n const handleValuesChanged = useCallback(\n (newValues: Partial<TriggerFormSchema>) => {\n Obj.change(trigger, (t) => {\n Object.assign(t, newValues);\n });\n },\n [trigger],\n );\n\n const defaultValues = useMemo(() => {\n const { id: _, ...values } = trigger;\n return values;\n }, [trigger]);\n\n return (\n <Form.Root<TriggerFormSchema>\n {...formProps}\n schema={omitId(Trigger.Trigger)}\n defaultValues={defaultValues}\n db={db}\n fieldMap={fieldMap}\n onValuesChanged={handleValuesChanged}\n >\n <Form.Viewport>\n <Form.Content>\n <Form.FieldSet />\n <Form.Actions />\n </Form.Content>\n </Form.Viewport>\n </Form.Root>\n );\n};\n\ntype UseCustomInputsProps = {\n db: Database.Database;\n readonlySpec?: boolean;\n} & Pick<QueryFormProps, 'types' | 'tags'>;\n\nconst useCustomInputs = ({ db, readonlySpec, types, tags }: UseCustomInputsProps): FormFieldMap => {\n const functions = useQuery(db, Filter.type(Function.Function));\n const workflows = useQuery(db, Filter.type(ComputeGraph));\n const scripts = useQuery(db, Filter.type(Script.Script));\n const feeds = useQuery(db, Filter.type(Feed.Feed));\n\n return useMemo(\n (): FormFieldMap => ({\n // Function selector.\n ['function' satisfies keyof Trigger.Trigger]: (props) => {\n const getValue = useCallback(() => {\n const formValue = props.getValue();\n if (Ref.isRef(formValue)) {\n return formValue.dxn.toString() as string;\n }\n return undefined;\n }, [props]);\n\n const handleOnValueChange = useCallback(\n (_type: any, dxnString: string) => {\n const dxn = DXN.parse(dxnString);\n if (dxn) {\n const ref = Ref.fromDXN(dxn);\n props.onValueChange(props.type, ref);\n }\n },\n [props.type, props.onValueChange],\n );\n\n return (\n <SelectField\n {...props}\n getValue={getValue as any}\n onValueChange={handleOnValueChange}\n options={getWorkflowOptions(workflows).concat(getFunctionOptions(scripts, functions))}\n />\n );\n },\n\n // Spec selector.\n 'spec.kind': (props) => <SpecSelector {...props} readonly={readonlySpec} />,\n\n // Queue feed selector with parent labels.\n 'spec.queue': (props) => <SelectField {...props} options={getFeedQueueOptions(feeds)} />,\n\n // TODO(wittjosiah): Copied from ViewEditor.\n // Query input editor.\n 'spec.query': (props) => {\n const handleChange = useCallback(\n (query: Query.Any) => props.onValueChange(props.type, { ast: query.ast }),\n [props.type, props.onValueChange],\n );\n\n return (\n <Input.Root>\n <FormFieldLabel label={props.label} asChild />\n <QueryForm initialQuery={(props.getValue() as any).ast} types={types} tags={tags} onChange={handleChange} />\n </Input.Root>\n );\n },\n\n // Function input editor.\n input: (props) => <FunctionInputEditor {...props} functions={functions} db={db} />,\n }),\n [workflows, scripts, functions, feeds, readonlySpec],\n );\n};\n\nconst getWorkflowOptions = (graphs: ComputeGraph[]) => {\n return graphs.map((graph) => ({ label: `compute-${graph.id}`, value: `dxn:echo:@:${graph.id}` }));\n};\n\nconst getFunctionOptions = (scripts: Script.Script[], functions: Function.Function[]) => {\n const getLabel = (fn: Function.Function) => scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;\n return functions.map((fn) => ({ label: getLabel(fn), value: `dxn:echo:@:${fn.id}` }));\n};\n\nconst getFeedQueueOptions = (feeds: Feed.Feed[]) => {\n return feeds.flatMap((feed) => {\n const queueDxn = Feed.getQueueDxn(feed);\n if (!queueDxn) {\n return [];\n }\n const parent = Obj.getParent(feed);\n const label = parent ? Entity.getLabel(parent) : Entity.getLabel(feed);\n return [{ label: label ?? feed.id, value: queueDxn.toString() }];\n });\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as SchemaAST from 'effect/SchemaAST';\nimport React, { useCallback, useMemo } from 'react';\n\nimport { type Database, JsonSchema, Obj, Ref } from '@dxos/echo';\nimport { type JsonPath } from '@dxos/echo/internal';\nimport { type Function } from '@dxos/functions';\nimport { useOnTransition, useTranslation } from '@dxos/react-ui';\nimport { Form, type FormFieldStateProps, type FormRootProps, useFormValues } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\n\nexport type FunctionInputEditorProps = {\n type: SchemaAST.AST;\n functions: Function.Function[];\n db?: Database.Database;\n} & FormFieldStateProps;\n\nexport const FunctionInputEditor = ({ type, functions, db, getValue, onValueChange }: FunctionInputEditorProps) => {\n const { t } = useTranslation(meta.id);\n const selectedFunctionValue = useFormValues(FunctionInputEditor.displayName, ['function' as JsonPath]);\n const selectedFunctionId = useMemo(() => {\n if (Ref.isRef(selectedFunctionValue)) {\n return selectedFunctionValue.dxn.toString().split('dxn:echo:@:').at(1);\n }\n }, [selectedFunctionValue]);\n\n const selectedFunction = useMemo(\n () => functions.find((fn) => fn.id === selectedFunctionId),\n [functions, selectedFunctionId],\n );\n\n useOnTransition(\n // Clear function parameter input when the function changes.\n selectedFunctionValue,\n (prevValue) => {\n if (!Ref.isRef(prevValue) || !Ref.isRef(selectedFunctionValue)) {\n return false;\n }\n\n return prevValue.dxn.toString() !== selectedFunctionValue.dxn.toString();\n },\n (currValue) => currValue !== undefined,\n () => onValueChange(type, {}),\n );\n\n const inputSchema = useMemo(() => selectedFunction?.inputSchema, [selectedFunction]);\n const effectSchema = useMemo(() => (inputSchema ? JsonSchema.toEffectSchema(inputSchema) : undefined), [inputSchema]);\n const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;\n const defaultValues = useMemo(() => {\n const raw = getValue() ?? {};\n return Obj.isObject(raw) ? { ...Obj.getSnapshot(raw) } : { ...raw };\n }, [getValue]);\n\n const handleValuesChanged = useCallback<NonNullable<FormRootProps['onValuesChanged']>>(\n (values) => {\n onValueChange(type, values);\n },\n [type, onValueChange],\n );\n\n if (selectedFunction === undefined || effectSchema === undefined || propertyCount === 0) {\n return null;\n }\n\n return (\n <>\n <Form.Label label={t('function parameters label')} asChild />\n <Form.Root\n key={selectedFunction.id}\n schema={effectSchema}\n defaultValues={defaultValues}\n db={db}\n onValuesChanged={handleValuesChanged}\n >\n <Form.FieldSet />\n </Form.Root>\n </>\n );\n};\n\nFunctionInputEditor.displayName = 'AutomationTrigger.FunctionInputEditor';\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Filter, Query } from '@dxos/echo';\nimport { Trigger } from '@dxos/functions';\nimport { useTranslation } from '@dxos/react-ui';\nimport { type FormFieldComponentProps, SelectField, useFormFieldState } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\n\nexport type SpecSelectorProps = FormFieldComponentProps;\n\nexport const SpecSelector = (props: SpecSelectorProps) => {\n const { t } = useTranslation(meta.id);\n const specProps = useFormFieldState(SpecSelector.displayName, ['spec' satisfies keyof Trigger.Trigger]);\n\n const handleTypeChange = useCallback(\n (_type: any, value: string): Trigger.Spec | undefined => {\n const getDefaultTriggerSpec = (kind: string) => {\n switch (kind) {\n case 'timer':\n return { kind: 'timer', cron: '' };\n case 'subscription':\n return {\n kind: 'subscription',\n query: {\n ast: Query.select(Filter.nothing()).ast,\n },\n };\n case 'queue':\n return { kind: 'queue', queue: 'dxn:queue:default' };\n case 'email':\n return { kind: 'email' };\n case 'webhook':\n return { kind: 'webhook' };\n default:\n return undefined;\n }\n };\n\n const defaultSpec = getDefaultTriggerSpec(value);\n if (!defaultSpec) {\n return;\n }\n\n // Update the entire spec object, not just the `spec.kind`.\n specProps.onValueChange(props.type, defaultSpec);\n },\n [props.type, specProps],\n );\n\n const options = useMemo(\n () =>\n Trigger.Kinds.map((kind) => ({\n value: kind,\n label: t(`trigger type ${kind}`),\n })),\n [t],\n );\n\n return <SelectField {...props} options={options} onValueChange={handleTypeChange} />;\n};\n\nSpecSelector.displayName = 'Form.SpecSelector';\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "ComputeGraph", "DXN", "Entity", "Feed", "Obj", "Function", "Script", "Trigger", "Filter", "Ref", "useQuery", "Input", "QueryForm", "Form", "FormFieldLabel", "SelectField", "omitId", "React", "useCallback", "useMemo", "JsonSchema", "Obj", "Ref", "useOnTransition", "useTranslation", "Form", "useFormValues", "FunctionInputEditor", "type", "functions", "db", "getValue", "onValueChange", "t", "useTranslation", "meta", "id", "selectedFunctionValue", "useFormValues", "displayName", "selectedFunctionId", "useMemo", "Ref", "isRef", "dxn", "toString", "split", "at", "selectedFunction", "find", "fn", "useOnTransition", "prevValue", "currValue", "undefined", "inputSchema", "effectSchema", "JsonSchema", "toEffectSchema", "propertyCount", "properties", "Object", "keys", "length", "defaultValues", "raw", "Obj", "isObject", "getSnapshot", "handleValuesChanged", "useCallback", "values", "Form", "Label", "label", "asChild", "Root", "key", "schema", "onValuesChanged", "FieldSet", "React", "useCallback", "useMemo", "Filter", "Query", "Trigger", "useTranslation", "SelectField", "useFormFieldState", "SpecSelector", "props", "t", "useTranslation", "meta", "id", "specProps", "useFormFieldState", "displayName", "handleTypeChange", "useCallback", "_type", "value", "getDefaultTriggerSpec", "kind", "cron", "query", "ast", "Query", "select", "Filter", "nothing", "queue", "undefined", "defaultSpec", "onValueChange", "type", "options", "useMemo", "Trigger", "Kinds", "map", "label", "React", "SelectField", "TriggerEditor", "db", "types", "tags", "readonlySpec", "trigger", "formProps", "fieldMap", "useCustomInputs", "handleValuesChanged", "useCallback", "newValues", "Obj", "change", "t", "Object", "assign", "defaultValues", "useMemo", "id", "_", "values", "React", "Form", "Root", "schema", "omitId", "Trigger", "onValuesChanged", "Viewport", "Content", "FieldSet", "Actions", "functions", "useQuery", "Filter", "type", "Function", "workflows", "ComputeGraph", "scripts", "Script", "feeds", "Feed", "props", "getValue", "formValue", "Ref", "isRef", "dxn", "toString", "undefined", "handleOnValueChange", "_type", "dxnString", "DXN", "parse", "ref", "fromDXN", "onValueChange", "SelectField", "options", "getWorkflowOptions", "concat", "getFunctionOptions", "SpecSelector", "readonly", "getFeedQueueOptions", "handleChange", "query", "ast", "Input", "FormFieldLabel", "label", "asChild", "QueryForm", "initialQuery", "onChange", "input", "FunctionInputEditor", "graphs", "map", "graph", "value", "getLabel", "fn", "find", "s", "source", "target", "name", "flatMap", "feed", "queueDxn", "getQueueDxn", "parent", "getParent", "Entity"]
7
+ }
@@ -2,9 +2,9 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
 
3
3
  // src/capabilities/compute-runtime/index.ts
4
4
  import { Capability } from "@dxos/app-framework";
5
- var ComputeRuntime = Capability.lazy("ComputeRuntime", () => import("./compute-runtime-ZHROOBLY.mjs"));
5
+ var ComputeRuntime = Capability.lazy("ComputeRuntime", () => import("./compute-runtime-AMFVJMF2.mjs"));
6
6
 
7
7
  export {
8
8
  ComputeRuntime
9
9
  };
10
- //# sourceMappingURL=chunk-K7GCM342.mjs.map
10
+ //# sourceMappingURL=chunk-R5YEWJCG.mjs.map
@@ -3,7 +3,7 @@ import { createRequire } from 'node:module';const require = createRequire(import
3
3
  // src/meta.ts
4
4
  import { trim } from "@dxos/util";
5
5
  var meta = {
6
- id: "dxos.org/plugin/automation",
6
+ id: "org.dxos.plugin.automation",
7
7
  name: "Automation",
8
8
  description: trim`
9
9
  Workflow automation engine that triggers custom actions based on object events and conditions.
@@ -16,4 +16,4 @@ var meta = {
16
16
  export {
17
17
  meta
18
18
  };
19
- //# sourceMappingURL=chunk-5FXNN3MV.mjs.map
19
+ //# sourceMappingURL=chunk-WC5AT7B3.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/automation',\n name: 'Automation',\n description: trim`\n Workflow automation engine that triggers custom actions based on object events and conditions.\n Create automated pipelines that respond to changes and streamline repetitive tasks.\n `,\n icon: 'ph--robot--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-automation',\n};\n"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.automation',\n name: 'Automation',\n description: trim`\n Workflow automation engine that triggers custom actions based on object events and conditions.\n Create automated pipelines that respond to changes and streamline repetitive tasks.\n `,\n icon: 'ph--robot--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-automation',\n};\n"],
5
5
  "mappings": ";;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,QAAQ;AACV;",
6
6
  "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "source"]
7
7
  }