unbrowse 9.3.3 → 9.3.5
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/package.json +1 -1
- package/runtime/cli.js +71 -85
- package/runtime/mcp.js +40 -21
- package/vendor/kuri/darwin-arm64/libkuri_ffi.dylib +0 -0
- package/vendor/kuri/darwin-x64/libkuri_ffi.dylib +0 -0
- package/vendor/kuri/linux-arm64/libkuri_ffi.so +0 -0
- package/vendor/kuri/linux-x64/kuri +0 -0
- package/vendor/kuri/linux-x64/libkuri_ffi.so +0 -0
- package/vendor/kuri/manifest.json +7 -7
- package/vendor/kuri/win-x64/kuri.exe +0 -0
package/package.json
CHANGED
package/runtime/cli.js
CHANGED
|
@@ -1106,8 +1106,7 @@ __export(exports_proxy_fetch, {
|
|
|
1106
1106
|
resolveEgressProxy: () => resolveEgressProxy,
|
|
1107
1107
|
proxiedFetchOnce: () => proxiedFetchOnce,
|
|
1108
1108
|
iproyalStickySuffix: () => iproyalStickySuffix,
|
|
1109
|
-
egressProxyArg: () => egressProxyArg
|
|
1110
|
-
PROXYKINGDOM_DEFAULT_URL: () => PROXYKINGDOM_DEFAULT_URL
|
|
1109
|
+
egressProxyArg: () => egressProxyArg
|
|
1111
1110
|
});
|
|
1112
1111
|
import { randomBytes } from "node:crypto";
|
|
1113
1112
|
import { readFileSync as readFileSync4, writeFileSync as writeFileSync2, mkdirSync as mkdirSync3, statSync as statSync2 } from "node:fs";
|
|
@@ -1183,10 +1182,11 @@ function resolveEgressProxy(env = process.env) {
|
|
|
1183
1182
|
if (iproyal)
|
|
1184
1183
|
return iproyal;
|
|
1185
1184
|
const override = env.UNBROWSE_PROXYKINGDOM_URL?.trim();
|
|
1186
|
-
|
|
1187
|
-
if (peekFailure(pk, "proxy") === "structural")
|
|
1185
|
+
if (!override)
|
|
1188
1186
|
return;
|
|
1189
|
-
|
|
1187
|
+
if (peekFailure(override, "proxy") === "structural")
|
|
1188
|
+
return;
|
|
1189
|
+
return override;
|
|
1190
1190
|
}
|
|
1191
1191
|
function egressProxyArg(env = process.env) {
|
|
1192
1192
|
const url = resolveEgressProxy(env);
|
|
@@ -1286,7 +1286,7 @@ async function x402ProxyAuthorization(proxyUrl = resolveEgressProxy()) {
|
|
|
1286
1286
|
};
|
|
1287
1287
|
}
|
|
1288
1288
|
}
|
|
1289
|
-
var STICKY_SESSION_MAX_AGE_MS, _processStickyFallback,
|
|
1289
|
+
var STICKY_SESSION_MAX_AGE_MS, _processStickyFallback, _cachedProxyAuth = null;
|
|
1290
1290
|
var init_proxy_fetch = __esm(() => {
|
|
1291
1291
|
init_x402_fetch();
|
|
1292
1292
|
init_failure_cache();
|
|
@@ -5020,7 +5020,7 @@ var init_cached_resolution = __esm(() => {
|
|
|
5020
5020
|
});
|
|
5021
5021
|
|
|
5022
5022
|
// .tmp-runtime-src/build-info.generated.ts
|
|
5023
|
-
var BUILD_RELEASE_VERSION = "9.3.
|
|
5023
|
+
var BUILD_RELEASE_VERSION = "9.3.5", BUILD_GIT_SHA = "e1eab1024082", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiOS4zLjUiLCJnaXRfc2hhIjoiZTFlYWIxMDI0MDgyIiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUBlMWVhYjEwMjQwODIiLCJpc3N1ZWRfYXQiOiIyMDI2LTA2LTE1VDA1OjQ1OjE2Ljk3NVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "AyLsG9O87EuwlERZ8PWOwgHjdrQ0VtmVXOsrwVp4hag", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai", BUILD_DEFAULT_PROFILE = "";
|
|
5024
5024
|
|
|
5025
5025
|
// .tmp-runtime-src/version.ts
|
|
5026
5026
|
import { createHash as createHash4 } from "crypto";
|
|
@@ -108366,10 +108366,13 @@ function updateCapturePipelineSettings(update) {
|
|
|
108366
108366
|
});
|
|
108367
108367
|
return next;
|
|
108368
108368
|
}
|
|
108369
|
-
function
|
|
108369
|
+
function getBrowserAttachPreference() {
|
|
108370
108370
|
const raw = loadRawConfig();
|
|
108371
108371
|
const browser = raw.browser && typeof raw.browser === "object" ? raw.browser : {};
|
|
108372
|
-
return browser.attach_existing_chrome ===
|
|
108372
|
+
return typeof browser.attach_existing_chrome === "boolean" ? browser.attach_existing_chrome : undefined;
|
|
108373
|
+
}
|
|
108374
|
+
function getBrowserAttachEnabled() {
|
|
108375
|
+
return getBrowserAttachPreference() !== false;
|
|
108373
108376
|
}
|
|
108374
108377
|
function setBrowserAttachEnabled(enabled2) {
|
|
108375
108378
|
const raw = loadRawConfig();
|
|
@@ -108519,6 +108522,7 @@ __export(exports_client2, {
|
|
|
108519
108522
|
discoverTabs: () => discoverTabs,
|
|
108520
108523
|
closeTab: () => closeTab,
|
|
108521
108524
|
click: () => click2,
|
|
108525
|
+
chromeCdpAttachLaunchArgs: () => chromeCdpAttachLaunchArgs,
|
|
108522
108526
|
bestEffortRehydratePlugins: () => bestEffortRehydratePlugins,
|
|
108523
108527
|
authProfileSave: () => authProfileSave,
|
|
108524
108528
|
authProfileLoad: () => authProfileLoad,
|
|
@@ -108606,14 +108610,15 @@ function resolveKuriLaunchConfig(env2 = process.env) {
|
|
|
108606
108610
|
}
|
|
108607
108611
|
const cleanRoom = envFlag(env2.UNBROWSE_LOCAL_ONLY) || envFlag(env2.KURI_CLEAN_ROOM);
|
|
108608
108612
|
const disableCdpAttach = envFlag(env2.KURI_DISABLE_CDP_ATTACH);
|
|
108609
|
-
const explicitAttachEnv =
|
|
108610
|
-
|
|
108613
|
+
const explicitAttachEnv = env2.KURI_ATTACH_EXISTING_CHROME;
|
|
108614
|
+
const attachByEnv = explicitAttachEnv === undefined ? undefined : !falseyEnv(explicitAttachEnv);
|
|
108615
|
+
let attachPreference;
|
|
108611
108616
|
try {
|
|
108612
|
-
|
|
108617
|
+
attachPreference = getBrowserAttachPreference();
|
|
108613
108618
|
} catch {
|
|
108614
|
-
|
|
108619
|
+
attachPreference = undefined;
|
|
108615
108620
|
}
|
|
108616
|
-
const attachToExistingChrome = (
|
|
108621
|
+
const attachToExistingChrome = (attachByEnv ?? attachPreference ?? true) && !disableCdpAttach && !cleanRoom;
|
|
108617
108622
|
return {
|
|
108618
108623
|
headless,
|
|
108619
108624
|
attachToExistingChrome
|
|
@@ -108806,11 +108811,7 @@ async function ensureUserChromeRunning(state) {
|
|
|
108806
108811
|
state.cdpPort = port;
|
|
108807
108812
|
log("kuri", `launching user Chrome with CDP on port ${port}`);
|
|
108808
108813
|
try {
|
|
108809
|
-
const child = spawn9(chromeBin,
|
|
108810
|
-
`--remote-debugging-port=${port}`,
|
|
108811
|
-
"--no-first-run",
|
|
108812
|
-
"--no-default-browser-check"
|
|
108813
|
-
], {
|
|
108814
|
+
const child = spawn9(chromeBin, chromeCdpAttachLaunchArgs(port), {
|
|
108814
108815
|
stdio: "ignore",
|
|
108815
108816
|
detached: true
|
|
108816
108817
|
});
|
|
@@ -108833,6 +108834,20 @@ async function ensureUserChromeRunning(state) {
|
|
|
108833
108834
|
state.cdpPort = null;
|
|
108834
108835
|
}
|
|
108835
108836
|
}
|
|
108837
|
+
function chromeCdpAttachLaunchArgs(port, platform6 = process.platform) {
|
|
108838
|
+
const args = [
|
|
108839
|
+
`--remote-debugging-port=${port}`,
|
|
108840
|
+
"--no-first-run",
|
|
108841
|
+
"--no-default-browser-check",
|
|
108842
|
+
"--password-store=basic",
|
|
108843
|
+
"--disable-save-password-bubble",
|
|
108844
|
+
"--disable-features=PasswordManagerOnboarding,AutofillServerCommunication"
|
|
108845
|
+
];
|
|
108846
|
+
if (platform6 === "darwin") {
|
|
108847
|
+
args.push("--use-mock-keychain");
|
|
108848
|
+
}
|
|
108849
|
+
return args;
|
|
108850
|
+
}
|
|
108836
108851
|
async function terminateBrokerOnPort(port) {
|
|
108837
108852
|
try {
|
|
108838
108853
|
const output2 = execFileSync5("lsof", ["-tiTCP:" + String(port), "-sTCP:LISTEN"], {
|
|
@@ -108858,7 +108873,11 @@ async function reuseHealthyBrokerIfPossible(state, launchConfig, deps = {}) {
|
|
|
108858
108873
|
state.ready = true;
|
|
108859
108874
|
const cdpAvailable = deps.isChromeCdpAvailable ?? isChromeCdpAvailable;
|
|
108860
108875
|
const discover = deps.discoverCdpPort ?? discoverCdpPort;
|
|
108861
|
-
|
|
108876
|
+
if (launchConfig.attachToExistingChrome || state.managedChrome) {
|
|
108877
|
+
await discover(state);
|
|
108878
|
+
} else {
|
|
108879
|
+
state.cdpPort = null;
|
|
108880
|
+
}
|
|
108862
108881
|
if (!state.cdpPort && launchConfig.attachToExistingChrome) {
|
|
108863
108882
|
const ensureChrome2 = deps.ensureUserChromeRunning ?? ensureUserChromeRunning;
|
|
108864
108883
|
await ensureChrome2(state);
|
|
@@ -108869,7 +108888,7 @@ async function reuseHealthyBrokerIfPossible(state, launchConfig, deps = {}) {
|
|
|
108869
108888
|
const syncTabs = deps.ensureTabsDiscovered ?? ensureTabsDiscovered;
|
|
108870
108889
|
await syncTabs(state).catch(() => {});
|
|
108871
108890
|
const tabs = await (deps.listTabs ?? listRegisteredTabs)(state).catch(() => []);
|
|
108872
|
-
if (state.cdpPort) {
|
|
108891
|
+
if (state.cdpPort && (launchConfig.attachToExistingChrome || state.managedChrome)) {
|
|
108873
108892
|
return true;
|
|
108874
108893
|
}
|
|
108875
108894
|
if (tabs.length > 0) {
|
|
@@ -193850,8 +193869,7 @@ __export(exports_proxy_fetch2, {
|
|
|
193850
193869
|
resolveEgressProxy: () => resolveEgressProxy2,
|
|
193851
193870
|
proxiedFetchOnce: () => proxiedFetchOnce2,
|
|
193852
193871
|
iproyalStickySuffix: () => iproyalStickySuffix2,
|
|
193853
|
-
egressProxyArg: () => egressProxyArg2
|
|
193854
|
-
PROXYKINGDOM_DEFAULT_URL: () => PROXYKINGDOM_DEFAULT_URL2
|
|
193872
|
+
egressProxyArg: () => egressProxyArg2
|
|
193855
193873
|
});
|
|
193856
193874
|
import { randomBytes as randomBytes21 } from "node:crypto";
|
|
193857
193875
|
import { readFileSync as readFileSync46, writeFileSync as writeFileSync35, mkdirSync as mkdirSync39, statSync as statSync12 } from "node:fs";
|
|
@@ -193927,10 +193945,11 @@ function resolveEgressProxy2(env2 = process.env) {
|
|
|
193927
193945
|
if (iproyal)
|
|
193928
193946
|
return iproyal;
|
|
193929
193947
|
const override = env2.UNBROWSE_PROXYKINGDOM_URL?.trim();
|
|
193930
|
-
|
|
193931
|
-
if (peekFailure(pk, "proxy") === "structural")
|
|
193948
|
+
if (!override)
|
|
193932
193949
|
return;
|
|
193933
|
-
|
|
193950
|
+
if (peekFailure(override, "proxy") === "structural")
|
|
193951
|
+
return;
|
|
193952
|
+
return override;
|
|
193934
193953
|
}
|
|
193935
193954
|
function egressProxyArg2(env2 = process.env) {
|
|
193936
193955
|
const url = resolveEgressProxy2(env2);
|
|
@@ -194030,7 +194049,7 @@ async function x402ProxyAuthorization2(proxyUrl = resolveEgressProxy2()) {
|
|
|
194030
194049
|
};
|
|
194031
194050
|
}
|
|
194032
194051
|
}
|
|
194033
|
-
var STICKY_SESSION_MAX_AGE_MS2, _processStickyFallback2,
|
|
194052
|
+
var STICKY_SESSION_MAX_AGE_MS2, _processStickyFallback2, _cachedProxyAuth2 = null;
|
|
194034
194053
|
var init_proxy_fetch2 = __esm(() => {
|
|
194035
194054
|
init_x402_fetch();
|
|
194036
194055
|
init_failure_cache();
|
|
@@ -201797,7 +201816,7 @@ var init_server = __esm(async () => {
|
|
|
201797
201816
|
} else if (outcome.reason === "opt_out") {
|
|
201798
201817
|
console.error("[kuri-proxy] direct egress (opt-out); kuri runs without --proxy-server");
|
|
201799
201818
|
} else if (outcome.reason === "creds_missing") {
|
|
201800
|
-
console.error("[kuri-proxy] no
|
|
201819
|
+
console.error("[kuri-proxy] no proxy configured — kuri runs direct (set UNBROWSE_PROXY_URL / IProyal creds / UNBROWSE_PROXYKINGDOM_URL to opt in)");
|
|
201801
201820
|
} else if (outcome.reason === "invalid_toggle") {
|
|
201802
201821
|
console.error(`[kuri-proxy] UNBROWSE_KURI_PROXY="${outcome.value}" not recognized — expected auto|1|true|0|false or explicit http://|socks5:// URL`);
|
|
201803
201822
|
}
|
|
@@ -205698,7 +205717,8 @@ import_dotenv.config({ path: ".env.runtime", quiet: true });
|
|
|
205698
205717
|
if (trace)
|
|
205699
205718
|
console.error("[kuri-proxy] direct egress (opt-out); kuri runs without --proxy-server");
|
|
205700
205719
|
} else if (outcome.reason === "creds_missing") {
|
|
205701
|
-
|
|
205720
|
+
if (trace)
|
|
205721
|
+
console.error("[kuri-proxy] no proxy configured \u2014 kuri runs direct (set UNBROWSE_PROXY_URL / IProyal creds / UNBROWSE_PROXYKINGDOM_URL to opt in)");
|
|
205702
205722
|
} else if (outcome.reason === "invalid_toggle") {
|
|
205703
205723
|
console.error(`[kuri-proxy] UNBROWSE_KURI_PROXY="${outcome.value}" not recognized \u2014 expected auto|1|true|0|false or explicit http://|socks5:// URL`);
|
|
205704
205724
|
}
|
|
@@ -210221,75 +210241,41 @@ async function main() {
|
|
|
210221
210241
|
}
|
|
210222
210242
|
await refreshContributionPreferenceFromServer(false);
|
|
210223
210243
|
const KNOWN_COMMANDS = new Set([
|
|
210244
|
+
...CLI_REFERENCE.commands.map((c) => c.name),
|
|
210245
|
+
...Object.keys(DEPRECATED_VERBS),
|
|
210224
210246
|
"health",
|
|
210225
210247
|
"mcp",
|
|
210226
|
-
"setup",
|
|
210227
|
-
"resolve",
|
|
210228
|
-
"run",
|
|
210229
|
-
"execute",
|
|
210230
|
-
"exec",
|
|
210231
|
-
"create",
|
|
210232
|
-
"act",
|
|
210233
|
-
"read",
|
|
210234
|
-
"connect-chrome",
|
|
210235
|
-
"stats",
|
|
210236
|
-
"flywheel",
|
|
210237
|
-
"earnings",
|
|
210238
|
-
"billing",
|
|
210239
|
-
"telemetry",
|
|
210240
|
-
"corpus-test",
|
|
210241
|
-
"corpus-run",
|
|
210242
|
-
"sessions-scan",
|
|
210243
|
-
"cache-clear",
|
|
210244
|
-
"register",
|
|
210245
|
-
"mode",
|
|
210246
|
-
"payment-provider",
|
|
210247
|
-
"account",
|
|
210248
|
-
"dashboard",
|
|
210249
|
-
"capture",
|
|
210250
210248
|
"status",
|
|
210251
|
-
"inspect",
|
|
210252
210249
|
"stop",
|
|
210253
210250
|
"restart",
|
|
210254
210251
|
"serve",
|
|
210255
210252
|
"upgrade",
|
|
210256
210253
|
"update",
|
|
210257
|
-
"
|
|
210258
|
-
"
|
|
210259
|
-
"
|
|
210260
|
-
"
|
|
210261
|
-
"
|
|
210262
|
-
"
|
|
210263
|
-
"
|
|
210264
|
-
"
|
|
210265
|
-
"
|
|
210266
|
-
"scroll",
|
|
210267
|
-
"screenshot",
|
|
210268
|
-
"text",
|
|
210269
|
-
"markdown",
|
|
210270
|
-
"cookies",
|
|
210254
|
+
"create",
|
|
210255
|
+
"act",
|
|
210256
|
+
"read",
|
|
210257
|
+
"exec",
|
|
210258
|
+
"fb",
|
|
210259
|
+
"contract",
|
|
210260
|
+
"contract-bridge",
|
|
210261
|
+
"contribute",
|
|
210262
|
+
"sandbox-replay",
|
|
210271
210263
|
"wallet",
|
|
210272
|
-
"
|
|
210273
|
-
"
|
|
210274
|
-
"
|
|
210275
|
-
"
|
|
210276
|
-
"
|
|
210277
|
-
"
|
|
210278
|
-
"stats",
|
|
210279
|
-
"flywheel",
|
|
210280
|
-
"earnings",
|
|
210264
|
+
"auth-capture",
|
|
210265
|
+
"login",
|
|
210266
|
+
"browse-cookies",
|
|
210267
|
+
"register",
|
|
210268
|
+
"mode",
|
|
210269
|
+
"payment-provider",
|
|
210281
210270
|
"billing",
|
|
210282
210271
|
"telemetry",
|
|
210272
|
+
"cache-clear",
|
|
210273
|
+
"sessions-scan",
|
|
210283
210274
|
"corpus-test",
|
|
210284
210275
|
"corpus-run",
|
|
210285
|
-
"
|
|
210286
|
-
"
|
|
210287
|
-
"
|
|
210288
|
-
"mode",
|
|
210289
|
-
"account",
|
|
210290
|
-
"dashboard",
|
|
210291
|
-
"capture",
|
|
210292
|
-
"contract-bridge"
|
|
210276
|
+
"flywheel",
|
|
210277
|
+
"earnings",
|
|
210278
|
+
"connect-chrome"
|
|
210293
210279
|
]);
|
|
210294
210280
|
if (!KNOWN_COMMANDS.has(command2)) {
|
|
210295
210281
|
const pack = findSitePack(command2);
|
package/runtime/mcp.js
CHANGED
|
@@ -34015,10 +34015,13 @@ function updateCapturePipelineSettings(update) {
|
|
|
34015
34015
|
});
|
|
34016
34016
|
return next;
|
|
34017
34017
|
}
|
|
34018
|
-
function
|
|
34018
|
+
function getBrowserAttachPreference() {
|
|
34019
34019
|
const raw = loadRawConfig();
|
|
34020
34020
|
const browser = raw.browser && typeof raw.browser === "object" ? raw.browser : {};
|
|
34021
|
-
return browser.attach_existing_chrome ===
|
|
34021
|
+
return typeof browser.attach_existing_chrome === "boolean" ? browser.attach_existing_chrome : undefined;
|
|
34022
|
+
}
|
|
34023
|
+
function getBrowserAttachEnabled() {
|
|
34024
|
+
return getBrowserAttachPreference() !== false;
|
|
34022
34025
|
}
|
|
34023
34026
|
function setBrowserAttachEnabled(enabled) {
|
|
34024
34027
|
const raw = loadRawConfig();
|
|
@@ -34168,6 +34171,7 @@ __export(exports_client, {
|
|
|
34168
34171
|
discoverTabs: () => discoverTabs,
|
|
34169
34172
|
closeTab: () => closeTab,
|
|
34170
34173
|
click: () => click,
|
|
34174
|
+
chromeCdpAttachLaunchArgs: () => chromeCdpAttachLaunchArgs,
|
|
34171
34175
|
bestEffortRehydratePlugins: () => bestEffortRehydratePlugins,
|
|
34172
34176
|
authProfileSave: () => authProfileSave,
|
|
34173
34177
|
authProfileLoad: () => authProfileLoad,
|
|
@@ -34255,14 +34259,15 @@ function resolveKuriLaunchConfig(env = process.env) {
|
|
|
34255
34259
|
}
|
|
34256
34260
|
const cleanRoom = envFlag(env.UNBROWSE_LOCAL_ONLY) || envFlag(env.KURI_CLEAN_ROOM);
|
|
34257
34261
|
const disableCdpAttach = envFlag(env.KURI_DISABLE_CDP_ATTACH);
|
|
34258
|
-
const explicitAttachEnv =
|
|
34259
|
-
|
|
34262
|
+
const explicitAttachEnv = env.KURI_ATTACH_EXISTING_CHROME;
|
|
34263
|
+
const attachByEnv = explicitAttachEnv === undefined ? undefined : !falseyEnv(explicitAttachEnv);
|
|
34264
|
+
let attachPreference;
|
|
34260
34265
|
try {
|
|
34261
|
-
|
|
34266
|
+
attachPreference = getBrowserAttachPreference();
|
|
34262
34267
|
} catch {
|
|
34263
|
-
|
|
34268
|
+
attachPreference = undefined;
|
|
34264
34269
|
}
|
|
34265
|
-
const attachToExistingChrome = (
|
|
34270
|
+
const attachToExistingChrome = (attachByEnv ?? attachPreference ?? true) && !disableCdpAttach && !cleanRoom;
|
|
34266
34271
|
return {
|
|
34267
34272
|
headless,
|
|
34268
34273
|
attachToExistingChrome
|
|
@@ -34455,11 +34460,7 @@ async function ensureUserChromeRunning(state) {
|
|
|
34455
34460
|
state.cdpPort = port;
|
|
34456
34461
|
log("kuri", `launching user Chrome with CDP on port ${port}`);
|
|
34457
34462
|
try {
|
|
34458
|
-
const child = spawn(chromeBin,
|
|
34459
|
-
`--remote-debugging-port=${port}`,
|
|
34460
|
-
"--no-first-run",
|
|
34461
|
-
"--no-default-browser-check"
|
|
34462
|
-
], {
|
|
34463
|
+
const child = spawn(chromeBin, chromeCdpAttachLaunchArgs(port), {
|
|
34463
34464
|
stdio: "ignore",
|
|
34464
34465
|
detached: true
|
|
34465
34466
|
});
|
|
@@ -34482,6 +34483,20 @@ async function ensureUserChromeRunning(state) {
|
|
|
34482
34483
|
state.cdpPort = null;
|
|
34483
34484
|
}
|
|
34484
34485
|
}
|
|
34486
|
+
function chromeCdpAttachLaunchArgs(port, platform = process.platform) {
|
|
34487
|
+
const args = [
|
|
34488
|
+
`--remote-debugging-port=${port}`,
|
|
34489
|
+
"--no-first-run",
|
|
34490
|
+
"--no-default-browser-check",
|
|
34491
|
+
"--password-store=basic",
|
|
34492
|
+
"--disable-save-password-bubble",
|
|
34493
|
+
"--disable-features=PasswordManagerOnboarding,AutofillServerCommunication"
|
|
34494
|
+
];
|
|
34495
|
+
if (platform === "darwin") {
|
|
34496
|
+
args.push("--use-mock-keychain");
|
|
34497
|
+
}
|
|
34498
|
+
return args;
|
|
34499
|
+
}
|
|
34485
34500
|
async function terminateBrokerOnPort(port) {
|
|
34486
34501
|
try {
|
|
34487
34502
|
const output = execFileSync("lsof", ["-tiTCP:" + String(port), "-sTCP:LISTEN"], {
|
|
@@ -34507,7 +34522,11 @@ async function reuseHealthyBrokerIfPossible(state, launchConfig, deps = {}) {
|
|
|
34507
34522
|
state.ready = true;
|
|
34508
34523
|
const cdpAvailable = deps.isChromeCdpAvailable ?? isChromeCdpAvailable;
|
|
34509
34524
|
const discover = deps.discoverCdpPort ?? discoverCdpPort;
|
|
34510
|
-
|
|
34525
|
+
if (launchConfig.attachToExistingChrome || state.managedChrome) {
|
|
34526
|
+
await discover(state);
|
|
34527
|
+
} else {
|
|
34528
|
+
state.cdpPort = null;
|
|
34529
|
+
}
|
|
34511
34530
|
if (!state.cdpPort && launchConfig.attachToExistingChrome) {
|
|
34512
34531
|
const ensureChrome = deps.ensureUserChromeRunning ?? ensureUserChromeRunning;
|
|
34513
34532
|
await ensureChrome(state);
|
|
@@ -34518,7 +34537,7 @@ async function reuseHealthyBrokerIfPossible(state, launchConfig, deps = {}) {
|
|
|
34518
34537
|
const syncTabs = deps.ensureTabsDiscovered ?? ensureTabsDiscovered;
|
|
34519
34538
|
await syncTabs(state).catch(() => {});
|
|
34520
34539
|
const tabs = await (deps.listTabs ?? listRegisteredTabs)(state).catch(() => []);
|
|
34521
|
-
if (state.cdpPort) {
|
|
34540
|
+
if (state.cdpPort && (launchConfig.attachToExistingChrome || state.managedChrome)) {
|
|
34522
34541
|
return true;
|
|
34523
34542
|
}
|
|
34524
34543
|
if (tabs.length > 0) {
|
|
@@ -36159,7 +36178,7 @@ var init_cached_resolution = __esm(() => {
|
|
|
36159
36178
|
});
|
|
36160
36179
|
|
|
36161
36180
|
// .tmp-runtime-src/build-info.generated.ts
|
|
36162
|
-
var BUILD_RELEASE_VERSION = "9.3.
|
|
36181
|
+
var BUILD_RELEASE_VERSION = "9.3.5", BUILD_GIT_SHA = "e1eab1024082", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiOS4zLjUiLCJnaXRfc2hhIjoiZTFlYWIxMDI0MDgyIiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUBlMWVhYjEwMjQwODIiLCJpc3N1ZWRfYXQiOiIyMDI2LTA2LTE1VDA1OjQ1OjE2Ljk3NVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "AyLsG9O87EuwlERZ8PWOwgHjdrQ0VtmVXOsrwVp4hag", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai", BUILD_DEFAULT_PROFILE = "";
|
|
36163
36182
|
|
|
36164
36183
|
// .tmp-runtime-src/version.ts
|
|
36165
36184
|
import { createHash as createHash3 } from "crypto";
|
|
@@ -96608,8 +96627,7 @@ __export(exports_proxy_fetch, {
|
|
|
96608
96627
|
resolveEgressProxy: () => resolveEgressProxy,
|
|
96609
96628
|
proxiedFetchOnce: () => proxiedFetchOnce,
|
|
96610
96629
|
iproyalStickySuffix: () => iproyalStickySuffix,
|
|
96611
|
-
egressProxyArg: () => egressProxyArg
|
|
96612
|
-
PROXYKINGDOM_DEFAULT_URL: () => PROXYKINGDOM_DEFAULT_URL
|
|
96630
|
+
egressProxyArg: () => egressProxyArg
|
|
96613
96631
|
});
|
|
96614
96632
|
import { randomBytes as randomBytes4 } from "node:crypto";
|
|
96615
96633
|
import { readFileSync as readFileSync15, writeFileSync as writeFileSync10, mkdirSync as mkdirSync12, statSync as statSync2 } from "node:fs";
|
|
@@ -96685,10 +96703,11 @@ function resolveEgressProxy(env = process.env) {
|
|
|
96685
96703
|
if (iproyal)
|
|
96686
96704
|
return iproyal;
|
|
96687
96705
|
const override = env.UNBROWSE_PROXYKINGDOM_URL?.trim();
|
|
96688
|
-
|
|
96689
|
-
|
|
96706
|
+
if (!override)
|
|
96707
|
+
return;
|
|
96708
|
+
if (peekFailure(override, "proxy") === "structural")
|
|
96690
96709
|
return;
|
|
96691
|
-
return
|
|
96710
|
+
return override;
|
|
96692
96711
|
}
|
|
96693
96712
|
function egressProxyArg(env = process.env) {
|
|
96694
96713
|
const url = resolveEgressProxy(env);
|
|
@@ -96788,7 +96807,7 @@ async function x402ProxyAuthorization(proxyUrl = resolveEgressProxy()) {
|
|
|
96788
96807
|
};
|
|
96789
96808
|
}
|
|
96790
96809
|
}
|
|
96791
|
-
var STICKY_SESSION_MAX_AGE_MS, _processStickyFallback,
|
|
96810
|
+
var STICKY_SESSION_MAX_AGE_MS, _processStickyFallback, _cachedProxyAuth = null;
|
|
96792
96811
|
var init_proxy_fetch = __esm(() => {
|
|
96793
96812
|
init_x402_fetch();
|
|
96794
96813
|
init_failure_cache();
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"repo_url": "https://github.com/justrach/kuri.git",
|
|
3
3
|
"branch": "adding-extensions",
|
|
4
4
|
"source_sha": "149881254046a20778f642b69f20f0c6468f6fb4",
|
|
5
|
-
"built_at": "2026-06-
|
|
5
|
+
"built_at": "2026-06-15T05:27:00.430Z",
|
|
6
6
|
"binaries": {
|
|
7
7
|
"darwin-arm64": {
|
|
8
8
|
"zig_target": "aarch64-macos",
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
},
|
|
22
22
|
"linux-x64": {
|
|
23
23
|
"zig_target": "x86_64-linux",
|
|
24
|
-
"sha256": "
|
|
24
|
+
"sha256": "4974f2c6b88bf0b1df2538300ced7b68d72ef659f6c650a53c672762bcf42081"
|
|
25
25
|
},
|
|
26
26
|
"win-x64": {
|
|
27
27
|
"zig_target": "x86_64-windows-gnu",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "2e08cda7f244482d066e9827fe34df66fc735dab8bd84cdcba9996c9e11e0bb0",
|
|
29
29
|
"source": "pre-staged"
|
|
30
30
|
}
|
|
31
31
|
},
|
|
@@ -33,22 +33,22 @@
|
|
|
33
33
|
"darwin-arm64": {
|
|
34
34
|
"zig_target": "aarch64-macos",
|
|
35
35
|
"lib": "libkuri_ffi.dylib",
|
|
36
|
-
"sha256": "
|
|
36
|
+
"sha256": "27e63fc916c7d8ba8800b7645b9ea3477999bd22caa2d82a8176e8dfda9ca34f"
|
|
37
37
|
},
|
|
38
38
|
"darwin-x64": {
|
|
39
39
|
"zig_target": "x86_64-macos",
|
|
40
40
|
"lib": "libkuri_ffi.dylib",
|
|
41
|
-
"sha256": "
|
|
41
|
+
"sha256": "61890012c141890b59a3da9553afa066258706f31857d8e1e6c6e6b1fa6d9375"
|
|
42
42
|
},
|
|
43
43
|
"linux-arm64": {
|
|
44
44
|
"zig_target": "aarch64-linux",
|
|
45
45
|
"lib": "libkuri_ffi.so",
|
|
46
|
-
"sha256": "
|
|
46
|
+
"sha256": "292bc542d5812115f17a8867f8409478f185295d713112cef3dd173e250232a2"
|
|
47
47
|
},
|
|
48
48
|
"linux-x64": {
|
|
49
49
|
"zig_target": "x86_64-linux",
|
|
50
50
|
"lib": "libkuri_ffi.so",
|
|
51
|
-
"sha256": "
|
|
51
|
+
"sha256": "b2cd98eceee33955f3bfc6a8bf86877f56c06ff8daddabb65be5babff8c1cd48"
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
}
|
|
Binary file
|