visionclaw 0.1.200-dev.feat-issue-534-browser-singleton.1 → 0.1.200-dev.feat-issue-534-browser-singleton.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/engines/claude/session-browser-policy.d.ts +8 -6
- package/dist/agent/engines/claude/session-browser-policy.d.ts.map +1 -1
- package/dist/agent/engines/claude/session-browser-policy.js +15 -17
- package/dist/agent/engines/claude/session-browser-policy.js.map +1 -1
- package/dist/agent/runtime-surface.d.ts +3 -3
- package/dist/agent/runtime-surface.d.ts.map +1 -1
- package/dist/agent/runtime-surface.js +13 -11
- package/dist/agent/runtime-surface.js.map +1 -1
- package/dist/entry/playwriter-relay.js +8 -12
- package/dist/entry/playwriter-relay.js.map +1 -1
- package/dist/onboarding/playwriter-extension.d.ts +28 -35
- package/dist/onboarding/playwriter-extension.d.ts.map +1 -1
- package/dist/onboarding/playwriter-extension.js +63 -55
- package/dist/onboarding/playwriter-extension.js.map +1 -1
- package/dist/onboarding/prepare-mac.d.ts.map +1 -1
- package/dist/onboarding/prepare-mac.js +9 -10
- package/dist/onboarding/prepare-mac.js.map +1 -1
- package/dist/reconfigure.d.ts.map +1 -1
- package/dist/reconfigure.js +9 -13
- package/dist/reconfigure.js.map +1 -1
- package/dist/utils/playwriter-relay.d.ts +32 -21
- package/dist/utils/playwriter-relay.d.ts.map +1 -1
- package/dist/utils/playwriter-relay.js +35 -28
- package/dist/utils/playwriter-relay.js.map +1 -1
- package/dist-agent/bundle.cjs +91 -95
- package/dist-agent/playwriter-relay.cjs +4 -29
- package/package.json +1 -1
package/dist-agent/bundle.cjs
CHANGED
|
@@ -20570,7 +20570,7 @@ var require_prompts3 = __commonJS({
|
|
|
20570
20570
|
|
|
20571
20571
|
// dist/utils/version-check.js
|
|
20572
20572
|
function isBundled() {
|
|
20573
|
-
const v14 = "0.1.200-dev.feat-issue-534-browser-singleton.
|
|
20573
|
+
const v14 = "0.1.200-dev.feat-issue-534-browser-singleton.3";
|
|
20574
20574
|
return typeof v14 === "string" && v14 !== "undefined";
|
|
20575
20575
|
}
|
|
20576
20576
|
function getPackageRoot() {
|
|
@@ -20587,7 +20587,7 @@ function getInstallationInfo() {
|
|
|
20587
20587
|
};
|
|
20588
20588
|
}
|
|
20589
20589
|
function getCurrentVersion() {
|
|
20590
|
-
const bundledVersion = "0.1.200-dev.feat-issue-534-browser-singleton.
|
|
20590
|
+
const bundledVersion = "0.1.200-dev.feat-issue-534-browser-singleton.3";
|
|
20591
20591
|
if (bundledVersion && bundledVersion !== "undefined") {
|
|
20592
20592
|
return bundledVersion;
|
|
20593
20593
|
}
|
|
@@ -31540,13 +31540,17 @@ var init_generate_wallpaper = __esm({
|
|
|
31540
31540
|
});
|
|
31541
31541
|
|
|
31542
31542
|
// dist/onboarding/playwriter-extension.js
|
|
31543
|
-
function
|
|
31543
|
+
function getExpectedExtensionJson() {
|
|
31544
|
+
return JSON.stringify({ external_update_url: PLAYWRITER_UPDATE_URL }, null, 2);
|
|
31545
|
+
}
|
|
31546
|
+
function isExtensionJsonValid(jsonPath) {
|
|
31547
|
+
if (!(0, import_node_fs13.existsSync)(jsonPath))
|
|
31548
|
+
return false;
|
|
31544
31549
|
try {
|
|
31545
|
-
const
|
|
31546
|
-
|
|
31547
|
-
return (0, import_node_fs13.existsSync)((0, import_node_path12.join)(extDir, "manifest.json")) ? extDir : null;
|
|
31550
|
+
const parsed = JSON.parse((0, import_node_fs13.readFileSync)(jsonPath, "utf-8"));
|
|
31551
|
+
return parsed.external_update_url === PLAYWRITER_UPDATE_URL;
|
|
31548
31552
|
} catch {
|
|
31549
|
-
return
|
|
31553
|
+
return false;
|
|
31550
31554
|
}
|
|
31551
31555
|
}
|
|
31552
31556
|
function getChromeExternalExtensionsDir() {
|
|
@@ -31559,7 +31563,7 @@ function getProfileExtensionJsonPath() {
|
|
|
31559
31563
|
return (0, import_node_path12.join)(getPlaywriterProfileDir(), "External Extensions", `${PLAYWRITER_EXTENSION_ID}.json`);
|
|
31560
31564
|
}
|
|
31561
31565
|
function isPlaywriterExtensionAvailable() {
|
|
31562
|
-
return
|
|
31566
|
+
return isExtensionJsonValid(getProfileExtensionJsonPath());
|
|
31563
31567
|
}
|
|
31564
31568
|
function cleanPlaywriterExternalUninstalls(profileDir = getPlaywriterProfileDir()) {
|
|
31565
31569
|
const prefsPath = (0, import_node_path12.join)(profileDir, "Default", "Preferences");
|
|
@@ -31602,15 +31606,23 @@ function ensurePlaywriterExtension() {
|
|
|
31602
31606
|
logger.system(`Playwriter: legacy enterprise policy removed`);
|
|
31603
31607
|
}
|
|
31604
31608
|
}
|
|
31605
|
-
|
|
31606
|
-
|
|
31607
|
-
|
|
31608
|
-
|
|
31609
|
-
|
|
31610
|
-
}
|
|
31611
|
-
} catch (err9) {
|
|
31612
|
-
logger.system(`Playwriter: failed to remove legacy External Extensions JSON: ${err9 instanceof Error ? err9.message : String(err9)}`);
|
|
31609
|
+
const systemJsonPath = getExtensionJsonPath();
|
|
31610
|
+
try {
|
|
31611
|
+
if ((0, import_node_fs13.existsSync)(systemJsonPath)) {
|
|
31612
|
+
(0, import_node_fs13.rmSync)(systemJsonPath);
|
|
31613
|
+
logger.system(`Playwriter: removed legacy system External Extensions JSON (${systemJsonPath})`);
|
|
31613
31614
|
}
|
|
31615
|
+
} catch (err9) {
|
|
31616
|
+
logger.system(`Playwriter: failed to remove legacy system External Extensions JSON: ${err9 instanceof Error ? err9.message : String(err9)}`);
|
|
31617
|
+
}
|
|
31618
|
+
try {
|
|
31619
|
+
const profileExtDir = (0, import_node_path12.join)(getPlaywriterProfileDir(), "External Extensions");
|
|
31620
|
+
(0, import_node_fs13.mkdirSync)(profileExtDir, { recursive: true });
|
|
31621
|
+
(0, import_node_fs13.writeFileSync)((0, import_node_path12.join)(profileExtDir, `${PLAYWRITER_EXTENSION_ID}.json`), getExpectedExtensionJson(), "utf-8");
|
|
31622
|
+
logger.system("Playwriter: wrote External Extensions JSON to dedicated profile");
|
|
31623
|
+
} catch (err9) {
|
|
31624
|
+
logger.system(`Playwriter: failed to write External Extensions JSON: ${err9 instanceof Error ? err9.message : String(err9)}`);
|
|
31625
|
+
return false;
|
|
31614
31626
|
}
|
|
31615
31627
|
return isPlaywriterExtensionAvailable();
|
|
31616
31628
|
}
|
|
@@ -31670,18 +31682,18 @@ function scrubPlaywriterFromPolicyPlist(plistPath) {
|
|
|
31670
31682
|
} catch {
|
|
31671
31683
|
}
|
|
31672
31684
|
}
|
|
31673
|
-
var import_node_child_process6, import_node_fs13,
|
|
31685
|
+
var import_node_child_process6, import_node_fs13, import_node_os7, import_node_path12, PLAYWRITER_EXTENSION_ID, PLAYWRITER_UPDATE_URL;
|
|
31674
31686
|
var init_playwriter_extension = __esm({
|
|
31675
31687
|
"dist/onboarding/playwriter-extension.js"() {
|
|
31676
31688
|
"use strict";
|
|
31677
31689
|
import_node_child_process6 = require("node:child_process");
|
|
31678
31690
|
import_node_fs13 = require("node:fs");
|
|
31679
|
-
import_node_module = require("node:module");
|
|
31680
31691
|
import_node_os7 = require("node:os");
|
|
31681
31692
|
import_node_path12 = require("node:path");
|
|
31682
31693
|
init_config();
|
|
31683
31694
|
init_logger();
|
|
31684
31695
|
PLAYWRITER_EXTENSION_ID = "jfeammnjpkecdekppnclgkkffahnhfhe";
|
|
31696
|
+
PLAYWRITER_UPDATE_URL = "https://clients2.google.com/service/update2/crx";
|
|
31685
31697
|
}
|
|
31686
31698
|
});
|
|
31687
31699
|
|
|
@@ -32648,10 +32660,10 @@ function isPlaywriterPolicyConfigured2() {
|
|
|
32648
32660
|
}
|
|
32649
32661
|
function _checkPlaywriterExtension() {
|
|
32650
32662
|
heading("Playwriter Extension");
|
|
32651
|
-
if (
|
|
32652
|
-
ok3("Playwriter extension
|
|
32663
|
+
if (ensurePlaywriterExtension()) {
|
|
32664
|
+
ok3("Playwriter extension configured for the dedicated automation profile (External Extensions JSON).");
|
|
32653
32665
|
} else {
|
|
32654
|
-
fail3("Playwriter
|
|
32666
|
+
fail3("Failed to configure Playwriter extension for the automation profile.");
|
|
32655
32667
|
}
|
|
32656
32668
|
if (isPlaywriterPolicyConfigured2()) {
|
|
32657
32669
|
warn3("Legacy Playwriter enterprise policy detected \u2014 removing it.");
|
|
@@ -694276,10 +694288,10 @@ async function setupSkills(ctx) {
|
|
|
694276
694288
|
try {
|
|
694277
694289
|
const versionId = await resolveSkillVersion(client, skill.skill_id, skill.version);
|
|
694278
694290
|
const version6 = await client.beta.skills.versions.retrieve(versionId, { skill_id: skill.skill_id });
|
|
694279
|
-
let
|
|
694280
|
-
if (
|
|
694281
|
-
|
|
694282
|
-
const dest = path16.resolve(skillsRoot,
|
|
694291
|
+
let dirname33 = path16.basename(version6.name.trim());
|
|
694292
|
+
if (dirname33 === "" || dirname33 === "." || dirname33 === "..")
|
|
694293
|
+
dirname33 = skill.skill_id;
|
|
694294
|
+
const dest = path16.resolve(skillsRoot, dirname33);
|
|
694283
694295
|
if (dest !== skillsRoot && !dest.startsWith(skillsRoot + path16.sep)) {
|
|
694284
694296
|
log.warn("skill name escapes the skills dir; skipping", {
|
|
694285
694297
|
component: "agent-tool-context",
|
|
@@ -724633,12 +724645,12 @@ var import_node_path24, getNodeModulesParentDirs;
|
|
|
724633
724645
|
var init_getNodeModulesParentDirs = __esm({
|
|
724634
724646
|
"node_modules/.pnpm/@aws-sdk+core@3.974.11/node_modules/@aws-sdk/core/dist-es/submodules/client/util-user-agent-node/getNodeModulesParentDirs.js"() {
|
|
724635
724647
|
import_node_path24 = require("node:path");
|
|
724636
|
-
getNodeModulesParentDirs = (
|
|
724648
|
+
getNodeModulesParentDirs = (dirname33) => {
|
|
724637
724649
|
const cwd = process.cwd();
|
|
724638
|
-
if (!
|
|
724650
|
+
if (!dirname33) {
|
|
724639
724651
|
return [cwd];
|
|
724640
724652
|
}
|
|
724641
|
-
const normalizedPath = (0, import_node_path24.normalize)(
|
|
724653
|
+
const normalizedPath = (0, import_node_path24.normalize)(dirname33);
|
|
724642
724654
|
const parts = normalizedPath.split(import_node_path24.sep);
|
|
724643
724655
|
const nodeModulesIndex = parts.indexOf("node_modules");
|
|
724644
724656
|
const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(import_node_path24.sep) : normalizedPath;
|
|
@@ -724713,8 +724725,8 @@ var init_getTypeScriptUserAgentPair = __esm({
|
|
|
724713
724725
|
tscVersion = null;
|
|
724714
724726
|
return void 0;
|
|
724715
724727
|
}
|
|
724716
|
-
const
|
|
724717
|
-
const nodeModulesParentDirs = getNodeModulesParentDirs(
|
|
724728
|
+
const dirname33 = typeof __dirname !== "undefined" ? __dirname : void 0;
|
|
724729
|
+
const nodeModulesParentDirs = getNodeModulesParentDirs(dirname33);
|
|
724718
724730
|
let versionFromApp;
|
|
724719
724731
|
for (const nodeModulesParentDir of nodeModulesParentDirs) {
|
|
724720
724732
|
try {
|
|
@@ -738546,12 +738558,12 @@ var require_dist_cjs65 = __commonJS({
|
|
|
738546
738558
|
}
|
|
738547
738559
|
return ["md/nodejs", node_process.versions.node];
|
|
738548
738560
|
};
|
|
738549
|
-
var getNodeModulesParentDirs2 = (
|
|
738561
|
+
var getNodeModulesParentDirs2 = (dirname33) => {
|
|
738550
738562
|
const cwd = process.cwd();
|
|
738551
|
-
if (!
|
|
738563
|
+
if (!dirname33) {
|
|
738552
738564
|
return [cwd];
|
|
738553
738565
|
}
|
|
738554
|
-
const normalizedPath = node_path.normalize(
|
|
738566
|
+
const normalizedPath = node_path.normalize(dirname33);
|
|
738555
738567
|
const parts = normalizedPath.split(node_path.sep);
|
|
738556
738568
|
const nodeModulesIndex = parts.indexOf("node_modules");
|
|
738557
738569
|
const parentDir = nodeModulesIndex !== -1 ? parts.slice(0, nodeModulesIndex).join(node_path.sep) : normalizedPath;
|
|
@@ -738599,8 +738611,8 @@ var require_dist_cjs65 = __commonJS({
|
|
|
738599
738611
|
tscVersion2 = null;
|
|
738600
738612
|
return void 0;
|
|
738601
738613
|
}
|
|
738602
|
-
const
|
|
738603
|
-
const nodeModulesParentDirs = getNodeModulesParentDirs2(
|
|
738614
|
+
const dirname33 = typeof __dirname !== "undefined" ? __dirname : void 0;
|
|
738615
|
+
const nodeModulesParentDirs = getNodeModulesParentDirs2(dirname33);
|
|
738604
738616
|
let versionFromApp;
|
|
738605
738617
|
for (const nodeModulesParentDir of nodeModulesParentDirs) {
|
|
738606
738618
|
try {
|
|
@@ -934742,10 +934754,10 @@ function rz(e13, t10) {
|
|
|
934742
934754
|
}
|
|
934743
934755
|
return null;
|
|
934744
934756
|
}
|
|
934745
|
-
var
|
|
934757
|
+
var import_node_module, import_child_process, import_crypto24, import_fs2, import_promises7, import_module2, import_os, import_path81, import_readline, import_url218, import_events5, import_fs3, import_path82, import_child_process2, import_fs4, import_readline2, import_os2, import_path83, import_crypto25, import_path84, import_async_hooks, import_promises8, import_crypto26, import_promises9, import_fs5, import_process, import_crypto27, import_crypto28, import_promises10, import_path85, Y, import_promises11, pt, import_fs6, import_promises12, import_events6, import_fs7, import_promises13, import_path86, import_child_process3, import_util14, import_child_process4, import_fs8, import_path87, import_promises14, import_path88, import_fs9, import_promises15, import_path89, import_crypto29, import_path90, import_promises16, import_path91, import_crypto30, import_os3, import_path92, import_path93, import_path94, import_node_path29, import_node_os13, import_node_process3, import_path95, import_promises17, import_os4, import_path96, import_path97, import_os5, import_path98, import_child_process5, import_fs10, Pz, Iz, Ig, Rz, $z, Az, Cz, Rg, k11, Mz, wr, At, jz, Uz, _e11, ve, JT, XT, YT, Bh, iP, yo, dP, kd, gP, bo, SP, kP, Zh, Qa, AP, ty, qP, ny, JP, tc, cy, Pd, Id2, dy, Rd, my, gy, TI, hy, OI, CI, DI, UI, ZI, KI, XI, eR, nR, aR, uR, mR, bR, wR, TR, AR, DR, HR, Ml, kS, re2, ue, rn, Nl, IA, AS, CS, jl, HA, tr, YA, rC, LS, iC, Ul, Fl, Nm, Bl, Um, DC, XS, VC, YC, tM, lM, dM, yM, _M, SM, wM, TM, IM, $M, AM, MM, NM, Km, LM, BM, qM, VM, sx, ax, tD, oD, sD, pD, gD, lx, vD, ED, PD, RD, OD, CD, jD, zD, FD, HD, ZD, KD, XD, tN, oN, iN, fx, hN, bN, xN, Lz, Qo, Hz, qz, Zz, Vz, Wz, Og, ot, Yz, xu, Qz, eL, Ht, tL, qt, Tw, rL, nL, Js, Pw, iL, sL, Iw, cL, lL, Rw, kr, Qe, pL, fL, mL, gL, ei, yL, wu, $w, Ow, _L, vL, Aw, xL, wL, kL, EL, TL, PL, IL, Cw, Mw, ti, AL, Mr, Dw, Nw, DL, NL, jL, jw, zL, LL, Uw, BL, zw, Ag, Lw, dn, pn, WL, KL, Fw, Bw, Hw, qw, fn, QL, ku, Zw, Vw, mn, Ww, Kw, Gw, Jw, Xs, a1, Ce, Zt, Fie, Mg, Ys, z3, We, et, to, Qs, ea, ta, ra, na, oa, ia, sa, aa, d1, Xw, Dg, Ng, Qw, Tu, ek, Vt, ok4, f1, tk, rk, nk, ca, ak, uk, dk, Iu, ro, pk, fk, ii, mk, lk, zg, y1, he, Lg, ge, gk, hk, Mu, Bg, _1, bk, Nr, Du, v12, vk, Sk, Hg, S1, xk, Ct, Mt, gn, da, Dt, Ik, pa, no, ju, Wg, Uu, sr, ye, Gg, Jg, ai, Rk, O1, A1, Kg, $k, C1, M1, J3, Ok2, E2, Ak, U12, M, ma, ga, ha, ya, ba, _a10, ci, va, Sa, io, li, xa, Bu, J1, ui, X1, Y1, Hu, Wt, hn, di, wa, qu, ka, Ea, Zu, Ta, jr, Pa, Vu, Wu, so, Ku, Gu, Ia, th, Nk, Ju, rh, nh, oh, jk, Uk, Ra, pi, Fk, Bk, $a, fi, ao, Ke, vt, Nt, Ur, yn, Oa, Hk, ih, Aa, Zk, eF, bn, Ca, Ma, co, Da, mi, Na, gi, it, hi, Kt, _n, yi, ja, Xu, Ua, za, Yu, La, zr, Fa, Qu, ed, lo, td, rd, Ba, ch, Kk, lh, uh, dh, ph, Gk, Jk, Ha, qa, uo, Qk, dF, bi, fh, mh, nd, eE, tE, rE, Ue, po, _F, vF, lE, PF, fo, xi, fE, mE, gE, hE, CF, yE, bE, DF, ki, Ei, jF, UF, od, _E4, vE, Gt, HF, _h8, SE, ZF, VF, WF, Fr, KF, dt, sd, xE, EE, wE, JF, kE, XF, YF, Za, QF, e42, vn, r42, Ti, o42, i42, s4, a42, c42, l42, u4, d42, p42, f42, m42, g42, h42, y4, b42, _4, v43, S4, x4, w4, k42, E4, T42, P4, $e, TE, PE, cd, IE, Va, $4, vh, O4, ld, RE, A4, ud, C4, M4, $E, N4, dd, OE, Pi2, AE, F4, B4, CE, pd, md, jE, ME, Z4, DE, NE, Sh, UE, zE, G4, gd, J4, xh, LE, FE, BE, Q4, HE, qE, t22, Ii, n22, o22, ZE, s22, VE, c22, l22, u22, WE, KE, p22, GE, JE, YE, QE, Sn, g22, Ri, eT, tT, rT, nT, hd, oT, x22, eme, k22, wh, yd, E22, T22, P2, I2, R2, kh, $2, A22, M2, D2, N22, xme, j22, wme, U22, kme, z22, Eme, L2, Tme, bT, B2, vT, tB, rB, oB, kT, Bme, iB, PT, $T, sB, IT, aB, cB, RT, Oh, mB, gB, Ah, hB, NT, jT, bB, _B, _d, Ih, Ka, Rh, Ch, FT, dge, xB, Pe, Ze, IB, Sd, qT, Nh, $i, Ga, NB, zh, WT, Lh, xd, wd, jB, Fh, xg, Ni, a62, c62, m62, cr, b62, ji, x6, JR, w6, Ad, E6, nc2, T62, P6, B6, Y6, aZ, x0, cZ, lZ, uZ, $be, S0, dZ, fZ, k0, hZ, ae, P0, C3, qr, I3, jt, yZ, En, bZ, Ud, st, W, Li, ft, Wy, Ky, xo, ac, F3, ur, I0, oe, _Z, vZ, SZ, xZ, wZ, kZ, EZ, TZ, PZ, Gy, IZ, RZ, $Z, OZ, AZ, CZ, R0, MZ, Vr, Bi, Hi, zd, lc, Ld, uc, dc, Fd, wo, Wr, Bd, Tr, ze, pc, Zr, Xy, fc, Kr2, Hd, qd, qi, cc, mc, gc, ko, hc, Zi, Pr, Jt, Tn, yc, bc, Zd, Yy, Vd, _c11, r_e, R, n_e, o_e, i_e, s_e, a_e, c_e, l_e, u_e, d_e, p_e, f_e, m_e, g_e, h_e, A0, y_e, b_e, __e, v_e, S_e, x_e, w_e, k_e, E_e, T_e, P_e, I_e, R_e, $_e, O_e, A_e, C_e, M_e, D_e, dr, Wd, Kd, Gr, vc, O, Gd, nb, JZ, Ec, ob, sb, ab, C0, M0, Ic, Ki, Yd, Po, Qd, Io, ep, In, tp, Rn, $n, lb, ub, db, pb, fb, mb, gb, sV, hb, Ro, aV, cV, lV, yb, uV, dV, pV, fV, mV, _b, vb, Sb, xb, wb, rp, kb, gV, Eb, N0, Tb, Rb, $b, Ob, Ab, Cb, Mb, Db, Nb, jb, Me, z0, np, op3, Ub, zb, Lb, Fb, Bb, Hb, qb, Zb, Vb, Xi, Wb, Kb, Gb, Jb, Xb, Yb, Qb, e_, t_, ip, r_, G3, On, xe, cp2, lp, up, dp, pp, fp, mp, gp, hp, yp, bp, o_, i_, s_, a_, _p, vp, Sp, xp, wp, kp, Ep, Tp, Pp, Rc, Ip, Yi, $c, Rp, $p, Op2, Ap, Cp, $o, Mp, Dp, Np, Qi, Oc, Ac, jp, Up, An, zp, Lp, Fp2, Bp, Hp, qp, es, Zp, Vp, Wp, Kp, Gp, Jp, Xp, Yp, ts, Qp, ef, tf, rf, nf, rs, hV, yV, bV, _V4, vV, SV, xV, wV, kV, EV, TV, PV, IV2, RV, $V, OV, AV, CV, MV, DV, NV, jV, UV, zV, LV, FV, BV, HV, qV, ZV, VV, WV, KV, GV, JV, XV, YV, QV, eW, tW, rW, nW, of, sf, Mc, Et, cf, cv, Cf, n$, TW, PW, l7, ls, jf, Uf, zf, Lf, a$, $W, us, mv, gv, hv, yv, ne, _v, yl, Ie, vv, Ff, en, Sv, xv, wv, kv, Ev, Tv, Pv, Iv, Rv, $v, Ov, Av, Cv, Mv, Dv, Nv, c$, bl, ds, _l, vl, jv, l$, u$, d$, p$, f$, m$, g$, Vf, h$, Wf, Uv, y$, b$, _$, zv, v$, S$, hl, x$, w$, Lv, Bv, k$, E$, P$, Hv, $$, O$, C$, qv, M$, N$, j$, z$, Gf, PK, RK, Vv, H$, Wv, Kv, q$, Nn, Yf, Xe, Z$, V$, pxe, UK, zK, Gv, zt, xl, W$, tt, Qt, er, rt, Qf, K$, Jv, G$, J$, Xv, wl, Z3, Yv, X$, fxe, mxe, em, LK, tm, FK, kl, ps, Y$, BK, HK, qK, ZK, VK, WK, Qv, KK, GK, eS, rm2, JK, XK, nm, YK, El, Tl, QK, Pl, fs21, eG, Il, om, im, sm, gxe, am, cm, lm, Q$, eO, tO, tS, rO, Rl, ms, nO, tG, um, rG, dm, nG, rS, oG, pm, iG, sG, aG, cG, lG, uG, dG, pG, fG, mG, fm, gG, hG, mm, nS, oS, iS, yG, bG, _G, sS, vG, SG, xG, wG, kG, oO, gm, EG, hm, hxe, TG, gs, PG, yxe, $l, IG, aS, RG, $G, OG, AG, CG, MG, DG, Xf, NG, jG, UG, Ol, cS, zG, LG, FG, BG, HG, qG, ZG, VG, WG, KG, GG, JG, XG, YG, QG, e92, t9, r92, hs, n9, o9, i92, ym, s9, a92, c92, lS, l9, bxe, _xe, vxe, Sxe, xxe, wxe, H3, aO, lO, cO, uO, dO, bm, gO, u9, d92, pS, pr, p9, Al, TO, OO, AO, UO, zO, h92, y9, mS, _9, bS, wN, kN, wx, kx, Ex, IN, PN, BQ, Ix, $x, ZQ, ru, MN, JQ, vr, NN, jN, iee, see, zN, LN, FN, BN, Vn, Ax, $s, fee, mee, gee, AIe, yee, Mx, _ee, ZN, nRe, Os, WN, Dx, KN, sg, VN, vee, Wn, GN, ou, As, ag, See, XN, Cs, Ho, RRe, $Re, ORe, qo, NRe, iu, ej, Tee, tj, rj, Iee, Ree, $ee, nj, Oee, Aee, oj, su, ij, sj, cj, lj, uj, cg, dj, Lee, pj, Fee, Bee, Hee, fj, Zee, lg, mj, gj, hj, Gee, sn, yj, bj, _j, vj, Sj, wj, kj, Ej, rte, ug, ote, Nx, ite2, Ij, Rj, au, cu, Kn, $j, Oj, Aj, jx, Ms, lte, ute, Dj, Nj, jj, Uj, dte, zj, V$e, lu, pte, Lj, eOe, tOe, Fj, uu, Bj, Hj, Zo, dOe, pOe, Ds, Gn, mte, gte, qj, hte, yte, bte, _te, vte, Ste, Ux, xte, pg, fOe, wte, kte, Kj, Ete, Tte, Sr, Vo, Zj, Lx, Fx, Gj, Bx, Ite, SOe, Rte, $te, Ote, Ate, Cte, Jj, Xj, Mte, Vj, Dte, Nte, Yj, jte, Ute, Wj, zte, Lte, Qj, Fte, eU, Bte, Hte, qte, du, zx, tU, Zte, Vte, Wte, Kte, Gte, xOe, rU, Xte, Yte, Qte, ere, tre, rre, nre, wOe, ore, kOe, ire, fg, mg, sU, aU, DOe, NOe, gg, Kx, mU, ure, nAe, dre, hg, yg, pre, hU, yU, fre, Ko, bU, an, mre, gre, vAe, bre, vre, Xx, Ure, Yn, HU, qU, ZU, vg, qre, JU, Zre, Vre, Wre, cne;
|
|
934746
934758
|
var init_sdk4 = __esm({
|
|
934747
934759
|
"node_modules/.pnpm/@anthropic-ai+claude-agent-sdk@0.3.185_@anthropic-ai+sdk@0.105.0_zod@4.3.6__@modelconte_67a396f8f23422d326082c0748c7ae39/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs"() {
|
|
934748
|
-
|
|
934760
|
+
import_node_module = require("node:module");
|
|
934749
934761
|
import_child_process = require("child_process");
|
|
934750
934762
|
import_crypto24 = require("crypto");
|
|
934751
934763
|
import_fs2 = require("fs");
|
|
@@ -934835,7 +934847,7 @@ var init_sdk4 = __esm({
|
|
|
934835
934847
|
wr = (e13, t10) => {
|
|
934836
934848
|
for (var r14 in t10) Ig(e13, r14, { get: t10[r14], enumerable: true, configurable: true, set: Dz.bind(t10, r14) });
|
|
934837
934849
|
};
|
|
934838
|
-
At = (0,
|
|
934850
|
+
At = (0, import_node_module.createRequire)(__importMetaUrl);
|
|
934839
934851
|
jz = Symbol.dispose || /* @__PURE__ */ Symbol.for("Symbol.dispose");
|
|
934840
934852
|
Uz = Symbol.asyncDispose || /* @__PURE__ */ Symbol.for("Symbol.asyncDispose");
|
|
934841
934853
|
_e11 = (e13, t10, r14) => {
|
|
@@ -990054,7 +990066,7 @@ var init_browser_launcher = __esm({
|
|
|
990054
990066
|
|
|
990055
990067
|
// dist/utils/playwriter-relay.js
|
|
990056
990068
|
function isBundled2() {
|
|
990057
|
-
const v14 = "0.1.200-dev.feat-issue-534-browser-singleton.
|
|
990069
|
+
const v14 = "0.1.200-dev.feat-issue-534-browser-singleton.3";
|
|
990058
990070
|
return typeof v14 === "string" && v14 !== "undefined";
|
|
990059
990071
|
}
|
|
990060
990072
|
function resolveRelayEntryPath() {
|
|
@@ -990065,9 +990077,8 @@ function resolveRelayEntryPath() {
|
|
|
990065
990077
|
function getRelayBaseUrl(host, port) {
|
|
990066
990078
|
return `http://${host}:${port}`;
|
|
990067
990079
|
}
|
|
990068
|
-
function getRelayCdpEndpoint(host, port
|
|
990069
|
-
|
|
990070
|
-
return `ws://${host}:${port}/cdp${query}`;
|
|
990080
|
+
function getRelayCdpEndpoint(host, port) {
|
|
990081
|
+
return `ws://${host}:${port}/cdp`;
|
|
990071
990082
|
}
|
|
990072
990083
|
function assertPm2Available() {
|
|
990073
990084
|
try {
|
|
@@ -990090,7 +990101,7 @@ function getPm2RelayProcess() {
|
|
|
990090
990101
|
}
|
|
990091
990102
|
}
|
|
990092
990103
|
function pm2Start(entryPath, host, port) {
|
|
990093
|
-
const versionStr = "0.1.200-dev.feat-issue-534-browser-singleton.
|
|
990104
|
+
const versionStr = "0.1.200-dev.feat-issue-534-browser-singleton.3";
|
|
990094
990105
|
(0, import_node_child_process19.execFileSync)("pm2", ["start", entryPath, "--name", PM2_PROCESS_NAME, "--update-env"], {
|
|
990095
990106
|
encoding: "utf-8",
|
|
990096
990107
|
stdio: "pipe",
|
|
@@ -990116,7 +990127,7 @@ function pm2Delete() {
|
|
|
990116
990127
|
}
|
|
990117
990128
|
}
|
|
990118
990129
|
function pm2Restart(host, port) {
|
|
990119
|
-
const versionStr = "0.1.200-dev.feat-issue-534-browser-singleton.
|
|
990130
|
+
const versionStr = "0.1.200-dev.feat-issue-534-browser-singleton.3";
|
|
990120
990131
|
(0, import_node_child_process19.execFileSync)("pm2", ["restart", PM2_PROCESS_NAME, "--update-env"], {
|
|
990121
990132
|
encoding: "utf-8",
|
|
990122
990133
|
stdio: "pipe",
|
|
@@ -990153,7 +990164,7 @@ async function getPlaywriterRelayStatus(host = "127.0.0.1", port = 19988) {
|
|
|
990153
990164
|
return { reachable: false, extensionConnected: false, activeTargets: 0 };
|
|
990154
990165
|
}
|
|
990155
990166
|
}
|
|
990156
|
-
async function getRelayExtensionDiagnosis(host = "127.0.0.1", port = 19988
|
|
990167
|
+
async function getRelayExtensionDiagnosis(host = "127.0.0.1", port = 19988) {
|
|
990157
990168
|
let connectedIds = [];
|
|
990158
990169
|
try {
|
|
990159
990170
|
const response = await fetch(`${getRelayBaseUrl(host, port)}/extensions/status`, {
|
|
@@ -990179,23 +990190,20 @@ async function getRelayExtensionDiagnosis(host = "127.0.0.1", port = 19988, expe
|
|
|
990179
990190
|
return {
|
|
990180
990191
|
kind: "none",
|
|
990181
990192
|
connectedIds,
|
|
990182
|
-
message:
|
|
990193
|
+
message: "No extension connected \u2014 automation Chrome has not loaded the Playwriter extension yet"
|
|
990183
990194
|
};
|
|
990184
990195
|
}
|
|
990185
|
-
if (connectedIds.
|
|
990186
|
-
if (connectedIds.length === 1) {
|
|
990187
|
-
return { kind: "ok", connectedIds, message: `Expected extension connected: ${expectedExtensionId}` };
|
|
990188
|
-
}
|
|
990196
|
+
if (connectedIds.length === 1) {
|
|
990189
990197
|
return {
|
|
990190
|
-
kind: "
|
|
990198
|
+
kind: "ok",
|
|
990191
990199
|
connectedIds,
|
|
990192
|
-
message: `
|
|
990200
|
+
message: `Exactly one extension connected (${connectedIds[0]})`
|
|
990193
990201
|
};
|
|
990194
990202
|
}
|
|
990195
990203
|
return {
|
|
990196
|
-
kind: "
|
|
990204
|
+
kind: "multiple",
|
|
990197
990205
|
connectedIds,
|
|
990198
|
-
message: `
|
|
990206
|
+
message: `Multiple extensions connected (${connectedIds.length}); expected exactly one. Connected: ${connectedIds.join(", ")}`
|
|
990199
990207
|
};
|
|
990200
990208
|
}
|
|
990201
990209
|
function getRelayInfoFromFile() {
|
|
@@ -990242,7 +990250,7 @@ function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
|
|
|
990242
990250
|
pm2Restart(host, port);
|
|
990243
990251
|
return;
|
|
990244
990252
|
}
|
|
990245
|
-
const currentVersion = "0.1.200-dev.feat-issue-534-browser-singleton.
|
|
990253
|
+
const currentVersion = "0.1.200-dev.feat-issue-534-browser-singleton.3";
|
|
990246
990254
|
if (currentEnv.VISIONCLAW_VERSION && currentEnv.VISIONCLAW_VERSION !== currentVersion) {
|
|
990247
990255
|
logger.system(`Playwriter relay: VisionClaw version changed (${currentEnv.VISIONCLAW_VERSION} \u2192 ${currentVersion}), recreating`);
|
|
990248
990256
|
pm2Delete();
|
|
@@ -990266,7 +990274,7 @@ function reconcilePlaywriterRelay(host = "127.0.0.1", port = 19988) {
|
|
|
990266
990274
|
async function ensurePlaywriterRelay(host = "127.0.0.1", port = 19988) {
|
|
990267
990275
|
assertPm2Available();
|
|
990268
990276
|
if (!hasPlaywriterExtension()) {
|
|
990269
|
-
throw new Error("Playwriter
|
|
990277
|
+
throw new Error("Playwriter extension not configured (dedicated-profile External Extensions JSON missing). Run extension install first.");
|
|
990270
990278
|
}
|
|
990271
990279
|
reconcilePlaywriterRelay(host, port);
|
|
990272
990280
|
const deadline = Date.now() + 15e3;
|
|
@@ -990295,7 +990303,7 @@ function cleanupOrphanRelay() {
|
|
|
990295
990303
|
}
|
|
990296
990304
|
}
|
|
990297
990305
|
}
|
|
990298
|
-
var import_node_child_process19, import_node_fs38, import_node_path45, import_node_url4, PM2_PROCESS_NAME, RELAY_PROTOCOL_VERSION, HEALTH_CHECK_TTL_MS,
|
|
990306
|
+
var import_node_child_process19, import_node_fs38, import_node_path45, import_node_url4, PM2_PROCESS_NAME, RELAY_PROTOCOL_VERSION, HEALTH_CHECK_TTL_MS, cachedStatus, cachedStatusAt;
|
|
990299
990307
|
var init_playwriter_relay = __esm({
|
|
990300
990308
|
"dist/utils/playwriter-relay.js"() {
|
|
990301
990309
|
"use strict";
|
|
@@ -990309,7 +990317,6 @@ var init_playwriter_relay = __esm({
|
|
|
990309
990317
|
PM2_PROCESS_NAME = "playwriter-relay";
|
|
990310
990318
|
RELAY_PROTOCOL_VERSION = 1;
|
|
990311
990319
|
HEALTH_CHECK_TTL_MS = 3e4;
|
|
990312
|
-
EXTENSION_ID = "jfeammnjpkecdekppnclgkkffahnhfhe";
|
|
990313
990320
|
cachedStatus = null;
|
|
990314
990321
|
cachedStatusAt = 0;
|
|
990315
990322
|
}
|
|
@@ -990351,19 +990358,13 @@ function launchPlaywriterProfileChrome() {
|
|
|
990351
990358
|
logger.warn(`Chrome not found at ${chromePath}`);
|
|
990352
990359
|
return;
|
|
990353
990360
|
}
|
|
990361
|
+
cleanPlaywriterExternalUninstalls(getDataDir());
|
|
990354
990362
|
const flags = [
|
|
990355
990363
|
`--user-data-dir=${getDataDir()}`,
|
|
990356
990364
|
"--no-first-run",
|
|
990357
990365
|
"--no-default-browser-check",
|
|
990358
990366
|
"--profile-directory=Default"
|
|
990359
990367
|
];
|
|
990360
|
-
const extensionDir = resolveBundledExtensionDir();
|
|
990361
|
-
if (extensionDir) {
|
|
990362
|
-
cleanPlaywriterExternalUninstalls(getDataDir());
|
|
990363
|
-
flags.push(`--disable-extensions-except=${extensionDir}`, `--load-extension=${extensionDir}`);
|
|
990364
|
-
} else {
|
|
990365
|
-
logger.warn("Playwriter: bundled extension dir not resolvable \u2014 launching Chrome without it");
|
|
990366
|
-
}
|
|
990367
990368
|
const child = (0, import_node_child_process20.spawn)(chromePath, flags, {
|
|
990368
990369
|
detached: true,
|
|
990369
990370
|
stdio: "ignore"
|
|
@@ -1087196,7 +1087197,7 @@ var require_snapshot_recorder = __commonJS({
|
|
|
1087196
1087197
|
"node_modules/.pnpm/undici@8.5.0/node_modules/undici/lib/mock/snapshot-recorder.js"(exports2, module2) {
|
|
1087197
1087198
|
"use strict";
|
|
1087198
1087199
|
var { writeFile: writeFile5, readFile: readFile8, mkdir: mkdir5 } = require("node:fs/promises");
|
|
1087199
|
-
var { dirname:
|
|
1087200
|
+
var { dirname: dirname33, resolve: resolve23 } = require("node:path");
|
|
1087200
1087201
|
var { setTimeout: setTimeout2, clearTimeout: clearTimeout2 } = require("node:timers");
|
|
1087201
1087202
|
var { InvalidArgumentError, UndiciError } = require_errors3();
|
|
1087202
1087203
|
var { hashId, isUrlExcludedFactory, normalizeHeaders: normalizeHeaders2, createHeaderFilters } = require_snapshot_utils();
|
|
@@ -1087442,7 +1087443,7 @@ var require_snapshot_recorder = __commonJS({
|
|
|
1087442
1087443
|
throw new InvalidArgumentError("Snapshot path is required");
|
|
1087443
1087444
|
}
|
|
1087444
1087445
|
const resolvedPath3 = resolve23(path130);
|
|
1087445
|
-
await mkdir5(
|
|
1087446
|
+
await mkdir5(dirname33(resolvedPath3), { recursive: true });
|
|
1087446
1087447
|
const data3 = Array.from(this.#snapshots.entries()).map(([hash3, snapshot]) => ({
|
|
1087447
1087448
|
hash: hash3,
|
|
1087448
1087449
|
snapshot
|
|
@@ -1173897,7 +1173898,7 @@ function getGlimpseBinaryPath() {
|
|
|
1173897
1173898
|
return process.env.GLIMPSE_BINARY;
|
|
1173898
1173899
|
}
|
|
1173899
1173900
|
try {
|
|
1173900
|
-
const require4 = (0,
|
|
1173901
|
+
const require4 = (0, import_node_module6.createRequire)(__importMetaUrl);
|
|
1173901
1173902
|
const glimpseuiPath = require4.resolve("glimpseui");
|
|
1173902
1173903
|
const binaryPath = (0, import_node_path74.join)((0, import_node_path74.dirname)(glimpseuiPath), "glimpse");
|
|
1173903
1173904
|
if ((0, import_node_fs64.existsSync)(binaryPath)) return binaryPath;
|
|
@@ -1173933,14 +1173934,14 @@ async function openGlimpseWindow(html2, options2) {
|
|
|
1173933
1173934
|
}
|
|
1173934
1173935
|
};
|
|
1173935
1173936
|
}
|
|
1173936
|
-
var import_node_fs64, import_node_child_process34, import_node_path74, import_node_os35,
|
|
1173937
|
+
var import_node_fs64, import_node_child_process34, import_node_path74, import_node_os35, import_node_module6, glimpseAvailable, resolvedBinaryPath;
|
|
1173937
1173938
|
var init_glimpse_ui = __esm({
|
|
1173938
1173939
|
"node_modules/.pnpm/pi-mcp-adapter@2.6.1_react-dom@19.2.5_react@19.2.5__react@19.2.5_ws@8.20.0_zod@4.3.6/node_modules/pi-mcp-adapter/glimpse-ui.ts"() {
|
|
1173939
1173940
|
import_node_fs64 = require("node:fs");
|
|
1173940
1173941
|
import_node_child_process34 = require("node:child_process");
|
|
1173941
1173942
|
import_node_path74 = require("node:path");
|
|
1173942
1173943
|
import_node_os35 = require("node:os");
|
|
1173943
|
-
|
|
1173944
|
+
import_node_module6 = require("node:module");
|
|
1173944
1173945
|
glimpseAvailable = null;
|
|
1173945
1173946
|
resolvedBinaryPath = null;
|
|
1173946
1173947
|
}
|
|
@@ -1178656,13 +1178657,13 @@ var init_stdin_buffer = __esm({
|
|
|
1178656
1178657
|
});
|
|
1178657
1178658
|
|
|
1178658
1178659
|
// node_modules/.pnpm/@earendil-works+pi-tui@0.74.1/node_modules/@earendil-works/pi-tui/dist/terminal.js
|
|
1178659
|
-
var
|
|
1178660
|
+
var import_node_module7, cjsRequire3;
|
|
1178660
1178661
|
var init_terminal = __esm({
|
|
1178661
1178662
|
"node_modules/.pnpm/@earendil-works+pi-tui@0.74.1/node_modules/@earendil-works/pi-tui/dist/terminal.js"() {
|
|
1178662
|
-
|
|
1178663
|
+
import_node_module7 = require("node:module");
|
|
1178663
1178664
|
init_keys2();
|
|
1178664
1178665
|
init_stdin_buffer();
|
|
1178665
|
-
cjsRequire3 = (0,
|
|
1178666
|
+
cjsRequire3 = (0, import_node_module7.createRequire)(__importMetaUrl);
|
|
1178666
1178667
|
}
|
|
1178667
1178668
|
});
|
|
1178668
1178669
|
|
|
@@ -1312370,7 +1312371,7 @@ var init_plugin_sdk2 = __esm({
|
|
|
1312370
1312371
|
|
|
1312371
1312372
|
// dist/tos-storage.js
|
|
1312372
1312373
|
function createTosClient(credentials, bucket, endpointOverride) {
|
|
1312373
|
-
const _require = (0,
|
|
1312374
|
+
const _require = (0, import_node_module8.createRequire)(__importMetaUrl);
|
|
1312374
1312375
|
const { TosClient } = _require("@volcengine/tos-sdk");
|
|
1312375
1312376
|
return new TosClient({
|
|
1312376
1312377
|
accessKeyId: credentials.accessKeyId,
|
|
@@ -1312493,14 +1312494,14 @@ function createTosSignedUrl(options2) {
|
|
|
1312493
1312494
|
expires: options2.expiresSeconds
|
|
1312494
1312495
|
});
|
|
1312495
1312496
|
}
|
|
1312496
|
-
var import_node_fs78, import_node_os42, import_node_path92,
|
|
1312497
|
+
var import_node_fs78, import_node_os42, import_node_path92, import_node_module8, DEFAULT_TOS_MULTIPART_THRESHOLD, DEFAULT_TOS_PART_SIZE, DEFAULT_TOS_TASK_NUM, DEFAULT_TOS_UPLOAD_MAX_ATTEMPTS, DEFAULT_TOS_UPLOAD_RETRY_BASE_DELAY_MS, RETRYABLE_UPLOAD_ERROR_RE;
|
|
1312497
1312498
|
var init_tos_storage = __esm({
|
|
1312498
1312499
|
"dist/tos-storage.js"() {
|
|
1312499
1312500
|
"use strict";
|
|
1312500
1312501
|
import_node_fs78 = __toESM(require("node:fs"), 1);
|
|
1312501
1312502
|
import_node_os42 = __toESM(require("node:os"), 1);
|
|
1312502
1312503
|
import_node_path92 = __toESM(require("node:path"), 1);
|
|
1312503
|
-
|
|
1312504
|
+
import_node_module8 = require("node:module");
|
|
1312504
1312505
|
DEFAULT_TOS_MULTIPART_THRESHOLD = 64 * 1024 * 1024;
|
|
1312505
1312506
|
DEFAULT_TOS_PART_SIZE = 20 * 1024 * 1024;
|
|
1312506
1312507
|
DEFAULT_TOS_TASK_NUM = 1;
|
|
@@ -1319049,7 +1319050,7 @@ async function detectBrowserBackend(config3) {
|
|
|
1319049
1319050
|
logger.system(`Browser backend: Playwright CDP (relay startup failed: ${err9 instanceof Error ? err9.message : String(err9)})`);
|
|
1319050
1319051
|
}
|
|
1319051
1319052
|
} else {
|
|
1319052
|
-
logger.system("Browser backend: Playwright CDP (Playwriter
|
|
1319053
|
+
logger.system("Browser backend: Playwright CDP (Playwriter External Extensions JSON not installed)");
|
|
1319053
1319054
|
cleanupOrphanRelay();
|
|
1319054
1319055
|
}
|
|
1319055
1319056
|
} catch {
|
|
@@ -1319125,7 +1319126,7 @@ function buildPlaywriterRelayMcpServer(config3) {
|
|
|
1319125
1319126
|
const screenshotsDir = getScreenshotsDir();
|
|
1319126
1319127
|
const host = config3.playwriterRelayHost ?? "127.0.0.1";
|
|
1319127
1319128
|
const port = config3.playwriterRelayPort ?? 19988;
|
|
1319128
|
-
const cdpEndpoint = getRelayCdpEndpoint(host, port
|
|
1319129
|
+
const cdpEndpoint = getRelayCdpEndpoint(host, port);
|
|
1319129
1319130
|
const packageRoot = import_path127.default.resolve(import_path127.default.dirname((0, import_url400.fileURLToPath)(__importMetaUrl)), "../..");
|
|
1319130
1319131
|
const binDir = import_path127.default.join(packageRoot, "node_modules", ".bin");
|
|
1319131
1319132
|
const playwrightConfig = {
|
|
@@ -1329799,18 +1329800,13 @@ Switched to ${getModelLabel(nextModel)} via ${getProviderLabel2(nextProvider)}.`
|
|
|
1329799
1329800
|
console.log("\nPlaywriter extension installation is only supported on macOS.");
|
|
1329800
1329801
|
break;
|
|
1329801
1329802
|
}
|
|
1329802
|
-
|
|
1329803
|
-
|
|
1329804
|
-
console.log("Reinstall dependencies (the extension ships inside the 'playwriter' package).");
|
|
1329805
|
-
break;
|
|
1329806
|
-
}
|
|
1329807
|
-
console.log("\nPlaywriter extension is loaded directly from the bundled package via --load-extension.");
|
|
1329808
|
-
console.log("No Chrome external-install configuration is needed.");
|
|
1329803
|
+
console.log("\nInstalling the Playwriter extension into the dedicated automation profile");
|
|
1329804
|
+
console.log("(via that profile's External Extensions JSON \u2014 the user's normal Chrome is untouched).");
|
|
1329809
1329805
|
const ok15 = ensurePlaywriterExtension();
|
|
1329810
1329806
|
if (ok15) {
|
|
1329811
|
-
console.log("
|
|
1329807
|
+
console.log("Playwriter extension configured for the automation profile.");
|
|
1329812
1329808
|
} else {
|
|
1329813
|
-
console.log("
|
|
1329809
|
+
console.log("Failed to configure the Playwriter extension; check logs.");
|
|
1329814
1329810
|
}
|
|
1329815
1329811
|
break;
|
|
1329816
1329812
|
}
|
|
@@ -1344323,15 +1344319,15 @@ var StdinBuffer = class extends import_events7.EventEmitter {
|
|
|
1344323
1344319
|
|
|
1344324
1344320
|
// node_modules/.pnpm/@earendil-works+pi-tui@0.79.9/node_modules/@earendil-works/pi-tui/dist/terminal.js
|
|
1344325
1344321
|
var fs48 = __toESM(require("node:fs"), 1);
|
|
1344326
|
-
var
|
|
1344322
|
+
var import_node_module3 = require("node:module");
|
|
1344327
1344323
|
var path50 = __toESM(require("node:path"), 1);
|
|
1344328
1344324
|
var import_node_url7 = require("node:url");
|
|
1344329
1344325
|
|
|
1344330
1344326
|
// node_modules/.pnpm/@earendil-works+pi-tui@0.79.9/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js
|
|
1344331
|
-
var
|
|
1344327
|
+
var import_node_module2 = require("node:module");
|
|
1344332
1344328
|
var path49 = __toESM(require("node:path"), 1);
|
|
1344333
1344329
|
var import_node_url6 = require("node:url");
|
|
1344334
|
-
var cjsRequire = (0,
|
|
1344330
|
+
var cjsRequire = (0, import_node_module2.createRequire)(__importMetaUrl);
|
|
1344335
1344331
|
var nativeModifiersHelper;
|
|
1344336
1344332
|
function isNativeModifiersHelper(value2) {
|
|
1344337
1344333
|
if (typeof value2 !== "object" || value2 === null)
|
|
@@ -1344379,7 +1344375,7 @@ function isNativeModifierPressed(key) {
|
|
|
1344379
1344375
|
}
|
|
1344380
1344376
|
|
|
1344381
1344377
|
// node_modules/.pnpm/@earendil-works+pi-tui@0.79.9/node_modules/@earendil-works/pi-tui/dist/terminal.js
|
|
1344382
|
-
var cjsRequire2 = (0,
|
|
1344378
|
+
var cjsRequire2 = (0, import_node_module3.createRequire)(__importMetaUrl);
|
|
1344383
1344379
|
var TERMINAL_PROGRESS_KEEPALIVE_MS = 1e3;
|
|
1344384
1344380
|
var TERMINAL_PROGRESS_ACTIVE_SEQUENCE = "\x1B]9;4;3\x07";
|
|
1344385
1344381
|
var TERMINAL_PROGRESS_CLEAR_SEQUENCE = "\x1B]9;4;0;\x07";
|
|
@@ -1353577,7 +1353573,7 @@ function createToolHtmlRenderer(deps) {
|
|
|
1353577
1353573
|
|
|
1353578
1353574
|
// node_modules/.pnpm/@earendil-works+pi-coding-agent@0.79.9_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__ws@8.20.0_zod@4.3.6/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js
|
|
1353579
1353575
|
var fs50 = __toESM(require("node:fs"), 1);
|
|
1353580
|
-
var
|
|
1353576
|
+
var import_node_module5 = require("node:module");
|
|
1353581
1353577
|
var path52 = __toESM(require("node:path"), 1);
|
|
1353582
1353578
|
var import_node_url8 = require("node:url");
|
|
1353583
1353579
|
init_dist2();
|
|
@@ -1354890,7 +1354886,7 @@ async function getOAuthApiKey(providerId, credentials) {
|
|
|
1354890
1354886
|
}
|
|
1354891
1354887
|
|
|
1354892
1354888
|
// node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-static.mjs
|
|
1354893
|
-
var
|
|
1354889
|
+
var import_node_module4 = require("node:module");
|
|
1354894
1354890
|
var import_jiti = __toESM(require_jiti(), 1);
|
|
1354895
1354891
|
var import_babel = __toESM(require_babel(), 1);
|
|
1354896
1354892
|
function onError(err9) {
|
|
@@ -1354904,7 +1354900,7 @@ function createJiti(id3, opts = {}) {
|
|
|
1354904
1354900
|
return (0, import_jiti.default)(id3, opts, {
|
|
1354905
1354901
|
onError,
|
|
1354906
1354902
|
nativeImport,
|
|
1354907
|
-
createRequire:
|
|
1354903
|
+
createRequire: import_node_module4.createRequire
|
|
1354908
1354904
|
});
|
|
1354909
1354905
|
}
|
|
1354910
1354906
|
|
|
@@ -1355038,7 +1355034,7 @@ var VIRTUAL_MODULES = {
|
|
|
1355038
1355034
|
"@mariozechner/pi-ai/oauth": oauth_exports,
|
|
1355039
1355035
|
"@mariozechner/pi-coding-agent": dist_exports4
|
|
1355040
1355036
|
};
|
|
1355041
|
-
var require2 = (0,
|
|
1355037
|
+
var require2 = (0, import_node_module5.createRequire)(__importMetaUrl);
|
|
1355042
1355038
|
var _aliases = null;
|
|
1355043
1355039
|
function getAliases() {
|
|
1355044
1355040
|
if (_aliases)
|
|
@@ -1,26 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
-
for (let key of __getOwnPropNames(from))
|
|
11
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
-
}
|
|
14
|
-
return to;
|
|
15
|
-
};
|
|
16
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
-
mod
|
|
23
|
-
));
|
|
24
2
|
|
|
25
3
|
// dist/entry/playwriter-relay.js
|
|
26
4
|
var import_playwriter = require("playwriter");
|
|
@@ -34,12 +12,9 @@ function getRelayInfoPath() {
|
|
|
34
12
|
return process.env.RELAY_INFO_PATH ?? (0, import_node_path.join)((0, import_node_os.homedir)(), ".visionclaw", "profiles", "default", ".playwriter-relay-info.json");
|
|
35
13
|
}
|
|
36
14
|
function hasExtensionConfig() {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
} catch {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
15
|
+
const configDir = (0, import_node_path.dirname)(getRelayInfoPath());
|
|
16
|
+
const jsonPath = (0, import_node_path.join)(configDir, ".playwriter-chrome", "External Extensions", `${EXTENSION_ID}.json`);
|
|
17
|
+
return (0, import_node_fs.existsSync)(jsonPath);
|
|
43
18
|
}
|
|
44
19
|
function hasConflictingPolicyInstall() {
|
|
45
20
|
if (process.platform !== "darwin")
|
|
@@ -75,7 +50,7 @@ function removeRelayInfo() {
|
|
|
75
50
|
}
|
|
76
51
|
async function main() {
|
|
77
52
|
if (!hasExtensionConfig()) {
|
|
78
|
-
console.error("Playwriter
|
|
53
|
+
console.error("Playwriter extension not configured (dedicated-profile External Extensions JSON not found). Run extension install first.");
|
|
79
54
|
process.exit(1);
|
|
80
55
|
}
|
|
81
56
|
if (hasConflictingPolicyInstall()) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "visionclaw",
|
|
3
|
-
"version": "0.1.200-dev.feat-issue-534-browser-singleton.
|
|
3
|
+
"version": "0.1.200-dev.feat-issue-534-browser-singleton.3",
|
|
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",
|