@trusty-squire/mcp 1.1.24 → 1.1.25-rc.1
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 +4 -2
- package/dist/bin.js +1 -2
- package/dist/bin.js.map +1 -1
- package/dist/bot/broker/account-binding.d.ts +2 -2
- package/dist/bot/broker/account-binding.d.ts.map +1 -1
- package/dist/bot/broker/account-binding.js +2 -2
- package/dist/bot/broker/account-binding.js.map +1 -1
- package/dist/bot/broker/daemon.d.ts.map +1 -1
- package/dist/bot/broker/daemon.js +198 -3
- package/dist/bot/broker/daemon.js.map +1 -1
- package/dist/bot/broker/discovery.d.ts +12 -25
- package/dist/bot/broker/discovery.d.ts.map +1 -1
- package/dist/bot/broker/discovery.js +100 -191
- package/dist/bot/broker/discovery.js.map +1 -1
- package/dist/bot/broker/forwarder.d.ts.map +1 -1
- package/dist/bot/broker/forwarder.js +3 -8
- package/dist/bot/broker/forwarder.js.map +1 -1
- package/dist/bot/broker/managed-marker.d.ts +5 -6
- package/dist/bot/broker/managed-marker.d.ts.map +1 -1
- package/dist/bot/broker/managed-marker.js +36 -30
- package/dist/bot/broker/managed-marker.js.map +1 -1
- package/dist/bot/broker/transport.d.ts +0 -6
- package/dist/bot/broker/transport.d.ts.map +1 -1
- package/dist/bot/broker/transport.js +1 -58
- package/dist/bot/broker/transport.js.map +1 -1
- package/dist/bot/google-login.d.ts.map +1 -1
- package/dist/bot/google-login.js +4 -7
- package/dist/bot/google-login.js.map +1 -1
- package/dist/browser-busy.js +2 -2
- package/dist/browser-busy.js.map +1 -1
- package/dist/install/broker-service.d.ts +14 -0
- package/dist/install/broker-service.d.ts.map +1 -0
- package/dist/install/broker-service.js +279 -0
- package/dist/install/broker-service.js.map +1 -0
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +6 -29
- package/dist/install/cli.js.map +1 -1
- package/dist/install/version-check.js +3 -3
- package/dist/install/version-check.js.map +1 -1
- package/dist/relay.d.ts.map +1 -1
- package/dist/relay.js +35 -10
- package/dist/relay.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ Ask your coding agent to:
|
|
|
21
21
|
## Install
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
npx @trusty-squire/mcp connect
|
|
24
|
+
npx -y @trusty-squire/mcp@latest connect
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
Sign in with Google or GitHub, and Trusty Squire adds itself to your coding agent. Restart the agent and ask for what you need.
|
|
@@ -29,7 +29,9 @@ Sign in with Google or GitHub, and Trusty Squire adds itself to your coding agen
|
|
|
29
29
|
To pick the agent yourself:
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
npx @trusty-squire/mcp connect --target=codex
|
|
32
|
+
npx -y @trusty-squire/mcp@latest connect --target=codex
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
On Linux, connect registers and starts a systemd user service; on macOS, a launchd user agent. A working user service manager is required. MCP clients connect to that broker and report "broker not running" after bounded retries if it is stopped. Installer-written client entries use `@trusty-squire/mcp@latest`.
|
|
36
|
+
|
|
35
37
|
Works with Claude Code, Codex, Cursor, OpenCode, Goose, Cline, Continue, and Hermes.
|
package/dist/bin.js
CHANGED
|
@@ -54,8 +54,7 @@ dispatch()
|
|
|
54
54
|
// after printing "You're done."
|
|
55
55
|
//
|
|
56
56
|
// The `server`/`relay` branch returns when the stdio pipe or a signal
|
|
57
|
-
// closes the proxy; force-exit
|
|
58
|
-
// this process alive. `skill` returns its own code via T30 taxonomy.
|
|
57
|
+
// closes the proxy; force-exit after its transport has closed. `skill` returns its own code via T30 taxonomy.
|
|
59
58
|
if (isServer || isRelay)
|
|
60
59
|
process.exit(code);
|
|
61
60
|
if (!isBroker)
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA,sDAAsD;AACtD,EAAE;AACF,mEAAmE;AACnE,uEAAuE;AACvE,sEAAsE;AACtE,6CAA6C;AAC7C,+EAA+E;AAC/E,iEAAiE;AACjE,EAAE;AACF,uEAAuE;AACvE,qEAAqE;AACrE,wEAAwE;AACxE,kEAAkE;AAClE,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,oEAAoE;AACpE,8DAA8D;AAC9D,oCAAoC;AACpC,MAAM,aAAa,GACjB,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAE3F,IAAI,aAAa,EAAE,CAAC;IAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;AACtC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;AACpC,0EAA0E;AAC1E,4EAA4E;AAC5E,4EAA4E;AAE5E,KAAK,UAAU,QAAQ;IACrB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;QACnE,MAAM,eAAe,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,QAAQ,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACpD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,QAAQ,EAAE;KACP,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;IACb,iEAAiE;IACjE,sEAAsE;IACtE,mCAAmC;IACnC,8DAA8D;IAC9D,gEAAgE;IAChE,gCAAgC;IAChC,EAAE;IACF,sEAAsE;IACtE,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** The account a profile's browser is enrolled to. The broker runtime writes
|
|
2
2
|
* this record on its first acquire and refuses a profile bound to another
|
|
3
|
-
* account;
|
|
4
|
-
*
|
|
3
|
+
* account; connection discovery reads it to verify the service endpoint
|
|
4
|
+
* binding. One path, one shape, one owner. */
|
|
5
5
|
export declare function brokerAccountBindingPath(profileDir: string): string;
|
|
6
6
|
export interface BrokerAccountBinding {
|
|
7
7
|
version: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-binding.d.ts","sourceRoot":"","sources":["../../../src/bot/broker/account-binding.ts"],"names":[],"mappings":"AAGA;;;
|
|
1
|
+
{"version":3,"file":"account-binding.d.ts","sourceRoot":"","sources":["../../../src/bot/broker/account-binding.ts"],"names":[],"mappings":"AAGA;;;8CAG8C;AAC9C,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;2BAE2B;AAC3B,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWzF"}
|
|
@@ -2,8 +2,8 @@ import { readFile } from "node:fs/promises";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
/** The account a profile's browser is enrolled to. The broker runtime writes
|
|
4
4
|
* this record on its first acquire and refuses a profile bound to another
|
|
5
|
-
* account;
|
|
6
|
-
*
|
|
5
|
+
* account; connection discovery reads it to verify the service endpoint
|
|
6
|
+
* binding. One path, one shape, one owner. */
|
|
7
7
|
export function brokerAccountBindingPath(profileDir) {
|
|
8
8
|
return join(profileDir, "trusty-squire-broker-account.json");
|
|
9
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-binding.js","sourceRoot":"","sources":["../../../src/bot/broker/account-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;
|
|
1
|
+
{"version":3,"file":"account-binding.js","sourceRoot":"","sources":["../../../src/bot/broker/account-binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;8CAG8C;AAC9C,MAAM,UAAU,wBAAwB,CAAC,UAAkB;IACzD,OAAO,IAAI,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC;AAC/D,CAAC;AAOD;;2BAE2B;AAC3B,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,UAAkB;IAC/D,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAwC,CAAC;IACxE,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1F,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/bot/broker/daemon.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../../src/bot/broker/daemon.ts"],"names":[],"mappings":"AAgCA;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK7C,uEAAuE;IACvE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIjC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI7B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK9B,IAAI,IAAI,OAAO;CAGhB;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG;IACxE,OAAO,EAAE,MAAM,OAAO,CAAC;IACvB,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B,CAeA;AAED;;;;;;;;GAQG;AACH;;;;2CAI2C;AAC3C,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAK/F;AA6LD,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAgJrD"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { resolveBrokerSocket } from "./discovery.js";
|
|
2
|
+
import { execFileSync } from "node:child_process";
|
|
3
|
+
import { readFileSync } from "node:fs";
|
|
2
4
|
import { lstat, rm, unlink } from "node:fs/promises";
|
|
3
5
|
import { dirname, join } from "node:path";
|
|
4
6
|
import { createHash } from "node:crypto";
|
|
7
|
+
import { homedir, hostname } from "node:os";
|
|
5
8
|
import { createSessionGuard, setServingAccountId } from "../../session-guard.js";
|
|
6
9
|
import { setSelfManagedChromeTerminationSignalExitEnabled } from "../browser.js";
|
|
7
|
-
import { acquireProfileOperationGuard, ensureProfileDeviceAnchor, profilePathIdentity, CHROME_PROFILE_DIR, readLockHolder, } from "../profile.js";
|
|
10
|
+
import { acquireProfileOperationGuard, ensureProfileDeviceAnchor, profilePathIdentity, profileOperationLockPath, processBirthIdentity, processBirthIdentityState, profileProcessIdentity, ProfileBusyError, CHROME_PROFILE_DIR, readLockHolder, } from "../profile.js";
|
|
8
11
|
import { brokerBusyStatus } from "./status.js";
|
|
9
12
|
import { installBrokerBrowserCustody } from "./custody.js";
|
|
10
13
|
import { BrokerRuntime } from "./runtime.js";
|
|
@@ -14,6 +17,7 @@ import { BrokerRefusal } from "./refusal.js";
|
|
|
14
17
|
import { listenBroker } from "./transport.js";
|
|
15
18
|
import { listenSharedMcp } from "./mcp-socket.js";
|
|
16
19
|
import { readBrokerUnitMarkerSync } from "./managed-marker.js";
|
|
20
|
+
import { sharedMcpSocketPath } from "./mcp-socket-path.js";
|
|
17
21
|
/**
|
|
18
22
|
* Wire connections that hold a claim on the browser. Status probes are reads
|
|
19
23
|
* and do not count as active clients when explicit shutdown checks drain.
|
|
@@ -83,6 +87,181 @@ export function brokerMayStartForMarker(markerPresent, env) {
|
|
|
83
87
|
const startedByUnit = (env.INVOCATION_ID ?? "").trim().length > 0 || env.TRUSTY_SQUIRE_BROKER_UNIT === "1";
|
|
84
88
|
return startedByUnit;
|
|
85
89
|
}
|
|
90
|
+
const TAKEOVER_WAIT_MS = 10_000;
|
|
91
|
+
function startedByBrokerService(env) {
|
|
92
|
+
return (env.INVOCATION_ID ?? "").trim().length > 0 || env.TRUSTY_SQUIRE_BROKER_UNIT === "1";
|
|
93
|
+
}
|
|
94
|
+
/** lsof's `l` field must report the SQLite write lock, not merely an open fd. */
|
|
95
|
+
function lockedBrokerPid(profileDir) {
|
|
96
|
+
const uid = process.getuid?.();
|
|
97
|
+
if (uid === undefined)
|
|
98
|
+
return null;
|
|
99
|
+
let output;
|
|
100
|
+
try {
|
|
101
|
+
output = execFileSync("lsof", ["-w", "-a", "-Fpl", "-u", String(uid), "--", profileOperationLockPath(profileDir)], { encoding: "utf8", timeout: 3_000, stdio: ["ignore", "pipe", "ignore"] });
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
let pid = 0;
|
|
107
|
+
const holders = new Set();
|
|
108
|
+
for (const line of output.split("\n")) {
|
|
109
|
+
if (line.startsWith("p"))
|
|
110
|
+
pid = Number(line.slice(1));
|
|
111
|
+
if (line.startsWith("l") && /[wW]/.test(line.slice(1)) && Number.isSafeInteger(pid) && pid > 0)
|
|
112
|
+
holders.add(pid);
|
|
113
|
+
}
|
|
114
|
+
return holders.size === 1 ? [...holders][0] : null;
|
|
115
|
+
}
|
|
116
|
+
function brokerCommandMatches(pid) {
|
|
117
|
+
try {
|
|
118
|
+
const command = process.platform === "linux"
|
|
119
|
+
? readFileSync(`/proc/${pid}/cmdline`, "utf8").split("\0").join(" ")
|
|
120
|
+
: execFileSync("ps", ["-ww", "-p", String(pid), "-o", "command="], {
|
|
121
|
+
encoding: "utf8",
|
|
122
|
+
timeout: 3_000,
|
|
123
|
+
});
|
|
124
|
+
return (/(?:^|\s)(?:broker|--squire-broker)(?:\s|$)/.test(command) ||
|
|
125
|
+
/broker[^\s]*daemon\.(?:ts|js)(?:\s|$)/.test(command));
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
function brokerServesProfile(pid, profileDir) {
|
|
132
|
+
if (process.platform !== "linux")
|
|
133
|
+
return true; // Socket ownership is the profile proof on macOS.
|
|
134
|
+
try {
|
|
135
|
+
const entries = readFileSync(`/proc/${pid}/environ`, "utf8").split("\0");
|
|
136
|
+
const value = (key) => entries.find((entry) => entry.startsWith(`${key}=`))?.slice(key.length + 1);
|
|
137
|
+
const home = value("HOME") || homedir();
|
|
138
|
+
const claimedProfile = value("TRUSTY_SQUIRE_PROFILE_DIR") || join(home, ".trusty-squire", "chrome-profile");
|
|
139
|
+
return profilePathIdentity(claimedProfile) === profilePathIdentity(profileDir);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function socketBrokerPid(socket) {
|
|
146
|
+
let output;
|
|
147
|
+
try {
|
|
148
|
+
output = execFileSync("lsof", ["-w", "-a", "-t", "-U", "--", socket], {
|
|
149
|
+
encoding: "utf8",
|
|
150
|
+
timeout: 3_000,
|
|
151
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
const pids = [
|
|
158
|
+
...new Set(output
|
|
159
|
+
.trim()
|
|
160
|
+
.split(/\s+/)
|
|
161
|
+
.map(Number)
|
|
162
|
+
.filter((pid) => Number.isSafeInteger(pid) && pid > 0 && pid !== process.pid)),
|
|
163
|
+
];
|
|
164
|
+
return pids.length === 1 ? pids[0] : null;
|
|
165
|
+
}
|
|
166
|
+
function chromeCommandMatches(pid, profileDir) {
|
|
167
|
+
if (process.platform === "linux")
|
|
168
|
+
return profileProcessIdentity(pid, profileDir) !== null;
|
|
169
|
+
try {
|
|
170
|
+
const command = execFileSync("ps", ["-ww", "-p", String(pid), "-o", "command="], {
|
|
171
|
+
encoding: "utf8",
|
|
172
|
+
timeout: 3_000,
|
|
173
|
+
});
|
|
174
|
+
const profile = profilePathIdentity(profileDir);
|
|
175
|
+
return ([
|
|
176
|
+
`--user-data-dir=${profile}`,
|
|
177
|
+
`--user-data-dir="${profile}"`,
|
|
178
|
+
`--user-data-dir='${profile}'`,
|
|
179
|
+
].some((argument) => {
|
|
180
|
+
const offset = command.indexOf(argument);
|
|
181
|
+
return (offset >= 0 &&
|
|
182
|
+
(offset === 0 || /\s/.test(command[offset - 1])) &&
|
|
183
|
+
(offset + argument.length === command.length ||
|
|
184
|
+
/\s/.test(command[offset + argument.length])));
|
|
185
|
+
}) && /(?:Chrome|Chromium|chrome|chromium)/.test(command));
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
async function waitUntil(released) {
|
|
192
|
+
const deadline = Date.now() + TAKEOVER_WAIT_MS;
|
|
193
|
+
while (Date.now() < deadline) {
|
|
194
|
+
if (released())
|
|
195
|
+
return true;
|
|
196
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
197
|
+
}
|
|
198
|
+
return released();
|
|
199
|
+
}
|
|
200
|
+
async function takeOverOldBroker(profileDir) {
|
|
201
|
+
const pid = lockedBrokerPid(profileDir);
|
|
202
|
+
if (pid === null ||
|
|
203
|
+
pid === process.pid ||
|
|
204
|
+
!brokerCommandMatches(pid) ||
|
|
205
|
+
!brokerServesProfile(pid, profileDir))
|
|
206
|
+
throw new ProfileBusyError("Could not identify the broker holding this profile lock");
|
|
207
|
+
const identity = processBirthIdentity(pid);
|
|
208
|
+
if (identity === null || lockedBrokerPid(profileDir) !== pid) {
|
|
209
|
+
throw new ProfileBusyError("Broker profile lock holder changed during takeover");
|
|
210
|
+
}
|
|
211
|
+
process.kill(pid, "SIGTERM");
|
|
212
|
+
const released = () => lockedBrokerPid(profileDir) !== pid;
|
|
213
|
+
if (await waitUntil(released))
|
|
214
|
+
return;
|
|
215
|
+
if (processBirthIdentityState(identity) === "matching" && lockedBrokerPid(profileDir) === pid)
|
|
216
|
+
process.kill(pid, "SIGKILL");
|
|
217
|
+
if (!(await waitUntil(released)))
|
|
218
|
+
throw new ProfileBusyError("Old broker did not release the profile lock");
|
|
219
|
+
}
|
|
220
|
+
async function takeOverSocketBroker(profileDir, socket) {
|
|
221
|
+
const pid = socketBrokerPid(socket);
|
|
222
|
+
if (pid === null)
|
|
223
|
+
return;
|
|
224
|
+
if (!brokerCommandMatches(pid) || !brokerServesProfile(pid, profileDir))
|
|
225
|
+
throw new ProfileBusyError("Profile socket is held by an unidentified process");
|
|
226
|
+
const identity = processBirthIdentity(pid);
|
|
227
|
+
if (identity === null || socketBrokerPid(socket) !== pid)
|
|
228
|
+
throw new ProfileBusyError("Broker socket holder changed during takeover");
|
|
229
|
+
process.kill(pid, "SIGTERM");
|
|
230
|
+
const released = () => socketBrokerPid(socket) !== pid;
|
|
231
|
+
if (await waitUntil(released))
|
|
232
|
+
return;
|
|
233
|
+
if (processBirthIdentityState(identity) === "matching" && socketBrokerPid(socket) === pid)
|
|
234
|
+
process.kill(pid, "SIGKILL");
|
|
235
|
+
if (!(await waitUntil(released)))
|
|
236
|
+
throw new ProfileBusyError("Old broker did not release its profile socket");
|
|
237
|
+
}
|
|
238
|
+
/** A dead broker can leave Chrome alive without holding the SQLite lock. */
|
|
239
|
+
async function takeOverOldChrome(profileDir) {
|
|
240
|
+
const holder = readLockHolder(profileDir);
|
|
241
|
+
if (holder === null || holder.host !== hostname() || holder.stale)
|
|
242
|
+
return;
|
|
243
|
+
const identity = processBirthIdentity(holder.pid);
|
|
244
|
+
if (identity === null)
|
|
245
|
+
throw new ProfileBusyError("Cannot identify the old Chrome process");
|
|
246
|
+
if (!chromeCommandMatches(holder.pid, profileDir))
|
|
247
|
+
throw new ProfileBusyError("Profile lock does not identify Chrome for this profile");
|
|
248
|
+
const stillOwned = () => {
|
|
249
|
+
const current = readLockHolder(profileDir);
|
|
250
|
+
return (current?.host === hostname() &&
|
|
251
|
+
current.pid === holder.pid &&
|
|
252
|
+
!current.stale &&
|
|
253
|
+
processBirthIdentityState(identity) === "matching");
|
|
254
|
+
};
|
|
255
|
+
if (!stillOwned())
|
|
256
|
+
return;
|
|
257
|
+
process.kill(holder.pid, "SIGINT"); // Chrome flushes profile state on SIGINT.
|
|
258
|
+
if (await waitUntil(() => !stillOwned()))
|
|
259
|
+
return;
|
|
260
|
+
if (stillOwned())
|
|
261
|
+
process.kill(holder.pid, "SIGKILL");
|
|
262
|
+
if (!(await waitUntil(() => !stillOwned())))
|
|
263
|
+
throw new ProfileBusyError("Old Chrome did not release this profile");
|
|
264
|
+
}
|
|
86
265
|
export async function runBrokerDaemon() {
|
|
87
266
|
// A managed-broker marker means a systemd unit owns this profile. Refuse
|
|
88
267
|
// before touching the socket, the profile lock, or Chrome when this process
|
|
@@ -111,11 +290,27 @@ export async function runBrokerDaemon() {
|
|
|
111
290
|
.digest("hex");
|
|
112
291
|
// The fd is the broker's sole profile authority. A crash releases it in the
|
|
113
292
|
// kernel; the remaining inode carries no owner record.
|
|
114
|
-
|
|
293
|
+
let profileElection;
|
|
294
|
+
try {
|
|
295
|
+
profileElection = acquireProfileOperationGuard(CHROME_PROFILE_DIR);
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
if (!(error instanceof ProfileBusyError) || !startedByBrokerService(process.env))
|
|
299
|
+
throw error;
|
|
300
|
+
await takeOverOldBroker(CHROME_PROFILE_DIR);
|
|
301
|
+
profileElection = acquireProfileOperationGuard(CHROME_PROFILE_DIR);
|
|
302
|
+
}
|
|
303
|
+
if (startedByBrokerService(process.env)) {
|
|
304
|
+
await takeOverSocketBroker(CHROME_PROFILE_DIR, path);
|
|
305
|
+
await takeOverSocketBroker(CHROME_PROFILE_DIR, sharedMcpSocketPath());
|
|
306
|
+
}
|
|
115
307
|
await stopBrowserScope(CHROME_PROFILE_DIR);
|
|
308
|
+
if (startedByBrokerService(process.env))
|
|
309
|
+
await takeOverOldChrome(CHROME_PROFILE_DIR);
|
|
116
310
|
// One-time upgrade cleanup. Old file leases are not consulted by this broker.
|
|
117
311
|
await rm(join(dirname(profilePathIdentity(CHROME_PROFILE_DIR)), ".trusty-squire-broker-leases"), {
|
|
118
|
-
recursive: true,
|
|
312
|
+
recursive: true,
|
|
313
|
+
force: true,
|
|
119
314
|
});
|
|
120
315
|
const runtime = new BrokerRuntime();
|
|
121
316
|
installBrokerBrowserCustody(runtime);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/bot/broker/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/bot/broker/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,27 +4,26 @@ export declare function brokerSocketPath(profileDir?: string): string;
|
|
|
4
4
|
export declare function resolveBrokerSocket(profileDir?: string): string;
|
|
5
5
|
export declare function isUnavailable(error: unknown): boolean;
|
|
6
6
|
export declare function isBrowserContentionRefusal(error: unknown): boolean;
|
|
7
|
-
export declare function liveUnixSocket(path: string): Promise<boolean>;
|
|
8
|
-
export declare function brokerEnvironment(env: NodeJS.ProcessEnv, path: string): NodeJS.ProcessEnv;
|
|
7
|
+
export declare function liveUnixSocket(path: string, signal?: AbortSignal): Promise<boolean>;
|
|
9
8
|
export interface ManagedBrokerUnit {
|
|
10
9
|
id: string;
|
|
11
10
|
activeState: string;
|
|
12
11
|
execStart: string;
|
|
13
12
|
environment: Record<string, string>;
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
export declare function unitServesProfile(unit: ManagedBrokerUnit, profileDir: string): boolean;
|
|
15
|
+
/** Whether this live service serves the requested physical profile. */
|
|
16
|
+
export declare function unitServesLiveProfile(unit: ManagedBrokerUnit, profileDir: string): boolean;
|
|
17
17
|
/** The live broker unit that owns this profile, if any. */
|
|
18
18
|
export declare function findLiveManagedBrokerUnit(units: readonly ManagedBrokerUnit[], profileDir: string): ManagedBrokerUnit | undefined;
|
|
19
19
|
/** Parse `systemctl --user show --type=service` property blocks. */
|
|
20
20
|
export declare function parseManagedBrokerShow(stdout: string): ManagedBrokerUnit[];
|
|
21
|
-
export declare function managedBrokerUnitIsLive(profileDir?: string): boolean;
|
|
22
21
|
/** The socket a live managed broker unit for this profile was configured with. */
|
|
23
22
|
export declare function managedBrokerUnitSocket(profileDir?: string): string | undefined;
|
|
24
23
|
/** systemctl answer for this profile. A failure is deliberately "unknown",
|
|
25
24
|
* NOT "no unit": inside bwrap sandboxes `systemctl --user` fails, and a
|
|
26
|
-
* client
|
|
27
|
-
*
|
|
25
|
+
* client still resolves the marker or derived endpoint. No result permits
|
|
26
|
+
* client-side startup. */
|
|
28
27
|
export type ManagedUnitState = {
|
|
29
28
|
state: "live";
|
|
30
29
|
socket?: string | undefined;
|
|
@@ -35,26 +34,14 @@ export type ManagedUnitState = {
|
|
|
35
34
|
state: "unknown";
|
|
36
35
|
};
|
|
37
36
|
export declare function readSystemctlUnits(profileDir: string): ManagedUnitState;
|
|
38
|
-
/**
|
|
39
|
-
|
|
40
|
-
* - a marker file EXISTS (valid or not): never spawn. Wait for the marker's
|
|
41
|
-
* declared socket (bounded) and broker_unavailable on timeout; a marker
|
|
42
|
-
* with no socket never reopens spawning.
|
|
43
|
-
* - no marker: a live managed unit defers (wait, no spawn); systemctl
|
|
44
|
-
* failure ("unknown") and "no unit" both may spawn on demand. */
|
|
45
|
-
export type BrokerLaunchDecision = {
|
|
46
|
-
kind: "spawn";
|
|
47
|
-
} | {
|
|
48
|
-
kind: "wait";
|
|
37
|
+
/** Resolve and verify the service's endpoint, even when its socket is down. */
|
|
38
|
+
export declare function brokerConnectionTarget(profileDir: string, path: string, options?: BrokerConnectOptions): Promise<{
|
|
49
39
|
socket: string;
|
|
50
|
-
}
|
|
51
|
-
export declare function brokerLaunchDecision(profileDir: string, path: string, options?: BrokerConnectOptions): Promise<BrokerLaunchDecision>;
|
|
40
|
+
}>;
|
|
52
41
|
export interface BrokerConnectOptions {
|
|
53
42
|
accountId?: string | undefined;
|
|
54
|
-
agentSessionToken?: string | undefined;
|
|
55
43
|
}
|
|
56
|
-
export declare function
|
|
57
|
-
/**
|
|
58
|
-
|
|
59
|
-
export declare function ensureSharedMcp(path?: string): Promise<void>;
|
|
44
|
+
export declare function connectBroker(path: string, options?: BrokerConnectOptions): Promise<BrokerClient>;
|
|
45
|
+
/** Wait for the service's MCP listener without opening a wire session. */
|
|
46
|
+
export declare function ensureSharedMcp(path?: string, signal?: AbortSignal): Promise<void>;
|
|
60
47
|
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/bot/broker/discovery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/bot/broker/discovery.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAY9C,wBAAgB,mBAAmB,CAAC,UAAU,SAAsB,GAAG,MAAM,CAc5E;AAED,wBAAgB,gBAAgB,CAAC,UAAU,SAAsB,GAAG,MAAM,CAczE;AAED,wBAAgB,mBAAmB,CAAC,UAAU,SAAsB,GAAG,MAAM,CAS5E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGrD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKlE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBzF;AAoCD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AA4CD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAQtF;AAUD,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAE1F;AAED,2DAA2D;AAC3D,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,iBAAiB,EAAE,EACnC,UAAU,EAAE,MAAM,GACjB,iBAAiB,GAAG,SAAS,CAE/B;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAyB1E;AAED,kFAAkF;AAClF,wBAAgB,uBAAuB,CAAC,UAAU,SAAsB,GAAG,MAAM,GAAG,SAAS,CAG5F;AAED;;;0BAG0B;AAC1B,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GACvE;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GACnB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEzB,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAiCvE;AAmFD,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAa7B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,YAAY,CAAC,CAoBvB;AAED,0EAA0E;AAC1E,wBAAsB,eAAe,CACnC,IAAI,SAAwB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAQf"}
|