ftown-bridge 0.19.54 → 0.19.56
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/claude-runner.d.ts +4 -6
- package/dist/claude-runner.js +73 -30
- package/dist/claude-runner.js.map +1 -1
- package/dist/create-ftown-session.d.ts +4 -0
- package/dist/create-ftown-session.js +2 -0
- package/dist/create-ftown-session.js.map +1 -1
- package/dist/index.js +84 -6
- package/dist/index.js.map +1 -1
- package/dist/pairing-client.d.ts +15 -0
- package/dist/pairing-client.js +349 -6
- package/dist/pairing-client.js.map +1 -1
- package/dist/security/bridge/pending-approval.d.ts +21 -0
- package/dist/security/bridge/pending-approval.js +79 -0
- package/dist/security/bridge/pending-approval.js.map +1 -0
- package/dist/security/bridge/pending-enrollment.d.ts +22 -1
- package/dist/security/bridge/pending-enrollment.js +73 -9
- package/dist/security/bridge/pending-enrollment.js.map +1 -1
- package/dist/security/pending-approval-crypto.d.ts +29 -0
- package/dist/security/pending-approval-crypto.js +716 -0
- package/dist/security/pending-approval-crypto.js.map +1 -0
- package/dist/security/pending-approval-protocol.d.ts +329 -0
- package/dist/security/pending-approval-protocol.js +2 -0
- package/dist/security/pending-approval-protocol.js.map +1 -0
- package/dist/security-cli.js +8 -0
- package/dist/security-cli.js.map +1 -1
- package/dist/terminal-manager.d.ts +4 -0
- package/dist/terminal-manager.js +6 -0
- package/dist/terminal-manager.js.map +1 -1
- package/package.json +2 -2
package/dist/claude-runner.d.ts
CHANGED
|
@@ -30,12 +30,10 @@ export declare class ProcessRunner extends EventEmitter<ProcessRunnerEvents> {
|
|
|
30
30
|
private readonly dependencies;
|
|
31
31
|
private readonly activeProcesses;
|
|
32
32
|
private readonly runtimes;
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
private readonly
|
|
37
|
-
/** Sessions detaching on shutdown; the tmux session stays alive, emit nothing. */
|
|
38
|
-
private readonly detachOnly;
|
|
33
|
+
/** stop/detach intent must not transfer to a later launch with the same ID. */
|
|
34
|
+
private readonly generations;
|
|
35
|
+
/** A tmux generation can attach multiple clients; track each PTY's exit. */
|
|
36
|
+
private readonly exitedProcesses;
|
|
39
37
|
/** Last client-requested size, so tmux reattach does not snap back to creation-time size. */
|
|
40
38
|
private readonly lastSizes;
|
|
41
39
|
constructor(dependencies?: {
|
package/dist/claude-runner.js
CHANGED
|
@@ -7,12 +7,10 @@ export class ProcessRunner extends EventEmitter {
|
|
|
7
7
|
dependencies;
|
|
8
8
|
activeProcesses = new Map();
|
|
9
9
|
runtimes = new Map();
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/** Sessions detaching on shutdown; the tmux session stays alive, emit nothing. */
|
|
15
|
-
detachOnly = new Set();
|
|
10
|
+
/** stop/detach intent must not transfer to a later launch with the same ID. */
|
|
11
|
+
generations = new Map();
|
|
12
|
+
/** A tmux generation can attach multiple clients; track each PTY's exit. */
|
|
13
|
+
exitedProcesses = new WeakSet();
|
|
16
14
|
/** Last client-requested size, so tmux reattach does not snap back to creation-time size. */
|
|
17
15
|
lastSizes = new Map();
|
|
18
16
|
constructor(dependencies = {}) {
|
|
@@ -33,12 +31,15 @@ export class ProcessRunner extends EventEmitter {
|
|
|
33
31
|
const cols = options.cols ?? 120;
|
|
34
32
|
const rows = options.rows ?? 40;
|
|
35
33
|
const env = this.buildEnv(sessionId, options);
|
|
34
|
+
const generation = { stopping: false, detachOnly: false };
|
|
35
|
+
this.generations.set(sessionId, generation);
|
|
36
|
+
this.activeProcesses.delete(sessionId);
|
|
37
|
+
this.lastSizes.delete(sessionId);
|
|
36
38
|
console.log(`[ProcessRunner] Spawning command in ${cwd} (${this.getPreferredRuntime()}): ${command}`);
|
|
37
39
|
if (this.getPreferredRuntime() === 'tmux') {
|
|
38
|
-
//
|
|
39
|
-
// creation window is recorded (via this.stopping) instead of lost.
|
|
40
|
+
// Register the generation before async creation so stop() can cancel it.
|
|
40
41
|
this.runtimes.set(sessionId, 'tmux');
|
|
41
|
-
void this.runTmux(sessionId, command, env, {
|
|
42
|
+
void this.runTmux(sessionId, generation, command, env, {
|
|
42
43
|
cwd,
|
|
43
44
|
cols,
|
|
44
45
|
rows,
|
|
@@ -48,7 +49,7 @@ export class ProcessRunner extends EventEmitter {
|
|
|
48
49
|
});
|
|
49
50
|
return;
|
|
50
51
|
}
|
|
51
|
-
this.runDirect(sessionId, command, env, cwd, cols, rows, options);
|
|
52
|
+
this.runDirect(sessionId, generation, command, env, cwd, cols, rows, options);
|
|
52
53
|
}
|
|
53
54
|
/** Attach to an existing tmux session without creating it (session resurrection). */
|
|
54
55
|
reattach(sessionId, options = {}) {
|
|
@@ -59,7 +60,9 @@ export class ProcessRunner extends EventEmitter {
|
|
|
59
60
|
return false;
|
|
60
61
|
}
|
|
61
62
|
const env = this.buildEnv(sessionId, { parentSessionId: options.parentSessionId });
|
|
62
|
-
|
|
63
|
+
const generation = { stopping: false, detachOnly: false };
|
|
64
|
+
this.generations.set(sessionId, generation);
|
|
65
|
+
this.attachTmux(sessionId, generation, {
|
|
63
66
|
env,
|
|
64
67
|
cwd: options.workingDir ?? process.cwd(),
|
|
65
68
|
cols: options.cols ?? 120,
|
|
@@ -90,8 +93,10 @@ export class ProcessRunner extends EventEmitter {
|
|
|
90
93
|
stop(sessionId) {
|
|
91
94
|
const proc = this.activeProcesses.get(sessionId);
|
|
92
95
|
const isTmux = this.runtimes.get(sessionId) === 'tmux';
|
|
96
|
+
const generation = this.generations.get(sessionId);
|
|
93
97
|
if (isTmux) {
|
|
94
|
-
|
|
98
|
+
if (generation)
|
|
99
|
+
generation.stopping = true;
|
|
95
100
|
this.killTmuxSessionLogged(sessionId);
|
|
96
101
|
}
|
|
97
102
|
if (!proc) {
|
|
@@ -105,14 +110,18 @@ export class ProcessRunner extends EventEmitter {
|
|
|
105
110
|
// Direct runtime: mark stopping so the PTY onExit emits nothing — like the
|
|
106
111
|
// tmux path, the caller owns the final status, and emitting here races
|
|
107
112
|
// remove_session's delete with a status save that recreates the record.
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
}
|
|
113
|
+
if (generation)
|
|
114
|
+
generation.stopping = true;
|
|
111
115
|
proc.kill();
|
|
112
116
|
setTimeout(() => {
|
|
113
|
-
if (this.
|
|
117
|
+
if (generation && !this.exitedProcesses.has(proc)) {
|
|
118
|
+
if (this.generations.get(sessionId) === generation && this.activeProcesses.get(sessionId) === proc) {
|
|
119
|
+
generation.forcedStopProcess = proc;
|
|
120
|
+
}
|
|
114
121
|
proc.kill('SIGKILL');
|
|
115
|
-
this.activeProcesses.
|
|
122
|
+
if (this.generations.get(sessionId) === generation && this.activeProcesses.get(sessionId) === proc) {
|
|
123
|
+
this.activeProcesses.delete(sessionId);
|
|
124
|
+
}
|
|
116
125
|
}
|
|
117
126
|
}, 5000);
|
|
118
127
|
return true;
|
|
@@ -121,7 +130,9 @@ export class ProcessRunner extends EventEmitter {
|
|
|
121
130
|
for (const [sessionId, proc] of this.activeProcesses) {
|
|
122
131
|
if (this.runtimes.get(sessionId) === 'tmux') {
|
|
123
132
|
// Detach only — the tmux session keeps running and survives bridge restarts.
|
|
124
|
-
this.
|
|
133
|
+
const generation = this.generations.get(sessionId);
|
|
134
|
+
if (generation)
|
|
135
|
+
generation.detachOnly = true;
|
|
125
136
|
proc.kill();
|
|
126
137
|
}
|
|
127
138
|
else {
|
|
@@ -162,7 +173,7 @@ export class ProcessRunner extends EventEmitter {
|
|
|
162
173
|
applyTerminalColorEnv(env);
|
|
163
174
|
return env;
|
|
164
175
|
}
|
|
165
|
-
async runTmux(sessionId, command, env, params) {
|
|
176
|
+
async runTmux(sessionId, generation, command, env, params) {
|
|
166
177
|
try {
|
|
167
178
|
await (this.dependencies.createTmuxSession ?? createTmuxSession)({
|
|
168
179
|
sessionId,
|
|
@@ -174,7 +185,10 @@ export class ProcessRunner extends EventEmitter {
|
|
|
174
185
|
});
|
|
175
186
|
}
|
|
176
187
|
catch (err) {
|
|
177
|
-
|
|
188
|
+
if (this.generations.get(sessionId) !== generation)
|
|
189
|
+
return;
|
|
190
|
+
const wasStopping = generation.stopping;
|
|
191
|
+
this.generations.delete(sessionId);
|
|
178
192
|
this.runtimes.delete(sessionId);
|
|
179
193
|
console.error(`[ProcessRunner] Failed to create tmux session:`, err);
|
|
180
194
|
if (!wasStopping) {
|
|
@@ -184,14 +198,19 @@ export class ProcessRunner extends EventEmitter {
|
|
|
184
198
|
}
|
|
185
199
|
// stop() may have arrived while the session was being created; honor it
|
|
186
200
|
// instead of attaching. stop_session already persisted the final status.
|
|
187
|
-
if (this.
|
|
201
|
+
if (this.generations.get(sessionId) !== generation)
|
|
202
|
+
return;
|
|
203
|
+
if (generation.stopping) {
|
|
204
|
+
this.generations.delete(sessionId);
|
|
188
205
|
this.runtimes.delete(sessionId);
|
|
189
206
|
this.killTmuxSessionLogged(sessionId);
|
|
190
207
|
return;
|
|
191
208
|
}
|
|
192
|
-
this.attachTmux(sessionId, { ...params, env });
|
|
209
|
+
this.attachTmux(sessionId, generation, { ...params, env });
|
|
193
210
|
}
|
|
194
|
-
attachTmux(sessionId, params) {
|
|
211
|
+
attachTmux(sessionId, generation, params) {
|
|
212
|
+
if (this.generations.get(sessionId) !== generation)
|
|
213
|
+
return;
|
|
195
214
|
// params holds creation-time cols/rows; prefer the latest client size.
|
|
196
215
|
const size = this.lastSizes.get(sessionId);
|
|
197
216
|
if (size) {
|
|
@@ -209,6 +228,10 @@ export class ProcessRunner extends EventEmitter {
|
|
|
209
228
|
console.log(`[ProcessRunner] Attached to tmux session ${tmuxSessionName(sessionId)}, client pid: ${proc.pid}`);
|
|
210
229
|
}
|
|
211
230
|
catch (err) {
|
|
231
|
+
if (this.generations.get(sessionId) !== generation)
|
|
232
|
+
return;
|
|
233
|
+
this.generations.delete(sessionId);
|
|
234
|
+
this.runtimes.delete(sessionId);
|
|
212
235
|
console.error(`[ProcessRunner] Failed to attach to tmux session:`, err);
|
|
213
236
|
this.emit('error', sessionId, err instanceof Error ? err : new Error(String(err)));
|
|
214
237
|
return;
|
|
@@ -216,16 +239,24 @@ export class ProcessRunner extends EventEmitter {
|
|
|
216
239
|
this.activeProcesses.set(sessionId, proc);
|
|
217
240
|
this.runtimes.set(sessionId, 'tmux');
|
|
218
241
|
proc.onData((data) => {
|
|
219
|
-
this.
|
|
242
|
+
if (this.generations.get(sessionId) === generation && this.activeProcesses.get(sessionId) === proc)
|
|
243
|
+
this.emit('data', sessionId, data);
|
|
220
244
|
});
|
|
221
245
|
proc.onExit(({ exitCode, signal }) => {
|
|
246
|
+
this.exitedProcesses.add(proc);
|
|
247
|
+
if (this.generations.get(sessionId) !== generation ||
|
|
248
|
+
(this.activeProcesses.get(sessionId) !== proc &&
|
|
249
|
+
!(generation.stopping && generation.forcedStopProcess === proc && !this.activeProcesses.has(sessionId))))
|
|
250
|
+
return;
|
|
222
251
|
console.log(`[ProcessRunner] tmux attach client exited, code: ${exitCode}, signal: ${signal}`);
|
|
223
252
|
this.activeProcesses.delete(sessionId);
|
|
224
253
|
this.runtimes.delete(sessionId);
|
|
225
|
-
if (
|
|
254
|
+
if (generation.detachOnly) {
|
|
255
|
+
this.generations.delete(sessionId);
|
|
226
256
|
return;
|
|
227
257
|
}
|
|
228
|
-
if (
|
|
258
|
+
if (generation.stopping) {
|
|
259
|
+
this.generations.delete(sessionId);
|
|
229
260
|
// stop() initiated this exit; stop_session persists the final status,
|
|
230
261
|
// so emit nothing (kill-session makes the trap record a bogus code).
|
|
231
262
|
readAndClearExitCode(sessionId);
|
|
@@ -234,10 +265,11 @@ export class ProcessRunner extends EventEmitter {
|
|
|
234
265
|
}
|
|
235
266
|
if (hasTmuxSession(sessionId)) {
|
|
236
267
|
// Client detached but the command is still running — reattach to keep streaming.
|
|
237
|
-
this.attachTmux(sessionId, { ...params, initialInput: undefined });
|
|
268
|
+
this.attachTmux(sessionId, generation, { ...params, initialInput: undefined });
|
|
238
269
|
return;
|
|
239
270
|
}
|
|
240
271
|
this.lastSizes.delete(sessionId);
|
|
272
|
+
this.generations.delete(sessionId);
|
|
241
273
|
// The attach client's exit code is unrelated to the command's; the real
|
|
242
274
|
// code is written to a temp file by the command wrapper inside tmux.
|
|
243
275
|
const realCode = readAndClearExitCode(sessionId);
|
|
@@ -256,7 +288,7 @@ export class ProcessRunner extends EventEmitter {
|
|
|
256
288
|
this.emit('ready', sessionId);
|
|
257
289
|
this.scheduleInitialInput(sessionId, proc, params.initialInput, params.initialInputDelay, params.submitSuffix);
|
|
258
290
|
}
|
|
259
|
-
runDirect(sessionId, command, env, cwd, cols, rows, options) {
|
|
291
|
+
runDirect(sessionId, generation, command, env, cwd, cols, rows, options) {
|
|
260
292
|
let proc;
|
|
261
293
|
try {
|
|
262
294
|
const shell = directShellCommand(command);
|
|
@@ -270,6 +302,10 @@ export class ProcessRunner extends EventEmitter {
|
|
|
270
302
|
console.log(`[ProcessRunner] Process spawned, pid: ${proc.pid}`);
|
|
271
303
|
}
|
|
272
304
|
catch (err) {
|
|
305
|
+
if (this.generations.get(sessionId) !== generation)
|
|
306
|
+
return;
|
|
307
|
+
this.generations.delete(sessionId);
|
|
308
|
+
this.runtimes.delete(sessionId);
|
|
273
309
|
console.error(`[ProcessRunner] Failed to spawn process:`, err);
|
|
274
310
|
this.emit('error', sessionId, err instanceof Error ? err : new Error(String(err)));
|
|
275
311
|
return;
|
|
@@ -277,14 +313,21 @@ export class ProcessRunner extends EventEmitter {
|
|
|
277
313
|
this.activeProcesses.set(sessionId, proc);
|
|
278
314
|
this.runtimes.set(sessionId, 'direct');
|
|
279
315
|
proc.onData((data) => {
|
|
280
|
-
this.
|
|
316
|
+
if (this.generations.get(sessionId) === generation && this.activeProcesses.get(sessionId) === proc)
|
|
317
|
+
this.emit('data', sessionId, data);
|
|
281
318
|
});
|
|
282
319
|
proc.onExit(({ exitCode, signal }) => {
|
|
320
|
+
this.exitedProcesses.add(proc);
|
|
321
|
+
if (this.generations.get(sessionId) !== generation ||
|
|
322
|
+
(this.activeProcesses.get(sessionId) !== proc &&
|
|
323
|
+
!(generation.stopping && generation.forcedStopProcess === proc && !this.activeProcesses.has(sessionId))))
|
|
324
|
+
return;
|
|
283
325
|
console.log(`[ProcessRunner] Process exited, code: ${exitCode}, signal: ${signal}`);
|
|
284
326
|
this.activeProcesses.delete(sessionId);
|
|
285
327
|
this.runtimes.delete(sessionId);
|
|
286
328
|
this.lastSizes.delete(sessionId);
|
|
287
|
-
|
|
329
|
+
this.generations.delete(sessionId);
|
|
330
|
+
if (generation.stopping) {
|
|
288
331
|
// stop() initiated this exit; the caller persists the final status.
|
|
289
332
|
return;
|
|
290
333
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-runner.js","sourceRoot":"","sources":["../src/claude-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-runner.js","sourceRoot":"","sources":["../src/claude-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,10 @@ export interface CreateFtownSessionDeps {
|
|
|
12
12
|
hookToken: string;
|
|
13
13
|
notifyScriptPath: string;
|
|
14
14
|
wireTerminalInput: (sessionId: string) => void;
|
|
15
|
+
getTerminalSize?: (sessionId: string) => {
|
|
16
|
+
cols: number;
|
|
17
|
+
rows: number;
|
|
18
|
+
} | undefined;
|
|
15
19
|
}
|
|
16
20
|
export interface CreateFtownSessionInput {
|
|
17
21
|
command?: string;
|
|
@@ -236,7 +236,9 @@ export async function relaunchFtownSession(deps, session, mode) {
|
|
|
236
236
|
await deps.store.saveSession(session);
|
|
237
237
|
await deps.centrifugo.publishSessionUpdate(deps.userId, session);
|
|
238
238
|
await staggerHarnessSpawn(session.shellType);
|
|
239
|
+
const terminalSize = deps.getTerminalSize?.(session.id);
|
|
239
240
|
deps.runner.run(session.id, command, {
|
|
241
|
+
...terminalSize,
|
|
240
242
|
workingDir: session.workingDir,
|
|
241
243
|
env: session.env,
|
|
242
244
|
hookPort: deps.hookPort,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-ftown-session.js","sourceRoot":"","sources":["../src/create-ftown-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-ftown-session.js","sourceRoot":"","sources":["../src/create-ftown-session.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { hostname as osHostname, networkInterfaces, homedir } from 'node:os';
|
|
|
6
6
|
import { fileURLToPath } from 'node:url';
|
|
7
7
|
import { mkdirSync, readFileSync, writeFileSync, unlinkSync } from 'node:fs';
|
|
8
8
|
import { randomBytes } from 'node:crypto';
|
|
9
|
+
import { createInterface } from 'node:readline/promises';
|
|
9
10
|
import { cleanup as ndcCleanup } from 'node-datachannel';
|
|
10
11
|
import { CentrifugoClient } from './centrifugo-client.js';
|
|
11
12
|
import { WatchRegistry } from './direct-transport/watch-registry.js';
|
|
@@ -24,7 +25,8 @@ import { assertSetupReady } from './setup-state.js';
|
|
|
24
25
|
import { canonicalNotifyPath } from './install-notify-script.js';
|
|
25
26
|
import { unregisterSession, configureSessionRegistryHome } from './session-registry.js';
|
|
26
27
|
import { loadOrCreateIdentity, readBoundBridgeIdentity } from './security/bridge/identity.js';
|
|
27
|
-
import { bindPendingBridgeIdentity, prepareBridgeEnrollment, savePairingVerificationUrl } from './security/bridge/pending-enrollment.js';
|
|
28
|
+
import { bindPendingBridgeIdentity, prepareBridgeEnrollment, preparePendingBridgeEnrollment, previousPendingBridgeAttempt, savePairingVerificationUrl } from './security/bridge/pending-enrollment.js';
|
|
29
|
+
import { selectBridgePairingMode, waitForPendingBridgeDecision, writePendingBridgeStatus } from './security/bridge/pending-approval.js';
|
|
28
30
|
import { readAccountHistory } from './security/bridge/account-client.js';
|
|
29
31
|
import { openAccountApproval } from './security/account-crypto.js';
|
|
30
32
|
import { BridgeSecurityService, applicationJson } from './security/bridge/security.js';
|
|
@@ -39,7 +41,7 @@ import { fetchBridgeToken, refreshBridgeToken } from './bridge-auth.js';
|
|
|
39
41
|
import { RotatingTokenRefresher } from './rotating-token-refresher.js';
|
|
40
42
|
import { resolveDefaultDataDir, resolveFtownHome } from './ftown-home.js';
|
|
41
43
|
import { SessionController } from './session-controller.js';
|
|
42
|
-
import { runPairing } from './pairing-client.js';
|
|
44
|
+
import { cancelPreviousPendingPairing, runPairing } from './pairing-client.js';
|
|
43
45
|
import { createServer } from 'node:http';
|
|
44
46
|
import { generateAccessKey, mintHubJwt, sha256Hex } from './solo/solo-auth.js';
|
|
45
47
|
import { DEFAULT_SOLO_PORT, SOLO_USER_ID } from './solo/contract.js';
|
|
@@ -81,12 +83,18 @@ export async function runBridge(argv, commandName = 'ftown-bridge') {
|
|
|
81
83
|
.option('--port <port>', 'Public port for --solo front (default: see DEFAULT_SOLO_PORT)')
|
|
82
84
|
.option('--rotate-key', 'With --solo: regenerate the access key, print the new banner, exit (offline)')
|
|
83
85
|
.option('--token <jwt>', 'Bridge bootstrap token from the ftown dashboard (short-lived; used once to onboard, then a rotating refresh token is stored). Optional: with no token and no stored refresh token, the bridge runs interactive device pairing instead.')
|
|
86
|
+
.option('--account <email>', 'Request approval in this account’s trusted-device inbox; compare and confirm on both devices')
|
|
87
|
+
.option('--bootstrap', 'Explicit first-computer setup using a private approval link')
|
|
84
88
|
.option('--api-url <url>', 'ftown UI API URL', DEFAULT_API_URL)
|
|
85
89
|
.option('--data-dir <path>', 'Directory for session data (default: ~/.ftown/data)')
|
|
86
90
|
.option('--bridge-id <id>', 'Bridge instance ID (default: persisted per data dir)')
|
|
87
91
|
.action(async (opts) => {
|
|
88
92
|
if (opts.local && opts.solo)
|
|
89
93
|
program.error('--local and --solo cannot be combined');
|
|
94
|
+
if (opts.account !== undefined && opts.bootstrap)
|
|
95
|
+
program.error('--account and --bootstrap cannot be combined');
|
|
96
|
+
if ((opts.local || opts.solo) && (opts.account !== undefined || opts.bootstrap))
|
|
97
|
+
program.error('--account and --bootstrap require cloud mode');
|
|
90
98
|
const apiUrl = new URL(opts.apiUrl);
|
|
91
99
|
const isLocalHost = apiUrl.hostname === 'localhost' ||
|
|
92
100
|
apiUrl.hostname === '127.0.0.1' ||
|
|
@@ -338,14 +346,74 @@ export async function runBridge(argv, commandName = 'ftown-bridge') {
|
|
|
338
346
|
// refresh-token persist/resume logic below.
|
|
339
347
|
const boundAtStartup = await readBoundBridgeIdentity(dataDir);
|
|
340
348
|
let pendingEnrollment;
|
|
349
|
+
let pendingVerified;
|
|
341
350
|
const onboard = async () => {
|
|
342
351
|
if (opts.token) {
|
|
343
352
|
console.log('[Bridge] Authenticating with API...');
|
|
344
353
|
return fetchBridgeToken(opts.apiUrl, opts.token, bridgeId, local);
|
|
345
354
|
}
|
|
346
355
|
console.log('[Bridge] No bootstrap token or stored session — starting device pairing...');
|
|
347
|
-
if (!boundAtStartup)
|
|
348
|
-
|
|
356
|
+
if (!boundAtStartup) {
|
|
357
|
+
const interactive = Boolean(process.stdin.isTTY && process.stderr.isTTY);
|
|
358
|
+
const previous = await previousPendingBridgeAttempt(dataDir);
|
|
359
|
+
const mode = await selectBridgePairingMode({ account: opts.account, bootstrap: opts.bootstrap, interactive, previousPending: Boolean(previous) }, async () => {
|
|
360
|
+
const input = createInterface({ input: process.stdin, output: process.stderr });
|
|
361
|
+
try {
|
|
362
|
+
return await input.question('Account email (leave blank only for first-computer private-link setup): ');
|
|
363
|
+
}
|
|
364
|
+
finally {
|
|
365
|
+
input.close();
|
|
366
|
+
}
|
|
367
|
+
});
|
|
368
|
+
if (previous)
|
|
369
|
+
await cancelPreviousPendingPairing(opts.apiUrl, previous, AbortSignal.timeout(15000));
|
|
370
|
+
if (mode.method === 'pending-v1') {
|
|
371
|
+
const enrollment = await preparePendingBridgeEnrollment(dataDir, bridgeId, osHostname());
|
|
372
|
+
const lifetime = new AbortController();
|
|
373
|
+
const abort = () => lifetime.abort(new Error('Computer approval interrupted.'));
|
|
374
|
+
process.once('SIGINT', abort);
|
|
375
|
+
process.once('SIGTERM', abort);
|
|
376
|
+
try {
|
|
377
|
+
const result = await runPairing({ apiUrl: opts.apiUrl, bridgeId, hostname: osHostname(), platform: process.platform,
|
|
378
|
+
localPort: local.localPort, localNonce: local.localNonce, accountHint: mode.accountHint,
|
|
379
|
+
pending: { identity: enrollment.identity, request: enrollment.request, candidateToken: enrollment.candidateToken,
|
|
380
|
+
signal: lifetime.signal, pinOffer: enrollment.pinOffer, pinHello: enrollment.pinHello,
|
|
381
|
+
onLocalStatus: state => writePendingBridgeStatus(dataDir, state),
|
|
382
|
+
waitForLocalDecision: async (state, signal) => {
|
|
383
|
+
if (!interactive || state.phase !== 'comparing')
|
|
384
|
+
return waitForPendingBridgeDecision(dataDir, state, signal);
|
|
385
|
+
const localAbort = new AbortController();
|
|
386
|
+
const combined = AbortSignal.any([signal, localAbort.signal]);
|
|
387
|
+
const input = createInterface({ input: process.stdin, output: process.stderr });
|
|
388
|
+
const answer = input.question(`Verification code: ${state.comparisonCode}\nDoes it match the code on your trusted browser? [y/N] `, { signal: combined })
|
|
389
|
+
.then(value => ({ version: 1, requestId: state.requestId, processNonce: state.processNonce, expiresAt: state.expiresAt,
|
|
390
|
+
...(value.trim().toLowerCase() === 'y' || value.trim().toLowerCase() === 'yes'
|
|
391
|
+
? { decision: 'confirm', offerHash: state.offerHash, comparisonCode: state.comparisonCode }
|
|
392
|
+
: { decision: 'reject', offerHash: state.offerHash }) }));
|
|
393
|
+
try {
|
|
394
|
+
return await Promise.race([answer, waitForPendingBridgeDecision(dataDir, state, combined)]);
|
|
395
|
+
}
|
|
396
|
+
finally {
|
|
397
|
+
localAbort.abort();
|
|
398
|
+
input.close();
|
|
399
|
+
}
|
|
400
|
+
} },
|
|
401
|
+
});
|
|
402
|
+
if (result.approvalMethod !== 'pending-v1' || !result.verifiedAccountTrust || result.lastServerReadAt === undefined)
|
|
403
|
+
throw new Error('account_approval_required');
|
|
404
|
+
pendingVerified = result;
|
|
405
|
+
return result;
|
|
406
|
+
}
|
|
407
|
+
finally {
|
|
408
|
+
lifetime.abort();
|
|
409
|
+
process.removeListener('SIGINT', abort);
|
|
410
|
+
process.removeListener('SIGTERM', abort);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
if (!interactive && !opts.bootstrap)
|
|
414
|
+
console.log('[Bridge] Private-link setup selected. Use --account <email> to request approval without copying a link.');
|
|
415
|
+
pendingEnrollment = await prepareBridgeEnrollment(dataDir, bridgeId, osHostname(), Date.now(), Boolean(previous) || Boolean(opts.bootstrap));
|
|
416
|
+
}
|
|
349
417
|
return runPairing({
|
|
350
418
|
apiUrl: opts.apiUrl,
|
|
351
419
|
bridgeId,
|
|
@@ -426,7 +494,13 @@ export async function runBridge(argv, commandName = 'ftown-bridge') {
|
|
|
426
494
|
throw new Error('security_setup_required: bridge auth must provide immutable ownerId');
|
|
427
495
|
let identity;
|
|
428
496
|
let accountBootstrap = boundAtStartup?.bootstrap;
|
|
429
|
-
if (
|
|
497
|
+
if (pendingVerified) {
|
|
498
|
+
accountBootstrap = pendingVerified.verifiedAccountTrust;
|
|
499
|
+
if (accountBootstrap.checkpoint.ownerId !== auth.ownerId)
|
|
500
|
+
throw new Error('wrong_context');
|
|
501
|
+
identity = await bindPendingBridgeIdentity(dataDir, accountBootstrap);
|
|
502
|
+
}
|
|
503
|
+
else if (pendingEnrollment) {
|
|
430
504
|
if (!auth.accountApproval || !auth.accountHistory)
|
|
431
505
|
throw new Error('account_approval_required');
|
|
432
506
|
const history = await readAccountHistory(opts.apiUrl, currentBridgeToken);
|
|
@@ -460,7 +534,6 @@ export async function runBridge(argv, commandName = 'ftown-bridge') {
|
|
|
460
534
|
if (!registration.ok)
|
|
461
535
|
throw new Error('security_setup_required: endpoint directory registration failed');
|
|
462
536
|
}
|
|
463
|
-
console.log('[Bridge] Encrypted endpoint ready. Run ftown security invite to pair a browser.');
|
|
464
537
|
const userId = auth.userId;
|
|
465
538
|
const centrifugoUrl = auth.centrifugoUrl;
|
|
466
539
|
console.log('========================================');
|
|
@@ -665,6 +738,7 @@ export async function runBridge(argv, commandName = 'ftown-bridge') {
|
|
|
665
738
|
hookToken: apiToken,
|
|
666
739
|
notifyScriptPath,
|
|
667
740
|
wireTerminalInput,
|
|
741
|
+
getTerminalSize: (sid) => terminalManager.getSize(sid),
|
|
668
742
|
};
|
|
669
743
|
localApiServer.setSessionFactory(sessionFactoryDeps);
|
|
670
744
|
// Terminal output pump: buffers runner PTY output and owns the runner
|
|
@@ -717,6 +791,7 @@ export async function runBridge(argv, commandName = 'ftown-bridge') {
|
|
|
717
791
|
// Write and cleanup unlink MUST use this same resolved path.
|
|
718
792
|
const bridgeStateDir = ftownHome;
|
|
719
793
|
const bridgePointerPath = join(bridgeStateDir, 'bridge.json');
|
|
794
|
+
let bridgePointerPublished = false;
|
|
720
795
|
try {
|
|
721
796
|
mkdirSync(bridgeStateDir, { recursive: true, mode: 0o700 });
|
|
722
797
|
writeFileSync(bridgePointerPath, JSON.stringify({
|
|
@@ -730,6 +805,7 @@ export async function runBridge(argv, commandName = 'ftown-bridge') {
|
|
|
730
805
|
harness: join(homedir(), '.ftown', 'bin', 'ftown-harness'),
|
|
731
806
|
harnessCli: join(homedir(), '.ftown', 'cli', 'dist', 'ftown-cli.js'),
|
|
732
807
|
}, null, 2), { mode: 0o600 });
|
|
808
|
+
bridgePointerPublished = true;
|
|
733
809
|
console.log(`[Bridge] Wrote bridge pointer to ${bridgePointerPath}`);
|
|
734
810
|
}
|
|
735
811
|
catch (err) {
|
|
@@ -831,6 +907,8 @@ export async function runBridge(argv, commandName = 'ftown-bridge') {
|
|
|
831
907
|
void (async () => {
|
|
832
908
|
ready = true;
|
|
833
909
|
console.log('[Bridge] Ready and listening for commands');
|
|
910
|
+
if (bridgePointerPublished)
|
|
911
|
+
console.log('[Bridge] Encrypted endpoint ready. Run ftown security invite to pair a browser.');
|
|
834
912
|
try {
|
|
835
913
|
await resurrection.resurrectSessions();
|
|
836
914
|
}
|