audit-tools 0.40.1 → 0.41.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 (133) hide show
  1. package/dist/audit/cli/auditStep.d.ts +1 -1
  2. package/dist/audit/cli/conceptualDispatch.d.ts +3 -0
  3. package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
  4. package/dist/audit/cli/conceptualDispatch.js +82 -24
  5. package/dist/audit/cli/conceptualDispatch.js.map +1 -1
  6. package/dist/audit/cli/dispatch/hostHandoff.d.ts +12 -0
  7. package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
  8. package/dist/audit/cli/dispatch/hostHandoff.js +169 -78
  9. package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
  10. package/dist/audit/cli/fanoutLanes.d.ts +47 -11
  11. package/dist/audit/cli/fanoutLanes.d.ts.map +1 -1
  12. package/dist/audit/cli/fanoutLanes.js +15 -7
  13. package/dist/audit/cli/fanoutLanes.js.map +1 -1
  14. package/dist/audit/cli/laneSubmissions.d.ts +241 -0
  15. package/dist/audit/cli/laneSubmissions.d.ts.map +1 -0
  16. package/dist/audit/cli/laneSubmissions.js +438 -0
  17. package/dist/audit/cli/laneSubmissions.js.map +1 -0
  18. package/dist/audit/cli/laneValidators.d.ts +65 -0
  19. package/dist/audit/cli/laneValidators.d.ts.map +1 -0
  20. package/dist/audit/cli/laneValidators.js +145 -0
  21. package/dist/audit/cli/laneValidators.js.map +1 -0
  22. package/dist/audit/cli/nextStepCommand.d.ts +1 -1
  23. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  24. package/dist/audit/cli/nextStepCommand.js +118 -69
  25. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  26. package/dist/audit/cli/nextStepHelpers.d.ts +73 -42
  27. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  28. package/dist/audit/cli/nextStepHelpers.js +389 -253
  29. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  30. package/dist/audit/cli/recoverSubmissionCommand.d.ts +16 -0
  31. package/dist/audit/cli/recoverSubmissionCommand.d.ts.map +1 -0
  32. package/dist/audit/cli/recoverSubmissionCommand.js +73 -0
  33. package/dist/audit/cli/recoverSubmissionCommand.js.map +1 -0
  34. package/dist/audit/cli/semanticReviewStep.d.ts +3 -0
  35. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  36. package/dist/audit/cli/semanticReviewStep.js +30 -1
  37. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  38. package/dist/audit/cli/steps.d.ts +75 -2
  39. package/dist/audit/cli/steps.d.ts.map +1 -1
  40. package/dist/audit/cli/steps.js +14 -0
  41. package/dist/audit/cli/steps.js.map +1 -1
  42. package/dist/audit/cli.d.ts.map +1 -1
  43. package/dist/audit/cli.js +5 -1
  44. package/dist/audit/cli.js.map +1 -1
  45. package/dist/audit/contracts/wrapperResponse.d.ts +7 -7
  46. package/dist/audit/contracts/wrapperResponse.js +1 -1
  47. package/dist/audit/contracts/wrapperResponse.js.map +1 -1
  48. package/dist/audit/io/artifacts.d.ts +12 -1
  49. package/dist/audit/io/artifacts.d.ts.map +1 -1
  50. package/dist/audit/io/artifacts.js +28 -1
  51. package/dist/audit/io/artifacts.js.map +1 -1
  52. package/dist/audit/orchestrator/ingestionExecutors.d.ts.map +1 -1
  53. package/dist/audit/orchestrator/ingestionExecutors.js +13 -16
  54. package/dist/audit/orchestrator/ingestionExecutors.js.map +1 -1
  55. package/dist/audit/orchestrator/lensSelection.d.ts +19 -0
  56. package/dist/audit/orchestrator/lensSelection.d.ts.map +1 -1
  57. package/dist/audit/orchestrator/lensSelection.js +24 -0
  58. package/dist/audit/orchestrator/lensSelection.js.map +1 -1
  59. package/dist/audit/orchestrator/planningExecutors.d.ts +1 -12
  60. package/dist/audit/orchestrator/planningExecutors.d.ts.map +1 -1
  61. package/dist/audit/orchestrator/planningExecutors.js +14 -64
  62. package/dist/audit/orchestrator/planningExecutors.js.map +1 -1
  63. package/dist/audit/orchestrator/requeueFold.d.ts +43 -0
  64. package/dist/audit/orchestrator/requeueFold.d.ts.map +1 -0
  65. package/dist/audit/orchestrator/requeueFold.js +50 -0
  66. package/dist/audit/orchestrator/requeueFold.js.map +1 -0
  67. package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -1
  68. package/dist/audit/orchestrator/synthesisExecutors.js +2 -0
  69. package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -1
  70. package/dist/audit/reporting/synthesis.d.ts +9 -1
  71. package/dist/audit/reporting/synthesis.d.ts.map +1 -1
  72. package/dist/audit/reporting/synthesis.js +69 -1
  73. package/dist/audit/reporting/synthesis.js.map +1 -1
  74. package/dist/audit/supervisor/operatorHandoff.d.ts +9 -2
  75. package/dist/audit/supervisor/operatorHandoff.d.ts.map +1 -1
  76. package/dist/audit/supervisor/operatorHandoff.js +17 -10
  77. package/dist/audit/supervisor/operatorHandoff.js.map +1 -1
  78. package/dist/audit/types/designAssessment.d.ts +9 -5
  79. package/dist/audit/types/designAssessment.d.ts.map +1 -1
  80. package/dist/remediate/index.d.ts.map +1 -1
  81. package/dist/remediate/index.js +48 -1
  82. package/dist/remediate/index.js.map +1 -1
  83. package/dist/remediate/steps/dispatch/hostHandoff.d.ts +38 -6
  84. package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
  85. package/dist/remediate/steps/dispatch/hostHandoff.js +87 -75
  86. package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
  87. package/dist/shared/decompose/charterClarification.d.ts +1 -1
  88. package/dist/shared/decompose/charterClarification.js +1 -1
  89. package/dist/shared/decompose/charterExtraction.js +1 -1
  90. package/dist/shared/decompose/charterExtraction.js.map +1 -1
  91. package/dist/shared/decompose/systemicChallenge.js +1 -1
  92. package/dist/shared/decompose/systemicChallenge.js.map +1 -1
  93. package/dist/shared/index.d.ts +12 -2
  94. package/dist/shared/index.d.ts.map +1 -1
  95. package/dist/shared/index.js +7 -2
  96. package/dist/shared/index.js.map +1 -1
  97. package/dist/shared/io/auditToolsPaths.d.ts +24 -4
  98. package/dist/shared/io/auditToolsPaths.d.ts.map +1 -1
  99. package/dist/shared/io/auditToolsPaths.js +29 -5
  100. package/dist/shared/io/auditToolsPaths.js.map +1 -1
  101. package/dist/shared/io/schemaVersion.d.ts +5 -4
  102. package/dist/shared/io/schemaVersion.d.ts.map +1 -1
  103. package/dist/shared/io/schemaVersion.js +17 -5
  104. package/dist/shared/io/schemaVersion.js.map +1 -1
  105. package/dist/shared/loopCorePaths.d.ts.map +1 -1
  106. package/dist/shared/loopCorePaths.js +8 -2
  107. package/dist/shared/loopCorePaths.js.map +1 -1
  108. package/dist/shared/submission/expectedSubmissions.d.ts +88 -0
  109. package/dist/shared/submission/expectedSubmissions.d.ts.map +1 -0
  110. package/dist/shared/submission/expectedSubmissions.js +84 -0
  111. package/dist/shared/submission/expectedSubmissions.js.map +1 -0
  112. package/dist/shared/submission/handRecovery.d.ts +37 -0
  113. package/dist/shared/submission/handRecovery.d.ts.map +1 -0
  114. package/dist/shared/submission/handRecovery.js +123 -0
  115. package/dist/shared/submission/handRecovery.js.map +1 -0
  116. package/dist/shared/submission/submissionClassifier.d.ts +48 -0
  117. package/dist/shared/submission/submissionClassifier.d.ts.map +1 -0
  118. package/dist/shared/submission/submissionClassifier.js +83 -0
  119. package/dist/shared/submission/submissionClassifier.js.map +1 -0
  120. package/dist/shared/submission/submissionIdentity.d.ts +49 -0
  121. package/dist/shared/submission/submissionIdentity.d.ts.map +1 -0
  122. package/dist/shared/submission/submissionIdentity.js +90 -0
  123. package/dist/shared/submission/submissionIdentity.js.map +1 -0
  124. package/dist/shared/submission/submissionLedger.d.ts +37 -0
  125. package/dist/shared/submission/submissionLedger.d.ts.map +1 -0
  126. package/dist/shared/submission/submissionLedger.js +81 -0
  127. package/dist/shared/submission/submissionLedger.js.map +1 -0
  128. package/dist/shared/types/finding.d.ts +16 -0
  129. package/dist/shared/types/finding.d.ts.map +1 -1
  130. package/dist/shared/types/finding.js +60 -0
  131. package/dist/shared/types/finding.js.map +1 -1
  132. package/docs/audit-pkg/product.md +0 -2
  133. package/package.json +1 -1
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Where submissions live for one draw: the repository root a bound path is
3
+ * expressed relative to, and the directory the payload files sit in.
4
+ */
5
+ export interface SubmissionRoots {
6
+ readonly root: string;
7
+ readonly submissionDir: string;
8
+ }
9
+ /** The identity components a submission id is derived from. */
10
+ export interface SubmissionIdParts {
11
+ /** The obligation/gate family the submission answers. */
12
+ readonly kind: string;
13
+ /** The content-coherent lane within that family. */
14
+ readonly lane: string;
15
+ /** The run (or run-equivalent scope) the lane belongs to. */
16
+ readonly runId: string;
17
+ }
18
+ /**
19
+ * Mint the submission id for one lane. DETERMINISTIC: the same kind + lane +
20
+ * run always yields the same id, so a re-emitted step re-declares the identical
21
+ * bound path and an already-satisfied lane is recognized on resume (K-of-N).
22
+ * No timestamp, no randomness — an id that changed per call would re-ask for
23
+ * work the host already delivered.
24
+ *
25
+ * The readable prefix is for humans reading the ledger; the trailing digest is
26
+ * what makes distinct lanes distinct.
27
+ */
28
+ export declare function mintSubmissionId(parts: SubmissionIdParts): string;
29
+ /** Absolute on-disk path of one submission payload. */
30
+ export declare function absoluteSubmissionPath(paths: SubmissionRoots, submissionId: string): string;
31
+ /**
32
+ * The bound path as it is declared in a step contract and rendered to a host:
33
+ * repository-relative and forward-slashed, so the same contract reads
34
+ * identically on win32 / darwin / linux.
35
+ */
36
+ export declare function submissionPathFor(paths: SubmissionRoots, submissionId: string): string;
37
+ /**
38
+ * Resolve `candidate` against `base` and refuse anything that escapes it. The
39
+ * containment rule both host handoffs hand-rolled.
40
+ */
41
+ export declare function resolveContainedPath(base: string, candidate: string, label: string): string;
42
+ /** Repository-relative, forward-slashed form of a contained absolute path. */
43
+ export declare function repoRelativePath(root: string, absolutePath: string, label: string): string;
44
+ /**
45
+ * The shared run-id grammar. A run id becomes a directory segment, so it may
46
+ * carry nothing that could climb out of the artifacts tree.
47
+ */
48
+ export declare function assertSubmissionRunId(runId: string, label?: string): void;
49
+ //# sourceMappingURL=submissionIdentity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submissionIdentity.d.ts","sourceRoot":"","sources":["../../../src/shared/submission/submissionIdentity.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAOD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAMjE;AAUD,uDAAuD;AACvD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,MAAM,GACnB,MAAM,CAMR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,MAAM,CAWR;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,MAAM,CAOR;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAW,GAAG,IAAI,CAQ3E"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * The ONE tool-owned submission path rule.
3
+ *
4
+ * A host submission lands at `<submissionDir>/<sha256(submission_id)>.json` and
5
+ * nowhere else. The id is minted by the tool at step-emit time and the path is
6
+ * derived from it, so a host cannot invent, mistype, or re-render the name of a
7
+ * file the tool will read — a write to any other path is simply not read.
8
+ *
9
+ * Both draws share this module: the audit host handoff binds its work-item
10
+ * results through it, and the audit gate lanes bind their submissions through
11
+ * it. It replaces the two hand-rolled `resultPathFor` copies that carried the
12
+ * same rule in two places.
13
+ */
14
+ import { isAbsolute, join, relative, resolve } from "node:path";
15
+ import { hashContent } from "../hash.js";
16
+ import { stableStringify } from "../stableStringify.js";
17
+ /** Non-path-safe characters collapse so the id stays readable in a ledger. */
18
+ function slug(value) {
19
+ return value.replace(/[^A-Za-z0-9._-]+/gu, "-").replace(/^-+|-+$/gu, "");
20
+ }
21
+ /**
22
+ * Mint the submission id for one lane. DETERMINISTIC: the same kind + lane +
23
+ * run always yields the same id, so a re-emitted step re-declares the identical
24
+ * bound path and an already-satisfied lane is recognized on resume (K-of-N).
25
+ * No timestamp, no randomness — an id that changed per call would re-ask for
26
+ * work the host already delivered.
27
+ *
28
+ * The readable prefix is for humans reading the ledger; the trailing digest is
29
+ * what makes distinct lanes distinct.
30
+ */
31
+ export function mintSubmissionId(parts) {
32
+ const digest = hashContent(stableStringify({ kind: parts.kind, lane: parts.lane, run_id: parts.runId }), { length: 16 });
33
+ return `${slug(parts.kind)}.${slug(parts.lane)}.${digest}`;
34
+ }
35
+ /** The single filename rule: the sha256 of the id, nothing else. */
36
+ function submissionFilename(submissionId) {
37
+ if (typeof submissionId !== "string" || submissionId.length === 0) {
38
+ throw new Error("submission id must be a non-empty string");
39
+ }
40
+ return `${hashContent(submissionId)}.json`;
41
+ }
42
+ /** Absolute on-disk path of one submission payload. */
43
+ export function absoluteSubmissionPath(paths, submissionId) {
44
+ return join(resolve(paths.submissionDir), submissionFilename(submissionId));
45
+ }
46
+ /**
47
+ * The bound path as it is declared in a step contract and rendered to a host:
48
+ * repository-relative and forward-slashed, so the same contract reads
49
+ * identically on win32 / darwin / linux.
50
+ */
51
+ export function submissionPathFor(paths, submissionId) {
52
+ return repoRelativePath(paths.root, absoluteSubmissionPath(paths, submissionId), `submission path for ${submissionId}`);
53
+ }
54
+ /**
55
+ * Resolve `candidate` against `base` and refuse anything that escapes it. The
56
+ * containment rule both host handoffs hand-rolled.
57
+ */
58
+ export function resolveContainedPath(base, candidate, label) {
59
+ const absoluteBase = resolve(base);
60
+ const absoluteCandidate = isAbsolute(candidate)
61
+ ? resolve(candidate)
62
+ : resolve(absoluteBase, candidate);
63
+ const rel = relative(absoluteBase, absoluteCandidate);
64
+ const firstSegment = rel.split(/[\\/]/u)[0];
65
+ if (isAbsolute(rel) || firstSegment === "..") {
66
+ throw new Error(`${label} must remain beneath ${absoluteBase}`);
67
+ }
68
+ return absoluteCandidate;
69
+ }
70
+ /** Repository-relative, forward-slashed form of a contained absolute path. */
71
+ export function repoRelativePath(root, absolutePath, label) {
72
+ const contained = resolveContainedPath(root, absolutePath, label);
73
+ const rel = relative(resolve(root), contained).replaceAll("\\", "/");
74
+ if (rel.length === 0) {
75
+ throw new Error(`${label} must identify a path beneath the repository root`);
76
+ }
77
+ return rel;
78
+ }
79
+ /**
80
+ * The shared run-id grammar. A run id becomes a directory segment, so it may
81
+ * carry nothing that could climb out of the artifacts tree.
82
+ */
83
+ export function assertSubmissionRunId(runId, label = "run id") {
84
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u.test(runId) ||
85
+ runId === "." ||
86
+ runId === "..") {
87
+ throw new Error(`Invalid ${label}: ${JSON.stringify(runId)}`);
88
+ }
89
+ }
90
+ //# sourceMappingURL=submissionIdentity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submissionIdentity.js","sourceRoot":"","sources":["../../../src/shared/submission/submissionIdentity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { SubmissionIssueCode } from "./submissionClassifier.js";
2
+ export declare const SUBMISSION_LEDGER_EVENT_CONTRACT_VERSION: "submission-ledger-event/v1alpha1";
3
+ export declare const SUBMISSION_EVENT_KINDS: readonly ["expected", "accepted", "rejected", "recovered_by_hand"];
4
+ export type SubmissionEventKind = (typeof SUBMISSION_EVENT_KINDS)[number];
5
+ export interface SubmissionLedgerEvent {
6
+ readonly contract_version: typeof SUBMISSION_LEDGER_EVENT_CONTRACT_VERSION;
7
+ readonly run_id: string;
8
+ readonly submission_id: string;
9
+ readonly lane: string;
10
+ readonly kind: SubmissionEventKind;
11
+ readonly issue_code?: SubmissionIssueCode;
12
+ readonly message?: string;
13
+ /** ISO-8601. A faithful event record is allowed to say when. */
14
+ readonly recorded_at: string;
15
+ }
16
+ /** `<artifactsDir>/submissions/submission-ledger.jsonl`. */
17
+ export declare function submissionLedgerPath(artifactsDir: string): string;
18
+ /** Append one event. The parent directory is created on demand. */
19
+ export declare function appendSubmissionEvent(artifactsDir: string, event: SubmissionLedgerEvent): Promise<void>;
20
+ /**
21
+ * Read the ledger in arrival order. An absent ledger reads as empty — a run
22
+ * that never drifted has nothing to say — and a partially-written tail is
23
+ * skipped rather than thrown, because a bookkeeping record must never be able
24
+ * to fail the call it is recording.
25
+ *
26
+ * An event stamped with another release's contract version is skipped EXACTLY
27
+ * like a torn line, per event. The FILE stays a faithful historical record —
28
+ * nothing is rewritten or dropped from disk — but this function is a REPORTING
29
+ * surface, and its callers read `kind`, `issue_code` and `message` to decide
30
+ * whether a lane is outstanding because it was refused, and to dedupe against
31
+ * the last recorded event. Reinterpreting a foreign contract's event under
32
+ * those field semantics is how a run gets MISreported; skipping it degrades to
33
+ * the same shape as a ledger that had not recorded that event yet. The skip is
34
+ * per line, so the current release's events on either side of it still load.
35
+ */
36
+ export declare function readSubmissionLedger(artifactsDir: string): Promise<readonly SubmissionLedgerEvent[]>;
37
+ //# sourceMappingURL=submissionLedger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submissionLedger.d.ts","sourceRoot":"","sources":["../../../src/shared/submission/submissionLedger.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,eAAO,MAAM,wCAAwC,EACnD,kCAA2C,CAAC;AAE9C,eAAO,MAAM,sBAAsB,oEASzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,wCAAwC,CAAC;IAC3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,mEAAmE;AACnE,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAsB3C"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * The append-only record of what happened to each submission.
3
+ *
4
+ * A run that drifted and was repaired must stay distinguishable, after the
5
+ * fact, from a run that was clean on the first try. Nothing in the pipeline
6
+ * used to survive the call: an issue rode the returned summary into a prompt
7
+ * string and was gone. So "the host got it right 9 times out of 10" was a fact
8
+ * a human read off a transcript rather than one the artifacts could state.
9
+ *
10
+ * NDJSON, appended, never rewritten: ARRIVAL order is the file order and a
11
+ * rejection stays on the record after the later acceptance lands. This is the
12
+ * one place the stable-content-order rule deliberately does NOT apply — the
13
+ * ledger is a faithful EVENT record, not a derived artifact, and re-sorting it
14
+ * by timestamp or id would erase exactly the sequence it exists to preserve.
15
+ * Any derived summary a reporter renders from it may sort; the file may not.
16
+ */
17
+ import { join } from "node:path";
18
+ import { readFile } from "node:fs/promises";
19
+ import { appendNdjsonFile } from "../io/json.js";
20
+ import { discardOnSchemaVersionMismatch } from "../io/schemaVersion.js";
21
+ import { submissionsDir } from "../io/auditToolsPaths.js";
22
+ export const SUBMISSION_LEDGER_EVENT_CONTRACT_VERSION = "submission-ledger-event/v1alpha1";
23
+ export const SUBMISSION_EVENT_KINDS = [
24
+ /** The emission declared this lane owed a submission. */
25
+ "expected",
26
+ /** A valid submission arrived and was applied. */
27
+ "accepted",
28
+ /** A submission arrived and was refused (held, never discarded). */
29
+ "rejected",
30
+ /** An operator re-landed a submission by hand through the recovery lane. */
31
+ "recovered_by_hand",
32
+ ];
33
+ /** `<artifactsDir>/submissions/submission-ledger.jsonl`. */
34
+ export function submissionLedgerPath(artifactsDir) {
35
+ return join(submissionsDir(artifactsDir), "submission-ledger.jsonl");
36
+ }
37
+ /** Append one event. The parent directory is created on demand. */
38
+ export async function appendSubmissionEvent(artifactsDir, event) {
39
+ await appendNdjsonFile(submissionLedgerPath(artifactsDir), event);
40
+ }
41
+ /**
42
+ * Read the ledger in arrival order. An absent ledger reads as empty — a run
43
+ * that never drifted has nothing to say — and a partially-written tail is
44
+ * skipped rather than thrown, because a bookkeeping record must never be able
45
+ * to fail the call it is recording.
46
+ *
47
+ * An event stamped with another release's contract version is skipped EXACTLY
48
+ * like a torn line, per event. The FILE stays a faithful historical record —
49
+ * nothing is rewritten or dropped from disk — but this function is a REPORTING
50
+ * surface, and its callers read `kind`, `issue_code` and `message` to decide
51
+ * whether a lane is outstanding because it was refused, and to dedupe against
52
+ * the last recorded event. Reinterpreting a foreign contract's event under
53
+ * those field semantics is how a run gets MISreported; skipping it degrades to
54
+ * the same shape as a ledger that had not recorded that event yet. The skip is
55
+ * per line, so the current release's events on either side of it still load.
56
+ */
57
+ export async function readSubmissionLedger(artifactsDir) {
58
+ let content;
59
+ try {
60
+ content = await readFile(submissionLedgerPath(artifactsDir), "utf8");
61
+ }
62
+ catch {
63
+ return [];
64
+ }
65
+ const events = [];
66
+ for (const line of content.split(/\r?\n/u)) {
67
+ if (line.trim().length === 0)
68
+ continue;
69
+ try {
70
+ const event = discardOnSchemaVersionMismatch(JSON.parse(line), SUBMISSION_LEDGER_EVENT_CONTRACT_VERSION);
71
+ if (event !== undefined)
72
+ events.push(event);
73
+ }
74
+ catch {
75
+ // A torn final line (crash mid-append) drops; every complete event before
76
+ // it stays readable, which is the whole point of an append-only record.
77
+ }
78
+ }
79
+ return events;
80
+ }
81
+ //# sourceMappingURL=submissionLedger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submissionLedger.js","sourceRoot":"","sources":["../../../src/shared/submission/submissionLedger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,MAAM,CAAC,MAAM,wCAAwC,GACnD,kCAA2C,CAAC;AAE9C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,yDAAyD;IACzD,UAAU;IACV,kDAAkD;IAClD,UAAU;IACV,oEAAoE;IACpE,UAAU;IACV,4EAA4E;IAC5E,mBAAmB;CACX,CAAC;AAgBX,4DAA4D;AAC5D,MAAM,UAAU,oBAAoB,CAAC,YAAoB;IACvD,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,yBAAyB,CAAC,CAAC;AACvE,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,YAAoB,EACpB,KAA4B;IAE5B,MAAM,gBAAgB,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB;IAEpB,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACvC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,8BAA8B,CAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,EACzC,wCAAwC,CACzC,CAAC;YACF,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;YAC1E,wEAAwE;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -467,6 +467,22 @@ export declare const FindingSchema: z.ZodObject<{
467
467
  } | undefined;
468
468
  }>;
469
469
  export type Finding = z.infer<typeof FindingSchema>;
470
+ /**
471
+ * The finding contract as prompt lines, DERIVED from `FindingSchema` — the same
472
+ * schema result ingestion enforces, so the statement can never drift from the
473
+ * check.
474
+ *
475
+ * A dispatch prompt that says only "findings must satisfy the audit finding
476
+ * contract" leaves the host to remember or fetch the contract, and a measured
477
+ * lap lost four complete results to exactly that: findings missing the required
478
+ * per-finding `lens`, and `evidence`/`reproduction` submitted as a string where
479
+ * an array is required. Both classes are stated here.
480
+ *
481
+ * Memoized: the derivation is pure and the result is embedded in every work-item
482
+ * prompt (and therefore in every prompt hash), so it must be both cheap and
483
+ * byte-stable across a run.
484
+ */
485
+ export declare function findingContractPromptLines(): readonly string[];
470
486
  /** Report-level grouping of findings into parallelizable units of work. */
471
487
  export declare const WorkBlockSchema: z.ZodObject<{
472
488
  id: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"finding.d.ts","sourceRoot":"","sources":["../../../src/shared/types/finding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finding.d.ts","sourceRoot":"","sources":["../../../src/shared/types/finding.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  // strict projection below (see `workerFindingSchema`). There is no longer a
11
11
  // hand-written JSON schema to drift from these types.
12
12
  import { z } from "zod";
13
+ import { zodToJsonSchema } from "zod-to-json-schema";
13
14
  import { AnalyzerLeadProvenanceSchema } from "../analyzers/provenance.js";
14
15
  import { ContentCoherenceTraceSchema } from "../decompose/contentCoherence.js";
15
16
  /** Canonical finding severity vocabulary (most-severe-first). */
@@ -151,6 +152,65 @@ export const FindingSchema = z.object({
151
152
  */
152
153
  analyzer_provenance: AnalyzerLeadProvenanceSchema.optional().describe("Content-anchored identity of the analyzer lead this finding was born from. Copy it VERBATIM from the injected lead's provenance object; omit for findings not born from an analyzer lead."),
153
154
  });
155
+ function describeFindingField(node) {
156
+ if (node === undefined)
157
+ return "value";
158
+ if (Array.isArray(node.enum)) {
159
+ return `one of ${node.enum.map((value) => String(value)).join("|")}`;
160
+ }
161
+ if (node.type === "array") {
162
+ const item = node.items;
163
+ if (item?.type === "object") {
164
+ const required = [...(item.required ?? [])].sort();
165
+ return required.length > 0
166
+ ? `array of objects, each requiring ${required.join(" + ")}`
167
+ : "array of objects";
168
+ }
169
+ return typeof item?.type === "string" ? `array of ${item.type}s` : "array";
170
+ }
171
+ return typeof node.type === "string" ? node.type : "value";
172
+ }
173
+ let renderedFindingContract;
174
+ /**
175
+ * The finding contract as prompt lines, DERIVED from `FindingSchema` — the same
176
+ * schema result ingestion enforces, so the statement can never drift from the
177
+ * check.
178
+ *
179
+ * A dispatch prompt that says only "findings must satisfy the audit finding
180
+ * contract" leaves the host to remember or fetch the contract, and a measured
181
+ * lap lost four complete results to exactly that: findings missing the required
182
+ * per-finding `lens`, and `evidence`/`reproduction` submitted as a string where
183
+ * an array is required. Both classes are stated here.
184
+ *
185
+ * Memoized: the derivation is pure and the result is embedded in every work-item
186
+ * prompt (and therefore in every prompt hash), so it must be both cheap and
187
+ * byte-stable across a run.
188
+ */
189
+ export function findingContractPromptLines() {
190
+ if (renderedFindingContract !== undefined)
191
+ return renderedFindingContract;
192
+ const schema = zodToJsonSchema(FindingSchema, {
193
+ $refStrategy: "none",
194
+ target: "jsonSchema7",
195
+ });
196
+ const properties = schema.properties ?? {};
197
+ const required = [...(schema.required ?? [])].sort();
198
+ const arrayFields = Object.entries(properties)
199
+ .filter(([, node]) => node.type === "array")
200
+ .map(([name]) => name)
201
+ .sort();
202
+ renderedFindingContract = [
203
+ "Finding contract — every entry of `findings` must carry these required fields: " +
204
+ required
205
+ .map((name) => `${name} (${describeFindingField(properties[name])})`)
206
+ .join(", ") +
207
+ ".",
208
+ "These fields are JSON arrays whenever present, never a bare string or object: " +
209
+ arrayFields.join(", ") +
210
+ ". A finding that fails this contract rejects the whole submission.",
211
+ ];
212
+ return renderedFindingContract;
213
+ }
154
214
  /** Report-level grouping of findings into parallelizable units of work. */
155
215
  export const WorkBlockSchema = z.object({
156
216
  id: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"finding.js","sourceRoot":"","sources":["../../../src/shared/types/finding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"finding.js","sourceRoot":"","sources":["../../../src/shared/types/finding.ts"],"names":[],"mappings":"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"}
@@ -113,7 +113,5 @@ crossings, weak-packet gaps) is how extraction gaps are found and prioritized.
113
113
  ## Non-goals
114
114
 
115
115
  - repositioning the CLI as a peer product surface
116
- - making session config the normal way to redirect semantic review into a
117
- second execution backend
118
116
  - making backend implementation details outrank the conversation contract
119
117
  - tying packetization quality to one programming language
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "audit-tools",
3
- "version": "0.40.1",
3
+ "version": "0.41.1",
4
4
  "private": false,
5
5
  "license": "ISC",
6
6
  "description": "Provider-neutral code auditing and remediation workflows for arbitrary repositories.",