@sun-asterisk/sungen 1.0.24 → 2.0.1

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 (378) hide show
  1. package/README.md +198 -74
  2. package/dist/cli/commands/add.d.ts.map +1 -1
  3. package/dist/cli/commands/add.js +5 -3
  4. package/dist/cli/commands/add.js.map +1 -1
  5. package/dist/cli/commands/generate.d.ts.map +1 -1
  6. package/dist/cli/commands/generate.js +110 -35
  7. package/dist/cli/commands/generate.js.map +1 -1
  8. package/dist/cli/index.d.ts +2 -2
  9. package/dist/cli/index.js +5 -16
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/frame-enter-action.hbs +1 -0
  12. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/frame-exit-action.hbs +1 -0
  13. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/keyboard-global-action.hbs +1 -0
  14. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/scroll-action.hbs +1 -0
  15. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +2 -0
  16. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-cell-by-filter.hbs +3 -0
  17. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-cell-by-index.hbs +3 -0
  18. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-column-exists.hbs +2 -0
  19. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-empty.hbs +2 -0
  20. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-count.hbs +2 -0
  21. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-exists.hbs +2 -0
  22. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-not-exists.hbs +2 -0
  23. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
  24. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator-base.hbs +11 -2
  25. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/locator.hbs +11 -2
  26. package/dist/generators/test-generator/code-generator.d.ts +0 -1
  27. package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
  28. package/dist/generators/test-generator/code-generator.js +10 -47
  29. package/dist/generators/test-generator/code-generator.js.map +1 -1
  30. package/dist/generators/test-generator/patterns/assertion-patterns.d.ts.map +1 -1
  31. package/dist/generators/test-generator/patterns/assertion-patterns.js +2 -0
  32. package/dist/generators/test-generator/patterns/assertion-patterns.js.map +1 -1
  33. package/dist/generators/test-generator/patterns/index.d.ts +4 -1
  34. package/dist/generators/test-generator/patterns/index.d.ts.map +1 -1
  35. package/dist/generators/test-generator/patterns/index.js +17 -5
  36. package/dist/generators/test-generator/patterns/index.js.map +1 -1
  37. package/dist/generators/test-generator/patterns/interaction-patterns.js +1 -1
  38. package/dist/generators/test-generator/patterns/interaction-patterns.js.map +1 -1
  39. package/dist/generators/test-generator/patterns/keyboard-patterns.d.ts +7 -0
  40. package/dist/generators/test-generator/patterns/keyboard-patterns.d.ts.map +1 -0
  41. package/dist/generators/test-generator/patterns/keyboard-patterns.js +47 -0
  42. package/dist/generators/test-generator/patterns/keyboard-patterns.js.map +1 -0
  43. package/dist/generators/test-generator/patterns/scope-patterns.d.ts +7 -0
  44. package/dist/generators/test-generator/patterns/scope-patterns.d.ts.map +1 -0
  45. package/dist/generators/test-generator/patterns/scope-patterns.js +36 -0
  46. package/dist/generators/test-generator/patterns/scope-patterns.js.map +1 -0
  47. package/dist/generators/test-generator/patterns/scroll-patterns.d.ts +7 -0
  48. package/dist/generators/test-generator/patterns/scroll-patterns.d.ts.map +1 -0
  49. package/dist/generators/test-generator/patterns/scroll-patterns.js +25 -0
  50. package/dist/generators/test-generator/patterns/scroll-patterns.js.map +1 -0
  51. package/dist/generators/test-generator/patterns/table-patterns.d.ts +7 -0
  52. package/dist/generators/test-generator/patterns/table-patterns.d.ts.map +1 -0
  53. package/dist/generators/test-generator/patterns/table-patterns.js +192 -0
  54. package/dist/generators/test-generator/patterns/table-patterns.js.map +1 -0
  55. package/dist/generators/test-generator/step-mapper.d.ts +5 -3
  56. package/dist/generators/test-generator/step-mapper.d.ts.map +1 -1
  57. package/dist/generators/test-generator/step-mapper.js +38 -27
  58. package/dist/generators/test-generator/step-mapper.js.map +1 -1
  59. package/dist/generators/test-generator/template-engine.d.ts.map +1 -1
  60. package/dist/generators/test-generator/template-engine.js +4 -1
  61. package/dist/generators/test-generator/template-engine.js.map +1 -1
  62. package/dist/generators/test-generator/types.d.ts +7 -24
  63. package/dist/generators/test-generator/types.d.ts.map +1 -1
  64. package/dist/generators/test-generator/types.js +2 -101
  65. package/dist/generators/test-generator/types.js.map +1 -1
  66. package/dist/generators/test-generator/utils/selector-resolver.d.ts +14 -0
  67. package/dist/generators/test-generator/utils/selector-resolver.d.ts.map +1 -1
  68. package/dist/generators/test-generator/utils/selector-resolver.js +37 -11
  69. package/dist/generators/test-generator/utils/selector-resolver.js.map +1 -1
  70. package/dist/orchestrator/project-initializer.d.ts +12 -0
  71. package/dist/orchestrator/project-initializer.d.ts.map +1 -1
  72. package/dist/orchestrator/project-initializer.js +72 -160
  73. package/dist/orchestrator/project-initializer.js.map +1 -1
  74. package/dist/orchestrator/screen-manager.d.ts +1 -32
  75. package/dist/orchestrator/screen-manager.d.ts.map +1 -1
  76. package/dist/orchestrator/screen-manager.js +55 -216
  77. package/dist/orchestrator/screen-manager.js.map +1 -1
  78. package/dist/orchestrator/templates/ai-rules.md +189 -0
  79. package/dist/orchestrator/templates/gitignore +16 -0
  80. package/dist/orchestrator/templates/playwright.config.d.ts +10 -0
  81. package/dist/orchestrator/templates/playwright.config.d.ts.map +1 -0
  82. package/dist/orchestrator/templates/playwright.config.js +77 -0
  83. package/dist/orchestrator/templates/playwright.config.js.map +1 -0
  84. package/dist/orchestrator/templates/playwright.config.ts +80 -0
  85. package/dist/orchestrator/templates/readme.md +197 -0
  86. package/dist/utils/selector-types.d.ts +1 -1
  87. package/dist/utils/selector-types.d.ts.map +1 -1
  88. package/dist/utils/selector-types.js +3 -0
  89. package/dist/utils/selector-types.js.map +1 -1
  90. package/docs/gherkin standards/gherkin-core-standard.md +377 -0
  91. package/docs/gherkin standards/gherkin-core-standard.vi.md +303 -0
  92. package/docs/gherkin-dictionary.md +1071 -0
  93. package/docs/makeauth.md +225 -0
  94. package/package.json +4 -3
  95. package/src/cli/commands/add.ts +5 -3
  96. package/src/cli/commands/generate.ts +90 -38
  97. package/src/cli/index.ts +5 -16
  98. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/frame-enter-action.hbs +1 -0
  99. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/frame-exit-action.hbs +1 -0
  100. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/keyboard-global-action.hbs +1 -0
  101. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/scroll-action.hbs +1 -0
  102. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/table-action-in-row.hbs +2 -0
  103. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-cell-by-filter.hbs +3 -0
  104. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-cell-by-index.hbs +3 -0
  105. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-column-exists.hbs +2 -0
  106. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-empty.hbs +2 -0
  107. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-count.hbs +2 -0
  108. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-exists.hbs +2 -0
  109. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/table-row-not-exists.hbs +2 -0
  110. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-value-assertion.hbs +1 -1
  111. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator-base.hbs +11 -2
  112. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/locator.hbs +11 -2
  113. package/src/generators/test-generator/code-generator.ts +11 -59
  114. package/src/generators/test-generator/patterns/assertion-patterns.ts +2 -0
  115. package/src/generators/test-generator/patterns/index.ts +12 -3
  116. package/src/generators/test-generator/patterns/interaction-patterns.ts +1 -1
  117. package/src/generators/test-generator/patterns/keyboard-patterns.ts +51 -0
  118. package/src/generators/test-generator/patterns/scope-patterns.ts +40 -0
  119. package/src/generators/test-generator/patterns/scroll-patterns.ts +27 -0
  120. package/src/generators/test-generator/patterns/table-patterns.ts +232 -0
  121. package/src/generators/test-generator/step-mapper.ts +42 -27
  122. package/src/generators/test-generator/template-engine.ts +3 -1
  123. package/src/generators/test-generator/types.ts +7 -112
  124. package/src/generators/test-generator/utils/selector-resolver.ts +70 -25
  125. package/src/orchestrator/project-initializer.ts +75 -160
  126. package/src/orchestrator/screen-manager.ts +61 -233
  127. package/src/orchestrator/templates/ai-rules.md +189 -0
  128. package/src/orchestrator/templates/gitignore +16 -0
  129. package/src/orchestrator/templates/playwright.config.ts +80 -0
  130. package/src/orchestrator/templates/readme.md +197 -0
  131. package/src/utils/selector-types.ts +3 -0
  132. package/dist/cli/commands/cache-clear.d.ts +0 -3
  133. package/dist/cli/commands/cache-clear.d.ts.map +0 -1
  134. package/dist/cli/commands/cache-clear.js +0 -24
  135. package/dist/cli/commands/cache-clear.js.map +0 -1
  136. package/dist/cli/commands/full.d.ts +0 -3
  137. package/dist/cli/commands/full.d.ts.map +0 -1
  138. package/dist/cli/commands/full.js +0 -37
  139. package/dist/cli/commands/full.js.map +0 -1
  140. package/dist/cli/commands/live-scan.d.ts +0 -3
  141. package/dist/cli/commands/live-scan.d.ts.map +0 -1
  142. package/dist/cli/commands/live-scan.js +0 -78
  143. package/dist/cli/commands/live-scan.js.map +0 -1
  144. package/dist/cli/commands/map.d.ts +0 -3
  145. package/dist/cli/commands/map.d.ts.map +0 -1
  146. package/dist/cli/commands/map.js +0 -93
  147. package/dist/cli/commands/map.js.map +0 -1
  148. package/dist/cli/commands/validate.d.ts +0 -3
  149. package/dist/cli/commands/validate.d.ts.map +0 -1
  150. package/dist/cli/commands/validate.js +0 -43
  151. package/dist/cli/commands/validate.js.map +0 -1
  152. package/dist/cli/utils.d.ts +0 -6
  153. package/dist/cli/utils.d.ts.map +0 -1
  154. package/dist/cli/utils.js +0 -101
  155. package/dist/cli/utils.js.map +0 -1
  156. package/dist/config/config-loader.d.ts +0 -51
  157. package/dist/config/config-loader.d.ts.map +0 -1
  158. package/dist/config/config-loader.js +0 -216
  159. package/dist/config/config-loader.js.map +0 -1
  160. package/dist/config/config-schema.d.ts +0 -121
  161. package/dist/config/config-schema.d.ts.map +0 -1
  162. package/dist/config/config-schema.js +0 -7
  163. package/dist/config/config-schema.js.map +0 -1
  164. package/dist/core/live-scanner/config-reader.d.ts +0 -10
  165. package/dist/core/live-scanner/config-reader.d.ts.map +0 -1
  166. package/dist/core/live-scanner/config-reader.js +0 -87
  167. package/dist/core/live-scanner/config-reader.js.map +0 -1
  168. package/dist/core/live-scanner/element-finder.d.ts +0 -20
  169. package/dist/core/live-scanner/element-finder.d.ts.map +0 -1
  170. package/dist/core/live-scanner/element-finder.js +0 -481
  171. package/dist/core/live-scanner/element-finder.js.map +0 -1
  172. package/dist/core/live-scanner/index.d.ts +0 -8
  173. package/dist/core/live-scanner/index.d.ts.map +0 -1
  174. package/dist/core/live-scanner/index.js +0 -33
  175. package/dist/core/live-scanner/index.js.map +0 -1
  176. package/dist/core/live-scanner/matrix-reader.d.ts +0 -17
  177. package/dist/core/live-scanner/matrix-reader.d.ts.map +0 -1
  178. package/dist/core/live-scanner/matrix-reader.js +0 -60
  179. package/dist/core/live-scanner/matrix-reader.js.map +0 -1
  180. package/dist/core/live-scanner/matrix-writer.d.ts +0 -7
  181. package/dist/core/live-scanner/matrix-writer.d.ts.map +0 -1
  182. package/dist/core/live-scanner/matrix-writer.js +0 -103
  183. package/dist/core/live-scanner/matrix-writer.js.map +0 -1
  184. package/dist/core/live-scanner/role-fallback.d.ts +0 -15
  185. package/dist/core/live-scanner/role-fallback.d.ts.map +0 -1
  186. package/dist/core/live-scanner/role-fallback.js +0 -46
  187. package/dist/core/live-scanner/role-fallback.js.map +0 -1
  188. package/dist/core/live-scanner/scanner.d.ts +0 -22
  189. package/dist/core/live-scanner/scanner.d.ts.map +0 -1
  190. package/dist/core/live-scanner/scanner.js +0 -303
  191. package/dist/core/live-scanner/scanner.js.map +0 -1
  192. package/dist/core/live-scanner/step-replayer.d.ts +0 -26
  193. package/dist/core/live-scanner/step-replayer.d.ts.map +0 -1
  194. package/dist/core/live-scanner/step-replayer.js +0 -473
  195. package/dist/core/live-scanner/step-replayer.js.map +0 -1
  196. package/dist/core/live-scanner/types.d.ts +0 -52
  197. package/dist/core/live-scanner/types.d.ts.map +0 -1
  198. package/dist/core/live-scanner/types.js +0 -14
  199. package/dist/core/live-scanner/types.js.map +0 -1
  200. package/dist/core/selector-base/annotation-handler.d.ts +0 -45
  201. package/dist/core/selector-base/annotation-handler.d.ts.map +0 -1
  202. package/dist/core/selector-base/annotation-handler.js +0 -102
  203. package/dist/core/selector-base/annotation-handler.js.map +0 -1
  204. package/dist/core/selector-base/base-generator.d.ts +0 -49
  205. package/dist/core/selector-base/base-generator.d.ts.map +0 -1
  206. package/dist/core/selector-base/base-generator.js +0 -214
  207. package/dist/core/selector-base/base-generator.js.map +0 -1
  208. package/dist/core/selector-base/gherkin-parser.d.ts +0 -24
  209. package/dist/core/selector-base/gherkin-parser.d.ts.map +0 -1
  210. package/dist/core/selector-base/gherkin-parser.js +0 -42
  211. package/dist/core/selector-base/gherkin-parser.js.map +0 -1
  212. package/dist/core/selector-mapper/priority-mapper.d.ts +0 -74
  213. package/dist/core/selector-mapper/priority-mapper.d.ts.map +0 -1
  214. package/dist/core/selector-mapper/priority-mapper.js +0 -477
  215. package/dist/core/selector-mapper/priority-mapper.js.map +0 -1
  216. package/dist/core/ui-scanner/heuristics/base-heuristic.d.ts +0 -91
  217. package/dist/core/ui-scanner/heuristics/base-heuristic.d.ts.map +0 -1
  218. package/dist/core/ui-scanner/heuristics/base-heuristic.js +0 -175
  219. package/dist/core/ui-scanner/heuristics/base-heuristic.js.map +0 -1
  220. package/dist/core/ui-scanner/react-scanner.d.ts +0 -32
  221. package/dist/core/ui-scanner/react-scanner.d.ts.map +0 -1
  222. package/dist/core/ui-scanner/react-scanner.js +0 -163
  223. package/dist/core/ui-scanner/react-scanner.js.map +0 -1
  224. package/dist/core/ui-scanner/scanner-interface.d.ts +0 -94
  225. package/dist/core/ui-scanner/scanner-interface.d.ts.map +0 -1
  226. package/dist/core/ui-scanner/scanner-interface.js +0 -33
  227. package/dist/core/ui-scanner/scanner-interface.js.map +0 -1
  228. package/dist/core/ui-scanner/strict-scanner.d.ts +0 -81
  229. package/dist/core/ui-scanner/strict-scanner.d.ts.map +0 -1
  230. package/dist/core/ui-scanner/strict-scanner.js +0 -511
  231. package/dist/core/ui-scanner/strict-scanner.js.map +0 -1
  232. package/dist/core/validator/data-validator.d.ts +0 -38
  233. package/dist/core/validator/data-validator.d.ts.map +0 -1
  234. package/dist/core/validator/data-validator.js +0 -212
  235. package/dist/core/validator/data-validator.js.map +0 -1
  236. package/dist/core/validator/feature-validator.d.ts +0 -27
  237. package/dist/core/validator/feature-validator.d.ts.map +0 -1
  238. package/dist/core/validator/feature-validator.js +0 -182
  239. package/dist/core/validator/feature-validator.js.map +0 -1
  240. package/dist/core/validator/index.d.ts +0 -46
  241. package/dist/core/validator/index.d.ts.map +0 -1
  242. package/dist/core/validator/index.js +0 -17
  243. package/dist/core/validator/index.js.map +0 -1
  244. package/dist/core/validator/screen-validator.d.ts +0 -35
  245. package/dist/core/validator/screen-validator.d.ts.map +0 -1
  246. package/dist/core/validator/screen-validator.js +0 -195
  247. package/dist/core/validator/screen-validator.js.map +0 -1
  248. package/dist/core/validator/selector-validator.d.ts +0 -36
  249. package/dist/core/validator/selector-validator.d.ts.map +0 -1
  250. package/dist/core/validator/selector-validator.js +0 -210
  251. package/dist/core/validator/selector-validator.js.map +0 -1
  252. package/dist/external/ai-provider.d.ts +0 -60
  253. package/dist/external/ai-provider.d.ts.map +0 -1
  254. package/dist/external/ai-provider.js +0 -30
  255. package/dist/external/ai-provider.js.map +0 -1
  256. package/dist/external/anthropic-provider.d.ts +0 -29
  257. package/dist/external/anthropic-provider.d.ts.map +0 -1
  258. package/dist/external/anthropic-provider.js +0 -85
  259. package/dist/external/anthropic-provider.js.map +0 -1
  260. package/dist/generators/cache/cache-manager.d.ts +0 -66
  261. package/dist/generators/cache/cache-manager.d.ts.map +0 -1
  262. package/dist/generators/cache/cache-manager.js +0 -286
  263. package/dist/generators/cache/cache-manager.js.map +0 -1
  264. package/dist/generators/dsl-writer/index.d.ts +0 -33
  265. package/dist/generators/dsl-writer/index.d.ts.map +0 -1
  266. package/dist/generators/dsl-writer/index.js +0 -226
  267. package/dist/generators/dsl-writer/index.js.map +0 -1
  268. package/dist/generators/scaffold-generator/index.d.ts +0 -162
  269. package/dist/generators/scaffold-generator/index.d.ts.map +0 -1
  270. package/dist/generators/scaffold-generator/index.js +0 -877
  271. package/dist/generators/scaffold-generator/index.js.map +0 -1
  272. package/dist/generators/selector-mapper/ai-mapper.d.ts +0 -56
  273. package/dist/generators/selector-mapper/ai-mapper.d.ts.map +0 -1
  274. package/dist/generators/selector-mapper/ai-mapper.js +0 -457
  275. package/dist/generators/selector-mapper/ai-mapper.js.map +0 -1
  276. package/dist/generators/selector-mapper/hybrid-mapper.d.ts +0 -67
  277. package/dist/generators/selector-mapper/hybrid-mapper.d.ts.map +0 -1
  278. package/dist/generators/selector-mapper/hybrid-mapper.js +0 -349
  279. package/dist/generators/selector-mapper/hybrid-mapper.js.map +0 -1
  280. package/dist/generators/selector-mapper/index.d.ts +0 -8
  281. package/dist/generators/selector-mapper/index.d.ts.map +0 -1
  282. package/dist/generators/selector-mapper/index.js +0 -12
  283. package/dist/generators/selector-mapper/index.js.map +0 -1
  284. package/dist/generators/selector-mapper/intelligent-mapper.d.ts +0 -125
  285. package/dist/generators/selector-mapper/intelligent-mapper.d.ts.map +0 -1
  286. package/dist/generators/selector-mapper/intelligent-mapper.js +0 -391
  287. package/dist/generators/selector-mapper/intelligent-mapper.js.map +0 -1
  288. package/dist/generators/test-generator/ai-step-mapper.d.ts +0 -27
  289. package/dist/generators/test-generator/ai-step-mapper.d.ts.map +0 -1
  290. package/dist/generators/test-generator/ai-step-mapper.js +0 -204
  291. package/dist/generators/test-generator/ai-step-mapper.js.map +0 -1
  292. package/dist/generators/test-generator/auth-setup-generator.d.ts +0 -18
  293. package/dist/generators/test-generator/auth-setup-generator.d.ts.map +0 -1
  294. package/dist/generators/test-generator/auth-setup-generator.js +0 -82
  295. package/dist/generators/test-generator/auth-setup-generator.js.map +0 -1
  296. package/dist/generators/test-generator/patterns/legacy-patterns.d.ts +0 -7
  297. package/dist/generators/test-generator/patterns/legacy-patterns.d.ts.map +0 -1
  298. package/dist/generators/test-generator/patterns/legacy-patterns.js +0 -98
  299. package/dist/generators/test-generator/patterns/legacy-patterns.js.map +0 -1
  300. package/dist/generators/test-generator/templates/auth-setup.ts.hbs +0 -36
  301. package/dist/generators/ui-model-builder/deep-scanner.d.ts +0 -121
  302. package/dist/generators/ui-model-builder/deep-scanner.d.ts.map +0 -1
  303. package/dist/generators/ui-model-builder/deep-scanner.js +0 -1113
  304. package/dist/generators/ui-model-builder/deep-scanner.js.map +0 -1
  305. package/dist/generators/ui-model-builder/enhanced-deep-scanner.d.ts +0 -110
  306. package/dist/generators/ui-model-builder/enhanced-deep-scanner.d.ts.map +0 -1
  307. package/dist/generators/ui-model-builder/enhanced-deep-scanner.js +0 -608
  308. package/dist/generators/ui-model-builder/enhanced-deep-scanner.js.map +0 -1
  309. package/dist/generators/ui-model-builder/react-scanner.d.ts +0 -107
  310. package/dist/generators/ui-model-builder/react-scanner.d.ts.map +0 -1
  311. package/dist/generators/ui-model-builder/react-scanner.js +0 -797
  312. package/dist/generators/ui-model-builder/react-scanner.js.map +0 -1
  313. package/dist/orchestrator/cache-manager.d.ts +0 -15
  314. package/dist/orchestrator/cache-manager.d.ts.map +0 -1
  315. package/dist/orchestrator/cache-manager.js +0 -62
  316. package/dist/orchestrator/cache-manager.js.map +0 -1
  317. package/dist/orchestrator/pipeline.d.ts +0 -56
  318. package/dist/orchestrator/pipeline.d.ts.map +0 -1
  319. package/dist/orchestrator/pipeline.js +0 -298
  320. package/dist/orchestrator/pipeline.js.map +0 -1
  321. package/dist/orchestrator/reporter.d.ts +0 -15
  322. package/dist/orchestrator/reporter.d.ts.map +0 -1
  323. package/dist/orchestrator/reporter.js +0 -30
  324. package/dist/orchestrator/reporter.js.map +0 -1
  325. package/src/cli/commands/cache-clear.ts +0 -22
  326. package/src/cli/commands/full.ts +0 -35
  327. package/src/cli/commands/live-scan.ts +0 -82
  328. package/src/cli/commands/map.ts +0 -97
  329. package/src/cli/commands/validate.ts +0 -43
  330. package/src/cli/utils.ts +0 -106
  331. package/src/config/ai-providers.yaml +0 -56
  332. package/src/config/config-loader.ts +0 -248
  333. package/src/config/config-schema.ts +0 -148
  334. package/src/config/default.config.yaml +0 -107
  335. package/src/config/framework.config.yaml +0 -52
  336. package/src/config/routes.yaml +0 -31
  337. package/src/core/live-scanner/config-reader.ts +0 -57
  338. package/src/core/live-scanner/element-finder.ts +0 -534
  339. package/src/core/live-scanner/index.ts +0 -7
  340. package/src/core/live-scanner/matrix-reader.ts +0 -65
  341. package/src/core/live-scanner/matrix-writer.ts +0 -77
  342. package/src/core/live-scanner/role-fallback.ts +0 -44
  343. package/src/core/live-scanner/scanner.ts +0 -321
  344. package/src/core/live-scanner/step-replayer.ts +0 -503
  345. package/src/core/live-scanner/types.ts +0 -58
  346. package/src/core/selector-base/annotation-handler.ts +0 -127
  347. package/src/core/selector-base/base-generator.ts +0 -234
  348. package/src/core/selector-base/gherkin-parser.ts +0 -57
  349. package/src/core/selector-mapper/priority-mapper.ts +0 -607
  350. package/src/core/ui-scanner/heuristics/base-heuristic.ts +0 -216
  351. package/src/core/ui-scanner/react-scanner.ts +0 -156
  352. package/src/core/ui-scanner/scanner-interface.ts +0 -133
  353. package/src/core/ui-scanner/strict-scanner.ts +0 -629
  354. package/src/core/validator/data-validator.ts +0 -202
  355. package/src/core/validator/feature-validator.ts +0 -176
  356. package/src/core/validator/index.ts +0 -57
  357. package/src/core/validator/screen-validator.ts +0 -209
  358. package/src/core/validator/selector-validator.ts +0 -209
  359. package/src/external/ai-provider.ts +0 -90
  360. package/src/external/anthropic-provider.ts +0 -114
  361. package/src/generators/README.md +0 -410
  362. package/src/generators/cache/cache-manager.ts +0 -322
  363. package/src/generators/dsl-writer/index.ts +0 -253
  364. package/src/generators/scaffold-generator/index.ts +0 -1029
  365. package/src/generators/selector-mapper/ai-mapper.ts +0 -528
  366. package/src/generators/selector-mapper/hybrid-mapper.ts +0 -427
  367. package/src/generators/selector-mapper/index.ts +0 -10
  368. package/src/generators/selector-mapper/intelligent-mapper.ts +0 -530
  369. package/src/generators/test-generator/ai-step-mapper.ts +0 -224
  370. package/src/generators/test-generator/auth-setup-generator.ts +0 -59
  371. package/src/generators/test-generator/patterns/legacy-patterns.ts +0 -104
  372. package/src/generators/test-generator/templates/auth-setup.ts.hbs +0 -36
  373. package/src/generators/ui-model-builder/deep-scanner.ts +0 -1244
  374. package/src/generators/ui-model-builder/enhanced-deep-scanner.ts +0 -731
  375. package/src/generators/ui-model-builder/react-scanner.ts +0 -959
  376. package/src/orchestrator/cache-manager.ts +0 -32
  377. package/src/orchestrator/pipeline.ts +0 -354
  378. package/src/orchestrator/reporter.ts +0 -36
@@ -1,209 +0,0 @@
1
- /**
2
- * Selector Validator
3
- * Validates selector YAML files and checks referenced selectors exist
4
- */
5
-
6
- import * as fs from 'fs';
7
- import * as path from 'path';
8
- import yaml from 'yaml';
9
- import { ValidationIssue } from './index';
10
- import { SelectorResolver } from '../../generators/test-generator/utils/selector-resolver';
11
- import { VALID_SELECTOR_TYPES, SelectorType } from '../../utils/selector-types';
12
-
13
- interface SelectorEntry {
14
- selector?: string;
15
- type?: SelectorType;
16
- value?: string;
17
- name?: string;
18
- nth?: number;
19
- }
20
-
21
- type SelectorFile = Record<string, SelectorEntry>;
22
-
23
- const VALID_TYPES = VALID_SELECTOR_TYPES;
24
-
25
- export class SelectorValidator {
26
- private screenName: string;
27
- private baseDir: string;
28
- private selectorCache = new Map<string, SelectorFile>();
29
-
30
- constructor(screenName: string, baseDir?: string) {
31
- this.screenName = screenName;
32
- this.baseDir = baseDir || process.cwd();
33
- }
34
-
35
- /**
36
- * Validate selector file for a feature
37
- */
38
- validateFile(featureName: string): { errors: ValidationIssue[]; warnings: ValidationIssue[] } {
39
- const errors: ValidationIssue[] = [];
40
- const warnings: ValidationIssue[] = [];
41
-
42
- const filePath = this.findSelectorPath(featureName);
43
-
44
- if (!filePath) {
45
- errors.push({
46
- type: 'error',
47
- code: 'MISSING_SELECTOR_FILE',
48
- message: `Selector file not found for feature "${featureName}"`,
49
- file: `qa/screens/${this.screenName}/selectors/${featureName}.yaml`,
50
- });
51
- return { errors, warnings };
52
- }
53
-
54
- // Load and parse YAML
55
- let content: string;
56
- let selectors: SelectorFile;
57
-
58
- try {
59
- content = fs.readFileSync(filePath, 'utf-8');
60
- } catch (error) {
61
- errors.push({
62
- type: 'error',
63
- code: 'INVALID_YAML_SYNTAX',
64
- message: `Cannot read file: ${(error as Error).message}`,
65
- file: filePath,
66
- });
67
- return { errors, warnings };
68
- }
69
-
70
- try {
71
- selectors = yaml.parse(content) as SelectorFile;
72
- } catch (error) {
73
- errors.push({
74
- type: 'error',
75
- code: 'INVALID_YAML_SYNTAX',
76
- message: `YAML parse error: ${(error as Error).message}`,
77
- file: filePath,
78
- });
79
- return { errors, warnings };
80
- }
81
-
82
- if (!selectors || typeof selectors !== 'object') {
83
- errors.push({
84
- type: 'error',
85
- code: 'INVALID_YAML_SYNTAX',
86
- message: 'Selector file must be a valid YAML object',
87
- file: filePath,
88
- });
89
- return { errors, warnings };
90
- }
91
-
92
- // Validate each selector entry
93
- for (const [key, entry] of Object.entries(selectors)) {
94
- if (!entry || typeof entry !== 'object') {
95
- warnings.push({
96
- type: 'warning',
97
- code: 'INVALID_SELECTOR_TYPE',
98
- message: `Selector "${key}" should be an object with type/value properties`,
99
- file: filePath,
100
- element: key,
101
- });
102
- continue;
103
- }
104
-
105
- // Check type is valid
106
- if (entry.type && !VALID_TYPES.includes(entry.type)) {
107
- warnings.push({
108
- type: 'warning',
109
- code: 'INVALID_SELECTOR_TYPE',
110
- message: `Selector "${key}" has invalid type "${entry.type}". Valid types: ${VALID_TYPES.join(', ')}`,
111
- file: filePath,
112
- element: key,
113
- });
114
- }
115
- }
116
-
117
- // Cache for later ref validation
118
- this.selectorCache.set(featureName, selectors);
119
-
120
- return { errors, warnings };
121
- }
122
-
123
- /**
124
- * Check if selector references exist
125
- */
126
- validateRefs(
127
- featureName: string,
128
- refs: Array<{ ref: string; line: number }>,
129
- featureFile: string
130
- ): ValidationIssue[] {
131
- const errors: ValidationIssue[] = [];
132
-
133
- // Load selectors if not cached
134
- if (!this.selectorCache.has(featureName)) {
135
- const filePath = this.findSelectorPath(featureName);
136
- if (!filePath) {
137
- // Already reported in validateFile
138
- return errors;
139
- }
140
- try {
141
- const content = fs.readFileSync(filePath, 'utf-8');
142
- const selectors = yaml.parse(content) as SelectorFile;
143
- this.selectorCache.set(featureName, selectors);
144
- } catch {
145
- // Error already reported in validateFile
146
- return errors;
147
- }
148
- }
149
-
150
- const selectors = this.selectorCache.get(featureName);
151
- if (!selectors) {
152
- return errors;
153
- }
154
-
155
- // Check each ref
156
- for (const { ref, line } of refs) {
157
- const key = this.generateKey(ref);
158
-
159
- // Check: exact key, or any suffixed key (key--button, key--text, etc.)
160
- const found = (key in selectors) ||
161
- Object.keys(selectors).some(k => k.startsWith(`${key}--`));
162
-
163
- if (!found) {
164
- errors.push({
165
- type: 'error',
166
- code: 'MISSING_SELECTOR',
167
- message: `Selector [${ref}] (key: ${key}) not found in selectors/${featureName}.yaml`,
168
- file: featureFile,
169
- line,
170
- element: ref,
171
- });
172
- }
173
- }
174
-
175
- return errors;
176
- }
177
-
178
- /**
179
- * Generate selector key from natural language label
180
- * Delegates to SelectorResolver.generateKey() for consistent behavior
181
- * (includes Vietnamese tone removal and Japanese Romaji conversion)
182
- */
183
- private generateKey(label: string): string {
184
- return SelectorResolver.generateKey(label);
185
- }
186
-
187
- /**
188
- * Find selector file path (checks override first)
189
- */
190
- private findSelectorPath(featureName: string): string | null {
191
- const possiblePaths = [
192
- // Override (highest priority)
193
- path.join(this.baseDir, 'qa', 'screens', this.screenName, 'selectors', `${featureName}-override.yaml`),
194
- // Normal
195
- path.join(this.baseDir, 'qa', 'screens', this.screenName, 'selectors', `${featureName}.yaml`),
196
- // Legacy paths
197
- path.join(this.baseDir, 'qa', 'selectors', 'screens', `${featureName}-override.yaml`),
198
- path.join(this.baseDir, 'qa', 'selectors', 'screens', `${featureName}.yaml`),
199
- ];
200
-
201
- for (const p of possiblePaths) {
202
- if (fs.existsSync(p)) {
203
- return p;
204
- }
205
- }
206
-
207
- return null;
208
- }
209
- }
@@ -1,90 +0,0 @@
1
- /**
2
- * AI Provider Interface
3
- * Defines contract for AI service providers (Anthropic, OpenAI, Copilot)
4
- */
5
-
6
- import { RuntimeConfig } from '../config/config-schema';
7
- import { UIModel } from '../core/ui-scanner/scanner-interface';
8
- import { SelectorBase } from '../core/selector-base/base-generator';
9
-
10
- /**
11
- * Main AI Provider Interface
12
- */
13
- export interface AIProvider {
14
- /**
15
- * Provider name
16
- */
17
- readonly name: string;
18
-
19
- /**
20
- * Provider type
21
- */
22
- readonly type: 'anthropic' | 'openai' | 'copilot';
23
-
24
- /**
25
- * Map element IDs to CSS selectors using AI
26
- *
27
- * @param uiModel - UI model with discovered elements
28
- * @param selectorBase - Selector template with empty selectors
29
- * @param config - Runtime configuration
30
- * @returns Filled selector base with AI-generated selectors
31
- */
32
- mapSelectors(
33
- uiModel: UIModel,
34
- selectorBase: SelectorBase,
35
- config: RuntimeConfig
36
- ): Promise<SelectorBase>;
37
-
38
- /**
39
- * Generate Playwright code for a Gherkin step using AI
40
- *
41
- * @param step - Parsed Gherkin step
42
- * @param context - Context (selectors, test data, examples)
43
- * @param config - Runtime configuration
44
- * @returns Generated Playwright code
45
- */
46
- generateStepCode(
47
- step: any,
48
- context: StepContext,
49
- config: RuntimeConfig
50
- ): Promise<string>;
51
-
52
- /**
53
- * Validate provider can be used (API key exists, etc.)
54
- */
55
- validate(): boolean;
56
- }
57
-
58
- /**
59
- * Context for step code generation
60
- */
61
- export interface StepContext {
62
- selectors: Record<string, any>;
63
- testData: Record<string, any>;
64
- examples: string[];
65
- }
66
-
67
- /**
68
- * AI Provider Factory
69
- */
70
- export class AIProviderFactory {
71
- /**
72
- * Create AI provider instance
73
- */
74
- static create(type: 'anthropic' | 'openai' | 'copilot', config: RuntimeConfig): AIProvider {
75
- switch (type) {
76
- case 'anthropic':
77
- const AnthropicProvider = require('./anthropic-provider').AnthropicProvider;
78
- return new AnthropicProvider(config);
79
-
80
- case 'openai':
81
- throw new Error('OpenAI provider not yet implemented');
82
-
83
- case 'copilot':
84
- throw new Error('GitHub Copilot provider not yet implemented');
85
-
86
- default:
87
- throw new Error(`Unsupported AI provider: ${type}`);
88
- }
89
- }
90
- }
@@ -1,114 +0,0 @@
1
- /**
2
- * Anthropic AI Provider
3
- * Uses Claude models for selector mapping and code generation
4
- */
5
-
6
- import Anthropic from '@anthropic-ai/sdk';
7
- import { AIProvider, StepContext } from './ai-provider';
8
- import { RuntimeConfig } from '../config/config-schema';
9
- import { UIModel } from '../core/ui-scanner/scanner-interface';
10
- import { SelectorBase } from '../core/selector-base/base-generator';
11
-
12
- // Import legacy AI mappers
13
- import { AIMapper } from '../generators/selector-mapper/ai-mapper';
14
- import { AIStepMapper } from '../generators/test-generator/ai-step-mapper';
15
-
16
- export class AnthropicProvider implements AIProvider {
17
- readonly name = 'Anthropic Claude';
18
- readonly type = 'anthropic' as const;
19
-
20
- private config: RuntimeConfig;
21
- private selectorMapper: AIMapper;
22
- private stepMapper: AIStepMapper;
23
-
24
- constructor(config: RuntimeConfig) {
25
- this.config = config;
26
-
27
- const apiKey = process.env[config.apis.anthropic.apiKeyEnv];
28
- if (!apiKey) {
29
- throw new Error(`${config.apis.anthropic.apiKeyEnv} environment variable is required`);
30
- }
31
-
32
- // Initialize legacy AI mapper
33
- this.selectorMapper = new AIMapper({
34
- provider: 'anthropic',
35
- model: config.selectorMapping.model,
36
- apiKey,
37
- verbose: config.verbose
38
- });
39
-
40
- this.stepMapper = new AIStepMapper(config.verbose);
41
- }
42
-
43
- /**
44
- * Map selectors using Claude Sonnet via legacy AIMapper
45
- */
46
- async mapSelectors(
47
- uiModel: UIModel,
48
- selectorBase: SelectorBase,
49
- config: RuntimeConfig
50
- ): Promise<SelectorBase> {
51
- if (config.verbose) {
52
- console.log(` [Anthropic] Mapping selectors for screen: ${selectorBase.screen}`);
53
- }
54
-
55
- try {
56
- // Prepare element IDs from selector base
57
- const elementIds = Object.keys(selectorBase.elements).map(id => `[${selectorBase.screen}.${id}]`);
58
-
59
- // Use legacy AIMapper
60
- const result = await this.selectorMapper.mapSelectors({
61
- uiModel: uiModel as any, // Cast to legacy format
62
- elementIds
63
- });
64
-
65
- // Merge results back to selector base
66
- for (const [fullId, selectorEntry] of Object.entries(result.selectors)) {
67
- // Extract element name from full ID: [screen.element] -> element
68
- const elementName = fullId.replace(/\[.*?\.(.*?)\]/, '$1');
69
-
70
- if (selectorBase.elements[elementName]) {
71
- // Get selector value and normalize format
72
- let selector = selectorEntry.selector || '';
73
-
74
- // Normalize: ensure all selectors are unquoted (YAML handles quoting)
75
- // Remove surrounding quotes if present
76
- selector = selector.replace(/^["'](.*)["']$/, '$1');
77
-
78
- // Assign normalized selector
79
- selectorBase.elements[elementName].selector = selector;
80
- }
81
- }
82
-
83
- if (config.verbose) {
84
- console.log(` [Anthropic] Mapped ${Object.keys(result.selectors).length} selectors`);
85
- }
86
-
87
- return selectorBase;
88
- } catch (error) {
89
- console.error(`[Anthropic] Selector mapping failed: ${error}`);
90
- throw error;
91
- }
92
- }
93
-
94
- /**
95
- * Generate step code using Claude Haiku
96
- */
97
- async generateStepCode(
98
- step: any,
99
- context: StepContext,
100
- config: RuntimeConfig
101
- ): Promise<string> {
102
- // Use legacy AI step mapper
103
- const mapped = await this.stepMapper.mapStep(step);
104
- return mapped.code;
105
- }
106
-
107
- /**
108
- * Validate Anthropic provider
109
- */
110
- validate(): boolean {
111
- const apiKey = process.env[this.config.apis.anthropic.apiKeyEnv];
112
- return !!apiKey;
113
- }
114
- }