@earendil-works/pi-coding-agent
Version:
Coding agent CLI with read, bash, edit, write tools and session management
136 lines • 6.58 kB
TypeScript
/**
* Detect if we're running as a Bun compiled binary.
* Bun binaries have import.meta.url containing "$bunfs", "~BUN", or "%7EBUN" (Bun's virtual filesystem path)
*/
export declare const isBunBinary: boolean;
/** Detect if Bun is the runtime (compiled binary or bun run) */
export declare const isBunRuntime: boolean;
export declare const isBundledNode: boolean;
export type InstallMethod = "bun-binary" | "npm" | "pnpm" | "yarn" | "bun" | "unknown";
interface SelfUpdateCommandStep {
command: string;
args: string[];
display: string;
}
export interface SelfUpdateCommand extends SelfUpdateCommandStep {
steps?: SelfUpdateCommandStep[];
}
export type SelfUpdatePackageTarget = string | {
packageName: string;
installSpec?: string;
};
export declare function detectInstallMethod(): InstallMethod;
export declare function getSelfUpdateCommand(packageName: string, npmCommand?: string[], updatePackageTarget?: SelfUpdatePackageTarget): SelfUpdateCommand | undefined;
/**
* The self-update command configured by the user: `PI_SELF_UPDATE_COMMAND` (whitespace-separated
* argv, no quoting), else the global `selfUpdateCommand` setting. Overrides install-method detection.
*/
export declare function getConfiguredSelfUpdateArgv(setting: string[] | undefined): string[] | undefined;
/** Fill the `{packageName}`, `{version}`, and `{installSpec}` placeholders of a configured self-update command. */
export declare function makeConfiguredSelfUpdateCommand(argv: string[], release: {
packageName: string;
version: string;
}): SelfUpdateCommand;
export declare function getSelfUpdateUnavailableInstruction(packageName: string, npmCommand?: string[], updatePackageTarget?: SelfUpdatePackageTarget): string;
export declare function getUpdateInstruction(packageName: string): string;
/**
* Get the base directory for resolving package assets (themes, package.json, README.md, CHANGELOG.md).
* - For Bun binary: returns the directory containing the executable
* - For Node.js: returns the package root containing package.json
* - Ignores Bun binary metadata copied into dist/ when the package root is available
*/
export declare function findNodePackageDir(startDir: string): string;
export declare function getPackageDir(): string;
/**
* Get path to built-in themes directory (shipped with package)
* - For Bun binary: theme/ next to executable
* - For Node.js (dist/): dist/modes/interactive/theme/
* - For source (src/): src/modes/interactive/theme/
*/
export declare function getThemesDir(): string;
/**
* Get path to HTML export template directory (shipped with package)
* - For Bun binary: export-html/ next to executable
* - For Node.js (dist/): dist/core/export-html/
* - For source (src/): src/core/export-html/
*/
export declare function getExportTemplateDir(): string;
/** Get path to package.json */
export declare function getPackageJsonPath(): string;
/** Get path to README.md */
export declare function getReadmePath(): string;
/** Get path to docs directory */
export declare function getDocsPath(): string;
/** Get path to examples directory */
export declare function getExamplesPath(): string;
/** Get path to CHANGELOG.md */
export declare function getChangelogPath(): string;
/**
* Get path to built-in interactive assets directory.
* - For Bun binary: assets/ next to executable
* - For Node.js (dist/): dist/modes/interactive/assets/
* - For source (src/): src/modes/interactive/assets/
*/
export declare function getInteractiveAssetsDir(): string;
/** Get path to a bundled interactive asset */
export declare function getBundledInteractiveAssetPath(name: string): string;
/** Called by the Bun entry with the path of the QuickJS wasm file embedded in the compiled executable. */
export declare function setEmbeddedQuickJSWasmPath(path: string): void;
/**
* Get path to `quickjs-wasi/quickjs.wasm`, the VM that runs codemode scripts. Resolved once so the
* compiled module cached per path keeps working after an update removes this install (#10439).
*/
export declare function getQuickJSWasmPath(): string;
/** Resolve the codemode worker entry for a release runtime. */
export declare function resolveCodemodeWorkerSpecifier(runtime: "bun-binary" | "bundled-node" | "unbundled", moduleUrl: string): string | URL | undefined;
/**
* Get the codemode worker entry, or undefined to use the worker that ships next to pi-codemode.
* The Bun and Node release builds both pass the worker as an extra entrypoint.
*/
export declare function getCodemodeWorkerSpecifier(): string | URL | undefined;
export type InstallChange = {
kind: "updated";
version: string;
} | {
kind: "removed";
};
/**
* Detect that the package this process runs from changed on disk, for example after `pi update`
* in another terminal. Code loaded on demand can then be missing or from another version.
*
* Checks the package.json read at startup. Resolving it again would walk up past a deleted install
* and could find an unrelated package.json, such as one in the home directory.
*/
export declare function detectInstallChange(packageJsonPath?: string | undefined): InstallChange | undefined;
export declare const PACKAGE_NAME: string;
export declare const APP_NAME: string;
export declare const APP_TITLE: string;
export declare const CONFIG_DIR_NAME: string;
export declare const VERSION: string;
export declare const ENV_AGENT_DIR: string;
export declare const ENV_SESSION_DIR: string;
export declare function expandTildePath(path: string): string;
/** Get the share viewer URL for a gist ID. */
export declare function getShareViewerUrl(gistId: string): string;
/** Get the agent config directory (e.g., ~/.pi/agent/) */
export declare function getAgentDir(): string;
/** Get path to user's custom themes directory */
export declare function getCustomThemesDir(): string;
/** Get path to models.json */
export declare function getModelsPath(): string;
/** Get path to auth.json */
export declare function getAuthPath(): string;
/** Get path to settings.json */
export declare function getSettingsPath(): string;
/** Get path to tools directory */
export declare function getToolsDir(): string;
/** Get path to managed binaries directory (fd, rg) */
export declare function getBinDir(): string;
/** Get path to prompt templates directory */
export declare function getPromptsDir(): string;
/** Get path to sessions directory */
export declare function getSessionsDir(): string;
/** Get path to debug log file */
export declare function getDebugLogPath(): string;
export {};
//# sourceMappingURL=config.d.ts.map