/** * Provenance grading + Witnessed-State-Ratio (WSR) — Zod schemas. * * Deterministic rubric (no LLM self-judgment). Grades whether release evidence * is WITNESSED (tool/CI/artifact trail) or merely CLAIMED (assertions). * * Rubric version is pinned so golden cases and MCP consumers can audit drift. */ import { z } from 'zod'; /** Pinned rubric identifier — bump only with golden-case review. */ export declare const PROVENANCE_RUBRIC_VERSION: "provenance-v1"; export declare const ProvenanceRubricVersionSchema: z.ZodLiteral<"provenance-v1">; /** * Per-evidence provenance grade (deterministic w_i ladder): * high — tool/CI/artifact-with-provenance (witnessed) * mid — verified-external (URL-backed, not qulib-executed) * low — unverified collector (tool ran but no verifiable ref) * none — bare assertion (no execution trail) */ export declare const ProvenanceGradeSchema: z.ZodEnum<["high", "mid", "low", "none"]>; export type ProvenanceGrade = z.infer; /** Bucket for WSR numerator/denominator. */ export declare const EvidenceStateClassSchema: z.ZodEnum<["witnessed", "claimed", "stale"]>; export type EvidenceStateClass = z.infer; export declare const ShipGateSchema: z.ZodEnum<["ship", "no-ship"]>; export type ShipGate = z.infer; /** Change types for witnessed-coverage taxonomy. */ export declare const ChangeTypeSchema: z.ZodEnum<["refactor", "new-export", "artifact-reader", "config-change", "dependency-bump", "test-addition", "unknown"]>; export type ChangeType = z.infer; export declare const WitnessRequirementSchema: z.ZodObject<{ changeType: z.ZodEnum<["refactor", "new-export", "artifact-reader", "config-change", "dependency-bump", "test-addition", "unknown"]>; requiredWitness: z.ZodString; description: z.ZodString; }, "strip", z.ZodTypeAny, { description: string; changeType: "unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition"; requiredWitness: string; }, { description: string; changeType: "unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition"; requiredWitness: string; }>; export type WitnessRequirement = z.infer; export declare const ProvenancePolicySchema: z.ZodObject<{ /** Minimum WSR for shipGate='ship'. Default 0.6 (60% witnessed mass). */ wsrShipThreshold: z.ZodDefault; /** Evidence older than this (seconds) is classified stale. Default 24h. */ staleAfterSeconds: z.ZodDefault; /** Fresh window before linear TTL decay begins. Default 4h. */ freshThresholdSeconds: z.ZodDefault; rubricVersion: z.ZodDefault>; }, "strip", z.ZodTypeAny, { wsrShipThreshold: number; staleAfterSeconds: number; freshThresholdSeconds: number; rubricVersion: "provenance-v1"; }, { wsrShipThreshold?: number | undefined; staleAfterSeconds?: number | undefined; freshThresholdSeconds?: number | undefined; rubricVersion?: "provenance-v1" | undefined; }>; export type ProvenancePolicy = z.infer; export declare const ProvenanceInputSchema: z.ZodObject<{ subject: z.ZodObject<{ kind: z.ZodEnum<["release", "pr", "deploy", "app", "repo"]>; ref: z.ZodString; tenantId: z.ZodDefault; }, "strip", z.ZodTypeAny, { kind: "app" | "repo" | "release" | "pr" | "deploy"; ref: string; tenantId: string; }, { kind: "app" | "repo" | "release" | "pr" | "deploy"; ref: string; tenantId?: string | undefined; }>; evidence: z.ZodArray; score: z.ZodNullable; weight: z.ZodNumber; applicability: z.ZodDefault>; blocking: z.ZodDefault; evidence: z.ZodArray; recommendations: z.ZodDefault>; reason: z.ZodOptional; collectedAt: z.ZodString; collector: z.ZodObject<{ tool: z.ZodString; inputRef: z.ZodOptional; durationMs: z.ZodOptional; cost: z.ZodOptional>; }, "strip", z.ZodTypeAny, { tool: string; durationMs?: number | undefined; inputRef?: string | undefined; cost?: { inputTokens: number; outputTokens: number; } | undefined; }, { tool: string; durationMs?: number | undefined; inputRef?: string | undefined; cost?: { inputTokens: number; outputTokens: number; } | undefined; }>; }, "strip", z.ZodTypeAny, { source: "accessibility" | "live-app-quality" | "crawl-coverage" | "test-automation" | "api-coverage" | "ci-results" | "deploy-metadata" | "error-telemetry" | "feature-flags" | "doc-health" | "human-approval" | "agent-evidence" | "decision-quality"; recommendations: string[]; score: number | null; weight: number; evidence: string[]; applicability: "unknown" | "applicable" | "not_applicable"; blocking: boolean; collectedAt: string; collector: { tool: string; durationMs?: number | undefined; inputRef?: string | undefined; cost?: { inputTokens: number; outputTokens: number; } | undefined; }; reason?: string | undefined; }, { source: "accessibility" | "live-app-quality" | "crawl-coverage" | "test-automation" | "api-coverage" | "ci-results" | "deploy-metadata" | "error-telemetry" | "feature-flags" | "doc-health" | "human-approval" | "agent-evidence" | "decision-quality"; score: number | null; weight: number; evidence: string[]; collectedAt: string; collector: { tool: string; durationMs?: number | undefined; inputRef?: string | undefined; cost?: { inputTokens: number; outputTokens: number; } | undefined; }; reason?: string | undefined; recommendations?: string[] | undefined; applicability?: "unknown" | "applicable" | "not_applicable" | undefined; blocking?: boolean | undefined; }>, "many">; policy: z.ZodOptional; /** Evidence older than this (seconds) is classified stale. Default 24h. */ staleAfterSeconds: z.ZodDefault; /** Fresh window before linear TTL decay begins. Default 4h. */ freshThresholdSeconds: z.ZodDefault; rubricVersion: z.ZodDefault>; }, "strip", z.ZodTypeAny, { wsrShipThreshold: number; staleAfterSeconds: number; freshThresholdSeconds: number; rubricVersion: "provenance-v1"; }, { wsrShipThreshold?: number | undefined; staleAfterSeconds?: number | undefined; freshThresholdSeconds?: number | undefined; rubricVersion?: "provenance-v1" | undefined; }>>; /** Optional change types present in this release — drives witness-coverage gaps. */ changeTypes: z.ZodOptional, "many">>; }, "strip", z.ZodTypeAny, { evidence: { source: "accessibility" | "live-app-quality" | "crawl-coverage" | "test-automation" | "api-coverage" | "ci-results" | "deploy-metadata" | "error-telemetry" | "feature-flags" | "doc-health" | "human-approval" | "agent-evidence" | "decision-quality"; recommendations: string[]; score: number | null; weight: number; evidence: string[]; applicability: "unknown" | "applicable" | "not_applicable"; blocking: boolean; collectedAt: string; collector: { tool: string; durationMs?: number | undefined; inputRef?: string | undefined; cost?: { inputTokens: number; outputTokens: number; } | undefined; }; reason?: string | undefined; }[]; subject: { kind: "app" | "repo" | "release" | "pr" | "deploy"; ref: string; tenantId: string; }; policy?: { wsrShipThreshold: number; staleAfterSeconds: number; freshThresholdSeconds: number; rubricVersion: "provenance-v1"; } | undefined; changeTypes?: ("unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition")[] | undefined; }, { evidence: { source: "accessibility" | "live-app-quality" | "crawl-coverage" | "test-automation" | "api-coverage" | "ci-results" | "deploy-metadata" | "error-telemetry" | "feature-flags" | "doc-health" | "human-approval" | "agent-evidence" | "decision-quality"; score: number | null; weight: number; evidence: string[]; collectedAt: string; collector: { tool: string; durationMs?: number | undefined; inputRef?: string | undefined; cost?: { inputTokens: number; outputTokens: number; } | undefined; }; reason?: string | undefined; recommendations?: string[] | undefined; applicability?: "unknown" | "applicable" | "not_applicable" | undefined; blocking?: boolean | undefined; }[]; subject: { kind: "app" | "repo" | "release" | "pr" | "deploy"; ref: string; tenantId?: string | undefined; }; policy?: { wsrShipThreshold?: number | undefined; staleAfterSeconds?: number | undefined; freshThresholdSeconds?: number | undefined; rubricVersion?: "provenance-v1" | undefined; } | undefined; changeTypes?: ("unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition")[] | undefined; }>; export type ProvenanceInput = z.infer; export declare const GradedEvidenceSchema: z.ZodObject<{ source: z.ZodString; grade: z.ZodEnum<["high", "mid", "low", "none"]>; /** Numeric grade weight: high=1.0, mid=0.6, low=0.3, none=0. */ gradeWeight: z.ZodNumber; stateClass: z.ZodEnum<["witnessed", "claimed", "stale"]>; /** Evidence mass used in WSR (item weight × freshness factor). */ mass: z.ZodNumber; /** Freshness multiplier after TTL decay (1.0 = fresh, 0 = fully stale). */ freshnessFactor: z.ZodNumber; ageSeconds: z.ZodNumber; collectorTool: z.ZodString; inputRef: z.ZodOptional; rationale: z.ZodString; }, "strip", z.ZodTypeAny, { source: string; rationale: string; grade: "high" | "low" | "none" | "mid"; gradeWeight: number; stateClass: "witnessed" | "claimed" | "stale"; mass: number; freshnessFactor: number; ageSeconds: number; collectorTool: string; inputRef?: string | undefined; }, { source: string; rationale: string; grade: "high" | "low" | "none" | "mid"; gradeWeight: number; stateClass: "witnessed" | "claimed" | "stale"; mass: number; freshnessFactor: number; ageSeconds: number; collectorTool: string; inputRef?: string | undefined; }>; export type GradedEvidence = z.infer; export declare const WitnessCoverageGapSchema: z.ZodObject<{ changeType: z.ZodEnum<["refactor", "new-export", "artifact-reader", "config-change", "dependency-bump", "test-addition", "unknown"]>; requiredWitness: z.ZodString; description: z.ZodString; satisfied: z.ZodBoolean; }, "strip", z.ZodTypeAny, { description: string; changeType: "unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition"; requiredWitness: string; satisfied: boolean; }, { description: string; changeType: "unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition"; requiredWitness: string; satisfied: boolean; }>; export type WitnessCoverageGap = z.infer; export declare const ProvenanceScoreSchema: z.ZodObject<{ schemaVersion: z.ZodLiteral<1>; computedAt: z.ZodString; rubricVersion: z.ZodLiteral<"provenance-v1">; subject: z.ZodObject<{ kind: z.ZodEnum<["release", "pr", "deploy", "app", "repo"]>; ref: z.ZodString; tenantId: z.ZodDefault; }, "strip", z.ZodTypeAny, { kind: "app" | "repo" | "release" | "pr" | "deploy"; ref: string; tenantId: string; }, { kind: "app" | "repo" | "release" | "pr" | "deploy"; ref: string; tenantId?: string | undefined; }>; /** * Witnessed-State-Ratio = W / (W + C + S). * null when no evidence mass exists (honesty floor). */ wsr: z.ZodNullable; witnessedMass: z.ZodNumber; claimedMass: z.ZodNumber; staleMass: z.ZodNumber; shipGate: z.ZodEnum<["ship", "no-ship"]>; gradedEvidence: z.ZodArray; /** Numeric grade weight: high=1.0, mid=0.6, low=0.3, none=0. */ gradeWeight: z.ZodNumber; stateClass: z.ZodEnum<["witnessed", "claimed", "stale"]>; /** Evidence mass used in WSR (item weight × freshness factor). */ mass: z.ZodNumber; /** Freshness multiplier after TTL decay (1.0 = fresh, 0 = fully stale). */ freshnessFactor: z.ZodNumber; ageSeconds: z.ZodNumber; collectorTool: z.ZodString; inputRef: z.ZodOptional; rationale: z.ZodString; }, "strip", z.ZodTypeAny, { source: string; rationale: string; grade: "high" | "low" | "none" | "mid"; gradeWeight: number; stateClass: "witnessed" | "claimed" | "stale"; mass: number; freshnessFactor: number; ageSeconds: number; collectorTool: string; inputRef?: string | undefined; }, { source: string; rationale: string; grade: "high" | "low" | "none" | "mid"; gradeWeight: number; stateClass: "witnessed" | "claimed" | "stale"; mass: number; freshnessFactor: number; ageSeconds: number; collectorTool: string; inputRef?: string | undefined; }>, "many">; witnessCoverage: z.ZodArray; requiredWitness: z.ZodString; description: z.ZodString; satisfied: z.ZodBoolean; }, "strip", z.ZodTypeAny, { description: string; changeType: "unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition"; requiredWitness: string; satisfied: boolean; }, { description: string; changeType: "unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition"; requiredWitness: string; satisfied: boolean; }>, "many">; honestyNotes: z.ZodArray; formula: z.ZodString; }, "strip", z.ZodTypeAny, { computedAt: string; schemaVersion: 1; subject: { kind: "app" | "repo" | "release" | "pr" | "deploy"; ref: string; tenantId: string; }; honestyNotes: string[]; rubricVersion: "provenance-v1"; wsr: number | null; witnessedMass: number; claimedMass: number; staleMass: number; shipGate: "ship" | "no-ship"; gradedEvidence: { source: string; rationale: string; grade: "high" | "low" | "none" | "mid"; gradeWeight: number; stateClass: "witnessed" | "claimed" | "stale"; mass: number; freshnessFactor: number; ageSeconds: number; collectorTool: string; inputRef?: string | undefined; }[]; witnessCoverage: { description: string; changeType: "unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition"; requiredWitness: string; satisfied: boolean; }[]; formula: string; }, { computedAt: string; schemaVersion: 1; subject: { kind: "app" | "repo" | "release" | "pr" | "deploy"; ref: string; tenantId?: string | undefined; }; honestyNotes: string[]; rubricVersion: "provenance-v1"; wsr: number | null; witnessedMass: number; claimedMass: number; staleMass: number; shipGate: "ship" | "no-ship"; gradedEvidence: { source: string; rationale: string; grade: "high" | "low" | "none" | "mid"; gradeWeight: number; stateClass: "witnessed" | "claimed" | "stale"; mass: number; freshnessFactor: number; ageSeconds: number; collectorTool: string; inputRef?: string | undefined; }[]; witnessCoverage: { description: string; changeType: "unknown" | "refactor" | "new-export" | "artifact-reader" | "config-change" | "dependency-bump" | "test-addition"; requiredWitness: string; satisfied: boolean; }[]; formula: string; }>; export type ProvenanceScore = z.infer; //# sourceMappingURL=provenance.schema.d.ts.map