@poe-platform/safe-bash 0.1.680 → 0.1.682

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 (171) hide show
  1. package/README.md +1 -1
  2. package/dist/safe-bash/commands/playwright/index.d.ts.map +1 -1
  3. package/dist/safe-bash/commands/playwright/index.js +77 -4
  4. package/dist/safe-bash/commands/playwright/index.js.map +1 -1
  5. package/dist/safe-bash/playwright/abilities.d.ts +24 -5
  6. package/dist/safe-bash/playwright/abilities.d.ts.map +1 -1
  7. package/dist/safe-bash/playwright/abilities.js +9 -4
  8. package/dist/safe-bash/playwright/abilities.js.map +1 -1
  9. package/dist/safe-bash/playwright/ability-execution.d.ts +6 -1
  10. package/dist/safe-bash/playwright/ability-execution.d.ts.map +1 -1
  11. package/dist/safe-bash/playwright/ability-execution.js +77 -5
  12. package/dist/safe-bash/playwright/ability-execution.js.map +1 -1
  13. package/dist/safe-bash/playwright/adapter.d.ts +467 -11
  14. package/dist/safe-bash/playwright/adapter.d.ts.map +1 -1
  15. package/dist/safe-bash/playwright/adapter.js +213 -4
  16. package/dist/safe-bash/playwright/adapter.js.map +1 -1
  17. package/dist/safe-bash/playwright/builtins.d.ts +45 -5
  18. package/dist/safe-bash/playwright/builtins.d.ts.map +1 -1
  19. package/dist/safe-bash/playwright/builtins.js +15 -10
  20. package/dist/safe-bash/playwright/builtins.js.map +1 -1
  21. package/dist/safe-bash/playwright/canonical-locator-parser.d.ts +5 -0
  22. package/dist/safe-bash/playwright/canonical-locator-parser.d.ts.map +1 -0
  23. package/dist/safe-bash/playwright/canonical-locator-parser.js +146 -0
  24. package/dist/safe-bash/playwright/canonical-locator-parser.js.map +1 -0
  25. package/dist/safe-bash/playwright/capability-events.d.ts +15 -0
  26. package/dist/safe-bash/playwright/capability-events.d.ts.map +1 -0
  27. package/dist/safe-bash/playwright/capability-events.js +265 -0
  28. package/dist/safe-bash/playwright/capability-events.js.map +1 -0
  29. package/dist/safe-bash/playwright/capability-result.d.ts +33 -0
  30. package/dist/safe-bash/playwright/capability-result.d.ts.map +1 -0
  31. package/dist/safe-bash/playwright/capability-result.js +72 -0
  32. package/dist/safe-bash/playwright/capability-result.js.map +1 -0
  33. package/dist/safe-bash/playwright/config-ini.d.ts +3 -0
  34. package/dist/safe-bash/playwright/config-ini.d.ts.map +1 -0
  35. package/dist/safe-bash/playwright/config-ini.js +161 -0
  36. package/dist/safe-bash/playwright/config-ini.js.map +1 -0
  37. package/dist/safe-bash/playwright/controller.d.ts +39 -1
  38. package/dist/safe-bash/playwright/controller.d.ts.map +1 -1
  39. package/dist/safe-bash/playwright/controller.js +913 -77
  40. package/dist/safe-bash/playwright/controller.js.map +1 -1
  41. package/dist/safe-bash/playwright/devices.d.ts +229 -0
  42. package/dist/safe-bash/playwright/devices.d.ts.map +1 -0
  43. package/dist/safe-bash/playwright/devices.js +2740 -0
  44. package/dist/safe-bash/playwright/devices.js.map +1 -0
  45. package/dist/safe-bash/playwright/download-capabilities.d.ts +15 -0
  46. package/dist/safe-bash/playwright/download-capabilities.d.ts.map +1 -0
  47. package/dist/safe-bash/playwright/download-capabilities.js +161 -0
  48. package/dist/safe-bash/playwright/download-capabilities.js.map +1 -0
  49. package/dist/safe-bash/playwright/drop-capability.d.ts +3 -0
  50. package/dist/safe-bash/playwright/drop-capability.d.ts.map +1 -0
  51. package/dist/safe-bash/playwright/drop-capability.js +50 -0
  52. package/dist/safe-bash/playwright/drop-capability.js.map +1 -0
  53. package/dist/safe-bash/playwright/find.d.ts +8 -0
  54. package/dist/safe-bash/playwright/find.d.ts.map +1 -0
  55. package/dist/safe-bash/playwright/find.js +68 -0
  56. package/dist/safe-bash/playwright/find.js.map +1 -0
  57. package/dist/safe-bash/playwright/generated-locator.d.ts +4 -0
  58. package/dist/safe-bash/playwright/generated-locator.d.ts.map +1 -0
  59. package/dist/safe-bash/playwright/generated-locator.js +22 -0
  60. package/dist/safe-bash/playwright/generated-locator.js.map +1 -0
  61. package/dist/safe-bash/playwright/help.d.ts +4 -3
  62. package/dist/safe-bash/playwright/help.d.ts.map +1 -1
  63. package/dist/safe-bash/playwright/help.js +7 -52
  64. package/dist/safe-bash/playwright/help.js.map +1 -1
  65. package/dist/safe-bash/playwright/highlight.d.ts +8 -0
  66. package/dist/safe-bash/playwright/highlight.d.ts.map +1 -0
  67. package/dist/safe-bash/playwright/highlight.js +82 -0
  68. package/dist/safe-bash/playwright/highlight.js.map +1 -0
  69. package/dist/safe-bash/playwright/index.d.ts +5 -0
  70. package/dist/safe-bash/playwright/index.d.ts.map +1 -1
  71. package/dist/safe-bash/playwright/index.js +4 -0
  72. package/dist/safe-bash/playwright/index.js.map +1 -1
  73. package/dist/safe-bash/playwright/invocation.d.ts +24 -0
  74. package/dist/safe-bash/playwright/invocation.d.ts.map +1 -1
  75. package/dist/safe-bash/playwright/invocation.js +43 -14
  76. package/dist/safe-bash/playwright/invocation.js.map +1 -1
  77. package/dist/safe-bash/playwright/locator-selector.d.ts +5 -0
  78. package/dist/safe-bash/playwright/locator-selector.d.ts.map +1 -0
  79. package/dist/safe-bash/playwright/locator-selector.js +70 -0
  80. package/dist/safe-bash/playwright/locator-selector.js.map +1 -0
  81. package/dist/safe-bash/playwright/modal-capabilities.d.ts +20 -0
  82. package/dist/safe-bash/playwright/modal-capabilities.d.ts.map +1 -0
  83. package/dist/safe-bash/playwright/modal-capabilities.js +137 -0
  84. package/dist/safe-bash/playwright/modal-capabilities.js.map +1 -0
  85. package/dist/safe-bash/playwright/native-json-snapshot.d.ts +17 -0
  86. package/dist/safe-bash/playwright/native-json-snapshot.d.ts.map +1 -0
  87. package/dist/safe-bash/playwright/native-json-snapshot.js +94 -0
  88. package/dist/safe-bash/playwright/native-json-snapshot.js.map +1 -0
  89. package/dist/safe-bash/playwright/native-snapshot.d.ts +17 -0
  90. package/dist/safe-bash/playwright/native-snapshot.d.ts.map +1 -0
  91. package/dist/safe-bash/playwright/native-snapshot.js +164 -0
  92. package/dist/safe-bash/playwright/native-snapshot.js.map +1 -0
  93. package/dist/safe-bash/playwright/network-policy.d.ts +2 -0
  94. package/dist/safe-bash/playwright/network-policy.d.ts.map +1 -1
  95. package/dist/safe-bash/playwright/network-policy.js +1 -1
  96. package/dist/safe-bash/playwright/network-policy.js.map +1 -1
  97. package/dist/safe-bash/playwright/open-options.d.ts +14 -0
  98. package/dist/safe-bash/playwright/open-options.d.ts.map +1 -0
  99. package/dist/safe-bash/playwright/open-options.js +279 -0
  100. package/dist/safe-bash/playwright/open-options.js.map +1 -0
  101. package/dist/safe-bash/playwright/recording-capabilities.d.ts +6 -0
  102. package/dist/safe-bash/playwright/recording-capabilities.d.ts.map +1 -0
  103. package/dist/safe-bash/playwright/recording-capabilities.js +83 -0
  104. package/dist/safe-bash/playwright/recording-capabilities.js.map +1 -0
  105. package/dist/safe-bash/playwright/resource-limit.d.ts +6 -0
  106. package/dist/safe-bash/playwright/resource-limit.d.ts.map +1 -0
  107. package/dist/safe-bash/playwright/resource-limit.js +8 -0
  108. package/dist/safe-bash/playwright/resource-limit.js.map +1 -0
  109. package/dist/safe-bash/playwright/response.d.ts +22 -0
  110. package/dist/safe-bash/playwright/response.d.ts.map +1 -0
  111. package/dist/safe-bash/playwright/response.js +43 -0
  112. package/dist/safe-bash/playwright/response.js.map +1 -0
  113. package/dist/safe-bash/playwright/route-capabilities.d.ts +25 -0
  114. package/dist/safe-bash/playwright/route-capabilities.d.ts.map +1 -0
  115. package/dist/safe-bash/playwright/route-capabilities.js +138 -0
  116. package/dist/safe-bash/playwright/route-capabilities.js.map +1 -0
  117. package/dist/safe-bash/playwright/screenshot.d.ts +3 -1
  118. package/dist/safe-bash/playwright/screenshot.d.ts.map +1 -1
  119. package/dist/safe-bash/playwright/screenshot.js +15 -12
  120. package/dist/safe-bash/playwright/screenshot.js.map +1 -1
  121. package/dist/safe-bash/playwright/session-configuration.d.ts +35 -0
  122. package/dist/safe-bash/playwright/session-configuration.d.ts.map +1 -0
  123. package/dist/safe-bash/playwright/session-configuration.js +50 -0
  124. package/dist/safe-bash/playwright/session-configuration.js.map +1 -0
  125. package/dist/safe-bash/playwright/session-runtime.d.ts +8 -0
  126. package/dist/safe-bash/playwright/session-runtime.d.ts.map +1 -0
  127. package/dist/safe-bash/playwright/session-runtime.js +96 -0
  128. package/dist/safe-bash/playwright/session-runtime.js.map +1 -0
  129. package/dist/safe-bash/playwright/snapshot.d.ts +15 -2
  130. package/dist/safe-bash/playwright/snapshot.d.ts.map +1 -1
  131. package/dist/safe-bash/playwright/snapshot.js +88 -9
  132. package/dist/safe-bash/playwright/snapshot.js.map +1 -1
  133. package/dist/safe-bash/playwright/standard-capabilities.d.ts +4 -0
  134. package/dist/safe-bash/playwright/standard-capabilities.d.ts.map +1 -0
  135. package/dist/safe-bash/playwright/standard-capabilities.js +248 -0
  136. package/dist/safe-bash/playwright/standard-capabilities.js.map +1 -0
  137. package/dist/safe-bash/playwright/storage-capabilities.d.ts +4 -0
  138. package/dist/safe-bash/playwright/storage-capabilities.d.ts.map +1 -0
  139. package/dist/safe-bash/playwright/storage-capabilities.js +120 -0
  140. package/dist/safe-bash/playwright/storage-capabilities.js.map +1 -0
  141. package/dist/safe-bash/playwright/storage-state.d.ts +8 -0
  142. package/dist/safe-bash/playwright/storage-state.d.ts.map +1 -0
  143. package/dist/safe-bash/playwright/storage-state.js +122 -0
  144. package/dist/safe-bash/playwright/storage-state.js.map +1 -0
  145. package/dist/safe-bash/playwright/target-screenshot.d.ts +9 -0
  146. package/dist/safe-bash/playwright/target-screenshot.d.ts.map +1 -0
  147. package/dist/safe-bash/playwright/target-screenshot.js +28 -0
  148. package/dist/safe-bash/playwright/target-screenshot.js.map +1 -0
  149. package/dist/safe-bash/playwright/targets.d.ts +12 -0
  150. package/dist/safe-bash/playwright/targets.d.ts.map +1 -0
  151. package/dist/safe-bash/playwright/targets.js +36 -0
  152. package/dist/safe-bash/playwright/targets.js.map +1 -0
  153. package/dist/safe-bash/playwright/tracing-capabilities.d.ts +12 -0
  154. package/dist/safe-bash/playwright/tracing-capabilities.d.ts.map +1 -0
  155. package/dist/safe-bash/playwright/tracing-capabilities.js +100 -0
  156. package/dist/safe-bash/playwright/tracing-capabilities.js.map +1 -0
  157. package/dist/safe-bash/playwright/webmcp-capabilities.d.ts +6 -0
  158. package/dist/safe-bash/playwright/webmcp-capabilities.d.ts.map +1 -0
  159. package/dist/safe-bash/playwright/webmcp-capabilities.js +122 -0
  160. package/dist/safe-bash/playwright/webmcp-capabilities.js.map +1 -0
  161. package/dist/safe-bash/playwright/workspace-assets.d.ts +5 -0
  162. package/dist/safe-bash/playwright/workspace-assets.d.ts.map +1 -0
  163. package/dist/safe-bash/playwright/workspace-assets.js +17 -0
  164. package/dist/safe-bash/playwright/workspace-assets.js.map +1 -0
  165. package/dist/safe-bash/playwright/workspace.d.ts +3 -0
  166. package/dist/safe-bash/playwright/workspace.d.ts.map +1 -0
  167. package/dist/safe-bash/playwright/workspace.js +48 -0
  168. package/dist/safe-bash/playwright/workspace.js.map +1 -0
  169. package/package.json +4 -3
  170. package/third-party/playwright/LICENSE +208 -0
  171. package/third-party/playwright/NOTICE +14 -0
package/README.md CHANGED
@@ -86,7 +86,7 @@ These plugins are separate from `agentCommands()`; pass them to `shell.use(...)`
86
86
  | `curl` | `networkCommands({ authorize, transport?, limits?, replace? })`: required authorization on every request, redirect, and retry. Node uses the native HTTP transport; Workers can inject `createFetchTransport()`. `createOriginAuthorizer([...])` provides exact origin/hostname policy; its omitted allowlist is deliberately `*` (allow all). [Options and limits](src/commands/network/types.ts). |
87
87
  | `node` | `nodeCommands({ runtime, limits?, replace? })`: runs JavaScript with an injected SafeJS runtime, virtual files, and shell streams. [Usage and supported subset](src/commands/node/README.md). |
88
88
  | `llm` | `llmCommands({ providers, defaultModel?, replace? })`: opt-in model routing, sandbox attachments and streamed text/binary output. Includes injected-transport OpenAI and ElevenLabs reference providers. [Configuration and provider contract](src/commands/llm/README.md). |
89
- | `playwright-cli` | Standard browser commands through a host-owned adapter. `installPlaywrightNetworkPolicy` from `/playwright` supports browser-native redirects with per-hop bounded host HTTP fetch and independent direct HTTP/WebSocket denial. Cloudflare guardrails do not establish WebRTC/UDP denial or all-protocol accounting; hosts requiring those guarantees must refuse this integration. [Network policy and lifecycle](src/contracts/playwright-network-policy.md). |
89
+ | `playwright-cli` | Standard browser commands, storage state, native snapshots, recordings, and traces through a host-owned adapter. [Sessions and host capabilities](src/contracts/playwright-sessions.md). `installPlaywrightNetworkPolicy` from `/playwright` supports browser-native redirects with per-hop bounded host HTTP fetch and independent direct HTTP/WebSocket denial. Cloudflare guardrails do not establish WebRTC/UDP denial or all-protocol accounting; hosts requiring those guarantees must refuse this integration. [Network policy and lifecycle](src/contracts/playwright-network-policy.md). |
90
90
 
91
91
  Storage can be in memory, a rooted host directory, S3-compatible storage, or WebDAV,
92
92
  with read-only wrappers, mounts, and overlays. Choose and configure it explicitly;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/playwright/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,MAAM,oBAAoB,GAAG,2BAA2B,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEhG,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB;;;;;EA2CrE;AAED,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/playwright/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAIpE,MAAM,MAAM,oBAAoB,GAAG,2BAA2B,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAiBhG,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB;;;;;EAoFrE;AAED,cAAc,2BAA2B,CAAC"}
@@ -1,6 +1,23 @@
1
1
  import { createPlaywrightController } from '../../playwright/index.js';
2
- import { resolvePath } from '../../contracts/path.js';
2
+ import { dirname, resolvePath } from '../../contracts/path.js';
3
3
  import { writeBytes } from '../../contracts/io.js';
4
+ function errorMessage(error) {
5
+ const messages = [];
6
+ const seen = new Set();
7
+ const pending = [error];
8
+ while (pending.length && seen.size < 32) {
9
+ const item = pending.shift();
10
+ if (seen.has(item))
11
+ continue;
12
+ seen.add(item);
13
+ const message = item instanceof Error ? item.message : String(item);
14
+ if (!messages.includes(message))
15
+ messages.push(message);
16
+ if (item instanceof AggregateError)
17
+ pending.unshift(...item.errors.slice(0, 32 - seen.size));
18
+ }
19
+ return messages.join(': ');
20
+ }
4
21
  /** Host-owned qualified agent subset; never installed by agentCommands. */
5
22
  export function createPlaywrightCli(options = {}) {
6
23
  if (options?.replace !== undefined && typeof options.replace !== 'boolean')
@@ -20,6 +37,54 @@ export function createPlaywrightCli(options = {}) {
20
37
  env: context.env,
21
38
  signal: context.signal,
22
39
  registerCleanup: context.registerCleanup,
40
+ workspace: {
41
+ cwd: context.cwd,
42
+ ...(context.env.HOME ? { home: context.env.HOME } : {}),
43
+ async mkdir(filename) { await context.fs.mkdir(resolvePath(context.cwd, filename), { recursive: true, signal: context.signal }); },
44
+ async exists(filename) {
45
+ try {
46
+ await context.fs.stat(resolvePath(context.cwd, filename), { signal: context.signal });
47
+ return true;
48
+ }
49
+ catch (error) {
50
+ if (error && typeof error === 'object' && Reflect.get(error, 'code') === 'ENOENT')
51
+ return false;
52
+ throw error;
53
+ }
54
+ },
55
+ async listFiles(directory, maxEntries) {
56
+ const pending = [resolvePath(context.cwd, directory)];
57
+ const files = [];
58
+ let visited = 0;
59
+ while (pending.length) {
60
+ const path = pending.pop();
61
+ let entries;
62
+ try {
63
+ entries = await context.fs.readdir(path, { signal: context.signal, maxEntries: maxEntries - visited });
64
+ }
65
+ catch (error) {
66
+ if (error && typeof error === 'object' && Reflect.get(error, 'code') === 'ENOENT')
67
+ continue;
68
+ throw error;
69
+ }
70
+ visited += entries.length;
71
+ if (visited > maxEntries)
72
+ throw new Error('Playwright output directory entry limit exceeded');
73
+ for (const entry of entries) {
74
+ const filename = resolvePath(path, entry.name);
75
+ if (entry.type === 'directory')
76
+ pending.push(filename);
77
+ else if (entry.type === 'file') {
78
+ const stat = await context.fs.stat(filename, { signal: context.signal });
79
+ if (stat.type === 'file')
80
+ files.push({ filename, size: stat.size, mtimeMs: stat.mtimeMs });
81
+ }
82
+ }
83
+ }
84
+ return files;
85
+ },
86
+ async removeFile(filename) { await context.fs.rm(filename, { signal: context.signal }); },
87
+ },
23
88
  readArtifact: async (filename, maxBytes) => {
24
89
  context.signal.throwIfAborted();
25
90
  const path = resolvePath(context.cwd, filename);
@@ -32,8 +97,11 @@ export function createPlaywrightCli(options = {}) {
32
97
  context.signal.throwIfAborted();
33
98
  if (filename === undefined)
34
99
  await writeBytes(context.stdout, bytes, context.signal);
35
- else
36
- await context.fs.writeFile(resolvePath(context.cwd, filename), bytes, { signal: context.signal });
100
+ else {
101
+ const path = resolvePath(context.cwd, filename);
102
+ await context.fs.mkdir(dirname(path), { recursive: true, signal: context.signal });
103
+ await context.fs.writeFile(path, bytes, { signal: context.signal });
104
+ }
37
105
  },
38
106
  write: text => writeBytes(context.stdout, new TextEncoder().encode(text), context.signal),
39
107
  });
@@ -41,7 +109,12 @@ export function createPlaywrightCli(options = {}) {
41
109
  }
42
110
  catch (error) {
43
111
  context.signal.throwIfAborted();
44
- await writeBytes(context.stderr, new TextEncoder().encode(`playwright-cli: ${error instanceof Error ? error.message : String(error)}\n`), context.signal);
112
+ const end = context.args.indexOf('--');
113
+ if (context.args.slice(0, end === -1 ? undefined : end).includes('--json')) {
114
+ await writeBytes(context.stdout, new TextEncoder().encode(JSON.stringify({ isError: true, error: errorMessage(error) }, null, 2) + '\n'), context.signal);
115
+ return { exitCode: 1 };
116
+ }
117
+ await writeBytes(context.stderr, new TextEncoder().encode(`playwright-cli: ${errorMessage(error)}\n`), context.signal);
45
118
  return { exitCode: 1 };
46
119
  }
47
120
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/playwright/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/playwright/index.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,36 @@
1
- import type { PlaywrightContext, PlaywrightElementHandle, PlaywrightPage } from './adapter.js';
1
+ import type { PlaywrightContext, PlaywrightElementHandle, PlaywrightPage, PlaywrightStorageState, PlaywrightArtifactCapture, PlaywrightCodeExecutor, PlaywrightTraceCapture, PlaywrightActionCodeGenerator } from './adapter.js';
2
+ import type { PlaywrightCommandResult } from './response.js';
3
+ import type { PlaywrightSessionConfiguration } from './session-configuration.js';
2
4
  import { type PlaywrightCommand, type PlaywrightCommandDefinition } from './catalog.js';
3
- import { type PlaywrightBuiltinCommand } from './builtins.js';
4
5
  export interface PlaywrightAbilityRequest {
5
6
  readonly command: PlaywrightCommand;
6
7
  readonly session: string;
7
8
  readonly args: readonly string[];
8
9
  readonly options: Readonly<Record<string, string | boolean | readonly string[]>>;
9
10
  readonly signal: AbortSignal;
11
+ readonly limits?: {
12
+ readonly maxCommandBytes: number;
13
+ readonly maxArtifactBytes: number;
14
+ readonly actionTimeoutMs?: number;
15
+ readonly codeExecutionTimeoutMs?: number;
16
+ readonly navigationTimeoutMs?: number;
17
+ readonly maxPages?: number;
18
+ };
10
19
  readonly browserSession?: {
20
+ readonly configuration?: PlaywrightSessionConfiguration;
11
21
  readonly context: PlaywrightContext;
12
22
  readonly page: PlaywrightPage | undefined;
13
23
  resolveTarget(ref: string): Promise<PlaywrightElementHandle>;
24
+ targetLocator?(target: string): string;
14
25
  selectPage(page: PlaywrightPage): Promise<void>;
26
+ replaceContext?(state: PlaywrightStorageState): Promise<void>;
27
+ invalidateTargets?(): Promise<void>;
28
+ runAction?(action: () => Promise<void>): Promise<void>;
29
+ readonly captureArtifact?: PlaywrightArtifactCapture;
30
+ readonly captureTrace?: PlaywrightTraceCapture;
31
+ readonly executeCode?: PlaywrightCodeExecutor;
32
+ readonly generateActionCode?: PlaywrightActionCodeGenerator;
33
+ readonly prepareFileBytes?: (bytes: Uint8Array) => Uint8Array;
15
34
  registerCleanup(cleanup: () => Promise<void>): void;
16
35
  };
17
36
  write(text: string): Promise<void>;
@@ -23,13 +42,13 @@ export interface PlaywrightAbility {
23
42
  readonly options?: readonly string[] | 'all';
24
43
  readonly scope?: 'client' | 'session';
25
44
  readonly limitations?: string;
26
- execute(request: PlaywrightAbilityRequest): Promise<void>;
45
+ execute(request: PlaywrightAbilityRequest): Promise<void | PlaywrightCommandResult>;
27
46
  }
28
47
  export type PlaywrightAbilities = {
29
- readonly [Command in PlaywrightCommand]?: PlaywrightAbility | (Command extends PlaywrightBuiltinCommand ? true : never);
48
+ readonly [Command in PlaywrightCommand]?: PlaywrightAbility | true;
30
49
  };
31
50
  export interface RegisteredPlaywrightAbility {
32
- readonly execute?: (request: PlaywrightAbilityRequest) => Promise<void>;
51
+ readonly execute?: (request: PlaywrightAbilityRequest) => Promise<void | PlaywrightCommandResult>;
33
52
  readonly scope: 'client' | 'session';
34
53
  readonly arity: readonly [number, number];
35
54
  readonly options: PlaywrightCommandDefinition['options'];
@@ -1 +1 @@
1
- {"version":3,"file":"abilities.d.ts","sourceRoot":"","sources":["../../src/playwright/abilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAA4B,KAAK,iBAAiB,EAAE,KAAK,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAClH,OAAO,EAA2C,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEvG,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IACjF,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;QACpC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC;QAC1C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC7D,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,eAAe,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KACrD,CAAC;IACF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,eAAe,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,OAAO,IAAI,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,GAAG,CAAC,OAAO,SAAS,wBAAwB,GAAG,IAAI,GAAG,KAAK,CAAC;CACxH,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAMD,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,mBAAmB,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,WAAW,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CA6BxK"}
1
+ {"version":3,"file":"abilities.d.ts","sourceRoot":"","sources":["../../src/playwright/abilities.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,29 @@
1
+ import { playwrightStandardAbilities } from './standard-capabilities.js';
1
2
  import { playwrightCommandCatalog } from './catalog.js';
2
3
  import { playwrightBuiltinCommands, limitedForms } from './builtins.js';
3
4
  const builtinOptions = {
4
- open: ['browser', 'headed', 'headless'], snapshot: ['filename'], screenshot: ['filename', 'full-page'],
5
+ attach: ['cdp', 'endpoint', 'extension', 'config', 'idle-timeout'],
6
+ install: ['skills', 'global'], 'install-browser': ['with-deps', 'dry-run', 'list', 'force', 'only-shell', 'no-shell'],
7
+ open: ['browser', 'headed', 'headless', 'config', 'device', 'mobile', 'idle-timeout', 'persistent', 'profile'], snapshot: ['filename', 'depth', 'boxes'], screenshot: ['filename', 'full-page', 'type', 'hires'],
8
+ click: ['modifiers'], fill: ['submit'], list: ['all'], find: ['regex'], highlight: ['hide', 'style'],
5
9
  };
6
10
  export function registerPlaywrightAbilities(abilities, hasAdapter) {
7
11
  if (abilities !== undefined && (!abilities || typeof abilities !== 'object' || Array.isArray(abilities)))
8
12
  throw new TypeError('Invalid Playwright abilities');
9
13
  const entries = abilities === undefined
10
- ? Object.keys(playwrightBuiltinCommands).filter(command => hasAdapter || ['list', 'close', 'close-all'].includes(command)).map(command => [command, true])
14
+ ? [...Object.keys(playwrightBuiltinCommands), ...(hasAdapter ? Object.keys(playwrightStandardAbilities) : [])].filter(command => hasAdapter || ['list', 'close', 'close-all', 'kill-all', 'install'].includes(command)).map(command => [command, true])
11
15
  : Object.entries(abilities);
12
16
  const registered = new Map();
13
- for (const [name, ability] of entries) {
17
+ for (const [name, supplied] of entries) {
14
18
  if (!Object.hasOwn(playwrightCommandCatalog, name))
15
19
  throw new TypeError(`Unknown Playwright ability: ${name}`);
16
20
  const command = name;
17
21
  const definition = playwrightCommandCatalog[command];
22
+ const ability = supplied === true && playwrightStandardAbilities[command] ? playwrightStandardAbilities[command] : supplied;
18
23
  if (ability === true) {
19
24
  if (!Object.hasOwn(playwrightBuiltinCommands, name))
20
25
  throw new TypeError(`No built-in Playwright ability: ${name}`);
21
- if (!hasAdapter && !['list', 'close', 'close-all'].includes(name))
26
+ if (!hasAdapter && !['list', 'close', 'close-all', 'kill-all', 'install'].includes(name))
22
27
  throw new TypeError(`An injected Playwright adapter is required for ${name}`);
23
28
  const builtin = name;
24
29
  const metadata = playwrightBuiltinCommands[builtin];
@@ -1 +1 @@
1
- {"version":3,"file":"abilities.js","sourceRoot":"","sources":["../../src/playwright/abilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abilities.js","sourceRoot":"","sources":["../../src/playwright/abilities.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,15 @@
1
1
  import type { PlaywrightAbilityRequest, RegisteredPlaywrightAbility } from './abilities.js';
2
2
  import type { ParsedInvocation, PlaywrightInvocation } from './invocation.js';
3
+ import type { PlaywrightCommandResult } from './response.js';
3
4
  export declare function executePlaywrightAbility(ability: RegisteredPlaywrightAbility, parsed: ParsedInvocation, invocation: PlaywrightInvocation, context: {
4
5
  readonly signal: AbortSignal;
5
6
  readonly maxCommandBytes: number;
6
7
  readonly maxArtifactBytes: number;
8
+ readonly actionTimeoutMs?: number;
9
+ readonly codeExecutionTimeoutMs?: number;
10
+ readonly navigationTimeoutMs?: number;
11
+ readonly maxPages?: number;
7
12
  readonly browserSession?: PlaywrightAbilityRequest['browserSession'];
8
13
  check(): void;
9
- }): Promise<void>;
14
+ }): Promise<void | PlaywrightCommandResult>;
10
15
  //# sourceMappingURL=ability-execution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ability-execution.d.ts","sourceRoot":"","sources":["../../src/playwright/ability-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE9E,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,2BAA2B,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE;IACxJ,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IACrE,KAAK,IAAI,IAAI,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FhB"}
1
+ {"version":3,"file":"ability-execution.d.ts","sourceRoot":"","sources":["../../src/playwright/ability-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAU7D,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,2BAA2B,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE;IACxJ,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IACrE,KAAK,IAAI,IAAI,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,GAAG,uBAAuB,CAAC,CA2J1C"}
@@ -1,3 +1,11 @@
1
+ function freezeConfiguration(value) {
2
+ if (value && typeof value === 'object') {
3
+ for (const child of Object.values(value))
4
+ freezeConfiguration(child);
5
+ Object.freeze(value);
6
+ }
7
+ return value;
8
+ }
1
9
  export async function executePlaywrightAbility(ability, parsed, invocation, context) {
2
10
  let accepting = true;
3
11
  let bytesUsed = 0;
@@ -10,7 +18,7 @@ export async function executePlaywrightAbility(ability, parsed, invocation, cont
10
18
  };
11
19
  const admitBytes = (bytes) => {
12
20
  if (bytes > context.maxCommandBytes - bytesUsed)
13
- throw new Error('Playwright command byte limit exceeded');
21
+ throw new PlaywrightResourceLimitError('Playwright command byte limit exceeded');
14
22
  bytesUsed += bytes;
15
23
  };
16
24
  const track = (action) => {
@@ -26,9 +34,39 @@ export async function executePlaywrightAbility(ability, parsed, invocation, cont
26
34
  const browserSession = context.browserSession;
27
35
  const request = Object.freeze({
28
36
  command: parsed.command, session: parsed.session, args: parsed.args, options: parsed.options, signal: context.signal,
37
+ limits: Object.freeze({ maxCommandBytes: context.maxCommandBytes, maxArtifactBytes: context.maxArtifactBytes, actionTimeoutMs: context.actionTimeoutMs ?? 5000, codeExecutionTimeoutMs: context.codeExecutionTimeoutMs ?? 30000, navigationTimeoutMs: context.navigationTimeoutMs ?? 60000, maxPages: context.maxPages ?? 16 }),
29
38
  ...(browserSession ? { browserSession: Object.freeze({
30
39
  context: browserSession.context,
31
40
  page: browserSession.page,
41
+ ...(browserSession.configuration ? { configuration: freezeConfiguration(structuredClone(browserSession.configuration)) } : {}),
42
+ ...(browserSession.generateActionCode ? { generateActionCode: ((options) => {
43
+ check();
44
+ const code = browserSession.generateActionCode(structuredClone(options));
45
+ check();
46
+ if (typeof code !== 'string')
47
+ throw new TypeError('Native Playwright generated code must be text');
48
+ admitBytes(new TextEncoder().encode(code).byteLength);
49
+ return code;
50
+ }) } : {}),
51
+ ...(browserSession.targetLocator ? { targetLocator(target) {
52
+ check();
53
+ return browserSession.targetLocator(target);
54
+ } } : {}),
55
+ ...(browserSession.captureTrace ? { captureTrace: ((traceContext, options) => {
56
+ check();
57
+ return track(() => browserSession.captureTrace(traceContext, { signal: AbortSignal.any([context.signal, options.signal]), maxBytes: Math.min(options.maxBytes, context.maxArtifactBytes, context.maxCommandBytes) }));
58
+ }) } : {}),
59
+ ...(browserSession.executeCode ? { executeCode: ((options) => {
60
+ check();
61
+ // The lease and runAction own suspended execution across modal commands.
62
+ // Invocation tracking here would wait on the dialog it must first return.
63
+ return browserSession.executeCode({ ...options,
64
+ signal: AbortSignal.any([context.signal, options.signal]),
65
+ timeoutMs: Math.min(options.timeoutMs, context.codeExecutionTimeoutMs ?? 30000),
66
+ maxOutputBytes: Math.min(options.maxOutputBytes, context.maxCommandBytes - bytesUsed),
67
+ maxPages: Math.min(options.maxPages, context.maxPages ?? 16),
68
+ });
69
+ }) } : {}),
32
70
  resolveTarget(ref) {
33
71
  check();
34
72
  return track(async () => {
@@ -42,6 +80,37 @@ export async function executePlaywrightAbility(ability, parsed, invocation, cont
42
80
  check();
43
81
  return track(async () => { context.check(); await browserSession.selectPage(page); context.check(); });
44
82
  },
83
+ ...(browserSession.replaceContext ? { replaceContext(state) {
84
+ check();
85
+ return track(async () => { context.check(); await browserSession.replaceContext(state); context.check(); });
86
+ } } : {}),
87
+ ...(browserSession.invalidateTargets ? { invalidateTargets() {
88
+ check();
89
+ return track(async () => { context.check(); await browserSession.invalidateTargets(); context.check(); });
90
+ } } : {}),
91
+ ...(browserSession.runAction ? { runAction(action) {
92
+ check();
93
+ return track(async () => { context.check(); await browserSession.runAction(action); context.check(); });
94
+ } } : {}),
95
+ ...(browserSession.prepareFileBytes ? { prepareFileBytes(bytes) {
96
+ check();
97
+ if (!(bytes instanceof Uint8Array) || bytes.byteLength > context.maxArtifactBytes || bytes.byteLength > context.maxCommandBytes)
98
+ throw new PlaywrightResourceLimitError('Artifact byte limit exceeded');
99
+ return browserSession.prepareFileBytes(bytes);
100
+ } } : {}),
101
+ ...(browserSession.captureArtifact ? { captureArtifact: ((produce, options) => {
102
+ check();
103
+ const signal = AbortSignal.any([context.signal, options.signal]);
104
+ const maxBytes = Math.min(options.maxBytes, context.maxArtifactBytes, context.maxCommandBytes - bytesUsed);
105
+ return track(async () => {
106
+ context.check();
107
+ const bytes = await browserSession.captureArtifact(produce, { ...options, signal, maxBytes });
108
+ context.check();
109
+ if (!(bytes instanceof Uint8Array) || bytes.byteLength > maxBytes)
110
+ throw new PlaywrightResourceLimitError('Artifact byte limit exceeded');
111
+ return bytes;
112
+ });
113
+ }) } : {}),
45
114
  registerCleanup(cleanup) {
46
115
  check();
47
116
  if (typeof cleanup !== 'function')
@@ -54,7 +123,7 @@ export async function executePlaywrightAbility(ability, parsed, invocation, cont
54
123
  if (typeof text !== 'string')
55
124
  throw new TypeError('Playwright output must be text');
56
125
  if (text.length > context.maxCommandBytes - bytesUsed)
57
- throw new Error('Playwright command byte limit exceeded');
126
+ throw new PlaywrightResourceLimitError('Playwright command byte limit exceeded');
58
127
  admitBytes(new TextEncoder().encode(text).byteLength);
59
128
  return track(async () => { context.check(); await invocation.write(text); context.check(); });
60
129
  },
@@ -69,7 +138,7 @@ export async function executePlaywrightAbility(ability, parsed, invocation, cont
69
138
  if (!(bytes instanceof Uint8Array))
70
139
  throw new TypeError('Artifact input must return bytes');
71
140
  if (bytes.byteLength > context.maxArtifactBytes)
72
- throw new Error('Artifact byte limit exceeded');
141
+ throw new PlaywrightResourceLimitError('Artifact byte limit exceeded');
73
142
  admitBytes(bytes.byteLength);
74
143
  context.check();
75
144
  return new Uint8Array(bytes);
@@ -80,7 +149,7 @@ export async function executePlaywrightAbility(ability, parsed, invocation, cont
80
149
  if (!(bytes instanceof Uint8Array))
81
150
  throw new TypeError('Artifact output must be bytes');
82
151
  if (bytes.byteLength > context.maxArtifactBytes)
83
- throw new Error('Artifact byte limit exceeded');
152
+ throw new PlaywrightResourceLimitError('Artifact byte limit exceeded');
84
153
  if (filename !== undefined)
85
154
  filenameCheck(filename);
86
155
  if (!invocation.writeArtifact)
@@ -97,9 +166,10 @@ export async function executePlaywrightAbility(ability, parsed, invocation, cont
97
166
  },
98
167
  });
99
168
  const failures = [];
169
+ let result = undefined;
100
170
  try {
101
171
  context.check();
102
- await ability.execute(request);
172
+ result = await ability.execute(request);
103
173
  context.check();
104
174
  }
105
175
  catch (error) {
@@ -122,5 +192,7 @@ export async function executePlaywrightAbility(ability, parsed, invocation, cont
122
192
  throw failures[0];
123
193
  if (failures.length)
124
194
  throw new AggregateError(failures, 'Playwright ability execution and cleanup failed');
195
+ return result;
125
196
  }
197
+ import { PlaywrightResourceLimitError } from './resource-limit.js';
126
198
  //# sourceMappingURL=ability-execution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ability-execution.js","sourceRoot":"","sources":["../../src/playwright/ability-execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ability-execution.js","sourceRoot":"","sources":["../../src/playwright/ability-execution.ts"],"names":[],"mappings":"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"}