@tokenfactory/acc-runner 0.8.0 → 0.11.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 +175 -69
- package/dist/cli.js +42 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +22 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +89 -3
- package/dist/config.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +35 -1
- package/dist/doctor.js.map +1 -1
- package/dist/failure-classifier.d.ts +33 -0
- package/dist/failure-classifier.d.ts.map +1 -0
- package/dist/failure-classifier.js +128 -0
- package/dist/failure-classifier.js.map +1 -0
- package/dist/runtime/conflict-resolver.d.ts +65 -0
- package/dist/runtime/conflict-resolver.d.ts.map +1 -0
- package/dist/runtime/conflict-resolver.js +477 -0
- package/dist/runtime/conflict-resolver.js.map +1 -0
- package/dist/runtime/quarantine.d.ts +16 -0
- package/dist/runtime/quarantine.d.ts.map +1 -0
- package/dist/runtime/quarantine.js +50 -0
- package/dist/runtime/quarantine.js.map +1 -0
- package/dist/runtime/reviewer.d.ts +4 -0
- package/dist/runtime/reviewer.d.ts.map +1 -1
- package/dist/runtime/reviewer.js +102 -30
- package/dist/runtime/reviewer.js.map +1 -1
- package/dist/runtime/worktree.d.ts +11 -0
- package/dist/runtime/worktree.d.ts.map +1 -1
- package/dist/runtime/worktree.js +11 -5
- package/dist/runtime/worktree.js.map +1 -1
- package/dist/task-runner.d.ts +15 -0
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +198 -9
- package/dist/task-runner.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/watch.d.ts +13 -0
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +198 -38
- package/dist/watch.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,67 +1,168 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @tokenfactory/acc-runner
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
your local `claude` CLI with the rendered prompt, streams logs back, and
|
|
6
|
-
opens a PR via `gh` when done.
|
|
7
|
-
|
|
8
|
-
> Status: internal beta. Ships with ACC v0.2.0-internal.
|
|
3
|
+
CLI runner that polls Agent Control Center for queued tasks and executes
|
|
4
|
+
them via Claude Code.
|
|
9
5
|
|
|
10
6
|
## Install
|
|
11
7
|
|
|
12
8
|
```sh
|
|
13
|
-
pnpm add -g @tokenfactory/acc-runner
|
|
14
|
-
# or
|
|
15
9
|
npm i -g @tokenfactory/acc-runner
|
|
10
|
+
# or
|
|
11
|
+
pnpm add -g @tokenfactory/acc-runner
|
|
16
12
|
```
|
|
17
13
|
|
|
18
|
-
Requires
|
|
14
|
+
Requires Node.js ≥ 20.6, plus these binaries on `PATH`:
|
|
19
15
|
|
|
20
|
-
-
|
|
21
|
-
- `
|
|
22
|
-
- `
|
|
23
|
-
- `
|
|
24
|
-
- A local clone of the target repo (default `~/work/TechArch`)
|
|
16
|
+
- `claude` — Claude Code CLI, signed in
|
|
17
|
+
- `gh` — GitHub CLI, signed in (`gh auth login`)
|
|
18
|
+
- `git` — with `user.email` configured
|
|
19
|
+
- A local clone of the target repo (the `repoPath`, see below)
|
|
25
20
|
|
|
26
|
-
Run `acc-runner doctor` after install to verify
|
|
21
|
+
Run `acc-runner doctor` after install to verify everything resolves.
|
|
27
22
|
|
|
28
23
|
## Configuration
|
|
29
24
|
|
|
30
|
-
The
|
|
31
|
-
|
|
25
|
+
The runner resolves its settings from three layers, highest precedence
|
|
26
|
+
first:
|
|
27
|
+
|
|
28
|
+
1. **Environment variables** (`ACC_*`)
|
|
29
|
+
2. **`~/.config/acc-runner/config.json`** (or `$XDG_CONFIG_HOME/acc-runner/config.json`)
|
|
30
|
+
3. **Built-in defaults** — production endpoints baked into the CLI so a
|
|
31
|
+
fresh `npm i -g` works out of the box
|
|
32
|
+
|
|
33
|
+
Production defaults are baked in; you only need to set anything if you
|
|
34
|
+
want to point the runner at a preview deploy, change the repo clone
|
|
35
|
+
location, or declare capabilities.
|
|
36
|
+
|
|
37
|
+
### Environment variables
|
|
38
|
+
|
|
39
|
+
| Variable | Default | Notes |
|
|
40
|
+
| ------------------------- | ---------------------------------------- | --------------------------------------------------------------------- |
|
|
41
|
+
| `ACC_PUBLIC_URL` | production Vercel URL | Used for cost-pricing fetches and OAuth callback links. |
|
|
42
|
+
| `ACC_SUPABASE_URL` | production project URL | Supabase project the runner talks to. |
|
|
43
|
+
| `ACC_SUPABASE_ANON_KEY` | production anon key | Public; RLS does the gating. |
|
|
44
|
+
| `ACC_REPO_PATH` | `~/work/TechArch` | Local clone of the target repo. See "Repo path resolution" below. |
|
|
45
|
+
| `ACC_TARGET_REPO` | `tokenfactory-pvt-ltd/TechArch` | Slug fallback. A task's own `repo` wins when present. |
|
|
46
|
+
| `ACC_INTEGRATION_BRANCH` | `acc/integration` | Base branch for new PRs. A task's `integration_branch` wins. |
|
|
47
|
+
| `ACC_RUNNER_CAPABILITIES` | _(unset)_ | Comma-separated tags, e.g. `code,docs`. See "Capabilities" below. |
|
|
48
|
+
| `ACC_RUNNER_PROFILE` | _(unset)_ | Profile slug (`developer`, `designer`, `tester`, `manager`). |
|
|
49
|
+
|
|
50
|
+
### `~/.config/acc-runner/config.json`
|
|
51
|
+
|
|
52
|
+
For settings you don't want to repeat in your shell profile (especially
|
|
53
|
+
when `acc-runner watch` runs under `launchd` and inherits a stripped
|
|
54
|
+
environment), drop a JSON file at
|
|
55
|
+
`~/.config/acc-runner/config.json`. All fields are optional.
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"repo-path": "/Users/you/code/TechArch",
|
|
60
|
+
"capabilities": ["code", "migration"],
|
|
61
|
+
"runner-profile": "developer"
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
| Field | Notes |
|
|
66
|
+
| ---------------- | -------------------------------------------------------------------------------------- |
|
|
67
|
+
| `repo-path` | Local clone path. Overrides the `~/work/TechArch` default; `ACC_REPO_PATH` overrides this. |
|
|
68
|
+
| `capabilities` | Array of capability tags. Overridden by `ACC_RUNNER_CAPABILITIES` when set. |
|
|
69
|
+
| `runner-profile` | Profile slug; overridden by `ACC_RUNNER_PROFILE` when set. |
|
|
32
70
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
71
|
+
The file is read at process startup. Missing file or malformed JSON
|
|
72
|
+
falls back to the next layer silently — the runner never crashes on a
|
|
73
|
+
config-file read error.
|
|
74
|
+
|
|
75
|
+
### Repo path resolution
|
|
76
|
+
|
|
77
|
+
`acc-runner` picks the local repo clone in this order — the first
|
|
78
|
+
non-empty value wins:
|
|
79
|
+
|
|
80
|
+
1. The task row's `repo_path_hint` (set by the operator when assigning
|
|
81
|
+
the task) — lets a single runner span repos.
|
|
82
|
+
2. `ACC_REPO_PATH` environment variable.
|
|
83
|
+
3. `repo-path` field in `~/.config/acc-runner/config.json`.
|
|
84
|
+
4. `~/work/TechArch` — the built-in default.
|
|
85
|
+
|
|
86
|
+
Until v0.8.1, only steps 1, 2, and 4 were consulted: a `repo-path` in
|
|
87
|
+
config.json was silently ignored, and a runner launched by `launchd`
|
|
88
|
+
(which strips most environment variables) would default to
|
|
89
|
+
`~/work/TechArch` and fail every task pickup with `spawn git ENOENT`.
|
|
90
|
+
Set either `ACC_REPO_PATH` or `repo-path` in config.json and verify
|
|
91
|
+
with `acc-runner doctor`.
|
|
92
|
+
|
|
93
|
+
### Capabilities
|
|
94
|
+
|
|
95
|
+
Tags declare what kinds of tasks this runner is willing to pick up. The
|
|
96
|
+
server's task-router only dispatches a task to a runner whose
|
|
97
|
+
capability set covers the task's `required_capabilities`. The canonical
|
|
98
|
+
vocabulary is:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
code, design, test, docs, migration, review, orchestration
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
An empty list (the default) matches any task with an empty
|
|
105
|
+
`required_capabilities` — that's backward-compatible with pre-v0.6.4
|
|
106
|
+
behavior. Resolution order, highest first:
|
|
107
|
+
|
|
108
|
+
1. `ACC_RUNNER_CAPABILITIES` (comma-separated)
|
|
109
|
+
2. `capabilities` field in config.json
|
|
110
|
+
3. The active runner profile's `capabilities`
|
|
111
|
+
4. `[]`
|
|
112
|
+
|
|
113
|
+
### Runner profiles
|
|
114
|
+
|
|
115
|
+
A runner profile bundles capabilities and model defaults under a single
|
|
116
|
+
name. Profiles ship inside the package at
|
|
117
|
+
`packages/acc-runner/runner-profiles/<name>.json`. Available profiles:
|
|
118
|
+
|
|
119
|
+
- `developer` — code + migration work (default fleet member)
|
|
120
|
+
- `designer` — design work
|
|
121
|
+
- `tester` — test authoring + review
|
|
122
|
+
- `manager` — orchestration
|
|
123
|
+
|
|
124
|
+
Select a profile via `ACC_RUNNER_PROFILE=designer` or
|
|
125
|
+
`"runner-profile": "designer"` in config.json. Unknown profile names
|
|
126
|
+
abort CLI startup with a clear error rather than failing at task
|
|
127
|
+
pickup. Env vars and config.json `capabilities` still override the
|
|
128
|
+
profile's defaults when both are set.
|
|
129
|
+
|
|
130
|
+
### `PATH` under launchd
|
|
131
|
+
|
|
132
|
+
`launchd` resets `PATH` to `/usr/bin:/bin:/usr/sbin:/sbin`, which omits
|
|
133
|
+
the Homebrew bin dirs where `git` and `gh` typically live. The runner
|
|
134
|
+
prepends `/opt/homebrew/{bin,sbin}` and `/usr/local/{bin,sbin}` to its
|
|
135
|
+
own `PATH` before spawning these binaries — no `launchd` plist edits
|
|
136
|
+
required. If `acc-runner doctor` reports `git` or `gh` as missing under
|
|
137
|
+
launchd, install them via Homebrew and re-run.
|
|
41
138
|
|
|
42
139
|
## Quickstart
|
|
43
140
|
|
|
44
141
|
```sh
|
|
45
142
|
acc-runner login # device-code OAuth in your browser
|
|
46
|
-
acc-runner doctor # verify
|
|
143
|
+
acc-runner doctor # verify config + binaries are all green
|
|
47
144
|
acc-runner watch # long-running; receives + executes tasks
|
|
48
145
|
```
|
|
49
146
|
|
|
50
|
-
Then, in ACC, assign a task to this machine and click **Start**. The
|
|
51
|
-
will:
|
|
147
|
+
Then, in ACC, assign a task to this machine and click **Start**. The
|
|
148
|
+
runner will:
|
|
52
149
|
|
|
53
|
-
1. Transition the task to `running
|
|
54
|
-
2. `git fetch && git checkout -B acc/T-XX-<slug>`
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
150
|
+
1. Transition the task to `running`.
|
|
151
|
+
2. `git fetch && git checkout -B acc/T-XX-<slug>` in the resolved
|
|
152
|
+
`repoPath`.
|
|
153
|
+
3. Pipe the rendered prompt into `claude --print
|
|
154
|
+
--dangerously-skip-permissions`.
|
|
155
|
+
4. Stream stdout/stderr to `acc.task_events` (visible in the History
|
|
156
|
+
tab in ACC).
|
|
157
|
+
5. `git push` and open a PR titled `[T-XX] <task title>` via `gh`.
|
|
58
158
|
|
|
59
159
|
## Commands
|
|
60
160
|
|
|
61
161
|
### `acc-runner login`
|
|
62
162
|
|
|
63
|
-
Device-code OAuth flow. Stores a JWT in your OS keychain
|
|
64
|
-
service) and registers this machine in `acc.runners
|
|
163
|
+
Device-code OAuth flow. Stores a Supabase JWT in your OS keychain
|
|
164
|
+
(`acc-runner` service) and registers this machine in `acc.runners` with
|
|
165
|
+
its capability tags.
|
|
65
166
|
|
|
66
167
|
### `acc-runner logout`
|
|
67
168
|
|
|
@@ -69,23 +170,30 @@ Clears the keychain entry and marks this runner offline.
|
|
|
69
170
|
|
|
70
171
|
### `acc-runner watch`
|
|
71
172
|
|
|
72
|
-
Subscribes to a Realtime broadcast channel scoped to your runner. Sends
|
|
73
|
-
heartbeat every 4s. Cancellation is honored via `task_cancelled`
|
|
74
|
-
broadcasts (sends SIGTERM to the in-flight `claude` child).
|
|
173
|
+
Subscribes to a Realtime broadcast channel scoped to your runner. Sends
|
|
174
|
+
a heartbeat every 4s. Cancellation is honored via `task_cancelled`
|
|
175
|
+
broadcasts (sends `SIGTERM` to the in-flight `claude` child).
|
|
75
176
|
|
|
76
177
|
### `acc-runner doctor`
|
|
77
178
|
|
|
78
|
-
Runs every environment check
|
|
79
|
-
|
|
179
|
+
Runs every environment check (binaries, keychain access, Supabase
|
|
180
|
+
reachability, repo path, orphan worktrees) and prints a green/red list.
|
|
181
|
+
Exits 0 if all pass, 1 otherwise. Suitable for CI and for diagnosing a
|
|
182
|
+
silent failure mode after install.
|
|
80
183
|
|
|
81
184
|
### `acc-runner version`
|
|
82
185
|
|
|
83
186
|
Prints the CLI version and the protocol version it speaks. The server
|
|
84
|
-
exposes a minimum-protocol-version pin at `/api/runner/min-version`;
|
|
85
|
-
CLI refuses to start if behind.
|
|
187
|
+
exposes a minimum-protocol-version pin at `/api/runner/min-version`;
|
|
188
|
+
the CLI refuses to start if it's behind.
|
|
86
189
|
|
|
87
190
|
## Troubleshooting
|
|
88
191
|
|
|
192
|
+
**`spawn git ENOENT` on every task pickup** — `repoPath` resolves to a
|
|
193
|
+
directory that doesn't exist. Set `ACC_REPO_PATH` or `repo-path` in
|
|
194
|
+
config.json to the absolute path of your local clone, then re-run
|
|
195
|
+
`acc-runner doctor`.
|
|
196
|
+
|
|
89
197
|
**`✗ Not signed in. Run \`acc-runner login\` first.`** — keychain entry
|
|
90
198
|
was cleared or never created. Run `acc-runner login`.
|
|
91
199
|
|
|
@@ -93,45 +201,43 @@ was cleared or never created. Run `acc-runner login`.
|
|
|
93
201
|
macOS, ensure your login keychain is unlocked. On Windows, run from a
|
|
94
202
|
session with credential manager access.
|
|
95
203
|
|
|
96
|
-
**`✗ register_runner failed`** — the migration
|
|
97
|
-
`acc.register_runner`
|
|
98
|
-
Coordinate with the operator who
|
|
204
|
+
**`✗ register_runner failed`** — the migration shipping
|
|
205
|
+
`acc.register_runner` may not be applied to the deploy you're pointed
|
|
206
|
+
at. Coordinate with the operator who applies migrations.
|
|
207
|
+
|
|
208
|
+
**Task transitions to `failed` immediately** — open the History tab in
|
|
209
|
+
ACC. Common causes: `git fetch` permission denied, `claude --print`
|
|
210
|
+
returned non-zero, or the rendered prompt lacked acceptance criteria.
|
|
99
211
|
|
|
100
|
-
**
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
acceptance criteria.
|
|
212
|
+
**Runner version rejected (`426 Upgrade Required`)** — the server's
|
|
213
|
+
`MIN_VERSION` was bumped past your installed CLI. Run
|
|
214
|
+
`npm i -g @tokenfactory/acc-runner@latest`.
|
|
104
215
|
|
|
105
216
|
## Security notes
|
|
106
217
|
|
|
107
|
-
- The CLI never reads or writes your git
|
|
108
|
-
|
|
109
|
-
- The Supabase JWT is short-lived
|
|
110
|
-
|
|
111
|
-
- Heartbeat interval is 4s — do not tighten this.
|
|
112
|
-
|
|
218
|
+
- The CLI never reads or writes your git, gh, or Anthropic credentials.
|
|
219
|
+
It calls binaries that are already authenticated on your machine.
|
|
220
|
+
- The Supabase JWT is short-lived and stored in your OS keychain via
|
|
221
|
+
`keytar`, never on disk in plaintext.
|
|
222
|
+
- Heartbeat interval is 4s — do not tighten this. Tighter intervals
|
|
223
|
+
consume the Realtime budget.
|
|
113
224
|
|
|
114
225
|
## Runner sandbox
|
|
115
226
|
|
|
116
|
-
acc-runner spawns `claude --print --dangerously-skip-permissions` so
|
|
227
|
+
`acc-runner` spawns `claude --print --dangerously-skip-permissions` so
|
|
117
228
|
non-interactive task execution doesn't hang on per-edit approval
|
|
118
|
-
prompts. The permission boundary is enforced by
|
|
119
|
-
|
|
229
|
+
prompts. The permission boundary is enforced by the surrounding
|
|
230
|
+
context, not by claude itself:
|
|
120
231
|
|
|
121
|
-
- **cwd boundary**: the spawn is bounded to
|
|
122
|
-
|
|
123
|
-
repo.
|
|
232
|
+
- **cwd boundary**: the spawn is bounded to the resolved `repoPath`.
|
|
233
|
+
Claude cannot read or edit files outside this repo.
|
|
124
234
|
- **allowed/forbidden globs**: the task's `acc.tasks.allowed` and
|
|
125
|
-
`acc.tasks.forbidden` arrays are rendered into the prompt;
|
|
126
|
-
|
|
127
|
-
- **operator-controlled install**:
|
|
235
|
+
`acc.tasks.forbidden` arrays are rendered into the prompt; claude is
|
|
236
|
+
instructed which paths it may or may not touch.
|
|
237
|
+
- **operator-controlled install**: an operator deliberately runs
|
|
128
238
|
`acc-runner watch` on their own laptop. The runner is not a daemon
|
|
129
239
|
and exits when the operator stops it.
|
|
130
240
|
|
|
131
|
-
For tasks that need stricter control over which tools claude may use,
|
|
132
|
-
the runner additionally supports the `--allowed-tools` flag via the
|
|
133
|
-
future `task.tool_allow_list` field (v0.3 follow-up).
|
|
134
|
-
|
|
135
241
|
## License
|
|
136
242
|
|
|
137
243
|
Proprietary. Not for redistribution.
|
package/dist/cli.js
CHANGED
|
@@ -11,6 +11,7 @@ import { loginCommand } from "./login.js";
|
|
|
11
11
|
import { logoutCommand } from "./logout.js";
|
|
12
12
|
import { watchCommand } from "./watch.js";
|
|
13
13
|
import { doctorCommand } from "./doctor.js";
|
|
14
|
+
import { clearQuarantine, getQuarantine } from "./runtime/quarantine.js";
|
|
14
15
|
import { PROTOCOL_VERSION } from "./types.js";
|
|
15
16
|
import { PACKAGE_VERSION } from "./pkg-version.js";
|
|
16
17
|
const program = new Command();
|
|
@@ -67,6 +68,47 @@ program
|
|
|
67
68
|
const code = await doctorCommand();
|
|
68
69
|
process.exitCode = code;
|
|
69
70
|
});
|
|
71
|
+
// v0.48: quarantine management. The runner enters quarantine automatically
|
|
72
|
+
// when the failure classifier detects a machine-level failure. An operator
|
|
73
|
+
// resolves the underlying issue then clears the quarantine to resume work.
|
|
74
|
+
const quarantineCmd = program
|
|
75
|
+
.command("quarantine")
|
|
76
|
+
.description("Inspect or clear the runner quarantine state.");
|
|
77
|
+
quarantineCmd
|
|
78
|
+
.command("status")
|
|
79
|
+
.description("Show quarantine state.")
|
|
80
|
+
.action(async () => {
|
|
81
|
+
try {
|
|
82
|
+
const q = await getQuarantine();
|
|
83
|
+
if (!q) {
|
|
84
|
+
console.log("Runner is not quarantined.");
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
console.log(chalk.red.bold(`QUARANTINED (${q.cause})`));
|
|
88
|
+
console.log(` Detail: ${q.detail}`);
|
|
89
|
+
console.log(` Task: ${q.taskId}`);
|
|
90
|
+
console.log(` Since: ${q.classifiedAt}`);
|
|
91
|
+
console.log(chalk.gray(`\nResolve the underlying ${q.cause} issue, then run \`acc-runner quarantine clear\`.`));
|
|
92
|
+
process.exitCode = 1;
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
console.error(chalk.red(`✗ ${err.message}`));
|
|
96
|
+
process.exitCode = 1;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
quarantineCmd
|
|
100
|
+
.command("clear")
|
|
101
|
+
.description("Clear quarantine and allow the runner to resume claiming tasks.")
|
|
102
|
+
.action(async () => {
|
|
103
|
+
try {
|
|
104
|
+
await clearQuarantine();
|
|
105
|
+
console.log(chalk.green("✓ Quarantine cleared. Runner will resume on next task assignment."));
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
console.error(chalk.red(`✗ ${err.message}`));
|
|
109
|
+
process.exitCode = 1;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
70
112
|
program
|
|
71
113
|
.command("version")
|
|
72
114
|
.description("Print CLI + protocol versions.")
|
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":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -16,8 +16,18 @@ export interface RunnerConfig {
|
|
|
16
16
|
* sites coalesce to [] via the loader.
|
|
17
17
|
*/
|
|
18
18
|
capabilities?: string[];
|
|
19
|
+
/**
|
|
20
|
+
* v0.41-B: optional path to a mirror clone used exclusively for
|
|
21
|
+
* git worktree operations. When set, worktree add/remove/prune run
|
|
22
|
+
* against this path instead of repoPath, eliminating virtiofs lock
|
|
23
|
+
* conflicts on machines where repoPath is mounted by another process.
|
|
24
|
+
* Operator initialises once via: git clone --mirror <remote> <path>
|
|
25
|
+
* Resolution: ACC_WORKTREE_REPO_PATH env > config.json
|
|
26
|
+
* "worktree-repo-path" field > undefined (falls back to repoPath).
|
|
27
|
+
*/
|
|
28
|
+
worktreeRepoPath?: string;
|
|
19
29
|
}
|
|
20
|
-
export type ConfigSource = "env" | "default";
|
|
30
|
+
export type ConfigSource = "env" | "file" | "default";
|
|
21
31
|
/**
|
|
22
32
|
* Canonical capability vocabulary, mirrored from
|
|
23
33
|
* `api/_lib/capabilities.ts` and the CHECK constraint enforced by
|
|
@@ -39,6 +49,17 @@ export type RunnerCapability = (typeof RUNNER_CAPABILITY_VOCABULARY)[number];
|
|
|
39
49
|
* CLI startup, not after a task assignment fires.
|
|
40
50
|
*/
|
|
41
51
|
export declare function assertRunnerCapabilityArray(arr: readonly string[], context: string): asserts arr is RunnerCapability[];
|
|
52
|
+
/**
|
|
53
|
+
* v0.8.2: Scan a list of absolute candidate paths and return the first
|
|
54
|
+
* that exists on disk. Returns null when none exist so loadConfig() can
|
|
55
|
+
* fall through to the ~/work/TechArch last-resort default.
|
|
56
|
+
*
|
|
57
|
+
* Used when neither ACC_REPO_PATH nor config.json supply a path so a
|
|
58
|
+
* freshly-installed runner finds the repo automatically when the operator
|
|
59
|
+
* cloned it to ~/code/ instead of ~/work/. Candidates are checked in
|
|
60
|
+
* order; the first hit wins.
|
|
61
|
+
*/
|
|
62
|
+
export declare function detectRepoPath(candidates: string[]): string | null;
|
|
42
63
|
/**
|
|
43
64
|
* Read ~/.config/acc-runner/config.json (or $XDG_CONFIG_HOME/acc-runner/
|
|
44
65
|
* config.json) and pull out the capabilities field. Missing file or
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAgEA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAMtD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,4BAA4B,qFAQ/B,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAM7E;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAQnC;AAsED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CASlE;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,EAAE,CAOzD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb;;sCAEkC;IAClC,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC;;;4CAGwC;IACxC,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;;;yEAKqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA+ED;;;;;GAKG;AACH,wBAAgB,WAAW,IAAI,aAAa,GAAG,IAAI,CAkBlD;AA6BD,wBAAgB,UAAU,IAAI,YAAY,CA4CzC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,YAAY,EAAE,YAAY,CAAC,CAuBxE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,GAAG,IAAI,CAMtD"}
|
package/dist/config.js
CHANGED
|
@@ -15,7 +15,12 @@
|
|
|
15
15
|
* v0.6.0+ this is the LAST resort: task.
|
|
16
16
|
* repo_path_hint on the fetched task row
|
|
17
17
|
* takes precedence so a single runner can
|
|
18
|
-
* span repos. REG-295.
|
|
18
|
+
* span repos. REG-295. v0.38-B: falls back
|
|
19
|
+
* to the `repo-path` field in
|
|
20
|
+
* ~/.config/acc-runner/config.json before
|
|
21
|
+
* defaulting to ~/work/TechArch, so an
|
|
22
|
+
* operator can pin a clone location without
|
|
23
|
+
* a launchd env override.
|
|
19
24
|
* ACC_TARGET_REPO — slug fallback, tokenfactory-pvt-ltd/TechArch.
|
|
20
25
|
* v0.6.0+ task.repo wins when present.
|
|
21
26
|
* REG-295.
|
|
@@ -49,7 +54,7 @@ import fs from "node:fs";
|
|
|
49
54
|
import os from "node:os";
|
|
50
55
|
import path from "node:path";
|
|
51
56
|
import { fileURLToPath } from "node:url";
|
|
52
|
-
//
|
|
57
|
+
// DEFAULT_ACC_PUBLIC_URL points to the working Vercel deployment (custom domain DNS is unresolved as of v0.42).
|
|
53
58
|
const DEFAULT_ACC_PUBLIC_URL = "https://agent-control-center-sepia.vercel.app";
|
|
54
59
|
const DEFAULT_ACC_SUPABASE_URL = "https://qfevnwuybyygexkcbdfy.supabase.co";
|
|
55
60
|
const DEFAULT_ACC_SUPABASE_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFmZXZud3V5Ynl5Z2V4a2NiZGZ5Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzY0OTU1NjQsImV4cCI6MjA5MjA3MTU2NH0.zRQ4K5H4cfcribPdxyahgarhX-7TCgH38bhdZanYlGA";
|
|
@@ -116,6 +121,35 @@ function normalizeCapabilities(raw) {
|
|
|
116
121
|
}
|
|
117
122
|
return out;
|
|
118
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Read the `repo-path` field from ~/.config/acc-runner/config.json (or
|
|
126
|
+
* $XDG_CONFIG_HOME/acc-runner/config.json). Returns null when the file
|
|
127
|
+
* is missing, malformed, or the field is absent / not a non-empty
|
|
128
|
+
* string. Used as the middle layer of repoPath resolution between
|
|
129
|
+
* ACC_REPO_PATH and the ~/work/TechArch default.
|
|
130
|
+
*/
|
|
131
|
+
function loadRepoPathFromConfigFile() {
|
|
132
|
+
const parsed = readUserConfigFile();
|
|
133
|
+
const value = parsed?.["repo-path"];
|
|
134
|
+
if (typeof value === "string" && value.trim())
|
|
135
|
+
return value.trim();
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* v0.41-B: read the `worktree-repo-path` field from
|
|
140
|
+
* ~/.config/acc-runner/config.json. Returns null when the file is
|
|
141
|
+
* missing, malformed, or the field is absent / not a non-empty string.
|
|
142
|
+
* Used as the middle layer of worktreeRepoPath resolution between
|
|
143
|
+
* ACC_WORKTREE_REPO_PATH and the undefined fallback (which delegates
|
|
144
|
+
* to repoPath inside prepareTaskWorktree).
|
|
145
|
+
*/
|
|
146
|
+
function loadWorktreeRepoPathFromConfigFile() {
|
|
147
|
+
const parsed = readUserConfigFile();
|
|
148
|
+
const value = parsed?.["worktree-repo-path"];
|
|
149
|
+
if (typeof value === "string" && value.trim())
|
|
150
|
+
return value.trim();
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
119
153
|
function readUserConfigFile() {
|
|
120
154
|
const base = process.env.XDG_CONFIG_HOME?.trim() ||
|
|
121
155
|
path.resolve(os.homedir(), ".config");
|
|
@@ -128,6 +162,28 @@ function readUserConfigFile() {
|
|
|
128
162
|
return null;
|
|
129
163
|
}
|
|
130
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* v0.8.2: Scan a list of absolute candidate paths and return the first
|
|
167
|
+
* that exists on disk. Returns null when none exist so loadConfig() can
|
|
168
|
+
* fall through to the ~/work/TechArch last-resort default.
|
|
169
|
+
*
|
|
170
|
+
* Used when neither ACC_REPO_PATH nor config.json supply a path so a
|
|
171
|
+
* freshly-installed runner finds the repo automatically when the operator
|
|
172
|
+
* cloned it to ~/code/ instead of ~/work/. Candidates are checked in
|
|
173
|
+
* order; the first hit wins.
|
|
174
|
+
*/
|
|
175
|
+
export function detectRepoPath(candidates) {
|
|
176
|
+
for (const candidate of candidates) {
|
|
177
|
+
try {
|
|
178
|
+
if (fs.existsSync(candidate))
|
|
179
|
+
return candidate;
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// EPERM or similar — skip this candidate
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
131
187
|
/**
|
|
132
188
|
* Read ~/.config/acc-runner/config.json (or $XDG_CONFIG_HOME/acc-runner/
|
|
133
189
|
* config.json) and pull out the capabilities field. Missing file or
|
|
@@ -261,8 +317,26 @@ function loadCapabilities(profile) {
|
|
|
261
317
|
return [];
|
|
262
318
|
}
|
|
263
319
|
export function loadConfig() {
|
|
320
|
+
// v0.8.2: resolution order (highest → lowest precedence):
|
|
321
|
+
// 1. ACC_REPO_PATH env var
|
|
322
|
+
// 2. ~/.config/acc-runner/config.json "repo-path" field
|
|
323
|
+
// 3. First existing path in the common-clone-locations scan
|
|
324
|
+
// 4. ~/work/TechArch (original hardcoded default, kept as last resort)
|
|
264
325
|
const repoPath = process.env.ACC_REPO_PATH?.trim() ||
|
|
326
|
+
loadRepoPathFromConfigFile() ||
|
|
327
|
+
detectRepoPath([
|
|
328
|
+
path.resolve(os.homedir(), "code", "ACC-Tech"),
|
|
329
|
+
path.resolve(os.homedir(), "code", "TechArch"),
|
|
330
|
+
path.resolve(os.homedir(), "src", "TechArch"),
|
|
331
|
+
]) ||
|
|
265
332
|
path.resolve(os.homedir(), "work", "TechArch");
|
|
333
|
+
// v0.41-B: separate mirror clone for `git worktree` operations.
|
|
334
|
+
// Undefined when neither env nor config.json supplies one, in
|
|
335
|
+
// which case prepareTaskWorktree transparently falls back to
|
|
336
|
+
// repoPath — preserving v0.40-and-earlier behaviour byte-for-byte.
|
|
337
|
+
const worktreeRepoPath = process.env.ACC_WORKTREE_REPO_PATH?.trim() ||
|
|
338
|
+
loadWorktreeRepoPathFromConfigFile() ||
|
|
339
|
+
undefined;
|
|
266
340
|
// Profile loads first because capabilities() consults it as the
|
|
267
341
|
// lowest-precedence default. Loader throws on malformed profile
|
|
268
342
|
// JSON or unknown capability tags, surfacing operator typos at
|
|
@@ -276,6 +350,7 @@ export function loadConfig() {
|
|
|
276
350
|
targetRepo: envOrDefault("ACC_TARGET_REPO", DEFAULT_ACC_TARGET_REPO),
|
|
277
351
|
integrationBranch: envOrDefault("ACC_INTEGRATION_BRANCH", DEFAULT_ACC_INTEGRATION_BRANCH),
|
|
278
352
|
capabilities: loadCapabilities(profile),
|
|
353
|
+
worktreeRepoPath,
|
|
279
354
|
};
|
|
280
355
|
}
|
|
281
356
|
/**
|
|
@@ -284,14 +359,25 @@ export function loadConfig() {
|
|
|
284
359
|
*/
|
|
285
360
|
export function configSources() {
|
|
286
361
|
const src = (name) => process.env[name]?.trim() ? "env" : "default";
|
|
362
|
+
const repoPathSrc = process.env.ACC_REPO_PATH?.trim()
|
|
363
|
+
? "env"
|
|
364
|
+
: loadRepoPathFromConfigFile()
|
|
365
|
+
? "file"
|
|
366
|
+
: "default";
|
|
367
|
+
const worktreeRepoPathSrc = process.env.ACC_WORKTREE_REPO_PATH?.trim()
|
|
368
|
+
? "env"
|
|
369
|
+
: loadWorktreeRepoPathFromConfigFile()
|
|
370
|
+
? "file"
|
|
371
|
+
: "default";
|
|
287
372
|
return {
|
|
288
373
|
publicUrl: src("ACC_PUBLIC_URL"),
|
|
289
374
|
supabaseUrl: src("ACC_SUPABASE_URL"),
|
|
290
375
|
supabaseAnonKey: src("ACC_SUPABASE_ANON_KEY"),
|
|
291
|
-
repoPath:
|
|
376
|
+
repoPath: repoPathSrc,
|
|
292
377
|
targetRepo: src("ACC_TARGET_REPO"),
|
|
293
378
|
integrationBranch: src("ACC_INTEGRATION_BRANCH"),
|
|
294
379
|
capabilities: src("ACC_RUNNER_CAPABILITIES"),
|
|
380
|
+
worktreeRepoPath: worktreeRepoPathSrc,
|
|
295
381
|
};
|
|
296
382
|
}
|
|
297
383
|
/**
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAWA,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAWA,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AASjF,eAAO,MAAM,aAAa,gCAAgC,CAAC;AAC3D,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CASxD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAS5D,CAAC;AA+BF,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAwYD,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;CAC7C;AAQD,wBAAsB,aAAa,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiChF"}
|