























@@ -55,9 +55,8 @@ const mocks = vi.hoisted(() => {
5555hasProviderStaticCatalogForFilter: vi.fn(),
5656resolveConfiguredEntries: vi.fn(),
5757printModelTable: vi.fn(),
58-listProfilesForProvider: vi.fn(),
5958resolveModelWithRegistry: vi.fn(),
60-resolveRuntimeSyntheticAuthProviderRefs: vi.fn(),
59+readPersistedInstalledPluginIndexSync: vi.fn(),
6160};
6261});
6362@@ -94,9 +93,8 @@ function resetMocks() {
9493],
9594});
9695mocks.printModelTable.mockReset();
97-mocks.listProfilesForProvider.mockReturnValue([]);
9896mocks.resolveModelWithRegistry.mockReturnValue({ ...OPENAI_CODEX_MODEL });
99-mocks.resolveRuntimeSyntheticAuthProviderRefs.mockReturnValue([]);
97+mocks.readPersistedInstalledPluginIndexSync.mockReturnValue(null);
10098}
10199102100function createRuntime() {
@@ -201,10 +199,6 @@ function installModelsListCommandForwardCompatMocks() {
201199resolveOpenClawAgentDir: mocks.resolveOpenClawAgentDir,
202200}));
203201204-vi.doMock("../../agents/auth-profiles/profile-list.js", () => ({
205-listProfilesForProvider: mocks.listProfilesForProvider,
206-}));
207-208202vi.doMock("../../agents/model-catalog.js", () => ({
209203loadModelCatalog: mocks.loadModelCatalog,
210204}));
@@ -214,13 +208,11 @@ function installModelsListCommandForwardCompatMocks() {
214208}));
215209216210vi.doMock("../../agents/model-auth.js", () => ({
217-resolveEnvApiKey: vi.fn().mockReturnValue(undefined),
218-resolveAwsSdkEnvVarName: vi.fn().mockReturnValue(undefined),
219211hasUsableCustomProviderApiKey: vi.fn().mockReturnValue(false),
220212}));
221213222-vi.doMock("../../plugins/synthetic-auth.runtime.js", () => ({
223-resolveRuntimeSyntheticAuthProviderRefs: mocks.resolveRuntimeSyntheticAuthProviderRefs,
214+vi.doMock("../../plugins/installed-plugin-index-store.js", () => ({
215+readPersistedInstalledPluginIndexSync: mocks.readPersistedInstalledPluginIndexSync,
224216}));
225217}
226218@@ -238,7 +230,7 @@ async function buildAllOpenAiCodexRows(opts: { supplementCatalog?: boolean } = {
238230const context = {
239231cfg: mocks.resolvedConfig,
240232agentDir: "/tmp/openclaw-agent",
241-authStore: mocks.ensureAuthProfileStore(),
233+authIndex: { hasProviderAuth: (provider: string) => provider === "openai-codex" },
242234availableKeys: loaded.availableKeys,
243235configuredByKey: new Map(),
244236discoveredKeys: new Set(
@@ -453,11 +445,17 @@ describe("modelsListCommand forward-compat", () => {
453445454446describe("availability fallback", () => {
455447it("marks synthetic codex gpt-5.4 rows as available when provider auth exists", async () => {
456-mocks.listProfilesForProvider.mockImplementation((_: unknown, provider: string) =>
457-provider === "openai-codex"
458- ? ([{ id: "profile-1" }] as Array<Record<string, unknown>>)
459- : [],
460-);
448+mocks.ensureAuthProfileStore.mockReturnValueOnce({
449+version: 1,
450+profiles: {
451+"openai-codex:default": {
452+type: "token",
453+provider: "openai-codex",
454+token: "codex-app-server",
455+},
456+},
457+order: {},
458+});
461459const runtime = createRuntime();
462460463461await modelsListCommand({ json: true }, runtime as never);
@@ -508,7 +506,9 @@ describe("modelsListCommand forward-compat", () => {
508506cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
509507},
510508]);
511-mocks.resolveRuntimeSyntheticAuthProviderRefs.mockReturnValueOnce(["codex"]);
509+mocks.readPersistedInstalledPluginIndexSync.mockReturnValue({
510+plugins: [{ syntheticAuthRefs: ["codex"] }],
511+});
512512const runtime = createRuntime();
513513514514await modelsListCommand({ all: true, provider: "codex", json: true }, runtime as never);
@@ -865,11 +865,6 @@ describe("modelsListCommand forward-compat", () => {
865865contextWindow: 400000,
866866},
867867]);
868-mocks.listProfilesForProvider.mockImplementation((_: unknown, provider: string) =>
869-provider === "openai-codex"
870- ? ([{ id: "profile-1" }] as Array<Record<string, unknown>>)
871- : [],
872-);
873868mocks.resolveModelWithRegistry.mockImplementation(
874869({ provider, modelId }: { provider: string; modelId: string }) => {
875870if (provider !== "openai-codex") {
@@ -997,7 +992,7 @@ describe("modelsListCommand forward-compat", () => {
997992] as never,
998993context: {
999994cfg: mocks.resolvedConfig,
1000-authStore: mocks.ensureAuthProfileStore(),
995+authIndex: { hasProviderAuth: () => false },
1001996availableKeys: new Set(["openai-codex/gpt-5.4"]),
1002997configuredByKey: new Map(),
1003998discoveredKeys: new Set(),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。