eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
38 lines (37 loc) • 2.34 kB
TypeScript
import type { PackageManagerKind } from "../../package-manager.js";
import { type ProcessOutputHandler } from "../process-output.js";
import type { PackageManagerInstallOptions } from "./types.js";
/** Output routing options for setup-owned package manager commands. */
export interface RunPackageManagerOptions {
/** Streams command output to a parent-owned renderer instead of writing outside it. */
onOutput?: ProcessOutputHandler;
/** Aborts the package-manager subprocess when setup is interrupted. */
signal?: AbortSignal;
/**
* Closes stdin so the child cannot prompt — required when a repainting TUI
* owns the terminal in raw mode, where an inherited stdin would let the child
* contend for keystrokes.
*/
nonInteractive?: boolean;
}
/** @deprecated Use {@link RunPackageManagerOptions}. */
export type RunPnpmOptions = RunPackageManagerOptions;
/** Runs the selected package manager in `projectRoot`. */
export declare function spawnPackageManager(kind: PackageManagerKind, projectRoot: string, args: readonly string[], options?: RunPackageManagerOptions): Promise<boolean>;
export interface RunInstallOptions extends RunPackageManagerOptions, PackageManagerInstallOptions {
}
/**
* Installs project dependencies using the selected package-manager strategy.
*
* pnpm resolves an unclaimed nested project as part of an ancestor workspace,
* where `install` can exit successfully without touching the project and can
* run the ancestor's lifecycle scripts. Membership is therefore established
* before installation, so exactly one correctly scoped install runs.
*/
export declare function runPackageManagerInstall(kind: PackageManagerKind, projectRoot: string, options?: RunInstallOptions): Promise<boolean>;
/** The argv that runs the locally installed eve binary's `dev` command. */
export declare function eveDevArguments(kind: PackageManagerKind): readonly string[];
/** Compatibility wrapper for callers that still explicitly require pnpm. */
export declare function spawnPnpm(projectRoot: string, args: readonly string[], options?: RunPackageManagerOptions): Promise<boolean>;
/** Compatibility wrapper for callers that still explicitly require pnpm. */
export declare function runPnpmInstall(projectRoot: string, options?: RunPackageManagerOptions): Promise<boolean>;