steroids-cli 0.10.39 → 0.10.41
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/commands/loop-phases-coder-decision.d.ts +27 -0
- package/dist/commands/loop-phases-coder-decision.d.ts.map +1 -0
- package/dist/commands/loop-phases-coder-decision.js +246 -0
- package/dist/commands/loop-phases-coder-decision.js.map +1 -0
- package/dist/commands/loop-phases-coder.d.ts +7 -0
- package/dist/commands/loop-phases-coder.d.ts.map +1 -0
- package/dist/commands/loop-phases-coder.js +343 -0
- package/dist/commands/loop-phases-coder.js.map +1 -0
- package/dist/commands/loop-phases-helpers.d.ts +79 -0
- package/dist/commands/loop-phases-helpers.d.ts.map +1 -0
- package/dist/commands/loop-phases-helpers.js +284 -0
- package/dist/commands/loop-phases-helpers.js.map +1 -0
- package/dist/commands/loop-phases-reviewer-resolution.d.ts +22 -0
- package/dist/commands/loop-phases-reviewer-resolution.d.ts.map +1 -0
- package/dist/commands/loop-phases-reviewer-resolution.js +188 -0
- package/dist/commands/loop-phases-reviewer-resolution.js.map +1 -0
- package/dist/commands/loop-phases-reviewer.d.ts +7 -0
- package/dist/commands/loop-phases-reviewer.d.ts.map +1 -0
- package/dist/commands/loop-phases-reviewer.js +331 -0
- package/dist/commands/loop-phases-reviewer.js.map +1 -0
- package/dist/commands/loop-phases.d.ts +13 -19
- package/dist/commands/loop-phases.d.ts.map +1 -1
- package/dist/commands/loop-phases.js +13 -1283
- package/dist/commands/loop-phases.js.map +1 -1
- package/dist/orchestrator/coder.d.ts.map +1 -1
- package/dist/orchestrator/coder.js +6 -0
- package/dist/orchestrator/coder.js.map +1 -1
- package/dist/orchestrator/coordinator.d.ts.map +1 -1
- package/dist/orchestrator/coordinator.js +2 -1
- package/dist/orchestrator/coordinator.js.map +1 -1
- package/dist/orchestrator/post-coder.d.ts.map +1 -1
- package/dist/orchestrator/post-coder.js +2 -0
- package/dist/orchestrator/post-coder.js.map +1 -1
- package/dist/orchestrator/post-reviewer.d.ts.map +1 -1
- package/dist/orchestrator/post-reviewer.js +9 -4
- package/dist/orchestrator/post-reviewer.js.map +1 -1
- package/dist/parallel/clone.d.ts.map +1 -1
- package/dist/parallel/clone.js +16 -2
- package/dist/parallel/clone.js.map +1 -1
- package/dist/prompts/coder.d.ts +2 -0
- package/dist/prompts/coder.d.ts.map +1 -1
- package/dist/prompts/coder.js +28 -11
- package/dist/prompts/coder.js.map +1 -1
- package/dist/prompts/prompt-helpers.d.ts +4 -2
- package/dist/prompts/prompt-helpers.d.ts.map +1 -1
- package/dist/prompts/prompt-helpers.js +27 -6
- package/dist/prompts/prompt-helpers.js.map +1 -1
- package/dist/prompts/reviewer.d.ts.map +1 -1
- package/dist/prompts/reviewer.js +9 -4
- package/dist/prompts/reviewer.js.map +1 -1
- package/dist/runners/heartbeat.d.ts.map +1 -1
- package/dist/runners/heartbeat.js +11 -5
- package/dist/runners/heartbeat.js.map +1 -1
- package/dist/runners/orchestrator-loop.d.ts.map +1 -1
- package/dist/runners/orchestrator-loop.js +19 -14
- package/dist/runners/orchestrator-loop.js.map +1 -1
- package/dist/runners/wakeup.d.ts.map +1 -1
- package/dist/runners/wakeup.js +7 -11
- package/dist/runners/wakeup.js.map +1 -1
- package/dist/workspace/git-lifecycle.d.ts.map +1 -1
- package/dist/workspace/git-lifecycle.js +33 -1
- package/dist/workspace/git-lifecycle.js.map +1 -1
- package/dist/workspace/pool.d.ts +2 -1
- package/dist/workspace/pool.d.ts.map +1 -1
- package/dist/workspace/pool.js +13 -5
- package/dist/workspace/pool.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-phases-coder.js","sourceRoot":"","sources":["../../src/commands/loop-phases-coder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loop phase functions for coder and reviewer invocation
|
|
3
|
+
* ORCHESTRATOR-DRIVEN: The orchestrator makes ALL status decisions
|
|
4
|
+
*/
|
|
5
|
+
import type { openDatabase } from '../database/connection.js';
|
|
6
|
+
export interface LeaseFenceContext {
|
|
7
|
+
parallelSessionId?: string;
|
|
8
|
+
runnerId?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const WORKSTREAM_LEASE_TTL_SECONDS = 120;
|
|
11
|
+
export declare const LEASE_HEARTBEAT_INTERVAL_MS = 30000;
|
|
12
|
+
/**
|
|
13
|
+
* Extract [OUT_OF_SCOPE] checkbox lines from raw reviewer stdout.
|
|
14
|
+
* Handles bold/backtick formatting, * bullets, and checked/unchecked boxes LLMs may emit.
|
|
15
|
+
*/
|
|
16
|
+
export declare function extractOutOfScopeItems(stdout: string): string[];
|
|
17
|
+
export declare function refreshParallelWorkstreamLease(projectPath: string, leaseFence?: LeaseFenceContext): boolean;
|
|
18
|
+
export declare function invokeWithLeaseHeartbeat<T>(projectPath: string, leaseFence: LeaseFenceContext | undefined, invokeFn: () => Promise<T>): Promise<{
|
|
19
|
+
superseded: boolean;
|
|
20
|
+
result?: T;
|
|
21
|
+
}>;
|
|
22
|
+
export interface CreditExhaustionResult {
|
|
23
|
+
action: 'pause_credit_exhaustion' | 'rate_limit';
|
|
24
|
+
provider: string;
|
|
25
|
+
model: string;
|
|
26
|
+
role: 'coder' | 'reviewer';
|
|
27
|
+
message: string;
|
|
28
|
+
retryAfterMs?: number;
|
|
29
|
+
}
|
|
30
|
+
export declare function summarizeErrorMessage(error: unknown): string;
|
|
31
|
+
/**
|
|
32
|
+
* Classify orchestrator invocation failures so we can distinguish transient parse
|
|
33
|
+
* noise from hard provider/config failures (auth/model/availability).
|
|
34
|
+
*/
|
|
35
|
+
export declare function classifyOrchestratorFailure(error: unknown, projectPath: string): Promise<{
|
|
36
|
+
type: string;
|
|
37
|
+
message: string;
|
|
38
|
+
retryable: boolean;
|
|
39
|
+
} | null>;
|
|
40
|
+
export declare const MAX_ORCHESTRATOR_PARSE_RETRIES = 3;
|
|
41
|
+
export declare const MAX_CONTRACT_VIOLATION_RETRIES = 3;
|
|
42
|
+
export declare const MAX_PROVIDER_NONZERO_FAILURES = 3;
|
|
43
|
+
export declare const MAX_CONSECUTIVE_CODER_RETRIES = 3;
|
|
44
|
+
export declare const CODER_PARSE_FALLBACK_MARKER = "[retry] FALLBACK: Orchestrator failed, defaulting to retry";
|
|
45
|
+
export declare const REVIEWER_PARSE_FALLBACK_MARKER = "[unclear] FALLBACK: Orchestrator failed, retrying review";
|
|
46
|
+
export declare const CONTRACT_CHECKLIST_MARKER = "[contract:checklist]";
|
|
47
|
+
export declare const CONTRACT_REJECTION_RESPONSE_MARKER = "[contract:rejection_response]";
|
|
48
|
+
export declare const MUST_IMPLEMENT_MARKER = "[must_implement]";
|
|
49
|
+
export interface ProviderFailureContext {
|
|
50
|
+
role: 'coder' | 'reviewer';
|
|
51
|
+
provider: string;
|
|
52
|
+
model: string;
|
|
53
|
+
exitCode: number;
|
|
54
|
+
output: string;
|
|
55
|
+
}
|
|
56
|
+
export interface ProviderInvocationFailureDecision {
|
|
57
|
+
shouldStopTask: boolean;
|
|
58
|
+
}
|
|
59
|
+
export declare function formatProviderFailureMessage(taskId: string, context: ProviderFailureContext): string;
|
|
60
|
+
export declare function handleProviderInvocationFailure(db: ReturnType<typeof openDatabase>['db'], taskId: string, context: ProviderFailureContext, jsonMode: boolean): Promise<ProviderInvocationFailureDecision>;
|
|
61
|
+
export declare function countConsecutiveOrchestratorFallbackEntries(db: ReturnType<typeof openDatabase>['db'], taskId: string, marker: string): number;
|
|
62
|
+
/**
|
|
63
|
+
* Count consecutive unclear orchestrator entries (regardless of specific marker).
|
|
64
|
+
* This catches ALL unclear decisions — orchestrator parse failures, missing decision tokens, etc.
|
|
65
|
+
*/
|
|
66
|
+
export declare function countConsecutiveUnclearEntries(db: ReturnType<typeof openDatabase>['db'], taskId: string): number;
|
|
67
|
+
/**
|
|
68
|
+
* Count consecutive coder retry entries (notes starting with [retry]).
|
|
69
|
+
* Used as a universal retry cap to prevent infinite loops.
|
|
70
|
+
*/
|
|
71
|
+
export declare function countConsecutiveRetryEntries(db: ReturnType<typeof openDatabase>['db'], taskId: string): number;
|
|
72
|
+
export declare function countConsecutiveTaggedOrchestratorEntries(db: ReturnType<typeof openDatabase>['db'], taskId: string, requiredTag: string, tagFamilyPrefix?: string): number;
|
|
73
|
+
export declare function countLatestOpenRejectionItems(notes?: string): number;
|
|
74
|
+
export declare function hasCoderCompletionSignal(output: string): boolean;
|
|
75
|
+
export declare function extractSubmissionCommitToken(output: string): string | null;
|
|
76
|
+
export declare function resolveCoderSubmittedCommitSha(projectPath: string, coderOutput: string, options?: {
|
|
77
|
+
requireExplicitToken?: boolean;
|
|
78
|
+
}): string | undefined;
|
|
79
|
+
//# sourceMappingURL=loop-phases-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-phases-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/loop-phases-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Loop phase functions for coder and reviewer invocation
|
|
4
|
+
* ORCHESTRATOR-DRIVEN: The orchestrator makes ALL status decisions
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.MUST_IMPLEMENT_MARKER = exports.CONTRACT_REJECTION_RESPONSE_MARKER = exports.CONTRACT_CHECKLIST_MARKER = exports.REVIEWER_PARSE_FALLBACK_MARKER = exports.CODER_PARSE_FALLBACK_MARKER = exports.MAX_CONSECUTIVE_CODER_RETRIES = exports.MAX_PROVIDER_NONZERO_FAILURES = exports.MAX_CONTRACT_VIOLATION_RETRIES = exports.MAX_ORCHESTRATOR_PARSE_RETRIES = exports.LEASE_HEARTBEAT_INTERVAL_MS = exports.WORKSTREAM_LEASE_TTL_SECONDS = void 0;
|
|
8
|
+
exports.extractOutOfScopeItems = extractOutOfScopeItems;
|
|
9
|
+
exports.refreshParallelWorkstreamLease = refreshParallelWorkstreamLease;
|
|
10
|
+
exports.invokeWithLeaseHeartbeat = invokeWithLeaseHeartbeat;
|
|
11
|
+
exports.summarizeErrorMessage = summarizeErrorMessage;
|
|
12
|
+
exports.classifyOrchestratorFailure = classifyOrchestratorFailure;
|
|
13
|
+
exports.formatProviderFailureMessage = formatProviderFailureMessage;
|
|
14
|
+
exports.handleProviderInvocationFailure = handleProviderInvocationFailure;
|
|
15
|
+
exports.countConsecutiveOrchestratorFallbackEntries = countConsecutiveOrchestratorFallbackEntries;
|
|
16
|
+
exports.countConsecutiveUnclearEntries = countConsecutiveUnclearEntries;
|
|
17
|
+
exports.countConsecutiveRetryEntries = countConsecutiveRetryEntries;
|
|
18
|
+
exports.countConsecutiveTaggedOrchestratorEntries = countConsecutiveTaggedOrchestratorEntries;
|
|
19
|
+
exports.countLatestOpenRejectionItems = countLatestOpenRejectionItems;
|
|
20
|
+
exports.hasCoderCompletionSignal = hasCoderCompletionSignal;
|
|
21
|
+
exports.extractSubmissionCommitToken = extractSubmissionCommitToken;
|
|
22
|
+
exports.resolveCoderSubmittedCommitSha = resolveCoderSubmittedCommitSha;
|
|
23
|
+
const node_child_process_1 = require("node:child_process");
|
|
24
|
+
const queries_js_1 = require("../database/queries.js");
|
|
25
|
+
const status_js_1 = require("../git/status.js");
|
|
26
|
+
const loader_js_1 = require("../config/loader.js");
|
|
27
|
+
const registry_js_1 = require("../providers/registry.js");
|
|
28
|
+
const global_db_js_1 = require("../runners/global-db.js");
|
|
29
|
+
exports.WORKSTREAM_LEASE_TTL_SECONDS = 120;
|
|
30
|
+
exports.LEASE_HEARTBEAT_INTERVAL_MS = 30_000;
|
|
31
|
+
/**
|
|
32
|
+
* Extract [OUT_OF_SCOPE] checkbox lines from raw reviewer stdout.
|
|
33
|
+
* Handles bold/backtick formatting, * bullets, and checked/unchecked boxes LLMs may emit.
|
|
34
|
+
*/
|
|
35
|
+
function extractOutOfScopeItems(stdout) {
|
|
36
|
+
return stdout.match(/[-*]\s*\[\s*[x ]?\s*\]\s*(?:[`*]{1,2})?\[OUT_OF_SCOPE\](?:[`*]{1,2})?[^\n]*/gi) ?? [];
|
|
37
|
+
}
|
|
38
|
+
function refreshParallelWorkstreamLease(projectPath, leaseFence) {
|
|
39
|
+
if (!leaseFence?.parallelSessionId) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
return (0, global_db_js_1.withGlobalDatabase)((db) => {
|
|
43
|
+
const row = db
|
|
44
|
+
.prepare(`SELECT id, claim_generation, runner_id
|
|
45
|
+
FROM workstreams
|
|
46
|
+
WHERE session_id = ?
|
|
47
|
+
AND clone_path = ?
|
|
48
|
+
AND status = 'running'
|
|
49
|
+
LIMIT 1`)
|
|
50
|
+
.get(leaseFence.parallelSessionId, projectPath);
|
|
51
|
+
if (!row) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const owner = leaseFence.runnerId ?? row.runner_id ?? `runner:${process.pid ?? 'unknown'}`;
|
|
55
|
+
const updateResult = db
|
|
56
|
+
.prepare(`UPDATE workstreams
|
|
57
|
+
SET runner_id = ?,
|
|
58
|
+
lease_expires_at = datetime('now', '+${exports.WORKSTREAM_LEASE_TTL_SECONDS} seconds')
|
|
59
|
+
WHERE id = ?
|
|
60
|
+
AND status = 'running'
|
|
61
|
+
AND claim_generation = ?`)
|
|
62
|
+
.run(owner, row.id, row.claim_generation);
|
|
63
|
+
return updateResult.changes === 1;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async function invokeWithLeaseHeartbeat(projectPath, leaseFence, invokeFn) {
|
|
67
|
+
if (!leaseFence?.parallelSessionId) {
|
|
68
|
+
return { superseded: false, result: await invokeFn() };
|
|
69
|
+
}
|
|
70
|
+
let superseded = false;
|
|
71
|
+
const interval = setInterval(() => {
|
|
72
|
+
if (superseded) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const refreshed = refreshParallelWorkstreamLease(projectPath, leaseFence);
|
|
76
|
+
if (!refreshed) {
|
|
77
|
+
superseded = true;
|
|
78
|
+
}
|
|
79
|
+
}, exports.LEASE_HEARTBEAT_INTERVAL_MS);
|
|
80
|
+
interval.unref?.();
|
|
81
|
+
try {
|
|
82
|
+
const result = await invokeFn();
|
|
83
|
+
if (superseded) {
|
|
84
|
+
return { superseded: true };
|
|
85
|
+
}
|
|
86
|
+
return { superseded: false, result };
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
clearInterval(interval);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function summarizeErrorMessage(error) {
|
|
93
|
+
const raw = error instanceof Error ? error.message : String(error);
|
|
94
|
+
return raw.replace(/\s+/g, ' ').trim().slice(0, 220);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Classify orchestrator invocation failures so we can distinguish transient parse
|
|
98
|
+
* noise from hard provider/config failures (auth/model/availability).
|
|
99
|
+
*/
|
|
100
|
+
async function classifyOrchestratorFailure(error, projectPath) {
|
|
101
|
+
const message = summarizeErrorMessage(error);
|
|
102
|
+
const lower = message.toLowerCase();
|
|
103
|
+
if (lower.includes('orchestrator ai provider not configured')) {
|
|
104
|
+
return { type: 'orchestrator_unconfigured', message, retryable: false };
|
|
105
|
+
}
|
|
106
|
+
if (lower.includes("provider '") && lower.includes('is not available')) {
|
|
107
|
+
return { type: 'provider_unavailable', message, retryable: false };
|
|
108
|
+
}
|
|
109
|
+
const config = (0, loader_js_1.loadConfig)(projectPath);
|
|
110
|
+
const providerName = config.ai?.orchestrator?.provider;
|
|
111
|
+
if (!providerName) {
|
|
112
|
+
return { type: 'orchestrator_unconfigured', message, retryable: false };
|
|
113
|
+
}
|
|
114
|
+
const registry = await (0, registry_js_1.getProviderRegistry)();
|
|
115
|
+
const provider = registry.tryGet(providerName);
|
|
116
|
+
if (!provider) {
|
|
117
|
+
return { type: 'provider_unavailable', message, retryable: false };
|
|
118
|
+
}
|
|
119
|
+
const syntheticFailure = {
|
|
120
|
+
success: false,
|
|
121
|
+
exitCode: 1,
|
|
122
|
+
stdout: '',
|
|
123
|
+
stderr: message,
|
|
124
|
+
duration: 0,
|
|
125
|
+
timedOut: false,
|
|
126
|
+
};
|
|
127
|
+
const classified = provider.classifyResult(syntheticFailure);
|
|
128
|
+
if (!classified) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
type: classified.type,
|
|
133
|
+
message: classified.message || message,
|
|
134
|
+
retryable: classified.retryable,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
exports.MAX_ORCHESTRATOR_PARSE_RETRIES = 3;
|
|
138
|
+
exports.MAX_CONTRACT_VIOLATION_RETRIES = 3;
|
|
139
|
+
exports.MAX_PROVIDER_NONZERO_FAILURES = 3;
|
|
140
|
+
exports.MAX_CONSECUTIVE_CODER_RETRIES = 3;
|
|
141
|
+
exports.CODER_PARSE_FALLBACK_MARKER = '[retry] FALLBACK: Orchestrator failed, defaulting to retry';
|
|
142
|
+
exports.REVIEWER_PARSE_FALLBACK_MARKER = '[unclear] FALLBACK: Orchestrator failed, retrying review';
|
|
143
|
+
exports.CONTRACT_CHECKLIST_MARKER = '[contract:checklist]';
|
|
144
|
+
exports.CONTRACT_REJECTION_RESPONSE_MARKER = '[contract:rejection_response]';
|
|
145
|
+
exports.MUST_IMPLEMENT_MARKER = '[must_implement]';
|
|
146
|
+
function formatProviderFailureMessage(taskId, context) {
|
|
147
|
+
const output = context.output || 'provider invocation failed with no output.';
|
|
148
|
+
return `Task ${taskId}: provider ${context.provider}/${context.model} exited with non-zero status ${context.exitCode} during ${context.role} phase: ${output}`;
|
|
149
|
+
}
|
|
150
|
+
async function handleProviderInvocationFailure(db, taskId, context, jsonMode) {
|
|
151
|
+
const { updateTaskStatus } = await import('../database/queries.js');
|
|
152
|
+
const failureCount = (0, queries_js_1.incrementTaskFailureCount)(db, taskId);
|
|
153
|
+
const providerMessage = formatProviderFailureMessage(taskId, context);
|
|
154
|
+
if (failureCount >= exports.MAX_PROVIDER_NONZERO_FAILURES) {
|
|
155
|
+
const reason = `${providerMessage} (provider invocation failed ${failureCount} time(s). Task failed.)`;
|
|
156
|
+
updateTaskStatus(db, taskId, 'failed', 'orchestrator', reason);
|
|
157
|
+
if (!jsonMode) {
|
|
158
|
+
console.log(`\n✗ Task failed (${reason})`);
|
|
159
|
+
}
|
|
160
|
+
return { shouldStopTask: true };
|
|
161
|
+
}
|
|
162
|
+
if (!jsonMode) {
|
|
163
|
+
const retriesLeft = exports.MAX_PROVIDER_NONZERO_FAILURES - failureCount;
|
|
164
|
+
console.log(`\n⟳ Provider invocation failed (${failureCount}/${exports.MAX_PROVIDER_NONZERO_FAILURES}) for task ${taskId}; retrying (${retriesLeft} attempt(s) left).`);
|
|
165
|
+
console.log(` ${providerMessage}`);
|
|
166
|
+
}
|
|
167
|
+
return { shouldStopTask: false };
|
|
168
|
+
}
|
|
169
|
+
function countConsecutiveOrchestratorFallbackEntries(db, taskId, marker) {
|
|
170
|
+
const audit = (0, queries_js_1.getTaskAudit)(db, taskId);
|
|
171
|
+
let count = 0;
|
|
172
|
+
for (let i = audit.length - 1; i >= 0; i--) {
|
|
173
|
+
const entry = audit[i];
|
|
174
|
+
if (entry.actor !== 'orchestrator')
|
|
175
|
+
break;
|
|
176
|
+
// Use category and error_code instead of marker string search
|
|
177
|
+
const isFallback = entry.category === 'fallback';
|
|
178
|
+
const matchesCode = entry.error_code === marker;
|
|
179
|
+
if (isFallback && matchesCode) {
|
|
180
|
+
count += 1;
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return count;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Count consecutive unclear orchestrator entries (regardless of specific marker).
|
|
190
|
+
* This catches ALL unclear decisions — orchestrator parse failures, missing decision tokens, etc.
|
|
191
|
+
*/
|
|
192
|
+
function countConsecutiveUnclearEntries(db, taskId) {
|
|
193
|
+
const audit = (0, queries_js_1.getTaskAudit)(db, taskId);
|
|
194
|
+
let count = 0;
|
|
195
|
+
for (let i = audit.length - 1; i >= 0; i--) {
|
|
196
|
+
const entry = audit[i];
|
|
197
|
+
if (entry.actor !== 'orchestrator')
|
|
198
|
+
break;
|
|
199
|
+
if ((entry.notes ?? '').startsWith('[unclear]')) {
|
|
200
|
+
count += 1;
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
return count;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Count consecutive coder retry entries (notes starting with [retry]).
|
|
209
|
+
* Used as a universal retry cap to prevent infinite loops.
|
|
210
|
+
*/
|
|
211
|
+
function countConsecutiveRetryEntries(db, taskId) {
|
|
212
|
+
const audit = (0, queries_js_1.getTaskAudit)(db, taskId);
|
|
213
|
+
let count = 0;
|
|
214
|
+
for (let i = audit.length - 1; i >= 0; i--) {
|
|
215
|
+
const entry = audit[i];
|
|
216
|
+
if (entry.actor !== 'orchestrator')
|
|
217
|
+
break;
|
|
218
|
+
if ((entry.notes ?? '').startsWith('[retry]')) {
|
|
219
|
+
count += 1;
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
return count;
|
|
225
|
+
}
|
|
226
|
+
function countConsecutiveTaggedOrchestratorEntries(db, taskId, requiredTag, tagFamilyPrefix) {
|
|
227
|
+
const audit = (0, queries_js_1.getTaskAudit)(db, taskId);
|
|
228
|
+
let count = 0;
|
|
229
|
+
for (let i = audit.length - 1; i >= 0; i--) {
|
|
230
|
+
const entry = audit[i];
|
|
231
|
+
if (entry.actor !== 'orchestrator') {
|
|
232
|
+
continue; // tolerate non-orchestrator audit noise
|
|
233
|
+
}
|
|
234
|
+
const notes = entry.notes ?? '';
|
|
235
|
+
if (notes.includes(requiredTag)) {
|
|
236
|
+
count += 1;
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
if (tagFamilyPrefix && notes.includes(tagFamilyPrefix)) {
|
|
240
|
+
break; // same family, different category = sequence ended
|
|
241
|
+
}
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
return count;
|
|
245
|
+
}
|
|
246
|
+
function countLatestOpenRejectionItems(notes) {
|
|
247
|
+
if (!notes)
|
|
248
|
+
return 0;
|
|
249
|
+
return notes
|
|
250
|
+
.split('\n')
|
|
251
|
+
.filter(line => /^\s*[-*]\s*\[\s\]\s+/.test(line))
|
|
252
|
+
.length;
|
|
253
|
+
}
|
|
254
|
+
function hasCoderCompletionSignal(output) {
|
|
255
|
+
const lower = output.toLowerCase();
|
|
256
|
+
if (/\b(?:not|no)\s+(?:task\s+)?(?:is\s+)?(?:complete|complete[d]?|finished|done|ready)\b/.test(lower)) {
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
return /\b(?:task\s+)?(?:is\s+)?(?:complete|complete[d]?|implemented|finished|done|ready for review|ready)\b/.test(lower);
|
|
260
|
+
}
|
|
261
|
+
function extractSubmissionCommitToken(output) {
|
|
262
|
+
const match = output.match(/^\s*SUBMISSION_COMMIT\s*:\s*([0-9a-fA-F]{7,40})\b/im);
|
|
263
|
+
return match?.[1] ?? null;
|
|
264
|
+
}
|
|
265
|
+
function resolveCoderSubmittedCommitSha(projectPath, coderOutput, options = {}) {
|
|
266
|
+
const tokenSha = extractSubmissionCommitToken(coderOutput);
|
|
267
|
+
if (tokenSha && (0, status_js_1.isCommitReachableWithFetch)(projectPath, tokenSha, { forceFetch: true })) {
|
|
268
|
+
try {
|
|
269
|
+
return (0, node_child_process_1.execSync)(`git rev-parse ${tokenSha}^{commit}`, {
|
|
270
|
+
cwd: projectPath,
|
|
271
|
+
encoding: 'utf-8',
|
|
272
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
273
|
+
}).trim();
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
return tokenSha;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
if (options.requireExplicitToken) {
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
return (0, status_js_1.getCurrentCommitSha)(projectPath) || undefined;
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=loop-phases-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-phases-helpers.js","sourceRoot":"","sources":["../../src/commands/loop-phases-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reviewer decision resolution
|
|
3
|
+
* Extracted from loop-phases-reviewer.ts to keep that file under 500 lines.
|
|
4
|
+
*/
|
|
5
|
+
import { type ReviewerResult } from '../orchestrator/reviewer.js';
|
|
6
|
+
import type { ReviewerOrchestrationResult } from '../orchestrator/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Resolve a reviewer decision from one or more reviewer results.
|
|
9
|
+
* Handles single-reviewer and multi-reviewer flows, including orchestrator
|
|
10
|
+
* fallbacks and unanimous-consensus detection.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveReviewerDecision(task: {
|
|
13
|
+
id: string;
|
|
14
|
+
title: string;
|
|
15
|
+
rejection_count: number;
|
|
16
|
+
}, projectPath: string, reviewerResult: ReviewerResult | undefined, reviewerResults: ReviewerResult[], effectiveMultiReviewEnabled: boolean, gitContext: {
|
|
17
|
+
commit_sha: string;
|
|
18
|
+
files_changed: string[];
|
|
19
|
+
additions: number;
|
|
20
|
+
deletions: number;
|
|
21
|
+
}): Promise<ReviewerOrchestrationResult>;
|
|
22
|
+
//# sourceMappingURL=loop-phases-reviewer-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-phases-reviewer-resolution.d.ts","sourceRoot":"","sources":["../../src/commands/loop-phases-reviewer-resolution.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAMrC,OAAO,KAAK,EAGV,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAMlC;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EAC5D,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,eAAe,EAAE,cAAc,EAAE,EACjC,2BAA2B,EAAE,OAAO,EACpC,UAAU,EAAE;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,2BAA2B,CAAC,CAiLtC"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Reviewer decision resolution
|
|
4
|
+
* Extracted from loop-phases-reviewer.ts to keep that file under 500 lines.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.resolveReviewerDecision = resolveReviewerDecision;
|
|
8
|
+
const reviewer_js_1 = require("../orchestrator/reviewer.js");
|
|
9
|
+
const invoke_js_1 = require("../orchestrator/invoke.js");
|
|
10
|
+
const fallback_handler_js_1 = require("../orchestrator/fallback-handler.js");
|
|
11
|
+
const loop_phases_helpers_js_1 = require("./loop-phases-helpers.js");
|
|
12
|
+
/**
|
|
13
|
+
* Resolve a reviewer decision from one or more reviewer results.
|
|
14
|
+
* Handles single-reviewer and multi-reviewer flows, including orchestrator
|
|
15
|
+
* fallbacks and unanimous-consensus detection.
|
|
16
|
+
*/
|
|
17
|
+
async function resolveReviewerDecision(task, projectPath, reviewerResult, reviewerResults, effectiveMultiReviewEnabled, gitContext) {
|
|
18
|
+
let decision;
|
|
19
|
+
if (effectiveMultiReviewEnabled) {
|
|
20
|
+
const { decision: finalDecision, needsMerge } = (0, reviewer_js_1.resolveDecision)(reviewerResults);
|
|
21
|
+
const multiContext = {
|
|
22
|
+
task: {
|
|
23
|
+
id: task.id,
|
|
24
|
+
title: task.title,
|
|
25
|
+
rejection_count: task.rejection_count,
|
|
26
|
+
},
|
|
27
|
+
reviewer_results: reviewerResults.map(r => ({
|
|
28
|
+
provider: r.provider || 'unknown',
|
|
29
|
+
model: r.model || 'unknown',
|
|
30
|
+
decision: r.decision || 'unclear',
|
|
31
|
+
stdout: r.stdout,
|
|
32
|
+
stderr: r.stderr,
|
|
33
|
+
duration_ms: r.duration,
|
|
34
|
+
})),
|
|
35
|
+
git_context: gitContext,
|
|
36
|
+
};
|
|
37
|
+
if (needsMerge) {
|
|
38
|
+
// Invoke multi-reviewer orchestrator to merge notes
|
|
39
|
+
try {
|
|
40
|
+
const orchestratorOutput = await (0, invoke_js_1.invokeMultiReviewerOrchestrator)(multiContext, projectPath);
|
|
41
|
+
const handler = new fallback_handler_js_1.OrchestrationFallbackHandler();
|
|
42
|
+
decision = handler.parseReviewerOutput(orchestratorOutput);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error('Multi-reviewer orchestrator failed:', error);
|
|
46
|
+
decision = {
|
|
47
|
+
decision: 'unclear',
|
|
48
|
+
reasoning: 'FALLBACK: Multi-reviewer orchestrator failed',
|
|
49
|
+
notes: 'Review unclear, retrying',
|
|
50
|
+
next_status: 'review',
|
|
51
|
+
rejection_count: task.rejection_count,
|
|
52
|
+
confidence: 'low',
|
|
53
|
+
push_to_remote: false,
|
|
54
|
+
repeated_issue: false,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// No merge needed (decision is Approve, Dispute, or Skip)
|
|
60
|
+
try {
|
|
61
|
+
const orchestratorOutput = await (0, invoke_js_1.invokeMultiReviewerOrchestrator)(multiContext, projectPath);
|
|
62
|
+
const handler = new fallback_handler_js_1.OrchestrationFallbackHandler();
|
|
63
|
+
decision = handler.parseReviewerOutput(orchestratorOutput);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.error('Multi-reviewer orchestrator failed (consensus path):', error);
|
|
67
|
+
const handler = new fallback_handler_js_1.OrchestrationFallbackHandler();
|
|
68
|
+
// REQUIRE UNANIMOUS CONSENSUS for the non-reject finalDecision
|
|
69
|
+
const isUnanimousConsensus = reviewerResults.length > 0 &&
|
|
70
|
+
reviewerResults.every(r => {
|
|
71
|
+
if (r.decision === finalDecision)
|
|
72
|
+
return true;
|
|
73
|
+
return handler.extractExplicitReviewerDecision(r.stdout) === finalDecision;
|
|
74
|
+
});
|
|
75
|
+
if (isUnanimousConsensus) {
|
|
76
|
+
const primaryResult = reviewerResults.find(r => r.decision === finalDecision) || reviewerResults[0];
|
|
77
|
+
decision = {
|
|
78
|
+
decision: (finalDecision === 'unclear' ? 'unclear' : finalDecision),
|
|
79
|
+
reasoning: `FALLBACK: Multi-reviewer orchestrator failed but all reviewers reached consensus: ${finalDecision}`,
|
|
80
|
+
notes: primaryResult?.notes || primaryResult?.stdout || 'No notes provided',
|
|
81
|
+
next_status: finalDecision === 'approve' ? 'completed' :
|
|
82
|
+
finalDecision === 'reject' ? 'in_progress' :
|
|
83
|
+
finalDecision === 'dispute' ? 'disputed' :
|
|
84
|
+
finalDecision === 'skip' ? 'skipped' : 'review',
|
|
85
|
+
rejection_count: task.rejection_count,
|
|
86
|
+
confidence: 'low',
|
|
87
|
+
push_to_remote: ['approve', 'dispute', 'skip'].includes(finalDecision),
|
|
88
|
+
repeated_issue: false,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
decision = {
|
|
93
|
+
decision: 'unclear',
|
|
94
|
+
reasoning: 'FALLBACK: Multi-reviewer orchestrator failed and no unanimous consensus',
|
|
95
|
+
notes: 'Review unclear, retrying',
|
|
96
|
+
next_status: 'review',
|
|
97
|
+
rejection_count: task.rejection_count,
|
|
98
|
+
confidence: 'low',
|
|
99
|
+
push_to_remote: false,
|
|
100
|
+
repeated_issue: false,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// Single reviewer flow
|
|
108
|
+
const context = {
|
|
109
|
+
task: {
|
|
110
|
+
id: task.id,
|
|
111
|
+
title: task.title,
|
|
112
|
+
rejection_count: task.rejection_count,
|
|
113
|
+
},
|
|
114
|
+
reviewer_output: {
|
|
115
|
+
stdout: reviewerResult.stdout,
|
|
116
|
+
stderr: reviewerResult.stderr,
|
|
117
|
+
exit_code: reviewerResult.exitCode,
|
|
118
|
+
timed_out: reviewerResult.timedOut,
|
|
119
|
+
duration_ms: reviewerResult.duration,
|
|
120
|
+
},
|
|
121
|
+
git_context: gitContext,
|
|
122
|
+
};
|
|
123
|
+
try {
|
|
124
|
+
const orchestratorOutput = await (0, invoke_js_1.invokeReviewerOrchestrator)(context, projectPath);
|
|
125
|
+
const handler = new fallback_handler_js_1.OrchestrationFallbackHandler();
|
|
126
|
+
decision = handler.parseReviewerOutput(orchestratorOutput);
|
|
127
|
+
// If orchestrator returned unclear, check reviewer stdout for explicit decision token
|
|
128
|
+
if (decision.decision === 'unclear') {
|
|
129
|
+
const reviewerStdout = reviewerResult?.stdout ?? '';
|
|
130
|
+
const explicitDecision = handler.extractExplicitReviewerDecision(reviewerStdout);
|
|
131
|
+
if (explicitDecision) {
|
|
132
|
+
decision = {
|
|
133
|
+
decision: explicitDecision,
|
|
134
|
+
reasoning: `FALLBACK: Orchestrator unclear but reviewer explicitly signaled ${explicitDecision.toUpperCase()}`,
|
|
135
|
+
notes: reviewerStdout,
|
|
136
|
+
next_status: explicitDecision === 'approve' ? 'completed' :
|
|
137
|
+
explicitDecision === 'reject' ? 'in_progress' :
|
|
138
|
+
explicitDecision === 'dispute' ? 'disputed' :
|
|
139
|
+
explicitDecision === 'skip' ? 'skipped' : 'review',
|
|
140
|
+
rejection_count: task.rejection_count,
|
|
141
|
+
confidence: 'medium',
|
|
142
|
+
push_to_remote: ['approve', 'dispute', 'skip'].includes(explicitDecision),
|
|
143
|
+
repeated_issue: false,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
console.error('Orchestrator invocation failed:', error);
|
|
150
|
+
const orchestratorFailure = await (0, loop_phases_helpers_js_1.classifyOrchestratorFailure)(error, projectPath);
|
|
151
|
+
const handler = new fallback_handler_js_1.OrchestrationFallbackHandler();
|
|
152
|
+
const reviewerStdout = reviewerResult?.stdout ?? '';
|
|
153
|
+
const explicitDecision = handler.extractExplicitReviewerDecision(reviewerStdout);
|
|
154
|
+
const failureReason = orchestratorFailure
|
|
155
|
+
? `${orchestratorFailure.type}: ${orchestratorFailure.message}`
|
|
156
|
+
: (0, loop_phases_helpers_js_1.summarizeErrorMessage)(error);
|
|
157
|
+
if (explicitDecision) {
|
|
158
|
+
decision = {
|
|
159
|
+
decision: explicitDecision,
|
|
160
|
+
reasoning: `FALLBACK: Orchestrator failed (${failureReason}) but reviewer explicitly signaled ${explicitDecision.toUpperCase()}`,
|
|
161
|
+
notes: reviewerStdout,
|
|
162
|
+
next_status: explicitDecision === 'approve' ? 'completed' :
|
|
163
|
+
explicitDecision === 'reject' ? 'in_progress' :
|
|
164
|
+
explicitDecision === 'dispute' ? 'disputed' :
|
|
165
|
+
explicitDecision === 'skip' ? 'skipped' : 'review',
|
|
166
|
+
rejection_count: task.rejection_count,
|
|
167
|
+
confidence: 'low',
|
|
168
|
+
push_to_remote: ['approve', 'dispute', 'skip'].includes(explicitDecision),
|
|
169
|
+
repeated_issue: false,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
decision = {
|
|
174
|
+
decision: 'unclear',
|
|
175
|
+
reasoning: `FALLBACK: Orchestrator failed (${failureReason}), retrying review`,
|
|
176
|
+
notes: 'Review unclear, retrying',
|
|
177
|
+
next_status: 'review',
|
|
178
|
+
rejection_count: task.rejection_count,
|
|
179
|
+
confidence: 'low',
|
|
180
|
+
push_to_remote: false,
|
|
181
|
+
repeated_issue: false,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return decision;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=loop-phases-reviewer-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-phases-reviewer-resolution.js","sourceRoot":"","sources":["../../src/commands/loop-phases-reviewer-resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { getTask } from '../database/queries.js';
|
|
2
|
+
import type { openDatabase } from '../database/connection.js';
|
|
3
|
+
import type { CoordinatorResult } from '../orchestrator/coordinator.js';
|
|
4
|
+
import type { PoolSlotContext } from '../workspace/types.js';
|
|
5
|
+
import { LeaseFenceContext, CreditExhaustionResult } from './loop-phases-helpers.js';
|
|
6
|
+
export declare function runReviewerPhase(db: ReturnType<typeof openDatabase>['db'], task: ReturnType<typeof getTask>, projectPath: string, jsonMode?: boolean, coordinatorResult?: CoordinatorResult, branchName?: string, leaseFence?: LeaseFenceContext, poolSlotContext?: PoolSlotContext): Promise<CreditExhaustionResult | void>;
|
|
7
|
+
//# sourceMappingURL=loop-phases-reviewer.d.ts.map
|