






















@@ -14,6 +14,7 @@ import type {
1414IngestResult,
1515} from "../../../context-engine/types.js";
1616import { formatErrorMessage } from "../../../infra/errors.js";
17+import type { PluginMetadataSnapshot } from "../../../plugins/plugin-metadata-snapshot.js";
1718import {
1819normalizeLowercaseStringOrEmpty,
1920normalizeOptionalLowercaseString,
@@ -229,6 +230,51 @@ export function getHoisted(): AttemptSpawnWorkspaceHoisted {
229230return hoisted;
230231}
231232233+const emptyPluginMetadataSnapshot: PluginMetadataSnapshot = {
234+policyHash: "",
235+index: {
236+version: 1,
237+hostContractVersion: "test",
238+compatRegistryVersion: "test",
239+migrationVersion: 1,
240+policyHash: "",
241+generatedAtMs: 1,
242+installRecords: {},
243+plugins: [],
244+diagnostics: [],
245+},
246+registryDiagnostics: [],
247+manifestRegistry: { plugins: [], diagnostics: [] },
248+plugins: [],
249+diagnostics: [],
250+byPluginId: new Map(),
251+normalizePluginId: (pluginId: string) => pluginId,
252+owners: {
253+channels: new Map(),
254+channelConfigs: new Map(),
255+providers: new Map(),
256+modelCatalogProviders: new Map(),
257+cliBackends: new Map(),
258+setupProviders: new Map(),
259+commandAliases: new Map(),
260+contracts: new Map(),
261+},
262+metrics: {
263+registrySnapshotMs: 0,
264+manifestRegistryMs: 0,
265+ownerMapsMs: 0,
266+totalMs: 0,
267+indexPluginCount: 0,
268+manifestPluginCount: 0,
269+},
270+};
271+272+vi.mock("../../../plugins/plugin-metadata-snapshot.js", () => ({
273+isPluginMetadataSnapshotCompatible: () => true,
274+listPluginOriginsFromMetadataSnapshot: () => new Map(),
275+loadPluginMetadataSnapshot: () => emptyPluginMetadataSnapshot,
276+}));
277+232278vi.mock("@mariozechner/pi-coding-agent", () => {
233279function AuthStorage() {}
234280class DefaultResourceLoader {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。