@bradtaylorsf/alpha-loop 1.2.0 → 1.3.0
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 +60 -19
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/auth.js +1 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/init.d.ts +14 -0
- package/dist/commands/init.js +199 -30
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/resume.js +1 -0
- package/dist/commands/resume.js.map +1 -1
- package/dist/commands/run.js +31 -12
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/scan.d.ts +1 -1
- package/dist/commands/scan.js +12 -9
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/sync.d.ts +5 -0
- package/dist/commands/sync.js +24 -5
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/vision.js +5 -3
- package/dist/commands/vision.js.map +1 -1
- package/dist/engine/agents.d.ts +6 -1
- package/dist/engine/agents.js +14 -12
- package/dist/engine/agents.js.map +1 -1
- package/dist/engine/prerequisites.d.ts +4 -7
- package/dist/engine/prerequisites.js +12 -36
- package/dist/engine/prerequisites.js.map +1 -1
- package/dist/lib/agent.d.ts +10 -0
- package/dist/lib/agent.js +184 -28
- package/dist/lib/agent.js.map +1 -1
- package/dist/lib/config.d.ts +3 -2
- package/dist/lib/config.js +17 -7
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/learning.js +2 -2
- package/dist/lib/learning.js.map +1 -1
- package/dist/lib/pipeline.d.ts +35 -0
- package/dist/lib/pipeline.js +424 -131
- package/dist/lib/pipeline.js.map +1 -1
- package/dist/lib/prompts.d.ts +1 -0
- package/dist/lib/prompts.js +8 -5
- package/dist/lib/prompts.js.map +1 -1
- package/dist/lib/session.js +54 -19
- package/dist/lib/session.js.map +1 -1
- package/dist/lib/verify.d.ts +7 -1
- package/dist/lib/verify.js +109 -157
- package/dist/lib/verify.js.map +1 -1
- package/dist/lib/worktree.d.ts +1 -0
- package/dist/lib/worktree.js +9 -1
- package/dist/lib/worktree.js.map +1 -1
- package/package.json +1 -1
- package/templates/agents/implementer.md +1 -1
- package/templates/agents/reviewer.md +1 -1
- package/dist/engine/config.d.ts +0 -71
- package/dist/engine/config.js +0 -73
- package/dist/engine/config.js.map +0 -1
package/README.md
CHANGED
|
@@ -19,9 +19,9 @@ npx @bradtaylorsf/alpha-loop
|
|
|
19
19
|
- **Node.js 20+**
|
|
20
20
|
- **git** — for worktree isolation
|
|
21
21
|
- **[GitHub CLI](https://cli.github.com/)** (`gh`) — authenticated with `gh auth login`
|
|
22
|
-
- **AI agent CLI** —
|
|
23
|
-
- [Claude Code](https://claude.ai/code) (`claude`)
|
|
24
|
-
- [Codex](https://
|
|
22
|
+
- **AI agent CLI** — set `agent` in your config to one of:
|
|
23
|
+
- [Claude Code](https://claude.ai/code) (`claude`) — default
|
|
24
|
+
- [Codex](https://developers.openai.com/codex/cli/reference) (`codex`)
|
|
25
25
|
- [OpenCode](https://github.com/sst/opencode) (`opencode`)
|
|
26
26
|
- **[Playwright CLI](https://www.npmjs.com/package/@playwright/cli)** (optional) — for live verification with screenshots
|
|
27
27
|
|
|
@@ -32,7 +32,7 @@ npx @bradtaylorsf/alpha-loop
|
|
|
32
32
|
cd your-project
|
|
33
33
|
alpha-loop init
|
|
34
34
|
|
|
35
|
-
# 2. Edit .alpha-loop.yaml if needed (
|
|
35
|
+
# 2. Edit .alpha-loop.yaml if needed (agent, model, test_command, etc.)
|
|
36
36
|
|
|
37
37
|
# 3. Run the loop — you'll be prompted to pick a milestone
|
|
38
38
|
alpha-loop run
|
|
@@ -92,7 +92,7 @@ These learnings are automatically fed into future implementation prompts, so the
|
|
|
92
92
|
|
|
93
93
|
### Self-Improvement (`alpha-loop review`)
|
|
94
94
|
|
|
95
|
-
Run `alpha-loop review` to trigger the self-improvement loop. It reads all accumulated learnings, computes metrics (success rate, avg retries, common failures), gathers current agent/skill definitions, and asks
|
|
95
|
+
Run `alpha-loop review` to trigger the self-improvement loop. It reads all accumulated learnings, computes metrics (success rate, avg retries, common failures), gathers current agent/skill definitions, and asks the configured agent to propose targeted improvements:
|
|
96
96
|
|
|
97
97
|
- **Agent prompts** — bake in recurring patterns, eliminate anti-patterns
|
|
98
98
|
- **Skill definitions** — add/update skills based on what consistently works or fails
|
|
@@ -142,8 +142,9 @@ During live verification, the agent takes screenshots at key states and saves th
|
|
|
142
142
|
alpha-loop run [options]
|
|
143
143
|
|
|
144
144
|
Options:
|
|
145
|
+
--once Process one issue and exit
|
|
145
146
|
--dry-run Preview without making changes
|
|
146
|
-
--model <model> AI model
|
|
147
|
+
--model <model> AI model override (e.g., opus, sonnet, gpt-5.4, gpt-5.3-codex)
|
|
147
148
|
--milestone <name> Only process issues in this milestone (skips interactive prompt)
|
|
148
149
|
--skip-tests Skip test execution
|
|
149
150
|
--skip-review Skip code review step
|
|
@@ -160,19 +161,17 @@ Running `alpha-loop init` creates a `.alpha-loop.yaml` file:
|
|
|
160
161
|
# Alpha Loop configuration
|
|
161
162
|
repo: owner/repo-name
|
|
162
163
|
project: 0 # GitHub Project number (find it in your project URL)
|
|
163
|
-
|
|
164
|
-
|
|
164
|
+
agent: claude # AI agent CLI: claude, codex, opencode
|
|
165
|
+
# model: # omit to use agent's default (e.g., opus, gpt-5.4)
|
|
165
166
|
label: ready
|
|
166
167
|
base_branch: main
|
|
167
168
|
test_command: pnpm test
|
|
168
169
|
dev_command: pnpm dev
|
|
169
|
-
port: 3000
|
|
170
170
|
auto_merge: true
|
|
171
171
|
|
|
172
|
-
# Coding harnesses to sync skills/agents to
|
|
172
|
+
# Coding harnesses to sync skills/agents to (auto-derived from agent if empty)
|
|
173
173
|
harnesses:
|
|
174
|
-
- claude
|
|
175
|
-
- codex
|
|
174
|
+
- claude
|
|
176
175
|
|
|
177
176
|
# Safety limits (0 = unlimited)
|
|
178
177
|
max_issues: 20
|
|
@@ -185,13 +184,15 @@ max_session_duration: 7200 # 2 hours in seconds
|
|
|
185
184
|
|-----|---------|-------------|
|
|
186
185
|
| `repo` | (auto-detected) | GitHub repo in `owner/name` format |
|
|
187
186
|
| `project` | `0` | GitHub Project number (from URL: `users/<owner>/projects/<N>`) |
|
|
188
|
-
| `
|
|
189
|
-
| `
|
|
187
|
+
| `agent` | `claude` | AI agent CLI to use: `claude`, `codex`, or `opencode` |
|
|
188
|
+
| `model` | (agent default) | AI model (passed via `--model` flag; omit to use agent's default) |
|
|
189
|
+
| `review_model` | (agent default) | AI model for code review and learning extraction |
|
|
190
190
|
| `label` | `ready` | GitHub label that marks issues as ready for the loop |
|
|
191
191
|
| `base_branch` | `master` | Branch to create PRs against |
|
|
192
192
|
| `test_command` | `pnpm test` | Command to run tests |
|
|
193
193
|
| `dev_command` | `pnpm dev` | Command to start the dev server for verification |
|
|
194
|
-
| `
|
|
194
|
+
| `max_turns` | (none) | Max conversation turns for the agent |
|
|
195
|
+
| `poll_interval` | `60` | Seconds between issue polling |
|
|
195
196
|
| `max_test_retries` | `3` | Times to retry failing tests/verification |
|
|
196
197
|
| `milestone` | (none) | Only process issues in this milestone |
|
|
197
198
|
| `max_issues` | `0` | Max issues to process per session (0 = unlimited) |
|
|
@@ -206,7 +207,9 @@ max_session_duration: 7200 # 2 hours in seconds
|
|
|
206
207
|
| `skip_install` | `false` | Skip `pnpm install` in worktrees |
|
|
207
208
|
| `skip_preflight` | `false` | Skip pre-flight test validation |
|
|
208
209
|
| `auto_cleanup` | `true` | Auto-remove worktrees after processing |
|
|
209
|
-
| `
|
|
210
|
+
| `run_full` | `false` | Run full pipeline without skipping any steps |
|
|
211
|
+
| `verbose` | `false` | Enable verbose agent output |
|
|
212
|
+
| `harnesses` | (auto from agent) | Coding harnesses to sync skills/agents to (e.g., `claude`, `codex`) |
|
|
210
213
|
|
|
211
214
|
### Environment Variables
|
|
212
215
|
|
|
@@ -216,8 +219,10 @@ All config options can be set via environment variables (uppercase, same names):
|
|
|
216
219
|
|----------|------------|
|
|
217
220
|
| `REPO` | `repo` |
|
|
218
221
|
| `PROJECT` | `project` |
|
|
222
|
+
| `AGENT` | `agent` |
|
|
219
223
|
| `MODEL` | `model` |
|
|
220
224
|
| `REVIEW_MODEL` | `review_model` |
|
|
225
|
+
| `POLL_INTERVAL` | `poll_interval` |
|
|
221
226
|
| `MAX_TEST_RETRIES` | `max_test_retries` |
|
|
222
227
|
| `MILESTONE` | `milestone` |
|
|
223
228
|
| `MAX_ISSUES` | `max_issues` |
|
|
@@ -225,29 +230,65 @@ All config options can be set via environment variables (uppercase, same names):
|
|
|
225
230
|
| `BASE_BRANCH` | `base_branch` |
|
|
226
231
|
| `TEST_COMMAND` | `test_command` |
|
|
227
232
|
| `DEV_COMMAND` | `dev_command` |
|
|
228
|
-
| `PORT` | `port` |
|
|
229
233
|
| `DRY_RUN` | `dry_run` |
|
|
230
234
|
| `SKIP_TESTS` | `skip_tests` |
|
|
231
235
|
| `SKIP_REVIEW` | `skip_review` |
|
|
232
236
|
| `SKIP_VERIFY` | `skip_verify` |
|
|
233
237
|
| `SKIP_LEARN` | `skip_learn` |
|
|
238
|
+
| `SKIP_E2E` | `skip_e2e` |
|
|
239
|
+
| `SKIP_INSTALL` | `skip_install` |
|
|
240
|
+
| `SKIP_PREFLIGHT` | `skip_preflight` |
|
|
234
241
|
| `AUTO_MERGE` | `auto_merge` |
|
|
242
|
+
| `AUTO_CLEANUP` | `auto_cleanup` |
|
|
235
243
|
| `MERGE_TO` | `merge_to` |
|
|
244
|
+
| `RUN_FULL` | `run_full` |
|
|
245
|
+
| `VERBOSE` | `verbose` |
|
|
236
246
|
|
|
237
247
|
**Precedence:** CLI flags > environment variables > `.alpha-loop.yaml` > auto-detection > defaults
|
|
238
248
|
|
|
249
|
+
### Switching Agents
|
|
250
|
+
|
|
251
|
+
Alpha Loop is agent-agnostic. Set the `agent` field in `.alpha-loop.yaml` to switch which CLI runs the pipeline:
|
|
252
|
+
|
|
253
|
+
```yaml
|
|
254
|
+
# Use Codex instead of Claude
|
|
255
|
+
agent: codex
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
```yaml
|
|
259
|
+
# Use Codex with a specific model
|
|
260
|
+
agent: codex
|
|
261
|
+
model: gpt-5.3-codex
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
If you omit `model`, the agent CLI uses its own default (e.g., Claude uses its configured model, Codex uses `gpt-5.4`). Set `model` only when you want to override.
|
|
265
|
+
|
|
266
|
+
| Agent | Example models | CLI flags used |
|
|
267
|
+
|-------|---------------|----------------|
|
|
268
|
+
| `claude` | `opus`, `sonnet`, `haiku` | `-p --model MODEL --dangerously-skip-permissions` |
|
|
269
|
+
| `codex` | `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.3-codex` | `exec --model MODEL --full-auto` |
|
|
270
|
+
| `opencode` | `deepseek`, `gpt-4` | `run --model MODEL` |
|
|
271
|
+
|
|
272
|
+
When you change `agent`, the harness sync automatically targets the correct directories (e.g., `.claude/` for Claude, `.codex/` for Codex). You can also explicitly list harnesses if you use multiple tools:
|
|
273
|
+
|
|
274
|
+
```yaml
|
|
275
|
+
agent: codex
|
|
276
|
+
harnesses:
|
|
277
|
+
- codex
|
|
278
|
+
- claude # also sync to Claude for teammates using it
|
|
279
|
+
```
|
|
280
|
+
|
|
239
281
|
## GitHub Setup
|
|
240
282
|
|
|
241
283
|
### Labels
|
|
242
284
|
|
|
243
|
-
|
|
285
|
+
The loop uses these labels. Run `alpha-loop init` to create any that are missing:
|
|
244
286
|
|
|
245
287
|
| Label | Purpose |
|
|
246
288
|
|-------|---------|
|
|
247
289
|
| `ready` | Issue is ready for the loop to pick up |
|
|
248
290
|
| `in-progress` | Loop is actively working on it |
|
|
249
291
|
| `in-review` | PR created, awaiting review |
|
|
250
|
-
| `done` | Merged and complete |
|
|
251
292
|
| `failed` | Loop failed after retries |
|
|
252
293
|
|
|
253
294
|
### Milestones
|
package/dist/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ import { syncCommand } from './commands/sync.js';
|
|
|
8
8
|
program
|
|
9
9
|
.name('alpha-loop')
|
|
10
10
|
.description('Agent-agnostic automated development loop')
|
|
11
|
-
.version('1.
|
|
11
|
+
.version('1.3.0');
|
|
12
12
|
program
|
|
13
13
|
.command('init')
|
|
14
14
|
.description('Full project onboarding: config, templates, vision, scan, sync')
|
|
@@ -27,9 +27,12 @@ program
|
|
|
27
27
|
.option('--milestone <name>', 'Only process issues in this milestone')
|
|
28
28
|
.option('--auto-merge', 'Auto-merge PRs to session branch')
|
|
29
29
|
.option('--merge-to <branch>', 'Use existing branch instead of creating session branch')
|
|
30
|
+
.option('--once', 'Process one issue and exit')
|
|
30
31
|
.option('--verbose', 'Stream live agent output to terminal')
|
|
31
32
|
.action(async (options) => {
|
|
32
33
|
const { runCommand } = await import('./commands/run.js');
|
|
34
|
+
if (options.once)
|
|
35
|
+
options.maxIssues = 1;
|
|
33
36
|
await runCommand(options);
|
|
34
37
|
});
|
|
35
38
|
program
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC3D,MAAM,WAAW,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,2EAA2E,CAAC;KACxF,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAC9C,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;KAC5C,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;KAC7C,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC;KAC3C,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,oBAAoB,EAAE,uCAAuC,CAAC;KACrE,MAAM,CAAC,cAAc,EAAE,kCAAkC,CAAC;KAC1D,MAAM,CAAC,qBAAqB,EAAE,wDAAwD,CAAC;KACvF,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;KAC9C,MAAM,CAAC,WAAW,EAAE,sCAAsC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;IACxC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC;KAC5C,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,SAAS,EAAE,iEAAiE,CAAC;KACpF,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;KAC9D,MAAM,CAAC,kBAAkB,EAAE,0CAA0C,CAAC;KACtE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC/D,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2FAA2F,CAAC;KACxG,MAAM,CAAC,SAAS,EAAE,4CAA4C,CAAC;KAC/D,MAAM,CAAC,kBAAkB,EAAE,gDAAgD,CAAC;KAC5E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC/D,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -28,7 +28,7 @@ export async function authCommand() {
|
|
|
28
28
|
console.log('(cookies, localStorage, sessions) will be saved for future');
|
|
29
29
|
console.log('verification runs.');
|
|
30
30
|
console.log('');
|
|
31
|
-
const defaultUrl = `http://localhost
|
|
31
|
+
const defaultUrl = `http://localhost:3000`;
|
|
32
32
|
const rl = readline.createInterface({
|
|
33
33
|
input: process.stdin,
|
|
34
34
|
output: process.stdout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,SAAS,GAAG,CAAC,EAAsB,EAAE,QAAgB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,2BAA2B;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjD,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;QAC/F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC7D,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,SAAS,GAAG,CAAC,EAAsB,EAAE,QAAgB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,2BAA2B;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACjD,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;QAC/F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAC7D,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,UAAU,GAAG,uBAAuB,CAAC;IAE3C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,YAAY,UAAU,KAAK,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,SAAS,IAAI,UAAU,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,6BAA6B;QAC7B,MAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAE3F,MAAM,GAAG,CAAC,EAAE,EAAE,yCAAyC,CAAC,CAAC;QAEzD,qBAAqB;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,8BAA8B,OAAO,cAAc,CAAC,CAAC;QAC7E,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YAC7E,IAAI,CAAC,iCAAiC,OAAO,gBAAgB,CAAC,CAAC;YAC/D,IAAI,CAAC,uCAAuC,OAAO,qBAAqB,CAAC,CAAC;QAC5E,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACjC,0EAA0E;QAC1E,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9E,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAEvE,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YAChC,GAAG,CAAC,OAAO,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAEtD,oBAAoB;YACpB,eAAe,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACvC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC1C,EAAE,CAAC,cAAc,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check for required GitHub labels and interactively create missing ones.
|
|
3
|
+
*/
|
|
4
|
+
export declare function ensureLabels(repo: string, labelReady: string): Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* Check for required project board statuses and create missing ones.
|
|
7
|
+
*/
|
|
8
|
+
export declare function ensureProjectStatuses(repoOwner: string, project: number): Promise<void>;
|
|
1
9
|
export declare function initCommand(): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Install playwright-cli skills into .alpha-loop/templates/skills/ (source of truth).
|
|
12
|
+
* playwright-cli install --skills writes to .claude/ by default, so we move the
|
|
13
|
+
* installed skills into templates and let the normal sync handle distribution.
|
|
14
|
+
*/
|
|
15
|
+
export declare function installPlaywrightSkills(projectDir: string, templatesDir?: string): boolean;
|
package/dist/commands/init.js
CHANGED
|
@@ -15,10 +15,11 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { existsSync, writeFileSync, readFileSync, readdirSync, copyFileSync, mkdirSync } from 'node:fs';
|
|
17
17
|
import { join } from 'node:path';
|
|
18
|
+
import * as readline from 'node:readline';
|
|
18
19
|
import { detectRepo, loadConfig } from '../lib/config.js';
|
|
19
20
|
import { exec } from '../lib/shell.js';
|
|
20
21
|
import { log } from '../lib/logger.js';
|
|
21
|
-
import { syncAgentAssets, migrateToTemplates } from './sync.js';
|
|
22
|
+
import { syncAgentAssets, migrateToTemplates, resolveHarnesses } from './sync.js';
|
|
22
23
|
import { findDistributionTemplatesDir } from '../lib/templates.js';
|
|
23
24
|
const CONFIG_FILE = '.alpha-loop.yaml';
|
|
24
25
|
const ISSUE_TEMPLATE = `name: Agent-Ready Task
|
|
@@ -93,19 +94,17 @@ function configTemplate(repo) {
|
|
|
93
94
|
return `# Alpha Loop configuration
|
|
94
95
|
repo: ${repo}
|
|
95
96
|
project: 0 # GitHub Project number (find it in your project URL)
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
agent: claude # AI agent CLI: claude, codex, opencode
|
|
98
|
+
# model: # AI model (omit to use agent's default, e.g., opus, gpt-5.4)
|
|
98
99
|
label: ready
|
|
99
100
|
base_branch: main
|
|
100
101
|
test_command: pnpm test
|
|
101
102
|
dev_command: pnpm dev
|
|
102
|
-
port: 3000
|
|
103
103
|
auto_merge: true
|
|
104
104
|
|
|
105
|
-
# Coding harnesses to sync skills/agents to
|
|
105
|
+
# Coding harnesses to sync skills/agents to (auto-derived from agent if empty)
|
|
106
106
|
harnesses:
|
|
107
|
-
- claude
|
|
108
|
-
- codex
|
|
107
|
+
- claude
|
|
109
108
|
|
|
110
109
|
# Safety limits (0 = unlimited)
|
|
111
110
|
max_issues: 20
|
|
@@ -147,6 +146,147 @@ function ensureGitignore() {
|
|
|
147
146
|
log.success('Updated .gitignore for alpha-loop');
|
|
148
147
|
}
|
|
149
148
|
}
|
|
149
|
+
const REQUIRED_PROJECT_STATUSES = ['Todo', 'In progress', 'In Review', 'Done'];
|
|
150
|
+
const REQUIRED_LABELS = [
|
|
151
|
+
{ name: 'ready', color: '0E8A16', description: 'Ready for agent processing' },
|
|
152
|
+
{ name: 'in-progress', color: '1D76DB', description: 'Agent is working on this' },
|
|
153
|
+
{ name: 'in-review', color: 'FBCA04', description: 'PR created, awaiting review' },
|
|
154
|
+
{ name: 'failed', color: 'D93F0B', description: 'Agent processing failed' },
|
|
155
|
+
];
|
|
156
|
+
/**
|
|
157
|
+
* Check for required GitHub labels and interactively create missing ones.
|
|
158
|
+
*/
|
|
159
|
+
export async function ensureLabels(repo, labelReady) {
|
|
160
|
+
// Build the label list with the configured "ready" label name
|
|
161
|
+
const labels = REQUIRED_LABELS.map(l => l.name === 'ready' ? { ...l, name: labelReady } : l);
|
|
162
|
+
const result = exec(`gh label list --repo "${repo}" --json name --limit 200`);
|
|
163
|
+
if (result.exitCode !== 0) {
|
|
164
|
+
log.warn('Could not check labels (gh CLI issue or repo not found)');
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
let existing;
|
|
168
|
+
try {
|
|
169
|
+
const parsed = JSON.parse(result.stdout);
|
|
170
|
+
existing = new Set(parsed.map(l => l.name));
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
log.warn('Could not parse label list');
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const missing = labels.filter(l => !existing.has(l.name));
|
|
177
|
+
if (missing.length === 0) {
|
|
178
|
+
log.success('All required labels exist');
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
log.info(`Missing labels: ${missing.map(l => l.name).join(', ')}`);
|
|
182
|
+
// Interactive confirmation if running in a TTY
|
|
183
|
+
if (process.stdin.isTTY) {
|
|
184
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
185
|
+
const answer = await new Promise(resolve => {
|
|
186
|
+
rl.question('Create missing labels? [Y/n]: ', resolve);
|
|
187
|
+
});
|
|
188
|
+
rl.close();
|
|
189
|
+
if (answer.trim().toLowerCase() === 'n') {
|
|
190
|
+
log.info('Skipping label creation');
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
for (const label of missing) {
|
|
195
|
+
const createResult = exec(`gh label create "${label.name}" --repo "${repo}" --color "${label.color}" --description "${label.description}"`);
|
|
196
|
+
if (createResult.exitCode === 0) {
|
|
197
|
+
log.success(`Created label: ${label.name}`);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
log.warn(`Failed to create label: ${label.name}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check for required project board statuses and create missing ones.
|
|
206
|
+
*/
|
|
207
|
+
export async function ensureProjectStatuses(repoOwner, project) {
|
|
208
|
+
if (!project || project <= 0) {
|
|
209
|
+
log.info('No project board configured — skipping status check');
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
// Get project ID and status field
|
|
213
|
+
const projectResult = exec(`gh project view ${project} --owner "${repoOwner}" --format json`);
|
|
214
|
+
if (projectResult.exitCode !== 0) {
|
|
215
|
+
log.warn(`Could not access project board ${project}`);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
let projectId;
|
|
219
|
+
try {
|
|
220
|
+
projectId = JSON.parse(projectResult.stdout).id;
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
log.warn('Could not parse project data');
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
const fieldResult = exec(`gh project field-list ${project} --owner "${repoOwner}" --format json`);
|
|
227
|
+
if (fieldResult.exitCode !== 0) {
|
|
228
|
+
log.warn('Could not list project fields');
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
let fieldId;
|
|
232
|
+
let existingOptions = [];
|
|
233
|
+
try {
|
|
234
|
+
const data = JSON.parse(fieldResult.stdout);
|
|
235
|
+
const statusField = data.fields.find((f) => f.name === 'Status');
|
|
236
|
+
if (statusField) {
|
|
237
|
+
fieldId = statusField.id;
|
|
238
|
+
existingOptions = statusField.options ?? [];
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
log.warn('Could not parse project fields');
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
if (!fieldId) {
|
|
246
|
+
log.warn('No Status field found on project board');
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
const existingNames = new Set(existingOptions.map((o) => o.name));
|
|
250
|
+
const missing = REQUIRED_PROJECT_STATUSES.filter((s) => !existingNames.has(s));
|
|
251
|
+
if (missing.length === 0) {
|
|
252
|
+
log.success('All required project statuses exist');
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
log.info(`Missing project statuses: ${missing.join(', ')}`);
|
|
256
|
+
// Interactive confirmation if running in a TTY
|
|
257
|
+
if (process.stdin.isTTY) {
|
|
258
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
259
|
+
const answer = await new Promise((resolve) => {
|
|
260
|
+
rl.question('Create missing project statuses? [Y/n]: ', resolve);
|
|
261
|
+
});
|
|
262
|
+
rl.close();
|
|
263
|
+
if (answer.trim().toLowerCase() === 'n') {
|
|
264
|
+
log.info('Skipping status creation');
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
// Build the full options list (existing + new) for the update mutation
|
|
269
|
+
const allOptionObjs = [
|
|
270
|
+
...existingOptions.map((o) => ({ name: o.name, id: o.id })),
|
|
271
|
+
...missing.map((name) => ({ name })),
|
|
272
|
+
];
|
|
273
|
+
const optionsJson = JSON.stringify(allOptionObjs);
|
|
274
|
+
const mutation = `mutation {
|
|
275
|
+
updateProjectV2Field(input: {
|
|
276
|
+
projectId: "${projectId}"
|
|
277
|
+
fieldId: "${fieldId}"
|
|
278
|
+
singleSelectOptions: ${optionsJson.replace(/"/g, '\\"')}
|
|
279
|
+
}) { projectV2Field { ... on ProjectV2SingleSelectField { id } } }
|
|
280
|
+
}`;
|
|
281
|
+
const createResult = exec(`gh api graphql -f query="${mutation}"`);
|
|
282
|
+
if (createResult.exitCode === 0) {
|
|
283
|
+
log.success(`Created project statuses: ${missing.join(', ')}`);
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
log.warn(`Could not create project statuses: ${createResult.stderr}`);
|
|
287
|
+
log.info(`Please add these statuses manually in your project settings: ${missing.join(', ')}`);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
150
290
|
export async function initCommand() {
|
|
151
291
|
const projectDir = process.cwd();
|
|
152
292
|
// --- Step 1: Create config ---
|
|
@@ -219,26 +359,7 @@ export async function initCommand() {
|
|
|
219
359
|
}
|
|
220
360
|
// --- Step 5: Install playwright-cli skills ---
|
|
221
361
|
log.step('Step 5: Playwright CLI');
|
|
222
|
-
|
|
223
|
-
if (which.exitCode === 0) {
|
|
224
|
-
const result = exec('playwright-cli install --skills');
|
|
225
|
-
if (result.exitCode === 0) {
|
|
226
|
-
log.success('Playwright CLI skills installed');
|
|
227
|
-
// Copy to templates source of truth
|
|
228
|
-
const installed = join('.claude', 'skills', 'playwright-cli');
|
|
229
|
-
const dest = join(projectTemplatesDir, 'skills', 'playwright-cli');
|
|
230
|
-
if (existsSync(installed) && !existsSync(dest)) {
|
|
231
|
-
copyDir(installed, dest);
|
|
232
|
-
log.info('Copied playwright-cli skill to .alpha-loop/templates/skills/');
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
log.warn('Could not install playwright-cli skills');
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
log.info('playwright-cli not found — skipping. Install with: npm install -g @playwright/cli@latest');
|
|
241
|
-
}
|
|
362
|
+
installPlaywrightSkills(projectDir, projectTemplatesDir);
|
|
242
363
|
// --- Step 6: Vision (interactive) ---
|
|
243
364
|
if (process.stdin.isTTY) {
|
|
244
365
|
const { hasVision } = await import('../lib/vision.js');
|
|
@@ -261,7 +382,7 @@ export async function initCommand() {
|
|
|
261
382
|
// --- Step 8: Sync to harnesses ---
|
|
262
383
|
log.step('Step 8: Sync to harnesses');
|
|
263
384
|
const config = loadConfig();
|
|
264
|
-
const harnesses = config.harnesses
|
|
385
|
+
const harnesses = resolveHarnesses(config.harnesses, config.agent);
|
|
265
386
|
const syncResult = syncAgentAssets(harnesses);
|
|
266
387
|
if (syncResult.synced) {
|
|
267
388
|
log.success(`Synced templates to ${harnesses.join(', ')}`);
|
|
@@ -278,8 +399,14 @@ export async function initCommand() {
|
|
|
278
399
|
else {
|
|
279
400
|
log.info('Issue template already exists');
|
|
280
401
|
}
|
|
281
|
-
// --- Step 10:
|
|
282
|
-
log.step('Step 10:
|
|
402
|
+
// --- Step 10: GitHub labels ---
|
|
403
|
+
log.step('Step 10: GitHub labels');
|
|
404
|
+
await ensureLabels(config.repo, config.labelReady);
|
|
405
|
+
// --- Step 11: Project board statuses ---
|
|
406
|
+
log.step('Step 11: Project board statuses');
|
|
407
|
+
await ensureProjectStatuses(config.repoOwner, config.project);
|
|
408
|
+
// --- Step 12: Commit ---
|
|
409
|
+
log.step('Step 11: Commit generated files');
|
|
283
410
|
const statusResult = exec('git status --porcelain .alpha-loop/ .claude/ .agents/ .codex/ CLAUDE.md AGENTS.md .gitignore .github/');
|
|
284
411
|
if (statusResult.stdout.trim()) {
|
|
285
412
|
exec('git add .alpha-loop/ .claude/ .agents/ .codex/ CLAUDE.md AGENTS.md .gitignore .github/ 2>/dev/null || true');
|
|
@@ -294,4 +421,46 @@ export async function initCommand() {
|
|
|
294
421
|
}
|
|
295
422
|
log.success('Alpha-loop initialization complete!');
|
|
296
423
|
}
|
|
424
|
+
/**
|
|
425
|
+
* Install playwright-cli skills into .alpha-loop/templates/skills/ (source of truth).
|
|
426
|
+
* playwright-cli install --skills writes to .claude/ by default, so we move the
|
|
427
|
+
* installed skills into templates and let the normal sync handle distribution.
|
|
428
|
+
*/
|
|
429
|
+
export function installPlaywrightSkills(projectDir, templatesDir) {
|
|
430
|
+
const projectTemplatesDir = templatesDir ?? join(projectDir, '.alpha-loop', 'templates');
|
|
431
|
+
const which = exec('which playwright-cli');
|
|
432
|
+
if (which.exitCode !== 0) {
|
|
433
|
+
log.warn('playwright-cli not installed — live verification will not be available');
|
|
434
|
+
log.info(' Install: npm install -g @anthropic-ai/claude-code');
|
|
435
|
+
log.info(' Then run: alpha-loop init (or playwright-cli install --skills)');
|
|
436
|
+
return false;
|
|
437
|
+
}
|
|
438
|
+
// Run playwright-cli install --skills (writes to .claude/skills/)
|
|
439
|
+
const result = exec('playwright-cli install --skills', { cwd: projectDir });
|
|
440
|
+
if (result.exitCode !== 0) {
|
|
441
|
+
log.warn('Could not install playwright-cli skills');
|
|
442
|
+
return false;
|
|
443
|
+
}
|
|
444
|
+
log.success('Playwright CLI skills installed');
|
|
445
|
+
// Move installed skills from .claude/skills/ to templates source of truth
|
|
446
|
+
// playwright-cli may install multiple skill directories — move any new ones
|
|
447
|
+
const claudeSkillsDir = join(projectDir, '.claude', 'skills');
|
|
448
|
+
const templateSkillsDir = join(projectTemplatesDir, 'skills');
|
|
449
|
+
if (existsSync(claudeSkillsDir)) {
|
|
450
|
+
const installed = readdirSync(claudeSkillsDir, { withFileTypes: true })
|
|
451
|
+
.filter((d) => d.isDirectory() && d.name.startsWith('playwright'));
|
|
452
|
+
for (const dir of installed) {
|
|
453
|
+
const dest = join(templateSkillsDir, dir.name);
|
|
454
|
+
const src = join(claudeSkillsDir, dir.name);
|
|
455
|
+
if (!existsSync(dest)) {
|
|
456
|
+
mkdirSync(dest, { recursive: true });
|
|
457
|
+
copyDir(src, dest);
|
|
458
|
+
log.info(`Moved ${dir.name} skill to .alpha-loop/templates/skills/`);
|
|
459
|
+
}
|
|
460
|
+
// Remove from .claude/ so sync doesn't conflict
|
|
461
|
+
exec(`rm -rf "${src}"`);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return true;
|
|
465
|
+
}
|
|
297
466
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/resume.js
CHANGED