@bubstack/moe-glass 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +29 -0
  2. package/agents/browser-user.md +105 -0
  3. package/dist/LICENSE +25 -0
  4. package/dist/index.d.ts +9 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +22517 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/payload.d.ts +214 -0
  9. package/dist/payload.d.ts.map +1 -0
  10. package/dist/payload.js +325 -0
  11. package/dist/payload.js.map +1 -0
  12. package/package.json +59 -0
  13. package/skills/browsing/COMMANDLINE-USAGE.md +595 -0
  14. package/skills/browsing/EXAMPLES.md +717 -0
  15. package/skills/browsing/README.md +55 -0
  16. package/skills/browsing/SKILL.md +478 -0
  17. package/skills/browsing/chrome-ws +1021 -0
  18. package/skills/browsing/chrome-ws-lib.js +461 -0
  19. package/skills/browsing/host-override.js +98 -0
  20. package/skills/browsing/lib/browser-bridge.js +175 -0
  21. package/skills/browsing/lib/browser-session.js +137 -0
  22. package/skills/browsing/lib/capture.js +499 -0
  23. package/skills/browsing/lib/cdp-router.js +72 -0
  24. package/skills/browsing/lib/cdp-utils.js +18 -0
  25. package/skills/browsing/lib/chrome-launcher-helpers.js +374 -0
  26. package/skills/browsing/lib/chrome-process.js +464 -0
  27. package/skills/browsing/lib/console-logging.js +70 -0
  28. package/skills/browsing/lib/cookies.js +17 -0
  29. package/skills/browsing/lib/dialogs-render.js +154 -0
  30. package/skills/browsing/lib/dialogs-router.js +117 -0
  31. package/skills/browsing/lib/dialogs.js +254 -0
  32. package/skills/browsing/lib/element-selector.js +91 -0
  33. package/skills/browsing/lib/evaluation.js +85 -0
  34. package/skills/browsing/lib/extraction.js +55 -0
  35. package/skills/browsing/lib/file-upload.js +56 -0
  36. package/skills/browsing/lib/html-diff.js +122 -0
  37. package/skills/browsing/lib/key-definitions.js +149 -0
  38. package/skills/browsing/lib/keyboard-input.js +288 -0
  39. package/skills/browsing/lib/mouse.js +423 -0
  40. package/skills/browsing/lib/navigation.js +272 -0
  41. package/skills/browsing/lib/page-scripts/dom-summary.js +31 -0
  42. package/skills/browsing/lib/page-scripts/markdown.js +85 -0
  43. package/skills/browsing/lib/page-scripts/permission-shim.js +80 -0
  44. package/skills/browsing/lib/page-session.js +106 -0
  45. package/skills/browsing/lib/profile-lock.js +179 -0
  46. package/skills/browsing/lib/screenshot.js +171 -0
  47. package/skills/browsing/lib/select-option.js +99 -0
  48. package/skills/browsing/lib/session-state.js +66 -0
  49. package/skills/browsing/lib/tabs.js +144 -0
  50. package/skills/browsing/lib/viewport.js +103 -0
  51. package/skills/browsing/lib/websocket-client.js +162 -0
  52. package/skills/browsing/package.json +11 -0
  53. package/skills/browsing/test-chrome-args.js +81 -0
  54. package/skills/browsing/test-cookies.js +21 -0
  55. package/skills/browsing/test-e2e.sh +51 -0
  56. package/skills/browsing/test-extract.sh +17 -0
  57. package/skills/browsing/test-interact.sh +11 -0
  58. package/skills/browsing/test-navigate.sh +9 -0
  59. package/skills/browsing/test-raw.sh +8 -0
  60. package/skills/browsing/test-tabs.sh +15 -0
  61. package/skills/browsing/test-viewport.js +27 -0
  62. package/skills/browsing/test-wait.sh +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Payload normalization for the use_browser tool's `payload` parameter.
3
+ *
4
+ * `payload` is declared as `z.union([z.string(), z.record(z.any())])` —
5
+ * every action accepts either a real object or a string. The string form
6
+ * exists because MCP clients frequently JSON.stringify their arguments
7
+ * regardless of the target action's shape (see e.g. the mouse_move example
8
+ * in skills/browsing/SKILL.md, which passes
9
+ * `payload: "{\"x\":100,\"y\":200}"`).
10
+ *
11
+ * Historically, a string payload was never JSON.parse'd — it was wrapped
12
+ * literally as `{ [defaultKey]: <the raw string> }`. That's correct for
13
+ * actions whose payload IS free text or code (eval's JS source, type's
14
+ * literal text, await_text's search string — see PAYLOAD_SPECS below), but
15
+ * wrong for actions whose payload is a multi-field object with no
16
+ * legitimate bare-string meaning (set_viewport's {width,height},
17
+ * mouse_move's {x,y}): a caller who JSON.stringify'd `{width:390,
18
+ * height:844}` got back a payload of `{ viewport: '{"width":390,...}' }`,
19
+ * `vp.width` was `undefined`, and the action threw "requires payload with
20
+ * width and height" — even though both were supplied, just encoded as a
21
+ * string instead of passed as an object.
22
+ *
23
+ * This module is the single place that decides, per action, whether a
24
+ * string payload should be treated as encoded JSON to deserialize
25
+ * ('structured') or taken literally as the value itself ('scalar' — code
26
+ * or free text). It has no side effects and doesn't touch chrome-ws, so it
27
+ * can be imported directly by tests without booting a browser or an MCP
28
+ * server.
29
+ */
30
+ export type PayloadKind = 'structured' | 'scalar';
31
+ export interface PayloadSpec {
32
+ kind: PayloadKind;
33
+ /** The object key a bare (non-JSON, or not-an-object) string payload is wrapped under. */
34
+ defaultKey: string;
35
+ /**
36
+ * True when defaultKey is semantically an INTEGER, so a bare numeric
37
+ * string payload should be wrapped as a number rather than as the raw
38
+ * string. Declared here (not special-cased in the action's handler) so
39
+ * the per-action shape table stays the single source of truth for how a
40
+ * string payload is interpreted.
41
+ *
42
+ * Only get_console_messages sets this: its `since` is an epoch-ms
43
+ * timestamp, and a caller passing the bare string '1785900000000' plainly
44
+ * means that instant. Deliberately NOT set for switch_tab, whose bare
45
+ * string is ALSO legitimately a URL/title substring — it resolves numeric
46
+ * vs. substring itself, and coercing here would change which branch a
47
+ * numeric-looking string takes.
48
+ */
49
+ numericDefaultKey?: boolean;
50
+ }
51
+ /**
52
+ * Per-action payload shape declaration — the source of truth Postel's-law
53
+ * string handling is driven from.
54
+ *
55
+ * kind: 'scalar' — the string IS the value. NEVER JSON.parse'd, no matter
56
+ * how JSON-ish it looks. This is for code or free text where a payload of
57
+ * `[1,2]` or `{"a":1}` is a perfectly normal *literal* value and silently
58
+ * reinterpreting it would change what a currently-working call does:
59
+ * eval (JS source), type (literal text to type), await_text (literal text
60
+ * to wait for), select (a dropdown option's literal value/text).
61
+ *
62
+ * kind: 'structured' — the payload is semantically an object with named
63
+ * fields. A string payload is JSON.parse'd; if it parses to a plain
64
+ * object, that object *is* the payload (Postel's law: a stringified
65
+ * encoding of the object form works the same as passing the object
66
+ * directly). If it parses to an array, the array is wrapped under
67
+ * defaultKey (file_upload's `files` may legitimately be a JSON array of
68
+ * paths). If parsing fails, or produces something else, parsePayload()
69
+ * falls back to the historical literal-wrap under defaultKey — most
70
+ * 'structured' actions also have a legitimate single-value bare-string
71
+ * form (navigate's URL, a CSS selector, an attribute/key/profile name, a
72
+ * file path, a format keyword) so a non-JSON string must still work
73
+ * exactly as it always has, not error out.
74
+ *
75
+ * Two actions — set_viewport and mouse_move — are 'structured' with NO
76
+ * legitimate bare-string fallback at all (there's no sensible single
77
+ * string that means "width and height" or "x and y"). Those two use
78
+ * resolveStrictStructuredPayload() below instead of parsePayload(), so a
79
+ * string that isn't parseable JSON produces an honest error instead of
80
+ * being silently wrapped and then failing a field check with a misleading
81
+ * "missing" message.
82
+ *
83
+ * scroll and drag_drop are NOT listed here: their bare-string form maps to
84
+ * a *different* field than their object form's defaultKey would (scroll's
85
+ * bare string is a direction keyword, not a deltaX/deltaY value; drag_drop's
86
+ * bare string is the *target* selector, not the *source*), and drag_drop
87
+ * additionally has a bare-coordinates form. A single generic
88
+ * `{ [defaultKey]: string }` wrap can't express that, so they keep bespoke
89
+ * dispatch in index.ts — but that dispatch uses the same tryParseJsonObject()
90
+ * primitive defined below instead of ad hoc inline JSON.parse calls.
91
+ */
92
+ export declare const PAYLOAD_SPECS: Record<string, PayloadSpec>;
93
+ /** Truncate a string for embedding in an error message. */
94
+ export declare function truncateForError(s: string, max?: number): string;
95
+ /**
96
+ * Attempt to JSON.parse a string payload into a plain object (never an
97
+ * array — callers that want array results, like file_upload's file list,
98
+ * handle that themselves). Returns undefined if the input isn't a string,
99
+ * doesn't look JSON-shaped, or fails to parse / doesn't parse to a plain
100
+ * object. Deliberately conservative: only strings starting with '{' are
101
+ * attempted, so CSS attribute selectors like `[data-foo]` (which start
102
+ * with '[' and are NOT valid JSON) are never at risk of misinterpretation.
103
+ */
104
+ export declare function tryParseJsonObject(payload: unknown): Record<string, any> | undefined;
105
+ /**
106
+ * True-integer parse for values that are semantically integers (epoch-ms
107
+ * timestamps). Accepts a number that is already an integer, or a string of
108
+ * plain digits with an optional leading '-'. Deliberately rejects floats
109
+ * ('1.5'), exponent notation ('1e3'), hex, whitespace-only, empty strings
110
+ * and anything outside the safe-integer range: an epoch-ms value is an
111
+ * integer, and a caller who sent something else more likely has a bug than
112
+ * an intent, so the caller reports it rather than guessing.
113
+ */
114
+ export declare function tryParseIntegerValue(value: unknown): number | undefined;
115
+ /**
116
+ * Resolve get_console_messages' `since` filter to epoch ms.
117
+ *
118
+ * Three outcomes, mirroring resolveStrictStructuredPayload's honest split:
119
+ * - absent (no payload / no `since`) -> {} : return every message, the
120
+ * long-standing default.
121
+ * - usable -> { ms } : a number, or a bare/embedded integer string, so
122
+ * payload '1785900000000' behaves exactly like {since:1785900000000}.
123
+ * - unusable -> { errorDetail } : `since` WAS supplied but can't be a
124
+ * timestamp ('yesterday', '1.5', true, {}). Previously these were
125
+ * silently dropped and every message was returned as if no filter had
126
+ * been asked for — the same quiet-wrong-answer class as the misleading
127
+ * "missing fields" error this module was written to fix.
128
+ *
129
+ * Non-integer FINITE numbers are accepted (and floored by Date) rather than
130
+ * rejected, preserving the historical `typeof since === 'number'` behavior
131
+ * for callers already passing one.
132
+ */
133
+ export declare function resolveConsoleSince(value: unknown): {
134
+ ms?: number;
135
+ errorDetail?: string;
136
+ };
137
+ /**
138
+ * Attempt to JSON.parse a string into {x,y} coordinates. Returns undefined
139
+ * if it isn't a string, isn't valid JSON, or doesn't have numeric x/y.
140
+ */
141
+ export declare function tryParseCoords(payload: unknown): {
142
+ x: number;
143
+ y: number;
144
+ } | undefined;
145
+ /**
146
+ * Explain why a scroll payload string wasn't a usable {deltaX,deltaY}
147
+ * shape, once it's already failed the direction-keyword check and the
148
+ * tryParseJsonObject() decode. Two distinct causes, same as
149
+ * resolveStrictStructuredPayload's split:
150
+ * (a) the string wasn't valid JSON at all
151
+ * (b) it was valid JSON but not an object (e.g. '[1,2]', '5') —
152
+ * previously reported with an EMPTY detail, silently dropping the
153
+ * "payload parsed but wasn't the right shape" information that
154
+ * every other structured action's error already gives.
155
+ */
156
+ export declare function describeUnusableScrollPayload(payload: string): string;
157
+ /**
158
+ * Coerce a payload to an object per the action's PayloadSpec.
159
+ *
160
+ * - undefined/null payload -> {}
161
+ * - object payload -> returned as-is (unchanged; this path never had a bug)
162
+ * - string payload, kind 'scalar' -> always `{ [defaultKey]: payload }`,
163
+ * literally, never parsed — this is the code/free-text exemption.
164
+ * - string payload, kind 'structured' -> decoded via the shared
165
+ * tryParseJsonShape() primitive. A plain object result is returned
166
+ * directly. An array result is wrapped under defaultKey (file_upload's
167
+ * files list). For a spec with numericDefaultKey, a bare integer string
168
+ * is wrapped as a NUMBER under defaultKey (get_console_messages'
169
+ * epoch-ms `since`). Anything else (parse failure, or a parsed primitive
170
+ * like a bare boolean/null) falls back to the literal wrap under
171
+ * defaultKey, so an existing bare-string call (a URL, a selector, a key
172
+ * name, a file path, ...) keeps working exactly as before.
173
+ *
174
+ * The object and array decodes go through the same primitive that backs
175
+ * tryParseJsonObject(), so there is one implementation of "maybe-JSON
176
+ * string -> shape" rather than the two idioms this module used to carry.
177
+ * The primitive is called with trimBeforeParse=false here, preserving this
178
+ * path's historical raw-JSON.parse semantics: a JSON string prefixed with
179
+ * something JSON.parse rejects but String.trim() removes (a BOM, a
180
+ * non-breaking space) has always fallen back to the literal wrap for these
181
+ * actions, and it still does. That single flag is the ONE difference left
182
+ * between the two callers, and it is deliberate — collapsing it would
183
+ * change behavior for whichever side lost its policy.
184
+ */
185
+ export declare function parsePayload(payload: string | Record<string, any> | undefined | null, action: keyof typeof PAYLOAD_SPECS): Record<string, any>;
186
+ /**
187
+ * Result of resolving a "strict structured" payload — one with NO
188
+ * legitimate bare-string meaning at all (set_viewport, mouse_move). Either
189
+ * `object` is set (a real object to read fields from) or `errorDetail` is
190
+ * set (a human-readable reason suitable for embedding in the action's
191
+ * error message), never both.
192
+ */
193
+ export type StrictStructuredResult = {
194
+ object: Record<string, any>;
195
+ errorDetail?: undefined;
196
+ } | {
197
+ object?: undefined;
198
+ errorDetail: string;
199
+ };
200
+ /**
201
+ * Resolve a payload for an action whose shape is ALWAYS an object with no
202
+ * valid bare-string fallback. Distinguishes the three distinct caller
203
+ * mistakes the old generic "requires payload with X and Y" message
204
+ * collapsed into one:
205
+ * (a) no payload was supplied at all
206
+ * (b) payload was a string that isn't valid JSON
207
+ * (c) payload was valid JSON but not a plain object (e.g. a bare number)
208
+ * Missing/invalid individual fields (width without height, x without y)
209
+ * are NOT this function's job — the caller checks those on the returned
210
+ * object and can report exactly which field was missing, now that it's
211
+ * looking at a genuinely-parsed object instead of a stray string.
212
+ */
213
+ export declare function resolveStrictStructuredPayload(payload: string | Record<string, any> | undefined | null): StrictStructuredResult;
214
+ //# sourceMappingURL=payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../src/payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,0FAA0F;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAgBrD,CAAC;AAEF,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM,CAE5D;AAgDD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAEpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CASvE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAYzF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAMrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,EACxD,MAAM,EAAE,MAAM,OAAO,aAAa,GACjC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAyBrB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAC9B;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,WAAW,CAAC,EAAE,SAAS,CAAA;CAAE,GACxD;IAAE,MAAM,CAAC,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GACvD,sBAAsB,CAqBxB"}
@@ -0,0 +1,325 @@
1
+ /**
2
+ * Payload normalization for the use_browser tool's `payload` parameter.
3
+ *
4
+ * `payload` is declared as `z.union([z.string(), z.record(z.any())])` —
5
+ * every action accepts either a real object or a string. The string form
6
+ * exists because MCP clients frequently JSON.stringify their arguments
7
+ * regardless of the target action's shape (see e.g. the mouse_move example
8
+ * in skills/browsing/SKILL.md, which passes
9
+ * `payload: "{\"x\":100,\"y\":200}"`).
10
+ *
11
+ * Historically, a string payload was never JSON.parse'd — it was wrapped
12
+ * literally as `{ [defaultKey]: <the raw string> }`. That's correct for
13
+ * actions whose payload IS free text or code (eval's JS source, type's
14
+ * literal text, await_text's search string — see PAYLOAD_SPECS below), but
15
+ * wrong for actions whose payload is a multi-field object with no
16
+ * legitimate bare-string meaning (set_viewport's {width,height},
17
+ * mouse_move's {x,y}): a caller who JSON.stringify'd `{width:390,
18
+ * height:844}` got back a payload of `{ viewport: '{"width":390,...}' }`,
19
+ * `vp.width` was `undefined`, and the action threw "requires payload with
20
+ * width and height" — even though both were supplied, just encoded as a
21
+ * string instead of passed as an object.
22
+ *
23
+ * This module is the single place that decides, per action, whether a
24
+ * string payload should be treated as encoded JSON to deserialize
25
+ * ('structured') or taken literally as the value itself ('scalar' — code
26
+ * or free text). It has no side effects and doesn't touch chrome-ws, so it
27
+ * can be imported directly by tests without booting a browser or an MCP
28
+ * server.
29
+ */
30
+ /**
31
+ * Per-action payload shape declaration — the source of truth Postel's-law
32
+ * string handling is driven from.
33
+ *
34
+ * kind: 'scalar' — the string IS the value. NEVER JSON.parse'd, no matter
35
+ * how JSON-ish it looks. This is for code or free text where a payload of
36
+ * `[1,2]` or `{"a":1}` is a perfectly normal *literal* value and silently
37
+ * reinterpreting it would change what a currently-working call does:
38
+ * eval (JS source), type (literal text to type), await_text (literal text
39
+ * to wait for), select (a dropdown option's literal value/text).
40
+ *
41
+ * kind: 'structured' — the payload is semantically an object with named
42
+ * fields. A string payload is JSON.parse'd; if it parses to a plain
43
+ * object, that object *is* the payload (Postel's law: a stringified
44
+ * encoding of the object form works the same as passing the object
45
+ * directly). If it parses to an array, the array is wrapped under
46
+ * defaultKey (file_upload's `files` may legitimately be a JSON array of
47
+ * paths). If parsing fails, or produces something else, parsePayload()
48
+ * falls back to the historical literal-wrap under defaultKey — most
49
+ * 'structured' actions also have a legitimate single-value bare-string
50
+ * form (navigate's URL, a CSS selector, an attribute/key/profile name, a
51
+ * file path, a format keyword) so a non-JSON string must still work
52
+ * exactly as it always has, not error out.
53
+ *
54
+ * Two actions — set_viewport and mouse_move — are 'structured' with NO
55
+ * legitimate bare-string fallback at all (there's no sensible single
56
+ * string that means "width and height" or "x and y"). Those two use
57
+ * resolveStrictStructuredPayload() below instead of parsePayload(), so a
58
+ * string that isn't parseable JSON produces an honest error instead of
59
+ * being silently wrapped and then failing a field check with a misleading
60
+ * "missing" message.
61
+ *
62
+ * scroll and drag_drop are NOT listed here: their bare-string form maps to
63
+ * a *different* field than their object form's defaultKey would (scroll's
64
+ * bare string is a direction keyword, not a deltaX/deltaY value; drag_drop's
65
+ * bare string is the *target* selector, not the *source*), and drag_drop
66
+ * additionally has a bare-coordinates form. A single generic
67
+ * `{ [defaultKey]: string }` wrap can't express that, so they keep bespoke
68
+ * dispatch in index.ts — but that dispatch uses the same tryParseJsonObject()
69
+ * primitive defined below instead of ad hoc inline JSON.parse calls.
70
+ */
71
+ export const PAYLOAD_SPECS = {
72
+ navigate: { kind: 'structured', defaultKey: 'url' },
73
+ type: { kind: 'scalar', defaultKey: 'text' },
74
+ extract: { kind: 'structured', defaultKey: 'format' },
75
+ screenshot: { kind: 'structured', defaultKey: 'path' },
76
+ select: { kind: 'scalar', defaultKey: 'value' },
77
+ eval: { kind: 'scalar', defaultKey: 'expression' },
78
+ attr: { kind: 'structured', defaultKey: 'attr' },
79
+ await_element: { kind: 'structured', defaultKey: 'selector' },
80
+ await_text: { kind: 'scalar', defaultKey: 'text' },
81
+ new_tab: { kind: 'structured', defaultKey: 'url' },
82
+ set_profile: { kind: 'structured', defaultKey: 'name' },
83
+ file_upload: { kind: 'structured', defaultKey: 'files' },
84
+ keyboard_press: { kind: 'structured', defaultKey: 'key' },
85
+ get_console_messages: { kind: 'structured', defaultKey: 'since', numericDefaultKey: true },
86
+ switch_tab: { kind: 'structured', defaultKey: 'tab' },
87
+ };
88
+ /** Truncate a string for embedding in an error message. */
89
+ export function truncateForError(s, max = 80) {
90
+ return s.length > max ? `${s.slice(0, max)}…` : s;
91
+ }
92
+ /**
93
+ * The one JSON-decode primitive every string-payload path is built on.
94
+ *
95
+ * Both callers want the same thing — "parse this string IF it's JSON of the
96
+ * shape I expect, otherwise tell me nothing and let me keep the literal
97
+ * string" — so the mechanics (prefix gate, try/catch, shape check) live
98
+ * here once instead of being spelled out twice.
99
+ *
100
+ * `opener` is the character a JSON value of the wanted shape must start
101
+ * with ('{' for an object, '[' for an array). Gating on it keeps CSS
102
+ * attribute selectors like `[data-foo]` (start with '[', NOT valid JSON)
103
+ * and other bare strings from even being offered to JSON.parse.
104
+ *
105
+ * `trimBeforeParse` exists because the two historical idioms differed here
106
+ * and collapsing them would change behavior (see the comment on
107
+ * parsePayload's structured path):
108
+ * - true -> the trimmed string is parsed (tryParseJsonObject's long-
109
+ * standing behavior, used by scroll/drag_drop).
110
+ * - false -> the raw string is parsed, so leading characters JSON.parse
111
+ * itself rejects (a BOM, a non-breaking space — JSON.parse
112
+ * only accepts space/\t/\n/\r as whitespace) keep failing to
113
+ * parse and fall back to the literal wrap, exactly as
114
+ * parsePayload has always done.
115
+ * The prefix gate always looks at the trimmed string; only what gets handed
116
+ * to JSON.parse differs.
117
+ */
118
+ function tryParseJsonShape(payload, opener, trimBeforeParse) {
119
+ if (typeof payload !== 'string')
120
+ return undefined;
121
+ const trimmed = payload.trim();
122
+ if (!trimmed.startsWith(opener))
123
+ return undefined;
124
+ let parsed;
125
+ try {
126
+ parsed = JSON.parse(trimBeforeParse ? trimmed : payload);
127
+ }
128
+ catch {
129
+ // Not valid JSON — caller keeps the original literal string.
130
+ return undefined;
131
+ }
132
+ if (!parsed || typeof parsed !== 'object')
133
+ return undefined;
134
+ const wantArray = opener === '[';
135
+ return Array.isArray(parsed) === wantArray ? parsed : undefined;
136
+ }
137
+ /**
138
+ * Attempt to JSON.parse a string payload into a plain object (never an
139
+ * array — callers that want array results, like file_upload's file list,
140
+ * handle that themselves). Returns undefined if the input isn't a string,
141
+ * doesn't look JSON-shaped, or fails to parse / doesn't parse to a plain
142
+ * object. Deliberately conservative: only strings starting with '{' are
143
+ * attempted, so CSS attribute selectors like `[data-foo]` (which start
144
+ * with '[' and are NOT valid JSON) are never at risk of misinterpretation.
145
+ */
146
+ export function tryParseJsonObject(payload) {
147
+ return tryParseJsonShape(payload, '{', true);
148
+ }
149
+ /**
150
+ * True-integer parse for values that are semantically integers (epoch-ms
151
+ * timestamps). Accepts a number that is already an integer, or a string of
152
+ * plain digits with an optional leading '-'. Deliberately rejects floats
153
+ * ('1.5'), exponent notation ('1e3'), hex, whitespace-only, empty strings
154
+ * and anything outside the safe-integer range: an epoch-ms value is an
155
+ * integer, and a caller who sent something else more likely has a bug than
156
+ * an intent, so the caller reports it rather than guessing.
157
+ */
158
+ export function tryParseIntegerValue(value) {
159
+ if (typeof value === 'number') {
160
+ return Number.isSafeInteger(value) ? value : undefined;
161
+ }
162
+ if (typeof value !== 'string')
163
+ return undefined;
164
+ const trimmed = value.trim();
165
+ if (!/^-?\d+$/.test(trimmed))
166
+ return undefined;
167
+ const parsed = Number(trimmed);
168
+ return Number.isSafeInteger(parsed) ? parsed : undefined;
169
+ }
170
+ /**
171
+ * Resolve get_console_messages' `since` filter to epoch ms.
172
+ *
173
+ * Three outcomes, mirroring resolveStrictStructuredPayload's honest split:
174
+ * - absent (no payload / no `since`) -> {} : return every message, the
175
+ * long-standing default.
176
+ * - usable -> { ms } : a number, or a bare/embedded integer string, so
177
+ * payload '1785900000000' behaves exactly like {since:1785900000000}.
178
+ * - unusable -> { errorDetail } : `since` WAS supplied but can't be a
179
+ * timestamp ('yesterday', '1.5', true, {}). Previously these were
180
+ * silently dropped and every message was returned as if no filter had
181
+ * been asked for — the same quiet-wrong-answer class as the misleading
182
+ * "missing fields" error this module was written to fix.
183
+ *
184
+ * Non-integer FINITE numbers are accepted (and floored by Date) rather than
185
+ * rejected, preserving the historical `typeof since === 'number'` behavior
186
+ * for callers already passing one.
187
+ */
188
+ export function resolveConsoleSince(value) {
189
+ if (value === undefined || value === null)
190
+ return {};
191
+ if (typeof value === 'number') {
192
+ if (Number.isFinite(value))
193
+ return { ms: value };
194
+ return { errorDetail: `since must be an epoch-ms timestamp, got the non-finite number ${String(value)}` };
195
+ }
196
+ const asInteger = tryParseIntegerValue(value);
197
+ if (asInteger !== undefined)
198
+ return { ms: asInteger };
199
+ const shown = typeof value === 'string' ? truncateForError(value) : typeof value;
200
+ return {
201
+ errorDetail: `since must be an epoch-ms timestamp (a number, or a string of digits), got ${shown}`,
202
+ };
203
+ }
204
+ /**
205
+ * Attempt to JSON.parse a string into {x,y} coordinates. Returns undefined
206
+ * if it isn't a string, isn't valid JSON, or doesn't have numeric x/y.
207
+ */
208
+ export function tryParseCoords(payload) {
209
+ const obj = tryParseJsonObject(payload);
210
+ if (obj && typeof obj.x === 'number' && typeof obj.y === 'number') {
211
+ return { x: obj.x, y: obj.y };
212
+ }
213
+ return undefined;
214
+ }
215
+ /**
216
+ * Explain why a scroll payload string wasn't a usable {deltaX,deltaY}
217
+ * shape, once it's already failed the direction-keyword check and the
218
+ * tryParseJsonObject() decode. Two distinct causes, same as
219
+ * resolveStrictStructuredPayload's split:
220
+ * (a) the string wasn't valid JSON at all
221
+ * (b) it was valid JSON but not an object (e.g. '[1,2]', '5') —
222
+ * previously reported with an EMPTY detail, silently dropping the
223
+ * "payload parsed but wasn't the right shape" information that
224
+ * every other structured action's error already gives.
225
+ */
226
+ export function describeUnusableScrollPayload(payload) {
227
+ try {
228
+ JSON.parse(payload);
229
+ }
230
+ catch {
231
+ return `payload was a string that could not be parsed as JSON: ${truncateForError(payload)}`;
232
+ }
233
+ return `payload was valid JSON but not an object with deltaX/deltaY (or a recognized direction string): ${truncateForError(payload)}`;
234
+ }
235
+ /**
236
+ * Coerce a payload to an object per the action's PayloadSpec.
237
+ *
238
+ * - undefined/null payload -> {}
239
+ * - object payload -> returned as-is (unchanged; this path never had a bug)
240
+ * - string payload, kind 'scalar' -> always `{ [defaultKey]: payload }`,
241
+ * literally, never parsed — this is the code/free-text exemption.
242
+ * - string payload, kind 'structured' -> decoded via the shared
243
+ * tryParseJsonShape() primitive. A plain object result is returned
244
+ * directly. An array result is wrapped under defaultKey (file_upload's
245
+ * files list). For a spec with numericDefaultKey, a bare integer string
246
+ * is wrapped as a NUMBER under defaultKey (get_console_messages'
247
+ * epoch-ms `since`). Anything else (parse failure, or a parsed primitive
248
+ * like a bare boolean/null) falls back to the literal wrap under
249
+ * defaultKey, so an existing bare-string call (a URL, a selector, a key
250
+ * name, a file path, ...) keeps working exactly as before.
251
+ *
252
+ * The object and array decodes go through the same primitive that backs
253
+ * tryParseJsonObject(), so there is one implementation of "maybe-JSON
254
+ * string -> shape" rather than the two idioms this module used to carry.
255
+ * The primitive is called with trimBeforeParse=false here, preserving this
256
+ * path's historical raw-JSON.parse semantics: a JSON string prefixed with
257
+ * something JSON.parse rejects but String.trim() removes (a BOM, a
258
+ * non-breaking space) has always fallen back to the literal wrap for these
259
+ * actions, and it still does. That single flag is the ONE difference left
260
+ * between the two callers, and it is deliberate — collapsing it would
261
+ * change behavior for whichever side lost its policy.
262
+ */
263
+ export function parsePayload(payload, action) {
264
+ const spec = PAYLOAD_SPECS[action];
265
+ if (!spec) {
266
+ throw new Error(`parsePayload: no PayloadSpec registered for action "${action}"`);
267
+ }
268
+ if (payload === undefined || payload === null)
269
+ return {};
270
+ if (typeof payload !== 'string')
271
+ return payload;
272
+ if (spec.kind === 'scalar') {
273
+ return { [spec.defaultKey]: payload };
274
+ }
275
+ // kind === 'structured'
276
+ const asObject = tryParseJsonShape(payload, '{', false);
277
+ if (asObject)
278
+ return asObject;
279
+ const asArray = tryParseJsonShape(payload, '[', false);
280
+ if (asArray)
281
+ return { [spec.defaultKey]: asArray };
282
+ if (spec.numericDefaultKey) {
283
+ const asInteger = tryParseIntegerValue(payload);
284
+ if (asInteger !== undefined)
285
+ return { [spec.defaultKey]: asInteger };
286
+ }
287
+ return { [spec.defaultKey]: payload };
288
+ }
289
+ /**
290
+ * Resolve a payload for an action whose shape is ALWAYS an object with no
291
+ * valid bare-string fallback. Distinguishes the three distinct caller
292
+ * mistakes the old generic "requires payload with X and Y" message
293
+ * collapsed into one:
294
+ * (a) no payload was supplied at all
295
+ * (b) payload was a string that isn't valid JSON
296
+ * (c) payload was valid JSON but not a plain object (e.g. a bare number)
297
+ * Missing/invalid individual fields (width without height, x without y)
298
+ * are NOT this function's job — the caller checks those on the returned
299
+ * object and can report exactly which field was missing, now that it's
300
+ * looking at a genuinely-parsed object instead of a stray string.
301
+ */
302
+ export function resolveStrictStructuredPayload(payload) {
303
+ if (payload === undefined || payload === null) {
304
+ return { errorDetail: 'no payload was supplied' };
305
+ }
306
+ if (typeof payload === 'object') {
307
+ return { object: payload };
308
+ }
309
+ let parsed;
310
+ try {
311
+ parsed = JSON.parse(payload);
312
+ }
313
+ catch {
314
+ return {
315
+ errorDetail: `payload was a string that could not be parsed as JSON: ${truncateForError(payload)}`,
316
+ };
317
+ }
318
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
319
+ return { object: parsed };
320
+ }
321
+ return {
322
+ errorDetail: `payload was valid JSON but not an object: ${truncateForError(payload)}`,
323
+ };
324
+ }
325
+ //# sourceMappingURL=payload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../src/payload.ts"],"names":[],"mappings":"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"}