@jobshimo/browser-link 0.40.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -12
- package/dist/admin/actions.d.ts +57 -0
- package/dist/admin/actions.js +163 -0
- package/dist/admin/actions.js.map +1 -0
- package/dist/admin/descriptor.d.ts +65 -0
- package/dist/admin/descriptor.js +205 -0
- package/dist/admin/descriptor.js.map +1 -0
- package/dist/admin/i18n.d.ts +90 -0
- package/dist/admin/i18n.js +203 -0
- package/dist/admin/i18n.js.map +1 -0
- package/dist/admin/primary.d.ts +21 -0
- package/dist/admin/primary.js +56 -0
- package/dist/admin/primary.js.map +1 -0
- package/dist/admin/sources.d.ts +22 -0
- package/dist/admin/sources.js +82 -0
- package/dist/admin/sources.js.map +1 -0
- package/dist/bridge/dispatch.js +17 -7
- package/dist/bridge/dispatch.js.map +1 -1
- package/dist/bridge/ws-bridge.d.ts +65 -3
- package/dist/bridge/ws-bridge.js +165 -7
- package/dist/bridge/ws-bridge.js.map +1 -1
- package/dist/cli.js +6 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts +24 -0
- package/dist/commands/doctor.js +62 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/free-port.d.ts +40 -1
- package/dist/commands/free-port.js +72 -7
- package/dist/commands/free-port.js.map +1 -1
- package/dist/extension/admin-view.d.ts +95 -0
- package/dist/extension/admin-view.js +164 -0
- package/dist/extension/admin-view.js.map +1 -0
- package/dist/extension/background.js +176 -8
- package/dist/extension/background.js.map +1 -1
- package/dist/extension/manifest.json +1 -1
- package/dist/extension/popup.html +113 -0
- package/dist/extension/popup.js +282 -1
- package/dist/extension/popup.js.map +1 -1
- package/dist/extension/repair-policy.d.ts +60 -0
- package/dist/extension/repair-policy.js +79 -0
- package/dist/extension/repair-policy.js.map +1 -0
- package/dist/extension/version-status.d.ts +44 -0
- package/dist/extension/version-status.js +60 -0
- package/dist/extension/version-status.js.map +1 -0
- package/dist/lifecycle/election.d.ts +98 -0
- package/dist/lifecycle/election.js +187 -0
- package/dist/lifecycle/election.js.map +1 -0
- package/dist/lifecycle/processes.d.ts +67 -0
- package/dist/lifecycle/processes.js +239 -0
- package/dist/lifecycle/processes.js.map +1 -0
- package/dist/lifecycle/repair.d.ts +48 -0
- package/dist/lifecycle/repair.js +67 -0
- package/dist/lifecycle/repair.js.map +1 -0
- package/dist/lifecycle/version-endpoint.d.ts +16 -0
- package/dist/lifecycle/version-endpoint.js +50 -0
- package/dist/lifecycle/version-endpoint.js.map +1 -0
- package/dist/manual/topics.js +1 -1
- package/dist/manual/topics.js.map +1 -1
- package/dist/messages.d.ts +115 -2
- package/dist/server.js +104 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/browser-dispatch.d.ts +8 -0
- package/dist/tools/browser-dispatch.js +15 -1
- package/dist/tools/browser-dispatch.js.map +1 -1
- package/dist/ui/app.d.ts +4 -1
- package/dist/ui/app.js +55 -42
- package/dist/ui/app.js.map +1 -1
- package/dist/ui/screens/free-port.js +4 -2
- package/dist/ui/screens/free-port.js.map +1 -1
- package/dist/ui/screens/index.d.ts +1 -0
- package/dist/ui/screens/index.js +1 -0
- package/dist/ui/screens/index.js.map +1 -1
- package/dist/ui/screens/menu.d.ts +11 -1
- package/dist/ui/screens/menu.js +12 -4
- package/dist/ui/screens/menu.js.map +1 -1
- package/dist/ui/screens/status.d.ts +19 -0
- package/dist/ui/screens/status.js +67 -0
- package/dist/ui/screens/status.js.map +1 -0
- package/dist/version.d.ts +8 -0
- package/dist/version.js +16 -0
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processes.js","sourceRoot":"","sources":["../../src/lifecycle/processes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { BridgeRepairMessage, ServerToExtension } from '../messages.js';
|
|
2
|
+
/**
|
|
3
|
+
* Popup "Repair connection", server side (S4).
|
|
4
|
+
*
|
|
5
|
+
* On `bridge.repair` the bridge answers first, then this process restarts
|
|
6
|
+
* itself on the installed code: spawn the installed CLI detached, terminate
|
|
7
|
+
* every extension socket uncleanly (`ws.terminate()`, which the extension's
|
|
8
|
+
* auto-reconnect treats as involuntary), stop IPC (proxies get
|
|
9
|
+
* `primary-closing`) and exit 0. The child wins the port through the
|
|
10
|
+
* election's bind retries, and the extension reconnects to it by itself.
|
|
11
|
+
*
|
|
12
|
+
* The policy is pure; `server.ts` injects the real spawn/terminate/exit.
|
|
13
|
+
*/
|
|
14
|
+
export interface RepairDeps {
|
|
15
|
+
/** `process.execPath`. */
|
|
16
|
+
execPath: string;
|
|
17
|
+
/** The installed `dist/cli.js` (same file the process started from). */
|
|
18
|
+
cliPath: string;
|
|
19
|
+
spawn: (command: string, args: string[], options: {
|
|
20
|
+
detached: true;
|
|
21
|
+
stdio: 'ignore';
|
|
22
|
+
windowsHide: true;
|
|
23
|
+
}) => {
|
|
24
|
+
unref(): void;
|
|
25
|
+
};
|
|
26
|
+
terminateSockets: () => void;
|
|
27
|
+
stopIpc: () => Promise<void>;
|
|
28
|
+
exit: (code: number) => void;
|
|
29
|
+
/** Waits long enough for the ack frame to be flushed to the socket. */
|
|
30
|
+
delay: (ms: number) => Promise<void>;
|
|
31
|
+
log?: (msg: string) => void;
|
|
32
|
+
}
|
|
33
|
+
/** Time given to the `bridge.repair.result` frame before sockets die. */
|
|
34
|
+
export declare const REPAIR_FLUSH_DELAY_MS = 150;
|
|
35
|
+
export interface RepairController {
|
|
36
|
+
/** Start the restart (once). Returns whether it is (now) in progress. */
|
|
37
|
+
start(): boolean;
|
|
38
|
+
/** Settles when the current restart attempt finished (tests). */
|
|
39
|
+
readonly done: Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
export declare function createRepairController(deps: RepairDeps): RepairController;
|
|
42
|
+
/**
|
|
43
|
+
* Answer one `bridge.repair` frame: the ack goes out BEFORE the repair
|
|
44
|
+
* starts, so the popup learns the outcome even though its socket is about to
|
|
45
|
+
* be terminated. `startRepair` is undefined in a process that cannot repair
|
|
46
|
+
* itself (tests, a bridge started without the wiring).
|
|
47
|
+
*/
|
|
48
|
+
export declare function answerRepairRequest(msg: BridgeRepairMessage, send: (reply: ServerToExtension) => void, startRepair: (() => boolean) | undefined): void;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/** Time given to the `bridge.repair.result` frame before sockets die. */
|
|
2
|
+
export const REPAIR_FLUSH_DELAY_MS = 150;
|
|
3
|
+
export function createRepairController(deps) {
|
|
4
|
+
let inProgress = false;
|
|
5
|
+
let done = Promise.resolve();
|
|
6
|
+
const run = async () => {
|
|
7
|
+
await deps.delay(REPAIR_FLUSH_DELAY_MS);
|
|
8
|
+
try {
|
|
9
|
+
deps
|
|
10
|
+
.spawn(deps.execPath, [deps.cliPath], {
|
|
11
|
+
detached: true,
|
|
12
|
+
stdio: 'ignore',
|
|
13
|
+
windowsHide: true,
|
|
14
|
+
})
|
|
15
|
+
.unref();
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
// Without a successor, exiting would leave no server at all: keep
|
|
19
|
+
// serving and let the user fall back to `browser-link stop`.
|
|
20
|
+
inProgress = false;
|
|
21
|
+
deps.log?.(`Repair: could not start the installed server (${err instanceof Error ? err.message : String(err)}); still serving.`);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
deps.log?.('Repair: installed server started; handing over the port.');
|
|
25
|
+
deps.terminateSockets();
|
|
26
|
+
try {
|
|
27
|
+
await deps.stopIpc();
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
/* already closed; exiting anyway */
|
|
31
|
+
}
|
|
32
|
+
deps.exit(0);
|
|
33
|
+
};
|
|
34
|
+
return {
|
|
35
|
+
start() {
|
|
36
|
+
if (inProgress)
|
|
37
|
+
return true;
|
|
38
|
+
inProgress = true;
|
|
39
|
+
done = run();
|
|
40
|
+
return true;
|
|
41
|
+
},
|
|
42
|
+
get done() {
|
|
43
|
+
return done;
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Answer one `bridge.repair` frame: the ack goes out BEFORE the repair
|
|
49
|
+
* starts, so the popup learns the outcome even though its socket is about to
|
|
50
|
+
* be terminated. `startRepair` is undefined in a process that cannot repair
|
|
51
|
+
* itself (tests, a bridge started without the wiring).
|
|
52
|
+
*/
|
|
53
|
+
export function answerRepairRequest(msg, send, startRepair) {
|
|
54
|
+
const requestId = typeof msg.request_id === 'string' ? msg.request_id : '';
|
|
55
|
+
if (!startRepair) {
|
|
56
|
+
send({
|
|
57
|
+
kind: 'bridge.repair.result',
|
|
58
|
+
request_id: requestId,
|
|
59
|
+
ok: false,
|
|
60
|
+
error: 'repair is not available in this server process',
|
|
61
|
+
});
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
send({ kind: 'bridge.repair.result', request_id: requestId, ok: true, action: 'restarting' });
|
|
65
|
+
startRepair();
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=repair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repair.js","sourceRoot":"","sources":["../../src/lifecycle/repair.ts"],"names":[],"mappings":"AAiCA,yEAAyE;AACzE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AASzC,MAAM,UAAU,sBAAsB,CAAC,IAAgB;IACrD,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,IAAI,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAE5C,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,IAAI;iBACD,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;iBACD,KAAK,EAAE,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kEAAkE;YAClE,6DAA6D;YAC7D,UAAU,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,GAAG,EAAE,CACR,iDAAiD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CACrH,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC,0DAA0D,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACL,KAAK;YACH,IAAI,UAAU;gBAAE,OAAO,IAAI,CAAC;YAC5B,UAAU,GAAG,IAAI,CAAC;YAClB,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI;YACN,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAwB,EACxB,IAAwC,EACxC,WAAwC;IAExC,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,SAAS;YACrB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,gDAAgD;SACxD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9F,WAAW,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
import type { VersionInfo } from './election.js';
|
|
3
|
+
/**
|
|
4
|
+
* The installed CLI entry point: `<package>/dist/cli.js`. This module lives
|
|
5
|
+
* in `dist/lifecycle/` (installed) or `src/lifecycle/` (dev), two levels
|
|
6
|
+
* below the package root either way. After `npm install -g` this is the
|
|
7
|
+
* same path the running process started from, now holding the new code.
|
|
8
|
+
*/
|
|
9
|
+
export declare const INSTALLED_CLI_PATH: string;
|
|
10
|
+
/** Last-modified time of the installed CLI (epoch ms), or `null`. */
|
|
11
|
+
export declare function readInstalledCodeMtime(path?: string): number | null;
|
|
12
|
+
/** Approximate wall-clock start of this process, epoch ms. */
|
|
13
|
+
export declare const PROCESS_STARTED_AT: number;
|
|
14
|
+
export declare function buildVersionInfo(version: string, pid?: number, startedAt?: number, installed?: () => string | null): VersionInfo;
|
|
15
|
+
/** The bridge's plain-HTTP handler: `/version` or 404. */
|
|
16
|
+
export declare function handleBridgeHttpRequest(req: IncomingMessage, res: ServerResponse, version: string): void;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { statSync } from 'node:fs';
|
|
2
|
+
import { dirname, join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import { PACKAGE_NAME, readInstalledVersion } from '../version.js';
|
|
5
|
+
/**
|
|
6
|
+
* `GET /version` on the bridge port (S5). The election (`election.ts`),
|
|
7
|
+
* `doctor` and anything else that needs to know "which browser-link is the
|
|
8
|
+
* primary, and is it outdated?" read it. Every other plain HTTP request is a
|
|
9
|
+
* 404; WebSocket upgrades never reach this handler.
|
|
10
|
+
*/
|
|
11
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
/**
|
|
13
|
+
* The installed CLI entry point: `<package>/dist/cli.js`. This module lives
|
|
14
|
+
* in `dist/lifecycle/` (installed) or `src/lifecycle/` (dev), two levels
|
|
15
|
+
* below the package root either way. After `npm install -g` this is the
|
|
16
|
+
* same path the running process started from, now holding the new code.
|
|
17
|
+
*/
|
|
18
|
+
export const INSTALLED_CLI_PATH = join(here, '..', '..', 'dist', 'cli.js');
|
|
19
|
+
/** Last-modified time of the installed CLI (epoch ms), or `null`. */
|
|
20
|
+
export function readInstalledCodeMtime(path = INSTALLED_CLI_PATH) {
|
|
21
|
+
try {
|
|
22
|
+
return statSync(path).mtimeMs;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** Approximate wall-clock start of this process, epoch ms. */
|
|
29
|
+
export const PROCESS_STARTED_AT = Date.now() - Math.round(process.uptime() * 1000);
|
|
30
|
+
export function buildVersionInfo(version, pid = process.pid, startedAt = PROCESS_STARTED_AT, installed = readInstalledVersion) {
|
|
31
|
+
return {
|
|
32
|
+
name: PACKAGE_NAME,
|
|
33
|
+
version,
|
|
34
|
+
pid,
|
|
35
|
+
startedAt: new Date(startedAt).toISOString(),
|
|
36
|
+
installedVersion: installed(),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** The bridge's plain-HTTP handler: `/version` or 404. */
|
|
40
|
+
export function handleBridgeHttpRequest(req, res, version) {
|
|
41
|
+
const path = (req.url ?? '').split('?')[0];
|
|
42
|
+
if (req.method === 'GET' && path === '/version') {
|
|
43
|
+
res.writeHead(200, { 'content-type': 'application/json' });
|
|
44
|
+
res.end(JSON.stringify(buildVersionInfo(version)));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
res.writeHead(404, { 'content-type': 'text/plain' });
|
|
48
|
+
res.end('Not found');
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=version-endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-endpoint.js","sourceRoot":"","sources":["../../src/lifecycle/version-endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGnE;;;;;GAKG;AAEH,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAW,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEnF,qEAAqE;AACrE,MAAM,UAAU,sBAAsB,CAAC,OAAe,kBAAkB;IACtE,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAW,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAE3F,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,MAAc,OAAO,CAAC,GAAG,EACzB,YAAoB,kBAAkB,EACtC,YAAiC,oBAAoB;IAErD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,OAAO;QACP,GAAG;QACH,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;QAC5C,gBAAgB,EAAE,SAAS,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,uBAAuB,CACrC,GAAoB,EACpB,GAAmB,EACnB,OAAe;IAEf,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAChD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO;IACT,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACvB,CAAC"}
|
package/dist/manual/topics.js
CHANGED
|
@@ -45,7 +45,7 @@ export const TOPICS = {
|
|
|
45
45
|
},
|
|
46
46
|
'multi-agent': {
|
|
47
47
|
title: 'Sharing tabs with other agents (multi-agent mode)',
|
|
48
|
-
body: lines('Several MCP clients can share one bridge; a cooperative claim layer keeps two agents off the same tab.', '- Action tools (`browser.click`, `browser.type`, `browser.navigate`, `browser.evaluate`) auto-claim a free tab on first use. If another agent holds it they fail naming the owner: ask the user whose tab it is, or use a different one.', '- Read tools (`browser.snapshot`, `browser.state`, `browser.console`, `browser.network`, `browser.network_body`, `browser.events`, `browser.ping`) ignore claims.', '- Give `browser.claim_tab` a stable `label` ("claude-code", "opencode"); claims also end on disconnect and after the inactivity TTL. The label is display only: ownership rests on the IPC session id, not on what an agent calls itself.'),
|
|
48
|
+
body: lines('Several MCP clients can share one bridge; a cooperative claim layer keeps two agents off the same tab.', '- Action tools (`browser.click`, `browser.type`, `browser.navigate`, `browser.evaluate`) auto-claim a free tab on first use. If another agent holds it they fail naming the owner: ask the user whose tab it is, or use a different one.', '- Read tools (`browser.snapshot`, `browser.state`, `browser.console`, `browser.network`, `browser.network_body`, `browser.events`, `browser.ping`) ignore claims.', '- Give `browser.claim_tab` a stable `label` ("claude-code", "opencode"); claims also end on disconnect and after the inactivity TTL. The label is display only: ownership rests on the IPC session id, not on what an agent calls itself.', '- One server process is the primary. A newer browser-link that starts displaces an older primary (it reads `GET /version` on the bridge port, then stops the old process), and the extension reconnects by itself.', '- A `list_tabs` hint "server running X, installed Y" means the package was updated under a live server: ask the user to run `browser-link stop` and restart the agent, or to click "Repair connection" in the extension popup. Do not kill processes yourself.'),
|
|
49
49
|
},
|
|
50
50
|
'cdp-direct': {
|
|
51
51
|
title: 'cdp-direct tabs (optional, off by default, human-gated)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topics.js","sourceRoot":"","sources":["../../src/manual/topics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW;IACX,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,KAAK;IACL,kBAAkB;IAClB,aAAa;IACb,YAAY;CACJ,CAAC;AASX,MAAM,KAAK,GAAG,CAAC,GAAG,CAAW,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,MAAM,GAA6B;IAC9C,SAAS,EAAE;QACT,KAAK,EAAE,2CAA2C;QAClD,IAAI,EAAE,KAAK,CACT,kOAAkO,EAClO,+OAA+O,EAC/O,0EAA0E,EAC1E,uHAAuH,CACxH;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE,0DAA0D;QACjE,IAAI,EAAE,KAAK,CACT,+OAA+O,EAC/O,oPAAoP,EACpP,oSAAoS,CACrS;KACF;IACD,UAAU,EAAE;QACV,KAAK,EAAE,mCAAmC;QAC1C,IAAI,EAAE,KAAK,CACT,wKAAwK,EACxK,oLAAoL,EACpL,oFAAoF,CACrF;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,wDAAwD;QAC/D,IAAI,EAAE,KAAK,CACT,gaAAga,EACha,EAAE,EACF,iJAAiJ,EACjJ,6HAA6H,EAC7H,iOAAiO,EACjO,gWAAgW,EAChW,qIAAqI,EACrI,sXAAsX,EACtX,kMAAkM,EAClM,EAAE,EACF,6aAA6a,EAC7a,EAAE,EACF,2XAA2X,EAC3X,kNAAkN,EAClN,qGAAqG,EACrG,uGAAuG,EACvG,mLAAmL,CACpL;KACF;IACD,GAAG,EAAE;QACH,KAAK,EAAE,mEAAmE;QAC1E,IAAI,EAAE,KAAK,CACT,qRAAqR,EACrR,0MAA0M,EAC1M,0MAA0M,EAC1M,+UAA+U,EAC/U,yRAAyR,EACzR,2IAA2I,CAC5I;KACF;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,2CAA2C;QAClD,IAAI,EAAE,KAAK,CACT,kGAAkG,EAClG,qRAAqR,EACrR,iJAAiJ,EACjJ,gNAAgN,EAChN,wFAAwF,EACxF,2HAA2H,EAC3H,iGAAiG,EACjG,sPAAsP,EACtP,uaAAua,EACva,sQAAsQ,EACtQ,+HAA+H,EAC/H,2QAA2Q,EAC3Q,oNAAoN,CACrN;KACF;IACD,aAAa,EAAE;QACb,KAAK,EAAE,mDAAmD;QAC1D,IAAI,EAAE,KAAK,CACT,wGAAwG,EACxG,0OAA0O,EAC1O,mKAAmK,EACnK,2OAA2O,
|
|
1
|
+
{"version":3,"file":"topics.js","sourceRoot":"","sources":["../../src/manual/topics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW;IACX,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,KAAK;IACL,kBAAkB;IAClB,aAAa;IACb,YAAY;CACJ,CAAC;AASX,MAAM,KAAK,GAAG,CAAC,GAAG,CAAW,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,MAAM,GAA6B;IAC9C,SAAS,EAAE;QACT,KAAK,EAAE,2CAA2C;QAClD,IAAI,EAAE,KAAK,CACT,kOAAkO,EAClO,+OAA+O,EAC/O,0EAA0E,EAC1E,uHAAuH,CACxH;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE,0DAA0D;QACjE,IAAI,EAAE,KAAK,CACT,+OAA+O,EAC/O,oPAAoP,EACpP,oSAAoS,CACrS;KACF;IACD,UAAU,EAAE;QACV,KAAK,EAAE,mCAAmC;QAC1C,IAAI,EAAE,KAAK,CACT,wKAAwK,EACxK,oLAAoL,EACpL,oFAAoF,CACrF;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,wDAAwD;QAC/D,IAAI,EAAE,KAAK,CACT,gaAAga,EACha,EAAE,EACF,iJAAiJ,EACjJ,6HAA6H,EAC7H,iOAAiO,EACjO,gWAAgW,EAChW,qIAAqI,EACrI,sXAAsX,EACtX,kMAAkM,EAClM,EAAE,EACF,6aAA6a,EAC7a,EAAE,EACF,2XAA2X,EAC3X,kNAAkN,EAClN,qGAAqG,EACrG,uGAAuG,EACvG,mLAAmL,CACpL;KACF;IACD,GAAG,EAAE;QACH,KAAK,EAAE,mEAAmE;QAC1E,IAAI,EAAE,KAAK,CACT,qRAAqR,EACrR,0MAA0M,EAC1M,0MAA0M,EAC1M,+UAA+U,EAC/U,yRAAyR,EACzR,2IAA2I,CAC5I;KACF;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,2CAA2C;QAClD,IAAI,EAAE,KAAK,CACT,kGAAkG,EAClG,qRAAqR,EACrR,iJAAiJ,EACjJ,gNAAgN,EAChN,wFAAwF,EACxF,2HAA2H,EAC3H,iGAAiG,EACjG,sPAAsP,EACtP,uaAAua,EACva,sQAAsQ,EACtQ,+HAA+H,EAC/H,2QAA2Q,EAC3Q,oNAAoN,CACrN;KACF;IACD,aAAa,EAAE;QACb,KAAK,EAAE,mDAAmD;QAC1D,IAAI,EAAE,KAAK,CACT,wGAAwG,EACxG,0OAA0O,EAC1O,mKAAmK,EACnK,2OAA2O,EAC3O,oNAAoN,EACpN,gQAAgQ,CACjQ;KACF;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,yDAAyD;QAChE,IAAI,EAAE,KAAK,CACT,yOAAyO,EACzO,gIAAgI,EAChI,qHAAqH,EACrH,0GAA0G,CAC3G;KACF;CACF,CAAC;AAEF,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,IAAe;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,OAAO,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC"}
|
package/dist/messages.d.ts
CHANGED
|
@@ -35,6 +35,14 @@ export interface TabRegisteredPayload {
|
|
|
35
35
|
* extensions that don't know about the field can still parse the message.
|
|
36
36
|
*/
|
|
37
37
|
serverVersion?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Version installed on disk right now (re-read on every register). When it
|
|
40
|
+
* differs from `serverVersion`, the running server is outdated and the
|
|
41
|
+
* popup offers "Repair connection". Absent from servers older than 0.41.0.
|
|
42
|
+
*/
|
|
43
|
+
installedVersion?: string;
|
|
44
|
+
/** PID of the server process that handed out this tabId (0.41.0+). */
|
|
45
|
+
serverPid?: number;
|
|
38
46
|
}
|
|
39
47
|
export interface TabRegisterMessage {
|
|
40
48
|
kind: 'tab.register';
|
|
@@ -254,5 +262,110 @@ export type ActivityPurgeResultMessage = {
|
|
|
254
262
|
ok: false;
|
|
255
263
|
error: string;
|
|
256
264
|
};
|
|
257
|
-
|
|
258
|
-
|
|
265
|
+
/**
|
|
266
|
+
* Popup "Repair connection": ask the running server to restart itself on
|
|
267
|
+
* the installed code. The server answers with `bridge.repair.result` first,
|
|
268
|
+
* then spawns the installed CLI detached, terminates every extension socket
|
|
269
|
+
* uncleanly (so the extension auto-reconnects) and exits.
|
|
270
|
+
*/
|
|
271
|
+
export interface BridgeRepairMessage {
|
|
272
|
+
kind: 'bridge.repair';
|
|
273
|
+
request_id: string;
|
|
274
|
+
}
|
|
275
|
+
export type BridgeRepairResultMessage = {
|
|
276
|
+
kind: 'bridge.repair.result';
|
|
277
|
+
request_id: string;
|
|
278
|
+
ok: true;
|
|
279
|
+
action: 'restarting';
|
|
280
|
+
} | {
|
|
281
|
+
kind: 'bridge.repair.result';
|
|
282
|
+
request_id: string;
|
|
283
|
+
ok: false;
|
|
284
|
+
error: string;
|
|
285
|
+
};
|
|
286
|
+
/**
|
|
287
|
+
* Admin panel (0.42.0): the server describes its administration state and
|
|
288
|
+
* actions as data, already localised, so the popup renders the same
|
|
289
|
+
* sections, options and labels as the console without a copy of its own.
|
|
290
|
+
* The same text lives in `packages/shared/src/index.ts`; keep both identical.
|
|
291
|
+
*/
|
|
292
|
+
export type AdminItemKind = 'readout' | 'toggle' | 'select' | 'button' | 'link';
|
|
293
|
+
export interface AdminOption {
|
|
294
|
+
value: string;
|
|
295
|
+
label: string;
|
|
296
|
+
}
|
|
297
|
+
export interface AdminItem {
|
|
298
|
+
id: string;
|
|
299
|
+
kind: AdminItemKind;
|
|
300
|
+
label: string;
|
|
301
|
+
description?: string;
|
|
302
|
+
value?: string | number | boolean | null;
|
|
303
|
+
options?: AdminOption[];
|
|
304
|
+
writesDisk: boolean;
|
|
305
|
+
requiresRestart?: boolean;
|
|
306
|
+
hint?: string;
|
|
307
|
+
}
|
|
308
|
+
export interface AdminSection {
|
|
309
|
+
id: 'status' | 'setup' | 'diagnose' | 'reference';
|
|
310
|
+
title: string;
|
|
311
|
+
items: AdminItem[];
|
|
312
|
+
}
|
|
313
|
+
export interface AdminUiStrings {
|
|
314
|
+
language: 'en' | 'es';
|
|
315
|
+
confirm: string;
|
|
316
|
+
cancel: string;
|
|
317
|
+
apply: string;
|
|
318
|
+
notConnected: string;
|
|
319
|
+
restartRequired: string;
|
|
320
|
+
changed: string;
|
|
321
|
+
}
|
|
322
|
+
export interface AdminState {
|
|
323
|
+
version: 1;
|
|
324
|
+
generatedAt: string;
|
|
325
|
+
sections: AdminSection[];
|
|
326
|
+
ui: AdminUiStrings;
|
|
327
|
+
}
|
|
328
|
+
export type AdminActionResult = {
|
|
329
|
+
ok: true;
|
|
330
|
+
applied: true;
|
|
331
|
+
requiresRestart?: boolean;
|
|
332
|
+
state?: AdminState;
|
|
333
|
+
output?: string[];
|
|
334
|
+
} | {
|
|
335
|
+
ok: true;
|
|
336
|
+
applied: false;
|
|
337
|
+
needsConfirm: true;
|
|
338
|
+
preview: string;
|
|
339
|
+
} | {
|
|
340
|
+
ok: false;
|
|
341
|
+
error: string;
|
|
342
|
+
};
|
|
343
|
+
export interface AdminDescribeMessage {
|
|
344
|
+
kind: 'admin.describe';
|
|
345
|
+
request_id: string;
|
|
346
|
+
}
|
|
347
|
+
export interface AdminActionMessage {
|
|
348
|
+
kind: 'admin.action';
|
|
349
|
+
request_id: string;
|
|
350
|
+
id: string;
|
|
351
|
+
value?: string | number | boolean;
|
|
352
|
+
confirm?: boolean;
|
|
353
|
+
}
|
|
354
|
+
export type AdminStateMessage = {
|
|
355
|
+
kind: 'admin.state';
|
|
356
|
+
request_id: string;
|
|
357
|
+
ok: true;
|
|
358
|
+
state: AdminState;
|
|
359
|
+
} | {
|
|
360
|
+
kind: 'admin.state';
|
|
361
|
+
request_id: string;
|
|
362
|
+
ok: false;
|
|
363
|
+
error: string;
|
|
364
|
+
};
|
|
365
|
+
export interface AdminActionResultMessage {
|
|
366
|
+
kind: 'admin.action.result';
|
|
367
|
+
request_id: string;
|
|
368
|
+
result: AdminActionResult;
|
|
369
|
+
}
|
|
370
|
+
export type ExtensionToServer = TabRegisterMessage | ToolResponseMessage | BridgeEventMessage | FlowRecordedMessage | ActivityQueryMessage | ActivityPurgeMessage | BridgeRepairMessage | AdminDescribeMessage | AdminActionMessage;
|
|
371
|
+
export type ServerToExtension = TabRegisteredMessage | ToolRequestMessage | ToolCancelMessage | SettingsUpdateMessage | FlowRecordedResultMessage | ActivityResultMessage | ActivityPurgeResultMessage | BridgeRepairResultMessage | AdminStateMessage | AdminActionResultMessage;
|
package/dist/server.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
4
|
+
import { spawn } from 'node:child_process';
|
|
4
5
|
import { randomUUID } from 'node:crypto';
|
|
5
6
|
import { closeDb } from './map/db.js';
|
|
6
7
|
import { getMapHints } from './map/queries.js';
|
|
@@ -19,7 +20,13 @@ import { checkCdpDirectGate } from './cdp/gate.js';
|
|
|
19
20
|
import { listCdpTargets } from './cdp/targets.js';
|
|
20
21
|
import { callCdpTool } from './cdp/transport.js';
|
|
21
22
|
import { setCdpFlowEventSink } from './cdp/detached-flows.js';
|
|
23
|
+
import { findPidOnPort, imageNameOf, isNodeImage } from './commands/free-port.js';
|
|
24
|
+
import { probeVersion, retryBind, runElection, stepDownProcess } from './lifecycle/election.js';
|
|
25
|
+
import { readProcessStartTime } from './lifecycle/processes.js';
|
|
26
|
+
import { createRepairController } from './lifecycle/repair.js';
|
|
27
|
+
import { INSTALLED_CLI_PATH, readInstalledCodeMtime } from './lifecycle/version-endpoint.js';
|
|
22
28
|
import { WS_HOST, WS_PORT, isAddrInUse, pushSettingsToAllTabs, sendToolCancel, sendToolRequest, startWsBridge, } from './bridge/ws-bridge.js';
|
|
29
|
+
import { createPrimaryAdminHandlers } from './admin/primary.js';
|
|
23
30
|
export { WS_HOST, WS_PORT };
|
|
24
31
|
const DEFAULT_TIMEOUT_MS = 15_000;
|
|
25
32
|
function log(msg) {
|
|
@@ -58,6 +65,11 @@ export async function runServer() {
|
|
|
58
65
|
catch (err) {
|
|
59
66
|
if (!isAddrInUse(err))
|
|
60
67
|
throw err;
|
|
68
|
+
// Version-aware election (lifecycle/election.ts): a newer process
|
|
69
|
+
// displaces an older primary; otherwise fall through to the existing
|
|
70
|
+
// proxy / error path.
|
|
71
|
+
if (await electPrimary(() => runPrimary(cfg)))
|
|
72
|
+
return;
|
|
61
73
|
if (cfg.multiAgent === true) {
|
|
62
74
|
// Another primary is already running — degrade to proxy mode so this
|
|
63
75
|
// MCP client can still reach the bridge.
|
|
@@ -73,6 +85,63 @@ export async function runServer() {
|
|
|
73
85
|
`Then restart your MCP client. With multi-agent on, this process would have become a proxy instead of erroring.`, { cause: err });
|
|
74
86
|
}
|
|
75
87
|
}
|
|
88
|
+
/** Hand-off race: a repair or take-over predecessor may be exiting right
|
|
89
|
+
* now. Retry the bind briefly before asking who holds the port. */
|
|
90
|
+
const HANDOFF_ATTEMPTS = 5;
|
|
91
|
+
const HANDOFF_DELAY_MS = 100;
|
|
92
|
+
/** After a take-over step-down: 200 ms × up to 25. */
|
|
93
|
+
const TAKEOVER_ATTEMPTS = 25;
|
|
94
|
+
const TAKEOVER_DELAY_MS = 200;
|
|
95
|
+
/**
|
|
96
|
+
* The port is taken. Returns true when this process ended up as the primary
|
|
97
|
+
* (the holder left during the hand-off window, or it was older and stepped
|
|
98
|
+
* down), false when it must defer.
|
|
99
|
+
*/
|
|
100
|
+
async function electPrimary(bind) {
|
|
101
|
+
try {
|
|
102
|
+
await retryBind(bind, {
|
|
103
|
+
attempts: HANDOFF_ATTEMPTS,
|
|
104
|
+
delayMs: HANDOFF_DELAY_MS,
|
|
105
|
+
isRetryable: isAddrInUse,
|
|
106
|
+
});
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
if (!isAddrInUse(err))
|
|
111
|
+
throw err;
|
|
112
|
+
}
|
|
113
|
+
const outcome = await runElection({
|
|
114
|
+
localVersion: VERSION,
|
|
115
|
+
probe: () => probeVersion(WS_PORT),
|
|
116
|
+
findOwnerPid: () => findPidOnPort(WS_PORT),
|
|
117
|
+
processStartTime: (pid) => readProcessStartTime(pid),
|
|
118
|
+
installedCodeMtime: () => readInstalledCodeMtime(),
|
|
119
|
+
stepDown: async (pid) => {
|
|
120
|
+
// Same safety rule as `browser-link stop`: only a node process.
|
|
121
|
+
if (!isNodeImage(imageNameOf(pid)))
|
|
122
|
+
throw new Error(`PID ${pid} is not a node process`);
|
|
123
|
+
await stepDownProcess(pid);
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
log(`Primary election: ${outcome.decision} (${outcome.reason}).`);
|
|
127
|
+
if (outcome.decision !== 'take-over')
|
|
128
|
+
return false;
|
|
129
|
+
try {
|
|
130
|
+
await retryBind(bind, {
|
|
131
|
+
attempts: TAKEOVER_ATTEMPTS,
|
|
132
|
+
delayMs: TAKEOVER_DELAY_MS,
|
|
133
|
+
isRetryable: isAddrInUse,
|
|
134
|
+
});
|
|
135
|
+
log(`Took over from PID ${outcome.pid ?? '?'} (running ${VERSION}).`);
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
if (!isAddrInUse(err))
|
|
140
|
+
throw err;
|
|
141
|
+
log('Take-over: the port did not free up in time; deferring.');
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
76
145
|
async function runPrimary(cfg) {
|
|
77
146
|
const tabs = new Map();
|
|
78
147
|
const pendingRequests = new Map();
|
|
@@ -83,9 +152,43 @@ async function runPrimary(cfg) {
|
|
|
83
152
|
pid: process.pid,
|
|
84
153
|
multiAgent: cfg.multiAgent === true,
|
|
85
154
|
});
|
|
155
|
+
// Popup "Repair connection" (lifecycle/repair.ts): restart on the
|
|
156
|
+
// installed code. Wired here because only the primary owns the sockets,
|
|
157
|
+
// the IPC server and the process.
|
|
158
|
+
const repair = createRepairController({
|
|
159
|
+
execPath: process.execPath,
|
|
160
|
+
cliPath: INSTALLED_CLI_PATH,
|
|
161
|
+
spawn: (command, args, options) => spawn(command, args, options),
|
|
162
|
+
terminateSockets: () => {
|
|
163
|
+
for (const client of wss.clients)
|
|
164
|
+
client.terminate();
|
|
165
|
+
},
|
|
166
|
+
stopIpc: () => (ipcServer ? ipcServer.stop() : Promise.resolve()),
|
|
167
|
+
exit: (code) => {
|
|
168
|
+
closeDb();
|
|
169
|
+
process.exit(code);
|
|
170
|
+
},
|
|
171
|
+
delay: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
|
|
172
|
+
log,
|
|
173
|
+
});
|
|
86
174
|
// Bind the WS bridge first. AddrInUseError propagates up to runServer()
|
|
87
175
|
// so the caller can decide between proxy mode and a clear error.
|
|
88
|
-
await startWsBridge(tabs, pendingRequests, events
|
|
176
|
+
const wss = await startWsBridge(tabs, pendingRequests, events, {
|
|
177
|
+
onRepair: () => repair.start(),
|
|
178
|
+
// Admin panel (popup): describe/act on this primary's settings through
|
|
179
|
+
// the same helpers the console uses. Doctor runs only on its button.
|
|
180
|
+
admin: createPrimaryAdminHandlers({
|
|
181
|
+
version: VERSION,
|
|
182
|
+
tabsConnected: () => tabs.size,
|
|
183
|
+
connectedExtensionVersion: () => {
|
|
184
|
+
for (const session of tabs.values()) {
|
|
185
|
+
if (session.extensionVersion !== undefined)
|
|
186
|
+
return session.extensionVersion;
|
|
187
|
+
}
|
|
188
|
+
return null;
|
|
189
|
+
},
|
|
190
|
+
}),
|
|
191
|
+
});
|
|
89
192
|
// Cooperative tab ownership across MCP clients. Claim events are mirrored
|
|
90
193
|
// into the bridge event log so `browser.events` doubles as an audit trail.
|
|
91
194
|
const tabClaims = new TabClaimRegistry({
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,14 @@ export interface EnrichedTabSnapshot extends TabSnapshot {
|
|
|
41
41
|
* MAJOR.MINOR.PATCH lower than the server's version. */
|
|
42
42
|
extension_outdated?: true;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Second-block hint for `browser.list_tabs` when the version installed on
|
|
46
|
+
* disk is newer than the one this process is running (an `npm install -g`
|
|
47
|
+
* happened under a live server). `null` otherwise, including when the
|
|
48
|
+
* installed version cannot be read. Meant for `hintToolResponse`: the tab
|
|
49
|
+
* array itself never changes shape.
|
|
50
|
+
*/
|
|
51
|
+
export declare function outdatedServerHint(running?: string, installed?: string | null): string | null;
|
|
44
52
|
export interface BrowserToolDeps {
|
|
45
53
|
listTabs(): TabSnapshot[];
|
|
46
54
|
callBrowserTool(tabId: string, tool: string, params: unknown, timeoutMs?: number): Promise<unknown>;
|
|
@@ -21,7 +21,7 @@ function handleReset(deps) {
|
|
|
21
21
|
*/
|
|
22
22
|
import { randomUUID } from 'node:crypto';
|
|
23
23
|
import { compareSemver } from '../utils/semver.js';
|
|
24
|
-
import { VERSION } from '../version.js';
|
|
24
|
+
import { VERSION, readInstalledVersion } from '../version.js';
|
|
25
25
|
import { requireTabId } from './responses.js';
|
|
26
26
|
import { DOWNLOAD_BRIDGE_SLACK_MS, MAX_DOWNLOAD_BYTES, buildFetchDownloadJs, clampDownloadTimeoutMs, pickFilename, shapeDownloadResult, validateRequestedFilename, } from '../downloads.js';
|
|
27
27
|
import { buildRow } from '../activity/extract.js';
|
|
@@ -39,6 +39,20 @@ function isExtensionOutdated(t) {
|
|
|
39
39
|
return false;
|
|
40
40
|
return compareSemver(t.extension_version, VERSION) < 0;
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Second-block hint for `browser.list_tabs` when the version installed on
|
|
44
|
+
* disk is newer than the one this process is running (an `npm install -g`
|
|
45
|
+
* happened under a live server). `null` otherwise, including when the
|
|
46
|
+
* installed version cannot be read. Meant for `hintToolResponse`: the tab
|
|
47
|
+
* array itself never changes shape.
|
|
48
|
+
*/
|
|
49
|
+
export function outdatedServerHint(running = VERSION, installed = readInstalledVersion()) {
|
|
50
|
+
if (installed === null || compareSemver(installed, running) <= 0)
|
|
51
|
+
return null;
|
|
52
|
+
return (`server running ${running}, installed ${installed}: this server is outdated; ` +
|
|
53
|
+
`ask the user to run browser-link stop and restart the agent, ` +
|
|
54
|
+
`or to click "Repair connection" in the extension popup`);
|
|
55
|
+
}
|
|
42
56
|
/** Closed set of browser tool names. Used both as the discriminant in
|
|
43
57
|
* `handleBrowserTool`'s switch and as the allowlist behind `isBrowserTool`,
|
|
44
58
|
* so adding a tool requires touching one place. The literal-union type lets
|