@tayo-dev/rtl 1.3.1 → 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 (65) hide show
  1. package/README.md +41 -41
  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 +1 -1
  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 +244 -35
  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.map +1 -1
  19. package/dist/core/generator.js +80 -7
  20. package/dist/core/generator.js.map +1 -1
  21. package/dist/core/input-loader.d.ts.map +1 -1
  22. package/dist/core/input-loader.js +1 -0
  23. package/dist/core/input-loader.js.map +1 -1
  24. package/dist/core/js-parser.d.ts +2 -1
  25. package/dist/core/js-parser.d.ts.map +1 -1
  26. package/dist/core/js-parser.js +69 -0
  27. package/dist/core/js-parser.js.map +1 -1
  28. package/dist/core/orchestrator.d.ts +1 -1
  29. package/dist/core/orchestrator.js +4 -4
  30. package/dist/core/parser.js +2 -2
  31. package/dist/core/recording-intelligence.d.ts +1 -1
  32. package/dist/core/recording-intelligence.d.ts.map +1 -1
  33. package/dist/core/recording-intelligence.js +298 -4
  34. package/dist/core/recording-intelligence.js.map +1 -1
  35. package/dist/core/resolver.d.ts +2 -1
  36. package/dist/core/resolver.d.ts.map +1 -1
  37. package/dist/core/resolver.js +334 -4
  38. package/dist/core/resolver.js.map +1 -1
  39. package/dist/core/scanner.d.ts +3 -3
  40. package/dist/core/scanner.js +9 -9
  41. package/dist/core/scorer.d.ts +6 -2
  42. package/dist/core/scorer.d.ts.map +1 -1
  43. package/dist/core/scorer.js +75 -7
  44. package/dist/core/scorer.js.map +1 -1
  45. package/dist/core/suite-planner.d.ts.map +1 -1
  46. package/dist/core/suite-planner.js +186 -17
  47. package/dist/core/suite-planner.js.map +1 -1
  48. package/dist/index.d.ts +1 -1
  49. package/dist/index.js +4 -4
  50. package/dist/install/planner.js +1 -1
  51. package/dist/install/types.d.ts +1 -1
  52. package/dist/learner/index.d.ts +2 -2
  53. package/dist/learner/index.js +3 -3
  54. package/dist/learner/storage.d.ts +1 -1
  55. package/dist/learner/storage.js +2 -2
  56. package/dist/templates/test-template.d.ts +4 -0
  57. package/dist/templates/test-template.d.ts.map +1 -1
  58. package/dist/templates/test-template.js +10 -1
  59. package/dist/templates/test-template.js.map +1 -1
  60. package/dist/types/recording.d.ts +118 -0
  61. package/dist/types/recording.d.ts.map +1 -1
  62. package/dist/types/recording.js.map +1 -1
  63. package/dist/types/score.d.ts +15 -0
  64. package/dist/types/score.d.ts.map +1 -1
  65. package/package.json +5 -5
@@ -8,10 +8,10 @@ const QUERY_WEIGHTS = {
8
8
  };
9
9
  const STRONG_ASSERTION_REGEX = /\.toHaveValue\(|\.toBeChecked\(|\.toHaveTextContent\(|\.toBeVisible\(/g;
10
10
  const WEAK_ASSERTION_REGEX = /\.toBeInTheDocument\(/g;
11
- const QUERY_CHECKPOINT_REGEX = /taro-query-checkpoint:/g;
11
+ const QUERY_CHECKPOINT_REGEX = /tayo-query-checkpoint:/g;
12
12
  const ROLE_QUERY_REGEX = /\b(?:getByRole|findByRole)\s*\(/g;
13
13
  const TEST_ID_QUERY_REGEX = /\b(?:getByTestId|findByTestId)\s*\(/g;
14
- const BOUNDARY_WARNING_REGEX = /taro-boundary-warning:/g;
14
+ const BOUNDARY_WARNING_REGEX = /tayo-boundary-warning:/g;
15
15
  const TEST_BLOCK_REGEX = /\b(?:it|test)\s*\(/g;
16
16
  function clampScore(score) {
17
17
  return Math.min(100, Math.max(0, Math.round(score)));
@@ -19,6 +19,12 @@ function clampScore(score) {
19
19
  function countMatches(input, pattern) {
20
20
  return input.match(pattern)?.length ?? 0;
21
21
  }
22
+ function normalizeCount(value) {
23
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
24
+ return 0;
25
+ }
26
+ return Math.max(0, Math.round(value));
27
+ }
22
28
  export function calculateQueryScore(queryResults) {
23
29
  if (queryResults.length === 0) {
24
30
  return 100;
@@ -54,7 +60,7 @@ export function calculateStructureScore(code) {
54
60
  if (code.includes('render(<App />)')) {
55
61
  score -= 25;
56
62
  }
57
- if (code.includes('taro-boundary-warning:')) {
63
+ if (code.includes('tayo-boundary-warning:')) {
58
64
  score -= 20;
59
65
  }
60
66
  return clampScore(score);
@@ -83,7 +89,7 @@ function compareReasons(left, right) {
83
89
  }
84
90
  return left.code.localeCompare(right.code);
85
91
  }
86
- function collectReasons(dimensions, signals, boundaryMessages) {
92
+ function collectReasons(dimensions, signals, boundaryMessages, markerQualityGate) {
87
93
  const reasons = [];
88
94
  if (signals.queryCheckpointCount > 0) {
89
95
  reasons.push(createReason('query-checkpoints', 'queryQuality', 'negative', Math.min(40, signals.queryCheckpointCount * 3), `${signals.queryCheckpointCount} unresolved query checkpoint(s) remain, so query quality is still draft-grade.`));
@@ -117,6 +123,15 @@ function collectReasons(dimensions, signals, boundaryMessages) {
117
123
  reasons.push(createReason(`boundary-issue-${index + 1}`, 'boundaryIsolation', 'negative', 10 - index, message));
118
124
  }
119
125
  }
126
+ if (markerQualityGate.failing) {
127
+ reasons.push(createReason('marker-quality-gate-fail', 'assertionSpecificity', 'negative', 45, `QUAL-02 failed: ${markerQualityGate.message}`));
128
+ }
129
+ else if (markerQualityGate.reason === 'markers-converted') {
130
+ reasons.push(createReason('marker-quality-gate-pass', 'assertionSpecificity', 'positive', 8, `QUAL-02 passed: ${markerQualityGate.message}`));
131
+ }
132
+ else {
133
+ reasons.push(createReason('marker-quality-gate-pass-no-markers', 'assertionSpecificity', 'positive', 4, `QUAL-02 passed: ${markerQualityGate.message}`));
134
+ }
120
135
  return reasons.sort(compareReasons);
121
136
  }
122
137
  function deriveBlockers(reasons, limit = 2) {
@@ -145,7 +160,58 @@ export function calculateAggregateScore(dimensions) {
145
160
  }
146
161
  return { total, grade: 'F' };
147
162
  }
148
- export function scoreGeneratedTest(code, queryResults = []) {
163
+ function resolveMarkerCoverage(markerCoverage) {
164
+ return {
165
+ detected: normalizeCount(markerCoverage?.detected),
166
+ emitted: normalizeCount(markerCoverage?.emitted),
167
+ unresolved: normalizeCount(markerCoverage?.unresolved),
168
+ };
169
+ }
170
+ function deriveMarkerQualityGate(markerCoverage) {
171
+ if (markerCoverage.detected === 0) {
172
+ return {
173
+ status: 'pass',
174
+ reason: 'no-markers-detected',
175
+ failing: false,
176
+ message: 'No semantic markers were detected in this run.',
177
+ };
178
+ }
179
+ if (markerCoverage.emitted === 0) {
180
+ return {
181
+ status: 'fail',
182
+ reason: 'zero-marker-conversion',
183
+ failing: true,
184
+ message: 'Semantic markers were detected, but no marker-derived assertions were emitted.',
185
+ };
186
+ }
187
+ return {
188
+ status: 'pass',
189
+ reason: 'markers-converted',
190
+ failing: false,
191
+ message: 'Marker-derived assertions were emitted for this run.',
192
+ };
193
+ }
194
+ function resolveScoreGeneratedTestOptions(input) {
195
+ if (Array.isArray(input)) {
196
+ return {
197
+ queryResults: input,
198
+ markerCoverage: resolveMarkerCoverage(),
199
+ };
200
+ }
201
+ if (input && typeof input === 'object') {
202
+ return {
203
+ queryResults: input.queryResults ?? [],
204
+ markerCoverage: resolveMarkerCoverage(input.markerCoverage),
205
+ };
206
+ }
207
+ return {
208
+ queryResults: [],
209
+ markerCoverage: resolveMarkerCoverage(),
210
+ };
211
+ }
212
+ export function scoreGeneratedTest(code, input = []) {
213
+ const { queryResults, markerCoverage } = resolveScoreGeneratedTestOptions(input);
214
+ const markerQualityGate = deriveMarkerQualityGate(markerCoverage);
149
215
  const boundaryIssues = analyzeBoundaryIsolation(code);
150
216
  const boundaryIsolation = calculateBoundaryIsolationScore(code);
151
217
  const signals = collectSignals(code, queryResults, boundaryIssues.length);
@@ -156,7 +222,7 @@ export function scoreGeneratedTest(code, queryResults = []) {
156
222
  testStructure: calculateStructureScore(code),
157
223
  boundaryIsolation,
158
224
  };
159
- const reasons = collectReasons(dimensions, signals, boundaryIssues.map((issue) => issue.message));
225
+ const reasons = collectReasons(dimensions, signals, boundaryIssues.map((issue) => issue.message), markerQualityGate);
160
226
  const blockers = deriveBlockers(reasons);
161
227
  const aggregate = calculateAggregateScore(dimensions);
162
228
  return {
@@ -165,7 +231,9 @@ export function scoreGeneratedTest(code, queryResults = []) {
165
231
  signals,
166
232
  reasons,
167
233
  blockers,
168
- requiresReview: aggregate.total < 80,
234
+ requiresReview: aggregate.total < 80 || markerQualityGate.failing,
235
+ markerCoverage,
236
+ markerQualityGate,
169
237
  };
170
238
  }
171
239
  //# sourceMappingURL=scorer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../src/core/scorer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../src/core/scorer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"suite-planner.d.ts","sourceRoot":"","sources":["../../src/core/suite-planner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;AAE1D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,kBAAkB,CAAA;IACxB,UAAU,EAAE,kBAAkB,CAAA;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,EAAE,uBAAuB,CAAA;IACpC,cAAc,EAAE,wBAAwB,CAAA;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AA2HD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,SAAS,EAAE,mBAAmB,CAAA;IAC9B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;CAClC,GAAG,wBAAwB,CAgD3B;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;IACjC,aAAa,EAAE,MAAM,CAAA;CACtB,GAAG,WAAW,CAsEd"}
1
+ {"version":3,"file":"suite-planner.d.ts","sourceRoot":"","sources":["../../src/core/suite-planner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,EACP,YAAY,EAEZ,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EAMpB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;AACnE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;AAE1D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,kBAAkB,CAAA;IACxB,UAAU,EAAE,kBAAkB,CAAA;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,EAAE,uBAAuB,CAAA;IACpC,cAAc,EAAE,wBAAwB,CAAA;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AA6UD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,SAAS,EAAE,mBAAmB,CAAA;IAC9B,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;CAClC,GAAG,wBAAwB,CAgD3B;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,SAAS,EAAE,mBAAmB,CAAA;IAC9B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;IACjC,aAAa,EAAE,MAAM,CAAA;CACtB,GAAG,WAAW,CAmGd"}
@@ -1,3 +1,42 @@
1
+ import { resolveSemanticMarkerAssertion } from './resolver.js';
2
+ function getStepKey(step, index) {
3
+ return step.id ?? `${index}:${step.action}:${step.target ?? ''}:${step.originalType}`;
4
+ }
5
+ function sharesAnyStep(left, right) {
6
+ const leftKeys = new Set(left.map((step, index) => getStepKey(step, index)));
7
+ return right.some((step, index) => leftKeys.has(getStepKey(step, index)));
8
+ }
9
+ function enrichSemanticMarkerContext(step, stepsById) {
10
+ const anchorStepId = step.semanticMarkerLink?.anchorStepId ??
11
+ step.unresolvedSemanticMarker?.anchor?.anchorStepId ??
12
+ step.semanticMarkerCandidate?.anchor?.anchorStepId;
13
+ if (!anchorStepId) {
14
+ return step;
15
+ }
16
+ const anchorStep = stepsById.get(anchorStepId);
17
+ if (!anchorStep) {
18
+ return step;
19
+ }
20
+ return {
21
+ ...step,
22
+ metadata: {
23
+ ...step.metadata,
24
+ semanticMarkerAnchorStep: {
25
+ id: anchorStep.id,
26
+ action: anchorStep.action,
27
+ target: anchorStep.target,
28
+ originalType: anchorStep.originalType,
29
+ source: anchorStep.source,
30
+ },
31
+ },
32
+ };
33
+ }
34
+ function enrichGroupSteps(groups, stepsById) {
35
+ return groups.map((group) => ({
36
+ ...group,
37
+ steps: group.steps.map((step) => enrichSemanticMarkerContext(step, stepsById)),
38
+ }));
39
+ }
1
40
  function buildFallbackGroups(analyzedRecording, fallbackTitle) {
2
41
  if (analyzedRecording.intentGroups.length > 0) {
3
42
  return analyzedRecording.intentGroups;
@@ -9,6 +48,116 @@ function buildFallbackGroups(analyzedRecording, fallbackTitle) {
9
48
  },
10
49
  ];
11
50
  }
51
+ function getSemanticMarkerCandidate(step) {
52
+ const metadataCandidate = step.metadata?.semanticMarkerCandidate;
53
+ if (metadataCandidate &&
54
+ typeof metadataCandidate === 'object' &&
55
+ 'stepId' in metadataCandidate &&
56
+ typeof metadataCandidate.stepId === 'string') {
57
+ return metadataCandidate;
58
+ }
59
+ return step.semanticMarkerCandidate;
60
+ }
61
+ function getSemanticMarkerLink(step) {
62
+ const metadataLink = step.metadata?.semanticMarkerLink;
63
+ if (metadataLink &&
64
+ typeof metadataLink === 'object' &&
65
+ 'markerStepId' in metadataLink &&
66
+ typeof metadataLink.markerStepId === 'string') {
67
+ return metadataLink;
68
+ }
69
+ return step.semanticMarkerLink;
70
+ }
71
+ function getUnresolvedSemanticMarker(step) {
72
+ const metadataMarker = step.metadata?.unresolvedSemanticMarker;
73
+ if (metadataMarker &&
74
+ typeof metadataMarker === 'object' &&
75
+ 'stepId' in metadataMarker &&
76
+ typeof metadataMarker.stepId === 'string') {
77
+ return metadataMarker;
78
+ }
79
+ return step.unresolvedSemanticMarker;
80
+ }
81
+ function isManagedSemanticMarkerStep(step) {
82
+ return Boolean(getSemanticMarkerCandidate(step) ||
83
+ getSemanticMarkerLink(step) ||
84
+ getUnresolvedSemanticMarker(step));
85
+ }
86
+ function filterManagedSemanticMarkerSteps(steps) {
87
+ return steps.filter((step) => !isManagedSemanticMarkerStep(step));
88
+ }
89
+ function getHelperPlacement(params) {
90
+ const { anchorStepId, helperRefs, helperStepsByName } = params;
91
+ for (const helperRef of helperRefs) {
92
+ if (helperStepsByName.get(helperRef)?.has(anchorStepId)) {
93
+ return {
94
+ kind: 'after-helper',
95
+ helperName: helperRef,
96
+ stepId: anchorStepId,
97
+ };
98
+ }
99
+ }
100
+ return null;
101
+ }
102
+ function collectScenarioMarkerState(params) {
103
+ const { group, helperRefs, helperStepsByName } = params;
104
+ const strongestMarkerAssertionsByAnchor = new Map();
105
+ const unresolvedMarkerAssertions = [];
106
+ for (const [sourceOrder, step] of group.steps.entries()) {
107
+ if (!isManagedSemanticMarkerStep(step)) {
108
+ continue;
109
+ }
110
+ const resolution = resolveSemanticMarkerAssertion(step);
111
+ if (resolution.status === 'unresolved') {
112
+ unresolvedMarkerAssertions.push(resolution);
113
+ continue;
114
+ }
115
+ const placement = getHelperPlacement({
116
+ anchorStepId: resolution.anchorStepId,
117
+ helperRefs,
118
+ helperStepsByName,
119
+ }) ?? {
120
+ kind: 'after-step',
121
+ stepId: resolution.anchorStepId,
122
+ };
123
+ const markerAssertion = {
124
+ markerStepId: resolution.markerStepId,
125
+ anchorStepId: resolution.anchorStepId,
126
+ placement,
127
+ assertion: resolution.assertion,
128
+ };
129
+ const proofRank = getSemanticMarkerProofRank(resolution.assertion.proofKind);
130
+ const existing = strongestMarkerAssertionsByAnchor.get(resolution.anchorStepId);
131
+ if (!existing ||
132
+ proofRank < existing.proofRank ||
133
+ (proofRank === existing.proofRank && sourceOrder < existing.sourceOrder)) {
134
+ strongestMarkerAssertionsByAnchor.set(resolution.anchorStepId, {
135
+ markerAssertion,
136
+ proofRank,
137
+ sourceOrder,
138
+ });
139
+ }
140
+ }
141
+ return {
142
+ markerAssertions: [...strongestMarkerAssertionsByAnchor.values()]
143
+ .sort((left, right) => left.sourceOrder - right.sourceOrder)
144
+ .map((entry) => entry.markerAssertion),
145
+ unresolvedMarkerAssertions,
146
+ };
147
+ }
148
+ function getSemanticMarkerProofRank(proofKind) {
149
+ switch (proofKind) {
150
+ case 'role-name':
151
+ return 0;
152
+ case 'visible-text':
153
+ case 'visible-value':
154
+ return 1;
155
+ case 'label-text':
156
+ return 2;
157
+ case 'placeholder-text':
158
+ return 3;
159
+ }
160
+ }
12
161
  function sanitizeIdentifierPart(value) {
13
162
  return value
14
163
  .replace(/[^a-zA-Z0-9]+/g, ' ')
@@ -105,7 +254,7 @@ export function assessRenderBoundary(params) {
105
254
  kind: 'module',
106
255
  confidence: 'medium',
107
256
  resolvedTarget: null,
108
- reason: 'This flow spans multiple user-visible steps and repo evidence shows data/mutation setup around it, so Taro should prefer a container/module boundary rather than a leaf component test.',
257
+ reason: 'This flow spans multiple user-visible steps and repo evidence shows data/mutation setup around it, so Tayo should prefer a container/module boundary rather than a leaf component test.',
109
258
  signals,
110
259
  };
111
260
  }
@@ -114,7 +263,7 @@ export function assessRenderBoundary(params) {
114
263
  kind: 'unknown',
115
264
  confidence: 'low',
116
265
  resolvedTarget: null,
117
- reason: 'This flow behaves like a stateful wizard, but Taro cannot resolve the owning render target from repo context yet.',
266
+ reason: 'This flow behaves like a stateful wizard, but Tayo cannot resolve the owning render target from repo context yet.',
118
267
  signals,
119
268
  };
120
269
  }
@@ -131,44 +280,64 @@ export function planJsSuite(params) {
131
280
  const renderBoundary = assessRenderBoundary({ recording, mockAnalysis });
132
281
  const stateSafety = assessStateSafety({ recording, analyzedRecording, mockAnalysis });
133
282
  const warnings = [];
283
+ const stepsById = new Map(analyzedRecording.steps
284
+ .filter((step) => Boolean(step.id))
285
+ .map((step) => [step.id, step]));
134
286
  if (renderBoundary.kind === 'module') {
135
287
  warnings.push('Prefer a repo-local module/container render boundary for this flow instead of targeting a leaf form component directly.');
136
288
  }
137
289
  if (renderBoundary.kind !== 'component' && !renderBoundary.resolvedTarget) {
138
- warnings.push('Taro could not resolve the exact render target from repo context; generated output should be treated as a boundary draft.');
290
+ warnings.push('Tayo could not resolve the exact render target from repo context; generated output should be treated as a boundary draft.');
139
291
  }
140
292
  const repeatedTarget = findRepeatedMockTarget(mockAnalysis);
141
293
  if (repeatedTarget) {
142
294
  warnings.push(`Reuse shared mocks for repeated targets such as "${repeatedTarget}" instead of re-mocking internal query hooks inline.`);
143
295
  }
144
- const baseGroups = renderBoundary.kind === 'module'
296
+ const baseGroups = enrichGroupSteps(renderBoundary.kind === 'module'
145
297
  ? [
146
298
  {
147
299
  name: fallbackTitle || 'complete recorded flow',
148
300
  steps: analyzedRecording.steps,
149
301
  },
150
302
  ]
151
- : buildFallbackGroups(analyzedRecording, fallbackTitle);
152
- const helpers = analyzedRecording.intentGroups.map((group, index) => ({
303
+ : buildFallbackGroups(analyzedRecording, fallbackTitle), stepsById);
304
+ const helperGroups = enrichGroupSteps(analyzedRecording.intentGroups, stepsById);
305
+ const helpers = helperGroups.map((group, index) => ({
153
306
  name: toHelperName(group.name, index),
154
307
  sourceGroup: group.name,
155
308
  purpose: `Navigate the UI through "${group.name}" without hiding assertions.`,
156
- steps: group.steps,
309
+ steps: filterManagedSemanticMarkerSteps(group.steps),
157
310
  assertionPolicy: 'sync-only',
158
311
  }));
159
- const scenarios = baseGroups.map((group, index) => ({
160
- name: group.name,
161
- goal: inferScenarioGoal(group.name),
162
- steps: group.steps,
163
- helperRefs: stateSafety.status === 'safe-multi-it'
312
+ const helperStepsByName = new Map(helpers.map((helper) => [
313
+ helper.name,
314
+ new Set(helper.steps
315
+ .filter((step) => Boolean(step.id))
316
+ .map((step) => step.id)),
317
+ ]));
318
+ const scenarios = baseGroups.map((group, index) => {
319
+ const helperRefs = stateSafety.status === 'safe-multi-it'
164
320
  ? helpers
165
- .filter((helper) => helper.steps.some((step) => group.steps.includes(step)))
321
+ .filter((helper) => sharesAnyStep(group.steps, helper.steps))
166
322
  .map((helper) => helper.name)
167
- : [],
168
- requiresFreshRender: true,
169
- }));
323
+ : [];
324
+ const markerState = collectScenarioMarkerState({
325
+ group,
326
+ helperRefs,
327
+ helperStepsByName,
328
+ });
329
+ return {
330
+ name: group.name,
331
+ goal: inferScenarioGoal(group.name),
332
+ steps: filterManagedSemanticMarkerSteps(group.steps),
333
+ helperRefs,
334
+ requiresFreshRender: true,
335
+ markerAssertions: markerState.markerAssertions,
336
+ unresolvedMarkerAssertions: markerState.unresolvedMarkerAssertions,
337
+ };
338
+ });
170
339
  if (stateSafety.status !== 'safe-multi-it' && baseGroups.length > 1) {
171
- warnings.push('Keep this flow in a single end-to-end scenario until Taro can prove that downstream state can be recreated safely per test.');
340
+ warnings.push('Keep this flow in a single end-to-end scenario until Tayo can prove that downstream state can be recreated safely per test.');
172
341
  }
173
342
  return {
174
343
  itGroups: baseGroups,
@@ -1 +1 @@
1
- {"version":3,"file":"suite-planner.js","sourceRoot":"","sources":["../../src/core/suite-planner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"suite-planner.js","sourceRoot":"","sources":["../../src/core/suite-planner.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Taro CLI entry point
3
+ * Tayo CLI entry point
4
4
  * Installer-first package surface with generator access preserved under `generate`.
5
5
  */
6
6
  export {};
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Taro CLI entry point
3
+ * Tayo CLI entry point
4
4
  * Installer-first package surface with generator access preserved under `generate`.
5
5
  */
6
6
  import { Command } from 'commander';
@@ -10,11 +10,11 @@ import { applyInstallOptions, createInstallCommand, runInstallCommand, } from '.
10
10
  const program = new Command();
11
11
  applyInstallOptions(program);
12
12
  program
13
- .name('taro')
14
- .description(`${pc.bold('@tayo-dev/rtl')} — Install Taro into Claude Code, OpenCode, Gemini CLI, or Codex`)
13
+ .name('tayo')
14
+ .description(`${pc.bold('@tayo-dev/rtl')} — Install Tayo into Claude Code, OpenCode, Gemini CLI, or Codex`)
15
15
  .version('1.3.0-alpha.0', '-v, --version', 'Output the current version')
16
16
  .helpOption('-h, --help', 'Display help for command')
17
- .addHelpText('after', `\nExisting capability:\n ${pc.bold('taro generate <file>')} Generate RTL tests from Recorder exports`)
17
+ .addHelpText('after', `\nExisting capability:\n ${pc.bold('tayo generate <file>')} Generate RTL tests from Recorder exports`)
18
18
  .action(async () => {
19
19
  await runInstallCommand(program.optsWithGlobals());
20
20
  });
@@ -18,7 +18,7 @@ function buildRuntimeOperations(target) {
18
18
  export function buildInstallPlan(selection, context = {}) {
19
19
  return {
20
20
  packageName: '@tayo-dev/rtl',
21
- commandName: 'taro',
21
+ commandName: 'tayo',
22
22
  stage: 'ready-to-write',
23
23
  source: selection.source,
24
24
  mode: selection.mode,
@@ -93,7 +93,7 @@ export interface InstallAssetConflict {
93
93
  }
94
94
  export interface InstallPlan {
95
95
  packageName: '@tayo-dev/rtl';
96
- commandName: 'taro';
96
+ commandName: 'tayo';
97
97
  stage: 'prewrite-preview' | 'ready-to-write';
98
98
  source: InstallSelectionSource;
99
99
  mode: 'interactive' | 'non-interactive';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Convention Learning Module
3
3
  *
4
- * Analyzes existing test patterns to derive Taro's conventions.
5
- * Implements CNV-01: Taro derives conventions from observation.
4
+ * Analyzes existing test patterns to derive Tayo's conventions.
5
+ * Implements CNV-01: Tayo derives conventions from observation.
6
6
  * Implements CNV-02: Conventions persist across runs via SQLite storage.
7
7
  * Implements CNV-03: Faster subsequent runs via caching.
8
8
  */
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Convention Learning Module
3
3
  *
4
- * Analyzes existing test patterns to derive Taro's conventions.
5
- * Implements CNV-01: Taro derives conventions from observation.
4
+ * Analyzes existing test patterns to derive Tayo's conventions.
5
+ * Implements CNV-01: Tayo derives conventions from observation.
6
6
  * Implements CNV-02: Conventions persist across runs via SQLite storage.
7
7
  * Implements CNV-03: Faster subsequent runs via caching.
8
8
  */
@@ -149,7 +149,7 @@ function mergeConventions(a, b) {
149
149
  */
150
150
  export function getConventions(projectRoot) {
151
151
  try {
152
- const taroDir = path.join(projectRoot, '.taro');
152
+ const taroDir = path.join(projectRoot, '.tayo');
153
153
  const dbPath = path.join(taroDir, 'conventions.db');
154
154
  // Check if database exists
155
155
  if (!fs.existsSync(dbPath)) {
@@ -61,7 +61,7 @@ export declare class ConventionStore {
61
61
  }
62
62
  /**
63
63
  * Create a ConventionStore instance
64
- * @param projectRoot - Root directory of the project (will create .taro/ subdirectory)
64
+ * @param projectRoot - Root directory of the project (will create .tayo/ subdirectory)
65
65
  * @returns Initialized ConventionStore
66
66
  */
67
67
  export declare function createStore(projectRoot: string): ConventionStore;
@@ -188,11 +188,11 @@ export class ConventionStore {
188
188
  }
189
189
  /**
190
190
  * Create a ConventionStore instance
191
- * @param projectRoot - Root directory of the project (will create .taro/ subdirectory)
191
+ * @param projectRoot - Root directory of the project (will create .tayo/ subdirectory)
192
192
  * @returns Initialized ConventionStore
193
193
  */
194
194
  export function createStore(projectRoot) {
195
- const taroDir = path.join(projectRoot, '.taro');
195
+ const taroDir = path.join(projectRoot, '.tayo');
196
196
  const dbPath = path.join(taroDir, 'conventions.db');
197
197
  const store = new ConventionStore(dbPath);
198
198
  store.init();
@@ -23,6 +23,10 @@ export interface StepTemplateOptions {
23
23
  };
24
24
  }
25
25
  export declare function stepTemplate(opts: StepTemplateOptions): string;
26
+ export declare function markerAssertionTemplate(opts: {
27
+ queryExpression: string;
28
+ matcher?: string;
29
+ }): string;
26
30
  export declare function describeBlock(name: string, bodyLines: string[], hasUserEvents: boolean): string;
27
31
  export interface ItBlockTemplate {
28
32
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"test-template.d.ts","sourceRoot":"","sources":["../../src/templates/test-template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,WAAW,CACzB,aAAa,EAAE,OAAO,EACtB,WAAW,GAAE,KAAK,GAAG,KAAa,EAClC,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAiCR;AAcD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CACF;AAMD,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA0C9D;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EAAE,EACnB,aAAa,EAAE,OAAO,GACrB,MAAM,CAYR;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAO9D;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,GAAE;IACP,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAC3B,GACL,MAAM,CAmBR"}
1
+ {"version":3,"file":"test-template.d.ts","sourceRoot":"","sources":["../../src/templates/test-template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,wBAAgB,WAAW,CACzB,aAAa,EAAE,OAAO,EACtB,WAAW,GAAE,KAAK,GAAG,KAAa,EAClC,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAiCR;AAcD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,gBAAgB,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CACF;AAcD,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA0C9D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAET;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EAAE,EACnB,aAAa,EAAE,OAAO,GACrB,MAAM,CAYR;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAO9D;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,GAAE;IACP,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAA;CAC3B,GACL,MAAM,CAmBR"}
@@ -46,12 +46,18 @@ function indentLines(text, spaces) {
46
46
  function sanitizeCommentText(value) {
47
47
  return value.replace(/\s+/g, ' ').trim();
48
48
  }
49
+ function normalizeAssertionMatcher(matcher) {
50
+ if (matcher.startsWith('.')) {
51
+ return /\)\s*$/u.test(matcher) ? matcher : `${matcher}()`;
52
+ }
53
+ return /\)\s*$/u.test(matcher) ? `.${matcher}` : `.${matcher}()`;
54
+ }
49
55
  export function stepTemplate(opts) {
50
56
  const { action, query, value = '' } = opts;
51
57
  const escapedValue = escapeSingleQuote(value);
52
58
  if (opts.checkpoint) {
53
59
  return [
54
- `// taro-query-checkpoint: ${action} step requires manual RTL query recovery`,
60
+ `// tayo-query-checkpoint: ${action} step requires manual RTL query recovery`,
55
61
  `// selector: ${sanitizeCommentText(opts.checkpoint.selector)}`,
56
62
  `// reason: ${sanitizeCommentText(opts.checkpoint.reason)}`,
57
63
  '// TODO: replace this checkpoint with a trustworthy RTL query before keeping the generated test',
@@ -80,6 +86,9 @@ export function stepTemplate(opts) {
80
86
  return `// TODO: unsupported step — original selector: ${query}`;
81
87
  }
82
88
  }
89
+ export function markerAssertionTemplate(opts) {
90
+ return `expect(await ${opts.queryExpression})${normalizeAssertionMatcher(opts.matcher ?? 'toBeVisible')}`;
91
+ }
83
92
  export function describeBlock(name, bodyLines, hasUserEvents) {
84
93
  const body = bodyLines.join('\n');
85
94
  const indented = indentLines(body, 4);