crewx-bridge 0.2.7 → 0.2.8

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.
@@ -1,4 +1,7 @@
1
- import { spawn } from "node:child_process";
1
+ import { execFileSync, spawn, } from "node:child_process";
2
+ import { createHash, randomBytes } from "node:crypto";
3
+ import { readFileSync } from "node:fs";
4
+ import { Writable } from "node:stream";
2
5
  import { fileURLToPath } from "node:url";
3
6
  import { BridgeError } from "./errors.js";
4
7
  const PASSTHROUGH_ENVIRONMENT = [
@@ -19,6 +22,54 @@ const PASSTHROUGH_ENVIRONMENT = [
19
22
  "CODEX_HOME",
20
23
  "CLAUDE_CONFIG_DIR",
21
24
  ];
25
+ export const RUNNER_SHUTDOWN_GRACE_MS = 65_000;
26
+ function includesArgument(args, name, value) {
27
+ return args.some((argument, index) => argument === `${name}=${value}` ||
28
+ (argument === name && args[index + 1] === value));
29
+ }
30
+ function matchesRunnerArguments(args, identity) {
31
+ return (args.includes("daemon") &&
32
+ includesArgument(args, "--bridge-run-id", identity.runId) &&
33
+ includesArgument(args, "--bridge-run-nonce", identity.processNonce));
34
+ }
35
+ function linuxProcessIdentity(pid, identity) {
36
+ const args = readFileSync(`/proc/${pid}/cmdline`)
37
+ .toString("utf8")
38
+ .split("\0")
39
+ .filter(Boolean);
40
+ const stat = readFileSync(`/proc/${pid}/stat`, "utf8");
41
+ const fields = stat.slice(stat.lastIndexOf(")") + 2).trim().split(/\s+/);
42
+ const processGroup = Number(fields[2]);
43
+ return processGroup === pid && matchesRunnerArguments(args, identity);
44
+ }
45
+ function macProcessIdentity(pid, identity) {
46
+ const output = execFileSync("/bin/ps", ["-ww", "-p", String(pid), "-o", "pgid=", "-o", "args="], {
47
+ encoding: "utf8",
48
+ timeout: 2_000,
49
+ maxBuffer: 128 * 1024,
50
+ }).trim();
51
+ const match = output.match(/^(\d+)\s+([\s\S]+)$/);
52
+ if (!match || Number(match[1]) !== pid)
53
+ return false;
54
+ const command = match[2] ?? "";
55
+ return (command.includes(" daemon ") &&
56
+ command.includes(`--bridge-run-id ${identity.runId}`) &&
57
+ command.includes(`--bridge-run-nonce ${identity.processNonce}`));
58
+ }
59
+ export function inspectBridgeRunnerIdentity(pid, identity, platform = process.platform) {
60
+ if (!Number.isSafeInteger(pid) || pid <= 1)
61
+ return false;
62
+ try {
63
+ if (platform === "linux")
64
+ return linuxProcessIdentity(pid, identity);
65
+ if (platform === "darwin")
66
+ return macProcessIdentity(pid, identity);
67
+ return false;
68
+ }
69
+ catch {
70
+ return false;
71
+ }
72
+ }
22
73
  export function minimalChildEnvironment(additions, source = process.env) {
23
74
  const environment = {};
24
75
  for (const key of PASSTHROUGH_ENVIRONMENT) {
@@ -28,6 +79,13 @@ export function minimalChildEnvironment(additions, source = process.env) {
28
79
  }
29
80
  return { ...environment, ...additions };
30
81
  }
82
+ export function runnerScopeForStart(payload, serverUrl, adapter) {
83
+ if (payload.runner_scope)
84
+ return payload.runner_scope;
85
+ return `legacy-${createHash("sha256")
86
+ .update(`${serverUrl.replace(/\/+$/, "")}\0${String(payload.agent_id)}\0${adapter}`)
87
+ .digest("base64url")}`;
88
+ }
31
89
  export function resolveAgentCliEntrypoint() {
32
90
  return fileURLToPath(import.meta.resolve("crewx-agent-cli"));
33
91
  }
@@ -68,27 +126,42 @@ export class ProcessSupervisor {
68
126
  cliEntrypoint;
69
127
  onExit;
70
128
  runLogs;
129
+ inspectRunner;
71
130
  runs = new Map();
72
- constructor(config, spawnProcess = spawn, cliEntrypoint = resolveAgentCliEntrypoint(), onExit = () => undefined, runLogs) {
131
+ constructor(config, spawnProcess = spawn, cliEntrypoint = resolveAgentCliEntrypoint(), onExit = () => undefined, runLogs, inspectRunner = inspectBridgeRunnerIdentity) {
73
132
  this.config = config;
74
133
  this.spawnProcess = spawnProcess;
75
134
  this.cliEntrypoint = cliEntrypoint;
76
135
  this.onExit = onExit;
77
136
  this.runLogs = runLogs;
137
+ this.inspectRunner = inspectRunner;
78
138
  }
79
139
  activeCount() {
80
- return [...this.runs.values()].filter(({ pid }) => processAlive(pid)).length;
140
+ return [...this.runs.keys()].filter((runId) => this.isRunning(runId)).length;
81
141
  }
82
142
  activeRuns() {
83
143
  return [...this.runs.entries()]
84
- .filter(([, { pid }]) => processAlive(pid))
144
+ .filter(([runId]) => this.isRunning(runId))
85
145
  .map(([id, { pid }]) => ({ id, pid }));
86
146
  }
87
147
  isRunning(runId, _journalPid) {
88
- const pid = this.runs.get(runId)?.pid;
89
- return typeof pid === "number" && processAlive(pid);
148
+ const run = this.runs.get(runId);
149
+ if (!run || !processAlive(run.pid))
150
+ return false;
151
+ return this.inspectRunner(run.pid, {
152
+ runId,
153
+ processNonce: run.processNonce,
154
+ });
90
155
  }
91
- start(payload, secret, folder) {
156
+ adopt(runId, pid, processNonce) {
157
+ if (!processAlive(pid) ||
158
+ !this.inspectRunner(pid, { runId, processNonce })) {
159
+ return false;
160
+ }
161
+ this.runs.set(runId, { pid, processNonce });
162
+ return true;
163
+ }
164
+ start(payload, secret, folder, processNonce = randomBytes(32).toString("base64url")) {
92
165
  if (this.isRunning(payload.run_id)) {
93
166
  const existing = this.runs.get(payload.run_id);
94
167
  if (existing)
@@ -104,6 +177,10 @@ export class ProcessSupervisor {
104
177
  payload.adapter,
105
178
  "--cwd",
106
179
  folder.path,
180
+ "--bridge-run-id",
181
+ payload.run_id,
182
+ "--bridge-run-nonce",
183
+ processNonce,
107
184
  ];
108
185
  const runLog = this.runLogs?.open(payload.run_id);
109
186
  let child;
@@ -112,14 +189,16 @@ export class ProcessSupervisor {
112
189
  cwd: folder.path,
113
190
  env: minimalChildEnvironment({
114
191
  CREWX_URL: secret.api_url,
115
- CREWX_TOKEN: secret.agent_token,
116
192
  CREWX_CLI_PATH: this.cliEntrypoint,
117
193
  CREWX_ADAPTER: payload.adapter,
194
+ CREWX_RUNNER_SCOPE: runnerScopeForStart(payload, this.config.url, payload.adapter),
118
195
  CREWX_BRIDGE_ROOT: folder.path,
196
+ CREWX_BRIDGE_WATCHDOG_FD: "3",
197
+ CREWX_RUN_CREDENTIAL_FD: "4",
119
198
  }),
120
199
  detached: true,
121
200
  shell: false,
122
- stdio: ["ignore", "pipe", "pipe"],
201
+ stdio: ["ignore", "pipe", "pipe", "pipe", "pipe"],
123
202
  });
124
203
  }
125
204
  catch (error) {
@@ -133,7 +212,19 @@ export class ProcessSupervisor {
133
212
  runLog?.close();
134
213
  throw new BridgeError("spawn_failed", "The agent runner did not return a process ID.");
135
214
  }
136
- this.runs.set(payload.run_id, { pid: child.pid, child });
215
+ const credentialPipe = child.stdio[4];
216
+ if (!(credentialPipe instanceof Writable)) {
217
+ child.kill();
218
+ runLog?.write("bridge", "The one-shot run credential pipe was unavailable.");
219
+ runLog?.close();
220
+ throw new BridgeError("spawn_failed", "The agent runner credential pipe was unavailable.");
221
+ }
222
+ credentialPipe.once("error", () => {
223
+ // The runner will fail closed when it cannot read the credential. Never
224
+ // include pipe errors or the credential itself in diagnostics.
225
+ });
226
+ credentialPipe.end(`${secret.agent_token}\n`);
227
+ this.runs.set(payload.run_id, { pid: child.pid, processNonce, child });
137
228
  child.stdout?.on("data", (chunk) => runLog?.write("stdout", chunk));
138
229
  child.stderr?.on("data", (chunk) => runLog?.write("stderr", chunk));
139
230
  let finished = false;
@@ -175,10 +266,10 @@ export class ProcessSupervisor {
175
266
  }
176
267
  async stop(runId, _journalPid) {
177
268
  // A PID restored from disk is not a process identity: after a restart it
178
- // may belong to an unrelated process. Only signal children this
179
- // supervisor spawned and still tracks in memory.
269
+ // may belong to an unrelated process. Signal only a child spawned here or
270
+ // a journal runner adopted after run ID, nonce, and process-group checks.
180
271
  const pid = this.runs.get(runId)?.pid;
181
- if (!pid || !processAlive(pid)) {
272
+ if (!pid || !this.isRunning(runId)) {
182
273
  this.runs.delete(runId);
183
274
  return;
184
275
  }
@@ -186,7 +277,7 @@ export class ProcessSupervisor {
186
277
  if (run)
187
278
  run.stopping = true;
188
279
  signalProcessGroup(pid, "SIGTERM");
189
- const exited = await waitForExit(pid, this.config.policy.shutdownGraceMs);
280
+ const exited = await waitForExit(pid, Math.max(this.config.policy.shutdownGraceMs, RUNNER_SHUTDOWN_GRACE_MS));
190
281
  if (!exited) {
191
282
  signalProcessGroup(pid, "SIGKILL");
192
283
  await waitForExit(pid, 1_000);
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,KAAK,GAGN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA4B1C,MAAM,uBAAuB,GAAG;IAC9B,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,YAAY;IACZ,mBAAmB;CACX,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAY/C,SAAS,gBAAgB,CACvB,IAAuB,EACvB,IAAY,EACZ,KAAa;IAEb,OAAO,IAAI,CAAC,IAAI,CACd,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAClB,QAAQ,KAAK,GAAG,IAAI,IAAI,KAAK,EAAE;QAC/B,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CACnD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAuB,EACvB,QAA8B;IAE9B,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC;QACzD,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,CAAC,YAAY,CAAC,CACpE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,GAAW,EACX,QAA8B;IAE9B,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,GAAG,UAAU,CAAC;SAC9C,QAAQ,CAAC,MAAM,CAAC;SAChB,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,YAAY,KAAK,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAW,EACX,QAA8B;IAE9B,MAAM,MAAM,GAAG,YAAY,CACzB,SAAS,EACT,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EACxD;QACE,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,GAAG,GAAG,IAAI;KACtB,CACF,CAAC,IAAI,EAAE,CAAC;IACT,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,QAAQ,CAAC,KAAK,EAAE,CAAC;QACrD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,GAAW,EACX,QAA8B,EAC9B,QAAQ,GAAG,OAAO,CAAC,QAAQ;IAE3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,OAAO;YAAE,OAAO,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrE,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,SAAiC,EACjC,SAA4B,OAAO,CAAC,GAAG;IAEvC,MAAM,WAAW,GAAsB,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAmE,EACnE,SAAiB,EACjB,OAA2C;IAE3C,IAAI,OAAO,CAAC,YAAY;QAAE,OAAO,OAAO,CAAC,YAAY,CAAC;IACtD,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC;SAClC,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,EAAE,CAAC;SACnF,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,MAAsB;IAC7D,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,SAAiB;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,OAAO,iBAAiB;IAIT;IACA;IACA;IACA;IACA;IACA;IARF,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEtD,YACmB,MAAoB,EACpB,eAA6B,KAAK,EAClC,gBAAgB,yBAAyB,EAAE,EAC3C,SAA6C,GAAG,EAAE,CAAC,SAAS,EAC5D,OAAuB,EACvB,gBACf,2BAA2B;QANZ,WAAM,GAAN,MAAM,CAAc;QACpB,iBAAY,GAAZ,YAAY,CAAsB;QAClC,kBAAa,GAAb,aAAa,CAA8B;QAC3C,WAAM,GAAN,MAAM,CAAsD;QAC5D,YAAO,GAAP,OAAO,CAAgB;QACvB,kBAAa,GAAb,aAAa,CACD;IAC5B,CAAC;IAEJ,WAAW;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/E,CAAC;IAED,UAAU;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,WAA2B;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACjD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE;YACjC,KAAK;YACL,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,YAAoB;QACpD,IACE,CAAC,YAAY,CAAC,GAAG,CAAC;YAClB,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EACjD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CACH,OAAgC,EAChC,MAA2B,EAC3B,MAA0B,EAC1B,YAAY,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAEpD,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC/D,MAAM,IAAI,WAAW,CACnB,6BAA6B,EAC7B,kDAAkD,CACnD,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG;YACX,IAAI,CAAC,aAAa;YAClB,QAAQ;YACR,WAAW;YACX,OAAO,CAAC,OAAO;YACf,OAAO;YACP,MAAM,CAAC,IAAI;YACX,iBAAiB;YACjB,OAAO,CAAC,MAAM;YACd,oBAAoB;YACpB,YAAY;SACb,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,KAAmB,CAAC;QACxB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;gBAChD,GAAG,EAAE,MAAM,CAAC,IAAI;gBAChB,GAAG,EAAE,uBAAuB,CAAC;oBAC3B,SAAS,EAAE,MAAM,CAAC,OAAO;oBACzB,cAAc,EAAE,IAAI,CAAC,aAAa;oBAClC,aAAa,EAAE,OAAO,CAAC,OAAO;oBAC9B,kBAAkB,EAAE,mBAAmB,CACrC,OAAO,EACP,IAAI,CAAC,MAAM,CAAC,GAAG,EACf,OAAO,CAAC,OAAO,CAChB;oBACD,iBAAiB,EAAE,MAAM,CAAC,IAAI;oBAC9B,wBAAwB,EAAE,GAAG;oBAC7B,uBAAuB,EAAE,GAAG;iBAC7B,CAAC;gBACF,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;aAClD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAChF,MAAM,EAAE,KAAK,EAAE,CAAC;YAChB,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,+CAA+C,CAAC,CAAC;YACzE,MAAM,EAAE,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,WAAW,CAAC,cAAc,EAAE,+CAA+C,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,cAAc,YAAY,QAAQ,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,mDAAmD,CAAC,CAAC;YAC7E,MAAM,EAAE,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,WAAW,CACnB,cAAc,EACd,mDAAmD,CACpD,CAAC;QACJ,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YAChC,wEAAwE;YACxE,+DAA+D;QACjE,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QACvE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE,CAClD,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAC/B,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE,CAClD,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAC/B,CAAC;QACF,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,CACb,IAAmB,EACnB,MAA6B,EAC7B,KAAa,EACb,EAAE;YACF,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,OAAO,EAAE,KAAK,KAAK,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC;YAChD,MAAM,MAAM,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,MAAM;gBACvB,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACnE,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,EAAE,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC;gBACV,KAAK,EAAE,OAAO,CAAC,MAAM;gBACrB,GAAG,EAAE,KAAK,CAAC,GAAa;gBACxB,IAAI;gBACJ,MAAM;gBACN,YAAY;gBACZ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,MAAM;oBACR,CAAC,CAAC;wBACE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB;wBAC/D,YAAY,EACV,UAAU;4BACV,CAAC,MAAM;gCACL,CAAC,CAAC,oCAAoC,MAAM,GAAG;gCAC/C,CAAC,CAAC,iCAAiC,IAAI,IAAI,SAAS,GAAG,CAAC;qBAC7D;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,GAAG,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,WAA2B;QACnD,yEAAyE;QACzE,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,GAAG;YAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7B,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,GAAG,EACH,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,EAClC,wBAAwB,CACzB,CACF,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACnC,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAC1E,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crewx-bridge",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "Secure macOS and Linux machine bridge for CrewX agent runtimes.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -36,8 +36,8 @@
36
36
  "dependencies": {
37
37
  "commander": "^14.0.2",
38
38
  "zod": "^4.1.12",
39
- "crewx-agent-cli": "0.2.3",
40
- "crewx-agent-protocol": "0.2.3"
39
+ "crewx-agent-protocol": "0.2.4",
40
+ "crewx-agent-cli": "0.2.4"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^24.10.1",