Commands: lazy-load auth choice plugin provider runtime (#47692)

* Commands: lazy-load auth choice plugin provider runtime

* Tests: cover auth choice plugin provider runtime
This commit is contained in:
Vincent Koc 2026-03-15 16:40:51 -07:00 committed by GitHub
parent fd7e283ac5
commit c74042ba04
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 10 deletions

View File

@ -0,0 +1,5 @@
export {
resolveProviderPluginChoice,
runProviderModelSelectedHook,
} from "../plugins/provider-wizard.js";
export { resolvePluginProviders } from "../plugins/providers.js";

View File

@ -9,15 +9,12 @@ import {
} from "./auth-choice.apply.plugin-provider.js";
const resolvePluginProviders = vi.hoisted(() => vi.fn<() => ProviderPlugin[]>(() => []));
vi.mock("../plugins/providers.js", () => ({
resolvePluginProviders,
}));
const resolveProviderPluginChoice = vi.hoisted(() =>
vi.fn<() => { provider: ProviderPlugin; method: ProviderAuthMethod } | null>(),
);
const runProviderModelSelectedHook = vi.hoisted(() => vi.fn(async () => {}));
vi.mock("../plugins/provider-wizard.js", () => ({
vi.mock("./auth-choice.apply.plugin-provider.runtime.js", () => ({
resolvePluginProviders,
resolveProviderPluginChoice,
runProviderModelSelectedHook,
}));

View File

@ -7,11 +7,6 @@ import {
import { upsertAuthProfile } from "../agents/auth-profiles.js";
import { resolveDefaultAgentWorkspaceDir } from "../agents/workspace.js";
import { enablePluginInConfig } from "../plugins/enable.js";
import {
resolveProviderPluginChoice,
runProviderModelSelectedHook,
} from "../plugins/provider-wizard.js";
import { resolvePluginProviders } from "../plugins/providers.js";
import type { ProviderAuthMethod } from "../plugins/types.js";
import type { ApplyAuthChoiceParams, ApplyAuthChoiceResult } from "./auth-choice.apply.js";
import { isRemoteEnvironment } from "./oauth-env.js";
@ -33,6 +28,10 @@ export type PluginProviderAuthChoiceOptions = {
label: string;
};
async function loadPluginProviderRuntime() {
return import("./auth-choice.apply.plugin-provider.runtime.js");
}
export async function runProviderPluginAuthMethod(params: {
config: ApplyAuthChoiceParams["config"];
runtime: ApplyAuthChoiceParams["runtime"];
@ -109,6 +108,8 @@ export async function applyAuthChoiceLoadedPluginProvider(
const agentId = params.agentId ?? resolveDefaultAgentId(params.config);
const workspaceDir =
resolveAgentWorkspaceDir(params.config, agentId) ?? resolveDefaultAgentWorkspaceDir();
const { resolvePluginProviders, resolveProviderPluginChoice, runProviderModelSelectedHook } =
await loadPluginProviderRuntime();
const providers = resolvePluginProviders({ config: params.config, workspaceDir });
const resolved = resolveProviderPluginChoice({
providers,
@ -177,6 +178,8 @@ export async function applyAuthChoicePluginProvider(
const workspaceDir =
resolveAgentWorkspaceDir(nextConfig, agentId) ?? resolveDefaultAgentWorkspaceDir();
const { resolvePluginProviders, runProviderModelSelectedHook } =
await loadPluginProviderRuntime();
const providers = resolvePluginProviders({ config: nextConfig, workspaceDir });
const provider = resolveProviderMatch(providers, options.providerId);
if (!provider) {