screenwright 0.1.9 → 0.1.10

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 (42) hide show
  1. package/dist/bin/screenwright.js +2 -0
  2. package/dist/bin/screenwright.js.map +1 -1
  3. package/dist/src/commands/compose.d.ts.map +1 -1
  4. package/dist/src/commands/compose.js +7 -0
  5. package/dist/src/commands/compose.js.map +1 -1
  6. package/dist/src/commands/config.d.ts +3 -0
  7. package/dist/src/commands/config.d.ts.map +1 -0
  8. package/dist/src/commands/config.js +97 -0
  9. package/dist/src/commands/config.js.map +1 -0
  10. package/dist/src/config/config-schema.d.ts +7 -4
  11. package/dist/src/config/config-schema.d.ts.map +1 -1
  12. package/dist/src/config/config-schema.js +3 -2
  13. package/dist/src/config/config-schema.js.map +1 -1
  14. package/dist/src/config/defaults.d.ts.map +1 -1
  15. package/dist/src/config/defaults.js +1 -0
  16. package/dist/src/config/defaults.js.map +1 -1
  17. package/dist/src/generator/prompts.d.ts +1 -1
  18. package/dist/src/generator/prompts.d.ts.map +1 -1
  19. package/dist/src/generator/prompts.js +1 -6
  20. package/dist/src/generator/prompts.js.map +1 -1
  21. package/dist/src/generator/scenario-generator.d.ts.map +1 -1
  22. package/dist/src/generator/scenario-generator.js +0 -4
  23. package/dist/src/generator/scenario-generator.js.map +1 -1
  24. package/dist/src/index.d.ts +2 -1
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/index.js +1 -0
  27. package/dist/src/index.js.map +1 -1
  28. package/dist/src/runtime/action-helpers.d.ts +9 -2
  29. package/dist/src/runtime/action-helpers.d.ts.map +1 -1
  30. package/dist/src/runtime/action-helpers.js +58 -31
  31. package/dist/src/runtime/action-helpers.js.map +1 -1
  32. package/dist/src/runtime/instrumented-page.d.ts +2 -1
  33. package/dist/src/runtime/instrumented-page.d.ts.map +1 -1
  34. package/dist/src/runtime/instrumented-page.js +6 -2
  35. package/dist/src/runtime/instrumented-page.js.map +1 -1
  36. package/dist/src/version.d.ts +1 -1
  37. package/dist/src/version.d.ts.map +1 -1
  38. package/dist/src/version.js +1 -1
  39. package/dist/src/version.js.map +1 -1
  40. package/dist/tsconfig.tsbuildinfo +1 -1
  41. package/package.json +1 -1
  42. package/skill/SKILL.md +3 -13
@@ -5,6 +5,7 @@ import { initCommand } from '../src/commands/init.js';
5
5
  import { generateCommand } from '../src/commands/generate.js';
6
6
  import { composeCommand } from '../src/commands/compose.js';
7
7
  import { previewCommand } from '../src/commands/preview.js';
8
+ import { configCommand } from '../src/commands/config.js';
8
9
  const program = new Command();
9
10
  program
10
11
  .name('screenwright')
@@ -14,5 +15,6 @@ program.addCommand(initCommand);
14
15
  program.addCommand(generateCommand);
15
16
  program.addCommand(composeCommand);
16
17
  program.addCommand(previewCommand);
18
+ program.addCommand(configCommand);
17
19
  program.parse();
18
20
  //# sourceMappingURL=screenwright.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenwright.js","sourceRoot":"","sources":["../../bin/screenwright.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"screenwright.js","sourceRoot":"","sources":["../../bin/screenwright.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../../src/commands/compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,cAAc,SA4JvB,CAAC"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../../src/commands/compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,cAAc,SAoKvB,CAAC"}
@@ -16,6 +16,7 @@ export const composeCommand = new Command('compose')
16
16
  .option('--resolution <res>', 'Video resolution', '1280x720')
17
17
  .option('--no-voiceover', 'Disable voiceover')
18
18
  .option('--no-cursor', 'Disable cursor overlay')
19
+ .option('--pacing <mode>', 'Pacing mode: fast, normal, cinematic', 'normal')
19
20
  .option('--keep-temp', 'Keep temporary files')
20
21
  .action(async (scenario, opts) => {
21
22
  const config = await loadConfig();
@@ -25,6 +26,11 @@ export const composeCommand = new Command('compose')
25
26
  console.error(chalk.red('Invalid resolution format. Use WIDTHxHEIGHT (e.g., 1280x720)'));
26
27
  process.exit(1);
27
28
  }
29
+ const pacing = opts.pacing ?? config.pacing ?? 'normal';
30
+ if (!['fast', 'normal', 'cinematic'].includes(pacing)) {
31
+ console.error(chalk.red(`Invalid pacing mode: ${pacing}. Use fast, normal, or cinematic.`));
32
+ process.exit(1);
33
+ }
28
34
  // Verify scenario file exists
29
35
  try {
30
36
  await access(scenarioPath);
@@ -69,6 +75,7 @@ export const composeCommand = new Command('compose')
69
75
  scenarioFile: scenarioPath,
70
76
  testFile: scenarioPath,
71
77
  viewport: { width, height },
78
+ pacing: pacing,
72
79
  });
73
80
  timeline = result.timeline;
74
81
  tempDir = result.tempDir;
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/commands/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/commands/compose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const configCommand: Command;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2EpC,eAAO,MAAM,aAAa,SA6BtB,CAAC"}
@@ -0,0 +1,97 @@
1
+ import { Command } from 'commander';
2
+ import { resolve } from 'node:path';
3
+ import { writeFile } from 'node:fs/promises';
4
+ import { createInterface } from 'node:readline/promises';
5
+ import chalk from 'chalk';
6
+ import { loadConfig } from '../config/load-config.js';
7
+ import { serializeConfig } from '../config/defaults.js';
8
+ import { openaiVoices } from '../config/config-schema.js';
9
+ function rl() {
10
+ return createInterface({ input: process.stdin, output: process.stdout });
11
+ }
12
+ async function ask(prompt) {
13
+ const r = rl();
14
+ try {
15
+ return (await r.question(prompt)).trim();
16
+ }
17
+ finally {
18
+ r.close();
19
+ }
20
+ }
21
+ async function choose(label, options, current) {
22
+ console.log('');
23
+ console.log(chalk.bold(label));
24
+ for (let i = 0; i < options.length; i++) {
25
+ const marker = options[i] === current ? chalk.green('*') : ' ';
26
+ console.log(` ${marker} ${i + 1}) ${options[i]}`);
27
+ }
28
+ const answer = await ask(`Choice [${options.indexOf(current) + 1}]: `);
29
+ if (!answer)
30
+ return current;
31
+ const idx = parseInt(answer, 10) - 1;
32
+ if (idx >= 0 && idx < options.length)
33
+ return options[idx];
34
+ console.log(chalk.yellow(`Invalid choice, keeping "${current}".`));
35
+ return current;
36
+ }
37
+ async function askString(label, current) {
38
+ console.log('');
39
+ const answer = await ask(`${chalk.bold(label)} [${current}]: `);
40
+ return answer || current;
41
+ }
42
+ async function askResolution(current) {
43
+ const presets = ['1280x720', '1920x1080'];
44
+ const currentStr = `${current.width}x${current.height}`;
45
+ console.log('');
46
+ console.log(chalk.bold('Resolution'));
47
+ for (let i = 0; i < presets.length; i++) {
48
+ const marker = presets[i] === currentStr ? chalk.green('*') : ' ';
49
+ console.log(` ${marker} ${i + 1}) ${presets[i]}`);
50
+ }
51
+ console.log(` ${presets.includes(currentStr) ? ' ' : chalk.green('*')} 3) custom`);
52
+ const answer = await ask(`Choice [${presets.includes(currentStr) ? presets.indexOf(currentStr) + 1 : 3}]: `);
53
+ if (!answer)
54
+ return current;
55
+ if (answer === '3') {
56
+ const custom = await ask(`Enter WIDTHxHEIGHT [${currentStr}]: `);
57
+ if (!custom)
58
+ return current;
59
+ const [w, h] = custom.split('x').map(Number);
60
+ if (w && h)
61
+ return { width: w, height: h };
62
+ console.log(chalk.yellow('Invalid format, keeping current.'));
63
+ return current;
64
+ }
65
+ const idx = parseInt(answer, 10) - 1;
66
+ if (idx >= 0 && idx < presets.length) {
67
+ const [w, h] = presets[idx].split('x').map(Number);
68
+ return { width: w, height: h };
69
+ }
70
+ return current;
71
+ }
72
+ export const configCommand = new Command('config')
73
+ .description('Interactively configure Screenwright options')
74
+ .action(async () => {
75
+ const current = await loadConfig();
76
+ console.log(chalk.bold.underline('Screenwright Configuration'));
77
+ console.log(chalk.dim('Press Enter to keep current value.\n'));
78
+ const config = { ...current };
79
+ config.pacing = await choose('Pacing', ['fast', 'normal', 'cinematic'], current.pacing);
80
+ config.ttsProvider = await choose('TTS Provider', ['piper', 'openai'], current.ttsProvider);
81
+ if (config.ttsProvider === 'piper') {
82
+ config.voice = await askString('Piper voice model', current.voice);
83
+ }
84
+ else {
85
+ config.openaiVoice = await choose('OpenAI Voice', [...openaiVoices], current.openaiVoice);
86
+ }
87
+ config.resolution = await askResolution(current.resolution);
88
+ config.colorScheme = await choose('Color Scheme', ['light', 'dark'], current.colorScheme);
89
+ config.locale = await askString('Locale', current.locale);
90
+ config.timezoneId = await askString('Timezone', current.timezoneId);
91
+ config.outputDir = await askString('Output directory', current.outputDir);
92
+ const configPath = resolve(process.cwd(), 'screenwright.config.ts');
93
+ await writeFile(configPath, serializeConfig(config), 'utf-8');
94
+ console.log('');
95
+ console.log(chalk.green(`Saved to ${configPath}`));
96
+ });
97
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- export declare const openaiVoices: readonly ["alloy", "ash", "ballad", "coral", "echo", "fable", "nova", "onyx", "sage", "shimmer"];
2
+ export declare const openaiVoices: readonly ["alloy", "ash", "ballad", "cedar", "coral", "echo", "fable", "marin", "nova", "onyx", "sage", "shimmer", "verse"];
3
3
  export type OpenaiVoice = (typeof openaiVoices)[number];
4
4
  export declare const configSchema: z.ZodObject<{
5
5
  voice: z.ZodDefault<z.ZodString>;
@@ -18,7 +18,8 @@ export declare const configSchema: z.ZodObject<{
18
18
  colorScheme: z.ZodDefault<z.ZodEnum<["light", "dark"]>>;
19
19
  timezoneId: z.ZodDefault<z.ZodString>;
20
20
  ttsProvider: z.ZodDefault<z.ZodEnum<["piper", "openai"]>>;
21
- openaiVoice: z.ZodDefault<z.ZodEnum<["alloy", "ash", "ballad", "coral", "echo", "fable", "nova", "onyx", "sage", "shimmer"]>>;
21
+ openaiVoice: z.ZodDefault<z.ZodEnum<["alloy", "ash", "ballad", "cedar", "coral", "echo", "fable", "marin", "nova", "onyx", "sage", "shimmer", "verse"]>>;
22
+ pacing: z.ZodDefault<z.ZodEnum<["fast", "normal", "cinematic"]>>;
22
23
  }, "strip", z.ZodTypeAny, {
23
24
  voice: string;
24
25
  resolution: {
@@ -30,7 +31,8 @@ export declare const configSchema: z.ZodObject<{
30
31
  colorScheme: "light" | "dark";
31
32
  timezoneId: string;
32
33
  ttsProvider: "piper" | "openai";
33
- openaiVoice: "nova" | "alloy" | "ash" | "ballad" | "coral" | "echo" | "fable" | "onyx" | "sage" | "shimmer";
34
+ openaiVoice: "nova" | "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "fable" | "marin" | "onyx" | "sage" | "shimmer" | "verse";
35
+ pacing: "normal" | "fast" | "cinematic";
34
36
  }, {
35
37
  voice?: string | undefined;
36
38
  resolution?: {
@@ -42,7 +44,8 @@ export declare const configSchema: z.ZodObject<{
42
44
  colorScheme?: "light" | "dark" | undefined;
43
45
  timezoneId?: string | undefined;
44
46
  ttsProvider?: "piper" | "openai" | undefined;
45
- openaiVoice?: "nova" | "alloy" | "ash" | "ballad" | "coral" | "echo" | "fable" | "onyx" | "sage" | "shimmer" | undefined;
47
+ openaiVoice?: "nova" | "alloy" | "ash" | "ballad" | "cedar" | "coral" | "echo" | "fable" | "marin" | "onyx" | "sage" | "shimmer" | "verse" | undefined;
48
+ pacing?: "normal" | "fast" | "cinematic" | undefined;
46
49
  }>;
47
50
  export type ScreenwrightConfig = z.infer<typeof configSchema>;
48
51
  //# sourceMappingURL=config-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,kGAGf,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYvB,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,6HAGf,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAavB,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  export const openaiVoices = [
3
- 'alloy', 'ash', 'ballad', 'coral', 'echo',
4
- 'fable', 'nova', 'onyx', 'sage', 'shimmer',
3
+ 'alloy', 'ash', 'ballad', 'cedar', 'coral', 'echo',
4
+ 'fable', 'marin', 'nova', 'onyx', 'sage', 'shimmer', 'verse',
5
5
  ];
6
6
  export const configSchema = z.object({
7
7
  voice: z.string().default('en_US-amy-medium'),
@@ -15,5 +15,6 @@ export const configSchema = z.object({
15
15
  timezoneId: z.string().default('America/New_York'),
16
16
  ttsProvider: z.enum(['piper', 'openai']).default('piper'),
17
17
  openaiVoice: z.enum(openaiVoices).default('nova'),
18
+ pacing: z.enum(['fast', 'normal', 'cinematic']).default('normal'),
18
19
  });
19
20
  //# sourceMappingURL=config-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;IACzC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;CAClC,CAAC;AAIX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACzD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CAClD,CAAC,CAAC"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM;IAClD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;CACpD,CAAC;AAIX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;IAClD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACzD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CAClE,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,aAAa,EAAE,kBAS3B,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAOlE"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,aAAa,EAAE,kBAU3B,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAOlE"}
@@ -7,6 +7,7 @@ export const defaultConfig = {
7
7
  timezoneId: 'America/New_York',
8
8
  ttsProvider: 'piper',
9
9
  openaiVoice: 'nova',
10
+ pacing: 'normal',
10
11
  };
11
12
  export function serializeConfig(config) {
12
13
  return `import type { ScreenwrightConfig } from 'screenwright';
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C,KAAK,EAAE,kBAAkB;IACzB,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACxC,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,MAAM;CACpB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,OAAO;;qCAE4B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;;;CAGnE,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAuB;IAC/C,KAAK,EAAE,kBAAkB;IACzB,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACxC,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,kBAAkB;IAC9B,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,MAA0B;IACxD,OAAO;;qCAE4B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;;;CAGnE,CAAC;AACF,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const SYSTEM_PROMPT = "You are Screenwright, a tool that converts Playwright E2E tests into cinematic product demo scenarios.\n\nGiven a Playwright test file, generate a new TypeScript file that uses the Screenwright helpers API to create a polished demo with:\n- Natural pacing (deliberate waits between actions)\n- Human-friendly data (replace faker/test data with realistic values)\n- Narration cues (explain what's happening to the viewer)\n- Scene boundaries (organize the demo into logical chapters)\n\nThe output must be a valid TypeScript file with a default export function that takes a ScreenwrightHelpers parameter.\n\nAvailable helpers:\n- sw.scene(title, description?) \u2014 mark a scene/chapter boundary\n- sw.navigate(url, { narration? }) \u2014 navigate to a URL\n- sw.click(selector, { narration? }) \u2014 click an element\n- sw.fill(selector, value, { narration? }) \u2014 type into an input\n- sw.hover(selector, { narration? }) \u2014 hover over an element\n- sw.press(key, { narration? }) \u2014 press a keyboard key\n- sw.wait(ms) \u2014 pause for pacing\n- sw.narrate(text) \u2014 speak narration without an action\n\nRules:\n1. Import only ScreenwrightHelpers from 'screenwright'\n2. Export a default async function\n3. Replace ALL test/faker data with realistic human-friendly values\n4. Add narration to key actions explaining what the user is doing\n5. Add sw.wait() calls between logical steps for pacing\n6. Use sw.scene() to organize into 2-5 scenes\n7. Keep the same user flow as the original test\n8. Do NOT include assertions \u2014 this is a demo, not a test\n\nOutput format \u2014 always follow this exact structure:\n\n```typescript\nimport type { ScreenwrightHelpers } from 'screenwright';\n\nexport default async function scenario(sw: ScreenwrightHelpers) {\n // Scene 1\n await sw.scene('...');\n // ... actions ...\n\n // Scene 2\n await sw.scene('...');\n // ... actions ...\n}\n```\n\nCommon mistakes \u2014 do NOT do any of these:\n- Do NOT use page.click(), page.fill(), or any page.* methods \u2014 use sw.click(), sw.fill() etc.\n- Do NOT import expect, assert, or any test library\n- Do NOT call expect() or assert()\n- Do NOT use page.evaluate() or page.waitForSelector()\n- Do NOT add test(), describe(), or beforeEach() wrappers\n- Do NOT use page.locator().click() \u2014 use sw.click(selector) directly";
1
+ export declare const SYSTEM_PROMPT = "You are Screenwright, a tool that converts Playwright E2E tests into cinematic product demo scenarios.\n\nGiven a Playwright test file, generate a new TypeScript file that uses the Screenwright helpers API to create a polished demo with:\n- Human-friendly data (replace faker/test data with realistic values)\n- Narration cues (explain what's happening to the viewer)\n- Scene boundaries (organize the demo into logical chapters)\n\nThe output must be a valid TypeScript file with a default export function that takes a ScreenwrightHelpers parameter.\n\nAvailable helpers:\n- sw.scene(title, description?) \u2014 mark a scene/chapter boundary\n- sw.navigate(url, { narration? }) \u2014 navigate to a URL\n- sw.click(selector, { narration? }) \u2014 click an element\n- sw.fill(selector, value, { narration? }) \u2014 type into an input\n- sw.hover(selector, { narration? }) \u2014 hover over an element\n- sw.press(key, { narration? }) \u2014 press a keyboard key\n- sw.wait(ms) \u2014 pause for pacing\n- sw.narrate(text) \u2014 speak narration without an action\n\nRules:\n1. Import only ScreenwrightHelpers from 'screenwright'\n2. Export a default async function\n3. Replace ALL test/faker data with realistic human-friendly values\n4. Add narration to key actions explaining what the user is doing\n5. Use sw.wait() sparingly \u2014 only at scene transitions. Screenwright adds natural pacing automatically.\n6. Use sw.scene() to organize into 2-5 scenes\n7. Keep the same user flow as the original test\n8. Do NOT include assertions \u2014 this is a demo, not a test\n\nOutput format \u2014 always follow this exact structure:\n\n```typescript\nimport type { ScreenwrightHelpers } from 'screenwright';\n\nexport default async function scenario(sw: ScreenwrightHelpers) {\n // Scene 1\n await sw.scene('...');\n // ... actions ...\n\n // Scene 2\n await sw.scene('...');\n // ... actions ...\n}\n```\n\nCommon mistakes \u2014 do NOT do any of these:\n- Do NOT use page.click(), page.fill(), or any page.* methods \u2014 use sw.click(), sw.fill() etc.\n- Do NOT import expect, assert, or any test library\n- Do NOT call expect() or assert()\n- Do NOT use page.evaluate() or page.waitForSelector()\n- Do NOT add test(), describe(), or beforeEach() wrappers\n- Do NOT use page.locator().click() \u2014 use sw.click(selector) directly";
2
2
  export declare function buildUserPrompt(testSource: string, narrationStyle: 'brief' | 'detailed', appDescription?: string): string;
3
3
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/generator/prompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,yyEAoD4C,CAAC;AAEvE,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,OAAO,GAAG,UAAU,EACpC,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAuER"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/generator/prompts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,yyEAmD4C,CAAC;AAEvE,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,OAAO,GAAG,UAAU,EACpC,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAmER"}
@@ -1,7 +1,6 @@
1
1
  export const SYSTEM_PROMPT = `You are Screenwright, a tool that converts Playwright E2E tests into cinematic product demo scenarios.
2
2
 
3
3
  Given a Playwright test file, generate a new TypeScript file that uses the Screenwright helpers API to create a polished demo with:
4
- - Natural pacing (deliberate waits between actions)
5
4
  - Human-friendly data (replace faker/test data with realistic values)
6
5
  - Narration cues (explain what's happening to the viewer)
7
6
  - Scene boundaries (organize the demo into logical chapters)
@@ -23,7 +22,7 @@ Rules:
23
22
  2. Export a default async function
24
23
  3. Replace ALL test/faker data with realistic human-friendly values
25
24
  4. Add narration to key actions explaining what the user is doing
26
- 5. Add sw.wait() calls between logical steps for pacing
25
+ 5. Use sw.wait() sparingly only at scene transitions. Screenwright adds natural pacing automatically.
27
26
  6. Use sw.scene() to organize into 2-5 scenes
28
27
  7. Keep the same user flow as the original test
29
28
  8. Do NOT include assertions — this is a demo, not a test
@@ -82,24 +81,20 @@ export default async function scenario(sw: ScreenwrightHelpers) {
82
81
  await sw.navigate('http://localhost:3000', {
83
82
  narration: 'Let\\'s browse the electronics store.',
84
83
  });
85
- await sw.wait(1500);
86
84
 
87
85
  await sw.click('[data-testid="product-laptop"]', {
88
86
  narration: 'We\\'ll select the MacBook Pro.',
89
87
  });
90
- await sw.wait(1000);
91
88
 
92
89
  await sw.scene('Adding to Cart');
93
90
  await sw.click('[data-testid="add-to-cart"]', {
94
91
  narration: 'Add it to our cart.',
95
92
  });
96
- await sw.wait(1500);
97
93
 
98
94
  await sw.scene('Checkout');
99
95
  await sw.fill('[data-testid="email"]', 'sarah.chen@acme.co', {
100
96
  narration: 'Enter our email address for the order confirmation.',
101
97
  });
102
- await sw.wait(1000);
103
98
 
104
99
  await sw.click('[data-testid="checkout"]', {
105
100
  narration: 'Complete the purchase.',
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/generator/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sEAoDyC,CAAC;AAEvE,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,cAAoC,EACpC,cAAuB;IAEvB,IAAI,MAAM,GAAG;;mBAEI,cAAc;EAC/B,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,yDAAyD;;EAEvJ,cAAc,CAAC,CAAC,CAAC,gBAAgB,cAAc,MAAM,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2D1D,UAAU;;;gDAGoC,CAAC;IAE/C,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/generator/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sEAmDyC,CAAC;AAEvE,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,cAAoC,EACpC,cAAuB;IAEvB,IAAI,MAAM,GAAG;;mBAEI,cAAc;EAC/B,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,yDAAyD;;EAEvJ,cAAc,CAAC,CAAC,CAAC,gBAAgB,cAAc,MAAM,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuD1D,UAAU;;;gDAGoC,CAAC;IAE/C,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-generator.d.ts","sourceRoot":"","sources":["../../../src/generator/scenario-generator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,GAAG,UAAU,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAOD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAgB/D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAkDnE"}
1
+ {"version":3,"file":"scenario-generator.d.ts","sourceRoot":"","sources":["../../../src/generator/scenario-generator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,GAAG,UAAU,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAOD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAgB/D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA6CnE"}
@@ -73,10 +73,6 @@ export function validateScenarioCode(code) {
73
73
  if (!/\.scene\s*\(/.test(code)) {
74
74
  warnings.push({ code: 'NO_SCENES', message: 'No sw.scene() calls found — consider adding scene boundaries' });
75
75
  }
76
- // Warnings — no waits
77
- if (!/\.wait\s*\(/.test(code)) {
78
- warnings.push({ code: 'NO_WAITS', message: 'No sw.wait() calls found — consider adding pacing' });
79
- }
80
76
  // Warnings — no narration
81
77
  if (!/narration/.test(code)) {
82
78
  warnings.push({ code: 'NO_NARRATION', message: 'No narration found — consider adding narration to actions' });
@@ -1 +1 @@
1
- {"version":3,"file":"scenario-generator.js","sourceRoot":"","sources":["../../../src/generator/scenario-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scenario-generator.js","sourceRoot":"","sources":["../../../src/generator/scenario-generator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export type { ScreenwrightHelpers, ActionOptions } from './runtime/action-helpers.js';
1
+ export type { ScreenwrightHelpers, ActionOptions, Pacing, HelpersOptions } from './runtime/action-helpers.js';
2
+ export { getPacingMultiplier, getNarrationOverlap } from './runtime/action-helpers.js';
2
3
  export type { ScenarioFn } from './runtime/instrumented-page.js';
3
4
  export type { Timeline, TimelineEvent, SceneEvent, ActionEvent, CursorTargetEvent, NarrationEvent, WaitEvent } from './timeline/types.js';
4
5
  export type { ScreenwrightConfig, OpenaiVoice } from './config/config-schema.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACtF,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC1I,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvF,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC1I,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC9F,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export { getPacingMultiplier, getNarrationOverlap } from './runtime/action-helpers.js';
1
2
  export { openaiVoices } from './config/config-schema.js';
2
3
  export { validateScenarioCode, extractScenarioCode } from './generator/scenario-generator.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIvF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -14,6 +14,13 @@ export interface ScreenwrightHelpers {
14
14
  wait(ms: number): Promise<void>;
15
15
  narrate(text: string): Promise<void>;
16
16
  }
17
- export declare function calculateMoveDuration(fromX: number, fromY: number, toX: number, toY: number): number;
18
- export declare function createHelpers(page: Page, collector: TimelineCollector): ScreenwrightHelpers;
17
+ export type Pacing = 'fast' | 'normal' | 'cinematic';
18
+ export interface HelpersOptions {
19
+ pacingMultiplier?: number;
20
+ narrationOverlap?: number;
21
+ }
22
+ export declare function getPacingMultiplier(pacing: Pacing): number;
23
+ export declare function getNarrationOverlap(pacing: Pacing): number;
24
+ export declare function calculateMoveDuration(fromX: number, fromY: number, toX: number, toY: number, pacingMultiplier?: number): number;
25
+ export declare function createHelpers(page: Page, collector: TimelineCollector, opts?: HelpersOptions): ScreenwrightHelpers;
19
26
  //# sourceMappingURL=action-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-helpers.d.ts","sourceRoot":"","sources":["../../../src/runtime/action-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAWD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGpG;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,GAAG,mBAAmB,CA6I3F"}
1
+ {"version":3,"file":"action-helpers.d.ts","sourceRoot":"","sources":["../../../src/runtime/action-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAeD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAOD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,SAAM,GAAG,MAAM,CAI5H;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAuJlH"}