@vyuhlabs/dxkit 2.2.1 → 2.3.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 (100) hide show
  1. package/CHANGELOG.md +115 -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 +10 -0
  58. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  59. package/dist/analyzers/tools/tool-registry.js +35 -20
  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/package.json +1 -1
  85. package/templates/.claude/agents-available/dashboard-builder.md +7 -7
  86. package/templates/.claude/agents-available/dev-report.md +4 -4
  87. package/templates/.claude/agents-available/health-auditor.md +1 -1
  88. package/templates/.claude/agents-available/strategic-planner.md +7 -7
  89. package/templates/.claude/agents-available/vulnerability-scanner.md +3 -3
  90. package/templates/.claude/commands/dashboard.md +1 -1
  91. package/templates/.claude/commands/deps.md +1 -1
  92. package/templates/.claude/commands/dev-report.md +2 -2
  93. package/templates/.claude/commands/docs.md +1 -1
  94. package/templates/.claude/commands/export-pdf.md +3 -3
  95. package/templates/.claude/commands/health.md +3 -3
  96. package/templates/.claude/commands/plan.md +1 -1
  97. package/templates/.claude/commands/quality.md.template +2 -2
  98. package/templates/.claude/commands/stealth-mode.md +1 -1
  99. package/templates/.claude/commands/test-gaps.md +2 -2
  100. package/templates/.claude/commands/vulnerabilities.md +3 -3
@@ -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,14 @@
1
1
  import { DetectedStack, ToolRequirement } from '../../types';
2
+ /**
3
+ * Shared Python venv location for every Python-based tool dxkit installs
4
+ * (graphify, semgrep, ruff, pip-audit, pip-licenses, coverage). Lives
5
+ * under `~/.cache/dxkit/` so it survives `/tmp` cleanup. Previously
6
+ * `/tmp/graphify-venv` — D013's "~50% flake" was that cleanup, plus
7
+ * concurrent-run races on first install. `.cache/` is XDG-compliant
8
+ * and persistent; `test -d` in the shell install commands keeps creation
9
+ * idempotent.
10
+ */
11
+ export declare const TOOLS_VENV: string;
2
12
  export interface ToolDefinition extends ToolRequirement {
3
13
  /** Binary name(s) to look for in PATH. First match wins. */
4
14
  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;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,QAA2D,CAAC;AAKnF,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,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"}
@@ -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,19 @@ 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 every Python-based tool dxkit installs
63
+ * (graphify, semgrep, ruff, pip-audit, pip-licenses, coverage). Lives
64
+ * under `~/.cache/dxkit/` so it survives `/tmp` cleanup. Previously
65
+ * `/tmp/graphify-venv` — D013's "~50% flake" was that cleanup, plus
66
+ * concurrent-run races on first install. `.cache/` is XDG-compliant
67
+ * and persistent; `test -d` in the shell install commands keeps creation
68
+ * idempotent.
69
+ */
70
+ exports.TOOLS_VENV = path.join(os.homedir(), '.cache', 'dxkit', 'tools-venv');
71
+ /** Legacy path still probed for backwards compat: repos that already set
72
+ * up the old venv won't force a reinstall on upgrade. */
73
+ const LEGACY_TOOLS_VENV = '/tmp/graphify-venv';
61
74
  /**
62
75
  * Platform-specific system paths to probe.
63
76
  */
@@ -70,7 +83,8 @@ function getSystemPaths() {
70
83
  `${home}/.local/bin`, // pipx, user pip
71
84
  `${home}/.cargo/bin`, // rust
72
85
  `${home}/go/bin`, // go
73
- '/tmp/graphify-venv/bin', // dxkit graphify venv
86
+ `${exports.TOOLS_VENV}/bin`, // dxkit shared Python tools venv (persistent)
87
+ `${LEGACY_TOOLS_VENV}/bin`, // legacy: pre-10f.2 installs
74
88
  ];
75
89
  // Include $GOPATH/bin if set
76
90
  if (process.env.GOPATH) {
@@ -145,7 +159,8 @@ function findNodePackage(pkg, cwd) {
145
159
  /** Special-case: check if graphify Python module is importable. */
146
160
  function findGraphifyPython(cwd) {
147
161
  const pythonCandidates = [
148
- '/tmp/graphify-venv/bin/python',
162
+ `${exports.TOOLS_VENV}/bin/python`, // current (10f.2+)
163
+ `${LEGACY_TOOLS_VENV}/bin/python`, // legacy
149
164
  `${os.homedir()}/.local/bin/python3`,
150
165
  'python3',
151
166
  ];
@@ -184,7 +199,7 @@ function findTool(def, cwd) {
184
199
  available: true,
185
200
  path: pyPath,
186
201
  version: 'importable',
187
- source: pyPath.includes('/tmp/graphify-venv') ? 'probe' : 'path',
202
+ source: pyPath.includes(exports.TOOLS_VENV) || pyPath.includes(LEGACY_TOOLS_VENV) ? 'probe' : 'path',
188
203
  requirement: def,
189
204
  };
190
205
  }
@@ -323,11 +338,11 @@ exports.TOOL_DEFS = {
323
338
  for: 'all',
324
339
  layer: 'optional',
325
340
  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',
341
+ probePaths: [`${exports.TOOLS_VENV}/bin`, `${LEGACY_TOOLS_VENV}/bin`],
342
+ 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
343
  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',
344
+ 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',
345
+ 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
346
  windows: 'pip install --user graphifyy',
332
347
  },
333
348
  },
@@ -354,11 +369,11 @@ exports.TOOL_DEFS = {
354
369
  for: 'all',
355
370
  layer: 'universal',
356
371
  binaries: ['semgrep'],
357
- probePaths: ['/tmp/graphify-venv/bin'],
372
+ probePaths: [`${exports.TOOLS_VENV}/bin`, `${LEGACY_TOOLS_VENV}/bin`],
358
373
  versionCheck: 'semgrep --version 2>/dev/null',
359
374
  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',
375
+ 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 semgrep && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/semgrep ~/.local/bin/semgrep',
376
+ 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 semgrep && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/semgrep ~/.local/bin/semgrep',
362
377
  windows: 'pip install --user semgrep',
363
378
  },
364
379
  },
@@ -418,8 +433,8 @@ exports.TOOL_DEFS = {
418
433
  versionCheck: 'ruff --version 2>/dev/null',
419
434
  installCommands: {
420
435
  // 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',
436
+ 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 ruff && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/ruff ~/.local/bin/ruff',
437
+ 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 ruff && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/ruff ~/.local/bin/ruff',
423
438
  windows: 'pip install --user ruff',
424
439
  },
425
440
  },
@@ -433,8 +448,8 @@ exports.TOOL_DEFS = {
433
448
  binaries: ['pip-audit'],
434
449
  versionCheck: 'pip-audit --version 2>/dev/null',
435
450
  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',
451
+ 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 pip-audit && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/pip-audit ~/.local/bin/pip-audit',
452
+ 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 pip-audit && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/pip-audit ~/.local/bin/pip-audit',
438
453
  windows: 'pip install --user pip-audit',
439
454
  },
440
455
  },
@@ -446,11 +461,11 @@ exports.TOOL_DEFS = {
446
461
  for: 'python',
447
462
  layer: 'language',
448
463
  binaries: ['pip-licenses'],
449
- probePaths: ['/tmp/graphify-venv/bin'],
464
+ probePaths: [`${exports.TOOLS_VENV}/bin`, `${LEGACY_TOOLS_VENV}/bin`],
450
465
  versionCheck: 'pip-licenses --version 2>/dev/null',
451
466
  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',
467
+ 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 pip-licenses && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/pip-licenses ~/.local/bin/pip-licenses',
468
+ 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 pip-licenses && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/pip-licenses ~/.local/bin/pip-licenses',
454
469
  windows: 'pip install --user pip-licenses',
455
470
  },
456
471
  },
@@ -617,8 +632,8 @@ exports.TOOL_DEFS = {
617
632
  binaries: ['coverage'],
618
633
  versionCheck: 'coverage --version 2>/dev/null',
619
634
  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',
635
+ 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 coverage && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/coverage ~/.local/bin/coverage',
636
+ 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 coverage && mkdir -p ~/.local/bin && ln -sf $HOME/.cache/dxkit/tools-venv/bin/coverage ~/.local/bin/coverage',
622
637
  windows: 'pip install --user coverage',
623
638
  },
624
639
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../../src/analyzers/tools/tool-registry.ts"],"names":[],"mappings":"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"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"bom.js","sourceRoot":"","sources":["../../../src/analyzers/xlsx/bom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bom.js","sourceRoot":"","sources":["../../../src/analyzers/xlsx/bom.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA+DA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwsBvD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAmEA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+tBvD"}
package/dist/cli.js CHANGED
@@ -85,6 +85,10 @@ function printUsage() {
85
85
  --detailed Also write <name>-detailed.md + .json with evidence + ranked actions
86
86
  --xlsx Licenses/bom: also write 15-col BOM XLSX
87
87
  --since Dev-report: start date (YYYY-MM-DD)
88
+ --filter Bom: 'all' (default) or 'top-level' (keeps only root manifest deps;
89
+ advisory rollup under byTopLevelDep still reflects transitives)
90
+ --no-nested Bom: disable nested-project aggregation (default scans the repo
91
+ for all sub-projects with manifests and merges their BOMs)
88
92
 
89
93
  ${logger.bold('Examples:')}
90
94
  npx vyuh-dxkit init # Interactive
@@ -116,6 +120,8 @@ async function run(argv) {
116
120
  detailed: { type: 'boolean', default: false },
117
121
  output: { type: 'string', short: 'o' },
118
122
  xlsx: { type: 'boolean', default: false },
123
+ filter: { type: 'string' },
124
+ 'no-nested': { type: 'boolean', default: false },
119
125
  },
120
126
  allowPositionals: true,
121
127
  strict: false,
@@ -278,7 +284,7 @@ async function run(argv) {
278
284
  logger.dim(`Completed in ${elapsed}s`);
279
285
  // Save markdown report (unless --no-save)
280
286
  if (!values['no-save']) {
281
- const reportDir = path.join(targetPath, '.ai', 'reports');
287
+ const reportDir = path.join(targetPath, '.dxkit', 'reports');
282
288
  const date = new Date().toISOString().slice(0, 10);
283
289
  const reportPath = path.join(reportDir, `health-audit-${date}.md`);
284
290
  fs.mkdirSync(reportDir, { recursive: true });
@@ -342,7 +348,7 @@ async function run(argv) {
342
348
  }
343
349
  logger.dim(`Completed in ${elapsed}s`);
344
350
  if (!values['no-save']) {
345
- const reportDir = path.join(targetPath, '.ai', 'reports');
351
+ const reportDir = path.join(targetPath, '.dxkit', 'reports');
346
352
  const date = new Date().toISOString().slice(0, 10);
347
353
  const reportPath = path.join(reportDir, `vulnerability-scan-${date}.md`);
348
354
  fs.mkdirSync(reportDir, { recursive: true });
@@ -387,7 +393,7 @@ async function run(argv) {
387
393
  logger.dim('Tools: ' + report.toolsUsed.join(', '));
388
394
  logger.dim(`Completed in ${elapsed}s`);
389
395
  if (!values['no-save']) {
390
- const reportDir = path.join(targetPath, '.ai', 'reports');
396
+ const reportDir = path.join(targetPath, '.dxkit', 'reports');
391
397
  const date = new Date().toISOString().slice(0, 10);
392
398
  const reportPath = path.join(reportDir, `test-gaps-${date}.md`);
393
399
  fs.mkdirSync(reportDir, { recursive: true });
@@ -456,7 +462,7 @@ async function run(argv) {
456
462
  }
457
463
  logger.dim(`Completed in ${elapsed}s`);
458
464
  if (!values['no-save']) {
459
- const reportDir = path.join(targetPath, '.ai', 'reports');
465
+ const reportDir = path.join(targetPath, '.dxkit', 'reports');
460
466
  const date = new Date().toISOString().slice(0, 10);
461
467
  const reportPath = path.join(reportDir, `quality-review-${date}.md`);
462
468
  fs.mkdirSync(reportDir, { recursive: true });
@@ -508,7 +514,7 @@ async function run(argv) {
508
514
  logger.dim('Tools: ' + report.toolsUsed.join(', '));
509
515
  logger.dim(`Completed in ${elapsed}s`);
510
516
  if (!values['no-save']) {
511
- const reportDir = path.join(targetPath, '.ai', 'reports');
517
+ const reportDir = path.join(targetPath, '.dxkit', 'reports');
512
518
  const date = new Date().toISOString().slice(0, 10);
513
519
  const reportPath = path.join(reportDir, `developer-report-${date}.md`);
514
520
  fs.mkdirSync(reportDir, { recursive: true });
@@ -567,7 +573,7 @@ async function run(argv) {
567
573
  logger.dim('Tools: ' + (report.toolsUsed.join(', ') || '(none)'));
568
574
  logger.dim(`Completed in ${elapsed}s`);
569
575
  if (!values['no-save']) {
570
- const reportDir = path.join(targetPath, '.ai', 'reports');
576
+ const reportDir = path.join(targetPath, '.dxkit', 'reports');
571
577
  const date = new Date().toISOString().slice(0, 10);
572
578
  const reportPath = path.join(reportDir, `licenses-${date}.md`);
573
579
  fs.mkdirSync(reportDir, { recursive: true });
@@ -604,8 +610,19 @@ async function run(argv) {
604
610
  const { analyzeBom, formatBomReport } = await Promise.resolve().then(() => __importStar(require('./analyzers/bom')));
605
611
  logger.header('vyuh-dxkit bom');
606
612
  logger.info(`Analyzing ${targetPath}...`);
613
+ const rawFilter = values.filter;
614
+ if (rawFilter !== undefined && rawFilter !== 'all' && rawFilter !== 'top-level') {
615
+ logger.fail(`Invalid --filter value: ${rawFilter}. Expected 'all' or 'top-level'.`);
616
+ process.exit(1);
617
+ }
618
+ const filter = rawFilter;
619
+ const nested = !values['no-nested'];
607
620
  const startTime = Date.now();
608
- const report = await analyzeBom(targetPath, { verbose: !!values.verbose });
621
+ const report = await analyzeBom(targetPath, {
622
+ verbose: !!values.verbose,
623
+ filter,
624
+ nested,
625
+ });
609
626
  const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
610
627
  if (values.json) {
611
628
  console.log(JSON.stringify(report, null, 2)); // slop-ok
@@ -613,7 +630,16 @@ async function run(argv) {
613
630
  else {
614
631
  const s = report.summary;
615
632
  console.log(''); // slop-ok
616
- console.log(` ${logger.bold('Packages indexed:')} ${s.totalPackages}`); // slop-ok
633
+ if (s.projectRoots.length > 1) {
634
+ logger.info(`Aggregated across ${s.projectRoots.length} project roots: ${s.projectRoots.join(', ')}`);
635
+ }
636
+ if (s.filter === 'top-level') {
637
+ // prettier-ignore
638
+ console.log(` ${logger.bold('Packages indexed:')} ${s.totalPackages} of ${s.unfilteredTotalPackages} (filter=top-level)`); // slop-ok
639
+ }
640
+ else {
641
+ console.log(` ${logger.bold('Packages indexed:')} ${s.totalPackages}`); // slop-ok
642
+ }
617
643
  console.log(
618
644
  // slop-ok
619
645
  ` ${logger.bold('Vulnerable packages:')} ${s.vulnerablePackages} ` +
@@ -637,7 +663,7 @@ async function run(argv) {
637
663
  logger.dim('Tools: ' + (report.toolsUsed.join(', ') || '(none)'));
638
664
  logger.dim(`Completed in ${elapsed}s`);
639
665
  if (!values['no-save']) {
640
- const reportDir = path.join(targetPath, '.ai', 'reports');
666
+ const reportDir = path.join(targetPath, '.dxkit', 'reports');
641
667
  const date = new Date().toISOString().slice(0, 10);
642
668
  const reportPath = path.join(reportDir, `bom-${date}.md`);
643
669
  fs.mkdirSync(reportDir, { recursive: true });
@@ -821,8 +847,13 @@ function enableStealthMode(cwd, createdFiles) {
821
847
  files.push(f);
822
848
  }
823
849
  }
824
- // Always include the manifest
850
+ // Always include the manifest + the runtime analyzer-output dir.
851
+ // `.dxkit/` isn't in `createdFiles` (generator.ts only emits
852
+ // scaffolded files; `.dxkit/reports/*.md` shows up later when the
853
+ // user actually runs an analyzer) — adding it preemptively means
854
+ // stealth mode doesn't need a second pass after the first scan.
825
855
  files.push('.vyuh-dxkit.json');
856
+ dirs.add('.dxkit/');
826
857
  // Dedupe against existing .gitignore
827
858
  const existingLines = new Set(existing.split('\n').map((l) => l.trim()));
828
859
  const newEntries = [];