@everydaydevopsio/pilot 0.6.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.
Files changed (107) hide show
  1. package/AGENTS.md +11 -0
  2. package/CHANGELOG.md +45 -0
  3. package/README.md +105 -11
  4. package/dist/browser/browser-manager.d.ts +7 -1
  5. package/dist/browser/browser-manager.d.ts.map +1 -1
  6. package/dist/browser/browser-manager.js +196 -40
  7. package/dist/browser/browser-manager.js.map +1 -1
  8. package/dist/browser/chrome-launcher.d.ts +13 -2
  9. package/dist/browser/chrome-launcher.d.ts.map +1 -1
  10. package/dist/browser/chrome-launcher.js +33 -4
  11. package/dist/browser/chrome-launcher.js.map +1 -1
  12. package/dist/browser/driver/capabilities.d.ts +22 -0
  13. package/dist/browser/driver/capabilities.d.ts.map +1 -0
  14. package/dist/browser/driver/capabilities.js +70 -0
  15. package/dist/browser/driver/capabilities.js.map +1 -0
  16. package/dist/browser/driver/cdp-driver.d.ts +77 -0
  17. package/dist/browser/driver/cdp-driver.d.ts.map +1 -0
  18. package/dist/browser/driver/cdp-driver.js +190 -0
  19. package/dist/browser/driver/cdp-driver.js.map +1 -0
  20. package/dist/browser/driver/factory.d.ts +10 -0
  21. package/dist/browser/driver/factory.d.ts.map +1 -0
  22. package/dist/browser/driver/factory.js +23 -0
  23. package/dist/browser/driver/factory.js.map +1 -0
  24. package/dist/browser/driver/index.d.ts +6 -0
  25. package/dist/browser/driver/index.d.ts.map +1 -0
  26. package/dist/browser/driver/index.js +5 -0
  27. package/dist/browser/driver/index.js.map +1 -0
  28. package/dist/browser/driver/types.d.ts +106 -0
  29. package/dist/browser/driver/types.d.ts.map +1 -0
  30. package/dist/browser/driver/types.js +25 -0
  31. package/dist/browser/driver/types.js.map +1 -0
  32. package/dist/browser/sessions.d.ts +49 -0
  33. package/dist/browser/sessions.d.ts.map +1 -0
  34. package/dist/browser/sessions.js +249 -0
  35. package/dist/browser/sessions.js.map +1 -0
  36. package/dist/browser/types.d.ts +13 -0
  37. package/dist/browser/types.d.ts.map +1 -1
  38. package/dist/cli/skill-template.d.ts +1 -1
  39. package/dist/cli/skill-template.d.ts.map +1 -1
  40. package/dist/cli/skill-template.js +1 -1
  41. package/dist/cli/skill-template.js.map +1 -1
  42. package/dist/commands/connect.d.ts +2 -2
  43. package/dist/commands/connect.d.ts.map +1 -1
  44. package/dist/commands/connect.js +2 -2
  45. package/dist/commands/connect.js.map +1 -1
  46. package/dist/mcp/server.d.ts +9 -15
  47. package/dist/mcp/server.d.ts.map +1 -1
  48. package/dist/mcp/server.js +32 -74
  49. package/dist/mcp/server.js.map +1 -1
  50. package/dist/mcp/tools/browser.d.ts +2 -3
  51. package/dist/mcp/tools/browser.d.ts.map +1 -1
  52. package/dist/mcp/tools/browser.js +85 -70
  53. package/dist/mcp/tools/browser.js.map +1 -1
  54. package/dist/mcp/tools/connect.d.ts +2 -3
  55. package/dist/mcp/tools/connect.d.ts.map +1 -1
  56. package/dist/mcp/tools/connect.js +9 -9
  57. package/dist/mcp/tools/connect.js.map +1 -1
  58. package/dist/mcp/tools/driver-context.d.ts +14 -0
  59. package/dist/mcp/tools/driver-context.d.ts.map +1 -0
  60. package/dist/mcp/tools/driver-context.js +43 -0
  61. package/dist/mcp/tools/driver-context.js.map +1 -0
  62. package/dist/mcp/tools/files.d.ts.map +1 -1
  63. package/dist/mcp/tools/files.js +5 -15
  64. package/dist/mcp/tools/files.js.map +1 -1
  65. package/dist/mcp/tools/interaction.d.ts.map +1 -1
  66. package/dist/mcp/tools/interaction.js +7 -26
  67. package/dist/mcp/tools/interaction.js.map +1 -1
  68. package/dist/mcp/tools/names.d.ts +1 -1
  69. package/dist/mcp/tools/names.d.ts.map +1 -1
  70. package/dist/mcp/tools/names.js +2 -0
  71. package/dist/mcp/tools/names.js.map +1 -1
  72. package/dist/mcp/tools/network.d.ts.map +1 -1
  73. package/dist/mcp/tools/network.js +3 -11
  74. package/dist/mcp/tools/network.js.map +1 -1
  75. package/dist/mcp/tools/performance.d.ts.map +1 -1
  76. package/dist/mcp/tools/performance.js +2 -12
  77. package/dist/mcp/tools/performance.js.map +1 -1
  78. package/dist/mcp/tools/snapshot.d.ts.map +1 -1
  79. package/dist/mcp/tools/snapshot.js +3 -14
  80. package/dist/mcp/tools/snapshot.js.map +1 -1
  81. package/dist/mcp/tools/styles.d.ts.map +1 -1
  82. package/dist/mcp/tools/styles.js +2 -11
  83. package/dist/mcp/tools/styles.js.map +1 -1
  84. package/package.json +1 -1
  85. package/skills/pilot/SKILL.md +9 -0
  86. package/src/browser/browser-manager.ts +248 -41
  87. package/src/browser/chrome-launcher.ts +40 -4
  88. package/src/browser/driver/capabilities.ts +88 -0
  89. package/src/browser/driver/cdp-driver.ts +260 -0
  90. package/src/browser/driver/factory.ts +33 -0
  91. package/src/browser/driver/index.ts +22 -0
  92. package/src/browser/driver/types.ts +156 -0
  93. package/src/browser/sessions.ts +299 -0
  94. package/src/browser/types.ts +14 -0
  95. package/src/cli/skill-template.ts +1 -1
  96. package/src/commands/connect.ts +3 -3
  97. package/src/mcp/server.ts +48 -91
  98. package/src/mcp/tools/browser.ts +105 -87
  99. package/src/mcp/tools/connect.ts +10 -11
  100. package/src/mcp/tools/driver-context.ts +56 -0
  101. package/src/mcp/tools/files.ts +5 -16
  102. package/src/mcp/tools/interaction.ts +7 -27
  103. package/src/mcp/tools/names.ts +2 -0
  104. package/src/mcp/tools/network.ts +2 -12
  105. package/src/mcp/tools/performance.ts +2 -13
  106. package/src/mcp/tools/snapshot.ts +3 -15
  107. package/src/mcp/tools/styles.ts +2 -12
@@ -13,7 +13,8 @@ export declare function isProfileLocked(userDataDir: string): boolean;
13
13
  export declare function findChromeExecutable(override?: string): string;
14
14
  export declare function findFreePort(): Promise<number>;
15
15
  export declare function formatPortBindError(error: NodeJS.ErrnoException): Error;
16
- export declare function waitForChromeReady(port: number, timeoutMs?: number): Promise<void>;
16
+ export declare const DEFAULT_STARTUP_TIMEOUT_MS = 90000;
17
+ export declare function waitForChromeReady(port: number, timeoutMs?: number, earlyFailure?: () => Error | null): Promise<void>;
17
18
  export interface ChromeLaunchResult {
18
19
  process: ChildProcess;
19
20
  port: number;
@@ -27,5 +28,15 @@ export declare function launchChrome(opts: {
27
28
  windowWidth: number;
28
29
  windowHeight: number;
29
30
  }): ChildProcess;
30
- export declare function cleanupLockFiles(userDataDir: string): void;
31
+ export declare function profileLockOwner(userDataDir: string): {
32
+ pid: number;
33
+ lockHost: string;
34
+ } | null;
35
+ /**
36
+ * Remove the profile lock files left by a Chrome process Pilot launched.
37
+ * A SingletonLock that names a different process is left alone: if Chrome
38
+ * handed off to another instance already using the profile, that lock
39
+ * belongs to the live browser. Returns false when a lock was left in place.
40
+ */
41
+ export declare function cleanupLockFiles(userDataDir: string, ownerPid: number): boolean;
31
42
  //# sourceMappingURL=chrome-launcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrome-launcher.d.ts","sourceRoot":"","sources":["../../src/browser/chrome-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAOzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,eAAe,QAAgC,CAAC;AAE7D,wBAAgB,eAAe,IAAI,eAAe,CAejD;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAS9D;AAeD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,GACf;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAc1C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASnD;AAkBD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CA8B5D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAiC9D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAWpD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG,KAAK,CAOvE;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,SAAS,SAAQ,GAChB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,YAAY,CAkDf;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAQ1D"}
1
+ {"version":3,"file":"chrome-launcher.d.ts","sourceRoot":"","sources":["../../src/browser/chrome-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAOzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,eAAe,QAAgC,CAAC;AAE7D,wBAAgB,eAAe,IAAI,eAAe,CAejD;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAS9D;AAeD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,GACf;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAc1C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASnD;AAkBD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CA8B5D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAiC9D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAWpD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG,KAAK,CAOvE;AAMD,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,SAAS,SAA6B,EACtC,YAAY,CAAC,EAAE,MAAM,KAAK,GAAG,IAAI,GAChC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,YAAY,CAkDf;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAClB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAkBT"}
@@ -166,9 +166,17 @@ export function formatPortBindError(error) {
166
166
  }
167
167
  return error;
168
168
  }
169
- export async function waitForChromeReady(port, timeoutMs = 30000) {
169
+ // Cold starts on Linux servers (first-run profile setup, software rendering
170
+ // under Xvfb/VNC) can take well over 30s. A healthy start returns as soon as
171
+ // DevTools answers, and a Chrome that exits is detected immediately, so the
172
+ // longer ceiling only matters when Chrome is genuinely slow.
173
+ export const DEFAULT_STARTUP_TIMEOUT_MS = 90000;
174
+ export async function waitForChromeReady(port, timeoutMs = DEFAULT_STARTUP_TIMEOUT_MS, earlyFailure) {
170
175
  const deadline = Date.now() + timeoutMs;
171
176
  while (Date.now() < deadline) {
177
+ const failure = earlyFailure?.();
178
+ if (failure)
179
+ throw failure;
172
180
  try {
173
181
  await CDP.List({ host: '127.0.0.1', port });
174
182
  return;
@@ -177,6 +185,9 @@ export async function waitForChromeReady(port, timeoutMs = 30000) {
177
185
  await new Promise((r) => setTimeout(r, 200));
178
186
  }
179
187
  }
188
+ const failure = earlyFailure?.();
189
+ if (failure)
190
+ throw failure;
180
191
  throw new Error(`Chrome did not become ready on port ${port} within ${timeoutMs}ms`);
181
192
  }
182
193
  export function launchChrome(opts) {
@@ -212,14 +223,32 @@ export function launchChrome(opts) {
212
223
  detached: false
213
224
  });
214
225
  }
215
- export function cleanupLockFiles(userDataDir) {
226
+ export function profileLockOwner(userDataDir) {
227
+ return extractLockPid(join(userDataDir, 'SingletonLock'));
228
+ }
229
+ /**
230
+ * Remove the profile lock files left by a Chrome process Pilot launched.
231
+ * A SingletonLock that names a different process is left alone: if Chrome
232
+ * handed off to another instance already using the profile, that lock
233
+ * belongs to the live browser. Returns false when a lock was left in place.
234
+ */
235
+ export function cleanupLockFiles(userDataDir, ownerPid) {
236
+ const owner = profileLockOwner(userDataDir);
237
+ if (fileOrSymlinkExists(join(userDataDir, 'SingletonLock')) &&
238
+ (!owner || owner.pid !== ownerPid || owner.lockHost !== hostname())) {
239
+ return false;
240
+ }
241
+ let removed = true;
216
242
  for (const lockName of ['SingletonLock', 'lockfile']) {
217
243
  try {
218
244
  unlinkSync(join(userDataDir, lockName));
219
245
  }
220
- catch {
221
- // lock file may not exist — that's fine
246
+ catch (err) {
247
+ // A lock file that does not exist is already gone.
248
+ if (err.code !== 'ENOENT')
249
+ removed = false;
222
250
  }
223
251
  }
252
+ return removed;
224
253
  }
225
254
  //# sourceMappingURL=chrome-launcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrome-launcher.js","sourceRoot":"","sources":["../../src/browser/chrome-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chrome-launcher.js","sourceRoot":"","sources":["../../src/browser/chrome-launcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { ToolName } from '../../mcp/tools/names.js';
2
+ import type { BrowserKind, Capability } from './types.js';
3
+ /**
4
+ * Capabilities each MCP tool needs from the active driver. Tools mapped to an
5
+ * empty list either manage the session itself (start/stop/status) or only read
6
+ * buffers that every driver fills.
7
+ */
8
+ export declare const TOOL_CAPABILITIES: Readonly<Record<ToolName, readonly Capability[]>>;
9
+ export declare class CapabilityError extends Error {
10
+ readonly tool: ToolName;
11
+ readonly browser: BrowserKind;
12
+ readonly missing: readonly Capability[];
13
+ constructor(tool: ToolName, browser: BrowserKind, missing: readonly Capability[]);
14
+ }
15
+ export declare function missingCapabilities(tool: ToolName, capabilities: ReadonlySet<Capability>): Capability[];
16
+ export declare function assertToolSupported(tool: ToolName, driver: {
17
+ kind: BrowserKind;
18
+ capabilities: ReadonlySet<Capability>;
19
+ }): void;
20
+ /** Tools the given capability set cannot run, for status and docs output. */
21
+ export declare function unsupportedTools(capabilities: ReadonlySet<Capability>): ToolName[];
22
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/browser/driver/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CACtC,MAAM,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC,CAuCxC,CAAC;AAEF,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,WAAW;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE;gBAF9B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,SAAS,UAAU,EAAE;CAO1C;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,GACpC,UAAU,EAAE,CAEd;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAA;CAAE,GACnE,IAAI,CAKN;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,GACpC,QAAQ,EAAE,CAIZ"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Capabilities each MCP tool needs from the active driver. Tools mapped to an
3
+ * empty list either manage the session itself (start/stop/status) or only read
4
+ * buffers that every driver fills.
5
+ */
6
+ export const TOOL_CAPABILITIES = {
7
+ browser_start: [],
8
+ browser_stop: [],
9
+ browser_status: [],
10
+ browser_stop_all: [],
11
+ browser_connect: ['connectExisting'],
12
+ browser_screenshot: ['screenshot'],
13
+ browser_navigate: ['navigation'],
14
+ browser_click: ['input'],
15
+ browser_type: ['input'],
16
+ browser_evaluate: ['evaluate'],
17
+ browser_wait: ['evaluate'],
18
+ browser_page_info: ['evaluate'],
19
+ browser_list_tabs: ['tabs'],
20
+ browser_new_tab: ['tabs'],
21
+ browser_close_tab: ['tabs'],
22
+ browser_switch_tab: ['tabs'],
23
+ browser_tabs: ['tabs'],
24
+ browser_viewport_resize: ['viewport'],
25
+ browser_get_console_logs: ['console'],
26
+ browser_get_errors: ['console'],
27
+ browser_clear_errors: ['console'],
28
+ browser_console: ['console'],
29
+ browser_errors: ['console'],
30
+ browser_snapshot: ['accessibilitySnapshot'],
31
+ browser_find: ['accessibilitySnapshot'],
32
+ browser_fill: ['input'],
33
+ browser_hover: ['input'],
34
+ browser_press_key: ['input'],
35
+ browser_select: ['input'],
36
+ browser_check: ['input'],
37
+ browser_scroll: ['input'],
38
+ browser_network: ['network'],
39
+ browser_styles: ['styles'],
40
+ browser_dialog: ['dialogs'],
41
+ browser_upload: ['uploads'],
42
+ browser_downloads: ['downloads'],
43
+ browser_performance: ['performanceTrace']
44
+ };
45
+ export class CapabilityError extends Error {
46
+ tool;
47
+ browser;
48
+ missing;
49
+ constructor(tool, browser, missing) {
50
+ super(`${tool} is not supported by ${browser} (missing capabilities: ${missing.join(', ')}).`);
51
+ this.tool = tool;
52
+ this.browser = browser;
53
+ this.missing = missing;
54
+ this.name = 'CapabilityError';
55
+ }
56
+ }
57
+ export function missingCapabilities(tool, capabilities) {
58
+ return TOOL_CAPABILITIES[tool].filter((c) => !capabilities.has(c));
59
+ }
60
+ export function assertToolSupported(tool, driver) {
61
+ const missing = missingCapabilities(tool, driver.capabilities);
62
+ if (missing.length > 0) {
63
+ throw new CapabilityError(tool, driver.kind, missing);
64
+ }
65
+ }
66
+ /** Tools the given capability set cannot run, for status and docs output. */
67
+ export function unsupportedTools(capabilities) {
68
+ return Object.keys(TOOL_CAPABILITIES).filter((tool) => missingCapabilities(tool, capabilities).length > 0);
69
+ }
70
+ //# sourceMappingURL=capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/browser/driver/capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { BrowserManager } from '../browser-manager.js';
2
+ import type { LaunchOptions, SessionInfo, TabInfo } from '../types.js';
3
+ import type { Config } from '../../util/config.js';
4
+ import { type ViewportConfig } from '../../viewport.js';
5
+ import { type CheckParams } from '../../commands/check.js';
6
+ import { type ClickParams } from '../../commands/click.js';
7
+ import { type DialogParams } from '../../commands/dialog.js';
8
+ import { type EvaluateParams } from '../../commands/evaluate.js';
9
+ import { type FillParams } from '../../commands/fill.js';
10
+ import { type FindQuery } from '../../commands/find.js';
11
+ import { type HoverParams } from '../../commands/hover.js';
12
+ import { type NavigateParams } from '../../commands/navigate.js';
13
+ import { type NetworkParams } from '../../commands/network.js';
14
+ import { type PerformanceParams } from '../../commands/performance.js';
15
+ import { type PressKeyParams } from '../../commands/press_key.js';
16
+ import { type ScreenshotParams } from '../../commands/screenshot.js';
17
+ import { type ScrollParams } from '../../commands/scroll.js';
18
+ import { type SelectParams } from '../../commands/select.js';
19
+ import { type StylesParams } from '../../commands/styles.js';
20
+ import { type NewTabResult } from '../../commands/tabs.js';
21
+ import { type TypeParams } from '../../commands/type.js';
22
+ import { type UploadParams } from '../../commands/upload.js';
23
+ import { type WaitParams } from '../../commands/wait.js';
24
+ import { type BrowserDriver, type ConnectExistingOptions, type DriverSession, type ViewportResizeParams } from './types.js';
25
+ /**
26
+ * Chrome driver over the Chrome DevTools Protocol. BrowserManager owns the
27
+ * Chrome process and CDP connection; this class wires CDP events into the
28
+ * session buffers and maps driver calls onto the CDP command implementations.
29
+ */
30
+ export declare class CdpDriver implements BrowserDriver {
31
+ private readonly session;
32
+ private readonly manager;
33
+ readonly kind: "chrome";
34
+ readonly capabilities: ReadonlySet<"viewport" | "input" | "evaluate" | "dialogs" | "navigation" | "styles" | "tabs" | "screenshot" | "accessibilitySnapshot" | "console" | "network" | "uploads" | "downloads" | "performanceTrace" | "connectExisting">;
35
+ private monitoredClient;
36
+ constructor(session: DriverSession, manager: BrowserManager);
37
+ static create(config: Config, session: DriverSession): CdpDriver;
38
+ private onBrowserEvent;
39
+ private ensureMonitors;
40
+ private client;
41
+ launch(opts?: LaunchOptions): Promise<{
42
+ headless: boolean;
43
+ viewport: string;
44
+ }>;
45
+ connectExisting(opts: ConnectExistingOptions): Promise<{
46
+ tabs: TabInfo[];
47
+ }>;
48
+ destroy(): Promise<void>;
49
+ isConnected(): boolean;
50
+ getSessionInfo(): SessionInfo;
51
+ listTabs(): Promise<TabInfo[]>;
52
+ newTab(url?: string): Promise<NewTabResult>;
53
+ closeTab(targetId: string): Promise<void>;
54
+ switchTab(targetId: string): Promise<void>;
55
+ navigate(params: NavigateParams): Promise<import("../../commands/navigate.js").NavigateResult>;
56
+ pageInfo(): Promise<import("../../commands/page_info.js").PageInfoResult>;
57
+ evaluate(params: EvaluateParams): Promise<import("../../commands/evaluate.js").EvaluateResult>;
58
+ wait(params: WaitParams): Promise<import("../../commands/wait.js").WaitResult>;
59
+ screenshot(params: ScreenshotParams): Promise<import("../../commands/screenshot.js").ScreenshotResult>;
60
+ resizeViewport(params: ViewportResizeParams): Promise<ViewportConfig>;
61
+ snapshot(): Promise<import("../../commands/snapshot.js").SnapshotCommandResult>;
62
+ find(query: FindQuery): Promise<import("../../commands/find.js").FindCommandResult>;
63
+ styles(params: StylesParams): Promise<import("../../commands/styles.js").StylesCommandResult>;
64
+ click(params: ClickParams): Promise<import("../../commands/click.js").ClickResult>;
65
+ type(params: TypeParams): Promise<import("../../commands/type.js").TypeResult>;
66
+ fill(params: FillParams): Promise<import("../../commands/fill.js").FillResult>;
67
+ hover(params: HoverParams): Promise<import("../../commands/hover.js").HoverResult>;
68
+ pressKey(params: PressKeyParams): Promise<import("../../commands/press_key.js").PressKeyResult>;
69
+ select(params: SelectParams): Promise<import("../../commands/select.js").SelectResult>;
70
+ check(params: CheckParams): Promise<import("../../commands/check.js").CheckResult>;
71
+ scroll(params: ScrollParams): Promise<import("../../commands/scroll.js").ScrollResult>;
72
+ dialog(params: DialogParams): Promise<import("../../commands/dialog.js").DialogResult>;
73
+ upload(params: UploadParams): Promise<import("../../commands/upload.js").UploadResult>;
74
+ network(params: NetworkParams): Promise<import("../../commands/network.js").NetworkResult>;
75
+ performance(params: PerformanceParams): Promise<import("../../commands/performance.js").PerformanceResult>;
76
+ }
77
+ //# sourceMappingURL=cdp-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdp-driver.d.ts","sourceRoot":"","sources":["../../../src/browser/driver/cdp-driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ import { BrowserManager } from '../browser-manager.js';
2
+ import { resetCssState } from '../inspect/styles.js';
3
+ import { attachDialogHandler } from '../interaction/dialogs.js';
4
+ import { attachDownloadHandler, enableDownloads } from '../interaction/downloads.js';
5
+ import { attachNetworkMonitor } from '../network/network-monitor.js';
6
+ import { applyViewport } from '../../viewport.js';
7
+ import { executeCheck } from '../../commands/check.js';
8
+ import { executeClick } from '../../commands/click.js';
9
+ import { executeDialog } from '../../commands/dialog.js';
10
+ import { executeEvaluate } from '../../commands/evaluate.js';
11
+ import { executeFill } from '../../commands/fill.js';
12
+ import { executeFind } from '../../commands/find.js';
13
+ import { executeHover } from '../../commands/hover.js';
14
+ import { executeNavigate } from '../../commands/navigate.js';
15
+ import { executeNetwork } from '../../commands/network.js';
16
+ import { executePageInfo } from '../../commands/page_info.js';
17
+ import { executePerformance } from '../../commands/performance.js';
18
+ import { executePressKey } from '../../commands/press_key.js';
19
+ import { executeScreenshot } from '../../commands/screenshot.js';
20
+ import { executeScroll } from '../../commands/scroll.js';
21
+ import { executeSelect } from '../../commands/select.js';
22
+ import { executeSnapshot } from '../../commands/snapshot.js';
23
+ import { executeStyles } from '../../commands/styles.js';
24
+ import { executeCloseTab, executeListTabs, executeNewTab, executeSwitchTab } from '../../commands/tabs.js';
25
+ import { executeType } from '../../commands/type.js';
26
+ import { executeUpload } from '../../commands/upload.js';
27
+ import { executeWait } from '../../commands/wait.js';
28
+ import { CAPABILITIES } from './types.js';
29
+ const CDP_CAPABILITIES = new Set(CAPABILITIES);
30
+ /**
31
+ * Chrome driver over the Chrome DevTools Protocol. BrowserManager owns the
32
+ * Chrome process and CDP connection; this class wires CDP events into the
33
+ * session buffers and maps driver calls onto the CDP command implementations.
34
+ */
35
+ export class CdpDriver {
36
+ session;
37
+ manager;
38
+ kind = 'chrome';
39
+ capabilities = CDP_CAPABILITIES;
40
+ monitoredClient = null;
41
+ constructor(session, manager) {
42
+ this.session = session;
43
+ this.manager = manager;
44
+ manager.setEventCallback((event, data) => this.onBrowserEvent(event, data));
45
+ }
46
+ static create(config, session) {
47
+ return new CdpDriver(session, new BrowserManager(config));
48
+ }
49
+ onBrowserEvent(event, data) {
50
+ if (event === 'console_message') {
51
+ this.session.consoleBuffer.push(data);
52
+ }
53
+ if (event === 'page_navigated') {
54
+ this.session.elementRefMap.invalidate();
55
+ }
56
+ if (event === 'browser_disconnected') {
57
+ this.monitoredClient = null;
58
+ resetCssState();
59
+ this.session.dialogQueue.clear();
60
+ this.session.downloadTracker.clear();
61
+ return;
62
+ }
63
+ // Covers browser_connected and tab switches, which swap the CDP client
64
+ // without emitting a connect event.
65
+ this.ensureMonitors();
66
+ }
67
+ ensureMonitors() {
68
+ const client = this.manager.getClient();
69
+ if (!client || client === this.monitoredClient)
70
+ return;
71
+ attachNetworkMonitor(client, this.session.networkBuffer);
72
+ attachDialogHandler(client, this.session.dialogQueue);
73
+ attachDownloadHandler(client, this.session.downloadTracker);
74
+ void enableDownloads(client).catch(() => {
75
+ // Download behavior setup may fail in some environments
76
+ });
77
+ this.monitoredClient = client;
78
+ }
79
+ client() {
80
+ const client = this.manager.getClient();
81
+ if (!client) {
82
+ throw new Error('Browser not started. Call browser_start first.');
83
+ }
84
+ return client;
85
+ }
86
+ launch(opts) {
87
+ return this.manager.launch(opts);
88
+ }
89
+ connectExisting(opts) {
90
+ return this.manager.connectExisting(opts);
91
+ }
92
+ destroy() {
93
+ return this.manager.destroy();
94
+ }
95
+ isConnected() {
96
+ return this.manager.isConnected();
97
+ }
98
+ getSessionInfo() {
99
+ return { browser: this.kind, ...this.manager.getSessionInfo() };
100
+ }
101
+ listTabs() {
102
+ return executeListTabs(this.manager);
103
+ }
104
+ newTab(url) {
105
+ return executeNewTab(this.manager, url);
106
+ }
107
+ closeTab(targetId) {
108
+ return executeCloseTab(this.manager, targetId);
109
+ }
110
+ switchTab(targetId) {
111
+ return executeSwitchTab(this.manager, targetId);
112
+ }
113
+ navigate(params) {
114
+ return executeNavigate(this.client(), this.manager, params);
115
+ }
116
+ pageInfo() {
117
+ return executePageInfo(this.client());
118
+ }
119
+ evaluate(params) {
120
+ return executeEvaluate(this.client(), params);
121
+ }
122
+ wait(params) {
123
+ return executeWait(this.client(), this.manager, params);
124
+ }
125
+ screenshot(params) {
126
+ return executeScreenshot(this.client(), params);
127
+ }
128
+ async resizeViewport(params) {
129
+ const client = this.client();
130
+ const current = this.manager.getViewportConfig();
131
+ const mobile = params.mobile ?? current?.mobile ?? false;
132
+ const config = {
133
+ width: params.width,
134
+ height: params.height,
135
+ deviceScaleFactor: params.deviceScaleFactor ?? current?.deviceScaleFactor ?? 1,
136
+ mobile,
137
+ responsive: false,
138
+ ...(mobile && current?.userAgent && { userAgent: current.userAgent })
139
+ };
140
+ await applyViewport(client, config);
141
+ this.manager.setViewportConfig(config);
142
+ return config;
143
+ }
144
+ snapshot() {
145
+ return executeSnapshot(this.client(), this.session.elementRefMap);
146
+ }
147
+ find(query) {
148
+ return executeFind(this.client(), this.session.elementRefMap, query);
149
+ }
150
+ styles(params) {
151
+ return executeStyles(this.client(), this.session.elementRefMap, params);
152
+ }
153
+ click(params) {
154
+ return executeClick(this.client(), params, this.session.elementRefMap);
155
+ }
156
+ type(params) {
157
+ return executeType(this.client(), params, this.session.elementRefMap);
158
+ }
159
+ fill(params) {
160
+ return executeFill(this.client(), this.session.elementRefMap, params);
161
+ }
162
+ hover(params) {
163
+ return executeHover(this.client(), this.session.elementRefMap, params);
164
+ }
165
+ pressKey(params) {
166
+ return executePressKey(this.client(), params);
167
+ }
168
+ select(params) {
169
+ return executeSelect(this.client(), this.session.elementRefMap, params);
170
+ }
171
+ check(params) {
172
+ return executeCheck(this.client(), this.session.elementRefMap, params);
173
+ }
174
+ scroll(params) {
175
+ return executeScroll(this.client(), this.session.elementRefMap, params);
176
+ }
177
+ dialog(params) {
178
+ return executeDialog(this.client(), this.session.dialogQueue, params);
179
+ }
180
+ upload(params) {
181
+ return executeUpload(this.client(), this.session.elementRefMap, params);
182
+ }
183
+ network(params) {
184
+ return executeNetwork(this.client(), this.session.networkBuffer, params);
185
+ }
186
+ performance(params) {
187
+ return executePerformance(this.client(), this.session.traceState, params);
188
+ }
189
+ }
190
+ //# sourceMappingURL=cdp-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdp-driver.js","sourceRoot":"","sources":["../../../src/browser/driver/cdp-driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Config } from '../../util/config.js';
2
+ import type { BrowserDriver, BrowserKind, DriverSession } from './types.js';
3
+ /** Tracking issues for browsers that do not have a driver yet. */
4
+ export declare const PLANNED_DRIVERS: Readonly<Record<Exclude<BrowserKind, 'chrome'>, string>>;
5
+ export declare class UnsupportedBrowserError extends Error {
6
+ readonly browser: Exclude<BrowserKind, 'chrome'>;
7
+ constructor(browser: Exclude<BrowserKind, 'chrome'>);
8
+ }
9
+ export declare function createDriver(kind: BrowserKind, config: Config, session: DriverSession): BrowserDriver;
10
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/browser/driver/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5E,kEAAkE;AAClE,eAAO,MAAM,eAAe,EAAE,QAAQ,CACpC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAK/C,CAAC;AAEF,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;gBAAvC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC;CAO7D;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,aAAa,CAKf"}
@@ -0,0 +1,23 @@
1
+ import { CdpDriver } from './cdp-driver.js';
2
+ /** Tracking issues for browsers that do not have a driver yet. */
3
+ export const PLANNED_DRIVERS = {
4
+ firefox: 'https://github.com/everydaydevopsio/pilot/issues/58',
5
+ safari: 'https://github.com/everydaydevopsio/pilot/issues/60',
6
+ webkit: 'https://github.com/everydaydevopsio/pilot/issues/61'
7
+ };
8
+ export class UnsupportedBrowserError extends Error {
9
+ browser;
10
+ constructor(browser) {
11
+ super(`Pilot does not support ${browser} yet; only chrome is available. ` +
12
+ `Progress is tracked in ${PLANNED_DRIVERS[browser]}.`);
13
+ this.browser = browser;
14
+ this.name = 'UnsupportedBrowserError';
15
+ }
16
+ }
17
+ export function createDriver(kind, config, session) {
18
+ if (kind === 'chrome') {
19
+ return CdpDriver.create(config, session);
20
+ }
21
+ throw new UnsupportedBrowserError(kind);
22
+ }
23
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/browser/driver/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,kEAAkE;AAClE,MAAM,CAAC,MAAM,eAAe,GAExB;IACF,OAAO,EAAE,qDAAqD;IAC9D,MAAM,EAAE,qDAAqD;IAC7D,MAAM,EAAE,qDAAqD;CAC9D,CAAC;AAEF,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC3B;IAArB,YAAqB,OAAuC;QAC1D,KAAK,CACH,0BAA0B,OAAO,kCAAkC;YACjE,0BAA0B,eAAe,CAAC,OAAO,CAAC,GAAG,CACxD,CAAC;QAJiB,YAAO,GAAP,OAAO,CAAgC;QAK1D,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAC1B,IAAiB,EACjB,MAAc,EACd,OAAsB;IAEtB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { CdpDriver } from './cdp-driver.js';
2
+ export { TOOL_CAPABILITIES, CapabilityError, assertToolSupported, missingCapabilities, unsupportedTools } from './capabilities.js';
3
+ export { createDriver, PLANNED_DRIVERS, UnsupportedBrowserError } from './factory.js';
4
+ export { BROWSER_KINDS, CAPABILITIES } from './types.js';
5
+ export type { BrowserDriver, BrowserKind, Capability, ConnectExistingOptions, DriverSession, ViewportResizeParams } from './types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/driver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,uBAAuB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,YAAY,EACV,aAAa,EACb,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,aAAa,EACb,oBAAoB,EACrB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { CdpDriver } from './cdp-driver.js';
2
+ export { TOOL_CAPABILITIES, CapabilityError, assertToolSupported, missingCapabilities, unsupportedTools } from './capabilities.js';
3
+ export { createDriver, PLANNED_DRIVERS, UnsupportedBrowserError } from './factory.js';
4
+ export { BROWSER_KINDS, CAPABILITIES } from './types.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/driver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,uBAAuB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}