sdd-mcp-server 3.2.0 → 3.4.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 (64) hide show
  1. package/README.md +63 -27
  2. package/dist/adapters/cli/SDDToolAdapter.d.ts +5 -1
  3. package/dist/adapters/cli/SDDToolAdapter.js +108 -15
  4. package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
  5. package/dist/application/services/ContextCompactionService.d.ts +39 -0
  6. package/dist/application/services/ContextCompactionService.js +253 -0
  7. package/dist/application/services/ContextCompactionService.js.map +1 -0
  8. package/dist/application/services/ProjectService.d.ts +7 -1
  9. package/dist/application/services/ProjectService.js +56 -1
  10. package/dist/application/services/ProjectService.js.map +1 -1
  11. package/dist/application/services/TemplateService.js +27 -5
  12. package/dist/application/services/TemplateService.js.map +1 -1
  13. package/dist/application/services/WorkflowEngineService.d.ts +3 -1
  14. package/dist/application/services/WorkflowEngineService.js +20 -5
  15. package/dist/application/services/WorkflowEngineService.js.map +1 -1
  16. package/dist/application/services/WorkflowService.js +8 -0
  17. package/dist/application/services/WorkflowService.js.map +1 -1
  18. package/dist/application/services/staticSteering.js +10 -9
  19. package/dist/application/services/staticSteering.js.map +1 -1
  20. package/dist/cli/install-skills.d.ts +10 -0
  21. package/dist/cli/install-skills.js +79 -64
  22. package/dist/cli/install-skills.js.map +1 -1
  23. package/dist/cli/sdd-mcp-cli.js +7 -0
  24. package/dist/cli/sdd-mcp-cli.js.map +1 -1
  25. package/dist/cli/tool-support/antigravity.d.ts +18 -0
  26. package/dist/cli/tool-support/antigravity.js +79 -0
  27. package/dist/cli/tool-support/antigravity.js.map +1 -0
  28. package/dist/cli/tool-support/codex.d.ts +43 -0
  29. package/dist/cli/tool-support/codex.js +91 -0
  30. package/dist/cli/tool-support/codex.js.map +1 -0
  31. package/dist/cli/tool-support/index.d.ts +4 -0
  32. package/dist/cli/tool-support/index.js +3 -0
  33. package/dist/cli/tool-support/index.js.map +1 -0
  34. package/dist/cli/utils/find-package-root.d.ts +23 -0
  35. package/dist/cli/utils/find-package-root.js +87 -0
  36. package/dist/cli/utils/find-package-root.js.map +1 -0
  37. package/dist/domain/services/DomainService.d.ts +1 -0
  38. package/dist/domain/services/DomainService.js +12 -2
  39. package/dist/domain/services/DomainService.js.map +1 -1
  40. package/dist/domain/types.d.ts +13 -0
  41. package/dist/domain/types.js.map +1 -1
  42. package/dist/domain/workflow/WorkflowStateMachine.js +7 -2
  43. package/dist/domain/workflow/WorkflowStateMachine.js.map +1 -1
  44. package/dist/index.js +341 -20
  45. package/dist/index.js.map +1 -1
  46. package/dist/infrastructure/di/container.js +4 -0
  47. package/dist/infrastructure/di/container.js.map +1 -1
  48. package/dist/infrastructure/di/types.d.ts +1 -0
  49. package/dist/infrastructure/di/types.js +1 -0
  50. package/dist/infrastructure/di/types.js.map +1 -1
  51. package/dist/infrastructure/mcp/ResourceManager.js +21 -1
  52. package/dist/infrastructure/mcp/ResourceManager.js.map +1 -1
  53. package/dist/infrastructure/mcp/ToolRegistry.js +34 -2
  54. package/dist/infrastructure/mcp/ToolRegistry.js.map +1 -1
  55. package/dist/infrastructure/schemas/project.schema.d.ts +47 -4
  56. package/dist/infrastructure/schemas/project.schema.js +39 -2
  57. package/dist/infrastructure/schemas/project.schema.js.map +1 -1
  58. package/dist/utils/sddPaths.d.ts +69 -0
  59. package/dist/utils/sddPaths.js +138 -0
  60. package/dist/utils/sddPaths.js.map +1 -0
  61. package/package.json +2 -2
  62. package/skills/sdd-implement/SKILL.md +6 -4
  63. package/skills/sdd-tasks/SKILL.md +20 -7
  64. package/templates/codex-AGENTS.md +22 -0
@@ -0,0 +1,39 @@
1
+ import { FileSystemPort, LoggerPort } from '../../domain/ports.js';
2
+ import { PhaseApprovals, Project } from '../../domain/types.js';
3
+ export type ContextLoadMode = 'compact' | 'standard' | 'full';
4
+ export type ApprovablePhase = keyof PhaseApprovals;
5
+ export interface ContextSizeEstimate {
6
+ readonly sourceCharacters: number;
7
+ readonly sourceTokens: number;
8
+ readonly compactCharacters: number;
9
+ readonly compactTokens: number;
10
+ readonly reductionPercentage: number;
11
+ }
12
+ export interface HandoffResult {
13
+ readonly path: string;
14
+ readonly content: string;
15
+ readonly estimate: ContextSizeEstimate;
16
+ }
17
+ export declare class ContextCompactionService {
18
+ private readonly fileSystem;
19
+ private readonly logger;
20
+ constructor(fileSystem: FileSystemPort, logger: LoggerPort);
21
+ generatePhaseHandoff(project: Project, approvedPhase: ApprovablePhase): Promise<HandoffResult>;
22
+ loadContext(project: Project, mode?: ContextLoadMode): Promise<string>;
23
+ estimateContextSize(sourceCharacters: number, compactCharacters: number): ContextSizeEstimate;
24
+ private loadFullContext;
25
+ private buildHandoff;
26
+ private summarizeDocument;
27
+ private loadAvailableDocuments;
28
+ private readOptionalFile;
29
+ private normalizeLines;
30
+ private extractHeadings;
31
+ private extractBullets;
32
+ private extractRequirementLikeLines;
33
+ private unique;
34
+ private getNextSteps;
35
+ private formatApproval;
36
+ private estimateTokens;
37
+ private getSpecDir;
38
+ private getContextDir;
39
+ }
@@ -0,0 +1,253 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { injectable, inject } from 'inversify';
14
+ import { v4 as uuidv4 } from 'uuid';
15
+ import { TYPES } from '../../infrastructure/di/types.js';
16
+ let ContextCompactionService = class ContextCompactionService {
17
+ fileSystem;
18
+ logger;
19
+ constructor(fileSystem, logger) {
20
+ this.fileSystem = fileSystem;
21
+ this.logger = logger;
22
+ }
23
+ async generatePhaseHandoff(project, approvedPhase) {
24
+ const correlationId = uuidv4();
25
+ const contextDir = this.getContextDir(project);
26
+ const handoffPath = `${contextDir}/handoff.md`;
27
+ const phaseHandoffPath = `${contextDir}/${approvedPhase}-handoff.md`;
28
+ this.logger.info('Generating compact workflow handoff', {
29
+ correlationId,
30
+ projectId: project.id,
31
+ approvedPhase
32
+ });
33
+ await this.fileSystem.mkdir(contextDir);
34
+ const documents = await this.loadAvailableDocuments(project);
35
+ const sourceCharacters = documents.reduce((sum, doc) => sum + doc.content.length, 0);
36
+ const content = this.buildHandoff(project, approvedPhase, documents, sourceCharacters);
37
+ await this.fileSystem.writeFile(handoffPath, content);
38
+ await this.fileSystem.writeFile(phaseHandoffPath, content);
39
+ const estimate = this.estimateContextSize(sourceCharacters, content.length);
40
+ this.logger.info('Compact workflow handoff generated', {
41
+ correlationId,
42
+ projectId: project.id,
43
+ approvedPhase,
44
+ sourceTokens: estimate.sourceTokens,
45
+ compactTokens: estimate.compactTokens,
46
+ reductionPercentage: estimate.reductionPercentage
47
+ });
48
+ return {
49
+ path: handoffPath,
50
+ content,
51
+ estimate
52
+ };
53
+ }
54
+ async loadContext(project, mode = 'compact') {
55
+ if (mode === 'full') {
56
+ return this.loadFullContext(project);
57
+ }
58
+ const handoffPath = `${this.getContextDir(project)}/handoff.md`;
59
+ if (await this.fileSystem.exists(handoffPath)) {
60
+ const handoff = await this.fileSystem.readFile(handoffPath);
61
+ if (mode === 'standard') {
62
+ const spec = await this.readOptionalFile(`${this.getSpecDir(project)}/spec.json`);
63
+ return [
64
+ handoff,
65
+ spec ? '\n## Current Spec Metadata\n\n```json\n' + spec + '\n```' : ''
66
+ ].filter(Boolean).join('\n');
67
+ }
68
+ return handoff;
69
+ }
70
+ const documents = await this.loadAvailableDocuments(project);
71
+ const sourceCharacters = documents.reduce((sum, doc) => sum + doc.content.length, 0);
72
+ return this.buildHandoff(project, 'requirements', documents, sourceCharacters);
73
+ }
74
+ estimateContextSize(sourceCharacters, compactCharacters) {
75
+ const sourceTokens = this.estimateTokens(sourceCharacters);
76
+ const compactTokens = this.estimateTokens(compactCharacters);
77
+ const reductionPercentage = sourceTokens === 0
78
+ ? 0
79
+ : Math.max(0, Math.round((1 - compactTokens / sourceTokens) * 100));
80
+ return {
81
+ sourceCharacters,
82
+ sourceTokens,
83
+ compactCharacters,
84
+ compactTokens,
85
+ reductionPercentage
86
+ };
87
+ }
88
+ async loadFullContext(project) {
89
+ const documents = await this.loadAvailableDocuments(project);
90
+ const sections = documents.map((doc) => `## ${doc.name}\n\n${doc.content}`);
91
+ return [`# Full SDD Context: ${project.name}`, ...sections].join('\n\n');
92
+ }
93
+ buildHandoff(project, approvedPhase, documents, sourceCharacters) {
94
+ const sourceTokens = this.estimateTokens(sourceCharacters);
95
+ const sections = documents.map((doc) => this.summarizeDocument(doc));
96
+ const approvals = project.metadata.approvals;
97
+ const checkpoint = project.metadata.checkpoints?.testCases;
98
+ const nextSteps = this.getNextSteps(approvedPhase, checkpoint?.required === true && !checkpoint.reviewed);
99
+ const draft = [
100
+ `# SDD Context Handoff: ${project.name}`,
101
+ '',
102
+ `Generated: ${new Date().toISOString()}`,
103
+ `Approved phase: ${approvedPhase}`,
104
+ '',
105
+ '## Workflow State',
106
+ '',
107
+ `- Requirements: ${this.formatApproval(approvals.requirements)}`,
108
+ `- Design: ${this.formatApproval(approvals.design)}`,
109
+ `- Tasks: ${this.formatApproval(approvals.tasks)}`,
110
+ checkpoint?.required
111
+ ? `- TDD test-case review: ${checkpoint.reviewed ? 'reviewed' : 'pending'}`
112
+ : '- TDD test-case review: not required',
113
+ '',
114
+ '## Compact Phase Summaries',
115
+ '',
116
+ sections.join('\n\n'),
117
+ '',
118
+ '## Next Actions',
119
+ '',
120
+ ...nextSteps.map((step) => `- ${step}`),
121
+ '',
122
+ '## Source References',
123
+ '',
124
+ ...documents.map((doc) => `- ${doc.path}`),
125
+ '',
126
+ '## Context Budget Estimate',
127
+ '',
128
+ `- Full source context: ~${sourceTokens} tokens`,
129
+ `- Handoff context: ~${this.estimateTokens(sourceCharacters > 0 ? Math.min(sourceCharacters, 1) : 0)} tokens before final write estimate`,
130
+ '- Use `sdd-context-load` default compact mode for routine continuation.',
131
+ '- Use `sdd-context-load` with `mode: "full"` only for audits or ambiguous decisions.'
132
+ ].join('\n');
133
+ const estimate = this.estimateContextSize(sourceCharacters, draft.length);
134
+ return draft.replace(/- Handoff context: ~\d+ tokens before final write estimate/, `- Handoff context: ~${estimate.compactTokens} tokens`);
135
+ }
136
+ summarizeDocument(doc) {
137
+ const lines = this.normalizeLines(doc.content);
138
+ const headings = this.extractHeadings(lines);
139
+ const bullets = this.extractBullets(lines);
140
+ const requirements = this.extractRequirementLikeLines(lines);
141
+ return [
142
+ `### ${doc.name}`,
143
+ '',
144
+ headings.length > 0 ? '**Key sections:**' : '',
145
+ ...headings.slice(0, 8).map((line) => `- ${line}`),
146
+ bullets.length > 0 ? '\n**Important points:**' : '',
147
+ ...bullets.slice(0, 8).map((line) => `- ${line}`),
148
+ requirements.length > 0 ? '\n**Constraints and acceptance signals:**' : '',
149
+ ...requirements.slice(0, 8).map((line) => `- ${line}`),
150
+ headings.length === 0 && bullets.length === 0 && requirements.length === 0
151
+ ? '- No structured summary points found; open source document if this phase is active.'
152
+ : ''
153
+ ].filter(Boolean).join('\n');
154
+ }
155
+ async loadAvailableDocuments(project) {
156
+ const specDir = this.getSpecDir(project);
157
+ const names = ['requirements.md', 'design.md', 'tasks.md', 'spec.json'];
158
+ const documents = [];
159
+ for (const name of names) {
160
+ const path = `${specDir}/${name}`;
161
+ const content = await this.readOptionalFile(path);
162
+ if (content) {
163
+ documents.push({ name, path, content });
164
+ }
165
+ }
166
+ return documents;
167
+ }
168
+ async readOptionalFile(path) {
169
+ try {
170
+ if (!(await this.fileSystem.exists(path))) {
171
+ return null;
172
+ }
173
+ return await this.fileSystem.readFile(path);
174
+ }
175
+ catch {
176
+ return null;
177
+ }
178
+ }
179
+ normalizeLines(content) {
180
+ return content
181
+ .split(/\r?\n/)
182
+ .map((line) => line.trim())
183
+ .filter((line) => line.length > 0 && !line.startsWith('```'));
184
+ }
185
+ extractHeadings(lines) {
186
+ return this.unique(lines
187
+ .filter((line) => /^#{1,4}\s+/.test(line))
188
+ .map((line) => line.replace(/^#{1,4}\s+/, '').trim()));
189
+ }
190
+ extractBullets(lines) {
191
+ return this.unique(lines
192
+ .filter((line) => /^[-*]\s+/.test(line) || /^\d+\.\s+/.test(line))
193
+ .map((line) => line.replace(/^[-*]\s+/, '').replace(/^\d+\.\s+/, '').trim())
194
+ .filter((line) => line.length > 0 && line.length <= 220));
195
+ }
196
+ extractRequirementLikeLines(lines) {
197
+ const keywords = /\b(SHALL|MUST|WHEN|IF|THEN|WHERE|constraint|risk|security|performance|error|edge case)\b/i;
198
+ return this.unique(lines
199
+ .filter((line) => keywords.test(line))
200
+ .map((line) => line.replace(/^[-*]\s+/, '').replace(/^\d+\.\s+/, '').trim())
201
+ .filter((line) => line.length <= 240));
202
+ }
203
+ unique(lines) {
204
+ const seen = new Set();
205
+ const result = [];
206
+ for (const line of lines) {
207
+ const key = line.toLowerCase();
208
+ if (!seen.has(key)) {
209
+ seen.add(key);
210
+ result.push(line);
211
+ }
212
+ }
213
+ return result;
214
+ }
215
+ getNextSteps(approvedPhase, testReviewPending) {
216
+ if (approvedPhase === 'requirements') {
217
+ return ['Generate or review design using the approved requirements handoff.'];
218
+ }
219
+ if (approvedPhase === 'design') {
220
+ return ['Generate TDD task breakdown from the approved design handoff.'];
221
+ }
222
+ if (testReviewPending) {
223
+ return ['Review TDD test cases, then run sdd-review-test-cases before approving tasks.'];
224
+ }
225
+ return ['Begin implementation with compact context loaded; open full docs only for ambiguous details.'];
226
+ }
227
+ formatApproval(status) {
228
+ if (status.generated && status.approved) {
229
+ return 'generated, approved';
230
+ }
231
+ if (status.generated) {
232
+ return 'generated, pending approval';
233
+ }
234
+ return 'not generated';
235
+ }
236
+ estimateTokens(characters) {
237
+ return Math.max(1, Math.ceil(characters / 4));
238
+ }
239
+ getSpecDir(project) {
240
+ return `${project.path}/.spec/specs/${project.name}`;
241
+ }
242
+ getContextDir(project) {
243
+ return `${this.getSpecDir(project)}/context`;
244
+ }
245
+ };
246
+ ContextCompactionService = __decorate([
247
+ injectable(),
248
+ __param(0, inject(TYPES.FileSystemPort)),
249
+ __param(1, inject(TYPES.LoggerPort)),
250
+ __metadata("design:paramtypes", [Object, Object])
251
+ ], ContextCompactionService);
252
+ export { ContextCompactionService };
253
+ //# sourceMappingURL=ContextCompactionService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextCompactionService.js","sourceRoot":"","sources":["../../../src/application/services/ContextCompactionService.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@ export declare class ProjectService {
6
6
  private readonly validation;
7
7
  private readonly logger;
8
8
  constructor(projectRepository: ProjectRepository, fileSystem: FileSystemPort, validation: ValidationPort, logger: LoggerPort);
9
- createProject(name: string, path: string, language?: string): Promise<Project>;
9
+ createProject(name: string, path: string, language?: string, options?: {
10
+ reviewTestCases?: boolean;
11
+ }): Promise<Project>;
10
12
  getProject(id: string): Promise<Project | null>;
11
13
  getProjectByPath(path: string): Promise<Project | null>;
12
14
  listProjects(): Promise<Project[]>;
@@ -15,5 +17,9 @@ export declare class ProjectService {
15
17
  generated: boolean;
16
18
  approved: boolean;
17
19
  }>): Promise<Project>;
20
+ updateTestCaseReviewCheckpoint(projectId: string, checkpoint: Partial<{
21
+ required: boolean;
22
+ reviewed: boolean;
23
+ }>): Promise<Project>;
18
24
  private createProjectStructure;
19
25
  }
@@ -26,7 +26,7 @@ let ProjectService = class ProjectService {
26
26
  this.validation = validation;
27
27
  this.logger = logger;
28
28
  }
29
- async createProject(name, path, language = 'en') {
29
+ async createProject(name, path, language = 'en', options = {}) {
30
30
  const correlationId = uuidv4();
31
31
  this.logger.info('Creating new project', {
32
32
  correlationId,
@@ -47,6 +47,15 @@ let ProjectService = class ProjectService {
47
47
  requirements: { generated: false, approved: false },
48
48
  design: { generated: false, approved: false },
49
49
  tasks: { generated: false, approved: false }
50
+ },
51
+ workflowOptions: {
52
+ reviewTestCases: options.reviewTestCases ?? false
53
+ },
54
+ checkpoints: {
55
+ testCases: {
56
+ required: options.reviewTestCases ?? false,
57
+ reviewed: !(options.reviewTestCases ?? false)
58
+ }
50
59
  }
51
60
  }
52
61
  };
@@ -134,6 +143,52 @@ let ProjectService = class ProjectService {
134
143
  });
135
144
  return updatedProject;
136
145
  }
146
+ async updateTestCaseReviewCheckpoint(projectId, checkpoint) {
147
+ const correlationId = uuidv4();
148
+ this.logger.info('Updating test case review checkpoint', {
149
+ correlationId,
150
+ projectId,
151
+ checkpoint
152
+ });
153
+ const project = await this.projectRepository.findById(projectId);
154
+ if (!project) {
155
+ throw new Error(`Project not found: ${projectId}`);
156
+ }
157
+ const current = project.metadata.checkpoints?.testCases ?? {
158
+ required: false,
159
+ reviewed: true
160
+ };
161
+ const required = checkpoint.required ?? current.required;
162
+ const reviewed = checkpoint.reviewed ?? (required ? current.reviewed : true);
163
+ const updatedProject = {
164
+ ...project,
165
+ metadata: {
166
+ ...project.metadata,
167
+ updatedAt: new Date(),
168
+ workflowOptions: {
169
+ ...project.metadata.workflowOptions,
170
+ reviewTestCases: required
171
+ },
172
+ checkpoints: {
173
+ ...project.metadata.checkpoints,
174
+ testCases: {
175
+ required,
176
+ reviewed,
177
+ reviewedAt: reviewed ? new Date() : undefined
178
+ }
179
+ }
180
+ }
181
+ };
182
+ await this.validation.validate(updatedProject, projectSchema);
183
+ await this.projectRepository.save(updatedProject);
184
+ this.logger.info('Test case review checkpoint updated successfully', {
185
+ correlationId,
186
+ projectId,
187
+ required,
188
+ reviewed
189
+ });
190
+ return updatedProject;
191
+ }
137
192
  async createProjectStructure(basePath) {
138
193
  const directories = [
139
194
  `${basePath}/.spec/specs`,
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectService.js","sourceRoot":"","sources":["../../../src/application/services/ProjectService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectService.js","sourceRoot":"","sources":["../../../src/application/services/ProjectService.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  import { injectable, inject } from 'inversify';
15
15
  import { v4 as uuidv4 } from 'uuid';
16
16
  import { TYPES } from '../../infrastructure/di/types.js';
17
+ import { WorkflowDomainService } from '../../domain/services/DomainService.js';
17
18
  let TemplateService = class TemplateService {
18
19
  templateEngine;
19
20
  fileSystem;
@@ -56,10 +57,34 @@ let TemplateService = class TemplateService {
56
57
  "approved": {{project.metadata.approvals.tasks.approved}}
57
58
  }
58
59
  },
60
+ "workflow_options": {
61
+ "review_test_cases": {{project.metadata.workflowOptions.reviewTestCases}}
62
+ },
63
+ "checkpoints": {
64
+ "test_cases": {
65
+ "required": {{project.metadata.checkpoints.testCases.required}},
66
+ "reviewed": {{project.metadata.checkpoints.testCases.reviewed}}
67
+ }
68
+ },
59
69
  "ready_for_implementation": {{isReadyForImplementation project}}
60
70
  }`;
71
+ const normalizedProject = {
72
+ ...project,
73
+ metadata: {
74
+ ...project.metadata,
75
+ workflowOptions: project.metadata.workflowOptions ?? {
76
+ reviewTestCases: false
77
+ },
78
+ checkpoints: project.metadata.checkpoints ?? {
79
+ testCases: {
80
+ required: false,
81
+ reviewed: true
82
+ }
83
+ }
84
+ }
85
+ };
61
86
  const data = {
62
- project,
87
+ project: normalizedProject,
63
88
  timestamp: new Date().toISOString()
64
89
  };
65
90
  const content = await this.templateEngine.render(template, data);
@@ -477,10 +502,7 @@ ${tasks.deployment.map((task, index) => `- [ ] ${index + 1}. ${task.title}
477
502
  }
478
503
  registerCustomHelpers() {
479
504
  this.templateEngine.registerHelper('isReadyForImplementation', (project) => {
480
- const { approvals } = project.metadata;
481
- return (approvals.requirements.approved &&
482
- approvals.design.approved &&
483
- approvals.tasks.approved).toString();
505
+ return WorkflowDomainService.isReadyForImplementation(project).toString();
484
506
  });
485
507
  this.templateEngine.registerHelper('formatDate', (date) => {
486
508
  return date.toISOString();
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateService.js","sourceRoot":"","sources":["../../../src/application/services/TemplateService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TemplateService.js","sourceRoot":"","sources":["../../../src/application/services/TemplateService.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { ProjectRepository, LoggerPort, ValidationPort } from '../../domain/port
3
3
  import { WorkflowStateMachine, WorkflowAuditEntry } from '../../domain/workflow/WorkflowStateMachine.js';
4
4
  import { ProjectService } from './ProjectService.js';
5
5
  import { TemplateService } from './TemplateService.js';
6
+ import { ContextCompactionService } from './ContextCompactionService.js';
6
7
  export interface WorkflowProgressionResult {
7
8
  success: boolean;
8
9
  updatedProject?: Project;
@@ -20,10 +21,11 @@ export declare class WorkflowEngineService {
20
21
  private readonly projectRepository;
21
22
  private readonly projectService;
22
23
  private readonly templateService;
24
+ private readonly contextCompactionService;
23
25
  private readonly logger;
24
26
  private readonly validation;
25
27
  private readonly stateMachine;
26
- constructor(projectRepository: ProjectRepository, projectService: ProjectService, templateService: TemplateService, logger: LoggerPort, validation: ValidationPort);
28
+ constructor(projectRepository: ProjectRepository, projectService: ProjectService, templateService: TemplateService, contextCompactionService: ContextCompactionService, logger: LoggerPort, validation: ValidationPort);
27
29
  progressToNextPhase(projectId: string, triggeredBy: string): Promise<WorkflowProgressionResult>;
28
30
  transitionToPhase(projectId: string, targetPhase: WorkflowPhase, triggeredBy: string): Promise<WorkflowProgressionResult>;
29
31
  rollbackToPreviousPhase(projectId: string, triggeredBy: string): Promise<WorkflowRollbackResult>;