import fs from "node:fs"; import { z } from "zod"; import { loadPluginManifestRegistry } from "../plugins/manifest-registry.js"; import type { RuntimeEnv } from "../runtime.js"; import { normalizeOptionalString } from "../shared/string-coerce.js"; import { normalizeTrimmedStringList } from "../shared/string-normalization.js"; import { note } from "../terminal/note.js"; import { shortenHomePath } from "../utils.js"; import { safeParseJsonWithSchema, safeParseWithSchema } from "../utils/zod-parse.js"; import type { DoctorPrompter } from "./doctor-prompter.js";
const LEGACY_MANIFEST_CONTRACT_KEYS = [ "speechProviders", "mediaUnderstandingProviders", "imageGenerationProviders",
] as const;
const applied: string[] = []; for (const migration of migrations) { try {
fs.writeFileSync(
migration.manifestPath,
`${JSON.stringify(migration.nextRaw, null, 2)}\n`, "utf-8",
);
applied.push(...migration.changeLines);
} catch (error) {
params.runtime.error(
`Failed to rewrite legacy plugin manifest at ${migration.manifestPath}: ${String(error)}`,
);
}
}
if (applied.length > 0) {
emitNote(applied.join("\n"), "Doctor changes");
}
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.