eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
45 lines (44 loc) • 2.29 kB
TypeScript
import { isCodingAgentLaunch } from "#cli/agent-detection.js";
import { detectInvokingPackageManager, detectPackageManager } from "#setup/package-manager.js";
import { runPackageManagerInstall, spawnPackageManager } from "#setup/primitives/index.js";
import { addAgentToProject } from "#setup/scaffold/create/add-to-project.js";
import { ensureChannel, scaffoldBaseProject } from "#setup/scaffold/index.js";
import { tryInitializeGit } from "./init-git.js";
import { selectInitHandoff, spawnCodingAgentRepl } from "./init-repl.js";
export interface InitCliLogger {
error(message: string): void;
log(message: string): void;
}
export interface InitCommandOptions {
/** Add the Web Chat channel (a Next.js app). Set by `--channel-web-nextjs`. */
channelWebNextjs?: boolean;
}
export interface InitCommandDependencies {
addAgentToProject: typeof addAgentToProject;
detectInvokingPackageManager: typeof detectInvokingPackageManager;
detectPackageManager: typeof detectPackageManager;
ensureChannel: typeof ensureChannel;
isCodingAgentLaunch: typeof isCodingAgentLaunch;
now: () => number;
runPackageManagerInstall: typeof runPackageManagerInstall;
scaffoldBaseProject: typeof scaffoldBaseProject;
selectInitHandoff: typeof selectInitHandoff;
spawnCodingAgentRepl: typeof spawnCodingAgentRepl;
spawnPackageManager: typeof spawnPackageManager;
tryInitializeGit: typeof tryInitializeGit;
}
export declare const EVE_INIT_PACKAGE_SPEC_ENV = "EVE_INIT_PACKAGE_SPEC";
/**
* Creates a new eve agent (`target` is a project name), or adds one to an
* existing project (`target` is a directory), without prompts or external
* provisioning.
*
* Runs launched by a coding agent get the dev command printed instead of
* spawned after scaffolding, since the dev TUI would wedge the launching agent.
* A coding agent that omits the target entirely gets the setup guide printed and
* nothing scaffolded, since a bare `eve init` means it has not yet chosen what to
* build.
*
* For extension packages, use `eve extension init` instead.
*/
export declare function runInitCommand(logger: InitCliLogger, parentDirectory: string, target: string | undefined, options: InitCommandOptions, dependencies?: InitCommandDependencies): Promise<void>;