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
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWpE;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,SAAS,CAoLvC;AAqBD,6DAA6D;AAC7D,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAIpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWpE;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,SAAS,CAsNvC;AAqBD,6DAA6D;AAC7D,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAIpD"}
@@ -1,4 +1,2 @@
1
- /** The ONE version source: package.json. Bundle manifests, the CLI, the MCP server, and
2
- * verdict provenance all read this — they can never disagree with the installed package. */
3
1
  export declare const PLAYHEAD_VERSION: string;
4
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/shared/version.ts"],"names":[],"mappings":"AAEA;6FAC6F;AAC7F,eAAO,MAAM,gBAAgB,EAAE,MAEtB,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/shared/version.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,gBAAgB,EAAE,MAAwC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"locators.d.ts","sourceRoot":"","sources":["../../src/spec/locators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEzF,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CA4DzD;AA0BD,kHAAkH;AAClH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAc7D"}
1
+ {"version":3,"file":"locators.d.ts","sourceRoot":"","sources":["../../src/spec/locators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEzF,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AA4B/C,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CA4DzD;AA0BD,kHAAkH;AAClH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAc7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/spec/parse.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAElE,qBAAa,SAAU,SAAQ,KAAK;aAGhB,MAAM,EAAE,MAAM,EAAE;IAFlC,YACE,OAAO,EAAE,MAAM,EACC,MAAM,GAAE,MAAM,EAAO,EAGtC;CACF;AA6BD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAa,GAAG,IAAI,CAYzE;AAED,4FAA4F;AAC5F,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1D"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/spec/parse.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,IAAI,EAAE,MAAM,aAAa,CAAC;AAElE,qBAAa,SAAU,SAAQ,KAAK;aAGhB,MAAM,EAAE,MAAM,EAAE;IAFlC,YACE,OAAO,EAAE,MAAM,EACC,MAAM,GAAE,MAAM,EAAO,EAGtC;CACF;AA6BD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,SAAa,GAAG,IAAI,CAYzE;AAED,4FAA4F;AAC5F,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB1D"}
@@ -8,6 +8,7 @@ export declare const stepSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8
8
  cut: "cut";
9
9
  }>>;
10
10
  timeout: z.ZodOptional<z.ZodNumber>;
11
+ optional: z.ZodOptional<z.ZodBoolean>;
11
12
  action: z.ZodLiteral<"goto">;
12
13
  url: z.ZodString;
13
14
  }, z.core.$strict>, z.ZodObject<{
@@ -19,6 +20,7 @@ export declare const stepSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
19
20
  cut: "cut";
20
21
  }>>;
21
22
  timeout: z.ZodOptional<z.ZodNumber>;
23
+ optional: z.ZodOptional<z.ZodBoolean>;
22
24
  action: z.ZodEnum<{
23
25
  click: "click";
24
26
  dblclick: "dblclick";
@@ -34,10 +36,12 @@ export declare const stepSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
34
36
  cut: "cut";
35
37
  }>>;
36
38
  timeout: z.ZodOptional<z.ZodNumber>;
39
+ optional: z.ZodOptional<z.ZodBoolean>;
37
40
  action: z.ZodLiteral<"type">;
38
41
  target: z.ZodString;
39
42
  text: z.ZodString;
40
43
  mask: z.ZodDefault<z.ZodBoolean>;
44
+ clear: z.ZodDefault<z.ZodBoolean>;
41
45
  }, z.core.$strict>, z.ZodObject<{
42
46
  caption: z.ZodOptional<z.ZodString>;
43
47
  narration: z.ZodOptional<z.ZodString>;
@@ -47,6 +51,7 @@ export declare const stepSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
47
51
  cut: "cut";
48
52
  }>>;
49
53
  timeout: z.ZodOptional<z.ZodNumber>;
54
+ optional: z.ZodOptional<z.ZodBoolean>;
50
55
  action: z.ZodLiteral<"press">;
51
56
  keys: z.ZodString;
52
57
  }, z.core.$strict>, z.ZodObject<{
@@ -58,6 +63,45 @@ export declare const stepSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
58
63
  cut: "cut";
59
64
  }>>;
60
65
  timeout: z.ZodOptional<z.ZodNumber>;
66
+ optional: z.ZodOptional<z.ZodBoolean>;
67
+ action: z.ZodLiteral<"rightclick">;
68
+ target: z.ZodString;
69
+ }, z.core.$strict>, z.ZodObject<{
70
+ caption: z.ZodOptional<z.ZodString>;
71
+ narration: z.ZodOptional<z.ZodString>;
72
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
73
+ shot: z.ZodOptional<z.ZodEnum<{
74
+ continue: "continue";
75
+ cut: "cut";
76
+ }>>;
77
+ timeout: z.ZodOptional<z.ZodNumber>;
78
+ optional: z.ZodOptional<z.ZodBoolean>;
79
+ action: z.ZodLiteral<"upload">;
80
+ target: z.ZodString;
81
+ file: z.ZodString;
82
+ }, z.core.$strict>, z.ZodObject<{
83
+ caption: z.ZodOptional<z.ZodString>;
84
+ narration: z.ZodOptional<z.ZodString>;
85
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
86
+ shot: z.ZodOptional<z.ZodEnum<{
87
+ continue: "continue";
88
+ cut: "cut";
89
+ }>>;
90
+ timeout: z.ZodOptional<z.ZodNumber>;
91
+ optional: z.ZodOptional<z.ZodBoolean>;
92
+ action: z.ZodLiteral<"drag">;
93
+ target: z.ZodString;
94
+ to: z.ZodString;
95
+ }, z.core.$strict>, z.ZodObject<{
96
+ caption: z.ZodOptional<z.ZodString>;
97
+ narration: z.ZodOptional<z.ZodString>;
98
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
99
+ shot: z.ZodOptional<z.ZodEnum<{
100
+ continue: "continue";
101
+ cut: "cut";
102
+ }>>;
103
+ timeout: z.ZodOptional<z.ZodNumber>;
104
+ optional: z.ZodOptional<z.ZodBoolean>;
61
105
  action: z.ZodLiteral<"select">;
62
106
  target: z.ZodString;
63
107
  value: z.ZodString;
@@ -70,6 +114,7 @@ export declare const stepSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
70
114
  cut: "cut";
71
115
  }>>;
72
116
  timeout: z.ZodOptional<z.ZodNumber>;
117
+ optional: z.ZodOptional<z.ZodBoolean>;
73
118
  action: z.ZodLiteral<"scroll">;
74
119
  target: z.ZodOptional<z.ZodString>;
75
120
  by: z.ZodOptional<z.ZodObject<{
@@ -85,11 +130,16 @@ export declare const stepSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
85
130
  cut: "cut";
86
131
  }>>;
87
132
  timeout: z.ZodOptional<z.ZodNumber>;
133
+ optional: z.ZodOptional<z.ZodBoolean>;
88
134
  action: z.ZodLiteral<"expect">;
89
- target: z.ZodString;
135
+ target: z.ZodOptional<z.ZodString>;
90
136
  visible: z.ZodOptional<z.ZodBoolean>;
91
137
  text: z.ZodOptional<z.ZodString>;
92
138
  count: z.ZodOptional<z.ZodNumber>;
139
+ url: z.ZodOptional<z.ZodString>;
140
+ value: z.ZodOptional<z.ZodString>;
141
+ disabled: z.ZodOptional<z.ZodBoolean>;
142
+ checked: z.ZodOptional<z.ZodBoolean>;
93
143
  }, z.core.$strict>, z.ZodObject<{
94
144
  caption: z.ZodOptional<z.ZodString>;
95
145
  narration: z.ZodOptional<z.ZodString>;
@@ -99,6 +149,7 @@ export declare const stepSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
99
149
  cut: "cut";
100
150
  }>>;
101
151
  timeout: z.ZodOptional<z.ZodNumber>;
152
+ optional: z.ZodOptional<z.ZodBoolean>;
102
153
  action: z.ZodLiteral<"wait">;
103
154
  ms: z.ZodOptional<z.ZodNumber>;
104
155
  for: z.ZodOptional<z.ZodString>;
@@ -213,6 +264,165 @@ export declare const specSchema: z.ZodObject<{
213
264
  solid: "solid";
214
265
  }>>;
215
266
  }, z.core.$strict>>>;
267
+ setup: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodTransform<unknown, Record<string, unknown>>>, z.ZodDiscriminatedUnion<[z.ZodObject<{
268
+ caption: z.ZodOptional<z.ZodString>;
269
+ narration: z.ZodOptional<z.ZodString>;
270
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
271
+ shot: z.ZodOptional<z.ZodEnum<{
272
+ continue: "continue";
273
+ cut: "cut";
274
+ }>>;
275
+ timeout: z.ZodOptional<z.ZodNumber>;
276
+ optional: z.ZodOptional<z.ZodBoolean>;
277
+ action: z.ZodLiteral<"goto">;
278
+ url: z.ZodString;
279
+ }, z.core.$strict>, z.ZodObject<{
280
+ caption: z.ZodOptional<z.ZodString>;
281
+ narration: z.ZodOptional<z.ZodString>;
282
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
283
+ shot: z.ZodOptional<z.ZodEnum<{
284
+ continue: "continue";
285
+ cut: "cut";
286
+ }>>;
287
+ timeout: z.ZodOptional<z.ZodNumber>;
288
+ optional: z.ZodOptional<z.ZodBoolean>;
289
+ action: z.ZodEnum<{
290
+ click: "click";
291
+ dblclick: "dblclick";
292
+ hover: "hover";
293
+ }>;
294
+ target: z.ZodString;
295
+ }, z.core.$strict>, z.ZodObject<{
296
+ caption: z.ZodOptional<z.ZodString>;
297
+ narration: z.ZodOptional<z.ZodString>;
298
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
299
+ shot: z.ZodOptional<z.ZodEnum<{
300
+ continue: "continue";
301
+ cut: "cut";
302
+ }>>;
303
+ timeout: z.ZodOptional<z.ZodNumber>;
304
+ optional: z.ZodOptional<z.ZodBoolean>;
305
+ action: z.ZodLiteral<"type">;
306
+ target: z.ZodString;
307
+ text: z.ZodString;
308
+ mask: z.ZodDefault<z.ZodBoolean>;
309
+ clear: z.ZodDefault<z.ZodBoolean>;
310
+ }, z.core.$strict>, z.ZodObject<{
311
+ caption: z.ZodOptional<z.ZodString>;
312
+ narration: z.ZodOptional<z.ZodString>;
313
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
314
+ shot: z.ZodOptional<z.ZodEnum<{
315
+ continue: "continue";
316
+ cut: "cut";
317
+ }>>;
318
+ timeout: z.ZodOptional<z.ZodNumber>;
319
+ optional: z.ZodOptional<z.ZodBoolean>;
320
+ action: z.ZodLiteral<"press">;
321
+ keys: z.ZodString;
322
+ }, z.core.$strict>, z.ZodObject<{
323
+ caption: z.ZodOptional<z.ZodString>;
324
+ narration: z.ZodOptional<z.ZodString>;
325
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
326
+ shot: z.ZodOptional<z.ZodEnum<{
327
+ continue: "continue";
328
+ cut: "cut";
329
+ }>>;
330
+ timeout: z.ZodOptional<z.ZodNumber>;
331
+ optional: z.ZodOptional<z.ZodBoolean>;
332
+ action: z.ZodLiteral<"rightclick">;
333
+ target: z.ZodString;
334
+ }, z.core.$strict>, z.ZodObject<{
335
+ caption: z.ZodOptional<z.ZodString>;
336
+ narration: z.ZodOptional<z.ZodString>;
337
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
338
+ shot: z.ZodOptional<z.ZodEnum<{
339
+ continue: "continue";
340
+ cut: "cut";
341
+ }>>;
342
+ timeout: z.ZodOptional<z.ZodNumber>;
343
+ optional: z.ZodOptional<z.ZodBoolean>;
344
+ action: z.ZodLiteral<"upload">;
345
+ target: z.ZodString;
346
+ file: z.ZodString;
347
+ }, z.core.$strict>, z.ZodObject<{
348
+ caption: z.ZodOptional<z.ZodString>;
349
+ narration: z.ZodOptional<z.ZodString>;
350
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
351
+ shot: z.ZodOptional<z.ZodEnum<{
352
+ continue: "continue";
353
+ cut: "cut";
354
+ }>>;
355
+ timeout: z.ZodOptional<z.ZodNumber>;
356
+ optional: z.ZodOptional<z.ZodBoolean>;
357
+ action: z.ZodLiteral<"drag">;
358
+ target: z.ZodString;
359
+ to: z.ZodString;
360
+ }, z.core.$strict>, z.ZodObject<{
361
+ caption: z.ZodOptional<z.ZodString>;
362
+ narration: z.ZodOptional<z.ZodString>;
363
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
364
+ shot: z.ZodOptional<z.ZodEnum<{
365
+ continue: "continue";
366
+ cut: "cut";
367
+ }>>;
368
+ timeout: z.ZodOptional<z.ZodNumber>;
369
+ optional: z.ZodOptional<z.ZodBoolean>;
370
+ action: z.ZodLiteral<"select">;
371
+ target: z.ZodString;
372
+ value: z.ZodString;
373
+ }, z.core.$strict>, z.ZodObject<{
374
+ caption: z.ZodOptional<z.ZodString>;
375
+ narration: z.ZodOptional<z.ZodString>;
376
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
377
+ shot: z.ZodOptional<z.ZodEnum<{
378
+ continue: "continue";
379
+ cut: "cut";
380
+ }>>;
381
+ timeout: z.ZodOptional<z.ZodNumber>;
382
+ optional: z.ZodOptional<z.ZodBoolean>;
383
+ action: z.ZodLiteral<"scroll">;
384
+ target: z.ZodOptional<z.ZodString>;
385
+ by: z.ZodOptional<z.ZodObject<{
386
+ x: z.ZodDefault<z.ZodNumber>;
387
+ y: z.ZodNumber;
388
+ }, z.core.$strict>>;
389
+ }, z.core.$strict>, z.ZodObject<{
390
+ caption: z.ZodOptional<z.ZodString>;
391
+ narration: z.ZodOptional<z.ZodString>;
392
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
393
+ shot: z.ZodOptional<z.ZodEnum<{
394
+ continue: "continue";
395
+ cut: "cut";
396
+ }>>;
397
+ timeout: z.ZodOptional<z.ZodNumber>;
398
+ optional: z.ZodOptional<z.ZodBoolean>;
399
+ action: z.ZodLiteral<"expect">;
400
+ target: z.ZodOptional<z.ZodString>;
401
+ visible: z.ZodOptional<z.ZodBoolean>;
402
+ text: z.ZodOptional<z.ZodString>;
403
+ count: z.ZodOptional<z.ZodNumber>;
404
+ url: z.ZodOptional<z.ZodString>;
405
+ value: z.ZodOptional<z.ZodString>;
406
+ disabled: z.ZodOptional<z.ZodBoolean>;
407
+ checked: z.ZodOptional<z.ZodBoolean>;
408
+ }, z.core.$strict>, z.ZodObject<{
409
+ caption: z.ZodOptional<z.ZodString>;
410
+ narration: z.ZodOptional<z.ZodString>;
411
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
412
+ shot: z.ZodOptional<z.ZodEnum<{
413
+ continue: "continue";
414
+ cut: "cut";
415
+ }>>;
416
+ timeout: z.ZodOptional<z.ZodNumber>;
417
+ optional: z.ZodOptional<z.ZodBoolean>;
418
+ action: z.ZodLiteral<"wait">;
419
+ ms: z.ZodOptional<z.ZodNumber>;
420
+ for: z.ZodOptional<z.ZodString>;
421
+ state: z.ZodDefault<z.ZodEnum<{
422
+ hidden: "hidden";
423
+ visible: "visible";
424
+ }>>;
425
+ }, z.core.$strict>], "action">>>>;
216
426
  scenes: z.ZodArray<z.ZodObject<{
217
427
  id: z.ZodString;
218
428
  title: z.ZodOptional<z.ZodString>;
@@ -225,6 +435,7 @@ export declare const specSchema: z.ZodObject<{
225
435
  cut: "cut";
226
436
  }>>;
227
437
  timeout: z.ZodOptional<z.ZodNumber>;
438
+ optional: z.ZodOptional<z.ZodBoolean>;
228
439
  action: z.ZodLiteral<"goto">;
229
440
  url: z.ZodString;
230
441
  }, z.core.$strict>, z.ZodObject<{
@@ -236,6 +447,7 @@ export declare const specSchema: z.ZodObject<{
236
447
  cut: "cut";
237
448
  }>>;
238
449
  timeout: z.ZodOptional<z.ZodNumber>;
450
+ optional: z.ZodOptional<z.ZodBoolean>;
239
451
  action: z.ZodEnum<{
240
452
  click: "click";
241
453
  dblclick: "dblclick";
@@ -251,10 +463,12 @@ export declare const specSchema: z.ZodObject<{
251
463
  cut: "cut";
252
464
  }>>;
253
465
  timeout: z.ZodOptional<z.ZodNumber>;
466
+ optional: z.ZodOptional<z.ZodBoolean>;
254
467
  action: z.ZodLiteral<"type">;
255
468
  target: z.ZodString;
256
469
  text: z.ZodString;
257
470
  mask: z.ZodDefault<z.ZodBoolean>;
471
+ clear: z.ZodDefault<z.ZodBoolean>;
258
472
  }, z.core.$strict>, z.ZodObject<{
259
473
  caption: z.ZodOptional<z.ZodString>;
260
474
  narration: z.ZodOptional<z.ZodString>;
@@ -264,6 +478,7 @@ export declare const specSchema: z.ZodObject<{
264
478
  cut: "cut";
265
479
  }>>;
266
480
  timeout: z.ZodOptional<z.ZodNumber>;
481
+ optional: z.ZodOptional<z.ZodBoolean>;
267
482
  action: z.ZodLiteral<"press">;
268
483
  keys: z.ZodString;
269
484
  }, z.core.$strict>, z.ZodObject<{
@@ -275,6 +490,45 @@ export declare const specSchema: z.ZodObject<{
275
490
  cut: "cut";
276
491
  }>>;
277
492
  timeout: z.ZodOptional<z.ZodNumber>;
493
+ optional: z.ZodOptional<z.ZodBoolean>;
494
+ action: z.ZodLiteral<"rightclick">;
495
+ target: z.ZodString;
496
+ }, z.core.$strict>, z.ZodObject<{
497
+ caption: z.ZodOptional<z.ZodString>;
498
+ narration: z.ZodOptional<z.ZodString>;
499
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
500
+ shot: z.ZodOptional<z.ZodEnum<{
501
+ continue: "continue";
502
+ cut: "cut";
503
+ }>>;
504
+ timeout: z.ZodOptional<z.ZodNumber>;
505
+ optional: z.ZodOptional<z.ZodBoolean>;
506
+ action: z.ZodLiteral<"upload">;
507
+ target: z.ZodString;
508
+ file: z.ZodString;
509
+ }, z.core.$strict>, z.ZodObject<{
510
+ caption: z.ZodOptional<z.ZodString>;
511
+ narration: z.ZodOptional<z.ZodString>;
512
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
513
+ shot: z.ZodOptional<z.ZodEnum<{
514
+ continue: "continue";
515
+ cut: "cut";
516
+ }>>;
517
+ timeout: z.ZodOptional<z.ZodNumber>;
518
+ optional: z.ZodOptional<z.ZodBoolean>;
519
+ action: z.ZodLiteral<"drag">;
520
+ target: z.ZodString;
521
+ to: z.ZodString;
522
+ }, z.core.$strict>, z.ZodObject<{
523
+ caption: z.ZodOptional<z.ZodString>;
524
+ narration: z.ZodOptional<z.ZodString>;
525
+ focus: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"target">, z.ZodLiteral<"wide">, z.ZodString]>>;
526
+ shot: z.ZodOptional<z.ZodEnum<{
527
+ continue: "continue";
528
+ cut: "cut";
529
+ }>>;
530
+ timeout: z.ZodOptional<z.ZodNumber>;
531
+ optional: z.ZodOptional<z.ZodBoolean>;
278
532
  action: z.ZodLiteral<"select">;
279
533
  target: z.ZodString;
280
534
  value: z.ZodString;
@@ -287,6 +541,7 @@ export declare const specSchema: z.ZodObject<{
287
541
  cut: "cut";
288
542
  }>>;
289
543
  timeout: z.ZodOptional<z.ZodNumber>;
544
+ optional: z.ZodOptional<z.ZodBoolean>;
290
545
  action: z.ZodLiteral<"scroll">;
291
546
  target: z.ZodOptional<z.ZodString>;
292
547
  by: z.ZodOptional<z.ZodObject<{
@@ -302,11 +557,16 @@ export declare const specSchema: z.ZodObject<{
302
557
  cut: "cut";
303
558
  }>>;
304
559
  timeout: z.ZodOptional<z.ZodNumber>;
560
+ optional: z.ZodOptional<z.ZodBoolean>;
305
561
  action: z.ZodLiteral<"expect">;
306
- target: z.ZodString;
562
+ target: z.ZodOptional<z.ZodString>;
307
563
  visible: z.ZodOptional<z.ZodBoolean>;
308
564
  text: z.ZodOptional<z.ZodString>;
309
565
  count: z.ZodOptional<z.ZodNumber>;
566
+ url: z.ZodOptional<z.ZodString>;
567
+ value: z.ZodOptional<z.ZodString>;
568
+ disabled: z.ZodOptional<z.ZodBoolean>;
569
+ checked: z.ZodOptional<z.ZodBoolean>;
310
570
  }, z.core.$strict>, z.ZodObject<{
311
571
  caption: z.ZodOptional<z.ZodString>;
312
572
  narration: z.ZodOptional<z.ZodString>;
@@ -316,6 +576,7 @@ export declare const specSchema: z.ZodObject<{
316
576
  cut: "cut";
317
577
  }>>;
318
578
  timeout: z.ZodOptional<z.ZodNumber>;
579
+ optional: z.ZodOptional<z.ZodBoolean>;
319
580
  action: z.ZodLiteral<"wait">;
320
581
  ms: z.ZodOptional<z.ZodNumber>;
321
582
  for: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/spec/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8GxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BASrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAmD9C,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAazD;AA+BD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiKZ,CAAC;AAEZ,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAChD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE9C,iGAAiG;AACjG,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,UAAU,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAIhH,CAAC;AAEF,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAEpE;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAEtE;AAED,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,CAUxD"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/spec/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA0IxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAYrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAmD9C,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAazD;AA+BD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAsLZ,CAAC;AAEZ,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAChD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE9C,iGAAiG;AACjG,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,UAAU,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAIhH,CAAC;AAEF,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAEpE;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAEtE;AAED,mGAAmG;AACnG,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,CAUxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../src/verify/checks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAmC5E,+DAA+D;AAC/D,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA4DjF;AAED,gEAAgE;AAChE,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA4BlF;AAED,qEAAqE;AACrE,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAuFhF;AAED,+EAA+E;AAC/E,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAwE/E;AAED,oFAAoF;AACpF,wBAAsB,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAoB5E;AAED,6EAA6E;AAC7E,wBAAsB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAc1E;AAED,4DAA4D;AAC5D,6GAA6G;AAC7G,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA8EzE;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAsB1E;AAED,2FAA2F;AAC3F,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAgDzE;AAkBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAwDhF"}
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../src/verify/checks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAmC5E,+DAA+D;AAC/D,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA4DjF;AAED,gEAAgE;AAChE,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAyElF;AAED,qEAAqE;AACrE,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA2FhF;AAED,+EAA+E;AAC/E,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAgG/E;AAED,oFAAoF;AACpF,wBAAsB,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAuD5E;AAED,6EAA6E;AAC7E,wBAAsB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAc1E;AAED,4DAA4D;AAC5D,6GAA6G;AAC7G,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CA+FzE;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAsB1E;AAED,2FAA2F;AAC3F,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAsFzE;AAkBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,CAwDhF"}
@@ -1,12 +1,39 @@
1
- import type { Verdict } from './types.js';
1
+ import type { Verdict, VerdictSignature } from './types.js';
2
2
  /**
3
- * The canonical signable payload: everything that makes the verdict a CLAIM (result, artifact
4
- * hashes, provenance, per-check outcomes), in a fixed key order. Paths are excluded moving
5
- * files doesn't change what was proven.
3
+ * The canonical signable payload. Round-2 audit: the v1 payload signed only {id, status} per
4
+ * check evidence text, the contact sheet, the compose manifest, and the failure reason were
5
+ * all rewritable after signing. v2 covers everything a consumer relies on. Paths are excluded —
6
+ * moving files doesn't change what was proven.
6
7
  */
7
8
  export declare function signablePayload(v: Omit<Verdict, 'signature'>): string;
8
- /** HMAC-SHA256 signature over the canonical payload; null when no key is configured. */
9
- export declare function signVerdict(v: Omit<Verdict, 'signature'>, key?: string | undefined): string | null;
9
+ /**
10
+ * Sign a verdict. Two schemes, resolved from the environment:
11
+ * - PLAYHEAD_SIGNING_KEY_FILE → Ed25519 (asymmetric): consumers verify against the public key
12
+ * and PIN the key id — the producer cannot be impersonated by anyone who can merely verify.
13
+ * Generate a key with `playhead keygen`.
14
+ * - PLAYHEAD_SIGNING_KEY → HMAC-SHA256 (symmetric, zero-config): tamper-evidence only; anyone
15
+ * holding the key can also mint verdicts. Fine within one trust domain.
16
+ * Ed25519 wins when both are set. Returns null when neither is configured.
17
+ */
18
+ export declare function signVerdict(v: Omit<Verdict, 'signature'>, env?: {
19
+ hmacKey?: string;
20
+ keyFile?: string;
21
+ }): VerdictSignature | null;
22
+ /** Verify a verdict's signature. For Ed25519 the embedded public key is used — this proves the
23
+ * verdict is INTACT and was signed by the holder of keyId's private key; whether that key is
24
+ * trusted is the consumer's pinning decision. For HS256 the shared key must be provided. */
25
+ export declare function verifySignature(v: Verdict, opts?: {
26
+ hmacKey?: string;
27
+ }): {
28
+ valid: boolean;
29
+ reason: string;
30
+ };
31
+ export declare function keyIdFor(material: Buffer): string;
10
32
  /** JUnit XML: one testsuite per verdict, one testcase per check — the shape every CI ingests. */
11
33
  export declare function toJUnit(v: Verdict, suiteName?: string): string;
34
+ /** JUnit for a FLOW failure (the app broke; no verdict exists) — CI still gets a report. */
35
+ export declare function flowFailureJUnit(failure: {
36
+ stepRef: string;
37
+ message: string;
38
+ }, suiteName?: string): string;
12
39
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/verify/report.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,MAAM,CAkBrE;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,GAAG,qBAAmC,GAAG,MAAM,GAAG,IAAI,CAGhH;AAED,iGAAiG;AACjG,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,SAAa,GAAG,MAAM,CAuBlE"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../src/verify/report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,MAAM,CA4BrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAC7B,GAAG,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAGxC,GACA,gBAAgB,GAAG,IAAI,CAqBzB;AAED;;6FAE6F;AAC7F,wBAAgB,eAAe,CAC7B,CAAC,EAAE,OAAO,EACV,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAwBpC;AAOD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,iGAAiG;AACjG,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,SAAa,GAAG,MAAM,CAqBlE;AAED,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,SAAS,SAAa,GAAG,MAAM,CAQ9G"}
@@ -2,7 +2,7 @@ import type { BundleData } from '../bundle/types.js';
2
2
  import type { ComposeManifest } from '../compose/types.js';
3
3
  import type { Verdict } from './types.js';
4
4
  /** Bumped whenever a check is added or its semantics change — part of provenance. */
5
- export declare const CHECK_SUITE_VERSION = "playhead/checks@2";
5
+ export declare const CHECK_SUITE_VERSION = "playhead/checks@3";
6
6
  export interface VerifyOptions {
7
7
  outDir: string;
8
8
  vision?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/verify/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAe,OAAO,EAAiB,MAAM,YAAY,CAAC;AAsBtE,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,MAAM,CAC1B,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,OAAO,CAAC,CAiElB;AAED,mFAAmF;AACnF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAMhF"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/verify/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAe,OAAO,EAAiB,MAAM,YAAY,CAAC;AAsBtE,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,MAAM,CAC1B,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,OAAO,CAAC,CAuFlB;AAED,mFAAmF;AACnF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAMhF"}
@@ -11,6 +11,13 @@ export interface CheckResult {
11
11
  status: CheckStatus;
12
12
  details: string;
13
13
  evidence?: CheckEvidence[];
14
+ /** For pixel-grounded checks: how many items were actually verified against pixels vs the
15
+ * total in scope — feeds the verdict's coverage metric so "all skipped" can never read
16
+ * identically to "fully verified". */
17
+ coverage?: {
18
+ verified: number;
19
+ total: number;
20
+ };
14
21
  }
15
22
  export interface VerifyContext {
16
23
  bundle: BundleData;
@@ -35,8 +42,19 @@ export interface VerdictProvenance {
35
42
  message: string;
36
43
  };
37
44
  }
45
+ /** How the verdict is signed. Ed25519 (asymmetric, `playhead keygen` + PLAYHEAD_SIGNING_KEY_FILE)
46
+ * lets consumers pin a key id; HS256 (PLAYHEAD_SIGNING_KEY) is zero-config tamper-evidence
47
+ * within one trust domain. */
48
+ export interface VerdictSignature {
49
+ alg: 'Ed25519' | 'HS256';
50
+ /** sha256 of the key material, first 16 hex — what consumers pin. */
51
+ keyId: string;
52
+ /** Ed25519 only: SPKI DER, base64 — the verdict is self-verifiable; trust is the pin. */
53
+ publicKey?: string;
54
+ value: string;
55
+ }
38
56
  export interface Verdict {
39
- schema: 'playhead/verdict@2';
57
+ schema: 'playhead/verdict@3';
40
58
  verdict: 'publishable' | 'not-publishable';
41
59
  video: {
42
60
  path: string;
@@ -46,6 +64,21 @@ export interface Verdict {
46
64
  events: string;
47
65
  framesIndex: string;
48
66
  };
67
+ /** sha256 of the compose manifest the checks consulted — the plan is part of the evidence. */
68
+ manifestHash: string;
69
+ /** sha256 of the contact-sheet PNG bytes. */
70
+ contactSheetSha256: string;
71
+ /** What was actually pixel-verified vs merely planned — a verdict with zero coverage is
72
+ * visibly weaker than a fully verified one, even when both say "publishable". */
73
+ coverage: {
74
+ /** Effectful actions whose on-screen effect passed pixel verification. */
75
+ actionsVerified: number;
76
+ actionsTotal: number;
77
+ /** Output-frame regions that matched their planned source regions. */
78
+ outputSamplesVerified: number;
79
+ checksSkipped: number;
80
+ checksWarned: number;
81
+ };
49
82
  provenance: VerdictProvenance;
50
83
  checks: CheckResult[];
51
84
  contactSheet: string;
@@ -56,8 +89,7 @@ export interface Verdict {
56
89
  note: string;
57
90
  }[];
58
91
  } | null;
59
- /** HMAC-SHA256 over the canonical signable payload, keyed by PLAYHEAD_SIGNING_KEY.
60
- * Null when no key is configured — an unsigned verdict is explicit, never implied. */
61
- signature: string | null;
92
+ /** Null when no signing key is configured — unsigned is explicit, never implied. */
93
+ signature: VerdictSignature | null;
62
94
  }
63
95
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/verify/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yFAAyF;AACzF,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAAC;IAC3C,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,UAAU,EAAE,iBAAiB,CAAC;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF;2FACuF;IACvF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/verify/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B;;2CAEuC;IACvC,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yFAAyF;AACzF,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED;;+BAE+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC;IACzB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAAC;IAC3C,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,8FAA8F;IAC9F,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,kBAAkB,EAAE,MAAM,CAAC;IAC3B;sFACkF;IAClF,QAAQ,EAAE;QACR,0EAA0E;QAC1E,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,sEAAsE;QACtE,qBAAqB,EAAE,MAAM,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,iBAAiB,CAAC;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF,oFAAoF;IACpF,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "playhead-cli",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Product video as a build artifact: spec + live product → finished, verified video.",
5
5
  "license": "MIT",
6
6
  "type": "module",