























@@ -19,6 +19,46 @@ const OPENAI_CODEX_53_MODEL = {
1919};
20202121const mocks = vi.hoisted(() => {
22+const emptyPluginIndex = {
23+version: 1,
24+hostContractVersion: "test",
25+compatRegistryVersion: "test",
26+migrationVersion: 1,
27+policyHash: "models-list-command-forward-compat-test",
28+generatedAtMs: 0,
29+installRecords: {},
30+plugins: [],
31+diagnostics: [],
32+};
33+const emptyPluginMetadataSnapshot = {
34+policyHash: "models-list-command-forward-compat-test",
35+configFingerprint: "models-list-command-forward-compat-test",
36+index: emptyPluginIndex,
37+registryDiagnostics: [],
38+manifestRegistry: { plugins: [], diagnostics: [] },
39+plugins: [],
40+diagnostics: [],
41+byPluginId: new Map(),
42+normalizePluginId: (pluginId: string) => pluginId,
43+owners: {
44+channels: new Map(),
45+channelConfigs: new Map(),
46+providers: new Map(),
47+modelCatalogProviders: new Map(),
48+cliBackends: new Map(),
49+setupProviders: new Map(),
50+commandAliases: new Map(),
51+contracts: new Map(),
52+},
53+metrics: {
54+registrySnapshotMs: 0,
55+manifestRegistryMs: 0,
56+ownerMapsMs: 0,
57+totalMs: 0,
58+indexPluginCount: 0,
59+manifestPluginCount: 0,
60+},
61+};
2262const sourceConfig = {
2363agents: { defaults: { model: { primary: "openai-codex/gpt-5.4" } } },
2464models: {
@@ -40,6 +80,7 @@ const mocks = vi.hoisted(() => {
4080},
4181};
4282return {
83+ emptyPluginMetadataSnapshot,
4384 sourceConfig,
4485 resolvedConfig,
4586loadModelsConfigWithSource: vi.fn(),
@@ -57,6 +98,7 @@ const mocks = vi.hoisted(() => {
5798printModelTable: vi.fn(),
5899resolveModelWithRegistry: vi.fn(),
59100readPersistedInstalledPluginIndexSync: vi.fn(),
101+loadManifestMetadataSnapshot: vi.fn(),
60102loadPluginRegistrySnapshotWithMetadata: vi.fn(),
61103};
62104});
@@ -96,6 +138,7 @@ function resetMocks() {
96138mocks.printModelTable.mockReset();
97139mocks.resolveModelWithRegistry.mockReturnValue({ ...OPENAI_CODEX_MODEL });
98140mocks.readPersistedInstalledPluginIndexSync.mockReturnValue(null);
141+mocks.loadManifestMetadataSnapshot.mockReturnValue(mocks.emptyPluginMetadataSnapshot);
99142mocks.loadPluginRegistrySnapshotWithMetadata.mockReturnValue({
100143source: "persisted",
101144snapshot: { plugins: [] },
@@ -271,6 +314,10 @@ function installModelsListCommandForwardCompatMocks() {
271314readPersistedInstalledPluginIndexSync: mocks.readPersistedInstalledPluginIndexSync,
272315}));
273316317+vi.doMock("../../plugins/manifest-contract-eligibility.js", () => ({
318+loadManifestMetadataSnapshot: mocks.loadManifestMetadataSnapshot,
319+}));
320+274321vi.doMock("../../plugins/plugin-registry.js", async (importOriginal) => {
275322const actual = await importOriginal<typeof import("../../plugins/plugin-registry.js")>();
276323return {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。