playhead-cli 0.1.2 → 0.2.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/Dockerfile +9 -6
  2. package/README.md +43 -7
  3. package/action.yml +56 -2
  4. package/dist/audio/mux.d.ts +2 -0
  5. package/dist/audio/mux.d.ts.map +1 -1
  6. package/dist/authoring/author.d.ts +8 -2
  7. package/dist/authoring/author.d.ts.map +1 -1
  8. package/dist/authoring/catalog.d.ts.map +1 -1
  9. package/dist/authoring/explore.d.ts.map +1 -1
  10. package/dist/authoring/validate.d.ts.map +1 -1
  11. package/dist/bundle/types.d.ts +2 -0
  12. package/dist/bundle/types.d.ts.map +1 -1
  13. package/dist/bundle/writer.d.ts +6 -1
  14. package/dist/bundle/writer.d.ts.map +1 -1
  15. package/dist/capture/driver-api.d.ts +14 -1
  16. package/dist/capture/driver-api.d.ts.map +1 -1
  17. package/dist/capture/events.d.ts +1 -1
  18. package/dist/capture/events.d.ts.map +1 -1
  19. package/dist/capture/executor.d.ts.map +1 -1
  20. package/dist/capture/playwright-driver.d.ts +22 -2
  21. package/dist/capture/playwright-driver.d.ts.map +1 -1
  22. package/dist/cli/index.js +2791 -59343
  23. package/dist/cli/index.js.map +1 -1
  24. package/dist/compose/camera/interpolate.d.ts +16 -3
  25. package/dist/compose/camera/interpolate.d.ts.map +1 -1
  26. package/dist/compose/camera/planner.d.ts.map +1 -1
  27. package/dist/compose/captions.d.ts.map +1 -1
  28. package/dist/compose/index.d.ts.map +1 -1
  29. package/dist/compose/overlays/build.d.ts.map +1 -1
  30. package/dist/compose/overlays/draw.d.ts.map +1 -1
  31. package/dist/compose/render/encoder.d.ts.map +1 -1
  32. package/dist/compose/render/frameStore.d.ts.map +1 -1
  33. package/dist/compose/render/renderer.d.ts.map +1 -1
  34. package/dist/compose/timeline/pacing.d.ts +4 -0
  35. package/dist/compose/timeline/pacing.d.ts.map +1 -1
  36. package/dist/compose/types.d.ts +14 -3
  37. package/dist/compose/types.d.ts.map +1 -1
  38. package/dist/index.js +1958 -59058
  39. package/dist/index.js.map +1 -1
  40. package/dist/mcp/bin.js +2550 -59450
  41. package/dist/mcp/bin.js.map +1 -1
  42. package/dist/mcp/server.d.ts.map +1 -1
  43. package/dist/shared/version.d.ts +0 -2
  44. package/dist/shared/version.d.ts.map +1 -1
  45. package/dist/spec/locators.d.ts.map +1 -1
  46. package/dist/spec/parse.d.ts.map +1 -1
  47. package/dist/spec/schema.d.ts +263 -2
  48. package/dist/spec/schema.d.ts.map +1 -1
  49. package/dist/verify/checks.d.ts.map +1 -1
  50. package/dist/verify/report.d.ts +33 -6
  51. package/dist/verify/report.d.ts.map +1 -1
  52. package/dist/verify/runner.d.ts +1 -1
  53. package/dist/verify/runner.d.ts.map +1 -1
  54. package/dist/verify/types.d.ts +36 -4
  55. package/dist/verify/types.d.ts.map +1 -1
  56. package/package.json +1 -1
  57. package/dist/onnxruntime_binding-5QEF3SUC.node +0 -0
  58. package/dist/onnxruntime_binding-BKPKNEGC.node +0 -0
  59. package/dist/onnxruntime_binding-FMOXGIUT.node +0 -0
  60. package/dist/onnxruntime_binding-OI2KMXC5.node +0 -0
  61. package/dist/onnxruntime_binding-UX44MLAZ.node +0 -0
  62. package/dist/onnxruntime_binding-Y2W7N7WY.node +0 -0
package/Dockerfile CHANGED
@@ -1,5 +1,7 @@
1
1
  # Playhead in a container: capture + compose + verify with no host dependencies.
2
2
  # The Playwright base image ships Chromium, its sandbox deps, and system fonts.
3
+ # IMPORTANT: keep this tag aligned with the playwright version in package.json — mismatched
4
+ # pins mean the preinstalled browsers don't match the library and ~1GB of dead weight.
3
5
  #
4
6
  # docker build -t playhead .
5
7
  # docker run --rm -v "$PWD:/work" -w /work --shm-size=1g playhead \
@@ -7,15 +9,16 @@
7
9
  #
8
10
  # Notes:
9
11
  # - --shm-size=1g (or --disable-dev-shm-usage) keeps Chromium from OOMing in /dev/shm.
10
- # - TTS narration (`output.audio.narration: tts`) uses macOS `say` and degrades LOUDLY to a
11
- # silent render on Linux; a Linux TTS provider is planned behind the same seam.
12
- # - ffmpeg/ffprobe come from the npm static binaries — nothing to apt-install.
13
- FROM mcr.microsoft.com/playwright:v1.49.0-noble
12
+ # - Narration: `provider: kokoro` works on Linux add kokoro-js to the image
13
+ # (`RUN npm i -g kokoro-js`) or mount a project that has it; `provider: say` is macOS-only
14
+ # and degrades to a FAILING audio check.
15
+ # - ffmpeg/ffprobe come from the npm static binaries. Their INSTALL SCRIPTS download the
16
+ # binaries — never `--ignore-scripts` here (that shipped an image with no ffmpeg).
17
+ FROM mcr.microsoft.com/playwright:v1.62.1-noble
14
18
 
15
19
  WORKDIR /app
16
20
  COPY package.json package-lock.json ./
17
- RUN npm ci --omit=dev --ignore-scripts \
18
- && npx playwright install chromium
21
+ RUN npm ci --omit=dev
19
22
 
20
23
  COPY dist ./dist
21
24
  COPY demo ./demo
package/README.md CHANGED
@@ -13,7 +13,28 @@ Change the spec or the product, regenerate in minutes. **Re-render, don't re-rec
13
13
 
14
14
  ---
15
15
 
16
- ## Quick start
16
+ ## Install
17
+
18
+ ```bash
19
+ npm install -g playhead-cli
20
+ npx playwright install chromium # one-time browser download — nothing works without it
21
+ playhead doctor # confirms ffmpeg, browser, and fonts are ready
22
+ ```
23
+
24
+ Then point it at your running app and make your first video:
25
+
26
+ ```bash
27
+ playhead explore http://localhost:3000 # every addressable element, as ready-to-paste locators
28
+ playhead init demo.yaml # scaffold a spec — paste those locators in
29
+ playhead validate demo.yaml # every locator checked against the live app, in seconds
30
+ playhead render demo.yaml -o out # → out/out.mp4 + out/verify/verdict.json
31
+ ```
32
+
33
+ `playhead guide` prints this workflow with every command's role. ffmpeg ships with the package;
34
+ if your npm config sets `ignore-scripts`, install with `--ignore-scripts=false` (or point
35
+ `PLAYHEAD_FFMPEG` at a local ffmpeg) — `playhead doctor` will tell you if it's missing.
36
+
37
+ ## Quick start (this repo, with the bundled demo app)
17
38
 
18
39
  ```bash
19
40
  npm install
@@ -103,6 +124,8 @@ output:
103
124
  masking:
104
125
  - target: 'testid=env-banner' # redacted at capture; never reaches a frame
105
126
  style: solid
127
+ setup: # runs BEFORE recording starts — never filmed
128
+ - click: 'role=button[name="Accept all"]' # e.g. dismiss the cookie-consent banner
106
129
  scenes:
107
130
  - id: add-user
108
131
  title: "Add a user"
@@ -120,7 +143,13 @@ scenes:
120
143
 
121
144
  Elements inside iframes are addressed with a frame chain: `frame=#preview >> role=button[name="Save"]`.
122
145
  Per-step extras: `caption`, `narration`, `focus` (`target`/`wide`/a locator), `shot: cut|continue`,
123
- `timeout`, `mask`. Specs compose: `extends: ./base.yaml` merges a base file underneath.
146
+ `timeout`, `mask`, and `optional: true` (a failing optional step — cookie banner, A/B'd tooltip —
147
+ is skipped, not fatal). More verbs: `rightclick`, `upload: {target, file}`, `drag: {target, to}`
148
+ (pointer-based drags — dnd-kit-style UIs, not native HTML5 draggables), and `type` with
149
+ `clear: true` to overwrite pre-filled fields. `expect` asserts `visible`/`text`/`count`/`value`/
150
+ `disabled`/`checked` on a locator and/or the page `url:`. Secrets: `text: ${env.PASSWORD}` with
151
+ `mask: true` resolves at capture time and never reaches any artifact.
152
+ Specs compose: `extends: ./base.yaml` merges a base file underneath.
124
153
  Scaffold one with `npx playhead init`.
125
154
 
126
155
  ## Commands
@@ -130,10 +159,12 @@ Scaffold one with `npx playhead init`.
130
159
  | `playhead render <specs...>` | capture → compose → verify; `--workers N` pools multiple specs; `--json` / `--junit <path>` for CI |
131
160
  | `playhead validate <spec> --live` | preflight EVERY locator against the running app in one pass, with suggestions — before any frame is captured |
132
161
  | `playhead capture <spec>` | produce a capture bundle only; `--from-scene <id>` fast-forwards earlier steps unfilmed |
133
- | `playhead compose <bundle>` | re-render from a bundle — **no live app needed**; `--spec edited.yaml` re-composes with new text/theme/audio; `--expect-sha` asserts determinism |
162
+ | `playhead compose <bundle>` | re-render from a bundle — **no live app needed**; `--spec edited.yaml` re-composes with new text/theme/audio; `--aspects "9:16,1:1"` renders more aspects from the same capture; `--gif` exports an embeddable GIF; `--expect-sha` asserts determinism |
134
163
  | `playhead verify <bundle> <mp4>` | run the verification suite; `--json` / `--junit` |
135
164
  | `playhead jira report <KEY>` | attach evidence (video/failure clip, verdict, contact sheet, console log) to an existing Jira issue + post a verdict comment; or `render --jira <KEY>` (env: JIRA_BASE_URL/EMAIL/API_TOKEN) |
136
- | `playhead attest <verify-dir>` | re-verify a verdict: artifact hashes + HMAC signature (`PLAYHEAD_SIGNING_KEY`) |
165
+ | `playhead compare <baseline> <current>` | run-over-run regression report: verdict drift, newly failing checks, coverage + per-step timing deltas; exits 2 on regression |
166
+ | `playhead attest <verify-dir>` | re-verify a verdict: video/manifest/contact-sheet hashes + every frame image re-hashed (`--bundle`) + signature check; unsigned fails unless `--allow-unsigned` |
167
+ | `playhead keygen` | generate an Ed25519 signing keypair — verdicts become third-party verifiable via a pinned key id |
137
168
  | `playhead explore <url>` | grounded locator catalog (regions, stability marks, iframes); `--storage-state` for authed screens |
138
169
  | `playhead login <url>` | you log in in a headed browser; the session is saved for `app.storageState` |
139
170
  | `playhead init [path]` | scaffold a starter spec |
@@ -167,9 +198,14 @@ providers are available.
167
198
  ## CI
168
199
 
169
200
  `action.yml` ships a composite GitHub Action (render → JUnit → artifact upload), and the
170
- `Dockerfile` runs everything in the Playwright base image. Verdicts carry provenance (version,
171
- spec hash, capture time, host) and an HMAC signature when `PLAYHEAD_SIGNING_KEY` is set —
172
- `playhead attest` proves a verdict describes exactly these files and was never edited.
201
+ `Dockerfile` runs everything in the Playwright base image.
202
+
203
+ **Evidence chain.** Verdicts carry provenance, a pixel-verification **coverage** metric, and
204
+ hashes of the video, compose manifest, contact sheet, and every bundle **frame image**. Two
205
+ signing tiers: `playhead keygen` + `PLAYHEAD_SIGNING_KEY_FILE` signs with **Ed25519** (third-
206
+ party verifiable — consumers pin your key id), or `PLAYHEAD_SIGNING_KEY` for zero-config HMAC
207
+ within one trust domain. `playhead attest [--bundle]` re-hashes everything (frame bytes
208
+ included) and checks the signature; an unsigned verdict fails attest unless `--allow-unsigned`.
173
209
 
174
210
  ## How it works
175
211
 
package/action.yml CHANGED
@@ -20,6 +20,9 @@ inputs:
20
20
  signing-key:
21
21
  description: 'PLAYHEAD_SIGNING_KEY — when set, verdicts are HMAC-signed and attestable'
22
22
  required: false
23
+ playhead-version:
24
+ description: 'playhead-cli version to run (npm dist-tag or exact version)'
25
+ default: 'latest'
23
26
 
24
27
  outputs:
25
28
  junit:
@@ -46,7 +49,9 @@ runs:
46
49
  PLAYHEAD_SIGNING_KEY: ${{ inputs.signing-key }}
47
50
  run: |
48
51
  set +e
49
- npx playhead render ${{ inputs.specs }} \
52
+ # The npm PACKAGE is playhead-cli (the bin inside it is `playhead`). A bare
53
+ # `npx playhead` would fetch the unrelated npm package literally named "playhead".
54
+ npx -y -p playhead-cli@${{ inputs.playhead-version }} playhead render ${{ inputs.specs }} \
50
55
  -o "${{ inputs.out }}" \
51
56
  --workers "${{ inputs.workers }}" \
52
57
  --junit "${{ inputs.out }}/junit.xml" \
@@ -59,13 +64,62 @@ runs:
59
64
 
60
65
  - name: Upload artifacts (videos, verdicts, contact sheets, failure clips)
61
66
  if: always()
67
+ id: artifacts
62
68
  uses: actions/upload-artifact@v4
63
69
  with:
64
70
  name: playhead-${{ github.run_id }}
65
71
  path: |
66
72
  ${{ inputs.out }}/**/*.mp4
73
+ ${{ inputs.out }}/**/*.gif
67
74
  ${{ inputs.out }}/**/verdict.json
68
75
  ${{ inputs.out }}/**/contact-sheet.png
69
76
  ${{ inputs.out }}/**/failure.json
70
- ${{ inputs.out }}/junit.xml
77
+ ${{ inputs.out }}/junit*.xml
71
78
  if-no-files-found: ignore
79
+
80
+ - name: PR comment (sticky verdict summary)
81
+ if: always() && github.event_name == 'pull_request'
82
+ uses: actions/github-script@v7
83
+ env:
84
+ OUT_DIR: ${{ inputs.out }}
85
+ ARTIFACT_URL: ${{ steps.artifacts.outputs.artifact-url }}
86
+ with:
87
+ script: |
88
+ const fs = require('fs');
89
+ const path = require('path');
90
+ const outDir = process.env.OUT_DIR;
91
+ // Find verdict.json (single-spec: out/verify/; pool: out/<name>/verify/).
92
+ const verdicts = [];
93
+ const walk = (d, depth) => {
94
+ if (depth > 3) return;
95
+ for (const e of fs.readdirSync(d, { withFileTypes: true })) {
96
+ const p = path.join(d, e.name);
97
+ if (e.isFile() && e.name === 'verdict.json') verdicts.push(p);
98
+ else if (e.isDirectory()) walk(p, depth + 1);
99
+ }
100
+ };
101
+ try { walk(outDir, 0); } catch {}
102
+ const mark = (s) => (s === 'pass' ? '✅' : s === 'fail' ? '❌' : s === 'warn' ? '⚠️' : '⏭️');
103
+ let body = '<!-- playhead-verdict -->\n## 🎬 Playhead\n';
104
+ if (verdicts.length === 0) {
105
+ const failure = (() => { try { return JSON.parse(fs.readFileSync(path.join(outDir, 'capture', 'failure.json'), 'utf8')); } catch { return null; } })();
106
+ body += failure
107
+ ? `**Flow FAILED** at \`${failure.stepRef}\`\n> ${failure.message.split('\n')[0]}\n\n📼 Watch \`failure.mp4\` in the artifacts.\n`
108
+ : '_No verdict produced (infra failure?) — see the job log._\n';
109
+ }
110
+ for (const vp of verdicts) {
111
+ const v = JSON.parse(fs.readFileSync(vp, 'utf8'));
112
+ const name = path.relative(outDir, path.dirname(path.dirname(vp))) || 'render';
113
+ body += `\n### ${name}: ${v.verdict === 'publishable' ? '✅ publishable' : '❌ not publishable'}\n`;
114
+ if (v.coverage) body += `coverage: **${v.coverage.actionsVerified}/${v.coverage.actionsTotal}** actions pixel-verified · ${v.coverage.outputSamplesVerified} output samples · signed: ${v.signature ? `\`${v.signature.keyId}\`` : 'no'}\n\n`;
115
+ body += '| check | result |\n|---|---|\n';
116
+ for (const c of v.checks) body += `| ${c.id} | ${mark(c.status)} ${c.details.replace(/\|/g, '\\|')} |\n`;
117
+ }
118
+ if (process.env.ARTIFACT_URL) body += `\n📦 [Video + contact sheet + verdict (artifact)](${process.env.ARTIFACT_URL})\n`;
119
+ // Sticky: update the existing playhead comment instead of stacking new ones.
120
+ const { owner, repo } = context.repo;
121
+ const issue_number = context.issue.number;
122
+ const comments = await github.rest.issues.listComments({ owner, repo, issue_number, per_page: 100 });
123
+ const mine = comments.data.find((c) => c.body && c.body.includes('<!-- playhead-verdict -->'));
124
+ if (mine) await github.rest.issues.updateComment({ owner, repo, comment_id: mine.id, body });
125
+ else await github.rest.issues.createComment({ owner, repo, issue_number, body });
@@ -11,6 +11,8 @@ export interface AudioBedOptions {
11
11
  narration?: Map<string, NarrationClip>;
12
12
  /** Click-beat times (output clock) that get a soft synthesized tick. */
13
13
  sfxBeats?: ClickRipple[];
14
+ /** Keystroke-tick times (output clock) — quieter, shorter, higher than clicks. */
15
+ keyBeats?: number[];
14
16
  /** User-supplied music bed (no asset is bundled). */
15
17
  music?: {
16
18
  file: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mux.d.ts","sourceRoot":"","sources":["../../src/audio/mux.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,qDAAqD;IACrD,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,EAAE,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,UAAU,EAAE,CAAC,CAyFvB"}
1
+ {"version":3,"file":"mux.d.ts","sourceRoot":"","sources":["../../src/audio/mux.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAO9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,qDAAqD;IACrD,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,YAAY,EAAE,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,UAAU,EAAE,CAAC,CA6GvB"}
@@ -13,8 +13,10 @@ export interface StepDecision {
13
13
  caption?: string;
14
14
  mask?: boolean;
15
15
  }
16
- /** Chooses the next step from the current screen. Default is Claude; injectable for tests/policies. */
17
- export type Decider = (goal: string, snap: PageSnapshot, soFar: AuthoredStep[]) => Promise<StepDecision>;
16
+ /** Chooses the next step from the current screen. Default is Claude; injectable for tests/policies.
17
+ * `feedback` carries the previous attempt's failure so the model can adjust instead of
18
+ * repeating the same failing step until maxSteps is exhausted (round-2 audit). */
19
+ export type Decider = (goal: string, snap: PageSnapshot, soFar: AuthoredStep[], feedback?: string) => Promise<StepDecision>;
18
20
  export interface AuthorOptions {
19
21
  url: string;
20
22
  goal: string;
@@ -26,6 +28,10 @@ export interface AuthorOptions {
26
28
  };
27
29
  maxSteps: number;
28
30
  headless: boolean;
31
+ /** Output kind for the authored spec (walkthrough | demo | ...). */
32
+ kind?: string;
33
+ /** Session file from `playhead login` for authenticated apps. */
34
+ storageStatePath?: string;
29
35
  driver?: Driver;
30
36
  /** Override the step decider (defaults to the Claude-backed one). */
31
37
  decide?: Decider;
@@ -1 +1 @@
1
- {"version":3,"file":"author.d.ts","sourceRoot":"","sources":["../../src/authoring/author.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGrF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,uGAAuG;AACvG,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAEzG,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAsCD,2GAA2G;AAC3G,wBAAsB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAgD1G;AAED,yFAAyF;AACzF,wBAAgB,aAAa,IAAI,OAAO,CA0CvC"}
1
+ {"version":3,"file":"author.d.ts","sourceRoot":"","sources":["../../src/authoring/author.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAoC,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGrF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;mFAEmF;AACnF,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAE5H,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAsCD,2GAA2G;AAC3G,wBAAsB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAkF1G;AAED,yFAAyF;AACzF,wBAAgB,aAAa,IAAI,OAAO,CAkDvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/authoring/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAElG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAChB,kGAAkG;IAClG,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACrC,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAMzE;AAKD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,EAAE,CAkB/D;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,eAAe,GAAG,WAAW,CAQvD;AAED,mGAAmG;AACnG,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMvC"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/authoring/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAElG,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAChB,kGAAkG;IAClG,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACrC,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAMzE;AAKD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,EAAE,CAkB/D;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,eAAe,GAAG,WAAW,CAQvD;AAED,mGAAmG;AACnG,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAQvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"explore.d.ts","sourceRoot":"","sources":["../../src/authoring/explore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAA0C,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzF,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA+CxE;AAED,2FAA2F;AAC3F,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IACL,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC,YAAY,CAAC,CAkBvB;AAED;6EAC6E;AAC7E,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAyBxD"}
1
+ {"version":3,"file":"explore.d.ts","sourceRoot":"","sources":["../../src/authoring/explore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAA0C,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzF,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAsDxE;AAED,2FAA2F;AAC3F,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IACL,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC,YAAY,CAAC,CAkBvB;AAED;6EAC6E;AAC7E,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAyBxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/authoring/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAMvD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,cAAc,CAAC,CAsFzB;AAsFD,yCAAyC;AACzC,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAiBhE"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/authoring/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAcvD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,cAAc,CAAC,CAkKzB;AA8HD,yCAAyC;AACzC,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAiBhE"}
@@ -4,6 +4,8 @@ export interface FrameIndexEntry {
4
4
  f: string;
5
5
  /** Capture-relative ms. */
6
6
  t: number;
7
+ /** sha256 of the frame file bytes — makes the framesIndex hash cover pixels, not names. */
8
+ h?: string;
7
9
  }
8
10
  export interface MaskSample {
9
11
  t: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bundle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClF;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bundle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,2FAA2F;IAC3F,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClF;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B"}
@@ -8,9 +8,14 @@ export declare class BundleWriter {
8
8
  private pendingWrites;
9
9
  private maskSamples;
10
10
  private counter;
11
+ private failedFrames;
12
+ private writeError;
11
13
  private ready;
12
14
  constructor(dir: string, captureFormat: 'jpeg' | 'png');
13
- /** Queue a frame write. `t` is capture-relative ms. */
15
+ /** Queue a frame write. `t` is capture-relative ms. Each frame's BYTES are hashed at write
16
+ * time — the index entry carries the digest, so the framesIndex hash transitively covers
17
+ * every pixel in the bundle. (Round-2 audit: filename+timestamp hashing left frame images
18
+ * freely swappable under a passing attest.) */
14
19
  addFrame(data: Buffer, t: number): void;
15
20
  addMaskSample(sample: MaskSample): void;
16
21
  frameCount(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/bundle/writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAC;AAK9E,qBAAa,YAAY;IAQrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa;IARhC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,KAAK,CAAgB;IAE7B,YACmB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GAAG,KAAK,EAG/C;IAED,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAOtC;IAED,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAEtC;IAED,UAAU,IAAI,MAAM,CAEnB;IAEK,MAAM,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,QAAQ,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACnC,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAChD,GAAG,OAAO,CAAC,cAAc,CAAC,CA+C1B;CACF"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/bundle/writer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAmB,UAAU,EAAE,MAAM,YAAY,CAAC;AAM9E,qBAAa,YAAY;IAUrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAVhC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,KAAK,CAAgB;IAE7B,YACmB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GAAG,KAAK,EAG/C;IAED;;;oDAGgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAetC;IAED,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAEtC;IAED,UAAU,IAAI,MAAM,CAEnB;IAEK,MAAM,CAAC,IAAI,EAAE;QACjB,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,QAAQ,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACnC,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAChD,GAAG,OAAO,CAAC,cAAc,CAAC,CA+D1B;CACF"}
@@ -130,11 +130,20 @@ export interface Driver {
130
130
  /** The real click: actionability + hit-target verification + retry via the locator. */
131
131
  actClick(loc: ParsedLocator, opts?: {
132
132
  double?: boolean;
133
+ button?: 'right';
133
134
  timeoutMs?: number;
134
135
  }): Promise<{
135
136
  tDown: number;
136
137
  tUp: number;
137
138
  }>;
139
+ /** Set a file input's files (no native dialog exists in headless — none is filmable). */
140
+ setInputFiles(loc: ParsedLocator, filePath: string): Promise<void>;
141
+ /** Real drag between two elements; returns the pressed-cursor waypoints for the film. */
142
+ dragTo(from: ParsedLocator, to: ParsedLocator, timeoutMs: number): Promise<{
143
+ tDown: number;
144
+ tUp: number;
145
+ path: CursorWaypoint[];
146
+ }>;
138
147
  /** Console messages, page errors, dialogs, and popups recorded so far (bug-repro evidence). */
139
148
  consoleLog(): ConsoleRecord[];
140
149
  typeText(text: string, delayMs: number): Promise<{
@@ -153,10 +162,14 @@ export interface Driver {
153
162
  /** Wait until the page scroll position stops changing (smooth-scroll finished), or timeout. */
154
163
  waitForScrollSettle(timeoutMs: number): Promise<void>;
155
164
  /** Assert a UI state; throws with a readable message on timeout. */
156
- expectState(loc: ParsedLocator, opts: {
165
+ expectState(loc: ParsedLocator | null, opts: {
157
166
  visible?: boolean;
158
167
  text?: string;
159
168
  count?: number;
169
+ url?: string;
170
+ value?: string;
171
+ disabled?: boolean;
172
+ checked?: boolean;
160
173
  }, timeoutMs: number): Promise<void>;
161
174
  /** Wait for network idle + two stable layout samples. Resolves at the settle moment. */
162
175
  settle(opts: {
@@ -1 +1 @@
1
- {"version":3,"file":"driver-api.d.ts","sourceRoot":"","sources":["../../src/capture/driver-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver-api.d.ts","sourceRoot":"","sources":["../../src/capture/driver-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9D;;;;;;;;GAQG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uFAAuF;IACvF,WAAW,CAAC,EAAE;QACZ,qDAAqD;QACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,mCAAmC;QACnC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QAC/B,mGAAmG;QACnG,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,uFAAuF;QACvF,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,iFAAiF;IACjF,OAAO,CAAC,EAAE;QACR,wFAAwF;QACxF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,iDAAiD;QACjD,IAAI,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC/E,sFAAsF;QACtF,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF;sGACkG;IAClG,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAChC;AAED,4FAA4F;AAC5F,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,aAAa,CAAC;IACnB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CACzB;AAED,mGAAmG;AACnG,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,gCAAgC;IAChC,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,iDAAiD;IACjD,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAEnE,kGAAkG;IAClG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,0FAA0F;IAC1F,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACnD,oFAAoF;IACpF,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,+GAA+G;IAC/G,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1E,wEAAwE;IACxE,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE3D,SAAS,IAAI,KAAK,CAAC;IACnB,qGAAqG;IACrG,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACrE,gGAAgG;IAChG,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,uFAAuF;IACvF,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzI,yFAAyF;IACzF,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,yFAAyF;IACzF,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC,CAAC;IACnI,+FAA+F;IAC/F,UAAU,IAAI,aAAa,EAAE,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpF,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,+FAA+F;IAC/F,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,oEAAoE;IACpE,WAAW,CACT,GAAG,EAAE,aAAa,GAAG,IAAI,EACzB,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,EAC/H,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,wFAAwF;IACxF,MAAM,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/D;sDACkD;IAClD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,sIAAsI;IACtI,wGAAwG;IACxG,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IACzH,oFAAoF;IACpF,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD,sEAAsE;IACtE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,yEAAyE;IACzE,WAAW,IAAI,MAAM,CAAC;IACtB,qGAAqG;IACrG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,UAAU,IAAI,MAAM,CAAC;CACtB"}
@@ -13,7 +13,7 @@ export interface CursorWaypoint {
13
13
  y: number;
14
14
  t: number;
15
15
  }
16
- export type ActionKind = 'goto' | 'click' | 'dblclick' | 'hover' | 'type' | 'press' | 'select' | 'scroll' | 'expect' | 'wait';
16
+ export type ActionKind = 'goto' | 'click' | 'rightclick' | 'upload' | 'drag' | 'dblclick' | 'hover' | 'type' | 'press' | 'select' | 'scroll' | 'expect' | 'wait';
17
17
  export interface ActionEvent {
18
18
  type: 'action';
19
19
  kind: ActionKind;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/capture/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEzD,iGAAiG;AAEjG,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,sFAAsF;IACtF,IAAI,EAAE,IAAI,CAAC;IACX,qDAAqD;IACrD,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;gCAC4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;mEAC+D;IAC/D,WAAW,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,EAAE,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,EAAE,CAEjE"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/capture/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEzD,iGAAiG;AAEjG,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,sFAAsF;IACtF,IAAI,EAAE,IAAI,CAAC;IACX,qDAAqD;IACrD,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;gCAC4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;mEAC+D;IAC/D,WAAW,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,eAAe,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,EAAE,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,EAAE,CAEjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/capture/executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAiB,MAAM,mBAAmB,CAAC;AAG7D,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AAQ/D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA4N9F"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/capture/executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAiB,MAAM,mBAAmB,CAAC;AAG7D,OAAO,KAAK,EAAE,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AAQ/D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA0P9F"}
@@ -23,6 +23,10 @@ export declare class PlaywrightDriver implements Driver {
23
23
  private typingMaskLoc;
24
24
  launch(opts: DriverLaunchOptions): Promise<void>;
25
25
  private consoleBuf;
26
+ /** Browser-level forced device scale (--force-device-scale-factor); 1 = not forced. */
27
+ private forcedDsf;
28
+ private crashed;
29
+ private assertAlive;
26
30
  private pushConsole;
27
31
  consoleLog(): {
28
32
  t: number;
@@ -65,8 +69,17 @@ export declare class PlaywrightDriver implements Driver {
65
69
  * through the checks a raw coordinate click bypasses (a toast/sticky header drifting under
66
70
  * the point between measure and click silently redirects a coordinate click).
67
71
  */
72
+ setInputFiles(loc: ParsedLocator, filePath: string): Promise<void>;
73
+ /** Real drag: hover the source, press, glide to the destination in eased steps (recording
74
+ * pressed-cursor waypoints for the film), release over the target's current position. */
75
+ dragTo(from: ParsedLocator, to: ParsedLocator, timeoutMs: number): Promise<{
76
+ tDown: number;
77
+ tUp: number;
78
+ path: CursorWaypoint[];
79
+ }>;
68
80
  actClick(loc: ParsedLocator, opts?: {
69
81
  double?: boolean;
82
+ button?: 'right';
70
83
  timeoutMs?: number;
71
84
  }): Promise<{
72
85
  tDown: number;
@@ -79,10 +92,14 @@ export declare class PlaywrightDriver implements Driver {
79
92
  y: number;
80
93
  }): Promise<void>;
81
94
  waitForScrollSettle(timeoutMs: number): Promise<void>;
82
- expectState(loc: ParsedLocator, opts: {
95
+ expectState(loc: ParsedLocator | null, opts: {
83
96
  visible?: boolean;
84
97
  text?: string;
85
98
  count?: number;
99
+ url?: string;
100
+ value?: string;
101
+ disabled?: boolean;
102
+ checked?: boolean;
86
103
  }, timeoutMs: number): Promise<void>;
87
104
  /** Open requests → their start time. Long-lived streams (HMR sockets, SSE, long-polls) stop
88
105
  * counting after LONG_REQUEST_MS so a dev server can't pin the settle at its cap forever. */
@@ -109,8 +126,11 @@ export declare class PlaywrightDriver implements Driver {
109
126
  h: number;
110
127
  }[]>;
111
128
  setTypingMask(loc: ParsedLocator | null): Promise<void>;
129
+ private screencastActive;
112
130
  startCapture(onFrame: (f: ScreencastFrame) => void, opts: ScreencastOptions): Promise<void>;
113
- /** Grab a frame, coalescing on any in-flight grab (so callers can await the current one). */
131
+ private startScreenshotLoop;
132
+ /** Grab a frame, coalescing on any in-flight grab (so callers can await the current one).
133
+ * Resolves true iff a frame was actually stored. */
114
134
  private grabFrame;
115
135
  private grabFailures;
116
136
  private doGrab;
@@ -1 +1 @@
1
- {"version":3,"file":"playwright-driver.d.ts","sourceRoot":"","sources":["../../src/capture/playwright-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwright-driver.d.ts","sourceRoot":"","sources":["../../src/capture/playwright-driver.ts"],"names":[],"mappings":"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"}