fix: reject executable pi configuration

This commit is contained in:
2026-08-05 04:49:19 +02:00
parent 6b828288e3
commit 2703864572
9 changed files with 479 additions and 56 deletions
+9 -1
View File
@@ -7,6 +7,10 @@ import {
type Settings,
} from "../settings/settings-store.js";
import type { PiModel } from "./list-models.js";
import {
PI_MANAGED_CONFIG_ERROR_MESSAGE,
isPiManagedConfigError,
} from "./managed-config.js";
import { createPiProviderSmoke, type PiProviderSmoke } from "./provider-smoke.js";
const execFile = promisify(nodeExecFile);
@@ -105,7 +109,10 @@ export function createPiManagement(config: AppConfig, deps: PiManagementDeps): P
let listed: PiModel[];
try {
listed = await deps.listModels();
} catch {
} catch (error) {
if (isPiManagedConfigError(error)) {
throw new PiManagementError("pi_management_unavailable", PI_MANAGED_CONFIG_ERROR_MESSAGE);
}
throw new PiManagementError("pi_management_unavailable", "Pi model choices are unavailable");
}
const models: Array<{ provider: string; id: string }> = [];
@@ -287,6 +294,7 @@ function isTimeout(error: unknown): boolean {
}
function stableMessage(error: unknown, fallback: string): string {
if (isPiManagedConfigError(error)) return PI_MANAGED_CONFIG_ERROR_MESSAGE;
return error instanceof PiManagementError ? error.message : fallback;
}