steroids-cli 0.4.48 → 0.4.50
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/README.md +35 -38
- package/dist/commands/llm.d.ts.map +1 -1
- package/dist/commands/llm.js +89 -17
- package/dist/commands/llm.js.map +1 -1
- package/dist/commands/web.d.ts.map +1 -1
- package/dist/commands/web.js +17 -0
- package/dist/commands/web.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -31,12 +31,12 @@ Steroids is an AI-powered task orchestration system that automates software deve
|
|
|
31
31
|
* [Key Features](#key-features)
|
|
32
32
|
* [Project Structure](#project-structure)
|
|
33
33
|
* [Quickstart](#quickstart)
|
|
34
|
+
* [Web Dashboard](#web-dashboard)
|
|
34
35
|
* [CLI Commands](#cli-commands)
|
|
35
36
|
* [Runner Daemon](#runner-daemon)
|
|
36
37
|
* [Coordinator System](#coordinator-system)
|
|
37
38
|
* [Disputes](#disputes)
|
|
38
39
|
* [Hooks](#hooks)
|
|
39
|
-
* [Web Dashboard](#web-dashboard)
|
|
40
40
|
* [Configuration](#configuration)
|
|
41
41
|
* [Quality & Safety](#quality--safety)
|
|
42
42
|
* [The Suite](#the-suite)
|
|
@@ -205,6 +205,40 @@ Steroids processes tasks in order, looping coder/reviewer until completion or di
|
|
|
205
205
|
|
|
206
206
|
---
|
|
207
207
|
|
|
208
|
+
## Web Dashboard
|
|
209
|
+
|
|
210
|
+
Steroids ships with a full web dashboard for monitoring tasks, runners, and project health.
|
|
211
|
+
|
|
212
|
+
On first run, `steroids web` clones the dashboard repository to `~/.steroids/webui/` and installs everything automatically. On subsequent runs, it pulls the latest version before launching — so you're always up to date.
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# Launch the dashboard (first run clones the repo, subsequent runs auto-update)
|
|
216
|
+
steroids web
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
That's it. Open your browser at:
|
|
220
|
+
|
|
221
|
+
- **Web UI:** [http://localhost:3500](http://localhost:3500)
|
|
222
|
+
- **API:** [http://localhost:3501](http://localhost:3501)
|
|
223
|
+
|
|
224
|
+
### Managing the Dashboard
|
|
225
|
+
|
|
226
|
+
| Command | Description |
|
|
227
|
+
|---------|-------------|
|
|
228
|
+
| `steroids web` | Launch the dashboard (auto-clones on first run, auto-updates on every run) |
|
|
229
|
+
| `steroids web stop` | Stop the dashboard |
|
|
230
|
+
| `steroids web status` | Check if the dashboard is running |
|
|
231
|
+
|
|
232
|
+
### What You Get
|
|
233
|
+
|
|
234
|
+
- **Multi-project view** — See all registered projects at a glance
|
|
235
|
+
- **Task queues** — Pending, in-progress, review, completed
|
|
236
|
+
- **Runner status** — Active daemons with heartbeat monitoring
|
|
237
|
+
- **Audit trails** — Full history of every task state change
|
|
238
|
+
- **Configuration** — Edit project settings from the browser
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
208
242
|
## CLI Commands
|
|
209
243
|
|
|
210
244
|
### Core Commands
|
|
@@ -424,43 +458,6 @@ Configure hooks in `.steroids/config.yaml` or manage via CLI.
|
|
|
424
458
|
|
|
425
459
|
---
|
|
426
460
|
|
|
427
|
-
## Web Dashboard
|
|
428
|
-
|
|
429
|
-
Steroids includes a web dashboard for visual monitoring. It auto-clones on first run:
|
|
430
|
-
|
|
431
|
-
```bash
|
|
432
|
-
# Launch the dashboard (clones repo to ~/.steroids/webui/ on first run)
|
|
433
|
-
steroids web
|
|
434
|
-
|
|
435
|
-
# Check status
|
|
436
|
-
steroids web status
|
|
437
|
-
|
|
438
|
-
# Pull latest changes and reinstall
|
|
439
|
-
steroids web update
|
|
440
|
-
|
|
441
|
-
# Stop the dashboard
|
|
442
|
-
steroids web stop
|
|
443
|
-
|
|
444
|
-
# Access at
|
|
445
|
-
# Web UI: http://localhost:3500
|
|
446
|
-
# API: http://localhost:3501
|
|
447
|
-
```
|
|
448
|
-
|
|
449
|
-
| Command | Description |
|
|
450
|
-
|---------|-------------|
|
|
451
|
-
| `steroids web` | Clone (if needed) and launch WebUI + API |
|
|
452
|
-
| `steroids web update` | Pull latest code and reinstall dependencies |
|
|
453
|
-
| `steroids web stop` | Stop running WebUI and API processes |
|
|
454
|
-
| `steroids web status` | Check if dashboard is running |
|
|
455
|
-
|
|
456
|
-
### Features
|
|
457
|
-
|
|
458
|
-
- **Multi-project view** — See all registered projects
|
|
459
|
-
- **Task queues** — Pending, in-progress, review, completed
|
|
460
|
-
- **Runner status** — Active daemons with heartbeat
|
|
461
|
-
- **Audit trails** — Full history of task state changes
|
|
462
|
-
- **Configuration** — Edit project settings from the browser
|
|
463
|
-
|
|
464
461
|
---
|
|
465
462
|
|
|
466
463
|
## Configuration
|
|
@@ -1 +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;
|
|
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;AAsOnD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HlF"}
|
package/dist/commands/llm.js
CHANGED
|
@@ -18,17 +18,88 @@ const LLM_INSTRUCTIONS = `# STEROIDS LLM QUICK REFERENCE
|
|
|
18
18
|
Steroids=automated task orchestration system.
|
|
19
19
|
It manages tasks and invokes LLM agents (coders/reviewers) to execute them.
|
|
20
20
|
The system spawns separate LLM processes for coding and reviewing.
|
|
21
|
+
Deterministic daemon — never makes decisions, just follows the state machine.
|
|
21
22
|
|
|
22
|
-
## TASK
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
## TASK STATE MACHINE
|
|
24
|
+
|
|
25
|
+
### All 8 Statuses
|
|
26
|
+
|
|
27
|
+
| Marker | Status | Terminal? | Runner picks it? | Description |
|
|
28
|
+
|--------|-------------|-----------|-------------------|------------------------------------------------|
|
|
29
|
+
| [ ] | pending | No | YES → coder | Not started, waiting for coder |
|
|
30
|
+
| [-] | in_progress | No | YES → coder | Coder is actively working |
|
|
31
|
+
| [o] | review | No | YES → reviewer | Coder finished, waiting for reviewer |
|
|
32
|
+
| [x] | completed | YES | No | Reviewer approved, code pushed |
|
|
33
|
+
| [!] | disputed | YES | No | Coder/reviewer disagreement, code pushed |
|
|
34
|
+
| [F] | failed | YES | No | Exceeded 15 rejections, needs human |
|
|
35
|
+
| [S] | skipped | YES | No | Fully external — nothing to code |
|
|
36
|
+
| [s] | partial | YES | No | Some coded, rest needs external setup |
|
|
37
|
+
|
|
38
|
+
CRITICAL: skipped [S] and partial [s] are TERMINAL states. The runner will NEVER
|
|
39
|
+
pick them up for coding. Once a task is marked partial/skipped, it is DONE from the
|
|
40
|
+
runner's perspective. If coding is still needed, reset to pending manually.
|
|
41
|
+
|
|
42
|
+
### State Transitions
|
|
43
|
+
|
|
44
|
+
pending [ ] → in_progress [-] → review [o] → completed [x] (approved)
|
|
45
|
+
↓ rejected → back to in_progress [-]
|
|
46
|
+
↓ disputed → disputed [!] (code pushed, move on)
|
|
47
|
+
if 15 rejections → failed [F] (full stop)
|
|
48
|
+
Human can mark at any time → skipped [S] or partial [s] (terminal)
|
|
49
|
+
|
|
50
|
+
### Coordinator Intervention
|
|
51
|
+
At rejection thresholds [2, 5, 9], a coordinator LLM is invoked to analyze the
|
|
52
|
+
rejection pattern and provide guidance to both coder and reviewer. This breaks
|
|
53
|
+
coder/reviewer deadlocks without human intervention.
|
|
54
|
+
|
|
55
|
+
## TASK SELECTION ALGORITHM
|
|
56
|
+
|
|
57
|
+
Runner selects tasks in strict priority order:
|
|
58
|
+
|
|
59
|
+
Priority 1: review [o] — complete reviews before starting new work
|
|
60
|
+
Priority 2: in_progress [-] — resume incomplete work
|
|
61
|
+
Priority 3: pending [ ] — start new work
|
|
62
|
+
|
|
63
|
+
Within each priority, ordered by: section position (lower=first), then created_at (older=first).
|
|
64
|
+
|
|
65
|
+
### Filters Applied Before Selection
|
|
66
|
+
1. Terminal statuses excluded: completed, disputed, failed, skipped, partial
|
|
67
|
+
2. Tasks in skipped sections excluded (unless runner focused on specific section)
|
|
68
|
+
3. Tasks in sections with UNMET DEPENDENCIES excluded (see below)
|
|
69
|
+
4. Tasks locked by another runner excluded
|
|
70
|
+
|
|
71
|
+
If no selectable task exists → runner goes idle.
|
|
72
|
+
|
|
73
|
+
## SECTION DEPENDENCIES
|
|
74
|
+
|
|
75
|
+
Sections can declare dependencies on other sections:
|
|
76
|
+
steroids sections depends-on <A> <B> → Section A depends on Section B
|
|
77
|
+
|
|
78
|
+
Effect: ALL tasks in section B must be completed before ANY task in section A
|
|
79
|
+
can be picked by the runner. "Completed" means status=completed (not just
|
|
80
|
+
skipped/partial — those count as incomplete for dependency purposes).
|
|
81
|
+
|
|
82
|
+
Dependency checks:
|
|
83
|
+
- Cycle detection prevents circular dependencies
|
|
84
|
+
- Runner evaluates dependencies at task selection time
|
|
85
|
+
- Use \`steroids sections graph\` to visualize the dependency tree
|
|
86
|
+
|
|
87
|
+
Commands:
|
|
88
|
+
steroids sections depends-on <id> <dep-id> # add dependency
|
|
89
|
+
steroids sections no-depends-on <id> <dep-id> # remove dependency
|
|
90
|
+
steroids sections list --deps # show deps inline
|
|
91
|
+
steroids sections graph # ASCII dependency tree
|
|
92
|
+
steroids sections graph --mermaid # Mermaid syntax
|
|
93
|
+
steroids sections graph --json # JSON output
|
|
25
94
|
|
|
26
95
|
## ARCHITECTURE
|
|
27
|
-
- Tasks stored in .steroids/steroids.db (per project)
|
|
96
|
+
- Tasks stored in .steroids/steroids.db (SQLite, per project)
|
|
28
97
|
- Runner daemon executes the loop (one per project)
|
|
29
98
|
- Coder LLM: implements task, commits, submits for review
|
|
30
99
|
- Reviewer LLM: verifies implementation, approves or rejects
|
|
31
|
-
-
|
|
100
|
+
- Coordinator LLM: breaks deadlocks at rejection thresholds [2, 5, 9]
|
|
101
|
+
- Build verification: orchestrator re-runs build+tests after coder submits
|
|
102
|
+
- If build/tests fail → auto-reject back to in_progress (coder fixes)
|
|
32
103
|
|
|
33
104
|
## MULTI-PROJECT
|
|
34
105
|
- Multiple projects can have runners simultaneously
|
|
@@ -44,7 +115,7 @@ steroids tasks # pending tasks (current project)
|
|
|
44
115
|
steroids tasks --status active # in_progress+review (current project)
|
|
45
116
|
steroids tasks --status active --global # active across ALL projects
|
|
46
117
|
steroids tasks --status all # all tasks
|
|
47
|
-
steroids tasks audit <id>
|
|
118
|
+
steroids tasks audit <id> # view task spec, history, rejection notes
|
|
48
119
|
|
|
49
120
|
### Add Tasks
|
|
50
121
|
steroids tasks add "Title" --section <id> --source <spec-file>
|
|
@@ -79,8 +150,13 @@ steroids tasks skip <id> --partial --notes "reason" # coded some, rest e
|
|
|
79
150
|
|
|
80
151
|
### Sections
|
|
81
152
|
steroids sections list # list sections
|
|
153
|
+
steroids sections list --deps # list with dependencies shown
|
|
82
154
|
steroids sections skip <id> # exclude from runner
|
|
83
155
|
steroids sections unskip <id> # include in runner
|
|
156
|
+
steroids sections priority <id> <val> # set priority (0-100 or high/medium/low)
|
|
157
|
+
steroids sections depends-on <A> <B> # A depends on B (B must complete first)
|
|
158
|
+
steroids sections no-depends-on <A> <B> # remove dependency
|
|
159
|
+
steroids sections graph # show dependency graph
|
|
84
160
|
|
|
85
161
|
### Runners (daemon that executes tasks)
|
|
86
162
|
steroids runners list # all runners (all projects)
|
|
@@ -115,26 +191,22 @@ steroids tasks reject <id> --model human --notes "reason" # reject manually
|
|
|
115
191
|
### Restart failed task
|
|
116
192
|
steroids tasks update <id> --status pending --reset-rejections # reset to pending with fresh count
|
|
117
193
|
|
|
194
|
+
### Fix incorrectly marked partial/skipped tasks
|
|
195
|
+
steroids tasks update <id> --status pending --actor human:cli
|
|
196
|
+
# Use when: a task was marked partial/skipped but still needs coding
|
|
197
|
+
|
|
118
198
|
### Skip external setup task
|
|
119
199
|
steroids tasks skip <id> --notes "spec says SKIP, needs Cloud SQL setup"
|
|
120
200
|
# Use when: spec says SKIP/MANUAL, requires cloud console, account creation, etc.
|
|
121
201
|
# --partial: use if you coded some parts but rest needs human action
|
|
122
202
|
|
|
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
203
|
## IMPORTANT NOTES
|
|
134
204
|
- Task spec is in source file (see tasks audit output)
|
|
135
|
-
- Max 15 rejections before task fails
|
|
205
|
+
- Max 15 rejections before task fails; coordinator intervenes at [2, 5, 9]
|
|
136
206
|
- Runner auto-restarts via cron (steroids runners cron install)
|
|
137
207
|
- Each project isolated: own database, own runner
|
|
208
|
+
- Section dependencies block entire sections, not individual tasks
|
|
209
|
+
- Build+test verification happens automatically after coder submits
|
|
138
210
|
`;
|
|
139
211
|
const HELP = (0, help_js_1.generateHelp)({
|
|
140
212
|
command: 'llm',
|
package/dist/commands/llm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/commands/llm.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/commands/llm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/commands/web.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,
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/commands/web.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,CAiFlF"}
|
package/dist/commands/web.js
CHANGED
|
@@ -157,6 +157,23 @@ async function webCommand(args, flags) {
|
|
|
157
157
|
if (freshClone) {
|
|
158
158
|
installAndBuild(out);
|
|
159
159
|
}
|
|
160
|
+
else {
|
|
161
|
+
// Always pull latest before launching
|
|
162
|
+
out.log('Checking for updates...');
|
|
163
|
+
try {
|
|
164
|
+
const result = (0, node_child_process_1.execSync)('git pull', { cwd: WEB_DIR, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
|
|
165
|
+
if (result.includes('Already up to date')) {
|
|
166
|
+
out.log('Already up to date.');
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
out.log('Updated. Reinstalling...');
|
|
170
|
+
installAndBuild(out);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
out.log('Could not check for updates (offline?). Launching with current version.');
|
|
175
|
+
}
|
|
176
|
+
}
|
|
160
177
|
launchProcesses(out);
|
|
161
178
|
break;
|
|
162
179
|
}
|
package/dist/commands/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/commands/web.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAgKH,
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/commands/web.ts"],"names":[],"mappings":"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"}
|