import { type EvidenceWriteOptions } from "./evidence-file.js"; import type { TopLevelIntent } from "./top-level-intent-router.js"; import type { PendingInjection } from "./types.js"; import type { RuntimeContextDeliveryState } from "./store.js"; export type RailComplianceFindingCode = "review-rail-file-modification" | "requirements-rail-direct-implementation" | "debug-rail-edit-without-reproduction" | "git-rail-mutation-without-status-diff" | "raw-final-verification-without-bearshell" | "workflow-report-missing"; export type EvidenceEvent = { hook: "tool.execute.before" | "tool.execute.after" | "experimental.chat.messages.transform"; sessionID: string; callID?: string; injectedInto: "pending-store" | "tool-output" | "model-input" | "role-discovery"; injection: PendingInjection; }; export type IntentEvidenceEvent = { hook: "experimental.chat.messages.transform"; sessionID: string; injectedInto: "intent-workflow"; userPrompt: string; intent: TopLevelIntent; railMarker: string; }; export type RailComplianceEvidenceEvent = { hook: "tool.execute.after"; sessionID: string; callID?: string; userPrompt: string; primaryIntent: TopLevelIntent["primary"]; secondaryIntents: TopLevelIntent["secondary"]; railMarker: string; finding: "WARN"; confidence: "HIGH" | "MEDIUM" | "LOW"; code: RailComplianceFindingCode; message: string; observedAction: string; expectedAction: string; }; export type ContinuationEvidenceEvent = { hook: "experimental.text.complete"; sessionID: string; finding: "INFO" | "WARN"; reason: string; nextAction: string; pendingTicket?: string; pendingTicketPath?: string; remainingReadRange?: string; remainingScope?: string; nextPromptHint?: string; }; export type ObserverReportOnlyFinding = { readonly ruleId: string; readonly result: "PASS" | "WARN" | "UNKNOWN"; readonly evidence: unknown; readonly confidence: "HIGH" | "MEDIUM" | "LOW" | "NONE"; readonly source: "live-hook/text"; readonly limitations: readonly string[]; readonly filePath: string; }; export type ObserverReportOnlyEvidenceEvent = { readonly hook: "tool.execute.after"; readonly sessionID: string; readonly callID?: string; readonly targetFile: string; readonly inspectedFile: string; readonly findings: readonly ObserverReportOnlyFinding[]; readonly limitations: readonly string[]; }; export declare function writePhase0Evidence(projectDir: string, event: EvidenceEvent, options?: EvidenceWriteOptions): void; export type RuntimeContextEvidenceEvent = { readonly hook: "tool.execute.after" | "experimental.chat.messages.transform"; readonly sessionID: string; readonly callID?: string; readonly injection: PendingInjection; readonly state: RuntimeContextDeliveryState; }; export declare function writeRuntimeContextEvidence(projectDir: string, event: RuntimeContextEvidenceEvent, options?: EvidenceWriteOptions): void; export declare function writeIntentEvidence(projectDir: string, event: IntentEvidenceEvent, options?: EvidenceWriteOptions): void; export declare function writeRailComplianceEvidence(projectDir: string, event: RailComplianceEvidenceEvent, options?: EvidenceWriteOptions): void; export declare function writeContinuationEvidence(projectDir: string, event: ContinuationEvidenceEvent, options?: EvidenceWriteOptions): void; export declare function writeObserverReportOnlyEvidence(projectDir: string, event: ObserverReportOnlyEvidenceEvent, options?: EvidenceWriteOptions): void;