@tayo-dev/rtl 1.3.0 → 1.4.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 (69) hide show
  1. package/README.md +66 -33
  2. package/assets/claude/commands/@tayo-dev/rtl/generate.md +2 -2
  3. package/assets/claude/commands/@tayo-dev/rtl/help.md +1 -1
  4. package/assets/codex/@tayo-dev/rtl-conventions/SKILL.md +2 -2
  5. package/assets/codex/@tayo-dev/rtl-generate/SKILL.md +6 -5
  6. package/assets/codex/@tayo-dev/rtl-help/SKILL.md +1 -1
  7. package/assets/gemini/commands/@tayo-dev/rtl/generate.toml +2 -2
  8. package/assets/gemini/commands/@tayo-dev/rtl/help.toml +1 -1
  9. package/assets/opencode/commands/@tayo-dev/rtl-generate.md +2 -2
  10. package/assets/opencode/commands/@tayo-dev/rtl-help.md +1 -1
  11. package/dist/cli/commands/generate.d.ts.map +1 -1
  12. package/dist/cli/commands/generate.js +485 -67
  13. package/dist/cli/commands/generate.js.map +1 -1
  14. package/dist/cli/commands/install.js +6 -6
  15. package/dist/core/baseline-normalizer.d.ts.map +1 -1
  16. package/dist/core/baseline-normalizer.js +42 -0
  17. package/dist/core/baseline-normalizer.js.map +1 -1
  18. package/dist/core/generator.d.ts +5 -1
  19. package/dist/core/generator.d.ts.map +1 -1
  20. package/dist/core/generator.js +235 -17
  21. package/dist/core/generator.js.map +1 -1
  22. package/dist/core/input-loader.d.ts.map +1 -1
  23. package/dist/core/input-loader.js +1 -0
  24. package/dist/core/input-loader.js.map +1 -1
  25. package/dist/core/js-parser.d.ts +2 -1
  26. package/dist/core/js-parser.d.ts.map +1 -1
  27. package/dist/core/js-parser.js +69 -0
  28. package/dist/core/js-parser.js.map +1 -1
  29. package/dist/core/orchestrator.d.ts +1 -1
  30. package/dist/core/orchestrator.js +4 -4
  31. package/dist/core/parser.js +2 -2
  32. package/dist/core/recording-intelligence.d.ts +1 -1
  33. package/dist/core/recording-intelligence.d.ts.map +1 -1
  34. package/dist/core/recording-intelligence.js +298 -4
  35. package/dist/core/recording-intelligence.js.map +1 -1
  36. package/dist/core/resolver.d.ts +28 -2
  37. package/dist/core/resolver.d.ts.map +1 -1
  38. package/dist/core/resolver.js +462 -23
  39. package/dist/core/resolver.js.map +1 -1
  40. package/dist/core/scanner.d.ts +11 -3
  41. package/dist/core/scanner.d.ts.map +1 -1
  42. package/dist/core/scanner.js +47 -9
  43. package/dist/core/scanner.js.map +1 -1
  44. package/dist/core/scorer.d.ts +6 -2
  45. package/dist/core/scorer.d.ts.map +1 -1
  46. package/dist/core/scorer.js +163 -9
  47. package/dist/core/scorer.js.map +1 -1
  48. package/dist/core/suite-planner.d.ts +4 -1
  49. package/dist/core/suite-planner.d.ts.map +1 -1
  50. package/dist/core/suite-planner.js +261 -11
  51. package/dist/core/suite-planner.js.map +1 -1
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.js +4 -4
  54. package/dist/install/planner.js +1 -1
  55. package/dist/install/types.d.ts +1 -1
  56. package/dist/learner/index.d.ts +2 -2
  57. package/dist/learner/index.js +3 -3
  58. package/dist/learner/storage.d.ts +1 -1
  59. package/dist/learner/storage.js +2 -2
  60. package/dist/templates/test-template.d.ts +26 -2
  61. package/dist/templates/test-template.d.ts.map +1 -1
  62. package/dist/templates/test-template.js +46 -6
  63. package/dist/templates/test-template.js.map +1 -1
  64. package/dist/types/recording.d.ts +162 -0
  65. package/dist/types/recording.d.ts.map +1 -1
  66. package/dist/types/recording.js.map +1 -1
  67. package/dist/types/score.d.ts +37 -0
  68. package/dist/types/score.d.ts.map +1 -1
  69. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"input-loader.js","sourceRoot":"","sources":["../../src/core/input-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input-loader.js","sourceRoot":"","sources":["../../src/core/input-loader.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Babel AST-based parser for Testing Library Recorder JS output.
3
3
  * Parses the JavaScript recording format and produces truthful baseline metadata.
4
4
  */
5
- import { type AssertionDescriptor, type ItGroup, type NormalizedStep, type QueryDescriptor, type QueryQuality, type SelectorDescriptor } from '../types/recording.js';
5
+ import { type AssertionDescriptor, type ItGroup, type NormalizedStep, type QueryDescriptor, type QueryQuality, type SemanticMarkerCandidate, type SelectorDescriptor } from '../types/recording.js';
6
6
  /**
7
7
  * Classifies a Testing Library query method by quality tier.
8
8
  * @param method - The RTL query method name (e.g., 'getByRole', 'getByText')
@@ -40,6 +40,7 @@ export interface JsParseResult {
40
40
  queries: QueryDescriptor[];
41
41
  selectors: SelectorDescriptor[];
42
42
  assertions: AssertionDescriptor[];
43
+ semanticMarkerCandidates: SemanticMarkerCandidate[];
43
44
  querySelectorCalls: QuerySelectorCall[];
44
45
  itGroups: ItGroup[];
45
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"js-parser.d.ts","sourceRoot":"","sources":["../../src/core/js-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,OAAO,EAEZ,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAA;AA+B9B;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAetE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAuDtE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC/B,UAAU,EAAE,mBAAmB,EAAE,CAAA;IACjC,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;IACvC,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAwSD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAgM3E"}
1
+ {"version":3,"file":"js-parser.d.ts","sourceRoot":"","sources":["../../src/core/js-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,OAAO,EAEZ,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE5B,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAA;AA+B9B;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAetE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAuDtE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AASD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC/B,UAAU,EAAE,mBAAmB,EAAE,CAAA;IACjC,wBAAwB,EAAE,uBAAuB,EAAE,CAAA;IACnD,kBAAkB,EAAE,iBAAiB,EAAE,CAAA;IACvC,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAqXD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA4M3E"}
@@ -307,6 +307,65 @@ function resolveTarget(code, node, stepId) {
307
307
  }
308
308
  return {};
309
309
  }
310
+ function normalizeProofText(value) {
311
+ const normalized = value?.replace(/\s+/g, ' ').trim();
312
+ return normalized ? normalized : undefined;
313
+ }
314
+ function looksLikeConcreteValue(value) {
315
+ if (!value) {
316
+ return false;
317
+ }
318
+ return (/@/.test(value) ||
319
+ /^\+?[\d()\s.-]{6,}$/.test(value) ||
320
+ /(?:KES|USD|EUR|GBP|\$|€|£)\s?[\d,.]+/.test(value));
321
+ }
322
+ function looksLikeVisibleMessage(value) {
323
+ if (!value) {
324
+ return false;
325
+ }
326
+ return /^(please|saved|success|error|warning|failed|updated|deleted)\b/i.test(value);
327
+ }
328
+ function classifySemanticMarkerProofSubject(resolvedTarget) {
329
+ const proofText = normalizeProofText(resolvedTarget.query?.target ?? resolvedTarget.target);
330
+ if (resolvedTarget.query?.role === 'heading') {
331
+ return 'heading';
332
+ }
333
+ if (resolvedTarget.query?.role === 'alert' || resolvedTarget.query?.role === 'status') {
334
+ return 'visible-message';
335
+ }
336
+ if (resolvedTarget.query?.method === 'getByDisplayValue' || looksLikeConcreteValue(proofText)) {
337
+ return 'concrete-value';
338
+ }
339
+ if (looksLikeVisibleMessage(proofText)) {
340
+ return 'visible-message';
341
+ }
342
+ if (resolvedTarget.selector) {
343
+ return 'selector-target';
344
+ }
345
+ if (resolvedTarget.query?.method === 'getByText' || resolvedTarget.query?.method === 'getByLabelText') {
346
+ return 'field-label';
347
+ }
348
+ return 'unknown';
349
+ }
350
+ function buildSemanticMarkerCandidate(code, node, stepId, resolvedTarget) {
351
+ return {
352
+ stepId,
353
+ status: 'unresolved',
354
+ originalGesture: 'dblClick',
355
+ proofSubject: classifySemanticMarkerProofSubject(resolvedTarget),
356
+ target: resolvedTarget.target,
357
+ proofText: normalizeProofText(resolvedTarget.query?.target ?? resolvedTarget.target),
358
+ line: getLine(node),
359
+ sourceContext: {
360
+ line: getLine(node),
361
+ originalType: 'dblClick',
362
+ raw: sliceSource(code, node),
363
+ },
364
+ query: resolvedTarget.query,
365
+ selector: resolvedTarget.selector,
366
+ anchor: {},
367
+ };
368
+ }
310
369
  /**
311
370
  * Maps userEvent method calls to NormalizedAction
312
371
  */
@@ -344,6 +403,7 @@ export async function parseJsRecording(code) {
344
403
  const queries = [];
345
404
  const selectors = [];
346
405
  const assertions = [];
406
+ const semanticMarkerCandidates = [];
347
407
  const querySelectorCalls = [];
348
408
  // Traverse AST
349
409
  traverse(ast, {
@@ -360,6 +420,9 @@ export async function parseJsRecording(code) {
360
420
  const action = mapUserEventCall(methodName);
361
421
  const resolvedTarget = resolveTarget(code, path.node.arguments[0], stepId);
362
422
  const value = extractLiteralValue(path.node.arguments[1]);
423
+ const semanticMarkerCandidate = methodName === 'dblClick'
424
+ ? buildSemanticMarkerCandidate(code, path.node, stepId, resolvedTarget)
425
+ : undefined;
363
426
  if (resolvedTarget.query) {
364
427
  queries.push(resolvedTarget.query);
365
428
  }
@@ -371,6 +434,9 @@ export async function parseJsRecording(code) {
371
434
  stepId,
372
435
  });
373
436
  }
437
+ if (semanticMarkerCandidate) {
438
+ semanticMarkerCandidates.push(semanticMarkerCandidate);
439
+ }
374
440
  steps.push({
375
441
  id: stepId,
376
442
  action,
@@ -379,8 +445,10 @@ export async function parseJsRecording(code) {
379
445
  originalType: methodName,
380
446
  line: getLine(path.node),
381
447
  source: 'js',
448
+ semanticMarkerCandidate,
382
449
  metadata: {
383
450
  ...resolvedTarget.metadata,
451
+ ...(semanticMarkerCandidate ? { semanticMarkerCandidate } : {}),
384
452
  },
385
453
  });
386
454
  return;
@@ -494,6 +562,7 @@ export async function parseJsRecording(code) {
494
562
  queries,
495
563
  selectors,
496
564
  assertions,
565
+ semanticMarkerCandidates,
497
566
  querySelectorCalls,
498
567
  itGroups,
499
568
  };
@@ -1 +1 @@
1
- {"version":3,"file":"js-parser.js","sourceRoot":"","sources":["../../src/core/js-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"js-parser.js","sourceRoot":"","sources":["../../src/core/js-parser.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Core orchestrator for Taro test generation pipeline
2
+ * Core orchestrator for Tayo test generation pipeline
3
3
  * Coordinates parsing, optional visual inspection, and test generation
4
4
  */
5
5
  import { Command } from 'commander';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Core orchestrator for Taro test generation pipeline
2
+ * Core orchestrator for Tayo test generation pipeline
3
3
  * Coordinates parsing, optional visual inspection, and test generation
4
4
  */
5
5
  import { Command } from 'commander';
@@ -18,7 +18,7 @@ import { learnConventions, getConventions } from '../learner/index.js';
18
18
  */
19
19
  export async function run(options) {
20
20
  const { recordingPath, outputPath = './tests', visual = false, mocks = true, url } = options;
21
- console.log(`\n📼 Taro - Chrome Recorder to RTL Test Generator\n`);
21
+ console.log(`\n📼 Tayo - Chrome Recorder to RTL Test Generator\n`);
22
22
  console.log(`📂 Recording: ${recordingPath}`);
23
23
  if (visual) {
24
24
  console.log(`👁️ Visual inspection: ENABLED`);
@@ -145,7 +145,7 @@ async function runVisualInspection(recording, urlFromCli) {
145
145
  return visualContext;
146
146
  }
147
147
  // Create screenshots directory
148
- const screenshotsDir = resolve('.taro/visuals');
148
+ const screenshotsDir = resolve('.tayo/visuals');
149
149
  if (!existsSync(screenshotsDir)) {
150
150
  mkdirSync(screenshotsDir, { recursive: true });
151
151
  }
@@ -285,7 +285,7 @@ describe('${testName}', () => {
285
285
  export function createCommand() {
286
286
  const program = new Command();
287
287
  program
288
- .name('taro')
288
+ .name('tayo')
289
289
  .description('Chrome Recorder to React Testing Library test generator')
290
290
  .version('0.1.0');
291
291
  program
@@ -78,10 +78,10 @@ export function normalizeStep(chromeStep) {
78
78
  }
79
79
  const knownNoOp = new Set(['waitForSelector', 'setViewport', 'waitForExpression']);
80
80
  if (knownNoOp.has(chromeStep.type)) {
81
- console.warn(`[taro] Step type "${chromeStep.type}" is not mapped to an RTL action — skipped`);
81
+ console.warn(`[tayo] Step type "${chromeStep.type}" is not mapped to an RTL action — skipped`);
82
82
  }
83
83
  else {
84
- console.warn(`[taro] Unknown step type "${chromeStep.type}" — skipped`);
84
+ console.warn(`[tayo] Unknown step type "${chromeStep.type}" — skipped`);
85
85
  }
86
86
  return withMetadata(chromeStep, {
87
87
  action: 'unknown',
@@ -6,7 +6,7 @@ export interface VisualCaptureCandidate {
6
6
  }
7
7
  export interface NoiseFilterResult {
8
8
  steps: NormalizedStep[];
9
- diagnostics: Pick<RecordingDiagnostics, 'removedCursorWander' | 'removedDoubleClickNoise' | 'removedRedundantClicks'>;
9
+ diagnostics: Pick<RecordingDiagnostics, 'removedCursorWander' | 'removedDoubleClickNoise' | 'removedRedundantClicks' | 'preservedSemanticMarkers' | 'unresolvedSemanticMarkers'>;
10
10
  }
11
11
  export declare function inferIntentGroups(steps: NormalizedStep[]): IntentGroup[];
12
12
  export declare function findVisualCaptureCandidates(analyzedRecording: AnalyzedRecording): VisualCaptureCandidate[];
@@ -1 +1 @@
1
- {"version":3,"file":"recording-intelligence.d.ts","sourceRoot":"","sources":["../../src/core/recording-intelligence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACrB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,cAAc,GAAG,cAAc,CAAA;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,WAAW,EAAE,IAAI,CACf,oBAAoB,EACpB,qBAAqB,GAAG,yBAAyB,GAAG,wBAAwB,CAC7E,CAAA;CACF;AAuHD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CA4CxE;AAED,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,iBAAiB,GACnC,sBAAsB,EAAE,CA2B1B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,iBAAiB,CA2D3E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,GAAG,iBAAiB,CAelF"}
1
+ {"version":3,"file":"recording-intelligence.d.ts","sourceRoot":"","sources":["../../src/core/recording-intelligence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EAMrB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,cAAc,GAAG,cAAc,CAAA;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,WAAW,EAAE,IAAI,CACf,oBAAoB,EAClB,qBAAqB,GACrB,yBAAyB,GACzB,wBAAwB,GACxB,0BAA0B,GAC1B,2BAA2B,CAC9B,CAAA;CACF;AA+eD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CA4CxE;AAED,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,iBAAiB,GACnC,sBAAsB,EAAE,CA2B1B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAqH3E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,GAAG,iBAAiB,CAuBlF"}
@@ -1,3 +1,29 @@
1
+ const MAJOR_TRANSITION_PATTERN = /\b(add|open|continue|submit|save|confirm|done|create|update|apply|next|finish|start|launch|proceed|review|checkout|complete)\b/i;
2
+ const STATE_CHANGING_CONTROL_ROLES = new Set([
3
+ 'button',
4
+ 'link',
5
+ 'menuitem',
6
+ 'menuitemcheckbox',
7
+ 'menuitemradio',
8
+ 'switch',
9
+ 'tab',
10
+ ]);
11
+ const INTERACTIVE_ROLES = new Set([
12
+ 'button',
13
+ 'checkbox',
14
+ 'combobox',
15
+ 'link',
16
+ 'menuitem',
17
+ 'menuitemcheckbox',
18
+ 'menuitemradio',
19
+ 'option',
20
+ 'radio',
21
+ 'switch',
22
+ 'tab',
23
+ 'textbox',
24
+ ]);
25
+ const GENERIC_FIELD_CONTEXT_PATTERN = /\b(details?|information|summary|review|section|panel|wrapper|container|layout|row|table|list|grid)\b/i;
26
+ const FIELD_LABEL_HINT_PATTERN = /\b(name|email|phone|pin|quantity|amount|reference|description|notes?|comment|code|search|address|date|time|password|customer|type|number)\b/i;
1
27
  function getAssertionKind(step) {
2
28
  const assertion = step.metadata?.assertion;
3
29
  if (assertion &&
@@ -42,12 +68,239 @@ function normalizedTarget(target) {
42
68
  const trimmed = target?.trim();
43
69
  return trimmed ? trimmed : undefined;
44
70
  }
71
+ function getSemanticMarkerCandidate(step) {
72
+ const metadataCandidate = step.metadata?.semanticMarkerCandidate;
73
+ if (metadataCandidate &&
74
+ typeof metadataCandidate === 'object' &&
75
+ 'stepId' in metadataCandidate &&
76
+ typeof metadataCandidate.stepId === 'string') {
77
+ return metadataCandidate;
78
+ }
79
+ return step.semanticMarkerCandidate;
80
+ }
81
+ function isJsSemanticMarkerGesture(step) {
82
+ return (step.source === 'js' &&
83
+ step.action === 'click' &&
84
+ isDoubleClickVariant(step) &&
85
+ getSemanticMarkerCandidate(step) !== undefined);
86
+ }
87
+ function isSupportedProofSubject(subject) {
88
+ return (subject === 'heading' ||
89
+ subject === 'visible-message' ||
90
+ subject === 'concrete-value');
91
+ }
92
+ function isPhase18ConsumableProofSubject(subject) {
93
+ return isSupportedProofSubject(subject) || subject === 'field-label';
94
+ }
95
+ function isProofLikeButUnsupportedSubject(subject) {
96
+ return subject === 'selector-target';
97
+ }
98
+ function getQueryRole(step) {
99
+ const query = step.metadata?.query;
100
+ if (query &&
101
+ typeof query === 'object' &&
102
+ 'role' in query &&
103
+ typeof query.role === 'string') {
104
+ return query.role.toLowerCase();
105
+ }
106
+ return undefined;
107
+ }
108
+ function isStateChangingControlStep(step) {
109
+ return STATE_CHANGING_CONTROL_ROLES.has(getQueryRole(step) ?? '');
110
+ }
111
+ function isMajorTransitionStep(step) {
112
+ if (step.action === 'navigate') {
113
+ return true;
114
+ }
115
+ if (step.action !== 'click') {
116
+ return false;
117
+ }
118
+ if (isJsSemanticMarkerGesture(step)) {
119
+ return false;
120
+ }
121
+ const target = normalizedTarget(step.target);
122
+ if (!target) {
123
+ return false;
124
+ }
125
+ if (isStateChangingControlStep(step)) {
126
+ return true;
127
+ }
128
+ if (getQueryRole(step)) {
129
+ return false;
130
+ }
131
+ return MAJOR_TRANSITION_PATTERN.test(target);
132
+ }
133
+ function findNearestPriorMajorTransitionStep(steps, markerIndex) {
134
+ for (let index = markerIndex - 1; index >= 0; index -= 1) {
135
+ const candidate = steps[index];
136
+ if (isSyncAssertionStep(candidate)) {
137
+ continue;
138
+ }
139
+ if (isMajorTransitionStep(candidate)) {
140
+ return candidate;
141
+ }
142
+ }
143
+ return undefined;
144
+ }
145
+ function buildSemanticMarkerLink(step, candidate, anchorStep) {
146
+ const anchor = buildSemanticMarkerAnchor(step, anchorStep);
147
+ const markerStepId = step.id ?? candidate.stepId;
148
+ if (!markerStepId || !anchor?.anchorStepId || !anchor.relation) {
149
+ return undefined;
150
+ }
151
+ return {
152
+ markerStepId,
153
+ anchorStepId: anchor.anchorStepId,
154
+ relation: anchor.relation,
155
+ proofSubject: candidate.proofSubject,
156
+ target: candidate.target ?? step.target,
157
+ proofText: candidate.proofText,
158
+ line: candidate.line ?? step.line,
159
+ sourceContext: candidate.sourceContext,
160
+ query: candidate.query,
161
+ selector: candidate.selector,
162
+ };
163
+ }
164
+ function buildSemanticMarkerAnchor(step, anchorStep) {
165
+ const anchorStepId = anchorStep.id;
166
+ if (!anchorStepId) {
167
+ return undefined;
168
+ }
169
+ const relation = normalizedTarget(anchorStep.target) === normalizedTarget(step.target)
170
+ ? 'same-target'
171
+ : 'follows';
172
+ return {
173
+ anchorStepId,
174
+ relation,
175
+ };
176
+ }
177
+ function buildUnresolvedSemanticMarker(step, candidate, reason, anchor) {
178
+ const stepId = step.id ?? candidate.stepId;
179
+ if (!stepId) {
180
+ return undefined;
181
+ }
182
+ return {
183
+ stepId,
184
+ reason,
185
+ proofSubject: candidate.proofSubject,
186
+ target: candidate.target ?? step.target,
187
+ proofText: candidate.proofText,
188
+ line: candidate.line ?? step.line,
189
+ sourceContext: candidate.sourceContext,
190
+ query: candidate.query,
191
+ selector: candidate.selector,
192
+ anchor: anchor ?? candidate.anchor,
193
+ };
194
+ }
195
+ function applySemanticMarkerState(step, candidate, semanticMarkerLink, unresolvedSemanticMarker) {
196
+ const nextCandidate = {
197
+ ...candidate,
198
+ status: semanticMarkerLink ? 'qualified' : 'unresolved',
199
+ anchor: semanticMarkerLink
200
+ ? {
201
+ anchorStepId: semanticMarkerLink.anchorStepId,
202
+ relation: semanticMarkerLink.relation,
203
+ }
204
+ : unresolvedSemanticMarker?.anchor ?? candidate.anchor,
205
+ };
206
+ return {
207
+ ...step,
208
+ semanticMarkerCandidate: nextCandidate,
209
+ semanticMarkerLink,
210
+ unresolvedSemanticMarker,
211
+ metadata: {
212
+ ...(step.metadata ?? {}),
213
+ semanticMarkerCandidate: nextCandidate,
214
+ ...(semanticMarkerLink ? { semanticMarkerLink } : {}),
215
+ ...(unresolvedSemanticMarker ? { unresolvedSemanticMarker } : {}),
216
+ },
217
+ };
218
+ }
219
+ function normalizeProofText(value) {
220
+ const normalized = value?.replace(/\s+/g, ' ').trim();
221
+ return normalized ? normalized : undefined;
222
+ }
223
+ function isIconOnlyText(value) {
224
+ const normalized = normalizeProofText(value);
225
+ if (!normalized) {
226
+ return false;
227
+ }
228
+ return normalized.length <= 2 && !/[a-z0-9]/i.test(normalized);
229
+ }
230
+ function isResolvableFieldContextCandidate(candidate) {
231
+ if (candidate.selector) {
232
+ return false;
233
+ }
234
+ const queryMethod = candidate.query?.method;
235
+ if (!queryMethod) {
236
+ return false;
237
+ }
238
+ const proofText = normalizeProofText(candidate.proofText ?? candidate.query?.target ?? candidate.target);
239
+ if (!proofText ||
240
+ isIconOnlyText(proofText) ||
241
+ GENERIC_FIELD_CONTEXT_PATTERN.test(proofText) ||
242
+ /[/,]/.test(proofText)) {
243
+ return false;
244
+ }
245
+ if (queryMethod === 'getByLabelText' || queryMethod === 'getByPlaceholderText') {
246
+ return true;
247
+ }
248
+ return queryMethod === 'getByText' && FIELD_LABEL_HINT_PATTERN.test(proofText);
249
+ }
250
+ function annotateSemanticMarkers(steps) {
251
+ return steps.map((step, index) => {
252
+ if (!isJsSemanticMarkerGesture(step)) {
253
+ return step;
254
+ }
255
+ const candidate = getSemanticMarkerCandidate(step);
256
+ if (!candidate) {
257
+ return step;
258
+ }
259
+ if (isPhase18ConsumableProofSubject(candidate.proofSubject)) {
260
+ const anchorStep = findNearestPriorMajorTransitionStep(steps, index);
261
+ const anchor = anchorStep
262
+ ? buildSemanticMarkerAnchor(step, anchorStep)
263
+ : candidate.anchor;
264
+ if (candidate.proofSubject === 'field-label' &&
265
+ !isResolvableFieldContextCandidate(candidate)) {
266
+ const unresolvedSemanticMarker = buildUnresolvedSemanticMarker(step, candidate, 'ambiguous-field-context', anchor);
267
+ return unresolvedSemanticMarker
268
+ ? applySemanticMarkerState(step, candidate, undefined, unresolvedSemanticMarker)
269
+ : step;
270
+ }
271
+ const semanticMarkerLink = anchorStep
272
+ ? buildSemanticMarkerLink(step, candidate, anchorStep)
273
+ : undefined;
274
+ if (semanticMarkerLink) {
275
+ return applySemanticMarkerState(step, candidate, semanticMarkerLink);
276
+ }
277
+ const unresolvedSemanticMarker = buildUnresolvedSemanticMarker(step, candidate, 'missing-anchor', anchor);
278
+ return unresolvedSemanticMarker
279
+ ? applySemanticMarkerState(step, candidate, undefined, unresolvedSemanticMarker)
280
+ : step;
281
+ }
282
+ if (isProofLikeButUnsupportedSubject(candidate.proofSubject)) {
283
+ const unresolvedSemanticMarker = buildUnresolvedSemanticMarker(step, candidate, 'unsupported-proof-subject');
284
+ return unresolvedSemanticMarker
285
+ ? applySemanticMarkerState(step, candidate, undefined, unresolvedSemanticMarker)
286
+ : step;
287
+ }
288
+ return step;
289
+ });
290
+ }
45
291
  function isSameClickTarget(current, candidate) {
46
292
  return (current.action === 'click' &&
47
293
  candidate.action === 'click' &&
48
294
  normalizedTarget(current.target) !== undefined &&
49
295
  normalizedTarget(current.target) === normalizedTarget(candidate.target));
50
296
  }
297
+ function isPreservedSemanticMarkerStep(step) {
298
+ return Boolean(step.semanticMarkerLink || step.unresolvedSemanticMarker);
299
+ }
300
+ function isInteractiveTarget(step) {
301
+ const role = step.semanticMarkerCandidate?.query?.role?.toLowerCase();
302
+ return role ? INTERACTIVE_ROLES.has(role) : false;
303
+ }
51
304
  function pickRepresentativeClick(cluster) {
52
305
  return cluster.find((step) => !isDoubleClickVariant(step)) ?? cluster[0];
53
306
  }
@@ -142,9 +395,12 @@ export function filterNoiseSteps(steps) {
142
395
  let removedRedundantClicks = 0;
143
396
  let removedDoubleClickNoise = 0;
144
397
  let removedCursorWander = 0;
398
+ let preservedSemanticMarkers = 0;
399
+ let unresolvedSemanticMarkers = 0;
145
400
  const filtered = [];
146
- for (let index = 0; index < steps.length; index += 1) {
147
- const step = steps[index];
401
+ const annotatedSteps = annotateSemanticMarkers(steps);
402
+ for (let index = 0; index < annotatedSteps.length; index += 1) {
403
+ const step = annotatedSteps[index];
148
404
  if (isCursorWanderStep(step)) {
149
405
  removedCursorWander += 1;
150
406
  continue;
@@ -154,8 +410,8 @@ export function filterNoiseSteps(steps) {
154
410
  continue;
155
411
  }
156
412
  const cluster = [step];
157
- for (let nextIndex = index + 1; nextIndex < steps.length; nextIndex += 1) {
158
- const candidate = steps[nextIndex];
413
+ for (let nextIndex = index + 1; nextIndex < annotatedSteps.length; nextIndex += 1) {
414
+ const candidate = annotatedSteps[nextIndex];
159
415
  if (isCursorWanderStep(candidate)) {
160
416
  removedCursorWander += 1;
161
417
  index = nextIndex;
@@ -167,6 +423,38 @@ export function filterNoiseSteps(steps) {
167
423
  cluster.push(candidate);
168
424
  index = nextIndex;
169
425
  }
426
+ const markerGestures = cluster.filter((candidate) => isJsSemanticMarkerGesture(candidate));
427
+ const preservedMarkers = cluster.filter((candidate) => isPreservedSemanticMarkerStep(candidate));
428
+ if (preservedMarkers.length > 0 || markerGestures.length > 0) {
429
+ preservedSemanticMarkers += preservedMarkers.filter((candidate) => Boolean(candidate.semanticMarkerLink)).length;
430
+ unresolvedSemanticMarkers += preservedMarkers.filter((candidate) => Boolean(candidate.unresolvedSemanticMarker)).length;
431
+ const markerIsInteractive = [...preservedMarkers, ...markerGestures].some((candidate) => isInteractiveTarget(candidate));
432
+ let keptInteractiveClick = false;
433
+ let seenMarkerGesture = false;
434
+ for (const candidate of cluster) {
435
+ if (isPreservedSemanticMarkerStep(candidate)) {
436
+ filtered.push(candidate);
437
+ seenMarkerGesture = true;
438
+ continue;
439
+ }
440
+ if (isJsSemanticMarkerGesture(candidate)) {
441
+ seenMarkerGesture = true;
442
+ removedDoubleClickNoise += 1;
443
+ continue;
444
+ }
445
+ if (isDoubleClickVariant(candidate)) {
446
+ removedDoubleClickNoise += 1;
447
+ continue;
448
+ }
449
+ if (markerIsInteractive && seenMarkerGesture && !keptInteractiveClick) {
450
+ filtered.push(candidate);
451
+ keptInteractiveClick = true;
452
+ continue;
453
+ }
454
+ removedRedundantClicks += 1;
455
+ }
456
+ continue;
457
+ }
170
458
  const extraClicks = cluster.length - 1;
171
459
  if (extraClicks > 0) {
172
460
  const removedDoubleClicks = cluster
@@ -183,12 +471,16 @@ export function filterNoiseSteps(steps) {
183
471
  removedCursorWander,
184
472
  removedDoubleClickNoise,
185
473
  removedRedundantClicks,
474
+ preservedSemanticMarkers,
475
+ unresolvedSemanticMarkers,
186
476
  },
187
477
  };
188
478
  }
189
479
  export function analyzeRecording(recording) {
190
480
  const filtered = filterNoiseSteps(recording.steps);
191
481
  const intentGroups = inferIntentGroups(filtered.steps);
482
+ const semanticMarkerLinks = filtered.steps.flatMap((step) => step.semanticMarkerLink ? [step.semanticMarkerLink] : []);
483
+ const unresolvedSemanticMarkers = filtered.steps.flatMap((step) => step.unresolvedSemanticMarker ? [step.unresolvedSemanticMarker] : []);
192
484
  return {
193
485
  ...recording,
194
486
  steps: filtered.steps,
@@ -199,6 +491,8 @@ export function analyzeRecording(recording) {
199
491
  intentGroupCount: intentGroups.length,
200
492
  },
201
493
  intentGroups,
494
+ semanticMarkerLinks,
495
+ unresolvedSemanticMarkers,
202
496
  };
203
497
  }
204
498
  //# sourceMappingURL=recording-intelligence.js.map