UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

51 lines (50 loc) 2.05 kB
import type { Prompter } from "#setup/prompter.js"; import { detectDeployment } from "#setup/project-resolution.js"; import type { RegistrySetupCompletion, RegistrySetupFact } from "#setup/registry-setup-protocol.js"; import { runDeployFlow } from "./deploy.js"; export interface RegistrySessionDeps { detectDeployment: typeof detectDeployment; runDeployFlow: typeof runDeployFlow; } export interface RegistrySessionItemResult { title: string; facts: readonly RegistrySetupFact[]; output: readonly string[]; } /** An item the user chose to skip after its installation could not complete. */ export interface RegistrySessionItemFailure { title: string; /** User-facing installation error, including any actionable follow-up lines. */ message: string; } export type RegistrySessionOutcome = ({ kind: "installed"; } & RegistrySessionItemResult) | ({ kind: "failed"; } & RegistrySessionItemFailure) | { kind: "cancelled"; title: string; }; export interface RegistrySessionResult { items: readonly RegistrySessionItemResult[]; /** Installation failures retained when a user skips an item. */ failures: readonly RegistrySessionItemFailure[]; /** Every item outcome in installation order. */ outcomes?: readonly RegistrySessionOutcome[]; /** Setup stopped outside an individual item after preserving settled results. */ cancelled?: true; deployed?: "production"; } export interface RegistrySession { add(title: string, output: readonly string[], setup?: RegistrySetupCompletion): void; addFailure(title: string, message: string): void; addCancellation(title: string): void; result(deployed?: "production"): RegistrySessionResult; continueAfterInstall(input: { appRoot: string; prompter: Prompter; signal?: AbortSignal; }): Promise<RegistrySessionResult>; } /** Owns the accumulated output and deployment decision for one `/add` session. */ export declare function createRegistrySession(deps: RegistrySessionDeps): RegistrySession;