eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
101 lines (100 loc) • 4.58 kB
TypeScript
/** Stable kind for an extension distribution compatibility manifest. */
export declare const EXTENSION_COMPATIBILITY_MANIFEST_KIND = "eve-extension";
/** Current compatibility-manifest JSON format. */
export declare const EXTENSION_COMPATIBILITY_MANIFEST_FORMAT_VERSION = 1;
/** Filename emitted at the root of an extension's agent-shaped dist tree. */
export declare const EXTENSION_COMPATIBILITY_MANIFEST_FILENAME = "_manifest.json";
declare const EXTENSION_CAPABILITY_CONTRACTS: {
readonly extension: {
readonly current: 1;
readonly supported: readonly [1];
readonly dropped: {};
};
readonly tool: {
readonly current: 2;
readonly supported: readonly [1, 2];
readonly dropped: {};
};
readonly dynamicTool: {
readonly current: 3;
readonly supported: readonly [1, 2, 3];
readonly dropped: {};
};
readonly connection: {
readonly current: 2;
readonly supported: readonly [1, 2];
readonly dropped: {};
};
readonly hook: {
readonly current: 2;
readonly supported: readonly [1, 2];
readonly dropped: {};
};
readonly skill: {
readonly current: 1;
readonly supported: readonly [1];
readonly dropped: {};
};
readonly dynamicSkill: {
readonly current: 1;
readonly supported: readonly [1];
readonly dropped: {};
};
readonly instructions: {
readonly current: 1;
readonly supported: readonly [1];
readonly dropped: {};
};
readonly dynamicInstructions: {
readonly current: 1;
readonly supported: readonly [1];
readonly dropped: {};
};
readonly config: {
readonly current: 1;
readonly supported: readonly [1];
readonly dropped: {};
};
readonly state: {
readonly current: 2;
readonly supported: readonly [1, 2];
readonly dropped: {};
};
};
/** One independently versioned extension-facing contract. */
export type ExtensionCapability = keyof typeof EXTENSION_CAPABILITY_CONTRACTS;
/** Current producer contract version for each extension-facing capability. */
export declare const EXTENSION_CAPABILITY_VERSIONS: { readonly [TCapability in ExtensionCapability]: (typeof EXTENSION_CAPABILITY_CONTRACTS)[TCapability]["current"]; };
/** Capability requirements stamped by one extension build. */
export type ExtensionCapabilityRequirements = Partial<Record<ExtensionCapability, number>>;
/**
* Capability contract versions this eve release can consume.
*/
export declare const EXTENSION_CAPABILITY_SUPPORT: Readonly<Record<ExtensionCapability, readonly number[]>>;
/** Consumer support table used to validate one extension distribution. */
export type ExtensionCapabilitySupport = Readonly<Record<string, readonly number[]>>;
/** Compatibility-only metadata emitted by `eve extension build`. */
export interface ExtensionCompatibilityManifest {
readonly kind: typeof EXTENSION_COMPATIBILITY_MANIFEST_KIND;
readonly formatVersion: typeof EXTENSION_COMPATIBILITY_MANIFEST_FORMAT_VERSION;
/** Diagnostic producer version; capability requirements decide compatibility. */
readonly builtWithEve: string;
readonly requires: Readonly<Record<string, number>>;
}
/** One requirement the consuming eve cannot satisfy. */
export interface UnsupportedExtensionCapability {
readonly capability: string;
readonly requiredVersion: number;
readonly supportedVersions: readonly number[];
}
/** Serializes a compatibility manifest deterministically. */
export declare function serializeExtensionCompatibilityManifest(manifest: ExtensionCompatibilityManifest): string;
/** Parses and validates compatibility-manifest JSON. */
export declare function parseExtensionCompatibilityManifest(raw: string, manifestPath: string): ExtensionCompatibilityManifest;
/** Reads and validates an extension compatibility manifest. */
export declare function readExtensionCompatibilityManifest(manifestPath: string): Promise<ExtensionCompatibilityManifest>;
/** Writes `_manifest.json` into an agent-shaped extension dist root. */
export declare function writeExtensionCompatibilityManifest(distRoot: string, manifest: ExtensionCompatibilityManifest): Promise<void>;
/** Finds unknown or unsupported capability requirements without executing extension code. */
export declare function findUnsupportedExtensionCapabilities(manifest: ExtensionCompatibilityManifest, support?: ExtensionCapabilitySupport): UnsupportedExtensionCapability[];
export {};