visionclaw 0.1.206-beta.17 → 0.1.206-beta.18

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.
@@ -14,7 +14,7 @@ export async function ensureBrowserForTool(options) {
14
14
  if (!status.reachable) {
15
15
  logger.system("Playwriter relay unreachable — reconciling");
16
16
  invalidateRelayStatusCache();
17
- reconcilePlaywriterRelay(host, port);
17
+ await reconcilePlaywriterRelay(host, port);
18
18
  }
19
19
  if (status.extensionConnected) {
20
20
  // The extension is connected, but on a cold start the relay can briefly
@@ -1 +1 @@
1
- {"version":3,"file":"browser-tool-policy.js","sourceRoot":"","sources":["../../../src/agent/engines/browser-tool-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-tool-policy.js","sourceRoot":"","sources":["../../../src/agent/engines/browser-tool-policy.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ async function bringUpPlaywriterLazily(host, port) {
51
51
  }
52
52
  // Make sure the (persistent) relay process is up and ready to accept the
53
53
  // extension when Chrome launches later. Throws if the relay can't be started.
54
- reconcilePlaywriterRelay(host, port);
54
+ await reconcilePlaywriterRelay(host, port);
55
55
  return { viable: true, mode: "deferred" };
56
56
  }
57
57
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-surface.js","sourceRoot":"","sources":["../../src/agent/runtime-surface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC3G,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAwCtC;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,uBAAuB,CACpC,IAAY,EACZ,IAAY;IAEZ,IAAI,gCAAgC,EAAE,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC1C,CAAC;QACD,oEAAoE;QACpE,uEAAuE;QACvE,aAAa;QACb,oBAAoB,EAAE,CAAC;QACvB,6BAA6B,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IACvE,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,uEAAuE;IACvE,8EAA8E;IAC9E,WAAW;IACX,IAAI,CAAC,8BAA8B,EAAE,EAAE,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC7C,CAAC;IACD,yEAAyE;IACzE,8EAA8E;IAC9E,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAwB;IACjE,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IAEvD,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,IAAI,WAAW,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,IAAI,KAAK,CAAC;IAEjD,yBAAyB,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,IAAI,8BAA8B,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACnE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,MAAM,CAAC,gCAAgC,IAAI,GAAG,CAAC,CAAC;oBACvD,OAAO,YAAY,CAAC;gBACtB,CAAC;gBACD,MAAM,CAAC,MAAM,CACX,2DAA2D,IAAI,QAAQ,IAAI,IAAI,IAAI,GAAG,CACvF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,CACX,0DAA0D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAC9G,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,qFAAqF,CAAC,CAAC;YACrG,kBAAkB,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,MAAM,CAAC,mEAAmE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAwB;IAChE,MAAM,sBAAsB,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,yBAAyB,GAAG,qBAAqB,EAAE,CAAC;IAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO;QACL,cAAc,EAAE;YACd,WAAW,EAAE,sBAAsB,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC;YAC3D,sBAAsB;YACtB,eAAe,EAAE;gBACf,6EAA6E;gBAC7E,iBAAiB;gBACjB,YAAY;gBACZ,YAAY;gBACZ,UAAU;gBACV,eAAe;gBACf,cAAc;gBACd,eAAe;gBACf,cAAc;gBACd,kBAAkB;gBAClB,eAAe;gBACf,gBAAgB;gBAChB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC;YACD,uBAAuB,EAAE;gBACvB,SAAS,EAAE,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY;gBACnE,yBAAyB,EAAE,IAAI;aAChC;YACD,kBAAkB,EAAE;gBAClB,GAAG,CAAC,MAAM,8BAA8B,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;gBACzE,GAAG,yBAAyB;aAC7B;SACF;QACD,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM;KAC5E,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAyB,EACzB,KAA8B;IAE9B,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,wBAAwB;IAC/B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,gBAAgB,GAAG;QACvB,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE;KAC7C,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAC3E,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAExE,OAAO;QACL,UAAU,EAAE;YACV,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAC;YACjD,GAAG,EAAE;gBACH,IAAI,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;aAC5C;YACD,qEAAqE;YACrE,sEAAsE;YACtE,8DAA8D;YAC9D,UAAU,EAAE,IAAI;SACjB;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,MAAwB;IACnE,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,IAAI,WAAW,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,IAAI,KAAK,CAAC;IACjD,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,kEAAkE;IAClE,qEAAqE;IACrE,4EAA4E;IAC5E,6EAA6E;IAC7E,uEAAuE;IACvE,oEAAoE;IACpE,uEAAuE;IACvE,yBAAyB;IACzB,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAE9D,MAAM,gBAAgB,GAAG;QACvB,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE,EAAE;KACrF,CAAC;IACF,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAExE,OAAO;QACL,UAAU,EAAE;YACV,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAC;YACjD,GAAG,EAAE;gBACH,IAAI,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;aAC5C;YACD,uEAAuE;YACvE,UAAU,EAAE,IAAI;SACjB;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,MAAwB,EACxB,sBAAsC;IAEtC,MAAM,aAAa,GAAG,sBAAsB,KAAK,YAAY;QAC3D,CAAC,CAAC,MAAM,6BAA6B,CAAC,MAAM,CAAC;QAC7C,CAAC,CAAC,wBAAwB,EAAE,CAAC;IAE/B,MAAM,kBAAkB,GAA4C;QAClE,GAAG,aAAa;KACjB,CAAC;IAEF,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,UAAU,EAAE,CAAC;QACf,kBAAkB,CAAC,OAAO,GAAG;YAC3B,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC;SACpC,CAAC;IACJ,CAAC;IACD,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAI,mBAAmB,EAAE,CAAC;QACxB,sEAAsE;QACtE,uEAAuE;QACvE,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACjE,kBAAkB,CAAC,gBAAgB,CAAC,GAAG;YACrC,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,GAAG,oBAAoB,QAAQ,mBAAmB,EAAE;SAC1D,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,kEAAkE;IAClE,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,WAAW,EAAE,CAAC;QAChB,kBAAkB,CAAC,SAAS,CAAC,GAAG;YAC9B,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,GAAG,WAAW,CAAC,OAAO,QAAQ,WAAW,CAAC,MAAM,EAAE;SACxD,CAAC;IACJ,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,OAAO,0CAA0C,OAAO,MAAM,CAAC;IACjE,CAAC;IACD,OAAO,2BAA2B,OAAO,MAAM,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"runtime-surface.js","sourceRoot":"","sources":["../../src/agent/runtime-surface.ts"],"names":[],"mappings":"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"}
@@ -201,7 +201,13 @@ export declare function getRelayInfoFromFile(): {
201
201
  } | null;
202
202
  export declare function getCachedRelayStatus(host?: string, port?: number): Promise<PlaywriterRelayStatus>;
203
203
  export declare function invalidateRelayStatusCache(): void;
204
- export declare function reconcilePlaywriterRelay(host?: string, port?: number): void;
204
+ /**
205
+ * Converge the pm2-managed relay to "one healthy process, current version,
206
+ * correct env". Async because recovery may need HTTP fingerprinting and port
207
+ * reclamation (see {@link ensureRelayPortAvailable} and
208
+ * {@link healUnlistablePm2State}).
209
+ */
210
+ export declare function reconcilePlaywriterRelay(host?: string, port?: number): Promise<void>;
205
211
  export declare function ensurePlaywriterRelay(host?: string, port?: number): Promise<PlaywriterRelayStatus>;
206
212
  export declare function cleanupOrphanRelay(): void;
207
213
  export { RELAY_PROTOCOL_VERSION };
@@ -1 +1 @@
1
- {"version":3,"file":"playwriter-relay.d.ts","sourceRoot":"","sources":["../../src/utils/playwriter-relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwriter-relay.d.ts","sourceRoot":"","sources":["../../src/utils/playwriter-relay.ts"],"names":[],"mappings":"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"}
@@ -115,19 +115,74 @@ export function warnOnPm2VersionSkew() {
115
115
  + "(disruptive: it restarts all pm2-managed processes) when convenient.");
116
116
  }
117
117
  }
118
- function listPm2RelayProcesses() {
119
- try {
120
- const output = execFileSync("pm2", ["jlist"], {
121
- encoding: "utf-8",
122
- stdio: ["pipe", "pipe", "pipe"],
123
- timeout: 10_000,
124
- });
125
- const processes = JSON.parse(output);
126
- return processes.filter((p) => p.name === PM2_PROCESS_NAME);
118
+ function runPm2Jlist() {
119
+ const output = execFileSync("pm2", ["jlist"], {
120
+ encoding: "utf-8",
121
+ stdio: ["pipe", "pipe", "pipe"],
122
+ timeout: 10_000,
123
+ });
124
+ // pm2 may print banner lines before the JSON (update notices, and daemon
125
+ // startup lines like `[PM2] Spawning PM2 daemon...` that ALSO begin with
126
+ // `[`). The JSON array is always the LAST such block, on its own line -- so
127
+ // parse from the last line-starting `[` first, then fall back to the first
128
+ // `[` for outputs where the array is not newline-separated.
129
+ const lastLineStart = output.lastIndexOf("\n[");
130
+ if (lastLineStart >= 0) {
131
+ try {
132
+ return JSON.parse(output.slice(lastLineStart + 1));
133
+ }
134
+ catch {
135
+ // fall through to the first-bracket heuristic
136
+ }
127
137
  }
128
- catch {
129
- return [];
138
+ const start = output.indexOf("[");
139
+ if (start < 0)
140
+ throw new Error(`pm2 jlist produced no JSON array: ${output.slice(0, 200)}`);
141
+ return JSON.parse(output.slice(start));
142
+ }
143
+ /**
144
+ * List the pm2 entries named `playwriter-relay`, DISTINGUISHING "none exist"
145
+ * from "the pm2 state could not be read".
146
+ *
147
+ * The old list helper swallowed every `pm2 jlist` failure as an empty list.
148
+ * That misread is what let a whole machine wedge: after a pm2 CLI upgrade the
149
+ * CLI could no longer talk to the still-running older daemon, `jlist` threw,
150
+ * reconcile concluded "no relay exists", and then backed off forever from the
151
+ * port its OWN stale relay was holding -- while that relay predated stableKey
152
+ * reporting, permanently bypassing the pinned `/cdp` connect (4003 on every
153
+ * browser tool).
154
+ *
155
+ * `jlist` is retried once (transient daemon hiccups); a missing pm2 binary
156
+ * still reads as an ordinary empty state (`assertPm2Available` owns that
157
+ * error). Persistent failure logs loudly -- including the manual `pm2 update`
158
+ * guidance -- and returns `ok: false` so callers switch to port-fingerprint
159
+ * reconciliation ({@link healUnlistablePm2State}) instead of trusting an
160
+ * empty list. We deliberately do NOT auto-run `pm2 update`: it kills and
161
+ * respawns the daemon and EVERY pm2-managed app -- including VisionClaw
162
+ * itself on pm2-managed installs -- which is far too disruptive to trigger
163
+ * implicitly from a reconcile.
164
+ */
165
+ function listPm2RelayProcessesChecked() {
166
+ let lastError;
167
+ for (let attempt = 0; attempt < 2; attempt++) {
168
+ try {
169
+ const processes = runPm2Jlist();
170
+ return { ok: true, procs: processes.filter((p) => p.name === PM2_PROCESS_NAME) };
171
+ }
172
+ catch (err) {
173
+ if (err.code === "ENOENT") {
174
+ // pm2 binary not installed: genuinely nothing managed.
175
+ return { ok: true, procs: [] };
176
+ }
177
+ lastError = err;
178
+ }
130
179
  }
180
+ logger.warn("Playwriter relay: `pm2 jlist` failed twice; the pm2 process list is unreadable "
181
+ + `(${lastError instanceof Error ? lastError.message : String(lastError)}). `
182
+ + "This usually means the pm2 CLI and daemon are out of sync after an upgrade -- run `pm2 update` "
183
+ + "manually to reload the daemon (disruptive: it restarts ALL pm2-managed apps, including VisionClaw "
184
+ + "itself when pm2-managed). Falling back to port-based reconciliation.");
185
+ return { ok: false, procs: [] };
131
186
  }
132
187
  /**
133
188
  * Delete a pm2 process by its numeric `pm_id`.
@@ -149,27 +204,33 @@ function pm2DeleteById(pmId) {
149
204
  }
150
205
  }
151
206
  /**
152
- * Return the single canonical relay process, pruning any duplicates.
207
+ * Return the single canonical relay process from a successful listing, pruning
208
+ * every other entry that shares the name.
153
209
  *
154
- * pm2 is idempotent by name for `pm2 start --name`, but legacy installs and
155
- * start/delete races can still leave MORE THAN ONE entry named
156
- * `playwriter-relay`. The old find-first logic managed only the first match, so
157
- * the rest became invisible orphans that crash-loop forever (they cannot bind
158
- * port 19988 once the canonical one holds it). Here we enumerate all matches,
159
- * keep the healthiest (prefer `online`, then the most-recent by highest
160
- * `pm_id`), and `pm2 delete` the losers by id. Returns the survivor, or null
161
- * when none exist. Best-effort: prune failures are logged, not thrown.
210
+ * pm2 is idempotent by name for `pm2 start --name`, but legacy installs,
211
+ * upgrades, and start/delete races can leave SEVERAL entries named
212
+ * `playwriter-relay` -- typically one per past VisionClaw version, all but one
213
+ * crash-looping on EADDRINUSE. Canonical = the entry whose `pm_exec_path`
214
+ * matches the CURRENT bundle's relay entry, preferring `online`, then the
215
+ * highest `pm_id` (newest). Everything else -- including an online relay still
216
+ * running an OLD version's bundle -- is deleted by id, so a stale-version
217
+ * survivor cannot keep the port and silently pin the machine to an outdated
218
+ * relay. Deletes are by numeric id taken from name-matched entries only; no
219
+ * other pm2 app (e.g. the `visionclaw` process itself) can ever be selected.
220
+ * Best-effort: prune failures are logged, not thrown.
162
221
  */
163
- function getPm2RelayProcess() {
164
- const matches = listPm2RelayProcesses();
222
+ function selectAndPruneCanonicalRelay(matches, expectedEntry) {
165
223
  if (matches.length === 0)
166
224
  return null;
167
225
  if (matches.length === 1)
168
226
  return matches[0];
169
- // Canonical = the online one if present, else the highest pm_id (newest).
170
- const online = matches.filter((p) => p.pm2_env?.status === "online");
171
- const pool = online.length > 0 ? online : matches;
172
- const canonical = pool.reduce((best, p) => (p.pm_id > best.pm_id ? p : best), pool[0]);
227
+ const score = (p) => (p.pm2_env?.pm_exec_path === expectedEntry ? 2 : 0)
228
+ + (p.pm2_env?.status === "online" ? 1 : 0);
229
+ const canonical = matches.reduce((best, p) => {
230
+ if (score(p) !== score(best))
231
+ return score(p) > score(best) ? p : best;
232
+ return p.pm_id > best.pm_id ? p : best;
233
+ }, matches[0]);
173
234
  const orphans = matches.filter((p) => p.pm_id !== canonical.pm_id);
174
235
  logger.system(`Playwriter relay: found ${matches.length} pm2 entries named "${PM2_PROCESS_NAME}"; `
175
236
  + `keeping pm_id=${canonical.pm_id} (status=${canonical.pm2_env?.status ?? "?"}), `
@@ -261,19 +322,225 @@ function getForeignPortListenerPids(port, canonicalPid) {
261
322
  return getPortListenerPids(port).filter((pid) => pid !== canonicalPid);
262
323
  }
263
324
  /**
264
- * Refuse any relay mutation that would bind a port owned by another process.
325
+ * Read the relay's own playwriter version over HTTP (`GET /version`).
326
+ * Served by both current and legacy relays; undefined when unreadable.
327
+ */
328
+ async function probeRelayPlaywriterVersion(host, port) {
329
+ try {
330
+ const response = await fetch(`${getRelayBaseUrl(host, port)}/version`, {
331
+ signal: AbortSignal.timeout(1_500),
332
+ });
333
+ if (!response.ok)
334
+ return undefined;
335
+ const text = await response.text();
336
+ try {
337
+ const parsed = JSON.parse(text);
338
+ if (typeof parsed.version === "string" && parsed.version.length > 0)
339
+ return parsed.version;
340
+ }
341
+ catch {
342
+ // fall through to the plain-text form
343
+ }
344
+ return /\d+\.\d+\.\d+[-.\w]*/.exec(text)?.[0];
345
+ }
346
+ catch {
347
+ return undefined;
348
+ }
349
+ }
350
+ /**
351
+ * Fingerprint whatever is listening on the relay port over HTTP.
265
352
  *
266
- * Every start/restart/recreate path must pass through this guard; limiting it
267
- * to status recovery leaves config and upgrade reconciliation able to create
268
- * the same EADDRINUSE crash loop.
353
+ * `kind: "relay"` only when the listener answers one of the relay's status
354
+ * endpoints with the relay's response shape -- `/extensions/status` (current)
355
+ * or `/extension/status` (legacy, pre-stableKey relays). Anything else --
356
+ * connection refused, non-JSON, JSON of a different shape -- reads as
357
+ * `"unknown"`, and callers must then treat the port holder as a foreign
358
+ * process they may not touch.
269
359
  */
270
- function refuseMutationForForeignPort(port, canonicalPid, action) {
271
- const foreignPids = getForeignPortListenerPids(port, canonicalPid);
360
+ async function probeRelayPortIdentity(host, port) {
361
+ const base = getRelayBaseUrl(host, port);
362
+ try {
363
+ const response = await fetch(`${base}/extensions/status`, { signal: AbortSignal.timeout(1_500) });
364
+ if (response.ok) {
365
+ const body = (await response.json());
366
+ if (Array.isArray(body.extensions)) {
367
+ return { kind: "relay", playwriterVersion: await probeRelayPlaywriterVersion(host, port) };
368
+ }
369
+ }
370
+ }
371
+ catch {
372
+ // fall through to the legacy endpoint
373
+ }
374
+ try {
375
+ const response = await fetch(`${base}/extension/status`, { signal: AbortSignal.timeout(1_500) });
376
+ if (response.ok) {
377
+ const body = (await response.json());
378
+ if (typeof body.connected === "boolean") {
379
+ return { kind: "relay", playwriterVersion: await probeRelayPlaywriterVersion(host, port) };
380
+ }
381
+ }
382
+ }
383
+ catch {
384
+ // not a relay (or nothing at all) -- fall through
385
+ }
386
+ return { kind: "unknown" };
387
+ }
388
+ /** The playwriter version this VisionClaw ships (from its own node_modules). */
389
+ function getBundledPlaywriterVersion() {
390
+ try {
391
+ const __dir = path.dirname(fileURLToPath(import.meta.url));
392
+ const packageRoot = path.resolve(__dir, isBundled() ? ".." : "../..");
393
+ const pkgPath = path.join(packageRoot, "node_modules", "playwriter", "package.json");
394
+ const parsed = JSON.parse(readFileSync(pkgPath, "utf-8"));
395
+ return typeof parsed.version === "string" && parsed.version.length > 0 ? parsed.version : undefined;
396
+ }
397
+ catch {
398
+ return undefined;
399
+ }
400
+ }
401
+ /**
402
+ * Send a signal to a pid, refusing anything that could be this VisionClaw
403
+ * process itself. Relay reclamation must NEVER be able to take down its own
404
+ * host: VisionClaw is commonly pm2-managed too, so every raw kill is gated on
405
+ * "not me, not my parent" in addition to the positive relay fingerprint the
406
+ * callers require. Returns whether the signal was actually sent.
407
+ */
408
+ function killPidSafely(pid, signal) {
409
+ if (!Number.isInteger(pid) || pid <= 1)
410
+ return false;
411
+ if (pid === process.pid || pid === process.ppid) {
412
+ logger.warn(`Playwriter relay: refusing to send ${signal} to pid ${pid} -- it is this VisionClaw process (or its parent)`);
413
+ return false;
414
+ }
415
+ try {
416
+ process.kill(pid, signal);
417
+ return true;
418
+ }
419
+ catch {
420
+ return false;
421
+ }
422
+ }
423
+ /** Poll until none of `pids` still LISTENs on `port` (true) or time runs out (false). */
424
+ async function waitForPortRelease(port, pids, timeoutMs) {
425
+ const deadline = Date.now() + timeoutMs;
426
+ for (;;) {
427
+ const holders = getPortListenerPids(port);
428
+ if (!pids.some((pid) => holders.includes(pid)))
429
+ return true;
430
+ if (Date.now() >= deadline)
431
+ return false;
432
+ await new Promise((r) => setTimeout(r, 120));
433
+ }
434
+ }
435
+ /**
436
+ * Take the relay port back from a listener already fingerprinted as a stale
437
+ * Playwriter relay of ours.
438
+ *
439
+ * When `useNameDelete` is set, try `pm2 delete playwriter-relay` first: a
440
+ * stale relay is usually still pm2-managed (even when `jlist` cannot see it),
441
+ * and a NAME-scoped delete both kills it and stops pm2 from resurrecting it --
442
+ * while by construction it cannot touch any other pm2 app. Callers with a
443
+ * live listed canonical must NOT use it (the canonical shares the name and
444
+ * would be deleted too); they fall through to pid-level SIGTERM -> SIGKILL,
445
+ * each gated by {@link killPidSafely}. Returns whether the port was freed.
446
+ */
447
+ async function reclaimRelayPort(port, holderPids, useNameDelete) {
448
+ if (useNameDelete) {
449
+ pm2Delete();
450
+ if (await waitForPortRelease(port, holderPids, 1_500))
451
+ return true;
452
+ }
453
+ const survivors = getPortListenerPids(port).filter((pid) => holderPids.includes(pid));
454
+ for (const pid of survivors)
455
+ killPidSafely(pid, "SIGTERM");
456
+ if (await waitForPortRelease(port, holderPids, 1_000))
457
+ return true;
458
+ const stubborn = getPortListenerPids(port).filter((pid) => holderPids.includes(pid));
459
+ for (const pid of stubborn)
460
+ killPidSafely(pid, "SIGKILL");
461
+ return waitForPortRelease(port, holderPids, 800);
462
+ }
463
+ /**
464
+ * Make sure the relay port is free for the caller's mutation (start/restart/
465
+ * recreate), returning whether it is safe to proceed.
466
+ *
467
+ * The old guard backed off from ANY unexpected listener, which was correct for
468
+ * genuinely foreign processes but wedged machines whose OWN stale relay held
469
+ * the port (an old version's process whose pm2 entry is gone, unreadable, or
470
+ * mis-attributed). Now the listener is fingerprinted first over HTTP: only a
471
+ * positive relay-shaped answer authorizes reclamation -- anything else keeps
472
+ * the conservative back-off. `canonical` is the currently listed relay entry
473
+ * (null when none): its own pid is never treated as a conflict, and its
474
+ * existence forces pid-level reclamation (see {@link reclaimRelayPort}).
475
+ */
476
+ async function ensureRelayPortAvailable(host, port, canonical, action) {
477
+ const foreignPids = getForeignPortListenerPids(port, canonical?.pid);
272
478
  if (foreignPids.length === 0)
479
+ return true;
480
+ const identity = await probeRelayPortIdentity(host, port);
481
+ if (identity.kind !== "relay") {
482
+ logger.warn(`Playwriter relay: port ${port} is held by a foreign process (pids: ${foreignPids.join(", ")}); `
483
+ + `refusing to ${action} into an EADDRINUSE loop. Free the port, then the next reconcile will recover it.`);
273
484
  return false;
274
- logger.warn(`Playwriter relay: port ${port} is held by a foreign process (pids: ${foreignPids.join(", ")}); `
275
- + `refusing to ${action} into an EADDRINUSE loop. Free the port, then the next reconcile will recover it.`);
276
- return true;
485
+ }
486
+ logger.system(`Playwriter relay: port ${port} is held by a stale relay instance (pids: ${foreignPids.join(", ")}, `
487
+ + `playwriter ${identity.playwriterVersion ?? "unknown"}); reclaiming it before we ${action}`);
488
+ const reclaimed = await reclaimRelayPort(port, foreignPids, canonical === null);
489
+ if (!reclaimed) {
490
+ logger.warn(`Playwriter relay: could not reclaim port ${port} from the stale relay (pids: ${foreignPids.join(", ")}); `
491
+ + "skipping this mutation -- the next reconcile will retry.");
492
+ }
493
+ return reclaimed;
494
+ }
495
+ /**
496
+ * Reconcile from the PORT when the pm2 process list is unreadable.
497
+ *
498
+ * This is the wedge {@link listPm2RelayProcessesChecked} detects: a skewed pm2
499
+ * CLI cannot read the daemon's state, yet that daemon may still be running a
500
+ * relay from an OLD VisionClaw version on the relay port. With no usable
501
+ * listing, identity comes from the port itself: fingerprint the listener,
502
+ * compare its `/version` against the playwriter version bundled here, and only
503
+ * a CONFIRMED stale relay is reclaimed (name-scoped pm2 delete, then guarded
504
+ * pid kills) and rebuilt. A current-version relay is left running, an
505
+ * unfingerprintable listener is left alone entirely, and an unreadable version
506
+ * comparison conservatively changes nothing -- every ambiguous case degrades
507
+ * to "log loudly, touch nothing".
508
+ */
509
+ async function healUnlistablePm2State(host, port, expectedEntry) {
510
+ const holderPids = getPortListenerPids(port);
511
+ if (holderPids.length === 0) {
512
+ // Port free: any relay entries the unreadable daemon still tracks are dead
513
+ // weight. Sweep them by NAME (touches nothing but `playwriter-relay`
514
+ // entries, and works even when jlist does not), then start fresh.
515
+ logger.system("Playwriter relay: pm2 state unreadable and the relay port is free -- sweeping relay entries by name and starting fresh");
516
+ pm2Delete();
517
+ pm2Start(expectedEntry, host, port);
518
+ return;
519
+ }
520
+ const identity = await probeRelayPortIdentity(host, port);
521
+ if (identity.kind !== "relay") {
522
+ logger.warn(`Playwriter relay: pm2 state unreadable and port ${port} is held by a process that does not answer like a `
523
+ + `Playwriter relay (pids: ${holderPids.join(", ")}); leaving it untouched. Free the port or run \`pm2 update\`, `
524
+ + "then the next reconcile will recover.");
525
+ return;
526
+ }
527
+ const bundled = getBundledPlaywriterVersion();
528
+ if (identity.playwriterVersion !== undefined && bundled !== undefined && identity.playwriterVersion === bundled) {
529
+ logger.system(`Playwriter relay: pm2 state unreadable, but a current relay (playwriter ${bundled}) already holds port ${port} -- leaving it running`);
530
+ return;
531
+ }
532
+ if (identity.playwriterVersion === undefined || bundled === undefined) {
533
+ logger.warn(`Playwriter relay: pm2 state unreadable and the relay on port ${port} has an unverifiable version `
534
+ + `(running: ${identity.playwriterVersion ?? "unknown"}, bundled: ${bundled ?? "unknown"}); leaving it untouched.`);
535
+ return;
536
+ }
537
+ logger.system(`Playwriter relay: pm2 state unreadable and a STALE relay (playwriter ${identity.playwriterVersion}, bundled ${bundled}) `
538
+ + `holds port ${port} -- reclaiming it and rebuilding at the current version`);
539
+ if (!(await reclaimRelayPort(port, holderPids, true))) {
540
+ logger.warn(`Playwriter relay: could not reclaim port ${port} from the stale relay; will retry next reconcile`);
541
+ return;
542
+ }
543
+ pm2Start(expectedEntry, host, port);
277
544
  }
278
545
  /**
279
546
  * Has this relay entered a crash loop? True once its rapid-restart count
@@ -640,15 +907,31 @@ export function invalidateRelayStatusCache() {
640
907
  cachedStatus = null;
641
908
  cachedStatusAt = 0;
642
909
  }
643
- export function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
910
+ /**
911
+ * Converge the pm2-managed relay to "one healthy process, current version,
912
+ * correct env". Async because recovery may need HTTP fingerprinting and port
913
+ * reclamation (see {@link ensureRelayPortAvailable} and
914
+ * {@link healUnlistablePm2State}).
915
+ */
916
+ export async function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
644
917
  warnOnPm2VersionSkew();
645
918
  const expectedEntry = resolveRelayEntryPath();
646
- const current = getPm2RelayProcess();
919
+ const listing = listPm2RelayProcessesChecked();
920
+ if (!listing.ok) {
921
+ // The pm2 state is unreadable (daemon down or CLI/daemon skew). The old
922
+ // behavior read this as "no relay exists", then backed off forever from
923
+ // the port its own stale relay was holding. Reconcile from the port
924
+ // instead.
925
+ await healUnlistablePm2State(host, port, expectedEntry);
926
+ return;
927
+ }
928
+ const current = selectAndPruneCanonicalRelay(listing.procs, expectedEntry);
647
929
  if (!current) {
648
- // Nothing managed by pm2 � but if some other process already holds the
649
- // port, spawning a binder here just crash-loops on EADDRINUSE. Surface the
650
- // conflict and let the operator resolve it rather than start a doomed one.
651
- if (refuseMutationForForeignPort(port, undefined, "start a second binder"))
930
+ // Nothing managed by pm2 -- but if some other process already holds the
931
+ // port, spawning a binder here just crash-loops on EADDRINUSE.
932
+ // ensureRelayPortAvailable reclaims the port when the holder is a stale
933
+ // relay of ours, and backs off when it is genuinely foreign.
934
+ if (!(await ensureRelayPortAvailable(host, port, null, "start the relay")))
652
935
  return;
653
936
  logger.system("Playwriter relay: starting new pm2 process");
654
937
  pm2Start(expectedEntry, host, port);
@@ -657,9 +940,9 @@ export function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
657
940
  const currentPath = current.pm2_env?.pm_exec_path ?? "";
658
941
  const currentStatus = current.pm2_env?.status ?? "";
659
942
  if (currentPath !== expectedEntry) {
660
- if (refuseMutationForForeignPort(port, current.pid, "recreate after an entry-path change"))
943
+ if (!(await ensureRelayPortAvailable(host, port, current, "recreate after an entry-path change")))
661
944
  return;
662
- logger.system(`Playwriter relay: entry path changed (${currentPath} ? ${expectedEntry}), recreating`);
945
+ logger.system(`Playwriter relay: entry path changed (${currentPath} -> ${expectedEntry}), recreating`);
663
946
  pm2Delete();
664
947
  pm2Start(expectedEntry, host, port);
665
948
  return;
@@ -667,7 +950,7 @@ export function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
667
950
  const currentEnv = current.pm2_env?.env ?? {};
668
951
  if (currentEnv.PLAYWRITER_RELAY_PORT !== String(port) ||
669
952
  currentEnv.PLAYWRITER_RELAY_HOST !== host) {
670
- if (refuseMutationForForeignPort(port, current.pid, "restart with updated environment"))
953
+ if (!(await ensureRelayPortAvailable(host, port, current, "restart with updated environment")))
671
954
  return;
672
955
  logger.system("Playwriter relay: env mismatch, restarting with updated env");
673
956
  pm2Restart(host, port);
@@ -675,18 +958,18 @@ export function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
675
958
  }
676
959
  const currentVersion = process.env.VISIONCLAW_BUNDLED_VERSION ?? "dev";
677
960
  if (currentEnv.VISIONCLAW_VERSION && currentEnv.VISIONCLAW_VERSION !== currentVersion) {
678
- if (refuseMutationForForeignPort(port, current.pid, "recreate after a version change"))
961
+ if (!(await ensureRelayPortAvailable(host, port, current, "recreate after a version change")))
679
962
  return;
680
- logger.system(`Playwriter relay: VisionClaw version changed (${currentEnv.VISIONCLAW_VERSION} ? ${currentVersion}), recreating`);
963
+ logger.system(`Playwriter relay: VisionClaw version changed (${currentEnv.VISIONCLAW_VERSION} -> ${currentVersion}), recreating`);
681
964
  pm2Delete();
682
965
  pm2Start(expectedEntry, host, port);
683
966
  return;
684
967
  }
685
968
  if (currentStatus !== "online") {
686
969
  // A relay that keeps failing to come up (classically: it cannot bind port
687
- // 19988 because a foreign process holds it) must NOT be blindly restarted �
970
+ // 19988 because another process holds it) must NOT be blindly restarted --
688
971
  // that is exactly what drives the 1600+ restart pileups. Diagnose first.
689
- if (refuseMutationForForeignPort(port, current.pid, `recover from status "${currentStatus}"`))
972
+ if (!(await ensureRelayPortAvailable(host, port, current, `recover from status "${currentStatus}"`)))
690
973
  return;
691
974
  if (isRelayCrashLooping(current)) {
692
975
  const endpoint = `${host}:${port}`;
@@ -700,7 +983,7 @@ export function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
700
983
  // repeated reconciles cannot turn this into a delete/start loop.
701
984
  crashLoopRecoveryAttempts.add(endpoint);
702
985
  logger.warn(`Playwriter relay: status is "${currentStatus}" with ${current.pm2_env?.unstable_restarts ?? 0} unstable restarts `
703
- + `(${current.pm2_env?.restart_time ?? 0} total) � recreating once instead of restarting.`);
986
+ + `(${current.pm2_env?.restart_time ?? 0} total) -- recreating once instead of restarting.`);
704
987
  pm2Delete();
705
988
  pm2Start(expectedEntry, host, port);
706
989
  return;
@@ -713,7 +996,7 @@ export function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
713
996
  const relayInfo = getRelayInfoFromFile();
714
997
  if (relayInfo?.relayProtocolVersion !== undefined &&
715
998
  relayInfo.relayProtocolVersion < RELAY_PROTOCOL_VERSION) {
716
- if (refuseMutationForForeignPort(port, current.pid, "recreate after a protocol upgrade"))
999
+ if (!(await ensureRelayPortAvailable(host, port, current, "recreate after a protocol upgrade")))
717
1000
  return;
718
1001
  logger.system(`Playwriter relay: protocol version stale (${relayInfo.relayProtocolVersion} < ${RELAY_PROTOCOL_VERSION}), recreating`);
719
1002
  pm2Delete();
@@ -727,7 +1010,7 @@ export async function ensurePlaywriterRelay(host = "127.0.0.1", port = 19988) {
727
1010
  if (!hasPlaywriterExtension()) {
728
1011
  throw new Error("Playwriter extension not configured (dedicated-profile External Extensions JSON missing). Run extension install first.");
729
1012
  }
730
- reconcilePlaywriterRelay(host, port);
1013
+ await reconcilePlaywriterRelay(host, port);
731
1014
  const deadline = Date.now() + 15_000;
732
1015
  while (Date.now() < deadline) {
733
1016
  const status = await getPlaywriterRelayStatus(host, port);
@@ -748,12 +1031,23 @@ export async function ensurePlaywriterRelay(host = "127.0.0.1", port = 19988) {
748
1031
  return finalStatus;
749
1032
  }
750
1033
  export function cleanupOrphanRelay() {
751
- // Enumerate ALL entries named `playwriter-relay`, not just the first � legacy
752
- // or race-created duplicates must all be reaped when the backend is disabled,
753
- // otherwise the leftovers crash-loop forever. Delete each by id so we remove
754
- // exactly the relay processes (delete-by-name would also work, but by-id is
755
- // consistent with the prune path and robust to any name-collision surprises).
756
- const matches = listPm2RelayProcesses();
1034
+ const listing = listPm2RelayProcessesChecked();
1035
+ if (!listing.ok) {
1036
+ // The pm2 state is unreadable, so entries cannot be enumerated by id --
1037
+ // but a NAME-scoped delete still reaps every entry called
1038
+ // `playwriter-relay` (and can touch nothing else), even against a skewed
1039
+ // daemon.
1040
+ logger.system("Playwriter relay: pm2 state unreadable during cleanup -- deleting relay entries by name");
1041
+ pm2Delete();
1042
+ return;
1043
+ }
1044
+ // Enumerate ALL entries named `playwriter-relay`, not just the first --
1045
+ // legacy or race-created duplicates must all be reaped when the backend is
1046
+ // disabled, otherwise the leftovers crash-loop forever. Delete each by id so
1047
+ // we remove exactly the relay processes (delete-by-name would also work, but
1048
+ // by-id is consistent with the prune path and robust to any name-collision
1049
+ // surprises).
1050
+ const matches = listing.procs;
757
1051
  if (matches.length === 0)
758
1052
  return;
759
1053
  logger.system(`Playwriter relay: cleaning up ${matches.length} orphan pm2 process(es) (backend disabled): `
@@ -1 +1 @@
1
- {"version":3,"file":"playwriter-relay.js","sourceRoot":"","sources":["../../src/utils/playwriter-relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwriter-relay.js","sourceRoot":"","sources":["../../src/utils/playwriter-relay.ts"],"names":[],"mappings":"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"}
@@ -20829,7 +20829,7 @@ var require_prompts3 = __commonJS({
20829
20829
 
20830
20830
  // dist/utils/version-check.js
20831
20831
  function isBundled() {
20832
- const v16 = "0.1.206-beta.17";
20832
+ const v16 = "0.1.206-beta.18";
20833
20833
  return typeof v16 === "string" && v16 !== "undefined";
20834
20834
  }
20835
20835
  function getPackageRoot() {
@@ -20846,7 +20846,7 @@ function getInstallationInfo() {
20846
20846
  };
20847
20847
  }
20848
20848
  function getCurrentVersion() {
20849
- const bundledVersion = "0.1.206-beta.17";
20849
+ const bundledVersion = "0.1.206-beta.18";
20850
20850
  if (bundledVersion && bundledVersion !== "undefined") {
20851
20851
  return bundledVersion;
20852
20852
  }
@@ -990461,7 +990461,7 @@ var init_browser_launcher = __esm({
990461
990461
 
990462
990462
  // dist/utils/playwriter-relay.js
990463
990463
  function isBundled2() {
990464
- const v16 = "0.1.206-beta.17";
990464
+ const v16 = "0.1.206-beta.18";
990465
990465
  return typeof v16 === "string" && v16 !== "undefined";
990466
990466
  }
990467
990467
  function resolveRelayEntryPath() {
@@ -990514,18 +990514,39 @@ function warnOnPm2VersionSkew() {
990514
990514
  logger.warn(`Playwriter relay: pm2 CLI (${cliVersion}) and daemon (${daemonVersion}) versions differ. This skew can cause jlist/control inconsistencies. Run \`pm2 update\` to reload the daemon (disruptive: it restarts all pm2-managed processes) when convenient.`);
990515
990515
  }
990516
990516
  }
990517
- function listPm2RelayProcesses() {
990518
- try {
990519
- const output2 = (0, import_node_child_process19.execFileSync)("pm2", ["jlist"], {
990520
- encoding: "utf-8",
990521
- stdio: ["pipe", "pipe", "pipe"],
990522
- timeout: 1e4
990523
- });
990524
- const processes = JSON.parse(output2);
990525
- return processes.filter((p10) => p10.name === PM2_PROCESS_NAME);
990526
- } catch {
990527
- return [];
990517
+ function runPm2Jlist() {
990518
+ const output2 = (0, import_node_child_process19.execFileSync)("pm2", ["jlist"], {
990519
+ encoding: "utf-8",
990520
+ stdio: ["pipe", "pipe", "pipe"],
990521
+ timeout: 1e4
990522
+ });
990523
+ const lastLineStart = output2.lastIndexOf("\n[");
990524
+ if (lastLineStart >= 0) {
990525
+ try {
990526
+ return JSON.parse(output2.slice(lastLineStart + 1));
990527
+ } catch {
990528
+ }
990528
990529
  }
990530
+ const start = output2.indexOf("[");
990531
+ if (start < 0)
990532
+ throw new Error(`pm2 jlist produced no JSON array: ${output2.slice(0, 200)}`);
990533
+ return JSON.parse(output2.slice(start));
990534
+ }
990535
+ function listPm2RelayProcessesChecked() {
990536
+ let lastError;
990537
+ for (let attempt = 0; attempt < 2; attempt++) {
990538
+ try {
990539
+ const processes = runPm2Jlist();
990540
+ return { ok: true, procs: processes.filter((p10) => p10.name === PM2_PROCESS_NAME) };
990541
+ } catch (err9) {
990542
+ if (err9.code === "ENOENT") {
990543
+ return { ok: true, procs: [] };
990544
+ }
990545
+ lastError = err9;
990546
+ }
990547
+ }
990548
+ logger.warn(`Playwriter relay: \`pm2 jlist\` failed twice; the pm2 process list is unreadable (${lastError instanceof Error ? lastError.message : String(lastError)}). This usually means the pm2 CLI and daemon are out of sync after an upgrade -- run \`pm2 update\` manually to reload the daemon (disruptive: it restarts ALL pm2-managed apps, including VisionClaw itself when pm2-managed). Falling back to port-based reconciliation.`);
990549
+ return { ok: false, procs: [] };
990529
990550
  }
990530
990551
  function pm2DeleteById(pmId) {
990531
990552
  try {
@@ -990538,15 +990559,17 @@ function pm2DeleteById(pmId) {
990538
990559
  logger.system(`Playwriter relay: pm2 delete id=${pmId} failed: ${err9 instanceof Error ? err9.message : String(err9)}`);
990539
990560
  }
990540
990561
  }
990541
- function getPm2RelayProcess() {
990542
- const matches = listPm2RelayProcesses();
990562
+ function selectAndPruneCanonicalRelay(matches, expectedEntry) {
990543
990563
  if (matches.length === 0)
990544
990564
  return null;
990545
990565
  if (matches.length === 1)
990546
990566
  return matches[0];
990547
- const online = matches.filter((p10) => p10.pm2_env?.status === "online");
990548
- const pool = online.length > 0 ? online : matches;
990549
- const canonical = pool.reduce((best, p10) => p10.pm_id > best.pm_id ? p10 : best, pool[0]);
990567
+ const score = (p10) => (p10.pm2_env?.pm_exec_path === expectedEntry ? 2 : 0) + (p10.pm2_env?.status === "online" ? 1 : 0);
990568
+ const canonical = matches.reduce((best, p10) => {
990569
+ if (score(p10) !== score(best))
990570
+ return score(p10) > score(best) ? p10 : best;
990571
+ return p10.pm_id > best.pm_id ? p10 : best;
990572
+ }, matches[0]);
990550
990573
  const orphans = matches.filter((p10) => p10.pm_id !== canonical.pm_id);
990551
990574
  logger.system(`Playwriter relay: found ${matches.length} pm2 entries named "${PM2_PROCESS_NAME}"; keeping pm_id=${canonical.pm_id} (status=${canonical.pm2_env?.status ?? "?"}), pruning ${orphans.length} duplicate(s): ${orphans.map((p10) => p10.pm_id).join(", ")}`);
990552
990575
  for (const orphan of orphans) {
@@ -990564,7 +990587,7 @@ function getPm2RelayProcess() {
990564
990587
  return canonical;
990565
990588
  }
990566
990589
  function pm2Start(entryPath, host, port) {
990567
- const versionStr = "0.1.206-beta.17";
990590
+ const versionStr = "0.1.206-beta.18";
990568
990591
  (0, import_node_child_process19.execFileSync)("pm2", ["start", entryPath, "--name", PM2_PROCESS_NAME, "--update-env"], {
990569
990592
  encoding: "utf-8",
990570
990593
  stdio: "pipe",
@@ -990590,7 +990613,7 @@ function pm2Delete() {
990590
990613
  }
990591
990614
  }
990592
990615
  function pm2Restart(host, port) {
990593
- const versionStr = "0.1.206-beta.17";
990616
+ const versionStr = "0.1.206-beta.18";
990594
990617
  (0, import_node_child_process19.execFileSync)("pm2", ["restart", PM2_PROCESS_NAME, "--update-env"], {
990595
990618
  encoding: "utf-8",
990596
990619
  stdio: "pipe",
@@ -990619,12 +990642,145 @@ function getPortListenerPids(port) {
990619
990642
  function getForeignPortListenerPids(port, canonicalPid) {
990620
990643
  return getPortListenerPids(port).filter((pid) => pid !== canonicalPid);
990621
990644
  }
990622
- function refuseMutationForForeignPort(port, canonicalPid, action2) {
990623
- const foreignPids = getForeignPortListenerPids(port, canonicalPid);
990645
+ async function probeRelayPlaywriterVersion(host, port) {
990646
+ try {
990647
+ const response = await fetch(`${getRelayBaseUrl(host, port)}/version`, {
990648
+ signal: AbortSignal.timeout(1500)
990649
+ });
990650
+ if (!response.ok)
990651
+ return void 0;
990652
+ const text = await response.text();
990653
+ try {
990654
+ const parsed = JSON.parse(text);
990655
+ if (typeof parsed.version === "string" && parsed.version.length > 0)
990656
+ return parsed.version;
990657
+ } catch {
990658
+ }
990659
+ return /\d+\.\d+\.\d+[-.\w]*/.exec(text)?.[0];
990660
+ } catch {
990661
+ return void 0;
990662
+ }
990663
+ }
990664
+ async function probeRelayPortIdentity(host, port) {
990665
+ const base = getRelayBaseUrl(host, port);
990666
+ try {
990667
+ const response = await fetch(`${base}/extensions/status`, { signal: AbortSignal.timeout(1500) });
990668
+ if (response.ok) {
990669
+ const body = await response.json();
990670
+ if (Array.isArray(body.extensions)) {
990671
+ return { kind: "relay", playwriterVersion: await probeRelayPlaywriterVersion(host, port) };
990672
+ }
990673
+ }
990674
+ } catch {
990675
+ }
990676
+ try {
990677
+ const response = await fetch(`${base}/extension/status`, { signal: AbortSignal.timeout(1500) });
990678
+ if (response.ok) {
990679
+ const body = await response.json();
990680
+ if (typeof body.connected === "boolean") {
990681
+ return { kind: "relay", playwriterVersion: await probeRelayPlaywriterVersion(host, port) };
990682
+ }
990683
+ }
990684
+ } catch {
990685
+ }
990686
+ return { kind: "unknown" };
990687
+ }
990688
+ function getBundledPlaywriterVersion() {
990689
+ try {
990690
+ const __dir = import_node_path45.default.dirname((0, import_node_url4.fileURLToPath)(__importMetaUrl));
990691
+ const packageRoot = import_node_path45.default.resolve(__dir, isBundled2() ? ".." : "../..");
990692
+ const pkgPath = import_node_path45.default.join(packageRoot, "node_modules", "playwriter", "package.json");
990693
+ const parsed = JSON.parse((0, import_node_fs38.readFileSync)(pkgPath, "utf-8"));
990694
+ return typeof parsed.version === "string" && parsed.version.length > 0 ? parsed.version : void 0;
990695
+ } catch {
990696
+ return void 0;
990697
+ }
990698
+ }
990699
+ function killPidSafely(pid, signal) {
990700
+ if (!Number.isInteger(pid) || pid <= 1)
990701
+ return false;
990702
+ if (pid === process.pid || pid === process.ppid) {
990703
+ logger.warn(`Playwriter relay: refusing to send ${signal} to pid ${pid} -- it is this VisionClaw process (or its parent)`);
990704
+ return false;
990705
+ }
990706
+ try {
990707
+ process.kill(pid, signal);
990708
+ return true;
990709
+ } catch {
990710
+ return false;
990711
+ }
990712
+ }
990713
+ async function waitForPortRelease(port, pids, timeoutMs) {
990714
+ const deadline = Date.now() + timeoutMs;
990715
+ for (; ; ) {
990716
+ const holders = getPortListenerPids(port);
990717
+ if (!pids.some((pid) => holders.includes(pid)))
990718
+ return true;
990719
+ if (Date.now() >= deadline)
990720
+ return false;
990721
+ await new Promise((r12) => setTimeout(r12, 120));
990722
+ }
990723
+ }
990724
+ async function reclaimRelayPort(port, holderPids, useNameDelete) {
990725
+ if (useNameDelete) {
990726
+ pm2Delete();
990727
+ if (await waitForPortRelease(port, holderPids, 1500))
990728
+ return true;
990729
+ }
990730
+ const survivors = getPortListenerPids(port).filter((pid) => holderPids.includes(pid));
990731
+ for (const pid of survivors)
990732
+ killPidSafely(pid, "SIGTERM");
990733
+ if (await waitForPortRelease(port, holderPids, 1e3))
990734
+ return true;
990735
+ const stubborn = getPortListenerPids(port).filter((pid) => holderPids.includes(pid));
990736
+ for (const pid of stubborn)
990737
+ killPidSafely(pid, "SIGKILL");
990738
+ return waitForPortRelease(port, holderPids, 800);
990739
+ }
990740
+ async function ensureRelayPortAvailable(host, port, canonical, action2) {
990741
+ const foreignPids = getForeignPortListenerPids(port, canonical?.pid);
990624
990742
  if (foreignPids.length === 0)
990743
+ return true;
990744
+ const identity = await probeRelayPortIdentity(host, port);
990745
+ if (identity.kind !== "relay") {
990746
+ logger.warn(`Playwriter relay: port ${port} is held by a foreign process (pids: ${foreignPids.join(", ")}); refusing to ${action2} into an EADDRINUSE loop. Free the port, then the next reconcile will recover it.`);
990625
990747
  return false;
990626
- logger.warn(`Playwriter relay: port ${port} is held by a foreign process (pids: ${foreignPids.join(", ")}); refusing to ${action2} into an EADDRINUSE loop. Free the port, then the next reconcile will recover it.`);
990627
- return true;
990748
+ }
990749
+ logger.system(`Playwriter relay: port ${port} is held by a stale relay instance (pids: ${foreignPids.join(", ")}, playwriter ${identity.playwriterVersion ?? "unknown"}); reclaiming it before we ${action2}`);
990750
+ const reclaimed = await reclaimRelayPort(port, foreignPids, canonical === null);
990751
+ if (!reclaimed) {
990752
+ logger.warn(`Playwriter relay: could not reclaim port ${port} from the stale relay (pids: ${foreignPids.join(", ")}); skipping this mutation -- the next reconcile will retry.`);
990753
+ }
990754
+ return reclaimed;
990755
+ }
990756
+ async function healUnlistablePm2State(host, port, expectedEntry) {
990757
+ const holderPids = getPortListenerPids(port);
990758
+ if (holderPids.length === 0) {
990759
+ logger.system("Playwriter relay: pm2 state unreadable and the relay port is free -- sweeping relay entries by name and starting fresh");
990760
+ pm2Delete();
990761
+ pm2Start(expectedEntry, host, port);
990762
+ return;
990763
+ }
990764
+ const identity = await probeRelayPortIdentity(host, port);
990765
+ if (identity.kind !== "relay") {
990766
+ logger.warn(`Playwriter relay: pm2 state unreadable and port ${port} is held by a process that does not answer like a Playwriter relay (pids: ${holderPids.join(", ")}); leaving it untouched. Free the port or run \`pm2 update\`, then the next reconcile will recover.`);
990767
+ return;
990768
+ }
990769
+ const bundled = getBundledPlaywriterVersion();
990770
+ if (identity.playwriterVersion !== void 0 && bundled !== void 0 && identity.playwriterVersion === bundled) {
990771
+ logger.system(`Playwriter relay: pm2 state unreadable, but a current relay (playwriter ${bundled}) already holds port ${port} -- leaving it running`);
990772
+ return;
990773
+ }
990774
+ if (identity.playwriterVersion === void 0 || bundled === void 0) {
990775
+ logger.warn(`Playwriter relay: pm2 state unreadable and the relay on port ${port} has an unverifiable version (running: ${identity.playwriterVersion ?? "unknown"}, bundled: ${bundled ?? "unknown"}); leaving it untouched.`);
990776
+ return;
990777
+ }
990778
+ logger.system(`Playwriter relay: pm2 state unreadable and a STALE relay (playwriter ${identity.playwriterVersion}, bundled ${bundled}) holds port ${port} -- reclaiming it and rebuilding at the current version`);
990779
+ if (!await reclaimRelayPort(port, holderPids, true)) {
990780
+ logger.warn(`Playwriter relay: could not reclaim port ${port} from the stale relay; will retry next reconcile`);
990781
+ return;
990782
+ }
990783
+ pm2Start(expectedEntry, host, port);
990628
990784
  }
990629
990785
  function isRelayCrashLooping(proc) {
990630
990786
  const unstable = proc.pm2_env?.unstable_restarts ?? 0;
@@ -990821,12 +990977,17 @@ function invalidateRelayStatusCache() {
990821
990977
  cachedStatus = null;
990822
990978
  cachedStatusAt = 0;
990823
990979
  }
990824
- function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
990980
+ async function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
990825
990981
  warnOnPm2VersionSkew();
990826
990982
  const expectedEntry = resolveRelayEntryPath();
990827
- const current = getPm2RelayProcess();
990983
+ const listing = listPm2RelayProcessesChecked();
990984
+ if (!listing.ok) {
990985
+ await healUnlistablePm2State(host, port, expectedEntry);
990986
+ return;
990987
+ }
990988
+ const current = selectAndPruneCanonicalRelay(listing.procs, expectedEntry);
990828
990989
  if (!current) {
990829
- if (refuseMutationForForeignPort(port, void 0, "start a second binder"))
990990
+ if (!await ensureRelayPortAvailable(host, port, null, "start the relay"))
990830
990991
  return;
990831
990992
  logger.system("Playwriter relay: starting new pm2 process");
990832
990993
  pm2Start(expectedEntry, host, port);
@@ -990835,32 +990996,32 @@ function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
990835
990996
  const currentPath = current.pm2_env?.pm_exec_path ?? "";
990836
990997
  const currentStatus = current.pm2_env?.status ?? "";
990837
990998
  if (currentPath !== expectedEntry) {
990838
- if (refuseMutationForForeignPort(port, current.pid, "recreate after an entry-path change"))
990999
+ if (!await ensureRelayPortAvailable(host, port, current, "recreate after an entry-path change"))
990839
991000
  return;
990840
- logger.system(`Playwriter relay: entry path changed (${currentPath} ? ${expectedEntry}), recreating`);
991001
+ logger.system(`Playwriter relay: entry path changed (${currentPath} -> ${expectedEntry}), recreating`);
990841
991002
  pm2Delete();
990842
991003
  pm2Start(expectedEntry, host, port);
990843
991004
  return;
990844
991005
  }
990845
991006
  const currentEnv = current.pm2_env?.env ?? {};
990846
991007
  if (currentEnv.PLAYWRITER_RELAY_PORT !== String(port) || currentEnv.PLAYWRITER_RELAY_HOST !== host) {
990847
- if (refuseMutationForForeignPort(port, current.pid, "restart with updated environment"))
991008
+ if (!await ensureRelayPortAvailable(host, port, current, "restart with updated environment"))
990848
991009
  return;
990849
991010
  logger.system("Playwriter relay: env mismatch, restarting with updated env");
990850
991011
  pm2Restart(host, port);
990851
991012
  return;
990852
991013
  }
990853
- const currentVersion = "0.1.206-beta.17";
991014
+ const currentVersion = "0.1.206-beta.18";
990854
991015
  if (currentEnv.VISIONCLAW_VERSION && currentEnv.VISIONCLAW_VERSION !== currentVersion) {
990855
- if (refuseMutationForForeignPort(port, current.pid, "recreate after a version change"))
991016
+ if (!await ensureRelayPortAvailable(host, port, current, "recreate after a version change"))
990856
991017
  return;
990857
- logger.system(`Playwriter relay: VisionClaw version changed (${currentEnv.VISIONCLAW_VERSION} ? ${currentVersion}), recreating`);
991018
+ logger.system(`Playwriter relay: VisionClaw version changed (${currentEnv.VISIONCLAW_VERSION} -> ${currentVersion}), recreating`);
990858
991019
  pm2Delete();
990859
991020
  pm2Start(expectedEntry, host, port);
990860
991021
  return;
990861
991022
  }
990862
991023
  if (currentStatus !== "online") {
990863
- if (refuseMutationForForeignPort(port, current.pid, `recover from status "${currentStatus}"`))
991024
+ if (!await ensureRelayPortAvailable(host, port, current, `recover from status "${currentStatus}"`))
990864
991025
  return;
990865
991026
  if (isRelayCrashLooping(current)) {
990866
991027
  const endpoint = `${host}:${port}`;
@@ -990869,7 +991030,7 @@ function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
990869
991030
  return;
990870
991031
  }
990871
991032
  crashLoopRecoveryAttempts.add(endpoint);
990872
- logger.warn(`Playwriter relay: status is "${currentStatus}" with ${current.pm2_env?.unstable_restarts ?? 0} unstable restarts (${current.pm2_env?.restart_time ?? 0} total) \uFFFD recreating once instead of restarting.`);
991033
+ logger.warn(`Playwriter relay: status is "${currentStatus}" with ${current.pm2_env?.unstable_restarts ?? 0} unstable restarts (${current.pm2_env?.restart_time ?? 0} total) -- recreating once instead of restarting.`);
990873
991034
  pm2Delete();
990874
991035
  pm2Start(expectedEntry, host, port);
990875
991036
  return;
@@ -990881,7 +991042,7 @@ function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
990881
991042
  crashLoopRecoveryAttempts.delete(`${host}:${port}`);
990882
991043
  const relayInfo = getRelayInfoFromFile();
990883
991044
  if (relayInfo?.relayProtocolVersion !== void 0 && relayInfo.relayProtocolVersion < RELAY_PROTOCOL_VERSION) {
990884
- if (refuseMutationForForeignPort(port, current.pid, "recreate after a protocol upgrade"))
991045
+ if (!await ensureRelayPortAvailable(host, port, current, "recreate after a protocol upgrade"))
990885
991046
  return;
990886
991047
  logger.system(`Playwriter relay: protocol version stale (${relayInfo.relayProtocolVersion} < ${RELAY_PROTOCOL_VERSION}), recreating`);
990887
991048
  pm2Delete();
@@ -990895,7 +991056,7 @@ async function ensurePlaywriterRelay(host = "127.0.0.1", port = 19988) {
990895
991056
  if (!hasPlaywriterExtension()) {
990896
991057
  throw new Error("Playwriter extension not configured (dedicated-profile External Extensions JSON missing). Run extension install first.");
990897
991058
  }
990898
- reconcilePlaywriterRelay(host, port);
991059
+ await reconcilePlaywriterRelay(host, port);
990899
991060
  const deadline = Date.now() + 15e3;
990900
991061
  while (Date.now() < deadline) {
990901
991062
  const status = await getPlaywriterRelayStatus(host, port);
@@ -990912,7 +991073,13 @@ async function ensurePlaywriterRelay(host = "127.0.0.1", port = 19988) {
990912
991073
  return finalStatus;
990913
991074
  }
990914
991075
  function cleanupOrphanRelay() {
990915
- const matches = listPm2RelayProcesses();
991076
+ const listing = listPm2RelayProcessesChecked();
991077
+ if (!listing.ok) {
991078
+ logger.system("Playwriter relay: pm2 state unreadable during cleanup -- deleting relay entries by name");
991079
+ pm2Delete();
991080
+ return;
991081
+ }
991082
+ const matches = listing.procs;
990916
991083
  if (matches.length === 0)
990917
991084
  return;
990918
991085
  logger.system(`Playwriter relay: cleaning up ${matches.length} orphan pm2 process(es) (backend disabled): ` + matches.map((p10) => p10.pm_id).join(", "));
@@ -991058,7 +991225,7 @@ async function ensureBrowserForTool(options2) {
991058
991225
  if (!status.reachable) {
991059
991226
  logger.system("Playwriter relay unreachable \u2014 reconciling");
991060
991227
  invalidateRelayStatusCache();
991061
- reconcilePlaywriterRelay(host, port);
991228
+ await reconcilePlaywriterRelay(host, port);
991062
991229
  }
991063
991230
  if (status.extensionConnected) {
991064
991231
  const diagnosis2 = await waitForSingleRelayExtension(host, port);
@@ -1406091,7 +1406258,7 @@ async function bringUpPlaywriterLazily(host, port) {
1406091
1406258
  if (!isPlaywriterExtensionAvailable()) {
1406092
1406259
  return { viable: false, mode: "deferred" };
1406093
1406260
  }
1406094
- reconcilePlaywriterRelay(host, port);
1406261
+ await reconcilePlaywriterRelay(host, port);
1406095
1406262
  return { viable: true, mode: "deferred" };
1406096
1406263
  }
1406097
1406264
  async function detectBrowserBackend(config3) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "visionclaw",
3
- "version": "0.1.206-beta.17",
3
+ "version": "0.1.206-beta.18",
4
4
  "description": "A personal assistant agent that runs on your desktop, receives commands from messaging channels, and executes tasks autonomously.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",