@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
@@ -1,4 +1,26 @@
1
1
  import { createFrameSnapshot } from './frame-snapshot.js';
2
+ import { captureNativePlaywrightSnapshot } from './native-snapshot.js';
3
+ import { captureNativePlaywrightJSON } from './native-json-snapshot.js';
4
+ class SnapshotStaleCaptureError extends Error {
5
+ constructor() { super('Snapshot stale during capture'); }
6
+ }
7
+ async function captureStable(capture, options, signal) {
8
+ const timeout = options.timeout ?? 5000;
9
+ const deadline = timeout === 0 ? undefined : Date.now() + timeout;
10
+ try {
11
+ return await capture(options);
12
+ }
13
+ catch (error) {
14
+ // Retry only the read; a root handle may belong to the document that navigated away.
15
+ if (!(error instanceof SnapshotStaleCaptureError) || options.root)
16
+ throw error;
17
+ signal?.throwIfAborted();
18
+ const remaining = deadline === undefined ? 0 : deadline - Date.now();
19
+ if (deadline !== undefined && remaining <= 0)
20
+ throw error;
21
+ return capture({ ...options, timeout: remaining });
22
+ }
23
+ }
2
24
  export function createSnapshotEngine(limits, nextRef) {
3
25
  for (const value of [limits?.maxSnapshotBytes, limits?.maxSnapshotRefs])
4
26
  if (!Number.isSafeInteger(value) || value < 1)
@@ -72,8 +94,24 @@ export function createSnapshotEngine(limits, nextRef) {
72
94
  await retire([]);
73
95
  }
74
96
  };
75
- const capture = async (page, signal) => {
97
+ const capture = async (page, signal, options = {}) => captureStable(async (options) => {
76
98
  signal?.throwIfAborted();
99
+ if (!page.ariaSnapshot && !page._snapshotForAI && (options.root || options.depth || options.boxes))
100
+ throw new Error('Native snapshot options unsupported by this browser');
101
+ if (page.ariaSnapshot || page._snapshotForAI) {
102
+ await invalidate();
103
+ const capturedEpoch = epoch;
104
+ const captured = await captureNativePlaywrightSnapshot(page, { maxBytes: maxSnapshotBytes, maxRefs: maxSnapshotRefs,
105
+ nextRef: nextRef ?? (() => `e${++sequence}`), ...(signal ? { signal } : {}),
106
+ ...options,
107
+ });
108
+ signal?.throwIfAborted();
109
+ if (capturedEpoch !== epoch)
110
+ throw new SnapshotStaleCaptureError();
111
+ for (const [issued, ref] of captured.refs)
112
+ refs.set(issued, { kind: 'native', page, ref });
113
+ return captured.text;
114
+ }
77
115
  if (typeof page.frames !== 'function')
78
116
  throw new Error('Snapshot engine unsupported: public frame evaluation required');
79
117
  const frames = page.frames();
@@ -96,31 +134,31 @@ export function createSnapshotEngine(limits, nextRef) {
96
134
  signal?.throwIfAborted();
97
135
  const admission = await capsule.evaluate(value => ({ status: value.status, count: value.count }), undefined);
98
136
  if (admission.status === 'ref-limit' || admission.count > maxSnapshotRefs - pending.size)
99
- throw new Error('Snapshot ref limit exceeded');
137
+ throw new PlaywrightResourceLimitError('Snapshot ref limit exceeded');
100
138
  if (admission.status !== 'ok' || !Number.isSafeInteger(admission.count) || admission.count < 0)
101
139
  throw new Error('Snapshot capture failed');
102
140
  const frameRefs = [];
103
141
  for (let slot = 0; slot < admission.count; slot++) {
104
142
  const ref = nextRef?.() ?? `e${++sequence}`;
105
143
  frameRefs.push(ref);
106
- pending.set(ref, { capsule, slot });
144
+ pending.set(ref, { kind: 'capsule', capsule, slot });
107
145
  }
108
146
  signal?.throwIfAborted();
109
147
  const rendered = await capsule.evaluate((value, frameRefs) => value.render(frameRefs), frameRefs);
110
148
  if (rendered.status === 'byte-limit')
111
- throw new Error('Snapshot byte limit exceeded');
149
+ throw new PlaywrightResourceLimitError('Snapshot byte limit exceeded');
112
150
  if (rendered.status !== 'ok' || typeof rendered.text !== 'string')
113
151
  throw new Error('Snapshot capture failed');
114
152
  if (rendered.text.length > maxSnapshotBytes - bytes)
115
- throw new Error('Snapshot byte limit exceeded');
153
+ throw new PlaywrightResourceLimitError('Snapshot byte limit exceeded');
116
154
  bytes += new TextEncoder().encode(rendered.text).byteLength;
117
155
  if (bytes > maxSnapshotBytes)
118
- throw new Error('Snapshot byte limit exceeded');
156
+ throw new PlaywrightResourceLimitError('Snapshot byte limit exceeded');
119
157
  text += rendered.text;
120
158
  }
121
159
  signal?.throwIfAborted();
122
160
  if (capturedEpoch !== epoch)
123
- throw new Error('Snapshot stale during capture');
161
+ throw new SnapshotStaleCaptureError();
124
162
  for (const resource of acquired)
125
163
  resources.add(resource);
126
164
  for (const [ref, reference] of pending)
@@ -136,12 +174,37 @@ export function createSnapshotEngine(limits, nextRef) {
136
174
  }
137
175
  throw error;
138
176
  }
139
- };
177
+ }, options, signal);
140
178
  const resolve = async (ref) => {
141
179
  const reference = refs.get(ref);
142
180
  if (!reference)
143
181
  throw new Error(`Unknown or stale snapshot ref: ${ref}; snapshot again`);
144
182
  const capturedEpoch = epoch;
183
+ if (reference.kind === 'native') {
184
+ if (!reference.native) {
185
+ const locator = reference.page.locator(`aria-ref=${reference.ref}`);
186
+ if (!locator.elementHandle)
187
+ throw new Error('Native snapshot target resolution unavailable');
188
+ let handle;
189
+ try {
190
+ handle = await locator.elementHandle({ timeout: 30000 });
191
+ }
192
+ catch {
193
+ throw new Error(`Snapshot ref stale: ${ref}; snapshot again`);
194
+ }
195
+ if (!handle || capturedEpoch !== epoch) {
196
+ if (handle)
197
+ await retire([handle]);
198
+ throw new Error(`Snapshot ref stale: ${ref}; snapshot again`);
199
+ }
200
+ resources.add(handle);
201
+ reference.native = handle;
202
+ }
203
+ const connected = await reference.native.evaluate(node => node.isConnected);
204
+ if (!connected || capturedEpoch !== epoch)
205
+ throw new Error(`Snapshot ref stale: ${ref}; snapshot again`);
206
+ return reference.native;
207
+ }
145
208
  let connected = false;
146
209
  try {
147
210
  connected = await reference.capsule.evaluate((capsule, slot) => {
@@ -166,6 +229,22 @@ export function createSnapshotEngine(limits, nextRef) {
166
229
  }
167
230
  return reference.native;
168
231
  };
169
- return { capture, resolve, invalidate, withReferences };
232
+ const captureJSON = async (page, signal, options = {}) => captureStable(async (options) => {
233
+ await invalidate();
234
+ const capturedEpoch = epoch;
235
+ const captured = await captureNativePlaywrightJSON(page, { maxBytes: maxSnapshotBytes, maxRefs: maxSnapshotRefs,
236
+ nextRef: nextRef ?? (() => `e${++sequence}`), ...(signal ? { signal } : {}), ...options });
237
+ signal?.throwIfAborted();
238
+ if (capturedEpoch !== epoch)
239
+ throw new SnapshotStaleCaptureError();
240
+ for (const [issued, ref] of captured.refs)
241
+ refs.set(issued, { kind: 'native', page, ref });
242
+ return captured.tree;
243
+ }, options, signal);
244
+ return { capture, captureJSON, resolve, invalidate, withReferences, nativeSelector(ref) {
245
+ const reference = refs.get(ref);
246
+ return reference?.kind === 'native' ? `aria-ref=${reference.ref}` : undefined;
247
+ } };
170
248
  }
249
+ import { PlaywrightResourceLimitError } from './resource-limit.js';
171
250
  //# sourceMappingURL=snapshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/playwright/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/playwright/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PlaywrightAbility } from './abilities.js';
2
+ import type { PlaywrightCommand } from './catalog.js';
3
+ export declare const playwrightStandardAbilities: Partial<Record<PlaywrightCommand, PlaywrightAbility>>;
4
+ //# sourceMappingURL=standard-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-capabilities.d.ts","sourceRoot":"","sources":["../../src/playwright/standard-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA2ItD,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAgF7F,CAAC"}
@@ -0,0 +1,248 @@
1
+ import { capabilityAction, capabilityActionCode, capabilityArtifact, capabilityLocator, capabilityResult, numeric, requirePage, requireSession, unsupported } from './capability-result.js';
2
+ import { playwrightLocatorSelector } from './locator-selector.js';
3
+ import { playwrightStorageAbilities } from './storage-capabilities.js';
4
+ import { playwrightEventAbilities } from './capability-events.js';
5
+ import { playwrightTracingStart, playwrightTracingStop } from './tracing-capabilities.js';
6
+ import { playwrightModalAbilities } from './modal-capabilities.js';
7
+ import { playwrightDrop } from './drop-capability.js';
8
+ import { playwrightWebMCPAbilities } from './webmcp-capabilities.js';
9
+ import { playwrightRecordingAbilities } from './recording-capabilities.js';
10
+ import { playwrightRouteAbilities } from './route-capabilities.js';
11
+ import { PlaywrightResourceLimitError } from './resource-limit.js';
12
+ function button(value) {
13
+ if (value === undefined)
14
+ return 'left';
15
+ if (value !== 'left' && value !== 'right' && value !== 'middle')
16
+ throw new Error(`Invalid mouse button: ${value}`);
17
+ return value;
18
+ }
19
+ const navigation = { scope: 'session', async execute(request) {
20
+ const page = requirePage(request);
21
+ const method = request.command === 'go-back' ? 'goBack' : request.command === 'go-forward' ? 'goForward' : 'reload';
22
+ if (!page[method])
23
+ unsupported(method);
24
+ await requireSession(request).invalidateTargets?.();
25
+ await capabilityAction(request, async () => { await page[method]({ timeout: request.limits?.navigationTimeoutMs ?? 60000 }); });
26
+ return capabilityResult(`await page.${method}();`);
27
+ } };
28
+ const keyboard = { scope: 'session', options: 'all', async execute(request) {
29
+ const page = requirePage(request);
30
+ const value = request.args[0];
31
+ const method = request.command === 'keydown' ? 'down' : request.command === 'keyup' ? 'up' : 'insertText';
32
+ if (!page.keyboard[method])
33
+ unsupported(`keyboard.${method}`);
34
+ await capabilityAction(request, async () => {
35
+ await page.keyboard[method](value);
36
+ if (request.options.submit)
37
+ await page.keyboard.press('Enter');
38
+ });
39
+ return capabilityResult(`await page.keyboard.${method}(${JSON.stringify(value)});${request.options.submit ? "\nawait page.keyboard.press('Enter');" : ''}`);
40
+ } };
41
+ const mouse = { scope: 'session', async execute(request) {
42
+ const mouse = requirePage(request).mouse;
43
+ if (!mouse)
44
+ unsupported('mouse');
45
+ const method = request.command.slice('mouse'.length);
46
+ if (method === 'down' || method === 'up') {
47
+ const options = { button: button(request.args[0]) };
48
+ await capabilityAction(request, () => mouse[method](options));
49
+ return capabilityResult(`await page.mouse.${method}(${JSON.stringify(options)});`);
50
+ }
51
+ const x = numeric(request.args[0], 'mouse coordinate');
52
+ const y = numeric(request.args[1], 'mouse coordinate');
53
+ await capabilityAction(request, () => method === 'move' ? mouse.move(x, y) : mouse.wheel(x, y));
54
+ return capabilityResult(`await page.mouse.${method}(${x}, ${y});`);
55
+ } };
56
+ const element = { scope: 'session', options: 'all', async execute(request) {
57
+ const session = requireSession(request);
58
+ const target = await session.resolveTarget(request.args[0]);
59
+ const locator = capabilityLocator(request.args[0], request);
60
+ const selector = session.generateActionCode && session.configuration?.codegen !== 'none'
61
+ ? playwrightLocatorSelector(requirePage(request), locator.slice('page.'.length)) : request.args[0];
62
+ const method = request.command;
63
+ if (method === 'select') {
64
+ if (!target.selectOption)
65
+ unsupported('selectOption');
66
+ await capabilityAction(request, async () => { await target.selectOption(request.args[1], { timeout: request.limits?.actionTimeoutMs ?? 30000 }); });
67
+ return capabilityResult(capabilityActionCode(request, { name: 'select', selector, options: [request.args[1]] }, `await ${locator}.selectOption(${JSON.stringify(request.args[1])});`));
68
+ }
69
+ if (!target[method])
70
+ unsupported(method);
71
+ const options = { timeout: request.limits?.actionTimeoutMs ?? 30000 };
72
+ if (method === 'dblclick') {
73
+ options.button = button(request.args[1]);
74
+ if (request.options.modifiers) {
75
+ const modifiers = Array.isArray(request.options.modifiers) ? request.options.modifiers : [request.options.modifiers];
76
+ if (modifiers.some(value => !['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift'].includes(value)))
77
+ throw new Error('Invalid click modifier');
78
+ options.modifiers = modifiers;
79
+ }
80
+ }
81
+ await capabilityAction(request, () => target[method](options));
82
+ const fallback = `await ${locator}.${method}(${method === 'dblclick' ? JSON.stringify({ button: options.button, ...(options.modifiers ? { modifiers: options.modifiers } : {}) }) : ''});`;
83
+ if (method !== 'dblclick')
84
+ return capabilityResult(capabilityActionCode(request, { name: method, selector }, fallback));
85
+ const modifiers = options.modifiers ?? [];
86
+ const mask = (modifiers.includes('Alt') ? 1 : 0) | (modifiers.includes('Control') || modifiers.includes('ControlOrMeta') ? 2 : 0) | (modifiers.includes('Meta') ? 4 : 0) | (modifiers.includes('Shift') ? 8 : 0);
87
+ return capabilityResult(capabilityActionCode(request, { name: 'click', selector, button: options.button, modifiers: mask, clickCount: 2 }, fallback));
88
+ } };
89
+ const drag = { scope: 'session', async execute(request) {
90
+ const session = requireSession(request);
91
+ const mouse = requirePage(request).mouse;
92
+ if (!mouse)
93
+ unsupported('mouse');
94
+ const start = await session.resolveTarget(request.args[0]);
95
+ const end = await session.resolveTarget(request.args[1]);
96
+ if (!start.boundingBox || !end.boundingBox)
97
+ unsupported('element boundingBox');
98
+ const first = await start.boundingBox(), last = await end.boundingBox();
99
+ if (!first || !last)
100
+ throw new Error('Drag target is not visible');
101
+ await capabilityAction(request, async () => {
102
+ await mouse.move(first.x + first.width / 2, first.y + first.height / 2);
103
+ await mouse.down();
104
+ try {
105
+ await mouse.move(last.x + last.width / 2, last.y + last.height / 2);
106
+ await mouse.move(last.x + last.width / 2, last.y + last.height / 2);
107
+ }
108
+ finally {
109
+ await mouse.up();
110
+ }
111
+ });
112
+ return capabilityResult(`await ${capabilityLocator(request.args[0], request)}.dragTo(${capabilityLocator(request.args[1], request)});`);
113
+ } };
114
+ const evaluate = { scope: 'session', options: 'all', async execute(request) {
115
+ const page = requirePage(request);
116
+ const expression = request.args[0];
117
+ const maxBytes = request.limits?.maxCommandBytes ?? 1048576;
118
+ const input = { expression, maxBytes };
119
+ let serialized;
120
+ await capabilityAction(request, async () => {
121
+ if (request.args[1] !== undefined) {
122
+ const element = await requireSession(request).resolveTarget(request.args[1]);
123
+ serialized = await element.evaluate(async (element, { expression, maxBytes }) => {
124
+ // This function executes in the isolated page, never in the host runtime.
125
+ const value = eval(`(${expression})`);
126
+ const result = await (typeof value === 'function' ? value(element) : value);
127
+ const text = JSON.stringify(result, null, 2) ?? 'undefined';
128
+ if (text.length > maxBytes || new TextEncoder().encode(text).length > maxBytes)
129
+ return null;
130
+ return text;
131
+ }, input);
132
+ }
133
+ else {
134
+ if (!page.evaluate)
135
+ unsupported('evaluate');
136
+ serialized = await page.evaluate(async ({ expression, maxBytes }) => {
137
+ const value = eval(`(${expression})`);
138
+ const result = await (typeof value === 'function' ? value() : value);
139
+ const text = JSON.stringify(result, null, 2) ?? 'undefined';
140
+ if (text.length > maxBytes || new TextEncoder().encode(text).length > maxBytes)
141
+ return null;
142
+ return text;
143
+ }, input);
144
+ }
145
+ if (serialized === null)
146
+ throw new PlaywrightResourceLimitError('Playwright evaluation result byte limit exceeded');
147
+ });
148
+ const code = `await ${request.args[1] ? capabilityLocator(request.args[1], request) : 'page'}.evaluate(${JSON.stringify(expression)});`;
149
+ if (request.options.filename && typeof serialized === 'string')
150
+ return capabilityArtifact(request, new TextEncoder().encode(serialized), 'result', 'json', 'Evaluation result', () => code, request.options.filename);
151
+ return capabilityResult(code, serialized ?? undefined);
152
+ } };
153
+ export const playwrightStandardAbilities = {
154
+ ...playwrightStorageAbilities,
155
+ ...playwrightEventAbilities,
156
+ ...playwrightModalAbilities,
157
+ ...playwrightWebMCPAbilities,
158
+ ...playwrightRecordingAbilities,
159
+ ...playwrightRouteAbilities,
160
+ drop: playwrightDrop,
161
+ 'tracing-start': playwrightTracingStart, 'tracing-stop': playwrightTracingStop,
162
+ 'go-back': navigation, 'go-forward': navigation, reload: navigation,
163
+ type: keyboard, keydown: keyboard, keyup: keyboard,
164
+ mousemove: mouse, mousedown: mouse, mouseup: mouse, mousewheel: mouse,
165
+ dblclick: element, hover: element, select: element, check: element, uncheck: element, drag,
166
+ eval: evaluate,
167
+ 'video-show-actions': { scope: 'session', options: 'all', async execute(request) {
168
+ const screencast = requirePage(request).screencast;
169
+ if (!screencast?.showActions)
170
+ unsupported('native action annotations');
171
+ const options = {};
172
+ if (request.options.duration !== undefined)
173
+ options.duration = numeric(request.options.duration, 'annotation duration');
174
+ const position = request.options.position;
175
+ if (position !== undefined) {
176
+ if (typeof position !== 'string' || !['top-left', 'top', 'top-right', 'bottom-left', 'bottom', 'bottom-right'].includes(position))
177
+ throw new Error('Invalid annotation position');
178
+ options.position = position;
179
+ }
180
+ const cursor = request.options.cursor;
181
+ if (cursor !== undefined) {
182
+ if (cursor !== 'none' && cursor !== 'pointer')
183
+ throw new Error('Invalid annotation cursor');
184
+ options.cursor = cursor;
185
+ }
186
+ await screencast.showActions(options);
187
+ return capabilityResult('', 'Action annotations enabled.');
188
+ } },
189
+ 'video-hide-actions': { scope: 'session', async execute(request) {
190
+ const screencast = requirePage(request).screencast;
191
+ if (!screencast?.hideActions)
192
+ unsupported('native action annotations');
193
+ await screencast.hideActions();
194
+ return capabilityResult('', 'Action annotations disabled.');
195
+ } },
196
+ 'run-code': { scope: 'session', options: 'all', async execute(request) {
197
+ const source = request.options.filename !== undefined
198
+ ? new TextDecoder('utf-8', { fatal: true }).decode(await request.readFile(request.options.filename))
199
+ : request.args[0];
200
+ if (typeof source !== 'string' || !source.trim())
201
+ throw new Error('Code or --filename is required');
202
+ const maxOutputBytes = request.limits?.maxCommandBytes ?? 1048576;
203
+ if (new TextEncoder().encode(source).byteLength > maxOutputBytes)
204
+ throw new PlaywrightResourceLimitError('Playwright code source byte limit exceeded');
205
+ const session = requireSession(request);
206
+ if (!session.executeCode)
207
+ unsupported('native code execution');
208
+ const page = requirePage(request);
209
+ let output;
210
+ await capabilityAction(request, async () => {
211
+ const result = await session.executeCode({ page, source, signal: request.signal,
212
+ timeoutMs: request.limits?.codeExecutionTimeoutMs ?? 30000, maxOutputBytes, maxPages: request.limits?.maxPages ?? 16 });
213
+ if (result !== undefined) {
214
+ output = JSON.stringify(result);
215
+ if (output !== undefined && new TextEncoder().encode(output).byteLength > maxOutputBytes)
216
+ throw new PlaywrightResourceLimitError('Playwright code result byte limit exceeded');
217
+ }
218
+ });
219
+ return capabilityResult(`await (${source})(page);`, output);
220
+ } },
221
+ resize: { scope: 'session', async execute(request) {
222
+ const page = requirePage(request);
223
+ if (!page.setViewportSize)
224
+ unsupported('setViewportSize');
225
+ const width = numeric(request.args[0], 'viewport width'), height = numeric(request.args[1], 'viewport height');
226
+ if (![width, height].every(value => Number.isSafeInteger(value) && value > 0 && value <= 32768))
227
+ throw new Error('Invalid viewport size');
228
+ await page.setViewportSize({ width, height });
229
+ return capabilityResult(`await page.setViewportSize({ width: ${width}, height: ${height} });`);
230
+ } },
231
+ pdf: { scope: 'session', options: 'all', async execute(request) {
232
+ const page = requirePage(request);
233
+ if (!page.pdf)
234
+ unsupported('pdf');
235
+ return capabilityArtifact(request, await page.pdf(), 'page', 'pdf', 'PDF', filename => `await page.pdf({ path: ${JSON.stringify(filename)} });`, request.options.filename);
236
+ } },
237
+ 'network-state-set': { scope: 'session', async execute(request) {
238
+ const context = requireSession(request).context;
239
+ if (!context.setOffline)
240
+ unsupported('setOffline');
241
+ const state = request.args[0];
242
+ if (state !== 'online' && state !== 'offline')
243
+ throw new Error('Invalid network state');
244
+ await context.setOffline(state === 'offline');
245
+ return capabilityResult(`await page.context().setOffline(${state === 'offline'});`, `Network is now ${state}`);
246
+ } },
247
+ };
248
+ //# sourceMappingURL=standard-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-capabilities.js","sourceRoot":"","sources":["../../src/playwright/standard-capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PlaywrightAbility } from './abilities.js';
2
+ import type { PlaywrightCommand } from './catalog.js';
3
+ export declare const playwrightStorageAbilities: Partial<Record<PlaywrightCommand, PlaywrightAbility>>;
4
+ //# sourceMappingURL=storage-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-capabilities.d.ts","sourceRoot":"","sources":["../../src/playwright/storage-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAA4B,MAAM,gBAAgB,CAAC;AAGlF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA4FtD,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAI5F,CAAC"}
@@ -0,0 +1,120 @@
1
+ import { PlaywrightResourceLimitError } from './resource-limit.js';
2
+ import { capabilityArtifact, capabilityResult, numeric, requirePage, requireSession, unsupported } from './capability-result.js';
3
+ import { parsePlaywrightStorageState } from './storage-state.js';
4
+ const stateSave = { scope: 'session', options: 'all', async execute(request) {
5
+ const context = requireSession(request).context;
6
+ if (!context.storageState)
7
+ unsupported('storageState');
8
+ // CLI 0.1.20 does not request IndexedDB. Its state-load accepts explicitly
9
+ // supplied state and passes all supported state fields to the native browser.
10
+ const state = await context.storageState();
11
+ request.signal.throwIfAborted();
12
+ return capabilityArtifact(request, new TextEncoder().encode(JSON.stringify(state, null, 2)), 'storage-state', 'json', 'Storage state', filename => `await page.context().storageState({ path: ${JSON.stringify(filename)} });`, request.args[0]);
13
+ } };
14
+ const stateLoad = { scope: 'session', async execute(request) {
15
+ const session = requireSession(request);
16
+ const bytes = await request.readFile(request.args[0]);
17
+ const state = parsePlaywrightStorageState(JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(bytes)), { maxBytes: request.limits?.maxCommandBytes ?? 1048576 });
18
+ request.signal.throwIfAborted();
19
+ if (session.context.setStorageState)
20
+ await session.context.setStorageState(state);
21
+ else if (session.replaceContext)
22
+ await session.replaceContext(state);
23
+ else
24
+ unsupported('storage state replacement');
25
+ return capabilityResult(`await page.context().setStorageState(${JSON.stringify(request.args[0])});`, `Storage state restored from ${request.args[0]}`);
26
+ } };
27
+ const cookies = { scope: 'session', options: 'all', async execute(request) {
28
+ const context = requireSession(request).context;
29
+ const name = request.args[0];
30
+ if (request.command === 'cookie-list' || request.command === 'cookie-get') {
31
+ if (!context.cookies)
32
+ unsupported('cookies');
33
+ let values = await context.cookies();
34
+ if (request.options.domain)
35
+ values = values.filter(cookie => cookie.domain.includes(request.options.domain));
36
+ if (request.options.path)
37
+ values = values.filter(cookie => cookie.path.startsWith(request.options.path));
38
+ const cookie = values.find(item => item.name === name);
39
+ const text = request.command === 'cookie-get'
40
+ ? cookie ? `${cookie.name}=${cookie.value} (domain: ${cookie.domain}, path: ${cookie.path}, httpOnly: ${cookie.httpOnly}, secure: ${cookie.secure}, sameSite: ${cookie.sameSite})` : `Cookie '${name}' not found`
41
+ : values.length ? values.map(cookie => `${cookie.name}=${cookie.value} (domain: ${cookie.domain}, path: ${cookie.path})`).join('\n') : 'No cookies found';
42
+ return capabilityResult('await page.context().cookies();', text);
43
+ }
44
+ if (request.command === 'cookie-set') {
45
+ if (!context.addCookies)
46
+ unsupported('addCookies');
47
+ const cookie = { name, value: request.args[1], domain: request.options.domain || new URL(requirePage(request).url()).hostname, path: request.options.path || '/' };
48
+ if (request.options.expires !== undefined)
49
+ cookie.expires = numeric(request.options.expires, 'cookie expires');
50
+ if (request.options.httpOnly !== undefined)
51
+ cookie.httpOnly = request.options.httpOnly === true;
52
+ if (request.options.secure !== undefined)
53
+ cookie.secure = request.options.secure === true;
54
+ if (request.options.sameSite !== undefined) {
55
+ const value = request.options.sameSite;
56
+ if (value !== 'Strict' && value !== 'Lax' && value !== 'None')
57
+ throw new Error('Invalid cookie sameSite');
58
+ cookie.sameSite = value;
59
+ }
60
+ await context.addCookies([cookie]);
61
+ return capabilityResult(`await page.context().addCookies([${JSON.stringify(cookie)}]);`);
62
+ }
63
+ if (!context.clearCookies)
64
+ unsupported('clearCookies');
65
+ const filter = request.command === 'cookie-delete' ? { name } : undefined;
66
+ await context.clearCookies(filter);
67
+ return capabilityResult(`await page.context().clearCookies(${filter ? `{ name: ${JSON.stringify(name)} }` : ''});`);
68
+ } };
69
+ async function webStorage(request) {
70
+ const page = requirePage(request);
71
+ if (!page.evaluate)
72
+ unsupported('evaluate');
73
+ const storage = request.command.startsWith('local') ? 'localStorage' : 'sessionStorage';
74
+ const operation = request.command.slice(request.command.indexOf('-') + 1);
75
+ const key = request.args[0] ?? '';
76
+ const value = request.args[1] ?? '';
77
+ const result = await page.evaluate(({ storage, operation, key, value, maxBytes }) => {
78
+ const browser = globalThis;
79
+ const target = browser[storage];
80
+ if (operation === 'set') {
81
+ target.setItem(key, value);
82
+ return null;
83
+ }
84
+ if (operation === 'delete') {
85
+ target.removeItem(key);
86
+ return null;
87
+ }
88
+ if (operation === 'clear') {
89
+ target.clear();
90
+ return null;
91
+ }
92
+ const values = [];
93
+ let bytes = 0;
94
+ for (let index = 0; index < (operation === 'get' ? 1 : target.length); index++) {
95
+ const name = operation === 'get' ? key : target.key(index);
96
+ if (name === null)
97
+ continue;
98
+ const value = target.getItem(name);
99
+ if (value === null)
100
+ continue;
101
+ bytes += new TextEncoder().encode(name).length + new TextEncoder().encode(value).length + 2;
102
+ if (bytes > maxBytes)
103
+ return false;
104
+ values.push({ name, value });
105
+ }
106
+ return values;
107
+ }, { storage, operation, key, value, maxBytes: request.limits?.maxCommandBytes ?? 1048576 });
108
+ if (result === false)
109
+ throw new PlaywrightResourceLimitError('Playwright storage result byte limit exceeded');
110
+ const method = { list: 'items', get: 'getItem', set: 'setItem', delete: 'removeItem', clear: 'clear' }[operation];
111
+ const args = ['get', 'set', 'delete'].includes(operation) ? [key, ...(operation === 'set' ? [value] : [])].map(item => JSON.stringify(item)).join(', ') : '';
112
+ const text = result === null ? undefined : result.length ? result.map(item => `${item.name}=${item.value}`).join('\n') : operation === 'get' ? `${storage} key '${key}' not found` : `No ${storage} items found`;
113
+ return capabilityResult(`await page.${storage}.${method}(${args});`, text);
114
+ }
115
+ export const playwrightStorageAbilities = {
116
+ 'state-save': stateSave, 'state-load': stateLoad,
117
+ ...Object.fromEntries(['cookie-list', 'cookie-get', 'cookie-set', 'cookie-delete', 'cookie-clear'].map(command => [command, cookies])),
118
+ ...Object.fromEntries(['localstorage', 'sessionstorage'].flatMap(prefix => ['list', 'get', 'set', 'delete', 'clear'].map(operation => [`${prefix}-${operation}`, { scope: 'session', execute: webStorage }]))),
119
+ };
120
+ //# sourceMappingURL=storage-capabilities.js.map