steroids-cli 0.4.59 → 0.5.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.
- package/dist/cli/version-check.d.ts +9 -0
- package/dist/cli/version-check.d.ts.map +1 -0
- package/dist/cli/version-check.js +39 -0
- package/dist/cli/version-check.js.map +1 -0
- package/dist/commands/loop-phases.d.ts +1 -1
- package/dist/commands/loop-phases.d.ts.map +1 -1
- package/dist/commands/loop-phases.js +214 -110
- package/dist/commands/loop-phases.js.map +1 -1
- package/dist/commands/tasks.d.ts.map +1 -1
- package/dist/commands/tasks.js +1 -1
- package/dist/commands/tasks.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +4 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/git/status.d.ts +22 -0
- package/dist/git/status.d.ts.map +1 -1
- package/dist/git/status.js +84 -0
- package/dist/git/status.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/fallback-handler.d.ts +24 -0
- package/dist/orchestrator/fallback-handler.d.ts.map +1 -0
- package/dist/orchestrator/fallback-handler.js +246 -0
- package/dist/orchestrator/fallback-handler.js.map +1 -0
- package/dist/orchestrator/invoke.d.ts +14 -0
- package/dist/orchestrator/invoke.d.ts.map +1 -0
- package/dist/orchestrator/invoke.js +80 -0
- package/dist/orchestrator/invoke.js.map +1 -0
- package/dist/orchestrator/post-coder.d.ts +10 -0
- package/dist/orchestrator/post-coder.d.ts.map +1 -0
- package/dist/orchestrator/post-coder.js +201 -0
- package/dist/orchestrator/post-coder.js.map +1 -0
- package/dist/orchestrator/post-reviewer.d.ts +10 -0
- package/dist/orchestrator/post-reviewer.d.ts.map +1 -0
- package/dist/orchestrator/post-reviewer.js +202 -0
- package/dist/orchestrator/post-reviewer.js.map +1 -0
- package/dist/orchestrator/schemas.d.ts +10 -0
- package/dist/orchestrator/schemas.d.ts.map +1 -0
- package/dist/orchestrator/schemas.js +67 -0
- package/dist/orchestrator/schemas.js.map +1 -0
- package/dist/orchestrator/types.d.ts +74 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/orchestrator/types.js +6 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/dist/prompts/coder.d.ts.map +1 -1
- package/dist/prompts/coder.js +27 -34
- package/dist/prompts/coder.js.map +1 -1
- package/dist/prompts/prompt-helpers.d.ts.map +1 -1
- package/dist/prompts/prompt-helpers.js +2 -4
- package/dist/prompts/prompt-helpers.js.map +1 -1
- package/dist/prompts/reviewer.d.ts.map +1 -1
- package/dist/prompts/reviewer.js +30 -48
- package/dist/prompts/reviewer.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check for new versions of steroids-cli on npm
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Check if a newer version is available on npm
|
|
6
|
+
* Uses npm view to check latest version (fast, cached by npm)
|
|
7
|
+
*/
|
|
8
|
+
export declare function checkForNewVersion(currentVersion: string): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=version-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/cli/version-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB9E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Check for new versions of steroids-cli on npm
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkForNewVersion = checkForNewVersion;
|
|
7
|
+
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
let versionCheckShown = false;
|
|
9
|
+
/**
|
|
10
|
+
* Check if a newer version is available on npm
|
|
11
|
+
* Uses npm view to check latest version (fast, cached by npm)
|
|
12
|
+
*/
|
|
13
|
+
async function checkForNewVersion(currentVersion) {
|
|
14
|
+
// Only check once per process
|
|
15
|
+
if (versionCheckShown)
|
|
16
|
+
return;
|
|
17
|
+
versionCheckShown = true;
|
|
18
|
+
try {
|
|
19
|
+
// Use npm view with timeout (fail fast if offline)
|
|
20
|
+
const latestVersion = (0, node_child_process_1.execSync)('npm view steroids-cli version', {
|
|
21
|
+
encoding: 'utf-8',
|
|
22
|
+
timeout: 2000,
|
|
23
|
+
stdio: ['pipe', 'pipe', 'pipe'], // Don't show errors
|
|
24
|
+
}).trim();
|
|
25
|
+
if (latestVersion && latestVersion !== currentVersion) {
|
|
26
|
+
console.error('');
|
|
27
|
+
console.error('\x1b[33m⚠️ There is a new version available. Please update because I am a knob and probably figured something didn\'t work, @rafiki270 :)\x1b[0m');
|
|
28
|
+
console.error(` Current: v${currentVersion}`);
|
|
29
|
+
console.error(` Latest: v${latestVersion}`);
|
|
30
|
+
console.error('');
|
|
31
|
+
console.error(' Update with: \x1b[36mnpm install -g steroids-cli@latest\x1b[0m');
|
|
32
|
+
console.error('');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// Silently ignore errors (offline, npm not available, timeout, etc.)
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=version-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/cli/version-check.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAUH,gDAyBC;AAjCD,2DAA8C;AAE9C,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAE9B;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,cAAsB;IAC7D,8BAA8B;IAC9B,IAAI,iBAAiB;QAAE,OAAO;IAC9B,iBAAiB,GAAG,IAAI,CAAC;IAEzB,IAAI,CAAC;QACH,mDAAmD;QACnD,MAAM,aAAa,GAAG,IAAA,6BAAQ,EAAC,+BAA+B,EAAE;YAC9D,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB;SACtD,CAAC,CAAC,IAAI,EAAE,CAAC;QAEV,IAAI,aAAa,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;YACtD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,mJAAmJ,CAAC,CAAC;YACnK,OAAO,CAAC,KAAK,CAAC,gBAAgB,cAAc,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,gBAAgB,aAAa,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACnF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Loop phase functions for coder and reviewer invocation
|
|
3
|
-
*
|
|
3
|
+
* ORCHESTRATOR-DRIVEN: The orchestrator makes ALL status decisions
|
|
4
4
|
*/
|
|
5
5
|
import { getTask } from '../database/queries.js';
|
|
6
6
|
import type { openDatabase } from '../database/connection.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-phases.d.ts","sourceRoot":"","sources":["../../src/commands/loop-phases.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"loop-phases.d.ts","sourceRoot":"","sources":["../../src/commands/loop-phases.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,OAAO,EAQR,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAA8C,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAepH,OAAO,EAAE,KAAK,iBAAiB,EAAE,CAAC;AAElC,wBAAsB,aAAa,CACjC,EAAE,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,IAAI,CAAC,EACzC,IAAI,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,EAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GAAG,QAAQ,EAC1B,QAAQ,UAAQ,EAChB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACjD,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CAgMf;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,IAAI,CAAC,EACzC,IAAI,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,EAChC,WAAW,EAAE,MAAM,EACnB,QAAQ,UAAQ,EAChB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC,IAAI,CAAC,CAwIf"}
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Loop phase functions for coder and reviewer invocation
|
|
4
|
-
*
|
|
4
|
+
* ORCHESTRATOR-DRIVEN: The orchestrator makes ALL status decisions
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.runCoderPhase = runCoderPhase;
|
|
8
8
|
exports.runReviewerPhase = runReviewerPhase;
|
|
9
|
+
const node_child_process_1 = require("node:child_process");
|
|
9
10
|
const queries_js_1 = require("../database/queries.js");
|
|
10
11
|
const coder_js_1 = require("../orchestrator/coder.js");
|
|
11
12
|
const reviewer_js_1 = require("../orchestrator/reviewer.js");
|
|
12
13
|
const coordinator_js_1 = require("../orchestrator/coordinator.js");
|
|
13
14
|
const push_js_1 = require("../git/push.js");
|
|
14
15
|
const status_js_1 = require("../git/status.js");
|
|
16
|
+
const invoke_js_1 = require("../orchestrator/invoke.js");
|
|
17
|
+
const fallback_handler_js_1 = require("../orchestrator/fallback-handler.js");
|
|
15
18
|
async function runCoderPhase(db, task, projectPath, action, jsonMode = false, coordinatorCache, coordinatorThresholds) {
|
|
16
19
|
if (!task)
|
|
17
20
|
return;
|
|
18
21
|
let coordinatorGuidance;
|
|
19
22
|
const thresholds = coordinatorThresholds || [2, 5, 9];
|
|
20
|
-
//
|
|
21
|
-
// Only runs at specific thresholds to avoid redundant/costly LLM calls
|
|
22
|
-
// But always reuse cached results between thresholds
|
|
23
|
+
// Run coordinator at rejection thresholds (same as before)
|
|
23
24
|
const shouldInvokeCoordinator = thresholds.includes(task.rejection_count);
|
|
24
25
|
const cachedResult = coordinatorCache?.get(task.id);
|
|
25
26
|
if (shouldInvokeCoordinator) {
|
|
@@ -29,30 +30,24 @@ async function runCoderPhase(db, task, projectPath, action, jsonMode = false, co
|
|
|
29
30
|
try {
|
|
30
31
|
const rejectionHistory = (0, queries_js_1.getTaskRejections)(db, task.id);
|
|
31
32
|
const coordExtra = {};
|
|
32
|
-
// Section tasks - so coordinator knows what other tasks handle
|
|
33
33
|
if (task.section_id) {
|
|
34
34
|
const allSectionTasks = (0, queries_js_1.listTasks)(db, { sectionId: task.section_id });
|
|
35
35
|
coordExtra.sectionTasks = allSectionTasks.map(t => ({
|
|
36
36
|
id: t.id, title: t.title, status: t.status,
|
|
37
37
|
}));
|
|
38
38
|
}
|
|
39
|
-
// Coder's latest submission notes
|
|
40
39
|
coordExtra.submissionNotes = (0, queries_js_1.getLatestSubmissionNotes)(db, task.id);
|
|
41
|
-
// What files were modified (lightweight diff summary)
|
|
42
40
|
const modified = (0, status_js_1.getModifiedFiles)(projectPath);
|
|
43
41
|
if (modified.length > 0) {
|
|
44
42
|
coordExtra.gitDiffSummary = modified.join('\n');
|
|
45
43
|
}
|
|
46
|
-
// Include previous coordinator guidance so it doesn't repeat itself
|
|
47
44
|
if (cachedResult) {
|
|
48
45
|
coordExtra.previousGuidance = cachedResult.guidance;
|
|
49
46
|
}
|
|
50
47
|
const coordResult = await (0, coordinator_js_1.invokeCoordinator)(task, rejectionHistory, projectPath, coordExtra);
|
|
51
48
|
if (coordResult) {
|
|
52
49
|
coordinatorGuidance = coordResult.guidance;
|
|
53
|
-
// Store in cache for both coder reuse and reviewer phase
|
|
54
50
|
coordinatorCache?.set(task.id, coordResult);
|
|
55
|
-
// Log coordinator intervention to audit trail so it's visible in WebUI
|
|
56
51
|
(0, queries_js_1.addAuditEntry)(db, task.id, task.status, task.status, 'coordinator', {
|
|
57
52
|
actorType: 'orchestrator',
|
|
58
53
|
notes: `[${coordResult.decision}] ${coordResult.guidance}`,
|
|
@@ -64,141 +59,250 @@ async function runCoderPhase(db, task, projectPath, action, jsonMode = false, co
|
|
|
64
59
|
}
|
|
65
60
|
}
|
|
66
61
|
catch (error) {
|
|
67
|
-
// Coordinator failure is non-fatal - continue without guidance
|
|
68
62
|
if (!jsonMode) {
|
|
69
63
|
console.warn('Coordinator invocation failed, continuing without guidance:', error);
|
|
70
64
|
}
|
|
71
65
|
}
|
|
72
66
|
}
|
|
73
67
|
else if (cachedResult) {
|
|
74
|
-
// Reuse cached coordinator guidance between thresholds
|
|
75
68
|
coordinatorGuidance = cachedResult.guidance;
|
|
76
69
|
if (!jsonMode && task.rejection_count >= 2) {
|
|
77
70
|
console.log(`\nReusing cached coordinator guidance (decision: ${cachedResult.decision})`);
|
|
78
71
|
}
|
|
79
72
|
}
|
|
73
|
+
// STEP 1: Invoke coder (no status commands in prompt anymore)
|
|
80
74
|
if (!jsonMode) {
|
|
81
75
|
console.log('\n>>> Invoking CODER...\n');
|
|
82
76
|
}
|
|
83
|
-
const
|
|
84
|
-
if (
|
|
77
|
+
const coderResult = await (0, coder_js_1.invokeCoder)(task, projectPath, action, coordinatorGuidance);
|
|
78
|
+
if (coderResult.timedOut) {
|
|
85
79
|
console.warn('Coder timed out. Will retry next iteration.');
|
|
86
80
|
return;
|
|
87
81
|
}
|
|
88
|
-
//
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
82
|
+
// STEP 2: Gather git state
|
|
83
|
+
const commits = (0, status_js_1.getRecentCommits)(projectPath, 5);
|
|
84
|
+
const files_changed = (0, status_js_1.getChangedFiles)(projectPath);
|
|
85
|
+
const has_uncommitted = (0, status_js_1.hasUncommittedChanges)(projectPath);
|
|
86
|
+
const diff_summary = (0, status_js_1.getDiffSummary)(projectPath);
|
|
87
|
+
const gitState = {
|
|
88
|
+
commits,
|
|
89
|
+
files_changed,
|
|
90
|
+
has_uncommitted_changes: has_uncommitted,
|
|
91
|
+
diff_summary,
|
|
92
|
+
};
|
|
93
|
+
// STEP 3: Build orchestrator context
|
|
94
|
+
// Get rejection notes if any
|
|
95
|
+
const lastRejectionNotes = task.rejection_count > 0
|
|
96
|
+
? (0, queries_js_1.getTaskRejections)(db, task.id).slice(-1)[0]?.notes ?? undefined
|
|
97
|
+
: undefined;
|
|
98
|
+
const context = {
|
|
99
|
+
task: {
|
|
100
|
+
id: task.id,
|
|
101
|
+
title: task.title,
|
|
102
|
+
description: task.title, // Use title as description for now
|
|
103
|
+
rejection_notes: lastRejectionNotes,
|
|
104
|
+
rejection_count: task.rejection_count,
|
|
105
|
+
},
|
|
106
|
+
coder_output: {
|
|
107
|
+
stdout: coderResult.stdout,
|
|
108
|
+
stderr: coderResult.stderr,
|
|
109
|
+
exit_code: coderResult.exitCode,
|
|
110
|
+
timed_out: coderResult.timedOut,
|
|
111
|
+
duration_ms: coderResult.duration,
|
|
112
|
+
},
|
|
113
|
+
git_state: gitState,
|
|
114
|
+
};
|
|
115
|
+
// STEP 4: Invoke orchestrator
|
|
116
|
+
let orchestratorOutput;
|
|
117
|
+
try {
|
|
118
|
+
orchestratorOutput = await (0, invoke_js_1.invokeCoderOrchestrator)(context, projectPath);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
console.error('Orchestrator invocation failed:', error);
|
|
122
|
+
// Fallback to safe default: retry
|
|
123
|
+
orchestratorOutput = JSON.stringify({
|
|
124
|
+
action: 'retry',
|
|
125
|
+
reasoning: 'Orchestrator failed, defaulting to retry',
|
|
126
|
+
commits: [],
|
|
127
|
+
next_status: 'in_progress',
|
|
128
|
+
metadata: {
|
|
129
|
+
files_changed: 0,
|
|
130
|
+
confidence: 'low',
|
|
131
|
+
exit_clean: true,
|
|
132
|
+
has_commits: false,
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
// STEP 5: Parse orchestrator output with fallback
|
|
137
|
+
const handler = new fallback_handler_js_1.OrchestrationFallbackHandler();
|
|
138
|
+
const decision = handler.parseCoderOutput(orchestratorOutput);
|
|
139
|
+
// STEP 6: Log orchestrator decision for audit trail
|
|
140
|
+
(0, queries_js_1.addAuditEntry)(db, task.id, task.status, decision.next_status, 'orchestrator', {
|
|
141
|
+
actorType: 'orchestrator',
|
|
142
|
+
notes: `[${decision.action}] ${decision.reasoning} (confidence: ${decision.metadata.confidence})`,
|
|
143
|
+
});
|
|
144
|
+
// STEP 7: Execute the decision
|
|
145
|
+
switch (decision.action) {
|
|
146
|
+
case 'submit':
|
|
147
|
+
(0, queries_js_1.updateTaskStatus)(db, task.id, 'review', 'orchestrator', decision.reasoning);
|
|
148
|
+
if (!jsonMode) {
|
|
149
|
+
console.log(`\n✓ Coder complete, submitted to review (confidence: ${decision.metadata.confidence})`);
|
|
150
|
+
}
|
|
151
|
+
break;
|
|
152
|
+
case 'stage_commit_submit':
|
|
153
|
+
// Stage all changes
|
|
154
|
+
try {
|
|
155
|
+
(0, node_child_process_1.execSync)('git add -A', { cwd: projectPath, stdio: 'pipe' });
|
|
156
|
+
const message = decision.commit_message || 'feat: implement task specification';
|
|
157
|
+
(0, node_child_process_1.execSync)(`git commit -m "${message.replace(/"/g, '\\"')}"`, {
|
|
158
|
+
cwd: projectPath,
|
|
159
|
+
stdio: 'pipe'
|
|
160
|
+
});
|
|
161
|
+
(0, queries_js_1.updateTaskStatus)(db, task.id, 'review', 'orchestrator', `Auto-committed and submitted (${decision.reasoning})`);
|
|
162
|
+
if (!jsonMode) {
|
|
163
|
+
console.log(`\n✓ Auto-committed and submitted to review (confidence: ${decision.metadata.confidence})`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
console.error('Failed to stage/commit:', error);
|
|
168
|
+
// Fallback to retry
|
|
169
|
+
if (!jsonMode) {
|
|
170
|
+
console.log('\n⟳ Failed to commit, will retry');
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
break;
|
|
174
|
+
case 'retry':
|
|
175
|
+
if (!jsonMode) {
|
|
176
|
+
console.log(`\n⟳ Retrying coder (${decision.reasoning}, confidence: ${decision.metadata.confidence})`);
|
|
177
|
+
}
|
|
178
|
+
break;
|
|
179
|
+
case 'error':
|
|
180
|
+
(0, queries_js_1.updateTaskStatus)(db, task.id, 'failed', 'orchestrator', `Task failed: ${decision.reasoning}`);
|
|
181
|
+
if (!jsonMode) {
|
|
182
|
+
console.log(`\n✗ Task failed (${decision.reasoning})`);
|
|
183
|
+
console.log('Human intervention required.');
|
|
184
|
+
}
|
|
185
|
+
break;
|
|
99
186
|
}
|
|
100
187
|
}
|
|
101
188
|
async function runReviewerPhase(db, task, projectPath, jsonMode = false, coordinatorResult) {
|
|
102
189
|
if (!task)
|
|
103
190
|
return;
|
|
191
|
+
// STEP 1: Invoke reviewer (no status commands in prompt anymore)
|
|
104
192
|
if (!jsonMode) {
|
|
105
193
|
console.log('\n>>> Invoking REVIEWER...\n');
|
|
106
194
|
if (coordinatorResult) {
|
|
107
195
|
console.log(`Coordinator guidance included (decision: ${coordinatorResult.decision})`);
|
|
108
196
|
}
|
|
109
197
|
}
|
|
110
|
-
const
|
|
111
|
-
if (
|
|
198
|
+
const reviewerResult = await (0, reviewer_js_1.invokeReviewer)(task, projectPath, coordinatorResult?.guidance, coordinatorResult?.decision);
|
|
199
|
+
if (reviewerResult.timedOut) {
|
|
112
200
|
if (!jsonMode) {
|
|
113
201
|
console.warn('Reviewer timed out. Will retry next iteration.');
|
|
114
202
|
}
|
|
115
203
|
return;
|
|
116
204
|
}
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
205
|
+
// STEP 2: Gather git context
|
|
206
|
+
const commit_sha = (0, status_js_1.getCurrentCommitSha)(projectPath) || '';
|
|
207
|
+
const files_changed = (0, status_js_1.getModifiedFiles)(projectPath);
|
|
208
|
+
const diffStats = (0, status_js_1.getDiffStats)(projectPath);
|
|
209
|
+
const gitContext = {
|
|
210
|
+
commit_sha,
|
|
211
|
+
files_changed,
|
|
212
|
+
additions: diffStats.additions,
|
|
213
|
+
deletions: diffStats.deletions,
|
|
214
|
+
};
|
|
215
|
+
// STEP 3: Build orchestrator context
|
|
216
|
+
const context = {
|
|
217
|
+
task: {
|
|
218
|
+
id: task.id,
|
|
219
|
+
title: task.title,
|
|
220
|
+
rejection_count: task.rejection_count,
|
|
221
|
+
},
|
|
222
|
+
reviewer_output: {
|
|
223
|
+
stdout: reviewerResult.stdout,
|
|
224
|
+
stderr: reviewerResult.stderr,
|
|
225
|
+
exit_code: reviewerResult.exitCode,
|
|
226
|
+
timed_out: reviewerResult.timedOut,
|
|
227
|
+
duration_ms: reviewerResult.duration,
|
|
228
|
+
},
|
|
229
|
+
git_context: gitContext,
|
|
230
|
+
};
|
|
231
|
+
// STEP 4: Invoke orchestrator
|
|
232
|
+
let orchestratorOutput;
|
|
233
|
+
try {
|
|
234
|
+
orchestratorOutput = await (0, invoke_js_1.invokeReviewerOrchestrator)(context, projectPath);
|
|
124
235
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
else if (updatedTask.status === 'review') {
|
|
141
|
-
handleReviewFallback(db, task.id, result, projectPath, jsonMode);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
function handleApproved(projectPath, jsonMode) {
|
|
145
|
-
if (!jsonMode) {
|
|
146
|
-
console.log('\n✓ Task APPROVED');
|
|
147
|
-
console.log('Pushing to git...');
|
|
148
|
-
}
|
|
149
|
-
const pushResult = (0, push_js_1.pushToRemote)(projectPath);
|
|
150
|
-
if (!jsonMode) {
|
|
151
|
-
if (pushResult.success) {
|
|
152
|
-
console.log(`Pushed successfully (${pushResult.commitHash})`);
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
console.warn('Push failed. Will stack and retry on next completion.');
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
function handleDisputed(projectPath, jsonMode) {
|
|
160
|
-
if (!jsonMode) {
|
|
161
|
-
console.log('\n! Task DISPUTED');
|
|
162
|
-
console.log('Pushing current work and moving to next task.');
|
|
163
|
-
}
|
|
164
|
-
const pushResult = (0, push_js_1.pushToRemote)(projectPath);
|
|
165
|
-
if (!jsonMode && pushResult.success) {
|
|
166
|
-
console.log(`Pushed disputed work (${pushResult.commitHash})`);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
function handleReviewFallback(db, taskId, result, projectPath, jsonMode) {
|
|
170
|
-
if (!result.decision) {
|
|
171
|
-
if (!jsonMode) {
|
|
172
|
-
console.log('\nReviewer did not take action (status unchanged). Will retry.');
|
|
173
|
-
}
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
if (!jsonMode) {
|
|
177
|
-
console.log(`\nReviewer indicated ${result.decision.toUpperCase()} but command may have failed.`);
|
|
178
|
-
console.log('Attempting fallback...');
|
|
179
|
-
}
|
|
180
|
-
const commitSha = (0, status_js_1.getCurrentCommitSha)(projectPath) ?? undefined;
|
|
181
|
-
if (result.decision === 'approve') {
|
|
182
|
-
(0, queries_js_1.approveTask)(db, taskId, 'codex', result.notes, commitSha);
|
|
183
|
-
if (!jsonMode) {
|
|
184
|
-
console.log('✓ Task APPROVED (via fallback)');
|
|
185
|
-
}
|
|
186
|
-
const pushResult = (0, push_js_1.pushToRemote)(projectPath);
|
|
187
|
-
if (!jsonMode && pushResult.success) {
|
|
188
|
-
console.log(`Pushed successfully (${pushResult.commitHash})`);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
else if (result.decision === 'reject') {
|
|
192
|
-
(0, queries_js_1.rejectTask)(db, taskId, 'codex', result.notes, commitSha);
|
|
193
|
-
if (!jsonMode) {
|
|
194
|
-
console.log('✗ Task REJECTED (via fallback)');
|
|
195
|
-
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
console.error('Orchestrator invocation failed:', error);
|
|
238
|
+
// Fallback to safe default: unclear
|
|
239
|
+
orchestratorOutput = JSON.stringify({
|
|
240
|
+
decision: 'unclear',
|
|
241
|
+
reasoning: 'Orchestrator failed, retrying review',
|
|
242
|
+
notes: 'Review unclear, retrying',
|
|
243
|
+
next_status: 'review',
|
|
244
|
+
metadata: {
|
|
245
|
+
rejection_count: task.rejection_count,
|
|
246
|
+
confidence: 'low',
|
|
247
|
+
push_to_remote: false,
|
|
248
|
+
repeated_issue: false,
|
|
249
|
+
}
|
|
250
|
+
});
|
|
196
251
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
252
|
+
// STEP 5: Parse orchestrator output with fallback
|
|
253
|
+
const handler = new fallback_handler_js_1.OrchestrationFallbackHandler();
|
|
254
|
+
const decision = handler.parseReviewerOutput(orchestratorOutput);
|
|
255
|
+
// STEP 6: Log orchestrator decision for audit trail
|
|
256
|
+
(0, queries_js_1.addAuditEntry)(db, task.id, task.status, decision.next_status, 'orchestrator', {
|
|
257
|
+
actorType: 'orchestrator',
|
|
258
|
+
notes: `[${decision.decision}] ${decision.reasoning} (confidence: ${decision.metadata.confidence})`,
|
|
259
|
+
});
|
|
260
|
+
// STEP 7: Execute the decision
|
|
261
|
+
const commitSha = commit_sha || undefined;
|
|
262
|
+
switch (decision.decision) {
|
|
263
|
+
case 'approve':
|
|
264
|
+
(0, queries_js_1.approveTask)(db, task.id, 'orchestrator', decision.notes, commitSha);
|
|
265
|
+
if (!jsonMode) {
|
|
266
|
+
console.log(`\n✓ Task APPROVED (confidence: ${decision.metadata.confidence})`);
|
|
267
|
+
console.log('Pushing to git...');
|
|
268
|
+
}
|
|
269
|
+
const pushResult = (0, push_js_1.pushToRemote)(projectPath);
|
|
270
|
+
if (!jsonMode && pushResult.success) {
|
|
271
|
+
console.log(`Pushed successfully (${pushResult.commitHash})`);
|
|
272
|
+
}
|
|
273
|
+
else if (!jsonMode) {
|
|
274
|
+
console.warn('Push failed. Will stack and retry on next completion.');
|
|
275
|
+
}
|
|
276
|
+
break;
|
|
277
|
+
case 'reject':
|
|
278
|
+
(0, queries_js_1.rejectTask)(db, task.id, 'orchestrator', decision.notes, commitSha);
|
|
279
|
+
if (!jsonMode) {
|
|
280
|
+
console.log(`\n✗ Task REJECTED (${task.rejection_count + 1}/15, confidence: ${decision.metadata.confidence})`);
|
|
281
|
+
console.log('Returning to coder for fixes.');
|
|
282
|
+
}
|
|
283
|
+
break;
|
|
284
|
+
case 'dispute':
|
|
285
|
+
(0, queries_js_1.updateTaskStatus)(db, task.id, 'disputed', 'orchestrator', decision.notes, commitSha);
|
|
286
|
+
if (!jsonMode) {
|
|
287
|
+
console.log(`\n! Task DISPUTED (confidence: ${decision.metadata.confidence})`);
|
|
288
|
+
console.log('Pushing current work and moving to next task.');
|
|
289
|
+
}
|
|
290
|
+
const disputePush = (0, push_js_1.pushToRemote)(projectPath);
|
|
291
|
+
if (!jsonMode && disputePush.success) {
|
|
292
|
+
console.log(`Pushed disputed work (${disputePush.commitHash})`);
|
|
293
|
+
}
|
|
294
|
+
break;
|
|
295
|
+
case 'skip':
|
|
296
|
+
(0, queries_js_1.updateTaskStatus)(db, task.id, 'skipped', 'orchestrator', decision.notes, commitSha);
|
|
297
|
+
if (!jsonMode) {
|
|
298
|
+
console.log(`\n⏭ Task SKIPPED (confidence: ${decision.metadata.confidence})`);
|
|
299
|
+
}
|
|
300
|
+
break;
|
|
301
|
+
case 'unclear':
|
|
302
|
+
if (!jsonMode) {
|
|
303
|
+
console.log(`\n? Review unclear (${decision.reasoning}), will retry`);
|
|
304
|
+
}
|
|
305
|
+
break;
|
|
202
306
|
}
|
|
203
307
|
}
|
|
204
308
|
//# sourceMappingURL=loop-phases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-phases.js","sourceRoot":"","sources":["../../src/commands/loop-phases.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"loop-phases.js","sourceRoot":"","sources":["../../src/commands/loop-phases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/commands/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAkInD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DpF"}
|
package/dist/commands/tasks.js
CHANGED
|
@@ -446,7 +446,7 @@ EXAMPLES:
|
|
|
446
446
|
// Get invocations if requested
|
|
447
447
|
let invocations = [];
|
|
448
448
|
if (showLogs) {
|
|
449
|
-
invocations = (0, queries_js_1.
|
|
449
|
+
invocations = (0, queries_js_1.getRecentTaskInvocations)(db, task.id, limit);
|
|
450
450
|
}
|
|
451
451
|
// Get audit trail for rejection history
|
|
452
452
|
const auditEntries = (0, queries_js_1.getTaskAudit)(db, task.id);
|