steroids-cli 0.9.42 → 0.10.13
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/base-command.d.ts +16 -0
- package/dist/cli/base-command.d.ts.map +1 -0
- package/dist/cli/base-command.js +42 -0
- package/dist/cli/base-command.js.map +1 -0
- package/dist/cli/version-check.d.ts.map +1 -1
- package/dist/cli/version-check.js +28 -2
- package/dist/cli/version-check.js.map +1 -1
- package/dist/commands/disputes.js +15 -30
- package/dist/commands/disputes.js.map +1 -1
- package/dist/commands/gc.d.ts +1 -1
- package/dist/commands/gc.d.ts.map +1 -1
- package/dist/commands/gc.js +49 -64
- package/dist/commands/gc.js.map +1 -1
- package/dist/commands/git.d.ts.map +1 -1
- package/dist/commands/git.js +5 -8
- package/dist/commands/git.js.map +1 -1
- package/dist/commands/health-stuck.js +2 -6
- package/dist/commands/health-stuck.js.map +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +2 -6
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/llm.d.ts.map +1 -1
- package/dist/commands/llm.js +4 -12
- package/dist/commands/llm.js.map +1 -1
- package/dist/commands/locks.js +12 -24
- package/dist/commands/locks.js.map +1 -1
- package/dist/commands/loop-phases.d.ts +12 -4
- package/dist/commands/loop-phases.d.ts.map +1 -1
- package/dist/commands/loop-phases.js +163 -111
- package/dist/commands/loop-phases.js.map +1 -1
- package/dist/commands/purge.d.ts.map +1 -1
- package/dist/commands/purge.js +11 -22
- package/dist/commands/purge.js.map +1 -1
- package/dist/commands/runners-list.d.ts.map +1 -1
- package/dist/commands/runners-list.js +11 -30
- package/dist/commands/runners-list.js.map +1 -1
- package/dist/commands/runners-parallel.d.ts.map +1 -1
- package/dist/commands/runners-parallel.js +3 -7
- package/dist/commands/runners-parallel.js.map +1 -1
- package/dist/commands/runners.js +2 -9
- package/dist/commands/runners.js.map +1 -1
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +5 -8
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/sections-commands.d.ts.map +1 -1
- package/dist/commands/sections-commands.js +12 -24
- package/dist/commands/sections-commands.js.map +1 -1
- package/dist/commands/sections.js +6 -12
- package/dist/commands/sections.js.map +1 -1
- package/dist/commands/skills.d.ts +11 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +181 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/tasks-reset.d.ts +3 -0
- package/dist/commands/tasks-reset.d.ts.map +1 -0
- package/dist/commands/tasks-reset.js +200 -0
- package/dist/commands/tasks-reset.js.map +1 -0
- package/dist/commands/tasks.d.ts.map +1 -1
- package/dist/commands/tasks.js +57 -67
- package/dist/commands/tasks.js.map +1 -1
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +3 -1
- package/dist/commands/web.js.map +1 -1
- package/dist/config/loader.d.ts +1 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/database/connection.d.ts +10 -1
- package/dist/database/connection.d.ts.map +1 -1
- package/dist/database/connection.js +32 -6
- package/dist/database/connection.js.map +1 -1
- package/dist/database/queries.d.ts +18 -0
- package/dist/database/queries.d.ts.map +1 -1
- package/dist/database/queries.js +91 -20
- package/dist/database/queries.js.map +1 -1
- package/dist/database/schema.d.ts +2 -2
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js +8 -0
- package/dist/database/schema.js.map +1 -1
- package/dist/git/status.d.ts.map +1 -1
- package/dist/git/status.js +13 -2
- package/dist/git/status.js.map +1 -1
- package/dist/git/submission-resolution.d.ts.map +1 -1
- package/dist/git/submission-resolution.js +3 -7
- package/dist/git/submission-resolution.js.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/migrations/backfill.d.ts +3 -0
- package/dist/migrations/backfill.d.ts.map +1 -0
- package/dist/migrations/backfill.js +53 -0
- package/dist/migrations/backfill.js.map +1 -0
- package/dist/migrations/runner.d.ts.map +1 -1
- package/dist/migrations/runner.js +9 -0
- package/dist/migrations/runner.js.map +1 -1
- package/dist/orchestrator/base-runner.d.ts +14 -0
- package/dist/orchestrator/base-runner.d.ts.map +1 -0
- package/dist/orchestrator/base-runner.js +57 -0
- package/dist/orchestrator/base-runner.js.map +1 -0
- package/dist/orchestrator/coder.d.ts +4 -22
- package/dist/orchestrator/coder.d.ts.map +1 -1
- package/dist/orchestrator/coder.js +136 -183
- package/dist/orchestrator/coder.js.map +1 -1
- package/dist/orchestrator/coordinator.d.ts.map +1 -1
- package/dist/orchestrator/coordinator.js +1 -0
- package/dist/orchestrator/coordinator.js.map +1 -1
- package/dist/orchestrator/fallback-handler.d.ts +3 -23
- package/dist/orchestrator/fallback-handler.d.ts.map +1 -1
- package/dist/orchestrator/fallback-handler.js +40 -357
- package/dist/orchestrator/fallback-handler.js.map +1 -1
- package/dist/orchestrator/history-manager.d.ts +15 -0
- package/dist/orchestrator/history-manager.d.ts.map +1 -0
- package/dist/orchestrator/history-manager.js +93 -0
- package/dist/orchestrator/history-manager.js.map +1 -0
- package/dist/orchestrator/post-coder.d.ts.map +1 -1
- package/dist/orchestrator/post-coder.js +16 -24
- 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 +25 -37
- package/dist/orchestrator/post-reviewer.js.map +1 -1
- package/dist/orchestrator/reviewer.d.ts +5 -29
- package/dist/orchestrator/reviewer.d.ts.map +1 -1
- package/dist/orchestrator/reviewer.js +193 -255
- package/dist/orchestrator/reviewer.js.map +1 -1
- package/dist/orchestrator/signal-parser.d.ts +32 -0
- package/dist/orchestrator/signal-parser.d.ts.map +1 -0
- package/dist/orchestrator/signal-parser.js +73 -0
- package/dist/orchestrator/signal-parser.js.map +1 -0
- package/dist/orchestrator/types.d.ts +9 -13
- package/dist/orchestrator/types.d.ts.map +1 -1
- package/dist/parallel/clone.d.ts.map +1 -1
- package/dist/parallel/clone.js +37 -2
- package/dist/parallel/clone.js.map +1 -1
- package/dist/parallel/merge-conflict-attempts.d.ts.map +1 -1
- package/dist/parallel/merge-conflict-attempts.js +4 -12
- package/dist/parallel/merge-conflict-attempts.js.map +1 -1
- package/dist/parallel/merge-conflict.d.ts.map +1 -1
- package/dist/parallel/merge-conflict.js +3 -10
- package/dist/parallel/merge-conflict.js.map +1 -1
- package/dist/parallel/merge-sealing.d.ts +0 -3
- package/dist/parallel/merge-sealing.d.ts.map +1 -1
- package/dist/parallel/merge-sealing.js +5 -9
- package/dist/parallel/merge-sealing.js.map +1 -1
- package/dist/prompts/coder.d.ts +1 -1
- package/dist/prompts/coder.d.ts.map +1 -1
- package/dist/prompts/coder.js +66 -119
- package/dist/prompts/coder.js.map +1 -1
- package/dist/prompts/prompt-helpers.d.ts +4 -0
- package/dist/prompts/prompt-helpers.d.ts.map +1 -1
- package/dist/prompts/prompt-helpers.js +35 -0
- package/dist/prompts/prompt-helpers.js.map +1 -1
- package/dist/prompts/reviewer.d.ts.map +1 -1
- package/dist/prompts/reviewer.js +1 -3
- package/dist/prompts/reviewer.js.map +1 -1
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +9 -1
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/codex.d.ts.map +1 -1
- package/dist/providers/codex.js +10 -1
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/gemini.d.ts +9 -48
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +133 -101
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/interface.d.ts +9 -1
- package/dist/providers/interface.d.ts.map +1 -1
- package/dist/providers/interface.js +11 -1
- package/dist/providers/interface.js.map +1 -1
- package/dist/providers/invocation-logger.d.ts +2 -0
- package/dist/providers/invocation-logger.d.ts.map +1 -1
- package/dist/providers/invocation-logger.js +3 -3
- package/dist/providers/invocation-logger.js.map +1 -1
- package/dist/providers/mistral.d.ts.map +1 -1
- package/dist/providers/mistral.js +12 -1
- package/dist/providers/mistral.js.map +1 -1
- package/dist/providers/ping.d.ts +5 -0
- package/dist/providers/ping.d.ts.map +1 -0
- package/dist/providers/ping.js +35 -0
- package/dist/providers/ping.js.map +1 -0
- package/dist/providers/registry.d.ts +4 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +18 -0
- package/dist/providers/registry.js.map +1 -1
- package/dist/runners/activity-log.d.ts.map +1 -1
- package/dist/runners/activity-log.js +12 -36
- package/dist/runners/activity-log.js.map +1 -1
- package/dist/runners/credit-pause.d.ts +2 -3
- package/dist/runners/credit-pause.d.ts.map +1 -1
- package/dist/runners/credit-pause.js +25 -40
- package/dist/runners/credit-pause.js.map +1 -1
- package/dist/runners/daemon.d.ts +0 -8
- package/dist/runners/daemon.d.ts.map +1 -1
- package/dist/runners/daemon.js +23 -76
- package/dist/runners/daemon.js.map +1 -1
- package/dist/runners/global-db.d.ts +14 -1
- package/dist/runners/global-db.d.ts.map +1 -1
- package/dist/runners/global-db.js +123 -59
- package/dist/runners/global-db.js.map +1 -1
- package/dist/runners/orchestrator-loop.d.ts.map +1 -1
- package/dist/runners/orchestrator-loop.js +2 -6
- package/dist/runners/orchestrator-loop.js.map +1 -1
- package/dist/runners/projects.d.ts +2 -32
- package/dist/runners/projects.d.ts.map +1 -1
- package/dist/runners/projects.js +23 -103
- package/dist/runners/projects.js.map +1 -1
- package/dist/runners/wakeup-checks.d.ts +0 -3
- package/dist/runners/wakeup-checks.d.ts.map +1 -1
- package/dist/runners/wakeup-checks.js +13 -26
- package/dist/runners/wakeup-checks.js.map +1 -1
- package/dist/runners/wakeup-timing.d.ts.map +1 -1
- package/dist/runners/wakeup-timing.js +4 -12
- package/dist/runners/wakeup-timing.js.map +1 -1
- package/dist/runners/wakeup.d.ts +1 -1
- package/dist/runners/wakeup.d.ts.map +1 -1
- package/dist/runners/wakeup.js +394 -359
- package/dist/runners/wakeup.js.map +1 -1
- package/dist/utils/tokens.d.ts +14 -0
- package/dist/utils/tokens.d.ts.map +1 -0
- package/dist/utils/tokens.js +62 -0
- package/dist/utils/tokens.js.map +1 -0
- package/migrations/004_add_section_dependencies.sql +1 -1
- package/migrations/017_add_invocation_runner_id.sql +8 -0
- package/migrations/018_expand_audit_columns.sql +13 -0
- package/migrations/019_add_task_start_sha.sql +9 -0
- package/migrations/manifest.json +25 -1
- package/package.json +4 -3
- package/dist/orchestrator/schemas.d.ts +0 -26
- package/dist/orchestrator/schemas.d.ts.map +0 -1
- package/dist/orchestrator/schemas.js +0 -154
- package/dist/orchestrator/schemas.js.map +0 -1
- package/dist/parallel/merge.test.d.ts +0 -5
- package/dist/parallel/merge.test.d.ts.map +0 -1
- package/dist/parallel/merge.test.js +0 -322
- package/dist/parallel/merge.test.js.map +0 -1
|
@@ -3,30 +3,12 @@
|
|
|
3
3
|
* Uses AI provider system for flexible LLM support
|
|
4
4
|
*/
|
|
5
5
|
import type { Task } from '../database/queries.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exitCode: number;
|
|
9
|
-
stdout: string;
|
|
10
|
-
stderr: string;
|
|
11
|
-
duration: number;
|
|
12
|
-
timedOut: boolean;
|
|
6
|
+
import { type BaseRunnerResult } from './base-runner.js';
|
|
7
|
+
export interface CoderResult extends BaseRunnerResult {
|
|
13
8
|
}
|
|
14
|
-
export interface BatchCoderResult {
|
|
15
|
-
success: boolean;
|
|
16
|
-
exitCode: number;
|
|
17
|
-
stdout: string;
|
|
18
|
-
stderr: string;
|
|
19
|
-
duration: number;
|
|
20
|
-
timedOut: boolean;
|
|
9
|
+
export interface BatchCoderResult extends BaseRunnerResult {
|
|
21
10
|
taskCount: number;
|
|
22
11
|
}
|
|
23
|
-
|
|
24
|
-
* Invoke coder for a task
|
|
25
|
-
* @param coordinatorGuidance Optional guidance from coordinator after repeated rejections
|
|
26
|
-
*/
|
|
27
|
-
export declare function invokeCoder(task: Task, projectPath: string, action: 'start' | 'resume', coordinatorGuidance?: string): Promise<CoderResult>;
|
|
28
|
-
/**
|
|
29
|
-
* Invoke coder for a batch of tasks
|
|
30
|
-
*/
|
|
12
|
+
export declare function invokeCoder(task: Task, projectPath: string, action: 'start' | 'resume', coordinatorGuidance?: string, runnerId?: string): Promise<CoderResult>;
|
|
31
13
|
export declare function invokeCoderBatch(tasks: Task[], sectionName: string, projectPath: string): Promise<BatchCoderResult>;
|
|
32
14
|
//# sourceMappingURL=coder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coder.d.ts","sourceRoot":"","sources":["../../src/orchestrator/coder.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"coder.d.ts","sourceRoot":"","sources":["../../src/orchestrator/coder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAenD,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,WAAW,WAAY,SAAQ,gBAAgB;CAAG;AAExD,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,SAAS,EAAE,MAAM,CAAC;CACnB;AA8MD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GAAG,QAAQ,EAC1B,mBAAmB,CAAC,EAAE,MAAM,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CAGtB;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}
|
|
@@ -6,206 +6,159 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.invokeCoder = invokeCoder;
|
|
8
8
|
exports.invokeCoderBatch = invokeCoderBatch;
|
|
9
|
-
const node_fs_1 = require("node:fs");
|
|
10
|
-
const node_os_1 = require("node:os");
|
|
11
|
-
const node_path_1 = require("node:path");
|
|
12
9
|
const queries_js_1 = require("../database/queries.js");
|
|
13
10
|
const connection_js_1 = require("../database/connection.js");
|
|
14
11
|
const coder_js_1 = require("../prompts/coder.js");
|
|
15
12
|
const status_js_1 = require("../git/status.js");
|
|
16
13
|
const loader_js_1 = require("../config/loader.js");
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
(0, node_fs_1.writeFileSync)(tempPath, prompt, 'utf-8');
|
|
25
|
-
return tempPath;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Invoke AI provider with prompt
|
|
29
|
-
* Uses configuration to determine which provider to use
|
|
30
|
-
*/
|
|
31
|
-
async function invokeProvider(promptFile, timeoutMs = 900_000, // 15 minutes default
|
|
32
|
-
taskId, projectPath, resumeSessionId) {
|
|
33
|
-
// Load configuration to get coder provider settings
|
|
34
|
-
// Project config overrides global config
|
|
35
|
-
const config = (0, loader_js_1.loadConfig)(projectPath);
|
|
36
|
-
const coderConfig = config.ai?.coder;
|
|
37
|
-
const providerName = coderConfig?.provider;
|
|
38
|
-
const modelName = coderConfig?.model;
|
|
39
|
-
if (!providerName || !modelName) {
|
|
40
|
-
throw new Error('Coder AI provider not configured. Run "steroids config ai coder" to configure.');
|
|
41
|
-
}
|
|
42
|
-
// Get the provider from registry
|
|
43
|
-
const registry = await (0, registry_js_1.getProviderRegistry)();
|
|
44
|
-
const provider = registry.get(providerName);
|
|
45
|
-
// Check if provider is available
|
|
46
|
-
if (!(await provider.isAvailable())) {
|
|
47
|
-
throw new Error(`Provider '${providerName}' is not available. ` +
|
|
48
|
-
`Ensure the CLI is installed and in PATH.`);
|
|
49
|
-
}
|
|
50
|
-
// Read prompt content
|
|
51
|
-
const promptContent = require('fs').readFileSync(promptFile, 'utf-8');
|
|
52
|
-
const result = await (0, invocation_logger_js_1.logInvocation)(promptContent, (ctx) => provider.invoke(promptContent, {
|
|
53
|
-
model: modelName,
|
|
54
|
-
timeout: timeoutMs,
|
|
55
|
-
cwd: projectPath ?? process.cwd(),
|
|
56
|
-
promptFile,
|
|
57
|
-
role: 'coder',
|
|
58
|
-
streamOutput: true,
|
|
59
|
-
onActivity: ctx?.onActivity,
|
|
60
|
-
resumeSessionId,
|
|
61
|
-
}), {
|
|
62
|
-
role: 'coder',
|
|
63
|
-
provider: providerName,
|
|
64
|
-
model: modelName,
|
|
65
|
-
taskId,
|
|
66
|
-
projectPath,
|
|
67
|
-
resumedFromSessionId: resumeSessionId ?? undefined,
|
|
68
|
-
invocationMode: resumeSessionId ? 'resume' : 'fresh',
|
|
69
|
-
});
|
|
70
|
-
return {
|
|
71
|
-
success: result.success,
|
|
72
|
-
exitCode: result.exitCode,
|
|
73
|
-
stdout: result.stdout,
|
|
74
|
-
stderr: result.stderr,
|
|
75
|
-
duration: result.duration,
|
|
76
|
-
timedOut: result.timedOut,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Invoke coder for a task
|
|
81
|
-
* @param coordinatorGuidance Optional guidance from coordinator after repeated rejections
|
|
82
|
-
*/
|
|
83
|
-
async function invokeCoder(task, projectPath, action, coordinatorGuidance) {
|
|
84
|
-
// Load config to show provider/model being used
|
|
85
|
-
const config = (0, loader_js_1.loadConfig)(projectPath);
|
|
86
|
-
const coderConfig = config.ai?.coder;
|
|
87
|
-
console.log(`\n${'='.repeat(60)}`);
|
|
88
|
-
console.log(`CODER: ${task.title}`);
|
|
89
|
-
console.log(`Action: ${action}`);
|
|
90
|
-
console.log(`Task ID: ${task.id}`);
|
|
91
|
-
console.log(`Provider: ${coderConfig?.provider ?? 'not configured'}`);
|
|
92
|
-
console.log(`Model: ${coderConfig?.model ?? 'not configured'}`);
|
|
93
|
-
if (coordinatorGuidance) {
|
|
94
|
-
console.log(`Coordinator guidance: included (${coordinatorGuidance.length} chars)`);
|
|
95
|
-
}
|
|
96
|
-
console.log(`${'='.repeat(60)}\n`);
|
|
97
|
-
// Fetch rejection history so coder can see past attempts
|
|
98
|
-
let rejectionHistory = [];
|
|
99
|
-
let resumeSessionId = null;
|
|
100
|
-
try {
|
|
101
|
-
const { db, close } = (0, connection_js_1.openDatabase)(projectPath);
|
|
102
|
-
rejectionHistory = (0, queries_js_1.getTaskRejections)(db, task.id);
|
|
103
|
-
if (rejectionHistory.length > 0) {
|
|
104
|
-
console.log(`Found ${rejectionHistory.length} previous rejection(s) - coder will see full history`);
|
|
105
|
-
}
|
|
106
|
-
// Check for resumable session (same provider/model/role)
|
|
14
|
+
const interface_js_1 = require("../providers/interface.js");
|
|
15
|
+
const tokens_js_1 = require("../utils/tokens.js");
|
|
16
|
+
const history_manager_js_1 = require("./history-manager.js");
|
|
17
|
+
const base_runner_js_1 = require("./base-runner.js");
|
|
18
|
+
class CoderRunner extends base_runner_js_1.BaseRunner {
|
|
19
|
+
async runTask(task, projectPath, action, coordinatorGuidance, runnerId) {
|
|
20
|
+
const config = (0, loader_js_1.loadConfig)(projectPath);
|
|
107
21
|
const coderConfig = config.ai?.coder;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
22
|
+
console.log(`\n${'='.repeat(60)}`);
|
|
23
|
+
console.log(`CODER: ${task.title}`);
|
|
24
|
+
console.log(`Action: ${action}`);
|
|
25
|
+
console.log(`Task ID: ${task.id}`);
|
|
26
|
+
console.log(`Provider: ${coderConfig?.provider ?? 'not configured'}`);
|
|
27
|
+
console.log(`Model: ${coderConfig?.model ?? 'not configured'}`);
|
|
28
|
+
if (coordinatorGuidance) {
|
|
29
|
+
console.log(`Coordinator guidance: included (${coordinatorGuidance.length} chars)`);
|
|
113
30
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
context
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
31
|
+
console.log(`${'='.repeat(60)}\n`);
|
|
32
|
+
let rejectionHistory = [];
|
|
33
|
+
let resumeSessionId = null;
|
|
34
|
+
try {
|
|
35
|
+
(0, connection_js_1.withDatabase)(projectPath, (db) => {
|
|
36
|
+
rejectionHistory = (0, queries_js_1.getTaskRejections)(db, task.id);
|
|
37
|
+
if (rejectionHistory.length > 0) {
|
|
38
|
+
console.log(`Found ${rejectionHistory.length} previous rejection(s) - coder will see full history`);
|
|
39
|
+
}
|
|
40
|
+
if (coderConfig?.provider && coderConfig?.model) {
|
|
41
|
+
resumeSessionId = (0, queries_js_1.findResumableSession)(db, task.id, 'coder', coderConfig.provider, coderConfig.model);
|
|
42
|
+
if (resumeSessionId) {
|
|
43
|
+
console.log(`Found resumable session: ${resumeSessionId.substring(0, 8)}... (resuming with delta prompt)`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.warn('Could not fetch rejection history or session info:', error);
|
|
50
|
+
}
|
|
51
|
+
const context = {
|
|
52
|
+
task,
|
|
53
|
+
projectPath,
|
|
54
|
+
previousStatus: task.status,
|
|
55
|
+
rejectionHistory,
|
|
56
|
+
coordinatorGuidance,
|
|
57
|
+
};
|
|
58
|
+
let prompt;
|
|
59
|
+
if (resumeSessionId) {
|
|
60
|
+
prompt = (0, coder_js_1.generateResumingCoderDeltaPrompt)(context);
|
|
61
|
+
}
|
|
62
|
+
else if (action === 'resume') {
|
|
63
|
+
context.gitStatus = (0, status_js_1.getGitStatus)(projectPath);
|
|
64
|
+
context.gitDiff = (0, status_js_1.getGitDiff)(projectPath);
|
|
65
|
+
prompt = (0, coder_js_1.generateResumingCoderPrompt)(context);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
prompt = (0, coder_js_1.generateCoderPrompt)(context);
|
|
69
|
+
}
|
|
70
|
+
const promptFile = this.writePromptToTempFile(prompt, 'prompt');
|
|
71
|
+
try {
|
|
72
|
+
let result;
|
|
73
|
+
let sessionNotFound = false;
|
|
148
74
|
try {
|
|
149
|
-
|
|
150
|
-
(0, queries_js_1.invalidateSession)(db, resumeSessionId);
|
|
151
|
-
close();
|
|
75
|
+
result = await this.invokeProvider(promptFile, 'coder', coderConfig?.provider ?? 'unknown', coderConfig?.model ?? 'unknown', 900_000, task.id, projectPath, resumeSessionId ?? undefined, runnerId);
|
|
152
76
|
}
|
|
153
|
-
catch {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
77
|
+
catch (err) {
|
|
78
|
+
if (err instanceof interface_js_1.SessionNotFoundError) {
|
|
79
|
+
console.warn(`Session not found for resume (${resumeSessionId?.substring(0, 8)}) — invalidating session and retrying fresh`);
|
|
80
|
+
sessionNotFound = true;
|
|
81
|
+
result = { success: false, exitCode: 1, stdout: '', stderr: '', duration: 0, timedOut: false };
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
throw err;
|
|
85
|
+
}
|
|
159
86
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
87
|
+
if (resumeSessionId && sessionNotFound) {
|
|
88
|
+
const providerName = coderConfig?.provider ?? 'unknown';
|
|
89
|
+
const modelName = coderConfig?.model ?? 'unknown';
|
|
90
|
+
let guardedPrompt = '';
|
|
91
|
+
const { getTokenLimitForModel } = await import('../providers/registry.js');
|
|
92
|
+
const maxContextWindow = await getTokenLimitForModel(providerName, modelName);
|
|
93
|
+
const safeLimit = maxContextWindow - 8000;
|
|
94
|
+
try {
|
|
95
|
+
const baseContext = { ...context, rejectionHistory: [] };
|
|
96
|
+
const basePrompt = (0, coder_js_1.generateCoderPrompt)(baseContext);
|
|
97
|
+
const historyResult = history_manager_js_1.HistoryManager.reconstructHistoryWithTokenGuard(projectPath, task.id, resumeSessionId, basePrompt, modelName, safeLimit);
|
|
98
|
+
guardedPrompt = historyResult.finalPrompt;
|
|
99
|
+
(0, connection_js_1.withDatabase)(projectPath, (db) => {
|
|
100
|
+
(0, queries_js_1.invalidateSession)(db, resumeSessionId);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
if (e.message.includes('Context Too Large'))
|
|
105
|
+
throw e;
|
|
106
|
+
guardedPrompt = (0, coder_js_1.generateCoderPrompt)(context);
|
|
107
|
+
if ((0, tokens_js_1.countTokens)(guardedPrompt, modelName) > safeLimit) {
|
|
108
|
+
throw new Error(`Context Too Large: System Prompt and Task Spec alone exceed safe context limit. Task cannot be processed.`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const freshPromptFile = this.writePromptToTempFile(guardedPrompt, 'prompt');
|
|
112
|
+
try {
|
|
113
|
+
result = await this.invokeProvider(freshPromptFile, 'coder', providerName, modelName, 900_000, task.id, projectPath, undefined, runnerId);
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
this.cleanupTempFile(freshPromptFile);
|
|
117
|
+
}
|
|
163
118
|
}
|
|
119
|
+
console.log(`\n${'='.repeat(60)}`);
|
|
120
|
+
console.log(`CODER COMPLETED`);
|
|
121
|
+
console.log(`Exit code: ${result.exitCode}`);
|
|
122
|
+
console.log(`Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
123
|
+
console.log(`${'='.repeat(60)}\n`);
|
|
124
|
+
return result;
|
|
164
125
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
console.log(`Exit code: ${result.exitCode}`);
|
|
168
|
-
console.log(`Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
169
|
-
console.log(`${'='.repeat(60)}\n`);
|
|
170
|
-
return result;
|
|
171
|
-
}
|
|
172
|
-
finally {
|
|
173
|
-
// Clean up temp file
|
|
174
|
-
if ((0, node_fs_1.existsSync)(promptFile)) {
|
|
175
|
-
(0, node_fs_1.unlinkSync)(promptFile);
|
|
126
|
+
finally {
|
|
127
|
+
this.cleanupTempFile(promptFile);
|
|
176
128
|
}
|
|
177
129
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
*/
|
|
182
|
-
async function invokeCoderBatch(tasks, sectionName, projectPath) {
|
|
183
|
-
// Load config to show provider/model being used
|
|
184
|
-
const config = (0, loader_js_1.loadConfig)(projectPath);
|
|
185
|
-
const coderConfig = config.ai?.coder;
|
|
186
|
-
console.log(`\n${'='.repeat(60)}`);
|
|
187
|
-
console.log(`BATCH CODER: Section "${sectionName}"`);
|
|
188
|
-
console.log(`Tasks: ${tasks.length}`);
|
|
189
|
-
tasks.forEach((t, i) => console.log(` ${i + 1}. ${t.title} (${t.id})`));
|
|
190
|
-
console.log(`Provider: ${coderConfig?.provider ?? 'not configured'}`);
|
|
191
|
-
console.log(`Model: ${coderConfig?.model ?? 'not configured'}`);
|
|
192
|
-
console.log(`${'='.repeat(60)}\n`);
|
|
193
|
-
const prompt = (0, coder_js_1.generateBatchCoderPrompt)({ tasks, projectPath, sectionName });
|
|
194
|
-
const promptFile = writePromptToTempFile(prompt);
|
|
195
|
-
try {
|
|
196
|
-
// Longer timeout for batch: base 30 minutes + 5 minutes per task
|
|
197
|
-
const timeoutMs = 30 * 60 * 1000 + tasks.length * 5 * 60 * 1000;
|
|
198
|
-
const result = await invokeProvider(promptFile, timeoutMs, undefined, projectPath);
|
|
130
|
+
async runBatch(tasks, sectionName, projectPath) {
|
|
131
|
+
const config = (0, loader_js_1.loadConfig)(projectPath);
|
|
132
|
+
const coderConfig = config.ai?.coder;
|
|
199
133
|
console.log(`\n${'='.repeat(60)}`);
|
|
200
|
-
console.log(`BATCH CODER
|
|
201
|
-
console.log(`
|
|
134
|
+
console.log(`BATCH CODER: Section "${sectionName}"`);
|
|
135
|
+
console.log(`Tasks: ${tasks.length}`);
|
|
136
|
+
tasks.forEach((t, i) => console.log(` ${i + 1}. ${t.title} (${t.id})`));
|
|
137
|
+
console.log(`Provider: ${coderConfig?.provider ?? 'not configured'}`);
|
|
138
|
+
console.log(`Model: ${coderConfig?.model ?? 'not configured'}`);
|
|
202
139
|
console.log(`${'='.repeat(60)}\n`);
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
140
|
+
const prompt = (0, coder_js_1.generateBatchCoderPrompt)({ tasks, projectPath, sectionName });
|
|
141
|
+
const promptFile = this.writePromptToTempFile(prompt, 'prompt');
|
|
142
|
+
try {
|
|
143
|
+
const timeoutMs = 30 * 60 * 1000 + tasks.length * 5 * 60 * 1000;
|
|
144
|
+
const result = await this.invokeProvider(promptFile, 'coder', coderConfig?.provider ?? 'unknown', coderConfig?.model ?? 'unknown', timeoutMs, undefined, projectPath);
|
|
145
|
+
console.log(`\n${'='.repeat(60)}`);
|
|
146
|
+
console.log(`BATCH CODER COMPLETED`);
|
|
147
|
+
console.log(`Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
148
|
+
console.log(`${'='.repeat(60)}\n`);
|
|
149
|
+
return { ...result, taskCount: tasks.length };
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
this.cleanupTempFile(promptFile);
|
|
208
153
|
}
|
|
209
154
|
}
|
|
210
155
|
}
|
|
156
|
+
async function invokeCoder(task, projectPath, action, coordinatorGuidance, runnerId) {
|
|
157
|
+
const runner = new CoderRunner();
|
|
158
|
+
return runner.runTask(task, projectPath, action, coordinatorGuidance, runnerId);
|
|
159
|
+
}
|
|
160
|
+
async function invokeCoderBatch(tasks, sectionName, projectPath) {
|
|
161
|
+
const runner = new CoderRunner();
|
|
162
|
+
return runner.runBatch(tasks, sectionName, projectPath);
|
|
163
|
+
}
|
|
211
164
|
//# sourceMappingURL=coder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coder.js","sourceRoot":"","sources":["../../src/orchestrator/coder.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"coder.js","sourceRoot":"","sources":["../../src/orchestrator/coder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/coordinator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMnE,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,GAAG,mBAAmB,GAAG,cAAc,CAAC;CAChE;
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/coordinator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMnE,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,GAAG,mBAAmB,GAAG,cAAc,CAAC;CAChE;AAsND;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,cAAc,EAAE,EAClC,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,kBAAkB,GACzB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA0EnC"}
|
|
@@ -105,6 +105,7 @@ A task has been rejected ${rejectionHistory.length} times. You MUST provide a de
|
|
|
105
105
|
**Title:** ${task.title}
|
|
106
106
|
**Rejection Count:** ${task.rejection_count}/15
|
|
107
107
|
**Project:** ${projectPath}
|
|
108
|
+
**CRITICAL:** You are operating inside an isolated workspace clone. DO NOT change directories out of your current working directory.
|
|
108
109
|
|
|
109
110
|
---
|
|
110
111
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../src/orchestrator/coordinator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../src/orchestrator/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Legacy fallback handler wrapping the new SignalParser.
|
|
3
|
+
* This file will be fully replaced in Task 5/6 when loop-phases is refactored,
|
|
4
|
+
* but for now it bridges the gap to allow deleting schemas.ts.
|
|
4
5
|
*/
|
|
5
6
|
import { CoderOrchestrationResult, ReviewerOrchestrationResult } from './types.js';
|
|
6
7
|
export declare class OrchestrationFallbackHandler {
|
|
7
|
-
private static readonly UNQUOTED_KEY_REGEX;
|
|
8
|
-
private static readonly SINGLE_QUOTED_STRING_REGEX;
|
|
9
|
-
private hasCompletionIndicator;
|
|
10
|
-
private hasCommitIndicator;
|
|
11
|
-
private hasErrorIndicator;
|
|
12
|
-
private normalizeJsonCandidate;
|
|
13
|
-
private tryRepairAndParse;
|
|
14
|
-
/**
|
|
15
|
-
* Parse coder orchestrator output with multi-layer fallback
|
|
16
|
-
*/
|
|
17
8
|
parseCoderOutput(rawOutput: string): CoderOrchestrationResult;
|
|
18
|
-
/**
|
|
19
|
-
* Parse reviewer orchestrator output with multi-layer fallback
|
|
20
|
-
*/
|
|
21
9
|
parseReviewerOutput(rawOutput: string): ReviewerOrchestrationResult;
|
|
22
10
|
extractExplicitReviewerDecision(output: string): 'approve' | 'reject' | 'dispute' | 'skip' | null;
|
|
23
|
-
/**
|
|
24
|
-
* Keyword-based fallback for coder orchestrator
|
|
25
|
-
*/
|
|
26
|
-
private keywordFallbackCoder;
|
|
27
|
-
/**
|
|
28
|
-
* Explicit-token fallback for reviewer orchestrator
|
|
29
|
-
*/
|
|
30
|
-
private keywordFallbackReviewer;
|
|
31
11
|
}
|
|
32
12
|
//# sourceMappingURL=fallback-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback-handler.d.ts","sourceRoot":"","sources":["../../src/orchestrator/fallback-handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"fallback-handler.d.ts","sourceRoot":"","sources":["../../src/orchestrator/fallback-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAGnF,qBAAa,4BAA4B;IACvC,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB;IA4B7D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,2BAA2B;IAsBnE,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;CAIlG"}
|