@xyne/workflow-sdk 1.0.0

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 (310) hide show
  1. package/README.md +36 -0
  2. package/dist/agents/agent-step.d.ts +152 -0
  3. package/dist/agents/agent-step.d.ts.map +1 -0
  4. package/dist/agents/agent-step.js +403 -0
  5. package/dist/agents/agent-step.js.map +1 -0
  6. package/dist/agents/base-runtime.d.ts +38 -0
  7. package/dist/agents/base-runtime.d.ts.map +1 -0
  8. package/dist/agents/base-runtime.js +21 -0
  9. package/dist/agents/base-runtime.js.map +1 -0
  10. package/dist/agents/index.d.ts +12 -0
  11. package/dist/agents/index.d.ts.map +1 -0
  12. package/dist/agents/index.js +17 -0
  13. package/dist/agents/index.js.map +1 -0
  14. package/dist/agents/interceptor.d.ts +19 -0
  15. package/dist/agents/interceptor.d.ts.map +1 -0
  16. package/dist/agents/interceptor.js +21 -0
  17. package/dist/agents/interceptor.js.map +1 -0
  18. package/dist/agents/interceptors/approval-gate.d.ts +14 -0
  19. package/dist/agents/interceptors/approval-gate.d.ts.map +1 -0
  20. package/dist/agents/interceptors/approval-gate.js +19 -0
  21. package/dist/agents/interceptors/approval-gate.js.map +1 -0
  22. package/dist/agents/interceptors/tool-logger.d.ts +15 -0
  23. package/dist/agents/interceptors/tool-logger.d.ts.map +1 -0
  24. package/dist/agents/interceptors/tool-logger.js +23 -0
  25. package/dist/agents/interceptors/tool-logger.js.map +1 -0
  26. package/dist/agents/pi-mono-runtime.d.ts +88 -0
  27. package/dist/agents/pi-mono-runtime.d.ts.map +1 -0
  28. package/dist/agents/pi-mono-runtime.js +129 -0
  29. package/dist/agents/pi-mono-runtime.js.map +1 -0
  30. package/dist/agents/tool-registry.d.ts +25 -0
  31. package/dist/agents/tool-registry.d.ts.map +1 -0
  32. package/dist/agents/tool-registry.js +47 -0
  33. package/dist/agents/tool-registry.js.map +1 -0
  34. package/dist/agents/tool-types.d.ts +25 -0
  35. package/dist/agents/tool-types.d.ts.map +1 -0
  36. package/dist/agents/tool-types.js +9 -0
  37. package/dist/agents/tool-types.js.map +1 -0
  38. package/dist/agents/types.d.ts +91 -0
  39. package/dist/agents/types.d.ts.map +1 -0
  40. package/dist/agents/types.js +12 -0
  41. package/dist/agents/types.js.map +1 -0
  42. package/dist/builder/index.d.ts +30 -0
  43. package/dist/builder/index.d.ts.map +1 -0
  44. package/dist/builder/index.js +32 -0
  45. package/dist/builder/index.js.map +1 -0
  46. package/dist/client/index.d.ts +19 -0
  47. package/dist/client/index.d.ts.map +1 -0
  48. package/dist/client/index.js +18 -0
  49. package/dist/client/index.js.map +1 -0
  50. package/dist/client/types.d.ts +128 -0
  51. package/dist/client/types.d.ts.map +1 -0
  52. package/dist/client/types.js +10 -0
  53. package/dist/client/types.js.map +1 -0
  54. package/dist/client/workflow-client.d.ts +15 -0
  55. package/dist/client/workflow-client.d.ts.map +1 -0
  56. package/dist/client/workflow-client.js +293 -0
  57. package/dist/client/workflow-client.js.map +1 -0
  58. package/dist/common/attachment.d.ts +31 -0
  59. package/dist/common/attachment.d.ts.map +1 -0
  60. package/dist/common/attachment.js +21 -0
  61. package/dist/common/attachment.js.map +1 -0
  62. package/dist/common/executable-check.d.ts +42 -0
  63. package/dist/common/executable-check.d.ts.map +1 -0
  64. package/dist/common/executable-check.js +115 -0
  65. package/dist/common/executable-check.js.map +1 -0
  66. package/dist/common/index.d.ts +21 -0
  67. package/dist/common/index.d.ts.map +1 -0
  68. package/dist/common/index.js +19 -0
  69. package/dist/common/index.js.map +1 -0
  70. package/dist/common/resume-payload.d.ts +34 -0
  71. package/dist/common/resume-payload.d.ts.map +1 -0
  72. package/dist/common/resume-payload.js +12 -0
  73. package/dist/common/resume-payload.js.map +1 -0
  74. package/dist/engine/available-context.d.ts +29 -0
  75. package/dist/engine/available-context.d.ts.map +1 -0
  76. package/dist/engine/available-context.js +66 -0
  77. package/dist/engine/available-context.js.map +1 -0
  78. package/dist/engine/condition-evaluator.d.ts +13 -0
  79. package/dist/engine/condition-evaluator.d.ts.map +1 -0
  80. package/dist/engine/condition-evaluator.js +92 -0
  81. package/dist/engine/condition-evaluator.js.map +1 -0
  82. package/dist/engine/config-validator.d.ts +25 -0
  83. package/dist/engine/config-validator.d.ts.map +1 -0
  84. package/dist/engine/config-validator.js +316 -0
  85. package/dist/engine/config-validator.js.map +1 -0
  86. package/dist/engine/pause-step.d.ts +20 -0
  87. package/dist/engine/pause-step.d.ts.map +1 -0
  88. package/dist/engine/pause-step.js +24 -0
  89. package/dist/engine/pause-step.js.map +1 -0
  90. package/dist/engine/service-registry.d.ts +49 -0
  91. package/dist/engine/service-registry.d.ts.map +1 -0
  92. package/dist/engine/service-registry.js +76 -0
  93. package/dist/engine/service-registry.js.map +1 -0
  94. package/dist/engine/variable-resolver.d.ts +29 -0
  95. package/dist/engine/variable-resolver.d.ts.map +1 -0
  96. package/dist/engine/variable-resolver.js +130 -0
  97. package/dist/engine/variable-resolver.js.map +1 -0
  98. package/dist/engine/workflow-executor.d.ts +96 -0
  99. package/dist/engine/workflow-executor.d.ts.map +1 -0
  100. package/dist/engine/workflow-executor.js +837 -0
  101. package/dist/engine/workflow-executor.js.map +1 -0
  102. package/dist/index.d.ts +57 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +56 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/persistence/in-memory-adapter.d.ts +138 -0
  107. package/dist/persistence/in-memory-adapter.d.ts.map +1 -0
  108. package/dist/persistence/in-memory-adapter.js +315 -0
  109. package/dist/persistence/in-memory-adapter.js.map +1 -0
  110. package/dist/persistence/types.d.ts +214 -0
  111. package/dist/persistence/types.d.ts.map +1 -0
  112. package/dist/persistence/types.js +8 -0
  113. package/dist/persistence/types.js.map +1 -0
  114. package/dist/router/types.d.ts +57 -0
  115. package/dist/router/types.d.ts.map +1 -0
  116. package/dist/router/types.js +8 -0
  117. package/dist/router/types.js.map +1 -0
  118. package/dist/router/workflow-router.d.ts +26 -0
  119. package/dist/router/workflow-router.d.ts.map +1 -0
  120. package/dist/router/workflow-router.js +611 -0
  121. package/dist/router/workflow-router.js.map +1 -0
  122. package/dist/runtime/execution-event-bus.d.ts +38 -0
  123. package/dist/runtime/execution-event-bus.d.ts.map +1 -0
  124. package/dist/runtime/execution-event-bus.js +87 -0
  125. package/dist/runtime/execution-event-bus.js.map +1 -0
  126. package/dist/runtime/types.d.ts +129 -0
  127. package/dist/runtime/types.d.ts.map +1 -0
  128. package/dist/runtime/types.js +5 -0
  129. package/dist/runtime/types.js.map +1 -0
  130. package/dist/runtime/workflow-runtime.d.ts +256 -0
  131. package/dist/runtime/workflow-runtime.d.ts.map +1 -0
  132. package/dist/runtime/workflow-runtime.js +699 -0
  133. package/dist/runtime/workflow-runtime.js.map +1 -0
  134. package/dist/steps/base-step.d.ts +204 -0
  135. package/dist/steps/base-step.d.ts.map +1 -0
  136. package/dist/steps/base-step.js +69 -0
  137. package/dist/steps/base-step.js.map +1 -0
  138. package/dist/steps/builtin/code.step.d.ts +95 -0
  139. package/dist/steps/builtin/code.step.d.ts.map +1 -0
  140. package/dist/steps/builtin/code.step.js +122 -0
  141. package/dist/steps/builtin/code.step.js.map +1 -0
  142. package/dist/steps/builtin/conditional.step.d.ts +146 -0
  143. package/dist/steps/builtin/conditional.step.d.ts.map +1 -0
  144. package/dist/steps/builtin/conditional.step.js +71 -0
  145. package/dist/steps/builtin/conditional.step.js.map +1 -0
  146. package/dist/steps/builtin/dedup.step.d.ts +65 -0
  147. package/dist/steps/builtin/dedup.step.d.ts.map +1 -0
  148. package/dist/steps/builtin/dedup.step.js +61 -0
  149. package/dist/steps/builtin/dedup.step.js.map +1 -0
  150. package/dist/steps/builtin/http-request.step.d.ts +928 -0
  151. package/dist/steps/builtin/http-request.step.d.ts.map +1 -0
  152. package/dist/steps/builtin/http-request.step.js +570 -0
  153. package/dist/steps/builtin/http-request.step.js.map +1 -0
  154. package/dist/steps/builtin/loop.step.d.ts +100 -0
  155. package/dist/steps/builtin/loop.step.d.ts.map +1 -0
  156. package/dist/steps/builtin/loop.step.js +79 -0
  157. package/dist/steps/builtin/loop.step.js.map +1 -0
  158. package/dist/steps/builtin/parallel.step.d.ts +208 -0
  159. package/dist/steps/builtin/parallel.step.d.ts.map +1 -0
  160. package/dist/steps/builtin/parallel.step.js +249 -0
  161. package/dist/steps/builtin/parallel.step.js.map +1 -0
  162. package/dist/steps/builtin/switch.step.d.ts +200 -0
  163. package/dist/steps/builtin/switch.step.d.ts.map +1 -0
  164. package/dist/steps/builtin/switch.step.js +92 -0
  165. package/dist/steps/builtin/switch.step.js.map +1 -0
  166. package/dist/steps/builtin/transform.step.d.ts +247 -0
  167. package/dist/steps/builtin/transform.step.d.ts.map +1 -0
  168. package/dist/steps/builtin/transform.step.js +135 -0
  169. package/dist/steps/builtin/transform.step.js.map +1 -0
  170. package/dist/steps/builtin/wait.step.d.ts +921 -0
  171. package/dist/steps/builtin/wait.step.d.ts.map +1 -0
  172. package/dist/steps/builtin/wait.step.js +211 -0
  173. package/dist/steps/builtin/wait.step.js.map +1 -0
  174. package/dist/steps/step-registry.d.ts +64 -0
  175. package/dist/steps/step-registry.d.ts.map +1 -0
  176. package/dist/steps/step-registry.js +102 -0
  177. package/dist/steps/step-registry.js.map +1 -0
  178. package/dist/storage/in-memory-adapter.d.ts +25 -0
  179. package/dist/storage/in-memory-adapter.d.ts.map +1 -0
  180. package/dist/storage/in-memory-adapter.js +41 -0
  181. package/dist/storage/in-memory-adapter.js.map +1 -0
  182. package/dist/storage/types.d.ts +53 -0
  183. package/dist/storage/types.d.ts.map +1 -0
  184. package/dist/storage/types.js +13 -0
  185. package/dist/storage/types.js.map +1 -0
  186. package/dist/testing/index.d.ts +10 -0
  187. package/dist/testing/index.d.ts.map +1 -0
  188. package/dist/testing/index.js +10 -0
  189. package/dist/testing/index.js.map +1 -0
  190. package/dist/testing/mock-context.d.ts +13 -0
  191. package/dist/testing/mock-context.d.ts.map +1 -0
  192. package/dist/testing/mock-context.js +21 -0
  193. package/dist/testing/mock-context.js.map +1 -0
  194. package/dist/testing/mock-step-context.d.ts +47 -0
  195. package/dist/testing/mock-step-context.d.ts.map +1 -0
  196. package/dist/testing/mock-step-context.js +59 -0
  197. package/dist/testing/mock-step-context.js.map +1 -0
  198. package/dist/triggers/base-trigger.d.ts +58 -0
  199. package/dist/triggers/base-trigger.d.ts.map +1 -0
  200. package/dist/triggers/base-trigger.js +37 -0
  201. package/dist/triggers/base-trigger.js.map +1 -0
  202. package/dist/triggers/builtin/default-cron-trigger.d.ts +44 -0
  203. package/dist/triggers/builtin/default-cron-trigger.d.ts.map +1 -0
  204. package/dist/triggers/builtin/default-cron-trigger.js +31 -0
  205. package/dist/triggers/builtin/default-cron-trigger.js.map +1 -0
  206. package/dist/triggers/builtin/default-event-trigger.d.ts +32 -0
  207. package/dist/triggers/builtin/default-event-trigger.d.ts.map +1 -0
  208. package/dist/triggers/builtin/default-event-trigger.js +21 -0
  209. package/dist/triggers/builtin/default-event-trigger.js.map +1 -0
  210. package/dist/triggers/builtin/default-manual-trigger.d.ts +119 -0
  211. package/dist/triggers/builtin/default-manual-trigger.d.ts.map +1 -0
  212. package/dist/triggers/builtin/default-manual-trigger.js +64 -0
  213. package/dist/triggers/builtin/default-manual-trigger.js.map +1 -0
  214. package/dist/triggers/builtin/default-webhook-trigger.d.ts +72 -0
  215. package/dist/triggers/builtin/default-webhook-trigger.d.ts.map +1 -0
  216. package/dist/triggers/builtin/default-webhook-trigger.js +91 -0
  217. package/dist/triggers/builtin/default-webhook-trigger.js.map +1 -0
  218. package/dist/triggers/cron-trigger.d.ts +52 -0
  219. package/dist/triggers/cron-trigger.d.ts.map +1 -0
  220. package/dist/triggers/cron-trigger.js +15 -0
  221. package/dist/triggers/cron-trigger.js.map +1 -0
  222. package/dist/triggers/event-trigger.d.ts +14 -0
  223. package/dist/triggers/event-trigger.d.ts.map +1 -0
  224. package/dist/triggers/event-trigger.js +13 -0
  225. package/dist/triggers/event-trigger.js.map +1 -0
  226. package/dist/triggers/manual-trigger.d.ts +11 -0
  227. package/dist/triggers/manual-trigger.d.ts.map +1 -0
  228. package/dist/triggers/manual-trigger.js +10 -0
  229. package/dist/triggers/manual-trigger.js.map +1 -0
  230. package/dist/triggers/trigger-registry.d.ts +48 -0
  231. package/dist/triggers/trigger-registry.d.ts.map +1 -0
  232. package/dist/triggers/trigger-registry.js +81 -0
  233. package/dist/triggers/trigger-registry.js.map +1 -0
  234. package/dist/triggers/webhook-trigger.d.ts +54 -0
  235. package/dist/triggers/webhook-trigger.d.ts.map +1 -0
  236. package/dist/triggers/webhook-trigger.js +13 -0
  237. package/dist/triggers/webhook-trigger.js.map +1 -0
  238. package/dist/types/attachment.d.ts +23 -0
  239. package/dist/types/attachment.d.ts.map +1 -0
  240. package/dist/types/attachment.js +2 -0
  241. package/dist/types/attachment.js.map +1 -0
  242. package/dist/types/categories.d.ts +14 -0
  243. package/dist/types/categories.d.ts.map +1 -0
  244. package/dist/types/categories.js +10 -0
  245. package/dist/types/categories.js.map +1 -0
  246. package/dist/types/context.d.ts +61 -0
  247. package/dist/types/context.d.ts.map +1 -0
  248. package/dist/types/context.js +2 -0
  249. package/dist/types/context.js.map +1 -0
  250. package/dist/types/index.d.ts +18 -0
  251. package/dist/types/index.d.ts.map +1 -0
  252. package/dist/types/index.js +12 -0
  253. package/dist/types/index.js.map +1 -0
  254. package/dist/types/known-types.d.ts +34 -0
  255. package/dist/types/known-types.d.ts.map +1 -0
  256. package/dist/types/known-types.js +49 -0
  257. package/dist/types/known-types.js.map +1 -0
  258. package/dist/types/operators.d.ts +20 -0
  259. package/dist/types/operators.d.ts.map +1 -0
  260. package/dist/types/operators.js +27 -0
  261. package/dist/types/operators.js.map +1 -0
  262. package/dist/types/pause-path.d.ts +23 -0
  263. package/dist/types/pause-path.d.ts.map +1 -0
  264. package/dist/types/pause-path.js +2 -0
  265. package/dist/types/pause-path.js.map +1 -0
  266. package/dist/types/pause-state.d.ts +100 -0
  267. package/dist/types/pause-state.d.ts.map +1 -0
  268. package/dist/types/pause-state.js +15 -0
  269. package/dist/types/pause-state.js.map +1 -0
  270. package/dist/types/resume-payload.d.ts +34 -0
  271. package/dist/types/resume-payload.d.ts.map +1 -0
  272. package/dist/types/resume-payload.js +12 -0
  273. package/dist/types/resume-payload.js.map +1 -0
  274. package/dist/types/status.d.ts +27 -0
  275. package/dist/types/status.d.ts.map +1 -0
  276. package/dist/types/status.js +41 -0
  277. package/dist/types/status.js.map +1 -0
  278. package/dist/types/step-events.d.ts +22 -0
  279. package/dist/types/step-events.d.ts.map +1 -0
  280. package/dist/types/step-events.js +8 -0
  281. package/dist/types/step-events.js.map +1 -0
  282. package/dist/types/step-types.d.ts +12 -0
  283. package/dist/types/step-types.d.ts.map +1 -0
  284. package/dist/types/step-types.js +2 -0
  285. package/dist/types/step-types.js.map +1 -0
  286. package/dist/types/trigger-types.d.ts +12 -0
  287. package/dist/types/trigger-types.d.ts.map +1 -0
  288. package/dist/types/trigger-types.js +2 -0
  289. package/dist/types/trigger-types.js.map +1 -0
  290. package/dist/types/validation.d.ts +19 -0
  291. package/dist/types/validation.d.ts.map +1 -0
  292. package/dist/types/validation.js +11 -0
  293. package/dist/types/validation.js.map +1 -0
  294. package/dist/types/workflow-config.d.ts +122 -0
  295. package/dist/types/workflow-config.d.ts.map +1 -0
  296. package/dist/types/workflow-config.js +71 -0
  297. package/dist/types/workflow-config.js.map +1 -0
  298. package/dist/util/executable-check.d.ts +42 -0
  299. package/dist/util/executable-check.d.ts.map +1 -0
  300. package/dist/util/executable-check.js +115 -0
  301. package/dist/util/executable-check.js.map +1 -0
  302. package/dist/util/schema-convert.d.ts +14 -0
  303. package/dist/util/schema-convert.d.ts.map +1 -0
  304. package/dist/util/schema-convert.js +16 -0
  305. package/dist/util/schema-convert.js.map +1 -0
  306. package/dist/util/variable-ref.d.ts +52 -0
  307. package/dist/util/variable-ref.d.ts.map +1 -0
  308. package/dist/util/variable-ref.js +89 -0
  309. package/dist/util/variable-ref.js.map +1 -0
  310. package/package.json +97 -0
@@ -0,0 +1,38 @@
1
+ /**
2
+ * ExecutionEventBus — in-memory pub/sub for execution stream events.
3
+ *
4
+ * The executor emits events at state transitions (step started/completed/failed,
5
+ * execution paused/completed/failed). The SSE route subscribes per-executionId
6
+ * and streams them to the client.
7
+ */
8
+ import type { ExecutionStreamEvent } from './types.js';
9
+ type EventCallback = (event: ExecutionStreamEvent) => void;
10
+ export declare class ExecutionEventBus {
11
+ private readonly listeners;
12
+ /**
13
+ * Subscribe to events for a specific execution.
14
+ * Returns an unsubscribe function.
15
+ */
16
+ subscribe(executionId: string, cb: EventCallback): () => void;
17
+ /**
18
+ * Emit an event to all listeners for the given execution.
19
+ */
20
+ emit(executionId: string, event: ExecutionStreamEvent): void;
21
+ }
22
+ /**
23
+ * Bridges push-based event bus callbacks to an AsyncIterable.
24
+ *
25
+ * Usage:
26
+ * const ch = createEventChannel<ExecutionStreamEvent>();
27
+ * const unsub = eventBus.subscribe(execId, ch.push);
28
+ * for await (const event of ch) { ... }
29
+ * ch.end(); // terminates the iterator
30
+ */
31
+ export interface EventChannel<T> {
32
+ push: (value: T) => void;
33
+ end: () => void;
34
+ [Symbol.asyncIterator](): AsyncIterator<T>;
35
+ }
36
+ export declare function createEventChannel<T>(): EventChannel<T>;
37
+ export {};
38
+ //# sourceMappingURL=execution-event-bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-event-bus.d.ts","sourceRoot":"","sources":["../../src/runtime/execution-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAE3D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IAEnE;;;OAGG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,GAAG,MAAM,IAAI;IAgB7D;;OAEG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI;CAW7D;AAID;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;CAC5C;AAED,wBAAgB,kBAAkB,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CA0CvD"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * ExecutionEventBus — in-memory pub/sub for execution stream events.
3
+ *
4
+ * The executor emits events at state transitions (step started/completed/failed,
5
+ * execution paused/completed/failed). The SSE route subscribes per-executionId
6
+ * and streams them to the client.
7
+ */
8
+ export class ExecutionEventBus {
9
+ listeners = new Map();
10
+ /**
11
+ * Subscribe to events for a specific execution.
12
+ * Returns an unsubscribe function.
13
+ */
14
+ subscribe(executionId, cb) {
15
+ let set = this.listeners.get(executionId);
16
+ if (!set) {
17
+ set = new Set();
18
+ this.listeners.set(executionId, set);
19
+ }
20
+ set.add(cb);
21
+ return () => {
22
+ set.delete(cb);
23
+ if (set.size === 0) {
24
+ this.listeners.delete(executionId);
25
+ }
26
+ };
27
+ }
28
+ /**
29
+ * Emit an event to all listeners for the given execution.
30
+ */
31
+ emit(executionId, event) {
32
+ const set = this.listeners.get(executionId);
33
+ if (!set)
34
+ return;
35
+ for (const cb of set) {
36
+ try {
37
+ cb(event);
38
+ }
39
+ catch {
40
+ // Never let a listener error break the executor
41
+ }
42
+ }
43
+ }
44
+ }
45
+ export function createEventChannel() {
46
+ const queue = [];
47
+ let resolve = null;
48
+ let done = false;
49
+ return {
50
+ push(value) {
51
+ if (done)
52
+ return;
53
+ if (resolve) {
54
+ const r = resolve;
55
+ resolve = null;
56
+ r({ value, done: false });
57
+ }
58
+ else {
59
+ queue.push(value);
60
+ }
61
+ },
62
+ end() {
63
+ done = true;
64
+ if (resolve) {
65
+ const r = resolve;
66
+ resolve = null;
67
+ r({ value: undefined, done: true });
68
+ }
69
+ },
70
+ [Symbol.asyncIterator]() {
71
+ return {
72
+ next() {
73
+ if (queue.length > 0) {
74
+ return Promise.resolve({ value: queue.shift(), done: false });
75
+ }
76
+ if (done) {
77
+ return Promise.resolve({ value: undefined, done: true });
78
+ }
79
+ return new Promise((r) => {
80
+ resolve = r;
81
+ });
82
+ },
83
+ };
84
+ },
85
+ };
86
+ }
87
+ //# sourceMappingURL=execution-event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-event-bus.js","sourceRoot":"","sources":["../../src/runtime/execution-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,OAAO,iBAAiB;IACX,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEnE;;;OAGG;IACH,SAAS,CAAC,WAAmB,EAAE,EAAiB;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACf,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,WAAmB,EAAE,KAA2B;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,EAAE,CAAC,KAAK,CAAC,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAmBD,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,OAAO,GAAiD,IAAI,CAAC;IACjE,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,OAAO;QACL,IAAI,CAAC,KAAQ;YACX,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,OAAO,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,GAAG;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,OAAO,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,CAAC,CAAC,EAAE,KAAK,EAAE,SAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,OAAO;gBACL,IAAI;oBACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACjE,CAAC;oBACD,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChE,CAAC;oBACD,OAAO,IAAI,OAAO,CAAoB,CAAC,CAAC,EAAE,EAAE;wBAC1C,OAAO,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Types for the WorkflowRuntime orchestrator.
3
+ */
4
+ import type { PersistenceAdapter, QueueAdapter, SchedulerAdapter } from '../persistence/types.js';
5
+ import type { StepRegistry } from '../steps/step-registry.js';
6
+ import type { TriggerRegistry } from '../triggers/trigger-registry.js';
7
+ import type { WorkflowExecutor, ExecutorLogger } from '../engine/workflow-executor.js';
8
+ import type { ServiceRegistry } from '../engine/service-registry.js';
9
+ import type { StorageAdapter } from '../storage/types.js';
10
+ import type { ExecutionEventBus } from './execution-event-bus.js';
11
+ export type ExecutionResult = {
12
+ status: 'completed';
13
+ } | {
14
+ status: 'paused';
15
+ reason: string;
16
+ externalRef?: string;
17
+ } | {
18
+ status: 'failed';
19
+ error: string;
20
+ } | {
21
+ status: 'skipped';
22
+ reason: string;
23
+ } | {
24
+ status: 'not_found';
25
+ };
26
+ /**
27
+ * Scalar runtime settings — host policy knobs grouped under one bag so the
28
+ * top-level constructor signature stays focused on adapters and registries.
29
+ *
30
+ * All fields optional with sensible defaults; pass an empty `{}` or omit
31
+ * `config` entirely to accept them.
32
+ */
33
+ export interface RuntimeConfig {
34
+ /** Base URL for webhook URL generation (e.g. 'https://api.example.com'). Default: `''`. */
35
+ baseUrl?: string;
36
+ /**
37
+ * IANA timezone string applied to every cron-triggered workflow scheduled
38
+ * by this runtime. Cron triggers don't expose timezone to workflow authors —
39
+ * every cron job in a deployment runs against this single zone.
40
+ * Default: `'Asia/Kolkata'`.
41
+ */
42
+ defaultCronTimezone?: string;
43
+ /**
44
+ * Allow uploads of files with executable MIME types / extensions
45
+ * (.exe, .dll, .sh, .jar, .docm, etc). The upload route rejects them at
46
+ * the perimeter unless this is `true`. Default: `false`.
47
+ */
48
+ allowExecutableUploads?: boolean;
49
+ }
50
+ export interface RuntimeOptions<TServices extends Record<string, unknown> = Record<string, unknown>> {
51
+ persistence: PersistenceAdapter;
52
+ queue: QueueAdapter;
53
+ scheduler: SchedulerAdapter;
54
+ services: ServiceRegistry<TServices>;
55
+ steps: StepRegistry;
56
+ triggers: TriggerRegistry;
57
+ executor: WorkflowExecutor<TServices>;
58
+ /**
59
+ * Optional storage adapter for file attachments. Required if any workflow
60
+ * uses the trigger `attachments` slot or accepts attachments in resume
61
+ * payloads. Routes that need storage will return 501 if it's omitted.
62
+ */
63
+ storage?: StorageAdapter;
64
+ /** Event bus for real-time SSE streaming of execution events. */
65
+ eventBus?: ExecutionEventBus;
66
+ logger?: ExecutorLogger;
67
+ config?: RuntimeConfig;
68
+ }
69
+ export interface DispatchEventInput {
70
+ type: string;
71
+ payload: Record<string, unknown>;
72
+ /** Host metadata — passed to persistence.findActiveWorkflows(). */
73
+ metadata: Record<string, unknown>;
74
+ }
75
+ import type { ResumePayload } from '../common/resume-payload.js';
76
+ export interface ResumeInput {
77
+ /** Resume payload submitted by the host UI. */
78
+ data?: ResumePayload;
79
+ /**
80
+ * If true, the execution is aborted rather than continued. Equivalent to
81
+ * `data: { action: 'abort' }` — kept as a top-level convenience.
82
+ */
83
+ abort?: boolean;
84
+ }
85
+ import type { PauseState } from '../types/pause-state.js';
86
+ export type ExecutionStreamEvent = {
87
+ event: 'step_started';
88
+ data: {
89
+ stepName: string;
90
+ stepType: string;
91
+ };
92
+ } | {
93
+ event: 'step_completed';
94
+ data: {
95
+ stepName: string;
96
+ output: Record<string, unknown>;
97
+ };
98
+ } | {
99
+ event: 'step_failed';
100
+ data: {
101
+ stepName: string;
102
+ error: string;
103
+ };
104
+ } | {
105
+ event: 'step_progress';
106
+ data: {
107
+ stepName: string;
108
+ } & Record<string, unknown>;
109
+ } | {
110
+ event: 'execution_paused';
111
+ data: {
112
+ stepName: string;
113
+ pauseState: PauseState;
114
+ };
115
+ } | {
116
+ event: 'execution_completed';
117
+ data: {
118
+ status: string;
119
+ };
120
+ } | {
121
+ event: 'execution_failed';
122
+ data: {
123
+ error: string;
124
+ };
125
+ } | {
126
+ event: 'execution_cancelled';
127
+ data: Record<string, unknown>;
128
+ };
129
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Types for the WorkflowRuntime orchestrator.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,256 @@
1
+ /**
2
+ * WorkflowRuntime — the central orchestrator.
3
+ *
4
+ * Ties together: persistence, queue, scheduler, executor, triggers, and steps.
5
+ * The host creates one runtime instance and uses it for all workflow operations:
6
+ *
7
+ * - Activate/deactivate triggers (cron, webhook)
8
+ * - Dispatch domain events → matching workflows
9
+ * - Handle incoming webhooks
10
+ * - Fire manual triggers
11
+ * - Resume paused executions
12
+ * - Process queued jobs (the worker loop body)
13
+ */
14
+ import type { RuntimeOptions, DispatchEventInput, ResumeInput, ExecutionResult } from './types.js';
15
+ import type { ExecutionEventBus } from './execution-event-bus.js';
16
+ import type { WorkflowConfig } from '../types/workflow-config.js';
17
+ import type { ValidationResult } from '../types/validation.js';
18
+ import type { WorkflowRecord, ExecutionRecord, StepRecord, WorkflowCallbackRecord } from '../persistence/types.js';
19
+ import type { StorageAdapter } from '../storage/types.js';
20
+ import type { Attachment } from '../common/attachment.js';
21
+ import type { StepRegistry } from '../steps/step-registry.js';
22
+ import type { TriggerRegistry } from '../triggers/trigger-registry.js';
23
+ import type { WebhookRequest } from '../triggers/webhook-trigger.js';
24
+ export declare class WorkflowRuntime<TServices extends Record<string, unknown> = Record<string, unknown>> {
25
+ private readonly persistence;
26
+ private readonly queue;
27
+ private readonly scheduler;
28
+ private readonly services;
29
+ readonly steps: StepRegistry;
30
+ readonly triggers: TriggerRegistry;
31
+ private readonly executor;
32
+ private readonly log;
33
+ private readonly baseUrl;
34
+ /** Event bus for real-time SSE streaming. Exposed for the router. */
35
+ readonly eventBus?: ExecutionEventBus | undefined;
36
+ /** Storage adapter for file attachments. Exposed for the router. */
37
+ readonly storage?: StorageAdapter | undefined;
38
+ /** When true, the upload route accepts executable MIME types / extensions. */
39
+ readonly allowExecutableUploads: boolean;
40
+ /** IANA timezone applied to every cron-triggered workflow. */
41
+ readonly defaultCronTimezone: string;
42
+ constructor(opts: RuntimeOptions<TServices>);
43
+ /**
44
+ * Validate a workflow config before saving.
45
+ *
46
+ * The host's save handler should call this and reject the save if
47
+ * `result.valid` is false. Returns structured issues the frontend
48
+ * can render inline in the workflow builder.
49
+ */
50
+ validateConfig(config: WorkflowConfig): ValidationResult;
51
+ /**
52
+ * Activate a workflow's trigger.
53
+ *
54
+ * - WebhookTrigger: generates a unique path, stores it, calls onActivate()
55
+ * - CronTrigger: registers with the scheduler
56
+ * - EventTrigger / ManualTrigger: no activation needed (status change only)
57
+ */
58
+ activateWorkflow(workflowId: string): Promise<void>;
59
+ /**
60
+ * Deactivate a workflow's trigger.
61
+ */
62
+ deactivateWorkflow(workflowId: string): Promise<void>;
63
+ /**
64
+ * Lazy-allocate the workflow's stable wait-callback secret. Idempotent —
65
+ * if a secret already exists, returns the existing record.
66
+ *
67
+ * Host calls this when saving a workflow that uses wait-step webhook
68
+ * mode, then surfaces the URL in the UI so the author can paste it into
69
+ * the external system's configuration.
70
+ */
71
+ ensureWorkflowCallback(workflowId: string): Promise<WorkflowCallbackRecord>;
72
+ /**
73
+ * Rotate the workflow's wait-callback secret. The old URL stops working
74
+ * immediately. Author has to update external configurations.
75
+ */
76
+ rotateWorkflowCallback(workflowId: string): Promise<WorkflowCallbackRecord>;
77
+ /**
78
+ * Build the wait-callback URL template the author should paste into
79
+ * their external system. `{executionId}` is the placeholder the HTTP
80
+ * step substitutes via `{{ runtime.executionId }}`.
81
+ */
82
+ buildWaitCallbackUrl(secret: string, executionId?: string): string;
83
+ /**
84
+ * Dispatch a domain event. Finds all active workflows that match,
85
+ * hydrates payloads, applies filters, and enqueues executions.
86
+ *
87
+ * Returns the execution IDs that were created.
88
+ */
89
+ dispatchEvent(event: DispatchEventInput): Promise<string[]>;
90
+ /**
91
+ * Handle an incoming webhook request.
92
+ *
93
+ * Looks up the workflow by webhook path, delegates to the trigger's
94
+ * `handleRequest()`, and enqueues an execution.
95
+ */
96
+ handleWebhook(path: string, request: WebhookRequest): Promise<{
97
+ executionId: string;
98
+ httpResponse: {
99
+ status: number;
100
+ headers?: Record<string, string>;
101
+ body?: unknown;
102
+ };
103
+ }>;
104
+ /**
105
+ * Handle an incoming wait-callback at `POST /wait/callback/<secret>/<executionId>`.
106
+ *
107
+ * The `secret` is the workflow's stable callback secret (generated at
108
+ * workflow create). The `executionId` is the in-flight execution that
109
+ * paused on a wait-webhook step — the workflow's HTTP step interpolated
110
+ * it into the URL it gave the external system via
111
+ * `{{ runtime.executionId }}`.
112
+ *
113
+ * Validation:
114
+ * 1. Secret resolves to a workflow (404 on miss, same hash-map security
115
+ * as trigger webhooks — wrong/unknown secrets are indistinguishable).
116
+ * 2. Execution exists, is EXTERNAL_WAIT, and belongs to that workflow
117
+ * (404 otherwise; same 404 so attackers can't probe for valid
118
+ * execution IDs by guessing).
119
+ *
120
+ * On success, the callback body becomes the resume payload and the
121
+ * execution is re-enqueued. The wait step's `onResume` sees it as
122
+ * `resumeData`.
123
+ */
124
+ handleWaitCallback(secret: string, executionId: string, body: unknown): Promise<{
125
+ status: number;
126
+ body: unknown;
127
+ }>;
128
+ /**
129
+ * Fire a workflow manually via API.
130
+ *
131
+ * `attachments` is validated against the trigger's `attachments` config
132
+ * (mime accept-list, maxCount, required). Validated refs are merged into
133
+ * the trigger payload as `context.trigger.attachments`.
134
+ *
135
+ * Returns the execution ID.
136
+ */
137
+ triggerManual(workflowId: string, payload: Record<string, unknown>, attachments?: Attachment[]): Promise<string>;
138
+ /**
139
+ * Resume a paused execution.
140
+ *
141
+ * Stores the resume payload and re-enqueues the execution.
142
+ */
143
+ resume(executionId: string, input?: ResumeInput): Promise<void>;
144
+ /**
145
+ * Rerun a workflow from a specific step, using the source execution's
146
+ * cached outputs for all prior steps. Creates a new execution.
147
+ *
148
+ * Used for:
149
+ * - "Rerun from step N" — replay downstream with same upstream data
150
+ * - "Modify input and rerun" — pass `configOverrides` to change the
151
+ * entry step's input
152
+ * - Agent feedback after execution completed — pass `configOverrides`
153
+ * with new `userMessage`; agent receives `priorState.messages` and
154
+ * continues the conversation
155
+ *
156
+ * Returns the new execution ID.
157
+ */
158
+ rerunFromStep(sourceExecutionId: string, fromStepId: string, options?: {
159
+ configOverrides?: Record<string, unknown>;
160
+ inheritStepState?: boolean;
161
+ }): Promise<string>;
162
+ /**
163
+ * List all workflows visible to the given auth metadata.
164
+ */
165
+ listWorkflows(metadata: Record<string, unknown>): Promise<WorkflowRecord[]>;
166
+ /**
167
+ * Get a single workflow by ID.
168
+ */
169
+ getWorkflow(workflowId: string): Promise<WorkflowRecord | null>;
170
+ /**
171
+ * Create a new workflow definition.
172
+ *
173
+ * Validates the config, persists it, and optionally activates the trigger.
174
+ * Returns the created WorkflowRecord.
175
+ */
176
+ createWorkflow(input: {
177
+ name: string;
178
+ config: WorkflowConfig;
179
+ metadata?: Record<string, unknown>;
180
+ }): Promise<WorkflowRecord>;
181
+ /**
182
+ * Update an existing workflow definition.
183
+ *
184
+ * Accepts partial updates: config, metadata, or both.
185
+ * If config changes, validates it and updates the trigger type.
186
+ */
187
+ updateWorkflow(workflowId: string, input: {
188
+ name?: string;
189
+ config?: WorkflowConfig;
190
+ metadata?: Record<string, unknown>;
191
+ }): Promise<WorkflowRecord>;
192
+ /**
193
+ * List executions with optional filters and cursor pagination.
194
+ */
195
+ listExecutions(params: {
196
+ workflowId?: string;
197
+ status?: string;
198
+ limit?: number;
199
+ cursor?: string;
200
+ }): Promise<{
201
+ items: ExecutionRecord[];
202
+ nextCursor?: string;
203
+ }>;
204
+ /**
205
+ * Get execution detail including step records.
206
+ */
207
+ getExecutionDetail(executionId: string): Promise<{
208
+ execution: ExecutionRecord;
209
+ steps: StepRecord[];
210
+ config?: WorkflowConfig;
211
+ triggerData?: Record<string, unknown>;
212
+ } | null>;
213
+ /**
214
+ * Cancel a running or paused execution.
215
+ */
216
+ cancelExecution(executionId: string): Promise<void>;
217
+ /**
218
+ * List credentials visible to the given auth metadata.
219
+ */
220
+ listCredentials(metadata: Record<string, unknown>): Promise<Array<{
221
+ name: string;
222
+ type: string;
223
+ }>>;
224
+ /**
225
+ * Store a credential.
226
+ */
227
+ createCredential(metadata: Record<string, unknown>, name: string, credential: {
228
+ type: string;
229
+ data: Record<string, unknown>;
230
+ }): Promise<{
231
+ name: string;
232
+ type: string;
233
+ }>;
234
+ /**
235
+ * Delete a credential by name.
236
+ */
237
+ deleteCredential(metadata: Record<string, unknown>, name: string): Promise<void>;
238
+ /**
239
+ * The queue consumer body. The host's queue worker calls this for each job.
240
+ *
241
+ * ```ts
242
+ * workflowQueue.process((job) => runtime.processJob(job.data.executionId));
243
+ * ```
244
+ */
245
+ processJob(executionId: string): Promise<ExecutionResult>;
246
+ /**
247
+ * Process a cron tick for a workflow.
248
+ *
249
+ * Called by the scheduler when a cron job fires. Checks poll() if available,
250
+ * otherwise fires unconditionally.
251
+ */
252
+ processCronTick(workflowId: string): Promise<string | null>;
253
+ private createAndEnqueue;
254
+ private resolveCredentialsForTrigger;
255
+ }
256
+ //# sourceMappingURL=workflow-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/workflow-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,UAAU,EACV,sBAAsB,EAIvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAIvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AA0CrE,qBAAa,eAAe,CAC1B,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC9C,8EAA8E;IAC9E,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,8DAA8D;IAC9D,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;gBAEzB,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC;IAoB3C;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB;IAOxD;;;;;;OAMG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CzD;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC3D;;;;;;;OAOG;IACG,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAYjF;;;OAGG;IACG,sBAAsB,CAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IAIlC;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;IAOlE;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0CjE;;;;;OAKG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAAC,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACpF,CAAC;IA6CF;;;;;;;;;;;;;;;;;;;OAmBG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IA+BF;;;;;;;;OAQG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,WAAW,CAAC,EAAE,UAAU,EAAE,GACzB,OAAO,CAAC,MAAM,CAAC;IA0ClB;;;;OAIG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrE;;;;;;;;;;;;;OAaG;IACG,aAAa,CACjB,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GACA,OAAO,CAAC,MAAM,CAAC;IAYlB;;OAEG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,cAAc,EAAE,CAAC;IAI5B;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAIrE;;;;;OAKG;IACG,cAAc,CAAC,KAAK,EAAE;QAC1B,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,cAAc,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,cAAc,CAAC;IA8B3B;;;;;OAKG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GACA,OAAO,CAAC,cAAc,CAAC;IAyC1B;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE;QAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAI9D;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QACrD,SAAS,EAAE,eAAe,CAAC;QAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,GAAG,IAAI,CAAC;IAuCT;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezD;;OAEG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIjD;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC1D,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAK1C;;OAEG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAMhB;;;;;;OAMG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2C/D;;;;;OAKG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YA6CnD,gBAAgB;YA6BhB,4BAA4B;CAoB3C"}