unbrowse 9.3.3 → 9.3.4
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 +34 -15
- package/runtime/mcp.js +34 -15
- 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
|
@@ -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.4", BUILD_GIT_SHA = "bd3c57c942a6", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiOS4zLjQiLCJnaXRfc2hhIjoiYmQzYzU3Yzk0MmE2IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUBiZDNjNTdjOTQyYTYiLCJpc3N1ZWRfYXQiOiIyMDI2LTA2LTE1VDA0OjMwOjQ2Ljk5M1oifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "krTVf83pB30lX90qYQrOzkj61TOClxaahv1pA3BaHLs", 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) {
|
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.4", BUILD_GIT_SHA = "bd3c57c942a6", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiOS4zLjQiLCJnaXRfc2hhIjoiYmQzYzU3Yzk0MmE2IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUBiZDNjNTdjOTQyYTYiLCJpc3N1ZWRfYXQiOiIyMDI2LTA2LTE1VDA0OjMwOjQ2Ljk5M1oifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "krTVf83pB30lX90qYQrOzkj61TOClxaahv1pA3BaHLs", 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";
|
|
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-15T04:13:38.802Z",
|
|
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": "454bf8b1a9262b807c4f574ad80e92de3b7a37ab74f01a085731e4c5bfbe4c0b"
|
|
25
25
|
},
|
|
26
26
|
"win-x64": {
|
|
27
27
|
"zig_target": "x86_64-windows-gnu",
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "cb47a01bd92c780e92a4e4d297404ec5db4ebd69b02b19892037bbf8df05e84a",
|
|
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": "d1cb0e8ebed6f465c623e5c9e54524fc75f39a08d55e8edd3a8a1b58ebb0f984"
|
|
37
37
|
},
|
|
38
38
|
"darwin-x64": {
|
|
39
39
|
"zig_target": "x86_64-macos",
|
|
40
40
|
"lib": "libkuri_ffi.dylib",
|
|
41
|
-
"sha256": "
|
|
41
|
+
"sha256": "7a2d65d52f3379e74e65357e144fba1a705b8f7c387d877bb3b0a5c595a7e64d"
|
|
42
42
|
},
|
|
43
43
|
"linux-arm64": {
|
|
44
44
|
"zig_target": "aarch64-linux",
|
|
45
45
|
"lib": "libkuri_ffi.so",
|
|
46
|
-
"sha256": "
|
|
46
|
+
"sha256": "1d7983dab291a8fdbcafb479f42fcbf8a3fbf7abcc7bbfd899cc4a6fdd3ec64c"
|
|
47
47
|
},
|
|
48
48
|
"linux-x64": {
|
|
49
49
|
"zig_target": "x86_64-linux",
|
|
50
50
|
"lib": "libkuri_ffi.so",
|
|
51
|
-
"sha256": "
|
|
51
|
+
"sha256": "031bf0228b4c7585ccc66af458ce09bbd310522c6864e1b400ac7b2604e1018e"
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
}
|
|
Binary file
|