/** * Verified whole-runtime manifests and journal-authorized stage copies. */ import { type SqliteIntegrityResult } from '@opensip-cli/datastore'; import type { RuntimeManifestEntry, RuntimeTreeManifest, RuntimeTreePosture } from './runtime-manifest-model.js'; import type { RuntimeManifestIdentity } from './runtime-promotion-journal-schema.js'; import type { RuntimePromotionRootIdentity } from './runtime-promotion-journal-types.js'; import type { DurableOpenPromotionJournal, RuntimePromotionJournalController, RuntimeStageMaterializationIdentity } from './runtime-promotion-journal.js'; import type { RuntimePromotionProjectRootAuthority } from './runtime-promotion-root-authority.js'; import type { RuntimeStageOwnershipIdentity } from './runtime-stage-ownership.js'; import type { RuntimeExclusiveLease } from '@opensip-cli/core'; export { RUNTIME_MANIFEST_DIFF_SAMPLE_LIMIT, RUNTIME_MANIFEST_MAX_DIGEST_BYTES, RUNTIME_MANIFEST_MAX_ENTRIES, RUNTIME_MANIFEST_MAX_FILE_BYTES, RUNTIME_MANIFEST_MAX_PATH_AGGREGATE_BYTES, RUNTIME_MANIFEST_MAX_PATH_BYTES, RUNTIME_MANIFEST_MAX_SQLITE_SHM_BYTES, RUNTIME_MANIFEST_MAX_TOTAL_BYTES, isRuntimeManifestReleaseUnsafe, RuntimeManifestError, } from './runtime-manifest-model.js'; export { assertRuntimeStageOwnershipMarker, encodeRuntimeStageOwnershipMarker, RUNTIME_STAGE_OWNERSHIP_FILE, } from './runtime-stage-ownership.js'; export type { RuntimeManifestEntry, RuntimeManifestFailureReason, RuntimeTreePosture, } from './runtime-manifest-model.js'; export type { RuntimeStageOwnershipIdentity } from './runtime-stage-ownership.js'; export type { RuntimeManifestIdentity } from './runtime-promotion-journal-schema.js'; export { compareRuntimeManifests, runtimeManifestIdentityEqual, } from './runtime-manifest-comparison.js'; export type { RuntimeManifestDifference } from './runtime-manifest-comparison.js'; export interface VerifiedRuntimeManifest { readonly identity: RuntimeManifestIdentity; /** Bounded by {@link RUNTIME_MANIFEST_MAX_ENTRIES}; never journaled or rendered. */ readonly entries: readonly RuntimeManifestEntry[]; } export type RuntimeManifestCheckpoint = 'after-source-inspection' | 'before-stage-materialization' | 'after-stage-materialization' | 'after-source-reinspection'; export interface RuntimeManifestDependencies { readonly inspectTree: (runtimeDir: string, posture: RuntimeTreePosture, stageOwnership?: RuntimeStageOwnershipIdentity) => RuntimeTreeManifest; readonly inspectSqlite: (path: string) => SqliteIntegrityResult; readonly materialize: (sourceDir: string, destinationParent: string, stageBasename: string, source: RuntimeTreeManifest, ownership: RuntimeStageMaterializationIdentity, sourceRootIdentity: RuntimePromotionRootIdentity) => string; readonly checkpoint?: (checkpoint: RuntimeManifestCheckpoint) => void; } export interface CopyRuntimeToStageInput { readonly controller: RuntimePromotionJournalController; readonly receipt: DurableOpenPromotionJournal; readonly sourceDir: string; readonly sourcePosture: 'cache-source'; readonly destinationParent: string; readonly stageBasename: string; readonly projectRootAuthority: RuntimePromotionProjectRootAuthority; readonly lease: RuntimeExclusiveLease; } export interface VerifiedRuntimeStage { readonly stageDir: string; readonly source: VerifiedRuntimeManifest; readonly stage: VerifiedRuntimeManifest; } /** Inspect a stable tree and prove its SQLite file is valid, closed, and supported. */ export declare function inspectVerifiedRuntimeManifest(runtimeDir: string, posture: RuntimeTreePosture, dependencyOverrides?: Partial, stageOwnership?: RuntimeStageOwnershipIdentity): VerifiedRuntimeManifest; /** * Copy and verify a runtime stage only after the controller proves a matching * durable write-ahead intent. */ export declare function copyRuntimeToStage(input: CopyRuntimeToStageInput, dependencyOverrides?: Partial): Promise; //# sourceMappingURL=runtime-manifest.d.ts.map