diff --git a/packages/server/src/server/agent/providers/pi-direct-agent.ts b/packages/server/src/server/agent/providers/pi-direct-agent.ts index 8098924e9..4f58c480c 100644 --- a/packages/server/src/server/agent/providers/pi-direct-agent.ts +++ b/packages/server/src/server/agent/providers/pi-direct-agent.ts @@ -4,6 +4,7 @@ import { join } from "node:path"; import { homedir } from "node:os"; import type { Logger } from "pino"; import { + AuthStorage, ModelRegistry, SessionManager, createAgentSessionFromServices, @@ -1470,12 +1471,8 @@ export class PiDirectAgentClient implements AgentClient { return false; } - return ( - Boolean(process.env.OPENAI_API_KEY) || - Boolean(process.env.ANTHROPIC_API_KEY) || - Boolean(process.env.OPENROUTER_API_KEY) || - existsSync(join(homedir(), ".pi", "agent", "auth.json")) - ); + const registry = ModelRegistry.create(AuthStorage.create()); + return registry.getAvailable().length > 0; } async getDiagnostic(): Promise<{ diagnostic: string }> { @@ -1490,6 +1487,10 @@ export class PiDirectAgentClient implements AgentClient { const authConfigPath = join(homedir(), ".pi", "agent", "auth.json"); let modelsValue = "Not checked"; let status = formatDiagnosticStatus(available); + const registry = ModelRegistry.create(AuthStorage.create()); + const configuredProviders = Array.from( + new Set(registry.getAvailable().map((model) => model.provider)), + ).sort(); if (available) { try { @@ -1509,16 +1510,8 @@ export class PiDirectAgentClient implements AgentClient { { label: "Binary", value: binary ?? "not found" }, { label: "Version", value: version }, { - label: "OPENAI_API_KEY", - value: process.env.OPENAI_API_KEY ? "set" : "not set", - }, - { - label: "ANTHROPIC_API_KEY", - value: process.env.ANTHROPIC_API_KEY ? "set" : "not set", - }, - { - label: "OPENROUTER_API_KEY", - value: process.env.OPENROUTER_API_KEY ? "set" : "not set", + label: "Configured providers", + value: configuredProviders.length > 0 ? configuredProviders.join(", ") : "none", }, { label: "Auth config (~/.pi/agent/auth.json)",