teamshare-bridge 0.26.14 → 0.26.15

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 (45) hide show
  1. package/dist/cli/commands/research.js +10 -2
  2. package/dist/cli/commands/research.js.map +1 -1
  3. package/dist/cli/commands/run.js +0 -21
  4. package/dist/cli/commands/run.js.map +1 -1
  5. package/dist/lib/browser/batch.d.ts +62 -1
  6. package/dist/lib/browser/batch.js +109 -3
  7. package/dist/lib/browser/batch.js.map +1 -1
  8. package/dist/lib/browser/cdp.d.ts +52 -2
  9. package/dist/lib/browser/cdp.js +207 -14
  10. package/dist/lib/browser/cdp.js.map +1 -1
  11. package/dist/lib/browser/index.d.ts +2 -2
  12. package/dist/lib/browser/index.js +4 -1
  13. package/dist/lib/browser/index.js.map +1 -1
  14. package/dist/lib/browser/login.d.ts +20 -2
  15. package/dist/lib/browser/login.js +125 -88
  16. package/dist/lib/browser/login.js.map +1 -1
  17. package/dist/lib/browser/page-context.d.ts +40 -1
  18. package/dist/lib/browser/page-context.js +117 -1
  19. package/dist/lib/browser/page-context.js.map +1 -1
  20. package/dist/lib/browser/refs.d.ts +104 -0
  21. package/dist/lib/browser/refs.js +430 -0
  22. package/dist/lib/browser/refs.js.map +1 -0
  23. package/dist/lib/browser/session.d.ts +129 -4
  24. package/dist/lib/browser/session.js +262 -3
  25. package/dist/lib/browser/session.js.map +1 -1
  26. package/dist/lib/git/git-finalize.js +17 -2
  27. package/dist/lib/git/git-finalize.js.map +1 -1
  28. package/dist/lib/harness/harness-adapter.d.ts +2 -5
  29. package/dist/lib/harness/harness-adapter.js.map +1 -1
  30. package/dist/lib/harness/opencode-control.d.ts +73 -0
  31. package/dist/lib/harness/opencode-control.js +318 -0
  32. package/dist/lib/harness/opencode-control.js.map +1 -1
  33. package/dist/lib/harness/opencode-outcome.d.ts +16 -2
  34. package/dist/lib/harness/opencode-outcome.js +36 -7
  35. package/dist/lib/harness/opencode-outcome.js.map +1 -1
  36. package/dist/lib/harness/spawn.js +112 -48
  37. package/dist/lib/harness/spawn.js.map +1 -1
  38. package/dist/lib/orchestrator/handlers/browser.js +375 -30
  39. package/dist/lib/orchestrator/handlers/browser.js.map +1 -1
  40. package/dist/lib/tools/browser-tool.js +24 -3
  41. package/dist/lib/tools/browser-tool.js.map +1 -1
  42. package/dist/lib/workspace/repo-lock.d.ts +5 -1
  43. package/dist/lib/workspace/repo-lock.js +5 -3
  44. package/dist/lib/workspace/repo-lock.js.map +1 -1
  45. package/package.json +1 -1
@@ -55,6 +55,15 @@ function resolveCoords(step, lastElements) {
55
55
  }
56
56
  throw new Error('click needs x/y coordinates or elementIndex');
57
57
  }
58
+ /** Resolve a CSS selector to a clickable point via an in-page query. */
59
+ async function clickBySelector(session, selector) {
60
+ const pt = await session.evaluate(`(() => { const el = document.querySelector(${JSON.stringify(selector)}); if (!el) return null; const r = el.getBoundingClientRect(); if (!r || (r.width === 0 && r.height === 0)) return null; return { x: Math.round(r.x + r.width / 2), y: Math.round(r.y + r.height / 2) }; })()`);
61
+ if (!pt || typeof pt.x !== 'number' || typeof pt.y !== 'number') {
62
+ throw new Error('SELECTOR_NOT_FOUND: no visible element matches the selector. Re-check with getElements or snapshot.');
63
+ }
64
+ await session.click(pt.x, pt.y);
65
+ return { x: pt.x, y: pt.y };
66
+ }
58
67
  /** Execute one step against the session; throws on step failure. */
59
68
  async function runBatchStep(session, step, lastElements) {
60
69
  switch (step.action) {
@@ -71,25 +80,68 @@ async function runBatchStep(session, step, lastElements) {
71
80
  return await session.navigate(url);
72
81
  }
73
82
  case 'click': {
83
+ // A ref resolves against the live node (REF_STALE instead of a silent
84
+ // miss); elementIndex resolves against the latest getElements in this
85
+ // batch; selector resolves in-page. Raw x/y stay supported (CSS pixels
86
+ // only — session.click refuses out-of-viewport coordinates loudly).
87
+ if (typeof step.ref === 'string' && step.ref && step.pointer === true) {
88
+ if (!session.clickPointerRef) {
89
+ throw new Error('this browser session cannot dispatch pointer clicks');
90
+ }
91
+ const clicked = await session.clickPointerRef(step.ref);
92
+ return {
93
+ clicked: true,
94
+ pointer: true,
95
+ ref: step.ref,
96
+ x: clicked.x,
97
+ y: clicked.y,
98
+ };
99
+ }
100
+ if (typeof step.ref === 'string' && step.ref) {
101
+ if (!session.clickRef) {
102
+ throw new Error('this browser session cannot resolve element refs');
103
+ }
104
+ const clicked = await session.clickRef({ ref: step.ref });
105
+ return { clicked: true, ref: step.ref, x: clicked.x, y: clicked.y };
106
+ }
107
+ if (typeof step.selector === 'string' && step.selector) {
108
+ const clicked = await clickBySelector(session, step.selector);
109
+ return { clicked: true, x: clicked.x, y: clicked.y };
110
+ }
74
111
  const { x, y } = resolveCoords(step, lastElements);
75
112
  await session.click(x, y);
76
113
  return { clicked: true, x, y };
77
114
  }
78
115
  case 'type': {
79
- // With elementIndex the batch clicks the field first, so a
116
+ // With a ref or elementIndex the batch clicks the field first, so a
80
117
  // click+type pair collapses into one step for form fills.
81
118
  if (step.allowCredentials === true)
82
119
  session.setAllowCredentials?.(true);
83
120
  let clicked;
84
- if (typeof step.elementIndex === 'number') {
121
+ if (typeof step.ref === 'string' && step.ref) {
122
+ if (!session.clickRef) {
123
+ throw new Error('this browser session cannot resolve element refs');
124
+ }
125
+ clicked = await session.clickRef({ ref: step.ref });
126
+ }
127
+ else if (typeof step.elementIndex === 'number') {
85
128
  clicked = resolveCoords(step, lastElements);
86
129
  await session.click(clicked.x, clicked.y);
87
130
  }
131
+ else if (typeof step.selector === 'string' && step.selector) {
132
+ clicked = await clickBySelector(session, step.selector);
133
+ }
88
134
  const text = String(step.text ?? '');
89
- await session.type(text, { clearFirst: step.clearFirst === true });
135
+ // session.type throws TYPE_NOT_VERIFIED (with the observed field state)
136
+ // when the insert does not land — the step records ok:false, never a
137
+ // silent typed:true.
138
+ const observed = await session.type(text, {
139
+ clearFirst: step.clearFirst === true,
140
+ });
90
141
  return {
91
142
  typed: true,
92
143
  length: text.length,
144
+ observed,
93
145
  ...(clicked ? { x: clicked.x, y: clicked.y } : {}),
94
146
  };
95
147
  }
@@ -115,6 +167,60 @@ async function runBatchStep(session, step, lastElements) {
115
167
  await session.press(key);
116
168
  return { pressed: key };
117
169
  }
170
+ case 'hover': {
171
+ const ref = typeof step.ref === 'string' ? step.ref : '';
172
+ const selector = typeof step.selector === 'string' ? step.selector : '';
173
+ if (ref || selector) {
174
+ if (!session.hoverRef) {
175
+ throw new Error('this browser session cannot hover elements');
176
+ }
177
+ const pt = await session.hoverRef(ref ? { ref } : { selector });
178
+ return {
179
+ hovered: true,
180
+ ...(ref ? { ref } : {}),
181
+ x: pt.x,
182
+ y: pt.y,
183
+ };
184
+ }
185
+ if (typeof step.x === 'number' &&
186
+ typeof step.y === 'number' &&
187
+ session.hover) {
188
+ await session.hover(step.x, step.y);
189
+ return { hovered: true, x: step.x, y: step.y };
190
+ }
191
+ throw new Error('hover needs a ref, selector, or x/y');
192
+ }
193
+ case 'focus': {
194
+ const ref = typeof step.ref === 'string' ? step.ref : '';
195
+ if (!ref)
196
+ throw new Error('ref is required for focus');
197
+ if (!session.focusRef) {
198
+ throw new Error('this browser session cannot resolve element refs');
199
+ }
200
+ const focused = await session.focusRef(ref);
201
+ if (!focused.ok) {
202
+ throw new Error(`FOCUS_NOT_TAKEN: ${ref} did not take focus (it may not be focusable).`);
203
+ }
204
+ return { focused: true, ref, ...focused };
205
+ }
206
+ case 'closePopup': {
207
+ if (!session.closePopup) {
208
+ throw new Error('this browser session cannot close popovers');
209
+ }
210
+ return await session.closePopup();
211
+ }
212
+ case 'getRefs': {
213
+ if (!session.getRefs) {
214
+ throw new Error('this browser session cannot list element refs');
215
+ }
216
+ const scanned = await session.getRefs();
217
+ return {
218
+ at: scanned.at,
219
+ count: scanned.count,
220
+ refs: scanned.refs,
221
+ lines: scanned.lines,
222
+ };
223
+ }
118
224
  case 'scroll': {
119
225
  const delta = typeof step.delta === 'number' ? step.delta : 3;
120
226
  await session.scroll(delta);
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/lib/browser/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/lib/browser/batch.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,12 @@ export interface PageInfo {
47
47
  title: string;
48
48
  url: string;
49
49
  readyState: string;
50
+ /** CSS viewport (what click coordinates are measured in) + device scale. */
51
+ viewport?: {
52
+ width: number;
53
+ height: number;
54
+ dpr: number;
55
+ };
50
56
  }
51
57
  /** One attachable page target as returned by /json/list. */
52
58
  export interface AttachableTarget {
@@ -146,7 +152,9 @@ export declare function captureScreenshotChecked(page: CdpPage, format?: 'jpeg'
146
152
  */
147
153
  export declare function navigateTo(page: CdpPage, url: string): Promise<PageInfo>;
148
154
  /**
149
- * Get the current page info (title, URL, readyState).
155
+ * Get the current page info (title, URL, readyState) plus the CSS viewport
156
+ * (what click coordinates are measured in) and the device pixel ratio (what
157
+ * the screenshot is scaled by — divide image pixels by dpr for CSS pixels).
150
158
  */
151
159
  export declare function getPageInfo(page: CdpPage): Promise<PageInfo>;
152
160
  export interface PageText {
@@ -178,16 +186,58 @@ export declare function getPageLinks(page: CdpPage): Promise<PageLink[]>;
178
186
  export declare function extractElements(page: CdpPage): Promise<ElementInfo[]>;
179
187
  /**
180
188
  * Click at (x, y) coordinates.
189
+ *
190
+ * 2026-10: a click is an ARRIVAL, not a teleport. The old sequence dispatched
191
+ * `mousePressed` + `mouseReleased` with no preceding move, so the browser's
192
+ * input pipeline never produced the `pointerover`/`pointermove` half of the
193
+ * gesture. Radix (TeamShare's own shadcn stack) opens dropdowns/menus on
194
+ * `pointerdown` but tracks hover state from the move, and a teleport click on
195
+ * a kebab menu either opened nothing or opened and immediately dismissed it —
196
+ * exactly the "I click and nothing happens" complaint from QA runs. Dispatching
197
+ * `mouseMoved` first makes the browser emit the full pointer sequence.
181
198
  */
182
199
  export declare function clickAt(page: CdpPage, x: number, y: number): Promise<void>;
200
+ /**
201
+ * Move the pointer to (x, y) with no button pressed (hover). This is what
202
+ * opens hover menus/tooltips and what gives `clickAt` a real pointer arrival.
203
+ */
204
+ export declare function hoverAt(page: CdpPage, x: number, y: number): Promise<void>;
183
205
  /**
184
206
  * Type text using Input.insertText (handles multiline, unicode).
185
207
  */
186
208
  export declare function typeText(page: CdpPage, text: string): Promise<void>;
187
209
  /**
188
- * Press a keyboard key.
210
+ * Press a keyboard key. Supports single characters, named keys (Enter, Tab,
211
+ * Escape, Backspace, Delete, arrows, Home/End, PageUp/PageDown, F1-F12),
212
+ * chords (Control+A, Meta+A, Shift+Tab, ...) and the SelectAll alias.
213
+ * Unknown keys are refused loudly — a bogus key used to dispatch a no-op
214
+ * that resolved successfully and typed nothing.
189
215
  */
190
216
  export declare function pressKey(page: CdpPage, key: string): Promise<void>;
217
+ /** CDP key/code for a printable char (moved from login.ts — one copy). */
218
+ export declare function charKey(c: string): {
219
+ key: string;
220
+ code: string;
221
+ shift: boolean;
222
+ };
223
+ /**
224
+ * Parse a `press` key spec into a CDP key event. Accepts a single printable
225
+ * char, a named key, a `Modifier+Key` chord (Control+A, Meta+A, Shift+Tab,
226
+ * Alt+F4, ...) or the `SelectAll` alias (Control+A). Anything else throws
227
+ * UNKNOWN_KEY — the old code dispatched `{code, key} = {input, input}` for
228
+ * any string, a no-op that resolved successfully.
229
+ */
230
+ export declare function parseKeyPress(input: string): {
231
+ key: string;
232
+ code: string;
233
+ modifiers: number;
234
+ };
235
+ /** CSS viewport of the page (what click coordinates are measured in). */
236
+ export declare function viewportOf(page: CdpPage): Promise<{
237
+ width: number;
238
+ height: number;
239
+ dpr: number;
240
+ } | null>;
191
241
  /**
192
242
  * Scroll the page by a delta (positive = down, negative = up).
193
243
  */
@@ -21,8 +21,12 @@ exports.getPageText = getPageText;
21
21
  exports.getPageLinks = getPageLinks;
22
22
  exports.extractElements = extractElements;
23
23
  exports.clickAt = clickAt;
24
+ exports.hoverAt = hoverAt;
24
25
  exports.typeText = typeText;
25
26
  exports.pressKey = pressKey;
27
+ exports.charKey = charKey;
28
+ exports.parseKeyPress = parseKeyPress;
29
+ exports.viewportOf = viewportOf;
26
30
  exports.scrollPage = scrollPage;
27
31
  exports.evaluateJs = evaluateJs;
28
32
  exports.setFileInputFiles = setFileInputFiles;
@@ -442,7 +446,9 @@ async function navigateTo(page, url) {
442
446
  return getPageInfo(page);
443
447
  }
444
448
  /**
445
- * Get the current page info (title, URL, readyState).
449
+ * Get the current page info (title, URL, readyState) plus the CSS viewport
450
+ * (what click coordinates are measured in) and the device pixel ratio (what
451
+ * the screenshot is scaled by — divide image pixels by dpr for CSS pixels).
446
452
  */
447
453
  async function getPageInfo(page) {
448
454
  const js = `JSON.stringify({ title: document.title, url: location.href, readyState: document.readyState })`;
@@ -451,7 +457,9 @@ async function getPageInfo(page) {
451
457
  expression: js,
452
458
  returnByValue: true,
453
459
  });
454
- return JSON.parse(result?.result?.value ?? '{}');
460
+ const info = JSON.parse(result?.result?.value ?? '{}');
461
+ const viewport = await viewportOf(page);
462
+ return { ...info, ...(viewport ? { viewport } : {}) };
455
463
  }
456
464
  catch {
457
465
  return { title: '', url: '', readyState: 'unknown' };
@@ -698,8 +706,18 @@ async function extractElements(page) {
698
706
  // ── Input Helpers ──────────────────────────────────────────────────────────
699
707
  /**
700
708
  * Click at (x, y) coordinates.
709
+ *
710
+ * 2026-10: a click is an ARRIVAL, not a teleport. The old sequence dispatched
711
+ * `mousePressed` + `mouseReleased` with no preceding move, so the browser's
712
+ * input pipeline never produced the `pointerover`/`pointermove` half of the
713
+ * gesture. Radix (TeamShare's own shadcn stack) opens dropdowns/menus on
714
+ * `pointerdown` but tracks hover state from the move, and a teleport click on
715
+ * a kebab menu either opened nothing or opened and immediately dismissed it —
716
+ * exactly the "I click and nothing happens" complaint from QA runs. Dispatching
717
+ * `mouseMoved` first makes the browser emit the full pointer sequence.
701
718
  */
702
719
  async function clickAt(page, x, y) {
720
+ await hoverAt(page, x, y);
703
721
  await cdpSend(page, 'Input.dispatchMouseEvent', {
704
722
  type: 'mousePressed',
705
723
  x,
@@ -715,6 +733,18 @@ async function clickAt(page, x, y) {
715
733
  clickCount: 1,
716
734
  });
717
735
  }
736
+ /**
737
+ * Move the pointer to (x, y) with no button pressed (hover). This is what
738
+ * opens hover menus/tooltips and what gives `clickAt` a real pointer arrival.
739
+ */
740
+ async function hoverAt(page, x, y) {
741
+ await cdpSend(page, 'Input.dispatchMouseEvent', {
742
+ type: 'mouseMoved',
743
+ x,
744
+ y,
745
+ button: 'none',
746
+ });
747
+ }
718
748
  /**
719
749
  * Type text using Input.insertText (handles multiline, unicode).
720
750
  */
@@ -722,28 +752,191 @@ async function typeText(page, text) {
722
752
  await cdpSend(page, 'Input.insertText', { text });
723
753
  }
724
754
  /**
725
- * Press a keyboard key.
755
+ * Press a keyboard key. Supports single characters, named keys (Enter, Tab,
756
+ * Escape, Backspace, Delete, arrows, Home/End, PageUp/PageDown, F1-F12),
757
+ * chords (Control+A, Meta+A, Shift+Tab, ...) and the SelectAll alias.
758
+ * Unknown keys are refused loudly — a bogus key used to dispatch a no-op
759
+ * that resolved successfully and typed nothing.
726
760
  */
727
761
  async function pressKey(page, key) {
728
- const keyMap = {
729
- Enter: { code: 'Enter', key: 'Enter' },
730
- Tab: { code: 'Tab', key: 'Tab' },
731
- Escape: { code: 'Escape', key: 'Escape' },
732
- Backspace: { code: 'Backspace', key: 'Backspace' },
733
- Space: { code: 'Space', key: ' ' },
762
+ const press = parseKeyPress(key);
763
+ const base = {
764
+ key: press.key,
765
+ code: press.code,
734
766
  };
735
- const k = keyMap[key] ?? { code: key, key };
767
+ if (press.modifiers)
768
+ base.modifiers = press.modifiers;
736
769
  await cdpSend(page, 'Input.dispatchKeyEvent', {
737
770
  type: 'keyDown',
738
- code: k.code,
739
- key: k.key,
771
+ ...base,
740
772
  });
741
773
  await cdpSend(page, 'Input.dispatchKeyEvent', {
742
774
  type: 'keyUp',
743
- code: k.code,
744
- key: k.key,
775
+ ...base,
745
776
  });
746
777
  }
778
+ /** CDP key/code for a printable char (moved from login.ts — one copy). */
779
+ function charKey(c) {
780
+ if (/^[a-z]$/.test(c))
781
+ return { key: c, code: `Key${c.toUpperCase()}`, shift: false };
782
+ if (/^[A-Z]$/.test(c))
783
+ return { key: c, code: `Key${c.toUpperCase()}`, shift: true };
784
+ if (/^[0-9]$/.test(c))
785
+ return { key: c, code: `Digit${c}`, shift: false };
786
+ const special = {
787
+ ' ': { code: 'Space', shift: false },
788
+ '-': { code: 'Minus', shift: false },
789
+ _: { code: 'Minus', shift: true },
790
+ '=': { code: 'Equal', shift: false },
791
+ '+': { code: 'Equal', shift: true },
792
+ '!': { code: 'Digit1', shift: true },
793
+ '@': { code: 'Digit2', shift: true },
794
+ '#': { code: 'Digit3', shift: true },
795
+ $: { code: 'Digit4', shift: true },
796
+ '%': { code: 'Digit5', shift: true },
797
+ '^': { code: 'Digit6', shift: true },
798
+ '&': { code: 'Digit7', shift: true },
799
+ '*': { code: 'Digit8', shift: true },
800
+ '(': { code: 'Digit9', shift: true },
801
+ ')': { code: 'Digit0', shift: true },
802
+ '.': { code: 'Period', shift: false },
803
+ ',': { code: 'Comma', shift: false },
804
+ '/': { code: 'Slash', shift: false },
805
+ '?': { code: 'Slash', shift: true },
806
+ ':': { code: 'Semicolon', shift: true },
807
+ ';': { code: 'Semicolon', shift: false },
808
+ "'": { code: 'Quote', shift: false },
809
+ '"': { code: 'Quote', shift: true },
810
+ '\\': { code: 'Backslash', shift: false },
811
+ '|': { code: 'Backslash', shift: true },
812
+ '[': { code: 'BracketLeft', shift: false },
813
+ ']': { code: 'BracketRight', shift: false },
814
+ '{': { code: 'BracketLeft', shift: true },
815
+ '}': { code: 'BracketRight', shift: true },
816
+ '`': { code: 'Backquote', shift: false },
817
+ '~': { code: 'Backquote', shift: true },
818
+ '<': { code: 'Comma', shift: true },
819
+ '>': { code: 'Period', shift: true },
820
+ };
821
+ const s = special[c];
822
+ if (s)
823
+ return { key: c, code: s.code, shift: s.shift };
824
+ return { key: c, code: c, shift: false };
825
+ }
826
+ /** Named non-printable keys with their CDP codes. */
827
+ const NAMED_KEYS = {
828
+ Enter: 'Enter',
829
+ Tab: 'Tab',
830
+ Escape: 'Escape',
831
+ Esc: 'Escape',
832
+ Backspace: 'Backspace',
833
+ Delete: 'Delete',
834
+ Space: 'Space',
835
+ ArrowUp: 'ArrowUp',
836
+ ArrowDown: 'ArrowDown',
837
+ ArrowLeft: 'ArrowLeft',
838
+ ArrowRight: 'ArrowRight',
839
+ Home: 'Home',
840
+ End: 'End',
841
+ PageUp: 'PageUp',
842
+ PageDown: 'PageDown',
843
+ F1: 'F1',
844
+ F2: 'F2',
845
+ F3: 'F3',
846
+ F4: 'F4',
847
+ F5: 'F5',
848
+ F6: 'F6',
849
+ F7: 'F7',
850
+ F8: 'F8',
851
+ F9: 'F9',
852
+ F10: 'F10',
853
+ F11: 'F11',
854
+ F12: 'F12',
855
+ };
856
+ /** CDP modifier bitmask (Input.dispatchKeyEvent `modifiers`). */
857
+ const MODIFIER_BITS = {
858
+ alt: 1,
859
+ option: 1,
860
+ control: 2,
861
+ ctrl: 2,
862
+ meta: 4,
863
+ cmd: 4,
864
+ command: 4,
865
+ win: 4,
866
+ shift: 8,
867
+ };
868
+ /**
869
+ * Parse a `press` key spec into a CDP key event. Accepts a single printable
870
+ * char, a named key, a `Modifier+Key` chord (Control+A, Meta+A, Shift+Tab,
871
+ * Alt+F4, ...) or the `SelectAll` alias (Control+A). Anything else throws
872
+ * UNKNOWN_KEY — the old code dispatched `{code, key} = {input, input}` for
873
+ * any string, a no-op that resolved successfully.
874
+ */
875
+ function parseKeyPress(input) {
876
+ const raw = (input ?? '').trim();
877
+ if (!raw)
878
+ throw new Error('UNKNOWN_KEY: no key given for press.');
879
+ if (/^selectall$/i.test(raw))
880
+ return { key: 'a', code: 'KeyA', modifiers: 2 };
881
+ const parts = raw
882
+ .split('+')
883
+ .map((s) => s.trim())
884
+ .filter((s) => s.length > 0);
885
+ const last = parts[parts.length - 1] ?? '';
886
+ if (!last)
887
+ throw new Error(`UNKNOWN_KEY: "${input}" is not a key.`);
888
+ let modifiers = 0;
889
+ for (const mod of parts.slice(0, -1)) {
890
+ const bit = MODIFIER_BITS[mod.toLowerCase()];
891
+ if (bit === undefined) {
892
+ throw new Error(`UNKNOWN_KEY: "${mod}" in "${input}" is not a modifier (Control, Alt, Meta, Shift).`);
893
+ }
894
+ modifiers |= bit;
895
+ }
896
+ if (last.length === 1) {
897
+ // With explicit modifiers the key is the UNMODIFIED char (Control+A
898
+ // sends key 'a', not 'A'); a lone uppercase letter keeps its own shift.
899
+ // An explicit Shift uppercases a letter key.
900
+ const base = modifiers !== 0 ? last.toLowerCase() : last;
901
+ const k = charKey(base);
902
+ const shiftBit = modifiers & 8 ? 8 : k.shift && modifiers === 0 ? 8 : 0;
903
+ return {
904
+ key: modifiers & 8 && /^[a-z]$/.test(base) ? base.toUpperCase() : k.key,
905
+ code: k.code,
906
+ modifiers: modifiers | shiftBit,
907
+ };
908
+ }
909
+ const code = NAMED_KEYS[last] ?? NAMED_KEYS[last.toLowerCase()];
910
+ if (!code) {
911
+ throw new Error(`UNKNOWN_KEY: "${input}" is not a key. Use a single character, a named key (Enter, Tab, Escape, Backspace, Delete, arrows, Home, End, PageUp, PageDown, F1-F12), a chord (Control+A, Meta+A, Shift+Tab) or SelectAll.`);
912
+ }
913
+ return { key: code === 'Space' ? ' ' : code, code, modifiers };
914
+ }
915
+ /** CSS viewport of the page (what click coordinates are measured in). */
916
+ async function viewportOf(page) {
917
+ try {
918
+ const result = await cdpSend(page, 'Runtime.evaluate', {
919
+ expression: '({ width: window.innerWidth, height: window.innerHeight, dpr: window.devicePixelRatio || 1 })',
920
+ returnByValue: true,
921
+ });
922
+ const v = result?.result?.value;
923
+ if (v &&
924
+ typeof v.width === 'number' &&
925
+ typeof v.height === 'number' &&
926
+ v.width > 0 &&
927
+ v.height > 0) {
928
+ return {
929
+ width: Math.round(v.width),
930
+ height: Math.round(v.height),
931
+ dpr: typeof v.dpr === 'number' && v.dpr > 0 ? v.dpr : 1,
932
+ };
933
+ }
934
+ return null;
935
+ }
936
+ catch {
937
+ return null;
938
+ }
939
+ }
747
940
  /**
748
941
  * Scroll the page by a delta (positive = down, negative = up).
749
942
  */