fix(coding-agent): disable managed extension peer resolution
closes #4907
This commit is contained in:
@@ -1706,13 +1706,25 @@ export class DefaultPackageManager implements PackageManager {
|
||||
|
||||
private getNpmInstallArgs(specs: string[], installRoot: string): string[] {
|
||||
const packageManagerName = this.getPackageManagerName();
|
||||
// Extension packages run inside pi and resolve pi APIs through loader aliases/virtual modules.
|
||||
// Disable peer dependency resolution for managed installs (npm's --legacy-peer-deps, and
|
||||
// equivalent bun/pnpm settings) so package managers do not install or solve host-provided
|
||||
// @earendil-works/pi-* peers. Stale auto-installed pi peers can otherwise block updates.
|
||||
if (packageManagerName === "bun") {
|
||||
return ["install", ...specs, "--cwd", installRoot];
|
||||
return ["install", ...specs, "--cwd", installRoot, "--omit=peer"];
|
||||
}
|
||||
if (packageManagerName === "pnpm") {
|
||||
return ["install", ...specs, "--prefix", installRoot, "--config.strict-dep-builds=false"];
|
||||
return [
|
||||
"install",
|
||||
...specs,
|
||||
"--prefix",
|
||||
installRoot,
|
||||
"--config.auto-install-peers=false",
|
||||
"--config.strict-peer-dependencies=false",
|
||||
"--config.strict-dep-builds=false",
|
||||
];
|
||||
}
|
||||
return ["install", ...specs, "--prefix", installRoot];
|
||||
return ["install", ...specs, "--prefix", installRoot, "--legacy-peer-deps"];
|
||||
}
|
||||
|
||||
private async installNpm(source: NpmSource, scope: SourceScope, temporary: boolean): Promise<void> {
|
||||
|
||||
Reference in New Issue
Block a user