@tokenfactory/acc-runner 0.44.10 → 0.46.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/dist/applied-seq-roster.d.ts +77 -0
- package/dist/applied-seq-roster.d.ts.map +1 -0
- package/dist/applied-seq-roster.js +45 -0
- package/dist/applied-seq-roster.js.map +1 -0
- package/dist/build-info.generated.d.ts +1 -1
- package/dist/build-info.generated.js +2 -2
- package/dist/chat-cancel/cancel-controller.d.ts +1 -1
- package/dist/chat-cancel/cancel-controller.js +1 -1
- package/dist/chat-cancel/index.d.ts +1 -1
- package/dist/chat-cancel/index.js +1 -1
- package/dist/login.d.ts +17 -0
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +132 -45
- package/dist/login.js.map +1 -1
- package/dist/machine-capabilities/redact.d.ts +1 -1
- package/dist/machine-capabilities/redact.js +2 -2
- package/dist/machine-capabilities/types.d.ts +3 -3
- package/dist/machine-capabilities/types.js +1 -1
- package/dist/machine-console/index.d.ts +4 -0
- package/dist/machine-console/index.d.ts.map +1 -1
- package/dist/machine-console/index.js +52 -0
- package/dist/machine-console/index.js.map +1 -1
- package/dist/mcp-spawn.d.ts +1 -1
- package/dist/mcp-spawn.js +1 -1
- package/dist/migration-seq-guard.d.ts +34 -5
- package/dist/migration-seq-guard.d.ts.map +1 -1
- package/dist/migration-seq-guard.js +45 -6
- package/dist/migration-seq-guard.js.map +1 -1
- package/dist/prepr-gate.d.ts +12 -1
- package/dist/prepr-gate.d.ts.map +1 -1
- package/dist/prepr-gate.js +34 -3
- package/dist/prepr-gate.js.map +1 -1
- package/dist/production-migrations/executor.d.ts +28 -0
- package/dist/production-migrations/executor.d.ts.map +1 -1
- package/dist/production-migrations/executor.js +27 -2
- package/dist/production-migrations/executor.js.map +1 -1
- package/dist/staging-migrations/executor.d.ts +16 -0
- package/dist/staging-migrations/executor.d.ts.map +1 -1
- package/dist/staging-migrations/executor.js +20 -1
- package/dist/staging-migrations/executor.js.map +1 -1
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +13 -2
- package/dist/task-runner.js.map +1 -1
- package/dist/user-auth/device-login.d.ts +13 -0
- package/dist/user-auth/device-login.d.ts.map +1 -1
- package/dist/user-auth/device-login.js +113 -40
- package/dist/user-auth/device-login.js.map +1 -1
- package/dist/watch.d.ts +10 -0
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +2 -1
- package/dist/watch.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* L1-B — the live `acc.applied_migrations` roster, read with the runner's OWN
|
|
3
|
+
* authenticated Supabase session.
|
|
4
|
+
*
|
|
5
|
+
* WHY IT EXISTS
|
|
6
|
+
* ----------------------------------------------------------------------------
|
|
7
|
+
* MIG-SEQ-GUARD's baseline is "every migration seq claimed OUTSIDE this
|
|
8
|
+
* worktree". That has two halves:
|
|
9
|
+
*
|
|
10
|
+
* • the freshly-fetched integration head — seqs whose FILE has merged;
|
|
11
|
+
* • the applied ledger — seqs that were APPLIED but whose file has not merged
|
|
12
|
+
* yet (an operator `psql` apply per MIGRATION_PROMOTION_RUNBOOK, or the
|
|
13
|
+
* halt-processor auto-apply; both record the row before the PR merges).
|
|
14
|
+
*
|
|
15
|
+
* `revalidateMigrationSeq` has always accepted the second half
|
|
16
|
+
* (`SeqGuardOptions.appliedSeqs`), and the runner — its only caller — never
|
|
17
|
+
* passed one. So the ledger half of the baseline was a silent no-op in
|
|
18
|
+
* production: a seq already burned in the ledger still read as free, and the
|
|
19
|
+
* guard would let the branch push straight into the collision that
|
|
20
|
+
* `migration-lint`'s AU-4/live-seq rules then reject on the PR.
|
|
21
|
+
*
|
|
22
|
+
* WHY POSTGREST AND NOT `psql`
|
|
23
|
+
* ----------------------------------------------------------------------------
|
|
24
|
+
* `scripts/ci/migration-lint.mjs` (`gatherAppliedSeqs`) shells out to
|
|
25
|
+
* `psql "$ACC_DB_URL"`. The runner has no `ACC_DB_URL` and must not grow one —
|
|
26
|
+
* that is a CI/server credential and CLAUDE.md §Secrets keeps it there. What the
|
|
27
|
+
* runner does hold is an authenticated Supabase client scoped to the `acc`
|
|
28
|
+
* schema (src `supabase.ts`), and migration 0325 put
|
|
29
|
+
*
|
|
30
|
+
* create policy applied_migrations_read on acc.applied_migrations
|
|
31
|
+
* for select to authenticated using (true);
|
|
32
|
+
*
|
|
33
|
+
* on the ledger for exactly this reason ("non-sensitive metadata the drift /
|
|
34
|
+
* version UI may read; keep signed-in reads working"). So the runner reads the
|
|
35
|
+
* roster as ITSELF: no new credential, no new env var, no new grant.
|
|
36
|
+
*
|
|
37
|
+
* VERIFIED, 2026-09-25 — on the production parent (ctknjrtevjrzwpuojghx, the
|
|
38
|
+
* live operational board the runner's session points at) `authenticated` holds
|
|
39
|
+
* SELECT on acc.applied_migrations and the 0325 policy is present, so the read
|
|
40
|
+
* returns the full 402-row roster. On the STAGING branch (qfevnwuybyygexkcbdfy)
|
|
41
|
+
* the policy exists but the table grant does not, so the same read is refused
|
|
42
|
+
* there and this module returns `null` — the guard then falls back to the
|
|
43
|
+
* remote head alone, exactly as it behaved before L1-B. Closing that
|
|
44
|
+
* divergence is a grant-only migration and belongs to the schema track, not
|
|
45
|
+
* here; nothing in this module depends on it.
|
|
46
|
+
*
|
|
47
|
+
* BEST-EFFORT BY CONSTRUCTION
|
|
48
|
+
* ----------------------------------------------------------------------------
|
|
49
|
+
* Every failure — RLS refusing the read, an offline machine, a pre-0325
|
|
50
|
+
* database, a malformed row — yields `null`, which is byte-for-byte the input
|
|
51
|
+
* the guard handled before this module existed (`opts.appliedSeqs ?? []`). An
|
|
52
|
+
* unreadable ledger must never be the reason a push is delayed, and never the
|
|
53
|
+
* reason a seq moves.
|
|
54
|
+
*/
|
|
55
|
+
import type { RunnerSupabaseClient } from "./supabase.js";
|
|
56
|
+
/**
|
|
57
|
+
* Row cap on the roster read. The ledger is ~400 rows today and only grows, and
|
|
58
|
+
* PostgREST silently truncates an over-large response — so the rows are ordered
|
|
59
|
+
* by seq DESCENDING before the cap. A truncated read then still carries the
|
|
60
|
+
* HIGHEST seqs, which is what the guard's staleness test turns on; a truncation
|
|
61
|
+
* that dropped the top rows would lower the baseline and disarm the guard.
|
|
62
|
+
*/
|
|
63
|
+
export declare const APPLIED_SEQ_ROSTER_LIMIT = 2000;
|
|
64
|
+
/**
|
|
65
|
+
* Numeric seqs recorded in `acc.applied_migrations`, newest-first, or `null`
|
|
66
|
+
* when the ledger could not be read (or is empty).
|
|
67
|
+
*
|
|
68
|
+
* Non-numeric seqs are dropped, mirroring `gatherAppliedSeqs`'s
|
|
69
|
+
* `where seq ~ '^[0-9]+$'` — the two rosters must agree on what counts as a
|
|
70
|
+
* migration seq, because the guard hands this one to that same linter as
|
|
71
|
+
* `--baseline-seqs`.
|
|
72
|
+
*
|
|
73
|
+
* Never throws and never logs: the connection string, the JWT and the row
|
|
74
|
+
* contents stay out of the transcript (CLAUDE.md §Secrets).
|
|
75
|
+
*/
|
|
76
|
+
export declare function readAppliedMigrationSeqs(supabase: RunnerSupabaseClient): Promise<number[] | null>;
|
|
77
|
+
//# sourceMappingURL=applied-seq-roster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applied-seq-roster.d.ts","sourceRoot":"","sources":["../src/applied-seq-roster.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAK1D;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAO9C;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAmB1B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Table name, relative to the client's `acc` schema binding. */
|
|
2
|
+
const LEDGER_TABLE = "applied_migrations";
|
|
3
|
+
/**
|
|
4
|
+
* Row cap on the roster read. The ledger is ~400 rows today and only grows, and
|
|
5
|
+
* PostgREST silently truncates an over-large response — so the rows are ordered
|
|
6
|
+
* by seq DESCENDING before the cap. A truncated read then still carries the
|
|
7
|
+
* HIGHEST seqs, which is what the guard's staleness test turns on; a truncation
|
|
8
|
+
* that dropped the top rows would lower the baseline and disarm the guard.
|
|
9
|
+
*/
|
|
10
|
+
export const APPLIED_SEQ_ROSTER_LIMIT = 2_000;
|
|
11
|
+
/**
|
|
12
|
+
* Numeric seqs recorded in `acc.applied_migrations`, newest-first, or `null`
|
|
13
|
+
* when the ledger could not be read (or is empty).
|
|
14
|
+
*
|
|
15
|
+
* Non-numeric seqs are dropped, mirroring `gatherAppliedSeqs`'s
|
|
16
|
+
* `where seq ~ '^[0-9]+$'` — the two rosters must agree on what counts as a
|
|
17
|
+
* migration seq, because the guard hands this one to that same linter as
|
|
18
|
+
* `--baseline-seqs`.
|
|
19
|
+
*
|
|
20
|
+
* Never throws and never logs: the connection string, the JWT and the row
|
|
21
|
+
* contents stay out of the transcript (CLAUDE.md §Secrets).
|
|
22
|
+
*/
|
|
23
|
+
export async function readAppliedMigrationSeqs(supabase) {
|
|
24
|
+
try {
|
|
25
|
+
const { data, error } = await supabase
|
|
26
|
+
.from(LEDGER_TABLE)
|
|
27
|
+
.select("seq")
|
|
28
|
+
.order("seq", { ascending: false })
|
|
29
|
+
.limit(APPLIED_SEQ_ROSTER_LIMIT);
|
|
30
|
+
if (error || !Array.isArray(data))
|
|
31
|
+
return null;
|
|
32
|
+
const seqs = data
|
|
33
|
+
.map((row) => Number(String(row?.seq ?? "").trim()))
|
|
34
|
+
.filter((n) => Number.isFinite(n) && n > 0)
|
|
35
|
+
.map((n) => Math.trunc(n));
|
|
36
|
+
// Empty → null, same as `gatherAppliedSeqs`: "no readable roster" and "a
|
|
37
|
+
// roster with nothing in it" are indistinguishable here and neither may
|
|
38
|
+
// change a verdict.
|
|
39
|
+
return seqs.length > 0 ? seqs : null;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=applied-seq-roster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applied-seq-roster.js","sourceRoot":"","sources":["../src/applied-seq-roster.ts"],"names":[],"mappings":"AAwDA,iEAAiE;AACjE,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAO9C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAA8B;IAE9B,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ;aACnC,IAAI,CAAC,YAAY,CAAC;aAClB,MAAM,CAAC,KAAK,CAAC;aACb,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;aAClC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/C,MAAM,IAAI,GAAI,IAAuB;aAClC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,yEAAyE;QACzE,wEAAwE;QACxE,oBAAoB;QACpB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const BUILD_COMMIT_SHA = "
|
|
1
|
+
export declare const BUILD_COMMIT_SHA = "31f604212edc74723cdd951c39b4d3d0765e1a3e";
|
|
2
2
|
export declare const BUILD_DIST_SHA256 = "pending-build";
|
|
3
3
|
//# sourceMappingURL=build-info.generated.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated by scripts/gen-build-info.mjs. Do not edit by hand.
|
|
2
|
-
export const BUILD_COMMIT_SHA = "
|
|
3
|
-
export const BUILD_DIST_SHA256 = "
|
|
2
|
+
export const BUILD_COMMIT_SHA = "31f604212edc74723cdd951c39b4d3d0765e1a3e";
|
|
3
|
+
export const BUILD_DIST_SHA256 = "3a5a93ca6a0d24819ef93df18e81040ab231ed7681fb9b2c1cd5dc70f6c8ac95";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CX-3 STOP-CANCEL: the runner-side cancel controller.
|
|
3
3
|
*
|
|
4
|
-
* The browser's Stop calls acc.cancel_chat_turn (migration
|
|
4
|
+
* The browser's Stop calls acc.cancel_chat_turn (migration 0282), which makes the
|
|
5
5
|
* turn terminal-CANCELLED server-side. This controller is the local counterpart
|
|
6
6
|
* that tears the still-running engine down promptly so the child is provably dead
|
|
7
7
|
* and the runner's slot frees:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CX-3 STOP-CANCEL: the runner-side cancel controller.
|
|
3
3
|
*
|
|
4
|
-
* The browser's Stop calls acc.cancel_chat_turn (migration
|
|
4
|
+
* The browser's Stop calls acc.cancel_chat_turn (migration 0282), which makes the
|
|
5
5
|
* turn terminal-CANCELLED server-side. This controller is the local counterpart
|
|
6
6
|
* that tears the still-running engine down promptly so the child is provably dead
|
|
7
7
|
* and the runner's slot frees:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CX-3 STOP-CANCEL: the runner-side chat-cancel barrel.
|
|
3
3
|
*
|
|
4
|
-
* When the operator hits Stop, acc.cancel_chat_turn (migration
|
|
4
|
+
* When the operator hits Stop, acc.cancel_chat_turn (migration 0282) makes the
|
|
5
5
|
* turn terminal-CANCELLED server-side and persists the partial reply. These
|
|
6
6
|
* primitives tear the still-running engine down locally so the child is provably
|
|
7
7
|
* dead and the slot frees:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CX-3 STOP-CANCEL: the runner-side chat-cancel barrel.
|
|
3
3
|
*
|
|
4
|
-
* When the operator hits Stop, acc.cancel_chat_turn (migration
|
|
4
|
+
* When the operator hits Stop, acc.cancel_chat_turn (migration 0282) makes the
|
|
5
5
|
* turn terminal-CANCELLED server-side and persists the partial reply. These
|
|
6
6
|
* primitives tear the still-running engine down locally so the child is provably
|
|
7
7
|
* dead and the slot frees:
|
package/dist/login.d.ts
CHANGED
|
@@ -91,6 +91,23 @@ export declare function liveProcessCapabilities(cfg: Pick<RunnerConfig, "capabil
|
|
|
91
91
|
* the suffix can never reach some payloads and not others. */
|
|
92
92
|
export declare function machineIdentity(): string;
|
|
93
93
|
export declare function detectInstalledModels(): Promise<string[]>;
|
|
94
|
+
/**
|
|
95
|
+
* DEC-046 (CLI half) — how many REPLACEMENT device codes a single login will
|
|
96
|
+
* mint after the code on screen expires.
|
|
97
|
+
*
|
|
98
|
+
* The flow this closes: a device code lives 10 minutes, and the person holding
|
|
99
|
+
* the terminal is usually away from it for most of them — finding the tab,
|
|
100
|
+
* signing in, reading the code back. When it expired the CLI exited with
|
|
101
|
+
* "Run `acc-runner login` again", so the one thing they still had to do was the
|
|
102
|
+
* one thing the dead terminal could no longer help them do. Re-minting keeps the
|
|
103
|
+
* login alive and puts a fresh code exactly where they are already looking.
|
|
104
|
+
*
|
|
105
|
+
* Bounded, and bounded deliberately: unbounded re-minting turns an abandoned
|
|
106
|
+
* terminal into a code-minting loop against the create lane for as long as the
|
|
107
|
+
* process lives. Three replacements is ~40 minutes of patience, after which the
|
|
108
|
+
* honest reading is that nobody is coming.
|
|
109
|
+
*/
|
|
110
|
+
export declare const MAX_DEVICE_REMINTS = 3;
|
|
94
111
|
/**
|
|
95
112
|
* RUNNER-NO-OPEN — the browser-open gate.
|
|
96
113
|
*
|
package/dist/login.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"AAaA,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAGV,UAAU,EACX,MAAM,YAAY,CAAC;AAUpB,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAIlC,eAAO,MAAM,WAAW,EAAE,UAezB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EACpC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EACvC,IAAI,GAAE,iBAA8C,EAKpD,MAAM,GAAE,iBAAgE,EACxE,mBAAmB,GAAE,SAAS,MAAM,EAAO,EAK3C,QAAQ,GAAE,kBAAoD,EAC9D,KAAK,CAAC,EAAE,eAAe,GACtB,UAAU,GAAG;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;IAC3D,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB,CAYA;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,cAAc,CAAC,EACjD,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,eAAe,GAAG,SAAS,GACjC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAcxC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,GACtC,MAAM,EAAE,CAEV;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,EACvC,mBAAmB,GAAE,SAAS,MAAM,EAAgB,GACnD,MAAM,EAAE,CAMV;AAED;;;8DAG8D;AAC9D,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAGD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuB/D;
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
|
package/dist/login.js
CHANGED
|
@@ -205,10 +205,31 @@ async function postJson(url, body) {
|
|
|
205
205
|
/** Consecutive transient exchange failures tolerated before we give up. */
|
|
206
206
|
const MAX_POLL_FAILURES = 5;
|
|
207
207
|
/**
|
|
208
|
-
*
|
|
209
|
-
*
|
|
208
|
+
* DEC-046 (CLI half) — how many REPLACEMENT device codes a single login will
|
|
209
|
+
* mint after the code on screen expires.
|
|
210
|
+
*
|
|
211
|
+
* The flow this closes: a device code lives 10 minutes, and the person holding
|
|
212
|
+
* the terminal is usually away from it for most of them — finding the tab,
|
|
213
|
+
* signing in, reading the code back. When it expired the CLI exited with
|
|
214
|
+
* "Run `acc-runner login` again", so the one thing they still had to do was the
|
|
215
|
+
* one thing the dead terminal could no longer help them do. Re-minting keeps the
|
|
216
|
+
* login alive and puts a fresh code exactly where they are already looking.
|
|
217
|
+
*
|
|
218
|
+
* Bounded, and bounded deliberately: unbounded re-minting turns an abandoned
|
|
219
|
+
* terminal into a code-minting loop against the create lane for as long as the
|
|
220
|
+
* process lives. Three replacements is ~40 minutes of patience, after which the
|
|
221
|
+
* honest reading is that nobody is coming.
|
|
222
|
+
*/
|
|
223
|
+
export const MAX_DEVICE_REMINTS = 3;
|
|
224
|
+
/**
|
|
225
|
+
* The exit after the LAST replacement expires. It says what actually happened —
|
|
226
|
+
* how many codes were issued, and that none of them was ever entered — because
|
|
227
|
+
* "expired" on its own reads as the CLI's failure when in fact nothing arrived
|
|
228
|
+
* to bind.
|
|
210
229
|
*/
|
|
211
|
-
const
|
|
230
|
+
const REMINTS_EXHAUSTED_MESSAGE = `Device code expired ${MAX_DEVICE_REMINTS + 1} times without a sign-in ` +
|
|
231
|
+
`(${MAX_DEVICE_REMINTS} replacement codes were printed above, and none was entered). ` +
|
|
232
|
+
"Nothing was signed in. Run `acc-runner login` when you are ready to enter the code.";
|
|
212
233
|
/**
|
|
213
234
|
* RUNNER-NO-OPEN — the browser-open gate.
|
|
214
235
|
*
|
|
@@ -277,10 +298,13 @@ export async function maybeOpenBrowser(url, options = {}) {
|
|
|
277
298
|
return false;
|
|
278
299
|
}
|
|
279
300
|
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
301
|
+
/**
|
|
302
|
+
* The "here is your code" block. Extracted for one reason: a REPLACEMENT code
|
|
303
|
+
* has to reach the screen byte-identically to the first one. DEC-046's drift
|
|
304
|
+
* list names re-minting WITHOUT printing the new code, which would leave the
|
|
305
|
+
* person carefully typing a code the server has already forgotten.
|
|
306
|
+
*/
|
|
307
|
+
function printDeviceCode(start) {
|
|
284
308
|
console.log("");
|
|
285
309
|
console.log(chalk.bold("To continue, sign in with your ACC account:"));
|
|
286
310
|
console.log("");
|
|
@@ -288,56 +312,119 @@ export async function loginCommand(options = {}) {
|
|
|
288
312
|
console.log(` ${chalk.cyan("2.")} Enter code: ${chalk.bold.green(start.user_code)}`);
|
|
289
313
|
console.log("");
|
|
290
314
|
console.log(chalk.gray("Waiting for confirmation…"));
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* The replacement code, with the one line that explains why a second code just
|
|
318
|
+
* appeared.
|
|
319
|
+
*
|
|
320
|
+
* The wording is load-bearing across two surfaces. v1.49-E's `/runner/device`
|
|
321
|
+
* page tells the person "That code expired — codes last 10 minutes. Your
|
|
322
|
+
* terminal shows a new one; if it stopped instead, run `acc-runner login`." This
|
|
323
|
+
* is the terminal keeping that promise in the same words, so the page and the
|
|
324
|
+
* CLI read as one flow instead of two pieces of software disagreeing about what
|
|
325
|
+
* just happened.
|
|
326
|
+
*/
|
|
327
|
+
function printRemintedDeviceCode(start, attempt) {
|
|
328
|
+
console.log("");
|
|
329
|
+
console.log(chalk.yellow(`That code expired — codes last 10 minutes. Here is a new one (${attempt} of ${MAX_DEVICE_REMINTS}):`));
|
|
330
|
+
printDeviceCode(start);
|
|
331
|
+
}
|
|
332
|
+
export async function loginCommand(options = {}) {
|
|
333
|
+
const cfg = loadConfig();
|
|
334
|
+
const base = cfg.publicUrl.replace(/\/+$/, "");
|
|
335
|
+
const createUrl = `${base}/api/runner/device-code/create`;
|
|
336
|
+
const exchangeUrl = `${base}/api/runner/device-code/exchange`;
|
|
337
|
+
// 1. Request a device code. `let`, because an expiry re-mints into it.
|
|
338
|
+
let start = await postJson(createUrl, {});
|
|
339
|
+
printDeviceCode(start);
|
|
291
340
|
// Fire-and-forget, as before: the poll below must start immediately and must
|
|
292
341
|
// never be blocked by a browser that is slow to spawn (or by the gate itself).
|
|
342
|
+
//
|
|
343
|
+
// FIRST code only. A re-mint deliberately does not re-open the browser: the
|
|
344
|
+
// person is already on the page (that is why they are waiting), DEC-046 has
|
|
345
|
+
// the page clear and focus its field for the new code, and RUNNER-NO-OPEN's
|
|
346
|
+
// lesson was that a side effect which reaches out onto the host needs a reason
|
|
347
|
+
// every time it fires. Three surprise tabs is not one.
|
|
293
348
|
void maybeOpenBrowser(start.verification_url, options);
|
|
294
349
|
const machine = machineIdentity();
|
|
295
350
|
const hostname = os.hostname();
|
|
296
|
-
// 2. Poll the exchange endpoint.
|
|
297
|
-
const interval = (options.intervalSeconds ?? start.interval) * 1000;
|
|
298
|
-
const deadline = Date.now() + (options.timeoutSeconds ?? start.expires_in) * 1000;
|
|
351
|
+
// 2. Poll the exchange endpoint, re-minting the code when it expires under us.
|
|
299
352
|
let exchanged = null;
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
throw new Error(formatDeviceRefusal(verdict.refusal));
|
|
353
|
+
let remints = 0;
|
|
354
|
+
while (exchanged === null) {
|
|
355
|
+
const interval = (options.intervalSeconds ?? start.interval) * 1000;
|
|
356
|
+
// Re-derived per code: a replacement carries its OWN TTL, and reusing the
|
|
357
|
+
// first code's deadline would retire a brand-new code the moment it printed.
|
|
358
|
+
const deadline = Date.now() + (options.timeoutSeconds ?? start.expires_in) * 1000;
|
|
359
|
+
// A transient exchange failure (pooler hiccup, cold function, 5xx) must not
|
|
360
|
+
// abort a login whose code is still valid — poll through it and only give up
|
|
361
|
+
// when the failures are persistent or the real TTL runs out.
|
|
362
|
+
let consecutiveFailures = 0;
|
|
363
|
+
let lastFailure = null;
|
|
364
|
+
// Set by the SERVER telling us the code is spent, in a 200 body or a 404/410.
|
|
365
|
+
let expired = false;
|
|
366
|
+
while (Date.now() < deadline) {
|
|
367
|
+
await sleep(interval);
|
|
368
|
+
let exchange;
|
|
369
|
+
try {
|
|
370
|
+
exchange = await postJson(exchangeUrl, {
|
|
371
|
+
device_code: start.device_code,
|
|
372
|
+
machine,
|
|
373
|
+
hostname,
|
|
374
|
+
});
|
|
323
375
|
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
376
|
+
catch (err) {
|
|
377
|
+
// DEVICE-EXCHANGE-REFUSAL: a PERMANENT refusal (beta admission, an
|
|
378
|
+
// unresolvable org, a malformed request) must stop the loop and say what
|
|
379
|
+
// it was. Polling it four more times cannot change the answer, and the
|
|
380
|
+
// deadline path would then report a refusal as a timeout — the one thing
|
|
381
|
+
// it demonstrably was not.
|
|
382
|
+
if (err instanceof DeviceExchangeHttpError) {
|
|
383
|
+
const verdict = classifyExchangeFailure(err.status, err.rawBody, err.body);
|
|
384
|
+
// A spent code on a 404/410 is the same fact as a 200 `expired` body,
|
|
385
|
+
// so it takes the same re-mint path rather than ending the login.
|
|
386
|
+
if (verdict.kind === "expired") {
|
|
387
|
+
expired = true;
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
if (verdict.kind === "terminal")
|
|
391
|
+
throw new Error(formatDeviceRefusal(verdict.refusal));
|
|
392
|
+
}
|
|
393
|
+
consecutiveFailures += 1;
|
|
394
|
+
lastFailure = err.message;
|
|
395
|
+
if (consecutiveFailures >= MAX_POLL_FAILURES) {
|
|
396
|
+
throw new Error(`Device-code exchange failed ${consecutiveFailures} times in a row: ${lastFailure}`);
|
|
397
|
+
}
|
|
398
|
+
continue;
|
|
399
|
+
}
|
|
400
|
+
consecutiveFailures = 0;
|
|
401
|
+
if (exchange.status === "expired") {
|
|
402
|
+
expired = true;
|
|
403
|
+
break;
|
|
404
|
+
}
|
|
405
|
+
if (exchange.status === "ok") {
|
|
406
|
+
exchanged = exchange;
|
|
407
|
+
break;
|
|
328
408
|
}
|
|
329
|
-
continue;
|
|
330
|
-
}
|
|
331
|
-
consecutiveFailures = 0;
|
|
332
|
-
if (exchange.status === "expired") {
|
|
333
|
-
throw new Error(EXPIRED_MESSAGE);
|
|
334
409
|
}
|
|
335
|
-
if (
|
|
336
|
-
exchanged = exchange;
|
|
410
|
+
if (exchanged !== null)
|
|
337
411
|
break;
|
|
412
|
+
// Only a SERVER-reported expiry re-mints. Running the local deadline out
|
|
413
|
+
// without ever being TOLD the code was spent is a different fact — an
|
|
414
|
+
// unreachable or silent exchange lane — and it keeps its own sentence.
|
|
415
|
+
if (!expired) {
|
|
416
|
+
throw new Error("Device code timed out before sign-in completed.");
|
|
417
|
+
}
|
|
418
|
+
if (remints >= MAX_DEVICE_REMINTS) {
|
|
419
|
+
throw new Error(REMINTS_EXHAUSTED_MESSAGE);
|
|
338
420
|
}
|
|
421
|
+
remints += 1;
|
|
422
|
+
start = await postJson(createUrl, {});
|
|
423
|
+
printRemintedDeviceCode(start, remints);
|
|
339
424
|
}
|
|
340
|
-
|
|
425
|
+
// Narrows the 2xx union to the success variant for everything below; the loop
|
|
426
|
+
// only ever assigns an `ok` exchange, so this cannot fire.
|
|
427
|
+
if (exchanged.status !== "ok") {
|
|
341
428
|
throw new Error("Device code timed out before sign-in completed.");
|
|
342
429
|
}
|
|
343
430
|
console.log(chalk.green(`✓ Logged in as ${exchanged.email ?? exchanged.user_id}`));
|
package/dist/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../src/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type EngineCapability, type MachineCapabilitySnapshot, type ToolCapabil
|
|
|
2
2
|
/**
|
|
3
3
|
* Credential SHAPES a developer machine actually holds, plus the two generic
|
|
4
4
|
* carriers. Mirrors the regexes in `acc.machine_capability_material_free`
|
|
5
|
-
* (
|
|
5
|
+
* (0315 §2); `tests/unit/t1785160000000035-machine-capabilities.test.ts` asserts
|
|
6
6
|
* the mirror by running the same vectors through both spellings.
|
|
7
7
|
*/
|
|
8
8
|
export declare const CREDENTIAL_SHAPES: readonly RegExp[];
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* to capture can ride along. A rebuild rather than a filter: a field nobody
|
|
12
12
|
* whitelisted is absent from the output by construction, not removed by a
|
|
13
13
|
* rule somebody has to remember to write.
|
|
14
|
-
* 2. `acc._normalize_machine_capability_{tools,engines}` (migration
|
|
14
|
+
* 2. `acc._normalize_machine_capability_{tools,engines}` (migration 0315 §6)
|
|
15
15
|
* does the same rebuild server-side, so a rogue or stale runner build cannot
|
|
16
16
|
* widen the record.
|
|
17
17
|
* 3. Two CHECK constraints on `acc.machine_capabilities` reject anything SHAPED
|
|
@@ -31,7 +31,7 @@ import { HOST_TOOLS, } from "./types.js";
|
|
|
31
31
|
/**
|
|
32
32
|
* Credential SHAPES a developer machine actually holds, plus the two generic
|
|
33
33
|
* carriers. Mirrors the regexes in `acc.machine_capability_material_free`
|
|
34
|
-
* (
|
|
34
|
+
* (0315 §2); `tests/unit/t1785160000000035-machine-capabilities.test.ts` asserts
|
|
35
35
|
* the mirror by running the same vectors through both spellings.
|
|
36
36
|
*/
|
|
37
37
|
export const CREDENTIAL_SHAPES = [
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* There is deliberately no field that could hold a token, and the field set is
|
|
12
12
|
* CLOSED on three sides: `sanitizeSnapshot` (redact.ts) rebuilds every record
|
|
13
13
|
* from these fields before it leaves the host,
|
|
14
|
-
* `acc._normalize_machine_capability_{tools,engines}` (migration
|
|
14
|
+
* `acc._normalize_machine_capability_{tools,engines}` (migration 0315) rebuilds
|
|
15
15
|
* it again from the same whitelist server-side, and two CHECK constraints reject
|
|
16
16
|
* anything shaped like a credential at rest. Adding a field here without adding
|
|
17
17
|
* it to BOTH whitelists means the field is silently dropped, which is the
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*/
|
|
23
23
|
import type { EngineAuthMode, EnginePlanHint } from "../engines/types.js";
|
|
24
24
|
/**
|
|
25
|
-
* The host tools ACC probes. Mirrors `acc.machine_capability_tools()` (
|
|
25
|
+
* The host tools ACC probes. Mirrors `acc.machine_capability_tools()` (0315 §1)
|
|
26
26
|
* and `HOST_TOOLS` in api/_lib/machine-capabilities.ts — the unit suite asserts
|
|
27
27
|
* all three agree, so a tool added on one side cannot silently be dropped by
|
|
28
28
|
* the writer's whitelist on another.
|
|
@@ -103,7 +103,7 @@ export interface MachineCapabilitySnapshot {
|
|
|
103
103
|
* what `recordMachineCapabilities` sends to
|
|
104
104
|
* `acc.record_machine_capabilities` — note there is no timestamp: `probed_at` is
|
|
105
105
|
* server time, because a host with a wrong clock would otherwise win every
|
|
106
|
-
* last-writer-wins comparison forever (
|
|
106
|
+
* last-writer-wins comparison forever (0315 §4).
|
|
107
107
|
*/
|
|
108
108
|
export interface MachineCapabilityReport {
|
|
109
109
|
snapshot: MachineCapabilitySnapshot;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The host tools ACC probes. Mirrors `acc.machine_capability_tools()` (
|
|
2
|
+
* The host tools ACC probes. Mirrors `acc.machine_capability_tools()` (0315 §1)
|
|
3
3
|
* and `HOST_TOOLS` in api/_lib/machine-capabilities.ts — the unit suite asserts
|
|
4
4
|
* all three agree, so a tool added on one side cannot silently be dropped by
|
|
5
5
|
* the writer's whitelist on another.
|
|
@@ -5,6 +5,8 @@ import { type MachineCommandTransport } from "./transport.js";
|
|
|
5
5
|
export declare const MACHINE_CONSOLE_ENABLED_ENV = "ACC_RUNNER_MACHINE_CONSOLE";
|
|
6
6
|
export declare const DEFAULT_MACHINE_POLL_MS = 1000;
|
|
7
7
|
export declare const DEFAULT_MACHINE_WALL_MS = 120000;
|
|
8
|
+
/** Grace period for stdio to drain after "exit"; see drainStdio. */
|
|
9
|
+
export declare const STDIO_DRAIN_MS = 2000;
|
|
8
10
|
export interface MachineConsoleHandle {
|
|
9
11
|
stop(): Promise<void>;
|
|
10
12
|
refreshClient(client: RunnerSupabaseClient): void;
|
|
@@ -17,6 +19,8 @@ export interface MachineConsoleDeps {
|
|
|
17
19
|
supabase: RunnerSupabaseClient;
|
|
18
20
|
pollMs?: number;
|
|
19
21
|
wallClockMs?: number;
|
|
22
|
+
/** Override the post-exit stdio drain grace period (tests). */
|
|
23
|
+
stdioDrainMs?: number;
|
|
20
24
|
onLog?: (line: string) => void;
|
|
21
25
|
spawnCommand?: typeof spawn;
|
|
22
26
|
transport?: MachineCommandTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/machine-console/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AACxE,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAC7C,eAAO,MAAM,uBAAuB,SAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/machine-console/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAIL,KAAK,uBAAuB,EAC7B,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AACxE,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAC7C,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAC/C,oEAAoE;AACpE,eAAO,MAAM,cAAc,OAAQ,CAAC;AAGpC,MAAM,WAAW,oBAAoB;IACnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,cAAc,IAAI,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,YAAY,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,KAAK,CAAC;IAC5B,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC;AAED,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEnF;AAQD,mEAAmE;AACnE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAc9E;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAKzF;AA2ED,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAmK/G;AAED,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,qBAAqB,EACrB,8BAA8B,EAC9B,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACjG,mBAAmB,8BAA8B,CAAC"}
|