@vyuhlabs/dxkit 2.0.1 → 2.1.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 (145) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/README.md +21 -15
  3. package/dist/analyzers/bom/detailed.d.ts +26 -0
  4. package/dist/analyzers/bom/detailed.d.ts.map +1 -0
  5. package/dist/analyzers/bom/detailed.js +227 -0
  6. package/dist/analyzers/bom/detailed.js.map +1 -0
  7. package/dist/analyzers/bom/gather.d.ts +52 -0
  8. package/dist/analyzers/bom/gather.d.ts.map +1 -0
  9. package/dist/analyzers/bom/gather.js +183 -0
  10. package/dist/analyzers/bom/gather.js.map +1 -0
  11. package/dist/analyzers/bom/index.d.ts +23 -0
  12. package/dist/analyzers/bom/index.d.ts.map +1 -0
  13. package/dist/analyzers/bom/index.js +183 -0
  14. package/dist/analyzers/bom/index.js.map +1 -0
  15. package/dist/analyzers/bom/types.d.ts +71 -0
  16. package/dist/analyzers/bom/types.d.ts.map +1 -0
  17. package/dist/analyzers/bom/types.js +3 -0
  18. package/dist/analyzers/bom/types.js.map +1 -0
  19. package/dist/analyzers/licenses/detailed.d.ts +30 -0
  20. package/dist/analyzers/licenses/detailed.d.ts.map +1 -0
  21. package/dist/analyzers/licenses/detailed.js +194 -0
  22. package/dist/analyzers/licenses/detailed.js.map +1 -0
  23. package/dist/analyzers/licenses/gather.d.ts +15 -0
  24. package/dist/analyzers/licenses/gather.d.ts.map +1 -0
  25. package/dist/analyzers/licenses/gather.js +24 -0
  26. package/dist/analyzers/licenses/gather.js.map +1 -0
  27. package/dist/analyzers/licenses/index.d.ts +21 -0
  28. package/dist/analyzers/licenses/index.d.ts.map +1 -0
  29. package/dist/analyzers/licenses/index.js +146 -0
  30. package/dist/analyzers/licenses/index.js.map +1 -0
  31. package/dist/analyzers/licenses/types.d.ts +30 -0
  32. package/dist/analyzers/licenses/types.d.ts.map +1 -0
  33. package/dist/analyzers/licenses/types.js +13 -0
  34. package/dist/analyzers/licenses/types.js.map +1 -0
  35. package/dist/analyzers/security/detailed.d.ts +0 -3
  36. package/dist/analyzers/security/detailed.d.ts.map +1 -1
  37. package/dist/analyzers/security/detailed.js +37 -6
  38. package/dist/analyzers/security/detailed.js.map +1 -1
  39. package/dist/analyzers/security/gather.d.ts.map +1 -1
  40. package/dist/analyzers/security/gather.js +2 -0
  41. package/dist/analyzers/security/gather.js.map +1 -1
  42. package/dist/analyzers/security/index.d.ts.map +1 -1
  43. package/dist/analyzers/security/index.js +53 -14
  44. package/dist/analyzers/security/index.js.map +1 -1
  45. package/dist/analyzers/security/types.d.ts +5 -0
  46. package/dist/analyzers/security/types.d.ts.map +1 -1
  47. package/dist/analyzers/security/types.js +0 -3
  48. package/dist/analyzers/security/types.js.map +1 -1
  49. package/dist/analyzers/tools/osv.d.ts +49 -5
  50. package/dist/analyzers/tools/osv.d.ts.map +1 -1
  51. package/dist/analyzers/tools/osv.js +99 -17
  52. package/dist/analyzers/tools/osv.js.map +1 -1
  53. package/dist/analyzers/tools/runner.d.ts +11 -0
  54. package/dist/analyzers/tools/runner.d.ts.map +1 -1
  55. package/dist/analyzers/tools/runner.js +54 -0
  56. package/dist/analyzers/tools/runner.js.map +1 -1
  57. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  58. package/dist/analyzers/tools/tool-registry.js +77 -0
  59. package/dist/analyzers/tools/tool-registry.js.map +1 -1
  60. package/dist/analyzers/xlsx/bom.d.ts +27 -0
  61. package/dist/analyzers/xlsx/bom.d.ts.map +1 -0
  62. package/dist/analyzers/xlsx/bom.js +131 -0
  63. package/dist/analyzers/xlsx/bom.js.map +1 -0
  64. package/dist/analyzers/xlsx/index.d.ts +27 -0
  65. package/dist/analyzers/xlsx/index.d.ts.map +1 -0
  66. package/dist/analyzers/xlsx/index.js +92 -0
  67. package/dist/analyzers/xlsx/index.js.map +1 -0
  68. package/dist/analyzers/xlsx/licenses.d.ts +40 -0
  69. package/dist/analyzers/xlsx/licenses.d.ts.map +1 -0
  70. package/dist/analyzers/xlsx/licenses.js +140 -0
  71. package/dist/analyzers/xlsx/licenses.js.map +1 -0
  72. package/dist/cli.d.ts.map +1 -1
  73. package/dist/cli.js +178 -1
  74. package/dist/cli.js.map +1 -1
  75. package/dist/languages/capabilities/descriptors.d.ts +4 -1
  76. package/dist/languages/capabilities/descriptors.d.ts.map +1 -1
  77. package/dist/languages/capabilities/descriptors.js +20 -1
  78. package/dist/languages/capabilities/descriptors.js.map +1 -1
  79. package/dist/languages/capabilities/types.d.ts +59 -3
  80. package/dist/languages/capabilities/types.d.ts.map +1 -1
  81. package/dist/languages/csharp.d.ts +13 -0
  82. package/dist/languages/csharp.d.ts.map +1 -1
  83. package/dist/languages/csharp.js +228 -33
  84. package/dist/languages/csharp.js.map +1 -1
  85. package/dist/languages/go.d.ts.map +1 -1
  86. package/dist/languages/go.js +211 -26
  87. package/dist/languages/go.js.map +1 -1
  88. package/dist/languages/python.d.ts.map +1 -1
  89. package/dist/languages/python.js +187 -11
  90. package/dist/languages/python.js.map +1 -1
  91. package/dist/languages/rust.d.ts +13 -0
  92. package/dist/languages/rust.d.ts.map +1 -1
  93. package/dist/languages/rust.js +195 -29
  94. package/dist/languages/rust.js.map +1 -1
  95. package/dist/languages/types.d.ts +2 -1
  96. package/dist/languages/types.d.ts.map +1 -1
  97. package/dist/languages/typescript.d.ts.map +1 -1
  98. package/dist/languages/typescript.js +252 -1
  99. package/dist/languages/typescript.js.map +1 -1
  100. package/package.json +7 -2
  101. package/dist/agents/extract.d.ts +0 -25
  102. package/dist/agents/extract.d.ts.map +0 -1
  103. package/dist/agents/extract.js +0 -186
  104. package/dist/agents/extract.js.map +0 -1
  105. package/dist/agents/schemas.d.ts +0 -106
  106. package/dist/agents/schemas.d.ts.map +0 -1
  107. package/dist/agents/schemas.js +0 -86
  108. package/dist/agents/schemas.js.map +0 -1
  109. package/dist/agents/session.d.ts +0 -28
  110. package/dist/agents/session.d.ts.map +0 -1
  111. package/dist/agents/session.js +0 -223
  112. package/dist/agents/session.js.map +0 -1
  113. package/dist/analyzers/index.d.ts +0 -3
  114. package/dist/analyzers/index.d.ts.map +0 -1
  115. package/dist/analyzers/index.js +0 -6
  116. package/dist/analyzers/index.js.map +0 -1
  117. package/dist/analyzers/security/report.d.ts +0 -6
  118. package/dist/analyzers/security/report.d.ts.map +0 -1
  119. package/dist/analyzers/security/report.js +0 -118
  120. package/dist/analyzers/security/report.js.map +0 -1
  121. package/dist/analyzers/tools/dotnet.d.ts +0 -8
  122. package/dist/analyzers/tools/dotnet.d.ts.map +0 -1
  123. package/dist/analyzers/tools/dotnet.js +0 -81
  124. package/dist/analyzers/tools/dotnet.js.map +0 -1
  125. package/dist/analyzers/tools/gather-cache.d.ts +0 -16
  126. package/dist/analyzers/tools/gather-cache.d.ts.map +0 -1
  127. package/dist/analyzers/tools/gather-cache.js +0 -126
  128. package/dist/analyzers/tools/gather-cache.js.map +0 -1
  129. package/dist/analyzers/tools/go.d.ts +0 -8
  130. package/dist/analyzers/tools/go.d.ts.map +0 -1
  131. package/dist/analyzers/tools/go.js +0 -84
  132. package/dist/analyzers/tools/go.js.map +0 -1
  133. package/dist/analyzers/tools/node.d.ts +0 -8
  134. package/dist/analyzers/tools/node.d.ts.map +0 -1
  135. package/dist/analyzers/tools/node.js +0 -160
  136. package/dist/analyzers/tools/node.js.map +0 -1
  137. package/dist/analyzers/tools/python.d.ts +0 -8
  138. package/dist/analyzers/tools/python.d.ts.map +0 -1
  139. package/dist/analyzers/tools/python.js +0 -81
  140. package/dist/analyzers/tools/python.js.map +0 -1
  141. package/dist/analyzers/tools/rust.d.ts +0 -8
  142. package/dist/analyzers/tools/rust.d.ts.map +0 -1
  143. package/dist/analyzers/tools/rust.js +0 -86
  144. package/dist/analyzers/tools/rust.js.map +0 -1
  145. package/templates/.ai/templates/session-checkpoint-template.md +0 -97
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * Licenses analyzer — detailed report.
4
+ *
5
+ * Extends the base LicensesReport with risk-categorized findings and a
6
+ * ranked action list. Unlike security/test-gaps, licenses aren't
7
+ * graded — there's no "license score" — so actions are prioritized by
8
+ * legal risk tier (unknown → strong-copyleft → weak-copyleft →
9
+ * missing-attribution) rather than by projected score delta.
10
+ *
11
+ * Both the markdown formatter and the XLSX converter (Phase 10h.2.3)
12
+ * can consume this same `LicensesDetailedReport` shape.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.buildLicensesDetailed = buildLicensesDetailed;
16
+ exports.formatLicensesDetailedMarkdown = formatLicensesDetailedMarkdown;
17
+ /**
18
+ * Strong-copyleft SPDX families. Prefix match covers `-or-later` /
19
+ * `-only` / version variants (`GPL-2.0`, `GPL-2.0-or-later`, etc.).
20
+ * Distribution/linking typically requires exposing downstream source,
21
+ * which is disqualifying for most proprietary products.
22
+ */
23
+ const STRONG_COPYLEFT_PREFIXES = ['GPL-', 'AGPL-'];
24
+ /**
25
+ * Weak-copyleft SPDX families. File-level or module-level restrictions
26
+ * — less restrictive than strong copyleft but still require review
27
+ * before shipping in a proprietary binary.
28
+ */
29
+ const WEAK_COPYLEFT_PREFIXES = ['LGPL-', 'MPL-', 'EPL-', 'CDDL-'];
30
+ function matchesAny(licenseType, prefixes) {
31
+ // license-checker may emit "GPL-3.0 OR MIT" compound expressions.
32
+ // Split and test any term so a dual-licensed package still gets flagged.
33
+ const terms = licenseType.split(/\s+OR\s+|\s+AND\s+|,\s*/);
34
+ for (const term of terms) {
35
+ for (const p of prefixes) {
36
+ if (term.startsWith(p))
37
+ return true;
38
+ }
39
+ }
40
+ return false;
41
+ }
42
+ function buildLicensesDetailed(report) {
43
+ const unknown = report.findings.filter((f) => f.licenseType === 'UNKNOWN' || f.licenseType.length === 0);
44
+ const strongCopyleft = report.findings.filter((f) => matchesAny(f.licenseType, STRONG_COPYLEFT_PREFIXES));
45
+ const weakCopyleft = report.findings.filter((f) => matchesAny(f.licenseType, WEAK_COPYLEFT_PREFIXES));
46
+ const missingText = report.findings.filter((f) => (f.licenseType !== 'UNKNOWN' && !f.licenseText) ||
47
+ (f.licenseText !== undefined && f.licenseText.length === 0));
48
+ const missingSupplier = report.findings.filter((f) => !f.supplier || f.supplier.length === 0);
49
+ const categories = [];
50
+ if (unknown.length > 0) {
51
+ categories.push({
52
+ priority: 'critical',
53
+ id: 'unknown-license',
54
+ title: 'Unknown or unresolved licenses',
55
+ rationale: 'Packages with no detected license may not be safe to redistribute. Their absence of license metadata blocks any licensing guarantee.',
56
+ recommendation: 'Audit each package individually. Contact maintainers, check the source repository directly, or replace with a license-known alternative.',
57
+ affected: unknown,
58
+ });
59
+ }
60
+ if (strongCopyleft.length > 0) {
61
+ categories.push({
62
+ priority: 'high',
63
+ id: 'strong-copyleft',
64
+ title: 'Strong-copyleft licenses (GPL / AGPL)',
65
+ rationale: 'GPL/AGPL licenses typically require derivative works to be distributed under the same license, including source code. Shipping these inside proprietary products can trigger the copyleft clause.',
66
+ recommendation: 'For each package, determine whether it is linked statically/dynamically into a distributable artifact. Consult legal before shipping; consider MIT/Apache alternatives.',
67
+ affected: strongCopyleft,
68
+ });
69
+ }
70
+ if (weakCopyleft.length > 0) {
71
+ categories.push({
72
+ priority: 'medium',
73
+ id: 'weak-copyleft',
74
+ title: 'Weak-copyleft licenses (LGPL / MPL / EPL / CDDL)',
75
+ rationale: 'Weak-copyleft licenses apply only to modifications of the licensed files themselves, not to derivative works linking to them. Still subject to attribution and in some cases source-disclosure for modifications.',
76
+ recommendation: 'Safe to use unmodified in proprietary products; any modifications must be published under the same license. Document intent so a future reviewer doesn’t re-audit unchanged deps.',
77
+ affected: weakCopyleft,
78
+ });
79
+ }
80
+ if (missingText.length > 0) {
81
+ categories.push({
82
+ priority: 'medium',
83
+ id: 'missing-license-text',
84
+ title: 'Missing license text',
85
+ rationale: 'License type is known but the full text is absent. Attribution clauses typically require the license text be distributed with the binary or notice file.',
86
+ recommendation: 'Locate each package’s LICENSE file from its source repository and bundle in NOTICE / THIRD-PARTY.md. Most ecosystems ship the file in the package directory.',
87
+ affected: missingText,
88
+ });
89
+ }
90
+ if (missingSupplier.length > 0) {
91
+ categories.push({
92
+ priority: 'low',
93
+ id: 'missing-supplier',
94
+ title: 'Missing supplier or author metadata',
95
+ rationale: 'Provenance information is useful during security review (who published this? when?), compliance audits, and vulnerability triage.',
96
+ recommendation: 'Manual lookup via each ecosystem’s registry (npm view, PyPI, crates.io). Consider dropping packages with no identifiable maintainer.',
97
+ affected: missingSupplier,
98
+ });
99
+ }
100
+ return {
101
+ ...report,
102
+ riskCategories: categories,
103
+ };
104
+ }
105
+ const PRIORITY_LABELS = {
106
+ critical: '🔴 Critical',
107
+ high: '🟠 High',
108
+ medium: '🟡 Medium',
109
+ low: '🔵 Low',
110
+ };
111
+ function formatLicensesDetailedMarkdown(detailed, elapsed) {
112
+ const L = [];
113
+ L.push('# License Inventory — Detailed');
114
+ L.push('');
115
+ L.push(`**Date:** ${detailed.analyzedAt.slice(0, 10)}`);
116
+ L.push(`**Repository:** ${detailed.repo}`);
117
+ L.push(`**Branch:** ${detailed.branch} (${detailed.commitSha})`);
118
+ L.push(`**Schema version:** ${detailed.schemaVersion}`);
119
+ L.push('');
120
+ L.push('---');
121
+ L.push('');
122
+ // Summary
123
+ L.push('## Summary');
124
+ L.push('');
125
+ L.push(`**${detailed.summary.totalPackages} packages** across ${Object.keys(detailed.summary.byLicense).length} distinct license types.`);
126
+ if (detailed.riskCategories.length > 0) {
127
+ L.push('');
128
+ const n = detailed.riskCategories.length;
129
+ L.push(`**${n} risk categor${n === 1 ? 'y' : 'ies'} flagged** — see below.`);
130
+ }
131
+ L.push('');
132
+ L.push('---');
133
+ L.push('');
134
+ // Risk categories
135
+ L.push('## Risk Review');
136
+ L.push('');
137
+ if (detailed.riskCategories.length === 0) {
138
+ L.push('No licensing risks flagged. Every package has a known license, full text, and supplier metadata.');
139
+ }
140
+ else {
141
+ L.push('Categories are ranked by legal risk tier. Review top-to-bottom.');
142
+ L.push('');
143
+ L.push('| # | Category | Priority | Affected |');
144
+ L.push('|---|----------|----------|---------:|');
145
+ detailed.riskCategories.forEach((c, i) => {
146
+ L.push(`| ${i + 1} | ${c.title} | ${PRIORITY_LABELS[c.priority]} | ${c.affected.length} |`);
147
+ });
148
+ L.push('');
149
+ for (const c of detailed.riskCategories) {
150
+ L.push(`### ${PRIORITY_LABELS[c.priority]} — ${c.title} (${c.affected.length})`);
151
+ L.push('');
152
+ L.push(`**Why:** ${c.rationale}`);
153
+ L.push('');
154
+ L.push(`**What to do:** ${c.recommendation}`);
155
+ L.push('');
156
+ L.push('| Package | Version | License |');
157
+ L.push('|---------|---------|---------|');
158
+ const rows = [...c.affected].sort((a, b) => a.package.localeCompare(b.package));
159
+ for (const f of rows) {
160
+ L.push(`| \`${f.package}\` | ${f.version} | ${f.licenseType || 'UNKNOWN'} |`);
161
+ }
162
+ L.push('');
163
+ }
164
+ }
165
+ L.push('---');
166
+ L.push('');
167
+ // Full inventory — every field
168
+ L.push('## Full Inventory');
169
+ L.push('');
170
+ if (detailed.findings.length === 0) {
171
+ L.push('_No packages detected._');
172
+ }
173
+ else {
174
+ L.push('| Package | Version | License | Supplier | Description | Source URL |');
175
+ L.push('|---------|---------|---------|----------|-------------|------------|');
176
+ const rows = [...detailed.findings].sort((a, b) => a.package.localeCompare(b.package));
177
+ for (const f of rows) {
178
+ const supplier = (f.supplier || '').replace(/\|/g, '\\|');
179
+ const desc = (f.description || '').replace(/\|/g, '\\|').replace(/\n/g, ' ').slice(0, 120);
180
+ const url = f.sourceUrl || '';
181
+ L.push(`| \`${f.package}\` | ${f.version} | ${f.licenseType} | ${supplier} | ${desc} | ${url} |`);
182
+ }
183
+ }
184
+ L.push('');
185
+ L.push('---');
186
+ L.push('');
187
+ // Footer
188
+ L.push(`**Tools used:** ${detailed.toolsUsed.join(', ') || '(none)'}`);
189
+ L.push(`**Analysis time:** ${elapsed}s`);
190
+ L.push('');
191
+ L.push('*Generated by [VyuhLabs DXKit](https://www.npmjs.com/package/@vyuhlabs/dxkit)*');
192
+ return L.join('\n');
193
+ }
194
+ //# sourceMappingURL=detailed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detailed.js","sourceRoot":"","sources":["../../../src/analyzers/licenses/detailed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Licenses analyzer data-gather — a thin wrapper around the capability
3
+ * dispatcher. The work of invoking per-pack license tools lives in
4
+ * `src/languages/{typescript,python,go,rust,csharp}.ts`; this module
5
+ * just routes through the dispatcher and unpacks the aggregated
6
+ * envelope so the analyzer index can compute its cross-report summary.
7
+ */
8
+ import type { LicensesResult } from '../../languages/capabilities/types';
9
+ /**
10
+ * Dispatch the LICENSES capability against `cwd`. Returns null when no
11
+ * pack contributed (e.g. a polyglot-negative repo) so the caller can
12
+ * emit an empty-but-shaped report rather than fabricating data.
13
+ */
14
+ export declare function gatherLicensesResult(cwd: string): Promise<LicensesResult | null>;
15
+ //# sourceMappingURL=gather.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gather.d.ts","sourceRoot":"","sources":["../../../src/analyzers/licenses/gather.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAItF"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Licenses analyzer data-gather — a thin wrapper around the capability
4
+ * dispatcher. The work of invoking per-pack license tools lives in
5
+ * `src/languages/{typescript,python,go,rust,csharp}.ts`; this module
6
+ * just routes through the dispatcher and unpacks the aggregated
7
+ * envelope so the analyzer index can compute its cross-report summary.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.gatherLicensesResult = gatherLicensesResult;
11
+ const dispatcher_1 = require("../dispatcher");
12
+ const descriptors_1 = require("../../languages/capabilities/descriptors");
13
+ const capabilities_1 = require("../../languages/capabilities");
14
+ /**
15
+ * Dispatch the LICENSES capability against `cwd`. Returns null when no
16
+ * pack contributed (e.g. a polyglot-negative repo) so the caller can
17
+ * emit an empty-but-shaped report rather than fabricating data.
18
+ */
19
+ async function gatherLicensesResult(cwd) {
20
+ const descriptor = descriptors_1.PER_PACK_REGISTRY.licenses;
21
+ const providers = (0, capabilities_1.providersFor)(descriptor);
22
+ return dispatcher_1.defaultDispatcher.gather(cwd, descriptor, providers);
23
+ }
24
+ //# sourceMappingURL=gather.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gather.js","sourceRoot":"","sources":["../../../src/analyzers/licenses/gather.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAYH,oDAIC;AAdD,8CAAkD;AAClD,0EAA6E;AAC7E,+DAA4D;AAG5D;;;;GAIG;AACI,KAAK,UAAU,oBAAoB,CAAC,GAAW;IACpD,MAAM,UAAU,GAAG,+BAAiB,CAAC,QAAQ,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAA,2BAAY,EAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,8BAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Licenses analyzer — public API.
3
+ *
4
+ * Produces a per-package license inventory by dispatching the LICENSES
5
+ * capability across every active language pack. Output formats:
6
+ *
7
+ * - `formatLicensesMarkdown(report)` — table markdown for
8
+ * `.ai/reports/licenses-<date>.md` and PR comments.
9
+ * - JSON via the CLI's `--json` flag — envelope pass-through with
10
+ * the added summary + repo metadata.
11
+ * - XLSX — 15-column drop-in for the customer's spreadsheet
12
+ * workflow; lands in Phase 10h.2.2 via `exceljs`.
13
+ */
14
+ import type { LicensesReport } from './types';
15
+ export type { LicensesReport } from './types';
16
+ export interface AnalyzeLicensesOptions {
17
+ verbose?: boolean;
18
+ }
19
+ export declare function analyzeLicenses(repoPath: string, _options?: AnalyzeLicensesOptions): Promise<LicensesReport>;
20
+ export declare function formatLicensesReport(report: LicensesReport, elapsed: string): string;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzers/licenses/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,QAAQ,GAAE,sBAA2B,GACpC,OAAO,CAAC,cAAc,CAAC,CA6BzB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA2EpF"}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ /**
3
+ * Licenses analyzer — public API.
4
+ *
5
+ * Produces a per-package license inventory by dispatching the LICENSES
6
+ * capability across every active language pack. Output formats:
7
+ *
8
+ * - `formatLicensesMarkdown(report)` — table markdown for
9
+ * `.ai/reports/licenses-<date>.md` and PR comments.
10
+ * - JSON via the CLI's `--json` flag — envelope pass-through with
11
+ * the added summary + repo metadata.
12
+ * - XLSX — 15-column drop-in for the customer's spreadsheet
13
+ * workflow; lands in Phase 10h.2.2 via `exceljs`.
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.analyzeLicenses = analyzeLicenses;
50
+ exports.formatLicensesReport = formatLicensesReport;
51
+ const path = __importStar(require("path"));
52
+ const detect_1 = require("../../detect");
53
+ const runner_1 = require("../tools/runner");
54
+ const gather_1 = require("./gather");
55
+ async function analyzeLicenses(repoPath, _options = {}) {
56
+ const stack = (0, detect_1.detect)(repoPath);
57
+ const envelope = await (0, gather_1.gatherLicensesResult)(repoPath);
58
+ const findings = envelope?.findings ?? [];
59
+ const byLicense = {};
60
+ let unknownCount = 0;
61
+ for (const f of findings) {
62
+ byLicense[f.licenseType] = (byLicense[f.licenseType] ?? 0) + 1;
63
+ if (f.licenseType === 'UNKNOWN' || f.licenseType.length === 0)
64
+ unknownCount++;
65
+ }
66
+ const toolsUsed = envelope ? envelope.tool.split(', ').filter((t) => t.length > 0) : [];
67
+ return {
68
+ repo: stack.projectName || path.basename(repoPath),
69
+ analyzedAt: new Date().toISOString(),
70
+ commitSha: (0, runner_1.run)('git rev-parse --short HEAD 2>/dev/null', repoPath),
71
+ branch: (0, runner_1.run)('git rev-parse --abbrev-ref HEAD 2>/dev/null', repoPath),
72
+ schemaVersion: '1',
73
+ summary: {
74
+ totalPackages: findings.length,
75
+ byLicense,
76
+ unknownCount,
77
+ },
78
+ findings,
79
+ toolsUsed,
80
+ toolsUnavailable: [],
81
+ };
82
+ }
83
+ function formatLicensesReport(report, elapsed) {
84
+ const L = [];
85
+ L.push('# License Inventory Report');
86
+ L.push('');
87
+ L.push(`**Date:** ${report.analyzedAt.slice(0, 10)}`);
88
+ L.push(`**Repository:** ${report.repo}`);
89
+ L.push(`**Branch:** ${report.branch} (${report.commitSha})`);
90
+ L.push('');
91
+ L.push('---');
92
+ L.push('');
93
+ // Summary
94
+ L.push('## Summary');
95
+ L.push('');
96
+ L.push(`**${report.summary.totalPackages} packages** across ${Object.keys(report.summary.byLicense).length} distinct license types.`);
97
+ if (report.summary.unknownCount > 0) {
98
+ L.push('');
99
+ L.push(`> ⚠️ ${report.summary.unknownCount} package(s) have no detected license — review before shipping.`);
100
+ }
101
+ L.push('');
102
+ // Breakdown by license
103
+ L.push('## License Distribution');
104
+ L.push('');
105
+ L.push('| License | Count |');
106
+ L.push('|---------|-------|');
107
+ const sorted = Object.entries(report.summary.byLicense).sort((a, b) => b[1] - a[1]);
108
+ for (const [lic, count] of sorted) {
109
+ L.push(`| ${lic} | ${count} |`);
110
+ }
111
+ L.push('');
112
+ L.push('---');
113
+ L.push('');
114
+ // Findings table — capped at 50 rows for readability; full list in *-detailed.md
115
+ L.push('## Packages');
116
+ L.push('');
117
+ if (report.findings.length === 0) {
118
+ L.push('_No packages detected. Ensure the project has a resolved dependency tree (e.g. `npm install`, `pip install`, `go mod download`, `cargo build`, `dotnet restore`) before running this analyzer._');
119
+ }
120
+ else {
121
+ const cap = 50;
122
+ const rows = [...report.findings].sort((a, b) => a.package.localeCompare(b.package));
123
+ const shown = rows.slice(0, cap);
124
+ L.push('| Package | Version | License | Description | Source URL |');
125
+ L.push('|---------|---------|---------|-------------|------------|');
126
+ for (const f of shown) {
127
+ const desc = (f.description || '').replace(/\|/g, '\\|').replace(/\n/g, ' ').slice(0, 80);
128
+ const url = f.sourceUrl || '';
129
+ L.push(`| \`${f.package}\` | ${f.version} | ${f.licenseType} | ${desc} | ${url} |`);
130
+ }
131
+ if (rows.length > cap) {
132
+ L.push('');
133
+ L.push(`_Showing ${cap} of ${rows.length} packages alphabetically. Run with \`--detailed\` for full inventory + risk review._`);
134
+ }
135
+ }
136
+ L.push('');
137
+ L.push('---');
138
+ L.push('');
139
+ // Footer
140
+ L.push(`**Tools used:** ${report.toolsUsed.join(', ') || '(none)'}`);
141
+ L.push(`**Analysis time:** ${elapsed}s`);
142
+ L.push('');
143
+ L.push('*Generated by [VyuhLabs DXKit](https://www.npmjs.com/package/@vyuhlabs/dxkit)*');
144
+ return L.join('\n');
145
+ }
146
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/licenses/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcH,0CAgCC;AAED,oDA2EC;AAzHD,2CAA6B;AAC7B,yCAAsC;AACtC,4CAAsC;AACtC,qCAAgD;AASzC,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,WAAmC,EAAE;IAErC,MAAM,KAAK,GAAG,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAoB,EAAC,QAAQ,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC;IAC1C,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,YAAY,EAAE,CAAC;IAChF,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExF,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,SAAS,EAAE,IAAA,YAAG,EAAC,wCAAwC,EAAE,QAAQ,CAAC;QAClE,MAAM,EAAE,IAAA,YAAG,EAAC,6CAA6C,EAAE,QAAQ,CAAC;QACpE,aAAa,EAAE,GAAG;QAClB,OAAO,EAAE;YACP,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,SAAS;YACT,YAAY;SACb;QACD,QAAQ;QACR,SAAS;QACT,gBAAgB,EAAE,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,MAAsB,EAAE,OAAe;IAC1E,MAAM,CAAC,GAAa,EAAE,CAAC;IAEvB,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACrC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;IAC7D,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,UAAU;IACV,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CACJ,KAAK,MAAM,CAAC,OAAO,CAAC,aAAa,sBAAsB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,0BAA0B,CAC9H,CAAC;IACF,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QACpC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,CAAC,CAAC,IAAI,CACJ,QAAQ,MAAM,CAAC,OAAO,CAAC,YAAY,gEAAgE,CACpG,CAAC;IACJ,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,uBAAuB;IACvB,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAClC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC9B,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,iFAAiF;IACjF,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC,IAAI,CACJ,iMAAiM,CAClM,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACrF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACrE,CAAC,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACrE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1F,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,WAAW,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACX,CAAC,CAAC,IAAI,CACJ,YAAY,GAAG,OAAO,IAAI,CAAC,MAAM,sFAAsF,CACxH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,SAAS;IACT,CAAC,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACrE,CAAC,CAAC,IAAI,CAAC,sBAAsB,OAAO,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;IAEzF,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Licenses analyzer report shape.
3
+ *
4
+ * Thin wrapper over the LICENSES capability envelope (one per active
5
+ * language pack, aggregated by the dispatcher's descriptor). Adds the
6
+ * cross-report metadata every vyuh-dxkit analyzer ships (repo, commit,
7
+ * timestamps, toolsUsed/Unavailable) plus a small summary pre-computed
8
+ * at gather time so consumers don't have to walk the full findings
9
+ * array just to pick a grade.
10
+ */
11
+ import type { LicenseFinding } from '../../languages/capabilities/types';
12
+ export interface LicensesReport {
13
+ repo: string;
14
+ analyzedAt: string;
15
+ commitSha: string;
16
+ branch: string;
17
+ /** Bumps when the report shape changes incompatibly. */
18
+ schemaVersion: '1';
19
+ summary: {
20
+ totalPackages: number;
21
+ /** Count per canonical SPDX identifier — e.g. { 'MIT': 45, 'Apache-2.0': 23, 'UNKNOWN': 2 }. */
22
+ byLicense: Record<string, number>;
23
+ /** Count of packages lacking a license field (or reported as 'UNKNOWN'). */
24
+ unknownCount: number;
25
+ };
26
+ findings: ReadonlyArray<LicenseFinding>;
27
+ toolsUsed: string[];
28
+ toolsUnavailable: string[];
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/analyzers/licenses/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,aAAa,EAAE,GAAG,CAAC;IACnB,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,gGAAgG;QAChG,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,4EAA4E;QAC5E,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * Licenses analyzer report shape.
4
+ *
5
+ * Thin wrapper over the LICENSES capability envelope (one per active
6
+ * language pack, aggregated by the dispatcher's descriptor). Adds the
7
+ * cross-report metadata every vyuh-dxkit analyzer ships (repo, commit,
8
+ * timestamps, toolsUsed/Unavailable) plus a small summary pre-computed
9
+ * at gather time so consumers don't have to walk the full findings
10
+ * array just to pick a grade.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/analyzers/licenses/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG"}
@@ -1,6 +1,3 @@
1
- /**
2
- * Detailed security report — JSON schema + markdown formatter.
3
- */
4
1
  import { SecurityReport } from './types';
5
2
  import { RankedAction } from '../remediation';
6
3
  import { SecurityCounts } from './scoring';
@@ -1 +1 @@
1
- {"version":3,"file":"detailed.d.ts","sourceRoot":"","sources":["../../../src/analyzers/security/detailed.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAA6B,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,YAAY,EAAQ,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAuB,MAAM,WAAW,CAAC;AAEhE,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;CAC9C;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,sBAAsB,CASpF;AAID,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,MAAM,GACd,MAAM,CAmHR"}
1
+ {"version":3,"file":"detailed.d.ts","sourceRoot":"","sources":["../../../src/analyzers/security/detailed.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAA6B,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,YAAY,EAAQ,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAuB,MAAM,WAAW,CAAC;AAEhE,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;CAC9C;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,sBAAsB,CAUpF;AAID,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,MAAM,GACd,MAAM,CAuJR"}
@@ -10,7 +10,8 @@ function buildSecurityDetailed(report) {
10
10
  const actions = (0, remediation_1.rank)((0, actions_1.buildSecurityActions)(report), counts, scoring_1.scoreSecurityCounts);
11
11
  return {
12
12
  ...report,
13
- schemaVersion: '11',
13
+ // v12 adds per-advisory dep-vuln detail under summary.dependencies.findings.
14
+ schemaVersion: '12',
14
15
  securityScore: (0, scoring_1.scoreSecurityCounts)(counts).score,
15
16
  actions,
16
17
  };
@@ -30,13 +31,27 @@ function formatSecurityDetailedMarkdown(detailed, elapsed) {
30
31
  L.push('');
31
32
  L.push('---');
32
33
  L.push('');
33
- // Summary
34
+ // Summary — two independent axes (see formatSecurityReport in
35
+ // index.ts for the same rationale). Code findings vs dependency
36
+ // vulnerabilities are NOT summed naïvely; each has its own
37
+ // remediation owner (your team patches code, you upgrade deps).
34
38
  L.push('## Summary');
35
39
  L.push('');
36
- L.push(`Code findings: ${s.critical}C ${s.high}H ${s.medium}M ${s.low}L (${s.total} total). ` +
37
- (d.tool
38
- ? `Dependency vulns: ${d.critical}C ${d.high}H ${d.medium}M ${d.low}L (${d.total}, via ${d.tool}).`
39
- : 'No dependency audit data.'));
40
+ L.push('Two independent axes:');
41
+ L.push('- **Code findings** — vulnerabilities in source your team owns. Fix by patching code.');
42
+ L.push('- **Dependency vulnerabilities** vulnerabilities in third-party packages. Fix by upgrading the dep.');
43
+ L.push('');
44
+ L.push(`**Code findings:** ${s.critical}C ${s.high}H ${s.medium}M ${s.low}L (${s.total} total)`);
45
+ if (d.tool) {
46
+ L.push(`**Dependency vulns:** ${d.critical}C ${d.high}H ${d.medium}M ${d.low}L (${d.total} total, via ${d.tool})`);
47
+ L.push('');
48
+ L.push(`**Combined signals:** ${s.total + d.total} (${s.total} code + ${d.total} dependency)`);
49
+ }
50
+ else {
51
+ L.push('**Dependency vulns:** no audit data');
52
+ L.push('');
53
+ L.push(`**Combined signals:** ${s.total} (code only)`);
54
+ }
40
55
  L.push('');
41
56
  L.push('---');
42
57
  L.push('');
@@ -109,6 +124,22 @@ function formatSecurityDetailedMarkdown(detailed, elapsed) {
109
124
  L.push(`| Low | ${d.low} |`);
110
125
  L.push(`| **Total** | **${d.total}** |`);
111
126
  L.push('');
127
+ if (d.findings.length > 0) {
128
+ // Per-advisory inventory. Sorted by (severity, package, id) so the
129
+ // table reads top-down from worst-first within each pack's output.
130
+ const sortedDeps = [...d.findings].sort((a, b) => SEV_ORDER[a.severity] - SEV_ORDER[b.severity] ||
131
+ a.package.localeCompare(b.package) ||
132
+ a.id.localeCompare(b.id));
133
+ L.push(`Per-advisory detail (${sortedDeps.length} findings):`);
134
+ L.push('');
135
+ L.push('| Severity | ID | Package | Installed | Fixed | CVSS | Tool |');
136
+ L.push('|----------|----|---------|-----------|-------|-----:|------|');
137
+ for (const f of sortedDeps) {
138
+ const cvss = f.cvssScore !== undefined ? f.cvssScore.toFixed(1) : '—';
139
+ L.push(`| ${f.severity.toUpperCase()} | \`${f.id}\` | \`${f.package}\` | ${f.installedVersion ?? '—'} | ${f.fixedVersion ?? '—'} | ${cvss} | ${f.tool} |`);
140
+ }
141
+ L.push('');
142
+ }
112
143
  L.push('---');
113
144
  L.push('');
114
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"detailed.js","sourceRoot":"","sources":["../../../src/analyzers/security/detailed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detailed.js","sourceRoot":"","sources":["../../../src/analyzers/security/detailed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gather.d.ts","sourceRoot":"","sources":["../../../src/analyzers/security/gather.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAU1D;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACxD,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC,CAeD;AAID,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAuCjE;AAID;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7D,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC,CAeD;AAaD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBzE"}
1
+ {"version":3,"file":"gather.d.ts","sourceRoot":"","sources":["../../../src/analyzers/security/gather.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAU1D;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACxD,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC,CAeD;AAID,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAuCjE;AAID;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7D,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC,CAeD;AAcD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAoBzE"}
@@ -113,6 +113,7 @@ const EMPTY_DEP_VULNS = {
113
113
  low: 0,
114
114
  total: 0,
115
115
  tool: null,
116
+ findings: [],
116
117
  };
117
118
  /**
118
119
  * Aggregates dependency vulnerabilities across every active language pack
@@ -142,6 +143,7 @@ async function gatherDepVulns(cwd) {
142
143
  low,
143
144
  total: critical + high + medium + low,
144
145
  tool: envelope.tool,
146
+ findings: envelope.findings ?? [],
145
147
  };
146
148
  }
147
149
  //# sourceMappingURL=gather.js.map