@vyuhlabs/dxkit 2.2.1 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/README.md +40 -29
  3. package/dist/analyzers/bom/discovery.d.ts +38 -0
  4. package/dist/analyzers/bom/discovery.d.ts.map +1 -0
  5. package/dist/analyzers/bom/discovery.js +166 -0
  6. package/dist/analyzers/bom/discovery.js.map +1 -0
  7. package/dist/analyzers/bom/gather.d.ts +28 -0
  8. package/dist/analyzers/bom/gather.d.ts.map +1 -1
  9. package/dist/analyzers/bom/gather.js +98 -0
  10. package/dist/analyzers/bom/gather.js.map +1 -1
  11. package/dist/analyzers/bom/index.d.ts +49 -2
  12. package/dist/analyzers/bom/index.d.ts.map +1 -1
  13. package/dist/analyzers/bom/index.js +188 -12
  14. package/dist/analyzers/bom/index.js.map +1 -1
  15. package/dist/analyzers/bom/types.d.ts +33 -1
  16. package/dist/analyzers/bom/types.d.ts.map +1 -1
  17. package/dist/analyzers/licenses/index.d.ts +1 -1
  18. package/dist/analyzers/licenses/index.d.ts.map +1 -1
  19. package/dist/analyzers/licenses/index.js +22 -7
  20. package/dist/analyzers/licenses/index.js.map +1 -1
  21. package/dist/analyzers/security/detailed.d.ts.map +1 -1
  22. package/dist/analyzers/security/detailed.js +21 -8
  23. package/dist/analyzers/security/detailed.js.map +1 -1
  24. package/dist/analyzers/security/gather.d.ts.map +1 -1
  25. package/dist/analyzers/security/gather.js +76 -1
  26. package/dist/analyzers/security/gather.js.map +1 -1
  27. package/dist/analyzers/security/index.d.ts.map +1 -1
  28. package/dist/analyzers/security/index.js +20 -7
  29. package/dist/analyzers/security/index.js.map +1 -1
  30. package/dist/analyzers/tools/epss.d.ts +55 -0
  31. package/dist/analyzers/tools/epss.d.ts.map +1 -0
  32. package/dist/analyzers/tools/epss.js +133 -0
  33. package/dist/analyzers/tools/epss.js.map +1 -0
  34. package/dist/analyzers/tools/graphify.d.ts.map +1 -1
  35. package/dist/analyzers/tools/graphify.js +17 -7
  36. package/dist/analyzers/tools/graphify.js.map +1 -1
  37. package/dist/analyzers/tools/kev.d.ts +52 -0
  38. package/dist/analyzers/tools/kev.d.ts.map +1 -0
  39. package/dist/analyzers/tools/kev.js +95 -0
  40. package/dist/analyzers/tools/kev.js.map +1 -0
  41. package/dist/analyzers/tools/npm-registry.d.ts +43 -0
  42. package/dist/analyzers/tools/npm-registry.d.ts.map +1 -0
  43. package/dist/analyzers/tools/npm-registry.js +107 -0
  44. package/dist/analyzers/tools/npm-registry.js.map +1 -0
  45. package/dist/analyzers/tools/osv.d.ts +12 -0
  46. package/dist/analyzers/tools/osv.d.ts.map +1 -1
  47. package/dist/analyzers/tools/osv.js +45 -2
  48. package/dist/analyzers/tools/osv.js.map +1 -1
  49. package/dist/analyzers/tools/reachability.d.ts +60 -0
  50. package/dist/analyzers/tools/reachability.d.ts.map +1 -0
  51. package/dist/analyzers/tools/reachability.js +104 -0
  52. package/dist/analyzers/tools/reachability.js.map +1 -0
  53. package/dist/analyzers/tools/risk-score.d.ts +69 -0
  54. package/dist/analyzers/tools/risk-score.d.ts.map +1 -0
  55. package/dist/analyzers/tools/risk-score.js +86 -0
  56. package/dist/analyzers/tools/risk-score.js.map +1 -0
  57. package/dist/analyzers/tools/tool-registry.d.ts +13 -0
  58. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  59. package/dist/analyzers/tools/tool-registry.js +81 -35
  60. package/dist/analyzers/tools/tool-registry.js.map +1 -1
  61. package/dist/analyzers/xlsx/bom.d.ts.map +1 -1
  62. package/dist/analyzers/xlsx/bom.js +1 -2
  63. package/dist/analyzers/xlsx/bom.js.map +1 -1
  64. package/dist/cli.d.ts.map +1 -1
  65. package/dist/cli.js +41 -10
  66. package/dist/cli.js.map +1 -1
  67. package/dist/languages/capabilities/types.d.ts +6 -0
  68. package/dist/languages/capabilities/types.d.ts.map +1 -1
  69. package/dist/languages/csharp.d.ts.map +1 -1
  70. package/dist/languages/csharp.js +8 -0
  71. package/dist/languages/csharp.js.map +1 -1
  72. package/dist/languages/go.d.ts.map +1 -1
  73. package/dist/languages/go.js +24 -7
  74. package/dist/languages/go.js.map +1 -1
  75. package/dist/languages/python.d.ts.map +1 -1
  76. package/dist/languages/python.js +8 -0
  77. package/dist/languages/python.js.map +1 -1
  78. package/dist/languages/rust.d.ts.map +1 -1
  79. package/dist/languages/rust.js +9 -0
  80. package/dist/languages/rust.js.map +1 -1
  81. package/dist/languages/typescript.d.ts.map +1 -1
  82. package/dist/languages/typescript.js +23 -1
  83. package/dist/languages/typescript.js.map +1 -1
  84. package/dist/tools-cli.d.ts.map +1 -1
  85. package/dist/tools-cli.js +10 -4
  86. package/dist/tools-cli.js.map +1 -1
  87. package/package.json +1 -1
  88. package/templates/.claude/agents-available/dashboard-builder.md +7 -7
  89. package/templates/.claude/agents-available/dev-report.md +4 -4
  90. package/templates/.claude/agents-available/health-auditor.md +1 -1
  91. package/templates/.claude/agents-available/strategic-planner.md +7 -7
  92. package/templates/.claude/agents-available/vulnerability-scanner.md +3 -3
  93. package/templates/.claude/commands/dashboard.md +1 -1
  94. package/templates/.claude/commands/deps.md +1 -1
  95. package/templates/.claude/commands/dev-report.md +2 -2
  96. package/templates/.claude/commands/docs.md +1 -1
  97. package/templates/.claude/commands/export-pdf.md +3 -3
  98. package/templates/.claude/commands/health.md +3 -3
  99. package/templates/.claude/commands/plan.md +1 -1
  100. package/templates/.claude/commands/quality.md.template +2 -2
  101. package/templates/.claude/commands/stealth-mode.md +1 -1
  102. package/templates/.claude/commands/test-gaps.md +2 -2
  103. package/templates/.claude/commands/vulnerabilities.md +3 -3
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ /**
3
+ * Reachability analysis for dependency vulnerabilities.
4
+ *
5
+ * Answers the triage question "does *my* code actually touch this
6
+ * vulnerable package, anywhere?". A critical CVE in `axios` is
7
+ * meaningful if `import from 'axios'` exists somewhere in my source;
8
+ * it's usually inert noise if axios is a transitive dev-dep nothing
9
+ * actually loads.
10
+ *
11
+ * Input is the aggregated `ImportsResult` (language packs already
12
+ * extract per-file specifiers; the dispatcher unions them). Output is
13
+ * a boolean per `DepVulnFinding.reachable`.
14
+ *
15
+ * Matching is *coarse* — name-level, not call-graph level. Importing
16
+ * `lodash` flags every lodash finding as reachable even if the call
17
+ * sites only touch safe paths. A precise per-advisory reachability
18
+ * check (Snyk-style AST walking into the package itself) belongs in
19
+ * 10h.8 (optional snyk overlay); this module is the OSS-only
20
+ * predecessor the rest of dxkit ships with.
21
+ *
22
+ * Pure functions so renders can be tested without filesystem.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.specifierToPackage = specifierToPackage;
26
+ exports.buildReachablePackageSet = buildReachablePackageSet;
27
+ exports.markReachable = markReachable;
28
+ /**
29
+ * Project an import specifier to the external package name it
30
+ * references, or null for relative / absolute / protocol specifiers.
31
+ *
32
+ * Handles three ecosystems consistently:
33
+ *
34
+ * - npm scoped: `@scope/name` or `@scope/name/subpath` → `@scope/name`
35
+ * - npm bare: `lodash` or `lodash/get` → `lodash`
36
+ * - Python: `foo.bar.baz` (from ImportsResult's raw specifier
37
+ * form) → `foo` (top-level module is the package name)
38
+ * - Go: `github.com/user/repo/subpkg` → `github.com/user/repo`
39
+ * (3-slash module-path convention; detected by the
40
+ * dotted first segment)
41
+ * - Rust / C#: not reliably mapped (crate paths / namespaces
42
+ * don't equal package names). Rust's `use serde`
43
+ * does resolve though, since `serde` is both crate
44
+ * and extracted specifier.
45
+ *
46
+ * Pure; exported for unit tests.
47
+ */
48
+ function specifierToPackage(spec) {
49
+ if (!spec)
50
+ return null;
51
+ // Relative or absolute paths aren't external deps.
52
+ if (spec.startsWith('.') || spec.startsWith('/'))
53
+ return null;
54
+ // URLs / protocol imports aren't deps either.
55
+ if (spec.includes('://'))
56
+ return null;
57
+ // Scoped npm: @scope/name, @scope/name/subpath
58
+ if (spec.startsWith('@')) {
59
+ const parts = spec.split('/');
60
+ if (parts.length < 2)
61
+ return null;
62
+ return `${parts[0]}/${parts[1]}`;
63
+ }
64
+ const slashParts = spec.split('/');
65
+ // Go module convention: first segment has a dot (github.com, golang.org,
66
+ // gitlab.com) → keep 3-segment module path.
67
+ if (slashParts[0].includes('.') && slashParts.length >= 3) {
68
+ return slashParts.slice(0, 3).join('/');
69
+ }
70
+ // TS bare (`lodash`, `lodash/get`) or Python dotted (`foo.bar`,
71
+ // `foo`) — top-level module name is everything before the first
72
+ // `/` or `.`.
73
+ return slashParts[0].split('.')[0];
74
+ }
75
+ /**
76
+ * Build a set of external package names referenced from anywhere in
77
+ * the repo's source. Empty set is safe — means "no imports parsed",
78
+ * which callers treat as "reachability unknown" (leave findings'
79
+ * `reachable` unset rather than mass-false).
80
+ */
81
+ function buildReachablePackageSet(imports) {
82
+ const set = new Set();
83
+ for (const specs of imports.extracted.values()) {
84
+ for (const spec of specs) {
85
+ const pkg = specifierToPackage(spec);
86
+ if (pkg)
87
+ set.add(pkg);
88
+ }
89
+ }
90
+ return set;
91
+ }
92
+ /**
93
+ * Annotate every finding's `reachable` field. `true` when the finding's
94
+ * `package` is in the reachable set; `false` otherwise. Unsetting is
95
+ * intentionally avoided — we always classify once the set is built,
96
+ * because an empty set (no imports parsed) skips this helper entirely
97
+ * at the call site in `gatherDepVulns`.
98
+ */
99
+ function markReachable(findings, reachable) {
100
+ for (const f of findings) {
101
+ f.reachable = reachable.has(f.package);
102
+ }
103
+ }
104
+ //# sourceMappingURL=reachability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reachability.js","sourceRoot":"","sources":["../../../src/analyzers/tools/reachability.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;AAwBH,gDA0BC;AAQD,4DASC;AASD,sCAIC;AA5ED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,mDAAmD;IACnD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,8CAA8C;IAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,+CAA+C;IAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEnC,yEAAyE;IACzE,4CAA4C;IAC5C,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,gEAAgE;IAChE,gEAAgE;IAChE,cAAc;IACd,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,OAAsB;IAC7D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,GAAG;gBAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,QAA0B,EAAE,SAA8B;IACtF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Composite risk score for dependency advisories.
3
+ *
4
+ * Combines four signals into a single 0–100 number that orders
5
+ * remediation priority without requiring the user to juggle CVSS,
6
+ * EPSS, KEV, and reachability in their head:
7
+ *
8
+ * - CVSS base severity (how bad if exploited) — 0–10
9
+ * - EPSS (probability of exploitation in 30d) — 0.0–1.0
10
+ * - KEV (CISA confirmed in-the-wild exploit) — boolean
11
+ * - reachable (my source imports it) — true/false/undefined
12
+ *
13
+ * Formula (multiplicative, clamped):
14
+ *
15
+ * base = cvss * 10 (0–100)
16
+ * kevMul = kev ? 2.0 : 1.0
17
+ * epssMul = 1 + 2 * epss (1.0 – 3.0)
18
+ * reachMul =
19
+ * true → 1.0 (no change)
20
+ * false → 0.25 (heavy discount for provably unreachable)
21
+ * undefined → 0.7 (conservative middle — can't tell, don't zero it)
22
+ * score = clamp(base * kevMul * epssMul * reachMul, 0, 100)
23
+ *
24
+ * Worked examples:
25
+ * - Critical (9.8) + KEV + reachable + EPSS 0.5:
26
+ * 98 * 2.0 * 2.0 * 1.0 = 392 → 100
27
+ * - Critical + not reachable + no KEV + EPSS 0.01:
28
+ * 98 * 1.0 * 1.02 * 0.25 ≈ 25
29
+ * - Low (2.0) + reachable + no KEV + EPSS 0:
30
+ * 20 * 1.0 * 1.0 * 1.0 = 20
31
+ * - Medium (5.5) + no signals, reachable unknown:
32
+ * 55 * 1.0 * 1.0 * 0.7 ≈ 39
33
+ *
34
+ * Returns `null` when CVSS is unavailable — callers leave the column
35
+ * blank rather than fabricate a score from partial data. The formula
36
+ * is documented and transparent so reviewers can sanity-check the
37
+ * relative ordering before trusting it. Future 10h.8 Snyk overlay
38
+ * can layer a tool-sourced score on top without changing this OSS
39
+ * baseline.
40
+ *
41
+ * Pure function; no IO, no state. Unit-testable with synthetic inputs.
42
+ */
43
+ import type { DepVulnFinding } from '../../languages/capabilities/types';
44
+ export interface RiskScoreInputs {
45
+ cvssScore?: number;
46
+ epssScore?: number;
47
+ kev?: boolean;
48
+ reachable?: boolean;
49
+ }
50
+ /**
51
+ * Compute the composite risk score for one finding, or null when
52
+ * CVSS is missing (we don't fabricate severity from side signals).
53
+ */
54
+ export declare function computeRiskScore(inputs: RiskScoreInputs): number | null;
55
+ /**
56
+ * Convenience: classify a riskScore into a triage tier for render
57
+ * sorting and color-coding. Thresholds picked so most findings land
58
+ * outside "must-fix-now" — the riskScore's job is to make those
59
+ * stand out.
60
+ */
61
+ export type RiskTier = 'critical' | 'high' | 'moderate' | 'low' | 'none';
62
+ export declare function riskTier(score: number | null): RiskTier;
63
+ /**
64
+ * Annotate every finding's `riskScore` field in place. Skips findings
65
+ * with no CVSS (riskScore stays unset; renderers handle that as
66
+ * "—" / blank column).
67
+ */
68
+ export declare function scoreFindings(findings: DepVulnFinding[]): void;
69
+ //# sourceMappingURL=risk-score.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"risk-score.d.ts","sourceRoot":"","sources":["../../../src/analyzers/tools/risk-score.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAWvE;AAED;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;AAEzE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAMvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAK9D"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * Composite risk score for dependency advisories.
4
+ *
5
+ * Combines four signals into a single 0–100 number that orders
6
+ * remediation priority without requiring the user to juggle CVSS,
7
+ * EPSS, KEV, and reachability in their head:
8
+ *
9
+ * - CVSS base severity (how bad if exploited) — 0–10
10
+ * - EPSS (probability of exploitation in 30d) — 0.0–1.0
11
+ * - KEV (CISA confirmed in-the-wild exploit) — boolean
12
+ * - reachable (my source imports it) — true/false/undefined
13
+ *
14
+ * Formula (multiplicative, clamped):
15
+ *
16
+ * base = cvss * 10 (0–100)
17
+ * kevMul = kev ? 2.0 : 1.0
18
+ * epssMul = 1 + 2 * epss (1.0 – 3.0)
19
+ * reachMul =
20
+ * true → 1.0 (no change)
21
+ * false → 0.25 (heavy discount for provably unreachable)
22
+ * undefined → 0.7 (conservative middle — can't tell, don't zero it)
23
+ * score = clamp(base * kevMul * epssMul * reachMul, 0, 100)
24
+ *
25
+ * Worked examples:
26
+ * - Critical (9.8) + KEV + reachable + EPSS 0.5:
27
+ * 98 * 2.0 * 2.0 * 1.0 = 392 → 100
28
+ * - Critical + not reachable + no KEV + EPSS 0.01:
29
+ * 98 * 1.0 * 1.02 * 0.25 ≈ 25
30
+ * - Low (2.0) + reachable + no KEV + EPSS 0:
31
+ * 20 * 1.0 * 1.0 * 1.0 = 20
32
+ * - Medium (5.5) + no signals, reachable unknown:
33
+ * 55 * 1.0 * 1.0 * 0.7 ≈ 39
34
+ *
35
+ * Returns `null` when CVSS is unavailable — callers leave the column
36
+ * blank rather than fabricate a score from partial data. The formula
37
+ * is documented and transparent so reviewers can sanity-check the
38
+ * relative ordering before trusting it. Future 10h.8 Snyk overlay
39
+ * can layer a tool-sourced score on top without changing this OSS
40
+ * baseline.
41
+ *
42
+ * Pure function; no IO, no state. Unit-testable with synthetic inputs.
43
+ */
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.computeRiskScore = computeRiskScore;
46
+ exports.riskTier = riskTier;
47
+ exports.scoreFindings = scoreFindings;
48
+ /**
49
+ * Compute the composite risk score for one finding, or null when
50
+ * CVSS is missing (we don't fabricate severity from side signals).
51
+ */
52
+ function computeRiskScore(inputs) {
53
+ const cvss = inputs.cvssScore;
54
+ if (cvss === undefined)
55
+ return null;
56
+ const base = cvss * 10;
57
+ const kevMul = inputs.kev ? 2.0 : 1.0;
58
+ const epssMul = 1 + 2 * (inputs.epssScore ?? 0);
59
+ const reachMul = inputs.reachable === true ? 1.0 : inputs.reachable === false ? 0.25 : 0.7;
60
+ const raw = base * kevMul * epssMul * reachMul;
61
+ return Math.min(100, Math.max(0, Math.round(raw * 10) / 10));
62
+ }
63
+ function riskTier(score) {
64
+ if (score === null)
65
+ return 'none';
66
+ if (score >= 70)
67
+ return 'critical';
68
+ if (score >= 40)
69
+ return 'high';
70
+ if (score >= 15)
71
+ return 'moderate';
72
+ return 'low';
73
+ }
74
+ /**
75
+ * Annotate every finding's `riskScore` field in place. Skips findings
76
+ * with no CVSS (riskScore stays unset; renderers handle that as
77
+ * "—" / blank column).
78
+ */
79
+ function scoreFindings(findings) {
80
+ for (const f of findings) {
81
+ const s = computeRiskScore(f);
82
+ if (s !== null)
83
+ f.riskScore = s;
84
+ }
85
+ }
86
+ //# sourceMappingURL=risk-score.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"risk-score.js","sourceRoot":"","sources":["../../../src/analyzers/tools/risk-score.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;;AAeH,4CAWC;AAUD,4BAMC;AAOD,sCAKC;AA3CD;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAuB;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;IAC9B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAE3F,MAAM,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAUD,SAAgB,QAAQ,CAAC,KAAoB;IAC3C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IACnC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IAC/B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IACnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,QAA0B;IACtD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,IAAI;YAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;IAClC,CAAC;AACH,CAAC"}
@@ -1,4 +1,17 @@
1
1
  import { DetectedStack, ToolRequirement } from '../../types';
2
+ /**
3
+ * Shared Python venv location for graphify specifically. Graphify is a
4
+ * Python *library* that our graphify.ts subprocess imports directly,
5
+ * not a CLI tool — so it needs a stable venv-relative path we can spawn
6
+ * from, unlike the CLI tools which are better served by pipx (see
7
+ * below).
8
+ *
9
+ * Lives under `~/.cache/dxkit/` so it survives `/tmp` cleanup. Previously
10
+ * `/tmp/graphify-venv` (D013's "~50% flake" was the cleanup + concurrent-
11
+ * run race on first install). `.cache/` is XDG-compliant and persistent;
12
+ * `test -d` in the shell install commands keeps creation idempotent.
13
+ */
14
+ export declare const TOOLS_VENV: string;
2
15
  export interface ToolDefinition extends ToolRequirement {
3
16
  /** Binary name(s) to look for in PATH. First match wins. */
4
17
  binaries: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../src/analyzers/tools/tool-registry.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,eAAe,EAAE;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IAClF,WAAW,EAAE,cAAc,CAAC;CAC7B;AAoHD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAgFtE;AAkBD,wDAAwD;AACxD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAO7D;AAMD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA4WpD,CAAC;AAMF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,eAAe,EAAE,CA0C3F;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAgB/F"}
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../../src/analyzers/tools/tool-registry.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,QAA2D,CAAC;AA2BnF,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,eAAe,EAAE;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;IAClF,WAAW,EAAE,cAAc,CAAC;CAC7B;AAsHD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAiFtE;AAkBD,wDAAwD;AACxD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAO7D;AAMD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CA2WpD,CAAC;AAMF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,eAAe,EAAE,CA0C3F;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAgB/F"}
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.TOOL_DEFS = void 0;
36
+ exports.TOOL_DEFS = exports.TOOLS_VENV = void 0;
37
37
  exports.findTool = findTool;
38
38
  exports.getInstallCommand = getInstallCommand;
39
39
  exports.buildRequiredTools = buildRequiredTools;
@@ -58,6 +58,42 @@ const fs = __importStar(require("fs"));
58
58
  const os = __importStar(require("os"));
59
59
  const path = __importStar(require("path"));
60
60
  const languages_1 = require("../../languages");
61
+ /**
62
+ * Shared Python venv location for graphify specifically. Graphify is a
63
+ * Python *library* that our graphify.ts subprocess imports directly,
64
+ * not a CLI tool — so it needs a stable venv-relative path we can spawn
65
+ * from, unlike the CLI tools which are better served by pipx (see
66
+ * below).
67
+ *
68
+ * Lives under `~/.cache/dxkit/` so it survives `/tmp` cleanup. Previously
69
+ * `/tmp/graphify-venv` (D013's "~50% flake" was the cleanup + concurrent-
70
+ * run race on first install). `.cache/` is XDG-compliant and persistent;
71
+ * `test -d` in the shell install commands keeps creation idempotent.
72
+ */
73
+ exports.TOOLS_VENV = path.join(os.homedir(), '.cache', 'dxkit', 'tools-venv');
74
+ /** Legacy path still probed for backwards compat: repos that already set
75
+ * up the old venv won't force a reinstall on upgrade. */
76
+ const LEGACY_TOOLS_VENV = '/tmp/graphify-venv';
77
+ /**
78
+ * pipx bootstrap + install fragment. Inlined into every Python CLI tool's
79
+ * install command so each tool gets its OWN isolated venv under
80
+ * `~/.local/pipx/venvs/<tool>/` with its own dep resolution. Fixes the
81
+ * 2.3.0 failure mode where semgrep (tomli~=2.0.1) and pip-audit (newer
82
+ * tomli) fought in the shared venv.
83
+ *
84
+ * 1. If `pipx` is on PATH, use it.
85
+ * 2. Else try `python3 -m pip install --user pipx` (legacy + non-PEP-668).
86
+ * 3. PEP 668 distros (Debian 12+, Ubuntu 23.04+) refuse `pip --user` on
87
+ * externally-managed Python; fall back to
88
+ * `--user --break-system-packages`.
89
+ * 4. Prepend `~/.local/bin` to PATH so the freshly-installed pipx is
90
+ * found within the same shell.
91
+ *
92
+ * Result: `pipx install <tool>` symlinks the binary into `~/.local/bin/`,
93
+ * which is already in `getSystemPaths()` probes so `findTool()` picks it
94
+ * up on the next run.
95
+ */
96
+ const PIPX_BOOTSTRAP = 'command -v pipx >/dev/null 2>&1 || { python3 -m pip install --user pipx 2>/dev/null || python3 -m pip install --user --break-system-packages pipx; } && export PATH="$HOME/.local/bin:$PATH"';
61
97
  /**
62
98
  * Platform-specific system paths to probe.
63
99
  */
@@ -70,7 +106,8 @@ function getSystemPaths() {
70
106
  `${home}/.local/bin`, // pipx, user pip
71
107
  `${home}/.cargo/bin`, // rust
72
108
  `${home}/go/bin`, // go
73
- '/tmp/graphify-venv/bin', // dxkit graphify venv
109
+ `${exports.TOOLS_VENV}/bin`, // dxkit shared Python tools venv (persistent)
110
+ `${LEGACY_TOOLS_VENV}/bin`, // legacy: pre-10f.2 installs
74
111
  ];
75
112
  // Include $GOPATH/bin if set
76
113
  if (process.env.GOPATH) {
@@ -145,7 +182,8 @@ function findNodePackage(pkg, cwd) {
145
182
  /** Special-case: check if graphify Python module is importable. */
146
183
  function findGraphifyPython(cwd) {
147
184
  const pythonCandidates = [
148
- '/tmp/graphify-venv/bin/python',
185
+ `${exports.TOOLS_VENV}/bin/python`, // current (10f.2+)
186
+ `${LEGACY_TOOLS_VENV}/bin/python`, // legacy
149
187
  `${os.homedir()}/.local/bin/python3`,
150
188
  'python3',
151
189
  ];
@@ -184,7 +222,7 @@ function findTool(def, cwd) {
184
222
  available: true,
185
223
  path: pyPath,
186
224
  version: 'importable',
187
- source: pyPath.includes('/tmp/graphify-venv') ? 'probe' : 'path',
225
+ source: pyPath.includes(exports.TOOLS_VENV) || pyPath.includes(LEGACY_TOOLS_VENV) ? 'probe' : 'path',
188
226
  requirement: def,
189
227
  };
190
228
  }
@@ -323,11 +361,11 @@ exports.TOOL_DEFS = {
323
361
  for: 'all',
324
362
  layer: 'optional',
325
363
  binaries: ['graphify'],
326
- probePaths: ['/tmp/graphify-venv/bin'],
327
- versionCheck: 'python3 -c "import graphify; print(\'installed\')" 2>/dev/null || /tmp/graphify-venv/bin/python -c "import graphify; print(\'installed\')" 2>/dev/null',
364
+ probePaths: [`${exports.TOOLS_VENV}/bin`, `${LEGACY_TOOLS_VENV}/bin`],
365
+ versionCheck: 'python3 -c "import graphify; print(\'installed\')" 2>/dev/null || $HOME/.cache/dxkit/tools-venv/bin/python -c "import graphify; print(\'installed\')" 2>/dev/null',
328
366
  installCommands: {
329
- macos: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install -q graphifyy',
330
- linux: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install -q graphifyy',
367
+ macos: 'mkdir -p "$HOME/.cache/dxkit" && (test -d "$HOME/.cache/dxkit/tools-venv" || python3 -m venv "$HOME/.cache/dxkit/tools-venv") && "$HOME/.cache/dxkit/tools-venv/bin/pip" install -q graphifyy',
368
+ linux: 'mkdir -p "$HOME/.cache/dxkit" && (test -d "$HOME/.cache/dxkit/tools-venv" || python3 -m venv "$HOME/.cache/dxkit/tools-venv") && "$HOME/.cache/dxkit/tools-venv/bin/pip" install -q graphifyy',
331
369
  windows: 'pip install --user graphifyy',
332
370
  },
333
371
  },
@@ -349,17 +387,17 @@ exports.TOOL_DEFS = {
349
387
  semgrep: {
350
388
  name: 'semgrep',
351
389
  description: 'Static analysis security scanner (SAST)',
352
- install: 'pip install semgrep',
390
+ install: 'pipx install semgrep',
353
391
  check: 'semgrep --version',
354
392
  for: 'all',
355
393
  layer: 'universal',
356
394
  binaries: ['semgrep'],
357
- probePaths: ['/tmp/graphify-venv/bin'],
395
+ probePaths: [`${exports.TOOLS_VENV}/bin`, `${LEGACY_TOOLS_VENV}/bin`],
358
396
  versionCheck: 'semgrep --version 2>/dev/null',
359
397
  installCommands: {
360
- macos: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install -q semgrep && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/semgrep ~/.local/bin/semgrep',
361
- linux: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install -q semgrep && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/semgrep ~/.local/bin/semgrep',
362
- windows: 'pip install --user semgrep',
398
+ macos: `${PIPX_BOOTSTRAP} && pipx install semgrep`,
399
+ linux: `${PIPX_BOOTSTRAP} && pipx install semgrep`,
400
+ windows: 'pipx install semgrep',
363
401
  },
364
402
  },
365
403
  eslint: {
@@ -410,48 +448,49 @@ exports.TOOL_DEFS = {
410
448
  ruff: {
411
449
  name: 'ruff',
412
450
  description: 'Python linting and formatting',
413
- install: 'pip install ruff',
451
+ install: 'pipx install ruff',
414
452
  check: 'ruff --version',
415
453
  for: 'python',
416
454
  layer: 'language',
417
455
  binaries: ['ruff'],
456
+ probePaths: [`${exports.TOOLS_VENV}/bin`, `${LEGACY_TOOLS_VENV}/bin`],
418
457
  versionCheck: 'ruff --version 2>/dev/null',
419
458
  installCommands: {
420
- // Use the dxkit venv (created during graphify install) for Python tools
421
- macos: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install ruff && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/ruff ~/.local/bin/ruff',
422
- linux: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install ruff && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/ruff ~/.local/bin/ruff',
423
- windows: 'pip install --user ruff',
459
+ macos: `${PIPX_BOOTSTRAP} && pipx install ruff`,
460
+ linux: `${PIPX_BOOTSTRAP} && pipx install ruff`,
461
+ windows: 'pipx install ruff',
424
462
  },
425
463
  },
426
464
  'pip-audit': {
427
465
  name: 'pip-audit',
428
466
  description: 'Python dependency vulnerability scanning',
429
- install: 'pip install pip-audit',
467
+ install: 'pipx install pip-audit',
430
468
  check: 'pip-audit --version',
431
469
  for: 'python',
432
470
  layer: 'language',
433
471
  binaries: ['pip-audit'],
472
+ probePaths: [`${exports.TOOLS_VENV}/bin`, `${LEGACY_TOOLS_VENV}/bin`],
434
473
  versionCheck: 'pip-audit --version 2>/dev/null',
435
474
  installCommands: {
436
- macos: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install pip-audit && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/pip-audit ~/.local/bin/pip-audit',
437
- linux: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install pip-audit && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/pip-audit ~/.local/bin/pip-audit',
438
- windows: 'pip install --user pip-audit',
475
+ macos: `${PIPX_BOOTSTRAP} && pipx install pip-audit`,
476
+ linux: `${PIPX_BOOTSTRAP} && pipx install pip-audit`,
477
+ windows: 'pipx install pip-audit',
439
478
  },
440
479
  },
441
480
  'pip-licenses': {
442
481
  name: 'pip-licenses',
443
482
  description: 'License inventory for Python packages in a venv',
444
- install: 'pip install pip-licenses',
483
+ install: 'pipx install pip-licenses',
445
484
  check: 'pip-licenses --version',
446
485
  for: 'python',
447
486
  layer: 'language',
448
487
  binaries: ['pip-licenses'],
449
- probePaths: ['/tmp/graphify-venv/bin'],
488
+ probePaths: [`${exports.TOOLS_VENV}/bin`, `${LEGACY_TOOLS_VENV}/bin`],
450
489
  versionCheck: 'pip-licenses --version 2>/dev/null',
451
490
  installCommands: {
452
- macos: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install pip-licenses && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/pip-licenses ~/.local/bin/pip-licenses',
453
- linux: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install pip-licenses && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/pip-licenses ~/.local/bin/pip-licenses',
454
- windows: 'pip install --user pip-licenses',
491
+ macos: `${PIPX_BOOTSTRAP} && pipx install pip-licenses`,
492
+ linux: `${PIPX_BOOTSTRAP} && pipx install pip-licenses`,
493
+ windows: 'pipx install pip-licenses',
455
494
  },
456
495
  },
457
496
  'golangci-lint': {
@@ -585,11 +624,17 @@ exports.TOOL_DEFS = {
585
624
  layer: 'language',
586
625
  binaries: [],
587
626
  nodePackage: '@vitest/coverage-v8',
627
+ // Version auto-detect via `require('vitest/package.json')` assumed
628
+ // vitest was present in the target repo. Repos using mocha/jest/ava
629
+ // hit a MODULE_NOT_FOUND crash (pre-2.3.1 failure mode). Gate with
630
+ // an existence check so the install no-ops cleanly when vitest
631
+ // isn't declared — vitest-coverage is only useful alongside vitest.
588
632
  installCommands: {
589
- // Version must match installed vitest majorauto-detect it.
590
- macos: "npm install --save-dev \"@vitest/coverage-v8@$(node -e \"process.stdout.write('^'+require('vitest/package.json').version.split('.')[0])\")\"",
591
- linux: "npm install --save-dev \"@vitest/coverage-v8@$(node -e \"process.stdout.write('^'+require('vitest/package.json').version.split('.')[0])\")\"",
592
- windows: 'npm install --save-dev @vitest/coverage-v8',
633
+ macos: "test -f node_modules/vitest/package.json || { echo 'vitest not present in this repo skipping @vitest/coverage-v8'; exit 0; } && npm install --save-dev \"@vitest/coverage-v8@$(node -e \"process.stdout.write('^'+require('vitest/package.json').version.split('.')[0])\")\"",
634
+ linux: "test -f node_modules/vitest/package.json || { echo 'vitest not present in this repo — skipping @vitest/coverage-v8'; exit 0; } && npm install --save-dev \"@vitest/coverage-v8@$(node -e \"process.stdout.write('^'+require('vitest/package.json').version.split('.')[0])\")\"",
635
+ // The log call here is inside a `node -e` shell-string argument,
636
+ // not real TS source. slop-ok on the line silences the gate.
637
+ windows: "node -e \"try{require('vitest/package.json');process.exit(0)}catch{console.log('vitest not present — skipping');process.exit(0)}\" || npm install --save-dev @vitest/coverage-v8", // slop-ok
593
638
  },
594
639
  },
595
640
  'cargo-llvm-cov': {
@@ -610,16 +655,17 @@ exports.TOOL_DEFS = {
610
655
  'coverage-py': {
611
656
  name: 'coverage-py',
612
657
  description: 'Python line-level coverage (produces coverage.json)',
613
- install: 'pip install coverage',
658
+ install: 'pipx install coverage',
614
659
  check: 'coverage --version',
615
660
  for: 'python',
616
661
  layer: 'language',
617
662
  binaries: ['coverage'],
663
+ probePaths: [`${exports.TOOLS_VENV}/bin`, `${LEGACY_TOOLS_VENV}/bin`],
618
664
  versionCheck: 'coverage --version 2>/dev/null',
619
665
  installCommands: {
620
- macos: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install coverage && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/coverage ~/.local/bin/coverage',
621
- linux: 'test -d /tmp/graphify-venv || python3 -m venv /tmp/graphify-venv; /tmp/graphify-venv/bin/pip install coverage && mkdir -p ~/.local/bin && ln -sf /tmp/graphify-venv/bin/coverage ~/.local/bin/coverage',
622
- windows: 'pip install --user coverage',
666
+ macos: `${PIPX_BOOTSTRAP} && pipx install coverage`,
667
+ linux: `${PIPX_BOOTSTRAP} && pipx install coverage`,
668
+ windows: 'pipx install coverage',
623
669
  },
624
670
  },
625
671
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/analyzers/tools/tool-registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2KA,4BAgFC;AAmBD,8CAOC;AA4XD,gDA0CC;AAGD,sCAgBC;AA9sBD;;;;;;;;;;;;;;GAcG;AACH,iDAAyC;AACzC,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,+CAA8C;AAkC9C;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG;QACZ,gBAAgB;QAChB,mBAAmB,EAAE,qBAAqB;QAC1C,gCAAgC,EAAE,aAAa;QAC/C,GAAG,IAAI,aAAa,EAAE,iBAAiB;QACvC,GAAG,IAAI,aAAa,EAAE,OAAO;QAC7B,GAAG,IAAI,SAAS,EAAE,KAAK;QACvB,wBAAwB,EAAE,sBAAsB;KACjD,CAAC;IACF,6BAA6B;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uEAAuE;AACvE,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,OAAO,IAAA,wBAAQ,EAAC,GAAG,EAAE;YACnB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,SAAS,UAAU,CAAC,MAAc;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,MAAM,cAAc,CAAC,CAAC;IACvD,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC;AAED,wDAAwD;AACxD,SAAS,UAAU,CAAC,MAAc;IAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IACzD,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,gEAAgE;AAChE,SAAS,eAAe,CAAC,MAAc;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,wBAAwB,CAAC,IAAI,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAC3F,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0CAA0C;AAC1C,SAAS,UAAU,CAAC,MAAc;IAChC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACzD,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,gCAAgC;AAChC,SAAS,gBAAgB,CAAC,MAAc,EAAE,cAAwB,EAAE;IAClE,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,EAAE,EAAE,GAAG,WAAW,CAAC,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iEAAiE;AACjE,SAAS,wBAAwB,CAAC,MAAc,EAAE,GAAW;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjE,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,2EAA2E;AAC3E,SAAS,eAAe,CAAC,GAAW,EAAE,GAAW;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC;AAED,mEAAmE;AACnE,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,gBAAgB,GAAG;QACvB,+BAA+B;QAC/B,GAAG,EAAE,CAAC,OAAO,EAAE,qBAAqB;QACpC,SAAS;KACV,CAAC;IACF,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;QAClC,oCAAoC;QACpC,MAAM,QAAQ,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAAE,SAAS;QACrF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAA,wBAAQ,EAAC,GAAG,QAAQ,gDAAgD,EAAE;gBAClF,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,OAAO,EAAE,IAAI;gBACb,GAAG;aACJ,CAAC,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,QAAQ,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,GAAmB,EAAE,GAAY;IACxD,0DAA0D;IAC1D,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACxD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBAChE,WAAW,EAAE,GAAG;aACjB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,GAAG;SACjB,CAAC;IACJ,CAAC;IAED,4DAA4D;IAC5D,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACtD,IAAI,OAAO;YAAE,OAAO,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,qDAAqD;QACrD,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,GAAG;SACjB,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,qDAAqD;QACrD,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1D,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1D,IAAI,WAAW;gBAAE,OAAO,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAED,UAAU;QACV,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE3D,UAAU;QACV,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE3D,gBAAgB;QAChB,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,SAAS;YAAE,OAAO,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE1D,UAAU;QACV,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE3D,0DAA0D;QAC1D,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,MAAM,GAAyB,OAAO,CAAC;YAC3C,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,MAAM,GAAG,OAAO,CAAC;iBAClD,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,MAAM,GAAG,IAAI,CAAC;YACzD,OAAO,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,GAAG;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,GAAmB,EACnB,OAAe,EACf,MAA4B;IAE5B,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAChD,MAAM;QACN,WAAW,EAAE,GAAG;KACjB,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,SAAgB,iBAAiB,CAAC,GAAmB;IACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC;IACzF,IAAI,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC;IACxF,IAAI,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,eAAe,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC;IAC5F,kDAAkD;IAClD,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEnE,QAAA,SAAS,GAAmC;IACvD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,qBAAqB;QAC9B,KAAK,EAAE,gBAAgB;QACvB,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,YAAY,EAAE,4BAA4B;QAC1C,eAAe,EAAE;YACf,iFAAiF;YACjF,KAAK,EACH,oRAAoR;YACtR,KAAK,EACH,6PAA6P;YAC/P,OAAO,EAAE,qBAAqB;SAC/B;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE,kBAAkB;QACzB,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,UAAU,EAAE,CAAC,MAAM,CAAC;QACpB,YAAY,EAAE,8BAA8B;QAC5C,eAAe,EAAE;YACf,KAAK,EAAE,uBAAuB;YAC9B,+CAA+C;YAC/C,KAAK,EACH,yMAAyM;YAC3M,OAAO,EAAE,wBAAwB;SAClC;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,8DAA8D;QAC3E,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE,8BAA8B;QACrC,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,YAAY,EACV,wJAAwJ;QAC1J,eAAe,EAAE;YACf,KAAK,EACH,mHAAmH;YACrH,KAAK,EACH,mHAAmH;YACrH,OAAO,EAAE,8BAA8B;SACxC;KACF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,sBAAsB;QAC/B,KAAK,EAAE,iBAAiB;QACxB,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,CAAC,OAAO,CAAC;QACnB,YAAY,EAAE,6BAA6B;QAC3C,eAAe,EAAE;YACf,KAAK,EACH,kLAAkL;YACpL,KAAK,EACH,kLAAkL;YACpL,OAAO,EAAE,sBAAsB;SAChC;KACF;IACD,OAAO,EAAE;QACP,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,qBAAqB;QAC9B,KAAK,EAAE,mBAAmB;QAC1B,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,CAAC,SAAS,CAAC;QACrB,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,YAAY,EAAE,+BAA+B;QAC7C,eAAe,EAAE;YACf,KAAK,EACH,wMAAwM;YAC1M,KAAK,EACH,wMAAwM;YAC1M,OAAO,EAAE,4BAA4B;SACtC;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,+BAA+B;QACxC,KAAK,EAAE,sBAAsB;QAC7B,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;QACjC,YAAY,EAAE,kCAAkC;QAChD,eAAe,EAAE;YACf,KAAK,EAAE,+BAA+B;YACtC,KAAK,EAAE,+BAA+B;YACtC,OAAO,EAAE,+BAA+B;SACzC;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,kBAAkB;QACzB,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,KAAK,CAAC;QACjB,YAAY,EAAE,2BAA2B;QACzC,eAAe,EAAE;YACf,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,SAAS;SACnB;KACF;IACD,6BAA6B,EAAE;QAC7B,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,6EAA6E;QAC1F,OAAO,EAAE,4CAA4C;QACrD,KAAK,EAAE,uCAAuC;QAC9C,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,6BAA6B,CAAC;QACzC,YAAY,EAAE,mDAAmD;QACjE,eAAe,EAAE;YACf,KAAK,EACH,oPAAoP;YACtP,KAAK,EACH,oPAAoP;YACtP,OAAO,EAAE,4CAA4C;SACtD;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,kBAAkB;QAC3B,KAAK,EAAE,gBAAgB;QACvB,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,YAAY,EAAE,4BAA4B;QAC1C,eAAe,EAAE;YACf,wEAAwE;YACxE,KAAK,EACH,4LAA4L;YAC9L,KAAK,EACH,4LAA4L;YAC9L,OAAO,EAAE,yBAAyB;SACnC;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,uBAAuB;QAChC,KAAK,EAAE,qBAAqB;QAC5B,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,YAAY,EAAE,iCAAiC;QAC/C,eAAe,EAAE;YACf,KAAK,EACH,2MAA2M;YAC7M,KAAK,EACH,2MAA2M;YAC7M,OAAO,EAAE,8BAA8B;SACxC;KACF;IACD,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE,wBAAwB;QAC/B,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,UAAU,EAAE,CAAC,wBAAwB,CAAC;QACtC,YAAY,EAAE,oCAAoC;QAClD,eAAe,EAAE;YACf,KAAK,EACH,oNAAoN;YACtN,KAAK,EACH,oNAAoN;YACtN,OAAO,EAAE,iCAAiC;SAC3C;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,uEAAuE;QAChF,KAAK,EAAE,yBAAyB;QAChC,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,eAAe,CAAC;QAC3B,YAAY,EAAE,qCAAqC;QACnD,eAAe,EAAE;YACf,KAAK,EAAE,4BAA4B;YACnC,KAAK,EAAE,uEAAuE;YAC9E,OAAO,EAAE,uEAAuE;SACjF;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,qDAAqD;QAC9D,KAAK,EAAE,sBAAsB;QAC7B,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;QACzB,YAAY,EAAE,kCAAkC;QAChD,eAAe,EAAE;YACf,KAAK,EAAE,qDAAqD;YAC5D,KAAK,EAAE,qDAAqD;YAC5D,OAAO,EAAE,qDAAqD;SAC/D;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,iDAAiD;QAC1D,KAAK,EAAE,oBAAoB;QAC3B,GAAG,EAAE,IAAI;QACT,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;QACzB,YAAY,EAAE,0CAA0C;QACxD,eAAe,EAAE;YACf,KAAK,EAAE,iDAAiD;YACxD,KAAK,EAAE,iDAAiD;YACxD,OAAO,EAAE,iDAAiD;SAC3D;KACF;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,6BAA6B;QACtC,KAAK,EAAE,wBAAwB;QAC/B,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,YAAY,EAAE,oCAAoC;QAClD,eAAe,EAAE;YACf,KAAK,EAAE,6BAA6B;YACpC,KAAK,EAAE,6BAA6B;YACpC,OAAO,EAAE,6BAA6B;SACvC;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,2BAA2B;QACpC,KAAK,EAAE,uBAAuB;QAC9B,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,aAAa,CAAC;QACzB,YAAY,EAAE,mCAAmC;QACjD,eAAe,EAAE;YACf,KAAK,EAAE,2BAA2B;YAClC,KAAK,EAAE,2BAA2B;YAClC,OAAO,EAAE,2BAA2B;SACrC;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,+CAA+C;QAC5D,OAAO,EAAE,6BAA6B;QACtC,KAAK,EAAE,yBAAyB;QAChC,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,eAAe,CAAC;QAC3B,YAAY,EAAE,qCAAqC;QACnD,eAAe,EAAE;YACf,KAAK,EAAE,6BAA6B;YACpC,KAAK,EAAE,6BAA6B;YACpC,OAAO,EAAE,6BAA6B;SACvC;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,sBAAsB;QAC/B,KAAK,EAAE,yBAAyB;QAChC,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,YAAY,EAAE,8BAA8B;QAC5C,eAAe,EAAE;YACf,KAAK,EAAE,yBAAyB;YAChC,KAAK,EAAE,4BAA4B;YACnC,OAAO,EAAE,uCAAuC;SACjD;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,iEAAiE;QAC9E,OAAO,EAAE,4CAA4C;QACrD,KAAK,EAAE,yBAAyB;QAChC,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,eAAe,CAAC;QAC3B,UAAU,EAAE,CAAC,iBAAiB,CAAC;QAC/B,YAAY,EAAE,qCAAqC;QACnD,eAAe,EAAE;YACf,KAAK,EAAE,4CAA4C;YACnD,KAAK,EAAE,4CAA4C;YACnD,OAAO,EAAE,4CAA4C;SACtD;KACF;IAED,2EAA2E;IAC3E,iBAAiB,EAAE;QACjB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,iEAAiE;QAC9E,OAAO,EAAE,4CAA4C;QACrD,KAAK,EAAE,4CAA4C;QACnD,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,qBAAqB;QAClC,eAAe,EAAE;YACf,8DAA8D;YAC9D,KAAK,EACH,8IAA8I;YAChJ,KAAK,EACH,8IAA8I;YAChJ,OAAO,EAAE,4CAA4C;SACtD;KACF;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,6EAA6E;QAC1F,OAAO,EAAE,8BAA8B;QACvC,KAAK,EAAE,0BAA0B;QACjC,GAAG,EAAE,MAAM;QACX,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;QAC5B,YAAY,EAAE,sCAAsC;QACpD,eAAe,EAAE;YACf,KAAK,EAAE,8BAA8B;YACrC,KAAK,EAAE,8BAA8B;YACrC,OAAO,EAAE,8BAA8B;SACxC;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,qDAAqD;QAClE,OAAO,EAAE,sBAAsB;QAC/B,KAAK,EAAE,oBAAoB;QAC3B,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,YAAY,EAAE,gCAAgC;QAC9C,eAAe,EAAE;YACf,KAAK,EACH,wMAAwM;YAC1M,KAAK,EACH,wMAAwM;YAC1M,OAAO,EAAE,6BAA6B;SACvC;KACF;CACF,CAAC;AAEF,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,SAAqC;IACtE,MAAM,KAAK,GAAa;QACtB,YAAY;QACZ,MAAM;QACN,UAAU;QACV,OAAO;QACP,SAAS;QACT,UAAU;KACX,CAAC;IAEF,oEAAoE;IACpE,4EAA4E;IAC5E,MAAM,OAAO,GAA2B;QACtC,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,QAAQ;QAChB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;KACjB,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAClC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,MAAM,IAAI,GAAG,IAAA,uBAAW,EAAC,EAAgB,CAAC,CAAC;QAC3C,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,iBAAS,CAAC,CAAC,CAAC,CAAC;QACzB,gEAAgE;QAChE,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sDAAsD;AACtD,SAAgB,aAAa,CAAC,SAAqC,EAAE,GAAY;IAC/E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,iBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;aACnE,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/analyzers/tools/tool-registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bom.d.ts","sourceRoot":"","sources":["../../../src/analyzers/xlsx/bom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,cAAc,CAAC;AAqC3D;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAkFlE"}
1
+ {"version":3,"file":"bom.d.ts","sourceRoot":"","sources":["../../../src/analyzers/xlsx/bom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,cAAc,CAAC;AAqC3D;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAiFlE"}
@@ -119,8 +119,7 @@ async function toBomXlsx(report) {
119
119
  xlsxSafe(e.licenseType), // col 7
120
120
  xlsxSafe(e.licenseText), // col 8
121
121
  xlsxSafe(e.supplier), // col 9
122
- xlsxSafe(e.releaseDate), // col 10 — deferred (needs npm registry
123
- // enrichment; belongs in 10h.6 OSS enrichment phase)
122
+ xlsxSafe(e.releaseDate ? e.releaseDate.slice(0, 10) : ''), // col 10 — ISO date truncated to YYYY-MM-DD; populated by npm-registry enrichment (10h.5.1, closes D006)
124
123
  xlsxSafe(criticality), // col 11 — bom-only
125
124
  xlsxSafe(vulnerabilityIssues), // col 12 — bom-only
126
125
  xlsxSafe(resolution), // col 13 — bom-only