audit-tools 0.50.21 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit/cli/auditStep.d.ts +1 -1
- package/dist/audit/cli/charterExtractionPrompt.d.ts.map +1 -1
- package/dist/audit/cli/charterExtractionPrompt.js +14 -1
- package/dist/audit/cli/charterExtractionPrompt.js.map +1 -1
- package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
- package/dist/audit/cli/conceptualDispatch.js +30 -5
- package/dist/audit/cli/conceptualDispatch.js.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.js +10 -0
- package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
- package/dist/audit/cli/fanoutLanes.d.ts +7 -0
- package/dist/audit/cli/fanoutLanes.d.ts.map +1 -1
- package/dist/audit/cli/fanoutLanes.js +9 -1
- package/dist/audit/cli/fanoutLanes.js.map +1 -1
- package/dist/audit/cli/laneSubmissions.d.ts +38 -27
- package/dist/audit/cli/laneSubmissions.d.ts.map +1 -1
- package/dist/audit/cli/laneSubmissions.js +129 -2
- package/dist/audit/cli/laneSubmissions.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +27 -7
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +34 -4
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/sampleRunCommand.d.ts +2 -1
- package/dist/audit/cli/sampleRunCommand.d.ts.map +1 -1
- package/dist/audit/contracts/workerSchemas.d.ts +4 -4
- package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
- package/dist/audit/contracts/workerSchemas.js +12 -6
- package/dist/audit/contracts/workerSchemas.js.map +1 -1
- package/dist/audit/contracts/wrapperResponse.d.ts +7 -7
- package/dist/audit/contracts/wrapperResponse.d.ts.map +1 -1
- package/dist/audit/contracts/wrapperResponse.js +9 -1
- package/dist/audit/contracts/wrapperResponse.js.map +1 -1
- package/dist/audit/extractors/commentDecomposition.d.ts +28 -0
- package/dist/audit/extractors/commentDecomposition.d.ts.map +1 -1
- package/dist/audit/extractors/commentDecomposition.js +117 -0
- package/dist/audit/extractors/commentDecomposition.js.map +1 -1
- package/dist/audit/orchestrator/charterDeltaExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterDeltaExecutor.js +14 -0
- package/dist/audit/orchestrator/charterDeltaExecutor.js.map +1 -1
- package/dist/audit/orchestrator/charterExtractionExecutor.d.ts +16 -6
- package/dist/audit/orchestrator/charterExtractionExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterExtractionExecutor.js +127 -9
- package/dist/audit/orchestrator/charterExtractionExecutor.js.map +1 -1
- package/dist/audit/orchestrator/charterPacketArchive.d.ts +51 -0
- package/dist/audit/orchestrator/charterPacketArchive.d.ts.map +1 -0
- package/dist/audit/orchestrator/charterPacketArchive.js +173 -0
- package/dist/audit/orchestrator/charterPacketArchive.js.map +1 -0
- package/dist/audit/orchestrator/charterPackets.d.ts +31 -13
- package/dist/audit/orchestrator/charterPackets.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterPackets.js +433 -79
- package/dist/audit/orchestrator/charterPackets.js.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.d.ts +20 -4
- package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.js +89 -12
- package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
- package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.js +17 -1
- package/dist/audit/orchestrator/executorRunners.js.map +1 -1
- package/dist/audit/orchestrator/graphEnrichmentExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/graphEnrichmentExecutor.js +8 -1
- package/dist/audit/orchestrator/graphEnrichmentExecutor.js.map +1 -1
- package/dist/audit/orchestrator/state.d.ts.map +1 -1
- package/dist/audit/orchestrator/state.js +21 -14
- package/dist/audit/orchestrator/state.js.map +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.d.ts +8 -0
- package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/synthesisExecutors.js +10 -0
- package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -1
- package/dist/audit/reporting/synthesis.d.ts +42 -2
- package/dist/audit/reporting/synthesis.d.ts.map +1 -1
- package/dist/audit/reporting/synthesis.js +265 -12
- package/dist/audit/reporting/synthesis.js.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.d.ts.map +1 -1
- package/dist/audit/supervisor/operatorHandoff.js +14 -6
- package/dist/audit/supervisor/operatorHandoff.js.map +1 -1
- package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts.map +1 -1
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js +7 -0
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js.map +1 -1
- package/dist/audit/types/analyzerCapability.d.ts +35 -11
- package/dist/audit/types/analyzerCapability.d.ts.map +1 -1
- package/dist/audit/types/analyzerCapability.js +83 -5
- package/dist/audit/types/analyzerCapability.js.map +1 -1
- package/dist/audit/types/auditState.d.ts +8 -8
- package/dist/audit/types/charterRegister.d.ts +33 -3
- package/dist/audit/types/charterRegister.d.ts.map +1 -1
- package/dist/audit/types/charterRegister.js +11 -1
- package/dist/audit/types/charterRegister.js.map +1 -1
- package/dist/audit/types/conceptualAdjudication.d.ts +383 -4
- package/dist/audit/types/conceptualAdjudication.d.ts.map +1 -1
- package/dist/audit/types/conceptualAdjudication.js +109 -5
- package/dist/audit/types/conceptualAdjudication.js.map +1 -1
- package/dist/audit/types/designAssessment.d.ts +1 -1
- package/dist/audit/types/designAssessment.d.ts.map +1 -1
- package/dist/audit/types.d.ts +7 -2
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/remediate/intent/intentOrdering.d.ts.map +1 -1
- package/dist/remediate/intent/intentOrdering.js +29 -1
- package/dist/remediate/intent/intentOrdering.js.map +1 -1
- package/dist/remediate/phases/grounding.d.ts +12 -4
- package/dist/remediate/phases/grounding.d.ts.map +1 -1
- package/dist/remediate/phases/grounding.js +23 -60
- package/dist/remediate/phases/grounding.js.map +1 -1
- package/dist/remediate/state/types.d.ts +5 -0
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/shared/analyzers/types.d.ts +17 -6
- package/dist/shared/analyzers/types.d.ts.map +1 -1
- package/dist/shared/analyzers/types.js +6 -15
- package/dist/shared/analyzers/types.js.map +1 -1
- package/dist/shared/decompose/systemicChallenge.d.ts +5 -0
- package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -1
- package/dist/shared/engine/obligationEngine.d.ts +23 -6
- package/dist/shared/engine/obligationEngine.d.ts.map +1 -1
- package/dist/shared/engine/obligationEngine.js +38 -3
- package/dist/shared/engine/obligationEngine.js.map +1 -1
- package/dist/shared/findings/dedupe.d.ts +10 -0
- package/dist/shared/findings/dedupe.d.ts.map +1 -1
- package/dist/shared/findings/dedupe.js +15 -0
- package/dist/shared/findings/dedupe.js.map +1 -1
- package/dist/shared/index.d.ts +14 -6
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +12 -5
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/measurement/measuredOutcome.d.ts +61 -0
- package/dist/shared/measurement/measuredOutcome.d.ts.map +1 -0
- package/dist/shared/measurement/measuredOutcome.js +109 -0
- package/dist/shared/measurement/measuredOutcome.js.map +1 -0
- package/dist/shared/reporting/findingDisplay.d.ts +14 -2
- package/dist/shared/reporting/findingDisplay.d.ts.map +1 -1
- package/dist/shared/reporting/findingDisplay.js +29 -2
- package/dist/shared/reporting/findingDisplay.js.map +1 -1
- package/dist/shared/reporting/lensCoverage.d.ts +70 -0
- package/dist/shared/reporting/lensCoverage.d.ts.map +1 -0
- package/dist/shared/reporting/lensCoverage.js +108 -0
- package/dist/shared/reporting/lensCoverage.js.map +1 -0
- package/dist/shared/submission/submissionLedger.d.ts +24 -1
- package/dist/shared/submission/submissionLedger.d.ts.map +1 -1
- package/dist/shared/submission/submissionLedger.js +61 -0
- package/dist/shared/submission/submissionLedger.js.map +1 -1
- package/dist/shared/types/charterPacket.d.ts +155 -0
- package/dist/shared/types/charterPacket.d.ts.map +1 -0
- package/dist/shared/types/charterPacket.js +9 -0
- package/dist/shared/types/charterPacket.js.map +1 -0
- package/dist/shared/types/finding.d.ts +275 -40
- package/dist/shared/types/finding.d.ts.map +1 -1
- package/dist/shared/types/finding.js +87 -0
- package/dist/shared/types/finding.js.map +1 -1
- package/dist/shared/validation/citationGrounding.d.ts +115 -0
- package/dist/shared/validation/citationGrounding.d.ts.map +1 -0
- package/dist/shared/validation/citationGrounding.js +347 -0
- package/dist/shared/validation/citationGrounding.js.map +1 -0
- package/dist/shared/validation/findingsReport.d.ts.map +1 -1
- package/dist/shared/validation/findingsReport.js +62 -0
- package/dist/shared/validation/findingsReport.js.map +1 -1
- package/package.json +1 -1
- package/schemas/audit-code-v1alpha1.schema.json +2 -1
|
@@ -16,13 +16,9 @@
|
|
|
16
16
|
// packets and the staleness edge can never drift apart.
|
|
17
17
|
import { readFile } from "node:fs/promises";
|
|
18
18
|
import { join } from "node:path";
|
|
19
|
-
import { compareCodeUnits } from "audit-tools/shared";
|
|
19
|
+
import { CHARTER_PACKET_MANIFEST_SCHEMA_VERSION, EVIDENCE_CLASSES, compareCodeUnits, } from "audit-tools/shared";
|
|
20
20
|
import { isDocIntentFile } from "../decompose/buildStructureDecomposition.js";
|
|
21
|
-
import {
|
|
22
|
-
/** Per-file and per-packet content budgets (budget-context rule: bounded, never whole-repo). */
|
|
23
|
-
const PER_FILE_CHARS = 6_000;
|
|
24
|
-
const PACKET_TOTAL_CHARS = 150_000;
|
|
25
|
-
const MAX_READ_BYTES = 512 * 1024;
|
|
21
|
+
import { extractCommentLines, strippedSourceLines, } from "../extractors/commentDecomposition.js";
|
|
26
22
|
/**
|
|
27
23
|
* The charter layer's read-set over the repo: consensus MEMBER files (every
|
|
28
24
|
* channel is a projection of member content — comments for stated, organization
|
|
@@ -69,56 +65,212 @@ export function memberDependencyEdgeLines(bundle) {
|
|
|
69
65
|
return edges.sort((a, b) => compareCodeUnits(a, b));
|
|
70
66
|
}
|
|
71
67
|
/**
|
|
72
|
-
* Top-level declaration lines of a
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
68
|
+
* Top-level declaration lines of a masked source: non-blank lines at indent zero
|
|
69
|
+
* that do not merely close a scope. A deliberate language-neutral HEURISTIC (a
|
|
70
|
+
* lead, not a parse): in brace- and indent-family languages alike, a file's
|
|
71
|
+
* organization — imports, exports, signatures, class/type heads — sits at column
|
|
72
|
+
* 0 while implementation bodies sit indented. Good enough to show the structural
|
|
73
|
+
* channel what the file declares without leaking how it works.
|
|
74
|
+
*
|
|
75
|
+
* It takes NUMBERED lines and returns numbered lines, so a declaration keeps the
|
|
76
|
+
* line it actually occupies in its own file. Feeding it `stripCommentText` output
|
|
77
|
+
* would number every declaration against a collapsed view — a confidently wrong
|
|
78
|
+
* citation, which is worse than none.
|
|
78
79
|
*/
|
|
79
|
-
export function topLevelDeclarationLines(
|
|
80
|
-
const
|
|
81
|
-
for (const
|
|
82
|
-
if (
|
|
80
|
+
export function topLevelDeclarationLines(lines) {
|
|
81
|
+
const kept = [];
|
|
82
|
+
for (const entry of lines) {
|
|
83
|
+
if (entry.text.length === 0)
|
|
83
84
|
continue;
|
|
84
|
-
if (/^\s/.test(
|
|
85
|
+
if (/^\s/.test(entry.text))
|
|
85
86
|
continue;
|
|
86
|
-
if (/^[}\])`>,;]+\s*$/.test(
|
|
87
|
+
if (/^[}\])`>,;]+\s*$/.test(entry.text))
|
|
87
88
|
continue;
|
|
88
|
-
|
|
89
|
+
kept.push({
|
|
90
|
+
line: entry.line,
|
|
91
|
+
text: entry.text.length > 200 ? `${entry.text.slice(0, 200)}…` : entry.text,
|
|
92
|
+
});
|
|
89
93
|
}
|
|
90
|
-
return
|
|
94
|
+
return kept;
|
|
91
95
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
96
|
+
// ── Packet budget ────────────────────────────────────────────────────────────
|
|
97
|
+
//
|
|
98
|
+
// PACKET_TOTAL_CHARS is the hard ceiling and stays exactly what it was: bounded,
|
|
99
|
+
// never whole-repo. What changed is that it is no longer spent by whoever is
|
|
100
|
+
// rendered FIRST.
|
|
101
|
+
//
|
|
102
|
+
// The old builder walked one greedy budget over sections in doc-then-comment
|
|
103
|
+
// order and, on overflow, kept the heading only. On a 335-file repo the 95
|
|
104
|
+
// doc-intent files cost 459,907 chars against a 150,000 budget — 3.07x over
|
|
105
|
+
// before the comment loop was even reached — so 0 of 72 comment sections
|
|
106
|
+
// survived. That is an ordering artifact, not a size problem: reversing the order
|
|
107
|
+
// would starve docs instead. So the budget is now split by CLASS QUOTA and filled
|
|
108
|
+
// by a two-pass water-fill, which is what makes a coverage figure mean anything.
|
|
109
|
+
const PER_FILE_CHARS = 6_000;
|
|
110
|
+
const PACKET_TOTAL_CHARS = 150_000;
|
|
111
|
+
/**
|
|
112
|
+
* An excerpt below this is a stub, not evidence — too small to characterize a
|
|
113
|
+
* file's purpose. A candidate TRUNCATED below it is omitted by name instead, and
|
|
114
|
+
* its allocation returns to the pool. A file whose whole content is smaller than
|
|
115
|
+
* this is COMPLETE, not a stub, and is delivered.
|
|
116
|
+
*/
|
|
117
|
+
const MIN_EXCERPT_CHARS = 400;
|
|
118
|
+
const MAX_READ_BYTES = 512 * 1024;
|
|
119
|
+
/**
|
|
120
|
+
* Metadata is charged against the ceiling BEFORE the content quotas are derived,
|
|
121
|
+
* so the manifest and the per-line prefixes are paid for rather than silently
|
|
122
|
+
* pushing the packet over its own bound.
|
|
123
|
+
*
|
|
124
|
+
* The real overhead, measured rather than guessed: one pretty-printed manifest
|
|
125
|
+
* excerpt row runs ~150-200 chars (id, path, class, runs, counts, prefix width),
|
|
126
|
+
* so 176 candidates — the motivating repo's 95 docs + 81 members — cost ~30 KB,
|
|
127
|
+
* about 20% of the ceiling. The per-line `NNN| ` prefix is 5-8 chars against a
|
|
128
|
+
* mean source line of 38.7 chars measured over this repo's own `src/**\/*.ts`
|
|
129
|
+
* (101,830 lines / 3,944,266 chars), i.e. 13-21%, not the 12% a 7-char estimate
|
|
130
|
+
* suggested. Prefix cost is not estimated here at all — it is charged exactly,
|
|
131
|
+
* because allocation measures the RENDERED body, prefixes included.
|
|
132
|
+
*/
|
|
133
|
+
const MANIFEST_ROW_CHARS = 180;
|
|
134
|
+
/** Preamble, manifest envelope, headings and the omitted-list chrome. */
|
|
135
|
+
const PACKET_CHROME_CHARS = 1_600;
|
|
136
|
+
/** The uniform prefix width for an excerpt: widest line number, plus `"| "`. */
|
|
137
|
+
function prefixWidthFor(lines) {
|
|
138
|
+
const widest = lines.reduce((max, entry) => Math.max(max, entry.line), 0);
|
|
139
|
+
return String(widest).length + 2;
|
|
140
|
+
}
|
|
141
|
+
function renderExcerptBody(lines) {
|
|
142
|
+
const pad = prefixWidthFor(lines) - 2;
|
|
143
|
+
return lines
|
|
144
|
+
.map((entry) => `${String(entry.line).padStart(pad)}| ${entry.text}`)
|
|
145
|
+
.join("\n");
|
|
146
|
+
}
|
|
147
|
+
function headingFor(excerptId, candidate, runs) {
|
|
148
|
+
const label = CLASS_LABELS[candidate.evidence_class];
|
|
149
|
+
const spans = runs
|
|
150
|
+
.map((run) => (run.start === run.end ? `${run.start}` : `${run.start}-${run.end}`))
|
|
151
|
+
.join(", ");
|
|
152
|
+
return `[${excerptId}] ${label}: ${candidate.source_path} — lines ${spans}`;
|
|
153
|
+
}
|
|
154
|
+
const CLASS_LABELS = {
|
|
155
|
+
comment: "Comments extracted from",
|
|
156
|
+
declaration: "Top-level declarations (heuristic lead)",
|
|
157
|
+
doc: "Doc",
|
|
158
|
+
stripped_source: "Comment-stripped source",
|
|
159
|
+
};
|
|
160
|
+
/** Contiguous runs of TRUE line numbers over an ascending line list. */
|
|
161
|
+
function lineRunsOf(lines) {
|
|
162
|
+
const runs = [];
|
|
163
|
+
for (const entry of lines) {
|
|
164
|
+
const last = runs[runs.length - 1];
|
|
165
|
+
if (last && entry.line === last.end + 1)
|
|
166
|
+
last.end = entry.line;
|
|
167
|
+
else
|
|
168
|
+
runs.push({ start: entry.line, end: entry.line });
|
|
169
|
+
}
|
|
170
|
+
return runs;
|
|
171
|
+
}
|
|
172
|
+
/** The rendered cost of delivering these lines (prefixes included) plus a heading. */
|
|
173
|
+
function costOf(lines) {
|
|
174
|
+
if (lines.length === 0)
|
|
175
|
+
return 0;
|
|
176
|
+
return renderExcerptBody(lines).length + HEADING_OVERHEAD_CHARS;
|
|
177
|
+
}
|
|
178
|
+
const HEADING_OVERHEAD_CHARS = 90;
|
|
179
|
+
/** Take as many leading lines as fit in `cap`, measured on the RENDERED body. */
|
|
180
|
+
function fitLines(lines, cap) {
|
|
181
|
+
const whole = costOf(lines);
|
|
182
|
+
if (whole <= cap)
|
|
183
|
+
return { lines: [...lines], truncated: false, cost: whole };
|
|
184
|
+
const kept = [];
|
|
185
|
+
for (const entry of lines) {
|
|
186
|
+
const next = [...kept, entry];
|
|
187
|
+
if (costOf(next) > cap)
|
|
188
|
+
break;
|
|
189
|
+
kept.push(entry);
|
|
190
|
+
}
|
|
191
|
+
return { lines: kept, truncated: true, cost: costOf(kept) };
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Fill one evidence class's quota by a two-pass water-fill, in PATH order.
|
|
195
|
+
*
|
|
196
|
+
* Pass 1 gives every candidate `min(need, floor(B/N))`, so no candidate can
|
|
197
|
+
* consume the class before another is considered — the property the greedy loop
|
|
198
|
+
* lacked. Pass 2 spills the class's unspent remainder to candidates that still
|
|
199
|
+
* have need, in path order, up to `PER_FILE_CHARS`. A candidate left TRUNCATED
|
|
200
|
+
* below `MIN_EXCERPT_CHARS` is a stub: it is omitted by name (`total_budget`),
|
|
201
|
+
* its allocation returns to the pool, and the fill is recomputed — iterating to a
|
|
202
|
+
* fixpoint, which terminates because the active set strictly shrinks.
|
|
203
|
+
*
|
|
204
|
+
* Deterministic in (candidates, budget): no filesystem order, no completion
|
|
205
|
+
* order, no randomness.
|
|
206
|
+
*/
|
|
207
|
+
function allocateClass(candidates, budget) {
|
|
208
|
+
const omitted = [];
|
|
209
|
+
let active = [...candidates];
|
|
210
|
+
for (;;) {
|
|
211
|
+
if (active.length === 0 || budget <= 0)
|
|
212
|
+
break;
|
|
213
|
+
const share = Math.floor(budget / active.length);
|
|
214
|
+
const fills = active.map((candidate) => fitLines(candidate.lines, share));
|
|
215
|
+
let remainder = budget - fills.reduce((sum, fill) => sum + fill.cost, 0);
|
|
216
|
+
// Pass 2 — spill the unspent remainder in path order, clamped per file.
|
|
217
|
+
for (let i = 0; i < active.length && remainder > 0; i += 1) {
|
|
218
|
+
if (!fills[i].truncated)
|
|
219
|
+
continue;
|
|
220
|
+
const cap = Math.min(PER_FILE_CHARS, fills[i].cost + remainder);
|
|
221
|
+
if (cap <= fills[i].cost)
|
|
222
|
+
continue;
|
|
223
|
+
const refill = fitLines(active[i].lines, cap);
|
|
224
|
+
remainder -= refill.cost - fills[i].cost;
|
|
225
|
+
fills[i] = refill;
|
|
108
226
|
}
|
|
109
|
-
|
|
110
|
-
|
|
227
|
+
// A truncated stub is worse than a named omission; a small COMPLETE file is
|
|
228
|
+
// not a stub, so completeness is checked before size.
|
|
229
|
+
const stubs = new Set();
|
|
230
|
+
for (let i = 0; i < fills.length; i += 1) {
|
|
231
|
+
if (fills[i].truncated && fills[i].cost < MIN_EXCERPT_CHARS)
|
|
232
|
+
stubs.add(i);
|
|
233
|
+
}
|
|
234
|
+
if (stubs.size === 0) {
|
|
235
|
+
return {
|
|
236
|
+
delivered: active.map((candidate, i) => ({
|
|
237
|
+
candidate,
|
|
238
|
+
lines: fills[i].lines,
|
|
239
|
+
truncated: fills[i].truncated,
|
|
240
|
+
cost: fills[i].cost,
|
|
241
|
+
})),
|
|
242
|
+
omitted,
|
|
243
|
+
spent: fills.reduce((sum, fill) => sum + fill.cost, 0),
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
for (const i of [...stubs].sort((a, b) => a - b)) {
|
|
247
|
+
omitted.push({ path: active[i].source_path, reason: "total_budget" });
|
|
248
|
+
}
|
|
249
|
+
active = active.filter((_, i) => !stubs.has(i));
|
|
111
250
|
}
|
|
112
|
-
|
|
113
|
-
|
|
251
|
+
for (const candidate of active) {
|
|
252
|
+
omitted.push({ path: candidate.source_path, reason: "total_budget" });
|
|
114
253
|
}
|
|
115
|
-
return
|
|
254
|
+
return { delivered: [], omitted, spent: 0 };
|
|
116
255
|
}
|
|
117
|
-
/**
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
256
|
+
/**
|
|
257
|
+
* Split a content budget across the classes a kind emits, then SPILL what a class
|
|
258
|
+
* cannot use to the class that can. The `stated` channel splits 50/50 between
|
|
259
|
+
* docs and comments: neither class is a priori more valuable, and the 100/0
|
|
260
|
+
* outcome that starved every source comment was never chosen — it fell out of
|
|
261
|
+
* render order. Spill keeps the split from becoming a new cap: a repo with three
|
|
262
|
+
* docs still yields a full comment channel.
|
|
263
|
+
*/
|
|
264
|
+
function allocateStated(docs, comments, budget) {
|
|
265
|
+
// Spill tracks the REMAINING TOTAL, never a sum of halves: giving each class
|
|
266
|
+
// "its half plus the other's leftover" double-counts the shared pool, and a
|
|
267
|
+
// single oversized doc then swallowed 200k against a 148k budget.
|
|
268
|
+
const half = Math.floor(budget / 2);
|
|
269
|
+
const firstDoc = allocateClass(docs, half);
|
|
270
|
+
const comment = allocateClass(comments, budget - firstDoc.spent);
|
|
271
|
+
const remaining = budget - firstDoc.spent - comment.spent;
|
|
272
|
+
const doc = remaining > 0 ? allocateClass(docs, firstDoc.spent + remaining) : firstDoc;
|
|
273
|
+
return { doc, comment };
|
|
122
274
|
}
|
|
123
275
|
async function readRepoFile(root, path) {
|
|
124
276
|
try {
|
|
@@ -132,79 +284,144 @@ async function readRepoFile(root, path) {
|
|
|
132
284
|
}
|
|
133
285
|
}
|
|
134
286
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
|
|
287
|
+
* The machine header a lane copies its citations from, and — byte-identically —
|
|
288
|
+
* the lane asset the emit pass persists for the ingest pass. ONE function builds
|
|
289
|
+
* both, so what a lane reads and what a validator checks against cannot drift.
|
|
290
|
+
*/
|
|
291
|
+
export function buildCharterPacketManifest(kind, excerpts, coverage) {
|
|
292
|
+
return {
|
|
293
|
+
schema_version: CHARTER_PACKET_MANIFEST_SCHEMA_VERSION,
|
|
294
|
+
kind,
|
|
295
|
+
excerpts: excerpts.map((excerpt) => ({
|
|
296
|
+
excerpt_id: excerpt.excerpt_id,
|
|
297
|
+
source_path: excerpt.source_path,
|
|
298
|
+
evidence_class: excerpt.evidence_class,
|
|
299
|
+
line_runs: excerpt.line_runs,
|
|
300
|
+
line_count: excerpt.lines.length,
|
|
301
|
+
truncated: excerpt.truncated,
|
|
302
|
+
prefix_width: excerpt.prefix_width,
|
|
303
|
+
})),
|
|
304
|
+
coverage,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
function emptyPlan() {
|
|
308
|
+
return {
|
|
309
|
+
fixedSections: [],
|
|
310
|
+
candidatesByClass: new Map(),
|
|
311
|
+
preOmitted: new Map(),
|
|
312
|
+
namedByClass: new Map(),
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
function note(plan, evidenceClass, path, reason) {
|
|
316
|
+
const list = plan.preOmitted.get(evidenceClass) ?? [];
|
|
317
|
+
list.push({ path, reason });
|
|
318
|
+
plan.preOmitted.set(evidenceClass, list);
|
|
319
|
+
}
|
|
320
|
+
function nameCandidate(plan, evidenceClass) {
|
|
321
|
+
plan.namedByClass.set(evidenceClass, (plan.namedByClass.get(evidenceClass) ?? 0) + 1);
|
|
322
|
+
}
|
|
323
|
+
function addCandidate(plan, candidate) {
|
|
324
|
+
const list = plan.candidatesByClass.get(candidate.evidence_class) ?? [];
|
|
325
|
+
list.push(candidate);
|
|
326
|
+
plan.candidatesByClass.set(candidate.evidence_class, list);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Materialize ONE kind's evidence packet. Deterministic given the bundle + file
|
|
330
|
+
* contents: stable path order, class quotas, an order-independent allocator, and
|
|
331
|
+
* an explicit per-class coverage record in which
|
|
332
|
+
* `delivered + omitted.length === named` for every class — so a file that
|
|
333
|
+
* contributed nothing is NAMED rather than silently absent.
|
|
139
334
|
*/
|
|
140
335
|
export async function materializeCharterPacket(params) {
|
|
141
336
|
const { memberPaths, docPaths } = charterPacketReadSet(params.bundle);
|
|
142
|
-
const
|
|
337
|
+
const plan = emptyPlan();
|
|
143
338
|
if (params.kind === "stated") {
|
|
144
339
|
for (const path of docPaths) {
|
|
340
|
+
nameCandidate(plan, "doc");
|
|
145
341
|
const text = await readRepoFile(params.root, path);
|
|
146
342
|
if (text === undefined) {
|
|
147
|
-
|
|
343
|
+
note(plan, "doc", path, "unreadable_or_oversized");
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
const lines = numberedLinesOf(text);
|
|
347
|
+
if (lines.length === 0) {
|
|
348
|
+
note(plan, "doc", path, "no_content");
|
|
148
349
|
continue;
|
|
149
350
|
}
|
|
150
|
-
|
|
351
|
+
addCandidate(plan, { evidence_class: "doc", source_path: path, lines });
|
|
151
352
|
}
|
|
152
353
|
for (const path of memberPaths) {
|
|
354
|
+
nameCandidate(plan, "comment");
|
|
153
355
|
const text = await readRepoFile(params.root, path);
|
|
154
356
|
if (text === undefined) {
|
|
155
|
-
|
|
357
|
+
note(plan, "comment", path, "unreadable_or_oversized");
|
|
156
358
|
continue;
|
|
157
359
|
}
|
|
158
|
-
const
|
|
159
|
-
if (
|
|
360
|
+
const lines = extractCommentLines(text, path);
|
|
361
|
+
if (lines.length === 0) {
|
|
362
|
+
// Previously a bare `continue`: a member with no comments appeared in
|
|
363
|
+
// neither the delivered nor the omitted list, so `named` could not be
|
|
364
|
+
// reconciled and 9 of 81 members were invisible.
|
|
365
|
+
note(plan, "comment", path, "no_content");
|
|
160
366
|
continue;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
body: capContent(comments),
|
|
164
|
-
});
|
|
367
|
+
}
|
|
368
|
+
addCandidate(plan, { evidence_class: "comment", source_path: path, lines });
|
|
165
369
|
}
|
|
166
370
|
}
|
|
167
371
|
else if (params.kind === "structural") {
|
|
168
372
|
const manifestByPath = new Map((params.bundle.repo_manifest?.files ?? []).map((f) => [f.path, f]));
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
373
|
+
plan.fixedSections.push({
|
|
374
|
+
heading: "File tree (members)",
|
|
375
|
+
body: memberPaths
|
|
376
|
+
.map((path) => {
|
|
377
|
+
const entry = manifestByPath.get(path);
|
|
378
|
+
return entry ? `${path} (${entry.size_bytes} bytes)` : path;
|
|
379
|
+
})
|
|
380
|
+
.join("\n"),
|
|
381
|
+
});
|
|
176
382
|
const edgeLines = memberDependencyEdgeLines(params.bundle);
|
|
177
383
|
if (edgeLines.length > 0) {
|
|
178
|
-
|
|
384
|
+
plan.fixedSections.push({
|
|
179
385
|
heading: "Dependency edges among members",
|
|
180
386
|
body: edgeLines.join("\n"),
|
|
181
387
|
});
|
|
182
388
|
}
|
|
183
389
|
for (const path of memberPaths) {
|
|
390
|
+
nameCandidate(plan, "declaration");
|
|
184
391
|
const text = await readRepoFile(params.root, path);
|
|
185
392
|
if (text === undefined) {
|
|
186
|
-
|
|
393
|
+
note(plan, "declaration", path, "unreadable_or_oversized");
|
|
187
394
|
continue;
|
|
188
395
|
}
|
|
189
|
-
const
|
|
190
|
-
if (
|
|
396
|
+
const lines = topLevelDeclarationLines(strippedSourceLines(text, path));
|
|
397
|
+
if (lines.length === 0) {
|
|
398
|
+
note(plan, "declaration", path, "no_content");
|
|
191
399
|
continue;
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
400
|
+
}
|
|
401
|
+
addCandidate(plan, {
|
|
402
|
+
evidence_class: "declaration",
|
|
403
|
+
source_path: path,
|
|
404
|
+
lines,
|
|
195
405
|
});
|
|
196
406
|
}
|
|
197
407
|
}
|
|
198
408
|
else if (params.kind === "revealed") {
|
|
199
409
|
for (const path of memberPaths) {
|
|
410
|
+
nameCandidate(plan, "stripped_source");
|
|
200
411
|
const text = await readRepoFile(params.root, path);
|
|
201
412
|
if (text === undefined) {
|
|
202
|
-
|
|
413
|
+
note(plan, "stripped_source", path, "unreadable_or_oversized");
|
|
203
414
|
continue;
|
|
204
415
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
416
|
+
const lines = strippedSourceLines(text, path);
|
|
417
|
+
if (lines.length === 0) {
|
|
418
|
+
note(plan, "stripped_source", path, "no_content");
|
|
419
|
+
continue;
|
|
420
|
+
}
|
|
421
|
+
addCandidate(plan, {
|
|
422
|
+
evidence_class: "stripped_source",
|
|
423
|
+
source_path: path,
|
|
424
|
+
lines,
|
|
208
425
|
});
|
|
209
426
|
}
|
|
210
427
|
}
|
|
@@ -213,6 +430,143 @@ export async function materializeCharterPacket(params) {
|
|
|
213
430
|
// materializing a packet for it is a caller bug, surfaced loudly.
|
|
214
431
|
throw new Error(`no evidence packet exists for charter kind '${params.kind}' — 'true' is nominated downstream by the delta miner, never extracted`);
|
|
215
432
|
}
|
|
216
|
-
|
|
433
|
+
// Charge the metadata BEFORE deriving the content quotas, so the manifest and
|
|
434
|
+
// the fixed sections are paid for rather than pushing the packet over its bound.
|
|
435
|
+
const candidateCount = [...plan.candidatesByClass.values()].reduce((sum, list) => sum + list.length, 0);
|
|
436
|
+
const fixedCost = plan.fixedSections.reduce((sum, section) => sum + section.heading.length + section.body.length + 8, 0);
|
|
437
|
+
const estimatedOverhead = PACKET_CHROME_CHARS + candidateCount * MANIFEST_ROW_CHARS + fixedCost;
|
|
438
|
+
// MANIFEST_ROW_CHARS is an ESTIMATE, and an estimate is not a bound: an excerpt
|
|
439
|
+
// with many scattered runs (comment blocks through a long file) costs more than
|
|
440
|
+
// a typical row. So the first layout is measured, and if the real metadata
|
|
441
|
+
// pushed the packet over its ceiling the layout is recomputed ONCE against the
|
|
442
|
+
// measured overhead. It converges: a smaller content budget delivers no more
|
|
443
|
+
// lines, so no more runs, so no larger manifest.
|
|
444
|
+
let layout = layoutPacket(params.kind, plan, PACKET_TOTAL_CHARS - estimatedOverhead);
|
|
445
|
+
let markdown = renderPacket(params.kind, plan.fixedSections, layout.excerpts, layout.coverage);
|
|
446
|
+
if (markdown.length > PACKET_TOTAL_CHARS) {
|
|
447
|
+
const measuredOverhead = markdown.length - layout.coverage.spent_chars;
|
|
448
|
+
layout = layoutPacket(params.kind, plan, PACKET_TOTAL_CHARS - measuredOverhead);
|
|
449
|
+
markdown = renderPacket(params.kind, plan.fixedSections, layout.excerpts, layout.coverage);
|
|
450
|
+
}
|
|
451
|
+
return { markdown, coverage: layout.coverage, excerpts: layout.excerpts };
|
|
452
|
+
}
|
|
453
|
+
/** Allocate, number, and measure one packet against a content budget. */
|
|
454
|
+
function layoutPacket(kind, plan, contentBudget) {
|
|
455
|
+
const budget = Math.max(0, contentBudget);
|
|
456
|
+
const allocations = new Map();
|
|
457
|
+
if (kind === "stated") {
|
|
458
|
+
const { doc, comment } = allocateStated(plan.candidatesByClass.get("doc") ?? [], plan.candidatesByClass.get("comment") ?? [], budget);
|
|
459
|
+
allocations.set("doc", doc);
|
|
460
|
+
allocations.set("comment", comment);
|
|
461
|
+
}
|
|
462
|
+
else {
|
|
463
|
+
for (const [evidenceClass, candidates] of plan.candidatesByClass) {
|
|
464
|
+
allocations.set(evidenceClass, allocateClass(candidates, budget));
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
// Emission order = class order within the packet, path order within a class.
|
|
468
|
+
const emissionOrder = kind === "stated" ? ["doc", "comment"] : [...plan.candidatesByClass.keys()];
|
|
469
|
+
const excerpts = [];
|
|
470
|
+
for (const evidenceClass of emissionOrder) {
|
|
471
|
+
for (const allocated of allocations.get(evidenceClass)?.delivered ?? []) {
|
|
472
|
+
if (allocated.lines.length === 0)
|
|
473
|
+
continue;
|
|
474
|
+
excerpts.push({
|
|
475
|
+
excerpt_id: `E${String(excerpts.length + 1).padStart(2, "0")}`,
|
|
476
|
+
evidence_class: evidenceClass,
|
|
477
|
+
source_path: allocated.candidate.source_path,
|
|
478
|
+
line_runs: lineRunsOf(allocated.lines),
|
|
479
|
+
lines: allocated.lines.map((entry) => ({
|
|
480
|
+
line: entry.line,
|
|
481
|
+
text: entry.text,
|
|
482
|
+
})),
|
|
483
|
+
truncated: allocated.truncated,
|
|
484
|
+
prefix_width: prefixWidthFor(allocated.lines),
|
|
485
|
+
});
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
const classes = [];
|
|
489
|
+
for (const evidenceClass of EVIDENCE_CLASSES) {
|
|
490
|
+
const named = plan.namedByClass.get(evidenceClass);
|
|
491
|
+
if (named === undefined)
|
|
492
|
+
continue;
|
|
493
|
+
const allocation = allocations.get(evidenceClass);
|
|
494
|
+
const delivered = (allocation?.delivered ?? []).filter((entry) => entry.lines.length > 0);
|
|
495
|
+
const omitted = [
|
|
496
|
+
...(plan.preOmitted.get(evidenceClass) ?? []),
|
|
497
|
+
...(allocation?.omitted ?? []),
|
|
498
|
+
].sort((a, b) => compareCodeUnits(a.path, b.path));
|
|
499
|
+
classes.push({
|
|
500
|
+
evidence_class: evidenceClass,
|
|
501
|
+
named,
|
|
502
|
+
delivered: delivered.length,
|
|
503
|
+
truncated: delivered.filter((entry) => entry.truncated).length,
|
|
504
|
+
omitted,
|
|
505
|
+
});
|
|
506
|
+
}
|
|
507
|
+
return {
|
|
508
|
+
excerpts,
|
|
509
|
+
coverage: {
|
|
510
|
+
kind,
|
|
511
|
+
classes,
|
|
512
|
+
budget_chars: budget,
|
|
513
|
+
spent_chars: [...allocations.values()].reduce((sum, allocation) => sum + allocation.spent, 0),
|
|
514
|
+
},
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
/** Every non-empty line of a file, with its TRUE 1-based number. */
|
|
518
|
+
function numberedLinesOf(text) {
|
|
519
|
+
const out = [];
|
|
520
|
+
const lines = text.replace(/\r/g, "").split("\n");
|
|
521
|
+
for (let i = 0; i < lines.length; i += 1) {
|
|
522
|
+
const line = lines[i];
|
|
523
|
+
if (line.trim().length === 0)
|
|
524
|
+
continue;
|
|
525
|
+
out.push({ line: i + 1, text: line });
|
|
526
|
+
}
|
|
527
|
+
return out;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Render the packet: a machine manifest a lane copies citations OUT of, then the
|
|
531
|
+
* human excerpts, every content line carrying its TRUE source line number.
|
|
532
|
+
*
|
|
533
|
+
* The two are orthogonal and both are load-bearing. The per-line prefix is what
|
|
534
|
+
* lets a lane cite a SPECIFIC line without counting; the run header on each
|
|
535
|
+
* heading is what tells it which ranges are legitimate to name at all.
|
|
536
|
+
*/
|
|
537
|
+
function renderPacket(kind, fixedSections, excerpts, coverage) {
|
|
538
|
+
const lines = [
|
|
539
|
+
`# Charter evidence packet — \`${kind}\` channel`,
|
|
540
|
+
"",
|
|
541
|
+
"This packet is your ONLY input. It was materialized by the tool to contain",
|
|
542
|
+
"exactly this channel's evidence; do not read repository files directly.",
|
|
543
|
+
"",
|
|
544
|
+
"Every content line below is prefixed with its TRUE line number in its own",
|
|
545
|
+
"source file, and the manifest names the exact line runs delivered. A correct",
|
|
546
|
+
"citation is COPIED from here — never counted, inferred, or reconstructed.",
|
|
547
|
+
"",
|
|
548
|
+
"## Provenance manifest",
|
|
549
|
+
"",
|
|
550
|
+
"```json",
|
|
551
|
+
JSON.stringify(buildCharterPacketManifest(kind, excerpts, coverage), null, 2),
|
|
552
|
+
"```",
|
|
553
|
+
"",
|
|
554
|
+
];
|
|
555
|
+
for (const section of fixedSections) {
|
|
556
|
+
lines.push(`## ${section.heading}`, "", section.body, "");
|
|
557
|
+
}
|
|
558
|
+
for (const excerpt of excerpts) {
|
|
559
|
+
lines.push(`## ${headingFor(excerpt.excerpt_id, { evidence_class: excerpt.evidence_class, source_path: excerpt.source_path, lines: [] }, excerpt.line_runs)}`, "", renderExcerptBody(excerpt.lines), "");
|
|
560
|
+
}
|
|
561
|
+
const omitted = coverage.classes.flatMap((entry) => entry.omitted.map((row) => `${row.path} (${OMISSION_PROSE[row.reason]})`));
|
|
562
|
+
if (omitted.length > 0) {
|
|
563
|
+
lines.push("## Omitted (content not shown, paths listed for honesty)", "", ...omitted.map((o) => `- ${o}`), "");
|
|
564
|
+
}
|
|
565
|
+
return lines.join("\n");
|
|
217
566
|
}
|
|
567
|
+
const OMISSION_PROSE = {
|
|
568
|
+
total_budget: "no room left in this channel's budget",
|
|
569
|
+
unreadable_or_oversized: "unreadable or oversized",
|
|
570
|
+
no_content: "no content of this evidence class in the file",
|
|
571
|
+
};
|
|
218
572
|
//# sourceMappingURL=charterPackets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charterPackets.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/charterPackets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"charterPackets.js","sourceRoot":"","sources":["../../../src/audit/orchestrator/charterPackets.ts"],"names":[],"mappings":"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"}
|