audit-tools 0.29.4 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/dist/audit/adapters/astGrep.d.ts +30 -0
  2. package/dist/audit/adapters/astGrep.d.ts.map +1 -0
  3. package/dist/audit/adapters/astGrep.js +46 -0
  4. package/dist/audit/adapters/astGrep.js.map +1 -0
  5. package/dist/audit/adapters/codeql.d.ts +47 -0
  6. package/dist/audit/adapters/codeql.d.ts.map +1 -0
  7. package/dist/audit/adapters/codeql.js +52 -0
  8. package/dist/audit/adapters/codeql.js.map +1 -0
  9. package/dist/audit/adapters/normalizeExternal.d.ts +24 -1
  10. package/dist/audit/adapters/normalizeExternal.d.ts.map +1 -1
  11. package/dist/audit/adapters/normalizeExternal.js +50 -0
  12. package/dist/audit/adapters/normalizeExternal.js.map +1 -1
  13. package/dist/audit/adapters/semgrep.d.ts +34 -15
  14. package/dist/audit/adapters/semgrep.d.ts.map +1 -1
  15. package/dist/audit/adapters/semgrep.js +54 -1
  16. package/dist/audit/adapters/semgrep.js.map +1 -1
  17. package/dist/audit/cli/mergeAndIngestCommand.d.ts +29 -1
  18. package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -1
  19. package/dist/audit/cli/mergeAndIngestCommand.js +71 -5
  20. package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -1
  21. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  22. package/dist/audit/cli/nextStepHelpers.js +7 -6
  23. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  24. package/dist/audit/cli/resynthesizeCommand.d.ts.map +1 -1
  25. package/dist/audit/cli/resynthesizeCommand.js +3 -3
  26. package/dist/audit/cli/resynthesizeCommand.js.map +1 -1
  27. package/dist/audit/cli/submitPacketCommand.d.ts.map +1 -1
  28. package/dist/audit/cli/submitPacketCommand.js +6 -1
  29. package/dist/audit/cli/submitPacketCommand.js.map +1 -1
  30. package/dist/audit/contracts/workerSchemas.d.ts +13 -13
  31. package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
  32. package/dist/audit/contracts/workerSchemas.js +1 -1
  33. package/dist/audit/contracts/workerSchemas.js.map +1 -1
  34. package/dist/audit/contracts/wrapperResponse.d.ts +7 -0
  35. package/dist/audit/contracts/wrapperResponse.d.ts.map +1 -1
  36. package/dist/audit/contracts/wrapperResponse.js +1 -0
  37. package/dist/audit/contracts/wrapperResponse.js.map +1 -1
  38. package/dist/audit/extractors/analyzers/complexityDuplication.d.ts +27 -0
  39. package/dist/audit/extractors/analyzers/complexityDuplication.d.ts.map +1 -0
  40. package/dist/audit/extractors/analyzers/complexityDuplication.js +102 -0
  41. package/dist/audit/extractors/analyzers/complexityDuplication.js.map +1 -0
  42. package/dist/audit/extractors/designAssessment.d.ts.map +1 -1
  43. package/dist/audit/extractors/designAssessment.js +65 -0
  44. package/dist/audit/extractors/designAssessment.js.map +1 -1
  45. package/dist/audit/extractors/graph.d.ts.map +1 -1
  46. package/dist/audit/extractors/graph.js +59 -1
  47. package/dist/audit/extractors/graph.js.map +1 -1
  48. package/dist/audit/extractors/graphSignals.d.ts +43 -1
  49. package/dist/audit/extractors/graphSignals.d.ts.map +1 -1
  50. package/dist/audit/extractors/graphSignals.js +123 -0
  51. package/dist/audit/extractors/graphSignals.js.map +1 -1
  52. package/dist/audit/extractors/risk.d.ts.map +1 -1
  53. package/dist/audit/extractors/risk.js +39 -5
  54. package/dist/audit/extractors/risk.js.map +1 -1
  55. package/dist/audit/io/artifacts.d.ts +2 -2
  56. package/dist/audit/io/artifacts.d.ts.map +1 -1
  57. package/dist/audit/io/artifacts.js +14 -11
  58. package/dist/audit/io/artifacts.js.map +1 -1
  59. package/dist/audit/orchestrator/designReviewPrompt.d.ts +17 -0
  60. package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
  61. package/dist/audit/orchestrator/designReviewPrompt.js +26 -0
  62. package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
  63. package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
  64. package/dist/audit/orchestrator/executorRunners.js +20 -0
  65. package/dist/audit/orchestrator/executorRunners.js.map +1 -1
  66. package/dist/audit/orchestrator/executors.d.ts.map +1 -1
  67. package/dist/audit/orchestrator/executors.js +5 -0
  68. package/dist/audit/orchestrator/executors.js.map +1 -1
  69. package/dist/audit/orchestrator/nextStep.d.ts +37 -0
  70. package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
  71. package/dist/audit/orchestrator/nextStep.js +45 -0
  72. package/dist/audit/orchestrator/nextStep.js.map +1 -1
  73. package/dist/audit/supervisor/operatorHandoff.d.ts +12 -0
  74. package/dist/audit/supervisor/operatorHandoff.d.ts.map +1 -1
  75. package/dist/audit/supervisor/operatorHandoff.js +3 -1
  76. package/dist/audit/supervisor/operatorHandoff.js.map +1 -1
  77. package/dist/audit/types/externalAnalyzer.d.ts +68 -2
  78. package/dist/audit/types/externalAnalyzer.d.ts.map +1 -1
  79. package/dist/audit/types/externalAnalyzer.js +23 -0
  80. package/dist/audit/types/externalAnalyzer.js.map +1 -1
  81. package/dist/audit/types/reviewPlanning.d.ts +14 -14
  82. package/dist/audit/validation/auditResults.d.ts +17 -0
  83. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  84. package/dist/audit/validation/auditResults.js +39 -0
  85. package/dist/audit/validation/auditResults.js.map +1 -1
  86. package/dist/audit/validation/sessionConfig.d.ts.map +1 -1
  87. package/dist/audit/validation/sessionConfig.js +4 -0
  88. package/dist/audit/validation/sessionConfig.js.map +1 -1
  89. package/dist/remediate/review/autonomousGate.d.ts +74 -0
  90. package/dist/remediate/review/autonomousGate.d.ts.map +1 -0
  91. package/dist/remediate/review/autonomousGate.js +179 -0
  92. package/dist/remediate/review/autonomousGate.js.map +1 -0
  93. package/dist/remediate/steps/contractPipeline.d.ts +8 -0
  94. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  95. package/dist/remediate/steps/contractPipeline.js +1 -0
  96. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  97. package/dist/remediate/steps/contractPipelinePrompts.d.ts +10 -0
  98. package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
  99. package/dist/remediate/steps/contractPipelinePrompts.js +32 -1
  100. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  101. package/dist/remediate/steps/nextStep.d.ts +34 -0
  102. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  103. package/dist/remediate/steps/nextStep.js +144 -8
  104. package/dist/remediate/steps/nextStep.js.map +1 -1
  105. package/dist/shared/index.d.ts +13 -4
  106. package/dist/shared/index.d.ts.map +1 -1
  107. package/dist/shared/index.js +7 -3
  108. package/dist/shared/index.js.map +1 -1
  109. package/dist/shared/io/auditToolsPaths.d.ts +35 -0
  110. package/dist/shared/io/auditToolsPaths.d.ts.map +1 -1
  111. package/dist/shared/io/auditToolsPaths.js +46 -1
  112. package/dist/shared/io/auditToolsPaths.js.map +1 -1
  113. package/dist/shared/io/frictionCapture.d.ts +83 -0
  114. package/dist/shared/io/frictionCapture.d.ts.map +1 -0
  115. package/dist/shared/io/frictionCapture.js +79 -0
  116. package/dist/shared/io/frictionCapture.js.map +1 -0
  117. package/dist/shared/io/gitignoreArtifacts.d.ts +94 -0
  118. package/dist/shared/io/gitignoreArtifacts.d.ts.map +1 -0
  119. package/dist/shared/io/gitignoreArtifacts.js +147 -0
  120. package/dist/shared/io/gitignoreArtifacts.js.map +1 -0
  121. package/dist/shared/quota/antigravityQuotaSource.d.ts.map +1 -1
  122. package/dist/shared/quota/antigravityQuotaSource.js +2 -0
  123. package/dist/shared/quota/antigravityQuotaSource.js.map +1 -1
  124. package/dist/shared/quota/claudeOAuthQuotaSource.d.ts.map +1 -1
  125. package/dist/shared/quota/claudeOAuthQuotaSource.js +4 -0
  126. package/dist/shared/quota/claudeOAuthQuotaSource.js.map +1 -1
  127. package/dist/shared/quota/codexQuotaSource.d.ts.map +1 -1
  128. package/dist/shared/quota/codexQuotaSource.js +2 -0
  129. package/dist/shared/quota/codexQuotaSource.js.map +1 -1
  130. package/dist/shared/quota/copilotQuotaSource.d.ts.map +1 -1
  131. package/dist/shared/quota/copilotQuotaSource.js +2 -0
  132. package/dist/shared/quota/copilotQuotaSource.js.map +1 -1
  133. package/dist/shared/quota/errorParsing.d.ts +19 -0
  134. package/dist/shared/quota/errorParsing.d.ts.map +1 -1
  135. package/dist/shared/quota/errorParsing.js +14 -1
  136. package/dist/shared/quota/errorParsing.js.map +1 -1
  137. package/dist/shared/quota/hostSessionQuotaSource.d.ts +138 -0
  138. package/dist/shared/quota/hostSessionQuotaSource.d.ts.map +1 -0
  139. package/dist/shared/quota/hostSessionQuotaSource.js +213 -0
  140. package/dist/shared/quota/hostSessionQuotaSource.js.map +1 -0
  141. package/dist/shared/reporting/auditDeliverable.d.ts +36 -0
  142. package/dist/shared/reporting/auditDeliverable.d.ts.map +1 -0
  143. package/dist/shared/reporting/auditDeliverable.js +85 -0
  144. package/dist/shared/reporting/auditDeliverable.js.map +1 -0
  145. package/dist/shared/types/graph.d.ts +157 -0
  146. package/dist/shared/types/graph.d.ts.map +1 -1
  147. package/dist/shared/types/graph.js +32 -0
  148. package/dist/shared/types/graph.js.map +1 -1
  149. package/dist/shared/types/sessionConfig.d.ts +13 -0
  150. package/dist/shared/types/sessionConfig.d.ts.map +1 -1
  151. package/package.json +1 -1
  152. package/schemas/audit_result.schema.json +2 -2
  153. package/schemas/audit_results.schema.json +2 -2
  154. package/schemas/finding.schema.json +2 -2
  155. package/scripts/postinstall.mjs +64 -0
@@ -0,0 +1,85 @@
1
+ // Shared audit-deliverable emitter: build the canonical `audit-findings.json`
2
+ // machine contract + its `audit-report.md` human render from a Finding[] set.
3
+ //
4
+ // Single-sourced here (in `audit-tools/shared`) so BOTH halves of the pipeline
5
+ // emit an identical, re-consumable pair. The autonomous remediator uses it to
6
+ // re-emit the findings it left LIVE (never auto-fixed, never durably rejected)
7
+ // as a standard deliverable pair that round-trips straight back through the
8
+ // remediator's `defaultInputCandidates` (`audit-findings.json` preferred over
9
+ // `audit-report.md`) on the next nightly run — no special leftover format, no
10
+ // durable rejection state.
11
+ import { AUDIT_FINDINGS_CONTRACT_VERSION } from "../validation/findingsReport.js";
12
+ import { renderFindingBlockLines } from "./findingDisplay.js";
13
+ const SEVERITY_KEYS = ["critical", "high", "medium", "low", "info"];
14
+ function severityBreakdown(findings) {
15
+ const out = {};
16
+ for (const key of SEVERITY_KEYS)
17
+ out[key] = 0;
18
+ for (const f of findings)
19
+ out[f.severity] = (out[f.severity] ?? 0) + 1;
20
+ return out;
21
+ }
22
+ function lensBreakdown(findings) {
23
+ const out = {};
24
+ for (const f of findings)
25
+ out[f.lens] = (out[f.lens] ?? 0) + 1;
26
+ return out;
27
+ }
28
+ /**
29
+ * Build the canonical `audit-findings.json` machine contract over `findings`.
30
+ * The summary is derived deterministically; no work-blocks are emitted (the
31
+ * deliverable is a flat, re-consumable finding set). Stamped with the same
32
+ * `contract_version` the auditor emits, so `validateAuditFindingsReport` accepts
33
+ * it and the remediator's structured fast-path consumes it losslessly.
34
+ */
35
+ export function buildAuditFindingsDeliverable(findings) {
36
+ const summary = {
37
+ finding_count: findings.length,
38
+ work_block_count: 0,
39
+ severity_breakdown: severityBreakdown(findings),
40
+ audited_file_count: 0,
41
+ excluded_file_count: 0,
42
+ runtime_validation_status_breakdown: {},
43
+ lens_breakdown: lensBreakdown(findings),
44
+ };
45
+ return {
46
+ contract_version: AUDIT_FINDINGS_CONTRACT_VERSION,
47
+ summary,
48
+ findings: [...findings],
49
+ work_blocks: [],
50
+ };
51
+ }
52
+ /**
53
+ * Render the `audit-report.md` human deliverable for `findings` using the ONE
54
+ * shared finding renderer (parity with the auditor's report). `title` and
55
+ * `intro` let the caller frame the deliverable (e.g. "leftovers from an
56
+ * autonomous run").
57
+ */
58
+ export function renderAuditDeliverableMarkdown(findings, options = {}) {
59
+ const lines = [`# ${options.title ?? "Audit Report"}`, ""];
60
+ if (options.intro) {
61
+ lines.push(options.intro, "");
62
+ }
63
+ if (findings.length === 0) {
64
+ lines.push("No findings.", "");
65
+ return lines.join("\n");
66
+ }
67
+ lines.push(`## Findings (${findings.length})`, "");
68
+ for (const finding of findings) {
69
+ lines.push(...renderFindingBlockLines(finding));
70
+ }
71
+ return lines.join("\n");
72
+ }
73
+ /**
74
+ * Build BOTH halves of the re-consumable audit deliverable pair at once. The
75
+ * JSON is the source of truth; the markdown is its render. The caller writes
76
+ * `findings_report` to `audit-findings.json` and `report_markdown` to
77
+ * `audit-report.md`.
78
+ */
79
+ export function buildAuditDeliverablePair(findings, options = {}) {
80
+ return {
81
+ findings_report: buildAuditFindingsDeliverable(findings),
82
+ report_markdown: renderAuditDeliverableMarkdown(findings, options),
83
+ };
84
+ }
85
+ //# sourceMappingURL=auditDeliverable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auditDeliverable.js","sourceRoot":"","sources":["../../../src/shared/reporting/auditDeliverable.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,2BAA2B;AAQ3B,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,aAAa,GAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEvF,SAAS,iBAAiB,CAAC,QAA4B;IACrD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,aAAa;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,QAA4B;IACjD,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/D,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,QAA4B;IAE5B,MAAM,OAAO,GAAyB;QACpC,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,gBAAgB,EAAE,CAAC;QACnB,kBAAkB,EAAE,iBAAiB,CAAC,QAAQ,CAAC;QAC/C,kBAAkB,EAAE,CAAC;QACrB,mBAAmB,EAAE,CAAC;QACtB,mCAAmC,EAAE,EAAE;QACvC,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC;KACxC,CAAC;IACF,OAAO;QACL,gBAAgB,EAAE,+BAA+B;QACjD,OAAO;QACP,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC;QACvB,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,QAA4B,EAC5B,UAA8C,EAAE;IAEhD,MAAM,KAAK,GAAa,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;IACnD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AASD;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAA4B,EAC5B,UAA8C,EAAE;IAEhD,OAAO;QACL,eAAe,EAAE,6BAA6B,CAAC,QAAQ,CAAC;QACxD,eAAe,EAAE,8BAA8B,CAAC,QAAQ,EAAE,OAAO,CAAC;KACnE,CAAC;AACJ,CAAC"}
@@ -36,6 +36,84 @@ export declare const RouteEdgeSchema: z.ZodObject<{
36
36
  method?: string | undefined;
37
37
  }>;
38
38
  export type RouteEdge = z.infer<typeof RouteEdgeSchema>;
39
+ /**
40
+ * Per-node structural measure (one of complexity / duplication). `value` is the
41
+ * raw metric, `measure` names the concrete algorithm used (so consumers never
42
+ * guess units), and `reach` records the scope of source the measure actually
43
+ * covered — currently only `'js-ts-effective'` (computed over JS/TS source).
44
+ */
45
+ export declare const NodeMetricSchema: z.ZodObject<{
46
+ value: z.ZodNumber;
47
+ measure: z.ZodString;
48
+ reach: z.ZodLiteral<"js-ts-effective">;
49
+ }, "strict", z.ZodTypeAny, {
50
+ value: number;
51
+ measure: string;
52
+ reach: "js-ts-effective";
53
+ }, {
54
+ value: number;
55
+ measure: string;
56
+ reach: "js-ts-effective";
57
+ }>;
58
+ export type NodeMetric = z.infer<typeof NodeMetricSchema>;
59
+ /**
60
+ * Optional per-node (repo-path keyed) structural metrics computed at graph-build
61
+ * time, where the file source is available. Absent for non-js/ts files (never
62
+ * zero-filled). Each metric is independently optional. Declared as an explicit
63
+ * optional Zod field (not a catchall) so a `.strict()` bundle WITHOUT
64
+ * `node_metrics` still parses, while an unknown sibling key is rejected.
65
+ */
66
+ export declare const NodeMetricsSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
67
+ complexity: z.ZodOptional<z.ZodObject<{
68
+ value: z.ZodNumber;
69
+ measure: z.ZodString;
70
+ reach: z.ZodLiteral<"js-ts-effective">;
71
+ }, "strict", z.ZodTypeAny, {
72
+ value: number;
73
+ measure: string;
74
+ reach: "js-ts-effective";
75
+ }, {
76
+ value: number;
77
+ measure: string;
78
+ reach: "js-ts-effective";
79
+ }>>;
80
+ duplication: z.ZodOptional<z.ZodObject<{
81
+ value: z.ZodNumber;
82
+ measure: z.ZodString;
83
+ reach: z.ZodLiteral<"js-ts-effective">;
84
+ }, "strict", z.ZodTypeAny, {
85
+ value: number;
86
+ measure: string;
87
+ reach: "js-ts-effective";
88
+ }, {
89
+ value: number;
90
+ measure: string;
91
+ reach: "js-ts-effective";
92
+ }>>;
93
+ }, "strict", z.ZodTypeAny, {
94
+ complexity?: {
95
+ value: number;
96
+ measure: string;
97
+ reach: "js-ts-effective";
98
+ } | undefined;
99
+ duplication?: {
100
+ value: number;
101
+ measure: string;
102
+ reach: "js-ts-effective";
103
+ } | undefined;
104
+ }, {
105
+ complexity?: {
106
+ value: number;
107
+ measure: string;
108
+ reach: "js-ts-effective";
109
+ } | undefined;
110
+ duplication?: {
111
+ value: number;
112
+ measure: string;
113
+ reach: "js-ts-effective";
114
+ } | undefined;
115
+ }>>;
116
+ export type NodeMetrics = z.infer<typeof NodeMetricsSchema>;
39
117
  export declare const GraphBundleSchema: z.ZodObject<{
40
118
  graphs: z.ZodObject<{
41
119
  imports: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -284,6 +362,61 @@ export declare const GraphBundleSchema: z.ZodObject<{
284
362
  * the deterministic regex floor was used). See Phase 5 analyzer seam.
285
363
  */
286
364
  analyzers_used: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
365
+ /**
366
+ * Optional per-node structural metrics (complexity / duplication) computed at
367
+ * graph-build time over js/ts source. Explicit optional field so legacy
368
+ * bundles without it still parse under `.strict()`.
369
+ */
370
+ node_metrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
371
+ complexity: z.ZodOptional<z.ZodObject<{
372
+ value: z.ZodNumber;
373
+ measure: z.ZodString;
374
+ reach: z.ZodLiteral<"js-ts-effective">;
375
+ }, "strict", z.ZodTypeAny, {
376
+ value: number;
377
+ measure: string;
378
+ reach: "js-ts-effective";
379
+ }, {
380
+ value: number;
381
+ measure: string;
382
+ reach: "js-ts-effective";
383
+ }>>;
384
+ duplication: z.ZodOptional<z.ZodObject<{
385
+ value: z.ZodNumber;
386
+ measure: z.ZodString;
387
+ reach: z.ZodLiteral<"js-ts-effective">;
388
+ }, "strict", z.ZodTypeAny, {
389
+ value: number;
390
+ measure: string;
391
+ reach: "js-ts-effective";
392
+ }, {
393
+ value: number;
394
+ measure: string;
395
+ reach: "js-ts-effective";
396
+ }>>;
397
+ }, "strict", z.ZodTypeAny, {
398
+ complexity?: {
399
+ value: number;
400
+ measure: string;
401
+ reach: "js-ts-effective";
402
+ } | undefined;
403
+ duplication?: {
404
+ value: number;
405
+ measure: string;
406
+ reach: "js-ts-effective";
407
+ } | undefined;
408
+ }, {
409
+ complexity?: {
410
+ value: number;
411
+ measure: string;
412
+ reach: "js-ts-effective";
413
+ } | undefined;
414
+ duplication?: {
415
+ value: number;
416
+ measure: string;
417
+ reach: "js-ts-effective";
418
+ } | undefined;
419
+ }>>>;
287
420
  }, "strict", z.ZodTypeAny, {
288
421
  graphs: {
289
422
  imports?: {
@@ -319,6 +452,18 @@ export declare const GraphBundleSchema: z.ZodObject<{
319
452
  [k: string]: unknown;
320
453
  };
321
454
  analyzers_used?: string[] | undefined;
455
+ node_metrics?: Record<string, {
456
+ complexity?: {
457
+ value: number;
458
+ measure: string;
459
+ reach: "js-ts-effective";
460
+ } | undefined;
461
+ duplication?: {
462
+ value: number;
463
+ measure: string;
464
+ reach: "js-ts-effective";
465
+ } | undefined;
466
+ }> | undefined;
322
467
  }, {
323
468
  graphs: {
324
469
  imports?: {
@@ -354,6 +499,18 @@ export declare const GraphBundleSchema: z.ZodObject<{
354
499
  [k: string]: unknown;
355
500
  };
356
501
  analyzers_used?: string[] | undefined;
502
+ node_metrics?: Record<string, {
503
+ complexity?: {
504
+ value: number;
505
+ measure: string;
506
+ reach: "js-ts-effective";
507
+ } | undefined;
508
+ duplication?: {
509
+ value: number;
510
+ measure: string;
511
+ reach: "js-ts-effective";
512
+ } | undefined;
513
+ }> | undefined;
357
514
  }>;
358
515
  export type GraphBundle = z.infer<typeof GraphBundleSchema>;
359
516
  //# sourceMappingURL=graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/shared/types/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;EASjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,eAAe;;;;;;;;;;;;EAMjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAW1B;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGI,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/shared/types/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;EASjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,eAAe;;;;;;;;;;;;EAMjB,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAMlB,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQ7B,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAW1B;;;;OAIG;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGI,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -16,6 +16,32 @@ export const RouteEdgeSchema = z
16
16
  method: z.string().optional(),
17
17
  })
18
18
  .strict();
19
+ /**
20
+ * Per-node structural measure (one of complexity / duplication). `value` is the
21
+ * raw metric, `measure` names the concrete algorithm used (so consumers never
22
+ * guess units), and `reach` records the scope of source the measure actually
23
+ * covered — currently only `'js-ts-effective'` (computed over JS/TS source).
24
+ */
25
+ export const NodeMetricSchema = z
26
+ .object({
27
+ value: z.number(),
28
+ measure: z.string(),
29
+ reach: z.literal("js-ts-effective"),
30
+ })
31
+ .strict();
32
+ /**
33
+ * Optional per-node (repo-path keyed) structural metrics computed at graph-build
34
+ * time, where the file source is available. Absent for non-js/ts files (never
35
+ * zero-filled). Each metric is independently optional. Declared as an explicit
36
+ * optional Zod field (not a catchall) so a `.strict()` bundle WITHOUT
37
+ * `node_metrics` still parses, while an unknown sibling key is rejected.
38
+ */
39
+ export const NodeMetricsSchema = z.record(z.string(), z
40
+ .object({
41
+ complexity: NodeMetricSchema.optional(),
42
+ duplication: NodeMetricSchema.optional(),
43
+ })
44
+ .strict());
19
45
  export const GraphBundleSchema = z
20
46
  .object({
21
47
  graphs: z
@@ -33,6 +59,12 @@ export const GraphBundleSchema = z
33
59
  * the deterministic regex floor was used). See Phase 5 analyzer seam.
34
60
  */
35
61
  analyzers_used: z.array(z.string()).optional(),
62
+ /**
63
+ * Optional per-node structural metrics (complexity / duplication) computed at
64
+ * graph-build time over js/ts source. Explicit optional field so legacy
65
+ * bundles without it still parse under `.strict()`.
66
+ */
67
+ node_metrics: NodeMetricsSchema.optional(),
36
68
  })
37
69
  .strict();
38
70
  //# sourceMappingURL=graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/shared/types/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;QAC5C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;QAC1C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;QAC/C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC;QACF,oEAAoE;SACnE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACxB;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC;KACD,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/shared/types/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC;KAC7B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC;CACpC,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CACvC,CAAC,CAAC,MAAM,EAAE,EACV,CAAC;KACE,MAAM,CAAC;IACN,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACzC,CAAC;KACD,MAAM,EAAE,CACZ,CAAC;AAGF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;QAC5C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;QAC1C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;QAC/C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC;QACF,oEAAoE;SACnE,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACxB;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C;;;;OAIG;IACH,YAAY,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CAC3C,CAAC;KACD,MAAM,EAAE,CAAC"}
@@ -318,6 +318,19 @@ export interface SessionConfig {
318
318
  timeout_ms?: number;
319
319
  ui_mode?: SessionUiMode;
320
320
  host_can_dispatch_subagents?: boolean;
321
+ /**
322
+ * Run unattended (nightly autonomous pipeline). Host-agnostic — ONE flag
323
+ * drives the whole path, with no cloud/local fork. When set, the
324
+ * review-approval gate does NOT halt for a human: it auto-approves only the
325
+ * findings whose ambiguity tier is "safe" AND whose change-kind is positively
326
+ * on the fail-closed non-destructiveness ALLOWLIST (additive / localized /
327
+ * reversible — see src/remediate/review/autonomousGate.ts). Every other
328
+ * finding is left LIVE and re-emitted as a re-consumable audit deliverable
329
+ * pair (audit-findings.json + audit-report.md); leftovers are NEVER durably
330
+ * rejected, so the next nightly run re-evaluates them fresh. Ambiguity-only:
331
+ * there is NO cost / severity / run-budget gate.
332
+ */
333
+ autonomous_mode?: boolean;
321
334
  subprocess_template?: SubprocessTemplateConfig;
322
335
  claude_code?: ClaudeCodeConfig;
323
336
  codex?: CodexConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionConfig.d.ts","sourceRoot":"","sources":["../../../src/shared/types/sessionConfig.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "audit-tools",
3
- "version": "0.29.4",
3
+ "version": "0.30.1",
4
4
  "private": false,
5
5
  "description": "Portable hybrid code auditing + remediation orchestrators for arbitrary repositories.",
6
6
  "type": "module",
@@ -100,7 +100,8 @@
100
100
  "operability",
101
101
  "config_deployment",
102
102
  "observability"
103
- ]
103
+ ],
104
+ "description": "Optional: when omitted, the tool defaults it from the enclosing AuditResult.lens before validation. Supply it only to override the result lens for a cross-lens finding."
104
105
  },
105
106
  "summary": {
106
107
  "type": "string"
@@ -306,7 +307,6 @@
306
307
  "category",
307
308
  "severity",
308
309
  "confidence",
309
- "lens",
310
310
  "summary",
311
311
  "affected_files",
312
312
  "evidence"
@@ -102,7 +102,8 @@
102
102
  "operability",
103
103
  "config_deployment",
104
104
  "observability"
105
- ]
105
+ ],
106
+ "description": "Optional: when omitted, the tool defaults it from the enclosing AuditResult.lens before validation. Supply it only to override the result lens for a cross-lens finding."
106
107
  },
107
108
  "summary": {
108
109
  "type": "string"
@@ -308,7 +309,6 @@
308
309
  "category",
309
310
  "severity",
310
311
  "confidence",
311
- "lens",
312
312
  "summary",
313
313
  "affected_files",
314
314
  "evidence"
@@ -46,7 +46,8 @@
46
46
  "operability",
47
47
  "config_deployment",
48
48
  "observability"
49
- ]
49
+ ],
50
+ "description": "Optional: when omitted, the tool defaults it from the enclosing AuditResult.lens before validation. Supply it only to override the result lens for a cross-lens finding."
50
51
  },
51
52
  "summary": {
52
53
  "type": "string"
@@ -252,7 +253,6 @@
252
253
  "category",
253
254
  "severity",
254
255
  "confidence",
255
- "lens",
256
256
  "summary",
257
257
  "affected_files",
258
258
  "evidence"
@@ -21,4 +21,68 @@ for (const script of ["./audit/postinstall.mjs", "./remediate/postinstall.mjs"])
21
21
  failed = true;
22
22
  }
23
23
  }
24
+
25
+ // Manage the consuming repo's .gitignore for the artifacts audit-tools emits
26
+ // (always-ignore build/install assets + friction sidecar; visibility-conditional
27
+ // ignore of deliverables + meta-audit reflections). This is best-effort and must
28
+ // NEVER fail the install: the helper degrades on any error, and we wrap the whole
29
+ // step so a missing shared dist (fresh `npm ci`) or a detection hiccup is a warn,
30
+ // not a non-zero exit.
31
+ await manageArtifactGitignore();
32
+
24
33
  process.exit(failed ? 1 : 0);
34
+
35
+ async function manageArtifactGitignore() {
36
+ try {
37
+ const shared = await import("audit-tools/shared");
38
+ if (typeof shared.ensureArtifactGitignore !== "function") {
39
+ return; // shared dist not built yet (fresh npm ci) — skip silently.
40
+ }
41
+
42
+ // The consuming repo root: npm sets INIT_CWD to the dir `npm install` ran in.
43
+ const repoRoot = process.env.INIT_CWD || process.cwd();
44
+
45
+ // Explicit operator override always wins. Accept private/public/track/ignore.
46
+ const override = resolveVisibilityOverride();
47
+
48
+ const result = shared.ensureArtifactGitignore({
49
+ repoRoot,
50
+ override,
51
+ runGh: runGhRepoVisibility,
52
+ });
53
+ if (result.changed) {
54
+ console.log(
55
+ `[audit-tools] postinstall: updated ${result.path} (repo visibility: ${result.visibility}).`,
56
+ );
57
+ }
58
+ } catch (err) {
59
+ console.warn(
60
+ `[audit-tools] postinstall: .gitignore management skipped (${err?.message ?? err}).`,
61
+ );
62
+ }
63
+ }
64
+
65
+ // Operator override via env: AUDIT_TOOLS_REPO_VISIBILITY=private|public (also
66
+ // accepts track=private / ignore=public). Anything else => no override.
67
+ function resolveVisibilityOverride() {
68
+ const raw = (process.env.AUDIT_TOOLS_REPO_VISIBILITY || "").trim().toLowerCase();
69
+ if (raw === "private" || raw === "track") return "private";
70
+ if (raw === "public" || raw === "ignore") return "public";
71
+ return null;
72
+ }
73
+
74
+ // Probe `gh repo view --json isPrivate`. Returns gh stdout, or null on any
75
+ // failure (gh missing, not a gh-known repo, non-zero exit). Never throws.
76
+ function runGhRepoVisibility(repoRoot) {
77
+ try {
78
+ const result = spawnSync("gh", ["repo", "view", "--json", "isPrivate"], {
79
+ cwd: repoRoot,
80
+ encoding: "utf8",
81
+ shell: process.platform === "win32",
82
+ });
83
+ if (result.error || (result.status ?? 0) !== 0) return null;
84
+ return typeof result.stdout === "string" ? result.stdout : null;
85
+ } catch {
86
+ return null;
87
+ }
88
+ }