steroids-cli 0.4.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +640 -0
- package/dist/cli/colors.d.ts +110 -0
- package/dist/cli/colors.d.ts.map +1 -0
- package/dist/cli/colors.js +228 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/cli/env.d.ts +159 -0
- package/dist/cli/env.d.ts.map +1 -0
- package/dist/cli/env.js +227 -0
- package/dist/cli/env.js.map +1 -0
- package/dist/cli/errors.d.ts +166 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +244 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/flags.d.ts +75 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +232 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/help.d.ts +97 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +275 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +29 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/interactive.d.ts +58 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +127 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/output.d.ts +116 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +178 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/commands/about.d.ts +7 -0
- package/dist/commands/about.d.ts.map +1 -0
- package/dist/commands/about.js +259 -0
- package/dist/commands/about.js.map +1 -0
- package/dist/commands/ai.d.ts +6 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +382 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/backup.d.ts +3 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +528 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/completion.d.ts +3 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +405 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +665 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/disputes.d.ts +3 -0
- package/dist/commands/disputes.d.ts.map +1 -0
- package/dist/commands/disputes.js +499 -0
- package/dist/commands/disputes.js.map +1 -0
- package/dist/commands/gc.d.ts +3 -0
- package/dist/commands/gc.d.ts.map +1 -0
- package/dist/commands/gc.js +300 -0
- package/dist/commands/gc.js.map +1 -0
- package/dist/commands/git.d.ts +3 -0
- package/dist/commands/git.d.ts.map +1 -0
- package/dist/commands/git.js +458 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/health.d.ts +3 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +604 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/hooks.d.ts +6 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +529 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +200 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/llm.d.ts +7 -0
- package/dist/commands/llm.d.ts.map +1 -0
- package/dist/commands/llm.js +285 -0
- package/dist/commands/llm.js.map +1 -0
- package/dist/commands/locks.d.ts +3 -0
- package/dist/commands/locks.d.ts.map +1 -0
- package/dist/commands/locks.js +431 -0
- package/dist/commands/locks.js.map +1 -0
- package/dist/commands/logs.d.ts +3 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +487 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/loop-phases.d.ts +11 -0
- package/dist/commands/loop-phases.d.ts.map +1 -0
- package/dist/commands/loop-phases.js +204 -0
- package/dist/commands/loop-phases.js.map +1 -0
- package/dist/commands/loop.d.ts +3 -0
- package/dist/commands/loop.d.ts.map +1 -0
- package/dist/commands/loop.js +396 -0
- package/dist/commands/loop.js.map +1 -0
- package/dist/commands/projects.d.ts +6 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +362 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/purge.d.ts +3 -0
- package/dist/commands/purge.d.ts.map +1 -0
- package/dist/commands/purge.js +516 -0
- package/dist/commands/purge.js.map +1 -0
- package/dist/commands/runners.d.ts +3 -0
- package/dist/commands/runners.d.ts.map +1 -0
- package/dist/commands/runners.js +1076 -0
- package/dist/commands/runners.js.map +1 -0
- package/dist/commands/scan.d.ts +3 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +291 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/sections-commands.d.ts +9 -0
- package/dist/commands/sections-commands.d.ts.map +1 -0
- package/dist/commands/sections-commands.js +282 -0
- package/dist/commands/sections-commands.js.map +1 -0
- package/dist/commands/sections-graph.d.ts +25 -0
- package/dist/commands/sections-graph.d.ts.map +1 -0
- package/dist/commands/sections-graph.js +180 -0
- package/dist/commands/sections-graph.js.map +1 -0
- package/dist/commands/sections.d.ts +3 -0
- package/dist/commands/sections.d.ts.map +1 -0
- package/dist/commands/sections.js +376 -0
- package/dist/commands/sections.js.map +1 -0
- package/dist/commands/stats.d.ts +6 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +324 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/tasks.d.ts +3 -0
- package/dist/commands/tasks.d.ts.map +1 -0
- package/dist/commands/tasks.js +1115 -0
- package/dist/commands/tasks.js.map +1 -0
- package/dist/commands/web.d.ts +7 -0
- package/dist/commands/web.d.ts.map +1 -0
- package/dist/commands/web.js +204 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/config/ai-setup.d.ts +27 -0
- package/dist/config/ai-setup.d.ts.map +1 -0
- package/dist/config/ai-setup.js +432 -0
- package/dist/config/ai-setup.js.map +1 -0
- package/dist/config/browser.d.ts +9 -0
- package/dist/config/browser.d.ts.map +1 -0
- package/dist/config/browser.js +200 -0
- package/dist/config/browser.js.map +1 -0
- package/dist/config/json-schema.d.ts +28 -0
- package/dist/config/json-schema.d.ts.map +1 -0
- package/dist/config/json-schema.js +84 -0
- package/dist/config/json-schema.js.map +1 -0
- package/dist/config/loader.d.ts +152 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +270 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/schema.d.ts +34 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +437 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/validator.d.ts +32 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +187 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/database/connection.d.ts +35 -0
- package/dist/database/connection.d.ts.map +1 -0
- package/dist/database/connection.js +208 -0
- package/dist/database/connection.js.map +1 -0
- package/dist/database/queries.d.ts +218 -0
- package/dist/database/queries.d.ts.map +1 -0
- package/dist/database/queries.js +613 -0
- package/dist/database/queries.js.map +1 -0
- package/dist/database/schema.d.ts +8 -0
- package/dist/database/schema.d.ts.map +1 -0
- package/dist/database/schema.js +160 -0
- package/dist/database/schema.js.map +1 -0
- package/dist/disputes/behavior.d.ts +106 -0
- package/dist/disputes/behavior.d.ts.map +1 -0
- package/dist/disputes/behavior.js +150 -0
- package/dist/disputes/behavior.js.map +1 -0
- package/dist/disputes/create.d.ts +59 -0
- package/dist/disputes/create.d.ts.map +1 -0
- package/dist/disputes/create.js +222 -0
- package/dist/disputes/create.js.map +1 -0
- package/dist/disputes/index.d.ts +21 -0
- package/dist/disputes/index.d.ts.map +1 -0
- package/dist/disputes/index.js +76 -0
- package/dist/disputes/index.js.map +1 -0
- package/dist/disputes/markdown.d.ts +41 -0
- package/dist/disputes/markdown.d.ts.map +1 -0
- package/dist/disputes/markdown.js +261 -0
- package/dist/disputes/markdown.js.map +1 -0
- package/dist/disputes/queries.d.ts +83 -0
- package/dist/disputes/queries.d.ts.map +1 -0
- package/dist/disputes/queries.js +180 -0
- package/dist/disputes/queries.js.map +1 -0
- package/dist/disputes/resolve.d.ts +57 -0
- package/dist/disputes/resolve.d.ts.map +1 -0
- package/dist/disputes/resolve.js +171 -0
- package/dist/disputes/resolve.js.map +1 -0
- package/dist/disputes/stale.d.ts +98 -0
- package/dist/disputes/stale.d.ts.map +1 -0
- package/dist/disputes/stale.js +205 -0
- package/dist/disputes/stale.js.map +1 -0
- package/dist/disputes/types.d.ts +92 -0
- package/dist/disputes/types.d.ts.map +1 -0
- package/dist/disputes/types.js +100 -0
- package/dist/disputes/types.js.map +1 -0
- package/dist/git/push.d.ts +26 -0
- package/dist/git/push.d.ts.map +1 -0
- package/dist/git/push.js +97 -0
- package/dist/git/push.js.map +1 -0
- package/dist/git/status.d.ts +61 -0
- package/dist/git/status.d.ts.map +1 -0
- package/dist/git/status.js +251 -0
- package/dist/git/status.js.map +1 -0
- package/dist/hooks/events.d.ts +72 -0
- package/dist/hooks/events.d.ts.map +1 -0
- package/dist/hooks/events.js +120 -0
- package/dist/hooks/events.js.map +1 -0
- package/dist/hooks/index.d.ts +19 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +48 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/integration.d.ts +69 -0
- package/dist/hooks/integration.d.ts.map +1 -0
- package/dist/hooks/integration.js +179 -0
- package/dist/hooks/integration.js.map +1 -0
- package/dist/hooks/merge.d.ts +115 -0
- package/dist/hooks/merge.d.ts.map +1 -0
- package/dist/hooks/merge.js +161 -0
- package/dist/hooks/merge.js.map +1 -0
- package/dist/hooks/orchestrator.d.ts +115 -0
- package/dist/hooks/orchestrator.d.ts.map +1 -0
- package/dist/hooks/orchestrator.js +226 -0
- package/dist/hooks/orchestrator.js.map +1 -0
- package/dist/hooks/payload.d.ts +294 -0
- package/dist/hooks/payload.d.ts.map +1 -0
- package/dist/hooks/payload.js +267 -0
- package/dist/hooks/payload.js.map +1 -0
- package/dist/hooks/script-runner.d.ts +63 -0
- package/dist/hooks/script-runner.d.ts.map +1 -0
- package/dist/hooks/script-runner.js +221 -0
- package/dist/hooks/script-runner.js.map +1 -0
- package/dist/hooks/templates.d.ts +104 -0
- package/dist/hooks/templates.d.ts.map +1 -0
- package/dist/hooks/templates.js +327 -0
- package/dist/hooks/templates.js.map +1 -0
- package/dist/hooks/webhook-runner.d.ts +69 -0
- package/dist/hooks/webhook-runner.d.ts.map +1 -0
- package/dist/hooks/webhook-runner.js +208 -0
- package/dist/hooks/webhook-runner.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +281 -0
- package/dist/index.js.map +1 -0
- package/dist/locking/cleanup.d.ts +70 -0
- package/dist/locking/cleanup.d.ts.map +1 -0
- package/dist/locking/cleanup.js +157 -0
- package/dist/locking/cleanup.js.map +1 -0
- package/dist/locking/queries.d.ts +116 -0
- package/dist/locking/queries.d.ts.map +1 -0
- package/dist/locking/queries.js +255 -0
- package/dist/locking/queries.js.map +1 -0
- package/dist/locking/section-lock.d.ts +74 -0
- package/dist/locking/section-lock.d.ts.map +1 -0
- package/dist/locking/section-lock.js +207 -0
- package/dist/locking/section-lock.js.map +1 -0
- package/dist/locking/task-lock.d.ts +92 -0
- package/dist/locking/task-lock.d.ts.map +1 -0
- package/dist/locking/task-lock.js +246 -0
- package/dist/locking/task-lock.js.map +1 -0
- package/dist/migrations/index.d.ts +7 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +37 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/manifest.d.ts +92 -0
- package/dist/migrations/manifest.d.ts.map +1 -0
- package/dist/migrations/manifest.js +270 -0
- package/dist/migrations/manifest.js.map +1 -0
- package/dist/migrations/runner.d.ts +84 -0
- package/dist/migrations/runner.d.ts.map +1 -0
- package/dist/migrations/runner.js +351 -0
- package/dist/migrations/runner.js.map +1 -0
- package/dist/orchestrator/coder.d.ts +32 -0
- package/dist/orchestrator/coder.d.ts.map +1 -0
- package/dist/orchestrator/coder.js +174 -0
- package/dist/orchestrator/coder.js.map +1 -0
- package/dist/orchestrator/coordinator.d.ts +28 -0
- package/dist/orchestrator/coordinator.d.ts.map +1 -0
- package/dist/orchestrator/coordinator.js +256 -0
- package/dist/orchestrator/coordinator.js.map +1 -0
- package/dist/orchestrator/reviewer.d.ts +35 -0
- package/dist/orchestrator/reviewer.d.ts.map +1 -0
- package/dist/orchestrator/reviewer.js +241 -0
- package/dist/orchestrator/reviewer.js.map +1 -0
- package/dist/orchestrator/task-selector.d.ts +102 -0
- package/dist/orchestrator/task-selector.d.ts.map +1 -0
- package/dist/orchestrator/task-selector.js +341 -0
- package/dist/orchestrator/task-selector.js.map +1 -0
- package/dist/prompts/coder.d.ts +36 -0
- package/dist/prompts/coder.d.ts.map +1 -0
- package/dist/prompts/coder.js +315 -0
- package/dist/prompts/coder.js.map +1 -0
- package/dist/prompts/prompt-helpers.d.ts +51 -0
- package/dist/prompts/prompt-helpers.d.ts.map +1 -0
- package/dist/prompts/prompt-helpers.js +312 -0
- package/dist/prompts/prompt-helpers.js.map +1 -0
- package/dist/prompts/reviewer.d.ts +40 -0
- package/dist/prompts/reviewer.d.ts.map +1 -0
- package/dist/prompts/reviewer.js +438 -0
- package/dist/prompts/reviewer.js.map +1 -0
- package/dist/providers/api-models.d.ts +65 -0
- package/dist/providers/api-models.d.ts.map +1 -0
- package/dist/providers/api-models.js +323 -0
- package/dist/providers/api-models.js.map +1 -0
- package/dist/providers/claude.d.ts +53 -0
- package/dist/providers/claude.d.ts.map +1 -0
- package/dist/providers/claude.js +229 -0
- package/dist/providers/claude.js.map +1 -0
- package/dist/providers/codex.d.ts +53 -0
- package/dist/providers/codex.d.ts.map +1 -0
- package/dist/providers/codex.js +214 -0
- package/dist/providers/codex.js.map +1 -0
- package/dist/providers/gemini.d.ts +58 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +242 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +49 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/interface.d.ts +173 -0
- package/dist/providers/interface.d.ts.map +1 -0
- package/dist/providers/interface.js +96 -0
- package/dist/providers/interface.js.map +1 -0
- package/dist/providers/invocation-logger.d.ts +114 -0
- package/dist/providers/invocation-logger.d.ts.map +1 -0
- package/dist/providers/invocation-logger.js +298 -0
- package/dist/providers/invocation-logger.js.map +1 -0
- package/dist/providers/openai.d.ts +53 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +232 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/registry.d.ts +100 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +178 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/runners/activity-log.d.ts +65 -0
- package/dist/runners/activity-log.d.ts.map +1 -0
- package/dist/runners/activity-log.js +148 -0
- package/dist/runners/activity-log.js.map +1 -0
- package/dist/runners/cron.d.ts +26 -0
- package/dist/runners/cron.d.ts.map +1 -0
- package/dist/runners/cron.js +176 -0
- package/dist/runners/cron.js.map +1 -0
- package/dist/runners/daemon.d.ts +71 -0
- package/dist/runners/daemon.d.ts.map +1 -0
- package/dist/runners/daemon.js +245 -0
- package/dist/runners/daemon.js.map +1 -0
- package/dist/runners/global-db.d.ts +31 -0
- package/dist/runners/global-db.d.ts.map +1 -0
- package/dist/runners/global-db.js +230 -0
- package/dist/runners/global-db.js.map +1 -0
- package/dist/runners/hang-detector.d.ts +38 -0
- package/dist/runners/hang-detector.d.ts.map +1 -0
- package/dist/runners/hang-detector.js +136 -0
- package/dist/runners/hang-detector.js.map +1 -0
- package/dist/runners/heartbeat.d.ts +39 -0
- package/dist/runners/heartbeat.d.ts.map +1 -0
- package/dist/runners/heartbeat.js +79 -0
- package/dist/runners/heartbeat.js.map +1 -0
- package/dist/runners/lock.d.ts +47 -0
- package/dist/runners/lock.d.ts.map +1 -0
- package/dist/runners/lock.js +150 -0
- package/dist/runners/lock.js.map +1 -0
- package/dist/runners/orchestrator-loop.d.ts +20 -0
- package/dist/runners/orchestrator-loop.d.ts.map +1 -0
- package/dist/runners/orchestrator-loop.js +285 -0
- package/dist/runners/orchestrator-loop.js.map +1 -0
- package/dist/runners/projects.d.ts +96 -0
- package/dist/runners/projects.d.ts.map +1 -0
- package/dist/runners/projects.js +255 -0
- package/dist/runners/projects.js.map +1 -0
- package/dist/runners/wakeup.d.ts +34 -0
- package/dist/runners/wakeup.d.ts.map +1 -0
- package/dist/runners/wakeup.js +291 -0
- package/dist/runners/wakeup.js.map +1 -0
- package/migrations/001_initial_schema.sql +106 -0
- package/migrations/002_add_commit_sha.sql +12 -0
- package/migrations/003_add_section_priority.sql +13 -0
- package/migrations/004_add_section_dependencies.sql +18 -0
- package/migrations/005_add_audit_actor_model.sql +10 -0
- package/migrations/006_add_task_invocations.sql +33 -0
- package/migrations/007_add_file_anchor.sql +14 -0
- package/migrations/manifest.json +62 -0
- package/package.json +49 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Loop phase functions for coder and reviewer invocation
|
|
4
|
+
* Extracted from loop.ts to keep files under 500 lines
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.runCoderPhase = runCoderPhase;
|
|
8
|
+
exports.runReviewerPhase = runReviewerPhase;
|
|
9
|
+
const queries_js_1 = require("../database/queries.js");
|
|
10
|
+
const coder_js_1 = require("../orchestrator/coder.js");
|
|
11
|
+
const reviewer_js_1 = require("../orchestrator/reviewer.js");
|
|
12
|
+
const coordinator_js_1 = require("../orchestrator/coordinator.js");
|
|
13
|
+
const push_js_1 = require("../git/push.js");
|
|
14
|
+
const status_js_1 = require("../git/status.js");
|
|
15
|
+
async function runCoderPhase(db, task, projectPath, action, jsonMode = false, coordinatorCache, coordinatorThresholds) {
|
|
16
|
+
if (!task)
|
|
17
|
+
return;
|
|
18
|
+
let coordinatorGuidance;
|
|
19
|
+
const thresholds = coordinatorThresholds || [2, 5, 9];
|
|
20
|
+
// Check if we should run the coordinator at this rejection count
|
|
21
|
+
// Only runs at specific thresholds to avoid redundant/costly LLM calls
|
|
22
|
+
// But always reuse cached results between thresholds
|
|
23
|
+
const shouldInvokeCoordinator = thresholds.includes(task.rejection_count);
|
|
24
|
+
const cachedResult = coordinatorCache?.get(task.id);
|
|
25
|
+
if (shouldInvokeCoordinator) {
|
|
26
|
+
if (!jsonMode) {
|
|
27
|
+
console.log(`\n>>> Task has ${task.rejection_count} rejections (threshold hit) - invoking COORDINATOR...\n`);
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const rejectionHistory = (0, queries_js_1.getTaskRejections)(db, task.id);
|
|
31
|
+
const coordExtra = {};
|
|
32
|
+
// Section tasks - so coordinator knows what other tasks handle
|
|
33
|
+
if (task.section_id) {
|
|
34
|
+
const allSectionTasks = (0, queries_js_1.listTasks)(db, { sectionId: task.section_id });
|
|
35
|
+
coordExtra.sectionTasks = allSectionTasks.map(t => ({
|
|
36
|
+
id: t.id, title: t.title, status: t.status,
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
// Coder's latest submission notes
|
|
40
|
+
coordExtra.submissionNotes = (0, queries_js_1.getLatestSubmissionNotes)(db, task.id);
|
|
41
|
+
// What files were modified (lightweight diff summary)
|
|
42
|
+
const modified = (0, status_js_1.getModifiedFiles)(projectPath);
|
|
43
|
+
if (modified.length > 0) {
|
|
44
|
+
coordExtra.gitDiffSummary = modified.join('\n');
|
|
45
|
+
}
|
|
46
|
+
// Include previous coordinator guidance so it doesn't repeat itself
|
|
47
|
+
if (cachedResult) {
|
|
48
|
+
coordExtra.previousGuidance = cachedResult.guidance;
|
|
49
|
+
}
|
|
50
|
+
const coordResult = await (0, coordinator_js_1.invokeCoordinator)(task, rejectionHistory, projectPath, coordExtra);
|
|
51
|
+
if (coordResult) {
|
|
52
|
+
coordinatorGuidance = coordResult.guidance;
|
|
53
|
+
// Store in cache for both coder reuse and reviewer phase
|
|
54
|
+
coordinatorCache?.set(task.id, coordResult);
|
|
55
|
+
// Log coordinator intervention to audit trail so it's visible in WebUI
|
|
56
|
+
(0, queries_js_1.addAuditEntry)(db, task.id, task.status, task.status, 'coordinator', {
|
|
57
|
+
actorType: 'orchestrator',
|
|
58
|
+
notes: `[${coordResult.decision}] ${coordResult.guidance}`,
|
|
59
|
+
});
|
|
60
|
+
if (!jsonMode) {
|
|
61
|
+
console.log(`\nCoordinator decision: ${coordResult.decision}`);
|
|
62
|
+
console.log('Coordinator guidance stored for both coder and reviewer.');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
// Coordinator failure is non-fatal - continue without guidance
|
|
68
|
+
if (!jsonMode) {
|
|
69
|
+
console.warn('Coordinator invocation failed, continuing without guidance:', error);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (cachedResult) {
|
|
74
|
+
// Reuse cached coordinator guidance between thresholds
|
|
75
|
+
coordinatorGuidance = cachedResult.guidance;
|
|
76
|
+
if (!jsonMode && task.rejection_count >= 2) {
|
|
77
|
+
console.log(`\nReusing cached coordinator guidance (decision: ${cachedResult.decision})`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (!jsonMode) {
|
|
81
|
+
console.log('\n>>> Invoking CODER...\n');
|
|
82
|
+
}
|
|
83
|
+
const result = await (0, coder_js_1.invokeCoder)(task, projectPath, action, coordinatorGuidance);
|
|
84
|
+
if (result.timedOut) {
|
|
85
|
+
console.warn('Coder timed out. Will retry next iteration.');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// Re-read task to see if status was updated
|
|
89
|
+
const updatedTask = (0, queries_js_1.getTask)(db, task.id);
|
|
90
|
+
if (!updatedTask)
|
|
91
|
+
return;
|
|
92
|
+
if (!jsonMode) {
|
|
93
|
+
if (updatedTask.status === 'review') {
|
|
94
|
+
console.log('\nCoder submitted for review. Ready for reviewer.');
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
console.log(`Task status unchanged (${updatedTask.status}). Will retry next iteration.`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async function runReviewerPhase(db, task, projectPath, jsonMode = false, coordinatorResult) {
|
|
102
|
+
if (!task)
|
|
103
|
+
return;
|
|
104
|
+
if (!jsonMode) {
|
|
105
|
+
console.log('\n>>> Invoking REVIEWER...\n');
|
|
106
|
+
if (coordinatorResult) {
|
|
107
|
+
console.log(`Coordinator guidance included (decision: ${coordinatorResult.decision})`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
const result = await (0, reviewer_js_1.invokeReviewer)(task, projectPath, coordinatorResult?.guidance, coordinatorResult?.decision);
|
|
111
|
+
if (result.timedOut) {
|
|
112
|
+
if (!jsonMode) {
|
|
113
|
+
console.warn('Reviewer timed out. Will retry next iteration.');
|
|
114
|
+
}
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
// Re-read task to see what the reviewer decided
|
|
118
|
+
// (Codex runs steroids commands directly to update the database)
|
|
119
|
+
const updatedTask = (0, queries_js_1.getTask)(db, task.id);
|
|
120
|
+
if (!updatedTask)
|
|
121
|
+
return;
|
|
122
|
+
if (updatedTask.status === 'completed') {
|
|
123
|
+
handleApproved(projectPath, jsonMode);
|
|
124
|
+
}
|
|
125
|
+
else if (updatedTask.status === 'in_progress') {
|
|
126
|
+
if (!jsonMode) {
|
|
127
|
+
console.log(`\n✗ Task REJECTED (${updatedTask.rejection_count}/15)`);
|
|
128
|
+
console.log('Returning to coder for fixes.');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else if (updatedTask.status === 'disputed') {
|
|
132
|
+
handleDisputed(projectPath, jsonMode);
|
|
133
|
+
}
|
|
134
|
+
else if (updatedTask.status === 'failed') {
|
|
135
|
+
if (!jsonMode) {
|
|
136
|
+
console.log('\n✗ Task FAILED (exceeded 15 rejections)');
|
|
137
|
+
console.log('Human intervention required.');
|
|
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
|
+
}
|
|
196
|
+
}
|
|
197
|
+
else if (result.decision === 'dispute') {
|
|
198
|
+
(0, queries_js_1.updateTaskStatus)(db, taskId, 'disputed', 'codex', result.notes, commitSha);
|
|
199
|
+
if (!jsonMode) {
|
|
200
|
+
console.log('! Task DISPUTED (via fallback)');
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=loop-phases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-phases.js","sourceRoot":"","sources":["../../src/commands/loop-phases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/commands/loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AA4EnD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqVnF"}
|
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loopCommand = loopCommand;
|
|
4
|
+
/**
|
|
5
|
+
* steroids loop - Main orchestrator loop
|
|
6
|
+
* Runs continuously until all tasks are done
|
|
7
|
+
*/
|
|
8
|
+
const node_util_1 = require("node:util");
|
|
9
|
+
const node_fs_1 = require("node:fs");
|
|
10
|
+
const node_path_1 = require("node:path");
|
|
11
|
+
const connection_js_1 = require("../database/connection.js");
|
|
12
|
+
const queries_js_1 = require("../database/queries.js");
|
|
13
|
+
const task_selector_js_1 = require("../orchestrator/task-selector.js");
|
|
14
|
+
const wakeup_js_1 = require("../runners/wakeup.js");
|
|
15
|
+
const projects_js_1 = require("../runners/projects.js");
|
|
16
|
+
const loop_phases_js_1 = require("./loop-phases.js");
|
|
17
|
+
const help_js_1 = require("../cli/help.js");
|
|
18
|
+
const output_js_1 = require("../cli/output.js");
|
|
19
|
+
const errors_js_1 = require("../cli/errors.js");
|
|
20
|
+
const HELP = (0, help_js_1.generateHelp)({
|
|
21
|
+
command: 'loop',
|
|
22
|
+
description: 'Run the automated coder/reviewer orchestration loop',
|
|
23
|
+
details: `The orchestrator loop is the heart of Steroids automation.
|
|
24
|
+
It continuously selects tasks, assigns them to coder or reviewer, and tracks progress.
|
|
25
|
+
Runs until all tasks are completed or interrupted.`,
|
|
26
|
+
usage: ['steroids loop [options]'],
|
|
27
|
+
options: [
|
|
28
|
+
{ long: 'project', description: 'Run loop for specific project directory', values: '<path>' },
|
|
29
|
+
{ long: 'section', description: 'Focus on a specific section only', values: '<id|name>' },
|
|
30
|
+
{ long: 'once', description: 'Run one iteration only (don\'t loop continuously)' },
|
|
31
|
+
],
|
|
32
|
+
examples: [
|
|
33
|
+
{ command: 'steroids loop', description: 'Run until all tasks done' },
|
|
34
|
+
{ command: 'steroids loop --once', description: 'Process one task only' },
|
|
35
|
+
{ command: 'steroids loop --dry-run', description: 'Preview without executing' },
|
|
36
|
+
{ command: 'steroids loop --verbose', description: 'Show detailed progress' },
|
|
37
|
+
{ command: 'steroids loop --project ~/code/myapp', description: 'Run for specific project' },
|
|
38
|
+
{ command: 'steroids loop --section "Phase 2"', description: 'Focus on specific section' },
|
|
39
|
+
{ command: 'steroids loop --section fd1f', description: 'Section by ID prefix' },
|
|
40
|
+
{ command: 'STEROIDS_NO_HOOKS=1 steroids loop', description: 'Run without git hooks' },
|
|
41
|
+
],
|
|
42
|
+
related: [
|
|
43
|
+
{ command: 'steroids tasks', description: 'View task status during loop execution' },
|
|
44
|
+
{ command: 'steroids runners', description: 'Manage background loop runners' },
|
|
45
|
+
{ command: 'steroids dispute', description: 'View coder/reviewer disputes' },
|
|
46
|
+
],
|
|
47
|
+
sections: [
|
|
48
|
+
{
|
|
49
|
+
title: 'HOW IT WORKS',
|
|
50
|
+
content: `1. Select next task (review > in_progress > pending)
|
|
51
|
+
2. Invoke coder (Claude) for pending/rejected tasks
|
|
52
|
+
3. Invoke reviewer (Codex) for tasks in review
|
|
53
|
+
4. Push to git on task completion
|
|
54
|
+
5. Repeat until all tasks complete or interrupted
|
|
55
|
+
|
|
56
|
+
Coder is responsible for running build/test commands.
|
|
57
|
+
Reviewer checks code quality and adherence to spec.`,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
title: 'TASK PRIORITY',
|
|
61
|
+
content: `Tasks are selected in this order:
|
|
62
|
+
- Status priority: review > in_progress > pending
|
|
63
|
+
- Within same status: section position, then creation time
|
|
64
|
+
- Section dependencies respected (waiting sections blocked)`,
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
});
|
|
68
|
+
async function loopCommand(args, flags) {
|
|
69
|
+
const out = (0, output_js_1.createOutput)({ command: 'loop', flags });
|
|
70
|
+
// Check global help flag first
|
|
71
|
+
if (flags.help) {
|
|
72
|
+
console.log(HELP);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const { values } = (0, node_util_1.parseArgs)({
|
|
76
|
+
args,
|
|
77
|
+
options: {
|
|
78
|
+
once: { type: 'boolean', default: false },
|
|
79
|
+
project: { type: 'string' },
|
|
80
|
+
section: { type: 'string' },
|
|
81
|
+
},
|
|
82
|
+
allowPositionals: false,
|
|
83
|
+
});
|
|
84
|
+
// Handle --project flag: change directory if specified
|
|
85
|
+
if (values.project) {
|
|
86
|
+
const projectPath = (0, node_path_1.resolve)(values.project);
|
|
87
|
+
const steroidsDbPath = (0, node_path_1.join)(projectPath, '.steroids', 'steroids.db');
|
|
88
|
+
// Validate project path exists
|
|
89
|
+
if (!(0, node_fs_1.existsSync)(projectPath)) {
|
|
90
|
+
if (flags.json) {
|
|
91
|
+
out.error(errors_js_1.ErrorCode.CONFIG_ERROR, `Path does not exist: ${projectPath}`, { path: projectPath });
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
console.error(`Error: Path does not exist: ${projectPath}`);
|
|
95
|
+
}
|
|
96
|
+
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.CONFIG_ERROR));
|
|
97
|
+
}
|
|
98
|
+
// Validate it's a directory, not a file
|
|
99
|
+
try {
|
|
100
|
+
const stats = (0, node_fs_1.statSync)(projectPath);
|
|
101
|
+
if (!stats.isDirectory()) {
|
|
102
|
+
if (flags.json) {
|
|
103
|
+
out.error(errors_js_1.ErrorCode.CONFIG_ERROR, `Path is not a directory: ${projectPath}`, { path: projectPath });
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
console.error(`Error: Path is not a directory: ${projectPath}`);
|
|
107
|
+
}
|
|
108
|
+
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.CONFIG_ERROR));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
if (flags.json) {
|
|
113
|
+
out.error(errors_js_1.ErrorCode.CONFIG_ERROR, `Cannot access path: ${projectPath}`, { path: projectPath });
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
console.error(`Error: Cannot access path: ${projectPath}`);
|
|
117
|
+
}
|
|
118
|
+
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.CONFIG_ERROR));
|
|
119
|
+
}
|
|
120
|
+
// Validate it's a steroids project
|
|
121
|
+
if (!(0, node_fs_1.existsSync)(steroidsDbPath)) {
|
|
122
|
+
if (flags.json) {
|
|
123
|
+
out.error(errors_js_1.ErrorCode.NOT_INITIALIZED, `Not a steroids project: ${projectPath}`, {
|
|
124
|
+
path: projectPath,
|
|
125
|
+
missing: steroidsDbPath,
|
|
126
|
+
hint: 'Run "steroids init" in that directory first.',
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
console.error(`Error: Not a steroids project: ${projectPath}`);
|
|
131
|
+
console.error(` Missing: ${steroidsDbPath}`);
|
|
132
|
+
console.error(' Run "steroids init" in that directory first.');
|
|
133
|
+
}
|
|
134
|
+
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.NOT_INITIALIZED));
|
|
135
|
+
}
|
|
136
|
+
// Change to project directory
|
|
137
|
+
process.chdir(projectPath);
|
|
138
|
+
// Only show message if not in dry-run mode (for scripting consistency)
|
|
139
|
+
if (!flags.dryRun && !flags.json) {
|
|
140
|
+
console.log(`Switched to project: ${projectPath}`);
|
|
141
|
+
console.log('');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
const projectPath = process.cwd();
|
|
145
|
+
// Check if project is disabled in the global registry
|
|
146
|
+
const registeredProject = (0, projects_js_1.getRegisteredProject)(projectPath);
|
|
147
|
+
if (registeredProject && !registeredProject.enabled) {
|
|
148
|
+
if (flags.json) {
|
|
149
|
+
out.error(errors_js_1.ErrorCode.CONFIG_ERROR, 'Project is disabled', {
|
|
150
|
+
project: projectPath,
|
|
151
|
+
hint: 'Run "steroids projects enable" to enable it.',
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
console.error('Error: Project is disabled');
|
|
156
|
+
console.error(' Project: ' + projectPath);
|
|
157
|
+
console.error('');
|
|
158
|
+
console.error('Run "steroids projects enable" to enable it.');
|
|
159
|
+
}
|
|
160
|
+
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.CONFIG_ERROR));
|
|
161
|
+
}
|
|
162
|
+
// Check if a runner is already active for this project
|
|
163
|
+
if ((0, wakeup_js_1.hasActiveRunnerForProject)(projectPath)) {
|
|
164
|
+
if (flags.json) {
|
|
165
|
+
out.error(errors_js_1.ErrorCode.RESOURCE_LOCKED, 'A runner is already active for this project', {
|
|
166
|
+
project: projectPath,
|
|
167
|
+
hint: 'Only one runner per project is allowed. Use "steroids runners list" to see active runners.',
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
console.error('Error: A runner is already active for this project');
|
|
172
|
+
console.error(' Project: ' + projectPath);
|
|
173
|
+
console.error('');
|
|
174
|
+
console.error('Only one runner per project is allowed.');
|
|
175
|
+
console.error('Use "steroids runners list" to see active runners.');
|
|
176
|
+
}
|
|
177
|
+
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.RESOURCE_LOCKED));
|
|
178
|
+
}
|
|
179
|
+
const { db, close } = (0, connection_js_1.openDatabase)();
|
|
180
|
+
// Declare these outside the try block so they're available throughout the function
|
|
181
|
+
let focusedSectionId;
|
|
182
|
+
let focusedSectionName;
|
|
183
|
+
try {
|
|
184
|
+
// Resolve section if --section flag is provided
|
|
185
|
+
if (values.section) {
|
|
186
|
+
const sectionInput = values.section;
|
|
187
|
+
try {
|
|
188
|
+
// Try to resolve by ID (exact or prefix match)
|
|
189
|
+
let section = (0, queries_js_1.getSection)(db, sectionInput);
|
|
190
|
+
// If not found by ID, try by name
|
|
191
|
+
if (!section) {
|
|
192
|
+
section = (0, queries_js_1.getSectionByName)(db, sectionInput);
|
|
193
|
+
}
|
|
194
|
+
if (!section) {
|
|
195
|
+
const sections = (0, queries_js_1.listSections)(db);
|
|
196
|
+
if (flags.json) {
|
|
197
|
+
out.error(errors_js_1.ErrorCode.SECTION_NOT_FOUND, `Section not found: ${sectionInput}`, {
|
|
198
|
+
sectionId: sectionInput,
|
|
199
|
+
availableSections: sections.map(s => ({ id: s.id.substring(0, 8), name: s.name })),
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
console.error(`Error: Section not found: ${sectionInput}`);
|
|
204
|
+
console.error('');
|
|
205
|
+
console.error('Available sections:');
|
|
206
|
+
if (sections.length === 0) {
|
|
207
|
+
console.error(' (no sections defined)');
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
for (const s of sections) {
|
|
211
|
+
console.error(` ${s.id.substring(0, 8)} ${s.name}`);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.SECTION_NOT_FOUND));
|
|
216
|
+
}
|
|
217
|
+
// Check if section is skipped (Phase 0.6 feature)
|
|
218
|
+
if (section.skipped === 1) {
|
|
219
|
+
if (flags.json) {
|
|
220
|
+
out.error(errors_js_1.ErrorCode.CONFIG_ERROR, `Section "${section.name}" is currently skipped`, {
|
|
221
|
+
sectionId: section.id,
|
|
222
|
+
sectionName: section.name,
|
|
223
|
+
hint: `Run 'steroids sections unskip "${section.name}"' to re-enable it.`,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
console.error(`Error: Section "${section.name}" is currently skipped`);
|
|
228
|
+
console.error('');
|
|
229
|
+
console.error(`Run 'steroids sections unskip "${section.name}"' to re-enable it.`);
|
|
230
|
+
}
|
|
231
|
+
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.CONFIG_ERROR));
|
|
232
|
+
}
|
|
233
|
+
focusedSectionId = section.id;
|
|
234
|
+
focusedSectionName = section.name;
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
// Handle ambiguous prefix error from getSection()
|
|
238
|
+
const errorMessage = error instanceof Error ? error.message : 'Failed to resolve section';
|
|
239
|
+
if (flags.json) {
|
|
240
|
+
out.error(errors_js_1.ErrorCode.CONFIG_ERROR, errorMessage, { sectionInput });
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
console.error(`Error: ${errorMessage}`);
|
|
244
|
+
}
|
|
245
|
+
process.exit((0, errors_js_1.getExitCode)(errors_js_1.ErrorCode.CONFIG_ERROR));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Show initial status (skip in JSON mode)
|
|
249
|
+
if (!flags.json) {
|
|
250
|
+
console.log('');
|
|
251
|
+
console.log('╔════════════════════════════════════════════════════════════╗');
|
|
252
|
+
console.log('║ STEROIDS ORCHESTRATOR ║');
|
|
253
|
+
if (focusedSectionName) {
|
|
254
|
+
const sectionLabel = `Focused: ${focusedSectionName}`;
|
|
255
|
+
const padding = Math.floor((60 - sectionLabel.length) / 2);
|
|
256
|
+
console.log(`║${' '.repeat(padding)}${sectionLabel}${' '.repeat(60 - padding - sectionLabel.length)}║`);
|
|
257
|
+
}
|
|
258
|
+
console.log('╚════════════════════════════════════════════════════════════╝');
|
|
259
|
+
console.log('');
|
|
260
|
+
}
|
|
261
|
+
const counts = (0, task_selector_js_1.getTaskCounts)(db, focusedSectionId);
|
|
262
|
+
if (!flags.json) {
|
|
263
|
+
const statusLabel = focusedSectionName ? `Task Status (${focusedSectionName} only):` : 'Task Status:';
|
|
264
|
+
console.log(statusLabel);
|
|
265
|
+
console.log(` Pending: ${counts.pending}`);
|
|
266
|
+
console.log(` In Progress: ${counts.in_progress}`);
|
|
267
|
+
console.log(` Review: ${counts.review}`);
|
|
268
|
+
console.log(` Completed: ${counts.completed}`);
|
|
269
|
+
console.log(` Disputed: ${counts.disputed}`);
|
|
270
|
+
console.log(` Failed: ${counts.failed}`);
|
|
271
|
+
console.log(` ─────────────────`);
|
|
272
|
+
console.log(` Total: ${counts.total}`);
|
|
273
|
+
console.log('');
|
|
274
|
+
}
|
|
275
|
+
if (flags.dryRun) {
|
|
276
|
+
const next = (0, task_selector_js_1.selectNextTask)(db, focusedSectionId);
|
|
277
|
+
if (flags.json) {
|
|
278
|
+
out.success({
|
|
279
|
+
dryRun: true,
|
|
280
|
+
nextTask: next ? {
|
|
281
|
+
id: next.task.id,
|
|
282
|
+
title: next.task.title,
|
|
283
|
+
action: next.action,
|
|
284
|
+
status: next.task.status,
|
|
285
|
+
} : null,
|
|
286
|
+
counts,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
if (next) {
|
|
291
|
+
console.log(`[DRY RUN] Would process: ${next.task.title}`);
|
|
292
|
+
console.log(` Action: ${next.action}`);
|
|
293
|
+
console.log(` Task ID: ${next.task.id}`);
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
console.log('[DRY RUN] No tasks to process');
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
let iteration = 0;
|
|
302
|
+
const processedTasks = [];
|
|
303
|
+
// Cache coordinator results so they can flow from coder phase to reviewer phase
|
|
304
|
+
// Key: task ID, Value: coordinator result
|
|
305
|
+
const coordinatorCache = new Map();
|
|
306
|
+
// Coordinator only runs at specific rejection thresholds to avoid redundant LLM calls
|
|
307
|
+
const COORDINATOR_THRESHOLDS = [2, 5, 9];
|
|
308
|
+
// Main loop
|
|
309
|
+
while (true) {
|
|
310
|
+
iteration++;
|
|
311
|
+
if (!flags.json) {
|
|
312
|
+
console.log(`\n─── Iteration ${iteration} ───\n`);
|
|
313
|
+
}
|
|
314
|
+
// Select next task
|
|
315
|
+
const selected = (0, task_selector_js_1.selectNextTask)(db, focusedSectionId);
|
|
316
|
+
if (!selected) {
|
|
317
|
+
if (!flags.json) {
|
|
318
|
+
console.log('');
|
|
319
|
+
console.log('╔════════════════════════════════════════════════════════════╗');
|
|
320
|
+
if (focusedSectionName) {
|
|
321
|
+
const completeLabel = `SECTION "${focusedSectionName}" COMPLETE`;
|
|
322
|
+
const padding = Math.floor((60 - completeLabel.length) / 2);
|
|
323
|
+
console.log(`║${' '.repeat(padding)}${completeLabel}${' '.repeat(60 - padding - completeLabel.length)}║`);
|
|
324
|
+
}
|
|
325
|
+
else {
|
|
326
|
+
console.log('║ ALL TASKS COMPLETE ║');
|
|
327
|
+
}
|
|
328
|
+
console.log('╚════════════════════════════════════════════════════════════╝');
|
|
329
|
+
console.log('');
|
|
330
|
+
}
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
const { task, action } = selected;
|
|
334
|
+
if (!flags.json) {
|
|
335
|
+
console.log(`Task: ${task.title}`);
|
|
336
|
+
console.log(`Action: ${action}`);
|
|
337
|
+
console.log(`Status: ${task.status}`);
|
|
338
|
+
}
|
|
339
|
+
// Track processed task for JSON output
|
|
340
|
+
processedTasks.push({
|
|
341
|
+
taskId: task.id,
|
|
342
|
+
title: task.title,
|
|
343
|
+
action,
|
|
344
|
+
status: task.status,
|
|
345
|
+
});
|
|
346
|
+
if (action === 'start') {
|
|
347
|
+
// Starting a new task
|
|
348
|
+
(0, task_selector_js_1.markTaskInProgress)(db, task.id);
|
|
349
|
+
await (0, loop_phases_js_1.runCoderPhase)(db, task, projectPath, 'start', flags.json, coordinatorCache, COORDINATOR_THRESHOLDS);
|
|
350
|
+
}
|
|
351
|
+
else if (action === 'resume') {
|
|
352
|
+
// Resuming in-progress task
|
|
353
|
+
await (0, loop_phases_js_1.runCoderPhase)(db, task, projectPath, 'resume', flags.json, coordinatorCache, COORDINATOR_THRESHOLDS);
|
|
354
|
+
}
|
|
355
|
+
else if (action === 'review') {
|
|
356
|
+
// Task ready for review - pass coordinator guidance if available
|
|
357
|
+
const cachedCoord = coordinatorCache.get(task.id);
|
|
358
|
+
await (0, loop_phases_js_1.runReviewerPhase)(db, task, projectPath, flags.json, cachedCoord);
|
|
359
|
+
}
|
|
360
|
+
// Check if we should continue
|
|
361
|
+
if (values.once) {
|
|
362
|
+
if (!flags.json) {
|
|
363
|
+
console.log('\n[--once] Stopping after one iteration');
|
|
364
|
+
}
|
|
365
|
+
break;
|
|
366
|
+
}
|
|
367
|
+
// Brief pause between iterations to avoid overwhelming the system
|
|
368
|
+
await sleep(1000);
|
|
369
|
+
}
|
|
370
|
+
// Final status
|
|
371
|
+
const finalCounts = (0, task_selector_js_1.getTaskCounts)(db, focusedSectionId);
|
|
372
|
+
if (flags.json) {
|
|
373
|
+
out.success({
|
|
374
|
+
iterations: iteration,
|
|
375
|
+
processedTasks,
|
|
376
|
+
initialCounts: counts,
|
|
377
|
+
finalCounts,
|
|
378
|
+
focusedSection: focusedSectionName || null,
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
const finalLabel = focusedSectionName ? `\nFinal Status (${focusedSectionName}):` : '\nFinal Status:';
|
|
383
|
+
console.log(finalLabel);
|
|
384
|
+
console.log(` Completed: ${finalCounts.completed}`);
|
|
385
|
+
console.log(` Failed: ${finalCounts.failed}`);
|
|
386
|
+
console.log(` Disputed: ${finalCounts.disputed}`);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
finally {
|
|
390
|
+
close();
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
function sleep(ms) {
|
|
394
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
395
|
+
}
|
|
396
|
+
//# sourceMappingURL=loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/commands/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAkDnD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDvF"}
|