@vyuhlabs/dxkit 2.4.5 → 2.4.7

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 (356) hide show
  1. package/CHANGELOG.md +1022 -0
  2. package/README.md +160 -45
  3. package/dist/analysis-result.d.ts +112 -0
  4. package/dist/analysis-result.d.ts.map +1 -0
  5. package/dist/analysis-result.js +52 -0
  6. package/dist/analysis-result.js.map +1 -0
  7. package/dist/analyzers/bom/detailed.d.ts.map +1 -1
  8. package/dist/analyzers/bom/detailed.js +19 -0
  9. package/dist/analyzers/bom/detailed.js.map +1 -1
  10. package/dist/analyzers/bom/gather.d.ts +27 -26
  11. package/dist/analyzers/bom/gather.d.ts.map +1 -1
  12. package/dist/analyzers/bom/gather.js +26 -87
  13. package/dist/analyzers/bom/gather.js.map +1 -1
  14. package/dist/analyzers/bom/index.d.ts +0 -7
  15. package/dist/analyzers/bom/index.d.ts.map +1 -1
  16. package/dist/analyzers/bom/index.js +98 -48
  17. package/dist/analyzers/bom/index.js.map +1 -1
  18. package/dist/analyzers/bom/types.d.ts +11 -13
  19. package/dist/analyzers/bom/types.d.ts.map +1 -1
  20. package/dist/analyzers/cache.d.ts +95 -0
  21. package/dist/analyzers/cache.d.ts.map +1 -0
  22. package/dist/analyzers/cache.js +309 -0
  23. package/dist/analyzers/cache.js.map +1 -0
  24. package/dist/analyzers/coverage-runner.d.ts +56 -0
  25. package/dist/analyzers/coverage-runner.d.ts.map +1 -0
  26. package/dist/analyzers/coverage-runner.js +72 -0
  27. package/dist/analyzers/coverage-runner.js.map +1 -0
  28. package/dist/analyzers/dashboard/index.d.ts +24 -0
  29. package/dist/analyzers/dashboard/index.d.ts.map +1 -0
  30. package/dist/analyzers/dashboard/index.js +666 -0
  31. package/dist/analyzers/dashboard/index.js.map +1 -0
  32. package/dist/analyzers/developer/gather.d.ts.map +1 -1
  33. package/dist/analyzers/developer/gather.js +205 -37
  34. package/dist/analyzers/developer/gather.js.map +1 -1
  35. package/dist/analyzers/developer/index.d.ts +1 -1
  36. package/dist/analyzers/developer/index.d.ts.map +1 -1
  37. package/dist/analyzers/developer/index.js +19 -8
  38. package/dist/analyzers/developer/index.js.map +1 -1
  39. package/dist/analyzers/dispatcher.d.ts +37 -0
  40. package/dist/analyzers/dispatcher.d.ts.map +1 -1
  41. package/dist/analyzers/dispatcher.js +56 -9
  42. package/dist/analyzers/dispatcher.js.map +1 -1
  43. package/dist/analyzers/docs/shallow.d.ts +17 -5
  44. package/dist/analyzers/docs/shallow.d.ts.map +1 -1
  45. package/dist/analyzers/docs/shallow.js +65 -2
  46. package/dist/analyzers/docs/shallow.js.map +1 -1
  47. package/dist/analyzers/dx/shallow.d.ts +17 -5
  48. package/dist/analyzers/dx/shallow.d.ts.map +1 -1
  49. package/dist/analyzers/dx/shallow.js +66 -2
  50. package/dist/analyzers/dx/shallow.js.map +1 -1
  51. package/dist/analyzers/health/actions.d.ts +1 -1
  52. package/dist/analyzers/health/actions.d.ts.map +1 -1
  53. package/dist/analyzers/health/actions.js +27 -9
  54. package/dist/analyzers/health/actions.js.map +1 -1
  55. package/dist/analyzers/health/detailed.d.ts +2 -1
  56. package/dist/analyzers/health/detailed.d.ts.map +1 -1
  57. package/dist/analyzers/health/detailed.js +11 -7
  58. package/dist/analyzers/health/detailed.js.map +1 -1
  59. package/dist/analyzers/health.d.ts +27 -0
  60. package/dist/analyzers/health.d.ts.map +1 -1
  61. package/dist/analyzers/health.js +271 -33
  62. package/dist/analyzers/health.js.map +1 -1
  63. package/dist/analyzers/licenses/gather.d.ts +35 -8
  64. package/dist/analyzers/licenses/gather.d.ts.map +1 -1
  65. package/dist/analyzers/licenses/gather.js +70 -13
  66. package/dist/analyzers/licenses/gather.js.map +1 -1
  67. package/dist/analyzers/licenses/index.d.ts +1 -1
  68. package/dist/analyzers/licenses/index.d.ts.map +1 -1
  69. package/dist/analyzers/licenses/index.js +52 -11
  70. package/dist/analyzers/licenses/index.js.map +1 -1
  71. package/dist/analyzers/licenses/types.d.ts +15 -0
  72. package/dist/analyzers/licenses/types.d.ts.map +1 -1
  73. package/dist/analyzers/maintainability/shallow.d.ts +17 -5
  74. package/dist/analyzers/maintainability/shallow.d.ts.map +1 -1
  75. package/dist/analyzers/maintainability/shallow.js +80 -2
  76. package/dist/analyzers/maintainability/shallow.js.map +1 -1
  77. package/dist/analyzers/quality/detailed.d.ts.map +1 -1
  78. package/dist/analyzers/quality/detailed.js +4 -6
  79. package/dist/analyzers/quality/detailed.js.map +1 -1
  80. package/dist/analyzers/quality/gather.d.ts +1 -14
  81. package/dist/analyzers/quality/gather.d.ts.map +1 -1
  82. package/dist/analyzers/quality/gather.js +48 -137
  83. package/dist/analyzers/quality/gather.js.map +1 -1
  84. package/dist/analyzers/quality/index.d.ts +9 -2
  85. package/dist/analyzers/quality/index.d.ts.map +1 -1
  86. package/dist/analyzers/quality/index.js +189 -117
  87. package/dist/analyzers/quality/index.js.map +1 -1
  88. package/dist/analyzers/quality/shallow.d.ts +50 -5
  89. package/dist/analyzers/quality/shallow.d.ts.map +1 -1
  90. package/dist/analyzers/quality/shallow.js +155 -2
  91. package/dist/analyzers/quality/shallow.js.map +1 -1
  92. package/dist/analyzers/quality/types.d.ts +14 -0
  93. package/dist/analyzers/quality/types.d.ts.map +1 -1
  94. package/dist/analyzers/security/actions.d.ts +11 -4
  95. package/dist/analyzers/security/actions.d.ts.map +1 -1
  96. package/dist/analyzers/security/actions.js +87 -37
  97. package/dist/analyzers/security/actions.js.map +1 -1
  98. package/dist/analyzers/security/aggregator.d.ts +236 -0
  99. package/dist/analyzers/security/aggregator.d.ts.map +1 -0
  100. package/dist/analyzers/security/aggregator.js +347 -0
  101. package/dist/analyzers/security/aggregator.js.map +1 -0
  102. package/dist/analyzers/security/detailed.d.ts +2 -2
  103. package/dist/analyzers/security/detailed.d.ts.map +1 -1
  104. package/dist/analyzers/security/detailed.js +10 -9
  105. package/dist/analyzers/security/detailed.js.map +1 -1
  106. package/dist/analyzers/security/gather.d.ts +103 -1
  107. package/dist/analyzers/security/gather.d.ts.map +1 -1
  108. package/dist/analyzers/security/gather.js +281 -9
  109. package/dist/analyzers/security/gather.js.map +1 -1
  110. package/dist/analyzers/security/index.d.ts +15 -0
  111. package/dist/analyzers/security/index.d.ts.map +1 -1
  112. package/dist/analyzers/security/index.js +463 -50
  113. package/dist/analyzers/security/index.js.map +1 -1
  114. package/dist/analyzers/security/shallow.d.ts +50 -6
  115. package/dist/analyzers/security/shallow.d.ts.map +1 -1
  116. package/dist/analyzers/security/shallow.js +154 -2
  117. package/dist/analyzers/security/shallow.js.map +1 -1
  118. package/dist/analyzers/security/types.d.ts +51 -0
  119. package/dist/analyzers/security/types.d.ts.map +1 -1
  120. package/dist/analyzers/tests/detailed.d.ts.map +1 -1
  121. package/dist/analyzers/tests/detailed.js +2 -3
  122. package/dist/analyzers/tests/detailed.js.map +1 -1
  123. package/dist/analyzers/tests/gather.d.ts +2 -1
  124. package/dist/analyzers/tests/gather.d.ts.map +1 -1
  125. package/dist/analyzers/tests/gather.js +98 -69
  126. package/dist/analyzers/tests/gather.js.map +1 -1
  127. package/dist/analyzers/tests/index.d.ts +11 -2
  128. package/dist/analyzers/tests/index.d.ts.map +1 -1
  129. package/dist/analyzers/tests/index.js +85 -18
  130. package/dist/analyzers/tests/index.js.map +1 -1
  131. package/dist/analyzers/tests/shallow.d.ts +19 -5
  132. package/dist/analyzers/tests/shallow.d.ts.map +1 -1
  133. package/dist/analyzers/tests/shallow.js +89 -2
  134. package/dist/analyzers/tests/shallow.js.map +1 -1
  135. package/dist/analyzers/tests/types.d.ts +41 -1
  136. package/dist/analyzers/tests/types.d.ts.map +1 -1
  137. package/dist/analyzers/tools/autogen-header.d.ts +8 -0
  138. package/dist/analyzers/tools/autogen-header.d.ts.map +1 -0
  139. package/dist/analyzers/tools/autogen-header.js +107 -0
  140. package/dist/analyzers/tools/autogen-header.js.map +1 -0
  141. package/dist/analyzers/tools/cloc.d.ts.map +1 -1
  142. package/dist/analyzers/tools/cloc.js +36 -5
  143. package/dist/analyzers/tools/cloc.js.map +1 -1
  144. package/dist/analyzers/tools/coverage.d.ts +1 -1
  145. package/dist/analyzers/tools/coverage.d.ts.map +1 -1
  146. package/dist/analyzers/tools/coverage.js.map +1 -1
  147. package/dist/analyzers/tools/debug-statements.d.ts +17 -0
  148. package/dist/analyzers/tools/debug-statements.d.ts.map +1 -0
  149. package/dist/analyzers/tools/debug-statements.js +58 -0
  150. package/dist/analyzers/tools/debug-statements.js.map +1 -0
  151. package/dist/analyzers/tools/default-exclusions.gitignore +28 -0
  152. package/dist/analyzers/tools/exclusions.d.ts +33 -6
  153. package/dist/analyzers/tools/exclusions.d.ts.map +1 -1
  154. package/dist/analyzers/tools/exclusions.js +95 -26
  155. package/dist/analyzers/tools/exclusions.js.map +1 -1
  156. package/dist/analyzers/tools/generic.d.ts +17 -2
  157. package/dist/analyzers/tools/generic.d.ts.map +1 -1
  158. package/dist/analyzers/tools/generic.js +206 -109
  159. package/dist/analyzers/tools/generic.js.map +1 -1
  160. package/dist/analyzers/tools/gitleaks.d.ts.map +1 -1
  161. package/dist/analyzers/tools/gitleaks.js +48 -1
  162. package/dist/analyzers/tools/gitleaks.js.map +1 -1
  163. package/dist/analyzers/tools/graphify.d.ts +30 -2
  164. package/dist/analyzers/tools/graphify.d.ts.map +1 -1
  165. package/dist/analyzers/tools/graphify.js +131 -15
  166. package/dist/analyzers/tools/graphify.js.map +1 -1
  167. package/dist/analyzers/tools/jscpd.d.ts +12 -2
  168. package/dist/analyzers/tools/jscpd.d.ts.map +1 -1
  169. package/dist/analyzers/tools/jscpd.js +129 -6
  170. package/dist/analyzers/tools/jscpd.js.map +1 -1
  171. package/dist/analyzers/tools/minified-detection.d.ts +9 -0
  172. package/dist/analyzers/tools/minified-detection.d.ts.map +1 -0
  173. package/dist/analyzers/tools/minified-detection.js +147 -0
  174. package/dist/analyzers/tools/minified-detection.js.map +1 -0
  175. package/dist/analyzers/tools/nuget-package-reference.d.ts +131 -0
  176. package/dist/analyzers/tools/nuget-package-reference.d.ts.map +1 -0
  177. package/dist/analyzers/tools/nuget-package-reference.js +175 -0
  178. package/dist/analyzers/tools/nuget-package-reference.js.map +1 -0
  179. package/dist/analyzers/tools/osv-scanner-deps.d.ts +48 -0
  180. package/dist/analyzers/tools/osv-scanner-deps.d.ts.map +1 -0
  181. package/dist/analyzers/tools/{osv-scanner-maven.js → osv-scanner-deps.js} +78 -46
  182. package/dist/analyzers/tools/osv-scanner-deps.js.map +1 -0
  183. package/dist/analyzers/tools/osv.d.ts +36 -0
  184. package/dist/analyzers/tools/osv.d.ts.map +1 -1
  185. package/dist/analyzers/tools/osv.js +26 -0
  186. package/dist/analyzers/tools/osv.js.map +1 -1
  187. package/dist/analyzers/tools/parallel.d.ts +1 -1
  188. package/dist/analyzers/tools/parallel.d.ts.map +1 -1
  189. package/dist/analyzers/tools/parallel.js +2 -2
  190. package/dist/analyzers/tools/parallel.js.map +1 -1
  191. package/dist/analyzers/tools/risk-score.d.ts +7 -0
  192. package/dist/analyzers/tools/risk-score.d.ts.map +1 -1
  193. package/dist/analyzers/tools/risk-score.js +9 -2
  194. package/dist/analyzers/tools/risk-score.js.map +1 -1
  195. package/dist/analyzers/tools/run-tests-helper.d.ts +43 -0
  196. package/dist/analyzers/tools/run-tests-helper.d.ts.map +1 -0
  197. package/dist/analyzers/tools/run-tests-helper.js +156 -0
  198. package/dist/analyzers/tools/run-tests-helper.js.map +1 -0
  199. package/dist/analyzers/tools/runner.d.ts.map +1 -1
  200. package/dist/analyzers/tools/runner.js +75 -12
  201. package/dist/analyzers/tools/runner.js.map +1 -1
  202. package/dist/analyzers/tools/semgrep.d.ts +39 -2
  203. package/dist/analyzers/tools/semgrep.d.ts.map +1 -1
  204. package/dist/analyzers/tools/semgrep.js +131 -9
  205. package/dist/analyzers/tools/semgrep.js.map +1 -1
  206. package/dist/analyzers/tools/timing.d.ts +17 -3
  207. package/dist/analyzers/tools/timing.d.ts.map +1 -1
  208. package/dist/analyzers/tools/timing.js +36 -14
  209. package/dist/analyzers/tools/timing.js.map +1 -1
  210. package/dist/analyzers/tools/tool-registry.d.ts +10 -0
  211. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  212. package/dist/analyzers/tools/tool-registry.js +120 -1
  213. package/dist/analyzers/tools/tool-registry.js.map +1 -1
  214. package/dist/analyzers/tools/tools-unavailable-prose.d.ts +18 -0
  215. package/dist/analyzers/tools/tools-unavailable-prose.d.ts.map +1 -0
  216. package/dist/analyzers/tools/tools-unavailable-prose.js +69 -0
  217. package/dist/analyzers/tools/tools-unavailable-prose.js.map +1 -0
  218. package/dist/analyzers/tools/upgrade-plan-resolver.d.ts.map +1 -1
  219. package/dist/analyzers/tools/upgrade-plan-resolver.js +7 -0
  220. package/dist/analyzers/tools/upgrade-plan-resolver.js.map +1 -1
  221. package/dist/analyzers/tools/vendored-advisor.d.ts +43 -0
  222. package/dist/analyzers/tools/vendored-advisor.d.ts.map +1 -0
  223. package/dist/analyzers/tools/vendored-advisor.js +107 -0
  224. package/dist/analyzers/tools/vendored-advisor.js.map +1 -0
  225. package/dist/analyzers/tools/walk-paths.d.ts +78 -0
  226. package/dist/analyzers/tools/walk-paths.d.ts.map +1 -0
  227. package/dist/analyzers/tools/walk-paths.js +150 -0
  228. package/dist/analyzers/tools/walk-paths.js.map +1 -0
  229. package/dist/analyzers/tools/walk-source-files.d.ts +70 -0
  230. package/dist/analyzers/tools/walk-source-files.d.ts.map +1 -0
  231. package/dist/analyzers/tools/walk-source-files.js +369 -0
  232. package/dist/analyzers/tools/walk-source-files.js.map +1 -0
  233. package/dist/analyzers/types.d.ts +204 -4
  234. package/dist/analyzers/types.d.ts.map +1 -1
  235. package/dist/analyzers/xlsx/bom.d.ts.map +1 -1
  236. package/dist/analyzers/xlsx/bom.js +8 -1
  237. package/dist/analyzers/xlsx/bom.js.map +1 -1
  238. package/dist/cli.d.ts.map +1 -1
  239. package/dist/cli.js +557 -189
  240. package/dist/cli.js.map +1 -1
  241. package/dist/constants.d.ts +1 -0
  242. package/dist/constants.d.ts.map +1 -1
  243. package/dist/detect.d.ts.map +1 -1
  244. package/dist/detect.js +24 -7
  245. package/dist/detect.js.map +1 -1
  246. package/dist/doctor.d.ts.map +1 -1
  247. package/dist/doctor.js +103 -53
  248. package/dist/doctor.js.map +1 -1
  249. package/dist/languages/capabilities/provider.d.ts +130 -1
  250. package/dist/languages/capabilities/provider.d.ts.map +1 -1
  251. package/dist/languages/capabilities/types.d.ts +68 -7
  252. package/dist/languages/capabilities/types.d.ts.map +1 -1
  253. package/dist/languages/csharp.d.ts +15 -1
  254. package/dist/languages/csharp.d.ts.map +1 -1
  255. package/dist/languages/csharp.js +624 -146
  256. package/dist/languages/csharp.js.map +1 -1
  257. package/dist/languages/go.d.ts.map +1 -1
  258. package/dist/languages/go.js +89 -11
  259. package/dist/languages/go.js.map +1 -1
  260. package/dist/languages/index.d.ts +131 -2
  261. package/dist/languages/index.d.ts.map +1 -1
  262. package/dist/languages/index.js +208 -0
  263. package/dist/languages/index.js.map +1 -1
  264. package/dist/languages/java.d.ts.map +1 -1
  265. package/dist/languages/java.js +121 -32
  266. package/dist/languages/java.js.map +1 -1
  267. package/dist/languages/kotlin.d.ts.map +1 -1
  268. package/dist/languages/kotlin.js +140 -32
  269. package/dist/languages/kotlin.js.map +1 -1
  270. package/dist/languages/python.d.ts.map +1 -1
  271. package/dist/languages/python.js +149 -44
  272. package/dist/languages/python.js.map +1 -1
  273. package/dist/languages/ruby.d.ts +115 -0
  274. package/dist/languages/ruby.d.ts.map +1 -0
  275. package/dist/languages/ruby.js +665 -0
  276. package/dist/languages/ruby.js.map +1 -0
  277. package/dist/languages/rust.d.ts.map +1 -1
  278. package/dist/languages/rust.js +103 -16
  279. package/dist/languages/rust.js.map +1 -1
  280. package/dist/languages/types.d.ts +228 -5
  281. package/dist/languages/types.d.ts.map +1 -1
  282. package/dist/languages/typescript.d.ts.map +1 -1
  283. package/dist/languages/typescript.js +201 -14
  284. package/dist/languages/typescript.js.map +1 -1
  285. package/dist/scoring/dimensions/documentation.d.ts +53 -0
  286. package/dist/scoring/dimensions/documentation.d.ts.map +1 -0
  287. package/dist/scoring/dimensions/documentation.js +106 -0
  288. package/dist/scoring/dimensions/documentation.js.map +1 -0
  289. package/dist/scoring/dimensions/dx.d.ts +53 -0
  290. package/dist/scoring/dimensions/dx.d.ts.map +1 -0
  291. package/dist/scoring/dimensions/dx.js +105 -0
  292. package/dist/scoring/dimensions/dx.js.map +1 -0
  293. package/dist/scoring/dimensions/maintainability.d.ts +53 -0
  294. package/dist/scoring/dimensions/maintainability.d.ts.map +1 -0
  295. package/dist/scoring/dimensions/maintainability.js +101 -0
  296. package/dist/scoring/dimensions/maintainability.js.map +1 -0
  297. package/dist/scoring/dimensions/quality.d.ts +108 -0
  298. package/dist/scoring/dimensions/quality.d.ts.map +1 -0
  299. package/dist/scoring/dimensions/quality.js +174 -0
  300. package/dist/scoring/dimensions/quality.js.map +1 -0
  301. package/dist/scoring/dimensions/security.d.ts +84 -0
  302. package/dist/scoring/dimensions/security.d.ts.map +1 -0
  303. package/dist/scoring/dimensions/security.js +135 -0
  304. package/dist/scoring/dimensions/security.js.map +1 -0
  305. package/dist/scoring/dimensions/testing.d.ts +56 -0
  306. package/dist/scoring/dimensions/testing.d.ts.map +1 -0
  307. package/dist/scoring/dimensions/testing.js +98 -0
  308. package/dist/scoring/dimensions/testing.js.map +1 -0
  309. package/dist/scoring/evaluator.d.ts +27 -0
  310. package/dist/scoring/evaluator.d.ts.map +1 -0
  311. package/dist/scoring/evaluator.js +124 -0
  312. package/dist/scoring/evaluator.js.map +1 -0
  313. package/dist/scoring/format.d.ts +34 -0
  314. package/dist/scoring/format.d.ts.map +1 -0
  315. package/dist/scoring/format.js +63 -0
  316. package/dist/scoring/format.js.map +1 -0
  317. package/dist/scoring/index.d.ts +37 -0
  318. package/dist/scoring/index.d.ts.map +1 -0
  319. package/dist/scoring/index.js +57 -0
  320. package/dist/scoring/index.js.map +1 -0
  321. package/dist/scoring/overall.d.ts +54 -0
  322. package/dist/scoring/overall.d.ts.map +1 -0
  323. package/dist/scoring/overall.js +76 -0
  324. package/dist/scoring/overall.js.map +1 -0
  325. package/dist/scoring/result.d.ts +111 -0
  326. package/dist/scoring/result.d.ts.map +1 -0
  327. package/dist/scoring/result.js +14 -0
  328. package/dist/scoring/result.js.map +1 -0
  329. package/dist/scoring/spec.d.ts +76 -0
  330. package/dist/scoring/spec.d.ts.map +1 -0
  331. package/dist/scoring/spec.js +22 -0
  332. package/dist/scoring/spec.js.map +1 -0
  333. package/dist/scoring/thresholds.d.ts +56 -0
  334. package/dist/scoring/thresholds.d.ts.map +1 -0
  335. package/dist/scoring/thresholds.js +75 -0
  336. package/dist/scoring/thresholds.js.map +1 -0
  337. package/dist/tools-cli.d.ts.map +1 -1
  338. package/dist/tools-cli.js +21 -2
  339. package/dist/tools-cli.js.map +1 -1
  340. package/dist/types.d.ts +17 -1
  341. package/dist/types.d.ts.map +1 -1
  342. package/package.json +1 -1
  343. package/templates/.claude/commands/dashboard.md +17 -9
  344. package/templates/.claude/rules/ruby.md +11 -0
  345. package/templates/configs/ruby/README.md +6 -0
  346. package/dist/analyzers/scoring.d.ts +0 -49
  347. package/dist/analyzers/scoring.d.ts.map +0 -1
  348. package/dist/analyzers/scoring.js +0 -422
  349. package/dist/analyzers/scoring.js.map +0 -1
  350. package/dist/analyzers/security/scoring.d.ts +0 -29
  351. package/dist/analyzers/security/scoring.d.ts.map +0 -1
  352. package/dist/analyzers/security/scoring.js +0 -40
  353. package/dist/analyzers/security/scoring.js.map +0 -1
  354. package/dist/analyzers/tools/osv-scanner-maven.d.ts +0 -42
  355. package/dist/analyzers/tools/osv-scanner-maven.d.ts.map +0 -1
  356. package/dist/analyzers/tools/osv-scanner-maven.js.map +0 -1
@@ -45,11 +45,15 @@ exports.matchTestsToSource = matchTestsToSource;
45
45
  * wc → line counts for risk classification
46
46
  */
47
47
  const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ const walk_source_files_1 = require("../tools/walk-source-files");
48
50
  const languages_1 = require("../../languages");
49
- const runner_1 = require("../tools/runner");
50
- const exclusions_1 = require("../tools/exclusions");
51
- // EXCLUDE is computed per-cwd inside each gather function to honor
52
- // project-specific .gitignore / .dxkit-ignore entries.
51
+ // G_v4_7 (2.4.7): both gatherTestFiles and gatherSourceFiles route
52
+ // through walkSourceFiles. Pre-migration each had its own find
53
+ // composition with subtly different test-pattern matching, exclusion
54
+ // handling, and autogen filtering. ONE walker, ONE definition of
55
+ // "what counts as a source file" — closes D075 for the test-gaps
56
+ // gather path.
53
57
  // Patterns for security-critical files (CRITICAL risk)
54
58
  const CRITICAL_PATTERNS = [
55
59
  /auth/i,
@@ -71,27 +75,21 @@ const CRITICAL_PATTERNS = [
71
75
  ];
72
76
  // ─── Test file discovery ────────────────────────────────────────────────────
73
77
  function gatherTestFiles(cwd) {
74
- const EXCLUDE = (0, exclusions_1.getFindExcludeFlags)(cwd);
75
- // Find test files by naming convention
76
- const testPatterns = '\\( -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" -o -name "test_*" \\)';
77
- const raw = (0, runner_1.run)(`find . -type f ${testPatterns} ${EXCLUDE} 2>/dev/null`, cwd);
78
- if (!raw)
79
- return [];
80
- // Also check __tests__/ directories
81
- const testDirRaw = (0, runner_1.run)(`find . -type f -path "*/__tests__/*" -name "*.ts" -o -path "*/__tests__/*" -name "*.js" -o -path "*/__tests__/*" -name "*.py" 2>/dev/null | grep -v node_modules | grep -v dist`, cwd);
82
- const allPaths = new Set();
83
- for (const line of (raw + '\n' + (testDirRaw || '')).split('\n')) {
84
- const p = line.trim();
85
- if (p && !p.includes('node_modules') && !p.includes('/dist/')) {
86
- allPaths.add(p.replace('./', ''));
87
- }
88
- }
78
+ // Walker computes test-files as (includeTests:true SET) MINUS
79
+ // (includeTests:false SET). Test-pattern derivation is pack-driven
80
+ // via `allTestFilePatterns()`, so adding a new pack auto-extends.
81
+ const allFiles = new Set((0, walk_source_files_1.walkSourceFiles)(cwd, { includeTests: true }));
82
+ const nonTestFiles = new Set((0, walk_source_files_1.walkSourceFiles)(cwd));
89
83
  const testFiles = [];
90
- for (const p of allPaths) {
91
- const fullPath = `${cwd}/${p}`;
92
- const status = classifyTestFile(fullPath);
93
- const framework = detectTestFramework(fullPath);
94
- testFiles.push({ path: p, status, framework });
84
+ for (const p of allFiles) {
85
+ if (nonTestFiles.has(p))
86
+ continue;
87
+ const fullPath = path.join(cwd, p);
88
+ testFiles.push({
89
+ path: p,
90
+ status: classifyTestFile(fullPath),
91
+ framework: detectTestFramework(fullPath),
92
+ });
95
93
  }
96
94
  return testFiles;
97
95
  }
@@ -157,29 +155,38 @@ function detectTestFramework(fullPath) {
157
155
  return null;
158
156
  }
159
157
  // ─── Source file discovery + risk classification ────────────────────────────
160
- function gatherSourceFiles(cwd) {
161
- const EXCLUDE = (0, exclusions_1.getFindExcludeFlags)(cwd);
162
- const exts = languages_1.LANGUAGES.flatMap((l) => l.sourceExtensions);
163
- const SOURCE_EXTS = '\\( ' + exts.map((e) => `-name "*${e}"`).join(' -o ') + ' \\)';
164
- const raw = (0, runner_1.run)(`find . -type f ${SOURCE_EXTS} ${EXCLUDE} 2>/dev/null`, cwd);
165
- if (!raw)
166
- return [];
158
+ /**
159
+ * Convert an architectural-shape path pattern to a column-friendly
160
+ * role label. `/Controllers/` → `"Controllers"`; `/app/controllers/`
161
+ * `"controllers"`; `/handlers/` `"handlers"`. The last non-empty
162
+ * path segment carries the role name across every shipped pack
163
+ * contribution.
164
+ */
165
+ function patternToLabel(pat) {
166
+ const parts = pat.split('/').filter((s) => s.length > 0);
167
+ return parts[parts.length - 1] ?? pat;
168
+ }
169
+ function gatherSourceFiles(cwd, languageFlags) {
170
+ // Walker default opts apply all the filters the pre-migration
171
+ // inline code did (and more):
172
+ // - exclusions via .gitignore + .dxkit-ignore + bundled defaults
173
+ // (covers node_modules, dist, *.d.ts, *.min.js)
174
+ // - autogen basename globs (*.designer.cs etc. — D028)
175
+ // - autogen header markers (<auto-generated>/@generated/DO NOT EDIT)
176
+ // - test files excluded (pack-driven test patterns — supersedes
177
+ // the old crude substring matchers .test/.spec/__tests__/_test/test_)
178
+ //
179
+ // The pre-migration inline `.swp/.pyc/.lic/.pem` filter is redundant
180
+ // — none are source extensions, so the walker's extension filter
181
+ // already drops them.
182
+ const sources = (0, walk_source_files_1.walkSourceFiles)(cwd);
183
+ const flags = languageFlags ?? {};
184
+ const primaryPaths = (0, languages_1.allPrimaryComponentPaths)(flags);
185
+ const modelPaths = (0, languages_1.allModelPaths)(flags);
186
+ const taxonomy = (0, languages_1.allTestGapPriorityPaths)(flags);
167
187
  const files = [];
168
- for (const line of raw.split('\n')) {
169
- const p = line.trim();
170
- if (!p)
171
- continue;
172
- // Skip test files themselves
173
- if (p.includes('.test.') ||
174
- p.includes('.spec.') ||
175
- p.includes('__tests__') ||
176
- p.includes('_test.') ||
177
- p.includes('test_'))
178
- continue;
179
- // Skip type definition files
180
- if (p.endsWith('.d.ts'))
181
- continue;
182
- const fullPath = `${cwd}/${p.replace('./', '')}`;
188
+ for (const p of sources) {
189
+ const fullPath = path.join(cwd, p);
183
190
  let lines = 0;
184
191
  try {
185
192
  const content = fs.readFileSync(fullPath, 'utf-8');
@@ -188,11 +195,10 @@ function gatherSourceFiles(cwd) {
188
195
  catch {
189
196
  continue;
190
197
  }
191
- const cleanPath = p.replace('./', '');
192
- const type = classifyFileType(cleanPath);
193
- const risk = classifyRisk(cleanPath, type, lines);
198
+ const type = classifyFileType(p, primaryPaths, modelPaths);
199
+ const risk = classifyRisk(p, lines, taxonomy);
194
200
  files.push({
195
- path: cleanPath,
201
+ path: p,
196
202
  lines,
197
203
  type,
198
204
  risk,
@@ -201,18 +207,30 @@ function gatherSourceFiles(cwd) {
201
207
  }
202
208
  return files;
203
209
  }
204
- function classifyFileType(filePath) {
205
- const lower = filePath.toLowerCase();
206
- if (lower.includes('/controllers/') || lower.includes('/handlers/'))
207
- return 'controller';
208
- if (lower.includes('/services/'))
209
- return 'service';
210
- if (lower.includes('/interceptors/') || lower.includes('/middleware/'))
211
- return 'interceptor';
212
- if (lower.includes('/models/'))
213
- return 'model';
214
- if (lower.includes('/repositories/'))
215
- return 'repository';
210
+ /**
211
+ * Tag a source file with a role label drawn from the first
212
+ * architectural-shape pattern it matches. The matching uses a
213
+ * leading-slash-anchored substring check so `"/controllers/"`
214
+ * matches a directory boundary rather than any file whose name
215
+ * happens to contain the word.
216
+ *
217
+ * Pre-extension this function held a hardcoded enum of backend
218
+ * roles (`'controller' | 'service' | 'interceptor' | 'model' |
219
+ * 'repository'`); a React component or .NET Form fell through to
220
+ * `'other'` and lost its architectural context in the markdown
221
+ * report. The label now comes from the matched pack pattern,
222
+ * preserving stack-specific vocabulary in the rendered output.
223
+ */
224
+ function classifyFileType(filePath, primaryPaths, modelPaths) {
225
+ const anchored = ('/' + filePath).toLowerCase();
226
+ for (const p of primaryPaths) {
227
+ if (anchored.includes(p.toLowerCase()))
228
+ return patternToLabel(p);
229
+ }
230
+ for (const p of modelPaths) {
231
+ if (anchored.includes(p.toLowerCase()))
232
+ return patternToLabel(p);
233
+ }
216
234
  return 'other';
217
235
  }
218
236
  /**
@@ -222,24 +240,35 @@ function classifyFileType(filePath) {
222
240
  * Downgrade these to their structural tier (usually LOW).
223
241
  */
224
242
  const META_TOOL_PATH_PREFIXES = [/^src\/analyzers\//, /^tmp\//, /^scripts\//];
225
- function classifyRisk(filePath, type, lines) {
243
+ function classifyRisk(filePath, lines, taxonomy) {
226
244
  const lower = filePath.toLowerCase();
245
+ const anchored = '/' + lower;
227
246
  // Meta-tool exception: security analyzer code matches CRITICAL_PATTERNS by
228
247
  // name alone (e.g. src/analyzers/security/gather.ts), but it's tooling, not
229
248
  // application security. Skip the pattern check so it falls through to the
230
249
  // size/type tiering below. Relative-path match — deliberately strict so we
231
250
  // don't accidentally downgrade real app code in an `analyzers` module.
232
251
  const isMetaTool = META_TOOL_PATH_PREFIXES.some((p) => p.test(filePath));
233
- // Security-critical files are always CRITICAL regardless of size
252
+ // CRITICAL pack-agnostic security regexes (auth/jwt/crypto/...) and
253
+ // any pack-specific critical path the active stack declared.
234
254
  if (!isMetaTool && CRITICAL_PATTERNS.some((p) => p.test(lower)))
235
255
  return 'critical';
236
- // Large controllers/services are HIGH
237
- if ((type === 'controller' || type === 'service') && lines > 500)
256
+ if (!isMetaTool && taxonomy.critical.some((p) => anchored.includes(p.toLowerCase()))) {
257
+ return 'critical';
258
+ }
259
+ // HIGH — large files sitting in a pack's high-priority path (typical
260
+ // backend rule: large controllers/services). A small file in the same
261
+ // directory falls through to MEDIUM, preserving the pre-extension
262
+ // semantic that risk scales with file size for high-impact surfaces.
263
+ const matchesHigh = taxonomy.high.some((p) => anchored.includes(p.toLowerCase()));
264
+ if (matchesHigh && lines > 500)
238
265
  return 'high';
239
- // Normal controllers/services/interceptors are MEDIUM
240
- if (type === 'controller' || type === 'service' || type === 'interceptor')
266
+ if (matchesHigh)
267
+ return 'medium';
268
+ // MEDIUM — pack's medium-priority path (defaults to primaryComponentPaths
269
+ // when the pack omits `testGapPriority.medium`).
270
+ if (taxonomy.medium.some((p) => anchored.includes(p.toLowerCase())))
241
271
  return 'medium';
242
- // Everything else is LOW
243
272
  return 'low';
244
273
  }
245
274
  // ─── Match tests to source files ────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"gather.js","sourceRoot":"","sources":["../../../src/analyzers/tests/gather.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gather.js","sourceRoot":"","sources":["../../../src/analyzers/tests/gather.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,14 @@
1
- import { TestGapsReport } from './types';
2
- export type { TestGapsReport, SourceFile, TestFile, CoverageSource } from './types';
1
+ import { TestGapsReport, CoverageSource, CoverageFidelity } from './types';
2
+ export type { TestGapsReport, SourceFile, TestFile, CoverageSource, CoverageFidelity, } from './types';
3
+ /**
4
+ * D021 (2.4.7): classify `coverageSource` into a fidelity tier. Returns
5
+ * `line-coverage` for any real artifact (everything in
6
+ * `tools/coverage.ts:CoverageSource`), `import-graph` for the
7
+ * derived call-edge signal, `filename-match` for the heuristic
8
+ * fallback. Pure function — exported for unit tests + reuse from
9
+ * the report orchestrator.
10
+ */
11
+ export declare function tierFromCoverageSource(source: CoverageSource): CoverageFidelity;
3
12
  export interface AnalyzeTestGapsOptions {
4
13
  verbose?: boolean;
5
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzers/tests/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAA8B,MAAM,SAAS,CAAC;AAErE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEpF,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,cAAc,CAAC,CA0GzB;AAwBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAqFpF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzers/tests/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAc,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGvF,YAAY,EACV,cAAc,EACd,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAI/E;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,cAAc,CAAC,CAuHzB;AA0BD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA6HpF"}
@@ -33,25 +33,52 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.tierFromCoverageSource = tierFromCoverageSource;
36
37
  exports.analyzeTestGaps = analyzeTestGaps;
37
38
  exports.formatTestGapsReport = formatTestGapsReport;
38
39
  /**
39
40
  * Test gap analyzer — public API.
40
41
  */
41
42
  const path = __importStar(require("path"));
42
- const detect_1 = require("../../detect");
43
- const runner_1 = require("../tools/runner");
43
+ const cache_1 = require("../cache");
44
+ const health_1 = require("../health");
44
45
  const timing_1 = require("../tools/timing");
45
46
  const coverage_1 = require("../tools/coverage");
46
47
  const import_graph_1 = require("./import-graph");
47
48
  const gather_1 = require("./gather");
49
+ const tools_unavailable_prose_1 = require("../tools/tools-unavailable-prose");
50
+ /**
51
+ * D021 (2.4.7): classify `coverageSource` into a fidelity tier. Returns
52
+ * `line-coverage` for any real artifact (everything in
53
+ * `tools/coverage.ts:CoverageSource`), `import-graph` for the
54
+ * derived call-edge signal, `filename-match` for the heuristic
55
+ * fallback. Pure function — exported for unit tests + reuse from
56
+ * the report orchestrator.
57
+ */
58
+ function tierFromCoverageSource(source) {
59
+ if (source === 'filename-match')
60
+ return 'filename-match';
61
+ if (source === 'import-graph')
62
+ return 'import-graph';
63
+ return 'line-coverage';
64
+ }
48
65
  async function analyzeTestGaps(repoPath, options = {}) {
49
66
  const verbose = !!options.verbose;
50
- const stack = (0, detect_1.detect)(repoPath);
67
+ // Single canonical analysis envelope shared across consumers.
68
+ // analyzeTestGaps reads provenance + stack from the cache so two
69
+ // subcommands on the same SHA stamp identical timestamps and
70
+ // surface the same project name / branch. Per-file source/test
71
+ // gather + import-graph reachability still run locally (those
72
+ // signals aren't part of the cached envelope today).
73
+ const cacheResult = await (0, cache_1.readOrBuildAnalysisResult)({
74
+ cwd: repoPath,
75
+ build: (cwd) => (0, health_1.gatherAnalysisResultBody)(cwd, { verbose }),
76
+ });
77
+ const { stack } = cacheResult;
51
78
  const toolsUsed = ['find', 'grep', 'git'];
52
79
  const toolsUnavailable = [];
53
80
  const testFiles = (0, timing_1.timed)('test-files', verbose, () => (0, gather_1.gatherTestFiles)(repoPath));
54
- const sourceFiles = (0, timing_1.timed)('source-files', verbose, () => (0, gather_1.gatherSourceFiles)(repoPath));
81
+ const sourceFiles = (0, timing_1.timed)('source-files', verbose, () => (0, gather_1.gatherSourceFiles)(repoPath, stack.languages));
55
82
  (0, timing_1.timed)('match', verbose, () => (0, gather_1.matchTestsToSource)(testFiles, sourceFiles));
56
83
  // Signal precedence for test coverage (strongest wins for files it covers):
57
84
  //
@@ -117,16 +144,17 @@ async function analyzeTestGaps(repoPath, options = {}) {
117
144
  : 0;
118
145
  }
119
146
  return {
120
- repo: stack.projectName || path.basename(repoPath),
121
- analyzedAt: new Date().toISOString(),
122
- commitSha: (0, runner_1.run)('git rev-parse --short HEAD 2>/dev/null', repoPath),
123
- branch: (0, runner_1.run)('git rev-parse --abbrev-ref HEAD 2>/dev/null', repoPath),
147
+ repo: stack.projectName || path.basename(cacheResult.cwd),
148
+ analyzedAt: cacheResult.builtAt,
149
+ commitSha: cacheResult.commitSha,
150
+ branch: cacheResult.branch,
124
151
  summary: {
125
152
  testFiles: testFiles.length,
126
153
  activeTestFiles: activeTests.length,
127
154
  commentedOutFiles: commentedOut.length,
128
155
  effectiveCoverage,
129
156
  coverageSource,
157
+ coverageFidelity: tierFromCoverageSource(coverageSource),
130
158
  coverageSourceFile: coverage?.sourceFile,
131
159
  sourceFiles: sourceFiles.length,
132
160
  untestedCritical: untestedByRisk.critical,
@@ -164,6 +192,8 @@ function coverageSourceLabel(source, file) {
164
192
  return `from ${file ?? 'lcov.info'}`;
165
193
  case 'jacoco':
166
194
  return `from ${file ?? 'jacocoTestReport.xml'}`;
195
+ case 'simplecov':
196
+ return `from ${file ?? 'coverage/.resultset.json'}`;
167
197
  }
168
198
  }
169
199
  function formatTestGapsReport(report, elapsed) {
@@ -174,15 +204,50 @@ function formatTestGapsReport(report, elapsed) {
174
204
  L.push(`**Repository:** ${report.repo}`);
175
205
  L.push(`**Branch:** ${report.branch} (${report.commitSha})`);
176
206
  L.push('');
207
+ // D021 (2.4.7): coverage-fidelity banner. Surface the trust level of
208
+ // the headline percentage up-front so customers don't read a 0% from
209
+ // filename-match the same way they'd read a 0% from a real coverage
210
+ // run. The `coverage-pipeline` install hint points at the per-pack
211
+ // `runTests` capability — `vyuh-dxkit health --with-coverage` (D021
212
+ // sub-piece 2) materializes the artifact before analysis.
213
+ const s = report.summary;
214
+ if (s.coverageFidelity === 'filename-match') {
215
+ L.push(`> ⚠️ **Heuristic coverage**: the ${s.effectiveCoverage}% headline is a ` +
216
+ `filename-match estimate — it counts source files with a name-matched ` +
217
+ `test, not lines actually exercised. A 200-line file with a 5-line test ` +
218
+ `passes. Run \`vyuh-dxkit coverage\` (or \`vyuh-dxkit health --with-coverage\`) ` +
219
+ `to materialize a real coverage artifact for line-level truth.`);
220
+ L.push('');
221
+ }
222
+ else if (s.coverageFidelity === 'import-graph') {
223
+ L.push(`> ℹ️ **Import-graph coverage**: the ${s.effectiveCoverage}% headline is ` +
224
+ `derived from test files' import edges (up to N hops) — stronger than ` +
225
+ `filename-match because it follows real call paths, but it doesn't know ` +
226
+ `what executed at runtime. Run a coverage pipeline for line-level truth.`);
227
+ L.push('');
228
+ }
177
229
  L.push('---');
178
230
  L.push('');
179
231
  // Executive summary
180
- const s = report.summary;
181
232
  L.push('## Executive Summary');
182
233
  L.push('');
183
234
  L.push('| Metric | Value |');
184
235
  L.push('|--------|-------|');
185
- L.push(`| Test files found | ${s.testFiles} |`);
236
+ // Surface the active vs schema-only split on the headline row.
237
+ // platform repos sometimes register a `*.spec.ts` that's a
238
+ // dependency-injection schema only — counted as "found" but
239
+ // exercises no assertion. Reader scanning "Test files found: 1"
240
+ // would otherwise miss that 0 of them are real tests.
241
+ const schemaOnlyCount = s.testFiles - s.activeTestFiles - s.commentedOutFiles;
242
+ const breakdown = [];
243
+ if (s.activeTestFiles > 0)
244
+ breakdown.push(`${s.activeTestFiles} active`);
245
+ if (s.commentedOutFiles > 0)
246
+ breakdown.push(`${s.commentedOutFiles} commented-out`);
247
+ if (schemaOnlyCount > 0)
248
+ breakdown.push(`${schemaOnlyCount} schema-only`);
249
+ const testFilesCell = breakdown.length > 0 ? `${s.testFiles} (${breakdown.join(', ')})` : `${s.testFiles}`;
250
+ L.push(`| Test files found | ${testFilesCell} |`);
186
251
  L.push(`| Active test files | ${s.activeTestFiles} |`);
187
252
  L.push(`| Commented-out test files | ${s.commentedOutFiles} |`);
188
253
  L.push(`| Effective coverage | **${s.effectiveCoverage}%** (${coverageSourceLabel(s.coverageSource, s.coverageSourceFile)}) |`);
@@ -210,12 +275,16 @@ function formatTestGapsReport(report, elapsed) {
210
275
  L.push('');
211
276
  L.push('---');
212
277
  L.push('');
213
- // Gaps by risk tier
278
+ // Gaps by risk tier. Titles are stack-agnostic so the prose stays
279
+ // accurate whether the active stack is backend (controllers/services
280
+ // are the primary surface), frontend (components/pages), or desktop
281
+ // (Forms/ViewModels). Per-file role detail lives in the Type column,
282
+ // populated from each active pack's architectural-shape vocabulary.
214
283
  const tiers = [
215
- { risk: 'critical', title: 'CRITICAL (Security/auth risk)' },
216
- { risk: 'high', title: 'HIGH (Business logic/large files)' },
217
- { risk: 'medium', title: 'MEDIUM (Standard controllers/services)' },
218
- { risk: 'low', title: 'LOW (Models/utilities)' },
284
+ { risk: 'critical', title: 'CRITICAL (security/auth surfaces)' },
285
+ { risk: 'high', title: 'HIGH (large primary components)' },
286
+ { risk: 'medium', title: 'MEDIUM (primary components)' },
287
+ { risk: 'low', title: 'LOW (supporting code)' },
219
288
  ];
220
289
  L.push('## Critical Gaps');
221
290
  L.push('');
@@ -238,9 +307,7 @@ function formatTestGapsReport(report, elapsed) {
238
307
  L.push('---');
239
308
  L.push('');
240
309
  L.push(`**Tools used:** ${report.toolsUsed.join(', ')}`);
241
- if (report.toolsUnavailable.length > 0) {
242
- L.push(`**Tools unavailable:** ${report.toolsUnavailable.join(', ')}`);
243
- }
310
+ L.push(...(0, tools_unavailable_prose_1.renderToolsUnavailableLines)(report.toolsUnavailable));
244
311
  L.push(`**Analysis time:** ${elapsed}s`);
245
312
  L.push('');
246
313
  L.push('*Generated by [VyuhLabs DXKit](https://www.npmjs.com/package/@vyuhlabs/dxkit)*');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/tests/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/tests/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,24 @@
1
1
  /**
2
- * Testing dimension — shallow score for health aggregation.
2
+ * Testing dimension — health-side adapter over the declarative
3
+ * testing scoring spec.
3
4
  *
4
- * Phase 3: delegates to scoring.ts (identical behavior).
5
- * Phase 5: will be replaced with dedicated test gap analyzer logic.
5
+ * Builds `TestingScoreInput` from the health-side `ScoreInput`
6
+ * (HealthMetrics + CapabilityReport) and dispatches through
7
+ * `evaluateSpec`. The resulting `DimensionScore` carries the score,
8
+ * rating letter, full provenance (deductions, capsApplied,
9
+ * topActions), and the dimension-specific metrics + details surfaced
10
+ * in the health audit's markdown.
6
11
  */
7
- import { DimensionScore } from '../types';
8
- import { ScoreInput } from '../scoring';
12
+ import { type TestingScoreInput } from '../../scoring';
13
+ import { DimensionScore, ScoreInput } from '../types';
14
+ export declare function toTestingScoreInput(input: ScoreInput): TestingScoreInput;
15
+ /**
16
+ * Score-only adapter for the health remediation planner. Mirrors
17
+ * `scoreSecurityFromScoreInput` / `scoreQualityFromScoreInput` so
18
+ * `health/actions.ts` stays symmetric across dimensions.
19
+ */
20
+ export declare function scoreTestFromScoreInput(input: ScoreInput): {
21
+ score: number;
22
+ };
9
23
  export declare function scoreTestsDimension(input: ScoreInput): DimensionScore;
10
24
  //# sourceMappingURL=shallow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shallow.d.ts","sourceRoot":"","sources":["../../../src/analyzers/tests/shallow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAEnD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAErE"}
1
+ {"version":3,"file":"shallow.d.ts","sourceRoot":"","sources":["../../../src/analyzers/tests/shallow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAOtD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,iBAAiB,CAWxE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAuDrE"}