reflection-check 0.0.2 → 0.0.4

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 (43) hide show
  1. package/dist/cli.js +11 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/doctor.d.ts +2 -1
  4. package/dist/commands/doctor.js +109 -2
  5. package/dist/commands/doctor.js.map +1 -1
  6. package/dist/commands/init.d.ts +6 -0
  7. package/dist/commands/init.js +59 -0
  8. package/dist/commands/init.js.map +1 -0
  9. package/dist/commands/run.js +1 -2
  10. package/dist/commands/run.js.map +1 -1
  11. package/dist/commands/update.js +5 -0
  12. package/dist/commands/update.js.map +1 -1
  13. package/dist/contracts/browser/browser-contract.d.ts +2 -1
  14. package/dist/contracts/browser/browser-contract.js +2 -1
  15. package/dist/contracts/browser/browser-contract.js.map +1 -1
  16. package/dist/contracts/browser/route-runner.d.ts +6 -0
  17. package/dist/contracts/browser/route-runner.js +42 -1
  18. package/dist/contracts/browser/route-runner.js.map +1 -1
  19. package/dist/contracts/component/component-visual-contract.d.ts +9 -0
  20. package/dist/contracts/component/component-visual-contract.js +49 -3
  21. package/dist/contracts/component/component-visual-contract.js.map +1 -1
  22. package/dist/core/config.d.ts +21 -0
  23. package/dist/core/config.js +23 -2
  24. package/dist/core/config.js.map +1 -1
  25. package/dist/core/report-schema.d.ts +11 -10
  26. package/dist/core/report-schema.js +47 -1
  27. package/dist/core/report-schema.js.map +1 -1
  28. package/dist/core/target-ir.d.ts +5 -0
  29. package/dist/core/target-ir.js +2 -0
  30. package/dist/core/target-ir.js.map +1 -1
  31. package/dist/integrations/playwright/context-factory.d.ts +3 -2
  32. package/dist/integrations/playwright/context-factory.js +6 -3
  33. package/dist/integrations/playwright/context-factory.js.map +1 -1
  34. package/docs/agent-workflows.md +13 -5
  35. package/docs/browser-contract.md +31 -0
  36. package/docs/ci.md +11 -1
  37. package/docs/configuration.md +47 -0
  38. package/docs/getting-started.md +17 -3
  39. package/docs/plans/reflection-dogfood-feedback-implementation-guide.md +100 -86
  40. package/docs/target-ir-and-adapters.md +2 -2
  41. package/docs/validation-process.md +16 -7
  42. package/docs/visual-contract.md +16 -1
  43. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -4,6 +4,7 @@ import { fileURLToPath } from 'node:url';
4
4
  import { Command, CommanderError } from 'commander';
5
5
  import { doctorCommand } from './commands/doctor.js';
6
6
  import { gcCommand } from './commands/gc.js';
7
+ import { initCommand } from './commands/init.js';
7
8
  import { reviewCommand } from './commands/review.js';
8
9
  import { runCommand } from './commands/run.js';
9
10
  import { updateCommand } from './commands/update.js';
@@ -13,10 +14,18 @@ export function createCli() {
13
14
  program
14
15
  .name('reflection')
15
16
  .description('Evidence-backed rendered UI validation.')
16
- .version('0.0.2')
17
+ .version('0.0.4')
17
18
  .configureOutput({
18
19
  outputError: (message, write) => write(message)
19
20
  });
21
+ program
22
+ .command('init')
23
+ .description('Preview Reflection setup for this project.')
24
+ .option('--dry-run', 'Show proposed setup without writing files')
25
+ .option('--preset <preset>', 'Setup preset: vite-react', 'vite-react')
26
+ .action(async (options) => {
27
+ await initCommand(options);
28
+ });
20
29
  program
21
30
  .command('run')
22
31
  .description('Check the UI contract for this project.')
@@ -65,6 +74,7 @@ export function createCli() {
65
74
  .command('doctor')
66
75
  .description('Check whether Reflection can run correctly in this project.')
67
76
  .option('--config <path>', 'Path to reflection.config.ts')
77
+ .option('--check-server', 'Check configured server readyUrl without starting the server')
68
78
  .action(async (options) => {
69
79
  await doctorCommand(options);
70
80
  });
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export type DoctorCommandOptions = {
2
2
  config?: string;
3
+ checkServer?: boolean;
3
4
  };
4
- export declare function doctorCommand(_options?: DoctorCommandOptions): Promise<void>;
5
+ export declare function doctorCommand(options?: DoctorCommandOptions): Promise<void>;
@@ -1,5 +1,112 @@
1
- export async function doctorCommand(_options = {}) {
1
+ import { access } from 'node:fs/promises';
2
+ import { CommanderError } from 'commander';
3
+ import { loadReflectionConfig } from '../core/config.js';
4
+ import { ExitCode } from '../core/exit-codes.js';
5
+ const minimumNodeMajor = 22;
6
+ export async function doctorCommand(options = {}) {
7
+ let config;
8
+ if (options.config) {
9
+ try {
10
+ config = await loadReflectionConfig(options.config);
11
+ }
12
+ catch (error) {
13
+ const message = error instanceof Error ? error.message : String(error);
14
+ console.error(message);
15
+ throw new CommanderError(ExitCode.ToolOrConfigError, 'reflection.doctor', message);
16
+ }
17
+ }
18
+ const runtime = await checkRuntimeReadiness();
19
+ const serverReachability = options.checkServer === true && config ? await checkConfiguredServerReachability(config) : undefined;
20
+ const status = runtime.nodeSupported && runtime.playwrightAvailable ? 'pass' : 'error';
2
21
  console.log('Reflection doctor');
3
- console.log('Phase 1.1 setup check placeholder: config/schema validation is available; runtime checks come next.');
22
+ console.log('');
23
+ console.log(`Status: ${status}`);
24
+ console.log(`Node: ${process.version} (${runtime.nodeSupported ? 'supported' : `requires >=${minimumNodeMajor}`})`);
25
+ console.log(`Playwright package: ${runtime.playwrightAvailable ? 'available' : 'missing'}`);
26
+ if (runtime.chromiumExecutable) {
27
+ console.log(`Chromium browser: ${runtime.chromiumExecutableFound ? 'found' : 'not found'} at ${runtime.chromiumExecutable}`);
28
+ }
29
+ console.log(`Config: ${options.config ?? 'not provided'}`);
30
+ if (config) {
31
+ printConfigSummary(config, serverReachability);
32
+ }
33
+ if (!runtime.nodeSupported) {
34
+ throw new CommanderError(ExitCode.MissingDependency, 'reflection.doctor', `Reflection requires Node.js >=${minimumNodeMajor}. Current version: ${process.version}`);
35
+ }
36
+ if (!runtime.playwrightAvailable) {
37
+ throw new CommanderError(ExitCode.MissingDependency, 'reflection.doctor', 'Reflection requires the playwright package.');
38
+ }
39
+ }
40
+ async function checkRuntimeReadiness() {
41
+ const nodeMajor = Number(process.versions.node.split('.')[0] ?? '0');
42
+ try {
43
+ const playwright = (await import('playwright'));
44
+ const chromiumExecutable = playwright.chromium.executablePath();
45
+ return {
46
+ nodeSupported: nodeMajor >= minimumNodeMajor,
47
+ playwrightAvailable: true,
48
+ chromiumExecutable,
49
+ chromiumExecutableFound: await pathExists(chromiumExecutable)
50
+ };
51
+ }
52
+ catch {
53
+ return {
54
+ nodeSupported: nodeMajor >= minimumNodeMajor,
55
+ playwrightAvailable: false
56
+ };
57
+ }
58
+ }
59
+ function printConfigSummary(config, serverReachability) {
60
+ console.log(`Project: ${config.project}`);
61
+ const browser = config.contracts.browser;
62
+ if (browser) {
63
+ const browserStatus = browser.enabled === false ? 'disabled' : 'enabled';
64
+ console.log(`Browser contract: ${browserStatus}, ${formatCount(browser.routes.length, 'route')}, ${formatCount(browser.visualSmoke.length, 'visual smoke case')}`);
65
+ console.log(`Base URL: ${browser.baseUrl}`);
66
+ if (browser.server) {
67
+ console.log(`Server: configured, readyUrl ${browser.server.readyUrl}, reuseExisting ${browser.server.reuseExisting}, timeoutMs ${browser.server.timeoutMs}`);
68
+ console.log(`Server reachability: ${serverReachability ?? 'not checked; doctor does not start servers'}`);
69
+ }
70
+ else {
71
+ console.log('Server: not configured; doctor will not start a server');
72
+ }
73
+ }
74
+ else {
75
+ console.log('Browser contract: not configured');
76
+ }
77
+ const design = config.contracts.design;
78
+ console.log(design
79
+ ? `Design contract: ${design.enabled === false ? 'disabled' : 'enabled'}, ${formatCount(design.commands.length, 'command')}`
80
+ : 'Design contract: not configured');
81
+ const component = config.contracts.component;
82
+ console.log(component
83
+ ? `Component contract: ${component.enabled === false ? 'disabled' : 'enabled'}, ${formatCount(component.cases.length, 'case')}`
84
+ : 'Component contract: not configured');
85
+ }
86
+ async function checkConfiguredServerReachability(config) {
87
+ const readyUrl = config.contracts.browser?.server?.readyUrl;
88
+ if (!readyUrl) {
89
+ return undefined;
90
+ }
91
+ try {
92
+ const response = await fetch(readyUrl, { cache: 'no-store' });
93
+ await response.body?.cancel();
94
+ return response.status >= 200 && response.status < 500 ? `reachable (${response.status})` : `unreachable (${response.status})`;
95
+ }
96
+ catch {
97
+ return 'unreachable';
98
+ }
99
+ }
100
+ async function pathExists(path) {
101
+ try {
102
+ await access(path);
103
+ return true;
104
+ }
105
+ catch {
106
+ return false;
107
+ }
108
+ }
109
+ function formatCount(count, label) {
110
+ return `${count} ${label}${count === 1 ? '' : 's'}`;
4
111
  }
5
112
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAiC,EAAE;IACrE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,qGAAqG,CAAC,CAAC;AACrH,CAAC"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type InitCommandOptions = {
2
+ dryRun?: boolean;
3
+ preset?: string;
4
+ cwd?: string;
5
+ };
6
+ export declare function initCommand(options?: InitCommandOptions): Promise<void>;
@@ -0,0 +1,59 @@
1
+ import { access } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import { CommanderError } from 'commander';
4
+ import { ExitCode } from '../core/exit-codes.js';
5
+ const supportedPresets = ['vite-react'];
6
+ export async function initCommand(options = {}) {
7
+ if (options.dryRun !== true) {
8
+ throw new CommanderError(ExitCode.InvalidUsage, 'reflection.init', 'Use --dry-run to preview Reflection setup. This command does not write files yet.');
9
+ }
10
+ const preset = parsePreset(options.preset ?? 'vite-react');
11
+ const cwd = options.cwd ?? process.cwd();
12
+ const packageManager = await detectPackageManager(cwd);
13
+ console.log(renderInitPlan({ packageManager, preset }));
14
+ }
15
+ function parsePreset(value) {
16
+ if (supportedPresets.includes(value)) {
17
+ return value;
18
+ }
19
+ throw new CommanderError(ExitCode.InvalidUsage, 'reflection.init', `Unsupported preset "${value}". Expected one of: ${supportedPresets.join(', ')}.`);
20
+ }
21
+ async function detectPackageManager(cwd) {
22
+ if (await pathExists(join(cwd, 'pnpm-lock.yaml'))) {
23
+ return 'pnpm';
24
+ }
25
+ if (await pathExists(join(cwd, 'yarn.lock'))) {
26
+ return 'yarn';
27
+ }
28
+ return 'npm';
29
+ }
30
+ async function pathExists(path) {
31
+ try {
32
+ await access(path);
33
+ return true;
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ }
39
+ function renderInitPlan(input) {
40
+ const runPrefix = input.packageManager === 'npm' ? 'npx' : `${input.packageManager} exec`;
41
+ const installCommand = input.packageManager === 'npm' ? 'npm install --save-dev reflection-check' : `${input.packageManager} add -D reflection-check`;
42
+ return [
43
+ 'Reflection init',
44
+ '',
45
+ 'Dry run: yes',
46
+ `Preset: ${input.preset}`,
47
+ `Package manager: ${input.packageManager}`,
48
+ `Install: ${installCommand}`,
49
+ '',
50
+ 'Would create: reflection.config.ts',
51
+ 'Would suggest script: "reflection": "reflection run --config reflection.config.ts --mode smoke"',
52
+ '',
53
+ 'Suggested commands:',
54
+ `- ${runPrefix} reflection doctor --config reflection.config.ts`,
55
+ `- ${runPrefix} reflection run --config reflection.config.ts --mode smoke`,
56
+ `- ${runPrefix} reflection review --json`
57
+ ].join('\n');
58
+ }
59
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjD,MAAM,gBAAgB,GAAG,CAAC,YAAY,CAAU,CAAC;AAGjD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAA8B,EAAE;IAChE,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,EAAE,mFAAmF,CAAC,CAAC;IAC1J,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,KAAmB,CAAC,EAAE,CAAC;QACnD,OAAO,KAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,IAAI,cAAc,CACtB,QAAQ,CAAC,YAAY,EACrB,iBAAiB,EACjB,uBAAuB,KAAK,uBAAuB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAClF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAC7C,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAsE;IAC5F,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,OAAO,CAAC;IAC1F,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,0BAA0B,CAAC;IAEtJ,OAAO;QACL,iBAAiB;QACjB,EAAE;QACF,cAAc;QACd,WAAW,KAAK,CAAC,MAAM,EAAE;QACzB,oBAAoB,KAAK,CAAC,cAAc,EAAE;QAC1C,YAAY,cAAc,EAAE;QAC5B,EAAE;QACF,oCAAoC;QACpC,iGAAiG;QACjG,EAAE;QACF,qBAAqB;QACrB,KAAK,SAAS,kDAAkD;QAChE,KAAK,SAAS,4DAA4D;QAC1E,KAAK,SAAS,2BAA2B;KAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -98,8 +98,7 @@ export async function runCommand(options) {
98
98
  nodeVersion: process.version,
99
99
  workers
100
100
  },
101
- checks,
102
- suggestedNextSteps: [{ kind: 'implementation', summary: 'Implement the next contract runner phase.' }]
101
+ checks
103
102
  });
104
103
  const reportArtifacts = await writeReports(store, report);
105
104
  const manifest = createRunManifest({ report: { ...report, artifacts: reportArtifacts }, files: reportArtifacts });
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAuC,MAAM,mBAAmB,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAoB,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAsB,MAAM,2BAA2B,CAAC;AAUnF,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,cAAc,CACtB,QAAQ,CAAC,YAAY,EACrB,wBAAwB,EACxB,iBAAiB,KAAK,kDAAkD,CACzE,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,MAAoC,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACvB,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACnF,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,MAAiC,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;QAC9C,MAAM,eAAe,GAAG,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC;QACpD,MAAM,gBAAgB,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,OAAO,KAAK,KAAK,IAAI,aAAa,KAAK,SAAS,CAAC;QAClI,MAAM,eAAe,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,OAAO,KAAK,KAAK,IAAI,YAAY,KAAK,SAAS,CAAC;QAChI,MAAM,kBAAkB,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,OAAO,KAAK,KAAK,IAAI,eAAe,KAAK,SAAS,CAAC;QAEzI,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,MAAM,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE;oBACtD,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;iBAChD,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,MAAM,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,0BAA0B,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,gBAAgB,IAAI,CAAC,eAAe,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,KAAK;QACL,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACnD,SAAS;QACT,UAAU;QACV,IAAI;QACJ,EAAE;QACF,WAAW,EAAE;YACX,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,OAAO;SACR;QACD,MAAM;QACN,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;KACvG,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;IAClH,MAAM,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAEjD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,IAAI,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,oCAAoC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAU;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAChF,OAAO,GAAG,KAAK,QAAQ,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,KAA4C,EAAE,EAAW;IACnF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACtC,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,YAAY,EAAE,2BAA2B,EAAE,oBAAoB,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACnJ,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACxG,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,YAAY,EAAE,2BAA2B,EAAE,oBAAoB,KAAK,iCAAiC,CAAC,CAAC;IAC3I,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,IAAa,EAAE,MAAiC;IACpF,OAAO;QACL,EAAE,EAAE,eAAe,IAAI,SAAS;QAChC,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,MAAM,EAAE,QAAQ,IAAI,yBAAyB;QACrD,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,kCAAkC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,iEAAiE;QAC1I,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE;YACR,aAAa,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK;YACvC,YAAY,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;YACrC,GAAG,EAAE,MAAM,EAAE,GAAG;SACjB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAa;IACjD,OAAO;QACL;YACE,EAAE,EAAE,eAAe,IAAI,oBAAoB;YAC3C,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,mFAAmF;YAC5F,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -108,6 +108,11 @@ async function readLatestRunId(rootDir) {
108
108
  }
109
109
  function renderUpdateSummary(plan, dryRun) {
110
110
  const lines = ['Reflection update', '', `Dry run: ${dryRun ? 'yes' : 'no'}`, ''];
111
+ if (dryRun) {
112
+ lines.push('No baseline files were written.');
113
+ lines.push('Run the same command without --dry-run only after explicit human approval.');
114
+ lines.push('');
115
+ }
111
116
  lines.push(dryRun ? 'Would update:' : 'Updated:');
112
117
  for (const item of plan) {
113
118
  lines.push(`- ${item.checkId}: ${relative(process.cwd(), item.sourcePath)} -> ${relative(process.cwd(), item.baselinePath)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { ArtifactStore } from '../../core/artifact-store.js';
2
2
  import type { CheckResult } from '../../core/report-schema.js';
3
3
  import type { RouteVisualBaselineCase } from '../visual/baseline-compare.js';
4
- import { type BrowserRoute } from './route-runner.js';
4
+ import { type BrowserRoute, type BrowserSetup } from './route-runner.js';
5
5
  export type BrowserContractConfig = {
6
6
  enabled?: boolean;
7
7
  blocking?: boolean;
@@ -9,5 +9,6 @@ export type BrowserContractConfig = {
9
9
  routes: BrowserRoute[];
10
10
  visualSmoke?: RouteVisualBaselineCase[];
11
11
  maskSelectors?: string[];
12
+ setup?: BrowserSetup | undefined;
12
13
  };
13
14
  export declare function runBrowserContract(config: BrowserContractConfig, store: ArtifactStore): Promise<CheckResult[]>;
@@ -17,7 +17,8 @@ export async function runBrowserContract(config, store) {
17
17
  route,
18
18
  viewport,
19
19
  blocking: config.blocking ?? true,
20
- maskSelectors: config.maskSelectors ?? []
20
+ maskSelectors: config.maskSelectors ?? [],
21
+ setup: config.setup
21
22
  }));
22
23
  }
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"browser-contract.js","sourceRoot":"","sources":["../../../src/contracts/browser/browser-contract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kDAAkD,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAqB,MAAM,mBAAmB,CAAC;AAWvE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA6B,EAAE,KAAoB;IAC1F,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IACtC,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CACT,MAAM,eAAe,CAAC;oBACpB,OAAO;oBACP,KAAK;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK;oBACL,QAAQ;oBACR,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;oBACjC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;iBAC1C,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,MAAM,mBAAmB,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,MAAM;QACrB,KAAK;KACN,CAAC,CAAC,CACJ,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"browser-contract.js","sourceRoot":"","sources":["../../../src/contracts/browser/browser-contract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kDAAkD,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAwC,MAAM,mBAAmB,CAAC;AAY1F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA6B,EAAE,KAAoB;IAC1F,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IACtC,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CACT,MAAM,eAAe,CAAC;oBACpB,OAAO;oBACP,KAAK;oBACL,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK;oBACL,QAAQ;oBACR,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;oBACjC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;oBACzC,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,IAAI,CACT,GAAG,CAAC,MAAM,mBAAmB,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,MAAM;QACrB,KAAK;KACN,CAAC,CAAC,CACJ,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -8,6 +8,11 @@ export type BrowserRoute = {
8
8
  path: string;
9
9
  viewports: string[];
10
10
  expects: BrowserExpectation[];
11
+ setup?: BrowserSetup | undefined;
12
+ };
13
+ export type BrowserSetup = {
14
+ localStorage?: Record<string, string>;
15
+ sessionStorage?: Record<string, string>;
11
16
  };
12
17
  export type RouteRunInput = {
13
18
  browser: Browser;
@@ -17,5 +22,6 @@ export type RouteRunInput = {
17
22
  viewport: string;
18
23
  blocking: boolean;
19
24
  maskSelectors?: string[];
25
+ setup?: BrowserSetup | undefined;
20
26
  };
21
27
  export declare function runBrowserRoute(input: RouteRunInput): Promise<CheckResult>;
@@ -9,7 +9,10 @@ export async function runBrowserRoute(input) {
9
9
  const artifacts = [];
10
10
  const maskSelectors = input.maskSelectors ?? [];
11
11
  let maskedSelectors = [];
12
+ const setup = mergeBrowserSetup(input.setup, input.route.setup);
13
+ const setupMetadata = createSetupMetadata(setup);
12
14
  try {
15
+ await applyBrowserSetup(page, setup);
13
16
  await page.goto(new URL(input.route.path, input.baseUrl).toString(), { waitUntil: 'domcontentloaded' });
14
17
  await page.waitForLoadState('networkidle', { timeout: 2_000 }).catch(() => undefined);
15
18
  for (const expectation of input.route.expects) {
@@ -33,7 +36,8 @@ export async function runBrowserRoute(input) {
33
36
  failures,
34
37
  privacyWarning: shouldCaptureScreenshot(input.route.expects) ? 'Screenshots may contain private UI data. Use maskSelectors for sensitive regions.' : undefined,
35
38
  maskSelectors,
36
- maskedSelectors
39
+ maskedSelectors,
40
+ setup: setupMetadata
37
41
  }));
38
42
  }
39
43
  catch (error) {
@@ -66,6 +70,7 @@ export async function runBrowserRoute(input) {
66
70
  viewport: input.viewport,
67
71
  classification: firstFailure?.classification,
68
72
  failures,
73
+ setup: setupMetadata,
69
74
  ...(shouldCaptureScreenshot(input.route.expects)
70
75
  ? {
71
76
  privacyWarning: 'Screenshots may contain private UI data. Use maskSelectors for sensitive regions.',
@@ -77,6 +82,42 @@ export async function runBrowserRoute(input) {
77
82
  ...(failures.length > 0 ? { suggestedNextStep: 'Inspect screenshot and browser metadata, then fix the rendered UI contract failure.' } : {})
78
83
  };
79
84
  }
85
+ function mergeBrowserSetup(base, route) {
86
+ return {
87
+ localStorage: {
88
+ ...(base?.localStorage ?? {}),
89
+ ...(route?.localStorage ?? {})
90
+ },
91
+ sessionStorage: {
92
+ ...(base?.sessionStorage ?? {}),
93
+ ...(route?.sessionStorage ?? {})
94
+ }
95
+ };
96
+ }
97
+ async function applyBrowserSetup(page, setup) {
98
+ const localStorage = setup.localStorage ?? {};
99
+ const sessionStorage = setup.sessionStorage ?? {};
100
+ if (Object.keys(localStorage).length === 0 && Object.keys(sessionStorage).length === 0) {
101
+ return;
102
+ }
103
+ await page.addInitScript((storageSetup) => {
104
+ const target = globalThis;
105
+ for (const [key, value] of Object.entries(storageSetup.localStorage)) {
106
+ target.localStorage.setItem(key, value);
107
+ }
108
+ for (const [key, value] of Object.entries(storageSetup.sessionStorage)) {
109
+ target.sessionStorage.setItem(key, value);
110
+ }
111
+ }, { localStorage, sessionStorage });
112
+ }
113
+ function createSetupMetadata(setup) {
114
+ const localStorageKeys = Object.keys(setup.localStorage ?? {}).sort();
115
+ const sessionStorageKeys = Object.keys(setup.sessionStorage ?? {}).sort();
116
+ if (localStorageKeys.length === 0 && sessionStorageKeys.length === 0) {
117
+ return undefined;
118
+ }
119
+ return { localStorageKeys, sessionStorageKeys };
120
+ }
80
121
  async function applyMaskSelectors(page, selectors) {
81
122
  const applied = [];
82
123
  for (const selector of selectors) {
@@ -1 +1 @@
1
- {"version":3,"file":"route-runner.js","sourceRoot":"","sources":["../../../src/contracts/browser/route-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-runner.js","sourceRoot":"","sources":["../../../src/contracts/browser/route-runner.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { ArtifactStore } from '../../core/artifact-store.js';
2
2
  import type { CheckResult } from '../../core/report-schema.js';
3
3
  import type { ServerConfig } from '../../core/server-manager.js';
4
+ import { type ViewportSize } from '../../integrations/playwright/context-factory.js';
4
5
  import type { VisualThreshold } from '../visual/thresholds.js';
5
6
  export type ComponentVisualCase = {
6
7
  id: string;
@@ -8,6 +9,8 @@ export type ComponentVisualCase = {
8
9
  baseline: string;
9
10
  baselineRoot?: string | undefined;
10
11
  viewport?: string | undefined;
12
+ viewportSize?: ViewportSize | undefined;
13
+ framing?: ComponentFraming | undefined;
11
14
  threshold?: VisualThreshold | undefined;
12
15
  blocking?: boolean | undefined;
13
16
  strict?: boolean | undefined;
@@ -22,6 +25,12 @@ export type ComponentBrowserState = {
22
25
  waitMs?: number | undefined;
23
26
  };
24
27
  };
28
+ export type ComponentFraming = {
29
+ rootSelector: string;
30
+ background?: string | undefined;
31
+ align: 'center' | 'start';
32
+ padding: number;
33
+ };
25
34
  export type ComponentVisualContractConfig = {
26
35
  enabled?: boolean | undefined;
27
36
  storybook: ServerConfig;