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,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* steroids init - Initialize steroids in current directory
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.initCommand = initCommand;
|
|
7
|
+
const node_util_1 = require("node:util");
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_path_1 = require("node:path");
|
|
10
|
+
const node_child_process_1 = require("node:child_process");
|
|
11
|
+
const connection_js_1 = require("../database/connection.js");
|
|
12
|
+
const output_js_1 = require("../cli/output.js");
|
|
13
|
+
const colors_js_1 = require("../cli/colors.js");
|
|
14
|
+
const projects_js_1 = require("../runners/projects.js");
|
|
15
|
+
const help_js_1 = require("../cli/help.js");
|
|
16
|
+
const ai_setup_js_1 = require("../config/ai-setup.js");
|
|
17
|
+
const HELP = (0, help_js_1.generateHelp)({
|
|
18
|
+
command: 'init',
|
|
19
|
+
description: 'Initialize Steroids in current directory',
|
|
20
|
+
details: `Sets up Steroids task management system in the current directory.
|
|
21
|
+
Creates a .steroids directory with SQLite database for task tracking.
|
|
22
|
+
Projects are only registered globally if inside a git repository.
|
|
23
|
+
This prevents test/temporary directories from polluting the global registry.`,
|
|
24
|
+
usage: ['steroids init [options]'],
|
|
25
|
+
options: [
|
|
26
|
+
{ short: 'y', long: 'yes', description: 'Accept all defaults without prompts (skips AI setup wizard)' },
|
|
27
|
+
{ long: 'no-register', description: 'Skip global project registration' },
|
|
28
|
+
{ long: 'skip-ai-setup', description: 'Skip AI provider configuration wizard' },
|
|
29
|
+
],
|
|
30
|
+
examples: [
|
|
31
|
+
{ command: 'steroids init', description: 'Initialize in current directory' },
|
|
32
|
+
{ command: 'steroids init --yes', description: 'Initialize with defaults' },
|
|
33
|
+
{ command: 'steroids init --no-register', description: 'Initialize without global registration' },
|
|
34
|
+
{ command: 'steroids init --dry-run', description: 'Preview initialization' },
|
|
35
|
+
],
|
|
36
|
+
related: [
|
|
37
|
+
{ command: 'steroids sections add', description: 'Add task sections after init' },
|
|
38
|
+
{ command: 'steroids tasks add', description: 'Add tasks after init' },
|
|
39
|
+
{ command: 'steroids loop', description: 'Start automation after setup' },
|
|
40
|
+
],
|
|
41
|
+
sections: [
|
|
42
|
+
{
|
|
43
|
+
title: 'CREATES',
|
|
44
|
+
content: `.steroids/steroids.db SQLite database with task schema
|
|
45
|
+
Registers project in global registry at ~/.steroids/steroids.db (if in git repo)`,
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* Try to extract project name from package.json if it exists
|
|
51
|
+
* @param cwd - Current working directory
|
|
52
|
+
* @returns Project name or null if not found
|
|
53
|
+
*/
|
|
54
|
+
function getProjectName(cwd) {
|
|
55
|
+
try {
|
|
56
|
+
const packageJsonPath = (0, node_path_1.join)(cwd, 'package.json');
|
|
57
|
+
if ((0, node_fs_1.existsSync)(packageJsonPath)) {
|
|
58
|
+
const content = (0, node_fs_1.readFileSync)(packageJsonPath, 'utf-8');
|
|
59
|
+
const pkg = JSON.parse(content);
|
|
60
|
+
return pkg.name || null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// Ignore errors - package.json might not exist or be invalid
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if the directory is inside a git repository
|
|
70
|
+
* @param cwd - Current working directory
|
|
71
|
+
* @returns true if inside a git repo
|
|
72
|
+
*/
|
|
73
|
+
function isInsideGitRepo(cwd) {
|
|
74
|
+
try {
|
|
75
|
+
(0, node_child_process_1.execSync)('git rev-parse --is-inside-work-tree', {
|
|
76
|
+
cwd,
|
|
77
|
+
stdio: 'pipe',
|
|
78
|
+
});
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function initCommand(args, flags) {
|
|
86
|
+
const out = (0, output_js_1.createOutput)({ command: 'init', flags });
|
|
87
|
+
const { values } = (0, node_util_1.parseArgs)({
|
|
88
|
+
args,
|
|
89
|
+
options: {
|
|
90
|
+
yes: { type: 'boolean', short: 'y', default: false },
|
|
91
|
+
help: { type: 'boolean', short: 'h', default: false },
|
|
92
|
+
'no-register': { type: 'boolean', default: false },
|
|
93
|
+
'skip-ai-setup': { type: 'boolean', default: false },
|
|
94
|
+
},
|
|
95
|
+
allowPositionals: false,
|
|
96
|
+
});
|
|
97
|
+
if (values.help || flags.help) {
|
|
98
|
+
out.log(HELP);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const cwd = process.cwd();
|
|
102
|
+
const dbPath = (0, connection_js_1.getDbPath)(cwd);
|
|
103
|
+
if ((0, connection_js_1.isInitialized)(cwd)) {
|
|
104
|
+
if (flags.json) {
|
|
105
|
+
out.success({
|
|
106
|
+
message: 'Already initialized',
|
|
107
|
+
database: dbPath,
|
|
108
|
+
alreadyInitialized: true,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
out.log(colors_js_1.markers.info('Steroids already initialized in this directory.'));
|
|
113
|
+
out.log(`Database: ${colors_js_1.colors.cyan(dbPath)}`);
|
|
114
|
+
}
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
out.verbose('Initializing Steroids...');
|
|
118
|
+
if (flags.dryRun) {
|
|
119
|
+
if (flags.json) {
|
|
120
|
+
out.success({
|
|
121
|
+
message: 'Dry run: Would initialize Steroids',
|
|
122
|
+
database: dbPath,
|
|
123
|
+
dryRun: true,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
out.log(colors_js_1.colors.yellow('Dry run: Would initialize Steroids'));
|
|
128
|
+
out.log(`Database would be created at: ${dbPath}`);
|
|
129
|
+
}
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const { close } = (0, connection_js_1.initDatabase)(cwd);
|
|
133
|
+
close();
|
|
134
|
+
// Register project in global registry (only if in a git repo and not --no-register)
|
|
135
|
+
const noRegister = values['no-register'];
|
|
136
|
+
const inGitRepo = isInsideGitRepo(cwd);
|
|
137
|
+
if (noRegister) {
|
|
138
|
+
out.verbose('Skipping global registration (--no-register flag)');
|
|
139
|
+
}
|
|
140
|
+
else if (!inGitRepo) {
|
|
141
|
+
out.verbose('Skipping global registration (not inside a git repository)');
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
const projectName = getProjectName(cwd);
|
|
145
|
+
try {
|
|
146
|
+
(0, projects_js_1.registerProject)(cwd, projectName || undefined);
|
|
147
|
+
out.verbose(`Registered project globally${projectName ? ` as "${projectName}"` : ''}`);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
// Don't fail init if registration fails - just log it
|
|
151
|
+
out.verbose(`Warning: Failed to register project globally: ${error}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Run AI setup wizard (unless --yes or --skip-ai-setup is used, or JSON output)
|
|
155
|
+
const skipAISetup = values.yes || values['skip-ai-setup'] || flags.json;
|
|
156
|
+
if (!skipAISetup) {
|
|
157
|
+
out.log('');
|
|
158
|
+
out.log(colors_js_1.markers.info('AI Provider Configuration'));
|
|
159
|
+
out.log('Configure AI providers for orchestrator, coder, and reviewer roles.');
|
|
160
|
+
out.log(`${colors_js_1.colors.dim('(You can skip this and configure later with "steroids config ai")')}`);
|
|
161
|
+
out.log('');
|
|
162
|
+
try {
|
|
163
|
+
// Run wizard for coder role first (most important)
|
|
164
|
+
await (0, ai_setup_js_1.runAISetup)({ role: 'coder', global: true });
|
|
165
|
+
// Ask if user wants to configure other roles
|
|
166
|
+
out.log('');
|
|
167
|
+
out.log(`${colors_js_1.colors.dim('Tip: Run "steroids config ai" to configure other roles (orchestrator, reviewer)')}`);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
// AI setup failed or was cancelled - don't fail init
|
|
171
|
+
out.verbose(`AI setup skipped or cancelled: ${error}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (flags.json) {
|
|
175
|
+
out.success({
|
|
176
|
+
message: 'Initialized successfully',
|
|
177
|
+
database: dbPath,
|
|
178
|
+
nextSteps: [
|
|
179
|
+
'steroids config ai',
|
|
180
|
+
'steroids sections add "Phase 1"',
|
|
181
|
+
'steroids tasks add "My first task" --section "Phase 1"',
|
|
182
|
+
'steroids loop',
|
|
183
|
+
],
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
out.log('');
|
|
188
|
+
out.log(colors_js_1.markers.success('Steroids initialized successfully!'));
|
|
189
|
+
out.log(`Database: ${colors_js_1.colors.cyan(dbPath)}`);
|
|
190
|
+
out.log('');
|
|
191
|
+
out.log(colors_js_1.colors.bold('Next steps:'));
|
|
192
|
+
if (skipAISetup) {
|
|
193
|
+
out.log(` ${colors_js_1.colors.dim('$')} steroids config ai ${colors_js_1.colors.dim('# Configure AI providers')}`);
|
|
194
|
+
}
|
|
195
|
+
out.log(` ${colors_js_1.colors.dim('$')} steroids sections add "Phase 1"`);
|
|
196
|
+
out.log(` ${colors_js_1.colors.dim('$')} steroids tasks add "My first task" --section "Phase 1"`);
|
|
197
|
+
out.log(` ${colors_js_1.colors.dim('$')} steroids loop`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* steroids llm - Compact instructions for LLM agents
|
|
3
|
+
* Call this when context is lost to quickly understand the system
|
|
4
|
+
*/
|
|
5
|
+
import type { GlobalFlags } from '../cli/flags.js';
|
|
6
|
+
export declare function llmCommand(args: string[], flags: GlobalFlags): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=llm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/commands/llm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AA8JnD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HlF"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* steroids llm - Compact instructions for LLM agents
|
|
4
|
+
* Call this when context is lost to quickly understand the system
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.llmCommand = llmCommand;
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_path_1 = require("node:path");
|
|
10
|
+
const projects_js_1 = require("../runners/projects.js");
|
|
11
|
+
const daemon_js_1 = require("../runners/daemon.js");
|
|
12
|
+
const connection_js_1 = require("../database/connection.js");
|
|
13
|
+
const queries_js_1 = require("../database/queries.js");
|
|
14
|
+
const help_js_1 = require("../cli/help.js");
|
|
15
|
+
const LLM_INSTRUCTIONS = `# STEROIDS LLM QUICK REFERENCE
|
|
16
|
+
|
|
17
|
+
## WHAT IS STEROIDS
|
|
18
|
+
Steroids=automated task orchestration system.
|
|
19
|
+
It manages tasks and invokes LLM agents (coders/reviewers) to execute them.
|
|
20
|
+
The system spawns separate LLM processes for coding and reviewing.
|
|
21
|
+
|
|
22
|
+
## TASK FLOW
|
|
23
|
+
pending → in_progress (coder works) → review (reviewer checks) → completed OR rejected→pending
|
|
24
|
+
Runner daemon picks tasks and invokes appropriate LLM agents automatically.
|
|
25
|
+
|
|
26
|
+
## ARCHITECTURE
|
|
27
|
+
- Tasks stored in .steroids/steroids.db (per project)
|
|
28
|
+
- Runner daemon executes the loop (one per project)
|
|
29
|
+
- Coder LLM: implements task, commits, submits for review
|
|
30
|
+
- Reviewer LLM: verifies implementation, approves or rejects
|
|
31
|
+
- You (reading this): likely helping user manage/debug the system
|
|
32
|
+
|
|
33
|
+
## MULTI-PROJECT
|
|
34
|
+
- Multiple projects can have runners simultaneously
|
|
35
|
+
- Each runner bound to ONE project only
|
|
36
|
+
- Global registry at ~/.steroids/steroids.db tracks all projects
|
|
37
|
+
- NEVER modify files outside current project
|
|
38
|
+
|
|
39
|
+
## KEY COMMANDS
|
|
40
|
+
|
|
41
|
+
### View Tasks
|
|
42
|
+
steroids tasks stats # task counts by status
|
|
43
|
+
steroids tasks # pending tasks (current project)
|
|
44
|
+
steroids tasks --status active # in_progress+review (current project)
|
|
45
|
+
steroids tasks --status active --global # active across ALL projects
|
|
46
|
+
steroids tasks --status all # all tasks
|
|
47
|
+
steroids tasks audit <id> # view task spec, history, rejection notes
|
|
48
|
+
|
|
49
|
+
### Add Tasks
|
|
50
|
+
steroids tasks add "Title" --section <id> --source <spec-file>
|
|
51
|
+
steroids tasks add "Title" --section <id> --source spec.md --file src/foo.ts --line 42
|
|
52
|
+
steroids tasks add "Advisory note" --feedback
|
|
53
|
+
|
|
54
|
+
Options:
|
|
55
|
+
--section <id> Section to add the task to (required unless --feedback)
|
|
56
|
+
--source <file> Specification markdown file (required unless --feedback)
|
|
57
|
+
--file <path> Anchor task to a specific file in the codebase
|
|
58
|
+
File must be committed in git (not dirty/untracked)
|
|
59
|
+
Auto-captures: commit SHA of last change + content hash
|
|
60
|
+
Coder/reviewer prompts will reference this exact location
|
|
61
|
+
--line <number> Line number in the anchored file (requires --file)
|
|
62
|
+
--feedback Add to skipped "Needs User Input" section for human review
|
|
63
|
+
Skips --section and --source requirements
|
|
64
|
+
|
|
65
|
+
BEST PRACTICE: When generating tasks from documentation or specs, commit the
|
|
66
|
+
documentation first, then fill in ALL values including optional ones:
|
|
67
|
+
--source pointing to the committed spec file
|
|
68
|
+
--file pointing to the relevant source file in the codebase
|
|
69
|
+
--line pointing to the exact line where work applies
|
|
70
|
+
This gives the coder/reviewer maximum context and traceability.
|
|
71
|
+
|
|
72
|
+
### Manage Tasks
|
|
73
|
+
steroids tasks update <id> --status <s> --actor model --model <m>
|
|
74
|
+
statuses: pending, in_progress, review, completed, skipped, partial
|
|
75
|
+
steroids tasks approve <id> --model <m> [--notes "msg"] # mark completed
|
|
76
|
+
steroids tasks reject <id> --model <m> --notes "feedback" # back to pending
|
|
77
|
+
steroids tasks skip <id> --notes "reason" # external setup, skip it
|
|
78
|
+
steroids tasks skip <id> --partial --notes "reason" # coded some, rest external
|
|
79
|
+
|
|
80
|
+
### Sections
|
|
81
|
+
steroids sections list # list sections
|
|
82
|
+
steroids sections skip <id> # exclude from runner
|
|
83
|
+
steroids sections unskip <id> # include in runner
|
|
84
|
+
|
|
85
|
+
### Runners (daemon that executes tasks)
|
|
86
|
+
steroids runners list # all runners (all projects)
|
|
87
|
+
steroids runners start --detach # start background daemon
|
|
88
|
+
steroids runners start --section "X" # focus on specific section
|
|
89
|
+
steroids runners stop --all # stop all
|
|
90
|
+
steroids runners status # current state
|
|
91
|
+
steroids runners logs <pid> # view daemon output
|
|
92
|
+
|
|
93
|
+
### Projects
|
|
94
|
+
steroids projects list # all registered projects
|
|
95
|
+
|
|
96
|
+
### Web Dashboard
|
|
97
|
+
steroids web # clone (first run) and launch dashboard
|
|
98
|
+
steroids web update # pull latest + reinstall deps
|
|
99
|
+
steroids web stop # stop running dashboard
|
|
100
|
+
steroids web status # check if dashboard is running
|
|
101
|
+
|
|
102
|
+
## COMMON OPERATIONS
|
|
103
|
+
|
|
104
|
+
### Start automation
|
|
105
|
+
steroids runners start --detach # daemon picks tasks and invokes coders/reviewers
|
|
106
|
+
|
|
107
|
+
### Check what's happening
|
|
108
|
+
steroids tasks --status active --global # see all active work
|
|
109
|
+
steroids runners list # see all running daemons
|
|
110
|
+
|
|
111
|
+
### Unblock stuck task in review
|
|
112
|
+
steroids tasks approve <id> --model human # approve manually
|
|
113
|
+
steroids tasks reject <id> --model human --notes "reason" # reject manually
|
|
114
|
+
|
|
115
|
+
### Restart failed task
|
|
116
|
+
steroids tasks update <id> --status pending --reset-rejections # reset to pending with fresh count
|
|
117
|
+
|
|
118
|
+
### Skip external setup task
|
|
119
|
+
steroids tasks skip <id> --notes "spec says SKIP, needs Cloud SQL setup"
|
|
120
|
+
# Use when: spec says SKIP/MANUAL, requires cloud console, account creation, etc.
|
|
121
|
+
# --partial: use if you coded some parts but rest needs human action
|
|
122
|
+
|
|
123
|
+
## TASK STATES
|
|
124
|
+
- pending: waiting to be picked up
|
|
125
|
+
- in_progress: coder is working on it
|
|
126
|
+
- review: coder submitted, waiting for reviewer
|
|
127
|
+
- completed: approved by reviewer
|
|
128
|
+
- skipped: fully external (Cloud SQL, manual setup) - human must do
|
|
129
|
+
- partial: some coded, rest external - human must complete
|
|
130
|
+
- failed: exceeded 15 rejections, needs human intervention
|
|
131
|
+
- disputed: coder/reviewer disagreement, needs human resolution
|
|
132
|
+
|
|
133
|
+
## IMPORTANT NOTES
|
|
134
|
+
- Task spec is in source file (see tasks audit output)
|
|
135
|
+
- Max 15 rejections before task fails
|
|
136
|
+
- Runner auto-restarts via cron (steroids runners cron install)
|
|
137
|
+
- Each project isolated: own database, own runner
|
|
138
|
+
`;
|
|
139
|
+
const HELP = (0, help_js_1.generateHelp)({
|
|
140
|
+
command: 'llm',
|
|
141
|
+
description: 'Compact instructions for LLM agents',
|
|
142
|
+
details: 'Quick reference guide for AI agents working with Steroids. Shows key commands, task flow, and current context.',
|
|
143
|
+
usage: [
|
|
144
|
+
'steroids llm',
|
|
145
|
+
'steroids llm --context',
|
|
146
|
+
],
|
|
147
|
+
options: [
|
|
148
|
+
{ long: 'context', description: 'Include current project context (projects, runners, tasks)' },
|
|
149
|
+
],
|
|
150
|
+
examples: [
|
|
151
|
+
{ command: 'steroids llm', description: 'Show LLM quick reference' },
|
|
152
|
+
{ command: 'steroids llm --context', description: 'Show reference with current context' },
|
|
153
|
+
],
|
|
154
|
+
related: [
|
|
155
|
+
{ command: 'steroids about', description: 'Explain what Steroids is' },
|
|
156
|
+
{ command: 'steroids tasks', description: 'Manage tasks' },
|
|
157
|
+
],
|
|
158
|
+
showGlobalOptions: false,
|
|
159
|
+
showEnvVars: false,
|
|
160
|
+
showExitCodes: false,
|
|
161
|
+
});
|
|
162
|
+
async function llmCommand(args, flags) {
|
|
163
|
+
// Check for help
|
|
164
|
+
if (flags.help || args.includes('-h') || args.includes('--help')) {
|
|
165
|
+
console.log(HELP);
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const includeContext = args.includes('--context');
|
|
169
|
+
// Always print instructions
|
|
170
|
+
console.log(LLM_INSTRUCTIONS);
|
|
171
|
+
// Optionally include current context
|
|
172
|
+
if (includeContext) {
|
|
173
|
+
console.log('## CURRENT CONTEXT\n');
|
|
174
|
+
// Current project
|
|
175
|
+
console.log(`Project: ${process.cwd()}`);
|
|
176
|
+
// Registered projects
|
|
177
|
+
try {
|
|
178
|
+
const projects = (0, projects_js_1.getRegisteredProjects)(false);
|
|
179
|
+
console.log(`Registered projects: ${projects.length}`);
|
|
180
|
+
if (projects.length > 1) {
|
|
181
|
+
console.log('WARNING: Multi-project environment. Only work on YOUR project.');
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
console.log('Registered projects: unknown');
|
|
186
|
+
}
|
|
187
|
+
// Active runners
|
|
188
|
+
try {
|
|
189
|
+
const runners = (0, daemon_js_1.listRunners)();
|
|
190
|
+
const activeRunners = runners.filter(r => r.status === 'running');
|
|
191
|
+
console.log(`Active runners: ${activeRunners.length}`);
|
|
192
|
+
for (const r of activeRunners) {
|
|
193
|
+
const proj = r.project_path ? r.project_path.split('/').pop() : 'unknown';
|
|
194
|
+
console.log(` - ${r.id.slice(0, 8)} on ${proj} (PID ${r.pid})`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
console.log('Active runners: unknown');
|
|
199
|
+
}
|
|
200
|
+
// Global active tasks
|
|
201
|
+
console.log('');
|
|
202
|
+
console.log('Active tasks (all projects):');
|
|
203
|
+
try {
|
|
204
|
+
const projects = (0, projects_js_1.getRegisteredProjects)(false);
|
|
205
|
+
let totalActive = 0;
|
|
206
|
+
for (const project of projects) {
|
|
207
|
+
const dbPath = `${project.path}/.steroids/steroids.db`;
|
|
208
|
+
if (!(0, node_fs_1.existsSync)(dbPath))
|
|
209
|
+
continue;
|
|
210
|
+
try {
|
|
211
|
+
const { db, close } = (0, connection_js_1.openDatabase)(project.path);
|
|
212
|
+
try {
|
|
213
|
+
const inProgress = (0, queries_js_1.listTasks)(db, { status: 'in_progress' });
|
|
214
|
+
const review = (0, queries_js_1.listTasks)(db, { status: 'review' });
|
|
215
|
+
const active = [...inProgress, ...review];
|
|
216
|
+
const projName = project.name || (0, node_path_1.basename)(project.path);
|
|
217
|
+
for (const task of active) {
|
|
218
|
+
totalActive++;
|
|
219
|
+
const status = task.status === 'in_progress' ? 'CODING' : 'REVIEW';
|
|
220
|
+
console.log(` [${status}] ${projName}: ${task.title.slice(0, 50)} (${task.id.slice(0, 8)})`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
close();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
// Skip inaccessible projects
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (totalActive === 0) {
|
|
232
|
+
console.log(' (none)');
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
console.log(' (unknown)');
|
|
237
|
+
}
|
|
238
|
+
// Skipped tasks requiring manual action
|
|
239
|
+
console.log('');
|
|
240
|
+
console.log('Skipped tasks (need manual action):');
|
|
241
|
+
try {
|
|
242
|
+
const projects = (0, projects_js_1.getRegisteredProjects)(false);
|
|
243
|
+
let totalSkipped = 0;
|
|
244
|
+
for (const project of projects) {
|
|
245
|
+
const dbPath = `${project.path}/.steroids/steroids.db`;
|
|
246
|
+
if (!(0, node_fs_1.existsSync)(dbPath))
|
|
247
|
+
continue;
|
|
248
|
+
try {
|
|
249
|
+
const { db, close } = (0, connection_js_1.openDatabase)(project.path);
|
|
250
|
+
try {
|
|
251
|
+
const skipped = (0, queries_js_1.listTasks)(db, { status: 'skipped' });
|
|
252
|
+
const partial = (0, queries_js_1.listTasks)(db, { status: 'partial' });
|
|
253
|
+
const allSkipped = [...skipped, ...partial];
|
|
254
|
+
const projName = project.name || (0, node_path_1.basename)(project.path);
|
|
255
|
+
for (const task of allSkipped) {
|
|
256
|
+
totalSkipped++;
|
|
257
|
+
const marker = task.status === 'skipped' ? '[S]' : '[s]';
|
|
258
|
+
console.log(` ${marker} ${projName}: ${task.title.slice(0, 50)} (${task.id.slice(0, 8)})`);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
finally {
|
|
262
|
+
close();
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
// Skip inaccessible projects
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (totalSkipped === 0) {
|
|
270
|
+
console.log(' (none - all tasks are automated)');
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
console.log('');
|
|
274
|
+
console.log(' [S] = Fully external (human must do entire task)');
|
|
275
|
+
console.log(' [s] = Partial (some coded, rest needs human)');
|
|
276
|
+
console.log(' Use: steroids tasks audit <id> to see what action is needed');
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
console.log(' (unknown)');
|
|
281
|
+
}
|
|
282
|
+
console.log('');
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=llm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/commands/llm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../../src/commands/locks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAoEnD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCpF"}
|