bb-browser 0.5.2 → 0.7.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.
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+ import "./chunk-D4HDZEJT.js";
3
+
4
+ // packages/cli/src/openclaw-bridge.ts
5
+ import { execFileSync } from "child_process";
6
+ function runOpenClaw(args, timeout) {
7
+ return execFileSync("npx", ["openclaw", "browser", ...args], {
8
+ encoding: "utf-8",
9
+ timeout,
10
+ stdio: ["pipe", "pipe", "pipe"]
11
+ }).trim();
12
+ }
13
+ function ocGetTabs() {
14
+ const raw = runOpenClaw(["tabs", "--json"], 15e3);
15
+ const data = JSON.parse(raw);
16
+ return (data.tabs || []).filter((tab) => tab.type === "page");
17
+ }
18
+ function ocFindTabByDomain(tabs, domain) {
19
+ return tabs.find((tab) => {
20
+ try {
21
+ const hostname = new URL(tab.url).hostname;
22
+ return hostname === domain || hostname.endsWith(`.${domain}`);
23
+ } catch {
24
+ return false;
25
+ }
26
+ });
27
+ }
28
+ function ocOpenTab(url) {
29
+ const raw = runOpenClaw(["open", url, "--json"], 3e4);
30
+ const data = JSON.parse(raw);
31
+ return data.id || data.targetId;
32
+ }
33
+ function ocEvaluate(targetId, fn) {
34
+ const raw = runOpenClaw(["evaluate", "--fn", fn, "--target-id", targetId], 3e4);
35
+ return JSON.parse(raw);
36
+ }
37
+ export {
38
+ ocEvaluate,
39
+ ocFindTabByDomain,
40
+ ocGetTabs,
41
+ ocOpenTab
42
+ };
43
+ //# sourceMappingURL=openclaw-bridge-P3G4KGYM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../packages/cli/src/openclaw-bridge.ts"],"sourcesContent":["import { execFileSync } from \"node:child_process\";\n\nexport interface OCTab {\n targetId: string;\n url: string;\n title: string;\n type: string;\n}\n\nfunction runOpenClaw(args: string[], timeout: number): string {\n return execFileSync(\"npx\", [\"openclaw\", \"browser\", ...args], {\n encoding: \"utf-8\",\n timeout,\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n }).trim();\n}\n\nexport function ocGetTabs(): OCTab[] {\n const raw = runOpenClaw([\"tabs\", \"--json\"], 15000);\n const data = JSON.parse(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 = JSON.parse(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], 30000);\n return JSON.parse(raw);\n}\n"],"mappings":";;;;AAAA,SAAS,oBAAoB;AAS7B,SAAS,YAAY,MAAgB,SAAyB;AAC5D,SAAO,aAAa,OAAO,CAAC,YAAY,WAAW,GAAG,IAAI,GAAG;AAAA,IAC3D,UAAU;AAAA,IACV;AAAA,IACA,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,KAAK,MAAM,GAAG;AAC3B,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,KAAK,MAAM,GAAG;AAC3B,SAAO,KAAK,MAAM,KAAK;AACzB;AAEO,SAAS,WAAW,UAAkB,IAAqB;AAChE,QAAM,MAAM,YAAY,CAAC,YAAY,QAAQ,IAAI,eAAe,QAAQ,GAAG,GAAK;AAChF,SAAO,KAAK,MAAM,GAAG;AACvB;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bb-browser",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "description": "Your browser is the API. CLI + MCP server for AI agents to control Chrome with your login state.",
5
5
  "type": "module",
6
6
  "bin": {