jumbo-cli 2.8.0 → 2.9.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 (26) hide show
  1. package/README.md +1 -0
  2. package/assets/skills/define-jumbo-goals/SKILL.md +2 -0
  3. package/assets/skills/jumbo-design-goal/SKILL.md +123 -0
  4. package/dist/application/context/relations/deactivate/DeactivateRelationCommandHandler.d.ts.map +1 -1
  5. package/dist/application/context/relations/deactivate/DeactivateRelationCommandHandler.js +5 -0
  6. package/dist/application/context/relations/deactivate/DeactivateRelationCommandHandler.js.map +1 -1
  7. package/dist/infrastructure/host/HostBuilder.d.ts.map +1 -1
  8. package/dist/infrastructure/host/HostBuilder.js +4 -6
  9. package/dist/infrastructure/host/HostBuilder.js.map +1 -1
  10. package/dist/infrastructure/local/LocalDatabaseRebuildService.d.ts +9 -13
  11. package/dist/infrastructure/local/LocalDatabaseRebuildService.d.ts.map +1 -1
  12. package/dist/infrastructure/local/LocalDatabaseRebuildService.js +36 -29
  13. package/dist/infrastructure/local/LocalDatabaseRebuildService.js.map +1 -1
  14. package/dist/infrastructure/messaging/ProjectionBusFactory.d.ts +25 -0
  15. package/dist/infrastructure/messaging/ProjectionBusFactory.d.ts.map +1 -0
  16. package/dist/infrastructure/messaging/ProjectionBusFactory.js +242 -0
  17. package/dist/infrastructure/messaging/ProjectionBusFactory.js.map +1 -0
  18. package/package.json +1 -1
  19. package/dist/infrastructure/local/TemporarySequentialDatabaseRebuildService.d.ts +0 -43
  20. package/dist/infrastructure/local/TemporarySequentialDatabaseRebuildService.d.ts.map +0 -1
  21. package/dist/infrastructure/local/TemporarySequentialDatabaseRebuildService.js +0 -441
  22. package/dist/infrastructure/local/TemporarySequentialDatabaseRebuildService.js.map +0 -1
  23. package/dist/infrastructure/messaging/TemporarySequentialRebuildEventBus.d.ts +0 -37
  24. package/dist/infrastructure/messaging/TemporarySequentialRebuildEventBus.d.ts.map +0 -1
  25. package/dist/infrastructure/messaging/TemporarySequentialRebuildEventBus.js +0 -64
  26. package/dist/infrastructure/messaging/TemporarySequentialRebuildEventBus.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Factory that creates an event bus wired with projection-only handlers.
3
+ *
4
+ * Used during database rebuild to replay events through pure projectors
5
+ * without triggering side effects (cascades, maintenance goals, command
6
+ * handlers). Side-effect events are already persisted in the event store
7
+ * from original execution and are replayed as regular projection events.
8
+ *
9
+ * Each projector performs a single synchronous SQLite write with no
10
+ * cross-aggregate reads, so parallel execution via InProcessEventBus
11
+ * is safe.
12
+ */
13
+ import Database from "better-sqlite3";
14
+ import { IEventBus } from "../../application/messaging/IEventBus.js";
15
+ export declare class ProjectionBusFactory {
16
+ /**
17
+ * Creates an event bus with projection-only handlers for the given database.
18
+ */
19
+ create(db: Database.Database): IEventBus;
20
+ /**
21
+ * Wraps a projector method as an IEventHandler.
22
+ */
23
+ private wrap;
24
+ }
25
+ //# sourceMappingURL=ProjectionBusFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectionBusFactory.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/messaging/ProjectionBusFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AA6FrE,qBAAa,oBAAoB;IAE/B;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS;IA2JxC;;OAEG;IACH,OAAO,CAAC,IAAI;CAGb"}
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ /**
3
+ * Factory that creates an event bus wired with projection-only handlers.
4
+ *
5
+ * Used during database rebuild to replay events through pure projectors
6
+ * without triggering side effects (cascades, maintenance goals, command
7
+ * handlers). Side-effect events are already persisted in the event store
8
+ * from original execution and are replayed as regular projection events.
9
+ *
10
+ * Each projector performs a single synchronous SQLite write with no
11
+ * cross-aggregate reads, so parallel execution via InProcessEventBus
12
+ * is safe.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ProjectionBusFactory = void 0;
16
+ const InProcessEventBus_js_1 = require("./InProcessEventBus.js");
17
+ // Session projectors
18
+ const SqliteSessionStartedProjector_js_1 = require("../context/sessions/start/SqliteSessionStartedProjector.js");
19
+ const SqliteSessionEndedProjector_js_1 = require("../context/sessions/end/SqliteSessionEndedProjector.js");
20
+ // Goal projectors
21
+ const SqliteGoalAddedProjector_js_1 = require("../context/goals/add/SqliteGoalAddedProjector.js");
22
+ const SqliteGoalStartedProjector_js_1 = require("../context/goals/start/SqliteGoalStartedProjector.js");
23
+ const SqliteGoalUpdatedProjector_js_1 = require("../context/goals/update/SqliteGoalUpdatedProjector.js");
24
+ const SqliteGoalBlockedProjector_js_1 = require("../context/goals/block/SqliteGoalBlockedProjector.js");
25
+ const SqliteGoalUnblockedProjector_js_1 = require("../context/goals/unblock/SqliteGoalUnblockedProjector.js");
26
+ const SqliteGoalPausedProjector_js_1 = require("../context/goals/pause/SqliteGoalPausedProjector.js");
27
+ const SqliteGoalResumedProjector_js_1 = require("../context/goals/resume/SqliteGoalResumedProjector.js");
28
+ const SqliteGoalCompletedProjector_js_1 = require("../context/goals/complete/SqliteGoalCompletedProjector.js");
29
+ const SqliteGoalRefinedProjector_js_1 = require("../context/goals/refine/SqliteGoalRefinedProjector.js");
30
+ const SqliteGoalResetProjector_js_1 = require("../context/goals/reset/SqliteGoalResetProjector.js");
31
+ const SqliteGoalRemovedProjector_js_1 = require("../context/goals/remove/SqliteGoalRemovedProjector.js");
32
+ const SqliteGoalProgressUpdatedProjector_js_1 = require("../context/goals/update-progress/SqliteGoalProgressUpdatedProjector.js");
33
+ const SqliteGoalSubmittedForReviewProjector_js_1 = require("../context/goals/review/SqliteGoalSubmittedForReviewProjector.js");
34
+ const SqliteGoalQualifiedProjector_js_1 = require("../context/goals/qualify/SqliteGoalQualifiedProjector.js");
35
+ const SqliteGoalCommittedProjector_js_1 = require("../context/goals/commit/SqliteGoalCommittedProjector.js");
36
+ const SqliteGoalRejectedProjector_js_1 = require("../context/goals/reject/SqliteGoalRejectedProjector.js");
37
+ const SqliteGoalSubmittedProjector_js_1 = require("../context/goals/submit/SqliteGoalSubmittedProjector.js");
38
+ const SqliteGoalCodifyingStartedProjector_js_1 = require("../context/goals/codify/SqliteGoalCodifyingStartedProjector.js");
39
+ const SqliteGoalClosedProjector_js_1 = require("../context/goals/close/SqliteGoalClosedProjector.js");
40
+ const SqliteGoalApprovedProjector_js_1 = require("../context/goals/approve/SqliteGoalApprovedProjector.js");
41
+ const SqliteGoalStatusMigratedProjector_js_1 = require("../context/goals/migrate/SqliteGoalStatusMigratedProjector.js");
42
+ // Architecture projectors
43
+ const SqliteArchitectureDefinedProjector_js_1 = require("../context/architecture/define/SqliteArchitectureDefinedProjector.js");
44
+ const SqliteArchitectureUpdatedProjector_js_1 = require("../context/architecture/update/SqliteArchitectureUpdatedProjector.js");
45
+ // Component projectors
46
+ const SqliteComponentAddedProjector_js_1 = require("../context/components/add/SqliteComponentAddedProjector.js");
47
+ const SqliteComponentUpdatedProjector_js_1 = require("../context/components/update/SqliteComponentUpdatedProjector.js");
48
+ const SqliteComponentDeprecatedProjector_js_1 = require("../context/components/deprecate/SqliteComponentDeprecatedProjector.js");
49
+ const SqliteComponentUndeprecatedProjector_js_1 = require("../context/components/undeprecate/SqliteComponentUndeprecatedProjector.js");
50
+ const SqliteComponentRemovedProjector_js_1 = require("../context/components/remove/SqliteComponentRemovedProjector.js");
51
+ const SqliteComponentRenamedProjector_js_1 = require("../context/components/rename/SqliteComponentRenamedProjector.js");
52
+ // Dependency projectors
53
+ const SqliteDependencyAddedProjector_js_1 = require("../context/dependencies/add/SqliteDependencyAddedProjector.js");
54
+ const SqliteDependencyUpdatedProjector_js_1 = require("../context/dependencies/update/SqliteDependencyUpdatedProjector.js");
55
+ const SqliteDependencyRemovedProjector_js_1 = require("../context/dependencies/remove/SqliteDependencyRemovedProjector.js");
56
+ // Decision projectors
57
+ const SqliteDecisionAddedProjector_js_1 = require("../context/decisions/add/SqliteDecisionAddedProjector.js");
58
+ const SqliteDecisionUpdatedProjector_js_1 = require("../context/decisions/update/SqliteDecisionUpdatedProjector.js");
59
+ const SqliteDecisionReversedProjector_js_1 = require("../context/decisions/reverse/SqliteDecisionReversedProjector.js");
60
+ const SqliteDecisionRestoredProjector_js_1 = require("../context/decisions/restore/SqliteDecisionRestoredProjector.js");
61
+ const SqliteDecisionSupersededProjector_js_1 = require("../context/decisions/supersede/SqliteDecisionSupersededProjector.js");
62
+ // Guideline projectors
63
+ const SqliteGuidelineAddedProjector_js_1 = require("../context/guidelines/add/SqliteGuidelineAddedProjector.js");
64
+ const SqliteGuidelineUpdatedProjector_js_1 = require("../context/guidelines/update/SqliteGuidelineUpdatedProjector.js");
65
+ const SqliteGuidelineRemovedProjector_js_1 = require("../context/guidelines/remove/SqliteGuidelineRemovedProjector.js");
66
+ // Invariant projectors
67
+ const SqliteInvariantAddedProjector_js_1 = require("../context/invariants/add/SqliteInvariantAddedProjector.js");
68
+ const SqliteInvariantUpdatedProjector_js_1 = require("../context/invariants/update/SqliteInvariantUpdatedProjector.js");
69
+ const SqliteInvariantRemovedProjector_js_1 = require("../context/invariants/remove/SqliteInvariantRemovedProjector.js");
70
+ // Project projectors
71
+ const SqliteProjectInitializedProjector_js_1 = require("../context/project/init/SqliteProjectInitializedProjector.js");
72
+ const SqliteProjectUpdatedProjector_js_1 = require("../context/project/update/SqliteProjectUpdatedProjector.js");
73
+ // Audience pain projectors
74
+ const SqliteAudiencePainAddedProjector_js_1 = require("../context/audience-pains/add/SqliteAudiencePainAddedProjector.js");
75
+ const SqliteAudiencePainUpdatedProjector_js_1 = require("../context/audience-pains/update/SqliteAudiencePainUpdatedProjector.js");
76
+ // Audience projectors
77
+ const SqliteAudienceAddedProjector_js_1 = require("../context/audiences/add/SqliteAudienceAddedProjector.js");
78
+ const SqliteAudienceUpdatedProjector_js_1 = require("../context/audiences/update/SqliteAudienceUpdatedProjector.js");
79
+ const SqliteAudienceRemovedProjector_js_1 = require("../context/audiences/remove/SqliteAudienceRemovedProjector.js");
80
+ // Value proposition projectors
81
+ const SqliteValuePropositionAddedProjector_js_1 = require("../context/value-propositions/add/SqliteValuePropositionAddedProjector.js");
82
+ const SqliteValuePropositionUpdatedProjector_js_1 = require("../context/value-propositions/update/SqliteValuePropositionUpdatedProjector.js");
83
+ const SqliteValuePropositionRemovedProjector_js_1 = require("../context/value-propositions/remove/SqliteValuePropositionRemovedProjector.js");
84
+ // Relation projectors
85
+ const SqliteRelationAddedProjector_js_1 = require("../context/relations/add/SqliteRelationAddedProjector.js");
86
+ const SqliteRelationDeactivatedProjector_js_1 = require("../context/relations/deactivate/SqliteRelationDeactivatedProjector.js");
87
+ const SqliteRelationReactivatedProjector_js_1 = require("../context/relations/reactivate/SqliteRelationReactivatedProjector.js");
88
+ const SqliteRelationRemovedProjector_js_1 = require("../context/relations/remove/SqliteRelationRemovedProjector.js");
89
+ // Worker identity projectors
90
+ const SqliteWorkerIdentifiedProjector_js_1 = require("../host/workers/identify/SqliteWorkerIdentifiedProjector.js");
91
+ class ProjectionBusFactory {
92
+ /**
93
+ * Creates an event bus with projection-only handlers for the given database.
94
+ */
95
+ create(db) {
96
+ const bus = new InProcessEventBus_js_1.InProcessEventBus();
97
+ // Session projections
98
+ const sessionStartedProjector = new SqliteSessionStartedProjector_js_1.SqliteSessionStartedProjector(db);
99
+ const sessionEndedProjector = new SqliteSessionEndedProjector_js_1.SqliteSessionEndedProjector(db);
100
+ bus.subscribe("SessionStartedEvent", this.wrap((e) => sessionStartedProjector.applySessionStarted(e)));
101
+ bus.subscribe("SessionEndedEvent", this.wrap((e) => sessionEndedProjector.applySessionEnded(e)));
102
+ // Goal projections
103
+ const goalAddedProjector = new SqliteGoalAddedProjector_js_1.SqliteGoalAddedProjector(db);
104
+ const goalStartedProjector = new SqliteGoalStartedProjector_js_1.SqliteGoalStartedProjector(db);
105
+ const goalUpdatedProjector = new SqliteGoalUpdatedProjector_js_1.SqliteGoalUpdatedProjector(db);
106
+ const goalBlockedProjector = new SqliteGoalBlockedProjector_js_1.SqliteGoalBlockedProjector(db);
107
+ const goalUnblockedProjector = new SqliteGoalUnblockedProjector_js_1.SqliteGoalUnblockedProjector(db);
108
+ const goalPausedProjector = new SqliteGoalPausedProjector_js_1.SqliteGoalPausedProjector(db);
109
+ const goalResumedProjector = new SqliteGoalResumedProjector_js_1.SqliteGoalResumedProjector(db);
110
+ const goalCompletedProjector = new SqliteGoalCompletedProjector_js_1.SqliteGoalCompletedProjector(db);
111
+ const goalRefinedProjector = new SqliteGoalRefinedProjector_js_1.SqliteGoalRefinedProjector(db);
112
+ const goalResetProjector = new SqliteGoalResetProjector_js_1.SqliteGoalResetProjector(db);
113
+ const goalRemovedProjector = new SqliteGoalRemovedProjector_js_1.SqliteGoalRemovedProjector(db);
114
+ const goalProgressUpdatedProjector = new SqliteGoalProgressUpdatedProjector_js_1.SqliteGoalProgressUpdatedProjector(db);
115
+ const goalSubmittedForReviewProjector = new SqliteGoalSubmittedForReviewProjector_js_1.SqliteGoalSubmittedForReviewProjector(db);
116
+ const goalQualifiedProjector = new SqliteGoalQualifiedProjector_js_1.SqliteGoalQualifiedProjector(db);
117
+ const goalCommittedProjector = new SqliteGoalCommittedProjector_js_1.SqliteGoalCommittedProjector(db);
118
+ const goalRejectedProjector = new SqliteGoalRejectedProjector_js_1.SqliteGoalRejectedProjector(db);
119
+ const goalSubmittedProjector = new SqliteGoalSubmittedProjector_js_1.SqliteGoalSubmittedProjector(db);
120
+ const goalCodifyingStartedProjector = new SqliteGoalCodifyingStartedProjector_js_1.SqliteGoalCodifyingStartedProjector(db);
121
+ const goalClosedProjector = new SqliteGoalClosedProjector_js_1.SqliteGoalClosedProjector(db);
122
+ const goalApprovedProjector = new SqliteGoalApprovedProjector_js_1.SqliteGoalApprovedProjector(db);
123
+ const goalStatusMigratedProjector = new SqliteGoalStatusMigratedProjector_js_1.SqliteGoalStatusMigratedProjector(db);
124
+ bus.subscribe("GoalAddedEvent", this.wrap((e) => goalAddedProjector.applyGoalAdded(e)));
125
+ bus.subscribe("GoalStartedEvent", this.wrap((e) => goalStartedProjector.applyGoalStarted(e)));
126
+ bus.subscribe("GoalUpdatedEvent", this.wrap((e) => goalUpdatedProjector.applyGoalUpdated(e)));
127
+ bus.subscribe("GoalBlockedEvent", this.wrap((e) => goalBlockedProjector.applyGoalBlocked(e)));
128
+ bus.subscribe("GoalUnblockedEvent", this.wrap((e) => goalUnblockedProjector.applyGoalUnblocked(e)));
129
+ bus.subscribe("GoalPausedEvent", this.wrap((e) => goalPausedProjector.applyGoalPaused(e)));
130
+ bus.subscribe("GoalResumedEvent", this.wrap((e) => goalResumedProjector.applyGoalResumed(e)));
131
+ bus.subscribe("GoalCompletedEvent", this.wrap((e) => goalCompletedProjector.applyGoalCompleted(e)));
132
+ bus.subscribe("GoalRefinedEvent", this.wrap((e) => goalRefinedProjector.applyGoalRefined(e)));
133
+ bus.subscribe("GoalResetEvent", this.wrap((e) => goalResetProjector.applyGoalReset(e)));
134
+ bus.subscribe("GoalRemovedEvent", this.wrap((e) => goalRemovedProjector.applyGoalRemoved(e)));
135
+ bus.subscribe("GoalProgressUpdatedEvent", this.wrap((e) => goalProgressUpdatedProjector.applyGoalProgressUpdated(e)));
136
+ bus.subscribe("GoalSubmittedForReviewEvent", this.wrap((e) => goalSubmittedForReviewProjector.applyGoalSubmittedForReview(e)));
137
+ bus.subscribe("GoalQualifiedEvent", this.wrap((e) => goalQualifiedProjector.applyGoalQualified(e)));
138
+ bus.subscribe("GoalRefinementStartedEvent", this.wrap((e) => goalRefinedProjector.applyGoalRefinementStarted(e)));
139
+ bus.subscribe("GoalCommittedEvent", this.wrap((e) => goalCommittedProjector.applyGoalCommitted(e)));
140
+ bus.subscribe("GoalRejectedEvent", this.wrap((e) => goalRejectedProjector.applyGoalRejected(e)));
141
+ bus.subscribe("GoalSubmittedEvent", this.wrap((e) => goalSubmittedProjector.applyGoalSubmitted(e)));
142
+ bus.subscribe("GoalCodifyingStartedEvent", this.wrap((e) => goalCodifyingStartedProjector.applyGoalCodifyingStarted(e)));
143
+ bus.subscribe("GoalClosedEvent", this.wrap((e) => goalClosedProjector.applyGoalClosed(e)));
144
+ bus.subscribe("GoalApprovedEvent", this.wrap((e) => goalApprovedProjector.applyGoalApproved(e)));
145
+ bus.subscribe("GoalStatusMigratedEvent", this.wrap((e) => goalStatusMigratedProjector.applyGoalStatusMigrated(e)));
146
+ // Architecture projections
147
+ const architectureDefinedProjector = new SqliteArchitectureDefinedProjector_js_1.SqliteArchitectureDefinedProjector(db);
148
+ const architectureUpdatedProjector = new SqliteArchitectureUpdatedProjector_js_1.SqliteArchitectureUpdatedProjector(db);
149
+ bus.subscribe("ArchitectureDefinedEvent", this.wrap((e) => architectureDefinedProjector.applyArchitectureDefined(e)));
150
+ bus.subscribe("ArchitectureUpdatedEvent", this.wrap((e) => architectureUpdatedProjector.applyArchitectureUpdated(e)));
151
+ // Component projections (projection-only — no cascades)
152
+ const componentAddedProjector = new SqliteComponentAddedProjector_js_1.SqliteComponentAddedProjector(db);
153
+ const componentUpdatedProjector = new SqliteComponentUpdatedProjector_js_1.SqliteComponentUpdatedProjector(db);
154
+ const componentDeprecatedProjector = new SqliteComponentDeprecatedProjector_js_1.SqliteComponentDeprecatedProjector(db);
155
+ const componentUndeprecatedProjector = new SqliteComponentUndeprecatedProjector_js_1.SqliteComponentUndeprecatedProjector(db);
156
+ const componentRemovedProjector = new SqliteComponentRemovedProjector_js_1.SqliteComponentRemovedProjector(db);
157
+ const componentRenamedProjector = new SqliteComponentRenamedProjector_js_1.SqliteComponentRenamedProjector(db);
158
+ bus.subscribe("ComponentAddedEvent", this.wrap((e) => componentAddedProjector.applyComponentAdded(e)));
159
+ bus.subscribe("ComponentUpdatedEvent", this.wrap((e) => componentUpdatedProjector.applyComponentUpdated(e)));
160
+ bus.subscribe("ComponentDeprecatedEvent", this.wrap((e) => componentDeprecatedProjector.applyComponentDeprecated(e)));
161
+ bus.subscribe("ComponentUndeprecatedEvent", this.wrap((e) => componentUndeprecatedProjector.applyComponentUndeprecated(e)));
162
+ bus.subscribe("ComponentRemovedEvent", this.wrap((e) => componentRemovedProjector.applyComponentRemoved(e)));
163
+ bus.subscribe("ComponentRenamedEvent", this.wrap((e) => componentRenamedProjector.applyComponentRenamed(e)));
164
+ // Dependency projections
165
+ const dependencyAddedProjector = new SqliteDependencyAddedProjector_js_1.SqliteDependencyAddedProjector(db);
166
+ const dependencyUpdatedProjector = new SqliteDependencyUpdatedProjector_js_1.SqliteDependencyUpdatedProjector(db);
167
+ const dependencyRemovedProjector = new SqliteDependencyRemovedProjector_js_1.SqliteDependencyRemovedProjector(db);
168
+ bus.subscribe("DependencyAddedEvent", this.wrap((e) => dependencyAddedProjector.applyDependencyAdded(e)));
169
+ bus.subscribe("DependencyUpdatedEvent", this.wrap((e) => dependencyUpdatedProjector.applyDependencyUpdated(e)));
170
+ bus.subscribe("DependencyRemovedEvent", this.wrap((e) => dependencyRemovedProjector.applyDependencyRemoved(e)));
171
+ // Decision projections (projection-only — no cascades)
172
+ const decisionAddedProjector = new SqliteDecisionAddedProjector_js_1.SqliteDecisionAddedProjector(db);
173
+ const decisionUpdatedProjector = new SqliteDecisionUpdatedProjector_js_1.SqliteDecisionUpdatedProjector(db);
174
+ const decisionReversedProjector = new SqliteDecisionReversedProjector_js_1.SqliteDecisionReversedProjector(db);
175
+ const decisionRestoredProjector = new SqliteDecisionRestoredProjector_js_1.SqliteDecisionRestoredProjector(db);
176
+ const decisionSupersededProjector = new SqliteDecisionSupersededProjector_js_1.SqliteDecisionSupersededProjector(db);
177
+ bus.subscribe("DecisionAddedEvent", this.wrap((e) => decisionAddedProjector.applyDecisionAdded(e)));
178
+ bus.subscribe("DecisionUpdatedEvent", this.wrap((e) => decisionUpdatedProjector.applyDecisionUpdated(e)));
179
+ bus.subscribe("DecisionReversedEvent", this.wrap((e) => decisionReversedProjector.applyDecisionReversed(e)));
180
+ bus.subscribe("DecisionRestoredEvent", this.wrap((e) => decisionRestoredProjector.applyDecisionRestored(e)));
181
+ bus.subscribe("DecisionSupersededEvent", this.wrap((e) => decisionSupersededProjector.applyDecisionSuperseded(e)));
182
+ // Guideline projections
183
+ const guidelineAddedProjector = new SqliteGuidelineAddedProjector_js_1.SqliteGuidelineAddedProjector(db);
184
+ const guidelineUpdatedProjector = new SqliteGuidelineUpdatedProjector_js_1.SqliteGuidelineUpdatedProjector(db);
185
+ const guidelineRemovedProjector = new SqliteGuidelineRemovedProjector_js_1.SqliteGuidelineRemovedProjector(db);
186
+ bus.subscribe("GuidelineAddedEvent", this.wrap((e) => guidelineAddedProjector.applyGuidelineAdded(e)));
187
+ bus.subscribe("GuidelineUpdatedEvent", this.wrap((e) => guidelineUpdatedProjector.applyGuidelineUpdated(e)));
188
+ bus.subscribe("GuidelineRemovedEvent", this.wrap((e) => guidelineRemovedProjector.applyGuidelineRemoved(e)));
189
+ // Invariant projections
190
+ const invariantAddedProjector = new SqliteInvariantAddedProjector_js_1.SqliteInvariantAddedProjector(db);
191
+ const invariantUpdatedProjector = new SqliteInvariantUpdatedProjector_js_1.SqliteInvariantUpdatedProjector(db);
192
+ const invariantRemovedProjector = new SqliteInvariantRemovedProjector_js_1.SqliteInvariantRemovedProjector(db);
193
+ bus.subscribe("InvariantAddedEvent", this.wrap((e) => invariantAddedProjector.applyInvariantAdded(e)));
194
+ bus.subscribe("InvariantUpdatedEvent", this.wrap((e) => invariantUpdatedProjector.applyInvariantUpdated(e)));
195
+ bus.subscribe("InvariantRemovedEvent", this.wrap((e) => invariantRemovedProjector.applyInvariantRemoved(e)));
196
+ // Project projections
197
+ const projectInitializedProjector = new SqliteProjectInitializedProjector_js_1.SqliteProjectInitializedProjector(db);
198
+ const projectUpdatedProjector = new SqliteProjectUpdatedProjector_js_1.SqliteProjectUpdatedProjector(db);
199
+ bus.subscribe("ProjectInitializedEvent", this.wrap((e) => projectInitializedProjector.applyProjectInitialized(e)));
200
+ bus.subscribe("ProjectUpdatedEvent", this.wrap((e) => projectUpdatedProjector.applyProjectUpdated(e)));
201
+ // Audience pain projections
202
+ const audiencePainAddedProjector = new SqliteAudiencePainAddedProjector_js_1.SqliteAudiencePainAddedProjector(db);
203
+ const audiencePainUpdatedProjector = new SqliteAudiencePainUpdatedProjector_js_1.SqliteAudiencePainUpdatedProjector(db);
204
+ bus.subscribe("AudiencePainAddedEvent", this.wrap((e) => audiencePainAddedProjector.applyAudiencePainAdded(e)));
205
+ bus.subscribe("AudiencePainUpdatedEvent", this.wrap((e) => audiencePainUpdatedProjector.applyAudiencePainUpdated(e)));
206
+ // Audience projections
207
+ const audienceAddedProjector = new SqliteAudienceAddedProjector_js_1.SqliteAudienceAddedProjector(db);
208
+ const audienceUpdatedProjector = new SqliteAudienceUpdatedProjector_js_1.SqliteAudienceUpdatedProjector(db);
209
+ const audienceRemovedProjector = new SqliteAudienceRemovedProjector_js_1.SqliteAudienceRemovedProjector(db);
210
+ bus.subscribe("AudienceAddedEvent", this.wrap((e) => audienceAddedProjector.applyAudienceAdded(e)));
211
+ bus.subscribe("AudienceUpdatedEvent", this.wrap((e) => audienceUpdatedProjector.applyAudienceUpdated(e)));
212
+ bus.subscribe("AudienceRemovedEvent", this.wrap((e) => audienceRemovedProjector.applyAudienceRemoved(e)));
213
+ // Value proposition projections
214
+ const valuePropositionAddedProjector = new SqliteValuePropositionAddedProjector_js_1.SqliteValuePropositionAddedProjector(db);
215
+ const valuePropositionUpdatedProjector = new SqliteValuePropositionUpdatedProjector_js_1.SqliteValuePropositionUpdatedProjector(db);
216
+ const valuePropositionRemovedProjector = new SqliteValuePropositionRemovedProjector_js_1.SqliteValuePropositionRemovedProjector(db);
217
+ bus.subscribe("ValuePropositionAddedEvent", this.wrap((e) => valuePropositionAddedProjector.applyValuePropositionAdded(e)));
218
+ bus.subscribe("ValuePropositionUpdatedEvent", this.wrap((e) => valuePropositionUpdatedProjector.applyValuePropositionUpdated(e)));
219
+ bus.subscribe("ValuePropositionRemovedEvent", this.wrap((e) => valuePropositionRemovedProjector.applyValuePropositionRemoved(e)));
220
+ // Relation projections
221
+ const relationAddedProjector = new SqliteRelationAddedProjector_js_1.SqliteRelationAddedProjector(db);
222
+ const relationDeactivatedProjector = new SqliteRelationDeactivatedProjector_js_1.SqliteRelationDeactivatedProjector(db);
223
+ const relationReactivatedProjector = new SqliteRelationReactivatedProjector_js_1.SqliteRelationReactivatedProjector(db);
224
+ const relationRemovedProjector = new SqliteRelationRemovedProjector_js_1.SqliteRelationRemovedProjector(db);
225
+ bus.subscribe("RelationAddedEvent", this.wrap((e) => relationAddedProjector.applyRelationAdded(e)));
226
+ bus.subscribe("RelationDeactivatedEvent", this.wrap((e) => relationDeactivatedProjector.applyRelationDeactivated(e)));
227
+ bus.subscribe("RelationReactivatedEvent", this.wrap((e) => relationReactivatedProjector.applyRelationReactivated(e)));
228
+ bus.subscribe("RelationRemovedEvent", this.wrap((e) => relationRemovedProjector.applyRelationRemoved(e)));
229
+ // Worker identity projections
230
+ const workerIdentifiedProjector = new SqliteWorkerIdentifiedProjector_js_1.SqliteWorkerIdentifiedProjector(db);
231
+ bus.subscribe("WorkerIdentifiedEvent", this.wrap((e) => workerIdentifiedProjector.applyWorkerIdentified(e)));
232
+ return bus;
233
+ }
234
+ /**
235
+ * Wraps a projector method as an IEventHandler.
236
+ */
237
+ wrap(fn) {
238
+ return { handle: async (event) => { await fn(event); } };
239
+ }
240
+ }
241
+ exports.ProjectionBusFactory = ProjectionBusFactory;
242
+ //# sourceMappingURL=ProjectionBusFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectionBusFactory.js","sourceRoot":"","sources":["../../../src/infrastructure/messaging/ProjectionBusFactory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jumbo-cli",
3
- "version": "2.8.0",
3
+ "version": "2.9.0",
4
4
  "description": "Memory and Context Orchestration for Coding Agents",
5
5
  "keywords": [
6
6
  "cli",
@@ -1,43 +0,0 @@
1
- /**
2
- * TEMPORARY WORKAROUND - DO NOT USE IN PRODUCTION
3
- *
4
- * Infrastructure implementation of database rebuild service with sequential handler execution.
5
- *
6
- * This service addresses a race condition during database rebuild where
7
- * cross-aggregate projection handlers
8
- * attempt to read from projections (e.g., goal_views) while primary handlers
9
- * are still writing to them.
10
- *
11
- * The root cause: InProcessEventBus executes handlers in parallel via Promise.all(),
12
- * which works fine during normal operations but causes issues during rebuild when
13
- * projections don't exist yet.
14
- *
15
- * This service encapsulates ALL the complexity of sequential rebuild:
16
- * - Creating new database connection
17
- * - Running migrations
18
- * - Creating sequential event bus
19
- * - Creating all projectors
20
- * - Creating all handlers
21
- * - Registering handlers
22
- * - Replaying events sequentially
23
- *
24
- * REMOVAL PLAN:
25
- * This will be removed when Epic/Feature/Task redesign is complete. At that time,
26
- * simply swap back to LocalDatabaseRebuildService in bootstrap.ts.
27
- *
28
- * @see LocalDatabaseRebuildService - Normal parallel rebuild (currently has race condition)
29
- */
30
- import Database from "better-sqlite3";
31
- import { ILogger } from "../../application/logging/ILogger.js";
32
- import { IDatabaseRebuildService, DatabaseRebuildResult } from "../../application/maintenance/db/rebuild/IDatabaseRebuildService.js";
33
- import { IEventStore } from "../../application/persistence/IEventStore.js";
34
- export declare class TemporarySequentialDatabaseRebuildService implements IDatabaseRebuildService {
35
- private readonly rootDir;
36
- private readonly db;
37
- private readonly eventStore;
38
- private readonly logger;
39
- private readonly tag;
40
- constructor(rootDir: string, db: Database.Database, eventStore: IEventStore, logger: ILogger);
41
- rebuild(): Promise<DatabaseRebuildResult>;
42
- }
43
- //# sourceMappingURL=TemporarySequentialDatabaseRebuildService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemporarySequentialDatabaseRebuildService.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/local/TemporarySequentialDatabaseRebuildService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,qEAAqE,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AA0I3E,qBAAa,yCAA0C,YAAW,uBAAuB;IAIrF,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAuB;gBAGxB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,EAAE,WAAW,EACvB,MAAM,EAAE,OAAO;IAG5B,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;CAgShD"}