unbrowse 3.2.2 → 3.2.3-experiments.3490cfb
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/cli.js +43 -36
- package/dist/mcp.js +11 -5
- package/dist/server.js +475 -265
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -31,7 +31,7 @@ var __promiseAll = (args) => Promise.all(args);
|
|
|
31
31
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
32
32
|
|
|
33
33
|
// ../../src/build-info.generated.ts
|
|
34
|
-
var BUILD_RELEASE_VERSION = "3.2.
|
|
34
|
+
var BUILD_RELEASE_VERSION = "3.2.3-experiments.3490cfb", BUILD_GIT_SHA = "3490cfbd21a7", BUILD_CODE_HASH = "1488fc1d92b7", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy4yLjMtZXhwZXJpbWVudHMuMzQ5MGNmYiIsImdpdF9zaGEiOiIzNDkwY2ZiZDIxYTciLCJjb2RlX2hhc2giOiIxNDg4ZmMxZDkyYjciLCJ0cmFjZV92ZXJzaW9uIjoiMTQ4OGZjMWQ5MmI3QDM0OTBjZmJkMjFhNyIsImlzc3VlZF9hdCI6IjIwMjYtMDQtMDZUMTY6MzY6NTMuNzY4WiJ9", BUILD_RELEASE_MANIFEST_SIGNATURE = "pQ7ALr5ZS7ieK9CJOR3Gh80nwUzc38LanwrEHHYS1nc", BUILD_DEFAULT_BACKEND_URL = "https://unbrowse-backend-experiments.lewis-6d8.workers.dev";
|
|
35
35
|
|
|
36
36
|
// ../../src/version.ts
|
|
37
37
|
import { createHash } from "crypto";
|
|
@@ -679,23 +679,6 @@ var init_telemetry = __esm(() => {
|
|
|
679
679
|
autoFiledKeys = new Set;
|
|
680
680
|
});
|
|
681
681
|
|
|
682
|
-
// ../../src/runtime/browser-access.ts
|
|
683
|
-
var init_browser_access = () => {};
|
|
684
|
-
|
|
685
|
-
// ../../src/capture/index.ts
|
|
686
|
-
import { nanoid as nanoid2 } from "nanoid";
|
|
687
|
-
var activeTabRegistry, interceptorInjectedTabs, cdpDocStartTabs, cdpCapturedHeaders;
|
|
688
|
-
var init_capture = __esm(() => {
|
|
689
|
-
init_client2();
|
|
690
|
-
init_domain();
|
|
691
|
-
init_logger();
|
|
692
|
-
init_browser_access();
|
|
693
|
-
activeTabRegistry = new Set;
|
|
694
|
-
interceptorInjectedTabs = new Set;
|
|
695
|
-
cdpDocStartTabs = new Set;
|
|
696
|
-
cdpCapturedHeaders = new Map;
|
|
697
|
-
});
|
|
698
|
-
|
|
699
682
|
// ../../src/transform/index.ts
|
|
700
683
|
var EPHEMERAL_KEYS;
|
|
701
684
|
var init_transform = __esm(() => {
|
|
@@ -704,7 +687,7 @@ var init_transform = __esm(() => {
|
|
|
704
687
|
|
|
705
688
|
// ../../src/debug-trace.ts
|
|
706
689
|
import { join as join6 } from "node:path";
|
|
707
|
-
import { nanoid as
|
|
690
|
+
import { nanoid as nanoid2 } from "nanoid";
|
|
708
691
|
var TRACE_DIR;
|
|
709
692
|
var init_debug_trace = __esm(() => {
|
|
710
693
|
TRACE_DIR = process.env.TRACES_DIR ?? join6(process.cwd(), "traces");
|
|
@@ -719,7 +702,7 @@ var init_description_prompt = __esm(() => {
|
|
|
719
702
|
init_sanitize();
|
|
720
703
|
});
|
|
721
704
|
// ../../src/reverse-engineer/index.ts
|
|
722
|
-
import { nanoid as
|
|
705
|
+
import { nanoid as nanoid3 } from "nanoid";
|
|
723
706
|
var ALLOWED_METHODS, STRIP_HEADERS, REPLAY_HEADER_EXACT, SAFE_HEADERS, AD_SCHEMA_KEYS;
|
|
724
707
|
var init_reverse_engineer = __esm(() => {
|
|
725
708
|
init_transform();
|
|
@@ -791,19 +774,6 @@ var init_reverse_engineer = __esm(() => {
|
|
|
791
774
|
]);
|
|
792
775
|
});
|
|
793
776
|
|
|
794
|
-
// ../../src/reverse-engineer/bundle-scanner.ts
|
|
795
|
-
var init_bundle_scanner = __esm(() => {
|
|
796
|
-
init_logger();
|
|
797
|
-
});
|
|
798
|
-
|
|
799
|
-
// ../../src/reverse-engineer/token-sources.ts
|
|
800
|
-
var init_token_sources = () => {};
|
|
801
|
-
|
|
802
|
-
// ../../src/execution/token-resolver.ts
|
|
803
|
-
var init_token_resolver = __esm(() => {
|
|
804
|
-
init_token_sources();
|
|
805
|
-
});
|
|
806
|
-
|
|
807
777
|
// ../../src/vault/index.ts
|
|
808
778
|
import { join as join7 } from "path";
|
|
809
779
|
import { homedir as homedir5 } from "os";
|
|
@@ -834,6 +804,38 @@ var init_vault = __esm(async () => {
|
|
|
834
804
|
vaultLock = Promise.resolve();
|
|
835
805
|
});
|
|
836
806
|
|
|
807
|
+
// ../../src/runtime/browser-access.ts
|
|
808
|
+
var init_browser_access = () => {};
|
|
809
|
+
|
|
810
|
+
// ../../src/capture/index.ts
|
|
811
|
+
import { nanoid as nanoid4 } from "nanoid";
|
|
812
|
+
var activeTabRegistry, interceptorInjectedTabs, cdpDocStartTabs, cdpCapturedHeaders;
|
|
813
|
+
var init_capture = __esm(async () => {
|
|
814
|
+
init_client2();
|
|
815
|
+
init_domain();
|
|
816
|
+
init_logger();
|
|
817
|
+
init_reverse_engineer();
|
|
818
|
+
init_browser_access();
|
|
819
|
+
await init_vault();
|
|
820
|
+
activeTabRegistry = new Set;
|
|
821
|
+
interceptorInjectedTabs = new Set;
|
|
822
|
+
cdpDocStartTabs = new Set;
|
|
823
|
+
cdpCapturedHeaders = new Map;
|
|
824
|
+
});
|
|
825
|
+
|
|
826
|
+
// ../../src/reverse-engineer/bundle-scanner.ts
|
|
827
|
+
var init_bundle_scanner = __esm(() => {
|
|
828
|
+
init_logger();
|
|
829
|
+
});
|
|
830
|
+
|
|
831
|
+
// ../../src/reverse-engineer/token-sources.ts
|
|
832
|
+
var init_token_sources = () => {};
|
|
833
|
+
|
|
834
|
+
// ../../src/execution/token-resolver.ts
|
|
835
|
+
var init_token_resolver = __esm(() => {
|
|
836
|
+
init_token_sources();
|
|
837
|
+
});
|
|
838
|
+
|
|
837
839
|
// ../../src/auth/index.ts
|
|
838
840
|
var init_auth = __esm(async () => {
|
|
839
841
|
init_client2();
|
|
@@ -1018,8 +1020,6 @@ var init_compile = () => {};
|
|
|
1018
1020
|
import { nanoid as nanoid6 } from "nanoid";
|
|
1019
1021
|
var VALID_VERIFICATION_STATUSES, STOPWORDS;
|
|
1020
1022
|
var init_execution = __esm(async () => {
|
|
1021
|
-
init_capture();
|
|
1022
|
-
init_capture();
|
|
1023
1023
|
init_reverse_engineer();
|
|
1024
1024
|
init_bundle_scanner();
|
|
1025
1025
|
init_token_resolver();
|
|
@@ -1043,6 +1043,8 @@ var init_execution = __esm(async () => {
|
|
|
1043
1043
|
init_compile();
|
|
1044
1044
|
init_publish();
|
|
1045
1045
|
await __promiseAll([
|
|
1046
|
+
init_capture(),
|
|
1047
|
+
init_capture(),
|
|
1046
1048
|
init_vault(),
|
|
1047
1049
|
init_auth(),
|
|
1048
1050
|
init_indexer(),
|
|
@@ -3385,7 +3387,8 @@ async function cmdResolve(flags) {
|
|
|
3385
3387
|
params: { endpoint_id: endpointId, ...extraParams },
|
|
3386
3388
|
intent,
|
|
3387
3389
|
projection: { raw: true },
|
|
3388
|
-
...flags["confirm-third-party-terms"] ? { confirm_third_party_terms: true } : {}
|
|
3390
|
+
...flags["confirm-third-party-terms"] ? { confirm_third_party_terms: true } : {},
|
|
3391
|
+
...flags["skip-robots"] ? { skip_robots_check: true } : {}
|
|
3389
3392
|
};
|
|
3390
3393
|
}, endpointNeedsThirdPartyTermsConfirmation = function(endpoint) {
|
|
3391
3394
|
return endpoint.requires_third_party_terms_confirmation === true;
|
|
@@ -3417,6 +3420,8 @@ async function cmdResolve(flags) {
|
|
|
3417
3420
|
body.confirm_third_party_terms = true;
|
|
3418
3421
|
if (flags["force-capture"])
|
|
3419
3422
|
body.force_capture = true;
|
|
3423
|
+
if (flags["skip-robots"])
|
|
3424
|
+
body.skip_robots_check = true;
|
|
3420
3425
|
body.projection = { raw: true };
|
|
3421
3426
|
const startedAt = Date.now();
|
|
3422
3427
|
async function resolveOnce(message = "Still working. Searching cached routes...") {
|
|
@@ -3626,6 +3631,8 @@ async function cmdExecute(flags) {
|
|
|
3626
3631
|
body.confirm_unsafe = true;
|
|
3627
3632
|
if (flags["confirm-third-party-terms"])
|
|
3628
3633
|
body.confirm_third_party_terms = true;
|
|
3634
|
+
if (flags["skip-robots"])
|
|
3635
|
+
body.skip_robots_check = true;
|
|
3629
3636
|
body.projection = { raw: true };
|
|
3630
3637
|
let result = await withPendingNotice(api2("POST", `/v1/skills/${skillId}/execute`, body), "Still working. This endpoint may require browser replay or first-time auth/capture setup.");
|
|
3631
3638
|
if (isResolveSuccessResult(result)) {
|
package/dist/mcp.js
CHANGED
|
@@ -225,12 +225,12 @@ import { dirname, join, parse } from "path";
|
|
|
225
225
|
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
226
226
|
|
|
227
227
|
// ../../src/build-info.generated.ts
|
|
228
|
-
var BUILD_RELEASE_VERSION = "3.2.
|
|
229
|
-
var BUILD_GIT_SHA = "
|
|
228
|
+
var BUILD_RELEASE_VERSION = "3.2.3-experiments.3490cfb";
|
|
229
|
+
var BUILD_GIT_SHA = "3490cfbd21a7";
|
|
230
230
|
var BUILD_CODE_HASH = "1488fc1d92b7";
|
|
231
|
-
var BUILD_RELEASE_MANIFEST_BASE64 = "
|
|
232
|
-
var BUILD_RELEASE_MANIFEST_SIGNATURE = "
|
|
233
|
-
var BUILD_DEFAULT_BACKEND_URL = "https://
|
|
231
|
+
var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy4yLjMtZXhwZXJpbWVudHMuMzQ5MGNmYiIsImdpdF9zaGEiOiIzNDkwY2ZiZDIxYTciLCJjb2RlX2hhc2giOiIxNDg4ZmMxZDkyYjciLCJ0cmFjZV92ZXJzaW9uIjoiMTQ4OGZjMWQ5MmI3QDM0OTBjZmJkMjFhNyIsImlzc3VlZF9hdCI6IjIwMjYtMDQtMDZUMTY6MzY6NTMuNzY4WiJ9";
|
|
232
|
+
var BUILD_RELEASE_MANIFEST_SIGNATURE = "pQ7ALr5ZS7ieK9CJOR3Gh80nwUzc38LanwrEHHYS1nc";
|
|
233
|
+
var BUILD_DEFAULT_BACKEND_URL = "https://unbrowse-backend-experiments.lewis-6d8.workers.dev";
|
|
234
234
|
|
|
235
235
|
// ../../src/version.ts
|
|
236
236
|
var MODULE_DIR = dirname(fileURLToPath2(import.meta.url));
|
|
@@ -1658,6 +1658,7 @@ var tools = [
|
|
|
1658
1658
|
dry_run: { type: "boolean", description: "Preview unsafe calls without applying them." },
|
|
1659
1659
|
confirm_third_party_terms: { type: "boolean", description: "Explicitly confirm policy-sensitive third-party terms risk for flagged domains/actions." },
|
|
1660
1660
|
force_capture: { type: "boolean", description: "Bypass cache and re-capture the exact URL." },
|
|
1661
|
+
skip_robots: { type: "boolean", description: "Bypass robots.txt compliance check." },
|
|
1661
1662
|
raw: { type: "boolean", description: "Keep raw projection enabled. Default true." },
|
|
1662
1663
|
schema: { type: "boolean", description: "Return a schema tree instead of data." },
|
|
1663
1664
|
path: { type: "string", description: "Drill into the result before returning it, e.g. data.items[] ." },
|
|
@@ -1692,6 +1693,8 @@ var tools = [
|
|
|
1692
1693
|
body.confirm_third_party_terms = true;
|
|
1693
1694
|
if (args.force_capture === true)
|
|
1694
1695
|
body.force_capture = true;
|
|
1696
|
+
if (args.skip_robots === true)
|
|
1697
|
+
body.skip_robots_check = true;
|
|
1695
1698
|
let result = await api2("POST", "/v1/intent/resolve", body);
|
|
1696
1699
|
const authError = resolveNestedError(result);
|
|
1697
1700
|
if (authError === "auth_required") {
|
|
@@ -1725,6 +1728,7 @@ var tools = [
|
|
|
1725
1728
|
dry_run: { type: "boolean", description: "Preview unsafe calls without applying them." },
|
|
1726
1729
|
confirm_unsafe: { type: "boolean", description: "Confirm mutation if the endpoint is unsafe." },
|
|
1727
1730
|
confirm_third_party_terms: { type: "boolean", description: "Explicitly confirm policy-sensitive third-party terms risk for flagged domains/actions." },
|
|
1731
|
+
skip_robots: { type: "boolean", description: "Bypass robots.txt compliance check." },
|
|
1728
1732
|
raw: { type: "boolean", description: "Keep raw projection enabled. Default true." },
|
|
1729
1733
|
schema: { type: "boolean", description: "Return a schema tree instead of data." },
|
|
1730
1734
|
path: { type: "string", description: "Drill into the result before returning it, e.g. data.items[] ." },
|
|
@@ -1754,6 +1758,8 @@ var tools = [
|
|
|
1754
1758
|
body.confirm_unsafe = true;
|
|
1755
1759
|
if (args.confirm_third_party_terms === true)
|
|
1756
1760
|
body.confirm_third_party_terms = true;
|
|
1761
|
+
if (args.skip_robots === true)
|
|
1762
|
+
body.skip_robots_check = true;
|
|
1757
1763
|
const result = await api2("POST", `/v1/skills/${args.skill}/execute`, body);
|
|
1758
1764
|
const nestedError = resolveNestedError(result);
|
|
1759
1765
|
recordImpactForTool("execute", result, args);
|