bb-browser 0.8.3 → 0.10.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,53 @@
1
+ #!/usr/bin/env node
2
+
3
+ // packages/cli/src/openclaw-json.ts
4
+ function buildPreview(raw) {
5
+ return raw.length > 200 ? `${raw.slice(0, 200)}...` : raw;
6
+ }
7
+ function tryParseJson(raw) {
8
+ try {
9
+ return { ok: true, value: JSON.parse(raw) };
10
+ } catch (error) {
11
+ return {
12
+ ok: false,
13
+ error: error instanceof Error ? error : new Error(String(error))
14
+ };
15
+ }
16
+ }
17
+ function tryParseLastJsonLineBlock(raw) {
18
+ const lines = raw.split(/\r?\n/);
19
+ for (let end = lines.length; end > 0; end -= 1) {
20
+ for (let start = end - 1; start >= 0; start -= 1) {
21
+ const candidate = lines.slice(start, end).join("\n").trim();
22
+ if (!candidate) {
23
+ continue;
24
+ }
25
+ const parsed = tryParseJson(candidate);
26
+ if (parsed.ok) {
27
+ return parsed;
28
+ }
29
+ }
30
+ }
31
+ return null;
32
+ }
33
+ function parseOpenClawJson(raw) {
34
+ const trimmed = raw.trim();
35
+ if (!trimmed) {
36
+ throw new Error("OpenClaw returned empty output");
37
+ }
38
+ const direct = tryParseJson(trimmed);
39
+ if (direct.ok) {
40
+ return direct.value;
41
+ }
42
+ const lineBlock = tryParseLastJsonLineBlock(trimmed);
43
+ if (lineBlock) {
44
+ return lineBlock.value;
45
+ }
46
+ throw new Error(`Failed to parse OpenClaw JSON output: ${direct.error.message}
47
+ Raw (preview): ${buildPreview(trimmed)}`);
48
+ }
49
+
50
+ export {
51
+ parseOpenClawJson
52
+ };
53
+ //# sourceMappingURL=chunk-FSL4RNI6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../packages/cli/src/openclaw-json.ts"],"sourcesContent":["interface ParseSuccess<T> {\n ok: true;\n value: T;\n}\n\ninterface ParseFailure {\n ok: false;\n error: Error;\n}\n\nfunction buildPreview(raw: string): string {\n return raw.length > 200 ? `${raw.slice(0, 200)}...` : raw;\n}\n\nfunction tryParseJson<T>(raw: string): ParseSuccess<T> | ParseFailure {\n try {\n return { ok: true, value: JSON.parse(raw) as T };\n } catch (error) {\n return {\n ok: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n}\n\nfunction tryParseLastJsonLineBlock<T>(raw: string): ParseSuccess<T> | null {\n const lines = raw.split(/\\r?\\n/);\n\n // OpenClaw diagnostics are emitted as extra lines around the JSON payload,\n // so prefer the last contiguous block of lines that parses cleanly as JSON.\n for (let end = lines.length; end > 0; end -= 1) {\n for (let start = end - 1; start >= 0; start -= 1) {\n const candidate = lines.slice(start, end).join(\"\\n\").trim();\n if (!candidate) {\n continue;\n }\n\n const parsed = tryParseJson<T>(candidate);\n if (parsed.ok) {\n return parsed;\n }\n }\n }\n\n return null;\n}\n\nexport function parseOpenClawJson<T>(raw: string): T {\n const trimmed = raw.trim();\n if (!trimmed) {\n throw new Error(\"OpenClaw returned empty output\");\n }\n\n const direct = tryParseJson<T>(trimmed);\n if (direct.ok) {\n return direct.value;\n }\n\n const lineBlock = tryParseLastJsonLineBlock<T>(trimmed);\n if (lineBlock) {\n return lineBlock.value;\n }\n\n throw new Error(`Failed to parse OpenClaw JSON output: ${direct.error.message}\\nRaw (preview): ${buildPreview(trimmed)}`);\n}\n"],"mappings":";;;AAUA,SAAS,aAAa,KAAqB;AACzC,SAAO,IAAI,SAAS,MAAM,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ;AACxD;AAEA,SAAS,aAAgB,KAA6C;AACpE,MAAI;AACF,WAAO,EAAE,IAAI,MAAM,OAAO,KAAK,MAAM,GAAG,EAAO;AAAA,EACjD,SAAS,OAAO;AACd,WAAO;AAAA,MACL,IAAI;AAAA,MACJ,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,IACjE;AAAA,EACF;AACF;AAEA,SAAS,0BAA6B,KAAqC;AACzE,QAAM,QAAQ,IAAI,MAAM,OAAO;AAI/B,WAAS,MAAM,MAAM,QAAQ,MAAM,GAAG,OAAO,GAAG;AAC9C,aAAS,QAAQ,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG;AAChD,YAAM,YAAY,MAAM,MAAM,OAAO,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK;AAC1D,UAAI,CAAC,WAAW;AACd;AAAA,MACF;AAEA,YAAM,SAAS,aAAgB,SAAS;AACxC,UAAI,OAAO,IAAI;AACb,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,kBAAqB,KAAgB;AACnD,QAAM,UAAU,IAAI,KAAK;AACzB,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,gCAAgC;AAAA,EAClD;AAEA,QAAM,SAAS,aAAgB,OAAO;AACtC,MAAI,OAAO,IAAI;AACb,WAAO,OAAO;AAAA,EAChB;AAEA,QAAM,YAAY,0BAA6B,OAAO;AACtD,MAAI,WAAW;AACb,WAAO,UAAU;AAAA,EACnB;AAEA,QAAM,IAAI,MAAM,yCAAyC,OAAO,MAAM,OAAO;AAAA,iBAAoB,aAAa,OAAO,CAAC,EAAE;AAC1H;","names":[]}