eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
47 lines • 2.12 kB
TypeScript
/**
* Spec version utilities for backwards compatibility.
*
* Uses a branded type to ensure packages import the version constants
* from @workflow/world rather than using arbitrary numbers.
*/
declare const SpecVersionBrand: unique symbol;
/**
* Branded type for spec versions. Must be created via SPEC_VERSION constants.
* This ensures all packages use the canonical version from @workflow/world.
*/
export type SpecVersion = number & {
readonly [SpecVersionBrand]: typeof SpecVersionBrand;
};
/**
* Legacy spec version (pre-event-sourcing). Also used for runs without specVersion.
* This is the only true legacy version — specVersion 2+ all use the event-sourced model.
*/
export declare const SPEC_VERSION_LEGACY: SpecVersion;
export declare const SPEC_VERSION_SUPPORTS_EVENT_SOURCING: SpecVersion;
export declare const SPEC_VERSION_SUPPORTS_CBOR_QUEUE_TRANSPORT: SpecVersion;
export declare const SPEC_VERSION_SUPPORTS_ATTRIBUTES: SpecVersion;
/** Current spec version (event-sourced architecture with native attributes). */
export declare const SPEC_VERSION_CURRENT: SpecVersion;
/**
* Check if a spec version is legacy (<= SPEC_VERSION_LEGACY or undefined).
* Legacy runs require different handling - they use direct entity mutation
* instead of the event-sourced model.
*
* Checks against SPEC_VERSION_LEGACY (1), not SPEC_VERSION_CURRENT, so that
* intermediate versions (e.g. 2) are not incorrectly treated as legacy when
* SPEC_VERSION_CURRENT is bumped.
*
* @param v - The spec version number, or undefined/null for legacy runs
* @returns true if the run is a legacy run
*/
export declare function isLegacySpecVersion(v: number | undefined | null): boolean;
/**
* Check if a spec version requires a newer world (> SPEC_VERSION_CURRENT).
* This happens when a run was created by a newer SDK version.
*
* @param v - The spec version number, or undefined/null for legacy runs
* @returns true if the run requires a newer world version
*/
export declare function requiresNewerWorld(v: number | undefined | null): boolean;
export {};
//# sourceMappingURL=spec-version.d.ts.map