import type { Diagnostic, SemanticGraph, WorkspaceSource } from './compiler.js'; export type EvidenceResult = 'confirmed' | 'contradicted' | 'unknown' | 'not-observed'; export interface EvidenceLocator { readonly uri: string; readonly message?: string; } export interface EvidenceObservedValue { readonly key: string; readonly value: string; } /** * One search a provider ran and found nothing at, recorded so a reader can * re-run it. yarramate never executes it: the engine has no access to the * subject tree, and gaining one would be a different decision (ADR 0107). */ export type SearchProbe = { readonly glob: string; } | { readonly grep: string; readonly paths?: readonly string[]; }; /** * A figure quoted in an evidence message, with how it was produced, so a * reader can tell a measured number from a remembered one and re-derive it at * a later commit. */ export interface Measurement { readonly value: string; readonly method: string; } interface ObservationProvenance { readonly searched?: readonly SearchProbe[]; readonly measured?: readonly Measurement[]; } export type EvidenceObservation = ({ readonly subject: string; readonly result: EvidenceResult; readonly evidence: EvidenceLocator; } & ObservationProvenance & Partial) | ({ readonly claim: string; readonly result: EvidenceResult; readonly evidence: EvidenceLocator; } & ObservationProvenance & Partial); export interface EvidenceDocument { readonly format: 'yarramate/evidence/v1'; readonly id: string; readonly version: string; readonly provider: string; readonly observations: readonly EvidenceObservation[]; } export interface EvidenceReport { readonly format: 'yarramate/evidence-report/v1'; readonly evidence: string; readonly provider: string; readonly summary: { readonly confirmed: number; readonly contradicted: number; readonly unknown: number; readonly notObserved: number; }; readonly observations: readonly EvidenceObservation[]; } export type EvidenceLoadResult = { readonly ok: true; readonly evidence: EvidenceDocument; } | { readonly ok: false; readonly diagnostics: readonly Diagnostic[]; }; export type EvidenceEvaluationResult = { readonly ok: true; readonly report: EvidenceReport; } | { readonly ok: false; readonly diagnostics: readonly Diagnostic[]; }; export type EvidenceWorkspaceEvaluationResult = { readonly ok: true; readonly reports: readonly EvidenceReport[]; } | { readonly ok: false; readonly diagnostics: readonly Diagnostic[]; }; export declare function loadEvidence(source: WorkspaceSource): EvidenceLoadResult; export declare function evaluateEvidence(graph: SemanticGraph, evidence: EvidenceDocument): EvidenceEvaluationResult; export declare function evaluateEvidenceWorkspace(graph: SemanticGraph, evidenceDocuments: readonly EvidenceDocument[]): EvidenceWorkspaceEvaluationResult; export {};