@nntoan/bb-browser 0.13.0
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/LICENSE +21 -0
- package/README.md +249 -0
- package/README.zh-CN.md +196 -0
- package/dist/cdp-monitor.js +535 -0
- package/dist/cdp-monitor.js.map +1 -0
- package/dist/chunk-D4HDZEJT.js +37 -0
- package/dist/chunk-D4HDZEJT.js.map +1 -0
- package/dist/chunk-FSL4RNI6.js +53 -0
- package/dist/chunk-FSL4RNI6.js.map +1 -0
- package/dist/chunk-GG6E44JO.js +110 -0
- package/dist/chunk-GG6E44JO.js.map +1 -0
- package/dist/chunk-XYKHDJST.js +22 -0
- package/dist/chunk-XYKHDJST.js.map +1 -0
- package/dist/cli.js +4228 -0
- package/dist/cli.js.map +1 -0
- package/dist/daemon.js +454 -0
- package/dist/daemon.js.map +1 -0
- package/dist/jq-PS4THHQK.js +9 -0
- package/dist/jq-PS4THHQK.js.map +1 -0
- package/dist/mcp.js +21562 -0
- package/dist/mcp.js.map +1 -0
- package/dist/openclaw-bridge-7BW5M4YX.js +60 -0
- package/dist/openclaw-bridge-7BW5M4YX.js.map +1 -0
- package/extension/background.js +3258 -0
- package/extension/background.js.map +1 -0
- package/extension/buildDomTree.js +1505 -0
- package/extension/content/trace.js +339 -0
- package/extension/content/trace.js.map +1 -0
- package/extension/manifest.json +45 -0
- package/extension/options.html +26 -0
- package/extension/options.js +19 -0
- package/extension/options.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
parseOpenClawJson
|
|
4
|
+
} from "./chunk-FSL4RNI6.js";
|
|
5
|
+
import "./chunk-D4HDZEJT.js";
|
|
6
|
+
|
|
7
|
+
// packages/cli/src/openclaw-bridge.ts
|
|
8
|
+
import { execFileSync } from "child_process";
|
|
9
|
+
var OPENCLAW_EVALUATE_TIMEOUT_MS = 12e4;
|
|
10
|
+
var EXEC_TIMEOUT_BUFFER_MS = 5e3;
|
|
11
|
+
function buildOpenClawArgs(args, timeout) {
|
|
12
|
+
const [subcommand, ...rest] = args;
|
|
13
|
+
if (!subcommand) {
|
|
14
|
+
throw new Error("OpenClaw browser command requires a subcommand");
|
|
15
|
+
}
|
|
16
|
+
return ["openclaw", "browser", subcommand, "--timeout", String(timeout), ...rest];
|
|
17
|
+
}
|
|
18
|
+
function getOpenClawExecTimeout(timeout) {
|
|
19
|
+
return timeout + EXEC_TIMEOUT_BUFFER_MS;
|
|
20
|
+
}
|
|
21
|
+
function runOpenClaw(args, timeout) {
|
|
22
|
+
return execFileSync("npx", buildOpenClawArgs(args, timeout), {
|
|
23
|
+
encoding: "utf-8",
|
|
24
|
+
timeout: getOpenClawExecTimeout(timeout),
|
|
25
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
26
|
+
}).trim();
|
|
27
|
+
}
|
|
28
|
+
function ocGetTabs() {
|
|
29
|
+
const raw = runOpenClaw(["tabs", "--json"], 15e3);
|
|
30
|
+
const data = parseOpenClawJson(raw);
|
|
31
|
+
return (data.tabs || []).filter((tab) => tab.type === "page");
|
|
32
|
+
}
|
|
33
|
+
function ocFindTabByDomain(tabs, domain) {
|
|
34
|
+
return tabs.find((tab) => {
|
|
35
|
+
try {
|
|
36
|
+
const hostname = new URL(tab.url).hostname;
|
|
37
|
+
return hostname === domain || hostname.endsWith(`.${domain}`);
|
|
38
|
+
} catch {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function ocOpenTab(url) {
|
|
44
|
+
const raw = runOpenClaw(["open", url, "--json"], 3e4);
|
|
45
|
+
const data = parseOpenClawJson(raw);
|
|
46
|
+
return data.id || data.targetId;
|
|
47
|
+
}
|
|
48
|
+
function ocEvaluate(targetId, fn) {
|
|
49
|
+
const raw = runOpenClaw(["evaluate", "--fn", fn, "--target-id", targetId], OPENCLAW_EVALUATE_TIMEOUT_MS);
|
|
50
|
+
return parseOpenClawJson(raw);
|
|
51
|
+
}
|
|
52
|
+
export {
|
|
53
|
+
buildOpenClawArgs,
|
|
54
|
+
getOpenClawExecTimeout,
|
|
55
|
+
ocEvaluate,
|
|
56
|
+
ocFindTabByDomain,
|
|
57
|
+
ocGetTabs,
|
|
58
|
+
ocOpenTab
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=openclaw-bridge-7BW5M4YX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../packages/cli/src/openclaw-bridge.ts"],"sourcesContent":["import { execFileSync } from \"node:child_process\";\nimport { parseOpenClawJson } from \"./openclaw-json.js\";\n\nconst OPENCLAW_EVALUATE_TIMEOUT_MS = 120000;\nconst EXEC_TIMEOUT_BUFFER_MS = 5000;\n\nexport interface OCTab {\n targetId: string;\n url: string;\n title: string;\n type: string;\n}\n\nexport function buildOpenClawArgs(args: string[], timeout: number): string[] {\n const [subcommand, ...rest] = args;\n if (!subcommand) {\n throw new Error(\"OpenClaw browser command requires a subcommand\");\n }\n\n return [\"openclaw\", \"browser\", subcommand, \"--timeout\", String(timeout), ...rest];\n}\n\nexport function getOpenClawExecTimeout(timeout: number): number {\n return timeout + EXEC_TIMEOUT_BUFFER_MS;\n}\n\nfunction runOpenClaw(args: string[], timeout: number): string {\n return execFileSync(\"npx\", buildOpenClawArgs(args, timeout), {\n encoding: \"utf-8\",\n timeout: getOpenClawExecTimeout(timeout),\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n }).trim();\n}\n\nexport function ocGetTabs(): OCTab[] {\n const raw = runOpenClaw([\"tabs\", \"--json\"], 15000);\n const data = parseOpenClawJson<{ tabs?: OCTab[] }>(raw);\n return (data.tabs || []).filter((tab: OCTab) => tab.type === \"page\");\n}\n\nexport function ocFindTabByDomain(tabs: OCTab[], domain: string): OCTab | undefined {\n return tabs.find((tab) => {\n try {\n const hostname = new URL(tab.url).hostname;\n return hostname === domain || hostname.endsWith(`.${domain}`);\n } catch {\n return false;\n }\n });\n}\n\nexport function ocOpenTab(url: string): string {\n const raw = runOpenClaw([\"open\", url, \"--json\"], 30000);\n const data = parseOpenClawJson<{ id?: string; targetId?: string }>(raw);\n return data.id || data.targetId;\n}\n\nexport function ocEvaluate(targetId: string, fn: string): unknown {\n const raw = runOpenClaw([\"evaluate\", \"--fn\", fn, \"--target-id\", targetId], OPENCLAW_EVALUATE_TIMEOUT_MS);\n return parseOpenClawJson(raw);\n}\n"],"mappings":";;;;;;;AAAA,SAAS,oBAAoB;AAG7B,IAAM,+BAA+B;AACrC,IAAM,yBAAyB;AASxB,SAAS,kBAAkB,MAAgB,SAA2B;AAC3E,QAAM,CAAC,YAAY,GAAG,IAAI,IAAI;AAC9B,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AAEA,SAAO,CAAC,YAAY,WAAW,YAAY,aAAa,OAAO,OAAO,GAAG,GAAG,IAAI;AAClF;AAEO,SAAS,uBAAuB,SAAyB;AAC9D,SAAO,UAAU;AACnB;AAEA,SAAS,YAAY,MAAgB,SAAyB;AAC5D,SAAO,aAAa,OAAO,kBAAkB,MAAM,OAAO,GAAG;AAAA,IAC3D,UAAU;AAAA,IACV,SAAS,uBAAuB,OAAO;AAAA,IACvC,OAAO,CAAC,QAAQ,QAAQ,MAAM;AAAA,EAChC,CAAC,EAAE,KAAK;AACV;AAEO,SAAS,YAAqB;AACnC,QAAM,MAAM,YAAY,CAAC,QAAQ,QAAQ,GAAG,IAAK;AACjD,QAAM,OAAO,kBAAsC,GAAG;AACtD,UAAQ,KAAK,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAe,IAAI,SAAS,MAAM;AACrE;AAEO,SAAS,kBAAkB,MAAe,QAAmC;AAClF,SAAO,KAAK,KAAK,CAAC,QAAQ;AACxB,QAAI;AACF,YAAM,WAAW,IAAI,IAAI,IAAI,GAAG,EAAE;AAClC,aAAO,aAAa,UAAU,SAAS,SAAS,IAAI,MAAM,EAAE;AAAA,IAC9D,QAAQ;AACN,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;AAEO,SAAS,UAAU,KAAqB;AAC7C,QAAM,MAAM,YAAY,CAAC,QAAQ,KAAK,QAAQ,GAAG,GAAK;AACtD,QAAM,OAAO,kBAAsD,GAAG;AACtE,SAAO,KAAK,MAAM,KAAK;AACzB;AAEO,SAAS,WAAW,UAAkB,IAAqB;AAChE,QAAM,MAAM,YAAY,CAAC,YAAY,QAAQ,IAAI,eAAe,QAAQ,GAAG,4BAA4B;AACvG,SAAO,kBAAkB,GAAG;AAC9B;","names":[]}
|