@dxos/plugin-automation 0.8.4-main.fffef41 → 0.8.4-staging.60fe92afc8

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 (407) hide show
  1. package/LICENSE +102 -5
  2. package/PLUGIN.mdl +428 -0
  3. package/README.md +1 -1
  4. package/dist/lib/neutral/AutomationArticle-GN36NUX2.mjs +17 -0
  5. package/dist/lib/neutral/AutomationCompanion-M26WR6VP.mjs +165 -0
  6. package/dist/lib/neutral/AutomationCompanion-M26WR6VP.mjs.map +7 -0
  7. package/dist/lib/neutral/AutomationPlugin.mjs +10 -0
  8. package/dist/lib/neutral/AutomationPlugin.node.mjs +1132 -0
  9. package/dist/lib/neutral/AutomationPlugin.node.mjs.map +7 -0
  10. package/dist/lib/neutral/AutomationPlugin.workerd.mjs +36 -0
  11. package/dist/lib/neutral/AutomationPlugin.workerd.mjs.map +7 -0
  12. package/dist/lib/neutral/AutomationSettings-YXUJDRQA.mjs +27 -0
  13. package/dist/lib/neutral/AutomationSettings-YXUJDRQA.mjs.map +7 -0
  14. package/dist/lib/neutral/TriggerSettings-XCHIZPOR.mjs +9 -0
  15. package/dist/lib/neutral/app-graph-builder-BTTHS4VK.mjs +102 -0
  16. package/dist/lib/neutral/app-graph-builder-BTTHS4VK.mjs.map +7 -0
  17. package/dist/lib/neutral/capabilities/index.mjs +25 -0
  18. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  19. package/dist/lib/neutral/capabilities/node.mjs +19 -0
  20. package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
  21. package/dist/lib/neutral/chunk-24JKY6NU.mjs +21 -0
  22. package/dist/lib/neutral/chunk-24JKY6NU.mjs.map +7 -0
  23. package/dist/lib/neutral/chunk-2JP77CMN.mjs +42 -0
  24. package/dist/lib/neutral/chunk-2JP77CMN.mjs.map +7 -0
  25. package/dist/lib/neutral/chunk-DUGOIM7G.mjs +36 -0
  26. package/dist/lib/neutral/chunk-DUGOIM7G.mjs.map +7 -0
  27. package/dist/lib/neutral/chunk-FE7YFBX7.mjs +486 -0
  28. package/dist/lib/neutral/chunk-FE7YFBX7.mjs.map +7 -0
  29. package/dist/lib/neutral/chunk-GARB7S5R.mjs +157 -0
  30. package/dist/lib/neutral/chunk-GARB7S5R.mjs.map +7 -0
  31. package/dist/lib/neutral/chunk-HPUHQ3L6.mjs +64 -0
  32. package/dist/lib/neutral/chunk-HPUHQ3L6.mjs.map +7 -0
  33. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  34. package/dist/lib/neutral/chunk-SONGOJRB.mjs +8 -0
  35. package/dist/lib/neutral/chunk-SONGOJRB.mjs.map +7 -0
  36. package/dist/lib/neutral/components/index.mjs +48 -0
  37. package/dist/lib/neutral/components/index.mjs.map +7 -0
  38. package/dist/lib/neutral/containers/index.mjs +15 -0
  39. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  40. package/dist/lib/neutral/create-automation-OE3TNXYE.mjs +41 -0
  41. package/dist/lib/neutral/create-automation-OE3TNXYE.mjs.map +7 -0
  42. package/dist/lib/neutral/create-object-MEJOWGMH.mjs +25 -0
  43. package/dist/lib/neutral/create-object-MEJOWGMH.mjs.map +7 -0
  44. package/dist/lib/neutral/create-trigger-from-template-TERHKWJM.mjs +68 -0
  45. package/dist/lib/neutral/create-trigger-from-template-TERHKWJM.mjs.map +7 -0
  46. package/dist/lib/neutral/hooks/index.mjs +47 -0
  47. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  48. package/dist/lib/neutral/index.mjs +22 -0
  49. package/dist/lib/neutral/layer-specs-G6GCH7BE.mjs +137 -0
  50. package/dist/lib/neutral/layer-specs-G6GCH7BE.mjs.map +7 -0
  51. package/dist/lib/neutral/meta.json +1 -0
  52. package/dist/lib/neutral/meta.mjs +8 -0
  53. package/dist/lib/neutral/navigation-resolver-I3L5FHJO.mjs +14 -0
  54. package/dist/lib/neutral/navigation-resolver-I3L5FHJO.mjs.map +7 -0
  55. package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs +13 -0
  56. package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs.map +7 -0
  57. package/dist/lib/neutral/operations/index.mjs +8 -0
  58. package/dist/lib/neutral/plugin.mjs +16 -0
  59. package/dist/lib/neutral/plugin.mjs.map +7 -0
  60. package/dist/lib/neutral/react-surface-IBRWUKPC.mjs +54 -0
  61. package/dist/lib/neutral/react-surface-IBRWUKPC.mjs.map +7 -0
  62. package/dist/lib/neutral/registry-sync-G6TKKZGK.mjs +86 -0
  63. package/dist/lib/neutral/registry-sync-G6TKKZGK.mjs.map +7 -0
  64. package/dist/lib/neutral/templates-ETXVD3VE.mjs +16 -0
  65. package/dist/lib/neutral/templates-ETXVD3VE.mjs.map +7 -0
  66. package/dist/lib/neutral/testing.mjs +8 -0
  67. package/dist/lib/neutral/translations.mjs +64 -0
  68. package/dist/lib/neutral/translations.mjs.map +7 -0
  69. package/dist/lib/neutral/trigger-runtime-controller-BOEJYGWC.mjs +77 -0
  70. package/dist/lib/neutral/trigger-runtime-controller-BOEJYGWC.mjs.map +7 -0
  71. package/dist/lib/neutral/types/index.mjs +18 -0
  72. package/dist/lib/neutral/types/index.mjs.map +7 -0
  73. package/dist/types/src/AutomationPlugin.d.ts +3 -1
  74. package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
  75. package/dist/types/src/AutomationPlugin.node.d.ts +4 -0
  76. package/dist/types/src/AutomationPlugin.node.d.ts.map +1 -0
  77. package/dist/types/src/AutomationPlugin.test.d.ts +2 -0
  78. package/dist/types/src/AutomationPlugin.test.d.ts.map +1 -0
  79. package/dist/types/src/AutomationPlugin.workerd.d.ts +4 -0
  80. package/dist/types/src/AutomationPlugin.workerd.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/app-graph-builder.d.ts +4 -2
  82. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  83. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  84. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/create-object.test.d.ts +2 -0
  86. package/dist/types/src/capabilities/create-object.test.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/index.d.ts +16 -5
  88. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/layer-specs.d.ts +6 -0
  90. package/dist/types/src/capabilities/layer-specs.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/navigation-resolver.d.ts +6 -0
  92. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/node.d.ts +9 -0
  94. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  96. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  98. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/registry-sync.d.ts +21 -0
  100. package/dist/types/src/capabilities/registry-sync.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/templates.d.ts +6 -0
  102. package/dist/types/src/capabilities/templates.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/trigger-runtime-controller.d.ts +5 -0
  104. package/dist/types/src/capabilities/trigger-runtime-controller.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/trigger-runtime-controller.test.d.ts +2 -0
  106. package/dist/types/src/capabilities/trigger-runtime-controller.test.d.ts.map +1 -0
  107. package/dist/types/src/commands/index.d.ts +2 -0
  108. package/dist/types/src/commands/index.d.ts.map +1 -0
  109. package/dist/types/src/commands/trigger/create/index.d.ts +25 -0
  110. package/dist/types/src/commands/trigger/create/index.d.ts.map +1 -0
  111. package/dist/types/src/commands/trigger/create/queue.d.ts +13 -0
  112. package/dist/types/src/commands/trigger/create/queue.d.ts.map +1 -0
  113. package/dist/types/src/commands/trigger/create/subscription.d.ts +15 -0
  114. package/dist/types/src/commands/trigger/create/subscription.d.ts.map +1 -0
  115. package/dist/types/src/commands/trigger/create/timer.d.ts +13 -0
  116. package/dist/types/src/commands/trigger/create/timer.d.ts.map +1 -0
  117. package/dist/types/src/commands/trigger/index.d.ts +57 -0
  118. package/dist/types/src/commands/trigger/index.d.ts.map +1 -0
  119. package/dist/types/src/commands/trigger/list.d.ts +7 -0
  120. package/dist/types/src/commands/trigger/list.d.ts.map +1 -0
  121. package/dist/types/src/commands/trigger/options.d.ts +10 -0
  122. package/dist/types/src/commands/trigger/options.d.ts.map +1 -0
  123. package/dist/types/src/commands/trigger/remove.d.ts +8 -0
  124. package/dist/types/src/commands/trigger/remove.d.ts.map +1 -0
  125. package/dist/types/src/commands/trigger/update/index.d.ts +28 -0
  126. package/dist/types/src/commands/trigger/update/index.d.ts.map +1 -0
  127. package/dist/types/src/commands/trigger/update/queue.d.ts +11 -0
  128. package/dist/types/src/commands/trigger/update/queue.d.ts.map +1 -0
  129. package/dist/types/src/commands/trigger/update/subscription.d.ts +13 -0
  130. package/dist/types/src/commands/trigger/update/subscription.d.ts.map +1 -0
  131. package/dist/types/src/commands/trigger/update/timer.d.ts +11 -0
  132. package/dist/types/src/commands/trigger/update/timer.d.ts.map +1 -0
  133. package/dist/types/src/commands/trigger/util.d.ts +85 -0
  134. package/dist/types/src/commands/trigger/util.d.ts.map +1 -0
  135. package/dist/types/src/components/CreateAutomationPanel/CreateAutomationPanel.d.ts +14 -0
  136. package/dist/types/src/components/CreateAutomationPanel/CreateAutomationPanel.d.ts.map +1 -0
  137. package/dist/types/src/components/CreateAutomationPanel/index.d.ts +2 -0
  138. package/dist/types/src/components/CreateAutomationPanel/index.d.ts.map +1 -0
  139. package/dist/types/src/components/index.d.ts +1 -7
  140. package/dist/types/src/components/index.d.ts.map +1 -1
  141. package/dist/types/src/containers/AutomationArticle/AutomationArticle.d.ts +35 -0
  142. package/dist/types/src/containers/AutomationArticle/AutomationArticle.d.ts.map +1 -0
  143. package/dist/types/src/containers/AutomationArticle/index.d.ts +3 -0
  144. package/dist/types/src/containers/AutomationArticle/index.d.ts.map +1 -0
  145. package/dist/types/src/containers/AutomationCompanion/AutomationCompanion.d.ts +13 -0
  146. package/dist/types/src/containers/AutomationCompanion/AutomationCompanion.d.ts.map +1 -0
  147. package/dist/types/src/containers/AutomationCompanion/index.d.ts +3 -0
  148. package/dist/types/src/containers/AutomationCompanion/index.d.ts.map +1 -0
  149. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts +10 -0
  150. package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts.map +1 -0
  151. package/dist/types/src/containers/AutomationSettings/index.d.ts +2 -0
  152. package/dist/types/src/containers/AutomationSettings/index.d.ts.map +1 -0
  153. package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts.map +1 -0
  154. package/dist/types/src/containers/TriggerSettings/index.d.ts +3 -0
  155. package/dist/types/src/containers/TriggerSettings/index.d.ts.map +1 -0
  156. package/dist/types/src/containers/index.d.ts +6 -0
  157. package/dist/types/src/containers/index.d.ts.map +1 -0
  158. package/dist/types/src/hooks/index.d.ts +0 -1
  159. package/dist/types/src/hooks/index.d.ts.map +1 -1
  160. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +5 -4
  161. package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -1
  162. package/dist/types/src/index.d.ts +1 -5
  163. package/dist/types/src/index.d.ts.map +1 -1
  164. package/dist/types/src/meta.d.ts +2 -2
  165. package/dist/types/src/meta.d.ts.map +1 -1
  166. package/dist/types/src/operations/create-automation.d.ts +5 -0
  167. package/dist/types/src/operations/create-automation.d.ts.map +1 -0
  168. package/dist/types/src/operations/create-trigger-from-template.d.ts +5 -0
  169. package/dist/types/src/operations/create-trigger-from-template.d.ts.map +1 -0
  170. package/dist/types/src/operations/index.d.ts +3 -0
  171. package/dist/types/src/operations/index.d.ts.map +1 -0
  172. package/dist/types/src/paths.d.ts +3 -0
  173. package/dist/types/src/paths.d.ts.map +1 -0
  174. package/dist/types/src/plugin.d.ts +4 -0
  175. package/dist/types/src/plugin.d.ts.map +1 -0
  176. package/dist/types/src/templates/index.d.ts +10 -0
  177. package/dist/types/src/templates/index.d.ts.map +1 -0
  178. package/dist/types/src/testing/test-functions.d.ts +318 -3
  179. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  180. package/dist/types/src/testing.d.ts +2 -0
  181. package/dist/types/src/testing.d.ts.map +1 -0
  182. package/dist/types/src/translations.d.ts +90 -31
  183. package/dist/types/src/translations.d.ts.map +1 -1
  184. package/dist/types/src/types/Automation.d.ts +41 -0
  185. package/dist/types/src/types/Automation.d.ts.map +1 -0
  186. package/dist/types/src/types/Automation.test.d.ts +2 -0
  187. package/dist/types/src/types/Automation.test.d.ts.map +1 -0
  188. package/dist/types/src/types/AutomationCapabilities.d.ts +42 -0
  189. package/dist/types/src/types/AutomationCapabilities.d.ts.map +1 -0
  190. package/dist/types/src/types/AutomationOperation.d.ts +31 -0
  191. package/dist/types/src/types/AutomationOperation.d.ts.map +1 -0
  192. package/dist/types/src/types/Runnable.d.ts +14 -0
  193. package/dist/types/src/types/Runnable.d.ts.map +1 -0
  194. package/dist/types/src/types/index.d.ts +4 -0
  195. package/dist/types/src/types/index.d.ts.map +1 -1
  196. package/dist/types/src/types/schema.d.ts +13 -5
  197. package/dist/types/src/types/schema.d.ts.map +1 -1
  198. package/dist/types/src/util/automations-for-object.d.ts +20 -0
  199. package/dist/types/src/util/automations-for-object.d.ts.map +1 -0
  200. package/dist/types/src/util/automations-for-object.test.d.ts +2 -0
  201. package/dist/types/src/util/automations-for-object.test.d.ts.map +1 -0
  202. package/dist/types/tsconfig.tsbuildinfo +1 -1
  203. package/package.json +136 -71
  204. package/src/AutomationPlugin.node.ts +48 -0
  205. package/src/AutomationPlugin.test.ts +27 -0
  206. package/src/AutomationPlugin.tsx +47 -35
  207. package/src/AutomationPlugin.workerd.ts +24 -0
  208. package/src/capabilities/app-graph-builder.ts +81 -78
  209. package/src/capabilities/create-object.test.ts +18 -0
  210. package/src/capabilities/create-object.ts +26 -0
  211. package/src/capabilities/index.ts +17 -7
  212. package/src/capabilities/layer-specs.ts +196 -0
  213. package/src/capabilities/navigation-resolver.ts +19 -0
  214. package/src/capabilities/node.ts +19 -0
  215. package/src/capabilities/operation-handler.ts +16 -0
  216. package/src/capabilities/react-surface.tsx +45 -46
  217. package/src/capabilities/registry-sync.ts +114 -0
  218. package/src/capabilities/templates.ts +17 -0
  219. package/src/capabilities/trigger-runtime-controller.test.ts +107 -0
  220. package/src/capabilities/trigger-runtime-controller.ts +126 -0
  221. package/src/commands/index.ts +5 -0
  222. package/src/commands/trigger/create/index.ts +14 -0
  223. package/src/commands/trigger/create/queue.ts +87 -0
  224. package/src/commands/trigger/create/subscription.ts +126 -0
  225. package/src/commands/trigger/create/timer.ts +90 -0
  226. package/src/commands/trigger/index.ts +16 -0
  227. package/src/commands/trigger/list.ts +69 -0
  228. package/src/commands/trigger/options.ts +47 -0
  229. package/src/commands/trigger/remove.ts +45 -0
  230. package/src/commands/trigger/update/index.ts +14 -0
  231. package/src/commands/trigger/update/queue.ts +191 -0
  232. package/src/commands/trigger/update/subscription.ts +279 -0
  233. package/src/commands/trigger/update/timer.ts +195 -0
  234. package/src/commands/trigger/util.ts +410 -0
  235. package/src/components/CreateAutomationPanel/CreateAutomationPanel.tsx +68 -0
  236. package/src/components/CreateAutomationPanel/index.ts +5 -0
  237. package/src/components/index.ts +1 -8
  238. package/src/containers/AutomationArticle/AutomationArticle.tsx +586 -0
  239. package/src/containers/AutomationArticle/index.ts +6 -0
  240. package/src/containers/AutomationCompanion/AutomationCompanion.tsx +183 -0
  241. package/src/containers/AutomationCompanion/index.ts +6 -0
  242. package/src/containers/AutomationSettings/AutomationSettings.tsx +34 -0
  243. package/src/containers/AutomationSettings/index.ts +5 -0
  244. package/src/containers/TriggerSettings/TriggerSettings.tsx +48 -0
  245. package/src/containers/TriggerSettings/index.ts +6 -0
  246. package/src/containers/index.ts +10 -0
  247. package/src/hooks/index.ts +1 -1
  248. package/src/hooks/useTriggerRuntimeControls.ts +38 -19
  249. package/src/index.ts +1 -6
  250. package/src/meta.ts +23 -7
  251. package/src/operations/create-automation.ts +38 -0
  252. package/src/operations/create-trigger-from-template.ts +70 -0
  253. package/src/operations/index.ts +10 -0
  254. package/src/paths.ts +13 -0
  255. package/src/plugin.ts +11 -0
  256. package/src/templates/index.ts +22 -0
  257. package/src/testing/test-functions.ts +43 -9
  258. package/src/testing.ts +7 -0
  259. package/src/translations.ts +49 -33
  260. package/src/types/Automation.test.ts +37 -0
  261. package/src/types/Automation.ts +45 -0
  262. package/src/types/AutomationCapabilities.ts +52 -0
  263. package/src/types/AutomationOperation.ts +61 -0
  264. package/src/types/Runnable.ts +14 -0
  265. package/src/types/index.ts +5 -0
  266. package/src/types/schema.ts +6 -6
  267. package/src/util/automations-for-object.test.ts +86 -0
  268. package/src/util/automations-for-object.ts +72 -0
  269. package/src/vite-env.d.ts +10 -0
  270. package/dist/lib/browser/AutomationPanel-7OECLR5N.mjs +0 -11
  271. package/dist/lib/browser/AutomationSettings-KCZISXI6.mjs +0 -68
  272. package/dist/lib/browser/AutomationSettings-KCZISXI6.mjs.map +0 -7
  273. package/dist/lib/browser/FunctionsContainer-MIWEISRR.mjs +0 -151
  274. package/dist/lib/browser/FunctionsContainer-MIWEISRR.mjs.map +0 -7
  275. package/dist/lib/browser/FunctionsPanel-CRW6SJUN.mjs +0 -10
  276. package/dist/lib/browser/app-graph-builder-W7LLC6XW.mjs +0 -81
  277. package/dist/lib/browser/app-graph-builder-W7LLC6XW.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-EPEXQP45.mjs +0 -14
  279. package/dist/lib/browser/chunk-EPEXQP45.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-JW7XSPYW.mjs +0 -267
  281. package/dist/lib/browser/chunk-JW7XSPYW.mjs.map +0 -7
  282. package/dist/lib/browser/chunk-LZQFZO3B.mjs +0 -17
  283. package/dist/lib/browser/chunk-LZQFZO3B.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-NAPXRXTY.mjs +0 -100
  285. package/dist/lib/browser/chunk-NAPXRXTY.mjs.map +0 -7
  286. package/dist/lib/browser/chunk-QKFBHAGN.mjs +0 -184
  287. package/dist/lib/browser/chunk-QKFBHAGN.mjs.map +0 -7
  288. package/dist/lib/browser/chunk-TWWFNOIR.mjs +0 -109
  289. package/dist/lib/browser/chunk-TWWFNOIR.mjs.map +0 -7
  290. package/dist/lib/browser/chunk-XAKZ4ANY.mjs +0 -15
  291. package/dist/lib/browser/chunk-XAKZ4ANY.mjs.map +0 -7
  292. package/dist/lib/browser/chunk-YBPJCY3F.mjs +0 -38
  293. package/dist/lib/browser/chunk-YBPJCY3F.mjs.map +0 -7
  294. package/dist/lib/browser/compute-runtime-EIQTHJFZ.mjs +0 -113
  295. package/dist/lib/browser/compute-runtime-EIQTHJFZ.mjs.map +0 -7
  296. package/dist/lib/browser/hooks/index.mjs +0 -13
  297. package/dist/lib/browser/index.mjs +0 -130
  298. package/dist/lib/browser/index.mjs.map +0 -7
  299. package/dist/lib/browser/intent-resolver-5HR7M7T6.mjs +0 -77
  300. package/dist/lib/browser/intent-resolver-5HR7M7T6.mjs.map +0 -7
  301. package/dist/lib/browser/meta.json +0 -1
  302. package/dist/lib/browser/react-surface-YQW7WCFW.mjs +0 -64
  303. package/dist/lib/browser/react-surface-YQW7WCFW.mjs.map +0 -7
  304. package/dist/lib/browser/types/index.mjs +0 -8
  305. package/dist/lib/node-esm/AutomationPanel-HCVFNHGQ.mjs +0 -12
  306. package/dist/lib/node-esm/AutomationSettings-UUUPVNUJ.mjs +0 -69
  307. package/dist/lib/node-esm/AutomationSettings-UUUPVNUJ.mjs.map +0 -7
  308. package/dist/lib/node-esm/FunctionsContainer-6OB3JN5O.mjs +0 -152
  309. package/dist/lib/node-esm/FunctionsContainer-6OB3JN5O.mjs.map +0 -7
  310. package/dist/lib/node-esm/FunctionsPanel-RVVCS6VH.mjs +0 -11
  311. package/dist/lib/node-esm/app-graph-builder-SLQOO7GH.mjs +0 -82
  312. package/dist/lib/node-esm/app-graph-builder-SLQOO7GH.mjs.map +0 -7
  313. package/dist/lib/node-esm/chunk-6YRKST6M.mjs +0 -185
  314. package/dist/lib/node-esm/chunk-6YRKST6M.mjs.map +0 -7
  315. package/dist/lib/node-esm/chunk-CEVIVRTY.mjs +0 -19
  316. package/dist/lib/node-esm/chunk-CEVIVRTY.mjs.map +0 -7
  317. package/dist/lib/node-esm/chunk-CPP35BE6.mjs +0 -16
  318. package/dist/lib/node-esm/chunk-CPP35BE6.mjs.map +0 -7
  319. package/dist/lib/node-esm/chunk-ECJKIUBO.mjs +0 -39
  320. package/dist/lib/node-esm/chunk-ECJKIUBO.mjs.map +0 -7
  321. package/dist/lib/node-esm/chunk-KB7NFEYY.mjs +0 -16
  322. package/dist/lib/node-esm/chunk-KB7NFEYY.mjs.map +0 -7
  323. package/dist/lib/node-esm/chunk-PICJ2REN.mjs +0 -101
  324. package/dist/lib/node-esm/chunk-PICJ2REN.mjs.map +0 -7
  325. package/dist/lib/node-esm/chunk-RVK52XGK.mjs +0 -110
  326. package/dist/lib/node-esm/chunk-RVK52XGK.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-W76WUTZY.mjs +0 -268
  328. package/dist/lib/node-esm/chunk-W76WUTZY.mjs.map +0 -7
  329. package/dist/lib/node-esm/compute-runtime-URROOC34.mjs +0 -114
  330. package/dist/lib/node-esm/compute-runtime-URROOC34.mjs.map +0 -7
  331. package/dist/lib/node-esm/hooks/index.mjs +0 -14
  332. package/dist/lib/node-esm/index.mjs +0 -131
  333. package/dist/lib/node-esm/index.mjs.map +0 -7
  334. package/dist/lib/node-esm/intent-resolver-KDRYB5BC.mjs +0 -78
  335. package/dist/lib/node-esm/intent-resolver-KDRYB5BC.mjs.map +0 -7
  336. package/dist/lib/node-esm/meta.json +0 -1
  337. package/dist/lib/node-esm/react-surface-NNHYNBO6.mjs +0 -65
  338. package/dist/lib/node-esm/react-surface-NNHYNBO6.mjs.map +0 -7
  339. package/dist/lib/node-esm/types/index.mjs +0 -9
  340. package/dist/types/src/capabilities/capabilities.d.ts +0 -20
  341. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  342. package/dist/types/src/capabilities/compute-runtime.d.ts +0 -5
  343. package/dist/types/src/capabilities/compute-runtime.d.ts.map +0 -1
  344. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  345. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  346. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +0 -13
  347. package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +0 -1
  348. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +0 -50
  349. package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +0 -1
  350. package/dist/types/src/components/AutomationPanel/index.d.ts +0 -4
  351. package/dist/types/src/components/AutomationPanel/index.d.ts.map +0 -1
  352. package/dist/types/src/components/AutomationSettings.d.ts +0 -5
  353. package/dist/types/src/components/AutomationSettings.d.ts.map +0 -1
  354. package/dist/types/src/components/FunctionsContainer.d.ts +0 -7
  355. package/dist/types/src/components/FunctionsContainer.d.ts.map +0 -1
  356. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts +0 -7
  357. package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +0 -1
  358. package/dist/types/src/components/FunctionsPanel/index.d.ts +0 -4
  359. package/dist/types/src/components/FunctionsPanel/index.d.ts.map +0 -1
  360. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts +0 -8
  361. package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts.map +0 -1
  362. package/dist/types/src/components/FunctionsRegistry/index.d.ts +0 -2
  363. package/dist/types/src/components/FunctionsRegistry/index.d.ts.map +0 -1
  364. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts +0 -12
  365. package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +0 -1
  366. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts +0 -5
  367. package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +0 -1
  368. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +0 -13
  369. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +0 -1
  370. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +0 -51
  371. package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +0 -1
  372. package/dist/types/src/components/TriggerEditor/index.d.ts +0 -2
  373. package/dist/types/src/components/TriggerEditor/index.d.ts.map +0 -1
  374. package/dist/types/src/components/TriggerSettings.d.ts.map +0 -1
  375. package/dist/types/src/events.d.ts +0 -4
  376. package/dist/types/src/events.d.ts.map +0 -1
  377. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +0 -12
  378. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +0 -1
  379. package/src/capabilities/capabilities.ts +0 -41
  380. package/src/capabilities/compute-runtime.ts +0 -127
  381. package/src/capabilities/intent-resolver.ts +0 -72
  382. package/src/components/AutomationPanel/AutomationPanel.stories.tsx +0 -56
  383. package/src/components/AutomationPanel/AutomationPanel.tsx +0 -223
  384. package/src/components/AutomationPanel/index.ts +0 -9
  385. package/src/components/AutomationSettings.tsx +0 -30
  386. package/src/components/FunctionsContainer.tsx +0 -36
  387. package/src/components/FunctionsPanel/FunctionsPanel.tsx +0 -116
  388. package/src/components/FunctionsPanel/index.ts +0 -8
  389. package/src/components/FunctionsRegistry/FunctionsRegistry.tsx +0 -135
  390. package/src/components/FunctionsRegistry/index.ts +0 -5
  391. package/src/components/TriggerEditor/FunctionInputEditor.tsx +0 -84
  392. package/src/components/TriggerEditor/SpecSelector.tsx +0 -65
  393. package/src/components/TriggerEditor/TriggerEditor.stories.tsx +0 -121
  394. package/src/components/TriggerEditor/TriggerEditor.tsx +0 -127
  395. package/src/components/TriggerEditor/index.ts +0 -5
  396. package/src/components/TriggerSettings.tsx +0 -25
  397. package/src/events.ts +0 -11
  398. package/src/hooks/useComputeRuntimeCallback.ts +0 -68
  399. /package/dist/lib/{browser/AutomationPanel-7OECLR5N.mjs.map → neutral/AutomationArticle-GN36NUX2.mjs.map} +0 -0
  400. /package/dist/lib/{browser/FunctionsPanel-CRW6SJUN.mjs.map → neutral/AutomationPlugin.mjs.map} +0 -0
  401. /package/dist/lib/{browser/hooks/index.mjs.map → neutral/TriggerSettings-XCHIZPOR.mjs.map} +0 -0
  402. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  403. /package/dist/lib/{node-esm/hooks → neutral}/index.mjs.map +0 -0
  404. /package/dist/lib/{node-esm/AutomationPanel-HCVFNHGQ.mjs.map → neutral/meta.mjs.map} +0 -0
  405. /package/dist/lib/{node-esm/types → neutral/operations}/index.mjs.map +0 -0
  406. /package/dist/lib/{node-esm/FunctionsPanel-RVVCS6VH.mjs.map → neutral/testing.mjs.map} +0 -0
  407. /package/dist/types/src/{components → containers/TriggerSettings}/TriggerSettings.d.ts +0 -0
@@ -0,0 +1,165 @@
1
+ import {
2
+ AutomationInlineForm
3
+ } from "./chunk-FE7YFBX7.mjs";
4
+ import "./chunk-J5LGTIGS.mjs";
5
+
6
+ // src/containers/AutomationCompanion/AutomationCompanion.tsx
7
+ import React, { useCallback, useMemo, useRef, useState } from "react";
8
+ import { useCapabilities, useOperationInvoker } from "@dxos/app-framework/ui";
9
+ import { Filter as Filter2, Obj as Obj2, Type } from "@dxos/echo";
10
+ import { useQuery } from "@dxos/react-client/echo";
11
+ import { DropdownMenu, Icon, Tooltip, useTranslation } from "@dxos/react-ui";
12
+ import { Accordion } from "@dxos/react-ui-list";
13
+ import { meta } from "#meta";
14
+ import { Automation as Automation2, AutomationCapabilities, AutomationOperation } from "#types";
15
+
16
+ // src/util/automations-for-object.ts
17
+ import { Trigger } from "@dxos/compute";
18
+ import { Filter, Obj, Query, Ref } from "@dxos/echo";
19
+ import { Automation } from "#types";
20
+ var connectedAutomationsQuery = (object) => {
21
+ const byInput = Query.select(Filter.id(object.id)).referencedBy(Trigger.Trigger);
22
+ const byFeed = Query.select(Filter.id(object.id)).reference("feed").referencedBy(Trigger.Trigger);
23
+ return Query.all(byInput, byFeed).referencedBy(Automation.Automation, "triggers");
24
+ };
25
+
26
+ // src/containers/AutomationCompanion/AutomationCompanion.tsx
27
+ var AutomationCompanion = ({ db, object }) => {
28
+ const { t } = useTranslation(meta.id);
29
+ const templates = useCapabilities(AutomationCapabilities.Template);
30
+ const applicableTemplates = useMemo(() => templates.filter((template) => template.appliesTo?.(object) ?? true), [
31
+ templates,
32
+ object
33
+ ]);
34
+ const { items, statusFor, open, setOpen, handleCreate } = useConnectedAutomations(db, object);
35
+ return /* @__PURE__ */ React.createElement("div", {
36
+ className: "flex flex-col"
37
+ }, items.length === 0 ? /* @__PURE__ */ React.createElement("p", {
38
+ className: "text-sm text-description p-2"
39
+ }, t("no-automations.message")) : /* @__PURE__ */ React.createElement(Accordion.Root, {
40
+ items,
41
+ value: open,
42
+ onValueChange: setOpen
43
+ }, ({ items: items2 }) => /* @__PURE__ */ React.createElement("div", {
44
+ className: "flex flex-col divide-y divide-separator"
45
+ }, items2.map((automation) => {
46
+ const status = statusFor(automation.id);
47
+ return /* @__PURE__ */ React.createElement(Accordion.Item, {
48
+ key: automation.id,
49
+ item: automation
50
+ }, /* @__PURE__ */ React.createElement(Accordion.ItemHeader, null, /* @__PURE__ */ React.createElement(Icon, {
51
+ icon: "ph--lightning--regular",
52
+ size: 4,
53
+ classNames: "mr-2 shrink-0"
54
+ }), /* @__PURE__ */ React.createElement("span", {
55
+ className: "flex-1 truncate"
56
+ }, Obj2.getLabel(automation) ?? t("object-name.placeholder", {
57
+ ns: Type.getTypename(Automation2.Automation)
58
+ })), status !== "associated" && /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
59
+ asChild: true,
60
+ side: "bottom",
61
+ content: t(status === "pending" ? "automation-not-associated.message" : "automation-detached.message")
62
+ }, /* @__PURE__ */ React.createElement(Icon, {
63
+ icon: "ph--warning--regular",
64
+ size: 4,
65
+ classNames: "text-warning-text shrink-0 mr-2"
66
+ }))), /* @__PURE__ */ React.createElement(Accordion.ItemBody, null, /* @__PURE__ */ React.createElement(AutomationInlineForm, {
67
+ automation,
68
+ db
69
+ })));
70
+ }))), /* @__PURE__ */ React.createElement("div", {
71
+ className: "border-t border-separator"
72
+ }, /* @__PURE__ */ React.createElement(DropdownMenu.Root, null, /* @__PURE__ */ React.createElement(DropdownMenu.Trigger, {
73
+ asChild: true
74
+ }, /* @__PURE__ */ React.createElement("button", {
75
+ type: "button",
76
+ className: "group flex items-center p-2 dx-focus-ring-inset w-full text-start"
77
+ }, /* @__PURE__ */ React.createElement(Icon, {
78
+ icon: "ph--plus--regular",
79
+ size: 4,
80
+ classNames: "mr-2 shrink-0"
81
+ }), /* @__PURE__ */ React.createElement("span", {
82
+ className: "flex-1 truncate"
83
+ }, t("add-object.label", {
84
+ ns: Type.getTypename(Automation2.Automation)
85
+ })))), /* @__PURE__ */ React.createElement(DropdownMenu.Portal, null, /* @__PURE__ */ React.createElement(DropdownMenu.Content, null, /* @__PURE__ */ React.createElement(DropdownMenu.Viewport, null, applicableTemplates.map((template) => /* @__PURE__ */ React.createElement(DropdownMenu.Item, {
86
+ key: template.id,
87
+ onClick: () => void handleCreate(template.id)
88
+ }, /* @__PURE__ */ React.createElement(Icon, {
89
+ icon: template.icon ?? "ph--lightning--regular",
90
+ size: 4
91
+ }), /* @__PURE__ */ React.createElement("span", null, template.label)))), /* @__PURE__ */ React.createElement(DropdownMenu.Arrow, null))))));
92
+ };
93
+ var useConnectedAutomations = (db, object) => {
94
+ const { invokePromise } = useOperationInvoker();
95
+ const connected = useQuery(db, connectedAutomationsQuery(object));
96
+ const all = useQuery(db, Filter2.type(Automation2.Automation));
97
+ const connectedIds = useMemo(() => new Set(connected.map((automation) => automation.id)), [
98
+ connected
99
+ ]);
100
+ const byId = useMemo(() => new Map(all.map((automation) => [
101
+ automation.id,
102
+ automation
103
+ ])), [
104
+ all
105
+ ]);
106
+ const seenOrder = useRef([]);
107
+ const everConnected = useRef(/* @__PURE__ */ new Set());
108
+ const [createdIds, setCreatedIds] = useState(() => /* @__PURE__ */ new Set());
109
+ const [open, setOpen] = useState([]);
110
+ for (const id of connectedIds) {
111
+ everConnected.current.add(id);
112
+ }
113
+ for (const id of [
114
+ ...connectedIds,
115
+ ...createdIds
116
+ ]) {
117
+ if (!seenOrder.current.includes(id)) {
118
+ seenOrder.current.push(id);
119
+ }
120
+ }
121
+ const items = useMemo(() => seenOrder.current.flatMap((id) => {
122
+ const automation = byId.get(id);
123
+ return automation ? [
124
+ automation
125
+ ] : [];
126
+ }), [
127
+ byId,
128
+ connectedIds,
129
+ createdIds
130
+ ]);
131
+ const statusFor = useCallback((id) => connectedIds.has(id) ? "associated" : everConnected.current.has(id) ? "detached" : "pending", [
132
+ connectedIds
133
+ ]);
134
+ const handleCreate = useCallback(async (templateId) => {
135
+ const { data, error } = await invokePromise(AutomationOperation.CreateAutomation, {
136
+ db,
137
+ templateId,
138
+ subject: object
139
+ });
140
+ if (error || !data) {
141
+ return;
142
+ }
143
+ setCreatedIds((prev) => new Set(prev).add(data.object.id));
144
+ setOpen((prev) => prev.includes(data.object.id) ? prev : [
145
+ ...prev,
146
+ data.object.id
147
+ ]);
148
+ }, [
149
+ invokePromise,
150
+ db,
151
+ object
152
+ ]);
153
+ return {
154
+ items,
155
+ statusFor,
156
+ open,
157
+ setOpen,
158
+ handleCreate
159
+ };
160
+ };
161
+ export {
162
+ AutomationCompanion,
163
+ AutomationCompanion as default
164
+ };
165
+ //# sourceMappingURL=AutomationCompanion-M26WR6VP.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/AutomationCompanion/AutomationCompanion.tsx", "../../../src/util/automations-for-object.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { type Database, Filter, Obj, Type } from '@dxos/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { DropdownMenu, Icon, Tooltip, useTranslation } from '@dxos/react-ui';\nimport { Accordion } from '@dxos/react-ui-list';\n\nimport { meta } from '#meta';\nimport { Automation, AutomationCapabilities, AutomationOperation } from '#types';\n\nimport { AutomationInlineForm } from '../../containers/AutomationArticle';\nimport { connectedAutomationsQuery } from '../../util/automations-for-object';\n\nexport type AutomationCompanionProps = {\n db: Database.Database;\n object: Obj.Unknown;\n};\n\n/** Association state of a row relative to the companion's object. */\ntype Status = 'associated' | 'pending' | 'detached';\n\n/**\n * Renders the automations connected to an object as an accordion (see `useConnectedAutomations` for the\n * session-stable list it draws from), flagging non-associated rows with a warning badge. New automations are\n * created from a template dropdown (no dialog).\n */\nexport const AutomationCompanion = ({ db, object }: AutomationCompanionProps) => {\n const { t } = useTranslation(meta.id);\n const templates = useCapabilities(AutomationCapabilities.Template);\n // Only offer templates applicable to this companion's subject (e.g. a CRM template needs a Mailbox).\n const applicableTemplates = useMemo(\n () => templates.filter((template) => template.appliesTo?.(object) ?? true),\n [templates, object],\n );\n const { items, statusFor, open, setOpen, handleCreate } = useConnectedAutomations(db, object);\n\n return (\n <div className='flex flex-col'>\n {items.length === 0 ? (\n <p className='text-sm text-description p-2'>{t('no-automations.message')}</p>\n ) : (\n <Accordion.Root<Automation.Automation> items={items} value={open} onValueChange={setOpen}>\n {({ items }) => (\n <div className='flex flex-col divide-y divide-separator'>\n {items.map((automation) => {\n const status = statusFor(automation.id);\n return (\n <Accordion.Item key={automation.id} item={automation}>\n <Accordion.ItemHeader>\n <Icon icon='ph--lightning--regular' size={4} classNames='mr-2 shrink-0' />\n <span className='flex-1 truncate'>\n {Obj.getLabel(automation) ??\n t('object-name.placeholder', { ns: Type.getTypename(Automation.Automation) })}\n </span>\n {status !== 'associated' && (\n <Tooltip.Trigger\n asChild\n side='bottom'\n content={t(\n status === 'pending' ? 'automation-not-associated.message' : 'automation-detached.message',\n )}\n >\n <Icon icon='ph--warning--regular' size={4} classNames='text-warning-text shrink-0 mr-2' />\n </Tooltip.Trigger>\n )}\n </Accordion.ItemHeader>\n <Accordion.ItemBody>\n <AutomationInlineForm automation={automation} db={db} />\n </Accordion.ItemBody>\n </Accordion.Item>\n );\n })}\n </div>\n )}\n </Accordion.Root>\n )}\n\n <div className='border-t border-separator'>\n <DropdownMenu.Root>\n <DropdownMenu.Trigger asChild>\n {/* Mirror the accordion item header layout (p-2 + icon mr-2) so the icon aligns with the rows above. */}\n <button type='button' className='group flex items-center p-2 dx-focus-ring-inset w-full text-start'>\n <Icon icon='ph--plus--regular' size={4} classNames='mr-2 shrink-0' />\n <span className='flex-1 truncate'>\n {t('add-object.label', { ns: Type.getTypename(Automation.Automation) })}\n </span>\n </button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content>\n <DropdownMenu.Viewport>\n {applicableTemplates.map((template) => (\n <DropdownMenu.Item key={template.id} onClick={() => void handleCreate(template.id)}>\n <Icon icon={template.icon ?? 'ph--lightning--regular'} size={4} />\n <span>{template.label}</span>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Viewport>\n <DropdownMenu.Arrow />\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n </div>\n </div>\n );\n};\n\n//\n// Hooks\n//\n\n/**\n * Owns the companion's session-stable automation list. A reactive reverse-ref query supplies the live\n * connected set, accumulated into an append-only ordering so rows never reorder or disappear while mounted;\n * a row that loses its association (or a freshly-created one not yet connected) is surfaced via `statusFor`\n * rather than dropped. Also holds the accordion open state and a create handler that appends the new\n * automation and auto-expands it for immediate configuration.\n */\nconst useConnectedAutomations = (db: Database.Database, object: Obj.Unknown) => {\n const { invokePromise } = useOperationInvoker();\n\n // Live connected set (reactive reverse-ref query) + a by-id map for resolving rows that have left it.\n const connected = useQuery(db, connectedAutomationsQuery(object));\n const all = useQuery(db, Filter.type(Automation.Automation));\n const connectedIds = useMemo(() => new Set(connected.map((automation) => automation.id)), [connected]);\n const byId = useMemo(() => new Map(all.map((automation) => [automation.id, automation])), [all]);\n\n // Session-stable bookkeeping (held for the component lifetime).\n const seenOrder = useRef<string[]>([]);\n const everConnected = useRef<Set<string>>(new Set());\n const [createdIds, setCreatedIds] = useState<ReadonlySet<string>>(() => new Set());\n const [open, setOpen] = useState<string[]>([]);\n\n // Accumulate first-seen order and \"was ever connected\" — append-only, so rows never reorder or drop.\n for (const id of connectedIds) {\n everConnected.current.add(id);\n }\n for (const id of [...connectedIds, ...createdIds]) {\n if (!seenOrder.current.includes(id)) {\n seenOrder.current.push(id);\n }\n }\n\n // Resolve to live objects in stable order, dropping ids whose object was hard-deleted.\n const items = useMemo(\n () =>\n seenOrder.current.flatMap((id) => {\n const automation = byId.get(id);\n return automation ? [automation] : [];\n }),\n [byId, connectedIds, createdIds],\n );\n\n const statusFor = useCallback(\n (id: string): Status =>\n connectedIds.has(id) ? 'associated' : everConnected.current.has(id) ? 'detached' : 'pending',\n [connectedIds],\n );\n\n const handleCreate = useCallback(\n async (templateId: string) => {\n const { data, error } = await invokePromise(AutomationOperation.CreateAutomation, {\n db,\n templateId,\n subject: object,\n });\n if (error || !data) {\n return;\n }\n\n setCreatedIds((prev) => new Set(prev).add(data.object.id));\n setOpen((prev) => (prev.includes(data.object.id) ? prev : [...prev, data.object.id]));\n },\n [invokePromise, db, object],\n );\n\n return { items, statusFor, open, setOpen, handleCreate };\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport { Trigger } from '@dxos/compute';\nimport { Filter, Obj, Query, Ref } from '@dxos/echo';\n\nimport { Automation } from '#types';\n\n/**\n * Reactive query for the automations connected to an object O — without a stored association field.\n *\n * Association is derived: an automation is connected when one of its triggers references O, either via a\n * `Ref` anywhere in the trigger's `input` (e.g. a magazine passed into AgentPrompt's input) or via a feed\n * trigger whose `spec.feed` resolves to `O.feed` (feed-annotated hosts like mailboxes). Both are reachable\n * by reverse-reference traversal because ECHO's reverse-ref index is structural — it records every ref in a\n * document regardless of schema path (incl. untyped records and union-nested fields). The traversal is two\n * hops: O ← Trigger ← Automation.\n */\nexport const connectedAutomationsQuery = (object: Obj.Unknown): Query.Query<Automation.Automation> => {\n // Triggers referencing O directly (any path, incl. nested in the untyped `input` record).\n const byInput = Query.select(Filter.id(object.id)).referencedBy(Trigger.Trigger);\n // Triggers referencing O's feed; `.reference('feed')` reads the path structurally and is empty for objects\n // without a feed prop, so this branch contributes nothing for non-feed objects.\n const byFeed = Query.select(Filter.id(object.id)).reference('feed').referencedBy(Trigger.Trigger);\n return Query.all(byInput, byFeed).referencedBy(Automation.Automation, 'triggers');\n};\n\n/**\n * Pure predicate equivalent of {@link connectedAutomationsQuery}, over a pre-queried list of automations.\n * Kept for unit tests (asserting the query and predicate agree) and the deferred quick-association check.\n */\nexport const automationsForObject = (\n object: Obj.Unknown,\n automations: Automation.Automation[],\n): Automation.Automation[] => automations.filter((automation) => automationReferencesObject(automation, object));\n\nexport const automationReferencesObject = (automation: Automation.Automation, object: Obj.Unknown): boolean => {\n const objectFeedId = getFeedId(object);\n return automation.triggers.some((ref) => {\n const trigger = ref.target;\n if (!Obj.instanceOf(Trigger.Trigger, trigger)) {\n return false;\n }\n\n if (trigger.spec?.kind === 'feed' && objectFeedId && trigger.spec.feed?.target?.id === objectFeedId) {\n return true;\n }\n\n return trigger.input != null && referencesId(trigger.input, object.id);\n });\n};\n\n/** The feed id a feed-annotated object points at (e.g. `mailbox.feed`), if any. */\nconst getFeedId = (object: Obj.Unknown): string | undefined => {\n const feedRef = (object as { feed?: Ref.Ref<unknown> }).feed;\n return Ref.isRef(feedRef) ? feedRef.target?.id : undefined;\n};\n\n/** Recursively scan a value for a Ref whose target is the given object id. */\nconst referencesId = (value: unknown, id: string): boolean => {\n if (Ref.isRef(value)) {\n return value.target?.id === id;\n }\n if (Array.isArray(value)) {\n return value.some((entry) => referencesId(entry, id));\n }\n if (value && typeof value === 'object') {\n return Object.values(value).some((entry) => referencesId(entry, id));\n }\n return false;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useMemo", "useRef", "useState", "useCapabilities", "useOperationInvoker", "Filter", "Obj", "Type", "useQuery", "DropdownMenu", "Icon", "Tooltip", "useTranslation", "Accordion", "meta", "Automation", "AutomationCapabilities", "AutomationOperation", "Trigger", "Filter", "Obj", "Query", "Ref", "Automation", "connectedAutomationsQuery", "object", "byInput", "select", "id", "referencedBy", "byFeed", "reference", "all", "AutomationCompanion", "db", "object", "t", "useTranslation", "meta", "id", "templates", "useCapabilities", "AutomationCapabilities", "Template", "applicableTemplates", "useMemo", "filter", "template", "appliesTo", "items", "statusFor", "open", "setOpen", "handleCreate", "useConnectedAutomations", "div", "className", "length", "p", "Accordion", "Root", "value", "onValueChange", "map", "automation", "status", "Item", "key", "item", "ItemHeader", "Icon", "icon", "size", "classNames", "span", "Obj", "getLabel", "ns", "Type", "getTypename", "Automation", "Tooltip", "Trigger", "asChild", "side", "content", "ItemBody", "AutomationInlineForm", "DropdownMenu", "button", "type", "Portal", "Content", "Viewport", "onClick", "label", "Arrow", "invokePromise", "useOperationInvoker", "connected", "useQuery", "connectedAutomationsQuery", "all", "Filter", "connectedIds", "Set", "byId", "Map", "seenOrder", "useRef", "everConnected", "createdIds", "setCreatedIds", "useState", "current", "add", "includes", "push", "flatMap", "get", "useCallback", "has", "templateId", "data", "error", "AutomationOperation", "CreateAutomation", "subject", "prev"]
7
+ }
@@ -0,0 +1,10 @@
1
+ import {
2
+ AutomationPlugin,
3
+ AutomationPlugin_default
4
+ } from "./chunk-HPUHQ3L6.mjs";
5
+ import "./chunk-J5LGTIGS.mjs";
6
+ export {
7
+ AutomationPlugin,
8
+ AutomationPlugin_default as default
9
+ };
10
+ //# sourceMappingURL=AutomationPlugin.mjs.map