eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
54 lines (53 loc) • 1.96 kB
TypeScript
import { captureVercel, type VercelCaptureFailure } from "#setup/primitives/index.js";
import { readProjectLink, type VercelProjectReference } from "#setup/project-resolution.js";
declare const verifiedVercelTargetBrand: unique symbol;
export interface ResolvedVercelDeployment {
readonly provider: "vercel";
readonly ownerId: string;
readonly projectId: string;
readonly projectName: string;
readonly environment: string;
}
/** Proof that Vercel resolved one exact HTTPS origin under an authenticated scope. */
export interface VerifiedVercelTarget {
readonly [verifiedVercelTargetBrand]: true;
readonly origin: `https://${string}`;
readonly deployment: ResolvedVercelDeployment;
}
export type VercelDeploymentResolutionFailure = {
readonly cause: "vercel";
readonly failure: VercelCaptureFailure;
} | {
readonly cause: "invalid-json" | "invalid-shape";
readonly message: string;
};
export type VercelDeploymentResolution = {
readonly kind: "resolved";
readonly target: VerifiedVercelTarget;
} | {
readonly kind: "not-found";
} | {
readonly kind: "unscoped";
} | {
readonly kind: "project-mismatch";
readonly expectedProjectId: string;
readonly actualProjectId: string;
} | {
readonly kind: "cancelled";
} | {
readonly kind: "failed";
readonly failure: VercelDeploymentResolutionFailure;
};
export interface VercelDeploymentResolutionDeps {
readonly captureVercel: typeof captureVercel;
readonly readProjectLink: typeof readProjectLink;
}
/** Resolves a Vercel deployment URL to its project and target environment. */
export declare function resolveVercelDeployment(input: {
readonly workspaceRoot: string;
readonly host: string;
readonly source?: Pick<VercelProjectReference, "orgId" | "projectId">;
readonly signal?: AbortSignal;
readonly deps?: Partial<VercelDeploymentResolutionDeps>;
}): Promise<VercelDeploymentResolution>;
export {};