@powerhousedao/workflow 6.2.3-dev.11

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 (537) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +94 -0
  3. package/dist/browser/PieceMarkdown-CZYNY1qQ.js +21401 -0
  4. package/dist/browser/PieceMarkdown-CZYNY1qQ.js.map +1 -0
  5. package/dist/browser/ap-layout-DLTZBpE7.js +331 -0
  6. package/dist/browser/ap-layout-DLTZBpE7.js.map +1 -0
  7. package/dist/browser/assets/entry-4n9sWkpV.js +314 -0
  8. package/dist/browser/assets/projection-entry-Bzn-Fath.js +404 -0
  9. package/dist/browser/chunk-BoAXSpZd.js +33 -0
  10. package/dist/browser/connection-DEe5aDuU.js +90 -0
  11. package/dist/browser/connection-DEe5aDuU.js.map +1 -0
  12. package/dist/browser/connection-form-B_3_LFlh.js +453 -0
  13. package/dist/browser/connection-form-B_3_LFlh.js.map +1 -0
  14. package/dist/browser/document-models/connection/index.js +3 -0
  15. package/dist/browser/document-models/index.js +4 -0
  16. package/dist/browser/document-models/workflow/index.js +3 -0
  17. package/dist/browser/document-models-vmNTCrKx.js +51 -0
  18. package/dist/browser/document-models-vmNTCrKx.js.map +1 -0
  19. package/dist/browser/editor-BCxZ5i20.js +18978 -0
  20. package/dist/browser/editor-BCxZ5i20.js.map +1 -0
  21. package/dist/browser/editor-DJX9NpD5.js +134 -0
  22. package/dist/browser/editor-DJX9NpD5.js.map +1 -0
  23. package/dist/browser/editor-Hh1cyIIW.js +1550 -0
  24. package/dist/browser/editor-Hh1cyIIW.js.map +1 -0
  25. package/dist/browser/editors/connection-editor/module.js +15 -0
  26. package/dist/browser/editors/connection-editor/module.js.map +1 -0
  27. package/dist/browser/editors/index.js +4 -0
  28. package/dist/browser/editors/workflow-editor/module.js +15 -0
  29. package/dist/browser/editors/workflow-editor/module.js.map +1 -0
  30. package/dist/browser/editors/workflow-studio/module.js +15 -0
  31. package/dist/browser/editors/workflow-studio/module.js.map +1 -0
  32. package/dist/browser/index.js +330 -0
  33. package/dist/browser/index.js.map +1 -0
  34. package/dist/browser/module-12vI18HY.js +483 -0
  35. package/dist/browser/module-12vI18HY.js.map +1 -0
  36. package/dist/browser/module-CYQnNZWl.js +1141 -0
  37. package/dist/browser/module-CYQnNZWl.js.map +1 -0
  38. package/dist/browser/reactor/index.js +8 -0
  39. package/dist/browser/reactor/index.js.map +1 -0
  40. package/dist/browser/runtime-api-DQa04P3e.js +545 -0
  41. package/dist/browser/runtime-api-DQa04P3e.js.map +1 -0
  42. package/dist/browser/status-kpDX5CIA.js +11 -0
  43. package/dist/browser/status-kpDX5CIA.js.map +1 -0
  44. package/dist/browser/style.css +641 -0
  45. package/dist/browser/upgrade-manifests-Cnpfo6kC.js +8 -0
  46. package/dist/browser/upgrade-manifests-Cnpfo6kC.js.map +1 -0
  47. package/dist/browser/use-runtime-url-DzYskFkw.js +181 -0
  48. package/dist/browser/use-runtime-url-DzYskFkw.js.map +1 -0
  49. package/dist/browser/workflow-CFZUezoY.js +107 -0
  50. package/dist/browser/workflow-CFZUezoY.js.map +1 -0
  51. package/dist/node/PieceMarkdown-Q9C9CPGu.mjs +23249 -0
  52. package/dist/node/PieceMarkdown-Q9C9CPGu.mjs.map +1 -0
  53. package/dist/node/ap-layout-DDOX4Vxv.mjs +331 -0
  54. package/dist/node/ap-layout-DDOX4Vxv.mjs.map +1 -0
  55. package/dist/node/chunk-BSw8zbkd.mjs +37 -0
  56. package/dist/node/connection-DGsS2Db3.mjs +90 -0
  57. package/dist/node/connection-DGsS2Db3.mjs.map +1 -0
  58. package/dist/node/connection-form-CTNkgu_d.mjs +453 -0
  59. package/dist/node/connection-form-CTNkgu_d.mjs.map +1 -0
  60. package/dist/node/document-models/connection/index.mjs +3 -0
  61. package/dist/node/document-models/index.mjs +4 -0
  62. package/dist/node/document-models/workflow/index.mjs +3 -0
  63. package/dist/node/editor-CS8ttjKp.mjs +20351 -0
  64. package/dist/node/editor-CS8ttjKp.mjs.map +1 -0
  65. package/dist/node/editor-DQUie3HQ.mjs +1550 -0
  66. package/dist/node/editor-DQUie3HQ.mjs.map +1 -0
  67. package/dist/node/editor-DhgG3VOa.mjs +134 -0
  68. package/dist/node/editor-DhgG3VOa.mjs.map +1 -0
  69. package/dist/node/editors/connection-editor/module.mjs +15 -0
  70. package/dist/node/editors/connection-editor/module.mjs.map +1 -0
  71. package/dist/node/editors/index.mjs +4 -0
  72. package/dist/node/editors/workflow-editor/module.mjs +15 -0
  73. package/dist/node/editors/workflow-editor/module.mjs.map +1 -0
  74. package/dist/node/editors/workflow-studio/module.mjs +15 -0
  75. package/dist/node/editors/workflow-studio/module.mjs.map +1 -0
  76. package/dist/node/index.mjs +377 -0
  77. package/dist/node/index.mjs.map +1 -0
  78. package/dist/node/module-IA-Ay7ig.mjs +483 -0
  79. package/dist/node/module-IA-Ay7ig.mjs.map +1 -0
  80. package/dist/node/module-IRMgzJC1.mjs +1141 -0
  81. package/dist/node/module-IRMgzJC1.mjs.map +1 -0
  82. package/dist/node/pieces/index.mjs +10 -0
  83. package/dist/node/pieces/index.mjs.map +1 -0
  84. package/dist/node/pieces/reactor/index.mjs +2021 -0
  85. package/dist/node/pieces/reactor/index.mjs.map +1 -0
  86. package/dist/node/runtime-api-JQ6lSS1Y.mjs +545 -0
  87. package/dist/node/runtime-api-JQ6lSS1Y.mjs.map +1 -0
  88. package/dist/node/status-CDRcDUMS.mjs +11 -0
  89. package/dist/node/status-CDRcDUMS.mjs.map +1 -0
  90. package/dist/node/style.css +641 -0
  91. package/dist/node/upgrade-manifests-3VN0Bfcf.mjs +8 -0
  92. package/dist/node/upgrade-manifests-3VN0Bfcf.mjs.map +1 -0
  93. package/dist/node/use-runtime-url-C_adivge.mjs +181 -0
  94. package/dist/node/use-runtime-url-C_adivge.mjs.map +1 -0
  95. package/dist/node/workflow-fFvyypuu.mjs +107 -0
  96. package/dist/node/workflow-fFvyypuu.mjs.map +1 -0
  97. package/dist/powerhouse.manifest.json +47 -0
  98. package/dist/style.css +2324 -0
  99. package/dist/types/ai/runtime-url.d.ts +2 -0
  100. package/dist/types/ai/runtime-url.d.ts.map +1 -0
  101. package/dist/types/ai/runtime-url.test.d.ts +2 -0
  102. package/dist/types/ai/runtime-url.test.d.ts.map +1 -0
  103. package/dist/types/ai/tools.d.ts +59 -0
  104. package/dist/types/ai/tools.d.ts.map +1 -0
  105. package/dist/types/ai/tools.test.d.ts +2 -0
  106. package/dist/types/ai/tools.test.d.ts.map +1 -0
  107. package/dist/types/ai/workflow-tools.d.ts +9 -0
  108. package/dist/types/ai/workflow-tools.d.ts.map +1 -0
  109. package/dist/types/ai/workflow-tools.live.test.d.ts +2 -0
  110. package/dist/types/ai/workflow-tools.live.test.d.ts.map +1 -0
  111. package/dist/types/ai/workflow-tools.test.d.ts +2 -0
  112. package/dist/types/ai/workflow-tools.test.d.ts.map +1 -0
  113. package/dist/types/build.d.ts +2 -0
  114. package/dist/types/build.d.ts.map +1 -0
  115. package/dist/types/document-models/connection/index.d.ts +3 -0
  116. package/dist/types/document-models/connection/index.d.ts.map +1 -0
  117. package/dist/types/document-models/connection/upgrades/index.d.ts +3 -0
  118. package/dist/types/document-models/connection/upgrades/index.d.ts.map +1 -0
  119. package/dist/types/document-models/connection/upgrades/upgrade-manifest.d.ts +8 -0
  120. package/dist/types/document-models/connection/upgrades/upgrade-manifest.d.ts.map +1 -0
  121. package/dist/types/document-models/connection/upgrades/versions.d.ts +3 -0
  122. package/dist/types/document-models/connection/upgrades/versions.d.ts.map +1 -0
  123. package/dist/types/document-models/connection/v1/actions.d.ts +24 -0
  124. package/dist/types/document-models/connection/v1/actions.d.ts.map +1 -0
  125. package/dist/types/document-models/connection/v1/gen/actions.d.ts +12 -0
  126. package/dist/types/document-models/connection/v1/gen/actions.d.ts.map +1 -0
  127. package/dist/types/document-models/connection/v1/gen/config/actions.d.ts +20 -0
  128. package/dist/types/document-models/connection/v1/gen/config/actions.d.ts.map +1 -0
  129. package/dist/types/document-models/connection/v1/gen/config/creators.d.ts +6 -0
  130. package/dist/types/document-models/connection/v1/gen/config/creators.d.ts.map +1 -0
  131. package/dist/types/document-models/connection/v1/gen/config/error.d.ts +14 -0
  132. package/dist/types/document-models/connection/v1/gen/config/error.d.ts.map +1 -0
  133. package/dist/types/document-models/connection/v1/gen/config/operations.d.ts +13 -0
  134. package/dist/types/document-models/connection/v1/gen/config/operations.d.ts.map +1 -0
  135. package/dist/types/document-models/connection/v1/gen/connection/actions.d.ts +20 -0
  136. package/dist/types/document-models/connection/v1/gen/connection/actions.d.ts.map +1 -0
  137. package/dist/types/document-models/connection/v1/gen/connection/creators.d.ts +6 -0
  138. package/dist/types/document-models/connection/v1/gen/connection/creators.d.ts.map +1 -0
  139. package/dist/types/document-models/connection/v1/gen/connection/error.d.ts +2 -0
  140. package/dist/types/document-models/connection/v1/gen/connection/error.d.ts.map +1 -0
  141. package/dist/types/document-models/connection/v1/gen/connection/operations.d.ts +13 -0
  142. package/dist/types/document-models/connection/v1/gen/connection/operations.d.ts.map +1 -0
  143. package/dist/types/document-models/connection/v1/gen/controller.d.ts +8 -0
  144. package/dist/types/document-models/connection/v1/gen/controller.d.ts.map +1 -0
  145. package/dist/types/document-models/connection/v1/gen/creators.d.ts +11 -0
  146. package/dist/types/document-models/connection/v1/gen/creators.d.ts.map +1 -0
  147. package/dist/types/document-models/connection/v1/gen/document-model.d.ts +3 -0
  148. package/dist/types/document-models/connection/v1/gen/document-model.d.ts.map +1 -0
  149. package/dist/types/document-models/connection/v1/gen/document-schema.d.ts +68 -0
  150. package/dist/types/document-models/connection/v1/gen/document-schema.d.ts.map +1 -0
  151. package/dist/types/document-models/connection/v1/gen/document-type.d.ts +6 -0
  152. package/dist/types/document-models/connection/v1/gen/document-type.d.ts.map +1 -0
  153. package/dist/types/document-models/connection/v1/gen/health/actions.d.ts +12 -0
  154. package/dist/types/document-models/connection/v1/gen/health/actions.d.ts.map +1 -0
  155. package/dist/types/document-models/connection/v1/gen/health/creators.d.ts +4 -0
  156. package/dist/types/document-models/connection/v1/gen/health/creators.d.ts.map +1 -0
  157. package/dist/types/document-models/connection/v1/gen/health/error.d.ts +2 -0
  158. package/dist/types/document-models/connection/v1/gen/health/error.d.ts.map +1 -0
  159. package/dist/types/document-models/connection/v1/gen/health/operations.d.ts +11 -0
  160. package/dist/types/document-models/connection/v1/gen/health/operations.d.ts.map +1 -0
  161. package/dist/types/document-models/connection/v1/gen/index.d.ts +19 -0
  162. package/dist/types/document-models/connection/v1/gen/index.d.ts.map +1 -0
  163. package/dist/types/document-models/connection/v1/gen/ph-factories.d.ts +25 -0
  164. package/dist/types/document-models/connection/v1/gen/ph-factories.d.ts.map +1 -0
  165. package/dist/types/document-models/connection/v1/gen/reducer.d.ts +4 -0
  166. package/dist/types/document-models/connection/v1/gen/reducer.d.ts.map +1 -0
  167. package/dist/types/document-models/connection/v1/gen/schema/index.d.ts +7 -0
  168. package/dist/types/document-models/connection/v1/gen/schema/index.d.ts.map +1 -0
  169. package/dist/types/document-models/connection/v1/gen/schema/types.d.ts +200 -0
  170. package/dist/types/document-models/connection/v1/gen/schema/types.d.ts.map +1 -0
  171. package/dist/types/document-models/connection/v1/gen/schema/zod.d.ts +33 -0
  172. package/dist/types/document-models/connection/v1/gen/schema/zod.d.ts.map +1 -0
  173. package/dist/types/document-models/connection/v1/gen/types.d.ts +16 -0
  174. package/dist/types/document-models/connection/v1/gen/types.d.ts.map +1 -0
  175. package/dist/types/document-models/connection/v1/gen/utils.d.ts +10 -0
  176. package/dist/types/document-models/connection/v1/gen/utils.d.ts.map +1 -0
  177. package/dist/types/document-models/connection/v1/hooks.d.ts +18 -0
  178. package/dist/types/document-models/connection/v1/hooks.d.ts.map +1 -0
  179. package/dist/types/document-models/connection/v1/index.d.ts +11 -0
  180. package/dist/types/document-models/connection/v1/index.d.ts.map +1 -0
  181. package/dist/types/document-models/connection/v1/module.d.ts +31 -0
  182. package/dist/types/document-models/connection/v1/module.d.ts.map +1 -0
  183. package/dist/types/document-models/connection/v1/src/index.d.ts +6 -0
  184. package/dist/types/document-models/connection/v1/src/index.d.ts.map +1 -0
  185. package/dist/types/document-models/connection/v1/src/reducers/config.d.ts +3 -0
  186. package/dist/types/document-models/connection/v1/src/reducers/config.d.ts.map +1 -0
  187. package/dist/types/document-models/connection/v1/src/reducers/connection.d.ts +3 -0
  188. package/dist/types/document-models/connection/v1/src/reducers/connection.d.ts.map +1 -0
  189. package/dist/types/document-models/connection/v1/src/reducers/health.d.ts +3 -0
  190. package/dist/types/document-models/connection/v1/src/reducers/health.d.ts.map +1 -0
  191. package/dist/types/document-models/connection/v1/src/utils.d.ts +2 -0
  192. package/dist/types/document-models/connection/v1/src/utils.d.ts.map +1 -0
  193. package/dist/types/document-models/connection/v1/tests/config.test.d.ts +2 -0
  194. package/dist/types/document-models/connection/v1/tests/config.test.d.ts.map +1 -0
  195. package/dist/types/document-models/connection/v1/tests/connection-scenarios.test.d.ts +2 -0
  196. package/dist/types/document-models/connection/v1/tests/connection-scenarios.test.d.ts.map +1 -0
  197. package/dist/types/document-models/connection/v1/tests/connection.test.d.ts +2 -0
  198. package/dist/types/document-models/connection/v1/tests/connection.test.d.ts.map +1 -0
  199. package/dist/types/document-models/connection/v1/tests/document-model.test.d.ts +10 -0
  200. package/dist/types/document-models/connection/v1/tests/document-model.test.d.ts.map +1 -0
  201. package/dist/types/document-models/connection/v1/tests/health.test.d.ts +2 -0
  202. package/dist/types/document-models/connection/v1/tests/health.test.d.ts.map +1 -0
  203. package/dist/types/document-models/connection/v1/utils.d.ts +9 -0
  204. package/dist/types/document-models/connection/v1/utils.d.ts.map +1 -0
  205. package/dist/types/document-models/document-models.d.ts +68 -0
  206. package/dist/types/document-models/document-models.d.ts.map +1 -0
  207. package/dist/types/document-models/index.d.ts +4 -0
  208. package/dist/types/document-models/index.d.ts.map +1 -0
  209. package/dist/types/document-models/upgrade-manifests.d.ts +7 -0
  210. package/dist/types/document-models/upgrade-manifests.d.ts.map +1 -0
  211. package/dist/types/document-models/workflow/index.d.ts +3 -0
  212. package/dist/types/document-models/workflow/index.d.ts.map +1 -0
  213. package/dist/types/document-models/workflow/upgrades/index.d.ts +3 -0
  214. package/dist/types/document-models/workflow/upgrades/index.d.ts.map +1 -0
  215. package/dist/types/document-models/workflow/upgrades/upgrade-manifest.d.ts +8 -0
  216. package/dist/types/document-models/workflow/upgrades/upgrade-manifest.d.ts.map +1 -0
  217. package/dist/types/document-models/workflow/upgrades/versions.d.ts +3 -0
  218. package/dist/types/document-models/workflow/upgrades/versions.d.ts.map +1 -0
  219. package/dist/types/document-models/workflow/v1/actions.d.ts +32 -0
  220. package/dist/types/document-models/workflow/v1/actions.d.ts.map +1 -0
  221. package/dist/types/document-models/workflow/v1/gen/actions.d.ts +20 -0
  222. package/dist/types/document-models/workflow/v1/gen/actions.d.ts.map +1 -0
  223. package/dist/types/document-models/workflow/v1/gen/controller.d.ts +8 -0
  224. package/dist/types/document-models/workflow/v1/gen/controller.d.ts.map +1 -0
  225. package/dist/types/document-models/workflow/v1/gen/creators.d.ts +19 -0
  226. package/dist/types/document-models/workflow/v1/gen/creators.d.ts.map +1 -0
  227. package/dist/types/document-models/workflow/v1/gen/document-model.d.ts +3 -0
  228. package/dist/types/document-models/workflow/v1/gen/document-model.d.ts.map +1 -0
  229. package/dist/types/document-models/workflow/v1/gen/document-schema.d.ts +74 -0
  230. package/dist/types/document-models/workflow/v1/gen/document-schema.d.ts.map +1 -0
  231. package/dist/types/document-models/workflow/v1/gen/document-type.d.ts +6 -0
  232. package/dist/types/document-models/workflow/v1/gen/document-type.d.ts.map +1 -0
  233. package/dist/types/document-models/workflow/v1/gen/edges/actions.d.ts +16 -0
  234. package/dist/types/document-models/workflow/v1/gen/edges/actions.d.ts.map +1 -0
  235. package/dist/types/document-models/workflow/v1/gen/edges/creators.d.ts +5 -0
  236. package/dist/types/document-models/workflow/v1/gen/edges/creators.d.ts.map +1 -0
  237. package/dist/types/document-models/workflow/v1/gen/edges/error.d.ts +36 -0
  238. package/dist/types/document-models/workflow/v1/gen/edges/error.d.ts.map +1 -0
  239. package/dist/types/document-models/workflow/v1/gen/edges/operations.d.ts +12 -0
  240. package/dist/types/document-models/workflow/v1/gen/edges/operations.d.ts.map +1 -0
  241. package/dist/types/document-models/workflow/v1/gen/index.d.ts +23 -0
  242. package/dist/types/document-models/workflow/v1/gen/index.d.ts.map +1 -0
  243. package/dist/types/document-models/workflow/v1/gen/ph-factories.d.ts +25 -0
  244. package/dist/types/document-models/workflow/v1/gen/ph-factories.d.ts.map +1 -0
  245. package/dist/types/document-models/workflow/v1/gen/policy/actions.d.ts +12 -0
  246. package/dist/types/document-models/workflow/v1/gen/policy/actions.d.ts.map +1 -0
  247. package/dist/types/document-models/workflow/v1/gen/policy/creators.d.ts +4 -0
  248. package/dist/types/document-models/workflow/v1/gen/policy/creators.d.ts.map +1 -0
  249. package/dist/types/document-models/workflow/v1/gen/policy/error.d.ts +2 -0
  250. package/dist/types/document-models/workflow/v1/gen/policy/error.d.ts.map +1 -0
  251. package/dist/types/document-models/workflow/v1/gen/policy/operations.d.ts +11 -0
  252. package/dist/types/document-models/workflow/v1/gen/policy/operations.d.ts.map +1 -0
  253. package/dist/types/document-models/workflow/v1/gen/reducer.d.ts +4 -0
  254. package/dist/types/document-models/workflow/v1/gen/reducer.d.ts.map +1 -0
  255. package/dist/types/document-models/workflow/v1/gen/runtime/actions.d.ts +12 -0
  256. package/dist/types/document-models/workflow/v1/gen/runtime/actions.d.ts.map +1 -0
  257. package/dist/types/document-models/workflow/v1/gen/runtime/creators.d.ts +4 -0
  258. package/dist/types/document-models/workflow/v1/gen/runtime/creators.d.ts.map +1 -0
  259. package/dist/types/document-models/workflow/v1/gen/runtime/error.d.ts +2 -0
  260. package/dist/types/document-models/workflow/v1/gen/runtime/error.d.ts.map +1 -0
  261. package/dist/types/document-models/workflow/v1/gen/runtime/operations.d.ts +11 -0
  262. package/dist/types/document-models/workflow/v1/gen/runtime/operations.d.ts.map +1 -0
  263. package/dist/types/document-models/workflow/v1/gen/schema/index.d.ts +7 -0
  264. package/dist/types/document-models/workflow/v1/gen/schema/index.d.ts.map +1 -0
  265. package/dist/types/document-models/workflow/v1/gen/schema/types.d.ts +352 -0
  266. package/dist/types/document-models/workflow/v1/gen/schema/types.d.ts.map +1 -0
  267. package/dist/types/document-models/workflow/v1/gen/schema/zod.d.ts +67 -0
  268. package/dist/types/document-models/workflow/v1/gen/schema/zod.d.ts.map +1 -0
  269. package/dist/types/document-models/workflow/v1/gen/steps/actions.d.ts +24 -0
  270. package/dist/types/document-models/workflow/v1/gen/steps/actions.d.ts.map +1 -0
  271. package/dist/types/document-models/workflow/v1/gen/steps/creators.d.ts +7 -0
  272. package/dist/types/document-models/workflow/v1/gen/steps/creators.d.ts.map +1 -0
  273. package/dist/types/document-models/workflow/v1/gen/steps/error.d.ts +45 -0
  274. package/dist/types/document-models/workflow/v1/gen/steps/error.d.ts.map +1 -0
  275. package/dist/types/document-models/workflow/v1/gen/steps/operations.d.ts +14 -0
  276. package/dist/types/document-models/workflow/v1/gen/steps/operations.d.ts.map +1 -0
  277. package/dist/types/document-models/workflow/v1/gen/trigger/actions.d.ts +16 -0
  278. package/dist/types/document-models/workflow/v1/gen/trigger/actions.d.ts.map +1 -0
  279. package/dist/types/document-models/workflow/v1/gen/trigger/creators.d.ts +5 -0
  280. package/dist/types/document-models/workflow/v1/gen/trigger/creators.d.ts.map +1 -0
  281. package/dist/types/document-models/workflow/v1/gen/trigger/error.d.ts +14 -0
  282. package/dist/types/document-models/workflow/v1/gen/trigger/error.d.ts.map +1 -0
  283. package/dist/types/document-models/workflow/v1/gen/trigger/operations.d.ts +12 -0
  284. package/dist/types/document-models/workflow/v1/gen/trigger/operations.d.ts.map +1 -0
  285. package/dist/types/document-models/workflow/v1/gen/types.d.ts +16 -0
  286. package/dist/types/document-models/workflow/v1/gen/types.d.ts.map +1 -0
  287. package/dist/types/document-models/workflow/v1/gen/utils.d.ts +10 -0
  288. package/dist/types/document-models/workflow/v1/gen/utils.d.ts.map +1 -0
  289. package/dist/types/document-models/workflow/v1/gen/variables/actions.d.ts +16 -0
  290. package/dist/types/document-models/workflow/v1/gen/variables/actions.d.ts.map +1 -0
  291. package/dist/types/document-models/workflow/v1/gen/variables/creators.d.ts +5 -0
  292. package/dist/types/document-models/workflow/v1/gen/variables/creators.d.ts.map +1 -0
  293. package/dist/types/document-models/workflow/v1/gen/variables/error.d.ts +14 -0
  294. package/dist/types/document-models/workflow/v1/gen/variables/error.d.ts.map +1 -0
  295. package/dist/types/document-models/workflow/v1/gen/variables/operations.d.ts +12 -0
  296. package/dist/types/document-models/workflow/v1/gen/variables/operations.d.ts.map +1 -0
  297. package/dist/types/document-models/workflow/v1/gen/workflow/actions.d.ts +20 -0
  298. package/dist/types/document-models/workflow/v1/gen/workflow/actions.d.ts.map +1 -0
  299. package/dist/types/document-models/workflow/v1/gen/workflow/creators.d.ts +6 -0
  300. package/dist/types/document-models/workflow/v1/gen/workflow/creators.d.ts.map +1 -0
  301. package/dist/types/document-models/workflow/v1/gen/workflow/error.d.ts +2 -0
  302. package/dist/types/document-models/workflow/v1/gen/workflow/error.d.ts.map +1 -0
  303. package/dist/types/document-models/workflow/v1/gen/workflow/operations.d.ts +13 -0
  304. package/dist/types/document-models/workflow/v1/gen/workflow/operations.d.ts.map +1 -0
  305. package/dist/types/document-models/workflow/v1/hooks.d.ts +18 -0
  306. package/dist/types/document-models/workflow/v1/hooks.d.ts.map +1 -0
  307. package/dist/types/document-models/workflow/v1/index.d.ts +11 -0
  308. package/dist/types/document-models/workflow/v1/index.d.ts.map +1 -0
  309. package/dist/types/document-models/workflow/v1/module.d.ts +39 -0
  310. package/dist/types/document-models/workflow/v1/module.d.ts.map +1 -0
  311. package/dist/types/document-models/workflow/v1/src/index.d.ts +6 -0
  312. package/dist/types/document-models/workflow/v1/src/index.d.ts.map +1 -0
  313. package/dist/types/document-models/workflow/v1/src/reducers/edges.d.ts +3 -0
  314. package/dist/types/document-models/workflow/v1/src/reducers/edges.d.ts.map +1 -0
  315. package/dist/types/document-models/workflow/v1/src/reducers/policy.d.ts +3 -0
  316. package/dist/types/document-models/workflow/v1/src/reducers/policy.d.ts.map +1 -0
  317. package/dist/types/document-models/workflow/v1/src/reducers/runtime.d.ts +3 -0
  318. package/dist/types/document-models/workflow/v1/src/reducers/runtime.d.ts.map +1 -0
  319. package/dist/types/document-models/workflow/v1/src/reducers/steps.d.ts +3 -0
  320. package/dist/types/document-models/workflow/v1/src/reducers/steps.d.ts.map +1 -0
  321. package/dist/types/document-models/workflow/v1/src/reducers/trigger.d.ts +3 -0
  322. package/dist/types/document-models/workflow/v1/src/reducers/trigger.d.ts.map +1 -0
  323. package/dist/types/document-models/workflow/v1/src/reducers/variables.d.ts +3 -0
  324. package/dist/types/document-models/workflow/v1/src/reducers/variables.d.ts.map +1 -0
  325. package/dist/types/document-models/workflow/v1/src/reducers/workflow.d.ts +3 -0
  326. package/dist/types/document-models/workflow/v1/src/reducers/workflow.d.ts.map +1 -0
  327. package/dist/types/document-models/workflow/v1/src/utils.d.ts +2 -0
  328. package/dist/types/document-models/workflow/v1/src/utils.d.ts.map +1 -0
  329. package/dist/types/document-models/workflow/v1/tests/document-model.test.d.ts +10 -0
  330. package/dist/types/document-models/workflow/v1/tests/document-model.test.d.ts.map +1 -0
  331. package/dist/types/document-models/workflow/v1/tests/edges.test.d.ts +2 -0
  332. package/dist/types/document-models/workflow/v1/tests/edges.test.d.ts.map +1 -0
  333. package/dist/types/document-models/workflow/v1/tests/policy.test.d.ts +2 -0
  334. package/dist/types/document-models/workflow/v1/tests/policy.test.d.ts.map +1 -0
  335. package/dist/types/document-models/workflow/v1/tests/runtime.test.d.ts +2 -0
  336. package/dist/types/document-models/workflow/v1/tests/runtime.test.d.ts.map +1 -0
  337. package/dist/types/document-models/workflow/v1/tests/steps.test.d.ts +2 -0
  338. package/dist/types/document-models/workflow/v1/tests/steps.test.d.ts.map +1 -0
  339. package/dist/types/document-models/workflow/v1/tests/trigger.test.d.ts +2 -0
  340. package/dist/types/document-models/workflow/v1/tests/trigger.test.d.ts.map +1 -0
  341. package/dist/types/document-models/workflow/v1/tests/variables.test.d.ts +2 -0
  342. package/dist/types/document-models/workflow/v1/tests/variables.test.d.ts.map +1 -0
  343. package/dist/types/document-models/workflow/v1/tests/workflow-scenarios.test.d.ts +2 -0
  344. package/dist/types/document-models/workflow/v1/tests/workflow-scenarios.test.d.ts.map +1 -0
  345. package/dist/types/document-models/workflow/v1/tests/workflow.test.d.ts +2 -0
  346. package/dist/types/document-models/workflow/v1/tests/workflow.test.d.ts.map +1 -0
  347. package/dist/types/document-models/workflow/v1/utils.d.ts +9 -0
  348. package/dist/types/document-models/workflow/v1/utils.d.ts.map +1 -0
  349. package/dist/types/editors/connection-editor/ConnectionToolbar.d.ts +8 -0
  350. package/dist/types/editors/connection-editor/ConnectionToolbar.d.ts.map +1 -0
  351. package/dist/types/editors/connection-editor/connection-callbacks.d.ts +5 -0
  352. package/dist/types/editors/connection-editor/connection-callbacks.d.ts.map +1 -0
  353. package/dist/types/editors/connection-editor/connection-form.d.ts +15 -0
  354. package/dist/types/editors/connection-editor/connection-form.d.ts.map +1 -0
  355. package/dist/types/editors/connection-editor/editor.d.ts +2 -0
  356. package/dist/types/editors/connection-editor/editor.d.ts.map +1 -0
  357. package/dist/types/editors/connection-editor/module.d.ts +8 -0
  358. package/dist/types/editors/connection-editor/module.d.ts.map +1 -0
  359. package/dist/types/editors/connection-editor/piece-auth.d.ts +26 -0
  360. package/dist/types/editors/connection-editor/piece-auth.d.ts.map +1 -0
  361. package/dist/types/editors/connection-editor/piece-auth.test.d.ts +2 -0
  362. package/dist/types/editors/connection-editor/piece-auth.test.d.ts.map +1 -0
  363. package/dist/types/editors/connection-editor/status.d.ts +3 -0
  364. package/dist/types/editors/connection-editor/status.d.ts.map +1 -0
  365. package/dist/types/editors/editors.d.ts +7 -0
  366. package/dist/types/editors/editors.d.ts.map +1 -0
  367. package/dist/types/editors/index.d.ts +4 -0
  368. package/dist/types/editors/index.d.ts.map +1 -0
  369. package/dist/types/editors/shared/DocumentErrorBoundary.d.ts +35 -0
  370. package/dist/types/editors/shared/DocumentErrorBoundary.d.ts.map +1 -0
  371. package/dist/types/editors/workflow-editor/document/useWorkflowModel.d.ts +6 -0
  372. package/dist/types/editors/workflow-editor/document/useWorkflowModel.d.ts.map +1 -0
  373. package/dist/types/editors/workflow-editor/editor.d.ts +5 -0
  374. package/dist/types/editors/workflow-editor/editor.d.ts.map +1 -0
  375. package/dist/types/editors/workflow-editor/module.d.ts +8 -0
  376. package/dist/types/editors/workflow-editor/module.d.ts.map +1 -0
  377. package/dist/types/editors/workflow-editor/runtime-api.d.ts +134 -0
  378. package/dist/types/editors/workflow-editor/runtime-api.d.ts.map +1 -0
  379. package/dist/types/editors/workflow-editor/runtime-api.test.d.ts +2 -0
  380. package/dist/types/editors/workflow-editor/runtime-api.test.d.ts.map +1 -0
  381. package/dist/types/editors/workflow-editor/runtime-piece-source.d.ts +2 -0
  382. package/dist/types/editors/workflow-editor/runtime-piece-source.d.ts.map +1 -0
  383. package/dist/types/editors/workflow-editor/ui/ActionListEditor.d.ts +6 -0
  384. package/dist/types/editors/workflow-editor/ui/ActionListEditor.d.ts.map +1 -0
  385. package/dist/types/editors/workflow-editor/ui/Autocomplete.d.ts +19 -0
  386. package/dist/types/editors/workflow-editor/ui/Autocomplete.d.ts.map +1 -0
  387. package/dist/types/editors/workflow-editor/ui/BlockSelector.d.ts +26 -0
  388. package/dist/types/editors/workflow-editor/ui/BlockSelector.d.ts.map +1 -0
  389. package/dist/types/editors/workflow-editor/ui/CanvasContextMenu.d.ts +14 -0
  390. package/dist/types/editors/workflow-editor/ui/CanvasContextMenu.d.ts.map +1 -0
  391. package/dist/types/editors/workflow-editor/ui/ConnectionField.d.ts +8 -0
  392. package/dist/types/editors/workflow-editor/ui/ConnectionField.d.ts.map +1 -0
  393. package/dist/types/editors/workflow-editor/ui/CreateConnectionModal.d.ts +7 -0
  394. package/dist/types/editors/workflow-editor/ui/CreateConnectionModal.d.ts.map +1 -0
  395. package/dist/types/editors/workflow-editor/ui/ExpressionPicker.d.ts +50 -0
  396. package/dist/types/editors/workflow-editor/ui/ExpressionPicker.d.ts.map +1 -0
  397. package/dist/types/editors/workflow-editor/ui/PieceMarkdown.d.ts +4 -0
  398. package/dist/types/editors/workflow-editor/ui/PieceMarkdown.d.ts.map +1 -0
  399. package/dist/types/editors/workflow-editor/ui/PropertyForm.d.ts +21 -0
  400. package/dist/types/editors/workflow-editor/ui/PropertyForm.d.ts.map +1 -0
  401. package/dist/types/editors/workflow-editor/ui/StepPanel.d.ts +16 -0
  402. package/dist/types/editors/workflow-editor/ui/StepPanel.d.ts.map +1 -0
  403. package/dist/types/editors/workflow-editor/ui/VariablesEditor.d.ts +8 -0
  404. package/dist/types/editors/workflow-editor/ui/VariablesEditor.d.ts.map +1 -0
  405. package/dist/types/editors/workflow-editor/ui/WorkflowCanvas.d.ts +11 -0
  406. package/dist/types/editors/workflow-editor/ui/WorkflowCanvas.d.ts.map +1 -0
  407. package/dist/types/editors/workflow-editor/ui/WorkflowEditorApp.d.ts +8 -0
  408. package/dist/types/editors/workflow-editor/ui/WorkflowEditorApp.d.ts.map +1 -0
  409. package/dist/types/editors/workflow-editor/ui/action-template.d.ts +2 -0
  410. package/dist/types/editors/workflow-editor/ui/action-template.d.ts.map +1 -0
  411. package/dist/types/editors/workflow-editor/ui/action-template.test.d.ts +2 -0
  412. package/dist/types/editors/workflow-editor/ui/action-template.test.d.ts.map +1 -0
  413. package/dist/types/editors/workflow-editor/ui/ap-edge.d.ts +8 -0
  414. package/dist/types/editors/workflow-editor/ui/ap-edge.d.ts.map +1 -0
  415. package/dist/types/editors/workflow-editor/ui/ap-layout.d.ts +18 -0
  416. package/dist/types/editors/workflow-editor/ui/ap-layout.d.ts.map +1 -0
  417. package/dist/types/editors/workflow-editor/ui/ap-layout.test.d.ts +2 -0
  418. package/dist/types/editors/workflow-editor/ui/ap-layout.test.d.ts.map +1 -0
  419. package/dist/types/editors/workflow-editor/ui/ap-nodes.d.ts +39 -0
  420. package/dist/types/editors/workflow-editor/ui/ap-nodes.d.ts.map +1 -0
  421. package/dist/types/editors/workflow-editor/ui/block-meta.d.ts +17 -0
  422. package/dist/types/editors/workflow-editor/ui/block-meta.d.ts.map +1 -0
  423. package/dist/types/editors/workflow-editor/ui/block-meta.test.d.ts +2 -0
  424. package/dist/types/editors/workflow-editor/ui/block-meta.test.d.ts.map +1 -0
  425. package/dist/types/editors/workflow-editor/ui/block-selector-chips.test.d.ts +2 -0
  426. package/dist/types/editors/workflow-editor/ui/block-selector-chips.test.d.ts.map +1 -0
  427. package/dist/types/editors/workflow-editor/ui/blocks.d.ts +10 -0
  428. package/dist/types/editors/workflow-editor/ui/blocks.d.ts.map +1 -0
  429. package/dist/types/editors/workflow-editor/ui/canvas-menu.d.ts +33 -0
  430. package/dist/types/editors/workflow-editor/ui/canvas-menu.d.ts.map +1 -0
  431. package/dist/types/editors/workflow-editor/ui/canvas-menu.test.d.ts +2 -0
  432. package/dist/types/editors/workflow-editor/ui/canvas-menu.test.d.ts.map +1 -0
  433. package/dist/types/editors/workflow-editor/ui/connection-create.d.ts +18 -0
  434. package/dist/types/editors/workflow-editor/ui/connection-create.d.ts.map +1 -0
  435. package/dist/types/editors/workflow-editor/ui/connection-create.test.d.ts +2 -0
  436. package/dist/types/editors/workflow-editor/ui/connection-create.test.d.ts.map +1 -0
  437. package/dist/types/editors/workflow-editor/ui/expression-scope.d.ts +29 -0
  438. package/dist/types/editors/workflow-editor/ui/expression-scope.d.ts.map +1 -0
  439. package/dist/types/editors/workflow-editor/ui/expression-scope.test.d.ts +2 -0
  440. package/dist/types/editors/workflow-editor/ui/expression-scope.test.d.ts.map +1 -0
  441. package/dist/types/editors/workflow-editor/ui/expression-tokens.d.ts +18 -0
  442. package/dist/types/editors/workflow-editor/ui/expression-tokens.d.ts.map +1 -0
  443. package/dist/types/editors/workflow-editor/ui/expression-tokens.test.d.ts +2 -0
  444. package/dist/types/editors/workflow-editor/ui/expression-tokens.test.d.ts.map +1 -0
  445. package/dist/types/editors/workflow-editor/ui/forms.d.ts +71 -0
  446. package/dist/types/editors/workflow-editor/ui/forms.d.ts.map +1 -0
  447. package/dist/types/editors/workflow-editor/ui/model.d.ts +111 -0
  448. package/dist/types/editors/workflow-editor/ui/model.d.ts.map +1 -0
  449. package/dist/types/editors/workflow-editor/ui/piece-placeholders.test.d.ts +2 -0
  450. package/dist/types/editors/workflow-editor/ui/piece-placeholders.test.d.ts.map +1 -0
  451. package/dist/types/editors/workflow-editor/ui/piece-source.d.ts +47 -0
  452. package/dist/types/editors/workflow-editor/ui/piece-source.d.ts.map +1 -0
  453. package/dist/types/editors/workflow-editor/ui/reactor-piece-form.d.ts +5 -0
  454. package/dist/types/editors/workflow-editor/ui/reactor-piece-form.d.ts.map +1 -0
  455. package/dist/types/editors/workflow-editor/ui/reactor-piece-form.test.d.ts +2 -0
  456. package/dist/types/editors/workflow-editor/ui/reactor-piece-form.test.d.ts.map +1 -0
  457. package/dist/types/editors/workflow-editor/ui/step-drag.d.ts +13 -0
  458. package/dist/types/editors/workflow-editor/ui/step-drag.d.ts.map +1 -0
  459. package/dist/types/editors/workflow-editor/ui/step-drag.test.d.ts +2 -0
  460. package/dist/types/editors/workflow-editor/ui/step-drag.test.d.ts.map +1 -0
  461. package/dist/types/editors/workflow-editor/ui/trigger-strategy.test.d.ts +2 -0
  462. package/dist/types/editors/workflow-editor/ui/trigger-strategy.test.d.ts.map +1 -0
  463. package/dist/types/editors/workflow-editor/ui/validation.d.ts +6 -0
  464. package/dist/types/editors/workflow-editor/ui/validation.d.ts.map +1 -0
  465. package/dist/types/editors/workflow-editor/ui/validation.test.d.ts +2 -0
  466. package/dist/types/editors/workflow-editor/ui/validation.test.d.ts.map +1 -0
  467. package/dist/types/editors/workflow-editor/use-runtime-url.d.ts +3 -0
  468. package/dist/types/editors/workflow-editor/use-runtime-url.d.ts.map +1 -0
  469. package/dist/types/editors/workflow-studio/components/ConnectionView.d.ts +7 -0
  470. package/dist/types/editors/workflow-studio/components/ConnectionView.d.ts.map +1 -0
  471. package/dist/types/editors/workflow-studio/components/EditorToolbar.d.ts +8 -0
  472. package/dist/types/editors/workflow-studio/components/EditorToolbar.d.ts.map +1 -0
  473. package/dist/types/editors/workflow-studio/components/RunsTable.d.ts +7 -0
  474. package/dist/types/editors/workflow-studio/components/RunsTable.d.ts.map +1 -0
  475. package/dist/types/editors/workflow-studio/components/RunsView.d.ts +10 -0
  476. package/dist/types/editors/workflow-studio/components/RunsView.d.ts.map +1 -0
  477. package/dist/types/editors/workflow-studio/components/Sidebar.d.ts +16 -0
  478. package/dist/types/editors/workflow-studio/components/Sidebar.d.ts.map +1 -0
  479. package/dist/types/editors/workflow-studio/components/WorkflowHeader.d.ts +8 -0
  480. package/dist/types/editors/workflow-studio/components/WorkflowHeader.d.ts.map +1 -0
  481. package/dist/types/editors/workflow-studio/components/WorkflowSteps.d.ts +8 -0
  482. package/dist/types/editors/workflow-studio/components/WorkflowSteps.d.ts.map +1 -0
  483. package/dist/types/editors/workflow-studio/components/WorkflowStudio.d.ts +6 -0
  484. package/dist/types/editors/workflow-studio/components/WorkflowStudio.d.ts.map +1 -0
  485. package/dist/types/editors/workflow-studio/components/connection-usage.d.ts +24 -0
  486. package/dist/types/editors/workflow-studio/components/connection-usage.d.ts.map +1 -0
  487. package/dist/types/editors/workflow-studio/components/connection-usage.test.d.ts +2 -0
  488. package/dist/types/editors/workflow-studio/components/connection-usage.test.d.ts.map +1 -0
  489. package/dist/types/editors/workflow-studio/components/run-format.d.ts +23 -0
  490. package/dist/types/editors/workflow-studio/components/run-format.d.ts.map +1 -0
  491. package/dist/types/editors/workflow-studio/components/step-outline.d.ts +25 -0
  492. package/dist/types/editors/workflow-studio/components/step-outline.d.ts.map +1 -0
  493. package/dist/types/editors/workflow-studio/components/step-outline.test.d.ts +2 -0
  494. package/dist/types/editors/workflow-studio/components/step-outline.test.d.ts.map +1 -0
  495. package/dist/types/editors/workflow-studio/components/use-hash-selection.d.ts +5 -0
  496. package/dist/types/editors/workflow-studio/components/use-hash-selection.d.ts.map +1 -0
  497. package/dist/types/editors/workflow-studio/components/useRuns.d.ts +8 -0
  498. package/dist/types/editors/workflow-studio/components/useRuns.d.ts.map +1 -0
  499. package/dist/types/editors/workflow-studio/config.d.ts +3 -0
  500. package/dist/types/editors/workflow-studio/config.d.ts.map +1 -0
  501. package/dist/types/editors/workflow-studio/editor.d.ts +4 -0
  502. package/dist/types/editors/workflow-studio/editor.d.ts.map +1 -0
  503. package/dist/types/editors/workflow-studio/module.d.ts +8 -0
  504. package/dist/types/editors/workflow-studio/module.d.ts.map +1 -0
  505. package/dist/types/index.d.ts +7 -0
  506. package/dist/types/index.d.ts.map +1 -0
  507. package/dist/types/pieces/index.d.ts +4 -0
  508. package/dist/types/pieces/index.d.ts.map +1 -0
  509. package/dist/types/pieces/reactor/index.d.ts +3 -0
  510. package/dist/types/pieces/reactor/index.d.ts.map +1 -0
  511. package/dist/types/pieces/reactor/lib/actions/document-create.d.ts +9 -0
  512. package/dist/types/pieces/reactor/lib/actions/document-create.d.ts.map +1 -0
  513. package/dist/types/pieces/reactor/lib/actions/document-dispatch.d.ts +9 -0
  514. package/dist/types/pieces/reactor/lib/actions/document-dispatch.d.ts.map +1 -0
  515. package/dist/types/pieces/reactor/lib/actions/document-find.d.ts +10 -0
  516. package/dist/types/pieces/reactor/lib/actions/document-find.d.ts.map +1 -0
  517. package/dist/types/pieces/reactor/lib/actions/document-get.d.ts +5 -0
  518. package/dist/types/pieces/reactor/lib/actions/document-get.d.ts.map +1 -0
  519. package/dist/types/pieces/reactor/lib/actions/document-schema.d.ts +6 -0
  520. package/dist/types/pieces/reactor/lib/actions/document-schema.d.ts.map +1 -0
  521. package/dist/types/pieces/reactor/lib/actions/document-types.d.ts +2 -0
  522. package/dist/types/pieces/reactor/lib/actions/document-types.d.ts.map +1 -0
  523. package/dist/types/pieces/reactor/lib/logo.d.ts +2 -0
  524. package/dist/types/pieces/reactor/lib/logo.d.ts.map +1 -0
  525. package/dist/types/pieces/reactor/lib/parse.d.ts +22 -0
  526. package/dist/types/pieces/reactor/lib/parse.d.ts.map +1 -0
  527. package/dist/types/pieces/reactor/lib/parse.test.d.ts +2 -0
  528. package/dist/types/pieces/reactor/lib/parse.test.d.ts.map +1 -0
  529. package/dist/types/pieces/reactor/lib/reactor.d.ts +6 -0
  530. package/dist/types/pieces/reactor/lib/reactor.d.ts.map +1 -0
  531. package/dist/types/pieces/reactor/lib/triggers/document-event.d.ts +45 -0
  532. package/dist/types/pieces/reactor/lib/triggers/document-event.d.ts.map +1 -0
  533. package/dist/types/reactor/index.d.ts +5 -0
  534. package/dist/types/reactor/index.d.ts.map +1 -0
  535. package/dist/types/vitest.config.d.ts +3 -0
  536. package/dist/types/vitest.config.d.ts.map +1 -0
  537. package/package.json +109 -0
@@ -0,0 +1,331 @@
1
+ import { c as fetchPieceTriggers, o as fetchPieceActions, s as fetchPieceCatalog, v as searchBlocks } from "./runtime-api-DQa04P3e.js";
2
+ import { useEffect, useSyncExternalStore } from "react";
3
+ //#region editors/workflow-editor/ui/piece-source.ts
4
+ function triggerStrategyRuns(strategy) {
5
+ return (strategy ?? "POLLING") !== "APP_WEBHOOK";
6
+ }
7
+ let source;
8
+ function registerPieceSource(next) {
9
+ source = next;
10
+ }
11
+ function getPieceSource() {
12
+ return source;
13
+ }
14
+ //#endregion
15
+ //#region editors/workflow-editor/runtime-piece-source.ts
16
+ registerPieceSource({
17
+ loadCatalog: fetchPieceCatalog,
18
+ loadActions: fetchPieceActions,
19
+ loadTriggers: fetchPieceTriggers,
20
+ searchBlocks
21
+ });
22
+ //#endregion
23
+ //#region editors/workflow-editor/ui/block-meta.ts
24
+ const CORE_META = {
25
+ "core#manual": {
26
+ displayName: "Manual",
27
+ subtitle: "Trigger",
28
+ glyph: "▶"
29
+ },
30
+ "core#schedule": {
31
+ displayName: "Schedule",
32
+ subtitle: "Trigger",
33
+ glyph: "◷"
34
+ },
35
+ "core#webhook": {
36
+ displayName: "Webhook",
37
+ subtitle: "Trigger",
38
+ glyph: "⇲"
39
+ },
40
+ "core#branch": {
41
+ displayName: "Branch",
42
+ subtitle: "Core",
43
+ glyph: "⑂"
44
+ },
45
+ "core#assert": {
46
+ displayName: "Assert",
47
+ subtitle: "Core",
48
+ glyph: "!"
49
+ }
50
+ };
51
+ function parsePieceBlockType(blockType) {
52
+ const separator = blockType.lastIndexOf("#");
53
+ if (separator <= 0) return void 0;
54
+ const packageSpec = blockType.slice(0, separator);
55
+ const fragment = blockType.slice(separator + 1);
56
+ const isTrigger = fragment.startsWith("trigger:");
57
+ const actionName = isTrigger ? fragment.slice(8) : fragment;
58
+ const versionAt = packageSpec.indexOf("@", 1);
59
+ const packageName = versionAt > 0 ? packageSpec.slice(0, versionAt) : packageSpec;
60
+ return {
61
+ packageName,
62
+ pieceName: packageName.split("/").pop()?.replace(/^piece-/, "") ?? "",
63
+ actionName,
64
+ isTrigger
65
+ };
66
+ }
67
+ const pieceLogos = /* @__PURE__ */ new Map();
68
+ const listeners = /* @__PURE__ */ new Set();
69
+ let logoRevision = 0;
70
+ function registerPieceLogos(entries) {
71
+ let changed = false;
72
+ for (const entry of entries) {
73
+ if (!entry.name || !entry.logoUrl) continue;
74
+ if (pieceLogos.get(entry.name) === entry.logoUrl) continue;
75
+ pieceLogos.set(entry.name, entry.logoUrl);
76
+ changed = true;
77
+ }
78
+ if (!changed) return;
79
+ logoRevision += 1;
80
+ for (const listener of listeners) listener();
81
+ }
82
+ function pieceLogo(packageName) {
83
+ return pieceLogos.get(packageName);
84
+ }
85
+ function subscribePieceLogos(listener) {
86
+ listeners.add(listener);
87
+ return () => listeners.delete(listener);
88
+ }
89
+ function pieceLogoRevision() {
90
+ return logoRevision;
91
+ }
92
+ let catalogLoad;
93
+ function ensurePieceLogos() {
94
+ const source = getPieceSource();
95
+ if (!source) return Promise.resolve();
96
+ catalogLoad ??= source.loadCatalog().then((pieces) => registerPieceLogos(pieces)).catch(() => {
97
+ catalogLoad = void 0;
98
+ });
99
+ return catalogLoad;
100
+ }
101
+ function blockMeta(blockType) {
102
+ const core = CORE_META[blockType];
103
+ if (core) return core;
104
+ const piece = parsePieceBlockType(blockType);
105
+ if (piece) return {
106
+ displayName: titleCase(piece.actionName),
107
+ subtitle: piece.isTrigger ? `${titleCase(piece.pieceName)} · Trigger` : titleCase(piece.pieceName),
108
+ logoUrl: pieceLogo(piece.packageName),
109
+ glyph: piece.pieceName.slice(0, 1).toUpperCase() || "?"
110
+ };
111
+ return {
112
+ displayName: blockType,
113
+ subtitle: "",
114
+ glyph: "?"
115
+ };
116
+ }
117
+ function titleCase(value) {
118
+ return value.replaceAll(/[-_]/g, " ").replace(/^\w/, (char) => char.toUpperCase());
119
+ }
120
+ function usePieceLogos() {
121
+ const revision = useSyncExternalStore(subscribePieceLogos, pieceLogoRevision, pieceLogoRevision);
122
+ useEffect(() => {
123
+ ensurePieceLogos();
124
+ }, []);
125
+ return revision;
126
+ }
127
+ function useBlockMeta(blockType) {
128
+ usePieceLogos();
129
+ return blockMeta(blockType);
130
+ }
131
+ //#endregion
132
+ //#region editors/workflow-editor/ui/ap-layout.ts
133
+ function reachableFrom(start, edges) {
134
+ const outgoing = /* @__PURE__ */ new Map();
135
+ for (const edge of edges) {
136
+ const list = outgoing.get(edge.from) ?? [];
137
+ list.push(edge.to);
138
+ outgoing.set(edge.from, list);
139
+ }
140
+ const seen = new Set([start]);
141
+ const queue = [start];
142
+ while (queue.length > 0) for (const next of outgoing.get(queue.pop()) ?? []) if (!seen.has(next)) {
143
+ seen.add(next);
144
+ queue.push(next);
145
+ }
146
+ return seen;
147
+ }
148
+ function acyclicTargets(model, fromId) {
149
+ return model.steps.filter((step) => step.id !== fromId && !reachableFrom(step.id, model.edges).has(fromId));
150
+ }
151
+ function attachableSteps(model, fromId) {
152
+ if (!model.trigger) return [];
153
+ const attached = reachableFrom(model.trigger.id, model.edges);
154
+ return model.steps.filter((step) => !attached.has(step.id) && step.id !== fromId && !reachableFrom(step.id, model.edges).has(fromId));
155
+ }
156
+ const PORT_ORDER = [
157
+ "next",
158
+ "true",
159
+ "false",
160
+ "error"
161
+ ];
162
+ function portRank(port) {
163
+ const index = PORT_ORDER.indexOf(port);
164
+ return index === -1 ? PORT_ORDER.length : index;
165
+ }
166
+ function layoutWorkflow(model) {
167
+ const nodes = [];
168
+ const edges = [];
169
+ if (!model.trigger) {
170
+ nodes.push({
171
+ id: "__big-add",
172
+ type: "apBigButton",
173
+ position: {
174
+ x: -50 / 2,
175
+ y: 0
176
+ },
177
+ data: {},
178
+ draggable: false,
179
+ selectable: false
180
+ });
181
+ return {
182
+ nodes,
183
+ edges
184
+ };
185
+ }
186
+ const stepIds = new Set(model.steps.map((step) => step.id));
187
+ const outgoing = /* @__PURE__ */ new Map();
188
+ for (const edge of model.edges) {
189
+ if (!stepIds.has(edge.to)) continue;
190
+ const list = outgoing.get(edge.from) ?? [];
191
+ list.push(edge);
192
+ outgoing.set(edge.from, list);
193
+ }
194
+ for (const list of outgoing.values()) list.sort((a, b) => portRank(a.port) - portRank(b.port));
195
+ const placed = /* @__PURE__ */ new Set();
196
+ const stepById = new Map(model.steps.map((step) => [step.id, step]));
197
+ const branchPorts = (id) => stepById.get(id)?.blockType === "core#branch" ? ["true", "false"] : [];
198
+ const outletsOf = (id, used) => {
199
+ const edges = (outgoing.get(id) ?? []).filter((edge) => !used(edge.to));
200
+ const ports = branchPorts(id);
201
+ if (ports.length === 0) return edges.map((edge) => ({
202
+ port: edge.port,
203
+ edge
204
+ }));
205
+ const wired = new Set(edges.map((edge) => edge.port));
206
+ return [...edges.map((edge) => ({
207
+ port: edge.port,
208
+ edge
209
+ })), ...ports.filter((port) => !wired.has(port)).map((port) => ({ port }))].sort((a, b) => portRank(a.port) - portRank(b.port));
210
+ };
211
+ const subtreeWidth = (id, visited) => {
212
+ if (visited.has(id)) return 232;
213
+ visited.add(id);
214
+ const outlets = outletsOf(id, (target) => visited.has(target));
215
+ if (outlets.length === 0) return 232;
216
+ const total = outlets.map((outlet) => outlet.edge ? subtreeWidth(outlet.edge.to, visited) : 232).reduce((sum, width) => sum + width, 0);
217
+ return Math.max(232, total + (outlets.length - 1) * 80);
218
+ };
219
+ const placeholders = /* @__PURE__ */ new Map();
220
+ const place = (id, centerX, y) => {
221
+ if (placed.has(id)) return;
222
+ placed.add(id);
223
+ const step = stepById.get(id);
224
+ const isTrigger = id === model.trigger?.id;
225
+ nodes.push({
226
+ id,
227
+ type: "apStep",
228
+ position: {
229
+ x: centerX - 232 / 2,
230
+ y
231
+ },
232
+ data: isTrigger ? {
233
+ kind: "trigger",
234
+ trigger: model.trigger
235
+ } : {
236
+ kind: "step",
237
+ step
238
+ },
239
+ draggable: false
240
+ });
241
+ const outlets = outletsOf(id, (target) => placed.has(target));
242
+ const widths = outlets.map((outlet) => outlet.edge ? subtreeWidth(outlet.edge.to, new Set(placed)) : 232);
243
+ const total = widths.reduce((sum, width) => sum + width, 0) + Math.max(outlets.length - 1, 0) * 80;
244
+ const childY = y + 60 + 60;
245
+ let cursor = centerX - total / 2;
246
+ outlets.forEach((outlet, index) => {
247
+ const slotCenter = cursor + widths[index] / 2;
248
+ if (outlet.edge) place(outlet.edge.to, slotCenter, childY);
249
+ else placeholders.set(`${id}:${outlet.port}`, {
250
+ x: slotCenter,
251
+ y: childY
252
+ });
253
+ cursor += widths[index] + 80;
254
+ });
255
+ };
256
+ place(model.trigger.id, 0, 0);
257
+ let orphanY = 0;
258
+ const mainWidth = subtreeWidth(model.trigger.id, /* @__PURE__ */ new Set());
259
+ for (const step of model.steps) {
260
+ if (placed.has(step.id)) continue;
261
+ place(step.id, mainWidth / 2 + 80 + 232 / 2, orphanY);
262
+ orphanY += 120;
263
+ }
264
+ const nodeById = new Map(nodes.map((node) => [node.id, node]));
265
+ for (const edge of model.edges) {
266
+ if (!nodeById.has(edge.from) || !nodeById.has(edge.to)) continue;
267
+ edges.push({
268
+ id: edge.id,
269
+ type: "apEdge",
270
+ source: edge.from,
271
+ target: edge.to,
272
+ data: {
273
+ edgeId: edge.id,
274
+ port: edge.port,
275
+ condition: edge.condition
276
+ },
277
+ selectable: true
278
+ });
279
+ }
280
+ const candidatePorts = (id) => {
281
+ if (id === model.trigger?.id) return ["next"];
282
+ const step = stepById.get(id);
283
+ if (!step) return [];
284
+ return step.blockType === "core#branch" ? ["true", "false"] : ["next"];
285
+ };
286
+ const appendPorts = (id) => {
287
+ const used = new Set((outgoing.get(id) ?? []).map((edge) => edge.port));
288
+ return candidatePorts(id).filter((port) => !used.has(port));
289
+ };
290
+ for (const node of [...nodes]) {
291
+ if (node.type !== "apStep") continue;
292
+ appendPorts(node.id).forEach((port) => {
293
+ const slot = placeholders.get(`${node.id}:${port}`);
294
+ const buttonId = `__append:${node.id}:${port}`;
295
+ nodes.push({
296
+ id: buttonId,
297
+ type: "apAppend",
298
+ position: slot ? {
299
+ x: slot.x - 232 / 2,
300
+ y: slot.y
301
+ } : {
302
+ x: node.position.x + 232 / 2 - 20 / 2,
303
+ y: node.position.y + 60 + 60 / 2 - 20 / 2
304
+ },
305
+ data: {
306
+ parentId: node.id,
307
+ port,
308
+ card: Boolean(slot)
309
+ },
310
+ draggable: false,
311
+ selectable: false
312
+ });
313
+ edges.push({
314
+ id: `${buttonId}:line`,
315
+ type: "apLink",
316
+ source: node.id,
317
+ target: buttonId,
318
+ data: { port },
319
+ selectable: false
320
+ });
321
+ });
322
+ }
323
+ return {
324
+ nodes,
325
+ edges
326
+ };
327
+ }
328
+ //#endregion
329
+ export { reachableFrom as a, useBlockMeta as c, triggerStrategyRuns as d, portRank as i, usePieceLogos as l, attachableSteps as n, blockMeta as o, layoutWorkflow as r, pieceLogo as s, acyclicTargets as t, getPieceSource as u };
330
+
331
+ //# sourceMappingURL=ap-layout-DLTZBpE7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ap-layout-DLTZBpE7.js","names":[],"sources":["../../editors/workflow-editor/ui/piece-source.ts","../../editors/workflow-editor/runtime-piece-source.ts","../../editors/workflow-editor/ui/block-meta.ts","../../editors/workflow-editor/ui/ap-layout.ts"],"sourcesContent":["// Catalog source for the block selector's piece browser. Registered by the\n// editor shell (same pattern as registerCanvasHandlers) to keep ui/ decoupled.\n\nexport interface PieceSummaryUi {\n name: string;\n displayName: string;\n description: string;\n logoUrl: string;\n actionCount: number;\n triggerCount: number;\n // Activepieces category ids; empty for uncategorised pieces.\n categories: string[];\n}\n\nexport interface BlockSearchHitUi {\n blockType: string;\n pieceName: string;\n pieceDisplayName: string;\n logoUrl: string;\n displayName: string;\n description: string;\n kind: \"action\" | \"trigger\";\n strategy: string | null;\n}\n\nexport interface BlockSearchResultUi {\n status: \"ready\" | \"indexing\" | \"error\";\n hits: BlockSearchHitUi[];\n error: string | null;\n}\n\nexport interface PieceActionUi {\n name: string;\n displayName: string;\n description: string;\n blockType: string;\n}\n\nexport interface PieceTriggerUi {\n name: string;\n displayName: string;\n description: string;\n // POLLING | WEBHOOK | APP_WEBHOOK.\n strategy: string;\n blockType: string;\n}\n\n// APP_WEBHOOK is the one the runtime cannot serve: it maps to polling, and an\n// app-webhook trigger's run hook needs a request, so a poll calls it blind.\nexport function triggerStrategyRuns(strategy: string | null | undefined) {\n return (strategy ?? \"POLLING\") !== \"APP_WEBHOOK\";\n}\n\nexport interface PieceCatalogSource {\n loadCatalog: () => Promise<PieceSummaryUi[]>;\n loadActions: (packageName: string) => Promise<PieceActionUi[]>;\n loadTriggers: (packageName: string) => Promise<PieceTriggerUi[]>;\n // Catalog-wide action/trigger name search; optional for offline sources.\n searchBlocks?: (\n query: string,\n limit?: number,\n ) => Promise<BlockSearchResultUi>;\n}\n\nlet source: PieceCatalogSource | undefined;\n\nexport function registerPieceSource(next: PieceCatalogSource): void {\n source = next;\n}\n\nexport function getPieceSource(): PieceCatalogSource | undefined {\n return source;\n}\n","// Wires the ui/ piece-catalog seam to the workflow-runtime subgraph. Imported\n// for its side effect by every editor shell that renders block metadata\n// (logos come from the catalog, so the studio needs it too).\nimport {\n fetchPieceActions,\n fetchPieceCatalog,\n fetchPieceTriggers,\n searchBlocks,\n} from \"./runtime-api.js\";\nimport { registerPieceSource } from \"./ui/piece-source.js\";\n\nregisterPieceSource({\n loadCatalog: fetchPieceCatalog,\n loadActions: fetchPieceActions,\n loadTriggers: fetchPieceTriggers,\n searchBlocks,\n});\n","// Display metadata per block type: label + logo, Activepieces logos for\n// pieces, glyph badges for core blocks.\n//\n// Piece logo URLs are NOT derivable from the package name: Activepieces\n// serves ~10% of pieces from a different filename, folder or extension than\n// `<piece>.png` (e.g. @activepieces/piece-date-helper lives at\n// /pieces/new-core/date-helper.svg). So logos come from the piece catalog\n// metadata, registered here as it loads; unknown pieces render a glyph.\nimport { useEffect, useSyncExternalStore } from \"react\";\nimport { getPieceSource } from \"./piece-source.js\";\n\nexport interface BlockMeta {\n displayName: string;\n subtitle: string;\n logoUrl?: string;\n glyph?: string;\n}\n\nconst CORE_META: Record<string, BlockMeta> = {\n \"core#manual\": { displayName: \"Manual\", subtitle: \"Trigger\", glyph: \"▶\" },\n \"core#schedule\": { displayName: \"Schedule\", subtitle: \"Trigger\", glyph: \"◷\" },\n \"core#webhook\": { displayName: \"Webhook\", subtitle: \"Trigger\", glyph: \"⇲\" },\n \"core#branch\": { displayName: \"Branch\", subtitle: \"Core\", glyph: \"⑂\" },\n \"core#assert\": { displayName: \"Assert\", subtitle: \"Core\", glyph: \"!\" },\n};\n\n// \"@activepieces/piece-http@0.11.19#send_request\" -> http / send_request;\n// \"#trigger:new_item\" fragments label as triggers.\nfunction parsePieceBlockType(blockType: string) {\n const separator = blockType.lastIndexOf(\"#\");\n if (separator <= 0) return undefined;\n const packageSpec = blockType.slice(0, separator);\n const fragment = blockType.slice(separator + 1);\n const isTrigger = fragment.startsWith(\"trigger:\");\n const actionName = isTrigger ? fragment.slice(\"trigger:\".length) : fragment;\n const versionAt = packageSpec.indexOf(\"@\", 1);\n const packageName =\n versionAt > 0 ? packageSpec.slice(0, versionAt) : packageSpec;\n const pieceName =\n packageName\n .split(\"/\")\n .pop()\n ?.replace(/^piece-/, \"\") ?? \"\";\n return { packageName, pieceName, actionName, isTrigger };\n}\n\n// Logos keyed by package name (\"@activepieces/piece-date-helper\"), as given\n// by the piece catalog. Module-level so every block view shares one lookup.\nconst pieceLogos = new Map<string, string>();\nconst listeners = new Set<() => void>();\n// Bumped on every registration so useSyncExternalStore re-reads.\nlet logoRevision = 0;\n\nexport function registerPieceLogos(\n entries: Iterable<{ name: string; logoUrl?: string | null }>,\n): void {\n let changed = false;\n for (const entry of entries) {\n if (!entry.name || !entry.logoUrl) continue;\n if (pieceLogos.get(entry.name) === entry.logoUrl) continue;\n pieceLogos.set(entry.name, entry.logoUrl);\n changed = true;\n }\n if (!changed) return;\n logoRevision += 1;\n for (const listener of listeners) listener();\n}\n\nexport function pieceLogo(packageName: string): string | undefined {\n return pieceLogos.get(packageName);\n}\n\n// Test seam: drop the cache so a fresh catalog can be registered.\nexport function resetPieceLogos(): void {\n pieceLogos.clear();\n catalogLoad = undefined;\n logoRevision += 1;\n for (const listener of listeners) listener();\n}\n\nfunction subscribePieceLogos(listener: () => void): () => void {\n listeners.add(listener);\n return () => listeners.delete(listener);\n}\n\nfunction pieceLogoRevision(): number {\n return logoRevision;\n}\n\nlet catalogLoad: Promise<void> | undefined;\n\n// Loads the catalog once per session (the runtime layer caches the request)\n// purely to learn logo URLs. Failures are non-fatal: blocks fall back to\n// their glyph.\nexport function ensurePieceLogos(): Promise<void> {\n const source = getPieceSource();\n if (!source) return Promise.resolve();\n catalogLoad ??= source\n .loadCatalog()\n .then((pieces) => registerPieceLogos(pieces))\n .catch(() => {\n catalogLoad = undefined;\n });\n return catalogLoad;\n}\n\nexport function blockMeta(blockType: string): BlockMeta {\n const core = CORE_META[blockType] as BlockMeta | undefined;\n if (core) return core;\n const piece = parsePieceBlockType(blockType);\n if (piece) {\n return {\n displayName: titleCase(piece.actionName),\n subtitle: piece.isTrigger\n ? `${titleCase(piece.pieceName)} · Trigger`\n : titleCase(piece.pieceName),\n logoUrl: pieceLogo(piece.packageName),\n // Shown until the catalog arrives, and whenever the logo fails to load.\n glyph: piece.pieceName.slice(0, 1).toUpperCase() || \"?\",\n };\n }\n return { displayName: blockType, subtitle: \"\", glyph: \"?\" };\n}\n\nfunction titleCase(value: string): string {\n return value\n .replaceAll(/[-_]/g, \" \")\n .replace(/^\\w/, (char) => char.toUpperCase());\n}\n\n// Subscribes the caller to logo registrations and kicks off the catalog load.\n// Call once per component that renders many blocks, then use blockMeta().\nexport function usePieceLogos(): number {\n const revision = useSyncExternalStore(\n subscribePieceLogos,\n pieceLogoRevision,\n pieceLogoRevision,\n );\n useEffect(() => {\n void ensurePieceLogos();\n }, []);\n return revision;\n}\n\nexport function useBlockMeta(blockType: string): BlockMeta {\n // Re-reads on every logo registration; blockMeta is a cheap lookup.\n usePieceLogos();\n return blockMeta(blockType);\n}\n","// Vertical tree layout, a port of the Activepieces builder flow-canvas\n// layout behavior (MIT, activepieces packages/web) onto our flat graph.\nimport type { Edge, Node } from \"@xyflow/react\";\nimport type { EdgeModel, StepModel, WorkflowModel } from \"./model.js\";\n\nexport function reachableFrom(start: string, edges: EdgeModel[]): Set<string> {\n const outgoing = new Map<string, string[]>();\n for (const edge of edges) {\n const list = outgoing.get(edge.from) ?? [];\n list.push(edge.to);\n outgoing.set(edge.from, list);\n }\n const seen = new Set<string>([start]);\n const queue = [start];\n while (queue.length > 0) {\n for (const next of outgoing.get(queue.pop()!) ?? []) {\n if (!seen.has(next)) {\n seen.add(next);\n queue.push(next);\n }\n }\n }\n return seen;\n}\n\n// Steps an edge from `fromId` may target without creating a cycle.\nexport function acyclicTargets(\n model: WorkflowModel,\n fromId: string,\n): StepModel[] {\n return model.steps.filter(\n (step) =>\n step.id !== fromId && !reachableFrom(step.id, model.edges).has(fromId),\n );\n}\n\n// Steps a new edge from `fromId` may target: unreachable from the trigger,\n// not `fromId` itself, and not an ancestor of it (no cycles).\nexport function attachableSteps(\n model: WorkflowModel,\n fromId: string,\n): StepModel[] {\n if (!model.trigger) return [];\n const attached = reachableFrom(model.trigger.id, model.edges);\n return model.steps.filter(\n (step) =>\n !attached.has(step.id) &&\n step.id !== fromId &&\n !reachableFrom(step.id, model.edges).has(fromId),\n );\n}\n\nexport const STEP_WIDTH = 232;\nexport const STEP_HEIGHT = 60;\nexport const VSPACE = 60;\nexport const HSPACE = 80;\nexport const ADD_BUTTON_SIZE = 20;\nexport const BIG_ADD_BUTTON_SIZE = 50;\n\nconst PORT_ORDER = [\"next\", \"true\", \"false\", \"error\"];\n\nexport function portRank(port: string): number {\n const index = PORT_ORDER.indexOf(port);\n return index === -1 ? PORT_ORDER.length : index;\n}\n\nexport interface ApLayout {\n nodes: Node[];\n edges: Edge[];\n}\n\n// Builds react-flow nodes/edges: steps laid out as a centered vertical tree,\n// append buttons under leaves, and one add button per edge.\nexport function layoutWorkflow(model: WorkflowModel): ApLayout {\n const nodes: Node[] = [];\n const edges: Edge[] = [];\n\n if (!model.trigger) {\n nodes.push({\n id: \"__big-add\",\n type: \"apBigButton\",\n position: { x: -BIG_ADD_BUTTON_SIZE / 2, y: 0 },\n data: {},\n draggable: false,\n selectable: false,\n });\n return { nodes, edges };\n }\n\n const stepIds = new Set(model.steps.map((step) => step.id));\n const outgoing = new Map<string, EdgeModel[]>();\n for (const edge of model.edges) {\n if (!stepIds.has(edge.to)) continue;\n const list = outgoing.get(edge.from) ?? [];\n list.push(edge);\n outgoing.set(edge.from, list);\n }\n for (const list of outgoing.values()) {\n list.sort((a, b) => portRank(a.port) - portRank(b.port));\n }\n\n const placed = new Set<string>();\n const stepById = new Map(model.steps.map((step) => [step.id, step]));\n\n const branchPorts = (id: string): string[] =>\n stepById.get(id)?.blockType === \"core#branch\" ? [\"true\", \"false\"] : [];\n\n // An unwired branch port still occupies a column: it gets a placeholder card\n // where its step would go, so both branches read as branches.\n const outletsOf = (\n id: string,\n used: (target: string) => boolean,\n ): { port: string; edge?: EdgeModel }[] => {\n const edges = (outgoing.get(id) ?? []).filter((edge) => !used(edge.to));\n const ports = branchPorts(id);\n if (ports.length === 0) {\n return edges.map((edge) => ({ port: edge.port, edge }));\n }\n const wired = new Set(edges.map((edge) => edge.port));\n return [\n ...edges.map((edge) => ({ port: edge.port, edge })),\n ...ports.filter((port) => !wired.has(port)).map((port) => ({ port })),\n ].sort((a, b) => portRank(a.port) - portRank(b.port));\n };\n\n const subtreeWidth = (id: string, visited: Set<string>): number => {\n if (visited.has(id)) return STEP_WIDTH;\n visited.add(id);\n const outlets = outletsOf(id, (target) => visited.has(target));\n if (outlets.length === 0) return STEP_WIDTH;\n const total = outlets\n .map((outlet) =>\n outlet.edge ? subtreeWidth(outlet.edge.to, visited) : STEP_WIDTH,\n )\n .reduce((sum, width) => sum + width, 0);\n return Math.max(STEP_WIDTH, total + (outlets.length - 1) * HSPACE);\n };\n\n // Centre of the column reserved for an unwired port, keyed \"stepId:port\".\n const placeholders = new Map<string, { x: number; y: number }>();\n\n const place = (id: string, centerX: number, y: number) => {\n if (placed.has(id)) return;\n placed.add(id);\n const step = stepById.get(id);\n const isTrigger = id === model.trigger?.id;\n nodes.push({\n id,\n type: \"apStep\",\n position: { x: centerX - STEP_WIDTH / 2, y },\n data: isTrigger\n ? { kind: \"trigger\", trigger: model.trigger }\n : { kind: \"step\", step },\n draggable: false,\n });\n\n const outlets = outletsOf(id, (target) => placed.has(target));\n const widths = outlets.map((outlet) =>\n outlet.edge ? subtreeWidth(outlet.edge.to, new Set(placed)) : STEP_WIDTH,\n );\n const total =\n widths.reduce((sum, width) => sum + width, 0) +\n Math.max(outlets.length - 1, 0) * HSPACE;\n const childY = y + STEP_HEIGHT + VSPACE;\n let cursor = centerX - total / 2;\n outlets.forEach((outlet, index) => {\n const slotCenter = cursor + widths[index] / 2;\n if (outlet.edge) {\n place(outlet.edge.to, slotCenter, childY);\n } else {\n placeholders.set(`${id}:${outlet.port}`, { x: slotCenter, y: childY });\n }\n cursor += widths[index] + HSPACE;\n });\n };\n\n place(model.trigger.id, 0, 0);\n\n // Steps unreachable from the trigger stack in a column to the right.\n let orphanY = 0;\n const mainWidth = subtreeWidth(model.trigger.id, new Set());\n for (const step of model.steps) {\n if (placed.has(step.id)) continue;\n place(step.id, mainWidth / 2 + HSPACE + STEP_WIDTH / 2, orphanY);\n orphanY += STEP_HEIGHT + VSPACE;\n }\n\n const nodeById = new Map(nodes.map((node) => [node.id, node]));\n\n for (const edge of model.edges) {\n if (!nodeById.has(edge.from) || !nodeById.has(edge.to)) continue;\n edges.push({\n id: edge.id,\n type: \"apEdge\",\n source: edge.from,\n target: edge.to,\n data: { edgeId: edge.id, port: edge.port, condition: edge.condition },\n selectable: true,\n });\n }\n\n // Append buttons under every step with no outgoing edges (branches get\n // one per untaken port).\n const candidatePorts = (id: string): string[] => {\n if (id === model.trigger?.id) return [\"next\"];\n const step = stepById.get(id);\n if (!step) return [];\n return step.blockType === \"core#branch\" ? [\"true\", \"false\"] : [\"next\"];\n };\n\n const appendPorts = (id: string): string[] => {\n const used = new Set((outgoing.get(id) ?? []).map((edge) => edge.port));\n return candidatePorts(id).filter((port) => !used.has(port));\n };\n\n for (const node of [...nodes]) {\n if (node.type !== \"apStep\") continue;\n appendPorts(node.id).forEach((port) => {\n const slot = placeholders.get(`${node.id}:${port}`);\n const buttonId = `__append:${node.id}:${port}`;\n nodes.push({\n id: buttonId,\n type: \"apAppend\",\n position: slot\n ? { x: slot.x - STEP_WIDTH / 2, y: slot.y }\n : {\n x: node.position.x + STEP_WIDTH / 2 - ADD_BUTTON_SIZE / 2,\n y:\n node.position.y +\n STEP_HEIGHT +\n VSPACE / 2 -\n ADD_BUTTON_SIZE / 2,\n },\n data: { parentId: node.id, port, card: Boolean(slot) },\n draggable: false,\n selectable: false,\n });\n edges.push({\n id: `${buttonId}:line`,\n type: \"apLink\",\n source: node.id,\n target: buttonId,\n data: { port },\n selectable: false,\n });\n });\n }\n\n return { nodes, edges };\n}\n"],"mappings":"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"}
@@ -0,0 +1,314 @@
1
+ import { o as instrumentPgPool } from "./drive-container-types-DrTN96J-.js";
2
+ import { n as errorToInfo, t as createForwardingLogger } from "./forwarding-logger-BBkMSxuJ.js";
3
+ import { n as defaultLoadFactory, t as buildWorkerExecutor } from "./build-worker-executor-D4se2bJ0.js";
4
+ import { ConsoleLogger } from "document-model";
5
+ import { isMainThread, parentPort } from "node:worker_threads";
6
+ //#region src/executor/worker/run-worker.ts
7
+ const POOL_SAMPLE_INTERVAL_MS = 1e3;
8
+ async function defaultCreateDatabase(config, workerId) {
9
+ const { Kysely, PostgresDialect } = await import("kysely");
10
+ const Pool = (await import("pg")).default.Pool;
11
+ const pool = new Pool({
12
+ host: config.host,
13
+ port: config.port,
14
+ database: config.database,
15
+ user: config.user,
16
+ password: config.password,
17
+ ssl: config.ssl ? { rejectUnauthorized: false } : void 0,
18
+ application_name: config.applicationName ?? workerId,
19
+ max: config.poolSize,
20
+ connectionTimeoutMillis: config.connectionTimeoutMillis,
21
+ idleTimeoutMillis: config.idleTimeoutMillis
22
+ });
23
+ const poolInstrumentation = instrumentPgPool(pool, workerId);
24
+ const kysely = new Kysely({ dialect: new PostgresDialect({ pool }) });
25
+ return {
26
+ kysely,
27
+ poolInstrumentation,
28
+ async shutdown() {
29
+ try {
30
+ await kysely.destroy();
31
+ } catch {}
32
+ try {
33
+ await pool.end();
34
+ } catch {}
35
+ }
36
+ };
37
+ }
38
+ /**
39
+ * Drives the worker's message loop. Owns lifecycle of the database handle
40
+ * and executor stack. The default factories build a real Postgres pool and
41
+ * use dynamic `import()` for model/verifier specs; tests inject overrides
42
+ * for an in-process PGlite path.
43
+ */
44
+ function runWorker(parentPort, overrides = {}) {
45
+ let workerId = "";
46
+ let initCompleted = false;
47
+ let initConfig = null;
48
+ let executorStack = null;
49
+ let database = null;
50
+ let poolSampleTimer = null;
51
+ let pendingPoolSamples = [];
52
+ let detachPoolListener = null;
53
+ const activeLoadFactory = overrides.loadFactory ?? defaultLoadFactory;
54
+ function post(msg) {
55
+ parentPort.postMessage(msg);
56
+ }
57
+ const logger = createForwardingLogger(post);
58
+ function startPoolReporter(instrumentation) {
59
+ detachPoolListener = instrumentation.onAcquire((durationMs) => {
60
+ pendingPoolSamples.push(durationMs);
61
+ });
62
+ poolSampleTimer = setInterval(() => {
63
+ if (pendingPoolSamples.length === 0) return;
64
+ const durations = pendingPoolSamples;
65
+ pendingPoolSamples = [];
66
+ const stats = instrumentation.getStats();
67
+ post({
68
+ type: "pool-acquire-samples",
69
+ workerId,
70
+ poolName: instrumentation.name,
71
+ timestamp: Date.now(),
72
+ durations,
73
+ size: stats.size,
74
+ idle: stats.idle,
75
+ waiting: stats.waiting
76
+ });
77
+ }, POOL_SAMPLE_INTERVAL_MS);
78
+ poolSampleTimer.unref();
79
+ }
80
+ function stopPoolReporter() {
81
+ if (detachPoolListener) {
82
+ detachPoolListener();
83
+ detachPoolListener = null;
84
+ }
85
+ if (poolSampleTimer) {
86
+ clearInterval(poolSampleTimer);
87
+ poolSampleTimer = null;
88
+ }
89
+ pendingPoolSamples = [];
90
+ }
91
+ process.on("uncaughtException", (err) => {
92
+ try {
93
+ post({
94
+ type: "log",
95
+ level: "error",
96
+ message: "worker uncaughtException",
97
+ args: [errorToInfo(err)],
98
+ timestamp: Date.now()
99
+ });
100
+ } catch {}
101
+ throw err;
102
+ });
103
+ process.on("unhandledRejection", (reason) => {
104
+ try {
105
+ post({
106
+ type: "log",
107
+ level: "error",
108
+ message: "worker unhandledRejection",
109
+ args: [errorToInfo(reason)],
110
+ timestamp: Date.now()
111
+ });
112
+ } catch {}
113
+ });
114
+ async function handleInit(msg) {
115
+ workerId = msg.workerId;
116
+ initConfig = msg;
117
+ database = await (overrides.createDatabase ?? defaultCreateDatabase)(msg.db, msg.workerId);
118
+ if (overrides.beforeBuildExecutor) await overrides.beforeBuildExecutor(database.kysely);
119
+ executorStack = await buildWorkerExecutor({
120
+ init: msg,
121
+ database: database.kysely,
122
+ logger: new ConsoleLogger([`reactor-worker:${msg.workerId}`]),
123
+ executorConfig: msg.executorConfig,
124
+ loadFactory: activeLoadFactory
125
+ });
126
+ if (database.poolInstrumentation) startPoolReporter(database.poolInstrumentation);
127
+ initCompleted = true;
128
+ logger.info("worker initialized: @workerId", msg.workerId);
129
+ post({
130
+ type: "ready",
131
+ correlationId: msg.correlationId,
132
+ workerId: msg.workerId
133
+ });
134
+ }
135
+ async function handleExecute(correlationId, job) {
136
+ if (!executorStack) {
137
+ post({
138
+ type: "result",
139
+ correlationId,
140
+ result: {
141
+ job,
142
+ success: false
143
+ },
144
+ error: errorToInfo(/* @__PURE__ */ new Error("execute received before init"))
145
+ });
146
+ return;
147
+ }
148
+ try {
149
+ post({
150
+ type: "result",
151
+ correlationId,
152
+ result: await executorStack.executor.executeJob(job),
153
+ writeReady: executorStack.takeLastWriteReady() ?? void 0
154
+ });
155
+ } catch (error) {
156
+ post({
157
+ type: "result",
158
+ correlationId,
159
+ result: {
160
+ job,
161
+ success: false
162
+ },
163
+ error: errorToInfo(error)
164
+ });
165
+ }
166
+ }
167
+ async function handleLoadModel(msg) {
168
+ const stack = executorStack;
169
+ if (!stack) {
170
+ post({
171
+ type: "model-load-failed",
172
+ correlationId: msg.correlationId,
173
+ documentType: msg.model.documentType,
174
+ version: msg.model.version,
175
+ error: errorToInfo(/* @__PURE__ */ new Error("load-model received before init"))
176
+ });
177
+ return;
178
+ }
179
+ let module;
180
+ try {
181
+ module = await activeLoadFactory(msg.model.spec);
182
+ } catch (error) {
183
+ post({
184
+ type: "model-load-failed",
185
+ correlationId: msg.correlationId,
186
+ documentType: msg.model.documentType,
187
+ version: msg.model.version,
188
+ error: errorToInfo(error)
189
+ });
190
+ return;
191
+ }
192
+ const [result] = stack.registry.registerModules(module);
193
+ if (result.status === "error") {
194
+ post({
195
+ type: "model-load-failed",
196
+ correlationId: msg.correlationId,
197
+ documentType: msg.model.documentType,
198
+ version: msg.model.version,
199
+ error: errorToInfo(result.error)
200
+ });
201
+ return;
202
+ }
203
+ post({
204
+ type: "model-loaded",
205
+ correlationId: msg.correlationId,
206
+ documentType: msg.model.documentType,
207
+ version: msg.model.version
208
+ });
209
+ }
210
+ async function shutdownDatabase() {
211
+ stopPoolReporter();
212
+ if (database) await database.shutdown();
213
+ }
214
+ function handleParentMessage(msg) {
215
+ switch (msg.type) {
216
+ case "init":
217
+ handleInit(msg).catch((err) => {
218
+ post({
219
+ type: "log",
220
+ level: "error",
221
+ message: "worker init failed",
222
+ args: [errorToInfo(err)],
223
+ timestamp: Date.now()
224
+ });
225
+ });
226
+ break;
227
+ case "execute":
228
+ if (!initCompleted) {
229
+ logger.warn("received execute before init");
230
+ post({
231
+ type: "result",
232
+ correlationId: msg.correlationId,
233
+ result: {
234
+ job: msg.job,
235
+ success: false
236
+ },
237
+ error: errorToInfo(/* @__PURE__ */ new Error("execute received before init"))
238
+ });
239
+ break;
240
+ }
241
+ handleExecute(msg.correlationId, msg.job).catch((err) => {
242
+ post({
243
+ type: "result",
244
+ correlationId: msg.correlationId,
245
+ result: {
246
+ job: msg.job,
247
+ success: false
248
+ },
249
+ error: errorToInfo(err)
250
+ });
251
+ });
252
+ break;
253
+ case "shutdown":
254
+ logger.info("worker shutting down: @workerId", workerId);
255
+ shutdownDatabase().finally(() => {
256
+ post({
257
+ type: "log",
258
+ level: "info",
259
+ message: "worker shutdown",
260
+ args: [],
261
+ timestamp: Date.now()
262
+ });
263
+ process.exit(0);
264
+ });
265
+ break;
266
+ case "abort":
267
+ logger.warn("abort received (no-op stub): @correlationId", msg.correlationId);
268
+ break;
269
+ case "load-model":
270
+ handleLoadModel(msg).catch((err) => {
271
+ post({
272
+ type: "model-load-failed",
273
+ correlationId: msg.correlationId,
274
+ documentType: msg.model.documentType,
275
+ version: msg.model.version,
276
+ error: errorToInfo(err)
277
+ });
278
+ });
279
+ break;
280
+ default: {
281
+ const raw = msg;
282
+ if (raw["type"] === "__test_throw") {
283
+ const rawReason = raw["reason"];
284
+ const reason = typeof rawReason === "string" ? rawReason : "synthetic uncaughtException";
285
+ setTimeout(() => {
286
+ throw new Error(reason);
287
+ }, 0);
288
+ return;
289
+ }
290
+ break;
291
+ }
292
+ }
293
+ }
294
+ parentPort.on("message", handleParentMessage);
295
+ parentPort.__reactorWorkerHarness = {
296
+ handleParentMessage,
297
+ get initCompleted() {
298
+ return initCompleted;
299
+ },
300
+ get initConfig() {
301
+ return initConfig;
302
+ },
303
+ get workerId() {
304
+ return workerId;
305
+ }
306
+ };
307
+ }
308
+ //#endregion
309
+ //#region src/executor/worker/entry.ts
310
+ if (isMainThread || parentPort === null) throw new Error("entry.ts must be run as a worker thread");
311
+ runWorker(parentPort);
312
+ //#endregion
313
+
314
+ //# sourceMappingURL=entry.js.map