@vyuhlabs/dxkit 1.6.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +3 -3
  3. package/dist/agents/extract.d.ts +25 -0
  4. package/dist/agents/extract.d.ts.map +1 -0
  5. package/dist/agents/extract.js +186 -0
  6. package/dist/agents/extract.js.map +1 -0
  7. package/dist/agents/schemas.d.ts +106 -0
  8. package/dist/agents/schemas.d.ts.map +1 -0
  9. package/dist/agents/schemas.js +86 -0
  10. package/dist/agents/schemas.js.map +1 -0
  11. package/dist/agents/session.d.ts +28 -0
  12. package/dist/agents/session.d.ts.map +1 -0
  13. package/dist/agents/session.js +223 -0
  14. package/dist/agents/session.js.map +1 -0
  15. package/dist/analyzers/developer/detailed.js +1 -1
  16. package/dist/analyzers/developer/detailed.js.map +1 -1
  17. package/dist/analyzers/dispatcher.d.ts +36 -0
  18. package/dist/analyzers/dispatcher.d.ts.map +1 -0
  19. package/dist/analyzers/dispatcher.js +62 -0
  20. package/dist/analyzers/dispatcher.js.map +1 -0
  21. package/dist/analyzers/docs/shallow.d.ts +3 -2
  22. package/dist/analyzers/docs/shallow.d.ts.map +1 -1
  23. package/dist/analyzers/docs/shallow.js +2 -2
  24. package/dist/analyzers/docs/shallow.js.map +1 -1
  25. package/dist/analyzers/dx/shallow.d.ts +3 -2
  26. package/dist/analyzers/dx/shallow.d.ts.map +1 -1
  27. package/dist/analyzers/dx/shallow.js +2 -2
  28. package/dist/analyzers/dx/shallow.js.map +1 -1
  29. package/dist/analyzers/health/actions.d.ts +3 -3
  30. package/dist/analyzers/health/actions.d.ts.map +1 -1
  31. package/dist/analyzers/health/actions.js +99 -52
  32. package/dist/analyzers/health/actions.js.map +1 -1
  33. package/dist/analyzers/health/detailed.d.ts.map +1 -1
  34. package/dist/analyzers/health/detailed.js +6 -2
  35. package/dist/analyzers/health/detailed.js.map +1 -1
  36. package/dist/analyzers/health.d.ts +0 -2
  37. package/dist/analyzers/health.d.ts.map +1 -1
  38. package/dist/analyzers/health.js +123 -72
  39. package/dist/analyzers/health.js.map +1 -1
  40. package/dist/analyzers/maintainability/shallow.d.ts +3 -2
  41. package/dist/analyzers/maintainability/shallow.d.ts.map +1 -1
  42. package/dist/analyzers/maintainability/shallow.js +2 -2
  43. package/dist/analyzers/maintainability/shallow.js.map +1 -1
  44. package/dist/analyzers/quality/detailed.js +1 -1
  45. package/dist/analyzers/quality/detailed.js.map +1 -1
  46. package/dist/analyzers/quality/gather.d.ts +33 -4
  47. package/dist/analyzers/quality/gather.d.ts.map +1 -1
  48. package/dist/analyzers/quality/gather.js +81 -93
  49. package/dist/analyzers/quality/gather.js.map +1 -1
  50. package/dist/analyzers/quality/index.js +4 -4
  51. package/dist/analyzers/quality/index.js.map +1 -1
  52. package/dist/analyzers/quality/shallow.d.ts +3 -2
  53. package/dist/analyzers/quality/shallow.d.ts.map +1 -1
  54. package/dist/analyzers/quality/shallow.js +2 -2
  55. package/dist/analyzers/quality/shallow.js.map +1 -1
  56. package/dist/analyzers/scoring.d.ts +26 -9
  57. package/dist/analyzers/scoring.d.ts.map +1 -1
  58. package/dist/analyzers/scoring.js +83 -71
  59. package/dist/analyzers/scoring.js.map +1 -1
  60. package/dist/analyzers/security/detailed.js +1 -1
  61. package/dist/analyzers/security/detailed.js.map +1 -1
  62. package/dist/analyzers/security/gather.d.ts +28 -5
  63. package/dist/analyzers/security/gather.d.ts.map +1 -1
  64. package/dist/analyzers/security/gather.js +87 -135
  65. package/dist/analyzers/security/gather.js.map +1 -1
  66. package/dist/analyzers/security/index.d.ts +1 -1
  67. package/dist/analyzers/security/index.d.ts.map +1 -1
  68. package/dist/analyzers/security/index.js +16 -11
  69. package/dist/analyzers/security/index.js.map +1 -1
  70. package/dist/analyzers/security/report.d.ts +6 -0
  71. package/dist/analyzers/security/report.d.ts.map +1 -0
  72. package/dist/analyzers/security/report.js +118 -0
  73. package/dist/analyzers/security/report.js.map +1 -0
  74. package/dist/analyzers/security/shallow.d.ts +3 -2
  75. package/dist/analyzers/security/shallow.d.ts.map +1 -1
  76. package/dist/analyzers/security/shallow.js +2 -2
  77. package/dist/analyzers/security/shallow.js.map +1 -1
  78. package/dist/analyzers/tests/detailed.js +1 -1
  79. package/dist/analyzers/tests/detailed.js.map +1 -1
  80. package/dist/analyzers/tests/import-graph.d.ts +8 -22
  81. package/dist/analyzers/tests/import-graph.d.ts.map +1 -1
  82. package/dist/analyzers/tests/import-graph.js +22 -189
  83. package/dist/analyzers/tests/import-graph.js.map +1 -1
  84. package/dist/analyzers/tests/index.d.ts +1 -1
  85. package/dist/analyzers/tests/index.d.ts.map +1 -1
  86. package/dist/analyzers/tests/index.js +3 -3
  87. package/dist/analyzers/tests/index.js.map +1 -1
  88. package/dist/analyzers/tests/shallow.d.ts +3 -2
  89. package/dist/analyzers/tests/shallow.d.ts.map +1 -1
  90. package/dist/analyzers/tests/shallow.js +2 -2
  91. package/dist/analyzers/tests/shallow.js.map +1 -1
  92. package/dist/analyzers/tools/coverage.d.ts +21 -11
  93. package/dist/analyzers/tools/coverage.d.ts.map +1 -1
  94. package/dist/analyzers/tools/coverage.js +32 -44
  95. package/dist/analyzers/tools/coverage.js.map +1 -1
  96. package/dist/analyzers/tools/dotnet.d.ts +8 -0
  97. package/dist/analyzers/tools/dotnet.d.ts.map +1 -0
  98. package/dist/analyzers/tools/dotnet.js +81 -0
  99. package/dist/analyzers/tools/dotnet.js.map +1 -0
  100. package/dist/analyzers/tools/gather-cache.d.ts +16 -0
  101. package/dist/analyzers/tools/gather-cache.d.ts.map +1 -0
  102. package/dist/analyzers/tools/gather-cache.js +126 -0
  103. package/dist/analyzers/tools/gather-cache.js.map +1 -0
  104. package/dist/analyzers/tools/generic.d.ts.map +1 -1
  105. package/dist/analyzers/tools/generic.js +6 -28
  106. package/dist/analyzers/tools/generic.js.map +1 -1
  107. package/dist/analyzers/tools/gitleaks.d.ts +28 -5
  108. package/dist/analyzers/tools/gitleaks.d.ts.map +1 -1
  109. package/dist/analyzers/tools/gitleaks.js +91 -37
  110. package/dist/analyzers/tools/gitleaks.js.map +1 -1
  111. package/dist/analyzers/tools/go.d.ts +8 -0
  112. package/dist/analyzers/tools/go.d.ts.map +1 -0
  113. package/dist/analyzers/tools/go.js +84 -0
  114. package/dist/analyzers/tools/go.js.map +1 -0
  115. package/dist/analyzers/tools/graphify.d.ts +31 -3
  116. package/dist/analyzers/tools/graphify.d.ts.map +1 -1
  117. package/dist/analyzers/tools/graphify.js +78 -36
  118. package/dist/analyzers/tools/graphify.js.map +1 -1
  119. package/dist/analyzers/tools/grep-secrets.d.ts +6 -0
  120. package/dist/analyzers/tools/grep-secrets.d.ts.map +1 -0
  121. package/dist/analyzers/tools/grep-secrets.js +124 -0
  122. package/dist/analyzers/tools/grep-secrets.js.map +1 -0
  123. package/dist/analyzers/tools/jscpd.d.ts +40 -0
  124. package/dist/analyzers/tools/jscpd.d.ts.map +1 -0
  125. package/dist/analyzers/tools/jscpd.js +96 -0
  126. package/dist/analyzers/tools/jscpd.js.map +1 -0
  127. package/dist/analyzers/tools/node.d.ts +8 -0
  128. package/dist/analyzers/tools/node.d.ts.map +1 -0
  129. package/dist/analyzers/tools/node.js +160 -0
  130. package/dist/analyzers/tools/node.js.map +1 -0
  131. package/dist/analyzers/tools/package-json.d.ts +6 -0
  132. package/dist/analyzers/tools/package-json.d.ts.map +1 -0
  133. package/dist/analyzers/tools/package-json.js +67 -0
  134. package/dist/analyzers/tools/package-json.js.map +1 -0
  135. package/dist/analyzers/tools/parallel.d.ts +22 -5
  136. package/dist/analyzers/tools/parallel.d.ts.map +1 -1
  137. package/dist/analyzers/tools/parallel.js +26 -185
  138. package/dist/analyzers/tools/parallel.js.map +1 -1
  139. package/dist/analyzers/tools/paths.d.ts +21 -0
  140. package/dist/analyzers/tools/paths.d.ts.map +1 -0
  141. package/dist/analyzers/tools/paths.js +62 -0
  142. package/dist/analyzers/tools/paths.js.map +1 -0
  143. package/dist/analyzers/tools/python.d.ts +8 -0
  144. package/dist/analyzers/tools/python.d.ts.map +1 -0
  145. package/dist/analyzers/tools/python.js +81 -0
  146. package/dist/analyzers/tools/python.js.map +1 -0
  147. package/dist/analyzers/tools/rust.d.ts +8 -0
  148. package/dist/analyzers/tools/rust.d.ts.map +1 -0
  149. package/dist/analyzers/tools/rust.js +86 -0
  150. package/dist/analyzers/tools/rust.js.map +1 -0
  151. package/dist/analyzers/tools/semgrep.d.ts +39 -0
  152. package/dist/analyzers/tools/semgrep.d.ts.map +1 -0
  153. package/dist/analyzers/tools/semgrep.js +129 -0
  154. package/dist/analyzers/tools/semgrep.js.map +1 -0
  155. package/dist/analyzers/tools/tool-registry.d.ts +0 -41
  156. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  157. package/dist/analyzers/tools/tool-registry.js +0 -87
  158. package/dist/analyzers/tools/tool-registry.js.map +1 -1
  159. package/dist/analyzers/types.d.ts +42 -30
  160. package/dist/analyzers/types.d.ts.map +1 -1
  161. package/dist/cli.js +2 -2
  162. package/dist/cli.js.map +1 -1
  163. package/dist/constants.d.ts +1 -3
  164. package/dist/constants.d.ts.map +1 -1
  165. package/dist/constants.js +55 -14
  166. package/dist/constants.js.map +1 -1
  167. package/dist/languages/capabilities/descriptors.d.ts +74 -0
  168. package/dist/languages/capabilities/descriptors.d.ts.map +1 -0
  169. package/dist/languages/capabilities/descriptors.js +250 -0
  170. package/dist/languages/capabilities/descriptors.js.map +1 -0
  171. package/dist/languages/capabilities/global.d.ts +43 -0
  172. package/dist/languages/capabilities/global.d.ts.map +1 -0
  173. package/dist/languages/capabilities/global.js +48 -0
  174. package/dist/languages/capabilities/global.js.map +1 -0
  175. package/dist/languages/capabilities/index.d.ts +31 -0
  176. package/dist/languages/capabilities/index.d.ts.map +1 -0
  177. package/dist/languages/capabilities/index.js +56 -0
  178. package/dist/languages/capabilities/index.js.map +1 -0
  179. package/dist/languages/capabilities/provider.d.ts +16 -0
  180. package/dist/languages/capabilities/provider.d.ts.map +1 -0
  181. package/dist/languages/capabilities/provider.js +12 -0
  182. package/dist/languages/capabilities/provider.js.map +1 -0
  183. package/dist/languages/capabilities/types.d.ts +226 -0
  184. package/dist/languages/capabilities/types.d.ts.map +1 -0
  185. package/dist/languages/capabilities/types.js +23 -0
  186. package/dist/languages/capabilities/types.js.map +1 -0
  187. package/dist/languages/csharp.d.ts +8 -0
  188. package/dist/languages/csharp.d.ts.map +1 -1
  189. package/dist/languages/csharp.js +203 -103
  190. package/dist/languages/csharp.js.map +1 -1
  191. package/dist/languages/go.d.ts +13 -7
  192. package/dist/languages/go.d.ts.map +1 -1
  193. package/dist/languages/go.js +277 -183
  194. package/dist/languages/go.js.map +1 -1
  195. package/dist/languages/python.d.ts +14 -0
  196. package/dist/languages/python.d.ts.map +1 -1
  197. package/dist/languages/python.js +276 -169
  198. package/dist/languages/python.js.map +1 -1
  199. package/dist/languages/rust.d.ts +8 -0
  200. package/dist/languages/rust.d.ts.map +1 -1
  201. package/dist/languages/rust.js +218 -131
  202. package/dist/languages/rust.js.map +1 -1
  203. package/dist/languages/types.d.ts +16 -15
  204. package/dist/languages/types.d.ts.map +1 -1
  205. package/dist/languages/typescript.d.ts +12 -11
  206. package/dist/languages/typescript.d.ts.map +1 -1
  207. package/dist/languages/typescript.js +256 -161
  208. package/dist/languages/typescript.js.map +1 -1
  209. package/package.json +1 -1
  210. package/templates/.ai/templates/session-checkpoint-template.md +97 -0
@@ -3,16 +3,45 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildHealthPlans = buildHealthPlans;
4
4
  const remediation_1 = require("../remediation");
5
5
  const scoring_1 = require("../scoring");
6
+ /** Shallow-clone the metrics slice with `patch` merged on top. */
7
+ function withMetrics(cur, patch) {
8
+ return { ...cur, metrics: { ...cur.metrics, ...patch } };
9
+ }
10
+ /**
11
+ * Shallow-clone one capability envelope with `patch` merged on top.
12
+ * Returns `cur` unchanged when the envelope isn't present — the dispatcher
13
+ * only populates capabilities that had real data, and an action whose
14
+ * guard fired against a present envelope will never be asked to patch an
15
+ * absent one.
16
+ */
17
+ function withCapability(cur, key, patch) {
18
+ const existing = cur.capabilities[key];
19
+ if (!existing)
20
+ return cur;
21
+ return {
22
+ ...cur,
23
+ capabilities: {
24
+ ...cur.capabilities,
25
+ [key]: { ...existing, ...patch },
26
+ },
27
+ };
28
+ }
29
+ /** Pull the legacy "error count" (critical + high) from the lint envelope. */
30
+ function lintErrorsFrom(c) {
31
+ return (c.lint?.counts.critical ?? 0) + (c.lint?.counts.high ?? 0);
32
+ }
6
33
  // ─── Testing dimension ──────────────────────────────────────────────────────
7
- function testingActions(m) {
34
+ function testingActions(input) {
35
+ const { metrics: m, capabilities: c } = input;
8
36
  const actions = [];
9
- if (m.commentedCodeRatio !== null && m.commentedCodeRatio > 0.5) {
37
+ const commentedCodeRatio = c.structural?.commentedCodeRatio ?? null;
38
+ if (commentedCodeRatio !== null && commentedCodeRatio > 0.5) {
10
39
  actions.push({
11
40
  id: 'health.testing.restore-commented-tests',
12
41
  title: 'Restore commented-out test files',
13
42
  rationale: 'High commented-code ratio across test files indicates atrophied tests. See test-gaps-detailed.md.',
14
43
  evidence: [],
15
- patch: (cur) => ({ ...cur, commentedCodeRatio: 0.1 }),
44
+ patch: (cur) => withCapability(cur, 'structural', { commentedCodeRatio: 0.1 }),
16
45
  });
17
46
  }
18
47
  if (m.testFiles < m.sourceFiles * 0.1 && m.sourceFiles > 0) {
@@ -22,7 +51,7 @@ function testingActions(m) {
22
51
  title: `Raise test-to-source ratio (${m.testFiles} tests for ${m.sourceFiles} source files)`,
23
52
  rationale: 'Under 10% test-to-source ratio is critical. Start with top CRITICAL untested files — see test-gaps-detailed.md for the ranked list.',
24
53
  evidence: [],
25
- patch: (cur) => ({ ...cur, testFiles: target }),
54
+ patch: (cur) => withMetrics(cur, { testFiles: target }),
26
55
  });
27
56
  }
28
57
  if (!m.coverageConfigExists) {
@@ -31,14 +60,19 @@ function testingActions(m) {
31
60
  title: 'Add test coverage tooling',
32
61
  rationale: 'No coverage config (nyc/c8/jest.coverage/coverage.py). Configure + set threshold.',
33
62
  evidence: [],
34
- patch: (cur) => ({ ...cur, coverageConfigExists: true }),
63
+ patch: (cur) => withMetrics(cur, { coverageConfigExists: true }),
35
64
  });
36
65
  }
37
66
  return actions;
38
67
  }
39
68
  // ─── Quality dimension ──────────────────────────────────────────────────────
40
- function qualityActions(m) {
69
+ function qualityActions(input) {
70
+ const { metrics: m, capabilities: c } = input;
41
71
  const actions = [];
72
+ const lintErrors = lintErrorsFrom(c);
73
+ const lintTool = c.lint?.tool ?? null;
74
+ const maxFunctionsInFile = c.structural?.maxFunctionsInFile ?? null;
75
+ const maxFunctionsFilePath = c.structural?.maxFunctionsFilePath ?? null;
42
76
  if (m.consoleLogCount > 20) {
43
77
  actions.push({
44
78
  id: 'health.quality.remove-console',
@@ -47,50 +81,60 @@ function qualityActions(m) {
47
81
  evidence: m.largestFilePath
48
82
  ? [{ file: m.largestFilePath, rule: 'console-log', tool: 'grep' }]
49
83
  : [],
50
- patch: (cur) => ({ ...cur, consoleLogCount: 10 }),
84
+ patch: (cur) => withMetrics(cur, { consoleLogCount: 10 }),
51
85
  });
52
86
  }
53
- if (m.anyTypeCount > 100 && m.lintTool?.includes('eslint')) {
87
+ if (m.anyTypeCount > 100 && lintTool?.includes('eslint')) {
54
88
  actions.push({
55
89
  id: 'health.quality.remove-any-types',
56
90
  title: `Replace ${m.anyTypeCount} \`: any\` type annotations`,
57
91
  rationale: 'Loose any-types defeat TypeScript. Most can be inferred or narrowed.',
58
92
  evidence: [],
59
- patch: (cur) => ({ ...cur, anyTypeCount: 50 }),
93
+ patch: (cur) => withMetrics(cur, { anyTypeCount: 50 }),
60
94
  });
61
95
  }
62
- if (m.lintErrors > 10) {
96
+ if (lintErrors > 10) {
63
97
  actions.push({
64
98
  id: 'health.quality.fix-lint-errors',
65
- title: `Fix ${m.lintErrors} lint errors`,
66
- rationale: `Run \`${m.lintTool || 'lint'} --fix\` for auto-fixable ones.`,
99
+ title: `Fix ${lintErrors} lint errors`,
100
+ rationale: `Run \`${lintTool || 'lint'} --fix\` for auto-fixable ones.`,
67
101
  evidence: [],
68
- patch: (cur) => ({ ...cur, lintErrors: 0 }),
102
+ // Zero out the "error" tier counts (critical + high); warnings (medium
103
+ // + low) stay as-is since this action only claims error-fixing.
104
+ patch: (cur) => withCapability(cur, 'lint', {
105
+ counts: {
106
+ critical: 0,
107
+ high: 0,
108
+ medium: cur.capabilities.lint?.counts.medium ?? 0,
109
+ low: cur.capabilities.lint?.counts.low ?? 0,
110
+ },
111
+ }),
69
112
  });
70
113
  }
71
- if (m.maxFunctionsInFile !== null && m.maxFunctionsInFile > 50) {
72
- const ev = m.maxFunctionsFilePath
114
+ if (maxFunctionsInFile !== null && maxFunctionsInFile > 50) {
115
+ const ev = maxFunctionsFilePath
73
116
  ? [
74
117
  {
75
- file: m.maxFunctionsFilePath,
118
+ file: maxFunctionsFilePath,
76
119
  rule: 'god-file',
77
120
  tool: 'graphify',
78
- message: `${m.maxFunctionsInFile} functions`,
121
+ message: `${maxFunctionsInFile} functions`,
79
122
  },
80
123
  ]
81
124
  : [];
82
125
  actions.push({
83
126
  id: 'health.quality.split-god-file',
84
- title: `Split densest file (${m.maxFunctionsInFile} functions)`,
127
+ title: `Split densest file (${maxFunctionsInFile} functions)`,
85
128
  rationale: 'Files with 50+ functions are hard to test and review.',
86
129
  evidence: ev,
87
- patch: (cur) => ({ ...cur, maxFunctionsInFile: 40 }),
130
+ patch: (cur) => withCapability(cur, 'structural', { maxFunctionsInFile: 40 }),
88
131
  });
89
132
  }
90
133
  return actions;
91
134
  }
92
135
  // ─── Documentation dimension ────────────────────────────────────────────────
93
- function docsActions(m) {
136
+ function docsActions(input) {
137
+ const m = input.metrics;
94
138
  const actions = [];
95
139
  if (!m.readmeExists || m.readmeLines < 50) {
96
140
  actions.push({
@@ -100,7 +144,7 @@ function docsActions(m) {
100
144
  : 'Create a README.md',
101
145
  rationale: 'README is the first impression. Target 50+ lines covering setup, run, test.',
102
146
  evidence: [],
103
- patch: (cur) => ({ ...cur, readmeExists: true, readmeLines: 120 }),
147
+ patch: (cur) => withMetrics(cur, { readmeExists: true, readmeLines: 120 }),
104
148
  });
105
149
  }
106
150
  if (!m.contributingExists) {
@@ -109,7 +153,7 @@ function docsActions(m) {
109
153
  title: 'Add CONTRIBUTING.md',
110
154
  rationale: 'Codifies contribution expectations, PR template, commit conventions.',
111
155
  evidence: [],
112
- patch: (cur) => ({ ...cur, contributingExists: true }),
156
+ patch: (cur) => withMetrics(cur, { contributingExists: true }),
113
157
  });
114
158
  }
115
159
  if (!m.architectureDocsExist) {
@@ -118,7 +162,7 @@ function docsActions(m) {
118
162
  title: 'Add architecture/ADR documentation',
119
163
  rationale: 'System design context prevents tribal-knowledge debt.',
120
164
  evidence: [],
121
- patch: (cur) => ({ ...cur, architectureDocsExist: true }),
165
+ patch: (cur) => withMetrics(cur, { architectureDocsExist: true }),
122
166
  });
123
167
  }
124
168
  if (!m.apiDocsExist && (m.controllers > 0 || m.sourceFiles > 100)) {
@@ -127,21 +171,26 @@ function docsActions(m) {
127
171
  title: 'Add API documentation',
128
172
  rationale: 'With controllers/routes present, API surface should be documented.',
129
173
  evidence: [],
130
- patch: (cur) => ({ ...cur, apiDocsExist: true }),
174
+ patch: (cur) => withMetrics(cur, { apiDocsExist: true }),
131
175
  });
132
176
  }
133
177
  return actions;
134
178
  }
135
179
  // ─── Security dimension ─────────────────────────────────────────────────────
136
- function securityActions(m) {
180
+ function securityActions(input) {
181
+ const { metrics: m, capabilities: c } = input;
137
182
  const actions = [];
138
- if (m.secretFindings > 0) {
183
+ const secretFindings = c.secrets?.findings.length ?? 0;
184
+ const depVulnCritical = c.depVulns?.counts.critical ?? 0;
185
+ const depVulnHigh = c.depVulns?.counts.high ?? 0;
186
+ const depAuditTool = c.depVulns?.tool ?? null;
187
+ if (secretFindings > 0) {
139
188
  actions.push({
140
189
  id: 'health.security.remove-secrets',
141
- title: `Rotate & remove ${m.secretFindings} hardcoded secret${m.secretFindings === 1 ? '' : 's'}`,
190
+ title: `Rotate & remove ${secretFindings} hardcoded secret${secretFindings === 1 ? '' : 's'}`,
142
191
  rationale: 'Git history retains secrets — rotate credentials AND purge via git-filter-repo. See vulnerability-scan-detailed.md.',
143
192
  evidence: [],
144
- patch: (cur) => ({ ...cur, secretFindings: 0 }),
193
+ patch: (cur) => withCapability(cur, 'secrets', { findings: [] }),
145
194
  });
146
195
  }
147
196
  if (m.privateKeyFiles > 0) {
@@ -150,21 +199,17 @@ function securityActions(m) {
150
199
  title: `Remove ${m.privateKeyFiles} private key file${m.privateKeyFiles === 1 ? '' : 's'} from git`,
151
200
  rationale: 'Private keys in git are compromised. Rotate + remove + add to .gitignore.',
152
201
  evidence: [],
153
- patch: (cur) => ({ ...cur, privateKeyFiles: 0 }),
202
+ patch: (cur) => withMetrics(cur, { privateKeyFiles: 0 }),
154
203
  });
155
204
  }
156
- if (m.depVulnCritical > 0 || m.depVulnHigh > 0) {
205
+ if (depVulnCritical > 0 || depVulnHigh > 0) {
157
206
  actions.push({
158
207
  id: 'health.security.update-deps',
159
- title: `Update vulnerable dependencies (${m.depVulnCritical}C ${m.depVulnHigh}H)`,
160
- rationale: `Run \`${m.depAuditTool || 'audit tool'} fix\` or bump affected packages.`,
208
+ title: `Update vulnerable dependencies (${depVulnCritical}C ${depVulnHigh}H)`,
209
+ rationale: `Run \`${depAuditTool || 'audit tool'} fix\` or bump affected packages.`,
161
210
  evidence: [],
162
- patch: (cur) => ({
163
- ...cur,
164
- depVulnCritical: 0,
165
- depVulnHigh: 0,
166
- depVulnMedium: 0,
167
- depVulnLow: 0,
211
+ patch: (cur) => withCapability(cur, 'depVulns', {
212
+ counts: { critical: 0, high: 0, medium: 0, low: 0 },
168
213
  }),
169
214
  });
170
215
  }
@@ -174,13 +219,14 @@ function securityActions(m) {
174
219
  title: `Remove ${m.evalCount} eval() call${m.evalCount === 1 ? '' : 's'}`,
175
220
  rationale: 'eval() enables arbitrary code execution. Replace with explicit parsing.',
176
221
  evidence: [],
177
- patch: (cur) => ({ ...cur, evalCount: 0 }),
222
+ patch: (cur) => withMetrics(cur, { evalCount: 0 }),
178
223
  });
179
224
  }
180
225
  return actions;
181
226
  }
182
227
  // ─── Maintainability dimension ──────────────────────────────────────────────
183
- function maintainabilityActions(m) {
228
+ function maintainabilityActions(input) {
229
+ const m = input.metrics;
184
230
  const actions = [];
185
231
  if (m.largestFileLines > 2000) {
186
232
  actions.push({
@@ -190,7 +236,7 @@ function maintainabilityActions(m) {
190
236
  evidence: m.largestFilePath
191
237
  ? [{ file: m.largestFilePath, rule: 'large-file', tool: 'wc' }]
192
238
  : [],
193
- patch: (cur) => ({ ...cur, largestFileLines: 500 }),
239
+ patch: (cur) => withMetrics(cur, { largestFileLines: 500 }),
194
240
  });
195
241
  }
196
242
  if (m.nodeEngineVersion) {
@@ -201,7 +247,7 @@ function maintainabilityActions(m) {
201
247
  title: `Upgrade Node engine (currently ${m.nodeEngineVersion})`,
202
248
  rationale: 'Node < 18 is out of LTS. Upgrade package.json engines.node.',
203
249
  evidence: [{ file: 'package.json', rule: 'outdated-node', tool: 'npm' }],
204
- patch: (cur) => ({ ...cur, nodeEngineVersion: '>=20' }),
250
+ patch: (cur) => withMetrics(cur, { nodeEngineVersion: '>=20' }),
205
251
  });
206
252
  }
207
253
  }
@@ -211,13 +257,14 @@ function maintainabilityActions(m) {
211
257
  title: `Reduce ${m.filesOver500Lines} files > 500 lines`,
212
258
  rationale: 'Large files are hard to navigate and review.',
213
259
  evidence: [],
214
- patch: (cur) => ({ ...cur, filesOver500Lines: 5 }),
260
+ patch: (cur) => withMetrics(cur, { filesOver500Lines: 5 }),
215
261
  });
216
262
  }
217
263
  return actions;
218
264
  }
219
265
  // ─── Developer Experience dimension ─────────────────────────────────────────
220
- function dxActions(m) {
266
+ function dxActions(input) {
267
+ const m = input.metrics;
221
268
  const actions = [];
222
269
  if (m.ciConfigCount === 0) {
223
270
  actions.push({
@@ -225,7 +272,7 @@ function dxActions(m) {
225
272
  title: 'Add CI configuration',
226
273
  rationale: 'No CI on this branch — lint/test/typecheck should block merges. Add .github/workflows or equivalent.',
227
274
  evidence: [],
228
- patch: (cur) => ({ ...cur, ciConfigCount: 1 }),
275
+ patch: (cur) => withMetrics(cur, { ciConfigCount: 1 }),
229
276
  });
230
277
  }
231
278
  if (m.dockerConfigCount === 0) {
@@ -234,7 +281,7 @@ function dxActions(m) {
234
281
  title: 'Add Dockerfile / containerization',
235
282
  rationale: 'Containerized setup eliminates "works on my machine" onboarding friction.',
236
283
  evidence: [],
237
- patch: (cur) => ({ ...cur, dockerConfigCount: 1 }),
284
+ patch: (cur) => withMetrics(cur, { dockerConfigCount: 1 }),
238
285
  });
239
286
  }
240
287
  if (m.precommitConfigCount === 0) {
@@ -243,7 +290,7 @@ function dxActions(m) {
243
290
  title: 'Add pre-commit hooks (husky / pre-commit)',
244
291
  rationale: 'Catch lint/format issues before code leaves the developer machine.',
245
292
  evidence: [],
246
- patch: (cur) => ({ ...cur, precommitConfigCount: 1 }),
293
+ patch: (cur) => withMetrics(cur, { precommitConfigCount: 1 }),
247
294
  });
248
295
  }
249
296
  if (!m.envExampleExists) {
@@ -252,12 +299,12 @@ function dxActions(m) {
252
299
  title: 'Add .env.example',
253
300
  rationale: 'Documents required environment variables without leaking secrets.',
254
301
  evidence: [],
255
- patch: (cur) => ({ ...cur, envExampleExists: true }),
302
+ patch: (cur) => withMetrics(cur, { envExampleExists: true }),
256
303
  });
257
304
  }
258
305
  return actions;
259
306
  }
260
- function buildHealthPlans(metrics) {
307
+ function buildHealthPlans(input) {
261
308
  const dims = [
262
309
  { name: 'Testing', scorer: scoring_1.scoreTest, build: testingActions },
263
310
  { name: 'Quality', scorer: scoring_1.scoreQuality, build: qualityActions },
@@ -267,10 +314,10 @@ function buildHealthPlans(metrics) {
267
314
  { name: 'Developer Experience', scorer: scoring_1.scoreDeveloperExperience, build: dxActions },
268
315
  ];
269
316
  return dims.map((d) => {
270
- const baseline = d.scorer(metrics).score;
271
- const actions = (0, remediation_1.rank)(d.build(metrics), metrics, d.scorer);
317
+ const baseline = d.scorer(input).score;
318
+ const actions = (0, remediation_1.rank)(d.build(input), input, d.scorer);
272
319
  // "Ideal" = apply every action's patch in sequence, then score.
273
- let ideal = metrics;
320
+ let ideal = input;
274
321
  for (const a of actions)
275
322
  ideal = a.patch(ideal);
276
323
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/analyzers/health/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/analyzers/health/actions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"detailed.d.ts","sourceRoot":"","sources":["../../../src/analyzers/health/detailed.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAoB,aAAa,EAAE,MAAM,WAAW,CAAC;AAG5D,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,2DAA2D;IAC3D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5C,+EAA+E;IAC/E,SAAS,EAAE;QACT,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAWD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAa,GACrB,oBAAoB,CAoCtB;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,GACd,MAAM,CA4GR"}
1
+ {"version":3,"file":"detailed.d.ts","sourceRoot":"","sources":["../../../src/analyzers/health/detailed.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAoB,aAAa,EAAE,MAAM,WAAW,CAAC;AAG5D,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,2DAA2D;IAC3D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5C,+EAA+E;IAC/E,SAAS,EAAE;QACT,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAWD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAa,GACrB,oBAAoB,CAwCtB;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,GACd,MAAM,CA4GR"}
@@ -13,7 +13,11 @@ const DIM_TO_KEY = {
13
13
  'Developer Experience': 'developerExperience',
14
14
  };
15
15
  function buildHealthDetailed(report, metrics) {
16
- const plans = (0, actions_1.buildHealthPlans)(metrics);
16
+ // Plans depend on capability-owned fields too; pull them from the report
17
+ // (always populated on real runs, defaults to {} for hand-built fixtures
18
+ // until C.7 narrows the type).
19
+ const scoreInput = { metrics, capabilities: report.capabilities ?? {} };
20
+ const plans = (0, actions_1.buildHealthPlans)(scoreInput);
17
21
  // Build the "ideal" dimension scores by starting from the current report's
18
22
  // dimensions and swapping each dimension's score for its plan ideal.
19
23
  const projectedDims = {
@@ -40,7 +44,7 @@ function buildHealthDetailed(report, metrics) {
40
44
  };
41
45
  return {
42
46
  ...report,
43
- schemaVersion: '10c.1',
47
+ schemaVersion: '11',
44
48
  plans,
45
49
  projectedOverallScore: projected,
46
50
  projectedGrade,
@@ -1 +1 @@
1
- {"version":3,"file":"detailed.js","sourceRoot":"","sources":["../../../src/analyzers/health/detailed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detailed.js","sourceRoot":"","sources":["../../../src/analyzers/health/detailed.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,4 @@ export declare function analyzeHealthWithMetrics(repoPath: string, options?: Ana
17
17
  }>;
18
18
  /** Run a full health analysis on a repository. */
19
19
  export declare function analyzeHealth(repoPath: string, options?: AnalyzeHealthOptions): Promise<HealthReport>;
20
- /** Merge language-specific metrics into the base, preferring non-null values. */
21
- export declare function mergeMetrics(base: HealthMetrics, overlay: Partial<HealthMetrics>): void;
22
20
  //# sourceMappingURL=health.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/analyzers/health.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAetD,mDAAmD;AACnD,wBAAgB,cAAc,IAAI,aAAa,CAgE9C;AAED,iCAAiC;AACjC,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAE3D;AAED,kDAAkD;AAClD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,YAAY,CAAC,CAEvB;AA2GD,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAuBvF"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/analyzers/health.ts"],"names":[],"mappings":"AAWA,OAAO,EAAoB,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA4BxE,mDAAmD;AACnD,wBAAgB,cAAc,IAAI,aAAa,CAyC9C;AAED,iCAAiC;AACjC,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,CAAC,CAE3D;AAED,kDAAkD;AAClD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,YAAY,CAAC,CAEvB"}