import type { CanonicalBundle, ModelClass } from '../canonical/bundle.js'; export type RuntimeId = 'claude' | 'codex' | 'gemini' | 'cursor'; export type DiagnosticDisposition = 'fallback' | 'unavailable'; export interface CompileSelection { readonly agentIds: readonly string[]; readonly commandIds: readonly string[]; } export interface CompileInput { readonly bundle: CanonicalBundle; readonly selection: CompileSelection; readonly sourceFiles: ReadonlyMap; readonly runtimeResources: ReadonlyMap; } export interface CompilerDiagnostic { readonly runtime: RuntimeId; readonly code: string; readonly capability: string; readonly disposition: DiagnosticDisposition; readonly message: string; } export interface Artifact { readonly path: string; readonly content: string; readonly sha256: string; readonly sourceIds: readonly string[]; } export interface ArtifactGraph { readonly schemaVersion: '1.0.0'; readonly runtime: RuntimeId; readonly productVersion: string; readonly artifacts: readonly Artifact[]; readonly diagnostics: readonly CompilerDiagnostic[]; } export interface ValidationIssue { readonly code: string; readonly path: string; readonly message: string; } export interface RuntimeModelMapping { readonly runtime: RuntimeId; readonly models: Readonly>; }