fix(coding-agent,ai): show env auth source in /login
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import type { AuthCredential, AuthStatus } from "../../../core/auth-storage.js";
|
||||
|
||||
export type SelectorAuthType = "oauth" | "api_key";
|
||||
|
||||
export type AuthSelectorIndicator =
|
||||
| { kind: "configured"; label: string }
|
||||
| { kind: "configured-other"; label: string }
|
||||
| { kind: "runtime" }
|
||||
| { kind: "environment"; label: string }
|
||||
| { kind: "fallback" }
|
||||
| { kind: "unconfigured" };
|
||||
|
||||
function getConfiguredLabel(authType: SelectorAuthType): string {
|
||||
return authType === "oauth" ? "subscription configured" : "api key configured";
|
||||
}
|
||||
|
||||
export function getAuthSelectorIndicator(
|
||||
authType: SelectorAuthType,
|
||||
credential: AuthCredential | undefined,
|
||||
authStatus?: AuthStatus,
|
||||
): AuthSelectorIndicator {
|
||||
if (credential) {
|
||||
const label = getConfiguredLabel(credential.type);
|
||||
return credential.type === authType ? { kind: "configured", label } : { kind: "configured-other", label };
|
||||
}
|
||||
|
||||
if (authType === "oauth") {
|
||||
return { kind: "unconfigured" };
|
||||
}
|
||||
|
||||
if (authStatus?.source === "runtime") {
|
||||
return { kind: "runtime" };
|
||||
}
|
||||
|
||||
if (authStatus?.source === "environment") {
|
||||
return { kind: "environment", label: authStatus.label ?? "API key" };
|
||||
}
|
||||
|
||||
if (authStatus?.source === "fallback") {
|
||||
return { kind: "fallback" };
|
||||
}
|
||||
|
||||
return { kind: "unconfigured" };
|
||||
}
|
||||
Reference in New Issue
Block a user