eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
32 lines (31 loc) • 1.6 kB
TypeScript
import { detectProjectResolution, type ProjectResolution } from "../project-resolution.js";
import type { Prompter } from "../prompter.js";
import { type SetupState } from "../state.js";
import type { SetupBox } from "../step.js";
import { linkProject, unresolvedProject } from "../vercel-project.js";
/** Injected for tests; defaults to the real Vercel project helpers. */
export interface LinkProjectDeps {
linkProject: typeof linkProject;
detectProjectResolution: typeof detectProjectResolution;
unresolvedProject: typeof unresolvedProject;
}
export interface LinkProjectOptions {
/** Streams link progress and, in interactive runs, may confirm ambiguous framework detection. */
prompter: Prompter;
/** Headless runs must not ask follow-up questions after the plan is fixed. */
headless?: boolean;
deps?: LinkProjectDeps;
}
/**
* Executes the resolved Vercel project plan after scaffolding, once the project
* directory exists. Gather prompts for nothing: the team/project decision was
* made in the resolve-provisioning box. Interactive runs may still confirm
* ambiguous host framework detections; headless runs resolve those
* deterministically inside `linkProject`.
*
* The plan is authoritative: the box always re-links to the planned project so
* a stale or mismatched `.vercel` link can't silently win. Re-linking the same
* identity is idempotent. The resolution read back from the link metadata lands
* in `state.project`.
*/
export declare function linkVercelProject(options: LinkProjectOptions): SetupBox<SetupState, null, ProjectResolution>;