audit-tools 0.42.0 → 0.43.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/dispatch/merge-results.mjs +229 -140
- package/dispatch/validate-result.mjs +98 -40
- package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
- package/dist/audit/cli/conceptualDispatch.js +35 -3
- package/dist/audit/cli/conceptualDispatch.js.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts +9 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.js +94 -38
- package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts +64 -0
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +877 -783
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts +12 -0
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +34 -1
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/steps.d.ts +2 -2
- package/dist/audit/extractors/graph.d.ts +28 -2
- package/dist/audit/extractors/graph.d.ts.map +1 -1
- package/dist/audit/extractors/graph.js +122 -11
- package/dist/audit/extractors/graph.js.map +1 -1
- package/dist/audit/extractors/graphRoutes.d.ts +8 -0
- package/dist/audit/extractors/graphRoutes.d.ts.map +1 -1
- package/dist/audit/extractors/graphRoutes.js +71 -4
- package/dist/audit/extractors/graphRoutes.js.map +1 -1
- package/dist/audit/io/artifacts.d.ts +55 -0
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +189 -12
- package/dist/audit/io/artifacts.js.map +1 -1
- package/dist/audit/io/toolingManifest.d.ts +11 -0
- package/dist/audit/io/toolingManifest.d.ts.map +1 -1
- package/dist/audit/io/toolingManifest.js +13 -3
- package/dist/audit/io/toolingManifest.js.map +1 -1
- package/dist/audit/orchestrator/advance.d.ts +64 -0
- package/dist/audit/orchestrator/advance.d.ts.map +1 -1
- package/dist/audit/orchestrator/advance.js +191 -57
- package/dist/audit/orchestrator/advance.js.map +1 -1
- package/dist/audit/orchestrator/charterClarificationExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterClarificationExecutor.js +55 -21
- package/dist/audit/orchestrator/charterClarificationExecutor.js.map +1 -1
- package/dist/audit/orchestrator/flowCoverage.d.ts.map +1 -1
- package/dist/audit/orchestrator/flowCoverage.js +7 -10
- package/dist/audit/orchestrator/flowCoverage.js.map +1 -1
- package/dist/audit/orchestrator/flowPlanning.d.ts +54 -1
- package/dist/audit/orchestrator/flowPlanning.d.ts.map +1 -1
- package/dist/audit/orchestrator/flowPlanning.js +77 -18
- package/dist/audit/orchestrator/flowPlanning.js.map +1 -1
- package/dist/audit/orchestrator/flowRequeue.d.ts.map +1 -1
- package/dist/audit/orchestrator/flowRequeue.js +6 -10
- package/dist/audit/orchestrator/flowRequeue.js.map +1 -1
- package/dist/audit/orchestrator/partitionTaskGraph.d.ts.map +1 -1
- package/dist/audit/orchestrator/partitionTaskGraph.js +2 -2
- package/dist/audit/orchestrator/partitionTaskGraph.js.map +1 -1
- package/dist/audit/orchestrator/requeueFold.d.ts.map +1 -1
- package/dist/audit/orchestrator/requeueFold.js +18 -5
- package/dist/audit/orchestrator/requeueFold.js.map +1 -1
- package/dist/audit/orchestrator/staleness.d.ts +24 -1
- package/dist/audit/orchestrator/staleness.d.ts.map +1 -1
- package/dist/audit/orchestrator/staleness.js +147 -16
- package/dist/audit/orchestrator/staleness.js.map +1 -1
- package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts +26 -0
- package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/syntaxResolutionExecutor.js +97 -12
- package/dist/audit/orchestrator/syntaxResolutionExecutor.js.map +1 -1
- package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -1
- package/dist/audit/orchestrator/taskBuilder.js +111 -21
- package/dist/audit/orchestrator/taskBuilder.js.map +1 -1
- package/dist/audit/orchestrator/trivialAudit.d.ts +17 -1
- package/dist/audit/orchestrator/trivialAudit.d.ts.map +1 -1
- package/dist/audit/orchestrator/trivialAudit.js +31 -4
- package/dist/audit/orchestrator/trivialAudit.js.map +1 -1
- package/dist/audit/reporting/synthesis.d.ts.map +1 -1
- package/dist/audit/reporting/synthesis.js +2 -3
- package/dist/audit/reporting/synthesis.js.map +1 -1
- package/dist/audit/reporting/workBlocks.d.ts.map +1 -1
- package/dist/audit/reporting/workBlocks.js +4 -38
- package/dist/audit/reporting/workBlocks.js.map +1 -1
- package/dist/audit/types/analyzerCapability.d.ts +6 -6
- package/dist/audit/types/charterRegister.d.ts +30 -12
- package/dist/audit/types/charterRegister.d.ts.map +1 -1
- package/dist/audit/types/charterRegister.js +22 -9
- package/dist/audit/types/charterRegister.js.map +1 -1
- package/dist/audit/validation/anchorGrounding.d.ts.map +1 -1
- package/dist/audit/validation/anchorGrounding.js +17 -0
- package/dist/audit/validation/anchorGrounding.js.map +1 -1
- package/dist/audit/validation/auditResults.d.ts +17 -0
- package/dist/audit/validation/auditResults.d.ts.map +1 -1
- package/dist/audit/validation/auditResults.js +50 -17
- package/dist/audit/validation/auditResults.js.map +1 -1
- package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts +48 -0
- package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js +128 -0
- package/dist/remediate/contractPipeline/cyclicSeamResolution.js.map +1 -1
- package/dist/remediate/contractPipeline/derive.d.ts +8 -5
- package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/derive.js +8 -16
- package/dist/remediate/contractPipeline/derive.js.map +1 -1
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +43 -2
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/intent/intentOrdering.d.ts +13 -5
- package/dist/remediate/intent/intentOrdering.d.ts.map +1 -1
- package/dist/remediate/intent/intentOrdering.js +56 -25
- package/dist/remediate/intent/intentOrdering.js.map +1 -1
- package/dist/remediate/phases/close.d.ts +57 -2
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +260 -36
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/state/disposition.d.ts +26 -4
- package/dist/remediate/state/disposition.d.ts.map +1 -1
- package/dist/remediate/state/itemStatus.d.ts +33 -6
- package/dist/remediate/state/itemStatus.d.ts.map +1 -1
- package/dist/remediate/state/itemStatus.js +154 -39
- package/dist/remediate/state/itemStatus.js.map +1 -1
- package/dist/remediate/state/types.d.ts +41 -2
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +287 -15
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +1664 -987
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts +137 -2
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.js +713 -59
- package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
- package/dist/remediate/steps/finalGate.d.ts +136 -37
- package/dist/remediate/steps/finalGate.d.ts.map +1 -1
- package/dist/remediate/steps/finalGate.js +120 -86
- package/dist/remediate/steps/finalGate.js.map +1 -1
- package/dist/remediate/steps/gateCommands.d.ts +8 -0
- package/dist/remediate/steps/gateCommands.d.ts.map +1 -1
- package/dist/remediate/steps/gateCommands.js +40 -11
- package/dist/remediate/steps/gateCommands.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts +96 -5
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +668 -147
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/types.d.ts +4 -1
- package/dist/remediate/steps/types.d.ts.map +1 -1
- package/dist/remediate/steps/types.js +10 -0
- package/dist/remediate/steps/types.js.map +1 -1
- package/dist/remediate/validation/artifacts.d.ts +20 -0
- package/dist/remediate/validation/artifacts.d.ts.map +1 -1
- package/dist/remediate/validation/artifacts.js +239 -13
- package/dist/remediate/validation/artifacts.js.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.d.ts +58 -0
- package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.js +167 -43
- package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
- package/dist/shared/analyzers/acquisitionEngine.d.ts +72 -25
- package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -1
- package/dist/shared/analyzers/acquisitionEngine.js +149 -15
- package/dist/shared/analyzers/acquisitionEngine.js.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.d.ts +27 -2
- package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -1
- package/dist/shared/analyzers/binaryAcquisition.js +149 -43
- package/dist/shared/analyzers/binaryAcquisition.js.map +1 -1
- package/dist/shared/analyzers/candidates.d.ts +9 -8
- package/dist/shared/analyzers/candidates.d.ts.map +1 -1
- package/dist/shared/analyzers/candidates.js +96 -64
- package/dist/shared/analyzers/candidates.js.map +1 -1
- package/dist/shared/analyzers/normalizeExternal.d.ts +40 -12
- package/dist/shared/analyzers/normalizeExternal.d.ts.map +1 -1
- package/dist/shared/analyzers/normalizeExternal.js +74 -18
- package/dist/shared/analyzers/normalizeExternal.js.map +1 -1
- package/dist/shared/analyzers/rubocop.d.ts +14 -13
- package/dist/shared/analyzers/rubocop.d.ts.map +1 -1
- package/dist/shared/analyzers/rubocop.js +29 -6
- package/dist/shared/analyzers/rubocop.js.map +1 -1
- package/dist/shared/analyzers/types.d.ts +196 -13
- package/dist/shared/analyzers/types.d.ts.map +1 -1
- package/dist/shared/analyzers/types.js +122 -9
- package/dist/shared/analyzers/types.js.map +1 -1
- package/dist/shared/decompose/charterClarification.d.ts +12 -1
- package/dist/shared/decompose/charterClarification.d.ts.map +1 -1
- package/dist/shared/decompose/charterClarification.js +11 -4
- package/dist/shared/decompose/charterClarification.js.map +1 -1
- package/dist/shared/decompose/charterExtraction.d.ts +20 -10
- package/dist/shared/decompose/charterExtraction.d.ts.map +1 -1
- package/dist/shared/decompose/charterExtraction.js +52 -23
- package/dist/shared/decompose/charterExtraction.js.map +1 -1
- package/dist/shared/decompose/contentCoherence.d.ts +43 -2
- package/dist/shared/decompose/contentCoherence.d.ts.map +1 -1
- package/dist/shared/decompose/contentCoherence.js +109 -5
- package/dist/shared/decompose/contentCoherence.js.map +1 -1
- package/dist/shared/decompose/modularity.d.ts +17 -0
- package/dist/shared/decompose/modularity.d.ts.map +1 -1
- package/dist/shared/decompose/modularity.js +78 -3
- package/dist/shared/decompose/modularity.js.map +1 -1
- package/dist/shared/decompose/workBlockSeams.d.ts +45 -0
- package/dist/shared/decompose/workBlockSeams.d.ts.map +1 -0
- package/dist/shared/decompose/workBlockSeams.js +82 -0
- package/dist/shared/decompose/workBlockSeams.js.map +1 -0
- package/dist/shared/index.d.ts +4 -3
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +4 -2
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/intent/freeFormIntentInterpreter.d.ts +12 -2
- package/dist/shared/intent/freeFormIntentInterpreter.d.ts.map +1 -1
- package/dist/shared/intent/freeFormIntentInterpreter.js +27 -22
- package/dist/shared/intent/freeFormIntentInterpreter.js.map +1 -1
- package/dist/shared/intent/pathScope.d.ts +12 -1
- package/dist/shared/intent/pathScope.d.ts.map +1 -1
- package/dist/shared/intent/pathScope.js +56 -19
- package/dist/shared/intent/pathScope.js.map +1 -1
- package/dist/shared/intent/sharedIntentData.d.ts +19 -1
- package/dist/shared/intent/sharedIntentData.d.ts.map +1 -1
- package/dist/shared/intent/sharedIntentData.js +33 -8
- package/dist/shared/intent/sharedIntentData.js.map +1 -1
- package/dist/shared/io/fileLock.d.ts +12 -0
- package/dist/shared/io/fileLock.d.ts.map +1 -1
- package/dist/shared/io/fileLock.js +48 -5
- package/dist/shared/io/fileLock.js.map +1 -1
- package/dist/shared/io/json.d.ts +13 -0
- package/dist/shared/io/json.d.ts.map +1 -1
- package/dist/shared/io/json.js +19 -1
- package/dist/shared/io/json.js.map +1 -1
- package/dist/shared/reporting/auditDeliverable.d.ts.map +1 -1
- package/dist/shared/reporting/auditDeliverable.js +8 -3
- package/dist/shared/reporting/auditDeliverable.js.map +1 -1
- package/dist/shared/steps/stepEmissionScaffold.d.ts +69 -0
- package/dist/shared/steps/stepEmissionScaffold.d.ts.map +1 -0
- package/dist/shared/steps/stepEmissionScaffold.js +83 -0
- package/dist/shared/steps/stepEmissionScaffold.js.map +1 -0
- package/dist/shared/submission/handRecovery.d.ts.map +1 -1
- package/dist/shared/submission/handRecovery.js +69 -4
- package/dist/shared/submission/handRecovery.js.map +1 -1
- package/dist/shared/submission/submissionIdentity.d.ts +10 -1
- package/dist/shared/submission/submissionIdentity.d.ts.map +1 -1
- package/dist/shared/submission/submissionIdentity.js +12 -3
- package/dist/shared/submission/submissionIdentity.js.map +1 -1
- package/dist/shared/submission/submissionLedger.d.ts +43 -2
- package/dist/shared/submission/submissionLedger.d.ts.map +1 -1
- package/dist/shared/submission/submissionLedger.js +50 -7
- package/dist/shared/submission/submissionLedger.js.map +1 -1
- package/dist/shared/tooling/allowlistedExec.d.ts +9 -0
- package/dist/shared/tooling/allowlistedExec.d.ts.map +1 -1
- package/dist/shared/tooling/allowlistedExec.js +19 -2
- package/dist/shared/tooling/allowlistedExec.js.map +1 -1
- package/dist/shared/types/charter.d.ts +24 -0
- package/dist/shared/types/charter.d.ts.map +1 -1
- package/dist/shared/types/charter.js +9 -0
- package/dist/shared/types/charter.js.map +1 -1
- package/dist/shared/types/finding.d.ts +105 -53
- package/dist/shared/types/finding.d.ts.map +1 -1
- package/dist/shared/types/finding.js +38 -11
- package/dist/shared/types/finding.js.map +1 -1
- package/dist/shared/types/remediationOutcome.d.ts +282 -9
- package/dist/shared/types/remediationOutcome.d.ts.map +1 -1
- package/dist/shared/types/remediationOutcome.js +174 -1
- package/dist/shared/types/remediationOutcome.js.map +1 -1
- package/dist/shared/validation/findingsReport.d.ts.map +1 -1
- package/dist/shared/validation/findingsReport.js +19 -1
- package/dist/shared/validation/findingsReport.js.map +1 -1
- package/package.json +2 -1
- package/remediate-code.mjs +15 -0
- package/wrapper/remediate-code-wrapper-install-hosts.mjs +45 -4
- package/wrapper/remediate-code-wrapper-install-renderers.mjs +12 -2
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* those components.
|
|
7
7
|
*/
|
|
8
8
|
import { z } from "zod";
|
|
9
|
+
import { louvain, modularityOf } from "./modularity.js";
|
|
9
10
|
export const CONTENT_COHERENCE_SCORES = Object.freeze({
|
|
10
11
|
call_import_reference_adjacency: 70,
|
|
11
12
|
same_directory: 10,
|
|
@@ -15,6 +16,32 @@ export const CONTENT_COHERENCE_SCORES = Object.freeze({
|
|
|
15
16
|
shared_unit: 80,
|
|
16
17
|
});
|
|
17
18
|
export const CONTENT_COHERENCE_THRESHOLD = 60;
|
|
19
|
+
/**
|
|
20
|
+
* The audit TASK draw. Unmeasured for collapse — its eligibility is deliberately
|
|
21
|
+
* left as-is until it is measured on its own lap (`docs/backlog/open-bugs.md`).
|
|
22
|
+
*/
|
|
23
|
+
export const TASK_DRAW_COHERENCE_POLICY = Object.freeze({
|
|
24
|
+
eligibility: "weighted_score_threshold",
|
|
25
|
+
refineAtModularityPeak: false,
|
|
26
|
+
});
|
|
27
|
+
/** The FINDINGS draw (work blocks + the findings deliverable). Owner cut, 2026-08-19. */
|
|
28
|
+
export const FINDINGS_DRAW_COHERENCE_POLICY = Object.freeze({
|
|
29
|
+
eligibility: "shared_file_and_same_lens",
|
|
30
|
+
refineAtModularityPeak: true,
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* The canonical modularity resolution (γ). NOT a tuned knob and never to become
|
|
34
|
+
* one: γ = 1 is the literature default, at which the trivial whole-component
|
|
35
|
+
* partition scores exactly 0, so "did the split beat keeping the component
|
|
36
|
+
* whole" is answered by the data alone.
|
|
37
|
+
*/
|
|
38
|
+
const MODULARITY_RESOLUTION = 1;
|
|
39
|
+
/**
|
|
40
|
+
* Components at or below this size are handed back unrefined. A triviality
|
|
41
|
+
* guard, not a size budget: modularity over one, two, or three nodes describes
|
|
42
|
+
* noise rather than structure, and nothing downstream reads the number.
|
|
43
|
+
*/
|
|
44
|
+
const TRIVIAL_COMPONENT_SIZE = 3;
|
|
18
45
|
export const NormalizedContentCoherenceItemSchema = z
|
|
19
46
|
.object({
|
|
20
47
|
id: z.string().min(1),
|
|
@@ -167,6 +194,55 @@ function scoreEvidence(evidence) {
|
|
|
167
194
|
}
|
|
168
195
|
return score;
|
|
169
196
|
}
|
|
197
|
+
function isEligible(direct, score, policy) {
|
|
198
|
+
return policy.eligibility === "shared_file_and_same_lens"
|
|
199
|
+
? direct.sharedFile && direct.sameLens
|
|
200
|
+
: score >= CONTENT_COHERENCE_THRESHOLD;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Split one eligible-edge component at its modularity PEAK, or hand it back
|
|
204
|
+
* whole. The component's own eligible pairs are the weighted graph (edge weight =
|
|
205
|
+
* the pair's evidence score), Louvain proposes a partition at the canonical γ,
|
|
206
|
+
* and the proposal is accepted only when it scores strictly above keeping the
|
|
207
|
+
* component whole. A component held together by one weak bridge splits there.
|
|
208
|
+
* Nothing in the decision is a constant of any denomination.
|
|
209
|
+
*
|
|
210
|
+
* What survives whole is a UNIFORM-weight clique: with every edge equal, any cut
|
|
211
|
+
* scores below the trivial partition, so it cannot be split. A clique whose
|
|
212
|
+
* weights DIFFER can still split — six findings on one file and one lens but two
|
|
213
|
+
* units weigh 220 within a unit and 140 across it, and that contrast alone beats
|
|
214
|
+
* the whole. That is intended (the halves are genuinely less coupled), and the
|
|
215
|
+
* shared file then surfaces as a seam between them rather than disappearing into
|
|
216
|
+
* one block. "A clique stays whole" without the uniform qualifier is an
|
|
217
|
+
* overclaim; the two cases are pinned separately in
|
|
218
|
+
* `tests/shared/content-coherence.test.ts`.
|
|
219
|
+
*/
|
|
220
|
+
function refineAtModularityPeak(members, candidates) {
|
|
221
|
+
if (members.length <= TRIVIAL_COMPONENT_SIZE)
|
|
222
|
+
return [[...members]];
|
|
223
|
+
const graph = {
|
|
224
|
+
nodes: [...members],
|
|
225
|
+
edges: candidates.map((candidate) => ({
|
|
226
|
+
a: candidate.left,
|
|
227
|
+
b: candidate.right,
|
|
228
|
+
weight: candidate.score,
|
|
229
|
+
})),
|
|
230
|
+
};
|
|
231
|
+
const proposed = louvain(graph, MODULARITY_RESOLUTION);
|
|
232
|
+
const whole = new Map(members.map((id) => [id, members[0] ?? id]));
|
|
233
|
+
if (modularityOf(graph, proposed, MODULARITY_RESOLUTION) <=
|
|
234
|
+
modularityOf(graph, whole, MODULARITY_RESOLUTION)) {
|
|
235
|
+
return [[...members]];
|
|
236
|
+
}
|
|
237
|
+
const communities = new Map();
|
|
238
|
+
for (const member of members) {
|
|
239
|
+
const community = proposed.get(member) ?? member;
|
|
240
|
+
const group = communities.get(community) ?? [];
|
|
241
|
+
group.push(member);
|
|
242
|
+
communities.set(community, group);
|
|
243
|
+
}
|
|
244
|
+
return [...communities.values()];
|
|
245
|
+
}
|
|
170
246
|
function findRoot(parent, id) {
|
|
171
247
|
const lineage = [];
|
|
172
248
|
let root = id;
|
|
@@ -178,8 +254,16 @@ function findRoot(parent, id) {
|
|
|
178
254
|
parent.set(member, root);
|
|
179
255
|
return root;
|
|
180
256
|
}
|
|
181
|
-
/**
|
|
182
|
-
|
|
257
|
+
/**
|
|
258
|
+
* Build the complete canonical trace used by both audit and findings draws.
|
|
259
|
+
*
|
|
260
|
+
* `policy` is REQUIRED and has no default: a draw that forgot to declare its
|
|
261
|
+
* eligibility would otherwise silently inherit the other draw's, which is
|
|
262
|
+
* exactly the class of latent failure this project refuses to leave to a
|
|
263
|
+
* caller's memory. Pass {@link TASK_DRAW_COHERENCE_POLICY} or
|
|
264
|
+
* {@link FINDINGS_DRAW_COHERENCE_POLICY}.
|
|
265
|
+
*/
|
|
266
|
+
export function buildContentCoherenceTrace(input, policy) {
|
|
183
267
|
if (!isRecord(input)) {
|
|
184
268
|
throw new Error("Content-coherence input must be an object.");
|
|
185
269
|
}
|
|
@@ -198,11 +282,17 @@ export function buildContentCoherenceTrace(input) {
|
|
|
198
282
|
const left = normalizedItems[leftIndex];
|
|
199
283
|
const right = normalizedItems[rightIndex];
|
|
200
284
|
const evidence = directEvidence(left, right);
|
|
285
|
+
// Captured BEFORE relationship evidence is folded in — the conjunctive
|
|
286
|
+
// policy must read only what the items themselves assert.
|
|
287
|
+
const direct = {
|
|
288
|
+
sharedFile: evidence.shared_file,
|
|
289
|
+
sameLens: evidence.shared_semantic_tag_or_same_lens,
|
|
290
|
+
};
|
|
201
291
|
for (const kind of relationshipEvidence.get(pairKey(left.id, right.id)) ?? []) {
|
|
202
292
|
evidence[kind] = true;
|
|
203
293
|
}
|
|
204
294
|
const score = scoreEvidence(evidence);
|
|
205
|
-
if (score
|
|
295
|
+
if (!isEligible(direct, score, policy))
|
|
206
296
|
continue;
|
|
207
297
|
eligibleCandidates.push({ left: left.id, right: right.id, score });
|
|
208
298
|
}
|
|
@@ -232,8 +322,22 @@ export function buildContentCoherenceTrace(input) {
|
|
|
232
322
|
members.push(item.id);
|
|
233
323
|
groups.set(root, members);
|
|
234
324
|
}
|
|
235
|
-
|
|
236
|
-
|
|
325
|
+
// Bucket the eligible pairs by the component they ended up inside, so
|
|
326
|
+
// refinement reads each component's own weighted evidence graph once.
|
|
327
|
+
const candidatesByRoot = new Map();
|
|
328
|
+
if (policy.refineAtModularityPeak) {
|
|
329
|
+
for (const candidate of eligibleCandidates) {
|
|
330
|
+
const root = findRoot(parent, candidate.left);
|
|
331
|
+
const bucket = candidatesByRoot.get(root) ?? [];
|
|
332
|
+
bucket.push(candidate);
|
|
333
|
+
candidatesByRoot.set(root, bucket);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
const merged = [...groups.entries()].map(([root, members]) => [root, members.sort(compareCodeUnits)]);
|
|
337
|
+
const components = (policy.refineAtModularityPeak
|
|
338
|
+
? merged.flatMap(([root, members]) => refineAtModularityPeak(members, candidatesByRoot.get(root) ?? []))
|
|
339
|
+
: merged.map(([, members]) => members))
|
|
340
|
+
.map((members) => [...members].sort(compareCodeUnits))
|
|
237
341
|
.sort((left, right) => compareCodeUnits(left[0] ?? "", right[0] ?? ""));
|
|
238
342
|
return {
|
|
239
343
|
normalized_items: normalizedItems,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentCoherence.js","sourceRoot":"","sources":["../../../src/shared/decompose/contentCoherence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contentCoherence.js","sourceRoot":"","sources":["../../../src/shared/decompose/contentCoherence.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,23 @@ export declare const DEFAULT_RESOLUTIONS: readonly number[];
|
|
|
34
34
|
* lexicographically smallest member). Deterministic for a given graph + γ.
|
|
35
35
|
*/
|
|
36
36
|
export declare function louvain(graph: WeightedGraph, resolution: number): Partition;
|
|
37
|
+
/**
|
|
38
|
+
* Score a partition with the resolution-parameterised modularity Q the
|
|
39
|
+
* {@link louvain} local-moving phase optimises:
|
|
40
|
+
*
|
|
41
|
+
* Q = Σ_c [ Σ_in(c)/m − γ·(Σ_tot(c)/2m)² ]
|
|
42
|
+
*
|
|
43
|
+
* where Σ_in(c) is the intra-community edge weight (each undirected pair counted
|
|
44
|
+
* once, self-loops once), Σ_tot(c) the summed degree of its members, and m the
|
|
45
|
+
* graph mass. The convention is self-consistent rather than universal, and that
|
|
46
|
+
* is what it is for: the ONE trivial partition (every node in one community)
|
|
47
|
+
* scores exactly `1 − γ`, so comparing a candidate partition against the whole
|
|
48
|
+
* needs no tuned constant — at the canonical γ = 1 the comparison is against 0.
|
|
49
|
+
*
|
|
50
|
+
* Deterministic: communities are accumulated in lexical id order, so the same
|
|
51
|
+
* graph and partition always yield the same float.
|
|
52
|
+
*/
|
|
53
|
+
export declare function modularityOf(graph: WeightedGraph, partition: Partition, resolution: number): number;
|
|
37
54
|
/**
|
|
38
55
|
* Cluster the same graph at every resolution in the ladder, coarse→fine, and
|
|
39
56
|
* return the partitions in ladder order. The multi-resolution family is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modularity.d.ts","sourceRoot":"","sources":["../../../src/shared/decompose/modularity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"modularity.d.ts","sourceRoot":"","sources":["../../../src/shared/decompose/modularity.ts"],"names":[],"mappings":"AAmCA;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAiD5C;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAyB,CAAC;AAkR3E;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAgC3E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,CA0CR;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,WAAW,GAAE,SAAS,MAAM,EAAwB,GACnD,SAAS,EAAE,CAEb"}
|
|
@@ -8,6 +8,23 @@
|
|
|
8
8
|
// persists across resolutions is trusted. This module owns only the clustering;
|
|
9
9
|
// the stability scoring across the resulting partitions lives in consensus.ts.
|
|
10
10
|
//
|
|
11
|
+
// ARITHMETIC ENVELOPE — what this module accepts, stated honestly. Weights must
|
|
12
|
+
// be finite and positive, and the GRAPH MASS (Σ degrees) must stay inside the
|
|
13
|
+
// exact-integer range; a graph past that is refused rather than silently
|
|
14
|
+
// approximated, because community membership must not depend on input order
|
|
15
|
+
// changing the rounding of very large repeated sums. Two narrower limits were
|
|
16
|
+
// removed after they refused ordinary inputs: the community-degree guard now
|
|
17
|
+
// scales its tolerance to the graph mass instead of a fixed 1e-12 (fractional
|
|
18
|
+
// weights around 1e5 drift past a fixed epsilon by float arithmetic alone), and
|
|
19
|
+
// the modularity penalty divides by 2m before multiplying by Σtot so the bounded
|
|
20
|
+
// VALUE is checked rather than an unbounded intermediate. NOT fixed: the degree
|
|
21
|
+
// guard binds at every AGGREGATED level, where super-node degrees are larger
|
|
22
|
+
// than any original node's, so the mass at which a graph is refused depends on
|
|
23
|
+
// how many Louvain levels it produces — which is data-dependent, and at γ > 1
|
|
24
|
+
// (more, smaller communities → more levels) not monotone in the input size.
|
|
25
|
+
// Nothing in this repo runs above γ = 1; a metric sweep that does should
|
|
26
|
+
// re-measure rather than assume the envelope scales smoothly.
|
|
27
|
+
//
|
|
11
28
|
// PURE + DETERMINISTIC: no IO, no Math.random, no Date. Ties are broken by
|
|
12
29
|
// lexical node/community id so the same graph always yields the same partition.
|
|
13
30
|
// Language-neutral by construction — it consumes only string node ids and numeric
|
|
@@ -131,6 +148,14 @@ function buildAdjacency(graph) {
|
|
|
131
148
|
*/
|
|
132
149
|
function localMoving(graph, resolution) {
|
|
133
150
|
const twoM = checkedMultiply(graph.totalWeight, 2, "Graph mass");
|
|
151
|
+
// A community's degree is repeatedly added to and subtracted from as nodes
|
|
152
|
+
// move, and floating-point residue from that scales with the MAGNITUDE of the
|
|
153
|
+
// sums, not with a fixed absolute epsilon. A fixed -1e-12 therefore refused
|
|
154
|
+
// ordinary fractional-weight graphs ("Community degree … became negative") as
|
|
155
|
+
// soon as weights reached ~1e5 over ~100 nodes. Scale the tolerance to the
|
|
156
|
+
// graph's own mass; a genuinely negative degree is a whole weight below zero
|
|
157
|
+
// and stays far outside it.
|
|
158
|
+
const negativeDegreeTolerance = Math.max(1e-9, twoM * 1e-12);
|
|
134
159
|
const communityOf = new Map();
|
|
135
160
|
// Σtot(C): total degree of nodes currently in community C.
|
|
136
161
|
const communityDegree = new Map();
|
|
@@ -157,7 +182,7 @@ function localMoving(graph, resolution) {
|
|
|
157
182
|
// Remove node from its community.
|
|
158
183
|
const remainingDegree = (communityDegree.get(current) ?? 0) - nodeDegree;
|
|
159
184
|
assertSignedBounded(remainingDegree, `Community degree for ${current}`);
|
|
160
|
-
if (remainingDegree < -
|
|
185
|
+
if (remainingDegree < -negativeDegreeTolerance) {
|
|
161
186
|
throw new RangeError(`Community degree for ${current} became negative.`);
|
|
162
187
|
}
|
|
163
188
|
communityDegree.set(current, Math.max(0, remainingDegree));
|
|
@@ -180,8 +205,12 @@ function localMoving(graph, resolution) {
|
|
|
180
205
|
const kiIn = weightToCommunity.get(comm) ?? 0;
|
|
181
206
|
const sigmaTot = communityDegree.get(comm) ?? 0;
|
|
182
207
|
const scaledDegree = checkedMultiply(resolution, nodeDegree, `Modularity resolution-degree product for ${node}`);
|
|
183
|
-
|
|
184
|
-
|
|
208
|
+
// DIVIDE BEFORE MULTIPLYING. The value γ·k_i·Σtot/2m is bounded by γ·k_i
|
|
209
|
+
// because Σtot ≤ 2m, but the intermediate product γ·k_i·Σtot is not:
|
|
210
|
+
// rescaling integral weights by 1e6 — the obvious way to make fractional
|
|
211
|
+
// metrics exact — pushed it past MAX_SAFE_INTEGER and refused a graph
|
|
212
|
+
// whose real arithmetic was nowhere near the limit. Bound the RESULT.
|
|
213
|
+
const penalty = (scaledDegree / twoM) * sigmaTot;
|
|
185
214
|
assertSignedBounded(penalty, `Modularity penalty for ${node}`);
|
|
186
215
|
const gain = kiIn - penalty;
|
|
187
216
|
assertSignedBounded(gain, `Modularity gain for ${node}`);
|
|
@@ -296,6 +325,52 @@ export function louvain(graph, resolution) {
|
|
|
296
325
|
}
|
|
297
326
|
return canonicalizeCommunities(result);
|
|
298
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Score a partition with the resolution-parameterised modularity Q the
|
|
330
|
+
* {@link louvain} local-moving phase optimises:
|
|
331
|
+
*
|
|
332
|
+
* Q = Σ_c [ Σ_in(c)/m − γ·(Σ_tot(c)/2m)² ]
|
|
333
|
+
*
|
|
334
|
+
* where Σ_in(c) is the intra-community edge weight (each undirected pair counted
|
|
335
|
+
* once, self-loops once), Σ_tot(c) the summed degree of its members, and m the
|
|
336
|
+
* graph mass. The convention is self-consistent rather than universal, and that
|
|
337
|
+
* is what it is for: the ONE trivial partition (every node in one community)
|
|
338
|
+
* scores exactly `1 − γ`, so comparing a candidate partition against the whole
|
|
339
|
+
* needs no tuned constant — at the canonical γ = 1 the comparison is against 0.
|
|
340
|
+
*
|
|
341
|
+
* Deterministic: communities are accumulated in lexical id order, so the same
|
|
342
|
+
* graph and partition always yield the same float.
|
|
343
|
+
*/
|
|
344
|
+
export function modularityOf(graph, partition, resolution) {
|
|
345
|
+
assertPositiveBounded(resolution, "Modularity resolution");
|
|
346
|
+
const base = buildAdjacency(graph);
|
|
347
|
+
if (base.totalWeight === 0)
|
|
348
|
+
return 0;
|
|
349
|
+
const twoM = checkedMultiply(base.totalWeight, 2, "Graph mass");
|
|
350
|
+
const internal = new Map();
|
|
351
|
+
const total = new Map();
|
|
352
|
+
for (const node of base.nodes) {
|
|
353
|
+
const community = partition.get(node) ?? node;
|
|
354
|
+
total.set(community, checkedAdd(total.get(community) ?? 0, base.degree.get(node) ?? 0, `Community degree for ${community}`));
|
|
355
|
+
const row = base.adjacency.get(node) ?? new Map();
|
|
356
|
+
for (const [neighbor, weight] of row) {
|
|
357
|
+
// Visit each undirected pair once; a self-loop (neighbor === node) is not
|
|
358
|
+
// skipped, so it contributes its weight exactly once.
|
|
359
|
+
if (compareNodeIds(neighbor, node) < 0)
|
|
360
|
+
continue;
|
|
361
|
+
if ((partition.get(neighbor) ?? neighbor) !== community)
|
|
362
|
+
continue;
|
|
363
|
+
internal.set(community, checkedAdd(internal.get(community) ?? 0, weight, `Community internal weight for ${community}`));
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
let quality = 0;
|
|
367
|
+
for (const community of [...total.keys()].sort(compareNodeIds)) {
|
|
368
|
+
const share = (total.get(community) ?? 0) / twoM;
|
|
369
|
+
quality += (internal.get(community) ?? 0) / base.totalWeight - resolution * share * share;
|
|
370
|
+
assertSignedBounded(quality, `Modularity accumulation for ${community}`);
|
|
371
|
+
}
|
|
372
|
+
return quality;
|
|
373
|
+
}
|
|
299
374
|
/**
|
|
300
375
|
* Cluster the same graph at every resolution in the ladder, coarse→fine, and
|
|
301
376
|
* return the partitions in ladder order. The multi-resolution family is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modularity.js","sourceRoot":"","sources":["../../../src/shared/decompose/modularity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modularity.js","sourceRoot":"","sources":["../../../src/shared/decompose/modularity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Work-block seam derivation — the ONE place a contested write path becomes a
|
|
3
|
+
* seam, for every findings-draw producer.
|
|
4
|
+
*
|
|
5
|
+
* This lives beside `contentCoherence.ts` rather than inside one producer
|
|
6
|
+
* because there are TWO findings draws: `buildWorkBlockPartition`
|
|
7
|
+
* (`src/audit/reporting/workBlocks.ts`, the synthesis path) and
|
|
8
|
+
* `buildAuditFindingsDeliverable` (`../reporting/auditDeliverable.ts`, the
|
|
9
|
+
* leftover/re-consumable path). The second used to hard-code
|
|
10
|
+
* `work_block_seams: []`, which was vacuously true only while any two findings
|
|
11
|
+
* on one file merged into one block. Under `shared_file AND same_lens` they do
|
|
12
|
+
* not, so a hard-coded empty list drops a real write conflict — and the
|
|
13
|
+
* remediation phase cut then dispatches the contesting blocks in parallel with
|
|
14
|
+
* nothing gating them. One derivation, both producers.
|
|
15
|
+
*/
|
|
16
|
+
import type { WorkBlock, WorkBlockSeam } from "../types/finding.js";
|
|
17
|
+
/**
|
|
18
|
+
* Content-derived seam id: a function of the contested FILE alone, so the id
|
|
19
|
+
* survives re-partitioning, block renumbering, and any reordering of the input
|
|
20
|
+
* findings. A positional `seam-N` could not — and `prepares_seam_ids` in the
|
|
21
|
+
* remediation contract pipeline references these across runs.
|
|
22
|
+
*/
|
|
23
|
+
export declare function workBlockSeamId(file: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* The seam's human sentence, derived from its own fields. Exported because the
|
|
26
|
+
* approved-subset projection narrows `block_ids` to the surviving blocks and
|
|
27
|
+
* must restate the count rather than persist a sentence that contradicts the
|
|
28
|
+
* list beside it.
|
|
29
|
+
*/
|
|
30
|
+
export declare function workBlockSeamRationale(file: string, blockCount: number, kind: WorkBlockSeam["kind"]): string;
|
|
31
|
+
/**
|
|
32
|
+
* One seam per CONTESTED FILE, listing every block that owns it.
|
|
33
|
+
*
|
|
34
|
+
* A file two or more blocks both claim IS the predicted write conflict, and the
|
|
35
|
+
* conflict is a property of that path — not of each unordered block PAIR, which
|
|
36
|
+
* is why the pairwise form emitted O(blocks²) records saying the same thing (on
|
|
37
|
+
* the 2026-08-18 run: 181,251 pairwise records vs 839 per-file ones). A
|
|
38
|
+
* unit-only overlap is not a write conflict and produces no seam: it said
|
|
39
|
+
* "these components share unit context" and required nothing.
|
|
40
|
+
*
|
|
41
|
+
* Every emitted seam therefore requires preparation by construction — which the
|
|
42
|
+
* schema states as `z.literal(true)` rather than leaving to the producer.
|
|
43
|
+
*/
|
|
44
|
+
export declare function deriveWorkBlockSeams(blocks: readonly WorkBlock[]): WorkBlockSeam[];
|
|
45
|
+
//# sourceMappingURL=workBlockSeams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workBlockSeams.d.ts","sourceRoot":"","sources":["../../../src/shared/decompose/workBlockSeams.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAC1B,MAAM,CAIR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,SAAS,EAAE,GAC3B,aAAa,EAAE,CAgCjB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Work-block seam derivation — the ONE place a contested write path becomes a
|
|
3
|
+
* seam, for every findings-draw producer.
|
|
4
|
+
*
|
|
5
|
+
* This lives beside `contentCoherence.ts` rather than inside one producer
|
|
6
|
+
* because there are TWO findings draws: `buildWorkBlockPartition`
|
|
7
|
+
* (`src/audit/reporting/workBlocks.ts`, the synthesis path) and
|
|
8
|
+
* `buildAuditFindingsDeliverable` (`../reporting/auditDeliverable.ts`, the
|
|
9
|
+
* leftover/re-consumable path). The second used to hard-code
|
|
10
|
+
* `work_block_seams: []`, which was vacuously true only while any two findings
|
|
11
|
+
* on one file merged into one block. Under `shared_file AND same_lens` they do
|
|
12
|
+
* not, so a hard-coded empty list drops a real write conflict — and the
|
|
13
|
+
* remediation phase cut then dispatches the contesting blocks in parallel with
|
|
14
|
+
* nothing gating them. One derivation, both producers.
|
|
15
|
+
*/
|
|
16
|
+
import { createHash } from "node:crypto";
|
|
17
|
+
import { compareCodeUnits } from "../affinityArtifacts.js";
|
|
18
|
+
/**
|
|
19
|
+
* Content-derived seam id: a function of the contested FILE alone, so the id
|
|
20
|
+
* survives re-partitioning, block renumbering, and any reordering of the input
|
|
21
|
+
* findings. A positional `seam-N` could not — and `prepares_seam_ids` in the
|
|
22
|
+
* remediation contract pipeline references these across runs.
|
|
23
|
+
*/
|
|
24
|
+
export function workBlockSeamId(file) {
|
|
25
|
+
return `seam-${createHash("sha256").update(file, "utf8").digest("hex").slice(0, 12)}`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The seam's human sentence, derived from its own fields. Exported because the
|
|
29
|
+
* approved-subset projection narrows `block_ids` to the surviving blocks and
|
|
30
|
+
* must restate the count rather than persist a sentence that contradicts the
|
|
31
|
+
* list beside it.
|
|
32
|
+
*/
|
|
33
|
+
export function workBlockSeamRationale(file, blockCount, kind) {
|
|
34
|
+
return kind === "systemic_coordination"
|
|
35
|
+
? `A coordination component contests the predicted write path ${file} with ${blockCount - 1} other component(s).`
|
|
36
|
+
: `${blockCount} components cite the same predicted write path ${file}.`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* One seam per CONTESTED FILE, listing every block that owns it.
|
|
40
|
+
*
|
|
41
|
+
* A file two or more blocks both claim IS the predicted write conflict, and the
|
|
42
|
+
* conflict is a property of that path — not of each unordered block PAIR, which
|
|
43
|
+
* is why the pairwise form emitted O(blocks²) records saying the same thing (on
|
|
44
|
+
* the 2026-08-18 run: 181,251 pairwise records vs 839 per-file ones). A
|
|
45
|
+
* unit-only overlap is not a write conflict and produces no seam: it said
|
|
46
|
+
* "these components share unit context" and required nothing.
|
|
47
|
+
*
|
|
48
|
+
* Every emitted seam therefore requires preparation by construction — which the
|
|
49
|
+
* schema states as `z.literal(true)` rather than leaving to the producer.
|
|
50
|
+
*/
|
|
51
|
+
export function deriveWorkBlockSeams(blocks) {
|
|
52
|
+
const blocksByFile = new Map();
|
|
53
|
+
for (const block of blocks) {
|
|
54
|
+
for (const path of block.owned_files) {
|
|
55
|
+
const contenders = blocksByFile.get(path) ?? new Set();
|
|
56
|
+
contenders.add(block.id);
|
|
57
|
+
blocksByFile.set(path, contenders);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const coordinationBlocks = new Set(blocks
|
|
61
|
+
.filter((block) => block.role === "coordination")
|
|
62
|
+
.map((block) => block.id));
|
|
63
|
+
const seams = [];
|
|
64
|
+
for (const file of [...blocksByFile.keys()].sort(compareCodeUnits)) {
|
|
65
|
+
const blockIds = [...(blocksByFile.get(file) ?? [])].sort(compareCodeUnits);
|
|
66
|
+
if (blockIds.length < 2)
|
|
67
|
+
continue;
|
|
68
|
+
const kind = blockIds.some((id) => coordinationBlocks.has(id))
|
|
69
|
+
? "systemic_coordination"
|
|
70
|
+
: "predicted_write_conflict";
|
|
71
|
+
seams.push({
|
|
72
|
+
id: workBlockSeamId(file),
|
|
73
|
+
file,
|
|
74
|
+
block_ids: blockIds,
|
|
75
|
+
kind,
|
|
76
|
+
requires_preparation: true,
|
|
77
|
+
rationale: workBlockSeamRationale(file, blockIds.length, kind),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return seams;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=workBlockSeams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workBlockSeams.js","sourceRoot":"","sources":["../../../src/shared/decompose/workBlockSeams.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,QAAQ,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,UAAkB,EAClB,IAA2B;IAE3B,OAAO,IAAI,KAAK,uBAAuB;QACrC,CAAC,CAAC,8DAA8D,IAAI,SAAS,UAAU,GAAG,CAAC,sBAAsB;QACjH,CAAC,CAAC,GAAG,UAAU,kDAAkD,IAAI,GAAG,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA4B;IAE5B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YAC/D,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzB,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,MAAM;SACH,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;SAChD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAC5B,CAAC;IAEF,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnE,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC5E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,0BAA0B,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC;YACzB,IAAI;YACJ,SAAS,EAAE,QAAQ;YACnB,IAAI;YACJ,oBAAoB,EAAE,IAAI;YAC1B,SAAS,EAAE,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/shared/index.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export type { CharterKind, CharterConfidence, CharterProvenance, Charter, GoalNo
|
|
|
29
29
|
export { CharterKindSchema, CharterConfidenceSchema, CharterProvenanceSchema, CharterSchema, GoalNodeSchema, GoalEdgeSchema, GoalGraphSchema, CeilingSchema, CharterDeltaSchema, TeleologyNodeSchema, TriangulatedTelosSchema, ChannelDisagreementSchema, ClarificationValueSchema, CharterClarificationAnswerSchema, CharterClarificationRequestSchema, } from "./types/charter.js";
|
|
30
30
|
export { applyTrueCharterGate, charterReviewDisposition, gateCharterDelta, riskGateClarification, } from "./validation/charterGate.js";
|
|
31
31
|
export type { WeightedGraph, Partition } from "./decompose/modularity.js";
|
|
32
|
-
export { DEFAULT_RESOLUTIONS, louvain, resolutionSweep, } from "./decompose/modularity.js";
|
|
32
|
+
export { DEFAULT_RESOLUTIONS, louvain, modularityOf, resolutionSweep, } from "./decompose/modularity.js";
|
|
33
33
|
export type { DecompositionSource, DecomposedNode, DecomposeResult, DecomposeOptions, } from "./decompose/consensus.js";
|
|
34
34
|
export { decompose, clustersFromPartitions } from "./decompose/consensus.js";
|
|
35
35
|
export type { CharterSubmission, CharterDeltaSubmission, CharterSubsystem, AssembledCharters, AssembledDeltas, } from "./decompose/charterExtraction.js";
|
|
@@ -67,8 +67,9 @@ export { AGENT_FEEDBACK_FILENAME, parseReflectionsNdjson, aggregateReflections,
|
|
|
67
67
|
export { BYTES_PER_TOKEN, ESTIMATED_TOKENS_PER_LINE, ESTIMATED_PROMPT_OVERHEAD_TOKENS, ESTIMATED_ITEM_OVERHEAD_TOKENS, estimateTokensFromBytes, } from "./tokens.js";
|
|
68
68
|
export { countBy } from "./countBy.js";
|
|
69
69
|
export { chunkByBudget } from "./chunkByBudget.js";
|
|
70
|
-
export type { ContentCoherenceEvidence, ContentCoherenceItem, ContentCoherenceRelationshipKind, ContentCoherenceRelationship, ContentCoherenceInput, NormalizedContentCoherenceItem, ContentCoherenceTrace, } from "./decompose/contentCoherence.js";
|
|
71
|
-
export { CONTENT_COHERENCE_SCORES, CONTENT_COHERENCE_THRESHOLD, NormalizedContentCoherenceItemSchema, ContentCoherenceTraceSchema, buildContentCoherenceTrace, } from "./decompose/contentCoherence.js";
|
|
70
|
+
export type { ContentCoherenceEligibility, ContentCoherenceEvidence, ContentCoherenceItem, ContentCoherencePolicy, ContentCoherenceRelationshipKind, ContentCoherenceRelationship, ContentCoherenceInput, NormalizedContentCoherenceItem, ContentCoherenceTrace, } from "./decompose/contentCoherence.js";
|
|
71
|
+
export { CONTENT_COHERENCE_SCORES, CONTENT_COHERENCE_THRESHOLD, FINDINGS_DRAW_COHERENCE_POLICY, TASK_DRAW_COHERENCE_POLICY, NormalizedContentCoherenceItemSchema, ContentCoherenceTraceSchema, buildContentCoherenceTrace, } from "./decompose/contentCoherence.js";
|
|
72
|
+
export { deriveWorkBlockSeams, workBlockSeamId, workBlockSeamRationale, } from "./decompose/workBlockSeams.js";
|
|
72
73
|
export { mapWithConcurrency } from "./concurrency.js";
|
|
73
74
|
export { mintUniqueId } from "./ids.js";
|
|
74
75
|
export type { FindingIdentityFields } from "./findingIdentitySignature.js";
|