ai-sdlc 0.2.0-alpha.6 → 0.2.0-alpha.60
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.
- package/README.md +53 -1058
- package/dist/agents/implementation.d.ts +36 -1
- package/dist/agents/implementation.d.ts.map +1 -1
- package/dist/agents/implementation.js +259 -30
- package/dist/agents/implementation.js.map +1 -1
- package/dist/agents/index.d.ts +2 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +2 -0
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +61 -0
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/agents/orchestrator.js +443 -0
- package/dist/agents/orchestrator.js.map +1 -0
- package/dist/agents/planning.d.ts +1 -1
- package/dist/agents/planning.d.ts.map +1 -1
- package/dist/agents/planning.js +55 -4
- package/dist/agents/planning.js.map +1 -1
- package/dist/agents/refinement.d.ts.map +1 -1
- package/dist/agents/refinement.js +22 -3
- package/dist/agents/refinement.js.map +1 -1
- package/dist/agents/research.d.ts +85 -1
- package/dist/agents/research.d.ts.map +1 -1
- package/dist/agents/research.js +506 -16
- package/dist/agents/research.js.map +1 -1
- package/dist/agents/review.d.ts +103 -2
- package/dist/agents/review.d.ts.map +1 -1
- package/dist/agents/review.js +777 -93
- package/dist/agents/review.js.map +1 -1
- package/dist/agents/rework.d.ts.map +1 -1
- package/dist/agents/rework.js +25 -4
- package/dist/agents/rework.js.map +1 -1
- package/dist/agents/single-task.d.ts +41 -0
- package/dist/agents/single-task.d.ts.map +1 -0
- package/dist/agents/single-task.js +357 -0
- package/dist/agents/single-task.js.map +1 -0
- package/dist/agents/state-assessor.d.ts +3 -3
- package/dist/agents/state-assessor.d.ts.map +1 -1
- package/dist/agents/state-assessor.js +6 -6
- package/dist/agents/state-assessor.js.map +1 -1
- package/dist/agents/test-pattern-detector.d.ts +49 -0
- package/dist/agents/test-pattern-detector.d.ts.map +1 -0
- package/dist/agents/test-pattern-detector.js +273 -0
- package/dist/agents/test-pattern-detector.js.map +1 -0
- package/dist/agents/verification.d.ts +11 -0
- package/dist/agents/verification.d.ts.map +1 -1
- package/dist/agents/verification.js +99 -12
- package/dist/agents/verification.js.map +1 -1
- package/dist/cli/commands/migrate.js +1 -1
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands.d.ts +66 -3
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +1548 -198
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +25 -3
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/runner.d.ts.map +1 -1
- package/dist/cli/runner.js +35 -12
- package/dist/cli/runner.js.map +1 -1
- package/dist/core/auth.d.ts +43 -0
- package/dist/core/auth.d.ts.map +1 -1
- package/dist/core/auth.js +105 -1
- package/dist/core/auth.js.map +1 -1
- package/dist/core/client.d.ts +25 -1
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +247 -7
- package/dist/core/client.js.map +1 -1
- package/dist/core/config.d.ts +32 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +146 -3
- package/dist/core/config.js.map +1 -1
- package/dist/core/conflict-detector.d.ts +108 -0
- package/dist/core/conflict-detector.d.ts.map +1 -0
- package/dist/core/conflict-detector.js +413 -0
- package/dist/core/conflict-detector.js.map +1 -0
- package/dist/core/git-utils.d.ts +28 -0
- package/dist/core/git-utils.d.ts.map +1 -0
- package/dist/core/git-utils.js +146 -0
- package/dist/core/git-utils.js.map +1 -0
- package/dist/core/index.d.ts +19 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +19 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/kanban.d.ts +1 -1
- package/dist/core/kanban.d.ts.map +1 -1
- package/dist/core/kanban.js +3 -3
- package/dist/core/kanban.js.map +1 -1
- package/dist/core/llm-utils.d.ts +103 -0
- package/dist/core/llm-utils.d.ts.map +1 -0
- package/dist/core/llm-utils.js +368 -0
- package/dist/core/llm-utils.js.map +1 -0
- package/dist/core/logger.d.ts +92 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +221 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/process-manager.d.ts +15 -0
- package/dist/core/process-manager.d.ts.map +1 -0
- package/dist/core/process-manager.js +132 -0
- package/dist/core/process-manager.js.map +1 -0
- package/dist/core/story-logger.d.ts +102 -0
- package/dist/core/story-logger.d.ts.map +1 -0
- package/dist/core/story-logger.js +265 -0
- package/dist/core/story-logger.js.map +1 -0
- package/dist/core/story.d.ts +113 -20
- package/dist/core/story.d.ts.map +1 -1
- package/dist/core/story.js +328 -40
- package/dist/core/story.js.map +1 -1
- package/dist/core/task-parser.d.ts +59 -0
- package/dist/core/task-parser.d.ts.map +1 -0
- package/dist/core/task-parser.js +235 -0
- package/dist/core/task-parser.js.map +1 -0
- package/dist/core/task-progress.d.ts +92 -0
- package/dist/core/task-progress.d.ts.map +1 -0
- package/dist/core/task-progress.js +280 -0
- package/dist/core/task-progress.js.map +1 -0
- package/dist/core/workflow-state.d.ts +45 -6
- package/dist/core/workflow-state.d.ts.map +1 -1
- package/dist/core/workflow-state.js +201 -12
- package/dist/core/workflow-state.js.map +1 -1
- package/dist/core/worktree.d.ts +186 -0
- package/dist/core/worktree.d.ts.map +1 -0
- package/dist/core/worktree.js +554 -0
- package/dist/core/worktree.js.map +1 -0
- package/dist/index.js +145 -5
- package/dist/index.js.map +1 -1
- package/dist/services/error-classifier.d.ts +119 -0
- package/dist/services/error-classifier.d.ts.map +1 -0
- package/dist/services/error-classifier.js +182 -0
- package/dist/services/error-classifier.js.map +1 -0
- package/dist/types/index.d.ts +381 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +5 -2
- package/templates/story.md +5 -0
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Story, ConflictDetectionResult } from '../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Service for detecting conflicts between multiple stories by analyzing their git branches.
|
|
4
|
+
* Performs pairwise comparison of modified files to identify overlapping changes.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* const detector = new ConflictDetectorService('/path/to/project', 'main');
|
|
9
|
+
* const result = await detector.detectConflicts([storyA, storyB]);
|
|
10
|
+
* if (!result.safeToRunConcurrently) {
|
|
11
|
+
* console.log('Conflicts detected:', result.summary);
|
|
12
|
+
* }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare class ConflictDetectorService {
|
|
16
|
+
private projectRoot;
|
|
17
|
+
private baseBranch;
|
|
18
|
+
constructor(projectRoot: string, baseBranch?: string);
|
|
19
|
+
/**
|
|
20
|
+
* Detect conflicts between multiple stories by analyzing their git branches.
|
|
21
|
+
* Performs O(n²) pairwise comparison - acceptable for small story counts (<20).
|
|
22
|
+
*
|
|
23
|
+
* @param stories - Array of stories to analyze
|
|
24
|
+
* @returns Conflict analysis with severity classification and recommendations
|
|
25
|
+
*/
|
|
26
|
+
detectConflicts(stories: Story[]): ConflictDetectionResult;
|
|
27
|
+
/**
|
|
28
|
+
* Analyze potential conflicts between two stories
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
private analyzePair;
|
|
32
|
+
/**
|
|
33
|
+
* Get all modified files for a story (committed and uncommitted changes)
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
36
|
+
private getModifiedFiles;
|
|
37
|
+
/**
|
|
38
|
+
* Find the branch name for a story using pattern ai-sdlc/{storyId}-*
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
private getBranchName;
|
|
42
|
+
/**
|
|
43
|
+
* Determine the working directory for a story (worktree or main repo)
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
private getBranchWorkingDirectory;
|
|
47
|
+
/**
|
|
48
|
+
* Get committed changes using git diff --name-status.
|
|
49
|
+
* Handles renamed and deleted files by including both old and new paths.
|
|
50
|
+
* @private
|
|
51
|
+
*/
|
|
52
|
+
private getCommittedChanges;
|
|
53
|
+
/**
|
|
54
|
+
* Get uncommitted changes using git status --porcelain.
|
|
55
|
+
* Handles quoted filenames with spaces or special characters.
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
private getUncommittedChanges;
|
|
59
|
+
/**
|
|
60
|
+
* Find files that appear in both arrays (exact path match)
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
private findSharedFiles;
|
|
64
|
+
/**
|
|
65
|
+
* Find directories that contain files from both arrays
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
private findSharedDirectories;
|
|
69
|
+
/**
|
|
70
|
+
* Classify conflict severity based on overlap.
|
|
71
|
+
*
|
|
72
|
+
* Severity levels:
|
|
73
|
+
* - high: Same file modified in both stories (direct conflict)
|
|
74
|
+
* - medium: Same directory, different files (potential merge issues)
|
|
75
|
+
* - low: Different directories, but both stories have changes (cross-cutting concerns)
|
|
76
|
+
* - none: No overlap or one story has no changes
|
|
77
|
+
*
|
|
78
|
+
* @private
|
|
79
|
+
*/
|
|
80
|
+
private classifySeverity;
|
|
81
|
+
/**
|
|
82
|
+
* Generate human-readable recommendation based on conflict analysis
|
|
83
|
+
* @private
|
|
84
|
+
*/
|
|
85
|
+
private generateRecommendation;
|
|
86
|
+
/**
|
|
87
|
+
* Generate overall summary of conflict detection results
|
|
88
|
+
* @private
|
|
89
|
+
*/
|
|
90
|
+
private generateSummary;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Convenience function to detect conflicts between stories.
|
|
94
|
+
* Creates a ConflictDetectorService instance and runs conflict detection.
|
|
95
|
+
*
|
|
96
|
+
* @param stories - Array of stories to analyze
|
|
97
|
+
* @param projectRoot - Root directory of the git repository
|
|
98
|
+
* @param baseBranch - Base branch to compare against (default: 'main')
|
|
99
|
+
* @returns Conflict detection result
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* const result = detectConflicts(stories, '/path/to/project');
|
|
104
|
+
* console.log(result.summary);
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export declare function detectConflicts(stories: Story[], projectRoot: string, baseBranch?: string): ConflictDetectionResult;
|
|
108
|
+
//# sourceMappingURL=conflict-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflict-detector.d.ts","sourceRoot":"","sources":["../../src/core/conflict-detector.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,EAEL,uBAAuB,EAExB,MAAM,mBAAmB,CAAC;AAmG3B;;;;;;;;;;;;GAYG;AACH,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;gBADV,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,MAAe;IAOrC;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,uBAAuB;IAuC1D;;;OAGG;IACH,OAAO,CAAC,WAAW;IAwBnB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAmCrB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA8C3B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;;OAGG;IACH,OAAO,CAAC,eAAe;CAkBxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,KAAK,EAAE,EAChB,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,MAAe,GAC1B,uBAAuB,CAGzB"}
|
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
import { spawnSync } from 'child_process';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import { sanitizeStoryId } from './story.js';
|
|
5
|
+
/**
|
|
6
|
+
* Validate branch name to prevent command injection attacks.
|
|
7
|
+
* Rejects branch names containing shell metacharacters.
|
|
8
|
+
*
|
|
9
|
+
* @param branchName - Branch name to validate
|
|
10
|
+
* @throws Error if branch name contains dangerous characters
|
|
11
|
+
*/
|
|
12
|
+
function validateBranchName(branchName) {
|
|
13
|
+
if (!branchName) {
|
|
14
|
+
throw new Error('Branch name cannot be empty');
|
|
15
|
+
}
|
|
16
|
+
// Reject shell metacharacters that could be used for command injection
|
|
17
|
+
const dangerousChars = [';', '|', '&', '$', '`', '\n', '\r'];
|
|
18
|
+
for (const char of dangerousChars) {
|
|
19
|
+
if (branchName.includes(char)) {
|
|
20
|
+
throw new Error(`Invalid branch name: contains dangerous character '${char}'`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// Reject path traversal sequences
|
|
24
|
+
if (branchName.includes('..')) {
|
|
25
|
+
throw new Error('Invalid branch name: contains path traversal sequence (..)');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Validate worktree path to prevent path traversal attacks.
|
|
30
|
+
* Ensures the path is an absolute path.
|
|
31
|
+
* Note: Worktrees can legitimately exist outside the project root.
|
|
32
|
+
*
|
|
33
|
+
* @param worktreePath - Worktree path to validate
|
|
34
|
+
* @param projectRoot - Project root directory (unused but kept for API consistency)
|
|
35
|
+
* @throws Error if worktree path is invalid
|
|
36
|
+
*/
|
|
37
|
+
function validateWorktreePath(worktreePath, projectRoot) {
|
|
38
|
+
if (!worktreePath) {
|
|
39
|
+
throw new Error('Worktree path cannot be empty');
|
|
40
|
+
}
|
|
41
|
+
// Validate that path doesn't contain suspicious patterns
|
|
42
|
+
// Reject path traversal patterns in the original path
|
|
43
|
+
if (worktreePath.includes('..')) {
|
|
44
|
+
throw new Error('Invalid worktree path: contains path traversal sequence (..)');
|
|
45
|
+
}
|
|
46
|
+
// Ensure it's an absolute path (starts with / on Unix or drive letter on Windows)
|
|
47
|
+
// Check the original path, not the resolved one
|
|
48
|
+
if (!path.isAbsolute(worktreePath)) {
|
|
49
|
+
throw new Error('Invalid worktree path: must be an absolute path');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Validate base branch name format.
|
|
54
|
+
* Only allows alphanumeric characters, dots, slashes, underscores, and hyphens.
|
|
55
|
+
*
|
|
56
|
+
* @param baseBranch - Base branch name to validate
|
|
57
|
+
* @throws Error if base branch name contains invalid characters
|
|
58
|
+
*/
|
|
59
|
+
function validateBaseBranch(baseBranch) {
|
|
60
|
+
if (!baseBranch) {
|
|
61
|
+
throw new Error('Base branch name cannot be empty');
|
|
62
|
+
}
|
|
63
|
+
if (!/^[a-zA-Z0-9._\/-]+$/.test(baseBranch)) {
|
|
64
|
+
throw new Error(`Invalid base branch name: contains invalid characters (only alphanumeric, dots, slashes, underscores, and hyphens allowed)`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Validate project root directory.
|
|
69
|
+
* Ensures it's an absolute path, exists, and contains a .git directory.
|
|
70
|
+
*
|
|
71
|
+
* @param projectRoot - Project root directory to validate
|
|
72
|
+
* @throws Error if project root is invalid
|
|
73
|
+
*/
|
|
74
|
+
function validateProjectRoot(projectRoot) {
|
|
75
|
+
if (!projectRoot) {
|
|
76
|
+
throw new Error('Project root cannot be empty');
|
|
77
|
+
}
|
|
78
|
+
if (!path.isAbsolute(projectRoot)) {
|
|
79
|
+
throw new Error('Project root must be an absolute path');
|
|
80
|
+
}
|
|
81
|
+
if (!fs.existsSync(projectRoot)) {
|
|
82
|
+
throw new Error(`Project root does not exist: ${projectRoot}`);
|
|
83
|
+
}
|
|
84
|
+
const gitDir = path.join(projectRoot, '.git');
|
|
85
|
+
if (!fs.existsSync(gitDir)) {
|
|
86
|
+
throw new Error(`Project root is not a git repository: ${projectRoot} (no .git directory found)`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Service for detecting conflicts between multiple stories by analyzing their git branches.
|
|
91
|
+
* Performs pairwise comparison of modified files to identify overlapping changes.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const detector = new ConflictDetectorService('/path/to/project', 'main');
|
|
96
|
+
* const result = await detector.detectConflicts([storyA, storyB]);
|
|
97
|
+
* if (!result.safeToRunConcurrently) {
|
|
98
|
+
* console.log('Conflicts detected:', result.summary);
|
|
99
|
+
* }
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export class ConflictDetectorService {
|
|
103
|
+
projectRoot;
|
|
104
|
+
baseBranch;
|
|
105
|
+
constructor(projectRoot, baseBranch = 'main') {
|
|
106
|
+
this.projectRoot = projectRoot;
|
|
107
|
+
this.baseBranch = baseBranch;
|
|
108
|
+
// Validate constructor parameters for security
|
|
109
|
+
validateProjectRoot(projectRoot);
|
|
110
|
+
validateBaseBranch(baseBranch);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Detect conflicts between multiple stories by analyzing their git branches.
|
|
114
|
+
* Performs O(n²) pairwise comparison - acceptable for small story counts (<20).
|
|
115
|
+
*
|
|
116
|
+
* @param stories - Array of stories to analyze
|
|
117
|
+
* @returns Conflict analysis with severity classification and recommendations
|
|
118
|
+
*/
|
|
119
|
+
detectConflicts(stories) {
|
|
120
|
+
// Handle edge cases: empty array or single story
|
|
121
|
+
if (stories.length === 0 || stories.length === 1) {
|
|
122
|
+
return {
|
|
123
|
+
conflicts: [],
|
|
124
|
+
safeToRunConcurrently: true,
|
|
125
|
+
summary: stories.length === 0
|
|
126
|
+
? 'No stories to analyze'
|
|
127
|
+
: 'Single story - no conflicts possible',
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
const conflicts = [];
|
|
131
|
+
// Perform pairwise comparison (O(n²))
|
|
132
|
+
for (let i = 0; i < stories.length; i++) {
|
|
133
|
+
for (let j = i + 1; j < stories.length; j++) {
|
|
134
|
+
const analysis = this.analyzePair(stories[i], stories[j]);
|
|
135
|
+
conflicts.push(analysis);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Determine if safe to run concurrently (false if ANY high-severity conflict)
|
|
139
|
+
const hasHighSeverityConflict = conflicts.some(c => c.severity === 'high');
|
|
140
|
+
const safeToRunConcurrently = !hasHighSeverityConflict;
|
|
141
|
+
// Generate summary
|
|
142
|
+
const highCount = conflicts.filter(c => c.severity === 'high').length;
|
|
143
|
+
const mediumCount = conflicts.filter(c => c.severity === 'medium').length;
|
|
144
|
+
const lowCount = conflicts.filter(c => c.severity === 'low').length;
|
|
145
|
+
const summary = this.generateSummary(conflicts.length, highCount, mediumCount, lowCount, safeToRunConcurrently);
|
|
146
|
+
return {
|
|
147
|
+
conflicts,
|
|
148
|
+
safeToRunConcurrently,
|
|
149
|
+
summary,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Analyze potential conflicts between two stories
|
|
154
|
+
* @private
|
|
155
|
+
*/
|
|
156
|
+
analyzePair(storyA, storyB) {
|
|
157
|
+
// Sanitize story IDs first to prevent path traversal attacks
|
|
158
|
+
// This must happen BEFORE any other operations
|
|
159
|
+
sanitizeStoryId(storyA.frontmatter.id);
|
|
160
|
+
sanitizeStoryId(storyB.frontmatter.id);
|
|
161
|
+
const filesA = this.getModifiedFiles(storyA);
|
|
162
|
+
const filesB = this.getModifiedFiles(storyB);
|
|
163
|
+
const sharedFiles = this.findSharedFiles(filesA, filesB);
|
|
164
|
+
const sharedDirectories = this.findSharedDirectories(filesA, filesB);
|
|
165
|
+
const severity = this.classifySeverity(sharedFiles, sharedDirectories, filesA, filesB);
|
|
166
|
+
const recommendation = this.generateRecommendation(sharedFiles, sharedDirectories, severity);
|
|
167
|
+
return {
|
|
168
|
+
storyA: storyA.frontmatter.id,
|
|
169
|
+
storyB: storyB.frontmatter.id,
|
|
170
|
+
sharedFiles,
|
|
171
|
+
sharedDirectories,
|
|
172
|
+
severity,
|
|
173
|
+
recommendation,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Get all modified files for a story (committed and uncommitted changes)
|
|
178
|
+
* @private
|
|
179
|
+
*/
|
|
180
|
+
getModifiedFiles(story) {
|
|
181
|
+
// Find the branch for this story
|
|
182
|
+
const branchName = this.getBranchName(story);
|
|
183
|
+
if (!branchName) {
|
|
184
|
+
// No branch yet - return empty array
|
|
185
|
+
return [];
|
|
186
|
+
}
|
|
187
|
+
// Determine working directory (worktree or main repo)
|
|
188
|
+
const workingDir = this.getBranchWorkingDirectory(story);
|
|
189
|
+
// Get committed changes
|
|
190
|
+
const committedFiles = this.getCommittedChanges(workingDir, branchName);
|
|
191
|
+
// Get uncommitted changes
|
|
192
|
+
const uncommittedFiles = this.getUncommittedChanges(workingDir);
|
|
193
|
+
// Combine and deduplicate
|
|
194
|
+
const allFiles = [...new Set([...committedFiles, ...uncommittedFiles])];
|
|
195
|
+
return allFiles;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Find the branch name for a story using pattern ai-sdlc/{storyId}-*
|
|
199
|
+
* @private
|
|
200
|
+
*/
|
|
201
|
+
getBranchName(story) {
|
|
202
|
+
// Sanitize story ID first to prevent injection (defense in depth)
|
|
203
|
+
// This validates the story ID regardless of whether branch is set
|
|
204
|
+
const storyId = sanitizeStoryId(story.frontmatter.id);
|
|
205
|
+
// First, check if branch is explicitly set in frontmatter
|
|
206
|
+
if (story.frontmatter.branch) {
|
|
207
|
+
// SECURITY: Validate branch name to prevent command injection
|
|
208
|
+
validateBranchName(story.frontmatter.branch);
|
|
209
|
+
return story.frontmatter.branch;
|
|
210
|
+
}
|
|
211
|
+
// Use git branch --list to find matching branch
|
|
212
|
+
const pattern = `ai-sdlc/${storyId}-*`;
|
|
213
|
+
const result = spawnSync('git', ['branch', '--list', pattern], {
|
|
214
|
+
cwd: this.projectRoot,
|
|
215
|
+
encoding: 'utf-8',
|
|
216
|
+
shell: false,
|
|
217
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
218
|
+
});
|
|
219
|
+
if (result.status !== 0) {
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
const output = result.stdout?.toString().trim() || '';
|
|
223
|
+
if (!output) {
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
226
|
+
// Parse branch name (remove leading * and whitespace)
|
|
227
|
+
const branchName = output.split('\n')[0].replace(/^\*?\s*/, '');
|
|
228
|
+
return branchName || null;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Determine the working directory for a story (worktree or main repo)
|
|
232
|
+
* @private
|
|
233
|
+
*/
|
|
234
|
+
getBranchWorkingDirectory(story) {
|
|
235
|
+
// If story has a worktree path, use that
|
|
236
|
+
if (story.frontmatter.worktree_path) {
|
|
237
|
+
// SECURITY: Validate worktree path to prevent path traversal attacks
|
|
238
|
+
validateWorktreePath(story.frontmatter.worktree_path, this.projectRoot);
|
|
239
|
+
return story.frontmatter.worktree_path;
|
|
240
|
+
}
|
|
241
|
+
// Otherwise, use the main project root
|
|
242
|
+
return this.projectRoot;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Get committed changes using git diff --name-status.
|
|
246
|
+
* Handles renamed and deleted files by including both old and new paths.
|
|
247
|
+
* @private
|
|
248
|
+
*/
|
|
249
|
+
getCommittedChanges(workingDir, branchName) {
|
|
250
|
+
const result = spawnSync('git', ['diff', '--name-status', `${this.baseBranch}...${branchName}`], {
|
|
251
|
+
cwd: workingDir,
|
|
252
|
+
encoding: 'utf-8',
|
|
253
|
+
shell: false,
|
|
254
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
255
|
+
});
|
|
256
|
+
if (result.status !== 0) {
|
|
257
|
+
// Git command failed - return empty array
|
|
258
|
+
return [];
|
|
259
|
+
}
|
|
260
|
+
const output = result.stdout?.toString() || '';
|
|
261
|
+
const files = [];
|
|
262
|
+
for (const line of output.split('\n')) {
|
|
263
|
+
if (!line.trim())
|
|
264
|
+
continue;
|
|
265
|
+
// Parse git diff --name-status format: "STATUS\tFILE" or "RXXX\tOLD\tNEW"
|
|
266
|
+
const parts = line.split('\t');
|
|
267
|
+
if (parts.length < 2)
|
|
268
|
+
continue;
|
|
269
|
+
const status = parts[0].trim();
|
|
270
|
+
// Handle renames (R or R100 or similar)
|
|
271
|
+
if (status.startsWith('R')) {
|
|
272
|
+
if (parts.length >= 3) {
|
|
273
|
+
// Format: R100\told-file\tnew-file
|
|
274
|
+
// Include both old and new paths for comprehensive conflict detection
|
|
275
|
+
files.push(parts[1].trim()); // old path
|
|
276
|
+
files.push(parts[2].trim()); // new path
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
// Modified (M), Added (A), Deleted (D), etc.
|
|
281
|
+
files.push(parts[1].trim());
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
return files;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Get uncommitted changes using git status --porcelain.
|
|
288
|
+
* Handles quoted filenames with spaces or special characters.
|
|
289
|
+
* @private
|
|
290
|
+
*/
|
|
291
|
+
getUncommittedChanges(workingDir) {
|
|
292
|
+
const result = spawnSync('git', ['status', '--porcelain'], {
|
|
293
|
+
cwd: workingDir,
|
|
294
|
+
encoding: 'utf-8',
|
|
295
|
+
shell: false,
|
|
296
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
297
|
+
});
|
|
298
|
+
if (result.status !== 0) {
|
|
299
|
+
// Git command failed - return empty array
|
|
300
|
+
return [];
|
|
301
|
+
}
|
|
302
|
+
const output = result.stdout?.toString() || '';
|
|
303
|
+
return output
|
|
304
|
+
.split('\n')
|
|
305
|
+
.map(line => {
|
|
306
|
+
// Parse porcelain format: "XY filename"
|
|
307
|
+
// XY are status codes, filename starts at column 4
|
|
308
|
+
if (line.length < 4)
|
|
309
|
+
return '';
|
|
310
|
+
let filename = line.substring(3).trim();
|
|
311
|
+
// Handle quoted filenames (filenames with spaces or special chars are wrapped in quotes)
|
|
312
|
+
// Format: 'XY "filename with spaces.txt"'
|
|
313
|
+
if (filename.startsWith('"') && filename.endsWith('"')) {
|
|
314
|
+
filename = filename.slice(1, -1);
|
|
315
|
+
}
|
|
316
|
+
return filename;
|
|
317
|
+
})
|
|
318
|
+
.filter(line => line.length > 0);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Find files that appear in both arrays (exact path match)
|
|
322
|
+
* @private
|
|
323
|
+
*/
|
|
324
|
+
findSharedFiles(filesA, filesB) {
|
|
325
|
+
const setB = new Set(filesB);
|
|
326
|
+
return filesA.filter(file => setB.has(file));
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Find directories that contain files from both arrays
|
|
330
|
+
* @private
|
|
331
|
+
*/
|
|
332
|
+
findSharedDirectories(filesA, filesB) {
|
|
333
|
+
const dirsA = new Set(filesA.map(f => path.dirname(f)));
|
|
334
|
+
const dirsB = new Set(filesB.map(f => path.dirname(f)));
|
|
335
|
+
return Array.from(dirsA).filter(d => dirsB.has(d));
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Classify conflict severity based on overlap.
|
|
339
|
+
*
|
|
340
|
+
* Severity levels:
|
|
341
|
+
* - high: Same file modified in both stories (direct conflict)
|
|
342
|
+
* - medium: Same directory, different files (potential merge issues)
|
|
343
|
+
* - low: Different directories, but both stories have changes (cross-cutting concerns)
|
|
344
|
+
* - none: No overlap or one story has no changes
|
|
345
|
+
*
|
|
346
|
+
* @private
|
|
347
|
+
*/
|
|
348
|
+
classifySeverity(sharedFiles, sharedDirs, filesA, filesB) {
|
|
349
|
+
if (sharedFiles.length > 0) {
|
|
350
|
+
return 'high';
|
|
351
|
+
}
|
|
352
|
+
if (sharedDirs.length > 0) {
|
|
353
|
+
return 'medium';
|
|
354
|
+
}
|
|
355
|
+
// Low severity: both stories have changes, but in different areas
|
|
356
|
+
if (filesA.length > 0 && filesB.length > 0) {
|
|
357
|
+
return 'low';
|
|
358
|
+
}
|
|
359
|
+
return 'none';
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Generate human-readable recommendation based on conflict analysis
|
|
363
|
+
* @private
|
|
364
|
+
*/
|
|
365
|
+
generateRecommendation(sharedFiles, sharedDirs, severity) {
|
|
366
|
+
if (severity === 'high') {
|
|
367
|
+
return `Run sequentially - ${sharedFiles.length} shared file(s) detected`;
|
|
368
|
+
}
|
|
369
|
+
if (severity === 'medium') {
|
|
370
|
+
return `Proceed with caution - ${sharedDirs.length} shared directory(ies)`;
|
|
371
|
+
}
|
|
372
|
+
if (severity === 'low') {
|
|
373
|
+
return 'Safe to run concurrently - changes in different areas';
|
|
374
|
+
}
|
|
375
|
+
return 'Safe to run concurrently - no conflicts detected';
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Generate overall summary of conflict detection results
|
|
379
|
+
* @private
|
|
380
|
+
*/
|
|
381
|
+
generateSummary(totalPairs, highCount, mediumCount, lowCount, safe) {
|
|
382
|
+
if (highCount > 0) {
|
|
383
|
+
return `Found ${highCount} high-severity conflict(s) - recommend sequential execution`;
|
|
384
|
+
}
|
|
385
|
+
if (mediumCount > 0) {
|
|
386
|
+
return `Found ${mediumCount} medium-severity conflict(s) - proceed with caution`;
|
|
387
|
+
}
|
|
388
|
+
if (lowCount > 0) {
|
|
389
|
+
return `Found ${lowCount} low-severity conflict(s) - safe to run concurrently but monitor closely`;
|
|
390
|
+
}
|
|
391
|
+
return `No conflicts detected across ${totalPairs} story pair(s) - safe for concurrent execution`;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Convenience function to detect conflicts between stories.
|
|
396
|
+
* Creates a ConflictDetectorService instance and runs conflict detection.
|
|
397
|
+
*
|
|
398
|
+
* @param stories - Array of stories to analyze
|
|
399
|
+
* @param projectRoot - Root directory of the git repository
|
|
400
|
+
* @param baseBranch - Base branch to compare against (default: 'main')
|
|
401
|
+
* @returns Conflict detection result
|
|
402
|
+
*
|
|
403
|
+
* @example
|
|
404
|
+
* ```typescript
|
|
405
|
+
* const result = detectConflicts(stories, '/path/to/project');
|
|
406
|
+
* console.log(result.summary);
|
|
407
|
+
* ```
|
|
408
|
+
*/
|
|
409
|
+
export function detectConflicts(stories, projectRoot, baseBranch = 'main') {
|
|
410
|
+
const detector = new ConflictDetectorService(projectRoot, baseBranch);
|
|
411
|
+
return detector.detectConflicts(stories);
|
|
412
|
+
}
|
|
413
|
+
//# sourceMappingURL=conflict-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflict-detector.js","sourceRoot":"","sources":["../../src/core/conflict-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface GitValidationOptions {
|
|
2
|
+
skipCleanCheck?: boolean;
|
|
3
|
+
skipBranchCheck?: boolean;
|
|
4
|
+
skipRemoteCheck?: boolean;
|
|
5
|
+
protectedBranches?: string[];
|
|
6
|
+
/** Glob patterns to exclude from the clean working directory check */
|
|
7
|
+
excludePatterns?: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface GitValidationResult {
|
|
10
|
+
valid: boolean;
|
|
11
|
+
errors: string[];
|
|
12
|
+
warnings: string[];
|
|
13
|
+
currentBranch?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Options for checking working directory cleanliness
|
|
17
|
+
*/
|
|
18
|
+
export interface CleanWorkingDirectoryOptions {
|
|
19
|
+
/** Glob patterns to exclude from the check (e.g., '.ai-sdlc/**') */
|
|
20
|
+
excludePatterns?: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare function isCleanWorkingDirectory(workingDir: string, options?: CleanWorkingDirectoryOptions): boolean;
|
|
23
|
+
export declare function hasUntrackedFiles(workingDir: string): boolean;
|
|
24
|
+
export declare function getCurrentBranch(workingDir: string): string | null;
|
|
25
|
+
export declare function isOnProtectedBranch(workingDir: string, protectedBranches?: string[]): boolean;
|
|
26
|
+
export declare function isLocalBehindRemote(workingDir: string): boolean;
|
|
27
|
+
export declare function validateGitState(workingDir: string, options?: GitValidationOptions): GitValidationResult;
|
|
28
|
+
//# sourceMappingURL=git-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-utils.d.ts","sourceRoot":"","sources":["../../src/core/git-utils.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,oEAAoE;IACpE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CA+CT;AAuBD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAc7D;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAalE;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,iBAAiB,GAAE,MAAM,EAA+B,GACvD,OAAO,CAOT;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CA+B/D;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAkCrB"}
|