@neurcode-ai/cli 0.9.65 → 0.9.66
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/commands/bootstrap-policy.d.ts +29 -0
- package/dist/commands/bootstrap-policy.d.ts.map +1 -0
- package/dist/commands/bootstrap-policy.js +334 -0
- package/dist/commands/bootstrap-policy.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +82 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/quickstart.d.ts +21 -0
- package/dist/commands/quickstart.d.ts.map +1 -0
- package/dist/commands/quickstart.js +178 -0
- package/dist/commands/quickstart.js.map +1 -0
- package/dist/commands/remediate-export.d.ts +31 -0
- package/dist/commands/remediate-export.d.ts.map +1 -0
- package/dist/commands/remediate-export.js +283 -0
- package/dist/commands/remediate-export.js.map +1 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +106 -10
- package/dist/commands/verify.js.map +1 -1
- package/dist/governance/canonical-invariants.d.ts +88 -0
- package/dist/governance/canonical-invariants.d.ts.map +1 -0
- package/dist/governance/canonical-invariants.js +197 -0
- package/dist/governance/canonical-invariants.js.map +1 -0
- package/dist/governance/canonical-ordering.d.ts +76 -0
- package/dist/governance/canonical-ordering.d.ts.map +1 -0
- package/dist/governance/canonical-ordering.js +189 -0
- package/dist/governance/canonical-ordering.js.map +1 -0
- package/dist/governance/canonical-pipeline.d.ts +7 -0
- package/dist/governance/canonical-pipeline.d.ts.map +1 -1
- package/dist/governance/canonical-pipeline.js +184 -16
- package/dist/governance/canonical-pipeline.js.map +1 -1
- package/dist/governance/diff-line-provenance.d.ts +59 -0
- package/dist/governance/diff-line-provenance.d.ts.map +1 -0
- package/dist/governance/diff-line-provenance.js +118 -0
- package/dist/governance/diff-line-provenance.js.map +1 -0
- package/dist/governance/pilot-readiness.d.ts +34 -0
- package/dist/governance/pilot-readiness.d.ts.map +1 -0
- package/dist/governance/pilot-readiness.js +226 -0
- package/dist/governance/pilot-readiness.js.map +1 -0
- package/dist/governance/policy-parity-validator.d.ts +62 -0
- package/dist/governance/policy-parity-validator.d.ts.map +1 -0
- package/dist/governance/policy-parity-validator.js +137 -0
- package/dist/governance/policy-parity-validator.js.map +1 -0
- package/dist/governance/remediation-boundary.d.ts +55 -0
- package/dist/governance/remediation-boundary.d.ts.map +1 -0
- package/dist/governance/remediation-boundary.js +120 -0
- package/dist/governance/remediation-boundary.js.map +1 -0
- package/dist/governance/structural-cache.d.ts +103 -0
- package/dist/governance/structural-cache.d.ts.map +1 -0
- package/dist/governance/structural-cache.js +240 -0
- package/dist/governance/structural-cache.js.map +1 -0
- package/dist/governance/structural-on-diff.d.ts +22 -2
- package/dist/governance/structural-on-diff.d.ts.map +1 -1
- package/dist/governance/structural-on-diff.js +36 -4
- package/dist/governance/structural-on-diff.js.map +1 -1
- package/dist/governance/structural-policy-merge.d.ts +8 -0
- package/dist/governance/structural-policy-merge.d.ts.map +1 -1
- package/dist/governance/structural-policy-merge.js +7 -0
- package/dist/governance/structural-policy-merge.js.map +1 -1
- package/dist/governance/verify-runtime-guard.d.ts +99 -0
- package/dist/governance/verify-runtime-guard.d.ts.map +1 -0
- package/dist/governance/verify-runtime-guard.js +129 -0
- package/dist/governance/verify-runtime-guard.js.map +1 -0
- package/dist/index.js +50 -14
- package/dist/index.js.map +1 -1
- package/dist/intent-engine/repo-classifier.d.ts +64 -0
- package/dist/intent-engine/repo-classifier.d.ts.map +1 -0
- package/dist/intent-engine/repo-classifier.js +178 -0
- package/dist/intent-engine/repo-classifier.js.map +1 -0
- package/dist/structural-rules/index.d.ts +4 -0
- package/dist/structural-rules/index.d.ts.map +1 -1
- package/dist/structural-rules/index.js +18 -1
- package/dist/structural-rules/index.js.map +1 -1
- package/dist/structural-rules/python/PY003-broad-except-clause.d.ts +21 -0
- package/dist/structural-rules/python/PY003-broad-except-clause.d.ts.map +1 -1
- package/dist/structural-rules/python/PY003-broad-except-clause.js +212 -21
- package/dist/structural-rules/python/PY003-broad-except-clause.js.map +1 -1
- package/dist/structural-rules/python/PY011-thread-lifecycle.d.ts +11 -0
- package/dist/structural-rules/python/PY011-thread-lifecycle.d.ts.map +1 -0
- package/dist/structural-rules/python/PY011-thread-lifecycle.js +97 -0
- package/dist/structural-rules/python/PY011-thread-lifecycle.js.map +1 -0
- package/dist/structural-rules/python/PY012-asyncio-run-misuse.d.ts +11 -0
- package/dist/structural-rules/python/PY012-asyncio-run-misuse.d.ts.map +1 -0
- package/dist/structural-rules/python/PY012-asyncio-run-misuse.js +83 -0
- package/dist/structural-rules/python/PY012-asyncio-run-misuse.js.map +1 -0
- package/dist/structural-rules/python/PY013-mutable-default-arg.d.ts +11 -0
- package/dist/structural-rules/python/PY013-mutable-default-arg.d.ts.map +1 -0
- package/dist/structural-rules/python/PY013-mutable-default-arg.js +73 -0
- package/dist/structural-rules/python/PY013-mutable-default-arg.js.map +1 -0
- package/dist/structural-rules/python/PY014-fixed-sleep-retry.d.ts +11 -0
- package/dist/structural-rules/python/PY014-fixed-sleep-retry.d.ts.map +1 -0
- package/dist/structural-rules/python/PY014-fixed-sleep-retry.js +115 -0
- package/dist/structural-rules/python/PY014-fixed-sleep-retry.js.map +1 -0
- package/dist/structural-rules/types.d.ts +12 -0
- package/dist/structural-rules/types.d.ts.map +1 -1
- package/dist/utils/verify-runtime-stability.d.ts +142 -0
- package/dist/utils/verify-runtime-stability.d.ts.map +1 -0
- package/dist/utils/verify-runtime-stability.js +230 -0
- package/dist/utils/verify-runtime-stability.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stripStructuralPolicyRows = stripStructuralPolicyRows;
|
|
3
4
|
exports.findingFromStructural = findingFromStructural;
|
|
4
5
|
exports.findingFromPolicyEngine = findingFromPolicyEngine;
|
|
5
6
|
exports.findingFromIntentIssue = findingFromIntentIssue;
|
|
@@ -12,9 +13,20 @@ exports.attachCanonicalGovernance = attachCanonicalGovernance;
|
|
|
12
13
|
exports.evaluateGovernanceReplayIntegrity = evaluateGovernanceReplayIntegrity;
|
|
13
14
|
const crypto_1 = require("crypto");
|
|
14
15
|
const contracts_1 = require("@neurcode-ai/contracts");
|
|
16
|
+
const canonical_invariants_1 = require("./canonical-invariants");
|
|
17
|
+
const canonical_ordering_1 = require("./canonical-ordering");
|
|
15
18
|
function stableFindingId(parts) {
|
|
16
19
|
return (0, crypto_1.createHash)('sha256').update(parts.join('\x1e')).digest('hex').slice(0, 32);
|
|
17
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Strip structural:* prefixed violations from the policy-engine row list.
|
|
23
|
+
* These are already represented in structuralViolations — keeping them in
|
|
24
|
+
* policyViolations causes cross-source duplicate GovernanceFinding objects.
|
|
25
|
+
* Called by attachCanonicalGovernance before building the envelope.
|
|
26
|
+
*/
|
|
27
|
+
function stripStructuralPolicyRows(violations) {
|
|
28
|
+
return violations.filter(v => !String(v.rule ?? '').startsWith('structural:'));
|
|
29
|
+
}
|
|
18
30
|
function rankDeterminism(d) {
|
|
19
31
|
switch (d) {
|
|
20
32
|
case 'deterministic-structural':
|
|
@@ -198,19 +210,60 @@ function behavioralClusterKey(finding) {
|
|
|
198
210
|
return 'operational-governance-risk';
|
|
199
211
|
}
|
|
200
212
|
function compressByLocation(findings) {
|
|
213
|
+
// ── Pass 1: build a ruleId-aware identity map for structural findings ─────
|
|
214
|
+
// Key: filePath + line + ruleId (from structuralMetadata)
|
|
215
|
+
// This ensures that when the same structural violation appears from both
|
|
216
|
+
// the structural-rules source AND a policy-engine structural:* row,
|
|
217
|
+
// we can identify and absorb the duplicate before bucket compression.
|
|
218
|
+
const structuralById = new Map();
|
|
219
|
+
for (const f of findings) {
|
|
220
|
+
if (f.sourceSystem === 'structural-rules' && f.structuralMetadata?.ruleId) {
|
|
221
|
+
const key = `${f.evidence.filePath ?? ''}\x00${f.evidence.line ?? 0}\x00${f.structuralMetadata.ruleId}`;
|
|
222
|
+
structuralById.set(key, f);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// ── Pass 2: bucket by location + behavior, absorb structural duplicates ───
|
|
201
226
|
const buckets = new Map();
|
|
227
|
+
let duplicateCount = 0;
|
|
202
228
|
for (const f of findings) {
|
|
229
|
+
// If this is a policy-engine row that mirrors a structural finding, absorb it
|
|
230
|
+
if (f.sourceSystem === 'policy-engine') {
|
|
231
|
+
const ruleId = String(f.structuralMetadata?.ruleId ?? f.title.match(/^Policy · structural:(.+)$/)?.[1] ?? '');
|
|
232
|
+
if (ruleId) {
|
|
233
|
+
const structKey = `${f.evidence.filePath ?? ''}\x00${f.evidence.line ?? 0}\x00${ruleId}`;
|
|
234
|
+
const primary = structuralById.get(structKey);
|
|
235
|
+
if (primary) {
|
|
236
|
+
// Absorb into structural primary's mergedFrom — do not add to buckets
|
|
237
|
+
const mergedFrom = [...(primary.mergedFrom ?? [primary.id]), f.id];
|
|
238
|
+
structuralById.set(structKey, { ...primary, mergedFrom });
|
|
239
|
+
duplicateCount++;
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
203
244
|
const fp = f.evidence.filePath ?? 'unknown';
|
|
204
245
|
const ln = f.evidence.line ?? 0;
|
|
205
246
|
const sev = f.severity;
|
|
247
|
+
const ruleKey = f.structuralMetadata?.ruleId ?? '';
|
|
206
248
|
const behavior = behavioralClusterKey(f);
|
|
207
|
-
|
|
249
|
+
// Include ruleId in the bucket key so distinct rules at the same line
|
|
250
|
+
// are never merged — only identical-rule duplicates across source systems.
|
|
251
|
+
const key = `${fp}\x00${ln}\x00${sev}\x00${ruleKey}\x00${behavior}`;
|
|
208
252
|
const list = buckets.get(key) ?? [];
|
|
209
253
|
list.push(f);
|
|
210
254
|
buckets.set(key, list);
|
|
211
255
|
}
|
|
256
|
+
// ── Pass 3: replace bucket entries with absorbed structural findings ───────
|
|
257
|
+
// Update bucket entries to use the absorbed (mergedFrom-enriched) versions
|
|
258
|
+
for (const [key, group] of buckets) {
|
|
259
|
+
buckets.set(key, group.map(f => {
|
|
260
|
+
if (f.sourceSystem !== 'structural-rules' || !f.structuralMetadata?.ruleId)
|
|
261
|
+
return f;
|
|
262
|
+
const structKey = `${f.evidence.filePath ?? ''}\x00${f.evidence.line ?? 0}\x00${f.structuralMetadata.ruleId}`;
|
|
263
|
+
return structuralById.get(structKey) ?? f;
|
|
264
|
+
}));
|
|
265
|
+
}
|
|
212
266
|
const merged = [];
|
|
213
|
-
let duplicateCount = 0;
|
|
214
267
|
for (const [, group] of buckets) {
|
|
215
268
|
if (group.length === 1) {
|
|
216
269
|
merged.push(group[0]);
|
|
@@ -273,7 +326,11 @@ function buildGovernanceVerificationEnvelope(input) {
|
|
|
273
326
|
for (const v of input.structuralViolations ?? []) {
|
|
274
327
|
raw.push(findingFromStructural(v));
|
|
275
328
|
}
|
|
276
|
-
|
|
329
|
+
// Strip structural:* policy rows — they duplicate structuralViolations entries.
|
|
330
|
+
// The canonical dedup in compressByLocation handles any that slip through,
|
|
331
|
+
// but stripping here prevents them from appearing as independent findings.
|
|
332
|
+
const filteredPolicyViolations = stripStructuralPolicyRows(input.policyViolations ?? []);
|
|
333
|
+
for (const v of filteredPolicyViolations) {
|
|
277
334
|
raw.push(findingFromPolicyEngine(v));
|
|
278
335
|
}
|
|
279
336
|
for (const i of input.intentIssues ?? []) {
|
|
@@ -291,17 +348,38 @@ function buildGovernanceVerificationEnvelope(input) {
|
|
|
291
348
|
for (const c of input.constraintMessages ?? []) {
|
|
292
349
|
raw.push(findingFromGovernanceConstraint(c.message, c.file ?? '.neurcode/policy-compiled'));
|
|
293
350
|
}
|
|
294
|
-
|
|
351
|
+
// NOTE: provenance is assigned after canonical sort below (post compressByLocation).
|
|
352
|
+
const { merged: rawMerged, duplicateCount } = compressByLocation(raw);
|
|
353
|
+
// Phase 1: Apply canonical deterministic ordering BEFORE checksum, provenance,
|
|
354
|
+
// and envelope emission. This is the single authoritative sort point.
|
|
355
|
+
// sortCanonicalFindingsStable is pure, never mutates input.
|
|
356
|
+
const merged = (0, canonical_ordering_1.sortCanonicalFindingsStable)(rawMerged);
|
|
357
|
+
// Phase 1: Validate that the sort produced a correctly ordered array.
|
|
358
|
+
// If ordering drift is detected, emit warning but do NOT throw.
|
|
359
|
+
(0, canonical_ordering_1.validateCanonicalOrder)(merged, 'buildGovernanceVerificationEnvelope');
|
|
360
|
+
// Phase 3: Assign provenance AFTER ordering so that provenance assignment
|
|
361
|
+
// order matches the canonical finding order.
|
|
362
|
+
for (const f of merged) {
|
|
295
363
|
if (input.provenance && !f.provenanceMetadata) {
|
|
296
364
|
f.provenanceMetadata = { ...input.provenance };
|
|
297
365
|
}
|
|
298
366
|
}
|
|
299
|
-
|
|
367
|
+
// legacyDebt findings: those demoted from BLOCKING to ADVISORY due to
|
|
368
|
+
// diff-scope enforcement (Phase 2). Count separately for observability.
|
|
369
|
+
const legacyDebtCount = merged.filter(f => f.legacyDebt === true).length;
|
|
370
|
+
// Phase 3: Compute deterministic replay checksum over the canonically ordered finding set.
|
|
371
|
+
// Input is already sorted by sortCanonicalFindingsStable — checksum is stable.
|
|
372
|
+
const replayChecksum = (0, canonical_invariants_1.computeCanonicalFindingChecksum)(merged);
|
|
373
|
+
// Phase 1 invariant guard: warn if any structural:* policy rows leaked through.
|
|
374
|
+
(0, canonical_invariants_1.assertNoStructuralPolicyRows)(input.policyViolations ?? [], 'buildGovernanceVerificationEnvelope');
|
|
300
375
|
return {
|
|
301
376
|
schemaVersion: contracts_1.GOVERNANCE_FINDINGS_SCHEMA_VERSION,
|
|
302
377
|
generatedAt: new Date().toISOString(),
|
|
303
378
|
findings: merged,
|
|
304
379
|
compressedDuplicateCount: duplicateCount,
|
|
380
|
+
deduplicatedFindingCount: duplicateCount,
|
|
381
|
+
legacyDebtFindingCount: legacyDebtCount,
|
|
382
|
+
replayChecksum,
|
|
305
383
|
reviewerSummary: buildReviewerSummary(merged),
|
|
306
384
|
};
|
|
307
385
|
}
|
|
@@ -363,7 +441,9 @@ function scopeHintsFromPayload(payload) {
|
|
|
363
441
|
*/
|
|
364
442
|
function attachCanonicalGovernance(payload) {
|
|
365
443
|
const structuralViolations = asStructuralViolations(payload.structuralViolations);
|
|
366
|
-
|
|
444
|
+
// Strip structural:* rows before building the envelope — these are echoed
|
|
445
|
+
// from mergeStructuralIntoPolicyViolations() and would cause duplicates.
|
|
446
|
+
const policyViolations = stripStructuralPolicyRows(asRuleViolationsFromPayloadViolations(payload));
|
|
367
447
|
const intentIssues = Array.isArray(payload.intentIssues) ? payload.intentIssues : [];
|
|
368
448
|
const flowIssues = Array.isArray(payload.flowIssues) ? payload.flowIssues : [];
|
|
369
449
|
const regressions = Array.isArray(payload.regressions) ? payload.regressions : [];
|
|
@@ -395,6 +475,7 @@ function evaluateGovernanceReplayIntegrity(input) {
|
|
|
395
475
|
const graphMismatches = [];
|
|
396
476
|
const semanticTruncationMismatches = [];
|
|
397
477
|
const notes = [];
|
|
478
|
+
const driftReasons = new Set();
|
|
398
479
|
const ev = input.evidencePayload.governanceVerification;
|
|
399
480
|
const rec = input.reconstructedPayload?.governanceVerification;
|
|
400
481
|
if (!ev && !rec) {
|
|
@@ -406,23 +487,101 @@ function evaluateGovernanceReplayIntegrity(input) {
|
|
|
406
487
|
graphMismatches,
|
|
407
488
|
semanticTruncationMismatches,
|
|
408
489
|
notes,
|
|
490
|
+
driftReasons: [],
|
|
409
491
|
};
|
|
410
492
|
}
|
|
411
493
|
if (ev && !rec) {
|
|
412
494
|
missingArtifacts.push('governanceVerification missing from reconstructed payload');
|
|
413
495
|
}
|
|
414
496
|
else if (ev && rec) {
|
|
497
|
+
// ── 1. Schema version ──────────────────────────────────────────────────────
|
|
415
498
|
if (ev.schemaVersion !== rec.schemaVersion) {
|
|
416
499
|
provenanceMismatches.push(`schemaVersion drift: evidence=${ev.schemaVersion} replay=${rec.schemaVersion}`);
|
|
500
|
+
driftReasons.add('provenance-drift');
|
|
417
501
|
}
|
|
502
|
+
// ── 2. Finding count equality ──────────────────────────────────────────────
|
|
418
503
|
if (ev.findings.length !== rec.findings.length) {
|
|
419
504
|
provenanceMismatches.push(`findings count drift: evidence=${ev.findings.length} replay=${rec.findings.length}`);
|
|
420
505
|
}
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
506
|
+
// ── 3. Missing / extra findings ────────────────────────────────────────────
|
|
507
|
+
const evById = new Map(ev.findings.map(f => [f.id, f]));
|
|
508
|
+
const recById = new Map(rec.findings.map(f => [f.id, f]));
|
|
509
|
+
for (const [id] of evById) {
|
|
510
|
+
if (!recById.has(id)) {
|
|
511
|
+
graphMismatches.push(`missing-finding in replay: ${id}`);
|
|
512
|
+
driftReasons.add('missing-finding');
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
for (const [id] of recById) {
|
|
516
|
+
if (!evById.has(id)) {
|
|
517
|
+
graphMismatches.push(`extra-finding in replay: ${id}`);
|
|
518
|
+
driftReasons.add('extra-finding');
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
// ── 4. Per-finding semantic equality (severity, determinism, provenance, suppression) ──
|
|
522
|
+
for (const [id, evF] of evById) {
|
|
523
|
+
const recF = recById.get(id);
|
|
524
|
+
if (!recF)
|
|
525
|
+
continue; // already reported as missing above
|
|
526
|
+
if (evF.severity !== recF.severity) {
|
|
527
|
+
graphMismatches.push(`severity-drift on ${id}: evidence=${evF.severity} replay=${recF.severity}`);
|
|
528
|
+
driftReasons.add('severity-drift');
|
|
529
|
+
}
|
|
530
|
+
if (evF.determinismClassification !== recF.determinismClassification) {
|
|
531
|
+
graphMismatches.push(`determinism-drift on ${id}: ` +
|
|
532
|
+
`evidence=${evF.determinismClassification} replay=${recF.determinismClassification}`);
|
|
533
|
+
driftReasons.add('determinism-drift');
|
|
534
|
+
}
|
|
535
|
+
// Provenance: compare planId if present
|
|
536
|
+
const evProv = evF.provenanceMetadata;
|
|
537
|
+
const recProv = recF.provenanceMetadata;
|
|
538
|
+
if (evProv && recProv) {
|
|
539
|
+
if (evProv.planId !== recProv.planId) {
|
|
540
|
+
provenanceMismatches.push(`provenance planId drift on ${id}: evidence=${evProv.planId} replay=${recProv.planId}`);
|
|
541
|
+
driftReasons.add('provenance-drift');
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
else if (evProv && !recProv) {
|
|
545
|
+
provenanceMismatches.push(`provenance-drift on ${id}: evidence has provenanceMetadata, replay does not`);
|
|
546
|
+
driftReasons.add('provenance-drift');
|
|
425
547
|
}
|
|
548
|
+
// Structural policyRef: compare via structuralMetadata
|
|
549
|
+
const evSM = evF.structuralMetadata;
|
|
550
|
+
const recSM = recF.structuralMetadata;
|
|
551
|
+
if (evSM && recSM && evSM.policyRef !== recSM.policyRef) {
|
|
552
|
+
provenanceMismatches.push(`policyRef drift on ${id}: evidence=${evSM.policyRef} replay=${recSM.policyRef}`);
|
|
553
|
+
driftReasons.add('provenance-drift');
|
|
554
|
+
}
|
|
555
|
+
// Suppression: compare suppressionMetadata presence
|
|
556
|
+
const evSupp = evF.suppressionMetadata;
|
|
557
|
+
const recSupp = recF.suppressionMetadata;
|
|
558
|
+
if (Boolean(evSupp) !== Boolean(recSupp)) {
|
|
559
|
+
graphMismatches.push(`suppression-drift on ${id}: ` +
|
|
560
|
+
`evidence ${evSupp ? 'suppressed' : 'not-suppressed'} vs ` +
|
|
561
|
+
`replay ${recSupp ? 'suppressed' : 'not-suppressed'}`);
|
|
562
|
+
driftReasons.add('suppression-drift');
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
// ── 5. Canonical ordering equality ────────────────────────────────────────
|
|
566
|
+
// Both arrays should be in canonical order. Compare the ordered ID sequences.
|
|
567
|
+
const evOrderedIds = ev.findings.map(f => f.id).join('\x00');
|
|
568
|
+
const recOrderedIds = rec.findings.map(f => f.id).join('\x00');
|
|
569
|
+
if (evOrderedIds !== recOrderedIds && ev.findings.length === rec.findings.length) {
|
|
570
|
+
graphMismatches.push('finding-order-drift: canonical ordering differs between evidence and replay');
|
|
571
|
+
driftReasons.add('finding-order-drift');
|
|
572
|
+
}
|
|
573
|
+
// ── 6. Checksum equality ───────────────────────────────────────────────────
|
|
574
|
+
if (ev.replayChecksum && rec.replayChecksum) {
|
|
575
|
+
if (ev.replayChecksum !== rec.replayChecksum) {
|
|
576
|
+
const comparison = (0, canonical_invariants_1.compareForReplayEquivalence)(ev.findings, rec.findings);
|
|
577
|
+
graphMismatches.push(`checksum-drift: evidence=${ev.replayChecksum.slice(0, 16)} ` +
|
|
578
|
+
`replay=${rec.replayChecksum.slice(0, 16)}` +
|
|
579
|
+
(comparison.driftDetails ? ` (${comparison.driftDetails})` : ''));
|
|
580
|
+
driftReasons.add('checksum-drift');
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
else if (ev.replayChecksum && !rec.replayChecksum) {
|
|
584
|
+
notes.push('Replay envelope missing replayChecksum (older CLI version); falling back to per-field comparison.');
|
|
426
585
|
}
|
|
427
586
|
}
|
|
428
587
|
const trunc = input.evidencePayload.semanticTruncation
|
|
@@ -430,12 +589,20 @@ function evaluateGovernanceReplayIntegrity(input) {
|
|
|
430
589
|
if (trunc === true) {
|
|
431
590
|
semanticTruncationMismatches.push('Semantic or index truncation flagged on payload');
|
|
432
591
|
}
|
|
433
|
-
const
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
592
|
+
const hasDrift = driftReasons.size > 0 && (driftReasons.has('checksum-drift') ||
|
|
593
|
+
driftReasons.has('severity-drift') ||
|
|
594
|
+
driftReasons.has('determinism-drift') ||
|
|
595
|
+
driftReasons.has('finding-order-drift') ||
|
|
596
|
+
driftReasons.has('missing-finding') ||
|
|
597
|
+
driftReasons.has('extra-finding'));
|
|
598
|
+
const status = hasDrift
|
|
599
|
+
? 'drift-detected'
|
|
600
|
+
: missingArtifacts.length === 0
|
|
601
|
+
&& provenanceMismatches.length === 0
|
|
602
|
+
&& graphMismatches.length === 0
|
|
603
|
+
&& semanticTruncationMismatches.length === 0
|
|
604
|
+
? 'exact'
|
|
605
|
+
: 'bounded-degradation';
|
|
439
606
|
return {
|
|
440
607
|
status,
|
|
441
608
|
missingArtifacts,
|
|
@@ -443,6 +610,7 @@ function evaluateGovernanceReplayIntegrity(input) {
|
|
|
443
610
|
graphMismatches,
|
|
444
611
|
semanticTruncationMismatches,
|
|
445
612
|
notes,
|
|
613
|
+
driftReasons: [...driftReasons].sort(),
|
|
446
614
|
};
|
|
447
615
|
}
|
|
448
616
|
//# sourceMappingURL=canonical-pipeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-pipeline.js","sourceRoot":"","sources":["../../src/governance/canonical-pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"canonical-pipeline.js","sourceRoot":"","sources":["../../src/governance/canonical-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diff Line Provenance (Phase 2 — Diff-Scoped Enforcement)
|
|
3
|
+
*
|
|
4
|
+
* Builds a per-file index of which line numbers were modified in the current
|
|
5
|
+
* diff. Used to classify structural violations as either:
|
|
6
|
+
*
|
|
7
|
+
* introducedOnModifiedLine: true → violation sits on a changed line
|
|
8
|
+
* → BLOCKING eligible (normal behaviour)
|
|
9
|
+
*
|
|
10
|
+
* introducedOnModifiedLine: false → violation is on an unmodified line
|
|
11
|
+
* → demoted to ADVISORY, tagged legacyDebt
|
|
12
|
+
*
|
|
13
|
+
* Only added diff lines are indexed (type === 'added'). Removed lines are by
|
|
14
|
+
* definition gone from the file and cannot carry current violations.
|
|
15
|
+
*
|
|
16
|
+
* The index is a Map<filePath, Set<1-based line number>> built entirely from
|
|
17
|
+
* the parsed diff — no disk I/O.
|
|
18
|
+
*/
|
|
19
|
+
import type { DiffFile } from '@neurcode-ai/diff-parser';
|
|
20
|
+
import type { StructuralViolation } from '../structural-rules/types';
|
|
21
|
+
/** Maps relative file path → set of 1-based line numbers that were added/modified. */
|
|
22
|
+
export type ModifiedLineIndex = Map<string, Set<number>>;
|
|
23
|
+
/**
|
|
24
|
+
* Build a modified-line index from a parsed diff.
|
|
25
|
+
*
|
|
26
|
+
* For each file in the diff, collect all line numbers that are 'added' in any
|
|
27
|
+
* hunk. These are the only lines that could carry new violations.
|
|
28
|
+
*
|
|
29
|
+
* Hunk format from diff-parser: each hunk has a `newStart` (1-based line
|
|
30
|
+
* number of the first line in the post-diff file) and lines with type
|
|
31
|
+
* 'added' | 'removed' | 'context'.
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildModifiedLineIndex(diffFiles: DiffFile[]): ModifiedLineIndex;
|
|
34
|
+
/**
|
|
35
|
+
* Classify a structural violation's provenance against the modified-line index.
|
|
36
|
+
*
|
|
37
|
+
* Returns a new StructuralViolation (never mutates the input) with:
|
|
38
|
+
* - introducedOnModifiedLine set
|
|
39
|
+
* - legacyDebt set if demoting
|
|
40
|
+
* - severity demoted to ADVISORY if legacyDebt
|
|
41
|
+
*
|
|
42
|
+
* @param violation The raw violation from the rule engine
|
|
43
|
+
* @param index The modified-line index for this diff
|
|
44
|
+
* @param strictMode If true (--strict-full-file), skip demotion entirely
|
|
45
|
+
*/
|
|
46
|
+
export declare function classifyViolationProvenance(violation: StructuralViolation, index: ModifiedLineIndex, strictMode?: boolean): StructuralViolation;
|
|
47
|
+
/**
|
|
48
|
+
* Apply provenance classification to a batch of violations.
|
|
49
|
+
*
|
|
50
|
+
* @param violations Raw violations from rule engine
|
|
51
|
+
* @param index Modified-line index for this diff
|
|
52
|
+
* @param strictMode If true, no demotion applied (--strict-full-file)
|
|
53
|
+
*/
|
|
54
|
+
export declare function applyDiffScopedProvenance(violations: StructuralViolation[], index: ModifiedLineIndex, strictMode?: boolean): {
|
|
55
|
+
violations: StructuralViolation[];
|
|
56
|
+
legacyDebtCount: number;
|
|
57
|
+
newViolationCount: number;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=diff-line-provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-line-provenance.d.ts","sourceRoot":"","sources":["../../src/governance/diff-line-provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIrE,sFAAsF;AACtF,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAIzD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CA4B/E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,mBAAmB,EAC9B,KAAK,EAAE,iBAAiB,EACxB,UAAU,UAAQ,GACjB,mBAAmB,CA0BrB;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,mBAAmB,EAAE,EACjC,KAAK,EAAE,iBAAiB,EACxB,UAAU,UAAQ,GACjB;IACD,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAgBA"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Diff Line Provenance (Phase 2 — Diff-Scoped Enforcement)
|
|
4
|
+
*
|
|
5
|
+
* Builds a per-file index of which line numbers were modified in the current
|
|
6
|
+
* diff. Used to classify structural violations as either:
|
|
7
|
+
*
|
|
8
|
+
* introducedOnModifiedLine: true → violation sits on a changed line
|
|
9
|
+
* → BLOCKING eligible (normal behaviour)
|
|
10
|
+
*
|
|
11
|
+
* introducedOnModifiedLine: false → violation is on an unmodified line
|
|
12
|
+
* → demoted to ADVISORY, tagged legacyDebt
|
|
13
|
+
*
|
|
14
|
+
* Only added diff lines are indexed (type === 'added'). Removed lines are by
|
|
15
|
+
* definition gone from the file and cannot carry current violations.
|
|
16
|
+
*
|
|
17
|
+
* The index is a Map<filePath, Set<1-based line number>> built entirely from
|
|
18
|
+
* the parsed diff — no disk I/O.
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.buildModifiedLineIndex = buildModifiedLineIndex;
|
|
22
|
+
exports.classifyViolationProvenance = classifyViolationProvenance;
|
|
23
|
+
exports.applyDiffScopedProvenance = applyDiffScopedProvenance;
|
|
24
|
+
// ── Public API ────────────────────────────────────────────────────────────────
|
|
25
|
+
/**
|
|
26
|
+
* Build a modified-line index from a parsed diff.
|
|
27
|
+
*
|
|
28
|
+
* For each file in the diff, collect all line numbers that are 'added' in any
|
|
29
|
+
* hunk. These are the only lines that could carry new violations.
|
|
30
|
+
*
|
|
31
|
+
* Hunk format from diff-parser: each hunk has a `newStart` (1-based line
|
|
32
|
+
* number of the first line in the post-diff file) and lines with type
|
|
33
|
+
* 'added' | 'removed' | 'context'.
|
|
34
|
+
*/
|
|
35
|
+
function buildModifiedLineIndex(diffFiles) {
|
|
36
|
+
const index = new Map();
|
|
37
|
+
for (const file of diffFiles) {
|
|
38
|
+
const modifiedLines = new Set();
|
|
39
|
+
for (const hunk of file.hunks ?? []) {
|
|
40
|
+
// newStart is the 1-based line number of the first line in the new file
|
|
41
|
+
let currentNewLine = hunk.newStart ?? 1;
|
|
42
|
+
for (const line of hunk.lines ?? []) {
|
|
43
|
+
if (line.type === 'added') {
|
|
44
|
+
modifiedLines.add(currentNewLine);
|
|
45
|
+
currentNewLine++;
|
|
46
|
+
}
|
|
47
|
+
else if (line.type === 'context') {
|
|
48
|
+
// Context lines advance the new-file line counter but are not modified
|
|
49
|
+
currentNewLine++;
|
|
50
|
+
}
|
|
51
|
+
// Removed lines don't appear in the new file, don't advance new counter
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (modifiedLines.size > 0) {
|
|
55
|
+
index.set(file.path, modifiedLines);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return index;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Classify a structural violation's provenance against the modified-line index.
|
|
62
|
+
*
|
|
63
|
+
* Returns a new StructuralViolation (never mutates the input) with:
|
|
64
|
+
* - introducedOnModifiedLine set
|
|
65
|
+
* - legacyDebt set if demoting
|
|
66
|
+
* - severity demoted to ADVISORY if legacyDebt
|
|
67
|
+
*
|
|
68
|
+
* @param violation The raw violation from the rule engine
|
|
69
|
+
* @param index The modified-line index for this diff
|
|
70
|
+
* @param strictMode If true (--strict-full-file), skip demotion entirely
|
|
71
|
+
*/
|
|
72
|
+
function classifyViolationProvenance(violation, index, strictMode = false) {
|
|
73
|
+
// In strict full-file mode, do not apply diff-scoping
|
|
74
|
+
if (strictMode)
|
|
75
|
+
return violation;
|
|
76
|
+
const modifiedLines = index.get(violation.filePath);
|
|
77
|
+
// File not in diff at all — should not happen (we only analyze diff files)
|
|
78
|
+
// but treat conservatively: do not demote, leave unclassified
|
|
79
|
+
if (!modifiedLines) {
|
|
80
|
+
return { ...violation, introducedOnModifiedLine: false, legacyDebt: true, severity: 'ADVISORY' };
|
|
81
|
+
}
|
|
82
|
+
const onModifiedLine = modifiedLines.has(violation.line);
|
|
83
|
+
if (onModifiedLine) {
|
|
84
|
+
return { ...violation, introducedOnModifiedLine: true };
|
|
85
|
+
}
|
|
86
|
+
// Violation is on an unmodified (historical) line — demote
|
|
87
|
+
return {
|
|
88
|
+
...violation,
|
|
89
|
+
introducedOnModifiedLine: false,
|
|
90
|
+
legacyDebt: true,
|
|
91
|
+
// Demote BLOCKING → ADVISORY for legacy debt; ADVISORY stays ADVISORY
|
|
92
|
+
severity: 'ADVISORY',
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Apply provenance classification to a batch of violations.
|
|
97
|
+
*
|
|
98
|
+
* @param violations Raw violations from rule engine
|
|
99
|
+
* @param index Modified-line index for this diff
|
|
100
|
+
* @param strictMode If true, no demotion applied (--strict-full-file)
|
|
101
|
+
*/
|
|
102
|
+
function applyDiffScopedProvenance(violations, index, strictMode = false) {
|
|
103
|
+
const result = [];
|
|
104
|
+
let legacyDebtCount = 0;
|
|
105
|
+
let newViolationCount = 0;
|
|
106
|
+
for (const v of violations) {
|
|
107
|
+
const classified = classifyViolationProvenance(v, index, strictMode);
|
|
108
|
+
result.push(classified);
|
|
109
|
+
if (classified.legacyDebt) {
|
|
110
|
+
legacyDebtCount++;
|
|
111
|
+
}
|
|
112
|
+
else if (classified.introducedOnModifiedLine === true) {
|
|
113
|
+
newViolationCount++;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return { violations: result, legacyDebtCount, newViolationCount };
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=diff-line-provenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-line-provenance.js","sourceRoot":"","sources":["../../src/governance/diff-line-provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pilot Readiness Validator (Phase 6 — Pilot Readiness Hardening)
|
|
3
|
+
*
|
|
4
|
+
* Checks that a repository meets all prerequisites for a reliable Neurcode
|
|
5
|
+
* onboarding. Designed to be runnable in under 10 seconds with no external
|
|
6
|
+
* network calls.
|
|
7
|
+
*
|
|
8
|
+
* Usage: runPilotReadinessCheck(projectRoot) → PilotReadinessReport
|
|
9
|
+
*
|
|
10
|
+
* Returns:
|
|
11
|
+
* ready: true if all blockers pass (warnings are non-blocking)
|
|
12
|
+
* blockers: list of hard failures that prevent governance from running
|
|
13
|
+
* warnings: list of soft issues that degrade experience but don't block
|
|
14
|
+
*/
|
|
15
|
+
export interface PilotReadinessReport {
|
|
16
|
+
ready: boolean;
|
|
17
|
+
blockers: string[];
|
|
18
|
+
warnings: string[];
|
|
19
|
+
checks: PilotReadinessCheck[];
|
|
20
|
+
durationMs: number;
|
|
21
|
+
}
|
|
22
|
+
export interface PilotReadinessCheck {
|
|
23
|
+
name: string;
|
|
24
|
+
status: 'pass' | 'warn' | 'fail';
|
|
25
|
+
message: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Run all pilot readiness checks for a repository.
|
|
29
|
+
*
|
|
30
|
+
* @param projectRoot Absolute path to the project root
|
|
31
|
+
* @returns PilotReadinessReport with ready flag, blockers, warnings, and per-check results
|
|
32
|
+
*/
|
|
33
|
+
export declare function runPilotReadinessCheck(projectRoot: string): PilotReadinessReport;
|
|
34
|
+
//# sourceMappingURL=pilot-readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pilot-readiness.d.ts","sourceRoot":"","sources":["../../src/governance/pilot-readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAuLD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CA6BhF"}
|