/** Closed v1 type vocabulary for Init's fixed promotion journal. */ export declare const RUNTIME_PROMOTION_JOURNAL_KIND: "init-promotion"; export declare const RUNTIME_PROMOTION_JOURNAL_VERSION: 1; export declare const RUNTIME_PROMOTION_JOURNAL_MAX_BYTES: number; export declare const RUNTIME_PROMOTION_JOURNAL_CAPS: Readonly<{ maxBytes: number; maxReasonBytes: 96; maxBasenameBytes: 128; maxOwnershipIdBytes: 128; maxAuthoredMutations: 4096; maxRuntimeEntries: 100000; maxRuntimeBytes: number; maxRevision: 1000000; maxRecoveryAttempts: 1000000; maxTimestamp: number; maxSqliteUserVersion: 2147483647; }>; export declare const RUNTIME_PROMOTION_COORDINATION_KEY_PATTERN: RegExp; export declare const RUNTIME_PROMOTION_CACHE_KEY_PATTERN: RegExp; export declare const RUNTIME_PROMOTION_DIGEST_PATTERN: RegExp; export declare const RUNTIME_PROMOTION_ROOT_IDENTITY_PATTERN: RegExp; export declare const RUNTIME_PROMOTION_OPERATION_ID_PATTERN: RegExp; export declare const RUNTIME_PROMOTION_OWNER_TOKEN_PATTERN: RegExp; export declare const RUNTIME_PROMOTION_OWNERSHIP_ID_PATTERN: RegExp; export declare const RUNTIME_PROMOTION_SAFE_BASENAME_PATTERN: RegExp; export declare const RUNTIME_PROMOTION_ROUTES: readonly ["authored-only", "project-authority", "promote-cache", "keep-project", "deduplicate-cache"]; export type RuntimePromotionRoute = (typeof RUNTIME_PROMOTION_ROUTES)[number]; export declare const RUNTIME_PROMOTION_SOURCE_CLASSIFICATIONS: readonly ["none", "generation-bound", "path-only", "legacy"]; export type RuntimePromotionSourceClassification = (typeof RUNTIME_PROMOTION_SOURCE_CLASSIFICATIONS)[number]; export declare const RUNTIME_PROMOTION_CONFLICT_POLICIES: readonly ["abort", "keep-project", "use-cache"]; export type RuntimePromotionConflictPolicy = (typeof RUNTIME_PROMOTION_CONFLICT_POLICIES)[number]; export declare const RUNTIME_PROMOTION_AUTHORED_MODES: readonly ["fresh", "refresh", "keep", "remove"]; export type RuntimePromotionAuthoredMode = (typeof RUNTIME_PROMOTION_AUTHORED_MODES)[number]; export declare const RUNTIME_PROMOTION_LANGUAGES: readonly ["typescript", "rust", "python", "go", "java", "cpp"]; export type RuntimePromotionLanguage = (typeof RUNTIME_PROMOTION_LANGUAGES)[number]; export declare const RUNTIME_PROMOTION_OWNED_SLOT_NAMES: readonly ["destinationParent", "runtimeStage", "destinationBackup", "sourceTombstone", "authoredStage", "authoredBackup", "replayManifest"]; export type RuntimePromotionOwnedSlotName = (typeof RUNTIME_PROMOTION_OWNED_SLOT_NAMES)[number]; export declare const RUNTIME_PROMOTION_PHASES: readonly ["prepared", "source-verified", "destination-verified", "authored-prepared", "destination-ready", "runtime-staged", "destination-backed-up", "runtime-installed", "authored-committed", "source-retired", "authority-verified", "committed", "rollback-started", "runtime-rolled-back", "authored-rolled-back", "rolled-back", "closed", "cleanup"]; export type RuntimePromotionPhase = (typeof RUNTIME_PROMOTION_PHASES)[number]; export declare const RUNTIME_PROMOTION_DIRECTIONS: readonly ["forward", "rollback", "cleanup"]; export type RuntimePromotionDirection = (typeof RUNTIME_PROMOTION_DIRECTIONS)[number]; export declare const RUNTIME_PROMOTION_RUNTIME_INSTALL_STATES: readonly ["not-installed", "installed", "rolled-back", "backup-restored"]; export type RuntimePromotionRuntimeInstallState = (typeof RUNTIME_PROMOTION_RUNTIME_INSTALL_STATES)[number]; export declare const RUNTIME_PROMOTION_INTENT_KINDS: readonly ["runtime-stage-create", "destination-parent-create", "destination-backup-create", "destination-install", "authored-prepare", "authored-target-commit", "source-retire", "runtime-rollback", "authored-target-rollback", "owned-slot-cleanup"]; export type RuntimePromotionIntentKind = (typeof RUNTIME_PROMOTION_INTENT_KINDS)[number]; export declare const RUNTIME_PROMOTION_POSTCONDITION_OUTCOMES: readonly ["applied", "already-satisfied", "aborted"]; export type RuntimePromotionPostconditionOutcome = (typeof RUNTIME_PROMOTION_POSTCONDITION_OUTCOMES)[number]; export declare const RUNTIME_PROMOTION_CLEANUP_STATES: readonly ["unmaterialized", "pending", "removed"]; export type RuntimePromotionCleanupState = (typeof RUNTIME_PROMOTION_CLEANUP_STATES)[number]; export declare const RUNTIME_PROMOTION_TERMINAL_OUTCOMES: readonly ["committed", "rolled-back"]; export type RuntimePromotionTerminalOutcome = (typeof RUNTIME_PROMOTION_TERMINAL_OUTCOMES)[number]; export declare const RUNTIME_PROMOTION_AUTHORITIES: readonly ["project", "cache", "none"]; export type RuntimePromotionAuthority = (typeof RUNTIME_PROMOTION_AUTHORITIES)[number]; export interface RuntimePromotionRootIdentity { readonly device: string; readonly inode: string; } export interface RuntimePromotionSource { readonly classification: RuntimePromotionSourceClassification; readonly cacheKey: string | null; readonly generationDigest: string | null; readonly markerSha256: string | null; readonly rootIdentity: RuntimePromotionRootIdentity | null; } export interface RuntimePromotionInputs { readonly conflict: RuntimePromotionConflictPolicy; readonly authoredMode: RuntimePromotionAuthoredMode; readonly languages: readonly RuntimePromotionLanguage[]; readonly languageExplicit: boolean; } export interface RuntimePromotionPlanIdentity { readonly authoredDigest: string; readonly replayDigest: string; readonly mutationCount: number; } export interface RuntimePromotionOwnedSlot { readonly basename: string; readonly ownershipId: string; } export type RuntimePromotionOwnedSlots = Readonly>; export type RuntimeManifestSqliteIdentity = { readonly status: 'absent'; } | { readonly status: 'verified'; readonly sha256: string; readonly userVersion: number; }; /** Bounded whole-runtime identity; it intentionally has no entry list. */ export interface RuntimeManifestIdentity { readonly digest: string; readonly fileCount: number; readonly directoryCount: number; readonly symlinkCount: number; readonly rootMode: number; readonly totalBytes: number; readonly sqlite: RuntimeManifestSqliteIdentity; } export interface RuntimePromotionManifestIdentities { readonly source: RuntimeManifestIdentity | null; readonly destination: RuntimeManifestIdentity | null; readonly runtimeStage: RuntimeManifestIdentity | null; } export interface RuntimePromotionPendingIntent { readonly sequence: number; readonly kind: RuntimePromotionIntentKind; readonly slot: RuntimePromotionOwnedSlotName | null; readonly cursor: number | null; readonly recordedAt: number; } export interface RuntimePromotionPostcondition extends RuntimePromotionPendingIntent { readonly outcome: RuntimePromotionPostconditionOutcome; } export interface RuntimePromotionProgress { readonly phase: RuntimePromotionPhase; readonly direction: RuntimePromotionDirection; readonly runtimeInstallState: RuntimePromotionRuntimeInstallState; readonly authoredCursor: number; readonly rollbackCursor: number; readonly pendingIntent: RuntimePromotionPendingIntent | null; readonly lastPostcondition: RuntimePromotionPostcondition | null; } export interface RuntimePromotionTerminal { readonly outcome: RuntimePromotionTerminalOutcome; readonly authority: RuntimePromotionAuthority; readonly runtimeManifest: RuntimeManifestIdentity | null; readonly authoredVerified: boolean; readonly sourcePreserved: boolean; readonly verifiedAt: number; } export type RuntimePromotionCleanup = Readonly>; export interface RuntimePromotionCounts { readonly intentCount: number; readonly postconditionCount: number; readonly authoredCompleted: number; readonly authoredRolledBack: number; readonly cleanupCompleted: number; } export interface RuntimePromotionTimestamps { readonly createdAt: number; readonly updatedAt: number; readonly closedAt: number | null; } export interface RuntimePromotionJournal { readonly kind: typeof RUNTIME_PROMOTION_JOURNAL_KIND; readonly version: typeof RUNTIME_PROMOTION_JOURNAL_VERSION; readonly coordinationKey: string; readonly operationId: string; readonly state: 'open' | 'closed'; readonly revision: number; readonly recoveryOwnerToken: string; readonly recoveryAttempt: number; readonly route: RuntimePromotionRoute; readonly destinationParentPreexisting: boolean; readonly destinationRuntimePreexisting: boolean; readonly destinationRootIdentity: RuntimePromotionRootIdentity | null; readonly source: RuntimePromotionSource; readonly inputs: RuntimePromotionInputs; readonly plan: RuntimePromotionPlanIdentity; readonly owned: RuntimePromotionOwnedSlots; readonly manifests: RuntimePromotionManifestIdentities; readonly progress: RuntimePromotionProgress; readonly terminal: RuntimePromotionTerminal | null; readonly cleanup: RuntimePromotionCleanup; readonly counts: RuntimePromotionCounts; readonly timestamps: RuntimePromotionTimestamps; readonly reason?: string; } export interface CreateRuntimePromotionJournalInput { readonly coordinationKey: string; readonly operationId: string; readonly recoveryOwnerToken: string; readonly route: RuntimePromotionRoute; readonly destinationParentPreexisting: boolean; readonly destinationRuntimePreexisting: boolean; readonly destinationRootIdentity: RuntimePromotionRootIdentity | null; readonly source: RuntimePromotionSource; readonly inputs: RuntimePromotionInputs; readonly plan: RuntimePromotionPlanIdentity; readonly owned: RuntimePromotionOwnedSlots; readonly createdAt: number; readonly reason?: string; } export interface RuntimePromotionJournalBinding { readonly coordinationKey?: string; readonly operationId?: string; readonly state?: 'open' | 'closed'; } export declare class RuntimePromotionJournalValidationError extends Error { constructor(message: string); } //# sourceMappingURL=runtime-promotion-journal-types.d.ts.map