/** * Canonical, token-only project evidence. * * This is the offline seam shared by agent views and deploy artifacts. It deliberately contains * route contracts, assurance/capability decisions, and source locations only; validators, handlers, * request bodies, secrets, and other runtime payloads never cross this interface. */ import type { AssuranceEvidence, AssuranceFinding, AssuranceReport } from "./assurance.js"; import type { AssuredCapabilityRoute, CapabilityAssuranceReport, CapabilityEvidence, CapabilityFinding } from "./capabilities.js"; import type { ResponseClassification } from "./classification.js"; import { type JsonSchema, type ReflectedRoute, type ReflectedSchemaField } from "./reflection.js"; export interface ProjectEvidenceSchemaPart { readonly jsonSchema?: JsonSchema; readonly fields?: readonly ReflectedSchemaField[]; } export interface ProjectEvidenceSchema { readonly bodyLimit?: number | "unlimited"; readonly bodyLimitReason?: string; readonly headers?: ProjectEvidenceSchemaPart; readonly body?: ProjectEvidenceSchemaPart; readonly query?: ProjectEvidenceSchemaPart; readonly params?: ProjectEvidenceSchemaPart; readonly response?: ProjectEvidenceSchemaPart; readonly errors?: Readonly>; readonly sse?: ProjectEvidenceSchemaPart; } export interface ProjectEvidenceSourceLocation { readonly file: string; readonly line?: number; readonly column?: number; } export interface ProjectEvidenceRoute { readonly method: string; readonly path: string; readonly schema?: ProjectEvidenceSchema; readonly assurance?: readonly AssuranceEvidence[]; readonly capabilities?: readonly string[]; readonly family?: boolean; readonly classification?: ResponseClassification; readonly tool?: ReflectedRoute["tool"]; readonly source?: readonly ProjectEvidenceSourceLocation[]; } export interface ProjectEvidenceAssuranceRoute { readonly method: string; readonly path: string; readonly rule?: string; readonly evidence: readonly AssuranceEvidence[]; readonly missing: readonly string[]; readonly forbidden: readonly string[]; } export interface ProjectEvidenceAssurance { readonly ok: boolean; readonly routes: readonly ProjectEvidenceAssuranceRoute[]; readonly findings: readonly AssuranceFinding[]; } export interface ProjectEvidenceCapabilityRoute { readonly method: string; readonly path: string; readonly declared: readonly string[]; readonly evidence: readonly CapabilityEvidence[]; readonly unproven: readonly string[]; readonly covered: boolean; readonly classification?: AssuredCapabilityRoute["classification"]; } export interface ProjectEvidenceCapabilities { readonly ok: boolean; readonly routes: readonly ProjectEvidenceCapabilityRoute[]; readonly findings: readonly CapabilityFinding[]; } /** One deterministic, persistence-safe view of a project's public and trust-relevant facts. */ export interface ProjectEvidenceSnapshot { readonly version: 1; readonly routes: readonly ProjectEvidenceRoute[]; readonly assurance?: ProjectEvidenceAssurance; readonly capabilities?: ProjectEvidenceCapabilities; } export interface ProjectEvidenceOptions { readonly assurance?: AssuranceReport; readonly capabilities?: CapabilityAssuranceReport; /** Optional static source locations keyed by `${METHOD}\n${path}`. */ readonly sourceLocations?: ReadonlyMap; } /** Build the canonical snapshot from reflection and already-evaluated offline reports. */ export declare function snapshotProjectEvidence(source: unknown, options?: ProjectEvidenceOptions): ProjectEvidenceSnapshot; /** Stable JSON for logs, MCP, generated artifacts, and snapshot tests. */ export declare function serializeProjectEvidence(snapshot: ProjectEvidenceSnapshot): string; /** SHA-256 of the canonical snapshot, useful as a cheap freshness/reference token. */ export declare function digestProjectEvidence(snapshot: ProjectEvidenceSnapshot): Promise; //# sourceMappingURL=evidence.d.ts.map