@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.
- package/AGENTS.md +11 -0
- package/CHANGELOG.md +45 -0
- package/README.md +105 -11
- package/dist/browser/browser-manager.d.ts +7 -1
- package/dist/browser/browser-manager.d.ts.map +1 -1
- package/dist/browser/browser-manager.js +196 -40
- package/dist/browser/browser-manager.js.map +1 -1
- package/dist/browser/chrome-launcher.d.ts +13 -2
- package/dist/browser/chrome-launcher.d.ts.map +1 -1
- package/dist/browser/chrome-launcher.js +33 -4
- package/dist/browser/chrome-launcher.js.map +1 -1
- package/dist/browser/driver/capabilities.d.ts +22 -0
- package/dist/browser/driver/capabilities.d.ts.map +1 -0
- package/dist/browser/driver/capabilities.js +70 -0
- package/dist/browser/driver/capabilities.js.map +1 -0
- package/dist/browser/driver/cdp-driver.d.ts +77 -0
- package/dist/browser/driver/cdp-driver.d.ts.map +1 -0
- package/dist/browser/driver/cdp-driver.js +190 -0
- package/dist/browser/driver/cdp-driver.js.map +1 -0
- package/dist/browser/driver/factory.d.ts +10 -0
- package/dist/browser/driver/factory.d.ts.map +1 -0
- package/dist/browser/driver/factory.js +23 -0
- package/dist/browser/driver/factory.js.map +1 -0
- package/dist/browser/driver/index.d.ts +6 -0
- package/dist/browser/driver/index.d.ts.map +1 -0
- package/dist/browser/driver/index.js +5 -0
- package/dist/browser/driver/index.js.map +1 -0
- package/dist/browser/driver/types.d.ts +106 -0
- package/dist/browser/driver/types.d.ts.map +1 -0
- package/dist/browser/driver/types.js +25 -0
- package/dist/browser/driver/types.js.map +1 -0
- package/dist/browser/sessions.d.ts +49 -0
- package/dist/browser/sessions.d.ts.map +1 -0
- package/dist/browser/sessions.js +249 -0
- package/dist/browser/sessions.js.map +1 -0
- package/dist/browser/types.d.ts +13 -0
- package/dist/browser/types.d.ts.map +1 -1
- package/dist/cli/skill-template.d.ts +1 -1
- package/dist/cli/skill-template.d.ts.map +1 -1
- package/dist/cli/skill-template.js +1 -1
- package/dist/cli/skill-template.js.map +1 -1
- package/dist/commands/connect.d.ts +2 -2
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +2 -2
- package/dist/commands/connect.js.map +1 -1
- package/dist/mcp/server.d.ts +9 -15
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +32 -74
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/browser.d.ts +2 -3
- package/dist/mcp/tools/browser.d.ts.map +1 -1
- package/dist/mcp/tools/browser.js +85 -70
- package/dist/mcp/tools/browser.js.map +1 -1
- package/dist/mcp/tools/connect.d.ts +2 -3
- package/dist/mcp/tools/connect.d.ts.map +1 -1
- package/dist/mcp/tools/connect.js +9 -9
- package/dist/mcp/tools/connect.js.map +1 -1
- package/dist/mcp/tools/driver-context.d.ts +14 -0
- package/dist/mcp/tools/driver-context.d.ts.map +1 -0
- package/dist/mcp/tools/driver-context.js +43 -0
- package/dist/mcp/tools/driver-context.js.map +1 -0
- package/dist/mcp/tools/files.d.ts.map +1 -1
- package/dist/mcp/tools/files.js +5 -15
- package/dist/mcp/tools/files.js.map +1 -1
- package/dist/mcp/tools/interaction.d.ts.map +1 -1
- package/dist/mcp/tools/interaction.js +7 -26
- package/dist/mcp/tools/interaction.js.map +1 -1
- package/dist/mcp/tools/names.d.ts +1 -1
- package/dist/mcp/tools/names.d.ts.map +1 -1
- package/dist/mcp/tools/names.js +2 -0
- package/dist/mcp/tools/names.js.map +1 -1
- package/dist/mcp/tools/network.d.ts.map +1 -1
- package/dist/mcp/tools/network.js +3 -11
- package/dist/mcp/tools/network.js.map +1 -1
- package/dist/mcp/tools/performance.d.ts.map +1 -1
- package/dist/mcp/tools/performance.js +2 -12
- package/dist/mcp/tools/performance.js.map +1 -1
- package/dist/mcp/tools/snapshot.d.ts.map +1 -1
- package/dist/mcp/tools/snapshot.js +3 -14
- package/dist/mcp/tools/snapshot.js.map +1 -1
- package/dist/mcp/tools/styles.d.ts.map +1 -1
- package/dist/mcp/tools/styles.js +2 -11
- package/dist/mcp/tools/styles.js.map +1 -1
- package/package.json +1 -1
- package/skills/pilot/SKILL.md +9 -0
- package/src/browser/browser-manager.ts +248 -41
- package/src/browser/chrome-launcher.ts +40 -4
- package/src/browser/driver/capabilities.ts +88 -0
- package/src/browser/driver/cdp-driver.ts +260 -0
- package/src/browser/driver/factory.ts +33 -0
- package/src/browser/driver/index.ts +22 -0
- package/src/browser/driver/types.ts +156 -0
- package/src/browser/sessions.ts +299 -0
- package/src/browser/types.ts +14 -0
- package/src/cli/skill-template.ts +1 -1
- package/src/commands/connect.ts +3 -3
- package/src/mcp/server.ts +48 -91
- package/src/mcp/tools/browser.ts +105 -87
- package/src/mcp/tools/connect.ts +10 -11
- package/src/mcp/tools/driver-context.ts +56 -0
- package/src/mcp/tools/files.ts +5 -16
- package/src/mcp/tools/interaction.ts +7 -27
- package/src/mcp/tools/names.ts +2 -0
- package/src/mcp/tools/network.ts +2 -12
- package/src/mcp/tools/performance.ts +2 -13
- package/src/mcp/tools/snapshot.ts +3 -15
- 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
|
|
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
|
|
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;
|
|
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
|
-
|
|
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
|
|
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
|
|
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":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,GAAG,MAAM,yBAAyB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,CAAC,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAE7D,MAAM,UAAU,eAAe;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACxD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,GAAG,CAAC;QAC7D,OAAO,MAAM;YACX,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE;YAC3C,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,eAAe,EAAE,CAAC,OAAO,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,wDAAwD,CAC7F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,IAAI,CAAC;QACH,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,IAAI,GAAI,GAA6B,EAAE,IAAI,CAAC;QAClD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,IAAI,GAAI,GAA6B,EAAE,IAAI,CAAC;QAClD,OAAO,IAAI,KAAK,OAAO,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,KAAK,MAAM,QAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,IAAI,GAAI,GAA6B,EAAE,IAAI,CAAC;YAClD,IAAI,IAAI,KAAK,QAAQ;gBAAE,MAAM,GAAG,CAAC;QACnC,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,EACf,0DAA0D,CAC3D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAE7C,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAEhD,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,EAAE,CAAC;IAC/B,IAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAiB;IACpD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC1C,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IAEpB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,UAAU,GACd,QAAQ,KAAK,QAAQ;QACnB,CAAC,CAAC;YACE,8DAA8D;YAC9D,oDAAoD;SACrD;QACH,CAAC,CAAC,QAAQ,KAAK,OAAO;YACpB,CAAC,CAAC;gBACE,+BAA+B;gBAC/B,wBAAwB;gBACxB,2BAA2B;gBAC3B,mBAAmB;gBACnB,oBAAoB;aACrB;YACH,CAAC,CAAC,QAAQ,KAAK,OAAO;gBACpB,CAAC,CAAC;oBACE,4DAA4D;oBAC5D,kEAAkE;iBACnE;gBACH,CAAC,CAAC,EAAE,CAAC;IAEb,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,mDAAmD,CACnF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,EAAqB,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;YAClD,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAA4B;IAC9D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3D,OAAO,IAAI,KAAK,CACd,8IAA8I,CAC/I,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,SAAS,GAAG,0BAA0B,EACtC,YAAiC;IAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,YAAY,EAAE,EAAE,CAAC;QACjC,IAAI,OAAO;YAAE,MAAM,OAAO,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,EAAE,EAAE,CAAC;IACjC,IAAI,OAAO;QAAE,MAAM,OAAO,CAAC;IAC3B,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAI,WAAW,SAAS,IAAI,CACpE,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,YAAY,CAAC,IAO5B;IACC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,IAAI,GAAG;QACX,2BAA2B,IAAI,CAAC,IAAI,EAAE;QACtC,mBAAmB,IAAI,CAAC,WAAW,EAAE;QACrC,iBAAiB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;QACxD,gBAAgB;QAChB,4BAA4B;QAC5B,wBAAwB;QACxB,sBAAsB;KACvB,CAAC;IAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CACP,yBAAyB,EACzB,+BAA+B,EAC/B,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1B,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAC1B,qPAAqP,CACtP,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CACT;QACE,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KAClD,EACD,kBAAkB,CACnB,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;QAClC,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;QACnC,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,WAAmB;IAEnB,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,QAAgB;IAEhB,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC5C,IACE,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACvD,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC,EACnE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,QAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mDAAmD;YACnD,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,GAAG,KAAK,CAAC;QACxE,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -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"}
|