audit-tools 0.37.0 → 0.38.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 (163) hide show
  1. package/dist/audit/adapters/astGrep.d.ts +1 -1
  2. package/dist/audit/adapters/astGrep.d.ts.map +1 -1
  3. package/dist/audit/adapters/astGrep.js +1 -1
  4. package/dist/audit/adapters/astGrep.js.map +1 -1
  5. package/dist/audit/adapters/codeql.d.ts +1 -1
  6. package/dist/audit/adapters/codeql.d.ts.map +1 -1
  7. package/dist/audit/adapters/codeql.js +1 -1
  8. package/dist/audit/adapters/codeql.js.map +1 -1
  9. package/dist/audit/adapters/coverageSummary.d.ts +1 -1
  10. package/dist/audit/adapters/coverageSummary.d.ts.map +1 -1
  11. package/dist/audit/adapters/coverageSummary.js +1 -1
  12. package/dist/audit/adapters/coverageSummary.js.map +1 -1
  13. package/dist/audit/adapters/eslint.d.ts +1 -1
  14. package/dist/audit/adapters/eslint.d.ts.map +1 -1
  15. package/dist/audit/adapters/eslint.js +1 -1
  16. package/dist/audit/adapters/eslint.js.map +1 -1
  17. package/dist/audit/adapters/npmAudit.d.ts +1 -1
  18. package/dist/audit/adapters/npmAudit.d.ts.map +1 -1
  19. package/dist/audit/adapters/npmAudit.js +1 -1
  20. package/dist/audit/adapters/npmAudit.js.map +1 -1
  21. package/dist/audit/adapters/semgrep.d.ts +1 -1
  22. package/dist/audit/adapters/semgrep.d.ts.map +1 -1
  23. package/dist/audit/adapters/semgrep.js +1 -1
  24. package/dist/audit/adapters/semgrep.js.map +1 -1
  25. package/dist/audit/cli/auditStep.d.ts +1 -1
  26. package/dist/audit/cli/auditStep.d.ts.map +1 -1
  27. package/dist/audit/cli/dispatch/packetPrompt.d.ts.map +1 -1
  28. package/dist/audit/cli/dispatch/packetPrompt.js +8 -2
  29. package/dist/audit/cli/dispatch/packetPrompt.js.map +1 -1
  30. package/dist/audit/cli/nextStepHelpers.d.ts +1 -1
  31. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  32. package/dist/audit/contracts/workerSchemas.d.ts +108 -0
  33. package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
  34. package/dist/audit/extractors/analyzers/registry.d.ts +5 -5
  35. package/dist/audit/extractors/analyzers/registry.d.ts.map +1 -1
  36. package/dist/audit/extractors/analyzers/registry.js +3 -3
  37. package/dist/audit/extractors/analyzers/registry.js.map +1 -1
  38. package/dist/audit/extractors/graph.d.ts +1 -1
  39. package/dist/audit/extractors/graph.d.ts.map +1 -1
  40. package/dist/audit/extractors/risk.d.ts +1 -1
  41. package/dist/audit/extractors/risk.d.ts.map +1 -1
  42. package/dist/audit/io/artifacts.d.ts +1 -1
  43. package/dist/audit/io/artifacts.d.ts.map +1 -1
  44. package/dist/audit/orchestrator/acquisitionExecutor.d.ts +1 -1
  45. package/dist/audit/orchestrator/acquisitionExecutor.d.ts.map +1 -1
  46. package/dist/audit/orchestrator/acquisitionExecutor.js +3 -3
  47. package/dist/audit/orchestrator/acquisitionExecutor.js.map +1 -1
  48. package/dist/audit/orchestrator/advanceTypes.d.ts +1 -1
  49. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  50. package/dist/audit/orchestrator/fileAnchors.d.ts +8 -1
  51. package/dist/audit/orchestrator/fileAnchors.d.ts.map +1 -1
  52. package/dist/audit/orchestrator/fileAnchors.js +1 -0
  53. package/dist/audit/orchestrator/fileAnchors.js.map +1 -1
  54. package/dist/audit/orchestrator/flowRequeue.d.ts +1 -1
  55. package/dist/audit/orchestrator/flowRequeue.d.ts.map +1 -1
  56. package/dist/audit/orchestrator/hostInputPause.d.ts +1 -1
  57. package/dist/audit/orchestrator/hostInputPause.d.ts.map +1 -1
  58. package/dist/audit/orchestrator/hostInputPause.js +1 -1
  59. package/dist/audit/orchestrator/hostInputPause.js.map +1 -1
  60. package/dist/audit/orchestrator/ingestionExecutors.d.ts +1 -1
  61. package/dist/audit/orchestrator/ingestionExecutors.d.ts.map +1 -1
  62. package/dist/audit/orchestrator/ingestionExecutors.js +1 -1
  63. package/dist/audit/orchestrator/ingestionExecutors.js.map +1 -1
  64. package/dist/audit/orchestrator/planning.d.ts +1 -1
  65. package/dist/audit/orchestrator/planning.d.ts.map +1 -1
  66. package/dist/audit/orchestrator/requeue.d.ts +1 -1
  67. package/dist/audit/orchestrator/requeue.d.ts.map +1 -1
  68. package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
  69. package/dist/audit/orchestrator/requeueCommand.d.ts.map +1 -1
  70. package/dist/audit/orchestrator/requeueUtils.d.ts +1 -1
  71. package/dist/audit/orchestrator/requeueUtils.d.ts.map +1 -1
  72. package/dist/audit/orchestrator/selectiveDeepening/lensVerification.d.ts +1 -1
  73. package/dist/audit/orchestrator/selectiveDeepening/lensVerification.d.ts.map +1 -1
  74. package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts +1 -1
  75. package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts.map +1 -1
  76. package/dist/audit/orchestrator/syntaxResolutionExecutor.js +1 -1
  77. package/dist/audit/orchestrator/syntaxResolutionExecutor.js.map +1 -1
  78. package/dist/audit/orchestrator/taskBuilder.d.ts +1 -1
  79. package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -1
  80. package/dist/audit/orchestrator/trivialAudit.d.ts +1 -1
  81. package/dist/audit/orchestrator/trivialAudit.d.ts.map +1 -1
  82. package/dist/audit/reporting/mergeFindings.d.ts +1 -1
  83. package/dist/audit/reporting/mergeFindings.d.ts.map +1 -1
  84. package/dist/audit/reporting/synthesis.d.ts +1 -1
  85. package/dist/audit/reporting/synthesis.d.ts.map +1 -1
  86. package/dist/audit/types.d.ts +40 -0
  87. package/dist/audit/types.d.ts.map +1 -1
  88. package/dist/remediate/phases/close.d.ts.map +1 -1
  89. package/dist/remediate/phases/close.js +45 -0
  90. package/dist/remediate/phases/close.js.map +1 -1
  91. package/dist/remediate/phases/closeVerifyAnalyzerLeads.d.ts +42 -0
  92. package/dist/remediate/phases/closeVerifyAnalyzerLeads.d.ts.map +1 -0
  93. package/dist/remediate/phases/closeVerifyAnalyzerLeads.js +93 -0
  94. package/dist/remediate/phases/closeVerifyAnalyzerLeads.js.map +1 -0
  95. package/dist/remediate/state/types.d.ts +46 -1
  96. package/dist/remediate/state/types.d.ts.map +1 -1
  97. package/dist/remediate/state/types.js.map +1 -1
  98. package/dist/remediate/types/options.d.ts +6 -0
  99. package/dist/remediate/types/options.d.ts.map +1 -1
  100. package/dist/{audit/extractors → shared}/analyzers/acquisitionEngine.d.ts +3 -2
  101. package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -0
  102. package/dist/{audit/extractors → shared}/analyzers/acquisitionEngine.js +14 -3
  103. package/dist/shared/analyzers/acquisitionEngine.js.map +1 -0
  104. package/dist/{audit/extractors → shared}/analyzers/binaryAcquisition.d.ts +1 -1
  105. package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -0
  106. package/dist/{audit/extractors → shared}/analyzers/binaryAcquisition.js +1 -1
  107. package/dist/shared/analyzers/binaryAcquisition.js.map +1 -0
  108. package/dist/shared/analyzers/candidates.d.ts.map +1 -0
  109. package/dist/{audit/extractors → shared}/analyzers/candidates.js +3 -3
  110. package/dist/shared/analyzers/candidates.js.map +1 -0
  111. package/dist/{audit/adapters → shared/analyzers}/clippy.d.ts +1 -1
  112. package/dist/{audit/adapters → shared/analyzers}/clippy.d.ts.map +1 -1
  113. package/dist/shared/analyzers/clippy.js.map +1 -0
  114. package/dist/{audit/adapters → shared/analyzers}/normalizeExternal.d.ts +12 -2
  115. package/dist/shared/analyzers/normalizeExternal.d.ts.map +1 -0
  116. package/dist/{audit/adapters → shared/analyzers}/normalizeExternal.js +41 -12
  117. package/dist/shared/analyzers/normalizeExternal.js.map +1 -0
  118. package/dist/shared/analyzers/provenance.d.ts +55 -0
  119. package/dist/shared/analyzers/provenance.d.ts.map +1 -0
  120. package/dist/shared/analyzers/provenance.js +70 -0
  121. package/dist/shared/analyzers/provenance.js.map +1 -0
  122. package/dist/{audit/adapters → shared/analyzers}/rubocop.d.ts +1 -1
  123. package/dist/{audit/adapters → shared/analyzers}/rubocop.d.ts.map +1 -1
  124. package/dist/shared/analyzers/rubocop.js.map +1 -0
  125. package/dist/{audit/types/externalAnalyzer.d.ts → shared/analyzers/types.d.ts} +87 -17
  126. package/dist/shared/analyzers/types.d.ts.map +1 -0
  127. package/dist/{audit/types/externalAnalyzer.js → shared/analyzers/types.js} +4 -1
  128. package/dist/shared/analyzers/types.js.map +1 -0
  129. package/dist/shared/decompose/systemicChallenge.d.ts +40 -0
  130. package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -1
  131. package/dist/shared/dispatch/dispatchQuotaContract.d.ts +6 -6
  132. package/dist/shared/index.d.ts +15 -2
  133. package/dist/shared/index.d.ts.map +1 -1
  134. package/dist/shared/index.js +11 -1
  135. package/dist/shared/index.js.map +1 -1
  136. package/dist/shared/quota/capacity.d.ts +2 -2
  137. package/dist/shared/types/finding.d.ts +126 -0
  138. package/dist/shared/types/finding.d.ts.map +1 -1
  139. package/dist/shared/types/finding.js +8 -0
  140. package/dist/shared/types/finding.js.map +1 -1
  141. package/dist/shared/types/remediationOutcome.d.ts +80 -0
  142. package/dist/shared/types/remediationOutcome.d.ts.map +1 -1
  143. package/dist/shared/types/remediationOutcome.js +17 -0
  144. package/dist/shared/types/remediationOutcome.js.map +1 -1
  145. package/package.json +1 -1
  146. package/schemas/audit_result.schema.json +24 -0
  147. package/schemas/audit_results.schema.json +24 -0
  148. package/schemas/finding.schema.json +24 -0
  149. package/dist/audit/adapters/clippy.js.map +0 -1
  150. package/dist/audit/adapters/normalizeExternal.d.ts.map +0 -1
  151. package/dist/audit/adapters/normalizeExternal.js.map +0 -1
  152. package/dist/audit/adapters/rubocop.js.map +0 -1
  153. package/dist/audit/extractors/analyzers/acquisitionEngine.d.ts.map +0 -1
  154. package/dist/audit/extractors/analyzers/acquisitionEngine.js.map +0 -1
  155. package/dist/audit/extractors/analyzers/binaryAcquisition.d.ts.map +0 -1
  156. package/dist/audit/extractors/analyzers/binaryAcquisition.js.map +0 -1
  157. package/dist/audit/extractors/analyzers/candidates.d.ts.map +0 -1
  158. package/dist/audit/extractors/analyzers/candidates.js.map +0 -1
  159. package/dist/audit/types/externalAnalyzer.d.ts.map +0 -1
  160. package/dist/audit/types/externalAnalyzer.js.map +0 -1
  161. /package/dist/{audit/extractors → shared}/analyzers/candidates.d.ts +0 -0
  162. /package/dist/{audit/adapters → shared/analyzers}/clippy.js +0 -0
  163. /package/dist/{audit/adapters → shared/analyzers}/rubocop.js +0 -0
@@ -0,0 +1,70 @@
1
+ import { z } from "zod";
2
+ import { hashContent } from "../hash.js";
3
+ /**
4
+ * Content-anchored identity of one analyzer lead — the join key that lets
5
+ * remediation's close-verify draw ask "does this exact lead still fire?"
6
+ * mechanically (item C of `spec/mechanical-analyzer-layer-design.md`).
7
+ *
8
+ * Anchored on the NORMALIZED flagged snippet, never line numbers: edits shift
9
+ * lines, but an untouched clone/violation re-hashes identically wherever it
10
+ * moves within its file. Optional everywhere it is carried — a lead whose
11
+ * snippet cannot be read simply carries no provenance and is exempt from
12
+ * mechanical verification.
13
+ */
14
+ export const AnalyzerLeadProvenanceSchema = z
15
+ .object({
16
+ /** Candidate id that produced the lead (e.g. "jscpd", "gitleaks"). */
17
+ analyzer_id: z.string(),
18
+ /** Analyzer-native rule id, when the tool reports one. */
19
+ rule: z.string().optional(),
20
+ /** Repo-relative path of the flagged file. */
21
+ path: z.string(),
22
+ /** `hashAnalyzerSnippet` digest of the normalized flagged span. */
23
+ snippet_hash: z.string(),
24
+ })
25
+ .strict();
26
+ /** Truncated-digest length: 16 hex chars — ample for per-file span identity. */
27
+ const SNIPPET_HASH_LENGTH = 16;
28
+ /**
29
+ * Normalize a flagged source span so the hash survives cosmetic movement:
30
+ * per-line trim, internal whitespace runs collapsed to one space, empty lines
31
+ * dropped. A whitespace-only reformat therefore re-hashes identically (the
32
+ * lead's identity is its content, not its layout), while any real edit to the
33
+ * flagged code changes the digest.
34
+ */
35
+ export function normalizeAnalyzerSnippet(snippet) {
36
+ return snippet
37
+ .split(/\r?\n/)
38
+ .map((line) => line.trim().replace(/\s+/g, " "))
39
+ .filter((line) => line.length > 0)
40
+ .join("\n");
41
+ }
42
+ /**
43
+ * Hash the 1-based inclusive line span `[lineStart, lineEnd ?? lineStart]` of
44
+ * `source` after {@link normalizeAnalyzerSnippet}. Returns undefined when the
45
+ * span is empty after normalization or lies wholly outside the file — callers
46
+ * then attach no provenance rather than a meaningless digest.
47
+ */
48
+ export function hashAnalyzerSnippet(source, lineStart, lineEnd) {
49
+ if (!Number.isInteger(lineStart) || lineStart < 1)
50
+ return undefined;
51
+ const last = lineEnd !== undefined && Number.isInteger(lineEnd) && lineEnd >= lineStart
52
+ ? lineEnd
53
+ : lineStart;
54
+ const lines = source.split(/\r?\n/).slice(lineStart - 1, last);
55
+ if (lines.length === 0)
56
+ return undefined;
57
+ const normalized = normalizeAnalyzerSnippet(lines.join("\n"));
58
+ if (normalized.length === 0)
59
+ return undefined;
60
+ return hashContent(normalized, { length: SNIPPET_HASH_LENGTH });
61
+ }
62
+ /**
63
+ * Stable string key of a provenance identity, for set membership at the
64
+ * close-verify draw (`analyzer_id`+`rule`+`path`+`snippet_hash`; `rule` folds
65
+ * in as "" when absent so the same lead keys identically on both sides).
66
+ */
67
+ export function analyzerProvenanceKey(p) {
68
+ return [p.analyzer_id, p.rule ?? "", p.path, p.snippet_hash].join("\0");
69
+ }
70
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../../src/shared/analyzers/provenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,sEAAsE;IACtE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,0DAA0D;IAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,8CAA8C;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,mEAAmE;IACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACzB,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,gFAAgF;AAChF,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,OAAO,OAAO;SACX,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;SAC/C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,SAAiB,EACjB,OAAgB;IAEhB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,IAAI,GAAG,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,SAAS;QACrF,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,UAAU,GAAG,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,WAAW,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,CAAyB;IAC7D,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ExternalAnalyzerResults } from "../types/externalAnalyzer.js";
1
+ import type { ExternalAnalyzerResults } from "./types.js";
2
2
  /**
3
3
  * Parse rubocop's `--format json` stdout into the generic item shape. Degrades
4
4
  * to `[]` on empty/malformed input or a missing `files` array.
@@ -1 +1 @@
1
- {"version":3,"file":"rubocop.d.ts","sourceRoot":"","sources":["../../../src/audit/adapters/rubocop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAgD5E;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAsDD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,CAE5E"}
1
+ {"version":3,"file":"rubocop.d.ts","sourceRoot":"","sources":["../../../src/shared/analyzers/rubocop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAgD1D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAsDD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,CAE5E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rubocop.js","sourceRoot":"","sources":["../../../src/shared/analyzers/rubocop.ts"],"names":[],"mappings":"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"}
@@ -11,15 +11,38 @@ export declare const ExternalAnalyzerResultItemSchema: z.ZodObject<{
11
11
  rule: z.ZodOptional<z.ZodString>;
12
12
  /** Preserves the analyzer-native payload when consumers need original detail. */
13
13
  raw: z.ZodOptional<z.ZodUnknown>;
14
+ /** Content-anchored lead identity for the close-verify draw (item C). */
15
+ provenance: z.ZodOptional<z.ZodObject<{
16
+ analyzer_id: z.ZodString;
17
+ rule: z.ZodOptional<z.ZodString>;
18
+ path: z.ZodString;
19
+ snippet_hash: z.ZodString;
20
+ }, "strict", z.ZodTypeAny, {
21
+ path: string;
22
+ analyzer_id: string;
23
+ snippet_hash: string;
24
+ rule?: string | undefined;
25
+ }, {
26
+ path: string;
27
+ analyzer_id: string;
28
+ snippet_hash: string;
29
+ rule?: string | undefined;
30
+ }>>;
14
31
  }, "strict", z.ZodTypeAny, {
15
32
  path: string;
16
33
  id: string;
17
34
  category: string;
18
35
  severity: string;
19
36
  summary: string;
37
+ rule?: string | undefined;
20
38
  line_start?: number | undefined;
21
39
  line_end?: number | undefined;
22
- rule?: string | undefined;
40
+ provenance?: {
41
+ path: string;
42
+ analyzer_id: string;
43
+ snippet_hash: string;
44
+ rule?: string | undefined;
45
+ } | undefined;
23
46
  raw?: unknown;
24
47
  }, {
25
48
  path: string;
@@ -27,9 +50,15 @@ export declare const ExternalAnalyzerResultItemSchema: z.ZodObject<{
27
50
  category: string;
28
51
  severity: string;
29
52
  summary: string;
53
+ rule?: string | undefined;
30
54
  line_start?: number | undefined;
31
55
  line_end?: number | undefined;
32
- rule?: string | undefined;
56
+ provenance?: {
57
+ path: string;
58
+ analyzer_id: string;
59
+ snippet_hash: string;
60
+ rule?: string | undefined;
61
+ } | undefined;
33
62
  raw?: unknown;
34
63
  }>;
35
64
  export type ExternalAnalyzerResultItem = z.infer<typeof ExternalAnalyzerResultItemSchema>;
@@ -92,7 +121,7 @@ export declare const ExternalAnalyzerToolStatusSchema: z.ZodObject<{
92
121
  output_snippet: z.ZodOptional<z.ZodString>;
93
122
  duration_ms: z.ZodOptional<z.ZodNumber>;
94
123
  }, "strict", z.ZodTypeAny, {
95
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
124
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
96
125
  resolved: boolean;
97
126
  tool: string;
98
127
  error?: string | undefined;
@@ -101,7 +130,7 @@ export declare const ExternalAnalyzerToolStatusSchema: z.ZodObject<{
101
130
  exit_code?: number | null | undefined;
102
131
  output_snippet?: string | undefined;
103
132
  }, {
104
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
133
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
105
134
  resolved: boolean;
106
135
  tool: string;
107
136
  error?: string | undefined;
@@ -167,7 +196,7 @@ export declare const ExternalAnalyzerResultsSchema: z.ZodObject<{
167
196
  output_snippet: z.ZodOptional<z.ZodString>;
168
197
  duration_ms: z.ZodOptional<z.ZodNumber>;
169
198
  }, "strict", z.ZodTypeAny, {
170
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
199
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
171
200
  resolved: boolean;
172
201
  tool: string;
173
202
  error?: string | undefined;
@@ -176,7 +205,7 @@ export declare const ExternalAnalyzerResultsSchema: z.ZodObject<{
176
205
  exit_code?: number | null | undefined;
177
206
  output_snippet?: string | undefined;
178
207
  }, {
179
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
208
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
180
209
  resolved: boolean;
181
210
  tool: string;
182
211
  error?: string | undefined;
@@ -196,15 +225,38 @@ export declare const ExternalAnalyzerResultsSchema: z.ZodObject<{
196
225
  rule: z.ZodOptional<z.ZodString>;
197
226
  /** Preserves the analyzer-native payload when consumers need original detail. */
198
227
  raw: z.ZodOptional<z.ZodUnknown>;
228
+ /** Content-anchored lead identity for the close-verify draw (item C). */
229
+ provenance: z.ZodOptional<z.ZodObject<{
230
+ analyzer_id: z.ZodString;
231
+ rule: z.ZodOptional<z.ZodString>;
232
+ path: z.ZodString;
233
+ snippet_hash: z.ZodString;
234
+ }, "strict", z.ZodTypeAny, {
235
+ path: string;
236
+ analyzer_id: string;
237
+ snippet_hash: string;
238
+ rule?: string | undefined;
239
+ }, {
240
+ path: string;
241
+ analyzer_id: string;
242
+ snippet_hash: string;
243
+ rule?: string | undefined;
244
+ }>>;
199
245
  }, "strict", z.ZodTypeAny, {
200
246
  path: string;
201
247
  id: string;
202
248
  category: string;
203
249
  severity: string;
204
250
  summary: string;
251
+ rule?: string | undefined;
205
252
  line_start?: number | undefined;
206
253
  line_end?: number | undefined;
207
- rule?: string | undefined;
254
+ provenance?: {
255
+ path: string;
256
+ analyzer_id: string;
257
+ snippet_hash: string;
258
+ rule?: string | undefined;
259
+ } | undefined;
208
260
  raw?: unknown;
209
261
  }, {
210
262
  path: string;
@@ -212,9 +264,15 @@ export declare const ExternalAnalyzerResultsSchema: z.ZodObject<{
212
264
  category: string;
213
265
  severity: string;
214
266
  summary: string;
267
+ rule?: string | undefined;
215
268
  line_start?: number | undefined;
216
269
  line_end?: number | undefined;
217
- rule?: string | undefined;
270
+ provenance?: {
271
+ path: string;
272
+ analyzer_id: string;
273
+ snippet_hash: string;
274
+ rule?: string | undefined;
275
+ } | undefined;
218
276
  raw?: unknown;
219
277
  }>, "many">;
220
278
  }, "strict", z.ZodTypeAny, {
@@ -225,9 +283,15 @@ export declare const ExternalAnalyzerResultsSchema: z.ZodObject<{
225
283
  category: string;
226
284
  severity: string;
227
285
  summary: string;
286
+ rule?: string | undefined;
228
287
  line_start?: number | undefined;
229
288
  line_end?: number | undefined;
230
- rule?: string | undefined;
289
+ provenance?: {
290
+ path: string;
291
+ analyzer_id: string;
292
+ snippet_hash: string;
293
+ rule?: string | undefined;
294
+ } | undefined;
231
295
  raw?: unknown;
232
296
  }[];
233
297
  generated_at?: string | undefined;
@@ -246,7 +310,7 @@ export declare const ExternalAnalyzerResultsSchema: z.ZodObject<{
246
310
  kind?: string | undefined;
247
311
  }[] | undefined;
248
312
  tool_statuses?: {
249
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
313
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
250
314
  resolved: boolean;
251
315
  tool: string;
252
316
  error?: string | undefined;
@@ -263,9 +327,15 @@ export declare const ExternalAnalyzerResultsSchema: z.ZodObject<{
263
327
  category: string;
264
328
  severity: string;
265
329
  summary: string;
330
+ rule?: string | undefined;
266
331
  line_start?: number | undefined;
267
332
  line_end?: number | undefined;
268
- rule?: string | undefined;
333
+ provenance?: {
334
+ path: string;
335
+ analyzer_id: string;
336
+ snippet_hash: string;
337
+ rule?: string | undefined;
338
+ } | undefined;
269
339
  raw?: unknown;
270
340
  }[];
271
341
  generated_at?: string | undefined;
@@ -284,7 +354,7 @@ export declare const ExternalAnalyzerResultsSchema: z.ZodObject<{
284
354
  kind?: string | undefined;
285
355
  }[] | undefined;
286
356
  tool_statuses?: {
287
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
357
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
288
358
  resolved: boolean;
289
359
  tool: string;
290
360
  error?: string | undefined;
@@ -320,7 +390,7 @@ export declare const ExternalAnalyzerAcquisitionMarkerSchema: z.ZodObject<{
320
390
  output_snippet: z.ZodOptional<z.ZodString>;
321
391
  duration_ms: z.ZodOptional<z.ZodNumber>;
322
392
  }, "strict", z.ZodTypeAny, {
323
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
393
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
324
394
  resolved: boolean;
325
395
  tool: string;
326
396
  error?: string | undefined;
@@ -329,7 +399,7 @@ export declare const ExternalAnalyzerAcquisitionMarkerSchema: z.ZodObject<{
329
399
  exit_code?: number | null | undefined;
330
400
  output_snippet?: string | undefined;
331
401
  }, {
332
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
402
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
333
403
  resolved: boolean;
334
404
  tool: string;
335
405
  error?: string | undefined;
@@ -341,7 +411,7 @@ export declare const ExternalAnalyzerAcquisitionMarkerSchema: z.ZodObject<{
341
411
  }, "strict", z.ZodTypeAny, {
342
412
  enabled: boolean;
343
413
  tool_statuses: {
344
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
414
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
345
415
  resolved: boolean;
346
416
  tool: string;
347
417
  error?: string | undefined;
@@ -354,7 +424,7 @@ export declare const ExternalAnalyzerAcquisitionMarkerSchema: z.ZodObject<{
354
424
  }, {
355
425
  enabled: boolean;
356
426
  tool_statuses: {
357
- status: "failed" | "findings" | "success" | "spawn_error" | "skipped" | "not_resolved" | "parse_error";
427
+ status: "failed" | "findings" | "skipped" | "success" | "spawn_error" | "not_resolved" | "parse_error";
358
428
  resolved: boolean;
359
429
  tool: string;
360
430
  error?: string | undefined;
@@ -374,4 +444,4 @@ export type ExternalAnalyzerAcquisitionMarker = z.infer<typeof ExternalAnalyzerA
374
444
  * the others. Returns a new array sorted by `tool` for deterministic output.
375
445
  */
376
446
  export declare function upsertExternalToolResults(existing: ExternalAnalyzerResults[] | undefined, incoming: ExternalAnalyzerResults): ExternalAnalyzerResults[];
377
- //# sourceMappingURL=externalAnalyzer.d.ts.map
447
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/analyzers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,sFAAsF;AACtF,eAAO,MAAM,gCAAgC;;;;;;;;;IAUzC,iFAAiF;;IAEjF,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGlE,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AACZ,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,+BAA+B,CACvC,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAEZ,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBlC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;IAKtC;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA5EH,iFAAiF;;QAEjF,yEAAyE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+ElE,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMzC,CAAC;AACZ,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,uCAAuC,CAC/C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,uBAAuB,EAAE,GAAG,SAAS,EAC/C,QAAQ,EAAE,uBAAuB,GAChC,uBAAuB,EAAE,CAI3B"}
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { AnalyzerLeadProvenanceSchema } from "./provenance.js";
2
3
  /** One normalized result imported from an external analyzer such as eslint or tsc. */
3
4
  export const ExternalAnalyzerResultItemSchema = z
4
5
  .object({
@@ -12,6 +13,8 @@ export const ExternalAnalyzerResultItemSchema = z
12
13
  rule: z.string().optional(),
13
14
  /** Preserves the analyzer-native payload when consumers need original detail. */
14
15
  raw: z.unknown().optional(),
16
+ /** Content-anchored lead identity for the close-verify draw (item C). */
17
+ provenance: AnalyzerLeadProvenanceSchema.optional(),
15
18
  })
16
19
  .strict();
17
20
  /**
@@ -108,4 +111,4 @@ export function upsertExternalToolResults(existing, incoming) {
108
111
  next.push(incoming);
109
112
  return next.sort((a, b) => a.tool.localeCompare(b.tool));
110
113
  }
111
- //# sourceMappingURL=externalAnalyzer.js.map
114
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/analyzers/types.ts"],"names":[],"mappings":"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"}
@@ -124,6 +124,22 @@ export declare const SystemicChallengeSubmissionSchema: z.ZodObject<{
124
124
  contract_obligation_ids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
125
125
  verification_obligation_ids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
126
126
  targeted_commands: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
127
+ analyzer_provenance: z.ZodOptional<z.ZodObject<{
128
+ analyzer_id: z.ZodString;
129
+ rule: z.ZodOptional<z.ZodString>;
130
+ path: z.ZodString;
131
+ snippet_hash: z.ZodString;
132
+ }, "strict", z.ZodTypeAny, {
133
+ path: string;
134
+ analyzer_id: string;
135
+ snippet_hash: string;
136
+ rule?: string | undefined;
137
+ }, {
138
+ path: string;
139
+ analyzer_id: string;
140
+ snippet_hash: string;
141
+ rule?: string | undefined;
142
+ }>>;
127
143
  }, "strip", z.ZodTypeAny, {
128
144
  id: string;
129
145
  confidence: "high" | "low" | "medium";
@@ -172,6 +188,12 @@ export declare const SystemicChallengeSubmissionSchema: z.ZodObject<{
172
188
  contract_obligation_ids?: string[] | undefined;
173
189
  verification_obligation_ids?: string[] | undefined;
174
190
  targeted_commands?: string[] | undefined;
191
+ analyzer_provenance?: {
192
+ path: string;
193
+ analyzer_id: string;
194
+ snippet_hash: string;
195
+ rule?: string | undefined;
196
+ } | undefined;
175
197
  }, {
176
198
  id: string;
177
199
  confidence: "high" | "low" | "medium";
@@ -220,6 +242,12 @@ export declare const SystemicChallengeSubmissionSchema: z.ZodObject<{
220
242
  contract_obligation_ids?: string[] | undefined;
221
243
  verification_obligation_ids?: string[] | undefined;
222
244
  targeted_commands?: string[] | undefined;
245
+ analyzer_provenance?: {
246
+ path: string;
247
+ analyzer_id: string;
248
+ snippet_hash: string;
249
+ rule?: string | undefined;
250
+ } | undefined;
223
251
  }>, "many">>;
224
252
  }, "strict", z.ZodTypeAny, {
225
253
  findings: {
@@ -270,6 +298,12 @@ export declare const SystemicChallengeSubmissionSchema: z.ZodObject<{
270
298
  contract_obligation_ids?: string[] | undefined;
271
299
  verification_obligation_ids?: string[] | undefined;
272
300
  targeted_commands?: string[] | undefined;
301
+ analyzer_provenance?: {
302
+ path: string;
303
+ analyzer_id: string;
304
+ snippet_hash: string;
305
+ rule?: string | undefined;
306
+ } | undefined;
273
307
  }[];
274
308
  }, {
275
309
  findings?: {
@@ -320,6 +354,12 @@ export declare const SystemicChallengeSubmissionSchema: z.ZodObject<{
320
354
  contract_obligation_ids?: string[] | undefined;
321
355
  verification_obligation_ids?: string[] | undefined;
322
356
  targeted_commands?: string[] | undefined;
357
+ analyzer_provenance?: {
358
+ path: string;
359
+ analyzer_id: string;
360
+ snippet_hash: string;
361
+ rule?: string | undefined;
362
+ } | undefined;
323
363
  }[] | undefined;
324
364
  }>;
325
365
  export type SystemicChallengeSubmission = z.infer<typeof SystemicChallengeSubmissionSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"systemicChallenge.d.ts","sourceRoot":"","sources":["../../../src/shared/decompose/systemicChallenge.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInC,CAAC;AACZ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC"}
1
+ {"version":3,"file":"systemicChallenge.d.ts","sourceRoot":"","sources":["../../../src/shared/decompose/systemicChallenge.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAInC,CAAC;AACZ,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,iCAAiC,CACzC,CAAC"}
@@ -501,7 +501,7 @@ export declare const DispatchQuotaContractSchema: z.ZodObject<{
501
501
  }, "strict", z.ZodTypeAny, {
502
502
  confidence: "high" | "low" | "medium";
503
503
  model: string | null;
504
- source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
504
+ source: "default" | "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned";
505
505
  cooldown_until: string | null;
506
506
  pool_id: string;
507
507
  slots: number;
@@ -562,7 +562,7 @@ export declare const DispatchQuotaContractSchema: z.ZodObject<{
562
562
  }, {
563
563
  confidence: "high" | "low" | "medium";
564
564
  model: string | null;
565
- source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
565
+ source: "default" | "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned";
566
566
  cooldown_until: string | null;
567
567
  pool_id: string;
568
568
  slots: number;
@@ -714,7 +714,7 @@ export declare const DispatchQuotaContractSchema: z.ZodObject<{
714
714
  run_id: string;
715
715
  contract_version: "dispatch-quota/v1";
716
716
  model: string | null;
717
- source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
717
+ source: "default" | "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned";
718
718
  cooldown_until: string | null;
719
719
  resolved_limits: {
720
720
  context_tokens: number | null;
@@ -797,7 +797,7 @@ export declare const DispatchQuotaContractSchema: z.ZodObject<{
797
797
  capacity_pools?: {
798
798
  confidence: "high" | "low" | "medium";
799
799
  model: string | null;
800
- source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
800
+ source: "default" | "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned";
801
801
  cooldown_until: string | null;
802
802
  pool_id: string;
803
803
  slots: number;
@@ -873,7 +873,7 @@ export declare const DispatchQuotaContractSchema: z.ZodObject<{
873
873
  run_id: string;
874
874
  contract_version: "dispatch-quota/v1";
875
875
  model: string | null;
876
- source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
876
+ source: "default" | "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned";
877
877
  cooldown_until: string | null;
878
878
  resolved_limits: {
879
879
  context_tokens: number | null;
@@ -956,7 +956,7 @@ export declare const DispatchQuotaContractSchema: z.ZodObject<{
956
956
  capacity_pools?: {
957
957
  confidence: "high" | "low" | "medium";
958
958
  model: string | null;
959
- source: "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned" | "default";
959
+ source: "default" | "explicit_config" | "discovered_capability" | "static_metadata" | "cli_flags" | "provider_default" | "learned";
960
960
  cooldown_until: string | null;
961
961
  pool_id: string;
962
962
  slots: number;
@@ -40,8 +40,8 @@ export type { InterpretedIntent } from "./intent/freeFormIntentInterpreter.js";
40
40
  export { interpretFreeFormIntent } from "./intent/freeFormIntentInterpreter.js";
41
41
  export type { IntentClauseKind, IntentClause, ClauseInterpretResult, } from "./intent/clauseInterpreter.js";
42
42
  export { decomposeIntent, assessClauseEncodability, interpretIntent, clauseIdentity, } from "./intent/clauseInterpreter.js";
43
- export type { RemediationOutcomeStatus, RemediationOutcome, RemediationOutcomesReport, } from "./types/remediationOutcome.js";
44
- export { RemediationOutcomeStatusSchema, RemediationOutcomeSchema, RemediationOutcomesReportSchema, } from "./types/remediationOutcome.js";
43
+ export type { RemediationOutcomeStatus, RemediationOutcome, RemediationOutcomesReport, MechanicalVerification, } from "./types/remediationOutcome.js";
44
+ export { RemediationOutcomeStatusSchema, RemediationOutcomeSchema, RemediationOutcomesReportSchema, MechanicalVerificationSchema, } from "./types/remediationOutcome.js";
45
45
  export type { Lens } from "./types/lens.js";
46
46
  export { LensSchema, LENSES, VALID_LENSES, isLens, SEVERITIES, VALID_SEVERITIES, CONFIDENCES, VALID_CONFIDENCES, severityRank, confidenceRank, severityCompare, } from "./types/lens.js";
47
47
  export type { RepoConventions } from "./tooling/repoConventions.js";
@@ -274,4 +274,17 @@ export type { ObligationState, Obligation, ObligationDef, ObligationOutcome, Obl
274
274
  export { ObligationStateSchema, ObligationSchema, findFirstActionableObligation, findNextObligation, advance, DEFAULT_MAX_TRANSITIONS, } from "./engine/obligationEngine.js";
275
275
  export { LOOP_CORE_PATTERNS, isLoopCorePath } from "./loopCorePaths.js";
276
276
  export { applyGuidanceFile } from "./intake/guidanceBootstrap.js";
277
+ export { OWNED_TOOL_IDS, admitSpawn, runSafetyGate, runExternalAnalyzer, registerExternalAnalyzers, runAcquisitionEngine, resolveBinaryCandidates, detectNodeEcosystem, detectPythonEcosystem, } from "./analyzers/acquisitionEngine.js";
278
+ export type { EcosystemRunner, AnalyzerSafetyProfile, ExternalAnalyzerCandidate, AcquisitionRunner, AcquisitionEngineOptions, AcquisitionOutcome, RunAllOutcome, ResolvedBinaries, } from "./analyzers/acquisitionEngine.js";
279
+ export { resolveBinary, expectedSha256For } from "./analyzers/binaryAcquisition.js";
280
+ export type { BinarySpec, BinaryFetcher, BinaryCommandRunner, BinaryResolveOptions, BinaryResolution, } from "./analyzers/binaryAcquisition.js";
281
+ export { ExternalAnalyzerResultItemSchema, ExternalAnalyzerGraphEdgeSchema, ExternalAnalyzerOwnershipRootSchema, ExternalAnalyzerToolStatusSchema, ExternalAnalyzerResultsSchema, ExternalAnalyzerAcquisitionMarkerSchema, upsertExternalToolResults, } from "./analyzers/types.js";
282
+ export type { ExternalAnalyzerResultItem, ExternalAnalyzerGraphEdge, ExternalAnalyzerToolStatus, ExternalAnalyzerResults, ExternalAnalyzerAcquisitionMarker, } from "./analyzers/types.js";
283
+ export { normalizeGenericExternalResults, normalizeGenericExternalEdges, } from "./analyzers/normalizeExternal.js";
284
+ export type { NormalizeExternalOptions } from "./analyzers/normalizeExternal.js";
285
+ export { AnalyzerLeadProvenanceSchema, normalizeAnalyzerSnippet, hashAnalyzerSnippet, analyzerProvenanceKey, } from "./analyzers/provenance.js";
286
+ export type { AnalyzerLeadProvenance } from "./analyzers/provenance.js";
287
+ export { EXTERNAL_ANALYZER_CANDIDATES, gitleaksCandidate, semgrepCandidate, knipCandidate, parseKnip, eslintCandidate, parseGitleaks, GITLEAKS_VERSION, jscpdCandidate, parseJscpd, osvScannerCandidate, parseOsvScanner, OSV_SCANNER_VERSION, clippyCandidate, rubocopCandidate, hadolintCandidate, parseHadolint, HADOLINT_VERSION, actionlintCandidate, parseActionlint, ACTIONLINT_VERSION, typeCoverageCandidate, parseTypeCoverage, lizardCandidate, parseLizard, } from "./analyzers/candidates.js";
288
+ export { parseClippy } from "./analyzers/clippy.js";
289
+ export { parseRubocop } from "./analyzers/rubocop.js";
277
290
  //# sourceMappingURL=index.d.ts.map