import { type CodaliImprovementOutcome, type CodaliImprovementScope } from "./ImprovementPolicy.js"; import { type StorageServiceImprovementClient, type StorageServiceImprovementWriteResult } from "./StorageServiceImprovementClient.js"; import type { GatewayDatasetStorageScope } from "../storage/GatewayDatasetStore.js"; export declare const CODALI_RELEASE_OUTCOME_REPORTER_SCHEMA_VERSION: "codali.improvement.release_outcome_report.v1"; export declare const CODALI_RELEASE_RUNTIME_PACKAGE_KINDS: readonly ["prompt_package", "router_policy", "retrieval_policy", "schema", "fine_tune_adapter"]; export type CodaliReleaseRuntimePackageKind = (typeof CODALI_RELEASE_RUNTIME_PACKAGE_KINDS)[number]; export declare const CODALI_RELEASE_ROLLBACK_TRIGGER_CODES: readonly ["schema_failures", "accepted_answer_rate_drop", "verifier_contradictions", "tool_failures", "latency_increase", "cost_increase", "privacy_security_warnings"]; export type CodaliReleaseRollbackTriggerCode = (typeof CODALI_RELEASE_ROLLBACK_TRIGGER_CODES)[number]; export type CodaliReleaseMonitorStatus = "healthy" | "watch" | "rollback_required" | "rolled_back"; export interface CodaliReleaseMonitorWindow { startedAt: string; endedAt: string; durationMinutes: number; } export interface CodaliReleaseMonitorThresholds { maxSchemaFailures: number; minAcceptedAnswerRate: number; maxAcceptedAnswerRateDrop: number; maxVerifierContradictions: number; maxToolFailures: number; maxP95LatencyIncreaseRatio: number; maxCostIncreaseRatio: number; maxPrivacySecurityWarnings: number; } export interface CodaliReleaseObservedMetrics { eligibleRequestCount: number; shadowRequestCount: number; schemaFailures: number; acceptedAnswerRate?: number; baselineAcceptedAnswerRate?: number; verifierContradictions: number; toolFailures: number; p95LatencyMs?: number; baselineP95LatencyMs?: number; costUsd?: number; baselineCostUsd?: number; privacySecurityWarnings: number; } export interface CodaliReleaseRuntimePackageFlag { packageKind: CodaliReleaseRuntimePackageKind; version: string; enabled: boolean; disableOnRollback: boolean; rollbackDisabled: boolean; reason?: string; } export interface CodaliReleaseShadowTrafficReport { enabled: boolean; nonBlocking: true; eligibleRequestCount: number; shadowRequestCount: number; coverageRate: number; status: "not_eligible" | "skipped" | "partial" | "completed"; } export interface CodaliReleaseRollbackTrigger { code: CodaliReleaseRollbackTriggerCode; triggered: boolean; observed: number; threshold: number; message: string; } export interface CodaliReleaseRolloutEvent { eventId: string; releaseId: string; eventType: "monitor_started" | "runtime_flags_applied" | "shadow_traffic_started" | "shadow_traffic_completed"; createdAt: string; metadata: Record; } export interface CodaliReleaseRollbackEvent { eventId: string; releaseId: string; eventType: "rollback_triggered" | "runtime_package_disabled" | "rollback_applied"; createdAt: string; triggerCodes: CodaliReleaseRollbackTriggerCode[]; runtimePackageKind?: CodaliReleaseRuntimePackageKind; runtimePackageVersion?: string; unpublishNpm: false; metadata: Record; } export interface CodaliReleaseImprovementCycleFeedback { status: "recorded" | "queued"; releaseId: string; nextCycleReasons: string[]; recommendedArtifactTypes: string[]; source: "release_monitor"; } export interface CodaliReleaseOutcomeReport { schemaVersion: typeof CODALI_RELEASE_OUTCOME_REPORTER_SCHEMA_VERSION; releaseId: string; status: CodaliReleaseMonitorStatus; generatedAt: string; monitorWindow: CodaliReleaseMonitorWindow; thresholds: CodaliReleaseMonitorThresholds; metrics: CodaliReleaseObservedMetrics; runtimeFlags: CodaliReleaseRuntimePackageFlag[]; shadowTraffic: CodaliReleaseShadowTrafficReport; rollbackTriggers: CodaliReleaseRollbackTrigger[]; rolloutEvents: CodaliReleaseRolloutEvent[]; rollbackEvents: CodaliReleaseRollbackEvent[]; outcome: CodaliImprovementOutcome; improvementCycleFeedback: CodaliReleaseImprovementCycleFeedback; storageWrites: Array<{ accepted: boolean; status: number; scope: GatewayDatasetStorageScope; }>; } export interface RunCodaliReleaseOutcomeReporterInput { releaseId: string; scope?: CodaliImprovementScope; monitorWindowMinutes?: number; monitorWindowStartedAt?: string; monitorWindowEndedAt?: string; thresholds?: Partial; metrics?: Partial; runtimeVersions?: Partial>; disabledRuntimePackages?: readonly CodaliReleaseRuntimePackageKind[]; rollbackApplied?: boolean; published?: boolean; tagged?: boolean; trainingUsed?: boolean; exportUsed?: boolean; now?: () => Date; } export interface WriteCodaliReleaseOutcomeReportToStorageInput { report: CodaliReleaseOutcomeReport; scope: GatewayDatasetStorageScope; client: StorageServiceImprovementClient; } export declare const DEFAULT_CODALI_RELEASE_MONITOR_THRESHOLDS: CodaliReleaseMonitorThresholds; export declare const runCodaliReleaseOutcomeReporter: (input: RunCodaliReleaseOutcomeReporterInput) => CodaliReleaseOutcomeReport; export declare const writeCodaliReleaseOutcomeReportToStorageService: (input: WriteCodaliReleaseOutcomeReportToStorageInput) => Promise>>; //# sourceMappingURL=ReleaseOutcomeReporter.d.ts.map