clud-bug 0.7.0-rc.21 → 0.7.0-rc.23
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/data/canonical-v1.json +39 -34
- package/data/rulesets/baseline.json +29 -0
- package/data/rulesets/clud-bug.json +39 -0
- package/data/rulesets/public-guard.json +29 -0
- package/data/rulesets/skdd.json +42 -0
- package/dist/cli/configure-github.d.ts +13 -4
- package/dist/cli/configure-github.d.ts.map +1 -1
- package/dist/cli/configure-github.js +73 -27
- package/dist/cli/configure-github.js.map +1 -1
- package/dist/cli/hooks.d.ts.map +1 -1
- package/dist/cli/hooks.js +5 -1
- package/dist/cli/hooks.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +33 -10
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/post-check-run.d.ts +2 -0
- package/dist/cli/post-check-run.d.ts.map +1 -1
- package/dist/cli/post-check-run.js +124 -5
- package/dist/cli/post-check-run.js.map +1 -1
- package/dist/cli/review-prompt.d.ts +11 -1
- package/dist/cli/review-prompt.d.ts.map +1 -1
- package/dist/cli/review-prompt.js +141 -37
- package/dist/cli/review-prompt.js.map +1 -1
- package/dist/core/check-verdict.d.ts +1 -1
- package/dist/core/check-verdict.d.ts.map +1 -1
- package/dist/core/check-verdict.js +14 -1
- package/dist/core/check-verdict.js.map +1 -1
- package/dist/core/configure-github.d.ts +184 -119
- package/dist/core/configure-github.d.ts.map +1 -1
- package/dist/core/configure-github.js +407 -209
- package/dist/core/configure-github.js.map +1 -1
- package/dist/core/index.d.ts +4 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/invariants.d.ts +46 -0
- package/dist/core/invariants.d.ts.map +1 -0
- package/dist/core/invariants.js +96 -0
- package/dist/core/invariants.js.map +1 -0
- package/dist/core/notary-bundle.d.ts +95 -0
- package/dist/core/notary-bundle.d.ts.map +1 -0
- package/dist/core/notary-bundle.js +129 -0
- package/dist/core/notary-bundle.js.map +1 -0
- package/dist/core/notary-validate.d.ts +86 -0
- package/dist/core/notary-validate.d.ts.map +1 -0
- package/dist/core/notary-validate.js +270 -0
- package/dist/core/notary-validate.js.map +1 -0
- package/dist/core/prompt-builder.js +2 -2
- package/dist/core/review-schema-zod.d.ts +48 -0
- package/dist/core/review-schema-zod.d.ts.map +1 -1
- package/dist/core/review-schema-zod.js +5 -0
- package/dist/core/review-schema-zod.js.map +1 -1
- package/dist/core/review-schema.d.ts +3 -0
- package/dist/core/review-schema.d.ts.map +1 -1
- package/dist/core/review-schema.js +9 -0
- package/dist/core/review-schema.js.map +1 -1
- package/dist/core/version.d.ts +1 -1
- package/dist/core/version.js +1 -1
- package/package.json +1 -1
- package/src/cli/configure-github.ts +108 -31
- package/src/cli/hooks.ts +5 -1
- package/src/cli/main.ts +32 -10
- package/src/cli/post-check-run.ts +149 -5
- package/src/cli/review-prompt.ts +162 -36
- package/src/core/check-verdict.ts +14 -2
- package/src/core/configure-github.ts +591 -349
- package/src/core/index.ts +46 -0
- package/src/core/invariants.ts +123 -0
- package/src/core/notary-bundle.ts +196 -0
- package/src/core/notary-validate.ts +343 -0
- package/src/core/prompt-builder.ts +2 -2
- package/src/core/review-schema-zod.ts +5 -0
- package/src/core/review-schema.ts +12 -0
- package/src/core/version.ts +1 -1
- package/templates/skills/design/designing-elite-ui.md +57 -0
- package/templates/workflow-py.yml.tmpl +1 -1
- package/templates/workflow-ts.yml.tmpl +1 -1
- package/templates/workflow.yml.tmpl +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure-github.js","sourceRoot":"","sources":["../../src/core/configure-github.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"configure-github.js","sourceRoot":"","sources":["../../src/core/configure-github.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -12,13 +12,16 @@ export { parsePriorReviewFile, diffFindings, findingIdentity, type ParsedFinding
|
|
|
12
12
|
export { findingId, parseHeadLines, findingAnchorable, extractAnchorContext, renderThreadBody, extractFindingIdFromBody, parseThreadBody, planInlineThreads, REVIEW_THREADS_QUERY, REVIEW_THREADS_STATE_QUERY, RESOLVE_THREAD_MUTATION, ADD_REPLY_MUTATION, type Severity as InlineThreadSeverity, type FindingForThread, type DiffFile, type InlineCommentPlan, type PlanInlineThreadsResult, } from './inline-threads.js';
|
|
13
13
|
export { resolveAutoResolveConfig, readAutoResolveConfigFromCludBug, runAutoResolve, applyResolutionRules, renderAutoResolveMarker, DEFAULT_AUTO_RESOLVE_CONFIG, type AutoResolveConfig, type PriorThread, type PriorFinding, type ThreadAction, type AutoResolveInput, type AutoResolveResult, type VerifyOutcome, } from './auto-resolve.js';
|
|
14
14
|
export { VERIFIER_SYSTEM, buildVerifierSystem, buildVerifierPrompt, parseVerifierResponse, type VerifierOutputMode, type VerifySingleFindingInput, } from './resolve-verifier.js';
|
|
15
|
-
export { applyCanonicalRuleset, loadCanonicalV1, type CanonicalRuleset, type OctokitLike, type ApplyCanonicalRulesetParams, type ApplyResult, } from './configure-github.js';
|
|
15
|
+
export { applyCanonicalRuleset, loadCanonicalV1, loadPreset, isPresetName, PRESET_NAMES, DEFAULT_PRESET, CANONICAL_REPO_CONVENIENCES, type CanonicalRuleset, type PresetName, type RepoConveniences, type OctokitLike, type ApplyCanonicalRulesetParams, type ApplyResult, } from './configure-github.js';
|
|
16
16
|
export { readReviewPassesConfig, extractSkillReviewPassesOverride, resolveReviewPasses, roleForPass, anyMultiPass, totalPassCount, REVIEW_PASS_MODES, MAX_PASSES, MIN_PASSES, BUILTIN_DEFAULT, BUILTIN_ROLES, type ApplyTo, type ReviewPassesEntry, type ReviewRoleTier, type ReviewRole, type ResolvedReviewPasses, type ReviewPassesConfig, type SkillReviewPassesFrontmatter, type ReviewPlanSkill, type ResolveReviewPassesInput, type ResolveReviewPassesResult, } from './review-plan.js';
|
|
17
17
|
export { perCallCeiling, estimateBudget, estimateVerifierBudget, __setModelCeilingForTests, DEFAULT_PER_PR_CAP_USD, DEFAULT_VERIFIER_PER_PR_CAP_USD, type BudgetEstimateInput, type BudgetEstimate, type BudgetVerdict, type VerifierBudgetInput, type VerifierBudgetEstimate, type VerifierBudgetVerdict, } from './budget-plan.js';
|
|
18
18
|
export { planReview, LARGE_DIFF_THRESHOLD_BYTES, type PlanReviewInput, type ReviewPlan, type ReviewTrigger, type TierDownReason, } from './plan-review.js';
|
|
19
19
|
export { aggregatePasses, deriveConsensus, resolveVerdict, shouldEscalate, type CrossCheckVerdict, type CrossCheckPassResult, type AggregateInput, type EscalationInput, } from './multi-pass-aggregate.js';
|
|
20
20
|
export { readDesignConfig, shouldRunDesign, BUILTIN_DESIGN_CONFIG, type DesignConfig, type DesignGate, } from './design.js';
|
|
21
|
+
export { readInvariantsConfig, shouldRunProbes, BUILTIN_INVARIANTS_CONFIG, type Invariant, type InvariantsConfig, } from './invariants.js';
|
|
21
22
|
export { readReviewContext, extractPrContext, fenceUntrustedContext, EMPTY_REVIEW_CONTEXT, MAX_REVIEW_CONTEXT_BYTES, type ReviewContextConfig, } from './review-context.js';
|
|
22
23
|
export { deriveCheck, normalizeVerdict, CLUD_BUG_CHECK_NAME, type ReviewVerdict, type CheckConclusion, type CheckSource, type DerivedCheck, type DeriveCheckInput, } from './check-verdict.js';
|
|
24
|
+
export { buildBundle, parseBundle, notaryResponseIsRejection, NOTARY_BUNDLE_VERSION, NOTARY_PROTOCOL_VERSION, type NotaryBundle, type NotaryFinding, type NotarySeverity, type GroundingKind, } from './notary-bundle.js';
|
|
25
|
+
export { validateBundle, validateCoverage, validateGrounding, validateConsistency, spanAppearsInDiff, splitUnifiedDiff, type BundleValidation, type CoverageResult, type GroundingResult, type GroundingViolation, type ConsistencyResult, } from './notary-validate.js';
|
|
23
26
|
export { API_BASE, MAX_SKILLS, SkillsClient, normalizeList, rankAndCap, readReviewMode, readAppliesTo, appliesToPr, appliesToAuthor, partitionByReviewMode, extractPerSkillLine, selectReviewHeader, extractFirstReviewHeaderLine, selectReviewBody, extractStatsHeader, isCriticalReviewHeader, classifyPerSkillOutcome, parseFrontmatter, stripFrontmatter, type SkillDescriptor, type RankableSkill, type AppliesToRule, type SkillWithOptionalContent, type PrComment, type ReviewStatsHeader, type SkillFrontmatter, type SkillSource, type SkillReviewMode, type SkillKind, type VoiceScope, } from './skills.js';
|
|
24
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.js
CHANGED
|
@@ -61,7 +61,7 @@ export { VERIFIER_SYSTEM, buildVerifierSystem, buildVerifierPrompt, parseVerifie
|
|
|
61
61
|
// CLI side wraps `gh api` in an Octokit-like adapter and the App passes
|
|
62
62
|
// its real Octokit instance. Shipped in v0.7.0-rc.4 for Marketplace prep
|
|
63
63
|
// (Phase 6 task #227).
|
|
64
|
-
export { applyCanonicalRuleset, loadCanonicalV1, } from './configure-github.js';
|
|
64
|
+
export { applyCanonicalRuleset, loadCanonicalV1, loadPreset, isPresetName, PRESET_NAMES, DEFAULT_PRESET, CANONICAL_REPO_CONVENIENCES, } from './configure-github.js';
|
|
65
65
|
// Wave 6b — review-planning "brain" ported from clud-bug-app/lib. Three pure
|
|
66
66
|
// modules: the multi-pass config resolver (`review-plan`), the Layer-1 cost
|
|
67
67
|
// gate (`budget-plan`), and the multi-pass aggregator (`multi-pass-aggregate`).
|
|
@@ -77,7 +77,18 @@ export { perCallCeiling, estimateBudget, estimateVerifierBudget, __setModelCeili
|
|
|
77
77
|
export { planReview, LARGE_DIFF_THRESHOLD_BYTES, } from './plan-review.js';
|
|
78
78
|
export { aggregatePasses, deriveConsensus, resolveVerdict, shouldEscalate, } from './multi-pass-aggregate.js';
|
|
79
79
|
export { readDesignConfig, shouldRunDesign, BUILTIN_DESIGN_CONFIG, } from './design.js';
|
|
80
|
+
// Phase R (clud-bug-app #87) — executable-probe invariants: config + in-scope gate.
|
|
81
|
+
// A probe is a repo-declared command that goes RED when a behavioral property is
|
|
82
|
+
// violated; RED output grounds a finding equal to a quoted diff line, catching the
|
|
83
|
+
// emergent / combinatorial / cross-cutting bugs the "quote-the-line" gate misses.
|
|
84
|
+
export { readInvariantsConfig, shouldRunProbes, BUILTIN_INVARIANTS_CONFIG, } from './invariants.js';
|
|
80
85
|
export { readReviewContext, extractPrContext, fenceUntrustedContext, EMPTY_REVIEW_CONTEXT, MAX_REVIEW_CONTEXT_BYTES, } from './review-context.js';
|
|
81
86
|
export { deriveCheck, normalizeVerdict, CLUD_BUG_CHECK_NAME, } from './check-verdict.js';
|
|
87
|
+
// Phase Z3 — the NOTARY. `notary-bundle` owns the attestation-bundle shape (the
|
|
88
|
+
// contract Z4's `/notarize` consumes) + a tolerant parser; `notary-validate` owns
|
|
89
|
+
// the pure deterministic ③④⑤ checks (coverage / grounding / consistency) both the
|
|
90
|
+
// local CLI and the server re-run. SPEC §10.3.3.
|
|
91
|
+
export { buildBundle, parseBundle, notaryResponseIsRejection, NOTARY_BUNDLE_VERSION, NOTARY_PROTOCOL_VERSION, } from './notary-bundle.js';
|
|
92
|
+
export { validateBundle, validateCoverage, validateGrounding, validateConsistency, spanAppearsInDiff, splitUnifiedDiff, } from './notary-validate.js';
|
|
82
93
|
export { API_BASE, MAX_SKILLS, SkillsClient, normalizeList, rankAndCap, readReviewMode, readAppliesTo, appliesToPr, appliesToAuthor, partitionByReviewMode, extractPerSkillLine, selectReviewHeader, extractFirstReviewHeaderLine, selectReviewBody, extractStatsHeader, isCriticalReviewHeader, classifyPerSkillOutcome, parseFrontmatter, stripFrontmatter, } from './skills.js';
|
|
83
94
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ReviewTrigger } from './plan-review.js';
|
|
2
|
+
/** A repo-declared behavioral property with an executable probe. */
|
|
3
|
+
export interface Invariant {
|
|
4
|
+
/** Human name, shown in the probe-results block + any resulting finding. */
|
|
5
|
+
name: string;
|
|
6
|
+
/** Glob(s) over changed paths; the probe is in scope only when the diff hits one. */
|
|
7
|
+
appliesTo: string[];
|
|
8
|
+
/** Shell command; a non-zero exit is RED (the property is violated). */
|
|
9
|
+
probe: string;
|
|
10
|
+
/** Optional expected-output / golden reference, surfaced in the prompt + transcript. */
|
|
11
|
+
expect?: string;
|
|
12
|
+
}
|
|
13
|
+
/** Resolved `.clud-bug.json` `invariants` config (defaults applied). */
|
|
14
|
+
export interface InvariantsConfig {
|
|
15
|
+
/** Master switch. Default OFF — probes never run unless this is true. */
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
/** The validated invariant set (malformed entries dropped). */
|
|
18
|
+
invariants: Invariant[];
|
|
19
|
+
}
|
|
20
|
+
/** Off-by-default builtin — the cost-control floor (probes build+run, so they cost). */
|
|
21
|
+
export declare const BUILTIN_INVARIANTS_CONFIG: InvariantsConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Read + normalize the `invariants` config from a parsed `.clud-bug.json` manifest.
|
|
24
|
+
*
|
|
25
|
+
* Accepts two authoring forms (tolerant, mirroring `readReviewPassesConfig`):
|
|
26
|
+
* - a bare array: `"invariants": [ { name, appliesTo, probe, expect? }, … ]`
|
|
27
|
+
* - a wrapper object: `"invariants": { "enabled": false, "list": [ … ] }` (a
|
|
28
|
+
* kill-switch that retains the config while turning probes off)
|
|
29
|
+
*
|
|
30
|
+
* A missing/malformed block, or one with zero *valid* invariants, resolves to the
|
|
31
|
+
* off-by-default builtin — a typo can never silently enable the cost-bearing probe
|
|
32
|
+
* run. Declaring at least one valid invariant is the explicit opt-in.
|
|
33
|
+
*/
|
|
34
|
+
export declare function readInvariantsConfig(manifest: unknown): InvariantsConfig;
|
|
35
|
+
/**
|
|
36
|
+
* Consumer-agnostic in-scope gate for the probe run. Pure.
|
|
37
|
+
*
|
|
38
|
+
* True only when the repo opted in (`enabled`), at least one invariant's
|
|
39
|
+
* `appliesTo` matched the changed paths (`applicableCount`, computed by the caller
|
|
40
|
+
* with the existing glob matcher), and this is a PR-level review — build+run is
|
|
41
|
+
* too expensive for the per-commit / per-push triggers. Consumers layer their own
|
|
42
|
+
* runtime preconditions on top (local: a shell + toolchain present; hosted:
|
|
43
|
+
* static-degrade; Action: a dedicated CI job).
|
|
44
|
+
*/
|
|
45
|
+
export declare function shouldRunProbes(config: InvariantsConfig, applicableCount: number, trigger: ReviewTrigger): boolean;
|
|
46
|
+
//# sourceMappingURL=invariants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariants.d.ts","sourceRoot":"","sources":["../../src/core/invariants.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,wFAAwF;AACxF,eAAO,MAAM,yBAAyB,EAAE,gBAGvC,CAAC;AAyBF;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAuBxE;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,gBAAgB,EACxB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,aAAa,GACrB,OAAO,CAET"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
// Executable-probe invariants: config + run-gate (Phase R / clud-bug-app #87).
|
|
2
|
+
//
|
|
3
|
+
// An INVARIANT is a repo-declared behavioral property paired with an executable
|
|
4
|
+
// PROBE: a shell command that exits non-zero (RED) when the property is violated.
|
|
5
|
+
// Unlike a prose `reviewContext` instruction — which is checked *statically*
|
|
6
|
+
// against the diff and so can never fire on a bug that lives in no single changed
|
|
7
|
+
// line — a probe is *run*, so it can ground the emergent / combinatorial /
|
|
8
|
+
// cross-cutting bugs the "quote-the-line" gate structurally misses. A finding
|
|
9
|
+
// fires only when a probe runs RED; RED output is trusted machine evidence, equal
|
|
10
|
+
// in standing to a quoted diff line.
|
|
11
|
+
//
|
|
12
|
+
// This module is the shared, pure brain (like `design.ts`): every surface resolves
|
|
13
|
+
// config + the in-scope gate here so policy can't fork. Whether a probe can
|
|
14
|
+
// actually be *executed* differs per surface (local/max: full shell; hosted
|
|
15
|
+
// serverless: static-degrade, no checkout; Action: a separate CI job outside the
|
|
16
|
+
// allowlist-sandboxed reviewer) — that is a consumer concern. This module only
|
|
17
|
+
// decides *whether* probes are in scope for a given diff + trigger.
|
|
18
|
+
/** Off-by-default builtin — the cost-control floor (probes build+run, so they cost). */
|
|
19
|
+
export const BUILTIN_INVARIANTS_CONFIG = {
|
|
20
|
+
enabled: false,
|
|
21
|
+
invariants: [],
|
|
22
|
+
};
|
|
23
|
+
/** Parse + validate one raw invariant entry. Tolerant; returns null if unusable. */
|
|
24
|
+
function parseInvariant(raw) {
|
|
25
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
26
|
+
return null;
|
|
27
|
+
const o = raw;
|
|
28
|
+
const name = typeof o['name'] === 'string' && o['name'].trim() ? o['name'] : null;
|
|
29
|
+
const probe = typeof o['probe'] === 'string' && o['probe'].trim() ? o['probe'] : null;
|
|
30
|
+
if (!name || !probe)
|
|
31
|
+
return null;
|
|
32
|
+
// appliesTo: accept a single glob string or an array of them; drop empties.
|
|
33
|
+
let appliesTo = [];
|
|
34
|
+
if (typeof o['appliesTo'] === 'string' && o['appliesTo'].trim()) {
|
|
35
|
+
appliesTo = [o['appliesTo']];
|
|
36
|
+
}
|
|
37
|
+
else if (Array.isArray(o['appliesTo'])) {
|
|
38
|
+
appliesTo = o['appliesTo'].filter((g) => typeof g === 'string' && g.trim().length > 0);
|
|
39
|
+
}
|
|
40
|
+
if (appliesTo.length === 0)
|
|
41
|
+
return null; // no globs → cannot cost-gate → unusable
|
|
42
|
+
const invariant = { name, appliesTo, probe };
|
|
43
|
+
if (typeof o['expect'] === 'string')
|
|
44
|
+
invariant.expect = o['expect'];
|
|
45
|
+
return invariant;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Read + normalize the `invariants` config from a parsed `.clud-bug.json` manifest.
|
|
49
|
+
*
|
|
50
|
+
* Accepts two authoring forms (tolerant, mirroring `readReviewPassesConfig`):
|
|
51
|
+
* - a bare array: `"invariants": [ { name, appliesTo, probe, expect? }, … ]`
|
|
52
|
+
* - a wrapper object: `"invariants": { "enabled": false, "list": [ … ] }` (a
|
|
53
|
+
* kill-switch that retains the config while turning probes off)
|
|
54
|
+
*
|
|
55
|
+
* A missing/malformed block, or one with zero *valid* invariants, resolves to the
|
|
56
|
+
* off-by-default builtin — a typo can never silently enable the cost-bearing probe
|
|
57
|
+
* run. Declaring at least one valid invariant is the explicit opt-in.
|
|
58
|
+
*/
|
|
59
|
+
export function readInvariantsConfig(manifest) {
|
|
60
|
+
const raw = manifest?.invariants;
|
|
61
|
+
let list;
|
|
62
|
+
let enabledOverride;
|
|
63
|
+
if (Array.isArray(raw)) {
|
|
64
|
+
list = raw;
|
|
65
|
+
}
|
|
66
|
+
else if (raw && typeof raw === 'object') {
|
|
67
|
+
const o = raw;
|
|
68
|
+
list = o['list'] ?? o['invariants'];
|
|
69
|
+
if (typeof o['enabled'] === 'boolean')
|
|
70
|
+
enabledOverride = o['enabled'];
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
return { enabled: false, invariants: [] };
|
|
74
|
+
}
|
|
75
|
+
const invariants = Array.isArray(list)
|
|
76
|
+
? list.map(parseInvariant).filter((i) => i !== null)
|
|
77
|
+
: [];
|
|
78
|
+
// Default ON when invariants are present; an explicit `enabled: false` disables
|
|
79
|
+
// while retaining them (kill-switch). Never enabled with zero valid invariants.
|
|
80
|
+
const enabled = (enabledOverride ?? true) && invariants.length > 0;
|
|
81
|
+
return { enabled, invariants };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Consumer-agnostic in-scope gate for the probe run. Pure.
|
|
85
|
+
*
|
|
86
|
+
* True only when the repo opted in (`enabled`), at least one invariant's
|
|
87
|
+
* `appliesTo` matched the changed paths (`applicableCount`, computed by the caller
|
|
88
|
+
* with the existing glob matcher), and this is a PR-level review — build+run is
|
|
89
|
+
* too expensive for the per-commit / per-push triggers. Consumers layer their own
|
|
90
|
+
* runtime preconditions on top (local: a shell + toolchain present; hosted:
|
|
91
|
+
* static-degrade; Action: a dedicated CI job).
|
|
92
|
+
*/
|
|
93
|
+
export function shouldRunProbes(config, applicableCount, trigger) {
|
|
94
|
+
return config.enabled && applicableCount > 0 && trigger === 'pr';
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=invariants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariants.js","sourceRoot":"","sources":["../../src/core/invariants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { ReviewVerdict } from './check-verdict.js';
|
|
2
|
+
/** Bundle wire-format version. Bump on a breaking shape change. */
|
|
3
|
+
export declare const NOTARY_BUNDLE_VERSION = 1;
|
|
4
|
+
/**
|
|
5
|
+
* The protocol contract the bundle attests to — tracks SPEC §10.3.3
|
|
6
|
+
* ("Attestation integrity"). Bump in lockstep with a §10.3.3 contract change
|
|
7
|
+
* (coordinate the SPEC edit with logmind — the SPEC is the shared SkDD contract).
|
|
8
|
+
*/
|
|
9
|
+
export declare const NOTARY_PROTOCOL_VERSION = "1.2.0";
|
|
10
|
+
export type NotarySeverity = 'critical' | 'minor' | 'preexisting';
|
|
11
|
+
/**
|
|
12
|
+
* How a finding is grounded (mirrors the Phase R grounding forms: quote /
|
|
13
|
+
* reproduction / invariant). The notary deterministically verifies `quote`
|
|
14
|
+
* (the span must appear in the ground-truth diff); `reproduction`/`invariant`
|
|
15
|
+
* carry no diff-checkable artifact and are deferred to the clean-case audit.
|
|
16
|
+
*/
|
|
17
|
+
export type GroundingKind = 'quote' | 'reproduction' | 'invariant';
|
|
18
|
+
/** A single finding as carried in the attestation bundle. */
|
|
19
|
+
export interface NotaryFinding {
|
|
20
|
+
severity: NotarySeverity;
|
|
21
|
+
/** File path (repo-root-relative). Absent for a genuinely cross-cutting finding. */
|
|
22
|
+
file?: string;
|
|
23
|
+
/** 1-indexed line in `file`. */
|
|
24
|
+
line?: number;
|
|
25
|
+
summary: string;
|
|
26
|
+
/**
|
|
27
|
+
* Evidence anchoring the finding. REQUIRED for `critical` (the notary rejects
|
|
28
|
+
* a bare critical): a verbatim span from a changed line (`quote`), a
|
|
29
|
+
* reproduction's command+output (`reproduction`), or the violated-invariant
|
|
30
|
+
* statement (`invariant`).
|
|
31
|
+
*/
|
|
32
|
+
grounding?: string;
|
|
33
|
+
/** Which grounding form `grounding` uses (defaults to `quote` when absent). */
|
|
34
|
+
grounding_kind?: GroundingKind;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The attestation bundle — assembled locally from a completed review, submitted
|
|
38
|
+
* to the notary. Z4's `/notarize` consumes exactly this shape, re-validates ①–⑤
|
|
39
|
+
* against GitHub, then posts the pinned check.
|
|
40
|
+
*/
|
|
41
|
+
export interface NotaryBundle {
|
|
42
|
+
bundle_version: number;
|
|
43
|
+
/** `owner/repo`. */
|
|
44
|
+
repo: string;
|
|
45
|
+
/** PR number. Absent for a commit-trigger local pre-notarization (no PR yet). */
|
|
46
|
+
pr?: number;
|
|
47
|
+
head_sha: string;
|
|
48
|
+
verdict: ReviewVerdict;
|
|
49
|
+
findings: NotaryFinding[];
|
|
50
|
+
/**
|
|
51
|
+
* The changed-file paths the review covered. The notary set-diffs this against
|
|
52
|
+
* GitHub's ground-truth changed files (③ coverage) so a partial / stale-checkout
|
|
53
|
+
* review can't be certified as complete.
|
|
54
|
+
*/
|
|
55
|
+
coverage: string[];
|
|
56
|
+
/** The review recipe / CLI version that produced this bundle (provenance). */
|
|
57
|
+
recipe_version: string;
|
|
58
|
+
/** The SPEC §10.3.3 contract version this bundle conforms to. */
|
|
59
|
+
protocol_version: string;
|
|
60
|
+
/**
|
|
61
|
+
* Single-use nonce bound to (repo, PR, head_sha), minted by the server
|
|
62
|
+
* (`POST /challenge`, Z4). Absent on a locally pre-built bundle; the server
|
|
63
|
+
* requires it before certifying (① replay-closure).
|
|
64
|
+
*/
|
|
65
|
+
nonce?: string;
|
|
66
|
+
}
|
|
67
|
+
/** Assemble a bundle from a completed review, stamping the wire + protocol versions. */
|
|
68
|
+
export declare function buildBundle(input: {
|
|
69
|
+
repo: string;
|
|
70
|
+
pr?: number;
|
|
71
|
+
headSha: string;
|
|
72
|
+
verdict: ReviewVerdict;
|
|
73
|
+
findings: NotaryFinding[];
|
|
74
|
+
coverage: string[];
|
|
75
|
+
recipeVersion: string;
|
|
76
|
+
nonce?: string;
|
|
77
|
+
}): NotaryBundle;
|
|
78
|
+
/**
|
|
79
|
+
* Classify a notary `/notarize` HTTP response for the submit path. A definitive
|
|
80
|
+
* client error (4xx) is the server AUTHORITATIVELY refusing to certify this
|
|
81
|
+
* bundle → terminal (post NO check). A 5xx or a network error is the endpoint
|
|
82
|
+
* being DOWN, not a verdict → the caller may fall back to the self-attested
|
|
83
|
+
* check. Conflating the two would let a server "no" be overridden by a local green.
|
|
84
|
+
*/
|
|
85
|
+
export declare function notaryResponseIsRejection(status: number): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Tolerant parser for a bundle read from disk / the wire. Returns null on a
|
|
88
|
+
* missing or malformed required field (never throws) — the CLI treats a null as
|
|
89
|
+
* "no submittable bundle" and falls back to the self-attested path. A malformed
|
|
90
|
+
* finding is DROPPED, not tolerated silently into a green: if any finding is
|
|
91
|
+
* unparseable the whole bundle is rejected (null), so a truncated payload can't
|
|
92
|
+
* be certified as if it were complete.
|
|
93
|
+
*/
|
|
94
|
+
export declare function parseBundle(raw: unknown): NotaryBundle | null;
|
|
95
|
+
//# sourceMappingURL=notary-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notary-bundle.d.ts","sourceRoot":"","sources":["../../src/core/notary-bundle.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,CAAC;AAElE;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC;AAEnE,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,YAAY,CAaf;AAMD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjE;AAsBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAoC7D"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
// Phase Z3 — the notary ATTESTATION BUNDLE.
|
|
2
|
+
//
|
|
3
|
+
// clud-bug is a NOTARY: it VALIDATES + CERTIFIES that a review actually ran
|
|
4
|
+
// before a green `clud-bug-review` check gates a merge (protocol SPEC §10.3.3).
|
|
5
|
+
// The bundle is the wire artifact the local CLI assembles from a completed
|
|
6
|
+
// review and submits to the notary (`POST /notarize`, built in Z4). The server
|
|
7
|
+
// re-validates it against GitHub's ground-truth diff, then — as the SOLE issuer
|
|
8
|
+
// — posts the pinned check. This module owns the bundle SHAPE (the contract Z4
|
|
9
|
+
// consumes) + a tolerant parser; the pure ①–⑤ checks live in `./notary-validate`.
|
|
10
|
+
//
|
|
11
|
+
// Design note (grounding): `grounding` is REQUIRED-for-critical HERE (enforced
|
|
12
|
+
// by `validateGrounding`), not in the shared review-output schema
|
|
13
|
+
// (`./review-schema`). A schema-`required` field can be satisfied with junk; the
|
|
14
|
+
// load-bearing guarantee is the notary re-checking the quoted span against the
|
|
15
|
+
// diff. Keeping the review-output field optional avoids a discriminated-union
|
|
16
|
+
// ripple through the App's finding aggregator and any coupling to the live
|
|
17
|
+
// hosted Zod pipeline. See docs/decisions-branches/feat-notary-z3.md.
|
|
18
|
+
/** Bundle wire-format version. Bump on a breaking shape change. */
|
|
19
|
+
export const NOTARY_BUNDLE_VERSION = 1;
|
|
20
|
+
/**
|
|
21
|
+
* The protocol contract the bundle attests to — tracks SPEC §10.3.3
|
|
22
|
+
* ("Attestation integrity"). Bump in lockstep with a §10.3.3 contract change
|
|
23
|
+
* (coordinate the SPEC edit with logmind — the SPEC is the shared SkDD contract).
|
|
24
|
+
*/
|
|
25
|
+
export const NOTARY_PROTOCOL_VERSION = '1.2.0';
|
|
26
|
+
/** Assemble a bundle from a completed review, stamping the wire + protocol versions. */
|
|
27
|
+
export function buildBundle(input) {
|
|
28
|
+
return {
|
|
29
|
+
bundle_version: NOTARY_BUNDLE_VERSION,
|
|
30
|
+
repo: input.repo,
|
|
31
|
+
...(input.pr !== undefined ? { pr: input.pr } : {}),
|
|
32
|
+
head_sha: input.headSha,
|
|
33
|
+
verdict: input.verdict,
|
|
34
|
+
findings: input.findings,
|
|
35
|
+
coverage: input.coverage,
|
|
36
|
+
recipe_version: input.recipeVersion,
|
|
37
|
+
protocol_version: NOTARY_PROTOCOL_VERSION,
|
|
38
|
+
...(input.nonce !== undefined ? { nonce: input.nonce } : {}),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const SEVERITIES = new Set(['critical', 'minor', 'preexisting']);
|
|
42
|
+
const GROUNDING_KINDS = new Set(['quote', 'reproduction', 'invariant']);
|
|
43
|
+
const VERDICTS = new Set(['clean', 'critical', 'failed', 'unverified']);
|
|
44
|
+
/**
|
|
45
|
+
* Classify a notary `/notarize` HTTP response for the submit path. A definitive
|
|
46
|
+
* client error (4xx) is the server AUTHORITATIVELY refusing to certify this
|
|
47
|
+
* bundle → terminal (post NO check). A 5xx or a network error is the endpoint
|
|
48
|
+
* being DOWN, not a verdict → the caller may fall back to the self-attested
|
|
49
|
+
* check. Conflating the two would let a server "no" be overridden by a local green.
|
|
50
|
+
*/
|
|
51
|
+
export function notaryResponseIsRejection(status) {
|
|
52
|
+
return status >= 400 && status < 500;
|
|
53
|
+
}
|
|
54
|
+
function parseFinding(raw) {
|
|
55
|
+
if (!raw || typeof raw !== 'object')
|
|
56
|
+
return null;
|
|
57
|
+
const r = raw;
|
|
58
|
+
if (typeof r['severity'] !== 'string' || !SEVERITIES.has(r['severity']))
|
|
59
|
+
return null;
|
|
60
|
+
if (typeof r['summary'] !== 'string' || !r['summary'])
|
|
61
|
+
return null;
|
|
62
|
+
const finding = {
|
|
63
|
+
severity: r['severity'],
|
|
64
|
+
summary: r['summary'],
|
|
65
|
+
};
|
|
66
|
+
if (typeof r['file'] === 'string' && r['file'])
|
|
67
|
+
finding.file = r['file'];
|
|
68
|
+
if (typeof r['line'] === 'number' && Number.isInteger(r['line']) && r['line'] >= 1) {
|
|
69
|
+
finding.line = r['line'];
|
|
70
|
+
}
|
|
71
|
+
if (typeof r['grounding'] === 'string' && r['grounding'])
|
|
72
|
+
finding.grounding = r['grounding'];
|
|
73
|
+
if (typeof r['grounding_kind'] === 'string' && GROUNDING_KINDS.has(r['grounding_kind'])) {
|
|
74
|
+
finding.grounding_kind = r['grounding_kind'];
|
|
75
|
+
}
|
|
76
|
+
return finding;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Tolerant parser for a bundle read from disk / the wire. Returns null on a
|
|
80
|
+
* missing or malformed required field (never throws) — the CLI treats a null as
|
|
81
|
+
* "no submittable bundle" and falls back to the self-attested path. A malformed
|
|
82
|
+
* finding is DROPPED, not tolerated silently into a green: if any finding is
|
|
83
|
+
* unparseable the whole bundle is rejected (null), so a truncated payload can't
|
|
84
|
+
* be certified as if it were complete.
|
|
85
|
+
*/
|
|
86
|
+
export function parseBundle(raw) {
|
|
87
|
+
if (!raw || typeof raw !== 'object')
|
|
88
|
+
return null;
|
|
89
|
+
const r = raw;
|
|
90
|
+
if (typeof r['repo'] !== 'string' || !r['repo'].includes('/'))
|
|
91
|
+
return null;
|
|
92
|
+
if (typeof r['head_sha'] !== 'string' || !r['head_sha'])
|
|
93
|
+
return null;
|
|
94
|
+
// `verdict` is enum-typed — whitelist it like every other enum field, so a
|
|
95
|
+
// garbage verdict is a malformed bundle (null), never blind-cast through the
|
|
96
|
+
// trust boundary into validateConsistency / a derived check.
|
|
97
|
+
if (typeof r['verdict'] !== 'string' || !VERDICTS.has(r['verdict']))
|
|
98
|
+
return null;
|
|
99
|
+
if (!Array.isArray(r['findings']))
|
|
100
|
+
return null;
|
|
101
|
+
if (!Array.isArray(r['coverage']))
|
|
102
|
+
return null;
|
|
103
|
+
const findings = [];
|
|
104
|
+
for (const f of r['findings']) {
|
|
105
|
+
const parsed = parseFinding(f);
|
|
106
|
+
if (!parsed)
|
|
107
|
+
return null; // reject the whole bundle rather than silently drop a finding
|
|
108
|
+
findings.push(parsed);
|
|
109
|
+
}
|
|
110
|
+
const coverage = r['coverage'].filter((c) => typeof c === 'string');
|
|
111
|
+
if (coverage.length !== r['coverage'].length)
|
|
112
|
+
return null;
|
|
113
|
+
const bundle = {
|
|
114
|
+
bundle_version: typeof r['bundle_version'] === 'number' ? r['bundle_version'] : NOTARY_BUNDLE_VERSION,
|
|
115
|
+
repo: r['repo'],
|
|
116
|
+
head_sha: r['head_sha'],
|
|
117
|
+
verdict: r['verdict'],
|
|
118
|
+
findings,
|
|
119
|
+
coverage,
|
|
120
|
+
recipe_version: typeof r['recipe_version'] === 'string' ? r['recipe_version'] : '',
|
|
121
|
+
protocol_version: typeof r['protocol_version'] === 'string' ? r['protocol_version'] : NOTARY_PROTOCOL_VERSION,
|
|
122
|
+
};
|
|
123
|
+
if (typeof r['pr'] === 'number' && Number.isInteger(r['pr']))
|
|
124
|
+
bundle.pr = r['pr'];
|
|
125
|
+
if (typeof r['nonce'] === 'string' && r['nonce'])
|
|
126
|
+
bundle.nonce = r['nonce'];
|
|
127
|
+
return bundle;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=notary-bundle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notary-bundle.js","sourceRoot":"","sources":["../../src/core/notary-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { parseHeadLines, type DiffFile } from './inline-threads.js';
|
|
2
|
+
import type { ReviewVerdict } from './check-verdict.js';
|
|
3
|
+
import type { NotaryBundle, NotaryFinding } from './notary-bundle.js';
|
|
4
|
+
export interface ConsistencyResult {
|
|
5
|
+
ok: boolean;
|
|
6
|
+
reason?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A `clean` verdict with a critical finding, or a `critical` verdict with none,
|
|
10
|
+
* is internally contradictory — the review can't be trusted, so it can't gate.
|
|
11
|
+
* `unverified` and `failed` are self-consistent regardless of the finding set
|
|
12
|
+
* (they never claim "clean"), so they always pass ⑤.
|
|
13
|
+
*/
|
|
14
|
+
export declare function validateConsistency(verdict: ReviewVerdict, findings: readonly NotaryFinding[]): ConsistencyResult;
|
|
15
|
+
export interface CoverageResult {
|
|
16
|
+
ok: boolean;
|
|
17
|
+
/** Changed files present in the ground-truth diff but absent from the coverage claim. */
|
|
18
|
+
missingFiles: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The review's coverage claim MUST include every file the ground-truth diff
|
|
22
|
+
* changed. A missing file = a silently-skipped surface → the review can't be
|
|
23
|
+
* certified as complete. Extra claimed files (not in the diff) are harmless and
|
|
24
|
+
* ignored. Empty diff → trivially covered.
|
|
25
|
+
*/
|
|
26
|
+
export declare function validateCoverage(coverage: readonly string[], diffFiles: readonly DiffFile[]): CoverageResult;
|
|
27
|
+
export interface GroundingViolation {
|
|
28
|
+
index: number;
|
|
29
|
+
file?: string | undefined;
|
|
30
|
+
line?: number | undefined;
|
|
31
|
+
reason: string;
|
|
32
|
+
}
|
|
33
|
+
export interface GroundingResult {
|
|
34
|
+
ok: boolean;
|
|
35
|
+
/** Hard failures: a critical with no evidence, or a `quote` span not in the diff. */
|
|
36
|
+
violations: GroundingViolation[];
|
|
37
|
+
/**
|
|
38
|
+
* Criticals whose grounding the deterministic notary CANNOT confirm
|
|
39
|
+
* (`reproduction`/`invariant` form — no diff-checkable artifact). Not a
|
|
40
|
+
* failure: accepting a critical blocks the merge, the safe direction. Surfaced
|
|
41
|
+
* so the server can seed the clean-case audit / a human can scrutinize them.
|
|
42
|
+
*/
|
|
43
|
+
unverifiable: GroundingViolation[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* For every CRITICAL finding:
|
|
47
|
+
* - no `grounding` at all → hard violation (no bare critical).
|
|
48
|
+
* - `quote` (or unspecified) grounding → the span MUST appear verbatim
|
|
49
|
+
* (whitespace-normalized) in an added/context line of its file's diff, else
|
|
50
|
+
* hard violation (a claimed quote that isn't in the diff is fabricated).
|
|
51
|
+
* - `reproduction`/`invariant` → recorded as `unverifiable` (audit).
|
|
52
|
+
* Minor/preexisting findings are not grounding-gated here.
|
|
53
|
+
*/
|
|
54
|
+
export declare function validateGrounding(findings: readonly NotaryFinding[], diffFiles: readonly DiffFile[]): GroundingResult;
|
|
55
|
+
export interface BundleValidation {
|
|
56
|
+
ok: boolean;
|
|
57
|
+
coverage: CoverageResult;
|
|
58
|
+
grounding: GroundingResult;
|
|
59
|
+
consistency: ConsistencyResult;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Run ③④⑤ over a bundle against a diff. `ok` is the AND of all three hard
|
|
63
|
+
* checks (grounding's `unverifiable` list does not fail the bundle). The server
|
|
64
|
+
* layers ① nonce + ② ground-truth-diff-fetch + the clean-case audit ON TOP of
|
|
65
|
+
* this (Z4); this function is the shared deterministic core both sides call.
|
|
66
|
+
*/
|
|
67
|
+
export declare function validateBundle(bundle: NotaryBundle, diffFiles: readonly DiffFile[]): BundleValidation;
|
|
68
|
+
/**
|
|
69
|
+
* Whitespace-normalized substring match of a quoted span against the HEAD-side
|
|
70
|
+
* (added + context) content of a unified-diff patch. Normalizing runs of
|
|
71
|
+
* whitespace to a single space tolerates indentation/wrapping differences
|
|
72
|
+
* between the agent's quote and the exact diff bytes, while still requiring the
|
|
73
|
+
* actual tokens to be present (an attacker can't ground a span that isn't there).
|
|
74
|
+
*/
|
|
75
|
+
export declare function spanAppearsInDiff(span: string, patch: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Split raw unified-diff text (`git diff` / `gh pr diff` output) into per-file
|
|
78
|
+
* `{ filename, patch }` entries — the same shape `gh api .../pulls/{n}/files`
|
|
79
|
+
* returns, so downstream validators are source-agnostic. Each `patch` is the
|
|
80
|
+
* hunk region (from the first `@@` onward). Files with no hunk (pure
|
|
81
|
+
* rename/mode/binary) yield `{ filename }` with no patch. Quote/tab-aware
|
|
82
|
+
* (see `unquoteGitPath`) so non-ASCII and space-containing paths survive.
|
|
83
|
+
*/
|
|
84
|
+
export declare function splitUnifiedDiff(raw: string): DiffFile[];
|
|
85
|
+
export { parseHeadLines };
|
|
86
|
+
//# sourceMappingURL=notary-validate.d.ts.map
|