




















@@ -139,15 +139,21 @@ describe("promptAuthConfig", () => {
139139mocks.applyAuthChoice.mockResolvedValue({ config: {} });
140140mocks.promptModelAllowlist.mockResolvedValue({ models: undefined });
141141mocks.resolveProviderPluginChoice.mockReturnValue({
142-provider: { id: "anthropic", label: "Anthropic", auth: [] },
143-method: { id: "setup-token", label: "setup-token", kind: "token" },
144-wizard: {
145-modelAllowlist: {
146-allowedKeys: ["anthropic/claude-sonnet-4-6"],
147-initialSelections: ["anthropic/claude-sonnet-4-6"],
148-message: "Anthropic OAuth models",
142+provider: {
143+id: "anthropic",
144+label: "Anthropic",
145+auth: [],
146+wizard: {
147+setup: {
148+modelAllowlist: {
149+allowedKeys: ["anthropic/claude-sonnet-4-6"],
150+initialSelections: ["anthropic/claude-sonnet-4-6"],
151+message: "Anthropic OAuth models",
152+},
153+},
149154},
150155},
156+method: { id: "setup-token", label: "setup-token", kind: "token" },
151157});
152158153159await promptAuthConfig({}, makeRuntime(), noopPrompter);
@@ -180,14 +186,20 @@ describe("promptAuthConfig", () => {
180186scopeKeys: ["anthropic/claude-opus-4-6", "anthropic/claude-sonnet-4-6"],
181187});
182188mocks.resolveProviderPluginChoice.mockReturnValue({
183-provider: { id: "anthropic", label: "Anthropic", auth: [] },
184-method: { id: "setup-token", label: "setup-token", kind: "token" },
185-wizard: {
186-modelAllowlist: {
187-allowedKeys: ["anthropic/claude-opus-4-6", "anthropic/claude-sonnet-4-6"],
188-initialSelections: ["anthropic/claude-sonnet-4-6"],
189+provider: {
190+id: "anthropic",
191+label: "Anthropic",
192+auth: [],
193+wizard: {
194+setup: {
195+modelAllowlist: {
196+allowedKeys: ["anthropic/claude-opus-4-6", "anthropic/claude-sonnet-4-6"],
197+initialSelections: ["anthropic/claude-sonnet-4-6"],
198+},
199+},
189200},
190201},
202+method: { id: "setup-token", label: "setup-token", kind: "token" },
191203});
192204193205const result = await promptAuthConfig({}, makeRuntime(), noopPrompter);
@@ -223,14 +235,20 @@ describe("promptAuthConfig", () => {
223235scopeKeys: ["openai/gpt-5.5", "openai/gpt-5.4-mini"],
224236});
225237mocks.resolveProviderPluginChoice.mockReturnValue({
226-provider: { id: "openai", label: "OpenAI", auth: [] },
227-method: { id: "setup-token", label: "setup-token", kind: "token" },
228-wizard: {
229-modelAllowlist: {
230-allowedKeys: ["openai/gpt-5.5", "openai/gpt-5.4-mini"],
231-initialSelections: ["openai/gpt-5.5"],
238+provider: {
239+id: "openai",
240+label: "OpenAI",
241+auth: [],
242+wizard: {
243+setup: {
244+modelAllowlist: {
245+allowedKeys: ["openai/gpt-5.5", "openai/gpt-5.4-mini"],
246+initialSelections: ["openai/gpt-5.5"],
247+},
248+},
232249},
233250},
251+method: { id: "setup-token", label: "setup-token", kind: "token" },
234252});
235253236254const result = await promptAuthConfig({}, makeRuntime(), noopPrompter);
@@ -245,6 +263,7 @@ describe("promptAuthConfig", () => {
245263});
246264247265it("scopes the allowlist picker to the selected provider when available", async () => {
266+vi.clearAllMocks();
248267mocks.promptAuthChoiceGrouped.mockResolvedValue("openai-api-key");
249268mocks.resolvePreferredProviderForAuthChoice.mockResolvedValue("openai");
250269mocks.applyAuthChoice.mockResolvedValue({ config: {} });
@@ -259,6 +278,39 @@ describe("promptAuthConfig", () => {
259278);
260279});
261280281+it("loads configured provider models after Ollama Cloud + Local and Cloud only setup", async () => {
282+vi.clearAllMocks();
283+mocks.promptAuthChoiceGrouped.mockResolvedValue("ollama");
284+mocks.resolvePreferredProviderForAuthChoice.mockResolvedValue(undefined);
285+mocks.applyAuthChoice.mockResolvedValue({
286+config: {
287+models: {
288+providers: {
289+ollama: {
290+baseUrl: "https://ollama.com",
291+api: "ollama",
292+models: [
293+{ id: "kimi-k2.5:cloud", name: "kimi-k2.5:cloud" },
294+{ id: "qwen3-coder:480b-cloud", name: "qwen3-coder:480b-cloud" },
295+],
296+},
297+},
298+},
299+},
300+});
301+mocks.promptModelAllowlist.mockResolvedValue({ models: undefined });
302+mocks.resolveProviderPluginChoice.mockReturnValue(null);
303+304+await promptAuthConfig({}, makeRuntime(), noopPrompter);
305+306+expect(mocks.promptModelAllowlist).toHaveBeenCalledWith(
307+expect.objectContaining({
308+preferredProvider: "ollama",
309+loadCatalog: true,
310+}),
311+);
312+});
313+262314it("returns to auth selection when plugin install onboarding asks for a retry", async () => {
263315vi.clearAllMocks();
264316mocks.promptAuthChoiceGrouped
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。