@auto-engineer/pipeline 1.64.0 → 1.66.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 (120) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +140 -0
  3. package/dist/src/builder/define-v2.d.ts +101 -0
  4. package/dist/src/builder/define-v2.d.ts.map +1 -0
  5. package/dist/src/builder/define-v2.js +209 -0
  6. package/dist/src/builder/define-v2.js.map +1 -0
  7. package/dist/src/engine/command-dispatcher.d.ts +31 -0
  8. package/dist/src/engine/command-dispatcher.d.ts.map +1 -0
  9. package/dist/src/engine/command-dispatcher.js +26 -0
  10. package/dist/src/engine/command-dispatcher.js.map +1 -0
  11. package/dist/src/engine/event-router.d.ts +21 -0
  12. package/dist/src/engine/event-router.d.ts.map +1 -0
  13. package/dist/src/engine/event-router.js +22 -0
  14. package/dist/src/engine/event-router.js.map +1 -0
  15. package/dist/src/engine/index.d.ts +15 -0
  16. package/dist/src/engine/index.d.ts.map +1 -0
  17. package/dist/src/engine/index.js +15 -0
  18. package/dist/src/engine/index.js.map +1 -0
  19. package/dist/src/engine/pipeline-engine.d.ts +37 -0
  20. package/dist/src/engine/pipeline-engine.d.ts.map +1 -0
  21. package/dist/src/engine/pipeline-engine.js +53 -0
  22. package/dist/src/engine/pipeline-engine.js.map +1 -0
  23. package/dist/src/engine/projections/item-status.d.ts +9 -0
  24. package/dist/src/engine/projections/item-status.d.ts.map +1 -0
  25. package/dist/src/engine/projections/item-status.js +9 -0
  26. package/dist/src/engine/projections/item-status.js.map +1 -0
  27. package/dist/src/engine/projections/latest-run.d.ts +9 -0
  28. package/dist/src/engine/projections/latest-run.d.ts.map +1 -0
  29. package/dist/src/engine/projections/latest-run.js +9 -0
  30. package/dist/src/engine/projections/latest-run.js.map +1 -0
  31. package/dist/src/engine/projections/message-log.d.ts +9 -0
  32. package/dist/src/engine/projections/message-log.d.ts.map +1 -0
  33. package/dist/src/engine/projections/message-log.js +10 -0
  34. package/dist/src/engine/projections/message-log.js.map +1 -0
  35. package/dist/src/engine/projections/node-status.d.ts +9 -0
  36. package/dist/src/engine/projections/node-status.d.ts.map +1 -0
  37. package/dist/src/engine/projections/node-status.js +9 -0
  38. package/dist/src/engine/projections/node-status.js.map +1 -0
  39. package/dist/src/engine/projections/stats.d.ts +9 -0
  40. package/dist/src/engine/projections/stats.d.ts.map +1 -0
  41. package/dist/src/engine/projections/stats.js +9 -0
  42. package/dist/src/engine/projections/stats.js.map +1 -0
  43. package/dist/src/engine/sqlite-consumer.d.ts +11 -0
  44. package/dist/src/engine/sqlite-consumer.d.ts.map +1 -0
  45. package/dist/src/engine/sqlite-consumer.js +27 -0
  46. package/dist/src/engine/sqlite-consumer.js.map +1 -0
  47. package/dist/src/engine/sqlite-store.d.ts +10 -0
  48. package/dist/src/engine/sqlite-store.d.ts.map +1 -0
  49. package/dist/src/engine/sqlite-store.js +14 -0
  50. package/dist/src/engine/sqlite-store.js.map +1 -0
  51. package/dist/src/engine/workflow-processor.d.ts +20 -0
  52. package/dist/src/engine/workflow-processor.d.ts.map +1 -0
  53. package/dist/src/engine/workflow-processor.js +36 -0
  54. package/dist/src/engine/workflow-processor.js.map +1 -0
  55. package/dist/src/engine/workflows/await-workflow.d.ts +33 -0
  56. package/dist/src/engine/workflows/await-workflow.d.ts.map +1 -0
  57. package/dist/src/engine/workflows/await-workflow.js +45 -0
  58. package/dist/src/engine/workflows/await-workflow.js.map +1 -0
  59. package/dist/src/engine/workflows/phased-workflow.d.ts +64 -0
  60. package/dist/src/engine/workflows/phased-workflow.d.ts.map +1 -0
  61. package/dist/src/engine/workflows/phased-workflow.js +103 -0
  62. package/dist/src/engine/workflows/phased-workflow.js.map +1 -0
  63. package/dist/src/engine/workflows/settled-workflow.d.ts +62 -0
  64. package/dist/src/engine/workflows/settled-workflow.d.ts.map +1 -0
  65. package/dist/src/engine/workflows/settled-workflow.js +92 -0
  66. package/dist/src/engine/workflows/settled-workflow.js.map +1 -0
  67. package/dist/src/graph/types.d.ts +1 -1
  68. package/dist/src/graph/types.d.ts.map +1 -1
  69. package/dist/src/index.d.ts +2 -0
  70. package/dist/src/index.d.ts.map +1 -1
  71. package/dist/src/index.js +2 -0
  72. package/dist/src/index.js.map +1 -1
  73. package/dist/src/server/pipeline-server-v2.d.ts +48 -0
  74. package/dist/src/server/pipeline-server-v2.d.ts.map +1 -0
  75. package/dist/src/server/pipeline-server-v2.js +61 -0
  76. package/dist/src/server/pipeline-server-v2.js.map +1 -0
  77. package/dist/src/server/pipeline-server.d.ts +5 -1
  78. package/dist/src/server/pipeline-server.d.ts.map +1 -1
  79. package/dist/src/server/pipeline-server.js +71 -10
  80. package/dist/src/server/pipeline-server.js.map +1 -1
  81. package/dist/tsconfig.tsbuildinfo +1 -1
  82. package/ketchup-plan.md +13 -0
  83. package/package.json +3 -3
  84. package/src/builder/define-v2.specs.ts +236 -0
  85. package/src/builder/define-v2.ts +351 -0
  86. package/src/engine/command-dispatcher.specs.ts +62 -0
  87. package/src/engine/command-dispatcher.ts +46 -0
  88. package/src/engine/event-router.specs.ts +75 -0
  89. package/src/engine/event-router.ts +36 -0
  90. package/src/engine/index.ts +39 -0
  91. package/src/engine/pipeline-engine-e2e.specs.ts +776 -0
  92. package/src/engine/pipeline-engine.integration.specs.ts +126 -0
  93. package/src/engine/pipeline-engine.specs.ts +70 -0
  94. package/src/engine/pipeline-engine.ts +82 -0
  95. package/src/engine/projections/item-status.ts +11 -0
  96. package/src/engine/projections/latest-run.ts +10 -0
  97. package/src/engine/projections/message-log.ts +11 -0
  98. package/src/engine/projections/node-status.ts +10 -0
  99. package/src/engine/projections/projections.specs.ts +176 -0
  100. package/src/engine/projections/stats.ts +10 -0
  101. package/src/engine/sqlite-consumer.specs.ts +42 -0
  102. package/src/engine/sqlite-consumer.ts +34 -0
  103. package/src/engine/sqlite-store.specs.ts +46 -0
  104. package/src/engine/sqlite-store.ts +21 -0
  105. package/src/engine/workflow-processor.specs.ts +37 -0
  106. package/src/engine/workflow-processor.ts +57 -0
  107. package/src/engine/workflows/await-workflow.specs.ts +104 -0
  108. package/src/engine/workflows/await-workflow.ts +66 -0
  109. package/src/engine/workflows/phased-workflow.specs.ts +383 -0
  110. package/src/engine/workflows/phased-workflow.ts +153 -0
  111. package/src/engine/workflows/settled-workflow.specs.ts +364 -0
  112. package/src/engine/workflows/settled-workflow.ts +139 -0
  113. package/src/graph/types.ts +1 -1
  114. package/src/index.ts +2 -0
  115. package/src/server/pipeline-server-v2.specs.ts +91 -0
  116. package/src/server/pipeline-server-v2.ts +70 -0
  117. package/src/server/pipeline-server.specs.ts +327 -134
  118. package/src/server/pipeline-server.ts +77 -11
  119. package/.turbo/turbo-test.log +0 -14
  120. package/.turbo/turbo-type-check.log +0 -4
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/pipeline@1.64.0 build /home/runner/work/auto-engineer/auto-engineer/packages/pipeline
2
+ > @auto-engineer/pipeline@1.66.0 build /Users/sam/code/auto/auto-engineer-fix/packages/pipeline
3
3
  > tsc && tsx ../../scripts/fix-esm-imports.ts
4
4
 
5
5
  Fixed ESM imports in dist/
package/CHANGELOG.md CHANGED
@@ -1,5 +1,145 @@
1
1
  # @auto-engineer/pipeline
2
2
 
3
+ ## 1.66.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 675ef99: - **pipeline**: settled decide returns SettledFailed when no retries left
8
+ - 3a2b8db: - **pipeline**: define-v2 toGraph() converts registrations to GraphIR
9
+ - 2934f85: - **pipeline**: createPipelineStore wraps SQLite event store
10
+ - b824630: - **pipeline**: session-based status tracking
11
+ - 3c013d7: - **pipeline**: settled decide returns RetryCommands on failure with retries left
12
+ - b0436c1: - **pipeline**: define-v2 on().emit() and on().handle() registrations
13
+ - 6cbae5c: - **pipeline**: settled decide returns [] when not all commands complete
14
+ - 34a0fd1: - **pipeline**: emit PipelineRestarted event on RestartPipeline command
15
+ - aa5cb13: - **pipeline**: settled workflow evolve tracks command starts and completions
16
+ - 5916594: - **pipeline**: parallelize emit mapping commands with Promise.all
17
+ - e44989c: - **pipeline**: sqlite consumer polls events in order from store
18
+ - bede5a3: - **pipeline**: engine projections wrap existing evolve functions for SQLite
19
+ - af1e4b6: - **packages/react-component-implementer**: fixes component generation
20
+ - **packages/generate-react-client**: fixes types
21
+ - **packages/generate-react-client**: improves starter
22
+ - **global**: version packages
23
+ - 00d3142: - **pipeline**: phased decide advances to next phase when current completes
24
+ - 0e9abee: - **pipeline**: pipeline server v2 with POST /command, GET /health, /registry, /events SSE
25
+ - 27c3b2a: - **pipeline**: pipeline engine wires dispatcher, router, and workflow processor
26
+ - 8002c21: - **pipeline**: event router dispatches commands for emit mappings
27
+ - 47ae70c: - **pipeline**: add SQLite persistence with dual-write and replay on startup
28
+ - 9e1658a: - **pipeline**: command dispatcher finds handler by command type
29
+ - 95399f7: - **pipeline**: settled decide returns AllSettled when all pass
30
+ - 1997734: - **pipeline**: dispatchAndStore appends command result events to store
31
+ - ea43b36: - **pipeline**: phased decide dispatches phase 0 commands on start
32
+ - 25dadc8: - **pipeline**: define-v2 .on().forEach().groupInto().process() produces PhasedRegistration
33
+ - 9d4d240: - **pipeline**: await workflow evolve tracks key completions
34
+ - f7c5dba: - **pipeline**: define-v2 .settled() produces SettledRegistration
35
+ - d6c7b68: - **pipeline**: await decide returns AwaitCompleted when all resolved
36
+ - bdc4728: - **pipeline**: createSettledWorkflow factory from DSL params
37
+
38
+ ### Patch Changes
39
+
40
+ - 613a84b: - Fixed incorrect indentation for .env and client entries in the typical example configuration
41
+ - b7739f4: - **pipeline**: integration tests for engine pipeline flow
42
+ - ba42186: - **pipeline**: mark all durable pipeline bursts done
43
+ - ab5f5cb: - **job-graph-processor**: verify ready jobs dispatch in parallel
44
+ - 68734cd: - **pipeline**: add replay bug reproduction e2e test
45
+ - 0d1bbff: - **pipeline**: add E2E test suite bursts to ketchup plan
46
+ - c418bbf: - **pipeline**: mark all E2E bursts complete in ketchup plan
47
+ - 7fecdac: - **pipeline**: add multi-archetype combined pipeline e2e test
48
+ - 75f7b31: - **pipeline**: add concurrency and non-blocking e2e tests
49
+ - 09bb123: - **pipeline**: add settled all-pass e2e test
50
+ - ef92bf1: - **pipeline**: add durable SQLite persistence bursts to plan
51
+ - cf0e26e: - **pipeline**: add graph visualization e2e test
52
+ - c5d3c0d: - **pipeline**: add await workflow e2e test
53
+ - 1c79ada: - **pipeline**: update ketchup plan — 44/48 bursts complete
54
+ - a3353c9: - **pipeline**: add parallel scatter-gather bursts P-1 to P-3
55
+ - e89fda3: - **pipeline**: mark session tracking bursts done in ketchup plan
56
+ - 19f89b4: - **pipeline**: add phased sequential execution e2e test
57
+ - a6a2567: - **pipeline**: add settled retry and failure e2e tests
58
+ - e1f9019: - **pipeline**: mark SQLite persistence bursts done in plan
59
+ - 5ca50f2: - **pipeline**: add ketchup plan for Emmett engine migration
60
+ - f5a1a84: - **pipeline**: add phased stopOnFailure e2e test
61
+ - 9da7fb4: - **pipeline**: add session-based status tracking bursts to ketchup plan
62
+ - f09beb4: - **job-graph-processor**: add parallel dispatch verification burst P-4
63
+ - fd92e76: - **pipeline**: settled scatter-gather runs checks in parallel
64
+ - 2a23265: - **pipeline**: add e2e test harness and emit chain tests
65
+ - 8561e33: - **pipeline**: add v2 pipeline exports to package barrel
66
+ - Updated dependencies [613a84b]
67
+ - Updated dependencies [b7739f4]
68
+ - Updated dependencies [ba42186]
69
+ - Updated dependencies [675ef99]
70
+ - Updated dependencies [ab5f5cb]
71
+ - Updated dependencies [68734cd]
72
+ - Updated dependencies [3a2b8db]
73
+ - Updated dependencies [0d1bbff]
74
+ - Updated dependencies [2934f85]
75
+ - Updated dependencies [c418bbf]
76
+ - Updated dependencies [b824630]
77
+ - Updated dependencies [7fecdac]
78
+ - Updated dependencies [3c013d7]
79
+ - Updated dependencies [b0436c1]
80
+ - Updated dependencies [75f7b31]
81
+ - Updated dependencies [09bb123]
82
+ - Updated dependencies [6cbae5c]
83
+ - Updated dependencies [ef92bf1]
84
+ - Updated dependencies [cf0e26e]
85
+ - Updated dependencies [34a0fd1]
86
+ - Updated dependencies [c5d3c0d]
87
+ - Updated dependencies [1c79ada]
88
+ - Updated dependencies [a3353c9]
89
+ - Updated dependencies [aa5cb13]
90
+ - Updated dependencies [e89fda3]
91
+ - Updated dependencies [19f89b4]
92
+ - Updated dependencies [5916594]
93
+ - Updated dependencies [a6a2567]
94
+ - Updated dependencies [e44989c]
95
+ - Updated dependencies [bede5a3]
96
+ - Updated dependencies [af1e4b6]
97
+ - Updated dependencies [e1f9019]
98
+ - Updated dependencies [00d3142]
99
+ - Updated dependencies [0e9abee]
100
+ - Updated dependencies [27c3b2a]
101
+ - Updated dependencies [5ca50f2]
102
+ - Updated dependencies [8002c21]
103
+ - Updated dependencies [47ae70c]
104
+ - Updated dependencies [f5a1a84]
105
+ - Updated dependencies [9e1658a]
106
+ - Updated dependencies [9da7fb4]
107
+ - Updated dependencies [95399f7]
108
+ - Updated dependencies [1997734]
109
+ - Updated dependencies [ea43b36]
110
+ - Updated dependencies [25dadc8]
111
+ - Updated dependencies [9d4d240]
112
+ - Updated dependencies [f09beb4]
113
+ - Updated dependencies [f7c5dba]
114
+ - Updated dependencies [fd92e76]
115
+ - Updated dependencies [2a23265]
116
+ - Updated dependencies [8561e33]
117
+ - Updated dependencies [d6c7b68]
118
+ - Updated dependencies [bdc4728]
119
+ - @auto-engineer/file-store@1.66.0
120
+ - @auto-engineer/message-bus@1.66.0
121
+
122
+ ## 1.65.0
123
+
124
+ ### Minor Changes
125
+
126
+ - [`bd14e09`](https://github.com/BeOnAuto/auto-engineer/commit/bd14e09fa399e218348a4d0f334bc3423106f64a) Thanks [@osamanar](https://github.com/osamanar)! - - Fixed component generation in the React component implementer
127
+
128
+ - [`f3a6b66`](https://github.com/BeOnAuto/auto-engineer/commit/f3a6b662a35ae480d58a42d5207cb51d1e9106de) Thanks [@osamanar](https://github.com/osamanar)! - - Improved the starter template for React client generation
129
+
130
+ - [`e4ed42d`](https://github.com/BeOnAuto/auto-engineer/commit/e4ed42dac98562148efc5ae293841c36efa6c5c7) Thanks [@osamanar](https://github.com/osamanar)! - - Fixed type definitions in the React client generator
131
+
132
+ ### Patch Changes
133
+
134
+ - [`d5c985a`](https://github.com/BeOnAuto/auto-engineer/commit/d5c985a1a4bcd256f6456ecb69d9523ae66c2352) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-generator-apollo-emmett**: remove stale QuestionnaireProgressStatus enum
135
+ - **server-generator-apollo-emmett**: regenerate shared/types.ts from scratch to prevent stale enums
136
+ - **global**: version packages
137
+ - **server-generator-apollo-emmett**: move burst 1 to DONE in ketchup plan
138
+ - **server-generator-apollo-emmett**: add ketchup plan for stale enums fix
139
+ - Updated dependencies [[`d5c985a`](https://github.com/BeOnAuto/auto-engineer/commit/d5c985a1a4bcd256f6456ecb69d9523ae66c2352), [`bd14e09`](https://github.com/BeOnAuto/auto-engineer/commit/bd14e09fa399e218348a4d0f334bc3423106f64a), [`f3a6b66`](https://github.com/BeOnAuto/auto-engineer/commit/f3a6b662a35ae480d58a42d5207cb51d1e9106de), [`e4ed42d`](https://github.com/BeOnAuto/auto-engineer/commit/e4ed42dac98562148efc5ae293841c36efa6c5c7)]:
140
+ - @auto-engineer/file-store@1.65.0
141
+ - @auto-engineer/message-bus@1.65.0
142
+
3
143
  ## 1.64.0
4
144
 
5
145
  ### Minor Changes
@@ -0,0 +1,101 @@
1
+ import type { GraphIR } from '../graph/types';
2
+ type EmitRegistration = {
3
+ type: 'emit';
4
+ eventType: string;
5
+ commands: Array<{
6
+ commandType: string;
7
+ data: Record<string, unknown> | ((event: Record<string, unknown>) => Record<string, unknown>);
8
+ }>;
9
+ };
10
+ type CustomHandlerRegistration = {
11
+ type: 'custom';
12
+ eventType: string;
13
+ handler: (event: {
14
+ type: string;
15
+ data: Record<string, unknown>;
16
+ }) => Array<{
17
+ type: string;
18
+ data: Record<string, unknown>;
19
+ }> | Promise<Array<{
20
+ type: string;
21
+ data: Record<string, unknown>;
22
+ }>>;
23
+ };
24
+ export type SettledRegistration = {
25
+ type: 'settled';
26
+ commandTypes: string[];
27
+ maxRetries?: number;
28
+ };
29
+ export type PhasedRegistration = {
30
+ type: 'phased';
31
+ eventType: string;
32
+ phases: string[];
33
+ stopOnFailure: boolean;
34
+ };
35
+ export type AwaitRegistration = {
36
+ type: 'await';
37
+ eventType: string;
38
+ keys: string[];
39
+ };
40
+ type Registration = EmitRegistration | CustomHandlerRegistration | SettledRegistration | PhasedRegistration | AwaitRegistration;
41
+ export type PipelineV2 = {
42
+ name: string;
43
+ registrations: Registration[];
44
+ };
45
+ type EmitChain = {
46
+ emit(commandType: string, data: Record<string, unknown> | ((event: Record<string, unknown>) => Record<string, unknown>)): EmitChain;
47
+ on(eventType: string): TriggerBuilder;
48
+ build(): PipelineV2;
49
+ };
50
+ type HandleChain = {
51
+ on(eventType: string): TriggerBuilder;
52
+ build(): PipelineV2;
53
+ };
54
+ type ProcessChain = {
55
+ stopOnFailure(): ProcessChain;
56
+ on(eventType: string): TriggerBuilder;
57
+ build(): PipelineV2;
58
+ };
59
+ type GroupIntoChain = {
60
+ process(): ProcessChain;
61
+ };
62
+ type ForEachChain = {
63
+ groupInto(phases: string[]): GroupIntoChain;
64
+ };
65
+ type AwaitAllChain = {
66
+ on(eventType: string): TriggerBuilder;
67
+ build(): PipelineV2;
68
+ };
69
+ type RunChain = {
70
+ awaitAll(): AwaitAllChain;
71
+ };
72
+ type TriggerBuilder = {
73
+ emit(commandType: string, data: Record<string, unknown> | ((event: Record<string, unknown>) => Record<string, unknown>)): EmitChain;
74
+ handle(handler: (event: {
75
+ type: string;
76
+ data: Record<string, unknown>;
77
+ }) => Array<{
78
+ type: string;
79
+ data: Record<string, unknown>;
80
+ }> | Promise<Array<{
81
+ type: string;
82
+ data: Record<string, unknown>;
83
+ }>>): HandleChain;
84
+ forEach(): ForEachChain;
85
+ run(keys: string[]): RunChain;
86
+ };
87
+ type SettledChain = {
88
+ maxRetries(n: number): SettledChain;
89
+ on(eventType: string): TriggerBuilder;
90
+ settled(commandTypes: string[]): SettledChain;
91
+ build(): PipelineV2;
92
+ };
93
+ type PipelineV2Builder = {
94
+ on(eventType: string): TriggerBuilder;
95
+ settled(commandTypes: string[]): SettledChain;
96
+ build(): PipelineV2;
97
+ };
98
+ export declare function defineV2(name: string): PipelineV2Builder;
99
+ export declare function toGraph(pipeline: PipelineV2): GraphIR;
100
+ export {};
101
+ //# sourceMappingURL=define-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-v2.d.ts","sourceRoot":"","sources":["../../../src/builder/define-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,209 @@
1
+ export function defineV2(name) {
2
+ const registrations = [];
3
+ function createEmitChain(registration) {
4
+ return {
5
+ emit(commandType, data) {
6
+ registration.commands.push({ commandType, data });
7
+ return createEmitChain(registration);
8
+ },
9
+ on(eventType) {
10
+ return createTriggerBuilder(eventType);
11
+ },
12
+ build() {
13
+ return { name, registrations };
14
+ },
15
+ };
16
+ }
17
+ function createHandleChain() {
18
+ return {
19
+ on(eventType) {
20
+ return createTriggerBuilder(eventType);
21
+ },
22
+ build() {
23
+ return { name, registrations };
24
+ },
25
+ };
26
+ }
27
+ function createProcessChain(registration) {
28
+ return {
29
+ stopOnFailure() {
30
+ registration.stopOnFailure = true;
31
+ return createProcessChain(registration);
32
+ },
33
+ on(eventType) {
34
+ return createTriggerBuilder(eventType);
35
+ },
36
+ build() {
37
+ return { name, registrations };
38
+ },
39
+ };
40
+ }
41
+ function createForEachChain(eventType) {
42
+ return {
43
+ groupInto(phases) {
44
+ return {
45
+ process() {
46
+ const registration = {
47
+ type: 'phased',
48
+ eventType,
49
+ phases,
50
+ stopOnFailure: false,
51
+ };
52
+ registrations.push(registration);
53
+ return createProcessChain(registration);
54
+ },
55
+ };
56
+ },
57
+ };
58
+ }
59
+ function createAwaitAllChain() {
60
+ return {
61
+ on(eventType) {
62
+ return createTriggerBuilder(eventType);
63
+ },
64
+ build() {
65
+ return { name, registrations };
66
+ },
67
+ };
68
+ }
69
+ function createRunChain(eventType, keys) {
70
+ return {
71
+ awaitAll() {
72
+ const registration = {
73
+ type: 'await',
74
+ eventType,
75
+ keys,
76
+ };
77
+ registrations.push(registration);
78
+ return createAwaitAllChain();
79
+ },
80
+ };
81
+ }
82
+ function createTriggerBuilder(eventType) {
83
+ return {
84
+ emit(commandType, data) {
85
+ const registration = {
86
+ type: 'emit',
87
+ eventType,
88
+ commands: [{ commandType, data }],
89
+ };
90
+ registrations.push(registration);
91
+ return createEmitChain(registration);
92
+ },
93
+ handle(handler) {
94
+ const registration = {
95
+ type: 'custom',
96
+ eventType,
97
+ handler,
98
+ };
99
+ registrations.push(registration);
100
+ return createHandleChain();
101
+ },
102
+ forEach() {
103
+ return createForEachChain(eventType);
104
+ },
105
+ run(keys) {
106
+ return createRunChain(eventType, keys);
107
+ },
108
+ };
109
+ }
110
+ function createSettledChain(registration) {
111
+ return {
112
+ maxRetries(n) {
113
+ registration.maxRetries = n;
114
+ return createSettledChain(registration);
115
+ },
116
+ on(eventType) {
117
+ return createTriggerBuilder(eventType);
118
+ },
119
+ settled(commandTypes) {
120
+ const reg = { type: 'settled', commandTypes };
121
+ registrations.push(reg);
122
+ return createSettledChain(reg);
123
+ },
124
+ build() {
125
+ return { name, registrations };
126
+ },
127
+ };
128
+ }
129
+ return {
130
+ on(eventType) {
131
+ return createTriggerBuilder(eventType);
132
+ },
133
+ settled(commandTypes) {
134
+ const registration = { type: 'settled', commandTypes };
135
+ registrations.push(registration);
136
+ return createSettledChain(registration);
137
+ },
138
+ build() {
139
+ return { name, registrations };
140
+ },
141
+ };
142
+ }
143
+ function addNode(ctx, id, type, label) {
144
+ if (!ctx.nodeMap.has(id)) {
145
+ ctx.nodeMap.set(id, { id, type, label });
146
+ }
147
+ }
148
+ function processEmitRegistration(ctx, reg) {
149
+ addNode(ctx, `evt:${reg.eventType}`, 'event', reg.eventType);
150
+ for (const cmd of reg.commands) {
151
+ addNode(ctx, `cmd:${cmd.commandType}`, 'command', cmd.commandType);
152
+ ctx.edges.push({ from: `evt:${reg.eventType}`, to: `cmd:${cmd.commandType}` });
153
+ }
154
+ }
155
+ function processCustomRegistration(ctx, reg) {
156
+ addNode(ctx, `evt:${reg.eventType}`, 'event', reg.eventType);
157
+ addNode(ctx, `handler:${reg.eventType}`, 'command', `${reg.eventType} handler`);
158
+ ctx.edges.push({ from: `evt:${reg.eventType}`, to: `handler:${reg.eventType}` });
159
+ }
160
+ function processSettledRegistration(ctx, reg) {
161
+ const settledNodeId = `settled:${reg.commandTypes.join(',')}`;
162
+ addNode(ctx, settledNodeId, 'settled', 'Settled');
163
+ for (const commandType of reg.commandTypes) {
164
+ addNode(ctx, `cmd:${commandType}`, 'command', commandType);
165
+ ctx.edges.push({ from: `cmd:${commandType}`, to: settledNodeId });
166
+ }
167
+ }
168
+ function processPhasedRegistration(ctx, reg) {
169
+ addNode(ctx, `evt:${reg.eventType}`, 'event', reg.eventType);
170
+ const phasedNodeId = `phased:${reg.phases.join(',')}`;
171
+ addNode(ctx, phasedNodeId, 'phased', reg.phases.join(' → '));
172
+ ctx.edges.push({ from: `evt:${reg.eventType}`, to: phasedNodeId });
173
+ }
174
+ function processAwaitRegistration(ctx, reg) {
175
+ addNode(ctx, `evt:${reg.eventType}`, 'event', reg.eventType);
176
+ const awaitNodeId = `await:${reg.keys.join(',')}`;
177
+ addNode(ctx, awaitNodeId, 'await', reg.keys.join(', '));
178
+ ctx.edges.push({ from: `evt:${reg.eventType}`, to: awaitNodeId });
179
+ }
180
+ export function toGraph(pipeline) {
181
+ const ctx = {
182
+ nodeMap: new Map(),
183
+ edges: [],
184
+ };
185
+ for (const reg of pipeline.registrations) {
186
+ switch (reg.type) {
187
+ case 'emit':
188
+ processEmitRegistration(ctx, reg);
189
+ break;
190
+ case 'custom':
191
+ processCustomRegistration(ctx, reg);
192
+ break;
193
+ case 'settled':
194
+ processSettledRegistration(ctx, reg);
195
+ break;
196
+ case 'phased':
197
+ processPhasedRegistration(ctx, reg);
198
+ break;
199
+ case 'await':
200
+ processAwaitRegistration(ctx, reg);
201
+ break;
202
+ }
203
+ }
204
+ return {
205
+ nodes: Array.from(ctx.nodeMap.values()),
206
+ edges: ctx.edges,
207
+ };
208
+ }
209
+ //# sourceMappingURL=define-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-v2.js","sourceRoot":"","sources":["../../../src/builder/define-v2.ts"],"names":[],"mappings":"AAwHA,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,SAAS,eAAe,CAAC,YAA8B;QACrD,OAAO;YACL,IAAI,CAAC,WAAW,EAAE,IAAI;gBACpB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;YACD,EAAE,CAAC,SAAS;gBACV,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,KAAK;gBACH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,iBAAiB;QACxB,OAAO;YACL,EAAE,CAAC,SAAS;gBACV,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,KAAK;gBACH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,kBAAkB,CAAC,YAAgC;QAC1D,OAAO;YACL,aAAa;gBACX,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC;gBAClC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;YACD,EAAE,CAAC,SAAS;gBACV,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,KAAK;gBACH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,kBAAkB,CAAC,SAAiB;QAC3C,OAAO;YACL,SAAS,CAAC,MAAM;gBACd,OAAO;oBACL,OAAO;wBACL,MAAM,YAAY,GAAuB;4BACvC,IAAI,EAAE,QAAQ;4BACd,SAAS;4BACT,MAAM;4BACN,aAAa,EAAE,KAAK;yBACrB,CAAC;wBACF,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACjC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;oBAC1C,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,mBAAmB;QAC1B,OAAO;YACL,EAAE,CAAC,SAAS;gBACV,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,KAAK;gBACH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,cAAc,CAAC,SAAiB,EAAE,IAAc;QACvD,OAAO;YACL,QAAQ;gBACN,MAAM,YAAY,GAAsB;oBACtC,IAAI,EAAE,OAAO;oBACb,SAAS;oBACT,IAAI;iBACL,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC,OAAO,mBAAmB,EAAE,CAAC;YAC/B,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,oBAAoB,CAAC,SAAiB;QAC7C,OAAO;YACL,IAAI,CAAC,WAAW,EAAE,IAAI;gBACpB,MAAM,YAAY,GAAqB;oBACrC,IAAI,EAAE,MAAM;oBACZ,SAAS;oBACT,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;iBAClC,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,CAAC,OAAO;gBACZ,MAAM,YAAY,GAA8B;oBAC9C,IAAI,EAAE,QAAQ;oBACd,SAAS;oBACT,OAAO;iBACR,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC,OAAO,iBAAiB,EAAE,CAAC;YAC7B,CAAC;YACD,OAAO;gBACL,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;YACD,GAAG,CAAC,IAAI;gBACN,OAAO,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,kBAAkB,CAAC,YAAiC;QAC3D,OAAO;YACL,UAAU,CAAC,CAAC;gBACV,YAAY,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC5B,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAC1C,CAAC;YACD,EAAE,CAAC,SAAS;gBACV,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,CAAC,YAAY;gBAClB,MAAM,GAAG,GAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;gBACnE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;YACD,KAAK;gBACH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,CAAC,SAAS;YACV,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,CAAC,YAAY;YAClB,MAAM,YAAY,GAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;YAC5E,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK;YACH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC;AAOD,SAAS,OAAO,CAAC,GAAwB,EAAE,EAAU,EAAE,IAAc,EAAE,KAAa;IAClF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAwB,EAAE,GAAqB;IAC9E,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7D,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACnE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAwB,EAAE,GAA8B;IACzF,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,SAAS,UAAU,CAAC,CAAC;IAChF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAwB,EAAE,GAAwB;IACpF,MAAM,aAAa,GAAG,WAAW,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9D,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,KAAK,MAAM,WAAW,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,EAAE,OAAO,WAAW,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,WAAW,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAwB,EAAE,GAAuB;IAClF,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,UAAU,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACtD,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAwB,EAAE,GAAsB;IAChF,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,QAAoB;IAC1C,MAAM,GAAG,GAAwB;QAC/B,OAAO,EAAE,IAAI,GAAG,EAAqB;QACrC,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,MAAM;gBACT,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,QAAQ;gBACX,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,SAAS;gBACZ,0BAA0B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACrC,MAAM;YACR,KAAK,QAAQ;gBACX,yBAAyB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,OAAO;gBACV,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACnC,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACvC,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { SQLiteEventStore } from '@event-driven-io/emmett-sqlite';
2
+ type CommandHandler = (command: {
3
+ type: string;
4
+ data: Record<string, unknown>;
5
+ }) => Array<{
6
+ type: string;
7
+ data: Record<string, unknown>;
8
+ }> | Promise<Array<{
9
+ type: string;
10
+ data: Record<string, unknown>;
11
+ }>>;
12
+ export declare function createCommandDispatcher(): {
13
+ register(commandType: string, handler: CommandHandler): void;
14
+ registeredTypes(): string[];
15
+ dispatch(command: {
16
+ type: string;
17
+ data: Record<string, unknown>;
18
+ }): Promise<Array<{
19
+ type: string;
20
+ data: Record<string, unknown>;
21
+ }>>;
22
+ };
23
+ export declare function dispatchAndStore(dispatcher: ReturnType<typeof createCommandDispatcher>, eventStore: SQLiteEventStore, streamName: string, command: {
24
+ type: string;
25
+ data: Record<string, unknown>;
26
+ }): Promise<Array<{
27
+ type: string;
28
+ data: Record<string, unknown>;
29
+ }>>;
30
+ export {};
31
+ //# sourceMappingURL=command-dispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/engine/command-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,KACG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GACtD,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAAC,CAAC;AAEpE,wBAAgB,uBAAuB;0BAIb,MAAM,WAAW,cAAc,GAAG,IAAI;uBAIzC,MAAM,EAAE;sBAIH;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;EAQtE;AAED,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,EACtD,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACvD,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAAC,CAMjE"}
@@ -0,0 +1,26 @@
1
+ export function createCommandDispatcher() {
2
+ const handlers = new Map();
3
+ return {
4
+ register(commandType, handler) {
5
+ handlers.set(commandType, handler);
6
+ },
7
+ registeredTypes() {
8
+ return [...handlers.keys()];
9
+ },
10
+ async dispatch(command) {
11
+ const handler = handlers.get(command.type);
12
+ if (!handler) {
13
+ throw new Error(`No handler registered for command type: ${command.type}`);
14
+ }
15
+ return handler(command);
16
+ },
17
+ };
18
+ }
19
+ export async function dispatchAndStore(dispatcher, eventStore, streamName, command) {
20
+ const results = await dispatcher.dispatch(command);
21
+ if (results.length > 0) {
22
+ await eventStore.appendToStream(streamName, results);
23
+ }
24
+ return results;
25
+ }
26
+ //# sourceMappingURL=command-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-dispatcher.js","sourceRoot":"","sources":["../../../src/engine/command-dispatcher.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,uBAAuB;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IAEnD,OAAO;QACL,QAAQ,CAAC,WAAmB,EAAE,OAAuB;YACnD,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,eAAe;YACb,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,OAGd;YACC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,2CAA2C,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAsD,EACtD,UAA4B,EAC5B,UAAkB,EAClB,OAAwD;IAExD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,UAAU,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { createCommandDispatcher } from './command-dispatcher.js';
2
+ type Event = {
3
+ type: string;
4
+ data: Record<string, unknown>;
5
+ };
6
+ type EmitMapping = {
7
+ eventType: string;
8
+ commands: Array<{
9
+ commandType: string;
10
+ data: Record<string, unknown> | ((event: Event) => Record<string, unknown>);
11
+ }>;
12
+ };
13
+ export declare function createEventRouter(dispatcher: ReturnType<typeof createCommandDispatcher>): {
14
+ register(mapping: EmitMapping): void;
15
+ route(event: Event): Promise<Array<{
16
+ type: string;
17
+ data: Record<string, unknown>;
18
+ }>>;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=event-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-router.d.ts","sourceRoot":"","sources":["../../../src/engine/event-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAE7D,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAC7E,CAAC,CAAC;CACJ,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC;sBAIlE,WAAW,GAAG,IAAI;iBAKjB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;EAc7F"}
@@ -0,0 +1,22 @@
1
+ export function createEventRouter(dispatcher) {
2
+ const mappings = new Map();
3
+ return {
4
+ register(mapping) {
5
+ const existing = mappings.get(mapping.eventType) ?? [];
6
+ mappings.set(mapping.eventType, [...existing, ...mapping.commands]);
7
+ },
8
+ async route(event) {
9
+ const commands = mappings.get(event.type);
10
+ if (!commands) {
11
+ return [];
12
+ }
13
+ const commandPromises = commands.map((command) => {
14
+ const data = typeof command.data === 'function' ? command.data(event) : command.data;
15
+ return dispatcher.dispatch({ type: command.commandType, data });
16
+ });
17
+ const resultArrays = await Promise.all(commandPromises);
18
+ return resultArrays.flat();
19
+ },
20
+ };
21
+ }
22
+ //# sourceMappingURL=event-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-router.js","sourceRoot":"","sources":["../../../src/engine/event-router.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,iBAAiB,CAAC,UAAsD;IACtF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmC,CAAC;IAE5D,OAAO;QACL,QAAQ,CAAC,OAAoB;YAC3B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACvD,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,KAAY;YACtB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC/C,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;gBACrF,OAAO,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACxD,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ export { createCommandDispatcher, dispatchAndStore } from './command-dispatcher';
2
+ export { createEventRouter } from './event-router';
3
+ export { createPipelineEngine } from './pipeline-engine';
4
+ export { itemStatusProjection } from './projections/item-status';
5
+ export { latestRunProjection } from './projections/latest-run';
6
+ export { messageLogProjection } from './projections/message-log';
7
+ export { nodeStatusProjection } from './projections/node-status';
8
+ export { statsProjection } from './projections/stats';
9
+ export { createConsumer } from './sqlite-consumer';
10
+ export { createPipelineStore, type PipelineStore } from './sqlite-store';
11
+ export { createWorkflowProcessor, type WorkflowRegistration } from './workflow-processor';
12
+ export { type AwaitInput, type AwaitOutput, type AwaitState, createAwaitWorkflow, decide as awaitDecide, evolve as awaitEvolve, initialState as awaitInitialState, } from './workflows/await-workflow';
13
+ export { createPhasedWorkflow, decide as phasedDecide, evolve as phasedEvolve, initialState as phasedInitialState, type PhasedInput, type PhasedItem, type PhasedOutput, type PhasedState, } from './workflows/phased-workflow';
14
+ export { createSettledWorkflow, decide as settledDecide, evolve as settledEvolve, initialState as settledInitialState, type SettledInput, type SettledOutput, type SettledState, } from './workflows/settled-workflow';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EACL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,mBAAmB,EACnB,MAAM,IAAI,WAAW,EACrB,MAAM,IAAI,WAAW,EACrB,YAAY,IAAI,iBAAiB,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,MAAM,IAAI,YAAY,EACtB,MAAM,IAAI,YAAY,EACtB,YAAY,IAAI,kBAAkB,EAClC,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,MAAM,IAAI,aAAa,EACvB,MAAM,IAAI,aAAa,EACvB,YAAY,IAAI,mBAAmB,EACnC,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,15 @@
1
+ export { createCommandDispatcher, dispatchAndStore } from './command-dispatcher.js';
2
+ export { createEventRouter } from './event-router.js';
3
+ export { createPipelineEngine } from './pipeline-engine.js';
4
+ export { itemStatusProjection } from './projections/item-status.js';
5
+ export { latestRunProjection } from './projections/latest-run.js';
6
+ export { messageLogProjection } from './projections/message-log.js';
7
+ export { nodeStatusProjection } from './projections/node-status.js';
8
+ export { statsProjection } from './projections/stats.js';
9
+ export { createConsumer } from './sqlite-consumer.js';
10
+ export { createPipelineStore } from './sqlite-store.js';
11
+ export { createWorkflowProcessor } from './workflow-processor.js';
12
+ export { createAwaitWorkflow, decide as awaitDecide, evolve as awaitEvolve, initialState as awaitInitialState, } from './workflows/await-workflow.js';
13
+ export { createPhasedWorkflow, decide as phasedDecide, evolve as phasedEvolve, initialState as phasedInitialState, } from './workflows/phased-workflow.js';
14
+ export { createSettledWorkflow, decide as settledDecide, evolve as settledEvolve, initialState as settledInitialState, } from './workflows/settled-workflow.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAsB,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAA6B,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAIL,mBAAmB,EACnB,MAAM,IAAI,WAAW,EACrB,MAAM,IAAI,WAAW,EACrB,YAAY,IAAI,iBAAiB,GAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,MAAM,IAAI,YAAY,EACtB,MAAM,IAAI,YAAY,EACtB,YAAY,IAAI,kBAAkB,GAKnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,qBAAqB,EACrB,MAAM,IAAI,aAAa,EACvB,MAAM,IAAI,aAAa,EACvB,YAAY,IAAI,mBAAmB,GAIpC,MAAM,8BAA8B,CAAC"}