agentic-qe 1.8.2 → 1.8.4

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 (111) hide show
  1. package/.claude/agents/qe-test-generator.md +580 -0
  2. package/.claude/agents/subagents/qe-code-reviewer.md +86 -0
  3. package/.claude/agents/subagents/qe-coverage-gap-analyzer.md +485 -0
  4. package/.claude/agents/subagents/qe-data-generator.md +86 -0
  5. package/.claude/agents/subagents/qe-flaky-investigator.md +416 -0
  6. package/.claude/agents/subagents/qe-integration-tester.md +87 -0
  7. package/.claude/agents/subagents/qe-performance-validator.md +98 -0
  8. package/.claude/agents/subagents/qe-security-auditor.md +86 -0
  9. package/.claude/agents/subagents/qe-test-data-architect-sub.md +553 -0
  10. package/.claude/agents/subagents/qe-test-implementer.md +229 -15
  11. package/.claude/agents/subagents/qe-test-refactorer.md +265 -15
  12. package/.claude/agents/subagents/qe-test-writer.md +180 -20
  13. package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +2 -2
  14. package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -6
  15. package/CHANGELOG.md +294 -0
  16. package/README.md +83 -52
  17. package/config/constitution.schema.json +423 -0
  18. package/config/otel-collector.yaml +234 -0
  19. package/dist/cli/commands/init-claude-md-template.js +3 -3
  20. package/dist/constitution/index.d.ts +105 -0
  21. package/dist/constitution/index.d.ts.map +1 -0
  22. package/dist/constitution/index.js +207 -0
  23. package/dist/constitution/index.js.map +1 -0
  24. package/dist/constitution/loader.d.ts +141 -0
  25. package/dist/constitution/loader.d.ts.map +1 -0
  26. package/dist/constitution/loader.js +515 -0
  27. package/dist/constitution/loader.js.map +1 -0
  28. package/dist/constitution/schema.d.ts +409 -0
  29. package/dist/constitution/schema.d.ts.map +1 -0
  30. package/dist/constitution/schema.js +71 -0
  31. package/dist/constitution/schema.js.map +1 -0
  32. package/dist/core/hooks/validators/TDDPhaseValidator.d.ts +110 -0
  33. package/dist/core/hooks/validators/TDDPhaseValidator.d.ts.map +1 -0
  34. package/dist/core/hooks/validators/TDDPhaseValidator.js +287 -0
  35. package/dist/core/hooks/validators/TDDPhaseValidator.js.map +1 -0
  36. package/dist/core/hooks/validators/index.d.ts +3 -1
  37. package/dist/core/hooks/validators/index.d.ts.map +1 -1
  38. package/dist/core/hooks/validators/index.js +4 -2
  39. package/dist/core/hooks/validators/index.js.map +1 -1
  40. package/dist/core/memory/MemoryManagerFactory.d.ts +77 -0
  41. package/dist/core/memory/MemoryManagerFactory.d.ts.map +1 -0
  42. package/dist/core/memory/MemoryManagerFactory.js +270 -0
  43. package/dist/core/memory/MemoryManagerFactory.js.map +1 -0
  44. package/dist/core/memory/SwarmMemoryManager.d.ts +18 -0
  45. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  46. package/dist/core/memory/SwarmMemoryManager.js +96 -11
  47. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  48. package/dist/core/memory/index.d.ts +1 -0
  49. package/dist/core/memory/index.d.ts.map +1 -1
  50. package/dist/core/memory/index.js +12 -1
  51. package/dist/core/memory/index.js.map +1 -1
  52. package/dist/mcp/handlers/memory/memory-backup.js +6 -6
  53. package/dist/mcp/handlers/memory/memory-backup.js.map +1 -1
  54. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
  55. package/dist/mcp/handlers/phase2/Phase2Tools.js +4 -2
  56. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
  57. package/dist/mcp/server.d.ts.map +1 -1
  58. package/dist/mcp/server.js +4 -38
  59. package/dist/mcp/server.js.map +1 -1
  60. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  61. package/dist/mcp/services/AgentRegistry.js +4 -4
  62. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  63. package/dist/persistence/event-store.d.ts +162 -0
  64. package/dist/persistence/event-store.d.ts.map +1 -0
  65. package/dist/persistence/event-store.js +315 -0
  66. package/dist/persistence/event-store.js.map +1 -0
  67. package/dist/persistence/index.d.ts +145 -0
  68. package/dist/persistence/index.d.ts.map +1 -0
  69. package/dist/persistence/index.js +227 -0
  70. package/dist/persistence/index.js.map +1 -0
  71. package/dist/persistence/metrics-aggregator.d.ts +187 -0
  72. package/dist/persistence/metrics-aggregator.d.ts.map +1 -0
  73. package/dist/persistence/metrics-aggregator.js +495 -0
  74. package/dist/persistence/metrics-aggregator.js.map +1 -0
  75. package/dist/persistence/reasoning-store.d.ts +178 -0
  76. package/dist/persistence/reasoning-store.d.ts.map +1 -0
  77. package/dist/persistence/reasoning-store.js +440 -0
  78. package/dist/persistence/reasoning-store.js.map +1 -0
  79. package/dist/persistence/schema.d.ts +181 -0
  80. package/dist/persistence/schema.d.ts.map +1 -0
  81. package/dist/persistence/schema.js +186 -0
  82. package/dist/persistence/schema.js.map +1 -0
  83. package/dist/telemetry/bootstrap.d.ts +67 -0
  84. package/dist/telemetry/bootstrap.d.ts.map +1 -0
  85. package/dist/telemetry/bootstrap.js +320 -0
  86. package/dist/telemetry/bootstrap.js.map +1 -0
  87. package/dist/telemetry/index.d.ts +16 -0
  88. package/dist/telemetry/index.d.ts.map +1 -0
  89. package/dist/telemetry/index.js +84 -0
  90. package/dist/telemetry/index.js.map +1 -0
  91. package/dist/telemetry/metrics/agent-metrics.d.ts +109 -0
  92. package/dist/telemetry/metrics/agent-metrics.d.ts.map +1 -0
  93. package/dist/telemetry/metrics/agent-metrics.js +213 -0
  94. package/dist/telemetry/metrics/agent-metrics.js.map +1 -0
  95. package/dist/telemetry/metrics/index.d.ts +51 -0
  96. package/dist/telemetry/metrics/index.d.ts.map +1 -0
  97. package/dist/telemetry/metrics/index.js +100 -0
  98. package/dist/telemetry/metrics/index.js.map +1 -0
  99. package/dist/telemetry/metrics/quality-metrics.d.ts +171 -0
  100. package/dist/telemetry/metrics/quality-metrics.d.ts.map +1 -0
  101. package/dist/telemetry/metrics/quality-metrics.js +259 -0
  102. package/dist/telemetry/metrics/quality-metrics.js.map +1 -0
  103. package/dist/telemetry/metrics/system-metrics.d.ts +129 -0
  104. package/dist/telemetry/metrics/system-metrics.d.ts.map +1 -0
  105. package/dist/telemetry/metrics/system-metrics.js +380 -0
  106. package/dist/telemetry/metrics/system-metrics.js.map +1 -0
  107. package/dist/telemetry/types.d.ts +195 -0
  108. package/dist/telemetry/types.d.ts.map +1 -0
  109. package/dist/telemetry/types.js +90 -0
  110. package/dist/telemetry/types.js.map +1 -0
  111. package/package.json +18 -2
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ /**
3
+ * TDD Phase Validator - Runtime enforcement for TDD subagent coordination
4
+ *
5
+ * Validates that each phase of the TDD cycle produces correct output
6
+ * in the memory store before allowing transition to next phase.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TDDPhaseValidator = void 0;
10
+ const crypto_1 = require("crypto");
11
+ const fs_1 = require("fs");
12
+ class TDDPhaseValidator {
13
+ constructor(memoryClient) {
14
+ this.memoryClient = memoryClient;
15
+ }
16
+ /**
17
+ * Validate RED phase output before transitioning to GREEN
18
+ */
19
+ async validateREDPhase(cycleId) {
20
+ const errors = [];
21
+ const warnings = [];
22
+ const metrics = {
23
+ memoryKeyExists: false,
24
+ outputSchemaValid: false,
25
+ handoffReady: false,
26
+ fileIntegrityValid: false
27
+ };
28
+ // 1. Check memory key exists
29
+ const memoryKey = `aqe/tdd/cycle-${cycleId}/red/tests`;
30
+ let output = null;
31
+ try {
32
+ output = await this.memoryClient.retrieve(memoryKey, { partition: 'coordination' });
33
+ metrics.memoryKeyExists = !!output;
34
+ }
35
+ catch (e) {
36
+ errors.push(`Failed to retrieve RED phase output from ${memoryKey}: ${e}`);
37
+ }
38
+ if (!output) {
39
+ errors.push(`RED phase output not found at ${memoryKey}`);
40
+ return { valid: false, phase: 'RED', cycleId, errors, warnings, metrics };
41
+ }
42
+ // 2. Validate schema
43
+ if (!output.cycleId || output.cycleId !== cycleId) {
44
+ errors.push(`Cycle ID mismatch: expected ${cycleId}, got ${output.cycleId}`);
45
+ }
46
+ else if (!output.testFile?.path || !output.testFile?.hash) {
47
+ errors.push('Missing testFile.path or testFile.hash in RED output');
48
+ }
49
+ else if (!output.validation || typeof output.validation.allTestsFailing !== 'boolean') {
50
+ errors.push('Missing or invalid validation.allTestsFailing in RED output');
51
+ }
52
+ else {
53
+ metrics.outputSchemaValid = true;
54
+ }
55
+ // 3. Validate tests are failing (RED phase requirement)
56
+ if (output.validation && !output.validation.allTestsFailing) {
57
+ errors.push('RED phase violation: Tests must fail initially. Found passing tests.');
58
+ }
59
+ // 4. Check handoff readiness
60
+ if (!output.readyForHandoff) {
61
+ errors.push('RED phase not ready for handoff');
62
+ }
63
+ else {
64
+ metrics.handoffReady = true;
65
+ }
66
+ // 5. Validate file integrity
67
+ if (output.testFile?.path && output.testFile?.hash) {
68
+ const fileValid = await this.validateFileHash(output.testFile.path, output.testFile.hash);
69
+ metrics.fileIntegrityValid = fileValid;
70
+ if (!fileValid) {
71
+ errors.push(`Test file hash mismatch for ${output.testFile.path}`);
72
+ }
73
+ }
74
+ return {
75
+ valid: errors.length === 0,
76
+ phase: 'RED',
77
+ cycleId,
78
+ errors,
79
+ warnings,
80
+ metrics
81
+ };
82
+ }
83
+ /**
84
+ * Validate GREEN phase output before transitioning to REFACTOR
85
+ */
86
+ async validateGREENPhase(cycleId) {
87
+ const errors = [];
88
+ const warnings = [];
89
+ const metrics = {
90
+ memoryKeyExists: false,
91
+ outputSchemaValid: false,
92
+ handoffReady: false,
93
+ fileIntegrityValid: false
94
+ };
95
+ // 1. Check memory key exists
96
+ const memoryKey = `aqe/tdd/cycle-${cycleId}/green/impl`;
97
+ let output = null;
98
+ try {
99
+ output = await this.memoryClient.retrieve(memoryKey, { partition: 'coordination' });
100
+ metrics.memoryKeyExists = !!output;
101
+ }
102
+ catch (e) {
103
+ errors.push(`Failed to retrieve GREEN phase output from ${memoryKey}: ${e}`);
104
+ }
105
+ if (!output) {
106
+ errors.push(`GREEN phase output not found at ${memoryKey}`);
107
+ return { valid: false, phase: 'GREEN', cycleId, errors, warnings, metrics };
108
+ }
109
+ // 2. Validate schema
110
+ if (!output.cycleId || output.cycleId !== cycleId) {
111
+ errors.push(`Cycle ID mismatch: expected ${cycleId}, got ${output.cycleId}`);
112
+ }
113
+ else if (!output.implFile?.path || !output.implFile?.hash) {
114
+ errors.push('Missing implFile.path or implFile.hash in GREEN output');
115
+ }
116
+ else if (!output.validation || typeof output.validation.allTestsPassing !== 'boolean') {
117
+ errors.push('Missing or invalid validation.allTestsPassing in GREEN output');
118
+ }
119
+ else {
120
+ metrics.outputSchemaValid = true;
121
+ }
122
+ // 3. Validate tests are passing (GREEN phase requirement)
123
+ if (output.validation && !output.validation.allTestsPassing) {
124
+ errors.push('GREEN phase violation: All tests must pass.');
125
+ }
126
+ // 4. Validate test file hash matches RED phase
127
+ try {
128
+ const redOutput = await this.memoryClient.retrieve(`aqe/tdd/cycle-${cycleId}/red/tests`, { partition: 'coordination' });
129
+ if (redOutput && output.testFile?.hash !== redOutput.testFile?.hash) {
130
+ errors.push(`Test file was modified between RED and GREEN phases`);
131
+ }
132
+ }
133
+ catch (e) {
134
+ warnings.push(`Could not verify RED phase for test file integrity: ${e}`);
135
+ }
136
+ // 5. Check handoff readiness
137
+ if (!output.readyForHandoff) {
138
+ errors.push('GREEN phase not ready for handoff');
139
+ }
140
+ else {
141
+ metrics.handoffReady = true;
142
+ }
143
+ // 6. Validate file integrity
144
+ if (output.implFile?.path && output.implFile?.hash) {
145
+ const fileValid = await this.validateFileHash(output.implFile.path, output.implFile.hash);
146
+ metrics.fileIntegrityValid = fileValid;
147
+ if (!fileValid) {
148
+ errors.push(`Implementation file hash mismatch for ${output.implFile.path}`);
149
+ }
150
+ }
151
+ return {
152
+ valid: errors.length === 0,
153
+ phase: 'GREEN',
154
+ cycleId,
155
+ errors,
156
+ warnings,
157
+ metrics
158
+ };
159
+ }
160
+ /**
161
+ * Validate REFACTOR phase output (final validation)
162
+ */
163
+ async validateREFACTORPhase(cycleId) {
164
+ const errors = [];
165
+ const warnings = [];
166
+ const metrics = {
167
+ memoryKeyExists: false,
168
+ outputSchemaValid: false,
169
+ handoffReady: false,
170
+ fileIntegrityValid: false
171
+ };
172
+ // 1. Check memory key exists
173
+ const memoryKey = `aqe/tdd/cycle-${cycleId}/refactor/result`;
174
+ let output = null;
175
+ try {
176
+ output = await this.memoryClient.retrieve(memoryKey, { partition: 'coordination' });
177
+ metrics.memoryKeyExists = !!output;
178
+ }
179
+ catch (e) {
180
+ errors.push(`Failed to retrieve REFACTOR phase output from ${memoryKey}: ${e}`);
181
+ }
182
+ if (!output) {
183
+ errors.push(`REFACTOR phase output not found at ${memoryKey}`);
184
+ return { valid: false, phase: 'REFACTOR', cycleId, errors, warnings, metrics };
185
+ }
186
+ // 2. Validate schema
187
+ if (!output.cycleId || output.cycleId !== cycleId) {
188
+ errors.push(`Cycle ID mismatch: expected ${cycleId}, got ${output.cycleId}`);
189
+ }
190
+ else if (!output.implFile?.path || !output.implFile?.hash) {
191
+ errors.push('Missing implFile.path or implFile.hash in REFACTOR output');
192
+ }
193
+ else {
194
+ metrics.outputSchemaValid = true;
195
+ }
196
+ // 3. Validate tests still passing after refactor
197
+ if (output.validation && !output.validation.allTestsPassing) {
198
+ errors.push('REFACTOR phase violation: Tests must still pass after refactoring.');
199
+ }
200
+ // 4. Validate test file hash unchanged throughout cycle
201
+ try {
202
+ const redOutput = await this.memoryClient.retrieve(`aqe/tdd/cycle-${cycleId}/red/tests`, { partition: 'coordination' });
203
+ if (redOutput && output.testFile?.hash !== redOutput.testFile?.hash) {
204
+ errors.push(`Test file was modified during TDD cycle - integrity violation`);
205
+ }
206
+ }
207
+ catch (e) {
208
+ warnings.push(`Could not verify RED phase for test file integrity: ${e}`);
209
+ }
210
+ // 5. Check review readiness
211
+ if (!output.readyForReview) {
212
+ warnings.push('REFACTOR phase not marked ready for review');
213
+ }
214
+ else {
215
+ metrics.handoffReady = true;
216
+ }
217
+ // 6. Validate coverage didn't decrease
218
+ try {
219
+ const greenOutput = await this.memoryClient.retrieve(`aqe/tdd/cycle-${cycleId}/green/impl`, { partition: 'coordination' });
220
+ if (greenOutput && output.validation?.coverage < greenOutput.validation?.coverage) {
221
+ warnings.push(`Coverage decreased from ${greenOutput.validation.coverage}% to ${output.validation.coverage}%`);
222
+ }
223
+ }
224
+ catch (e) {
225
+ warnings.push(`Could not verify GREEN phase for coverage comparison: ${e}`);
226
+ }
227
+ // 7. Validate file integrity
228
+ if (output.implFile?.path && output.implFile?.hash) {
229
+ const fileValid = await this.validateFileHash(output.implFile.path, output.implFile.hash);
230
+ metrics.fileIntegrityValid = fileValid;
231
+ if (!fileValid) {
232
+ errors.push(`Implementation file hash mismatch for ${output.implFile.path}`);
233
+ }
234
+ }
235
+ return {
236
+ valid: errors.length === 0,
237
+ phase: 'REFACTOR',
238
+ cycleId,
239
+ errors,
240
+ warnings,
241
+ metrics
242
+ };
243
+ }
244
+ /**
245
+ * Validate complete TDD cycle
246
+ */
247
+ async validateCompleteCycle(cycleId) {
248
+ const redResult = await this.validateREDPhase(cycleId);
249
+ const greenResult = await this.validateGREENPhase(cycleId);
250
+ const refactorResult = await this.validateREFACTORPhase(cycleId);
251
+ const allValid = redResult.valid && greenResult.valid && refactorResult.valid;
252
+ const totalErrors = redResult.errors.length + greenResult.errors.length + refactorResult.errors.length;
253
+ return {
254
+ valid: allValid,
255
+ phases: [redResult, greenResult, refactorResult],
256
+ summary: allValid
257
+ ? `TDD cycle ${cycleId} completed successfully with full coordination`
258
+ : `TDD cycle ${cycleId} has ${totalErrors} validation errors`
259
+ };
260
+ }
261
+ /**
262
+ * Calculate SHA256 hash of a file
263
+ */
264
+ static calculateFileHash(filePath) {
265
+ if (!(0, fs_1.existsSync)(filePath)) {
266
+ throw new Error(`File not found: ${filePath}`);
267
+ }
268
+ const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
269
+ return (0, crypto_1.createHash)('sha256').update(content).digest('hex');
270
+ }
271
+ /**
272
+ * Validate file hash matches expected
273
+ */
274
+ async validateFileHash(filePath, expectedHash) {
275
+ try {
276
+ const actualHash = TDDPhaseValidator.calculateFileHash(filePath);
277
+ return actualHash === expectedHash;
278
+ }
279
+ catch {
280
+ return false;
281
+ }
282
+ }
283
+ }
284
+ exports.TDDPhaseValidator = TDDPhaseValidator;
285
+ // Export for use in hooks system
286
+ exports.default = TDDPhaseValidator;
287
+ //# sourceMappingURL=TDDPhaseValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDDPhaseValidator.js","sourceRoot":"","sources":["../../../../src/core/hooks/validators/TDDPhaseValidator.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  /**
2
- * Post-Task Validators - Output, Quality, Coverage, and Performance Validation
2
+ * Post-Task Validators - Output, Quality, Coverage, Performance, and TDD Phase Validation
3
3
  */
4
4
  export { OutputValidator } from './OutputValidator';
5
5
  export { QualityValidator } from './QualityValidator';
6
6
  export { CoverageValidator } from './CoverageValidator';
7
7
  export { PerformanceValidator } from './PerformanceValidator';
8
+ export { TDDPhaseValidator } from './TDDPhaseValidator';
8
9
  export type { OutputValidationOptions, OutputValidationResult } from './OutputValidator';
9
10
  export type { QualityValidationOptions, QualityValidationResult } from './QualityValidator';
10
11
  export type { CoverageValidationOptions, CoverageValidationResult } from './CoverageValidator';
11
12
  export type { PerformanceValidationOptions, PerformanceValidationResult } from './PerformanceValidator';
13
+ export type { TDDValidationResult, REDPhaseOutput, GREENPhaseOutput, REFACTORPhaseOutput, MemoryClient } from './TDDPhaseValidator';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/validators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/validators/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACb,MAAM,qBAAqB,CAAC"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  /**
3
- * Post-Task Validators - Output, Quality, Coverage, and Performance Validation
3
+ * Post-Task Validators - Output, Quality, Coverage, Performance, and TDD Phase Validation
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PerformanceValidator = exports.CoverageValidator = exports.QualityValidator = exports.OutputValidator = void 0;
6
+ exports.TDDPhaseValidator = exports.PerformanceValidator = exports.CoverageValidator = exports.QualityValidator = exports.OutputValidator = void 0;
7
7
  var OutputValidator_1 = require("./OutputValidator");
8
8
  Object.defineProperty(exports, "OutputValidator", { enumerable: true, get: function () { return OutputValidator_1.OutputValidator; } });
9
9
  var QualityValidator_1 = require("./QualityValidator");
@@ -12,4 +12,6 @@ var CoverageValidator_1 = require("./CoverageValidator");
12
12
  Object.defineProperty(exports, "CoverageValidator", { enumerable: true, get: function () { return CoverageValidator_1.CoverageValidator; } });
13
13
  var PerformanceValidator_1 = require("./PerformanceValidator");
14
14
  Object.defineProperty(exports, "PerformanceValidator", { enumerable: true, get: function () { return PerformanceValidator_1.PerformanceValidator; } });
15
+ var TDDPhaseValidator_1 = require("./TDDPhaseValidator");
16
+ Object.defineProperty(exports, "TDDPhaseValidator", { enumerable: true, get: function () { return TDDPhaseValidator_1.TDDPhaseValidator; } });
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/hooks/validators/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/hooks/validators/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * MemoryManagerFactory - Singleton Pattern for Shared Memory Management
3
+ *
4
+ * Resolves the persistence issue where multiple SwarmMemoryManager instances
5
+ * cause data fragmentation - data written to one instance is not visible to others.
6
+ *
7
+ * Key Issues Fixed:
8
+ * 1. Multiple isolated instances (MCP server, AgentRegistry, Phase2Tools each created their own)
9
+ * 2. sql.js persistence model requires explicit save()/close() calls
10
+ * 3. Ensures all components share the same database connection
11
+ *
12
+ * @module MemoryManagerFactory
13
+ * @version 1.0.0
14
+ */
15
+ import { SwarmMemoryManager } from './SwarmMemoryManager.js';
16
+ /**
17
+ * Resolve database path - ensures we use an absolute path in user's project
18
+ *
19
+ * Database should be in the USER'S project directory (process.cwd()),
20
+ * NOT in the package installation directory.
21
+ */
22
+ export declare function resolveDbPath(inputPath?: string): string;
23
+ /**
24
+ * Ensure the database directory exists
25
+ */
26
+ export declare function ensureDbDirectoryExists(dbPath: string): void;
27
+ /**
28
+ * Get the shared SwarmMemoryManager singleton
29
+ *
30
+ * Ensures all components use the same database connection for consistent
31
+ * persistence across MCP server, AgentRegistry, handlers, and agents.
32
+ *
33
+ * @param dbPath Optional database path (relative paths resolved from cwd)
34
+ * @returns Shared SwarmMemoryManager instance
35
+ */
36
+ export declare function getSharedMemoryManager(dbPath?: string): SwarmMemoryManager;
37
+ /**
38
+ * Initialize the shared memory manager asynchronously
39
+ *
40
+ * This method ensures only ONE initialization happens even if called multiple times.
41
+ * All callers will receive the same initialized instance.
42
+ *
43
+ * @param dbPath Optional database path
44
+ * @returns Promise that resolves to the initialized SwarmMemoryManager
45
+ */
46
+ export declare function initializeSharedMemoryManager(dbPath?: string): Promise<SwarmMemoryManager>;
47
+ /**
48
+ * Check if shared memory manager is initialized
49
+ */
50
+ export declare function hasSharedMemoryManager(): boolean;
51
+ /**
52
+ * Get the path of the current shared memory manager
53
+ */
54
+ export declare function getSharedMemoryManagerPath(): string | null;
55
+ /**
56
+ * Reset the shared memory manager singleton
57
+ *
58
+ * Use with caution - this should only be called during testing or
59
+ * when explicitly changing database paths.
60
+ */
61
+ export declare function resetSharedMemoryManager(): Promise<void>;
62
+ /**
63
+ * Get database path info for debugging
64
+ */
65
+ export declare function getDbPathInfo(): {
66
+ defaultPath: string;
67
+ currentSharedPath: string | null;
68
+ processCwd: string;
69
+ envPath: string | undefined;
70
+ };
71
+ /**
72
+ * Setup process exit handlers to ensure database is properly closed
73
+ *
74
+ * This is critical for sql.js which only persists to disk on close()
75
+ */
76
+ export declare function setupExitHandlers(): void;
77
+ //# sourceMappingURL=MemoryManagerFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryManagerFactory.d.ts","sourceRoot":"","sources":["../../../src/core/memory/MemoryManagerFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAO7D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CA6BxD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAW5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB,CA0B1E;AAED;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8BhG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAE1D;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAY9D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,CAOA;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CA2CxC"}