import { ExtensionLayerResolvers } from "../../builders/cli/extensionAssembler/index.cjs"; import { MajorModesConfig } from "@agimon-ai/doompi-config/majorModes"; import { PackageManager } from "@earendil-works/pi-coding-agent"; //#region src/composition/layerPackageInstaller/index.d.ts type LayerPackageManager = Pick; export interface EnsureLayerPackagesOptions { repoRoot: string; config: MajorModesConfig; layers: readonly string[]; environment?: NodeJS.ProcessEnv; /** * Move every managed package to its newest published version. * * Launch installs what a selection needs and nothing more, so a session never * pays for a registry round trip. Sync is the explicit maintenance command and * is the only caller that asks for this. */ refresh?: boolean; /** Receives one human-readable line per package decision. */ onProgress?: (message: string) => void; } export interface LayerPackageInstallerDependencies { packageManager?: LayerPackageManager; resolvers?: ExtensionLayerResolvers; /** Registry lookup seam; the default reads the newest version with Pi's npm client. */ publishedVersion?: (name: string) => Promise; } /** One managed package moving from the installed version to the newest published one. */ export interface LayerPackageUpdate { name: string; from: string; to: string; } export interface LayerPackageResult { /** Sources installed because a configured extension could not be resolved. */ installed: string[]; /** Packages this run moved to a newer published version. */ updated: LayerPackageUpdate[]; /** Packages left at the installed version because the registry could not be read. */ unchecked: string[]; } /** Installs selected layer packages into Pi's project-local `.pi/npm` store and verifies the retry. */ export declare function ensureLayerPackages(options: EnsureLayerPackagesOptions, dependencies?: LayerPackageInstallerDependencies): Promise; //#endregion //# sourceMappingURL=index.d.cts.map