@sun-asterisk/sungen 3.2.32 → 3.2.34

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 (381) hide show
  1. package/dist/cli/commands/audit.d.ts +5 -0
  2. package/dist/cli/commands/audit.d.ts.map +1 -1
  3. package/dist/cli/commands/audit.js +26 -4
  4. package/dist/cli/commands/audit.js.map +1 -1
  5. package/dist/cli/commands/capability.d.ts.map +1 -1
  6. package/dist/cli/commands/capability.js +35 -17
  7. package/dist/cli/commands/capability.js.map +1 -1
  8. package/dist/cli/commands/changed.d.ts.map +1 -1
  9. package/dist/cli/commands/changed.js +2 -3
  10. package/dist/cli/commands/changed.js.map +1 -1
  11. package/dist/cli/commands/dashboard.d.ts.map +1 -1
  12. package/dist/cli/commands/dashboard.js +2 -28
  13. package/dist/cli/commands/dashboard.js.map +1 -1
  14. package/dist/cli/commands/delivery.d.ts.map +1 -1
  15. package/dist/cli/commands/delivery.js +79 -53
  16. package/dist/cli/commands/delivery.js.map +1 -1
  17. package/dist/cli/commands/generate.d.ts.map +1 -1
  18. package/dist/cli/commands/generate.js +14 -7
  19. package/dist/cli/commands/generate.js.map +1 -1
  20. package/dist/cli/commands/results-merge.d.ts +9 -0
  21. package/dist/cli/commands/results-merge.d.ts.map +1 -1
  22. package/dist/cli/commands/results-merge.js +9 -12
  23. package/dist/cli/commands/results-merge.js.map +1 -1
  24. package/dist/cli/commands/results-sanitize.d.ts.map +1 -1
  25. package/dist/cli/commands/results-sanitize.js +2 -13
  26. package/dist/cli/commands/results-sanitize.js.map +1 -1
  27. package/dist/cli/commands/select.d.ts +12 -0
  28. package/dist/cli/commands/select.d.ts.map +1 -0
  29. package/dist/cli/commands/select.js +122 -0
  30. package/dist/cli/commands/select.js.map +1 -0
  31. package/dist/cli/commands/update.d.ts.map +1 -1
  32. package/dist/cli/commands/update.js +3 -0
  33. package/dist/cli/commands/update.js.map +1 -1
  34. package/dist/cli/index.js +7 -2
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/dashboard/snapshot-builder.d.ts.map +1 -1
  37. package/dist/dashboard/snapshot-builder.js +6 -10
  38. package/dist/dashboard/snapshot-builder.js.map +1 -1
  39. package/dist/dashboard/templates/index.html +1 -1
  40. package/dist/dashboard/types.d.ts +1 -0
  41. package/dist/dashboard/types.d.ts.map +1 -1
  42. package/dist/exporters/csv-exporter.d.ts.map +1 -1
  43. package/dist/exporters/csv-exporter.js +11 -10
  44. package/dist/exporters/csv-exporter.js.map +1 -1
  45. package/dist/exporters/feature-parser.d.ts +21 -0
  46. package/dist/exporters/feature-parser.d.ts.map +1 -1
  47. package/dist/exporters/feature-parser.js +32 -1
  48. package/dist/exporters/feature-parser.js.map +1 -1
  49. package/dist/exporters/json-exporter.d.ts.map +1 -1
  50. package/dist/exporters/json-exporter.js +7 -0
  51. package/dist/exporters/json-exporter.js.map +1 -1
  52. package/dist/exporters/locale-variants.d.ts +7 -1
  53. package/dist/exporters/locale-variants.d.ts.map +1 -1
  54. package/dist/exporters/locale-variants.js +23 -16
  55. package/dist/exporters/locale-variants.js.map +1 -1
  56. package/dist/exporters/manual-hybrid-oracle.d.ts +54 -0
  57. package/dist/exporters/manual-hybrid-oracle.d.ts.map +1 -0
  58. package/dist/exporters/manual-hybrid-oracle.js +114 -0
  59. package/dist/exporters/manual-hybrid-oracle.js.map +1 -0
  60. package/dist/exporters/matrix/build.d.ts.map +1 -1
  61. package/dist/exporters/matrix/build.js +19 -9
  62. package/dist/exporters/matrix/build.js.map +1 -1
  63. package/dist/exporters/matrix/carry-manual-results.d.ts +70 -0
  64. package/dist/exporters/matrix/carry-manual-results.d.ts.map +1 -0
  65. package/dist/exporters/matrix/carry-manual-results.js +232 -0
  66. package/dist/exporters/matrix/carry-manual-results.js.map +1 -0
  67. package/dist/exporters/matrix/export.d.ts +5 -0
  68. package/dist/exporters/matrix/export.d.ts.map +1 -1
  69. package/dist/exporters/matrix/export.js +8 -1
  70. package/dist/exporters/matrix/export.js.map +1 -1
  71. package/dist/exporters/matrix/gates.js +6 -0
  72. package/dist/exporters/matrix/gates.js.map +1 -1
  73. package/dist/exporters/matrix/render-testcase-sheet.d.ts.map +1 -1
  74. package/dist/exporters/matrix/render-testcase-sheet.js +10 -4
  75. package/dist/exporters/matrix/render-testcase-sheet.js.map +1 -1
  76. package/dist/exporters/matrix/types.d.ts +8 -1
  77. package/dist/exporters/matrix/types.d.ts.map +1 -1
  78. package/dist/exporters/matrix/types.js.map +1 -1
  79. package/dist/exporters/matrix/wording.d.ts +8 -1
  80. package/dist/exporters/matrix/wording.d.ts.map +1 -1
  81. package/dist/exporters/matrix/wording.js +37 -2
  82. package/dist/exporters/matrix/wording.js.map +1 -1
  83. package/dist/exporters/run-environment.d.ts +32 -0
  84. package/dist/exporters/run-environment.d.ts.map +1 -0
  85. package/dist/exporters/run-environment.js +125 -0
  86. package/dist/exporters/run-environment.js.map +1 -0
  87. package/dist/exporters/scenario-merger.d.ts +18 -0
  88. package/dist/exporters/scenario-merger.d.ts.map +1 -1
  89. package/dist/exporters/scenario-merger.js +47 -3
  90. package/dist/exporters/scenario-merger.js.map +1 -1
  91. package/dist/exporters/test-data-resolver.d.ts +0 -4
  92. package/dist/exporters/test-data-resolver.d.ts.map +1 -1
  93. package/dist/exporters/test-data-resolver.js +0 -7
  94. package/dist/exporters/test-data-resolver.js.map +1 -1
  95. package/dist/exporters/xlsx-exporter.d.ts +2 -0
  96. package/dist/exporters/xlsx-exporter.d.ts.map +1 -1
  97. package/dist/exporters/xlsx-exporter.js +7 -2
  98. package/dist/exporters/xlsx-exporter.js.map +1 -1
  99. package/dist/generators/gherkin-parser/index.d.ts +11 -4
  100. package/dist/generators/gherkin-parser/index.d.ts.map +1 -1
  101. package/dist/generators/gherkin-parser/index.js +49 -19
  102. package/dist/generators/gherkin-parser/index.js.map +1 -1
  103. package/dist/generators/test-generator/adapters/adapter-interface.d.ts +4 -0
  104. package/dist/generators/test-generator/adapters/adapter-interface.d.ts.map +1 -1
  105. package/dist/generators/test-generator/adapters/appium/templates/steps/actions/reinstall-app-action.hbs +2 -2
  106. package/dist/generators/test-generator/adapters/appium/templates/steps/assertions/label-value-assertion.hbs +8 -2
  107. package/dist/generators/test-generator/adapters/appium/templates/steps/assertions/visible-with-role-variable-assertion.hbs +7 -3
  108. package/dist/generators/test-generator/adapters/appium/templates/test-file.hbs +68 -4
  109. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/click-select-action.hbs +1 -1
  110. package/dist/generators/test-generator/adapters/playwright/templates/steps/actions/select-action.hbs +1 -1
  111. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/label-value-assertion.hbs +7 -1
  112. package/dist/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-role-variable-assertion.hbs +8 -4
  113. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/pick-option.hbs +13 -0
  114. package/dist/generators/test-generator/adapters/playwright/templates/steps/partials/url-assertion.hbs +5 -1
  115. package/dist/generators/test-generator/adapters/playwright/templates/test-file.hbs +16 -0
  116. package/dist/generators/test-generator/code-generator.d.ts +2 -1
  117. package/dist/generators/test-generator/code-generator.d.ts.map +1 -1
  118. package/dist/generators/test-generator/code-generator.js +90 -5
  119. package/dist/generators/test-generator/code-generator.js.map +1 -1
  120. package/dist/generators/test-generator/diagnostics.d.ts +36 -5
  121. package/dist/generators/test-generator/diagnostics.d.ts.map +1 -1
  122. package/dist/generators/test-generator/diagnostics.js +35 -4
  123. package/dist/generators/test-generator/diagnostics.js.map +1 -1
  124. package/dist/generators/test-generator/patterns/index.d.ts +12 -2
  125. package/dist/generators/test-generator/patterns/index.d.ts.map +1 -1
  126. package/dist/generators/test-generator/patterns/index.js +15 -9
  127. package/dist/generators/test-generator/patterns/index.js.map +1 -1
  128. package/dist/generators/test-generator/patterns/types.d.ts +15 -0
  129. package/dist/generators/test-generator/patterns/types.d.ts.map +1 -1
  130. package/dist/generators/test-generator/patterns/with-parent-scope.d.ts +5 -0
  131. package/dist/generators/test-generator/patterns/with-parent-scope.d.ts.map +1 -1
  132. package/dist/generators/test-generator/patterns/with-parent-scope.js +6 -0
  133. package/dist/generators/test-generator/patterns/with-parent-scope.js.map +1 -1
  134. package/dist/generators/test-generator/step-mapper.d.ts +46 -0
  135. package/dist/generators/test-generator/step-mapper.d.ts.map +1 -1
  136. package/dist/generators/test-generator/step-mapper.js +84 -9
  137. package/dist/generators/test-generator/step-mapper.js.map +1 -1
  138. package/dist/generators/test-generator/utils/data-resolver.d.ts +25 -0
  139. package/dist/generators/test-generator/utils/data-resolver.d.ts.map +1 -1
  140. package/dist/generators/test-generator/utils/data-resolver.js +39 -8
  141. package/dist/generators/test-generator/utils/data-resolver.js.map +1 -1
  142. package/dist/generators/test-generator/utils/selector-entry-fields.d.ts.map +1 -1
  143. package/dist/generators/test-generator/utils/selector-entry-fields.js +1 -0
  144. package/dist/generators/test-generator/utils/selector-entry-fields.js.map +1 -1
  145. package/dist/generators/test-generator/utils/selector-resolver.d.ts +37 -4
  146. package/dist/generators/test-generator/utils/selector-resolver.d.ts.map +1 -1
  147. package/dist/generators/test-generator/utils/selector-resolver.js +212 -79
  148. package/dist/generators/test-generator/utils/selector-resolver.js.map +1 -1
  149. package/dist/harness/audit.d.ts +3 -0
  150. package/dist/harness/audit.d.ts.map +1 -1
  151. package/dist/harness/audit.js +29 -12
  152. package/dist/harness/audit.js.map +1 -1
  153. package/dist/harness/capability.d.ts +7 -1
  154. package/dist/harness/capability.d.ts.map +1 -1
  155. package/dist/harness/capability.js +15 -12
  156. package/dist/harness/capability.js.map +1 -1
  157. package/dist/harness/catalog/universal-viewpoints.yaml +5 -5
  158. package/dist/harness/config-file.d.ts +17 -0
  159. package/dist/harness/config-file.d.ts.map +1 -0
  160. package/dist/harness/config-file.js +100 -0
  161. package/dist/harness/config-file.js.map +1 -0
  162. package/dist/harness/data-driven-lint.d.ts.map +1 -1
  163. package/dist/harness/data-driven-lint.js +69 -27
  164. package/dist/harness/data-driven-lint.js.map +1 -1
  165. package/dist/harness/depth-lint.d.ts.map +1 -1
  166. package/dist/harness/depth-lint.js +2 -1
  167. package/dist/harness/depth-lint.js.map +1 -1
  168. package/dist/harness/flow-check.d.ts.map +1 -1
  169. package/dist/harness/flow-check.js +6 -2
  170. package/dist/harness/flow-check.js.map +1 -1
  171. package/dist/harness/keyword-match.d.ts +59 -0
  172. package/dist/harness/keyword-match.d.ts.map +1 -0
  173. package/dist/harness/keyword-match.js +86 -0
  174. package/dist/harness/keyword-match.js.map +1 -0
  175. package/dist/harness/next-step.d.ts.map +1 -1
  176. package/dist/harness/next-step.js +1 -0
  177. package/dist/harness/next-step.js.map +1 -1
  178. package/dist/harness/parse.d.ts +24 -0
  179. package/dist/harness/parse.d.ts.map +1 -1
  180. package/dist/harness/parse.js +117 -13
  181. package/dist/harness/parse.js.map +1 -1
  182. package/dist/harness/perf.d.ts +7 -1
  183. package/dist/harness/perf.d.ts.map +1 -1
  184. package/dist/harness/perf.js +13 -10
  185. package/dist/harness/perf.js.map +1 -1
  186. package/dist/harness/quality-gates.d.ts +9 -2
  187. package/dist/harness/quality-gates.d.ts.map +1 -1
  188. package/dist/harness/quality-gates.js +22 -8
  189. package/dist/harness/quality-gates.js.map +1 -1
  190. package/dist/harness/query-catalog.js +0 -0
  191. package/dist/harness/query-catalog.js.map +1 -1
  192. package/dist/harness/read-text.d.ts +21 -0
  193. package/dist/harness/read-text.d.ts.map +1 -1
  194. package/dist/harness/read-text.js +32 -1
  195. package/dist/harness/read-text.js.map +1 -1
  196. package/dist/harness/secret-scan.d.ts +27 -1
  197. package/dist/harness/secret-scan.d.ts.map +1 -1
  198. package/dist/harness/secret-scan.js +57 -4
  199. package/dist/harness/secret-scan.js.map +1 -1
  200. package/dist/harness/select-by-ids.d.ts +31 -0
  201. package/dist/harness/select-by-ids.d.ts.map +1 -0
  202. package/dist/harness/select-by-ids.js +106 -0
  203. package/dist/harness/select-by-ids.js.map +1 -0
  204. package/dist/harness/sensors.d.ts +20 -1
  205. package/dist/harness/sensors.d.ts.map +1 -1
  206. package/dist/harness/sensors.js +102 -27
  207. package/dist/harness/sensors.js.map +1 -1
  208. package/dist/harness/spec-branches.d.ts +0 -18
  209. package/dist/harness/spec-branches.d.ts.map +1 -1
  210. package/dist/harness/spec-branches.js +24 -3
  211. package/dist/harness/spec-branches.js.map +1 -1
  212. package/dist/harness/spec-coverage.d.ts.map +1 -1
  213. package/dist/harness/spec-coverage.js +14 -4
  214. package/dist/harness/spec-coverage.js.map +1 -1
  215. package/dist/harness/ui-inventory.d.ts +40 -0
  216. package/dist/harness/ui-inventory.d.ts.map +1 -0
  217. package/dist/harness/ui-inventory.js +191 -0
  218. package/dist/harness/ui-inventory.js.map +1 -0
  219. package/dist/harness/viewpoint-ledger.d.ts.map +1 -1
  220. package/dist/harness/viewpoint-ledger.js +66 -10
  221. package/dist/harness/viewpoint-ledger.js.map +1 -1
  222. package/dist/harness/write-atomic.d.ts +2 -0
  223. package/dist/harness/write-atomic.d.ts.map +1 -0
  224. package/dist/harness/write-atomic.js +62 -0
  225. package/dist/harness/write-atomic.js.map +1 -0
  226. package/dist/orchestrator/ai-skills/writer.d.ts.map +1 -1
  227. package/dist/orchestrator/ai-skills/writer.js +15 -7
  228. package/dist/orchestrator/ai-skills/writer.js.map +1 -1
  229. package/dist/orchestrator/assets-drift.d.ts.map +1 -1
  230. package/dist/orchestrator/assets-drift.js +11 -6
  231. package/dist/orchestrator/assets-drift.js.map +1 -1
  232. package/dist/orchestrator/project-deps-sync.d.ts.map +1 -1
  233. package/dist/orchestrator/project-deps-sync.js +22 -1
  234. package/dist/orchestrator/project-deps-sync.js.map +1 -1
  235. package/dist/orchestrator/project-initializer.d.ts +8 -0
  236. package/dist/orchestrator/project-initializer.d.ts.map +1 -1
  237. package/dist/orchestrator/project-initializer.js +49 -7
  238. package/dist/orchestrator/project-initializer.js.map +1 -1
  239. package/dist/orchestrator/screen-manager.d.ts.map +1 -1
  240. package/dist/orchestrator/screen-manager.js +3 -11
  241. package/dist/orchestrator/screen-manager.js.map +1 -1
  242. package/dist/orchestrator/security-overrides-catalog.d.ts +39 -0
  243. package/dist/orchestrator/security-overrides-catalog.d.ts.map +1 -0
  244. package/dist/orchestrator/security-overrides-catalog.js +63 -0
  245. package/dist/orchestrator/security-overrides-catalog.js.map +1 -0
  246. package/dist/orchestrator/security-overrides.d.ts +51 -0
  247. package/dist/orchestrator/security-overrides.d.ts.map +1 -0
  248. package/dist/orchestrator/security-overrides.js +165 -0
  249. package/dist/orchestrator/security-overrides.js.map +1 -0
  250. package/dist/orchestrator/templates/ai-src/agents/discovery.md +11 -3
  251. package/dist/orchestrator/templates/ai-src/agents/reviewer.md +8 -0
  252. package/dist/orchestrator/templates/ai-src/commands/create-test.md +2 -2
  253. package/dist/orchestrator/templates/ai-src/commands/review.md +2 -2
  254. package/dist/orchestrator/templates/ai-src/commands/run-test.md +70 -13
  255. package/dist/orchestrator/templates/ai-src/skills/sungen-capture/mode-local.md +2 -2
  256. package/dist/orchestrator/templates/ai-src/skills/sungen-delivery/SKILL.md +14 -0
  257. package/dist/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +23 -1
  258. package/dist/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +26 -8
  259. package/dist/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +58 -14
  260. package/dist/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +13 -1
  261. package/dist/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +41 -1
  262. package/dist/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +7 -0
  263. package/dist/orchestrator/templates/playwright.config.ts +4 -2
  264. package/dist/orchestrator/templates/specs-locale-fixture.ts +21 -9
  265. package/dist/orchestrator/templates/specs-pw-shape-reporter.ts +0 -0
  266. package/dist/orchestrator/templates/specs-url-assert.d.ts +17 -1
  267. package/dist/orchestrator/templates/specs-url-assert.d.ts.map +1 -1
  268. package/dist/orchestrator/templates/specs-url-assert.js +38 -4
  269. package/dist/orchestrator/templates/specs-url-assert.js.map +1 -1
  270. package/dist/orchestrator/templates/specs-url-assert.ts +47 -4
  271. package/dist/orchestrator/templates/wdio.conf.ts +24 -1
  272. package/dist/orchestrator/trace-mode-install.d.ts +14 -0
  273. package/dist/orchestrator/trace-mode-install.d.ts.map +1 -0
  274. package/dist/orchestrator/trace-mode-install.js +132 -0
  275. package/dist/orchestrator/trace-mode-install.js.map +1 -0
  276. package/dist/orchestrator/viewpoint-pattern-catalog.d.ts +20 -0
  277. package/dist/orchestrator/viewpoint-pattern-catalog.d.ts.map +1 -0
  278. package/dist/orchestrator/viewpoint-pattern-catalog.js +45 -0
  279. package/dist/orchestrator/viewpoint-pattern-catalog.js.map +1 -0
  280. package/package.json +3 -3
  281. package/src/cli/commands/audit.ts +24 -5
  282. package/src/cli/commands/capability.ts +51 -18
  283. package/src/cli/commands/changed.ts +2 -4
  284. package/src/cli/commands/dashboard.ts +1 -26
  285. package/src/cli/commands/delivery.ts +75 -48
  286. package/src/cli/commands/generate.ts +15 -7
  287. package/src/cli/commands/results-merge.ts +9 -9
  288. package/src/cli/commands/results-sanitize.ts +2 -9
  289. package/src/cli/commands/select.ts +88 -0
  290. package/src/cli/commands/update.ts +3 -0
  291. package/src/cli/index.ts +7 -2
  292. package/src/dashboard/snapshot-builder.ts +6 -8
  293. package/src/dashboard/templates/index.html +1 -1
  294. package/src/dashboard/types.ts +1 -0
  295. package/src/exporters/csv-exporter.ts +7 -10
  296. package/src/exporters/feature-parser.ts +32 -2
  297. package/src/exporters/json-exporter.ts +6 -1
  298. package/src/exporters/locale-variants.ts +23 -17
  299. package/src/exporters/manual-hybrid-oracle.ts +112 -0
  300. package/src/exporters/matrix/build.ts +20 -10
  301. package/src/exporters/matrix/carry-manual-results.ts +229 -0
  302. package/src/exporters/matrix/export.ts +14 -4
  303. package/src/exporters/matrix/gates.ts +6 -0
  304. package/src/exporters/matrix/render-testcase-sheet.ts +10 -4
  305. package/src/exporters/matrix/types.ts +8 -1
  306. package/src/exporters/matrix/wording.ts +36 -2
  307. package/src/exporters/run-environment.ts +89 -0
  308. package/src/exporters/scenario-merger.ts +49 -4
  309. package/src/exporters/test-data-resolver.ts +0 -6
  310. package/src/exporters/xlsx-exporter.ts +7 -2
  311. package/src/generators/gherkin-parser/index.ts +50 -18
  312. package/src/generators/test-generator/adapters/adapter-interface.ts +6 -2
  313. package/src/generators/test-generator/adapters/appium/templates/steps/actions/reinstall-app-action.hbs +2 -2
  314. package/src/generators/test-generator/adapters/appium/templates/steps/assertions/label-value-assertion.hbs +8 -2
  315. package/src/generators/test-generator/adapters/appium/templates/steps/assertions/visible-with-role-variable-assertion.hbs +7 -3
  316. package/src/generators/test-generator/adapters/appium/templates/test-file.hbs +68 -4
  317. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/click-select-action.hbs +1 -1
  318. package/src/generators/test-generator/adapters/playwright/templates/steps/actions/select-action.hbs +1 -1
  319. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/label-value-assertion.hbs +7 -1
  320. package/src/generators/test-generator/adapters/playwright/templates/steps/assertions/visible-with-role-variable-assertion.hbs +8 -4
  321. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/pick-option.hbs +13 -0
  322. package/src/generators/test-generator/adapters/playwright/templates/steps/partials/url-assertion.hbs +5 -1
  323. package/src/generators/test-generator/adapters/playwright/templates/test-file.hbs +16 -0
  324. package/src/generators/test-generator/code-generator.ts +77 -5
  325. package/src/generators/test-generator/diagnostics.ts +36 -5
  326. package/src/generators/test-generator/patterns/index.ts +15 -8
  327. package/src/generators/test-generator/patterns/types.ts +15 -0
  328. package/src/generators/test-generator/patterns/with-parent-scope.ts +6 -0
  329. package/src/generators/test-generator/step-mapper.ts +90 -8
  330. package/src/generators/test-generator/utils/data-resolver.ts +41 -12
  331. package/src/generators/test-generator/utils/selector-entry-fields.ts +1 -0
  332. package/src/generators/test-generator/utils/selector-resolver.ts +238 -82
  333. package/src/harness/audit.ts +37 -16
  334. package/src/harness/capability.ts +23 -12
  335. package/src/harness/catalog/universal-viewpoints.yaml +5 -5
  336. package/src/harness/config-file.ts +66 -0
  337. package/src/harness/data-driven-lint.ts +82 -24
  338. package/src/harness/depth-lint.ts +2 -1
  339. package/src/harness/flow-check.ts +6 -2
  340. package/src/harness/keyword-match.ts +85 -0
  341. package/src/harness/next-step.ts +1 -0
  342. package/src/harness/parse.ts +123 -16
  343. package/src/harness/perf.ts +15 -7
  344. package/src/harness/quality-gates.ts +22 -8
  345. package/src/harness/query-catalog.ts +0 -0
  346. package/src/harness/read-text.ts +32 -1
  347. package/src/harness/secret-scan.ts +60 -4
  348. package/src/harness/select-by-ids.ts +83 -0
  349. package/src/harness/sensors.ts +109 -28
  350. package/src/harness/spec-branches.ts +6 -3
  351. package/src/harness/spec-coverage.ts +14 -4
  352. package/src/harness/ui-inventory.ts +164 -0
  353. package/src/harness/viewpoint-ledger.ts +59 -12
  354. package/src/harness/write-atomic.ts +22 -0
  355. package/src/orchestrator/ai-skills/writer.ts +18 -3
  356. package/src/orchestrator/assets-drift.ts +10 -5
  357. package/src/orchestrator/project-deps-sync.ts +23 -1
  358. package/src/orchestrator/project-initializer.ts +54 -6
  359. package/src/orchestrator/screen-manager.ts +3 -11
  360. package/src/orchestrator/security-overrides-catalog.ts +69 -0
  361. package/src/orchestrator/security-overrides.ts +149 -0
  362. package/src/orchestrator/templates/ai-src/agents/discovery.md +11 -3
  363. package/src/orchestrator/templates/ai-src/agents/reviewer.md +8 -0
  364. package/src/orchestrator/templates/ai-src/commands/create-test.md +2 -2
  365. package/src/orchestrator/templates/ai-src/commands/review.md +2 -2
  366. package/src/orchestrator/templates/ai-src/commands/run-test.md +70 -13
  367. package/src/orchestrator/templates/ai-src/skills/sungen-capture/mode-local.md +2 -2
  368. package/src/orchestrator/templates/ai-src/skills/sungen-delivery/SKILL.md +14 -0
  369. package/src/orchestrator/templates/ai-src/skills/sungen-error-mapping/SKILL.md +23 -1
  370. package/src/orchestrator/templates/ai-src/skills/sungen-gherkin-syntax/SKILL.md +26 -8
  371. package/src/orchestrator/templates/ai-src/skills/sungen-selector-fix/SKILL.md +58 -14
  372. package/src/orchestrator/templates/ai-src/skills/sungen-selector-keys/SKILL.md +13 -1
  373. package/src/orchestrator/templates/ai-src/skills/sungen-tc-generation/SKILL.md +41 -1
  374. package/src/orchestrator/templates/ai-src/skills/sungen-tc-review/SKILL.md +7 -0
  375. package/src/orchestrator/templates/playwright.config.ts +4 -2
  376. package/src/orchestrator/templates/specs-locale-fixture.ts +21 -9
  377. package/src/orchestrator/templates/specs-pw-shape-reporter.ts +0 -0
  378. package/src/orchestrator/templates/specs-url-assert.ts +47 -4
  379. package/src/orchestrator/templates/wdio.conf.ts +24 -1
  380. package/src/orchestrator/trace-mode-install.ts +94 -0
  381. package/src/orchestrator/viewpoint-pattern-catalog.ts +58 -0
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ /**
3
+ * The @manual "presence placeholder" hybrid (#810) — one predicate for every stage.
4
+ *
5
+ * Shape: a @manual scenario keeps complete Gherkin, but its only assertions are bare presence
6
+ * checks (`Then User see [Job List] table`), while the REAL oracle ("the newer row appears above
7
+ * the older one") sits in an unlabelled `# Tester verifies:` comment. Both gates only asked "is
8
+ * there a Then?", and the exporter only captures numbered comment lines — so the deliverable said
9
+ * "See [Job List] table" and a tester ticking it Passed recorded a check nobody made.
10
+ *
11
+ * The compile gate (SG-W008), the audit gate (MANUAL-STEPS-INSUFFICIENT) and both exporters read
12
+ * the comment block through THIS module, so the three can never disagree about what the oracle is.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.extractUnlabeledOracle = extractUnlabeledOracle;
16
+ exports.hasCommentOracle = hasCommentOracle;
17
+ exports.isPresenceOnlyAssertion = isPresenceOnlyAssertion;
18
+ exports.onlyPresenceAssertions = onlyPresenceAssertions;
19
+ exports.assertionSteps = assertionSteps;
20
+ exports.isPresencePlaceholderHybrid = isPresencePlaceholderHybrid;
21
+ exports.keywordStepsOf = keywordStepsOf;
22
+ exports.commentLinesOf = commentLinesOf;
23
+ const NUMBERED = /^\d+[.)]\s*/;
24
+ const DIVIDER = /^[-=*_]{2,}/;
25
+ const HEADER = /^tester verifies\b\s*:?\s*(.*)$/i;
26
+ const LABELLED_ORACLE = /^\d+[.)]\s*[A-Za-z /]*?(observ|oracle|expect|result|then|assert)[A-Za-z /]*:/i;
27
+ /**
28
+ * The prose a `Tester verifies:` header carries when it is NOT written as numbered lines — the
29
+ * text on the header line itself plus the lines after it, up to the first numbered item or divider.
30
+ * Returns null when the block is empty (a bare header followed by numbered items is the structured
31
+ * shape, not this one) or when there is no header at all. Only the FIRST header's block is read —
32
+ * a second `Tester verifies:` ends it.
33
+ */
34
+ function extractUnlabeledOracle(comments) {
35
+ const parts = [];
36
+ let inBlock = false;
37
+ for (const raw of comments) {
38
+ const line = raw.trim();
39
+ if (!inBlock) {
40
+ const m = line.match(HEADER);
41
+ if (!m)
42
+ continue;
43
+ inBlock = true;
44
+ if (m[1].trim())
45
+ parts.push(m[1].trim());
46
+ continue;
47
+ }
48
+ if (!line)
49
+ continue;
50
+ if (NUMBERED.test(line) || DIVIDER.test(line) || HEADER.test(line))
51
+ break;
52
+ parts.push(line);
53
+ }
54
+ const text = parts.join(' ').replace(/\s+/g, ' ').trim();
55
+ return text ? text : null;
56
+ }
57
+ /** True when the comments state an oracle — a labelled numbered line, or unlabelled header prose. */
58
+ function hasCommentOracle(comments) {
59
+ return comments.some((c) => LABELLED_ORACLE.test(c.trim())) || extractUnlabeledOracle(comments) !== null;
60
+ }
61
+ /**
62
+ * A bare presence assertion: the element exists, nothing about its content, order, count or state.
63
+ * `User see [Job List] table` / `User is on [Home] page` / `User see [Save] button is visible`.
64
+ * Anything after the element type (`match data:`, `with {{v}}`, `row 2`, `is sorted …`) is a real check.
65
+ */
66
+ function isPresenceOnlyAssertion(text) {
67
+ return /^User (?:see|is on) \[[^\]]+\](?: [a-z]+)?(?: (?:is|are) (?:visible|displayed|shown))?\s*$/i.test(text.trim());
68
+ }
69
+ /**
70
+ * True when no assertion checks anything beyond presence — including when there is no assertion
71
+ * at all (a documentation-style manual). Only then may unlabelled comment prose stand in as the
72
+ * oracle: a Then that already asserts content/order/count IS the oracle, and replacing it with the
73
+ * prose would drop the real check from the deliverable.
74
+ */
75
+ function onlyPresenceAssertions(assertionTexts) {
76
+ return assertionTexts.every(isPresenceOnlyAssertion);
77
+ }
78
+ /** The scenario's assertion steps — a Then, plus every And/But whose preceding explicit keyword is Then. */
79
+ function assertionSteps(steps) {
80
+ let bucket = '';
81
+ const out = [];
82
+ for (const s of steps) {
83
+ const kw = s.keyword.trim();
84
+ if (kw === 'Given' || kw === 'When' || kw === 'Then')
85
+ bucket = kw;
86
+ if (bucket === 'Then')
87
+ out.push(s);
88
+ }
89
+ return out;
90
+ }
91
+ /**
92
+ * The banned hybrid: ≥1 assertion, every assertion a bare presence placeholder, and an oracle in
93
+ * the comments. A @manual whose Gherkin already asserts something real is fine — its comments are
94
+ * an elaboration, not the only statement of what the case checks.
95
+ */
96
+ function isPresencePlaceholderHybrid(steps, comments) {
97
+ const asserts = assertionSteps(steps);
98
+ return asserts.length > 0 && onlyPresenceAssertions(asserts.map((s) => s.text)) && hasCommentOracle(comments);
99
+ }
100
+ /** Split raw scenario-block lines into keyword steps (for the text-based audit gate). */
101
+ function keywordStepsOf(block) {
102
+ const out = [];
103
+ for (const line of block.split('\n')) {
104
+ const m = line.match(/^\s*(Given|When|Then|And|But)\s+(.+?)\s*$/);
105
+ if (m)
106
+ out.push({ keyword: m[1], text: m[2] });
107
+ }
108
+ return out;
109
+ }
110
+ /** Comment lines of a raw scenario block, with the leading `# ` stripped. */
111
+ function commentLinesOf(block) {
112
+ return block.split('\n').filter((l) => /^\s*#/.test(l)).map((l) => l.replace(/^\s*#\s?/, ''));
113
+ }
114
+ //# sourceMappingURL=manual-hybrid-oracle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual-hybrid-oracle.js","sourceRoot":"","sources":["../../src/exporters/manual-hybrid-oracle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/exporters/matrix/build.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAYpD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EAGZ,WAAW,EACX,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAcjB;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAazG;AA+CD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC9C,GAAG,EAAE,WAAW,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC,GAAG,eAAe,EAAE,CAuMzI;AA8BD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAS9C;AASD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,YAAY,EAAE,GACpB,mBAAmB,EAAE,CA8BvB;AAyBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG,YAAY,CAW7D;AAMD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;CAAE,CAYhH;AAUD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUxF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,GAAG,eAAe,EAAE,CAMzG;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAwH5D"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/exporters/matrix/build.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAYpD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EAGZ,WAAW,EACX,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAcjB;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAazG;AA+CD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC9C,GAAG,EAAE,WAAW,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC,GAAG,eAAe,EAAE,CAgNzI;AA8BD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAS9C;AASD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,YAAY,EAAE,GACpB,mBAAmB,EAAE,CA8BvB;AAyBD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG,YAAY,CAW7D;AAMD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,CAAA;CAAE,CAYhH;AAUD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUxF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,GAAG,eAAe,EAAE,CAMzG;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAyH5D"}
@@ -130,10 +130,13 @@ function deriveVariants(inputs) {
130
130
  // fields — Setup → precondition (review B-02), Action → trigger, Observable →
131
131
  // expected, Oracle → verification method. Labels never remain inside prose.
132
132
  const manual = mode === 'manual' && m.feature.comments?.length
133
- ? (0, wording_1.classifyManualComments)(m.feature.comments)
133
+ ? (0, wording_1.classifyManualComments)(m.feature.comments, (0, step_buckets_1.bucketTexts)(m.feature.orderedSteps, 'then'))
134
134
  : null;
135
135
  // Raw (pre-wording) step texts — these feed shapes + Gate C, never the cells.
136
- const rawTrigger = manual ? manual.actions : (0, step_buckets_1.bucketTexts)(m.feature.orderedSteps, 'when');
136
+ // A manual with no numbered action lines keeps its Gherkin When steps as the trigger — the
137
+ // same fallback the oracle uses for Then. Taking comment actions only rendered "No action —
138
+ // the state is checked on page load." for a manual whose When clicks something (#810).
139
+ const rawTrigger = manual && manual.actions.length > 0 ? manual.actions : (0, step_buckets_1.bucketTexts)(m.feature.orderedSteps, 'when');
137
140
  const rawOracle = manual
138
141
  ? (manual.expected.length > 0 ? manual.expected : (0, step_buckets_1.bucketTexts)(m.feature.orderedSteps, 'then'))
139
142
  : m.resolvedExpected.filter((s) => s.bucket === 'then').map((s) => s.text);
@@ -213,10 +216,16 @@ function deriveVariants(inputs) {
213
216
  procedureProfile,
214
217
  verification: manual?.verification.map((t) => sentenceOf(t)) ?? [],
215
218
  };
216
- /** Render the display cells for one data context (vars resolved first). */
219
+ /**
220
+ * Render the display cells for one data context. Steps are worded FIRST and values
221
+ * substituted AFTER (#772): wording strips the DSL's `[Ref]` brackets, and a value
222
+ * such as `^[A-Za-z]{3}` or `[E2E-01] title` must never be mistaken for one.
223
+ * Preconditions (rendered at build time above) already went in this order.
224
+ */
217
225
  const renderCells = (vars) => {
218
226
  const sub = (s) => substituteDisplayVars(s, vars, runtimeVars);
219
- const preconditionOut = precondition.map(sub);
227
+ const fill = (rendered) => (0, wording_1.afterSubstitution)(sub(rendered));
228
+ const preconditionOut = precondition.map(fill);
220
229
  const verificationOut = base.verification.map(sub);
221
230
  if (procedureProfile === 'sequence' && !manual) {
222
231
  // Ordered flow (review B-03): keep the event order — actions stay numbered in
@@ -230,11 +239,11 @@ function deriveVariants(inputs) {
230
239
  const oracle = [];
231
240
  steps.forEach((s, i) => {
232
241
  if (i > lastActionIdx)
233
- oracle.push((0, wording_1.renderExpected)(sub(s.text))); // trailing Then block
242
+ oracle.push(fill((0, wording_1.renderExpected)(s.text))); // trailing Then block
234
243
  else if (s.bucket === 'then')
235
- trigger.push(`Verify: ${(0, wording_1.renderExpected)(sub(s.text))}`);
244
+ trigger.push(`Verify: ${fill((0, wording_1.renderExpected)(s.text))}`);
236
245
  else if (s.bucket === 'when')
237
- trigger.push((0, wording_1.renderAction)(sub(s.text)));
246
+ trigger.push(fill((0, wording_1.renderAction)(s.text)));
238
247
  // leading given steps already live in the precondition
239
248
  });
240
249
  return { trigger, oracle, precondition: preconditionOut, verification: verificationOut };
@@ -243,8 +252,8 @@ function deriveVariants(inputs) {
243
252
  // Method/API/Header/Body lines are already reader-facing, not step DSL).
244
253
  const trigger = apiCallsAreTrigger
245
254
  ? apiRequestLines.map(sub)
246
- : rawTrigger.map((s) => (0, wording_1.renderAction)(sub(s)));
247
- const oracle = rawOracle.map((s) => (0, wording_1.renderExpected)(sub(s)));
255
+ : rawTrigger.map((s) => fill((0, wording_1.renderAction)(s)));
256
+ const oracle = rawOracle.map((s) => fill((0, wording_1.renderExpected)(s)));
248
257
  return {
249
258
  // A pure-render check (Given + Then only) is checked on page load — say so
250
259
  // in words instead of a placeholder token (review §10.3).
@@ -552,6 +561,7 @@ function buildMatrix(inputs) {
552
561
  precondition: commonPre,
553
562
  preconditionDeltas: Object.fromEntries(groupVariants.map((v) => [v.ref, v.precondition.filter((line) => !commonPre.includes(line))])),
554
563
  triggerDeltas: Object.fromEntries(groupVariants.map((v) => [v.ref, v.trigger.slice(prefixLen)])),
564
+ sharedTriggerSteps: prefixLen,
555
565
  // Nothing shared to hoist → say what varies rather than leaving the cell blank.
556
566
  trigger: prefixLen > 0 || groupVariants.length === 0
557
567
  ? (first?.trigger ?? []).slice(0, prefixLen)
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/exporters/matrix/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/exporters/matrix/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Carry a tester's hand-entered Manual results across a `sungen delivery` re-run (#756).
3
+ *
4
+ * The matrix workbook is rebuilt from scratch on every run, and a manual variant has no
5
+ * run-report entry, so its Result cell renders `Pending` and M–P render blank. Without
6
+ * this step the re-run overwrote the file and the tester's record was gone.
7
+ *
8
+ * Before the new workbook is written, the existing file's Manual sheet is read, and each
9
+ * variant sub-row's L–P cells (Test Result, Executed Date, Test Executor, Test Environment,
10
+ * Note) are carried into the new workbook by `v.ref` — column A.
11
+ *
12
+ * A result is only true of the procedure it was executed against, so every write stamps
13
+ * `ref → fingerprint` into a veryHidden sheet. The next run carries a result only while the
14
+ * stamp still matches; a changed procedure resets it to `Pending` and keeps the previous
15
+ * values in Note. Spec: docs/spec/delivery-coverage-matrix-spec.md §8.4.
16
+ *
17
+ * Manual sheet only: on Auto the run report is the source of truth for Result.
18
+ */
19
+ import * as ExcelJS from 'exceljs';
20
+ import { MatrixModel } from './types';
21
+ /** veryHidden: Excel's UI cannot unhide it, so a tester cannot edit the guard by accident. */
22
+ export declare const STAMP_SHEET = "_sungen_manual";
23
+ interface CarriedCell {
24
+ value: ExcelJS.CellValue;
25
+ numFmt?: string;
26
+ }
27
+ interface PriorRow {
28
+ cells: CarriedCell[];
29
+ }
30
+ export interface PriorManualResults {
31
+ rows: Map<string, PriorRow>;
32
+ /** Later copies of a ref already read — only the first is carried, so these are reported. */
33
+ duplicates: {
34
+ ref: string;
35
+ result: string;
36
+ }[];
37
+ /** `ref → fingerprint` from the stamp sheet; null when the file predates #756. */
38
+ stamps: Map<string, string> | null;
39
+ }
40
+ export interface ManualCarryReport {
41
+ /** Carried with a matching fingerprint. */
42
+ carried: number;
43
+ /** Carried from a file with no stamp — no drift check was possible. */
44
+ unchecked: number;
45
+ /** Result reset to Pending because the procedure changed. */
46
+ reset: string[];
47
+ /** Prior rows with an entry that no longer match any manual variant. */
48
+ notPlaced: {
49
+ ref: string;
50
+ result: string;
51
+ }[];
52
+ /** Prior rows with an entry that repeat a ref above them — not carried. */
53
+ duplicates: {
54
+ ref: string;
55
+ result: string;
56
+ }[];
57
+ }
58
+ /**
59
+ * Read the Manual results of the workbook about to be overwritten. Returns null when there is
60
+ * no such file. A file that exists but cannot be read THROWS: overwriting it would destroy the
61
+ * very record this step exists to keep.
62
+ */
63
+ export declare function readPriorManualResults(file: string): Promise<PriorManualResults | null>;
64
+ /**
65
+ * Carry `prior` into the freshly rendered `wb`, then stamp every manual variant's fingerprint.
66
+ * Only the Manual sheet's variant sub-rows are touched.
67
+ */
68
+ export declare function carryManualResults(wb: ExcelJS.Workbook, model: MatrixModel, prior: PriorManualResults | null): ManualCarryReport;
69
+ export {};
70
+ //# sourceMappingURL=carry-manual-results.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carry-manual-results.d.ts","sourceRoot":"","sources":["../../../src/exporters/matrix/carry-manual-results.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,8FAA8F;AAC9F,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAM5C,UAAU,WAAW;IAAG,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AAEnE,UAAU,QAAQ;IAAG,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE;AAE3C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5B,6FAA6F;IAC7F,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,kFAAkF;IAClF,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wEAAwE;IACxE,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,2EAA2E;IAC3E,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C;AAmDD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CA0C7F;AAkBD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,OAAO,CAAC,QAAQ,EACpB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAC/B,iBAAiB,CAiDnB"}
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+ /**
3
+ * Carry a tester's hand-entered Manual results across a `sungen delivery` re-run (#756).
4
+ *
5
+ * The matrix workbook is rebuilt from scratch on every run, and a manual variant has no
6
+ * run-report entry, so its Result cell renders `Pending` and M–P render blank. Without
7
+ * this step the re-run overwrote the file and the tester's record was gone.
8
+ *
9
+ * Before the new workbook is written, the existing file's Manual sheet is read, and each
10
+ * variant sub-row's L–P cells (Test Result, Executed Date, Test Executor, Test Environment,
11
+ * Note) are carried into the new workbook by `v.ref` — column A.
12
+ *
13
+ * A result is only true of the procedure it was executed against, so every write stamps
14
+ * `ref → fingerprint` into a veryHidden sheet. The next run carries a result only while the
15
+ * stamp still matches; a changed procedure resets it to `Pending` and keeps the previous
16
+ * values in Note. Spec: docs/spec/delivery-coverage-matrix-spec.md §8.4.
17
+ *
18
+ * Manual sheet only: on Auto the run report is the source of truth for Result.
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
32
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
33
+ }) : function(o, v) {
34
+ o["default"] = v;
35
+ });
36
+ var __importStar = (this && this.__importStar) || (function () {
37
+ var ownKeys = function(o) {
38
+ ownKeys = Object.getOwnPropertyNames || function (o) {
39
+ var ar = [];
40
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
41
+ return ar;
42
+ };
43
+ return ownKeys(o);
44
+ };
45
+ return function (mod) {
46
+ if (mod && mod.__esModule) return mod;
47
+ var result = {};
48
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
49
+ __setModuleDefault(result, mod);
50
+ return result;
51
+ };
52
+ })();
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.STAMP_SHEET = void 0;
55
+ exports.readPriorManualResults = readPriorManualResults;
56
+ exports.carryManualResults = carryManualResults;
57
+ const fs = __importStar(require("fs"));
58
+ const ExcelJS = __importStar(require("exceljs"));
59
+ const render_testcase_sheet_1 = require("./render-testcase-sheet");
60
+ const MANUAL_SHEET = 'Manual';
61
+ /** veryHidden: Excel's UI cannot unhide it, so a tester cannot edit the guard by accident. */
62
+ exports.STAMP_SHEET = '_sungen_manual';
63
+ /** L..P — the tester-owned columns of a variant sub-row. */
64
+ const CARRIED_COLS = [render_testcase_sheet_1.RESULT_COL, render_testcase_sheet_1.RESULT_COL + 1, render_testcase_sheet_1.RESULT_COL + 2, render_testcase_sheet_1.RESULT_COL + 3, render_testcase_sheet_1.RESULT_COL + 4];
65
+ const NOTE_INDEX = 4;
66
+ const RESET_MARKER = '[sungen] Procedure changed since this result was recorded';
67
+ function isFormula(v) {
68
+ return typeof v === 'object' && v !== null && ('formula' in v || 'sharedFormula' in v);
69
+ }
70
+ function cellText(v) {
71
+ if (v === null || v === undefined)
72
+ return '';
73
+ if (v instanceof Date)
74
+ return isNaN(v.getTime()) ? '' : v.toISOString().slice(0, 10);
75
+ if (typeof v === 'object') {
76
+ if ('richText' in v)
77
+ return v.richText.map((r) => r.text).join('').trim();
78
+ if ('text' in v)
79
+ return String(v.text).trim();
80
+ if ('result' in v)
81
+ return cellText(v.result);
82
+ }
83
+ return String(v).trim();
84
+ }
85
+ /**
86
+ * ExcelJS reads a formula's text result under a date format as an Invalid Date. Drop that
87
+ * cached result — Excel recomputes it on open — instead of writing NaN back into the file.
88
+ */
89
+ function readable(v) {
90
+ if (isFormula(v)) {
91
+ const { result, ...formula } = v;
92
+ if (result instanceof Date && isNaN(result.getTime()))
93
+ return formula;
94
+ }
95
+ return v;
96
+ }
97
+ /** A row still at the rendered default carries nothing. */
98
+ function isUntouched(cells) {
99
+ const [result, ...rest] = cells.map((c) => cellText(c.value));
100
+ return (result === '' || result === 'Pending') && rest.every((t) => t === '');
101
+ }
102
+ /**
103
+ * Variant sub-rows of a Manual sheet, in row order: `[ref, row]`. Either signal is enough:
104
+ * the renderer puts variants on outline level 1, and a parent's Result is a roll-up formula.
105
+ * Outline levels are lost by some spreadsheet tools on save, and a tester can paste a
106
+ * formula into a variant's Result, so relying on one alone would hide the row silently.
107
+ */
108
+ function variantRows(ws) {
109
+ const out = [];
110
+ for (let r = render_testcase_sheet_1.HEADER_ROW + 1; r <= ws.rowCount; r++) {
111
+ const row = ws.getRow(r);
112
+ const ref = cellText(row.getCell(1).value);
113
+ if (ref && (row.outlineLevel === 1 || !isFormula(row.getCell(render_testcase_sheet_1.RESULT_COL).value)))
114
+ out.push([ref, row]);
115
+ }
116
+ return out;
117
+ }
118
+ /**
119
+ * Read the Manual results of the workbook about to be overwritten. Returns null when there is
120
+ * no such file. A file that exists but cannot be read THROWS: overwriting it would destroy the
121
+ * very record this step exists to keep.
122
+ */
123
+ async function readPriorManualResults(file) {
124
+ if (!fs.existsSync(file))
125
+ return null;
126
+ const wb = new ExcelJS.Workbook();
127
+ try {
128
+ await wb.xlsx.readFile(file);
129
+ }
130
+ catch (e) {
131
+ throw new Error(`cannot read ${file} to carry its Manual results (${e.message}). ` +
132
+ 'Close it in Excel, or move it aside to start a fresh workbook, then re-run.');
133
+ }
134
+ // Every workbook sungen writes has a Manual sheet, even an empty one. Without it the
135
+ // tester's results cannot be located — carrying nothing would look like a clean run.
136
+ const ws = wb.getWorksheet(MANUAL_SHEET);
137
+ if (!ws) {
138
+ throw new Error(`${file} has no "${MANUAL_SHEET}" sheet, so its Manual results cannot be carried. ` +
139
+ `Rename the sheet back to "${MANUAL_SHEET}", or move the file aside to start a fresh workbook, then re-run.`);
140
+ }
141
+ const rows = new Map();
142
+ const duplicates = [];
143
+ for (const [ref, row] of variantRows(ws)) {
144
+ const cells = CARRIED_COLS.map((c) => {
145
+ const cell = row.getCell(c);
146
+ return { value: readable(cell.value), ...(cell.numFmt ? { numFmt: cell.numFmt } : {}) };
147
+ });
148
+ if (!rows.has(ref))
149
+ rows.set(ref, { cells });
150
+ else if (!isUntouched(cells))
151
+ duplicates.push({ ref, result: cellText(cells[0].value) || '(no result)' });
152
+ }
153
+ const stampWs = wb.getWorksheet(exports.STAMP_SHEET);
154
+ let stamps = null;
155
+ if (stampWs) {
156
+ stamps = new Map();
157
+ stampWs.eachRow((row, n) => {
158
+ if (n > 1)
159
+ stamps.set(cellText(row.getCell(1).value), cellText(row.getCell(2).value));
160
+ });
161
+ }
162
+ return { rows, duplicates, stamps };
163
+ }
164
+ /**
165
+ * Note for a reset row: what was invalidated, then whatever the tester had written. A note
166
+ * that is a hyperlink (evidence, a defect ticket) stays one — only its text gains the marker.
167
+ */
168
+ function resetNote(prior) {
169
+ const [result, date, executor] = prior.map((c) => cellText(c.value));
170
+ const was = [result, date, executor].filter(Boolean).join(' · ');
171
+ const header = `${RESET_MARKER} — previous: ${was}. Re-run required.`;
172
+ const note = prior[NOTE_INDEX].value;
173
+ const own = cellText(note);
174
+ if (typeof note === 'object' && note !== null && 'hyperlink' in note) {
175
+ return { ...note, text: `${header}\n${own}` };
176
+ }
177
+ return own ? `${header}\n${own}` : header;
178
+ }
179
+ /**
180
+ * Carry `prior` into the freshly rendered `wb`, then stamp every manual variant's fingerprint.
181
+ * Only the Manual sheet's variant sub-rows are touched.
182
+ */
183
+ function carryManualResults(wb, model, prior) {
184
+ const report = { carried: 0, unchecked: 0, reset: [], notPlaced: [], duplicates: prior?.duplicates ?? [] };
185
+ const fingerprints = new Map(model.items.flatMap((i) => i.variants).filter((v) => v.mode === 'manual').map((v) => [v.ref, v.fingerprint]));
186
+ const ws = wb.getWorksheet(MANUAL_SHEET);
187
+ const placed = new Set();
188
+ if (ws && prior) {
189
+ for (const [ref, row] of variantRows(ws)) {
190
+ const before = prior.rows.get(ref);
191
+ if (!before)
192
+ continue;
193
+ placed.add(ref);
194
+ if (isUntouched(before.cells))
195
+ continue;
196
+ const stamped = prior.stamps?.get(ref);
197
+ // Only a recorded result is a claim about the procedure. A row with no result (a
198
+ // blocker note, or one already reset) is carried as-is, so a second procedure
199
+ // change does not stack a second marker on it.
200
+ const hasResult = !['', 'Pending'].includes(cellText(before.cells[0].value));
201
+ if (stamped !== undefined && stamped !== fingerprints.get(ref) && hasResult) {
202
+ row.getCell(render_testcase_sheet_1.RESULT_COL).value = 'Pending';
203
+ row.getCell(CARRIED_COLS[NOTE_INDEX]).value = resetNote(before.cells);
204
+ report.reset.push(ref);
205
+ continue;
206
+ }
207
+ CARRIED_COLS.forEach((c, i) => {
208
+ const cell = row.getCell(c);
209
+ cell.value = before.cells[i].value;
210
+ if (before.cells[i].numFmt)
211
+ cell.numFmt = before.cells[i].numFmt;
212
+ });
213
+ if (stamped === undefined)
214
+ report.unchecked++;
215
+ else
216
+ report.carried++;
217
+ }
218
+ }
219
+ if (prior) {
220
+ for (const [ref, before] of prior.rows) {
221
+ if (!placed.has(ref) && !isUntouched(before.cells)) {
222
+ report.notPlaced.push({ ref, result: cellText(before.cells[0].value) || '(no result)' });
223
+ }
224
+ }
225
+ }
226
+ const stampWs = wb.addWorksheet(exports.STAMP_SHEET, { state: 'veryHidden' });
227
+ stampWs.addRow(['ref', 'fingerprint']);
228
+ for (const [ref, fp] of fingerprints)
229
+ stampWs.addRow([ref, fp]);
230
+ return report;
231
+ }
232
+ //# sourceMappingURL=carry-manual-results.js.map