@swarmdo/cli 1.12.0 → 1.14.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 (45) hide show
  1. package/README.md +3 -1
  2. package/dist/src/commands/compact.d.ts.map +1 -1
  3. package/dist/src/commands/compact.js +3 -2
  4. package/dist/src/commands/compact.js.map +1 -1
  5. package/dist/src/commands/index.d.ts.map +1 -1
  6. package/dist/src/commands/index.js +10 -3
  7. package/dist/src/commands/index.js.map +1 -1
  8. package/dist/src/commands/license.d.ts +16 -0
  9. package/dist/src/commands/license.d.ts.map +1 -0
  10. package/dist/src/commands/license.js +124 -0
  11. package/dist/src/commands/license.js.map +1 -0
  12. package/dist/src/commands/pack.js +2 -2
  13. package/dist/src/commands/pack.js.map +1 -1
  14. package/dist/src/commands/redact.d.ts.map +1 -1
  15. package/dist/src/commands/redact.js +2 -1
  16. package/dist/src/commands/redact.js.map +1 -1
  17. package/dist/src/commands/sbom.d.ts +14 -0
  18. package/dist/src/commands/sbom.d.ts.map +1 -0
  19. package/dist/src/commands/sbom.js +73 -0
  20. package/dist/src/commands/sbom.js.map +1 -0
  21. package/dist/src/license/license.d.ts +55 -0
  22. package/dist/src/license/license.d.ts.map +1 -0
  23. package/dist/src/license/license.js +81 -0
  24. package/dist/src/license/license.js.map +1 -0
  25. package/dist/src/mcp-client.d.ts.map +1 -1
  26. package/dist/src/mcp-client.js +2 -0
  27. package/dist/src/mcp-client.js.map +1 -1
  28. package/dist/src/mcp-tools/index.d.ts +1 -0
  29. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  30. package/dist/src/mcp-tools/index.js +1 -0
  31. package/dist/src/mcp-tools/index.js.map +1 -1
  32. package/dist/src/mcp-tools/license-tools.d.ts +11 -0
  33. package/dist/src/mcp-tools/license-tools.d.ts.map +1 -0
  34. package/dist/src/mcp-tools/license-tools.js +57 -0
  35. package/dist/src/mcp-tools/license-tools.js.map +1 -0
  36. package/dist/src/sbom/sbom.d.ts +64 -0
  37. package/dist/src/sbom/sbom.d.ts.map +1 -0
  38. package/dist/src/sbom/sbom.js +130 -0
  39. package/dist/src/sbom/sbom.js.map +1 -0
  40. package/dist/src/util/stdout.d.ts +12 -0
  41. package/dist/src/util/stdout.d.ts.map +1 -0
  42. package/dist/src/util/stdout.js +16 -0
  43. package/dist/src/util/stdout.js.map +1 -0
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +1 -1
@@ -0,0 +1,55 @@
1
+ /**
2
+ * license.ts — audit dependency licenses against an allow/deny policy. Supply-
3
+ * chain hygiene for agent-built projects: catch a copyleft (GPL) or unknown
4
+ * license slipping into a tree that must stay permissive, and fail CI on it.
5
+ *
6
+ * Distinct from `security` (CVE/vulnerability scanning) — this is license
7
+ * COMPLIANCE. Pure + deterministic: the engine takes a list of
8
+ * {name, version, license} plus a policy and returns violations. The fs walk
9
+ * over node_modules lives in ../commands/license.ts.
10
+ */
11
+ export interface DepLicense {
12
+ name: string;
13
+ version: string;
14
+ /** SPDX id/expression, or 'UNKNOWN' */
15
+ license: string;
16
+ }
17
+ export interface LicensePolicy {
18
+ /** if non-empty, a dep must match at least one to pass */
19
+ allow?: string[];
20
+ /** any match fails the dep */
21
+ deny?: string[];
22
+ /** treat UNKNOWN as a pass even when an allowlist is set (default false) */
23
+ allowUnknown?: boolean;
24
+ }
25
+ export type ViolationReason = 'denied' | 'not-allowed' | 'unknown';
26
+ export interface Violation {
27
+ name: string;
28
+ version: string;
29
+ license: string;
30
+ reason: ViolationReason;
31
+ }
32
+ export interface LicenseReport {
33
+ total: number;
34
+ violations: Violation[];
35
+ /** license id → count across all deps */
36
+ byLicense: Record<string, number>;
37
+ }
38
+ /**
39
+ * Normalize a package.json `license`/`licenses` field to an SPDX string.
40
+ * Handles the modern string, the legacy `{type}` object, and the legacy
41
+ * `licenses: [{type}]` array (→ `A OR B`). Missing → 'UNKNOWN'.
42
+ */
43
+ export declare function classifyLicense(pkg: {
44
+ license?: unknown;
45
+ licenses?: unknown;
46
+ }): string;
47
+ /** Split an SPDX expression into its atomic license ids (strips OR/AND/WITH/parens/+). */
48
+ export declare function spdxComponents(expr: string): string[];
49
+ /** Evaluate one dep against the policy; null if it passes. Pure. */
50
+ export declare function evaluateDep(dep: DepLicense, policy: LicensePolicy): Violation | null;
51
+ /** Audit a dependency set against a policy. Pure. */
52
+ export declare function auditLicenses(deps: DepLicense[], policy?: LicensePolicy): LicenseReport;
53
+ /** One-line human summary. */
54
+ export declare function formatLicenseSummary(r: LicenseReport): string;
55
+ //# sourceMappingURL=license.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../../src/license/license.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CAcT;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMrD;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAmBpF;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,MAAM,GAAE,aAAkB,GAAG,aAAa,CAW3F;AAED,8BAA8B;AAC9B,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAG7D"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * license.ts — audit dependency licenses against an allow/deny policy. Supply-
3
+ * chain hygiene for agent-built projects: catch a copyleft (GPL) or unknown
4
+ * license slipping into a tree that must stay permissive, and fail CI on it.
5
+ *
6
+ * Distinct from `security` (CVE/vulnerability scanning) — this is license
7
+ * COMPLIANCE. Pure + deterministic: the engine takes a list of
8
+ * {name, version, license} plus a policy and returns violations. The fs walk
9
+ * over node_modules lives in ../commands/license.ts.
10
+ */
11
+ /**
12
+ * Normalize a package.json `license`/`licenses` field to an SPDX string.
13
+ * Handles the modern string, the legacy `{type}` object, and the legacy
14
+ * `licenses: [{type}]` array (→ `A OR B`). Missing → 'UNKNOWN'.
15
+ */
16
+ export function classifyLicense(pkg) {
17
+ const l = pkg.license;
18
+ if (typeof l === 'string' && l.trim())
19
+ return l.trim();
20
+ if (l && typeof l === 'object' && typeof l.type === 'string') {
21
+ return l.type.trim() || 'UNKNOWN';
22
+ }
23
+ const arr = pkg.licenses;
24
+ if (Array.isArray(arr) && arr.length) {
25
+ const types = arr
26
+ .map((e) => (typeof e === 'string' ? e : e?.type))
27
+ .filter((t) => typeof t === 'string' && !!t.trim());
28
+ if (types.length)
29
+ return types.join(' OR ');
30
+ }
31
+ return 'UNKNOWN';
32
+ }
33
+ /** Split an SPDX expression into its atomic license ids (strips OR/AND/WITH/parens/+). */
34
+ export function spdxComponents(expr) {
35
+ return expr
36
+ .replace(/[()]/g, ' ')
37
+ .split(/\s+(?:OR|AND|WITH)\s+/i)
38
+ .map((s) => s.trim().replace(/\+$/, ''))
39
+ .filter(Boolean);
40
+ }
41
+ /** Evaluate one dep against the policy; null if it passes. Pure. */
42
+ export function evaluateDep(dep, policy) {
43
+ const allow = new Set(policy.allow ?? []);
44
+ const deny = new Set(policy.deny ?? []);
45
+ const isUnknown = dep.license === 'UNKNOWN' || !dep.license;
46
+ const components = isUnknown ? [] : spdxComponents(dep.license);
47
+ if (components.some((c) => deny.has(c))) {
48
+ return { name: dep.name, version: dep.version, license: dep.license, reason: 'denied' };
49
+ }
50
+ if (isUnknown) {
51
+ if (allow.size > 0 && !policy.allowUnknown) {
52
+ return { name: dep.name, version: dep.version, license: 'UNKNOWN', reason: 'unknown' };
53
+ }
54
+ return null;
55
+ }
56
+ if (allow.size > 0 && !components.some((c) => allow.has(c))) {
57
+ return { name: dep.name, version: dep.version, license: dep.license, reason: 'not-allowed' };
58
+ }
59
+ return null;
60
+ }
61
+ /** Audit a dependency set against a policy. Pure. */
62
+ export function auditLicenses(deps, policy = {}) {
63
+ const violations = [];
64
+ const byLicense = {};
65
+ for (const dep of deps) {
66
+ const lic = dep.license || 'UNKNOWN';
67
+ byLicense[lic] = (byLicense[lic] ?? 0) + 1;
68
+ const v = evaluateDep(dep, policy);
69
+ if (v)
70
+ violations.push(v);
71
+ }
72
+ violations.sort((a, b) => a.name.localeCompare(b.name));
73
+ return { total: deps.length, violations, byLicense };
74
+ }
75
+ /** One-line human summary. */
76
+ export function formatLicenseSummary(r) {
77
+ if (r.violations.length === 0)
78
+ return `license: ${r.total} deps, 0 violations`;
79
+ return `license: ${r.violations.length} violation${r.violations.length === 1 ? '' : 's'} across ${r.total} deps`;
80
+ }
81
+ //# sourceMappingURL=license.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../../../src/license/license.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/mcp-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAkIpD,yCAAyC;AACzC,eAAO,MAAM,eAAe,UAA2B,CAAC;AAExD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,GAAG;IAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAQjH;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAEhH;AAeD;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IAG9B,QAAQ,EAAE,MAAM;IAChB,KAAK,CAAC,EAAE,KAAK;gBAFpB,OAAO,EAAE,MAAM,EACR,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKvB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3C,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC,CA6BZ;AAgED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,SAAS,CAkBtF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAiB/E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAU5C;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CA0BvC;;;;;;;;;;AAED,wBAQE"}
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/mcp-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAoIpD,yCAAyC;AACzC,eAAO,MAAM,eAAe,UAA2B,CAAC;AAExD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,GAAG;IAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAQjH;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAEhH;AAeD;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IAG9B,QAAQ,EAAE,MAAM;IAChB,KAAK,CAAC,EAAE,KAAK;gBAFpB,OAAO,EAAE,MAAM,EACR,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKvB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3C,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,CAAC,CA6BZ;AAgED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,SAAS,CAkBtF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAiB/E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAU5C;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CA0BvC;;;;;;;;;;AAED,wBAQE"}
@@ -22,6 +22,7 @@ import { analyzeTools } from './mcp-tools/analyze-tools.js';
22
22
  import { codegraphTools } from './mcp-tools/codegraph-tools.js';
23
23
  import { redactTools } from './mcp-tools/redact-tools.js';
24
24
  import { envTools } from './mcp-tools/env-tools.js';
25
+ import { licenseTools } from './mcp-tools/license-tools.js';
25
26
  import { progressTools } from './mcp-tools/progress-tools.js';
26
27
  import { embeddingsTools } from './mcp-tools/embeddings-tools.js';
27
28
  import { claimsTools } from './mcp-tools/claims-tools.js';
@@ -108,6 +109,7 @@ const TOOL_GROUPS = {
108
109
  codegraph: () => codegraphTools,
109
110
  redact: () => redactTools,
110
111
  env: () => envTools,
112
+ license: () => licenseTools,
111
113
  progress: () => progressTools,
112
114
  embeddings: () => embeddingsTools,
113
115
  claims: () => claimsTools,
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/mcp-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/mcp-client.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export { analyzeTools } from './analyze-tools.js';
18
18
  export { codegraphTools } from './codegraph-tools.js';
19
19
  export { redactTools } from './redact-tools.js';
20
20
  export { envTools } from './env-tools.js';
21
+ export { licenseTools } from './license-tools.js';
21
22
  export { progressTools } from './progress-tools.js';
22
23
  export { transferTools } from './transfer-tools.js';
23
24
  export { securityTools } from './security-tools.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -17,6 +17,7 @@ export { analyzeTools } from './analyze-tools.js';
17
17
  export { codegraphTools } from './codegraph-tools.js';
18
18
  export { redactTools } from './redact-tools.js';
19
19
  export { envTools } from './env-tools.js';
20
+ export { licenseTools } from './license-tools.js';
20
21
  export { progressTools } from './progress-tools.js';
21
22
  export { transferTools } from './transfer-tools.js';
22
23
  export { securityTools } from './security-tools.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp-tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,yFAAyF;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,iEAAiE;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp-tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,yFAAyF;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,iEAAiE;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * License MCP Tool
3
+ *
4
+ * Let an agent audit dependency licenses in-session — e.g. before adding a
5
+ * package or approving a release — against an allow/deny policy. Deterministic;
6
+ * shares the pure engine in ../license/license.ts with the CLI command. The
7
+ * caller passes the dependency list (name/version/license), so no fs access.
8
+ */
9
+ import type { MCPTool } from './types.js';
10
+ export declare const licenseTools: MCPTool[];
11
+ //# sourceMappingURL=license-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/license-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAkD1C,eAAO,MAAM,YAAY,EAAE,OAAO,EAAuB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * License MCP Tool
3
+ *
4
+ * Let an agent audit dependency licenses in-session — e.g. before adding a
5
+ * package or approving a release — against an allow/deny policy. Deterministic;
6
+ * shares the pure engine in ../license/license.ts with the CLI command. The
7
+ * caller passes the dependency list (name/version/license), so no fs access.
8
+ */
9
+ import { auditLicenses } from '../license/license.js';
10
+ const licenseCheckTool = {
11
+ name: 'license_check',
12
+ description: 'Audit a dependency list against a license allow/deny policy. Returns violations (denied, not-allowed, or unknown license) plus a license breakdown. Use before adding a dependency or approving a release to keep a permissive tree clean. Deterministic; pass the deps directly.',
13
+ category: 'license',
14
+ tags: ['license', 'compliance', 'supply-chain', 'ci'],
15
+ inputSchema: {
16
+ type: 'object',
17
+ properties: {
18
+ deps: {
19
+ type: 'array',
20
+ description: 'dependencies to audit',
21
+ items: {
22
+ type: 'object',
23
+ properties: {
24
+ name: { type: 'string' },
25
+ version: { type: 'string' },
26
+ license: { type: 'string', description: 'SPDX id/expression (e.g. MIT, "(MIT OR Apache-2.0)", or UNKNOWN)' },
27
+ },
28
+ required: ['name', 'license'],
29
+ },
30
+ },
31
+ allow: { type: 'array', items: { type: 'string' }, description: 'SPDX allowlist; a dep must match at least one' },
32
+ deny: { type: 'array', items: { type: 'string' }, description: 'SPDX denylist; any match is a violation' },
33
+ allowUnknown: { type: 'boolean', description: 'treat UNKNOWN as allowed even under an allowlist', default: false },
34
+ },
35
+ required: ['deps'],
36
+ },
37
+ handler: async (params) => {
38
+ if (!Array.isArray(params.deps))
39
+ return { error: true, message: 'deps[] is required' };
40
+ const deps = params.deps
41
+ .filter((d) => !!d && typeof d === 'object')
42
+ .map((d) => ({
43
+ name: String(d.name ?? '?'),
44
+ version: String(d.version ?? '0.0.0'),
45
+ license: String(d.license ?? 'UNKNOWN'),
46
+ }));
47
+ const policy = {
48
+ allow: Array.isArray(params.allow) ? params.allow.filter((x) => typeof x === 'string') : undefined,
49
+ deny: Array.isArray(params.deny) ? params.deny.filter((x) => typeof x === 'string') : undefined,
50
+ allowUnknown: params.allowUnknown === true,
51
+ };
52
+ const report = auditLicenses(deps, policy);
53
+ return { clean: report.violations.length === 0, total: report.total, violations: report.violations, byLicense: report.byLicense };
54
+ },
55
+ };
56
+ export const licenseTools = [licenseCheckTool];
57
+ //# sourceMappingURL=license-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license-tools.js","sourceRoot":"","sources":["../../../src/mcp-tools/license-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * sbom.ts — generate a Software Bill of Materials from an npm lockfile.
3
+ *
4
+ * Completes the supply-chain trio with `env` (config drift) and `license`
5
+ * (license policy): `sbom` emits the standardized dependency manifest —
6
+ * CycloneDX or SPDX JSON — that compliance, vuln scanners, and regulators
7
+ * (US EO 14028, EU CRA) consume. Distinct from `pack` (repo→AI-context prose)
8
+ * and `license` (policy gate): this is a machine artifact, not a check.
9
+ *
10
+ * Pure + deterministic (lockfile object → BOM object, no timestamps/IO), so
11
+ * output is golden-testable. The file read lives in ../commands/sbom.ts.
12
+ */
13
+ export interface Component {
14
+ name: string;
15
+ version: string;
16
+ purl: string;
17
+ license?: string;
18
+ /** hex-encoded integrity, with its algorithm */
19
+ hash?: {
20
+ alg: string;
21
+ content: string;
22
+ };
23
+ dev?: boolean;
24
+ }
25
+ interface NpmLockEntry {
26
+ version?: string;
27
+ resolved?: string;
28
+ integrity?: string;
29
+ license?: unknown;
30
+ dev?: boolean;
31
+ optional?: boolean;
32
+ }
33
+ interface NpmLock {
34
+ name?: string;
35
+ version?: string;
36
+ lockfileVersion?: number;
37
+ packages?: Record<string, NpmLockEntry>;
38
+ }
39
+ /** Package URL for an npm component. Scope `@` is percent-encoded per the purl spec. */
40
+ export declare function purlFor(name: string, version: string): string;
41
+ /** Convert an SRI integrity string (`sha512-<base64>`) to `{alg, content(hex)}`. Deterministic. */
42
+ export declare function integrityToHash(integrity: string): {
43
+ alg: string;
44
+ content: string;
45
+ } | undefined;
46
+ export interface ComponentOptions {
47
+ /** exclude dev-only dependencies */
48
+ productionOnly?: boolean;
49
+ }
50
+ /** Extract components from a parsed npm lockfile (v2/v3 `packages` map). Pure. */
51
+ export declare function componentsFromNpmLock(lock: NpmLock, opts?: ComponentOptions): Component[];
52
+ export interface BomMeta {
53
+ name: string;
54
+ version: string;
55
+ }
56
+ /** Build a CycloneDX 1.5 BOM object (no timestamp → deterministic). Pure. */
57
+ export declare function buildCycloneDX(components: Component[], meta: BomMeta): Record<string, unknown>;
58
+ /** Build a minimal SPDX 2.3 JSON document (no created timestamp → deterministic). Pure. */
59
+ export declare function buildSpdx(components: Component[], meta: BomMeta): Record<string, unknown>;
60
+ export type SbomFormat = 'cyclonedx' | 'spdx';
61
+ /** Build a BOM in the requested format. Pure. */
62
+ export declare function buildSbom(components: Component[], meta: BomMeta, format: SbomFormat): Record<string, unknown>;
63
+ export {};
64
+ //# sourceMappingURL=sbom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sbom.d.ts","sourceRoot":"","sources":["../../../src/sbom/sbom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,IAAI,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,UAAU,OAAO;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC;AASD,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG7D;AAED,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAc/F;AASD,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,GAAE,gBAAqB,GAAG,SAAS,EAAE,CAyB7F;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAe9F;AAED,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzF;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;AAE9C,iDAAiD;AACjD,wBAAgB,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE7G"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * sbom.ts — generate a Software Bill of Materials from an npm lockfile.
3
+ *
4
+ * Completes the supply-chain trio with `env` (config drift) and `license`
5
+ * (license policy): `sbom` emits the standardized dependency manifest —
6
+ * CycloneDX or SPDX JSON — that compliance, vuln scanners, and regulators
7
+ * (US EO 14028, EU CRA) consume. Distinct from `pack` (repo→AI-context prose)
8
+ * and `license` (policy gate): this is a machine artifact, not a check.
9
+ *
10
+ * Pure + deterministic (lockfile object → BOM object, no timestamps/IO), so
11
+ * output is golden-testable. The file read lives in ../commands/sbom.ts.
12
+ */
13
+ /** Derive the package name from a lockfile `packages` key (last node_modules segment, scope-aware). */
14
+ function nameFromKey(key) {
15
+ const idx = key.lastIndexOf('node_modules/');
16
+ const tail = idx >= 0 ? key.slice(idx + 'node_modules/'.length) : key;
17
+ return tail; // already includes @scope/name because we split on the LAST node_modules/
18
+ }
19
+ /** Package URL for an npm component. Scope `@` is percent-encoded per the purl spec. */
20
+ export function purlFor(name, version) {
21
+ const enc = name.startsWith('@') ? '%40' + name.slice(1) : name;
22
+ return `pkg:npm/${enc}@${version}`;
23
+ }
24
+ /** Convert an SRI integrity string (`sha512-<base64>`) to `{alg, content(hex)}`. Deterministic. */
25
+ export function integrityToHash(integrity) {
26
+ const m = integrity.match(/^(sha\d+)-(.+)$/);
27
+ if (!m)
28
+ return undefined;
29
+ const algMap = { sha1: 'SHA-1', sha256: 'SHA-256', sha384: 'SHA-384', sha512: 'SHA-512' };
30
+ const alg = algMap[m[1]];
31
+ if (!alg)
32
+ return undefined;
33
+ let hex;
34
+ try {
35
+ // base64 → hex, dependency-free and deterministic
36
+ hex = Buffer.from(m[2], 'base64').toString('hex');
37
+ }
38
+ catch {
39
+ return undefined;
40
+ }
41
+ return { alg, content: hex };
42
+ }
43
+ function licenseOf(entry) {
44
+ const l = entry.license;
45
+ if (typeof l === 'string' && l.trim())
46
+ return l.trim();
47
+ if (l && typeof l === 'object' && typeof l.type === 'string')
48
+ return l.type;
49
+ return undefined;
50
+ }
51
+ /** Extract components from a parsed npm lockfile (v2/v3 `packages` map). Pure. */
52
+ export function componentsFromNpmLock(lock, opts = {}) {
53
+ const packages = lock.packages ?? {};
54
+ const out = [];
55
+ const seen = new Set();
56
+ for (const [key, entry] of Object.entries(packages)) {
57
+ if (!key)
58
+ continue; // the root project entry
59
+ if (!key.includes('node_modules/'))
60
+ continue;
61
+ if (opts.productionOnly && entry.dev)
62
+ continue;
63
+ const name = nameFromKey(key);
64
+ const version = entry.version ?? '0.0.0';
65
+ const id = `${name}@${version}`;
66
+ if (seen.has(id))
67
+ continue;
68
+ seen.add(id);
69
+ const comp = { name, version, purl: purlFor(name, version) };
70
+ const license = licenseOf(entry);
71
+ if (license)
72
+ comp.license = license;
73
+ if (entry.integrity) {
74
+ const h = integrityToHash(entry.integrity);
75
+ if (h)
76
+ comp.hash = h;
77
+ }
78
+ if (entry.dev)
79
+ comp.dev = true;
80
+ out.push(comp);
81
+ }
82
+ out.sort((a, b) => (a.name === b.name ? a.version.localeCompare(b.version) : a.name.localeCompare(b.name)));
83
+ return out;
84
+ }
85
+ /** Build a CycloneDX 1.5 BOM object (no timestamp → deterministic). Pure. */
86
+ export function buildCycloneDX(components, meta) {
87
+ return {
88
+ bomFormat: 'CycloneDX',
89
+ specVersion: '1.5',
90
+ version: 1,
91
+ metadata: {
92
+ component: { type: 'application', name: meta.name, version: meta.version },
93
+ },
94
+ components: components.map((c) => {
95
+ const comp = { type: 'library', name: c.name, version: c.version, purl: c.purl };
96
+ if (c.hash)
97
+ comp.hashes = [{ alg: c.hash.alg, content: c.hash.content }];
98
+ if (c.license)
99
+ comp.licenses = [{ license: { id: c.license } }];
100
+ return comp;
101
+ }),
102
+ };
103
+ }
104
+ /** Build a minimal SPDX 2.3 JSON document (no created timestamp → deterministic). Pure. */
105
+ export function buildSpdx(components, meta) {
106
+ const safe = (s) => s.replace(/[^A-Za-z0-9.-]/g, '-');
107
+ return {
108
+ spdxVersion: 'SPDX-2.3',
109
+ dataLicense: 'CC0-1.0',
110
+ SPDXID: 'SPDXRef-DOCUMENT',
111
+ name: meta.name,
112
+ documentNamespace: `https://swarmdo/spdx/${safe(meta.name)}-${meta.version}`,
113
+ packages: [
114
+ { SPDXID: 'SPDXRef-Package-root', name: meta.name, versionInfo: meta.version, downloadLocation: 'NOASSERTION' },
115
+ ...components.map((c) => ({
116
+ SPDXID: `SPDXRef-Package-${safe(c.name)}-${safe(c.version)}`,
117
+ name: c.name,
118
+ versionInfo: c.version,
119
+ downloadLocation: 'NOASSERTION',
120
+ licenseConcluded: c.license ?? 'NOASSERTION',
121
+ externalRefs: [{ referenceCategory: 'PACKAGE-MANAGER', referenceType: 'purl', referenceLocator: c.purl }],
122
+ })),
123
+ ],
124
+ };
125
+ }
126
+ /** Build a BOM in the requested format. Pure. */
127
+ export function buildSbom(components, meta, format) {
128
+ return format === 'spdx' ? buildSpdx(components, meta) : buildCycloneDX(components, meta);
129
+ }
130
+ //# sourceMappingURL=sbom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sbom.js","sourceRoot":"","sources":["../../../src/sbom/sbom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * writeStdout — write to stdout and RESOLVE ONLY WHEN THE CHUNK IS FLUSHED.
3
+ *
4
+ * process.stdout on a pipe is asynchronous: write() buffers in JS and returns
5
+ * immediately. If the command then returns and the CLI harness calls
6
+ * process.exit(), any unflushed bytes are discarded — large piped output
7
+ * (`swarmdo sbom | …`, `pack`, `compact`, `redact`) truncates at the ~64 KiB
8
+ * pipe buffer. Awaiting the write callback guarantees the data reached the OS
9
+ * before we hand control back. For a TTY (synchronous) this is a no-op await.
10
+ */
11
+ export declare function writeStdout(data: string): Promise<void>;
12
+ //# sourceMappingURL=stdout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdout.d.ts","sourceRoot":"","sources":["../../../src/util/stdout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvD"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * writeStdout — write to stdout and RESOLVE ONLY WHEN THE CHUNK IS FLUSHED.
3
+ *
4
+ * process.stdout on a pipe is asynchronous: write() buffers in JS and returns
5
+ * immediately. If the command then returns and the CLI harness calls
6
+ * process.exit(), any unflushed bytes are discarded — large piped output
7
+ * (`swarmdo sbom | …`, `pack`, `compact`, `redact`) truncates at the ~64 KiB
8
+ * pipe buffer. Awaiting the write callback guarantees the data reached the OS
9
+ * before we hand control back. For a TTY (synchronous) this is a no-op await.
10
+ */
11
+ export function writeStdout(data) {
12
+ return new Promise((resolve, reject) => {
13
+ process.stdout.write(data, (err) => (err ? reject(err) : resolve()));
14
+ });
15
+ }
16
+ //# sourceMappingURL=stdout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdout.js","sourceRoot":"","sources":["../../../src/util/stdout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC"}