instar 1.3.623 → 1.3.625
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/dashboard/index.html +22 -0
- package/dashboard/subscriptions.js +398 -5
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +2 -3
- package/dist/commands/server.js.map +1 -1
- package/dist/core/FrameworkLoginDriver.d.ts +10 -0
- package/dist/core/FrameworkLoginDriver.d.ts.map +1 -1
- package/dist/core/FrameworkLoginDriver.js +13 -0
- package/dist/core/FrameworkLoginDriver.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +352 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +46 -46
- package/upgrades/1.3.624.md +23 -0
- package/upgrades/1.3.625.md +23 -0
- package/upgrades/side-effects/account-machine-matrix.md +39 -0
- package/upgrades/side-effects/ws52-code-paste-back.md +105 -0
|
@@ -23,6 +23,16 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import type { LoginArtifact, LoginDriver } from './EnrollmentWizard.js';
|
|
25
25
|
import type { LoginFlowKind, LoginProvider } from './PendingLoginStore.js';
|
|
26
|
+
/**
|
|
27
|
+
* The tmux session name an enrollment login pane runs under. SINGLE SOURCE OF TRUTH —
|
|
28
|
+
* both the spawn (server.ts) and any consumer that needs to reach the live pane
|
|
29
|
+
* (e.g. WS5.2 code paste-back submit-code in routes.ts) MUST derive the name through
|
|
30
|
+
* this helper, so the two can never drift apart or collide differently. The slug is
|
|
31
|
+
* the configHome (the per-credential slot, unique by construction) normalized + tail-
|
|
32
|
+
* clamped; framework is included so two providers in the same slot can't collide.
|
|
33
|
+
* (ws52-code-paste-back — codex cross-model review finding #1.)
|
|
34
|
+
*/
|
|
35
|
+
export declare function enrollPaneSessionName(framework: string, configHome?: string): string;
|
|
26
36
|
/** A login flow we know how to launch + scrape. */
|
|
27
37
|
export interface FrameworkLoginRequest {
|
|
28
38
|
provider: LoginProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkLoginDriver.d.ts","sourceRoot":"","sources":["../../src/core/FrameworkLoginDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE3E,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IACjE,IAAI,EAAE,aAAa,CAAC;IACpB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,gDAAgD;IAChD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,sDAAsD;IACtD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IACjE,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AASD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0D;IACjF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,IAAI,EAAE,wBAAwB;IAS1C;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI;IAwBjF;;;;;;;;;;OAUG;IACG,KAAK,CAAC,GAAG,EAAE;QACf,QAAQ,EAAE,aAAa,CAAC;QACxB,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,EAAE,aAAa,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,aAAa,CAAC;IAgC1B,6DAA6D;IAC7D,aAAa,IAAI,WAAW;CAG7B"}
|
|
1
|
+
{"version":3,"file":"FrameworkLoginDriver.d.ts","sourceRoot":"","sources":["../../src/core/FrameworkLoginDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE3E;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IACjE,IAAI,EAAE,aAAa,CAAC;IACpB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,gDAAgD;IAChD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,sDAAsD;IACtD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IACjE,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AASD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA2B;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0D;IACjF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAE5B,IAAI,EAAE,wBAAwB;IAS1C;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI;IAwBjF;;;;;;;;;;OAUG;IACG,KAAK,CAAC,GAAG,EAAE;QACf,QAAQ,EAAE,aAAa,CAAC;QACxB,SAAS,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,EAAE,aAAa,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,aAAa,CAAC;IAgC1B,6DAA6D;IAC7D,aAAa,IAAI,WAAW;CAG7B"}
|
|
@@ -21,6 +21,19 @@
|
|
|
21
21
|
* credential is written by the framework's own login client into the account's
|
|
22
22
|
* config home; instar never touches it.
|
|
23
23
|
*/
|
|
24
|
+
/**
|
|
25
|
+
* The tmux session name an enrollment login pane runs under. SINGLE SOURCE OF TRUTH —
|
|
26
|
+
* both the spawn (server.ts) and any consumer that needs to reach the live pane
|
|
27
|
+
* (e.g. WS5.2 code paste-back submit-code in routes.ts) MUST derive the name through
|
|
28
|
+
* this helper, so the two can never drift apart or collide differently. The slug is
|
|
29
|
+
* the configHome (the per-credential slot, unique by construction) normalized + tail-
|
|
30
|
+
* clamped; framework is included so two providers in the same slot can't collide.
|
|
31
|
+
* (ws52-code-paste-back — codex cross-model review finding #1.)
|
|
32
|
+
*/
|
|
33
|
+
export function enrollPaneSessionName(framework, configHome) {
|
|
34
|
+
const slug = (configHome ?? framework).replace(/[^a-zA-Z0-9]+/g, '-').slice(-24);
|
|
35
|
+
return `instar-enroll-${framework}-${slug}`;
|
|
36
|
+
}
|
|
24
37
|
const URL_RE = /(https?:\/\/[^\s"'<>)\]]+)/i;
|
|
25
38
|
// Device codes are short, dash-grouped, uppercase-alnum: e.g. 7DAU-W4XJA, ABCD-1234.
|
|
26
39
|
const DEVICE_CODE_RE = /\b([A-Z0-9]{4}-[A-Z0-9]{4,6})\b/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkLoginDriver.js","sourceRoot":"","sources":["../../src/core/FrameworkLoginDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"FrameworkLoginDriver.js","sourceRoot":"","sources":["../../src/core/FrameworkLoginDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/server/routes.js
CHANGED
|
@@ -9,6 +9,7 @@ import { execFileSync } from 'node:child_process';
|
|
|
9
9
|
import { createHash, timingSafeEqual, randomUUID } from 'node:crypto';
|
|
10
10
|
import { classifyActionClaim } from '../core/action-claim.js';
|
|
11
11
|
import { canonicalPushKey } from '../core/PrHandLease.js';
|
|
12
|
+
import { enrollPaneSessionName } from '../core/FrameworkLoginDriver.js';
|
|
12
13
|
import fs from 'node:fs';
|
|
13
14
|
import os from 'node:os';
|
|
14
15
|
import path from 'node:path';
|
|
@@ -19500,6 +19501,357 @@ export function createRoutes(ctx) {
|
|
|
19500
19501
|
res.status(500).json({ error: err instanceof Error ? err.message : 'follow-me enroll start failed' });
|
|
19501
19502
|
}
|
|
19502
19503
|
});
|
|
19504
|
+
// Per-login submit mutex for the paste-back route below (codex r2 #1) — process/instance
|
|
19505
|
+
// scoped so a concurrent double-tap can't interleave two codes into the same login pane.
|
|
19506
|
+
const followMeSubmitInFlight = new Set();
|
|
19507
|
+
// WS5.2 code paste-back (ws52-code-paste-back) — TARGET-LOCAL: type the operator's
|
|
19508
|
+
// verification CODE into the waiting `claude auth login` pane on THIS machine, then
|
|
19509
|
+
// finish enrollment. The Claude url-code-paste login is two-part (open URL+auth →
|
|
19510
|
+
// paste the returned code); this is the second part, off-chat. The code is the
|
|
19511
|
+
// operator's own single-use auth code; the provider validates it — instar holds no
|
|
19512
|
+
// new authority and never stores/logs the code value. Dev-gated like the rest.
|
|
19513
|
+
router.post('/subscription-pool/follow-me/enroll/:id/submit-code', async (req, res) => {
|
|
19514
|
+
const afmCfg = ctx.config.multiMachine?.accountFollowMe;
|
|
19515
|
+
if (!resolveDevAgentGate(afmCfg?.enabled, ctx.config)) {
|
|
19516
|
+
res.status(503).json({ error: 'account follow-me not enabled' });
|
|
19517
|
+
return;
|
|
19518
|
+
}
|
|
19519
|
+
if (!ctx.enrollmentWizard || !ctx.subscriptionPool) {
|
|
19520
|
+
res.status(503).json({ error: 'enrollment wizard or subscription pool not configured' });
|
|
19521
|
+
return;
|
|
19522
|
+
}
|
|
19523
|
+
const id = req.params.id;
|
|
19524
|
+
const code = (req.body ?? {}).code;
|
|
19525
|
+
if (typeof code !== 'string' || !code.trim()) {
|
|
19526
|
+
res.status(400).json({ error: 'code is required' });
|
|
19527
|
+
return;
|
|
19528
|
+
}
|
|
19529
|
+
// Code-shape validation (codex cross-model finding #2/#4): the route types this into a
|
|
19530
|
+
// live login pane, so narrow it to a single token — reject any control char, newline,
|
|
19531
|
+
// or internal whitespace (a newline would submit the pane prematurely / split the code).
|
|
19532
|
+
const trimmedCode = code.trim();
|
|
19533
|
+
// eslint-disable-next-line no-control-regex -- intentionally reject whitespace + control chars
|
|
19534
|
+
if (/[\s\x00-\x1f\x7f]/.test(trimmedCode) || trimmedCode.length > 512) {
|
|
19535
|
+
res.status(400).json({ error: 'that does not look like a sign-in code — paste only the code the page gave you' });
|
|
19536
|
+
return;
|
|
19537
|
+
}
|
|
19538
|
+
// Reject a pasted URL (codex r4 #3): Claude's flow returns a RAW code, but an operator may
|
|
19539
|
+
// paste the whole redirect link instead. A URL has no whitespace so it slips past the check
|
|
19540
|
+
// above — guard it explicitly with plain copy rather than typing a URL into the login.
|
|
19541
|
+
if (/^https?:\/\//i.test(trimmedCode) || trimmedCode.includes('://')) {
|
|
19542
|
+
res.status(400).json({ error: 'paste just the code, not the whole link — the code is the short value the page shows after you sign in' });
|
|
19543
|
+
return;
|
|
19544
|
+
}
|
|
19545
|
+
// Resolve the pending login → its configHome + framework → the enroll pane session
|
|
19546
|
+
// name (derived through the shared helper so it can NEVER drift from enroll-start's spawn).
|
|
19547
|
+
const login = ctx.enrollmentWizard.pending().find((l) => l.id === id);
|
|
19548
|
+
if (!login) {
|
|
19549
|
+
res.status(404).json({ error: `no pending login "${id}" is waiting for a code — re-tap Approve to start a fresh sign-in` });
|
|
19550
|
+
return;
|
|
19551
|
+
}
|
|
19552
|
+
// Narrow the authority (codex finding #4): this paste-back path is ONLY for the
|
|
19553
|
+
// two-part url-code-paste flow. A device-code login never prompts for a pasted code.
|
|
19554
|
+
if (login.kind !== 'url-code-paste') {
|
|
19555
|
+
res.status(409).json({ error: `this login does not use a paste-back code` });
|
|
19556
|
+
return;
|
|
19557
|
+
}
|
|
19558
|
+
// Per-login in-flight mutex (codex r2 #1): two rapid POSTs must not both type into the
|
|
19559
|
+
// same pane (interleaved input / a stale second code after the first advances the prompt).
|
|
19560
|
+
// The first holds the lock through delivery+poll; a concurrent second gets a clean 409.
|
|
19561
|
+
if (followMeSubmitInFlight.has(id)) {
|
|
19562
|
+
res.status(409).json({ error: `a code is already being submitted for this login — give it a moment` });
|
|
19563
|
+
return;
|
|
19564
|
+
}
|
|
19565
|
+
followMeSubmitInFlight.add(id);
|
|
19566
|
+
try {
|
|
19567
|
+
const paneSession = enrollPaneSessionName(login.framework, login.configHome);
|
|
19568
|
+
const tmuxPath = ctx.config.sessions?.tmuxPath;
|
|
19569
|
+
// Readiness check — FAILS CLOSED (internal security review; Signal-vs-Authority "safety guard
|
|
19570
|
+
// on an irreversible action"). Typing a live auth code into a pane that is NOT at the code
|
|
19571
|
+
// prompt (the login exited → a SHELL) would execute it (leak + garbage). We must be able to
|
|
19572
|
+
// CAPTURE + VERIFY the pane before typing; if we cannot, we REFUSE rather than blind-type.
|
|
19573
|
+
// This guard previously skipped when captureOutput was absent — an open bypass of FD13.
|
|
19574
|
+
if (typeof ctx.sessionManager.captureOutput !== 'function') {
|
|
19575
|
+
res.status(503).json({ error: `cannot verify the login pane on this machine — code not delivered` });
|
|
19576
|
+
return;
|
|
19577
|
+
}
|
|
19578
|
+
let frame = '';
|
|
19579
|
+
try {
|
|
19580
|
+
frame = ctx.sessionManager.captureOutput(paneSession, 12) || '';
|
|
19581
|
+
}
|
|
19582
|
+
catch {
|
|
19583
|
+
frame = ''; /* capture failed → treated as not-ready below (fail closed) */
|
|
19584
|
+
}
|
|
19585
|
+
// An empty frame also covers a MISSING pane (captureOutput returns null for a dead session),
|
|
19586
|
+
// so this single check subsumes the old has-session existence test — and fails closed.
|
|
19587
|
+
const lastLine = frame.split('\n').map((l) => l.trimEnd()).filter((l) => l.length > 0).pop() ?? '';
|
|
19588
|
+
// POSITIVE: the paste-code prompt is present (last ~12 lines, near the live prompt, so old
|
|
19589
|
+
// scrollback can't satisfy it — codex r5 #1). NEGATIVE: the last visible line is NOT a shell
|
|
19590
|
+
// prompt (codex r6 #1) — an exited login drops to a shell ending in $/%/# ; the real Claude
|
|
19591
|
+
// prompt ends in '>'. Both must hold, on a non-empty frame, before a single char is typed.
|
|
19592
|
+
const looksReady = /paste/i.test(frame) && /code/i.test(frame);
|
|
19593
|
+
const looksLikeShell = /[#$%]\s*$/.test(lastLine);
|
|
19594
|
+
if (!frame.trim() || !looksReady || looksLikeShell) {
|
|
19595
|
+
res.status(409).json({ error: `this login isn't at the code prompt (the sign-in window may have closed) — re-tap Approve to start a fresh sign-in` });
|
|
19596
|
+
return;
|
|
19597
|
+
}
|
|
19598
|
+
// Type the code into the pane (sendInput appends Enter). NEVER log the code value.
|
|
19599
|
+
const sent = ctx.sessionManager.sendInput(paneSession, code.trim());
|
|
19600
|
+
if (!sent) {
|
|
19601
|
+
res.status(502).json({ error: 'could not deliver the code to the login — try again, or re-tap Approve' });
|
|
19602
|
+
return;
|
|
19603
|
+
}
|
|
19604
|
+
// Residual hardening (codex r3 #2): the code echoes into the pane's tmux scrollback. The
|
|
19605
|
+
// code is single-use + short-lived, but clear the pane history best-effort so it does not
|
|
19606
|
+
// linger in scrollback on the target machine. Never fatal if it fails.
|
|
19607
|
+
let cleared = false;
|
|
19608
|
+
if (tmuxPath) {
|
|
19609
|
+
try {
|
|
19610
|
+
execFileSync(tmuxPath, ['clear-history', '-t', `=${paneSession}:`], { stdio: 'ignore' });
|
|
19611
|
+
cleared = true;
|
|
19612
|
+
}
|
|
19613
|
+
catch { /* @silent-fallback-ok: scrollback clear is best-effort residual hardening */ }
|
|
19614
|
+
}
|
|
19615
|
+
console.log(`[follow-me] submitted operator code to login "${id}" (value redacted; scrollback cleared=${cleared})`);
|
|
19616
|
+
// Observability (Observability standard): every terminal outcome is logged on a
|
|
19617
|
+
// single greppable key so submit-code success/timeout/error rates are auditable
|
|
19618
|
+
// across the loop without surfacing the code value. `[follow-me] submit-code outcome=…`.
|
|
19619
|
+
const logOutcome = (outcome, extra = '') => console.log(`[follow-me] submit-code outcome=${outcome} id=${id}${extra ? ' ' + extra : ''}`);
|
|
19620
|
+
// Drive to a real outcome (FD5): poll for the credential the login writes to its
|
|
19621
|
+
// configHome, then run the S7 email-gate complete + add to pool. Bounded; on timeout
|
|
19622
|
+
// return "submitted" (the reissue/complete sweep finishes it) — never a false "done".
|
|
19623
|
+
const home = login.configHome ?? '';
|
|
19624
|
+
const credPath = home ? path.join(home, '.claude.json') : '';
|
|
19625
|
+
const deadline = Date.now() + 30_000;
|
|
19626
|
+
while (credPath && Date.now() < deadline) {
|
|
19627
|
+
await new Promise((r) => setTimeout(r, 2_000));
|
|
19628
|
+
if (fs.existsSync(credPath)) {
|
|
19629
|
+
try {
|
|
19630
|
+
const result = await ctx.enrollmentWizard.completeFollowMe(id, 'this machine');
|
|
19631
|
+
if (result.outcome === 'validated') {
|
|
19632
|
+
const acct = ctx.subscriptionPool.add({
|
|
19633
|
+
id: result.login.id, nickname: result.login.label, provider: result.login.provider,
|
|
19634
|
+
framework: result.login.framework, configHome: result.login.configHome ?? '', status: 'active', email: result.email,
|
|
19635
|
+
});
|
|
19636
|
+
logOutcome('validated');
|
|
19637
|
+
res.status(201).json({ enabled: true, outcome: 'validated', account: acct });
|
|
19638
|
+
return;
|
|
19639
|
+
}
|
|
19640
|
+
if (result.outcome === 'held') {
|
|
19641
|
+
logOutcome('held', `reason=${result.reason}`);
|
|
19642
|
+
res.json({ enabled: true, outcome: 'held', reason: result.reason });
|
|
19643
|
+
return;
|
|
19644
|
+
}
|
|
19645
|
+
}
|
|
19646
|
+
catch { /* keep polling until the deadline */ }
|
|
19647
|
+
break;
|
|
19648
|
+
}
|
|
19649
|
+
}
|
|
19650
|
+
logOutcome('submitted');
|
|
19651
|
+
res.json({ enabled: true, outcome: 'submitted', message: 'code sent; finishing sign-in' });
|
|
19652
|
+
}
|
|
19653
|
+
finally {
|
|
19654
|
+
followMeSubmitInFlight.delete(id);
|
|
19655
|
+
}
|
|
19656
|
+
});
|
|
19657
|
+
// WS5.2 code paste-back — FRONTING RELAY: the operator's single dashboard calls this;
|
|
19658
|
+
// it carries the code one authed hop to the machine that owns the login pane. self →
|
|
19659
|
+
// local submit-code; peer → POST {code} to that peer's local submit-code. The code rides
|
|
19660
|
+
// the Bearer-authed API + authed mesh hop only, never chat. Dark target → honest 502.
|
|
19661
|
+
router.post('/subscription-pool/follow-me/submit-code', async (req, res) => {
|
|
19662
|
+
const afmCfg = ctx.config.multiMachine?.accountFollowMe;
|
|
19663
|
+
if (!resolveDevAgentGate(afmCfg?.enabled, ctx.config)) {
|
|
19664
|
+
res.status(503).json({ error: 'account follow-me not enabled' });
|
|
19665
|
+
return;
|
|
19666
|
+
}
|
|
19667
|
+
const b = req.body ?? {};
|
|
19668
|
+
const { machineId, id, code } = b;
|
|
19669
|
+
if (typeof id !== 'string' || !id || typeof code !== 'string' || !code.trim()) {
|
|
19670
|
+
res.status(400).json({ error: 'id and code are required' });
|
|
19671
|
+
return;
|
|
19672
|
+
}
|
|
19673
|
+
const selfId = ctx.meshSelfId ?? ctx.config.machineId ?? 'local';
|
|
19674
|
+
// Local target → forward to this machine's own submit-code handler over loopback (keeps
|
|
19675
|
+
// one implementation). Peer target → forward to the peer's local submit-code.
|
|
19676
|
+
let baseUrl = null;
|
|
19677
|
+
if (!machineId || machineId === selfId) {
|
|
19678
|
+
baseUrl = `http://${ctx.config.host || '127.0.0.1'}:${ctx.config.port}`;
|
|
19679
|
+
}
|
|
19680
|
+
else {
|
|
19681
|
+
const peer = (ctx.resolvePeerUrls?.() ?? []).find((p) => p.machineId === machineId);
|
|
19682
|
+
if (!peer) {
|
|
19683
|
+
res.status(502).json({ error: `target machine ${machineId} is not reachable right now — try again in a moment` });
|
|
19684
|
+
return;
|
|
19685
|
+
}
|
|
19686
|
+
baseUrl = peer.url;
|
|
19687
|
+
}
|
|
19688
|
+
try {
|
|
19689
|
+
const r = await fetch(`${baseUrl}/subscription-pool/follow-me/enroll/${encodeURIComponent(id)}/submit-code`, {
|
|
19690
|
+
method: 'POST',
|
|
19691
|
+
headers: { Authorization: `Bearer ${ctx.config.authToken}`, 'Content-Type': 'application/json' },
|
|
19692
|
+
body: JSON.stringify({ code }),
|
|
19693
|
+
signal: AbortSignal.timeout(40_000),
|
|
19694
|
+
});
|
|
19695
|
+
const body = await r.json().catch(() => ({}));
|
|
19696
|
+
res.status(r.status).json(body);
|
|
19697
|
+
}
|
|
19698
|
+
catch (err) {
|
|
19699
|
+
res.status(502).json({ error: 'could not reach the machine doing the login — try again, or re-tap Approve' });
|
|
19700
|
+
}
|
|
19701
|
+
});
|
|
19702
|
+
// account-machine-matrix (Account × Machine matrix) — PIN-GATED orchestrator over the
|
|
19703
|
+
// already-shipped PIN→mandate→enroll-start chain. The Subscriptions-tab matrix "Set up"
|
|
19704
|
+
// tap calls this with {accountId, machineId, pin}: it requires the dashboard PIN (the only
|
|
19705
|
+
// proof of operator presence — the AGENT also holds the Bearer, FD4), resolves the account
|
|
19706
|
+
// email + agents pair SERVER-SIDE from pool state (never from the body, FD3/FD8), issues the
|
|
19707
|
+
// per-(account, targetMachine) account-follow-me mandate exactly as /mandate/issue-for-machine
|
|
19708
|
+
// does, then drives the EXISTING mandate-gated enroll/start (self → loopback; peer → deliver
|
|
19709
|
+
// the signed mandate + remote enroll/start, the proven adriana cross-machine path). It adds NO
|
|
19710
|
+
// new authority — it just drives the existing chain in one call so the frontend never handles
|
|
19711
|
+
// fingerprints or raw mandate JSON. Idempotent: a re-tap reuses an existing valid pending login
|
|
19712
|
+
// for this pair (no duplicate, no stacked mandate). Dark behind multiMachine.accountFollowMe.
|
|
19713
|
+
router.post('/subscription-pool/matrix/start-cell', async (req, res) => {
|
|
19714
|
+
const afmCfg = ctx.config.multiMachine?.accountFollowMe;
|
|
19715
|
+
if (!resolveDevAgentGate(afmCfg?.enabled, ctx.config)) {
|
|
19716
|
+
res.status(503).json({ error: 'account follow-me not enabled' });
|
|
19717
|
+
return;
|
|
19718
|
+
}
|
|
19719
|
+
if (!ctx.coordination) {
|
|
19720
|
+
res.status(503).json({ error: 'coordination mandate engine unavailable (no stateDir or init failed)' });
|
|
19721
|
+
return;
|
|
19722
|
+
}
|
|
19723
|
+
if (!ctx.enrollmentWizard || !ctx.subscriptionPool) {
|
|
19724
|
+
res.status(503).json({ error: 'enrollment wizard or subscription pool not configured' });
|
|
19725
|
+
return;
|
|
19726
|
+
}
|
|
19727
|
+
const b = req.body ?? {};
|
|
19728
|
+
if (typeof b.accountId !== 'string' || !b.accountId.trim() || typeof b.machineId !== 'string' || !b.machineId.trim()) {
|
|
19729
|
+
res.status(400).json({ error: 'accountId and machineId are required' });
|
|
19730
|
+
return;
|
|
19731
|
+
}
|
|
19732
|
+
// THE LOAD-BEARING GATE (FD4): the dashboard PIN proves operator presence. checkMandatePin
|
|
19733
|
+
// is the EXACT mechanism /mandate/issue-for-machine uses; a missing/invalid PIN sends its own
|
|
19734
|
+
// 401/403/429 response — never start an enrollment without it. The agent shares the Bearer, so
|
|
19735
|
+
// Bearer-only would let any agent session start a cross-machine account login with no operator.
|
|
19736
|
+
if (!checkMandatePin(req, res))
|
|
19737
|
+
return;
|
|
19738
|
+
const accountId = b.accountId.trim();
|
|
19739
|
+
const machineId = b.machineId.trim();
|
|
19740
|
+
const selfMachineId = ctx.meshSelfId ?? ctx.config.machineId ?? 'local';
|
|
19741
|
+
const isSelf = machineId === selfMachineId;
|
|
19742
|
+
const localFp = resolveAgentFingerprint(ctx);
|
|
19743
|
+
// SELF-only idempotency (spec): a re-tap on a cell already mid-setup must REUSE the existing
|
|
19744
|
+
// pending login (correct expectedEmail + un-expired) rather than minting a new mandate / a
|
|
19745
|
+
// duplicate login. Peer-target idempotency is left to the peer's own enroll/start (we never
|
|
19746
|
+
// read a peer's pending() from here). The configHome is per-account so the pane identity is 1:1.
|
|
19747
|
+
if (isSelf) {
|
|
19748
|
+
try {
|
|
19749
|
+
const { resolveFollowMeEnrollTarget } = await import('../core/resolveFollowMeEnrollTarget.js');
|
|
19750
|
+
const localAccounts = ctx.subscriptionPool.list().map((a) => ({
|
|
19751
|
+
id: a.id, email: a.email, nickname: a.nickname, provider: a.provider, framework: a.framework,
|
|
19752
|
+
}));
|
|
19753
|
+
const peerViews = ctx.accountFollowMePeerViews ? await ctx.accountFollowMePeerViews() : [];
|
|
19754
|
+
const target = resolveFollowMeEnrollTarget({ accountId, localAccounts, peerViews });
|
|
19755
|
+
if (!target.resolved) {
|
|
19756
|
+
console.log(`[matrix] start-cell accountId=${accountId} machineId=${machineId} outcome=cannot-resolve-email`);
|
|
19757
|
+
res.status(409).json({ error: 'cannot resolve approved account email' });
|
|
19758
|
+
return;
|
|
19759
|
+
}
|
|
19760
|
+
const existing = ctx.enrollmentWizard.pending().find((l) => l.id === accountId && l.status === 'pending'
|
|
19761
|
+
&& Date.parse(l.ttlExpiresAt) > Date.now()
|
|
19762
|
+
&& (!l.expectedEmail || l.expectedEmail === target.expectedEmail));
|
|
19763
|
+
if (existing) {
|
|
19764
|
+
console.log(`[matrix] start-cell accountId=${accountId} machineId=${machineId} outcome=reused-pending`);
|
|
19765
|
+
res.status(201).json({ verificationUrl: existing.verificationUrl, loginId: existing.id, machineId, reused: true });
|
|
19766
|
+
return;
|
|
19767
|
+
}
|
|
19768
|
+
}
|
|
19769
|
+
catch (err) {
|
|
19770
|
+
res.status(500).json({ error: err instanceof Error ? err.message : 'matrix start-cell pre-check failed' });
|
|
19771
|
+
return;
|
|
19772
|
+
}
|
|
19773
|
+
}
|
|
19774
|
+
// Issue the per-(account, targetMachine) account-follow-me mandate — EXACTLY the bounds
|
|
19775
|
+
// /mandate/issue-for-machine writes (R1 exact-bounds, re-mint), PIN already verified above.
|
|
19776
|
+
// The agents pair is this Echo identity's routing fingerprint (issuer === target identity:
|
|
19777
|
+
// the agent following its own account onto another machine), as the scan card does.
|
|
19778
|
+
const expiresAt = new Date(Date.now() + 60 * 60 * 1000).toISOString();
|
|
19779
|
+
let mandateId;
|
|
19780
|
+
try {
|
|
19781
|
+
const mandate = ctx.coordination.store.issue({
|
|
19782
|
+
scope: 'account-follow-me',
|
|
19783
|
+
agents: [localFp, localFp],
|
|
19784
|
+
authorities: [
|
|
19785
|
+
{ action: 'account-follow-me', bounds: { accountId, targetMachineId: machineId, mechanism: 're-mint' } },
|
|
19786
|
+
],
|
|
19787
|
+
author: 'justin',
|
|
19788
|
+
expiresAt,
|
|
19789
|
+
});
|
|
19790
|
+
mandateId = mandate.id;
|
|
19791
|
+
// For a PEER target, deliver the signed mandate over the mesh first (the proven R4a path
|
|
19792
|
+
// that enrolled adriana); the peer's enroll/start re-verifies the issuance signature.
|
|
19793
|
+
if (!isSelf) {
|
|
19794
|
+
if (!ctx.packageMandateForDelivery || !ctx.deliverMandateToMachine) {
|
|
19795
|
+
res.status(503).json({ error: 'cross-machine mandate delivery unavailable (no mesh identity)' });
|
|
19796
|
+
return;
|
|
19797
|
+
}
|
|
19798
|
+
const portable = ctx.packageMandateForDelivery(mandate);
|
|
19799
|
+
const outcome = await ctx.deliverMandateToMachine({ targetMachineId: machineId, portable });
|
|
19800
|
+
if (!outcome.ok) {
|
|
19801
|
+
console.log(`[matrix] start-cell accountId=${accountId} machineId=${machineId} outcome=deliver-failed`);
|
|
19802
|
+
res.status(502).json({ error: 'could not deliver authorization to the target machine — try again in a moment', retryable: true });
|
|
19803
|
+
return;
|
|
19804
|
+
}
|
|
19805
|
+
}
|
|
19806
|
+
}
|
|
19807
|
+
catch (err) {
|
|
19808
|
+
res.status(500).json({ error: err instanceof Error ? err.message : 'matrix mandate issuance failed' });
|
|
19809
|
+
return;
|
|
19810
|
+
}
|
|
19811
|
+
// Drive the EXISTING mandate-gated enroll/start (no reimplementation of email resolution /
|
|
19812
|
+
// S7 / configHome / driveLogin). self → loopback; peer → the peer's local enroll/start. On
|
|
19813
|
+
// success it returns { login }; on an unresolvable email a 409; on a drive failure a 502.
|
|
19814
|
+
let baseUrl;
|
|
19815
|
+
if (isSelf) {
|
|
19816
|
+
baseUrl = `http://${ctx.config.host || '127.0.0.1'}:${ctx.config.port}`;
|
|
19817
|
+
}
|
|
19818
|
+
else {
|
|
19819
|
+
const peer = (ctx.resolvePeerUrls?.() ?? []).find((p) => p.machineId === machineId);
|
|
19820
|
+
if (!peer) {
|
|
19821
|
+
console.log(`[matrix] start-cell accountId=${accountId} machineId=${machineId} outcome=peer-unreachable`);
|
|
19822
|
+
res.status(502).json({ error: `target machine ${machineId} is not reachable right now — try again in a moment`, retryable: true });
|
|
19823
|
+
return;
|
|
19824
|
+
}
|
|
19825
|
+
baseUrl = peer.url;
|
|
19826
|
+
}
|
|
19827
|
+
try {
|
|
19828
|
+
const r = await fetch(`${baseUrl}/subscription-pool/follow-me/enroll/start`, {
|
|
19829
|
+
method: 'POST',
|
|
19830
|
+
headers: { Authorization: `Bearer ${ctx.config.authToken}`, 'Content-Type': 'application/json' },
|
|
19831
|
+
body: JSON.stringify({ mandateId, accountId }),
|
|
19832
|
+
signal: AbortSignal.timeout(40_000),
|
|
19833
|
+
});
|
|
19834
|
+
const body = await r.json().catch(() => ({}));
|
|
19835
|
+
if (r.status === 201 && body.login?.verificationUrl) {
|
|
19836
|
+
console.log(`[matrix] start-cell accountId=${accountId} machineId=${machineId} outcome=started`);
|
|
19837
|
+
res.status(201).json({ verificationUrl: body.login.verificationUrl, loginId: body.login.id ?? accountId, machineId });
|
|
19838
|
+
return;
|
|
19839
|
+
}
|
|
19840
|
+
if (r.status === 409) {
|
|
19841
|
+
console.log(`[matrix] start-cell accountId=${accountId} machineId=${machineId} outcome=cannot-resolve-email`);
|
|
19842
|
+
res.status(409).json({ error: body.error || 'cannot resolve approved account email' });
|
|
19843
|
+
return;
|
|
19844
|
+
}
|
|
19845
|
+
// Mandate issued but enroll-start failed (drive throw / unreachable / other). Honest
|
|
19846
|
+
// retryable 502 — the unused mandate lapses by its TTL; a re-tap reuses or re-mints.
|
|
19847
|
+
console.log(`[matrix] start-cell accountId=${accountId} machineId=${machineId} outcome=enroll-start-failed`);
|
|
19848
|
+
res.status(502).json({ error: body.error || 'could not start the sign-in on the target — try again', retryable: true });
|
|
19849
|
+
}
|
|
19850
|
+
catch (err) {
|
|
19851
|
+
console.log(`[matrix] start-cell accountId=${accountId} machineId=${machineId} outcome=enroll-start-error`);
|
|
19852
|
+
res.status(502).json({ error: 'could not reach the machine doing the login — try again', retryable: true });
|
|
19853
|
+
}
|
|
19854
|
+
});
|
|
19503
19855
|
// Single-segment path → no collision with /enroll/:id/complete (3 segments).
|
|
19504
19856
|
router.post('/subscription-pool/enroll/reissue-expired', async (_req, res) => {
|
|
19505
19857
|
if (!ctx.enrollmentWizard) {
|