/** * Reads the release a runtime owner reports as active. * * Only the identity is required here, deliberately: a runtime can report correct * `releaseId`/`revision`/`state` for a retained release while its release-path bookkeeping is * stale (three retained releases pointing at one path was observed in production), and an * adoption must not be blocked by that unrelated defect. * * @param {unknown} status - Parsed runtime status. * @returns {ActiveRuntimeRelease | undefined} */ export function activeRuntimeRelease(status: unknown): ActiveRuntimeRelease | undefined; /** * Every release the runtime still owns a process for, by identity only. * * Used when the runtime's own reference reporting is rejected: these releases must stay pinned * against cleanup exactly like the accepted set, and the identity is what pinning needs. * * @param {unknown} status - Parsed runtime status. * @returns {string[]} */ export function liveRuntimeReleaseIds(status: unknown): string[]; /** * Publishes the release the runtime owner already runs when Rampway's own state is behind it. * * A deploy can activate a release, switch traffic and pass health, then die before Rampway * publishes it (guardian provenance refusal, a fenced owner mutation, a killed controller). The * deployed revision is then live while `current`, the stable runtime state and `runtime-boot` * still name the previous release - and every later deploy tries to start that stale incumbent * and fails the same way, with no command able to resynchronise the two views. * * When the revision being deployed is already the runtime's active release, publishing that * release is the idempotent answer: nothing is started, no traffic is switched, and the three * publication artifacts are written from what the runtime reports. Adopting is skipped unless * the identities agree exactly, including on disk, so a mismatched or unreadable release still * fails loudly instead of being published blind. * * @param {{deployedRevision: string, runtime: RuntimeAdapter, stage: StageConfig, transport: Transport}} args * @returns {Promise} The adopted release, or undefined when not applicable. */ export function adoptActiveRuntimeRelease({ deployedRevision, runtime, stage, transport }: { deployedRevision: string; runtime: RuntimeAdapter; stage: StageConfig; transport: Transport; }): Promise; export type RuntimeAdapter = import("#types").RuntimeAdapter; export type Transport = import("#types").Transport; export type StageConfig = import("#types").StageConfig; export type ActiveRuntimeRelease = { releaseId: string; revision: string; }; export type AdoptedRuntimeRelease = { releaseId: string; revision: string; warnings: string[]; }; //# sourceMappingURL=adopt-runtime-release.d.ts.map