@tokenfactory/acc-runner 0.44.0 → 0.44.2
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 +43 -1
- package/dist/bin-resolve.d.ts +39 -3
- package/dist/bin-resolve.d.ts.map +1 -1
- package/dist/bin-resolve.js +176 -12
- package/dist/bin-resolve.js.map +1 -1
- package/dist/build-fingerprint.d.ts +66 -0
- package/dist/build-fingerprint.d.ts.map +1 -0
- package/dist/build-fingerprint.js +70 -0
- package/dist/build-fingerprint.js.map +1 -0
- package/dist/build-info.generated.d.ts +3 -0
- package/dist/build-info.generated.d.ts.map +1 -0
- package/dist/build-info.generated.js +3 -0
- package/dist/build-info.generated.js.map +1 -0
- package/dist/capacity/resume-controller.d.ts +5 -3
- package/dist/capacity/resume-controller.d.ts.map +1 -1
- package/dist/capacity/resume-controller.js +9 -0
- package/dist/capacity/resume-controller.js.map +1 -1
- package/dist/chat-delegation-guard.d.ts +23 -0
- package/dist/chat-delegation-guard.d.ts.map +1 -0
- package/dist/chat-delegation-guard.js +62 -0
- package/dist/chat-delegation-guard.js.map +1 -0
- package/dist/chat-lane.d.ts +17 -6
- package/dist/chat-lane.d.ts.map +1 -1
- package/dist/chat-lane.js +29 -8
- package/dist/chat-lane.js.map +1 -1
- package/dist/companion-identity.d.ts +37 -0
- package/dist/companion-identity.d.ts.map +1 -1
- package/dist/companion-identity.js +98 -29
- package/dist/companion-identity.js.map +1 -1
- package/dist/companion-run.d.ts +1 -50
- package/dist/companion-run.d.ts.map +1 -1
- package/dist/companion-run.js +48 -105
- package/dist/companion-run.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -3
- package/dist/config.js.map +1 -1
- package/dist/conformance.d.ts +49 -0
- package/dist/conformance.d.ts.map +1 -0
- package/dist/conformance.js +121 -0
- package/dist/conformance.js.map +1 -0
- package/dist/cost-pricing.d.ts +91 -0
- package/dist/cost-pricing.d.ts.map +1 -1
- package/dist/cost-pricing.js +115 -1
- package/dist/cost-pricing.js.map +1 -1
- package/dist/credential-identity.d.ts +70 -0
- package/dist/credential-identity.d.ts.map +1 -0
- package/dist/credential-identity.js +128 -0
- package/dist/credential-identity.js.map +1 -0
- package/dist/doctor.d.ts +37 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +300 -41
- package/dist/doctor.js.map +1 -1
- package/dist/engines/chat-stream.d.ts +71 -1
- package/dist/engines/chat-stream.d.ts.map +1 -1
- package/dist/engines/chat-stream.js +126 -8
- package/dist/engines/chat-stream.js.map +1 -1
- package/dist/engines/claude-code-chat.d.ts +11 -1
- package/dist/engines/claude-code-chat.d.ts.map +1 -1
- package/dist/engines/claude-code-chat.js +69 -5
- package/dist/engines/claude-code-chat.js.map +1 -1
- package/dist/engines/claude-code.d.ts.map +1 -1
- package/dist/engines/claude-code.js +30 -6
- package/dist/engines/claude-code.js.map +1 -1
- package/dist/engines/codex.d.ts.map +1 -1
- package/dist/engines/codex.js +18 -5
- package/dist/engines/codex.js.map +1 -1
- package/dist/engines/registry.d.ts +26 -0
- package/dist/engines/registry.d.ts.map +1 -1
- package/dist/engines/registry.js +37 -0
- package/dist/engines/registry.js.map +1 -1
- package/dist/engines/types.d.ts +5 -0
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/failure-classifier.d.ts +1 -1
- package/dist/failure-classifier.d.ts.map +1 -1
- package/dist/failure-classifier.js +65 -12
- package/dist/failure-classifier.js.map +1 -1
- package/dist/gh.d.ts +15 -0
- package/dist/gh.d.ts.map +1 -1
- package/dist/gh.js +18 -0
- package/dist/gh.js.map +1 -1
- package/dist/git.d.ts +6 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +27 -1
- package/dist/git.js.map +1 -1
- package/dist/instance.d.ts +30 -0
- package/dist/instance.d.ts.map +1 -0
- package/dist/instance.js +51 -0
- package/dist/instance.js.map +1 -0
- package/dist/keychain.d.ts +20 -7
- package/dist/keychain.d.ts.map +1 -1
- package/dist/keychain.js +40 -4
- package/dist/keychain.js.map +1 -1
- package/dist/loc-advisory.d.ts +70 -0
- package/dist/loc-advisory.d.ts.map +1 -0
- package/dist/loc-advisory.js +196 -0
- package/dist/loc-advisory.js.map +1 -0
- package/dist/locks/claim-lock-policy.d.ts +67 -0
- package/dist/locks/claim-lock-policy.d.ts.map +1 -0
- package/dist/locks/claim-lock-policy.js +132 -0
- package/dist/locks/claim-lock-policy.js.map +1 -0
- package/dist/login.d.ts +63 -2
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +93 -8
- package/dist/login.js.map +1 -1
- package/dist/mcp-spawn.d.ts +54 -0
- package/dist/mcp-spawn.d.ts.map +1 -1
- package/dist/mcp-spawn.js +88 -4
- package/dist/mcp-spawn.js.map +1 -1
- package/dist/memory-context.d.ts +106 -0
- package/dist/memory-context.d.ts.map +1 -0
- package/dist/memory-context.js +220 -0
- package/dist/memory-context.js.map +1 -0
- package/dist/memory-curation.d.ts +172 -0
- package/dist/memory-curation.d.ts.map +1 -0
- package/dist/memory-curation.js +277 -0
- package/dist/memory-curation.js.map +1 -0
- package/dist/migration-seq-guard.d.ts +28 -1
- package/dist/migration-seq-guard.d.ts.map +1 -1
- package/dist/migration-seq-guard.js +111 -6
- package/dist/migration-seq-guard.js.map +1 -1
- package/dist/output-diagnostics.d.ts +15 -0
- package/dist/output-diagnostics.d.ts.map +1 -0
- package/dist/output-diagnostics.js +95 -0
- package/dist/output-diagnostics.js.map +1 -0
- package/dist/pr-open-guard.d.ts +67 -0
- package/dist/pr-open-guard.d.ts.map +1 -0
- package/dist/pr-open-guard.js +79 -0
- package/dist/pr-open-guard.js.map +1 -0
- package/dist/prepr-gate.d.ts +229 -1
- package/dist/prepr-gate.d.ts.map +1 -1
- package/dist/prepr-gate.js +406 -3
- package/dist/prepr-gate.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +43 -5
- package/dist/program.js.map +1 -1
- package/dist/provider-auth.d.ts +27 -0
- package/dist/provider-auth.d.ts.map +1 -1
- package/dist/provider-auth.js +33 -0
- package/dist/provider-auth.js.map +1 -1
- package/dist/runtime/cache-dir.d.ts.map +1 -1
- package/dist/runtime/cache-dir.js +8 -3
- package/dist/runtime/cache-dir.js.map +1 -1
- package/dist/runtime/decision-provenance.d.ts +63 -0
- package/dist/runtime/decision-provenance.d.ts.map +1 -0
- package/dist/runtime/decision-provenance.js +107 -0
- package/dist/runtime/decision-provenance.js.map +1 -0
- package/dist/runtime/prompt-substitute.d.ts +100 -0
- package/dist/runtime/prompt-substitute.d.ts.map +1 -0
- package/dist/runtime/prompt-substitute.js +124 -0
- package/dist/runtime/prompt-substitute.js.map +1 -0
- package/dist/runtime/quarantine.d.ts +11 -0
- package/dist/runtime/quarantine.d.ts.map +1 -1
- package/dist/runtime/quarantine.js +16 -1
- package/dist/runtime/quarantine.js.map +1 -1
- package/dist/runtime/review-cost-cap.d.ts +167 -0
- package/dist/runtime/review-cost-cap.d.ts.map +1 -0
- package/dist/runtime/review-cost-cap.js +182 -0
- package/dist/runtime/review-cost-cap.js.map +1 -0
- package/dist/runtime/reviewer-abstain.d.ts +101 -0
- package/dist/runtime/reviewer-abstain.d.ts.map +1 -0
- package/dist/runtime/reviewer-abstain.js +138 -0
- package/dist/runtime/reviewer-abstain.js.map +1 -0
- package/dist/runtime/reviewer.d.ts +165 -2
- package/dist/runtime/reviewer.d.ts.map +1 -1
- package/dist/runtime/reviewer.js +752 -111
- package/dist/runtime/reviewer.js.map +1 -1
- package/dist/runtime/running-build.d.ts +24 -0
- package/dist/runtime/running-build.d.ts.map +1 -0
- package/dist/runtime/running-build.js +62 -0
- package/dist/runtime/running-build.js.map +1 -0
- package/dist/runtime/singleton.d.ts.map +1 -1
- package/dist/runtime/singleton.js +9 -1
- package/dist/runtime/singleton.js.map +1 -1
- package/dist/runtime/worktree.d.ts +45 -0
- package/dist/runtime/worktree.d.ts.map +1 -1
- package/dist/runtime/worktree.js +174 -5
- package/dist/runtime/worktree.js.map +1 -1
- package/dist/serving-auth/index.d.ts +79 -0
- package/dist/serving-auth/index.d.ts.map +1 -0
- package/dist/serving-auth/index.js +169 -0
- package/dist/serving-auth/index.js.map +1 -0
- package/dist/task-runner.d.ts +134 -5
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +1255 -129
- package/dist/task-runner.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/watch-chat/wire.d.ts +80 -0
- package/dist/watch-chat/wire.d.ts.map +1 -1
- package/dist/watch-chat/wire.js +203 -43
- package/dist/watch-chat/wire.js.map +1 -1
- package/dist/watch.d.ts +70 -16
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +548 -108
- package/dist/watch.js.map +1 -1
- package/package.json +4 -3
package/dist/runtime/worktree.js
CHANGED
|
@@ -40,6 +40,7 @@ import { execa } from "execa";
|
|
|
40
40
|
import { buildEnv } from "../bin-resolve.js";
|
|
41
41
|
import { cacheDir } from "./cache-dir.js";
|
|
42
42
|
import { tolerantRemoveDir } from "../review-worktree-cleanup.js";
|
|
43
|
+
export const TASK_WORKTREE_MARKER = ".acc-runner-OWNED";
|
|
43
44
|
// Lazy so tests can override ACC_RUNNER_CACHE_DIR / HOME between cases.
|
|
44
45
|
//
|
|
45
46
|
// v1.00-B: resolves through `cacheDir()` (honours ACC_RUNNER_CACHE_DIR)
|
|
@@ -129,6 +130,61 @@ async function removeWorktree(repoPath, target, git) {
|
|
|
129
130
|
catch { /* noop */ }
|
|
130
131
|
return result;
|
|
131
132
|
}
|
|
133
|
+
async function readWorktreeGitDirs(target) {
|
|
134
|
+
const dotGit = path.join(target, ".git");
|
|
135
|
+
try {
|
|
136
|
+
const stat = await fs.stat(dotGit);
|
|
137
|
+
if (stat.isDirectory())
|
|
138
|
+
return [dotGit];
|
|
139
|
+
const text = await fs.readFile(dotGit, "utf8");
|
|
140
|
+
const m = /^gitdir:\s*(.+)\s*$/m.exec(text);
|
|
141
|
+
if (!m)
|
|
142
|
+
return [];
|
|
143
|
+
const gitDir = path.resolve(target, m[1]);
|
|
144
|
+
const dirs = [gitDir];
|
|
145
|
+
try {
|
|
146
|
+
const common = (await fs.readFile(path.join(gitDir, "commondir"), "utf8")).trim();
|
|
147
|
+
if (common)
|
|
148
|
+
dirs.push(path.resolve(gitDir, common));
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
/* no commondir */
|
|
152
|
+
}
|
|
153
|
+
return dirs;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
return [];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async function excludeTaskWorktreeMarker(target) {
|
|
160
|
+
for (const gitDir of await readWorktreeGitDirs(target)) {
|
|
161
|
+
const exclude = path.join(gitDir, "info", "exclude");
|
|
162
|
+
await fs.mkdir(path.dirname(exclude), { recursive: true });
|
|
163
|
+
let current = "";
|
|
164
|
+
try {
|
|
165
|
+
current = await fs.readFile(exclude, "utf8");
|
|
166
|
+
}
|
|
167
|
+
catch { /* absent */ }
|
|
168
|
+
if (!current.split(/\r?\n/).includes(TASK_WORKTREE_MARKER)) {
|
|
169
|
+
const prefix = current.endsWith("\n") || current.length === 0 ? "" : "\n";
|
|
170
|
+
await fs.appendFile(exclude, `${prefix}${TASK_WORKTREE_MARKER}\n`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
export async function writeTaskWorktreeMarker(target, owner, taskId) {
|
|
175
|
+
await excludeTaskWorktreeMarker(target);
|
|
176
|
+
await fs.writeFile(path.join(target, TASK_WORKTREE_MARKER), [
|
|
177
|
+
"ACC runner owned worktree - live runner state for one task.",
|
|
178
|
+
"Do not write here, stash, reset, or run git here by hand; the runner",
|
|
179
|
+
"may be modifying it right now.",
|
|
180
|
+
"",
|
|
181
|
+
`task_id=${taskId}`,
|
|
182
|
+
`runner_id=${owner.runnerId}`,
|
|
183
|
+
`pid=${owner.pid ?? process.pid}`,
|
|
184
|
+
`started_at=${owner.startedAt ?? new Date().toISOString()}`,
|
|
185
|
+
"",
|
|
186
|
+
].join("\n"), "utf8");
|
|
187
|
+
}
|
|
132
188
|
export async function inspectExistingWorktree(repoPath, taskId) {
|
|
133
189
|
const target = worktreePath(taskId);
|
|
134
190
|
if (!(await pathExists(target)))
|
|
@@ -169,6 +225,94 @@ export async function inspectExistingWorktree(repoPath, taskId) {
|
|
|
169
225
|
}
|
|
170
226
|
return { path: target, registered, branch, dirty };
|
|
171
227
|
}
|
|
228
|
+
/* WORKTREE-BRANCH-COLLISION-ACROSS-INSTANCES-1: instances share ONE parent
|
|
229
|
+
* clone, so a task branch checked out by ANOTHER instance's worktree used to
|
|
230
|
+
* make `git worktree add -B` die exit-128 forever (an abandoned worktree never
|
|
231
|
+
* freed the branch). Mechanism (a) removes that at the root: the task worktree
|
|
232
|
+
* is added with a DETACHED HEAD (`git worktree add --detach`), so it reserves
|
|
233
|
+
* NO branch name — two instances never collide, and an abandoned worktree can
|
|
234
|
+
* never poison a branch (a detached worktree holds none). The branch is
|
|
235
|
+
* materialized only at push time (git pushes HEAD -> refs/heads/<branch>).
|
|
236
|
+
* WorktreeBranchTakenError / this class remain the deterministic guard for any
|
|
237
|
+
* residual "already used by worktree" git error (e.g. a legacy -B worktree
|
|
238
|
+
* registered before this fix); it is transient-infra, so the caller requeues
|
|
239
|
+
* (never dead-letters), mirroring git_provision_contention. */
|
|
240
|
+
export const WORKTREE_BRANCH_TAKEN_CLASS = "worktree_branch_taken";
|
|
241
|
+
/** Instance name (impl2, …) embedded in a per-instance worktree path, or null. */
|
|
242
|
+
export function instanceFromWorktreePath(p) {
|
|
243
|
+
const m = /(?:^|[\\/])instance-([a-z0-9][a-z0-9-]*)(?:[\\/]|$)/i.exec(p ?? "");
|
|
244
|
+
return m ? m[1] : null;
|
|
245
|
+
}
|
|
246
|
+
/** Thrown when a task branch is already checked out by another instance's
|
|
247
|
+
* worktree. Names the holder path + instance so the abandoned worktree is
|
|
248
|
+
* discoverable for salvage; `holderInstance` derives from `holderPath`. */
|
|
249
|
+
export class WorktreeBranchTakenError extends Error {
|
|
250
|
+
branch;
|
|
251
|
+
holderPath;
|
|
252
|
+
worktreePath;
|
|
253
|
+
event = "runner.worktree_branch_taken";
|
|
254
|
+
errorClass = WORKTREE_BRANCH_TAKEN_CLASS;
|
|
255
|
+
holderInstance;
|
|
256
|
+
constructor(branch, holderPath, worktreePath) {
|
|
257
|
+
super(`branch ${branch} is already checked out by a worktree at ${holderPath}; ` +
|
|
258
|
+
"refusing bare exit-128 passthrough (transient — task requeues)");
|
|
259
|
+
this.branch = branch;
|
|
260
|
+
this.holderPath = holderPath;
|
|
261
|
+
this.worktreePath = worktreePath;
|
|
262
|
+
this.name = "WorktreeBranchTakenError";
|
|
263
|
+
this.holderInstance = instanceFromWorktreePath(holderPath);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/** Parse the holder path from git's exit-128 "already used by worktree at
|
|
267
|
+
* '<path>'" / "already checked out at '<path>'" message; null otherwise. */
|
|
268
|
+
export function parseBranchTakenHolder(message) {
|
|
269
|
+
if (!message)
|
|
270
|
+
return null;
|
|
271
|
+
const m = /already (?:used by worktree|checked out) at '([^']+)'/i.exec(message) ??
|
|
272
|
+
/already (?:used by worktree|checked out) at\s+(\S+)/i.exec(message);
|
|
273
|
+
return m ? m[1].trim().replace(/[.'"]+$/, "") : null;
|
|
274
|
+
}
|
|
275
|
+
/** Provision the task worktree with a DETACHED checkout of `baseBranch`'s tip
|
|
276
|
+
* (mechanism a). A detached worktree reserves no branch name, so this never
|
|
277
|
+
* collides across instances. The reuse/prune/fail ladder is the deterministic
|
|
278
|
+
* guard for any residual "already used by worktree" git error, in order:
|
|
279
|
+
* (1) reuse ONLY when the holder path is EXACTLY this task's target AND that
|
|
280
|
+
* directory exists on disk (a sibling task's worktree under the same workDir
|
|
281
|
+
* is a FOREIGN holder, never reused); (2) else `git worktree prune` + retry
|
|
282
|
+
* the add exactly once; (3) else throw WorktreeBranchTakenError. Non-collision
|
|
283
|
+
* errors propagate untouched (never masked as branch-taken). `ownWorkDir` is
|
|
284
|
+
* retained on the options for callers/telemetry but is NOT used for ownership. */
|
|
285
|
+
export async function addTaskBranchWorktree(opts) {
|
|
286
|
+
const add = () => opts.git(["worktree", "add", "--detach", opts.target, opts.baseBranch], opts.worktreeBase);
|
|
287
|
+
// Ownership is path identity, not path containment: a registration is ours to
|
|
288
|
+
// reuse only when the holder IS this task's target directory and it exists.
|
|
289
|
+
const holderIsOurs = async (holder) => path.resolve(holder) === path.resolve(opts.target) && (await pathExists(opts.target));
|
|
290
|
+
try {
|
|
291
|
+
await add();
|
|
292
|
+
return { reused: false };
|
|
293
|
+
}
|
|
294
|
+
catch (err) {
|
|
295
|
+
const holder = parseBranchTakenHolder(err.message);
|
|
296
|
+
if (!holder)
|
|
297
|
+
throw err; // not a registration collision — surface the real error
|
|
298
|
+
if (await holderIsOurs(holder))
|
|
299
|
+
return { reused: true }; // (1) our exact target, on disk
|
|
300
|
+
try {
|
|
301
|
+
await opts.git(["worktree", "prune"], opts.worktreeBase);
|
|
302
|
+
}
|
|
303
|
+
catch { /* best-effort */ }
|
|
304
|
+
try {
|
|
305
|
+
await add(); // (2) retry exactly once
|
|
306
|
+
return { reused: false };
|
|
307
|
+
}
|
|
308
|
+
catch (retryErr) {
|
|
309
|
+
const holder2 = parseBranchTakenHolder(retryErr.message);
|
|
310
|
+
if (!holder2)
|
|
311
|
+
throw retryErr; // a different failure on retry — surface it
|
|
312
|
+
throw new WorktreeBranchTakenError(opts.branch, holder2, opts.target); // (3)
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
172
316
|
export async function prepareTaskWorktree(opts) {
|
|
173
317
|
const git = opts.git ?? defaultGitExec;
|
|
174
318
|
await fs.mkdir(workDir(), { recursive: true });
|
|
@@ -194,7 +338,16 @@ export async function prepareTaskWorktree(opts) {
|
|
|
194
338
|
// recreate semantics for the existing test suite.
|
|
195
339
|
const inspect = opts.inspect ?? inspectExistingWorktree;
|
|
196
340
|
const existing = await inspect(worktreeBase, opts.taskId);
|
|
197
|
-
|
|
341
|
+
// A registered leftover at this task-keyed path is a genuine crash-resume
|
|
342
|
+
// candidate. Since the fresh path now checks out DETACHED, a resumable
|
|
343
|
+
// leftover reads as `branch === "HEAD"`; a legacy leftover created by the
|
|
344
|
+
// old `-B` path still reads as the task branch. Accept both; a leftover on
|
|
345
|
+
// some OTHER named branch is treated as stale and force-recreated below.
|
|
346
|
+
if (existing &&
|
|
347
|
+
existing.registered &&
|
|
348
|
+
(existing.branch === opts.branch || existing.branch === "HEAD")) {
|
|
349
|
+
if (opts.owner)
|
|
350
|
+
await writeTaskWorktreeMarker(target, opts.owner, opts.taskId);
|
|
198
351
|
let cleaned = false;
|
|
199
352
|
return {
|
|
200
353
|
path: target,
|
|
@@ -247,13 +400,29 @@ export async function prepareTaskWorktree(opts) {
|
|
|
247
400
|
// baseBranch's tip, overwriting a stale ref from a prior crashed run.
|
|
248
401
|
// v0.19 T-64-1: for a FRESH task the caller passes the freshly-fetched
|
|
249
402
|
// origin tip (`origin/<integration>`) as baseBranch — NOT a stale local
|
|
250
|
-
// ref
|
|
251
|
-
//
|
|
252
|
-
// is
|
|
253
|
-
|
|
403
|
+
// ref. The resume path above returns before reaching here, so a resumed
|
|
404
|
+
// partial branch is never reset to this base. WORKTREE-BRANCH-COLLISION-1:
|
|
405
|
+
// the add is DETACHED (addTaskBranchWorktree), so it reserves no branch and
|
|
406
|
+
// cannot collide across instances; any residual registration collision fails
|
|
407
|
+
// as WorktreeBranchTakenError (requeued), never a bare exit-128 passthrough.
|
|
408
|
+
await addTaskBranchWorktree({
|
|
409
|
+
git,
|
|
410
|
+
worktreeBase,
|
|
411
|
+
ownWorkDir: workDir(),
|
|
412
|
+
branch: opts.branch,
|
|
413
|
+
target,
|
|
414
|
+
baseBranch: opts.baseBranch,
|
|
415
|
+
});
|
|
416
|
+
if (opts.owner)
|
|
417
|
+
await writeTaskWorktreeMarker(target, opts.owner, opts.taskId);
|
|
254
418
|
let cleaned = false;
|
|
255
419
|
return {
|
|
256
420
|
path: target,
|
|
421
|
+
// NEVER resumed on the fresh path: `added.reused` means a leftover
|
|
422
|
+
// registration at our OWN target was reused (not a crash-resume — the
|
|
423
|
+
// v0.12 resume flag is owned solely by the inspect path above, which
|
|
424
|
+
// returns before reaching here). Overloading it fired worktree.resumed
|
|
425
|
+
// where no partial work exists (WORKTREE-BRANCH-COLLISION rework #3).
|
|
257
426
|
resumed: false,
|
|
258
427
|
async cleanup() {
|
|
259
428
|
if (cleaned)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/runtime/worktree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/runtime/worktree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { ServingAuthKind } from "../provider-auth.js";
|
|
2
|
+
/** The two kinds an operator can actually choose (migration 0323 §1's CHECK). */
|
|
3
|
+
export type ServingAuthChoice = Extract<ServingAuthKind, "subscription" | "api_key">;
|
|
4
|
+
/** What one boot-time resolution decided. */
|
|
5
|
+
export interface ServingAuthResolution {
|
|
6
|
+
kind: ServingAuthChoice;
|
|
7
|
+
/**
|
|
8
|
+
* The sealed BYOK key, present ONLY for `api_key`. Held in memory, handed
|
|
9
|
+
* straight to `cacheServingApiKey`, never written to disk or a log.
|
|
10
|
+
*/
|
|
11
|
+
credential: string | null;
|
|
12
|
+
/** Sealed acc.llm_keys id, for banners/telemetry. Never the key itself. */
|
|
13
|
+
keyId: string | null;
|
|
14
|
+
/** acc.ai_identities id the org chose. Null in subscription mode. */
|
|
15
|
+
identityId: string | null;
|
|
16
|
+
/** Why we ended up on subscription, when it wasn't an explicit choice. */
|
|
17
|
+
fallbackReason: string | null;
|
|
18
|
+
}
|
|
19
|
+
/** The answer every failure folds to. See rule 1 in the module header. */
|
|
20
|
+
export declare function subscriptionResolution(reason?: string | null): ServingAuthResolution;
|
|
21
|
+
/**
|
|
22
|
+
* Fold a raw response body into a resolution. Exported so the whole decision
|
|
23
|
+
* tree is asserted with no network — the fetch wrapper below is a thin shell
|
|
24
|
+
* over this.
|
|
25
|
+
*/
|
|
26
|
+
export declare function toServingAuthResolution(raw: unknown): ServingAuthResolution;
|
|
27
|
+
export interface FetchServingAuthOptions {
|
|
28
|
+
publicUrl: string;
|
|
29
|
+
jwt: string;
|
|
30
|
+
fetchImpl?: typeof fetch;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Ask the control plane how this org wants model serving authenticated.
|
|
34
|
+
* NEVER throws — rule 1. The reason a fold happened is carried on the
|
|
35
|
+
* resolution so the startup banner can say it out loud.
|
|
36
|
+
*/
|
|
37
|
+
export declare function fetchServingAuth(opts: FetchServingAuthOptions): Promise<ServingAuthResolution>;
|
|
38
|
+
/**
|
|
39
|
+
* Apply a resolution to a process env, returning the env the rest of startup
|
|
40
|
+
* should use. Never mutates `base`.
|
|
41
|
+
*
|
|
42
|
+
* Rule 2 lives here: when `base` already carries an explicit
|
|
43
|
+
* ACC_RUNNER_SERVING_AUTH_KIND, `base` is returned UNCHANGED and the
|
|
44
|
+
* credential is not cached — an operator's launch-env override is the more
|
|
45
|
+
* specific instruction, and silently overwriting it would make a documented
|
|
46
|
+
* escape hatch stop working.
|
|
47
|
+
*
|
|
48
|
+
* Side effect (deliberate, and the reason this returns an env rather than just
|
|
49
|
+
* a string): for api_key it seeds ../provider-auth.ts's module cache so
|
|
50
|
+
* `anthropicApiKey()` resolves the sealed key for every later spawn without
|
|
51
|
+
* anyone writing process.env.ANTHROPIC_API_KEY.
|
|
52
|
+
*/
|
|
53
|
+
export declare function applyServingAuth(resolution: ServingAuthResolution, base?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
54
|
+
/**
|
|
55
|
+
* The in-place sibling of {@link applyServingAuth}, for the one caller that
|
|
56
|
+
* genuinely needs the process global: startup writes the kind into
|
|
57
|
+
* `process.env` because every later consumer (`servingAuthKind`,
|
|
58
|
+
* `forwardsAmbientKey`, `withAnthropicAuth`, `doctor`) defaults its `env`
|
|
59
|
+
* argument to `process.env`, and threading a copy through all of them would be
|
|
60
|
+
* a much larger change than this feature earns.
|
|
61
|
+
*
|
|
62
|
+
* Writes exactly ONE variable — the kind — and never touches
|
|
63
|
+
* ANTHROPIC_API_KEY (the credential goes to the module cache instead, via
|
|
64
|
+
* `applyServingAuth`). Returns true when it applied, false when an explicit
|
|
65
|
+
* env value won (rule 2).
|
|
66
|
+
*/
|
|
67
|
+
export declare function installServingAuth(resolution: ServingAuthResolution, env?: NodeJS.ProcessEnv): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* True when `env` already pins the serving kind, i.e. `applyServingAuth` would
|
|
70
|
+
* defer to it. Exposed so startup can say "server said X, your env says Y,
|
|
71
|
+
* your env wins" instead of appearing to ignore the setting.
|
|
72
|
+
*/
|
|
73
|
+
export declare function servingAuthKindIsPinned(env?: NodeJS.ProcessEnv): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* One line for the startup banner. Renders the kind and whether a credential
|
|
76
|
+
* was delivered — never the credential (rule 3).
|
|
77
|
+
*/
|
|
78
|
+
export declare function describeServingAuthResolution(r: ServingAuthResolution): string;
|
|
79
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serving-auth/index.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,iFAAiF;AACjF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,eAAe,EAAE,cAAc,GAAG,SAAS,CAAC,CAAC;AAErF,6CAA6C;AAC7C,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,qEAAqE;IACrE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,0EAA0E;IAC1E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,MAAM,GAAG,IAAW,GAAG,qBAAqB,CAQ1F;AAYD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,qBAAqB,CAsB3E;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,qBAAqB,CAAC,CAuBhC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,qBAAqB,EACjC,IAAI,GAAE,MAAM,CAAC,UAAwB,GACpC,MAAM,CAAC,UAAU,CAOnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,qBAAqB,EACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAErF;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAO9E"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RUNNER-SERVING-AUTH — the runner's half of the operator's
|
|
3
|
+
* subscription-vs-BYOK choice.
|
|
4
|
+
*
|
|
5
|
+
* WHAT THIS ADDS, AND WHAT IT DELIBERATELY DOES NOT
|
|
6
|
+
* ----------------------------------------------------------------------------
|
|
7
|
+
* It adds ONE thing: a per-boot answer to "did an admin choose API-key serving
|
|
8
|
+
* for this org?", fetched from /api/runner/serving-auth under the runner's own
|
|
9
|
+
* JWT. That answer is then expressed through machinery that ALREADY EXISTS:
|
|
10
|
+
*
|
|
11
|
+
* - the kind is written to `ACC_RUNNER_SERVING_AUTH_KIND` (the env var
|
|
12
|
+
* ../provider-auth.ts already folds via `servingAuthKind`), so
|
|
13
|
+
* `withAnthropicAuth` forwards or strips exactly as it does today;
|
|
14
|
+
* - the sealed key is pushed into the SAME module cache the vault path uses
|
|
15
|
+
* (`cacheServingApiKey`), so `anthropicApiKey()` finds it without anybody
|
|
16
|
+
* touching `process.env.ANTHROPIC_API_KEY`.
|
|
17
|
+
*
|
|
18
|
+
* It adds NO new spawn-time branch, NO second credential store, and NO way to
|
|
19
|
+
* reach api_key serving other than the admin-gated, audited setting.
|
|
20
|
+
*
|
|
21
|
+
* THREE RULES THIS MODULE ENFORCES ON ITS CALLERS
|
|
22
|
+
* ----------------------------------------------------------------------------
|
|
23
|
+
* 1. EVERY FAILURE IS SUBSCRIPTION. A network error, a non-200, malformed
|
|
24
|
+
* JSON, an old server with no such route, or an api_key answer with no
|
|
25
|
+
* credential all resolve to `subscription`. Under REVIEW-SUBS
|
|
26
|
+
* (docs/acc/REVIEW_SUBSCRIPTION_ONLY.md) the expensive failure is billing
|
|
27
|
+
* somebody who did not opt in; a runner that falls back to subscription is
|
|
28
|
+
* a runner that behaves exactly as it does today.
|
|
29
|
+
* 2. AN EXPLICIT ENV VALUE WINS. A launch env that already sets
|
|
30
|
+
* ACC_RUNNER_SERVING_AUTH_KIND (container fleets, an operator debugging a
|
|
31
|
+
* 429) is NOT overwritten by the server's answer. The setting exists to
|
|
32
|
+
* replace the hand-edited env var as the normal path, not to take it away.
|
|
33
|
+
* 3. NOTHING HERE LOGS THE KEY. `describeServingAuthResolution` is the only
|
|
34
|
+
* thing that renders a resolution, and it renders the kind and a boolean —
|
|
35
|
+
* never the credential, never a prefix of it.
|
|
36
|
+
*/
|
|
37
|
+
import { SERVING_AUTH_KIND_ENV, cacheServingApiKey } from "../provider-auth.js";
|
|
38
|
+
/** The answer every failure folds to. See rule 1 in the module header. */
|
|
39
|
+
export function subscriptionResolution(reason = null) {
|
|
40
|
+
return {
|
|
41
|
+
kind: "subscription",
|
|
42
|
+
credential: null,
|
|
43
|
+
keyId: null,
|
|
44
|
+
identityId: null,
|
|
45
|
+
fallbackReason: reason,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Fold a raw response body into a resolution. Exported so the whole decision
|
|
50
|
+
* tree is asserted with no network — the fetch wrapper below is a thin shell
|
|
51
|
+
* over this.
|
|
52
|
+
*/
|
|
53
|
+
export function toServingAuthResolution(raw) {
|
|
54
|
+
if (!raw || typeof raw !== "object")
|
|
55
|
+
return subscriptionResolution("malformed response");
|
|
56
|
+
const body = raw;
|
|
57
|
+
if (body.ok === false)
|
|
58
|
+
return subscriptionResolution(body.error ?? "server refused");
|
|
59
|
+
const kind = (body.auth_kind ?? "").trim().toLowerCase();
|
|
60
|
+
if (kind !== "api_key" && kind !== "api-key") {
|
|
61
|
+
return subscriptionResolution(null);
|
|
62
|
+
}
|
|
63
|
+
const credential = (body.credential ?? "").trim();
|
|
64
|
+
if (!credential) {
|
|
65
|
+
// api_key without a key would strip nothing and forward nothing — the
|
|
66
|
+
// spawn would 401 on every task. Subscription is the working answer.
|
|
67
|
+
return subscriptionResolution("api_key selected but no credential was delivered");
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
kind: "api_key",
|
|
71
|
+
credential,
|
|
72
|
+
keyId: body.key_id ?? null,
|
|
73
|
+
identityId: body.identity_id ?? null,
|
|
74
|
+
fallbackReason: null,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Ask the control plane how this org wants model serving authenticated.
|
|
79
|
+
* NEVER throws — rule 1. The reason a fold happened is carried on the
|
|
80
|
+
* resolution so the startup banner can say it out loud.
|
|
81
|
+
*/
|
|
82
|
+
export async function fetchServingAuth(opts) {
|
|
83
|
+
const f = opts.fetchImpl ?? fetch;
|
|
84
|
+
const endpoint = `${opts.publicUrl.replace(/\/$/, "")}/api/runner/serving-auth`;
|
|
85
|
+
try {
|
|
86
|
+
const res = await f(endpoint, {
|
|
87
|
+
method: "POST",
|
|
88
|
+
headers: {
|
|
89
|
+
Authorization: `Bearer ${opts.jwt}`,
|
|
90
|
+
"Content-Type": "application/json",
|
|
91
|
+
},
|
|
92
|
+
body: JSON.stringify({}),
|
|
93
|
+
});
|
|
94
|
+
if (!res.ok) {
|
|
95
|
+
// 404 on an older control plane is the common case and is not an error:
|
|
96
|
+
// that deployment has no serving-auth setting, so subscription is right.
|
|
97
|
+
return subscriptionResolution(`serving-auth endpoint returned ${res.status}`);
|
|
98
|
+
}
|
|
99
|
+
return toServingAuthResolution(await res.json());
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
return subscriptionResolution(`serving-auth unreachable (${err instanceof Error ? err.message : "unknown"})`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Apply a resolution to a process env, returning the env the rest of startup
|
|
107
|
+
* should use. Never mutates `base`.
|
|
108
|
+
*
|
|
109
|
+
* Rule 2 lives here: when `base` already carries an explicit
|
|
110
|
+
* ACC_RUNNER_SERVING_AUTH_KIND, `base` is returned UNCHANGED and the
|
|
111
|
+
* credential is not cached — an operator's launch-env override is the more
|
|
112
|
+
* specific instruction, and silently overwriting it would make a documented
|
|
113
|
+
* escape hatch stop working.
|
|
114
|
+
*
|
|
115
|
+
* Side effect (deliberate, and the reason this returns an env rather than just
|
|
116
|
+
* a string): for api_key it seeds ../provider-auth.ts's module cache so
|
|
117
|
+
* `anthropicApiKey()` resolves the sealed key for every later spawn without
|
|
118
|
+
* anyone writing process.env.ANTHROPIC_API_KEY.
|
|
119
|
+
*/
|
|
120
|
+
export function applyServingAuth(resolution, base = process.env) {
|
|
121
|
+
if ((base[SERVING_AUTH_KIND_ENV] ?? "").trim())
|
|
122
|
+
return base;
|
|
123
|
+
const next = { ...base, [SERVING_AUTH_KIND_ENV]: resolution.kind };
|
|
124
|
+
if (resolution.kind === "api_key" && resolution.credential) {
|
|
125
|
+
cacheServingApiKey(resolution.credential);
|
|
126
|
+
}
|
|
127
|
+
return next;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* The in-place sibling of {@link applyServingAuth}, for the one caller that
|
|
131
|
+
* genuinely needs the process global: startup writes the kind into
|
|
132
|
+
* `process.env` because every later consumer (`servingAuthKind`,
|
|
133
|
+
* `forwardsAmbientKey`, `withAnthropicAuth`, `doctor`) defaults its `env`
|
|
134
|
+
* argument to `process.env`, and threading a copy through all of them would be
|
|
135
|
+
* a much larger change than this feature earns.
|
|
136
|
+
*
|
|
137
|
+
* Writes exactly ONE variable — the kind — and never touches
|
|
138
|
+
* ANTHROPIC_API_KEY (the credential goes to the module cache instead, via
|
|
139
|
+
* `applyServingAuth`). Returns true when it applied, false when an explicit
|
|
140
|
+
* env value won (rule 2).
|
|
141
|
+
*/
|
|
142
|
+
export function installServingAuth(resolution, env = process.env) {
|
|
143
|
+
if (servingAuthKindIsPinned(env))
|
|
144
|
+
return false;
|
|
145
|
+
const next = applyServingAuth(resolution, env);
|
|
146
|
+
env[SERVING_AUTH_KIND_ENV] = next[SERVING_AUTH_KIND_ENV];
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* True when `env` already pins the serving kind, i.e. `applyServingAuth` would
|
|
151
|
+
* defer to it. Exposed so startup can say "server said X, your env says Y,
|
|
152
|
+
* your env wins" instead of appearing to ignore the setting.
|
|
153
|
+
*/
|
|
154
|
+
export function servingAuthKindIsPinned(env = process.env) {
|
|
155
|
+
return Boolean((env[SERVING_AUTH_KIND_ENV] ?? "").trim());
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* One line for the startup banner. Renders the kind and whether a credential
|
|
159
|
+
* was delivered — never the credential (rule 3).
|
|
160
|
+
*/
|
|
161
|
+
export function describeServingAuthResolution(r) {
|
|
162
|
+
if (r.kind === "api_key") {
|
|
163
|
+
return `api_key (org setting) — sealed key delivered for identity ${r.identityId ?? "?"}`;
|
|
164
|
+
}
|
|
165
|
+
return r.fallbackReason
|
|
166
|
+
? `subscription (fell back: ${r.fallbackReason})`
|
|
167
|
+
: "subscription (org setting)";
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/serving-auth/index.ts"],"names":[],"mappings":"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"}
|