maistro 1.0.390
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/LICENSE +15 -0
- package/README.md +107 -0
- package/dist/app.d.ts +247 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +4971 -0
- package/dist/app.js.map +1 -0
- package/dist/buildInfo.d.ts +5 -0
- package/dist/buildInfo.d.ts.map +1 -0
- package/dist/buildInfo.js +2 -0
- package/dist/buildInfo.js.map +1 -0
- package/dist/caffeinate.d.ts +72 -0
- package/dist/caffeinate.d.ts.map +1 -0
- package/dist/caffeinate.js +258 -0
- package/dist/caffeinate.js.map +1 -0
- package/dist/claudePath.d.ts +10 -0
- package/dist/claudePath.d.ts.map +1 -0
- package/dist/claudePath.js +34 -0
- package/dist/claudePath.js.map +1 -0
- package/dist/clipboard.d.ts +44 -0
- package/dist/clipboard.d.ts.map +1 -0
- package/dist/clipboard.js +442 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/config.d.ts +211 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +933 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +50 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +81 -0
- package/dist/constants.js.map +1 -0
- package/dist/contextBuilder.d.ts +38 -0
- package/dist/contextBuilder.d.ts.map +1 -0
- package/dist/contextBuilder.js +113 -0
- package/dist/contextBuilder.js.map +1 -0
- package/dist/dependencyDetector.d.ts +57 -0
- package/dist/dependencyDetector.d.ts.map +1 -0
- package/dist/dependencyDetector.js +505 -0
- package/dist/dependencyDetector.js.map +1 -0
- package/dist/executor.d.ts +83 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +583 -0
- package/dist/executor.js.map +1 -0
- package/dist/git.d.ts +85 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +283 -0
- package/dist/git.js.map +1 -0
- package/dist/imageManager.d.ts +161 -0
- package/dist/imageManager.d.ts.map +1 -0
- package/dist/imageManager.js +674 -0
- package/dist/imageManager.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +437 -0
- package/dist/index.js.map +1 -0
- package/dist/input-visual-test.d.ts +9 -0
- package/dist/input-visual-test.d.ts.map +1 -0
- package/dist/input-visual-test.js +108 -0
- package/dist/input-visual-test.js.map +1 -0
- package/dist/inputBox.d.ts +228 -0
- package/dist/inputBox.d.ts.map +1 -0
- package/dist/inputBox.js +966 -0
- package/dist/inputBox.js.map +1 -0
- package/dist/logger.d.ts +136 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +347 -0
- package/dist/logger.js.map +1 -0
- package/dist/orchestrator.d.ts +149 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +821 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/planner.d.ts +86 -0
- package/dist/planner.d.ts.map +1 -0
- package/dist/planner.js +830 -0
- package/dist/planner.js.map +1 -0
- package/dist/pty-test-runner.d.ts +87 -0
- package/dist/pty-test-runner.d.ts.map +1 -0
- package/dist/pty-test-runner.js +721 -0
- package/dist/pty-test-runner.js.map +1 -0
- package/dist/screen.d.ts +44 -0
- package/dist/screen.d.ts.map +1 -0
- package/dist/screen.js +152 -0
- package/dist/screen.js.map +1 -0
- package/dist/taskQueue.d.ts +70 -0
- package/dist/taskQueue.d.ts.map +1 -0
- package/dist/taskQueue.js +282 -0
- package/dist/taskQueue.js.map +1 -0
- package/dist/tui-test-harness.d.ts +216 -0
- package/dist/tui-test-harness.d.ts.map +1 -0
- package/dist/tui-test-harness.js +527 -0
- package/dist/tui-test-harness.js.map +1 -0
- package/dist/types.d.ts +257 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +46 -0
- package/dist/types.js.map +1 -0
- package/dist/ui-visual-test.d.ts +15 -0
- package/dist/ui-visual-test.d.ts.map +1 -0
- package/dist/ui-visual-test.js +141 -0
- package/dist/ui-visual-test.js.map +1 -0
- package/dist/ui.d.ts +272 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +1531 -0
- package/dist/ui.js.map +1 -0
- package/dist/validator.d.ts +53 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +491 -0
- package/dist/validator.js.map +1 -0
- package/dist/versionCheck.d.ts +63 -0
- package/dist/versionCheck.d.ts.map +1 -0
- package/dist/versionCheck.js +261 -0
- package/dist/versionCheck.js.map +1 -0
- package/package.json +62 -0
package/dist/ui.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Task, ValidationResult, AcceptanceCriterionResult } from './types.js';
|
|
2
|
+
export interface ValidatorOptions {
|
|
3
|
+
/** Working directory for running tests */
|
|
4
|
+
cwd: string;
|
|
5
|
+
/** Timeout for test execution in milliseconds (default: 5 minutes) */
|
|
6
|
+
testTimeout?: number;
|
|
7
|
+
/** Whether to use AI review (uses Claude Code CLI) */
|
|
8
|
+
useAIReview?: boolean;
|
|
9
|
+
/** Whether to use staged diff (includes new files) */
|
|
10
|
+
useStagedDiff?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Validate a completed task
|
|
14
|
+
*/
|
|
15
|
+
export declare function validate(task: Task, options: ValidatorOptions): Promise<ValidationResult>;
|
|
16
|
+
/**
|
|
17
|
+
* Run test command and return result
|
|
18
|
+
*/
|
|
19
|
+
export declare function runTests(command: string, options: ValidatorOptions): Promise<{
|
|
20
|
+
passed: boolean;
|
|
21
|
+
output: string;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Run AI-based code review using Claude Code CLI
|
|
25
|
+
*/
|
|
26
|
+
export declare function runAIReview(task: Task, options: ValidatorOptions): Promise<{
|
|
27
|
+
passed: boolean;
|
|
28
|
+
feedback: string;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Run acceptance criteria validation using a specialized Claude agent
|
|
32
|
+
*/
|
|
33
|
+
export declare function runAcceptanceCriteriaValidation(task: Task, options: ValidatorOptions): Promise<{
|
|
34
|
+
passed: boolean;
|
|
35
|
+
feedback: string;
|
|
36
|
+
criteriaResults?: AcceptanceCriterionResult[];
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Generate a brief 2-line summary of what was accomplished
|
|
40
|
+
*/
|
|
41
|
+
export declare function generateResultSummary(task: Task, options: ValidatorOptions): Promise<string | undefined>;
|
|
42
|
+
/**
|
|
43
|
+
* Check if tests are configured in package.json
|
|
44
|
+
*/
|
|
45
|
+
export declare function detectTestCommand(cwd: string): Promise<string | null>;
|
|
46
|
+
/**
|
|
47
|
+
* Run a quick syntax check (TypeScript compile)
|
|
48
|
+
*/
|
|
49
|
+
export declare function runTypeCheck(cwd: string): Promise<{
|
|
50
|
+
passed: boolean;
|
|
51
|
+
output: string;
|
|
52
|
+
}>;
|
|
53
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAKpF,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAyGD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAuE3B;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAiC9C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAoDhD;AA4BD;;GAEG;AACH,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,yBAAyB,EAAE,CAAA;CAAE,CAAC,CAoJ/F;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2D7B;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAkB3E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB5F"}
|
|
@@ -0,0 +1,491 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import { getDiff } from './git.js';
|
|
3
|
+
import { getLogger } from './logger.js';
|
|
4
|
+
import { getClaudePath } from './claudePath.js';
|
|
5
|
+
const DEFAULT_TEST_TIMEOUT = 5 * 60 * 1000; // 5 minutes
|
|
6
|
+
const REVIEW_PROMPT = `You are a code reviewer. Review the following code changes and provide feedback.
|
|
7
|
+
|
|
8
|
+
Your review should:
|
|
9
|
+
1. Check for bugs or logic errors
|
|
10
|
+
2. Check for security issues
|
|
11
|
+
3. Verify the changes align with the task description
|
|
12
|
+
4. Keep feedback concise and actionable
|
|
13
|
+
|
|
14
|
+
Task: {taskTitle}
|
|
15
|
+
Task Description: {taskDescription}
|
|
16
|
+
|
|
17
|
+
Code Changes (diff):
|
|
18
|
+
\`\`\`diff
|
|
19
|
+
{diff}
|
|
20
|
+
\`\`\`
|
|
21
|
+
|
|
22
|
+
Respond with:
|
|
23
|
+
1. PASS or FAIL (on its own line)
|
|
24
|
+
2. Brief feedback (2-3 sentences max)
|
|
25
|
+
|
|
26
|
+
Example responses:
|
|
27
|
+
PASS
|
|
28
|
+
The changes correctly implement the authentication flow with proper error handling.
|
|
29
|
+
|
|
30
|
+
FAIL
|
|
31
|
+
The password validation logic is missing, and there's no rate limiting on login attempts.`;
|
|
32
|
+
const RESULT_SUMMARY_PROMPT = `You are a technical writer summarizing completed work.
|
|
33
|
+
|
|
34
|
+
## Task Information
|
|
35
|
+
Title: {taskTitle}
|
|
36
|
+
Description: {taskDescription}
|
|
37
|
+
|
|
38
|
+
## Code Changes Made (diff)
|
|
39
|
+
\`\`\`diff
|
|
40
|
+
{diff}
|
|
41
|
+
\`\`\`
|
|
42
|
+
|
|
43
|
+
## Your Task
|
|
44
|
+
Provide a brief 2-line summary of what was accomplished in this implementation.
|
|
45
|
+
|
|
46
|
+
Rules:
|
|
47
|
+
- Line 1: What was added/changed (the "what")
|
|
48
|
+
- Line 2: Key technical details or how it works (the "how")
|
|
49
|
+
- Each line should be under 80 characters
|
|
50
|
+
- Be specific and factual - mention actual file names, functions, or components
|
|
51
|
+
- Use past tense (e.g., "Added", "Implemented", "Fixed")
|
|
52
|
+
- No bullet points or formatting, just two plain text lines
|
|
53
|
+
|
|
54
|
+
Example output:
|
|
55
|
+
Added user authentication with JWT tokens and refresh flow.
|
|
56
|
+
Implemented auth middleware in src/middleware/auth.ts with token validation.`;
|
|
57
|
+
const ACCEPTANCE_VALIDATION_PROMPT = `You are a VALIDATION AGENT. Your job is to verify if task implementation meets the acceptance criteria.
|
|
58
|
+
|
|
59
|
+
## Task Information
|
|
60
|
+
Title: {taskTitle}
|
|
61
|
+
Description: {taskDescription}
|
|
62
|
+
|
|
63
|
+
## Acceptance Criteria to Verify
|
|
64
|
+
{acceptanceCriteria}
|
|
65
|
+
|
|
66
|
+
## Your Task
|
|
67
|
+
For EACH acceptance criterion above:
|
|
68
|
+
1. Use the Read tool to examine relevant files in the codebase
|
|
69
|
+
2. Run any commands needed to verify functionality (tests, build, etc.)
|
|
70
|
+
3. Analyze the implementation holistically to determine if each criterion is satisfied
|
|
71
|
+
4. Mark each as [PASS] or [FAIL] with specific details
|
|
72
|
+
|
|
73
|
+
You have full access to tools - use them to thoroughly validate each criterion. Do not implement or fix anything - only validate and report.
|
|
74
|
+
|
|
75
|
+
## Response Format (STRICT)
|
|
76
|
+
Your FINAL output must start with: PASS or FAIL (overall result - PASS only if ALL criteria pass)
|
|
77
|
+
|
|
78
|
+
Then for each criterion:
|
|
79
|
+
- [PASS/FAIL] Criterion text: Explanation with specific file/line references
|
|
80
|
+
|
|
81
|
+
**CRITICAL FOR FAILURES:**
|
|
82
|
+
If ANY criterion fails, you MUST provide SPECIFIC, ACTIONABLE feedback in a "## Required Fixes" section at the end:
|
|
83
|
+
- List exactly what is missing or wrong
|
|
84
|
+
- Specify file names, line numbers, and what needs to be added/changed
|
|
85
|
+
- Include code snippets or examples where helpful
|
|
86
|
+
- Be concrete - the developer implementing the fix should know exactly what to do
|
|
87
|
+
|
|
88
|
+
Example PASS response:
|
|
89
|
+
PASS
|
|
90
|
+
- [PASS] User interface exists: The User interface is defined in src/models/user.ts line 5.
|
|
91
|
+
- [PASS] Has required fields: All three fields (id, name, email) are present with correct types.
|
|
92
|
+
|
|
93
|
+
Example FAIL response:
|
|
94
|
+
FAIL
|
|
95
|
+
- [PASS] User interface exists: Found in src/models/user.ts.
|
|
96
|
+
- [FAIL] Has required fields: Missing the email field, only id and name are defined.
|
|
97
|
+
- [FAIL] Exports User type: The User type is defined but not exported.
|
|
98
|
+
|
|
99
|
+
## Required Fixes
|
|
100
|
+
1. In src/models/user.ts, add the missing "email: string" field to the User interface
|
|
101
|
+
2. Add "export" keyword before the User interface definition: "export interface User"
|
|
102
|
+
|
|
103
|
+
IMPORTANT: Be strict but fair. Only mark as FAIL if the criterion is clearly not met.`;
|
|
104
|
+
/**
|
|
105
|
+
* Validate a completed task
|
|
106
|
+
*/
|
|
107
|
+
export async function validate(task, options) {
|
|
108
|
+
const results = [];
|
|
109
|
+
let passed = true;
|
|
110
|
+
let acceptanceCriteriaResults;
|
|
111
|
+
// Run test command if specified
|
|
112
|
+
if (task.testCommand) {
|
|
113
|
+
const testResult = await runTests(task.testCommand, options);
|
|
114
|
+
results.push(`Tests: ${testResult.passed ? 'PASSED' : 'FAILED'}`);
|
|
115
|
+
if (testResult.output) {
|
|
116
|
+
results.push(testResult.output);
|
|
117
|
+
}
|
|
118
|
+
if (!testResult.passed) {
|
|
119
|
+
passed = false;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Run acceptance criteria validation if criteria are defined
|
|
123
|
+
if (task.acceptanceCriteria && task.acceptanceCriteria.length > 0) {
|
|
124
|
+
const acResult = await runAcceptanceCriteriaValidation(task, options);
|
|
125
|
+
results.push(`Acceptance Criteria: ${acResult.passed ? 'PASSED' : 'FAILED'}`);
|
|
126
|
+
if (acResult.feedback) {
|
|
127
|
+
results.push(acResult.feedback);
|
|
128
|
+
}
|
|
129
|
+
// Store per-criterion results
|
|
130
|
+
if (acResult.criteriaResults && acResult.criteriaResults.length > 0) {
|
|
131
|
+
acceptanceCriteriaResults = acResult.criteriaResults;
|
|
132
|
+
}
|
|
133
|
+
if (!acResult.passed) {
|
|
134
|
+
passed = false;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// Run AI review if enabled (legacy, in addition to acceptance criteria)
|
|
138
|
+
if (options.useAIReview) {
|
|
139
|
+
const reviewResult = await runAIReview(task, options);
|
|
140
|
+
results.push(`AI Review: ${reviewResult.passed ? 'PASSED' : 'FAILED'}`);
|
|
141
|
+
if (reviewResult.feedback) {
|
|
142
|
+
results.push(reviewResult.feedback);
|
|
143
|
+
}
|
|
144
|
+
if (!reviewResult.passed) {
|
|
145
|
+
passed = false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// If no validation was run, assume pass
|
|
149
|
+
if (!task.testCommand && !options.useAIReview && (!task.acceptanceCriteria || task.acceptanceCriteria.length === 0)) {
|
|
150
|
+
results.push('No validation configured - assuming pass');
|
|
151
|
+
}
|
|
152
|
+
// Generate result summary if validation passed
|
|
153
|
+
let resultSummary;
|
|
154
|
+
if (passed) {
|
|
155
|
+
resultSummary = await generateResultSummary(task, options);
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
passed,
|
|
159
|
+
details: results.join('\n'),
|
|
160
|
+
testOutput: task.testCommand ? results[0] : undefined,
|
|
161
|
+
reviewFeedback: options.useAIReview ? results[results.length - 1] : undefined,
|
|
162
|
+
acceptanceCriteriaResults,
|
|
163
|
+
resultSummary,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Run test command and return result
|
|
168
|
+
*/
|
|
169
|
+
export async function runTests(command, options) {
|
|
170
|
+
const timeout = options.testTimeout ?? DEFAULT_TEST_TIMEOUT;
|
|
171
|
+
try {
|
|
172
|
+
// Parse command into executable and args
|
|
173
|
+
const parts = command.split(' ');
|
|
174
|
+
const executable = parts[0];
|
|
175
|
+
const args = parts.slice(1);
|
|
176
|
+
const result = await execa(executable, args, {
|
|
177
|
+
cwd: options.cwd,
|
|
178
|
+
timeout,
|
|
179
|
+
reject: false,
|
|
180
|
+
env: {
|
|
181
|
+
...process.env,
|
|
182
|
+
CI: 'true', // Set CI mode for better test output
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
const stdout = typeof result.stdout === 'string' ? result.stdout : '';
|
|
186
|
+
const stderr = typeof result.stderr === 'string' ? result.stderr : '';
|
|
187
|
+
return {
|
|
188
|
+
passed: result.exitCode === 0,
|
|
189
|
+
output: stdout || stderr || 'No output',
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
194
|
+
return {
|
|
195
|
+
passed: false,
|
|
196
|
+
output: `Test execution failed: ${errorMessage}`,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Run AI-based code review using Claude Code CLI
|
|
202
|
+
*/
|
|
203
|
+
export async function runAIReview(task, options) {
|
|
204
|
+
try {
|
|
205
|
+
// Get the diff of changes (use staged diff if specified to include new files)
|
|
206
|
+
const diffResult = await getDiff(options.cwd, options.useStagedDiff ?? false);
|
|
207
|
+
if (!diffResult.success || !diffResult.output) {
|
|
208
|
+
return {
|
|
209
|
+
passed: true,
|
|
210
|
+
feedback: 'AI review skipped - no changes detected',
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
const prompt = REVIEW_PROMPT
|
|
214
|
+
.replace('{taskTitle}', task.title)
|
|
215
|
+
.replace('{taskDescription}', task.description)
|
|
216
|
+
.replace('{diff}', diffResult.output);
|
|
217
|
+
// Exclude ANTHROPIC_API_KEY to use subscription auth
|
|
218
|
+
const { ANTHROPIC_API_KEY: _excluded, ...cleanEnv } = process.env;
|
|
219
|
+
const result = await execa(getClaudePath(), ['--print', '-p', prompt], {
|
|
220
|
+
cwd: options.cwd,
|
|
221
|
+
timeout: 60000, // 1 minute for review
|
|
222
|
+
reject: false,
|
|
223
|
+
stdin: 'ignore',
|
|
224
|
+
env: cleanEnv,
|
|
225
|
+
});
|
|
226
|
+
const stdout = typeof result.stdout === 'string' ? result.stdout : '';
|
|
227
|
+
if (result.exitCode !== 0) {
|
|
228
|
+
return {
|
|
229
|
+
passed: true, // Don't block on AI review errors
|
|
230
|
+
feedback: 'AI review skipped - Claude Code CLI error',
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
const reviewText = stdout.trim();
|
|
234
|
+
const passed = reviewText.toUpperCase().startsWith('PASS');
|
|
235
|
+
const feedback = reviewText.replace(/^(PASS|FAIL)\s*/i, '').trim();
|
|
236
|
+
return { passed, feedback };
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
240
|
+
return {
|
|
241
|
+
passed: true, // Don't block on AI review errors
|
|
242
|
+
feedback: `AI review error: ${errorMessage}`,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Parse a criteria result line into a structured AcceptanceCriterionResult
|
|
248
|
+
* Expected format: "- [PASS/FAIL] Criterion text: Explanation"
|
|
249
|
+
*/
|
|
250
|
+
function parseCriterionResult(line, originalCriteria) {
|
|
251
|
+
// Match pattern like: "- [PASS] Some criterion: Some explanation"
|
|
252
|
+
const match = line.match(/^-\s*\[(PASS|FAIL)\]\s*(.+?):\s*(.+)$/i);
|
|
253
|
+
if (!match)
|
|
254
|
+
return null;
|
|
255
|
+
const [, status, criterionText, explanation] = match;
|
|
256
|
+
const passed = status.toUpperCase() === 'PASS';
|
|
257
|
+
// Try to match the criterion text to original criteria
|
|
258
|
+
// The AI might paraphrase slightly, so we try to find the best match
|
|
259
|
+
const criterion = originalCriteria.find(c => criterionText.toLowerCase().includes(c.toLowerCase().slice(0, 20)) ||
|
|
260
|
+
c.toLowerCase().includes(criterionText.toLowerCase().slice(0, 20))) || criterionText;
|
|
261
|
+
return {
|
|
262
|
+
criterion,
|
|
263
|
+
passed,
|
|
264
|
+
explanation: explanation.trim(),
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Run acceptance criteria validation using a specialized Claude agent
|
|
269
|
+
*/
|
|
270
|
+
export async function runAcceptanceCriteriaValidation(task, options) {
|
|
271
|
+
const logger = getLogger();
|
|
272
|
+
// Skip if no acceptance criteria defined
|
|
273
|
+
if (!task.acceptanceCriteria || task.acceptanceCriteria.length === 0) {
|
|
274
|
+
return {
|
|
275
|
+
passed: true,
|
|
276
|
+
feedback: 'No acceptance criteria defined - skipping validation',
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
logger?.info('Starting acceptance criteria validation', {
|
|
280
|
+
taskId: task.id,
|
|
281
|
+
criteriaCount: task.acceptanceCriteria.length,
|
|
282
|
+
criteria: task.acceptanceCriteria,
|
|
283
|
+
});
|
|
284
|
+
try {
|
|
285
|
+
// Format acceptance criteria
|
|
286
|
+
const criteriaList = task.acceptanceCriteria
|
|
287
|
+
.map((c, i) => `${i + 1}. ${c}`)
|
|
288
|
+
.join('\n');
|
|
289
|
+
const prompt = ACCEPTANCE_VALIDATION_PROMPT
|
|
290
|
+
.replace('{taskTitle}', task.title)
|
|
291
|
+
.replace('{taskDescription}', task.description)
|
|
292
|
+
.replace('{acceptanceCriteria}', criteriaList);
|
|
293
|
+
logger?.validationPromptFull(task.id, prompt);
|
|
294
|
+
// Exclude ANTHROPIC_API_KEY to use subscription auth
|
|
295
|
+
const { ANTHROPIC_API_KEY: _excluded, ...cleanEnv } = process.env;
|
|
296
|
+
// Run Claude Code in agentic mode with tool access for thorough validation
|
|
297
|
+
const result = await execa(getClaudePath(), ['--dangerously-skip-permissions', '-p', prompt], {
|
|
298
|
+
cwd: options.cwd,
|
|
299
|
+
timeout: 180000, // 3 minutes for thorough agentic validation
|
|
300
|
+
reject: false,
|
|
301
|
+
stdin: 'ignore',
|
|
302
|
+
env: cleanEnv,
|
|
303
|
+
});
|
|
304
|
+
const stdout = typeof result.stdout === 'string' ? result.stdout : '';
|
|
305
|
+
const stderr = typeof result.stderr === 'string' ? result.stderr : '';
|
|
306
|
+
if (result.exitCode !== 0) {
|
|
307
|
+
logger?.error('Acceptance criteria validation agent error', {
|
|
308
|
+
taskId: task.id,
|
|
309
|
+
exitCode: result.exitCode,
|
|
310
|
+
stderr: stderr.slice(0, 500),
|
|
311
|
+
});
|
|
312
|
+
return {
|
|
313
|
+
passed: true, // Don't block on validation errors
|
|
314
|
+
feedback: 'Acceptance criteria validation skipped - validation agent error',
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
const responseText = stdout.trim();
|
|
318
|
+
// Log full response for debugging
|
|
319
|
+
logger?.validationResponseFull(task.id, responseText);
|
|
320
|
+
const lines = responseText.split('\n');
|
|
321
|
+
// Find the PASS/FAIL verdict line - it may not be the first line if Claude provides analysis first
|
|
322
|
+
// Look for a line that is just "PASS" or "FAIL" (possibly with whitespace or markdown formatting)
|
|
323
|
+
let passed = false;
|
|
324
|
+
let verdictLineIndex = -1;
|
|
325
|
+
for (let i = 0; i < lines.length; i++) {
|
|
326
|
+
// Strip markdown formatting (**, *, etc.) and whitespace
|
|
327
|
+
const lineTrimmed = lines[i].trim().replace(/^\*+|\*+$/g, '').trim().toUpperCase();
|
|
328
|
+
if (lineTrimmed === 'PASS' || lineTrimmed === 'FAIL') {
|
|
329
|
+
passed = lineTrimmed === 'PASS';
|
|
330
|
+
verdictLineIndex = i;
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
// If no standalone verdict line found, fall back to checking first line
|
|
335
|
+
if (verdictLineIndex === -1) {
|
|
336
|
+
const firstLine = lines[0].toUpperCase().trim().replace(/^\*+|\*+$/g, '').trim();
|
|
337
|
+
passed = firstLine.startsWith('PASS');
|
|
338
|
+
}
|
|
339
|
+
logger?.validationParsing(task.id, passed, {
|
|
340
|
+
firstLine: lines[0],
|
|
341
|
+
criteriaCount: task.acceptanceCriteria.length,
|
|
342
|
+
parsedCount: 0, // Will update after parsing
|
|
343
|
+
});
|
|
344
|
+
// Extract and parse individual criteria results
|
|
345
|
+
const criteriaResults = [];
|
|
346
|
+
for (const line of lines.slice(1)) {
|
|
347
|
+
if (line.trim().startsWith('- [')) {
|
|
348
|
+
const parsed = parseCriterionResult(line.trim(), task.acceptanceCriteria);
|
|
349
|
+
if (parsed) {
|
|
350
|
+
criteriaResults.push(parsed);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
// Log per-criterion results
|
|
355
|
+
logger?.info('Acceptance criteria validation results', {
|
|
356
|
+
taskId: task.id,
|
|
357
|
+
overallPassed: passed,
|
|
358
|
+
criteriaResults: criteriaResults.map(r => ({
|
|
359
|
+
criterion: r.criterion.slice(0, 50),
|
|
360
|
+
passed: r.passed,
|
|
361
|
+
})),
|
|
362
|
+
passedCount: criteriaResults.filter(r => r.passed).length,
|
|
363
|
+
failedCount: criteriaResults.filter(r => !r.passed).length,
|
|
364
|
+
totalCriteria: task.acceptanceCriteria.length,
|
|
365
|
+
parsedCriteria: criteriaResults.length,
|
|
366
|
+
});
|
|
367
|
+
// Extract "Required Fixes" section for better retry feedback
|
|
368
|
+
const fixesMatch = responseText.match(/## Required Fixes\n([\s\S]+?)(?:\n##|$)/i);
|
|
369
|
+
const requiredFixes = fixesMatch ? fixesMatch[1].trim() : '';
|
|
370
|
+
// Combine failed criteria and required fixes for actionable feedback
|
|
371
|
+
const failedCriteria = criteriaResults.filter(c => !c.passed);
|
|
372
|
+
let feedback = lines.slice(1).join('\n').trim() || 'Validation complete';
|
|
373
|
+
if (!passed && requiredFixes) {
|
|
374
|
+
const failedLines = failedCriteria.map(c => `- [FAIL] ${c.criterion}: ${c.explanation}`);
|
|
375
|
+
feedback = `${failedLines.join('\n')}\n\nRequired Fixes:\n${requiredFixes}`;
|
|
376
|
+
}
|
|
377
|
+
return {
|
|
378
|
+
passed,
|
|
379
|
+
feedback,
|
|
380
|
+
criteriaResults,
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
catch (error) {
|
|
384
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
385
|
+
logger?.error('Acceptance criteria validation exception', {
|
|
386
|
+
taskId: task.id,
|
|
387
|
+
error: errorMessage,
|
|
388
|
+
});
|
|
389
|
+
return {
|
|
390
|
+
passed: true, // Don't block on validation errors
|
|
391
|
+
feedback: `Acceptance criteria validation error: ${errorMessage}`,
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Generate a brief 2-line summary of what was accomplished
|
|
397
|
+
*/
|
|
398
|
+
export async function generateResultSummary(task, options) {
|
|
399
|
+
const logger = getLogger();
|
|
400
|
+
try {
|
|
401
|
+
// Get the diff of changes
|
|
402
|
+
const diffResult = await getDiff(options.cwd, options.useStagedDiff ?? false);
|
|
403
|
+
if (!diffResult.success || !diffResult.output) {
|
|
404
|
+
logger?.info('Result summary skipped - no changes detected', { taskId: task.id });
|
|
405
|
+
return undefined;
|
|
406
|
+
}
|
|
407
|
+
const prompt = RESULT_SUMMARY_PROMPT
|
|
408
|
+
.replace('{taskTitle}', task.title)
|
|
409
|
+
.replace('{taskDescription}', task.description)
|
|
410
|
+
.replace('{diff}', diffResult.output);
|
|
411
|
+
// Exclude ANTHROPIC_API_KEY to use subscription auth
|
|
412
|
+
const { ANTHROPIC_API_KEY: _excluded, ...cleanEnv } = process.env;
|
|
413
|
+
const result = await execa(getClaudePath(), ['--print', '-p', prompt], {
|
|
414
|
+
cwd: options.cwd,
|
|
415
|
+
timeout: 30000, // 30 seconds for summary
|
|
416
|
+
reject: false,
|
|
417
|
+
stdin: 'ignore',
|
|
418
|
+
env: cleanEnv,
|
|
419
|
+
});
|
|
420
|
+
const stdout = typeof result.stdout === 'string' ? result.stdout : '';
|
|
421
|
+
if (result.exitCode !== 0) {
|
|
422
|
+
logger?.warn('Result summary generation failed', {
|
|
423
|
+
taskId: task.id,
|
|
424
|
+
exitCode: result.exitCode,
|
|
425
|
+
});
|
|
426
|
+
return undefined;
|
|
427
|
+
}
|
|
428
|
+
// Clean up the response - take first 2 non-empty lines
|
|
429
|
+
const lines = stdout.trim().split('\n').filter(line => line.trim().length > 0);
|
|
430
|
+
const summary = lines.slice(0, 2).join('\n');
|
|
431
|
+
logger?.info('Generated result summary', {
|
|
432
|
+
taskId: task.id,
|
|
433
|
+
summaryLength: summary.length,
|
|
434
|
+
});
|
|
435
|
+
return summary || undefined;
|
|
436
|
+
}
|
|
437
|
+
catch (error) {
|
|
438
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
439
|
+
logger?.warn('Result summary generation error', {
|
|
440
|
+
taskId: task.id,
|
|
441
|
+
error: errorMessage,
|
|
442
|
+
});
|
|
443
|
+
return undefined;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Check if tests are configured in package.json
|
|
448
|
+
*/
|
|
449
|
+
export async function detectTestCommand(cwd) {
|
|
450
|
+
try {
|
|
451
|
+
const result = await execa('npm', ['run'], {
|
|
452
|
+
cwd,
|
|
453
|
+
reject: false,
|
|
454
|
+
});
|
|
455
|
+
const stdout = typeof result.stdout === 'string' ? result.stdout : '';
|
|
456
|
+
// Check for common test scripts
|
|
457
|
+
if (stdout.includes('test')) {
|
|
458
|
+
return 'npm test';
|
|
459
|
+
}
|
|
460
|
+
return null;
|
|
461
|
+
}
|
|
462
|
+
catch {
|
|
463
|
+
return null;
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Run a quick syntax check (TypeScript compile)
|
|
468
|
+
*/
|
|
469
|
+
export async function runTypeCheck(cwd) {
|
|
470
|
+
try {
|
|
471
|
+
const result = await execa('npx', ['tsc', '--noEmit'], {
|
|
472
|
+
cwd,
|
|
473
|
+
reject: false,
|
|
474
|
+
timeout: 60000,
|
|
475
|
+
});
|
|
476
|
+
const stdout = typeof result.stdout === 'string' ? result.stdout : '';
|
|
477
|
+
const stderr = typeof result.stderr === 'string' ? result.stderr : '';
|
|
478
|
+
return {
|
|
479
|
+
passed: result.exitCode === 0,
|
|
480
|
+
output: stderr || stdout || 'Type check passed',
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
catch (error) {
|
|
484
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
485
|
+
return {
|
|
486
|
+
passed: false,
|
|
487
|
+
output: `Type check failed: ${errorMessage}`,
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
//# sourceMappingURL=validator.js.map
|