ai-sdlc 0.3.0 → 0.3.1-alpha.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 (84) hide show
  1. package/README.md +78 -6
  2. package/dist/agents/implementation.d.ts +5 -0
  3. package/dist/agents/implementation.d.ts.map +1 -1
  4. package/dist/agents/implementation.js +78 -9
  5. package/dist/agents/implementation.js.map +1 -1
  6. package/dist/agents/planning.d.ts.map +1 -1
  7. package/dist/agents/planning.js +10 -3
  8. package/dist/agents/planning.js.map +1 -1
  9. package/dist/agents/research.d.ts.map +1 -1
  10. package/dist/agents/research.js +14 -6
  11. package/dist/agents/research.js.map +1 -1
  12. package/dist/agents/review.d.ts +81 -0
  13. package/dist/agents/review.d.ts.map +1 -1
  14. package/dist/agents/review.js +405 -39
  15. package/dist/agents/review.js.map +1 -1
  16. package/dist/agents/single-task.d.ts +1 -1
  17. package/dist/agents/single-task.d.ts.map +1 -1
  18. package/dist/agents/single-task.js +1 -1
  19. package/dist/cli/batch-processor.d.ts +64 -0
  20. package/dist/cli/batch-processor.d.ts.map +1 -0
  21. package/dist/cli/batch-processor.js +85 -0
  22. package/dist/cli/batch-processor.js.map +1 -0
  23. package/dist/cli/batch-validator.d.ts +80 -0
  24. package/dist/cli/batch-validator.d.ts.map +1 -0
  25. package/dist/cli/batch-validator.js +121 -0
  26. package/dist/cli/batch-validator.js.map +1 -0
  27. package/dist/cli/commands.d.ts +7 -0
  28. package/dist/cli/commands.d.ts.map +1 -1
  29. package/dist/cli/commands.js +285 -1
  30. package/dist/cli/commands.js.map +1 -1
  31. package/dist/cli/dependency-resolver.d.ts +49 -0
  32. package/dist/cli/dependency-resolver.d.ts.map +1 -0
  33. package/dist/cli/dependency-resolver.js +133 -0
  34. package/dist/cli/dependency-resolver.js.map +1 -0
  35. package/dist/cli/epic-processor.d.ts +16 -0
  36. package/dist/cli/epic-processor.d.ts.map +1 -0
  37. package/dist/cli/epic-processor.js +489 -0
  38. package/dist/cli/epic-processor.js.map +1 -0
  39. package/dist/cli/formatting.d.ts +15 -0
  40. package/dist/cli/formatting.d.ts.map +1 -1
  41. package/dist/cli/formatting.js +19 -0
  42. package/dist/cli/formatting.js.map +1 -1
  43. package/dist/cli/progress-dashboard.d.ts +58 -0
  44. package/dist/cli/progress-dashboard.d.ts.map +1 -0
  45. package/dist/cli/progress-dashboard.js +216 -0
  46. package/dist/cli/progress-dashboard.js.map +1 -0
  47. package/dist/cli/table-renderer.d.ts.map +1 -1
  48. package/dist/cli/table-renderer.js +5 -1
  49. package/dist/cli/table-renderer.js.map +1 -1
  50. package/dist/core/agent-executor.d.ts +13 -0
  51. package/dist/core/agent-executor.d.ts.map +1 -0
  52. package/dist/core/agent-executor.js +153 -0
  53. package/dist/core/agent-executor.js.map +1 -0
  54. package/dist/core/config.d.ts +16 -1
  55. package/dist/core/config.d.ts.map +1 -1
  56. package/dist/core/config.js +113 -0
  57. package/dist/core/config.js.map +1 -1
  58. package/dist/core/git-utils.d.ts +19 -0
  59. package/dist/core/git-utils.d.ts.map +1 -1
  60. package/dist/core/git-utils.js +58 -0
  61. package/dist/core/git-utils.js.map +1 -1
  62. package/dist/core/kanban.d.ts +125 -1
  63. package/dist/core/kanban.d.ts.map +1 -1
  64. package/dist/core/kanban.js +371 -4
  65. package/dist/core/kanban.js.map +1 -1
  66. package/dist/core/orchestrator.d.ts +63 -0
  67. package/dist/core/orchestrator.d.ts.map +1 -0
  68. package/dist/core/orchestrator.js +320 -0
  69. package/dist/core/orchestrator.js.map +1 -0
  70. package/dist/core/story.d.ts +84 -0
  71. package/dist/core/story.d.ts.map +1 -1
  72. package/dist/core/story.js +159 -14
  73. package/dist/core/story.js.map +1 -1
  74. package/dist/core/worktree.d.ts +7 -0
  75. package/dist/core/worktree.d.ts.map +1 -1
  76. package/dist/core/worktree.js +44 -0
  77. package/dist/core/worktree.js.map +1 -1
  78. package/dist/index.js +53 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/types/index.d.ts +252 -0
  81. package/dist/types/index.d.ts.map +1 -1
  82. package/dist/types/index.js +23 -0
  83. package/dist/types/index.js.map +1 -1
  84. package/package.json +1 -1
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Multi-Process Orchestrator
3
+ *
4
+ * Manages concurrent execution of multiple stories via isolated child processes.
5
+ * Each story runs in its own git worktree with its own Node.js process.
6
+ *
7
+ * Key Features:
8
+ * - Spawns child processes with concurrency limiting
9
+ * - IPC communication for status updates and health checks
10
+ * - Graceful shutdown with SIGTERM → SIGKILL fallback
11
+ * - Error isolation (child crash doesn't affect parent or siblings)
12
+ * - Worktree lifecycle management
13
+ */
14
+ import type { ProcessOrchestratorOptions, ProcessExecutionResult, Story } from '../types/index.js';
15
+ /**
16
+ * Multi-Process Orchestrator
17
+ *
18
+ * Coordinates concurrent story execution across isolated child processes.
19
+ * Uses a manual queue pattern (similar to epic-processor) for concurrency control.
20
+ */
21
+ export declare class Orchestrator {
22
+ private options;
23
+ private children;
24
+ private results;
25
+ private shuttingDown;
26
+ private worktreeService;
27
+ private processManager;
28
+ constructor(options: ProcessOrchestratorOptions);
29
+ /**
30
+ * Execute multiple stories concurrently with concurrency limiting
31
+ */
32
+ execute(stories: Story[]): Promise<ProcessExecutionResult[]>;
33
+ /**
34
+ * Execute a single story in an isolated child process
35
+ */
36
+ private executeStory;
37
+ /**
38
+ * Spawn child process for story execution
39
+ */
40
+ private spawnChild;
41
+ /**
42
+ * Graceful shutdown: SIGTERM → wait → SIGKILL
43
+ * Note: Signal handlers are managed by ProcessManager globally
44
+ */
45
+ shutdown(): Promise<void>;
46
+ /**
47
+ * Cleanup resources
48
+ */
49
+ private cleanup;
50
+ /**
51
+ * Generate URL-safe slug from title
52
+ */
53
+ private generateSlug;
54
+ /**
55
+ * Get current execution results
56
+ */
57
+ getResults(): ProcessExecutionResult[];
58
+ /**
59
+ * Get count of active child processes
60
+ */
61
+ getActiveCount(): number;
62
+ }
63
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EAEtB,KAAK,EACN,MAAM,mBAAmB,CAAC;AAK3B;;;;;GAKG;AACH,qBAAa,YAAY;IAOX,OAAO,CAAC,OAAO;IAN3B,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,cAAc,CAAiB;gBAEnB,OAAO,EAAE,0BAA0B;IAOvD;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAyDlE;;OAEG;YACW,YAAY;IA0D1B;;OAEG;YACW,UAAU;IA2HxB;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C/B;;OAEG;YACW,OAAO;IAOrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACH,UAAU,IAAI,sBAAsB,EAAE;IAItC;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB"}
@@ -0,0 +1,320 @@
1
+ /**
2
+ * Multi-Process Orchestrator
3
+ *
4
+ * Manages concurrent execution of multiple stories via isolated child processes.
5
+ * Each story runs in its own git worktree with its own Node.js process.
6
+ *
7
+ * Key Features:
8
+ * - Spawns child processes with concurrency limiting
9
+ * - IPC communication for status updates and health checks
10
+ * - Graceful shutdown with SIGTERM → SIGKILL fallback
11
+ * - Error isolation (child crash doesn't affect parent or siblings)
12
+ * - Worktree lifecycle management
13
+ */
14
+ import { spawn } from 'child_process';
15
+ import path from 'path';
16
+ import { fileURLToPath } from 'url';
17
+ import { GitWorktreeService } from './worktree.js';
18
+ import { ProcessManager } from './process-manager.js';
19
+ import { getSdlcRoot } from './config.js';
20
+ /**
21
+ * Multi-Process Orchestrator
22
+ *
23
+ * Coordinates concurrent story execution across isolated child processes.
24
+ * Uses a manual queue pattern (similar to epic-processor) for concurrency control.
25
+ */
26
+ export class Orchestrator {
27
+ options;
28
+ children = new Map();
29
+ results = [];
30
+ shuttingDown = false;
31
+ worktreeService;
32
+ processManager;
33
+ constructor(options) {
34
+ this.options = options;
35
+ const sdlcRoot = getSdlcRoot();
36
+ const worktreeBasePath = options.worktreeBasePath || path.join(sdlcRoot, '.ai-sdlc', 'worktrees');
37
+ this.worktreeService = new GitWorktreeService(sdlcRoot, worktreeBasePath);
38
+ this.processManager = ProcessManager.getInstance();
39
+ }
40
+ /**
41
+ * Execute multiple stories concurrently with concurrency limiting
42
+ */
43
+ async execute(stories) {
44
+ if (stories.length === 0) {
45
+ return [];
46
+ }
47
+ console.log(`🚀 Starting orchestrator with ${stories.length} stories (concurrency: ${this.options.concurrency})`);
48
+ try {
49
+ // Use manual queue pattern (same as epic-processor)
50
+ const queue = [...stories];
51
+ const active = new Set();
52
+ while (queue.length > 0 || active.size > 0) {
53
+ // Fill up to maxConcurrent
54
+ while (active.size < this.options.concurrency && queue.length > 0 && !this.shuttingDown) {
55
+ const story = queue.shift();
56
+ const promise = this.executeStory(story);
57
+ active.add(promise);
58
+ // Remove from active and collect result when done
59
+ promise.then((result) => {
60
+ active.delete(promise);
61
+ this.results.push(result);
62
+ }, (error) => {
63
+ active.delete(promise);
64
+ // Error should not happen as executeStory catches all errors
65
+ console.error('Unexpected error in executeStory:', error);
66
+ });
67
+ }
68
+ if (active.size > 0) {
69
+ // Wait for at least one to complete
70
+ await Promise.race(active);
71
+ // If shutdown requested, cancel queued stories
72
+ if (this.shuttingDown) {
73
+ console.log(`⚠️ Shutdown in progress, canceling ${queue.length} queued stories`);
74
+ break;
75
+ }
76
+ }
77
+ }
78
+ // Wait for all active processes to complete
79
+ if (active.size > 0) {
80
+ await Promise.all(active);
81
+ }
82
+ return this.results;
83
+ }
84
+ finally {
85
+ await this.cleanup();
86
+ }
87
+ }
88
+ /**
89
+ * Execute a single story in an isolated child process
90
+ */
91
+ async executeStory(story) {
92
+ const storyId = story.frontmatter.id;
93
+ const startTime = Date.now();
94
+ try {
95
+ // Create worktree for story
96
+ const slug = this.generateSlug(story.frontmatter.title || storyId);
97
+ const worktreePath = this.worktreeService.getWorktreePath(storyId, slug);
98
+ console.log(`📝 [${storyId}] Creating worktree: ${worktreePath}`);
99
+ try {
100
+ this.worktreeService.create({
101
+ storyId,
102
+ slug,
103
+ baseBranch: 'main',
104
+ });
105
+ }
106
+ catch (error) {
107
+ // Worktree creation failure - skip story
108
+ const errorMsg = error instanceof Error ? error.message : String(error);
109
+ console.error(`❌ [${storyId}] Worktree creation failed: ${errorMsg}`);
110
+ return {
111
+ storyId,
112
+ success: false,
113
+ exitCode: null,
114
+ signal: null,
115
+ duration: Date.now() - startTime,
116
+ error: `Worktree creation failed: ${errorMsg}`,
117
+ };
118
+ }
119
+ // Spawn child process
120
+ const result = await this.spawnChild(storyId, worktreePath, startTime);
121
+ // Cleanup worktree if not keeping
122
+ if (!this.options.keepWorktrees) {
123
+ try {
124
+ this.worktreeService.remove(worktreePath, false);
125
+ }
126
+ catch (cleanupError) {
127
+ console.warn(`⚠️ [${storyId}] Failed to cleanup worktree: ${cleanupError}`);
128
+ }
129
+ }
130
+ return result;
131
+ }
132
+ catch (error) {
133
+ const errorMsg = error instanceof Error ? error.message : String(error);
134
+ console.error(`❌ [${storyId}] Execution failed: ${errorMsg}`);
135
+ return {
136
+ storyId,
137
+ success: false,
138
+ exitCode: null,
139
+ signal: null,
140
+ duration: Date.now() - startTime,
141
+ error: errorMsg,
142
+ };
143
+ }
144
+ }
145
+ /**
146
+ * Spawn child process for story execution
147
+ */
148
+ async spawnChild(storyId, worktreePath, startTime) {
149
+ return new Promise((resolve) => {
150
+ // Spawn agent-executor as child process entry point
151
+ // Determine the path to agent-executor (could be in dist/ or src/ depending on build state)
152
+ const currentFilePath = fileURLToPath(import.meta.url);
153
+ const agentExecutorPath = path.join(path.dirname(currentFilePath), 'agent-executor.js');
154
+ const proc = spawn(process.execPath, [agentExecutorPath, storyId], {
155
+ cwd: worktreePath,
156
+ stdio: ['ignore', 'pipe', 'pipe', 'ipc'], // Enable IPC channel
157
+ shell: false,
158
+ env: {
159
+ ...process.env,
160
+ AI_SDLC_STORY_ID: storyId,
161
+ },
162
+ });
163
+ // Track child process
164
+ if (proc.pid) {
165
+ this.children.set(storyId, {
166
+ storyId,
167
+ pid: proc.pid,
168
+ worktreePath,
169
+ startTime,
170
+ });
171
+ this.processManager.registerChild(proc);
172
+ }
173
+ // Capture stdout/stderr
174
+ let stdout = '';
175
+ let stderr = '';
176
+ proc.stdout?.on('data', (data) => {
177
+ stdout += data.toString();
178
+ // Echo to parent console with prefix
179
+ const lines = data.toString().split('\n').filter((l) => l.trim());
180
+ lines.forEach((line) => console.log(` [${storyId}] ${line}`));
181
+ });
182
+ proc.stderr?.on('data', (data) => {
183
+ stderr += data.toString();
184
+ // Echo to parent console with prefix
185
+ const lines = data.toString().split('\n').filter((l) => l.trim());
186
+ lines.forEach((line) => console.error(` [${storyId}] ${line}`));
187
+ });
188
+ // Handle IPC messages from child
189
+ proc.on('message', (msg) => {
190
+ if (!msg || typeof msg !== 'object')
191
+ return;
192
+ const message = msg;
193
+ switch (message.type) {
194
+ case 'status_update':
195
+ // Log status updates from child
196
+ console.log(` [${storyId}] Status update:`, message.payload);
197
+ break;
198
+ case 'health_response':
199
+ // Child responded to health check
200
+ console.log(` [${storyId}] Health check OK`);
201
+ break;
202
+ case 'error':
203
+ // Child reported an error
204
+ console.error(` [${storyId}] Error:`, message.payload);
205
+ break;
206
+ case 'complete':
207
+ // Child reported completion
208
+ console.log(` [${storyId}] Complete:`, message.payload);
209
+ break;
210
+ }
211
+ });
212
+ // Handle process exit
213
+ proc.on('close', (code, signal) => {
214
+ this.children.delete(storyId);
215
+ const duration = Date.now() - startTime;
216
+ const success = code === 0;
217
+ if (success) {
218
+ console.log(`✅ [${storyId}] Completed successfully (${duration}ms)`);
219
+ }
220
+ else {
221
+ console.error(`❌ [${storyId}] Failed with code ${code} (${duration}ms)`);
222
+ }
223
+ resolve({
224
+ storyId,
225
+ success,
226
+ exitCode: code,
227
+ signal,
228
+ duration,
229
+ error: success ? undefined : stderr || `Process exited with code ${code}`,
230
+ });
231
+ });
232
+ // Handle spawn errors
233
+ proc.on('error', (err) => {
234
+ this.children.delete(storyId);
235
+ console.error(`❌ [${storyId}] Process error: ${err.message}`);
236
+ resolve({
237
+ storyId,
238
+ success: false,
239
+ exitCode: null,
240
+ signal: null,
241
+ duration: Date.now() - startTime,
242
+ error: err.message,
243
+ });
244
+ });
245
+ });
246
+ }
247
+ /**
248
+ * Graceful shutdown: SIGTERM → wait → SIGKILL
249
+ * Note: Signal handlers are managed by ProcessManager globally
250
+ */
251
+ async shutdown() {
252
+ if (this.children.size === 0)
253
+ return;
254
+ console.log(`⏳ Shutting down ${this.children.size} child processes...`);
255
+ const shutdownTimeout = this.options.shutdownTimeout || 10000;
256
+ // Send SIGTERM to all children
257
+ for (const [storyId, info] of this.children.entries()) {
258
+ try {
259
+ process.kill(info.pid, 'SIGTERM');
260
+ console.log(` [${storyId}] Sent SIGTERM`);
261
+ }
262
+ catch (error) {
263
+ // Process may already be dead
264
+ }
265
+ }
266
+ // Wait for graceful shutdown
267
+ const waitStart = Date.now();
268
+ const checkInterval = 100;
269
+ while (this.children.size > 0 && Date.now() - waitStart < shutdownTimeout) {
270
+ await new Promise((resolve) => setTimeout(resolve, checkInterval));
271
+ }
272
+ // Force kill remaining processes
273
+ if (this.children.size > 0) {
274
+ console.warn(`⚠️ Force killing ${this.children.size} unresponsive processes`);
275
+ for (const [storyId, info] of this.children.entries()) {
276
+ try {
277
+ process.kill(info.pid, 'SIGKILL');
278
+ console.log(` [${storyId}] Sent SIGKILL`);
279
+ }
280
+ catch (error) {
281
+ // Process may already be dead
282
+ }
283
+ }
284
+ this.children.clear();
285
+ }
286
+ console.log('✅ All child processes terminated');
287
+ }
288
+ /**
289
+ * Cleanup resources
290
+ */
291
+ async cleanup() {
292
+ // Ensure all children are terminated
293
+ if (this.children.size > 0) {
294
+ await this.shutdown();
295
+ }
296
+ }
297
+ /**
298
+ * Generate URL-safe slug from title
299
+ */
300
+ generateSlug(title) {
301
+ return title
302
+ .toLowerCase()
303
+ .replace(/[^a-z0-9]+/g, '-')
304
+ .replace(/^-|-$/g, '')
305
+ .substring(0, 50);
306
+ }
307
+ /**
308
+ * Get current execution results
309
+ */
310
+ getResults() {
311
+ return [...this.results];
312
+ }
313
+ /**
314
+ * Get count of active child processes
315
+ */
316
+ getActiveCount() {
317
+ return this.children.size;
318
+ }
319
+ }
320
+ //# sourceMappingURL=orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAOpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IAOH;IANZ,QAAQ,GAAkC,IAAI,GAAG,EAAE,CAAC;IACpD,OAAO,GAA6B,EAAE,CAAC;IACvC,YAAY,GAAG,KAAK,CAAC;IACrB,eAAe,CAAqB;IACpC,cAAc,CAAiB;IAEvC,YAAoB,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;QACrD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAClG,IAAI,CAAC,eAAe,GAAG,IAAI,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAgB;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,CAAC,MAAM,0BAA0B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QAElH,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmC,CAAC;YAE1D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC3C,2BAA2B;gBAC3B,OAAO,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBACxF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;oBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBAEzC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAEpB,kDAAkD;oBAClD,OAAO,CAAC,IAAI,CACV,CAAC,MAAM,EAAE,EAAE;wBACT,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5B,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;wBACR,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;wBACvB,6DAA6D;wBAC7D,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;oBAC5D,CAAC,CACF,CAAC;gBACJ,CAAC;gBAED,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACpB,oCAAoC;oBACpC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAE3B,+CAA+C;oBAC/C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,uCAAuC,KAAK,CAAC,MAAM,iBAAiB,CAAC,CAAC;wBAClF,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,4CAA4C;YAC5C,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,KAAY;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC;YACnE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAEzE,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,wBAAwB,YAAY,EAAE,CAAC,CAAC;YAElE,IAAI,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;oBAC1B,OAAO;oBACP,IAAI;oBACJ,UAAU,EAAE,MAAM;iBACnB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yCAAyC;gBACzC,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,+BAA+B,QAAQ,EAAE,CAAC,CAAC;gBACtE,OAAO;oBACL,OAAO;oBACP,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAChC,KAAK,EAAE,6BAA6B,QAAQ,EAAE;iBAC/C,CAAC;YACJ,CAAC;YAED,sBAAsB;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;YAEvE,kCAAkC;YAClC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,YAAY,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CAAC,QAAQ,OAAO,iCAAiC,YAAY,EAAE,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,uBAAuB,QAAQ,EAAE,CAAC,CAAC;YAC9D,OAAO;gBACL,OAAO;gBACP,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAChC,KAAK,EAAE,QAAQ;aAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CACtB,OAAe,EACf,YAAoB,EACpB,SAAiB;QAEjB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,oDAAoD;YACpD,4FAA4F;YAC5F,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CACjC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAC7B,mBAAmB,CACpB,CAAC;YAEF,MAAM,IAAI,GAAG,KAAK,CAChB,OAAO,CAAC,QAAQ,EAChB,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAC5B;gBACE,GAAG,EAAE,YAAY;gBACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,qBAAqB;gBAC/D,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,gBAAgB,EAAE,OAAO;iBAC1B;aACF,CACF,CAAC;YAEF,sBAAsB;YACtB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE;oBACzB,OAAO;oBACP,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,YAAY;oBACZ,SAAS;iBACV,CAAC,CAAC;gBACH,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;YAED,wBAAwB;YACxB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,qCAAqC;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1E,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC/B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,qCAAqC;gBACrC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1E,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,iCAAiC;YACjC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE;gBAClC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,OAAO;gBAE5C,MAAM,OAAO,GAAG,GAA8E,CAAC;gBAE/F,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;oBACrB,KAAK,eAAe;wBAClB,gCAAgC;wBAChC,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC9D,MAAM;oBACR,KAAK,iBAAiB;wBACpB,kCAAkC;wBAClC,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;wBAC9C,MAAM;oBACR,KAAK,OAAO;wBACV,0BAA0B;wBAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBACxD,MAAM;oBACR,KAAK,UAAU;wBACb,4BAA4B;wBAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBACzD,MAAM;gBACV,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,sBAAsB;YACtB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACxC,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC;gBAE3B,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,6BAA6B,QAAQ,KAAK,CAAC,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,sBAAsB,IAAI,KAAK,QAAQ,KAAK,CAAC,CAAC;gBAC3E,CAAC;gBAED,OAAO,CAAC;oBACN,OAAO;oBACP,OAAO;oBACP,QAAQ,EAAE,IAAI;oBACd,MAAM;oBACN,QAAQ;oBACR,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,4BAA4B,IAAI,EAAE;iBAC1E,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,sBAAsB;YACtB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9B,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE9D,OAAO,CAAC;oBACN,OAAO;oBACP,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAChC,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAErC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,CAAC;QAExE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC;QAE9D,+BAA+B;QAC/B,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,8BAA8B;YAChC,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,GAAG,CAAC;QAE1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,eAAe,EAAE,CAAC;YAC1E,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,iCAAiC;QACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,QAAQ,CAAC,IAAI,yBAAyB,CAAC,CAAC;YAC/E,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtD,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,8BAA8B;gBAChC,CAAC;YACH,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO;QACnB,qCAAqC;QACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAa;QAChC,OAAO,KAAK;aACT,WAAW,EAAE;aACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrB,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF"}
@@ -1,4 +1,14 @@
1
1
  import { Story, StoryFrontmatter, StoryStatus, ReviewAttempt, Config, LockOptions, ReviewResult } from '../types/index.js';
2
+ /**
3
+ * Section file names for split story outputs.
4
+ * Each agent writes to its own file within the story folder.
5
+ */
6
+ export declare const SECTION_FILES: {
7
+ readonly research: "research.md";
8
+ readonly plan: "plan.md";
9
+ readonly review: "review.md";
10
+ };
11
+ export type SectionType = keyof typeof SECTION_FILES;
2
12
  /**
3
13
  * Parse a story markdown file into a Story object
4
14
  *
@@ -105,8 +115,70 @@ export declare function createStory(title: string, sdlcRoot: string, options?: P
105
115
  export declare function updateStoryField<K extends keyof StoryFrontmatter>(story: Story, field: K, value: StoryFrontmatter[K]): Promise<Story>;
106
116
  /**
107
117
  * Append content to a section in the story
118
+ * @deprecated Use writeSectionContent() for new code. This function writes to story.md.
108
119
  */
109
120
  export declare function appendToSection(story: Story, section: string, content: string): Promise<Story>;
121
+ /**
122
+ * Get the path to a section file within a story folder.
123
+ *
124
+ * @param storyPath - Path to the story.md file
125
+ * @param section - Section type (research, plan, review)
126
+ * @returns Absolute path to the section file
127
+ */
128
+ export declare function getSectionFilePath(storyPath: string, section: SectionType): string;
129
+ /**
130
+ * Read section content from section file, with fallback to story.md for backward compatibility.
131
+ *
132
+ * Lookup order:
133
+ * 1. Section file (e.g., research.md) - preferred
134
+ * 2. Extract from story.md section (e.g., ## Research) - backward compat
135
+ * 3. Return empty string if neither exists
136
+ *
137
+ * @param storyPath - Path to the story.md file
138
+ * @param section - Section type (research, plan, review)
139
+ * @returns Section content or empty string
140
+ */
141
+ export declare function readSectionContent(storyPath: string, section: SectionType): Promise<string>;
142
+ /**
143
+ * Format iteration header for retry/rework scenarios.
144
+ *
145
+ * @param iteration - Iteration number (1-based)
146
+ * @param isRework - Whether this is a rework iteration (vs initial or retry)
147
+ * @returns Formatted header string
148
+ */
149
+ export declare function formatIterationHeader(iteration: number, isRework?: boolean): string;
150
+ /**
151
+ * Write or append content to a section file.
152
+ *
153
+ * Creates the section file if it doesn't exist. When appending,
154
+ * adds an iteration header for clarity.
155
+ *
156
+ * @param storyPath - Path to the story.md file
157
+ * @param section - Section type (research, plan, review)
158
+ * @param content - Content to write
159
+ * @param options - Write options
160
+ * @param options.append - If true, append to existing content
161
+ * @param options.iteration - Iteration number for header formatting
162
+ * @param options.isRework - If true, format as rework iteration
163
+ */
164
+ export declare function writeSectionContent(storyPath: string, section: SectionType, content: string, options?: {
165
+ append?: boolean;
166
+ iteration?: number;
167
+ isRework?: boolean;
168
+ }): Promise<void>;
169
+ /**
170
+ * Get story context including all section files.
171
+ * Useful for agents that need to read other phases' output.
172
+ *
173
+ * @param storyPath - Path to the story.md file
174
+ * @returns Object with story and all section content
175
+ */
176
+ export declare function getStoryContext(storyPath: string): Promise<{
177
+ story: Story;
178
+ research: string;
179
+ plan: string;
180
+ review: string;
181
+ }>;
110
182
  /**
111
183
  * Record a refinement attempt in the story's frontmatter
112
184
  */
@@ -160,6 +232,18 @@ export declare function getLatestReviewAttempt(story: Story): ReviewAttempt | nu
160
232
  * Mark a story as complete (all workflow flags set to true)
161
233
  */
162
234
  export declare function markStoryComplete(story: Story): Promise<Story>;
235
+ /**
236
+ * Check if a story's PR has been merged
237
+ */
238
+ export declare function isPRMerged(story: Story): boolean;
239
+ /**
240
+ * Mark a story's PR as merged and record the merge details
241
+ *
242
+ * @param story - The story to update
243
+ * @param mergeSha - The SHA of the merge commit (optional)
244
+ * @returns Updated story with merge metadata
245
+ */
246
+ export declare function markPRMerged(story: Story, mergeSha?: string): Promise<Story>;
163
247
  /**
164
248
  * Auto-complete story after review approval
165
249
  * Handles marking story as complete and transitioning to done status
@@ -1 +1 @@
1
- {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/core/story.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"story.d.ts","sourceRoot":"","sources":["../../src/core/story.ts"],"names":[],"mappings":"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"}