eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
32 lines • 1.7 kB
TypeScript
import type { World } from '#compiled/@workflow/world/index.js';
type WorldSpecVersionMetadata = Pick<World, 'specVersion'>;
/**
* Rejects a World this runtime cannot speak to.
*
* The accepted range is
* `[SPEC_VERSION_SUPPORTS_SLOT_IDENTITY, SPEC_VERSION_MAX_SUPPORTED]`. Below
* the floor means an old World package paired with a new runtime, which cannot
* serve the protocol this runtime speaks. A World that does not number events
* by position allocates ids the runtime cannot read positions out of. Above the
* ceiling means a World built against a newer spec than this runtime knows how
* to read.
*
* The floor is deliberately the slot-identity version rather than
* `SPEC_VERSION_CURRENT`, which now sits one above it at the sealed log. Two
* reasons, and both are about the window a spec bump is staged over:
*
* - `WORKFLOW_SEALED_LOG=0` puts a deployment back on slot identity, so its
* World declares the lower version. Flooring at the version we stamp by
* default would make that kill switch reject the very World it selects,
* turning a rollback into a startup failure.
* - A World package one version behind the runtime it ships alongside is the
* normal state mid-bump, and it can still serve the protocol: slot identity
* is what the runtime actually requires, and sealed logs are a capability on
* top of it that only the backend implements.
*
* The range narrows again when the sealed log becomes mandatory and the flag
* goes away, exactly as slot identity's own floor did.
*/
export declare function assertWorldSupportsRuntimeProtocol(world: WorldSpecVersionMetadata): void;
export {};
//# sourceMappingURL=world-compatibility.d.ts.map