cbrowser 18.18.4 → 18.21.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/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@
16
16
  * await browser.close();
17
17
  * ```
18
18
  */
19
- export { CBrowser } from "./browser.js";
19
+ export { CBrowser, launchBrowserWithFallback, isBrowserNotInstalledError, installPlaywrightBrowsers, getBrowserInstallErrorMessage } from "./browser.js";
20
20
  export { getDefaultConfig, getPaths, ensureDirectories, mergeConfig } from "./config.js";
21
21
  export type { CBrowserConfig, CBrowserPaths, BrowserType } from "./config.js";
22
22
  export * from "./types.js";
@@ -38,4 +38,6 @@ export * from "./values/index.js";
38
38
  export { registerAllPublicTools, registerBaseTools, registerPersonaCreationTools, registerAskUserTool, registerEnterpriseStubs, registerNavigationTools, registerInteractionTools, registerExtractionTools, registerAssertionTools, registerAnalysisTools, registerSessionTools, registerHealingTools, registerVisualTestingTools, registerTestingTools, registerBugAnalysisTools, registerPersonaComparisonTools, registerCognitiveTools, registerValuesTools, registerPerformanceTools, registerAuditTools, registerBrowserManagementTools, registerRemediationTools, registerLlmsTxtTools, } from "./mcp-tools/index.js";
39
39
  export type { ToolRegistrationContext } from "./mcp-tools/index.js";
40
40
  export * from "./security/index.js";
41
+ export { connectToLightpanda, launchWithLightpandaFallback, getLightpandaStatus, isLightpandaConfigured, shouldUseLightpanda, getLightpandaConfig, LIGHTPANDA_SETUP_GUIDE, LIGHTPANDA_LOCAL_ENDPOINT, LIGHTPANDA_CLOUD_ENDPOINT, } from "./lightpanda.js";
42
+ export type { LightpandaConfig, LightpandaConnectionResult } from "./lightpanda.js";
41
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzF,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9E,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGnE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIvH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,wBAAwB,CAAC;AAGvC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG1E,cAAc,oBAAoB,CAAC;AAInC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,4BAA4B,CAAC;AAI3C,cAAc,mBAAmB,CAAC;AAIlC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB,EAEvB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AACzJ,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzF,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9E,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGnE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAIvH,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,wBAAwB,CAAC;AAGvC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG1E,cAAc,oBAAoB,CAAC;AAInC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,4BAA4B,CAAC;AAI3C,cAAc,mBAAmB,CAAC;AAIlC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB,EAEvB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,cAAc,qBAAqB,CAAC;AAIpC,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@
16
16
  * await browser.close();
17
17
  * ```
18
18
  */
19
- export { CBrowser } from "./browser.js";
19
+ export { CBrowser, launchBrowserWithFallback, isBrowserNotInstalledError, installPlaywrightBrowsers, getBrowserInstallErrorMessage } from "./browser.js";
20
20
  export { getDefaultConfig, getPaths, ensureDirectories, mergeConfig } from "./config.js";
21
21
  export * from "./types.js";
22
22
  export { BUILTIN_PERSONAS, registerPersonas } from "./personas.js";
@@ -56,4 +56,7 @@ export { registerAllPublicTools, registerBaseTools, registerPersonaCreationTools
56
56
  registerNavigationTools, registerInteractionTools, registerExtractionTools, registerAssertionTools, registerAnalysisTools, registerSessionTools, registerHealingTools, registerVisualTestingTools, registerTestingTools, registerBugAnalysisTools, registerPersonaComparisonTools, registerCognitiveTools, registerValuesTools, registerPerformanceTools, registerAuditTools, registerBrowserManagementTools, registerRemediationTools, registerLlmsTxtTools, } from "./mcp-tools/index.js";
57
57
  // Security module (v18.0.0) - Request signing and audit logging
58
58
  export * from "./security/index.js";
59
+ // Lightpanda Integration (v18.19.0) - High-performance headless browser
60
+ // Uses CDP connection for 11x faster, 9x less memory headless browsing
61
+ export { connectToLightpanda, launchWithLightpandaFallback, getLightpandaStatus, isLightpandaConfigured, shouldUseLightpanda, getLightpandaConfig, LIGHTPANDA_SETUP_GUIDE, LIGHTPANDA_LOCAL_ENDPOINT, LIGHTPANDA_CLOUD_ENDPOINT, } from "./lightpanda.js";
59
62
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzF,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,yEAAyE;AACzE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEvH,2BAA2B;AAC3B,wBAAwB;AACxB,cAAc,mBAAmB,CAAC;AAElC,iBAAiB;AACjB,cAAc,oBAAoB,CAAC;AAEnC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,+BAA+B;AAC/B,cAAc,wBAAwB,CAAC;AAEvC,4BAA4B;AAC5B,cAAc,qBAAqB,CAAC;AAEpC,qBAAqB;AACrB,cAAc,wBAAwB,CAAC;AAEvC,6BAA6B;AAC7B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE1E,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,6CAA6C;AAC7C,uDAAuD;AACvD,cAAc,oBAAoB,CAAC;AAEnC,sEAAsE;AACtE,cAAc,4BAA4B,CAAC;AAE3C,2EAA2E;AAC3E,oEAAoE;AACpE,cAAc,mBAAmB,CAAC;AAElC,sDAAsD;AACtD,6DAA6D;AAC7D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB;AACvB,8CAA8C;AAC9C,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,gEAAgE;AAChE,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAC;AACzJ,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzF,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,yEAAyE;AACzE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEvH,2BAA2B;AAC3B,wBAAwB;AACxB,cAAc,mBAAmB,CAAC;AAElC,iBAAiB;AACjB,cAAc,oBAAoB,CAAC;AAEnC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,+BAA+B;AAC/B,cAAc,wBAAwB,CAAC;AAEvC,4BAA4B;AAC5B,cAAc,qBAAqB,CAAC;AAEpC,qBAAqB;AACrB,cAAc,wBAAwB,CAAC;AAEvC,6BAA6B;AAC7B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE1E,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,6CAA6C;AAC7C,uDAAuD;AACvD,cAAc,oBAAoB,CAAC;AAEnC,sEAAsE;AACtE,cAAc,4BAA4B,CAAC;AAE3C,2EAA2E;AAC3E,oEAAoE;AACpE,cAAc,mBAAmB,CAAC;AAElC,sDAAsD;AACtD,6DAA6D;AAC7D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,4BAA4B,EAC5B,mBAAmB,EACnB,uBAAuB;AACvB,8CAA8C;AAC9C,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,gEAAgE;AAChE,cAAc,qBAAqB,CAAC;AAEpC,wEAAwE;AACxE,uEAAuE;AACvE,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * CBrowser - Cognitive Browser Automation
3
+ * Copyright 2026 Alexandria Eden alexandria.shai.eden@gmail.com
4
+ * Learn more at https://cbrowser.ai - MIT License
5
+ */
6
+ /**
7
+ * Lightpanda Integration
8
+ *
9
+ * Lightpanda is a high-performance headless browser written in Zig.
10
+ * It's 11x faster and uses 9x less memory than Chrome headless.
11
+ *
12
+ * This module provides CDP-based integration with Playwright, allowing
13
+ * CBrowser to use Lightpanda as an alternative browser backend.
14
+ *
15
+ * @see https://lightpanda.io/
16
+ * @since 18.19.0
17
+ */
18
+ import { chromium, type Browser } from "playwright";
19
+ /**
20
+ * Lightpanda connection configuration
21
+ */
22
+ export interface LightpandaConfig {
23
+ /** WebSocket endpoint (e.g., ws://127.0.0.1:9222, wss://cloud.lightpanda.io/ws) */
24
+ endpoint?: string;
25
+ /** API token for cloud connections */
26
+ token?: string;
27
+ /** Connection timeout in ms (default: 30000) */
28
+ timeout?: number;
29
+ }
30
+ /**
31
+ * Lightpanda connection result
32
+ */
33
+ export interface LightpandaConnectionResult {
34
+ success: boolean;
35
+ browser?: Browser;
36
+ endpoint?: string;
37
+ error?: string;
38
+ isCloud: boolean;
39
+ }
40
+ /**
41
+ * Default local endpoint for Lightpanda
42
+ */
43
+ export declare const LIGHTPANDA_LOCAL_ENDPOINT = "ws://127.0.0.1:9222";
44
+ /**
45
+ * Cloud endpoint template
46
+ */
47
+ export declare const LIGHTPANDA_CLOUD_ENDPOINT = "wss://euwest.cloud.lightpanda.io/ws";
48
+ /**
49
+ * Get Lightpanda configuration from environment variables
50
+ */
51
+ export declare function getLightpandaConfig(): LightpandaConfig;
52
+ /**
53
+ * Check if Lightpanda is configured and should be used
54
+ */
55
+ export declare function isLightpandaConfigured(): boolean;
56
+ /**
57
+ * Check if Lightpanda should be preferred for the current operation
58
+ *
59
+ * Lightpanda is preferred for:
60
+ * - Headless operations (no GUI needed)
61
+ * - Non-visual audits (agent-ready, empathy audit, etc.)
62
+ * - Performance-critical batch operations
63
+ *
64
+ * Lightpanda is NOT suitable for:
65
+ * - Visual regression testing (rendering differences)
66
+ * - Cross-browser testing (only Chromium-compatible)
67
+ * - Operations requiring full browser feature parity
68
+ */
69
+ export declare function shouldUseLightpanda(options: {
70
+ headless?: boolean;
71
+ requiresVisualAccuracy?: boolean;
72
+ browserType?: string;
73
+ }): boolean;
74
+ /**
75
+ * Build the Lightpanda WebSocket URL
76
+ */
77
+ export declare function buildLightpandaUrl(config: LightpandaConfig): string;
78
+ /**
79
+ * Check if a Lightpanda server is available at the given endpoint
80
+ *
81
+ * Uses Playwright's connectOverCDP with a short timeout to verify connectivity.
82
+ */
83
+ export declare function checkLightpandaAvailability(endpoint?: string, timeout?: number): Promise<boolean>;
84
+ /**
85
+ * Connect to Lightpanda via CDP
86
+ *
87
+ * Lightpanda exposes a Chrome DevTools Protocol (CDP) interface,
88
+ * which Playwright can connect to using chromium.connectOverCDP().
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * // Local Lightpanda instance
93
+ * const result = await connectToLightpanda({ endpoint: "ws://127.0.0.1:9222" });
94
+ *
95
+ * // Lightpanda Cloud
96
+ * const result = await connectToLightpanda({ token: "your-api-token" });
97
+ * ```
98
+ */
99
+ export declare function connectToLightpanda(config?: LightpandaConfig): Promise<LightpandaConnectionResult>;
100
+ /**
101
+ * Launch a browser with Lightpanda fallback
102
+ *
103
+ * Tries Lightpanda first (if configured), then falls back to Playwright.
104
+ * This enables automatic performance optimization when Lightpanda is available.
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * // Environment: LIGHTPANDA_ENDPOINT=ws://127.0.0.1:9222
109
+ * const browser = await launchWithLightpandaFallback({ headless: true });
110
+ * // Uses Lightpanda if available, otherwise Playwright Chromium
111
+ * ```
112
+ */
113
+ export declare function launchWithLightpandaFallback(options: {
114
+ headless?: boolean;
115
+ requiresVisualAccuracy?: boolean;
116
+ browserType?: "chromium" | "firefox" | "webkit";
117
+ launchOptions?: Parameters<typeof chromium.launch>[0];
118
+ }): Promise<{
119
+ browser: Browser;
120
+ isLightpanda: boolean;
121
+ }>;
122
+ /**
123
+ * Get Lightpanda status information
124
+ */
125
+ export declare function getLightpandaStatus(): Promise<{
126
+ configured: boolean;
127
+ available: boolean;
128
+ endpoint: string;
129
+ isCloud: boolean;
130
+ error?: string;
131
+ }>;
132
+ /**
133
+ * Lightpanda setup instructions
134
+ */
135
+ export declare const LIGHTPANDA_SETUP_GUIDE = "\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2551 Lightpanda Setup - High-Performance Headless Browser \u2551\n\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n\nLightpanda is 11x faster and uses 9x less memory than Chrome headless.\nIt's ideal for AI agents, web scraping, and automated testing.\n\n\u2501\u2501\u2501 Option 1: Local Installation \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nDocker (recommended):\n docker run -d --name lightpanda -p 9222:9222 lightpanda/browser:nightly\n\nBinary (Linux/macOS):\n curl -LO https://github.com/nicecoder/lightpanda/releases/latest/download/lightpanda\n chmod +x lightpanda\n ./lightpanda serve --host 127.0.0.1 --port 9222\n\nThen set environment variable:\n export LIGHTPANDA_ENDPOINT=ws://127.0.0.1:9222\n\n\u2501\u2501\u2501 Option 2: Lightpanda Cloud \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n1. Sign up at https://lightpanda.io/\n2. Get your API token from the dashboard\n3. Set environment variable:\n export LIGHTPANDA_TOKEN=your-api-token\n\n\u2501\u2501\u2501 Verification \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nCheck status:\n npx cbrowser lightpanda-status\n\nTest connection:\n npx cbrowser screenshot https://example.com --lightpanda\n\n\u2501\u2501\u2501 When to Use Lightpanda \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n\u2705 Great for:\n \u2022 Agent-ready audits\n \u2022 Empathy audits\n \u2022 Web scraping\n \u2022 API testing\n \u2022 Performance-critical batch operations\n\n\u274C Not suitable for:\n \u2022 Visual regression testing (use Playwright Chromium)\n \u2022 Cross-browser testing (Firefox/WebKit not supported)\n \u2022 Operations requiring pixel-perfect rendering\n\n\u2501\u2501\u2501 More Information \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\nDocumentation: https://lightpanda.io/docs\nGitHub: https://github.com/nicecoder/lightpanda\nCBrowser Integration: https://cbrowser.ai/docs/lightpanda\n";
136
+ //# sourceMappingURL=lightpanda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightpanda.d.ts","sourceRoot":"","sources":["../src/lightpanda.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAE/E;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAMtD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAIhD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAkBV;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAmBnE;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,GAAE,MAAkC,EAC5C,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,0BAA0B,CAAC,CA6BrC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IAChD,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CACvD,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,CAAC,CAwCvD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IACnD,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAmCD;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,uoIAuDlC,CAAC"}
@@ -0,0 +1,293 @@
1
+ /**
2
+ * CBrowser - Cognitive Browser Automation
3
+ * Copyright 2026 Alexandria Eden alexandria.shai.eden@gmail.com
4
+ * Learn more at https://cbrowser.ai - MIT License
5
+ */
6
+ /**
7
+ * Lightpanda Integration
8
+ *
9
+ * Lightpanda is a high-performance headless browser written in Zig.
10
+ * It's 11x faster and uses 9x less memory than Chrome headless.
11
+ *
12
+ * This module provides CDP-based integration with Playwright, allowing
13
+ * CBrowser to use Lightpanda as an alternative browser backend.
14
+ *
15
+ * @see https://lightpanda.io/
16
+ * @since 18.19.0
17
+ */
18
+ import { chromium } from "playwright";
19
+ /**
20
+ * Default local endpoint for Lightpanda
21
+ */
22
+ export const LIGHTPANDA_LOCAL_ENDPOINT = "ws://127.0.0.1:9222";
23
+ /**
24
+ * Cloud endpoint template
25
+ */
26
+ export const LIGHTPANDA_CLOUD_ENDPOINT = "wss://euwest.cloud.lightpanda.io/ws";
27
+ /**
28
+ * Get Lightpanda configuration from environment variables
29
+ */
30
+ export function getLightpandaConfig() {
31
+ return {
32
+ endpoint: process.env.LIGHTPANDA_ENDPOINT,
33
+ token: process.env.LIGHTPANDA_TOKEN,
34
+ timeout: parseInt(process.env.LIGHTPANDA_TIMEOUT || "30000", 10) || 30000,
35
+ };
36
+ }
37
+ /**
38
+ * Check if Lightpanda is configured and should be used
39
+ */
40
+ export function isLightpandaConfigured() {
41
+ const config = getLightpandaConfig();
42
+ // Configured if either local endpoint is set, or cloud token is provided
43
+ return !!(config.endpoint || config.token);
44
+ }
45
+ /**
46
+ * Check if Lightpanda should be preferred for the current operation
47
+ *
48
+ * Lightpanda is preferred for:
49
+ * - Headless operations (no GUI needed)
50
+ * - Non-visual audits (agent-ready, empathy audit, etc.)
51
+ * - Performance-critical batch operations
52
+ *
53
+ * Lightpanda is NOT suitable for:
54
+ * - Visual regression testing (rendering differences)
55
+ * - Cross-browser testing (only Chromium-compatible)
56
+ * - Operations requiring full browser feature parity
57
+ */
58
+ export function shouldUseLightpanda(options) {
59
+ // Only use Lightpanda for headless chromium operations
60
+ if (options.browserType && options.browserType !== "chromium") {
61
+ return false;
62
+ }
63
+ // Don't use for visual accuracy requirements
64
+ if (options.requiresVisualAccuracy) {
65
+ return false;
66
+ }
67
+ // Only use for headless mode
68
+ if (options.headless === false) {
69
+ return false;
70
+ }
71
+ // Check if configured
72
+ return isLightpandaConfigured();
73
+ }
74
+ /**
75
+ * Build the Lightpanda WebSocket URL
76
+ */
77
+ export function buildLightpandaUrl(config) {
78
+ // If explicit endpoint provided, use it
79
+ if (config.endpoint) {
80
+ let url = config.endpoint;
81
+ // Append token if provided and endpoint doesn't have it
82
+ if (config.token && !url.includes("token=")) {
83
+ const separator = url.includes("?") ? "&" : "?";
84
+ url = `${url}${separator}token=${config.token}`;
85
+ }
86
+ return url;
87
+ }
88
+ // If only token provided, use cloud endpoint
89
+ if (config.token) {
90
+ return `${LIGHTPANDA_CLOUD_ENDPOINT}?token=${config.token}`;
91
+ }
92
+ // Default to local endpoint
93
+ return LIGHTPANDA_LOCAL_ENDPOINT;
94
+ }
95
+ /**
96
+ * Check if a Lightpanda server is available at the given endpoint
97
+ *
98
+ * Uses Playwright's connectOverCDP with a short timeout to verify connectivity.
99
+ */
100
+ export async function checkLightpandaAvailability(endpoint = LIGHTPANDA_LOCAL_ENDPOINT, timeout = 5000) {
101
+ try {
102
+ const browser = await chromium.connectOverCDP(endpoint, { timeout });
103
+ await browser.close();
104
+ return true;
105
+ }
106
+ catch {
107
+ return false;
108
+ }
109
+ }
110
+ /**
111
+ * Connect to Lightpanda via CDP
112
+ *
113
+ * Lightpanda exposes a Chrome DevTools Protocol (CDP) interface,
114
+ * which Playwright can connect to using chromium.connectOverCDP().
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * // Local Lightpanda instance
119
+ * const result = await connectToLightpanda({ endpoint: "ws://127.0.0.1:9222" });
120
+ *
121
+ * // Lightpanda Cloud
122
+ * const result = await connectToLightpanda({ token: "your-api-token" });
123
+ * ```
124
+ */
125
+ export async function connectToLightpanda(config) {
126
+ const cfg = config || getLightpandaConfig();
127
+ const endpoint = buildLightpandaUrl(cfg);
128
+ const isCloud = endpoint.includes("cloud.lightpanda.io");
129
+ try {
130
+ // Use Playwright's CDP connection
131
+ const browser = await chromium.connectOverCDP(endpoint, {
132
+ timeout: cfg.timeout || 30000,
133
+ });
134
+ console.log(`🐼 Connected to Lightpanda ${isCloud ? "(Cloud)" : "(Local)"}`);
135
+ return {
136
+ success: true,
137
+ browser,
138
+ endpoint,
139
+ isCloud,
140
+ };
141
+ }
142
+ catch (error) {
143
+ const message = error instanceof Error ? error.message : String(error);
144
+ return {
145
+ success: false,
146
+ error: `Failed to connect to Lightpanda at ${endpoint}: ${message}`,
147
+ endpoint,
148
+ isCloud,
149
+ };
150
+ }
151
+ }
152
+ /**
153
+ * Launch a browser with Lightpanda fallback
154
+ *
155
+ * Tries Lightpanda first (if configured), then falls back to Playwright.
156
+ * This enables automatic performance optimization when Lightpanda is available.
157
+ *
158
+ * @example
159
+ * ```typescript
160
+ * // Environment: LIGHTPANDA_ENDPOINT=ws://127.0.0.1:9222
161
+ * const browser = await launchWithLightpandaFallback({ headless: true });
162
+ * // Uses Lightpanda if available, otherwise Playwright Chromium
163
+ * ```
164
+ */
165
+ export async function launchWithLightpandaFallback(options) {
166
+ const { headless = true, requiresVisualAccuracy = false, browserType = "chromium", launchOptions = {} } = options;
167
+ // Check if we should try Lightpanda
168
+ if (shouldUseLightpanda({ headless, requiresVisualAccuracy, browserType })) {
169
+ const result = await connectToLightpanda();
170
+ if (result.success && result.browser) {
171
+ return {
172
+ browser: result.browser,
173
+ isLightpanda: true,
174
+ };
175
+ }
176
+ // Log fallback reason if verbose
177
+ if (process.env.CBROWSER_VERBOSE === "true") {
178
+ console.log(`⚠️ Lightpanda unavailable: ${result.error}`);
179
+ console.log(" Falling back to Playwright Chromium...");
180
+ }
181
+ }
182
+ // Fall back to Playwright
183
+ const { chromium: playwrightChromium, firefox, webkit } = await import("playwright");
184
+ const launchers = {
185
+ chromium: playwrightChromium,
186
+ firefox,
187
+ webkit,
188
+ };
189
+ const launcher = launchers[browserType] || playwrightChromium;
190
+ const browser = await launcher.launch({
191
+ headless,
192
+ ...launchOptions,
193
+ });
194
+ return {
195
+ browser,
196
+ isLightpanda: false,
197
+ };
198
+ }
199
+ /**
200
+ * Get Lightpanda status information
201
+ */
202
+ export async function getLightpandaStatus() {
203
+ const config = getLightpandaConfig();
204
+ const configured = isLightpandaConfigured();
205
+ const endpoint = buildLightpandaUrl(config);
206
+ const isCloud = endpoint.includes("cloud.lightpanda.io");
207
+ if (!configured) {
208
+ return {
209
+ configured: false,
210
+ available: false,
211
+ endpoint: LIGHTPANDA_LOCAL_ENDPOINT,
212
+ isCloud: false,
213
+ };
214
+ }
215
+ // Try to connect
216
+ const result = await connectToLightpanda(config);
217
+ if (result.success && result.browser) {
218
+ await result.browser.close();
219
+ return {
220
+ configured: true,
221
+ available: true,
222
+ endpoint,
223
+ isCloud,
224
+ };
225
+ }
226
+ return {
227
+ configured: true,
228
+ available: false,
229
+ endpoint,
230
+ isCloud,
231
+ error: result.error,
232
+ };
233
+ }
234
+ /**
235
+ * Lightpanda setup instructions
236
+ */
237
+ export const LIGHTPANDA_SETUP_GUIDE = `
238
+ ╔══════════════════════════════════════════════════════════════════════════════╗
239
+ ║ Lightpanda Setup - High-Performance Headless Browser ║
240
+ ╚══════════════════════════════════════════════════════════════════════════════╝
241
+
242
+ Lightpanda is 11x faster and uses 9x less memory than Chrome headless.
243
+ It's ideal for AI agents, web scraping, and automated testing.
244
+
245
+ ━━━ Option 1: Local Installation ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
246
+
247
+ Docker (recommended):
248
+ docker run -d --name lightpanda -p 9222:9222 lightpanda/browser:nightly
249
+
250
+ Binary (Linux/macOS):
251
+ curl -LO https://github.com/nicecoder/lightpanda/releases/latest/download/lightpanda
252
+ chmod +x lightpanda
253
+ ./lightpanda serve --host 127.0.0.1 --port 9222
254
+
255
+ Then set environment variable:
256
+ export LIGHTPANDA_ENDPOINT=ws://127.0.0.1:9222
257
+
258
+ ━━━ Option 2: Lightpanda Cloud ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
259
+
260
+ 1. Sign up at https://lightpanda.io/
261
+ 2. Get your API token from the dashboard
262
+ 3. Set environment variable:
263
+ export LIGHTPANDA_TOKEN=your-api-token
264
+
265
+ ━━━ Verification ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
266
+
267
+ Check status:
268
+ npx cbrowser lightpanda-status
269
+
270
+ Test connection:
271
+ npx cbrowser screenshot https://example.com --lightpanda
272
+
273
+ ━━━ When to Use Lightpanda ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
274
+
275
+ ✅ Great for:
276
+ • Agent-ready audits
277
+ • Empathy audits
278
+ • Web scraping
279
+ • API testing
280
+ • Performance-critical batch operations
281
+
282
+ ❌ Not suitable for:
283
+ • Visual regression testing (use Playwright Chromium)
284
+ • Cross-browser testing (Firefox/WebKit not supported)
285
+ • Operations requiring pixel-perfect rendering
286
+
287
+ ━━━ More Information ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
288
+
289
+ Documentation: https://lightpanda.io/docs
290
+ GitHub: https://github.com/nicecoder/lightpanda
291
+ CBrowser Integration: https://cbrowser.ai/docs/lightpanda
292
+ `;
293
+ //# sourceMappingURL=lightpanda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightpanda.js","sourceRoot":"","sources":["../src/lightpanda.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../../src/remediation/llms-txt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgRD;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CA6DxB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACtD,OAAO,CAAC,aAAa,CAAC,CAOxB"}
1
+ {"version":3,"file":"llms-txt.d.ts","sourceRoot":"","sources":["../../src/remediation/llms-txt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgRD;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC,CA6DxB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACtD,OAAO,CAAC,aAAa,CAAC,CAOxB"}
@@ -13,6 +13,7 @@
13
13
  * @since 17.0.0
14
14
  */
15
15
  import { chromium } from "playwright";
16
+ import { launchBrowserWithFallback } from "../browser.js";
16
17
  /**
17
18
  * Extract data from a single page
18
19
  */
@@ -243,7 +244,7 @@ export async function generateLlmsTxt(options) {
243
244
  const { url, crawl = false, maxPages = 10, headless = true } = options;
244
245
  let browser = null;
245
246
  try {
246
- browser = await chromium.launch({ headless });
247
+ browser = await launchBrowserWithFallback(chromium, { headless });
247
248
  const context = await browser.newContext();
248
249
  const page = await context.newPage();
249
250
  // Extract main page data
@@ -1 +1 @@
1
- {"version":3,"file":"llms-txt.js","sourceRoot":"","sources":["../../src/remediation/llms-txt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llms-txt.js","sourceRoot":"","sources":["../../src/remediation/llms-txt.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"structured-data.d.ts","sourceRoot":"","sources":["../../src/remediation/structured-data.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,UAAU,GACV,SAAS,GACT,SAAS,GACT,cAAc,GACd,QAAQ,GACR,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,gBAAgB,GAChB,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2GD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CA6D3F;AAgHD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAuBR;AAwCD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CA+BnC"}
1
+ {"version":3,"file":"structured-data.d.ts","sourceRoot":"","sources":["../../src/remediation/structured-data.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,UAAU,GACV,SAAS,GACT,SAAS,GACT,cAAc,GACd,QAAQ,GACR,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,gBAAgB,GAChB,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2GD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CA6D3F;AAgHD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,GACjB,MAAM,CAuBR;AAwCD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CA+BnC"}
@@ -12,6 +12,7 @@
12
12
  * @since 17.0.0
13
13
  */
14
14
  import { chromium } from "playwright";
15
+ import { launchBrowserWithFallback } from "../browser.js";
15
16
  /**
16
17
  * Extract signals from a page for type detection
17
18
  */
@@ -327,7 +328,7 @@ export async function suggestStructuredData(options) {
327
328
  const { url, headless = true } = options;
328
329
  let browser = null;
329
330
  try {
330
- browser = await chromium.launch({ headless });
331
+ browser = await launchBrowserWithFallback(chromium, { headless });
331
332
  const context = await browser.newContext();
332
333
  const page = await context.newPage();
333
334
  const signals = await extractPageSignals(page, url);