@dxos/plugin-automation 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

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 (286) hide show
  1. package/dist/lib/browser/AutomationPanel-FAS6ADCW.mjs +11 -0
  2. package/dist/lib/browser/AutomationSettings-XN2OIYWL.mjs +56 -0
  3. package/dist/lib/browser/AutomationSettings-XN2OIYWL.mjs.map +7 -0
  4. package/dist/lib/browser/FunctionsContainer-6QLC7JP4.mjs +129 -0
  5. package/dist/lib/browser/FunctionsContainer-6QLC7JP4.mjs.map +7 -0
  6. package/dist/lib/browser/{FunctionsPanel-HFCK3JRB.mjs → FunctionsPanel-ZX4J75UM.mjs} +3 -3
  7. package/dist/lib/browser/app-graph-builder-LAQMEBMH.mjs +84 -0
  8. package/dist/lib/browser/app-graph-builder-LAQMEBMH.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-XXZNGORC.mjs → chunk-54PANILA.mjs} +5 -5
  10. package/dist/lib/browser/chunk-BFUIVUQH.mjs +102 -0
  11. package/dist/lib/browser/chunk-BFUIVUQH.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-BKFQBKYO.mjs +8 -0
  13. package/dist/lib/browser/chunk-BKFQBKYO.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-JOXPQ27I.mjs +83 -0
  15. package/dist/lib/browser/chunk-JOXPQ27I.mjs.map +7 -0
  16. package/dist/lib/browser/{chunk-LZQFZO3B.mjs → chunk-PZNBEKO5.mjs} +1 -1
  17. package/dist/lib/browser/chunk-PZNBEKO5.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-QW3EM35H.mjs +248 -0
  19. package/dist/lib/browser/chunk-QW3EM35H.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-RAF2FJST.mjs +86 -0
  21. package/dist/lib/browser/chunk-RAF2FJST.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-YWLEY2FD.mjs +200 -0
  23. package/dist/lib/browser/chunk-YWLEY2FD.mjs.map +7 -0
  24. package/dist/lib/browser/cli/index.mjs +1107 -0
  25. package/dist/lib/browser/cli/index.mjs.map +7 -0
  26. package/dist/lib/browser/compute-runtime-WTWLQ67J.mjs +114 -0
  27. package/dist/lib/browser/compute-runtime-WTWLQ67J.mjs.map +7 -0
  28. package/dist/lib/browser/hooks/index.mjs +5 -3
  29. package/dist/lib/browser/index.mjs +53 -57
  30. package/dist/lib/browser/index.mjs.map +4 -4
  31. package/dist/lib/browser/meta.json +1 -1
  32. package/dist/lib/browser/operation-resolver-Q3MWOR7K.mjs +82 -0
  33. package/dist/lib/browser/operation-resolver-Q3MWOR7K.mjs.map +7 -0
  34. package/dist/lib/browser/{react-surface-WPMY3EX2.mjs → react-surface-EV3AC62F.mjs} +13 -11
  35. package/dist/lib/browser/react-surface-EV3AC62F.mjs.map +7 -0
  36. package/dist/lib/browser/types/index.mjs +10 -4
  37. package/dist/lib/node-esm/{AutomationPanel-NVEIUIZP.mjs → AutomationPanel-B7NAGDFA.mjs} +4 -4
  38. package/dist/lib/node-esm/AutomationSettings-M5PMZJ6P.mjs +57 -0
  39. package/dist/lib/node-esm/AutomationSettings-M5PMZJ6P.mjs.map +7 -0
  40. package/dist/lib/node-esm/FunctionsContainer-J4O2ULWR.mjs +130 -0
  41. package/dist/lib/node-esm/FunctionsContainer-J4O2ULWR.mjs.map +7 -0
  42. package/dist/lib/node-esm/{FunctionsPanel-74ELGR7P.mjs → FunctionsPanel-SS6GIVNU.mjs} +3 -3
  43. package/dist/lib/node-esm/app-graph-builder-4UCMXHYY.mjs +85 -0
  44. package/dist/lib/node-esm/app-graph-builder-4UCMXHYY.mjs.map +7 -0
  45. package/dist/lib/node-esm/chunk-2CKVH7JC.mjs +201 -0
  46. package/dist/lib/node-esm/chunk-2CKVH7JC.mjs.map +7 -0
  47. package/dist/lib/node-esm/{chunk-CEVIVRTY.mjs → chunk-5FXNN3MV.mjs} +1 -1
  48. package/dist/lib/node-esm/chunk-5FXNN3MV.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-U5Q2NI7H.mjs → chunk-7QRUPEHH.mjs} +5 -5
  50. package/dist/lib/node-esm/chunk-HQLVREIX.mjs +87 -0
  51. package/dist/lib/node-esm/chunk-HQLVREIX.mjs.map +7 -0
  52. package/dist/lib/node-esm/chunk-K7GCM342.mjs +10 -0
  53. package/dist/lib/node-esm/chunk-K7GCM342.mjs.map +7 -0
  54. package/dist/lib/node-esm/chunk-KWKWOGS5.mjs +103 -0
  55. package/dist/lib/node-esm/chunk-KWKWOGS5.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-LJAXQ6CX.mjs +249 -0
  57. package/dist/lib/node-esm/chunk-LJAXQ6CX.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-RX52VKI2.mjs +84 -0
  59. package/dist/lib/node-esm/chunk-RX52VKI2.mjs.map +7 -0
  60. package/dist/lib/node-esm/cli/index.mjs +1108 -0
  61. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  62. package/dist/lib/node-esm/compute-runtime-ZHROOBLY.mjs +115 -0
  63. package/dist/lib/node-esm/compute-runtime-ZHROOBLY.mjs.map +7 -0
  64. package/dist/lib/node-esm/hooks/index.mjs +5 -3
  65. package/dist/lib/node-esm/index.mjs +53 -57
  66. package/dist/lib/node-esm/index.mjs.map +4 -4
  67. package/dist/lib/node-esm/meta.json +1 -1
  68. package/dist/lib/node-esm/operation-resolver-R5GA4YNO.mjs +83 -0
  69. package/dist/lib/node-esm/operation-resolver-R5GA4YNO.mjs.map +7 -0
  70. package/dist/lib/node-esm/{react-surface-Y2BBJV2I.mjs → react-surface-S6VZJCEZ.mjs} +13 -11
  71. package/dist/lib/node-esm/react-surface-S6VZJCEZ.mjs.map +7 -0
  72. package/dist/lib/node-esm/types/index.mjs +10 -4
  73. package/dist/types/src/AutomationPlugin.d.ts +2 -1
  74. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  76. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  78. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/compute-runtime/compute-runtime.d.ts +6 -0
  80. package/dist/types/src/capabilities/compute-runtime/compute-runtime.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/compute-runtime/index.d.ts +3 -0
  82. package/dist/types/src/capabilities/compute-runtime/index.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/index.d.ts +4 -5
  84. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  85. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  86. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  88. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  90. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  92. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  93. package/dist/types/src/cli/commands/index.d.ts +2 -0
  94. package/dist/types/src/cli/commands/index.d.ts.map +1 -0
  95. package/dist/types/src/cli/commands/trigger/create/index.d.ts +25 -0
  96. package/dist/types/src/cli/commands/trigger/create/index.d.ts.map +1 -0
  97. package/dist/types/src/cli/commands/trigger/create/queue.d.ts +13 -0
  98. package/dist/types/src/cli/commands/trigger/create/queue.d.ts.map +1 -0
  99. package/dist/types/src/cli/commands/trigger/create/subscription.d.ts +15 -0
  100. package/dist/types/src/cli/commands/trigger/create/subscription.d.ts.map +1 -0
  101. package/dist/types/src/cli/commands/trigger/create/timer.d.ts +13 -0
  102. package/dist/types/src/cli/commands/trigger/create/timer.d.ts.map +1 -0
  103. package/dist/types/src/cli/commands/trigger/index.d.ts +57 -0
  104. package/dist/types/src/cli/commands/trigger/index.d.ts.map +1 -0
  105. package/dist/types/src/cli/commands/trigger/list.d.ts +7 -0
  106. package/dist/types/src/cli/commands/trigger/list.d.ts.map +1 -0
  107. package/dist/types/src/cli/commands/trigger/options.d.ts +11 -0
  108. package/dist/types/src/cli/commands/trigger/options.d.ts.map +1 -0
  109. package/dist/types/src/cli/commands/trigger/remove.d.ts +8 -0
  110. package/dist/types/src/cli/commands/trigger/remove.d.ts.map +1 -0
  111. package/dist/types/src/cli/commands/trigger/update/index.d.ts +28 -0
  112. package/dist/types/src/cli/commands/trigger/update/index.d.ts.map +1 -0
  113. package/dist/types/src/cli/commands/trigger/update/queue.d.ts +12 -0
  114. package/dist/types/src/cli/commands/trigger/update/queue.d.ts.map +1 -0
  115. package/dist/types/src/cli/commands/trigger/update/subscription.d.ts +13 -0
  116. package/dist/types/src/cli/commands/trigger/update/subscription.d.ts.map +1 -0
  117. package/dist/types/src/cli/commands/trigger/update/timer.d.ts +11 -0
  118. package/dist/types/src/cli/commands/trigger/update/timer.d.ts.map +1 -0
  119. package/dist/types/src/cli/commands/trigger/util.d.ts +46 -0
  120. package/dist/types/src/cli/commands/trigger/util.d.ts.map +1 -0
  121. package/dist/types/src/cli/index.d.ts +2 -0
  122. package/dist/types/src/cli/index.d.ts.map +1 -0
  123. package/dist/types/src/cli/plugin.d.ts +3 -0
  124. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  125. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -1
  126. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
  127. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +3 -0
  128. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
  129. package/dist/types/src/components/FunctionsContainer.d.ts.map +1 -1
  130. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
  131. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts +8 -0
  132. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts.map +1 -0
  133. package/dist/types/src/components/FunctionsRegistry/index.d.ts +2 -0
  134. package/dist/types/src/components/FunctionsRegistry/index.d.ts.map +1 -0
  135. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts +10 -7
  136. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +1 -1
  137. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts +6 -3
  138. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +1 -1
  139. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +7 -6
  140. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  141. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +72 -2
  142. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
  143. package/dist/types/src/components/TriggerSettings.d.ts +3 -3
  144. package/dist/types/src/components/TriggerSettings.d.ts.map +1 -1
  145. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +8 -4
  146. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +1 -1
  147. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +2 -2
  148. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -1
  149. package/dist/types/src/index.d.ts +1 -2
  150. package/dist/types/src/index.d.ts.map +1 -1
  151. package/dist/types/src/meta.d.ts +2 -2
  152. package/dist/types/src/meta.d.ts.map +1 -1
  153. package/dist/types/src/testing/test-functions.d.ts +202 -3
  154. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  155. package/dist/types/src/translations.d.ts +3 -0
  156. package/dist/types/src/translations.d.ts.map +1 -1
  157. package/dist/types/src/types/capabilities.d.ts +22 -0
  158. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  159. package/dist/types/src/types/events.d.ts +5 -0
  160. package/dist/types/src/types/events.d.ts.map +1 -0
  161. package/dist/types/src/types/index.d.ts +2 -0
  162. package/dist/types/src/types/index.d.ts.map +1 -1
  163. package/dist/types/src/types/schema.d.ts +30 -1
  164. package/dist/types/src/types/schema.d.ts.map +1 -1
  165. package/dist/types/tsconfig.tsbuildinfo +1 -1
  166. package/package.json +61 -47
  167. package/src/AutomationPlugin.tsx +13 -33
  168. package/src/capabilities/app-graph-builder/app-graph-builder.ts +71 -0
  169. package/src/capabilities/app-graph-builder/index.ts +7 -0
  170. package/src/capabilities/compute-runtime/compute-runtime.ts +133 -0
  171. package/src/capabilities/compute-runtime/index.ts +7 -0
  172. package/src/capabilities/index.ts +4 -8
  173. package/src/capabilities/operation-resolver/index.ts +7 -0
  174. package/src/capabilities/operation-resolver/operation-resolver.ts +79 -0
  175. package/src/capabilities/react-surface/index.ts +7 -0
  176. package/src/capabilities/react-surface/react-surface.tsx +60 -0
  177. package/src/cli/commands/index.ts +5 -0
  178. package/src/cli/commands/trigger/create/index.ts +14 -0
  179. package/src/cli/commands/trigger/create/queue.ts +89 -0
  180. package/src/cli/commands/trigger/create/subscription.ts +128 -0
  181. package/src/cli/commands/trigger/create/timer.ts +93 -0
  182. package/src/cli/commands/trigger/index.ts +16 -0
  183. package/src/cli/commands/trigger/list.ts +67 -0
  184. package/src/cli/commands/trigger/options.ts +59 -0
  185. package/src/cli/commands/trigger/remove.ts +45 -0
  186. package/src/cli/commands/trigger/update/index.ts +14 -0
  187. package/src/cli/commands/trigger/update/queue.ts +195 -0
  188. package/src/cli/commands/trigger/update/subscription.ts +278 -0
  189. package/src/cli/commands/trigger/update/timer.ts +193 -0
  190. package/src/cli/commands/trigger/util.ts +395 -0
  191. package/src/cli/index.ts +5 -0
  192. package/src/cli/plugin.ts +23 -0
  193. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +1 -1
  194. package/src/components/AutomationPanel/AutomationPanel.tsx +51 -22
  195. package/src/components/AutomationSettings.tsx +1 -1
  196. package/src/components/FunctionsContainer.tsx +7 -0
  197. package/src/components/FunctionsPanel/FunctionsPanel.tsx +14 -12
  198. package/src/components/FunctionsRegistry/FunctionsRegistry.tsx +111 -0
  199. package/src/components/FunctionsRegistry/index.ts +5 -0
  200. package/src/components/TriggerEditor/FunctionInputEditor.tsx +23 -31
  201. package/src/components/TriggerEditor/SpecSelector.tsx +8 -6
  202. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +33 -29
  203. package/src/components/TriggerEditor/TriggerEditor.tsx +56 -43
  204. package/src/components/TriggerSettings.tsx +3 -3
  205. package/src/hooks/useComputeRuntimeCallback.ts +43 -8
  206. package/src/hooks/useTriggerRuntimeControls.ts +9 -8
  207. package/src/index.ts +1 -2
  208. package/src/meta.ts +2 -2
  209. package/src/testing/test-functions.ts +2 -2
  210. package/src/translations.ts +4 -0
  211. package/src/{capabilities → types}/capabilities.ts +8 -14
  212. package/src/types/events.ts +11 -0
  213. package/src/types/index.ts +2 -0
  214. package/src/types/schema.ts +23 -2
  215. package/dist/lib/browser/AutomationPanel-LBXJDM6Z.mjs +0 -11
  216. package/dist/lib/browser/AutomationSettings-IIEI5D2K.mjs +0 -68
  217. package/dist/lib/browser/AutomationSettings-IIEI5D2K.mjs.map +0 -7
  218. package/dist/lib/browser/FunctionsContainer-IZTCGNJZ.mjs +0 -36
  219. package/dist/lib/browser/FunctionsContainer-IZTCGNJZ.mjs.map +0 -7
  220. package/dist/lib/browser/app-graph-builder-7VKA2GS3.mjs +0 -81
  221. package/dist/lib/browser/app-graph-builder-7VKA2GS3.mjs.map +0 -7
  222. package/dist/lib/browser/chunk-CVYJM6OO.mjs +0 -66
  223. package/dist/lib/browser/chunk-CVYJM6OO.mjs.map +0 -7
  224. package/dist/lib/browser/chunk-FHSN7G4H.mjs +0 -107
  225. package/dist/lib/browser/chunk-FHSN7G4H.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-GCGHLQM2.mjs +0 -15
  227. package/dist/lib/browser/chunk-GCGHLQM2.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-JW7XSPYW.mjs +0 -267
  229. package/dist/lib/browser/chunk-JW7XSPYW.mjs.map +0 -7
  230. package/dist/lib/browser/chunk-K5YNWESC.mjs +0 -183
  231. package/dist/lib/browser/chunk-K5YNWESC.mjs.map +0 -7
  232. package/dist/lib/browser/chunk-LZQFZO3B.mjs.map +0 -7
  233. package/dist/lib/browser/chunk-YBPJCY3F.mjs +0 -38
  234. package/dist/lib/browser/chunk-YBPJCY3F.mjs.map +0 -7
  235. package/dist/lib/browser/compute-runtime-PFYRMGN2.mjs +0 -114
  236. package/dist/lib/browser/compute-runtime-PFYRMGN2.mjs.map +0 -7
  237. package/dist/lib/browser/intent-resolver-5HR7M7T6.mjs +0 -77
  238. package/dist/lib/browser/intent-resolver-5HR7M7T6.mjs.map +0 -7
  239. package/dist/lib/browser/react-surface-WPMY3EX2.mjs.map +0 -7
  240. package/dist/lib/node-esm/AutomationSettings-VIIEPI2P.mjs +0 -69
  241. package/dist/lib/node-esm/AutomationSettings-VIIEPI2P.mjs.map +0 -7
  242. package/dist/lib/node-esm/FunctionsContainer-KKRCIXGB.mjs +0 -37
  243. package/dist/lib/node-esm/FunctionsContainer-KKRCIXGB.mjs.map +0 -7
  244. package/dist/lib/node-esm/app-graph-builder-RTOFJNFV.mjs +0 -82
  245. package/dist/lib/node-esm/app-graph-builder-RTOFJNFV.mjs.map +0 -7
  246. package/dist/lib/node-esm/chunk-3BJ6BR3E.mjs +0 -67
  247. package/dist/lib/node-esm/chunk-3BJ6BR3E.mjs.map +0 -7
  248. package/dist/lib/node-esm/chunk-CEVIVRTY.mjs.map +0 -7
  249. package/dist/lib/node-esm/chunk-ECJKIUBO.mjs +0 -39
  250. package/dist/lib/node-esm/chunk-ECJKIUBO.mjs.map +0 -7
  251. package/dist/lib/node-esm/chunk-JOCKHLFT.mjs +0 -108
  252. package/dist/lib/node-esm/chunk-JOCKHLFT.mjs.map +0 -7
  253. package/dist/lib/node-esm/chunk-MRYKW5TM.mjs +0 -16
  254. package/dist/lib/node-esm/chunk-MRYKW5TM.mjs.map +0 -7
  255. package/dist/lib/node-esm/chunk-W76WUTZY.mjs +0 -268
  256. package/dist/lib/node-esm/chunk-W76WUTZY.mjs.map +0 -7
  257. package/dist/lib/node-esm/chunk-Y7PJXFCJ.mjs +0 -184
  258. package/dist/lib/node-esm/chunk-Y7PJXFCJ.mjs.map +0 -7
  259. package/dist/lib/node-esm/compute-runtime-IXCSD3W7.mjs +0 -115
  260. package/dist/lib/node-esm/compute-runtime-IXCSD3W7.mjs.map +0 -7
  261. package/dist/lib/node-esm/intent-resolver-KDRYB5BC.mjs +0 -78
  262. package/dist/lib/node-esm/intent-resolver-KDRYB5BC.mjs.map +0 -7
  263. package/dist/lib/node-esm/react-surface-Y2BBJV2I.mjs.map +0 -7
  264. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  265. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  266. package/dist/types/src/capabilities/capabilities.d.ts +0 -19
  267. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  268. package/dist/types/src/capabilities/compute-runtime.d.ts +0 -5
  269. package/dist/types/src/capabilities/compute-runtime.d.ts.map +0 -1
  270. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  271. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  272. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  273. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  274. package/dist/types/src/events.d.ts +0 -4
  275. package/dist/types/src/events.d.ts.map +0 -1
  276. package/src/capabilities/app-graph-builder.ts +0 -87
  277. package/src/capabilities/compute-runtime.ts +0 -138
  278. package/src/capabilities/intent-resolver.ts +0 -72
  279. package/src/capabilities/react-surface.tsx +0 -55
  280. package/src/events.ts +0 -11
  281. /package/dist/lib/browser/{AutomationPanel-LBXJDM6Z.mjs.map → AutomationPanel-FAS6ADCW.mjs.map} +0 -0
  282. /package/dist/lib/browser/{FunctionsPanel-HFCK3JRB.mjs.map → FunctionsPanel-ZX4J75UM.mjs.map} +0 -0
  283. /package/dist/lib/browser/{chunk-XXZNGORC.mjs.map → chunk-54PANILA.mjs.map} +0 -0
  284. /package/dist/lib/node-esm/{AutomationPanel-NVEIUIZP.mjs.map → AutomationPanel-B7NAGDFA.mjs.map} +0 -0
  285. /package/dist/lib/node-esm/{FunctionsPanel-74ELGR7P.mjs.map → FunctionsPanel-SS6GIVNU.mjs.map} +0 -0
  286. /package/dist/lib/node-esm/{chunk-U5Q2NI7H.mjs.map → chunk-7QRUPEHH.mjs.map} +0 -0
@@ -1,107 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-LZQFZO3B.mjs";
4
-
5
- // src/components/FunctionsPanel/FunctionsPanel.tsx
6
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
7
- import * as Schema from "effect/Schema";
8
- import React, { useCallback, useMemo } from "react";
9
- import { LayoutAction, createIntent, useIntentDispatcher } from "@dxos/app-framework";
10
- import { Function, Script } from "@dxos/functions";
11
- import { SpaceAction } from "@dxos/plugin-space/types";
12
- import { Filter, fullyQualifiedId, useQuery } from "@dxos/react-client/echo";
13
- import { Button, IconButton, useTranslation } from "@dxos/react-ui";
14
- import { controlItemClasses } from "@dxos/react-ui-form";
15
- import { List } from "@dxos/react-ui-list";
16
- import { ghostHover, mx } from "@dxos/react-ui-theme";
17
- var grid = "grid grid-cols-[1fr_auto] min-bs-[2.5rem]";
18
- var FunctionsPanel = ({ space }) => {
19
- var _effect = _useSignals();
20
- try {
21
- const { t } = useTranslation(meta.id);
22
- const functions = useQuery(space, Filter.type(Function.Function));
23
- const scripts = useQuery(space, Filter.type(Script.Script));
24
- const { dispatchPromise: dispatch } = useIntentDispatcher();
25
- const functionToScriptMap = useMemo(() => functions.reduce((map, func) => {
26
- const scriptId = func.source?.target?.id;
27
- if (scriptId) {
28
- const script = scripts.find((s) => s.id === scriptId);
29
- if (script) {
30
- map[func.id] = script;
31
- }
32
- }
33
- return map;
34
- }, {}), [
35
- functions,
36
- scripts
37
- ]);
38
- const getScriptName = useCallback((func) => {
39
- const script = functionToScriptMap[func.id];
40
- return script?.name;
41
- }, [
42
- functionToScriptMap
43
- ]);
44
- const handleGoToScript = useCallback((func) => {
45
- const script = functionToScriptMap[func.id];
46
- if (script) {
47
- void dispatch(createIntent(LayoutAction.Open, {
48
- part: "main",
49
- subject: [
50
- fullyQualifiedId(script)
51
- ]
52
- }));
53
- }
54
- }, [
55
- functionToScriptMap,
56
- dispatch
57
- ]);
58
- const handleDelete = useCallback((func) => dispatch(createIntent(SpaceAction.RemoveObjects, {
59
- objects: [
60
- func
61
- ]
62
- })), [
63
- dispatch
64
- ]);
65
- return /* @__PURE__ */ React.createElement("div", {
66
- role: "none",
67
- className: mx(controlItemClasses)
68
- }, functions.length > 0 && /* @__PURE__ */ React.createElement(List.Root, {
69
- items: functions,
70
- isItem: Schema.is(Function.Function),
71
- getId: (func) => func.id
72
- }, ({ items }) => /* @__PURE__ */ React.createElement("div", {
73
- role: "list",
74
- className: "flex flex-col w-full"
75
- }, items?.map((func) => /* @__PURE__ */ React.createElement(List.Item, {
76
- key: func.id,
77
- item: func,
78
- classNames: mx(grid, ghostHover, "items-center", "pli-2", "min-bs-[3rem]")
79
- }, /* @__PURE__ */ React.createElement("div", {
80
- className: "flex flex-col truncate"
81
- }, /* @__PURE__ */ React.createElement(List.ItemTitle, {
82
- classNames: "truncate"
83
- }, func.name), getScriptName(func) && /* @__PURE__ */ React.createElement("div", {
84
- className: "text-xs text-description truncate"
85
- }, getScriptName(func))), functionToScriptMap[func.id] && /* @__PURE__ */ React.createElement(Button, {
86
- onClick: () => handleGoToScript(func)
87
- }, t("go to function source button label")), /* @__PURE__ */ React.createElement(IconButton, {
88
- iconOnly: true,
89
- icon: "ph--trash--regular",
90
- label: t("delete function button label"),
91
- onClick: () => handleDelete(func)
92
- }))))), functions.length === 0 && /* @__PURE__ */ React.createElement("div", {
93
- className: "text-center plb-4 text-gray-500"
94
- }, t("no functions found")));
95
- } finally {
96
- _effect.f();
97
- }
98
- };
99
-
100
- // src/components/FunctionsPanel/index.ts
101
- var FunctionsPanel_default = FunctionsPanel;
102
-
103
- export {
104
- FunctionsPanel,
105
- FunctionsPanel_default
106
- };
107
- //# sourceMappingURL=chunk-FHSN7G4H.mjs.map
@@ -1,7 +0,0 @@
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 { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Function, Script } from '@dxos/functions';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { Filter, type Space, fullyQualifiedId, useQuery } from '@dxos/react-client/echo';\nimport { Button, 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_auto] min-bs-[2.5rem]';\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, Filter.type(Function.Function));\n const scripts = useQuery(space, Filter.type(Script.Script));\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n\n const functionToScriptMap = useMemo(\n () =>\n functions.reduce(\n (map, func) => {\n const scriptId = func.source?.target?.id;\n if (scriptId) {\n const script = scripts.find((s) => s.id === scriptId);\n if (script) {\n map[func.id] = script;\n }\n }\n return map;\n },\n {} as Record<string, 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 dispatch(createIntent(LayoutAction.Open, { part: 'main', subject: [fullyQualifiedId(script)] }));\n }\n },\n [functionToScriptMap, dispatch],\n );\n\n const handleDelete = useCallback(\n (func: Function.Function) => dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [func] })),\n [dispatch],\n );\n\n return (\n <div role='none' className={mx(controlItemClasses)}>\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, ghostHover, 'items-center', 'pli-2', 'min-bs-[3rem]')}\n >\n <div className='flex flex-col truncate'>\n <List.ItemTitle classNames='truncate'>{func.name}</List.ItemTitle>\n {getScriptName(func) && (\n <div className='text-xs text-description truncate'>{getScriptName(func)}</div>\n )}\n </div>\n {functionToScriptMap[func.id] && (\n <Button onClick={() => handleGoToScript(func)}>{t('go to function source button label')}</Button>\n )}\n <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 plb-4 text-gray-500'>{t('no functions found')}</div>}\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { FunctionsPanel } from './FunctionsPanel';\n\nexport * from './FunctionsPanel';\nexport default FunctionsPanel;\n"],
5
- "mappings": "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",
6
- "names": ["Schema", "React", "useCallback", "useMemo", "LayoutAction", "createIntent", "useIntentDispatcher", "Function", "Script", "SpaceAction", "Filter", "fullyQualifiedId", "useQuery", "Button", "IconButton", "useTranslation", "controlItemClasses", "List", "ghostHover", "mx", "grid", "FunctionsPanel", "space", "t", "useTranslation", "meta", "id", "functions", "useQuery", "Filter", "type", "Function", "scripts", "Script", "dispatchPromise", "dispatch", "useIntentDispatcher", "functionToScriptMap", "useMemo", "reduce", "map", "func", "scriptId", "source", "target", "script", "find", "s", "getScriptName", "useCallback", "name", "handleGoToScript", "createIntent", "LayoutAction", "Open", "part", "subject", "fullyQualifiedId", "handleDelete", "SpaceAction", "RemoveObjects", "objects", "div", "role", "className", "mx", "controlItemClasses", "length", "List", "Root", "items", "isItem", "is", "getId", "Item", "key", "item", "classNames", "ghostHover", "ItemTitle", "Button", "onClick", "IconButton", "iconOnly", "icon", "label", "FunctionsPanel"]
7
- }
@@ -1,15 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-LZQFZO3B.mjs";
4
-
5
- // src/capabilities/capabilities.ts
6
- import { defineCapability } from "@dxos/app-framework";
7
- (function(AutomationCapabilities2) {
8
- AutomationCapabilities2.ComputeRuntime = defineCapability(`${meta.id}/capability/compute-runtime`);
9
- })(AutomationCapabilities || (AutomationCapabilities = {}));
10
- var AutomationCapabilities;
11
-
12
- export {
13
- AutomationCapabilities
14
- };
15
- //# sourceMappingURL=chunk-GCGHLQM2.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/capabilities.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as ManagedRuntime from 'effect/ManagedRuntime';\n\nimport { type AiService, type ToolExecutionService, type ToolResolverService } from '@dxos/ai';\nimport { defineCapability } from '@dxos/app-framework';\nimport type {\n CredentialsService,\n DatabaseService,\n FunctionInvocationService,\n InvocationTracer,\n QueueService,\n TriggerDispatcher,\n TriggerStateStore,\n} from '@dxos/functions';\nimport type { SpaceId } from '@dxos/keys';\n\nimport { meta } from '../meta';\n\nexport namespace AutomationCapabilities {\n /**\n * Service stack for executing agents, functions, and triggers.\n */\n export type ComputeServices =\n | TriggerDispatcher\n | AiService.AiService\n | DatabaseService\n | QueueService\n | CredentialsService\n | FunctionInvocationService\n | InvocationTracer\n | TriggerStateStore\n // TODO(dmaretskyi): Those should be provided at AI-chat call site.\n | ToolResolverService\n | ToolExecutionService;\n\n export type ComputeRuntime = ManagedRuntime.ManagedRuntime<AutomationCapabilities.ComputeServices, never>;\n export interface ComputeRuntimeProvider {\n getRuntime(spaceId: SpaceId): ComputeRuntime;\n }\n\n /**\n * Runtime for executing agents, functions, and triggers.\n */\n export const ComputeRuntime = defineCapability<ComputeRuntimeProvider>(`${meta.id}/capability/compute-runtime`);\n}\n"],
5
- "mappings": ";;;;;AAOA,SAASA,wBAAwB;UAchBC,yBAAAA;0BAyBFC,iBAAiBC,iBAAyC,GAAGC,KAAKC,EAAE,6BAA6B;AAChH,GA1BiBJ,2BAAAA,yBAAAA,CAAAA,EAAAA;;",
6
- "names": ["defineCapability", "AutomationCapabilities", "ComputeRuntime", "defineCapability", "meta", "id"]
7
- }
@@ -1,267 +0,0 @@
1
- import {
2
- meta
3
- } from "./chunk-LZQFZO3B.mjs";
4
-
5
- // src/components/TriggerEditor/TriggerEditor.tsx
6
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
7
- import React3, { useCallback as useCallback3, useMemo as useMemo3 } from "react";
8
- import { ComputeGraph } from "@dxos/conductor";
9
- import { Type as Type2 } from "@dxos/echo";
10
- import { Function, Script, Trigger as Trigger2 } from "@dxos/functions";
11
- import { Filter as Filter2, Ref as Ref2, useQuery } from "@dxos/react-client/echo";
12
- import { Input } from "@dxos/react-ui";
13
- import { QueryForm } from "@dxos/react-ui-components";
14
- import { Form as Form2, InputHeader, SelectInput as SelectInput2, useRefQueryLookupHandler } from "@dxos/react-ui-form";
15
-
16
- // src/components/TriggerEditor/FunctionInputEditor.tsx
17
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
18
- import React, { useCallback, useMemo } from "react";
19
- import { Ref, Type } from "@dxos/echo";
20
- import { useOnTransition } from "@dxos/react-ui";
21
- import { Form, useFormValues } from "@dxos/react-ui-form";
22
- var FunctionInputEditor = ({ functions, getValue, onValueChange, onQueryRefOptions }) => {
23
- var _effect = _useSignals();
24
- try {
25
- const selectedFunctionValue = useFormValues([
26
- "function"
27
- ]);
28
- const selectedFunctionId = useMemo(() => {
29
- if (Ref.isRef(selectedFunctionValue)) {
30
- return selectedFunctionValue.dxn.toString().split("dxn:echo:@:").at(1);
31
- }
32
- }, [
33
- selectedFunctionValue
34
- ]);
35
- const selectedFunction = useMemo(() => functions.find((fn) => fn.id === selectedFunctionId), [
36
- functions,
37
- selectedFunctionId
38
- ]);
39
- useOnTransition(
40
- // Clear function parameter input when the function changes.
41
- selectedFunctionValue,
42
- (prevValue) => {
43
- if (!Ref.isRef(prevValue) || !Ref.isRef(selectedFunctionValue)) {
44
- return false;
45
- }
46
- return prevValue.dxn.toString() !== selectedFunctionValue.dxn.toString();
47
- },
48
- (currValue) => currValue !== void 0,
49
- () => onValueChange("object", {})
50
- );
51
- const inputSchema = useMemo(() => selectedFunction?.inputSchema, [
52
- selectedFunction
53
- ]);
54
- const effectSchema = useMemo(() => inputSchema ? Type.toEffectSchema(inputSchema) : void 0, [
55
- inputSchema
56
- ]);
57
- const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;
58
- const values = useMemo(() => getValue() ?? {}, [
59
- getValue
60
- ]);
61
- const handleValuesChanged = useCallback((values2) => {
62
- onValueChange("object", values2);
63
- }, [
64
- onValueChange
65
- ]);
66
- if (selectedFunction === void 0 || effectSchema === void 0 || propertyCount === 0) {
67
- return null;
68
- }
69
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("h3", {
70
- className: "text-md"
71
- }, "Function parameters"), /* @__PURE__ */ React.createElement(Form, {
72
- schema: effectSchema,
73
- values,
74
- onValuesChanged: handleValuesChanged,
75
- onQueryRefOptions,
76
- outerSpacing: false
77
- }));
78
- } finally {
79
- _effect.f();
80
- }
81
- };
82
-
83
- // src/components/TriggerEditor/SpecSelector.tsx
84
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
85
- import React2, { useCallback as useCallback2, useMemo as useMemo2 } from "react";
86
- import { Filter, Query } from "@dxos/echo";
87
- import { Trigger } from "@dxos/functions";
88
- import { useTranslation } from "@dxos/react-ui";
89
- import { SelectInput, useInputProps } from "@dxos/react-ui-form";
90
- var SpecSelector = (props) => {
91
- var _effect = _useSignals2();
92
- try {
93
- const { t } = useTranslation(meta.id);
94
- const specProps = useInputProps([
95
- "spec"
96
- ]);
97
- const handleTypeChange = useCallback2((_type, value) => {
98
- const getDefaultTriggerSpec = (kind) => {
99
- switch (kind) {
100
- case "timer":
101
- return {
102
- kind: "timer",
103
- cron: ""
104
- };
105
- case "subscription":
106
- return {
107
- kind: "subscription",
108
- query: {
109
- ast: Query.select(Filter.nothing()).ast
110
- }
111
- };
112
- case "queue":
113
- return {
114
- kind: "queue",
115
- queue: "dxn:"
116
- };
117
- case "email":
118
- return {
119
- kind: "email"
120
- };
121
- case "webhook":
122
- return {
123
- kind: "webhook"
124
- };
125
- default:
126
- return void 0;
127
- }
128
- };
129
- const defaultSpec = getDefaultTriggerSpec(value);
130
- if (!defaultSpec) {
131
- return;
132
- }
133
- specProps.onValueChange("object", defaultSpec);
134
- }, [
135
- specProps
136
- ]);
137
- const options = useMemo2(() => Trigger.Kinds.map((kind) => ({
138
- value: kind,
139
- label: t(`trigger type ${kind}`)
140
- })), [
141
- t
142
- ]);
143
- return /* @__PURE__ */ React2.createElement(SelectInput, {
144
- ...props,
145
- options,
146
- onValueChange: handleTypeChange
147
- });
148
- } finally {
149
- _effect.f();
150
- }
151
- };
152
-
153
- // src/components/TriggerEditor/TriggerEditor.tsx
154
- var TriggerEditor = ({ space, trigger, readonlySpec, types, tags, onSave, onCancel }) => {
155
- var _effect = _useSignals3();
156
- try {
157
- const handleSave = ({ id: _, ...values }) => {
158
- onSave?.(values);
159
- };
160
- const handleRefQueryLookup = useRefQueryLookupHandler({
161
- space
162
- });
163
- const Custom = useCustomInputs({
164
- space,
165
- readonlySpec,
166
- types,
167
- tags,
168
- onQueryRefOptions: handleRefQueryLookup
169
- });
170
- return /* @__PURE__ */ React3.createElement(Form2, {
171
- outerSpacing: false,
172
- Custom,
173
- schema: Trigger2.Trigger,
174
- values: trigger,
175
- onSave: handleSave,
176
- onCancel,
177
- onQueryRefOptions: handleRefQueryLookup
178
- });
179
- } finally {
180
- _effect.f();
181
- }
182
- };
183
- var useCustomInputs = ({ space, readonlySpec, types, tags, onQueryRefOptions }) => {
184
- const functions = useQuery(space, Filter2.type(Function.Function));
185
- const workflows = useQuery(space, Filter2.type(ComputeGraph));
186
- const scripts = useQuery(space, Filter2.type(Script.Script));
187
- return useMemo3(() => ({
188
- // Function selector.
189
- ["function"]: (props) => {
190
- const getValue = useCallback3(() => {
191
- const formValue = props.getValue();
192
- if (Ref2.isRef(formValue)) {
193
- return formValue.dxn.toString();
194
- }
195
- return void 0;
196
- }, [
197
- props
198
- ]);
199
- const handleOnValueChange = useCallback3((_type, dxnString) => {
200
- const dxn = Type2.DXN.parse(dxnString);
201
- if (dxn) {
202
- const ref = Ref2.fromDXN(dxn);
203
- props.onValueChange("object", ref);
204
- }
205
- }, [
206
- props.onValueChange
207
- ]);
208
- return /* @__PURE__ */ React3.createElement(SelectInput2, {
209
- ...props,
210
- getValue,
211
- onValueChange: handleOnValueChange,
212
- options: getWorkflowOptions(workflows).concat(getFunctionOptions(scripts, functions))
213
- });
214
- },
215
- // Spec selector.
216
- ["spec.kind"]: (props) => /* @__PURE__ */ React3.createElement(SpecSelector, {
217
- ...props,
218
- readonly: readonlySpec ? "disabled-input" : false
219
- }),
220
- // TODO(wittjosiah): Copied from ViewEditor.
221
- // Query input editor.
222
- ["spec.query"]: (props) => {
223
- const handleChange = useCallback3((query) => props.onValueChange("object", {
224
- ast: query.ast
225
- }), [
226
- props.onValueChange
227
- ]);
228
- return /* @__PURE__ */ React3.createElement(Input.Root, null, /* @__PURE__ */ React3.createElement(InputHeader, {
229
- label: props.label
230
- }), /* @__PURE__ */ React3.createElement(QueryForm, {
231
- initialQuery: props.getValue().ast,
232
- types,
233
- tags,
234
- onChange: handleChange
235
- }));
236
- },
237
- // Function input editor.
238
- ["input"]: (props) => /* @__PURE__ */ React3.createElement(FunctionInputEditor, {
239
- ...props,
240
- functions,
241
- onQueryRefOptions
242
- })
243
- }), [
244
- workflows,
245
- scripts,
246
- functions,
247
- readonlySpec
248
- ]);
249
- };
250
- var getWorkflowOptions = (graphs) => {
251
- return graphs.map((graph) => ({
252
- label: `compute-${graph.id}`,
253
- value: `dxn:echo:@:${graph.id}`
254
- }));
255
- };
256
- var getFunctionOptions = (scripts, functions) => {
257
- const getLabel = (fn) => scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;
258
- return functions.map((fn) => ({
259
- label: getLabel(fn),
260
- value: `dxn:echo:@:${fn.id}`
261
- }));
262
- };
263
-
264
- export {
265
- TriggerEditor
266
- };
267
- //# sourceMappingURL=chunk-JW7XSPYW.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/TriggerEditor/TriggerEditor.tsx", "../../../src/components/TriggerEditor/FunctionInputEditor.tsx", "../../../src/components/TriggerEditor/SpecSelector.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { type Query, Type } from '@dxos/echo';\nimport { Function, Script, Trigger } from '@dxos/functions';\nimport { Filter, Ref, type Space, useQuery } from '@dxos/react-client/echo';\nimport { Input } from '@dxos/react-ui';\nimport { QueryForm, type QueryFormProps } from '@dxos/react-ui-components';\nimport { type CustomInputMap, Form, InputHeader, SelectInput, useRefQueryLookupHandler } from '@dxos/react-ui-form';\n\nimport { FunctionInputEditor, type FunctionInputEditorProps } from './FunctionInputEditor';\nimport { SpecSelector } from './SpecSelector';\n\nexport type TriggerEditorProps = {\n space: Space;\n trigger: 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 onSave?: (trigger: Omit<Trigger.Trigger, 'id'>) => void;\n onCancel?: () => void;\n} & Pick<QueryFormProps, 'types' | 'tags'>;\n\nexport const TriggerEditor = ({ space, trigger, readonlySpec, types, tags, onSave, onCancel }: TriggerEditorProps) => {\n const handleSave = ({ id: _, ...values }: Trigger.Trigger) => {\n onSave?.(values);\n };\n\n const handleRefQueryLookup = useRefQueryLookupHandler({ space });\n const Custom = useCustomInputs({ space, readonlySpec, types, tags, onQueryRefOptions: handleRefQueryLookup });\n\n return (\n <Form\n outerSpacing={false}\n Custom={Custom}\n schema={Trigger.Trigger}\n values={trigger}\n onSave={handleSave}\n onCancel={onCancel}\n onQueryRefOptions={handleRefQueryLookup}\n />\n );\n};\n\ntype UseCustomInputsProps = {\n space: Space;\n readonlySpec?: boolean;\n onQueryRefOptions: FunctionInputEditorProps['onQueryRefOptions'];\n} & Pick<QueryFormProps, 'types' | 'tags'>;\n\nconst useCustomInputs = ({ space, readonlySpec, types, tags, onQueryRefOptions }: UseCustomInputsProps) => {\n const functions = useQuery(space, Filter.type(Function.Function));\n const workflows = useQuery(space, Filter.type(ComputeGraph));\n const scripts = useQuery(space, Filter.type(Script.Script));\n\n return useMemo(\n (): CustomInputMap => ({\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 = Type.DXN.parse(dxnString);\n if (dxn) {\n const ref = Ref.fromDXN(dxn);\n props.onValueChange('object', ref);\n }\n },\n [props.onValueChange],\n );\n\n return (\n <SelectInput\n {...props}\n getValue={getValue as any}\n onValueChange={handleOnValueChange}\n options={getWorkflowOptions(workflows).concat(getFunctionOptions(scripts, functions))}\n />\n );\n },\n\n // Spec selector.\n ['spec.kind' as const]: (props) => <SpecSelector {...props} readonly={readonlySpec ? 'disabled-input' : false} />,\n\n // TODO(wittjosiah): Copied from ViewEditor.\n // Query input editor.\n ['spec.query' as const]: (props) => {\n const handleChange = useCallback(\n (query: Query.Any) => props.onValueChange('object', { ast: query.ast }),\n [props.onValueChange],\n );\n\n return (\n <Input.Root>\n <InputHeader label={props.label} />\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' as const]: (props) => (\n <FunctionInputEditor {...props} functions={functions} onQueryRefOptions={onQueryRefOptions} />\n ),\n }),\n [workflows, scripts, functions, 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", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Ref, Type } from '@dxos/echo';\nimport { type JsonPath } from '@dxos/echo/internal';\nimport { type Function } from '@dxos/functions';\nimport { useOnTransition } from '@dxos/react-ui';\nimport { Form, type FormInputStateProps, type QueryRefOptions, useFormValues } from '@dxos/react-ui-form';\n\nexport type FunctionInputEditorProps = {\n functions: Function.Function[];\n onQueryRefOptions: QueryRefOptions;\n} & FormInputStateProps;\n\n/**\n * Editor component for function input parameters.\n */\nexport const FunctionInputEditor = ({\n functions,\n getValue,\n onValueChange,\n onQueryRefOptions,\n}: FunctionInputEditorProps) => {\n const selectedFunctionValue = useFormValues(['function' as JsonPath]);\n const selectedFunctionId = useMemo(() => {\n if (Ref.isRef(selectedFunctionValue)) {\n return selectedFunctionValue.dxn.toString().split('dxn:echo:@:').at(1);\n }\n }, [selectedFunctionValue]);\n\n const selectedFunction = useMemo(\n () => functions.find((fn) => fn.id === selectedFunctionId),\n [functions, selectedFunctionId],\n );\n\n useOnTransition(\n // Clear function parameter input when the function changes.\n selectedFunctionValue,\n (prevValue) => {\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('object', {}),\n );\n\n const inputSchema = useMemo(() => selectedFunction?.inputSchema, [selectedFunction]);\n const effectSchema = useMemo(() => (inputSchema ? Type.toEffectSchema(inputSchema) : undefined), [inputSchema]);\n const propertyCount = inputSchema?.properties ? Object.keys(inputSchema.properties).length : 0;\n\n const values = useMemo(() => getValue() ?? {}, [getValue]);\n\n const handleValuesChanged = useCallback(\n (values: any) => {\n onValueChange('object', values);\n },\n [onValueChange],\n );\n\n if (selectedFunction === undefined || effectSchema === undefined || propertyCount === 0) {\n return null;\n }\n\n return (\n <>\n <h3 className='text-md'>Function parameters</h3>\n {/* TODO(ZaymonFC): Try using <FormFields /> internal component for this nesting.\n This would allow errors to flow up to the root context. */}\n <Form\n schema={effectSchema}\n values={values}\n onValuesChanged={handleValuesChanged}\n onQueryRefOptions={onQueryRefOptions}\n outerSpacing={false}\n />\n </>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Filter, Query } from '@dxos/echo';\nimport { Trigger } from '@dxos/functions';\nimport { useTranslation } from '@dxos/react-ui';\nimport { type InputProps, SelectInput, useInputProps } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\n\nexport type SpecSelectorProps = InputProps;\n\nexport const SpecSelector = (props: SpecSelectorProps) => {\n const { t } = useTranslation(meta.id);\n const specProps = useInputProps(['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:' };\n case 'email':\n return { kind: 'email' };\n case 'webhook':\n return { kind: 'webhook' };\n default:\n return undefined;\n }\n };\n\n const defaultSpec = getDefaultTriggerSpec(value);\n if (!defaultSpec) {\n return;\n }\n\n // Update the entire spec object, not just the `spec.kind`.\n specProps.onValueChange('object', defaultSpec);\n },\n [specProps],\n );\n\n const options = useMemo(\n () =>\n Trigger.Kinds.map((kind) => ({\n value: kind,\n label: t(`trigger type ${kind}`),\n })),\n [t],\n );\n\n return <SelectInput {...props} options={options} onValueChange={handleTypeChange} />;\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "useMemo", "ComputeGraph", "Type", "Function", "Script", "Trigger", "Filter", "Ref", "useQuery", "Input", "QueryForm", "Form", "InputHeader", "SelectInput", "useRefQueryLookupHandler", "React", "useCallback", "useMemo", "Ref", "Type", "useOnTransition", "Form", "useFormValues", "FunctionInputEditor", "functions", "getValue", "onValueChange", "onQueryRefOptions", "selectedFunctionValue", "useFormValues", "selectedFunctionId", "useMemo", "Ref", "isRef", "dxn", "toString", "split", "at", "selectedFunction", "find", "fn", "id", "useOnTransition", "prevValue", "currValue", "undefined", "inputSchema", "effectSchema", "Type", "toEffectSchema", "propertyCount", "properties", "Object", "keys", "length", "values", "handleValuesChanged", "useCallback", "h3", "className", "Form", "schema", "onValuesChanged", "outerSpacing", "React", "useCallback", "useMemo", "Filter", "Query", "Trigger", "useTranslation", "SelectInput", "useInputProps", "SpecSelector", "props", "t", "useTranslation", "meta", "id", "specProps", "useInputProps", "handleTypeChange", "useCallback", "_type", "value", "getDefaultTriggerSpec", "kind", "cron", "query", "ast", "Query", "select", "Filter", "nothing", "queue", "undefined", "defaultSpec", "onValueChange", "options", "useMemo", "Trigger", "Kinds", "map", "label", "React", "SelectInput", "TriggerEditor", "space", "trigger", "readonlySpec", "types", "tags", "onSave", "onCancel", "handleSave", "id", "_", "values", "handleRefQueryLookup", "useRefQueryLookupHandler", "Custom", "useCustomInputs", "onQueryRefOptions", "React", "Form", "outerSpacing", "schema", "Trigger", "functions", "useQuery", "Filter", "type", "Function", "workflows", "ComputeGraph", "scripts", "Script", "useMemo", "props", "getValue", "useCallback", "formValue", "Ref", "isRef", "dxn", "toString", "undefined", "handleOnValueChange", "_type", "dxnString", "Type", "DXN", "parse", "ref", "fromDXN", "onValueChange", "SelectInput", "options", "getWorkflowOptions", "concat", "getFunctionOptions", "SpecSelector", "readonly", "handleChange", "query", "ast", "Input", "Root", "InputHeader", "label", "QueryForm", "initialQuery", "onChange", "FunctionInputEditor", "graphs", "map", "graph", "value", "getLabel", "fn", "find", "s", "source", "target", "name"]
7
- }
@@ -1,183 +0,0 @@
1
- import {
2
- TriggerEditor
3
- } from "./chunk-JW7XSPYW.mjs";
4
- import {
5
- meta
6
- } from "./chunk-LZQFZO3B.mjs";
7
-
8
- // src/components/AutomationPanel/AutomationPanel.tsx
9
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
10
- import * as Array from "effect/Array";
11
- import * as EFn from "effect/Function";
12
- import * as Match from "effect/Match";
13
- import * as Schema from "effect/Schema";
14
- import React, { useMemo, useState } from "react";
15
- import { Filter, Obj, Tag } from "@dxos/echo";
16
- import { Function, Script, Trigger } from "@dxos/functions";
17
- import { useTypeOptions } from "@dxos/plugin-space";
18
- import { useClient } from "@dxos/react-client";
19
- import { getSpace, useQuery } from "@dxos/react-client/echo";
20
- import { Clipboard, IconButton, Input, Separator, useTranslation } from "@dxos/react-ui";
21
- import { ControlItem, controlItemClasses } from "@dxos/react-ui-form";
22
- import { List } from "@dxos/react-ui-list";
23
- import { ghostHover, mx } from "@dxos/react-ui-theme";
24
- import { DataType } from "@dxos/schema";
25
- var grid = "grid grid-cols-[40px_1fr_32px] min-bs-[2.5rem]";
26
- var AutomationPanel = ({ classNames, space, object, initialTrigger, onDone }) => {
27
- var _effect = _useSignals();
28
- try {
29
- const { t } = useTranslation(meta.id);
30
- const client = useClient();
31
- const functions = useQuery(space, Filter.type(Function.Function));
32
- const triggers = useQuery(space, Filter.type(Trigger.Trigger));
33
- const filteredTriggers = useMemo(() => {
34
- return object ? triggers.filter(triggerMatch(object)) : triggers;
35
- }, [
36
- object,
37
- triggers
38
- ]);
39
- const tags = useQuery(space, Filter.type(Tag.Tag));
40
- const types = useTypeOptions({
41
- space,
42
- annotation: [
43
- "dynamic",
44
- "limited-static",
45
- "object-form"
46
- ]
47
- });
48
- const [trigger, setTrigger] = useState(initialTrigger);
49
- const [selected, setSelected] = useState();
50
- const handleSelect = (trigger2) => {
51
- setTrigger(trigger2);
52
- setSelected(trigger2);
53
- };
54
- const handleAdd = () => {
55
- setTrigger(Trigger.make({}));
56
- setSelected(void 0);
57
- };
58
- const handleDelete = (trigger2) => {
59
- space.db.remove(trigger2);
60
- setTrigger(void 0);
61
- setSelected(void 0);
62
- };
63
- const handleSave = (trigger2) => {
64
- if (selected) {
65
- Object.assign(selected, trigger2);
66
- } else {
67
- space.db.add(Trigger.make(trigger2));
68
- }
69
- setTrigger(void 0);
70
- setSelected(void 0);
71
- onDone?.();
72
- };
73
- const handleCancel = () => {
74
- setTrigger(void 0);
75
- onDone?.();
76
- };
77
- if (trigger) {
78
- return /* @__PURE__ */ React.createElement(ControlItem, {
79
- title: t("trigger editor title")
80
- }, /* @__PURE__ */ React.createElement(TriggerEditor, {
81
- space,
82
- trigger,
83
- readonlySpec: Boolean(object),
84
- tags,
85
- types,
86
- onSave: handleSave,
87
- onCancel: handleCancel
88
- }));
89
- }
90
- return /* @__PURE__ */ React.createElement("div", {
91
- className: mx(controlItemClasses, classNames)
92
- }, filteredTriggers.length > 0 && /* @__PURE__ */ React.createElement(List.Root, {
93
- items: filteredTriggers,
94
- isItem: Schema.is(Trigger.Trigger),
95
- getId: (field) => field.id
96
- }, ({ items: filteredTriggers2 }) => /* @__PURE__ */ React.createElement("div", {
97
- role: "list",
98
- className: "flex flex-col w-full"
99
- }, filteredTriggers2?.map((trigger2) => {
100
- const copyAction = getCopyAction(client, trigger2);
101
- return /* @__PURE__ */ React.createElement(List.Item, {
102
- key: trigger2.id,
103
- item: trigger2,
104
- classNames: mx(grid, ghostHover, "items-center", "px-2")
105
- }, /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Switch, {
106
- checked: trigger2.enabled,
107
- onCheckedChange: (checked) => trigger2.enabled = checked
108
- })), /* @__PURE__ */ React.createElement("div", {
109
- className: "flex"
110
- }, /* @__PURE__ */ React.createElement(List.ItemTitle, {
111
- classNames: "px-1 cursor-pointer w-0 shrink truncate",
112
- onClick: () => handleSelect(trigger2)
113
- }, getFunctionName(functions, trigger2) ?? "\u2205"), copyAction && /* @__PURE__ */ React.createElement(Clipboard.IconButton, {
114
- label: t(copyAction.translationKey),
115
- value: copyAction.contentProvider()
116
- })), /* @__PURE__ */ React.createElement(List.ItemDeleteButton, {
117
- onClick: () => handleDelete(trigger2)
118
- }));
119
- }))), filteredTriggers.length > 0 && /* @__PURE__ */ React.createElement(Separator, {
120
- classNames: "mlb-4"
121
- }), /* @__PURE__ */ React.createElement(IconButton, {
122
- icon: "ph--plus--regular",
123
- label: t("new trigger label"),
124
- onClick: handleAdd
125
- }));
126
- } finally {
127
- _effect.f();
128
- }
129
- };
130
- var getCopyAction = (client, trigger) => {
131
- if (trigger?.spec?.kind === "email") {
132
- return {
133
- translationKey: "trigger copy email",
134
- contentProvider: () => `${getSpace(trigger).id}@dxos.network`
135
- };
136
- }
137
- if (trigger?.spec?.kind === "webhook") {
138
- return {
139
- translationKey: "trigger copy url",
140
- contentProvider: () => getWebhookUrl(client, trigger)
141
- };
142
- }
143
- return void 0;
144
- };
145
- var getWebhookUrl = (client, trigger) => {
146
- const spaceId = getSpace(trigger).id;
147
- const edgeUrl = new URL(client.config.values.runtime.services.edge.url);
148
- const isSecure = edgeUrl.protocol.startsWith("https") || edgeUrl.protocol.startsWith("wss");
149
- edgeUrl.protocol = isSecure ? "https" : "http";
150
- return new URL(`/webhook/${spaceId}:${trigger.id}`, edgeUrl).toString();
151
- };
152
- var getFunctionName = (functions, trigger) => {
153
- const shortId = trigger.function && `${trigger.function.dxn.toString().slice(0, 16)}\u2026`;
154
- const functionObject = functions.find((fn) => fn === trigger.function?.target);
155
- return functionObject?.name ?? shortId;
156
- };
157
- var scriptMatch = (script) => (trigger) => {
158
- const fn = trigger.function?.target;
159
- if (!Obj.instanceOf(Function.Function, fn)) {
160
- return false;
161
- }
162
- return fn.source?.target === script;
163
- };
164
- var projectMatch = (project) => {
165
- const viewQueries = EFn.pipe(project.collections, Array.map((collection) => collection.target), Array.filter(Schema.is(DataType.View)), Array.map((view) => Obj.getSnapshot(view).query.ast), Array.map((ast) => JSON.stringify(ast)));
166
- return (trigger) => {
167
- const spec = Obj.getSnapshot(trigger).spec;
168
- if (spec?.kind !== "subscription") {
169
- return false;
170
- }
171
- return viewQueries.some((query) => JSON.stringify(spec.query) === query);
172
- };
173
- };
174
- var triggerMatch = Match.type().pipe(Match.withReturnType(), Match.when((obj) => Obj.instanceOf(Script.Script, obj), (obj) => scriptMatch(obj)), Match.when((obj) => Obj.instanceOf(DataType.Project, obj), (obj) => projectMatch(obj)), Match.orElse((_obj) => () => true));
175
-
176
- // src/components/AutomationPanel/index.ts
177
- var AutomationPanel_default = AutomationPanel;
178
-
179
- export {
180
- AutomationPanel,
181
- AutomationPanel_default
182
- };
183
- //# sourceMappingURL=chunk-K5YNWESC.mjs.map