#!/usr/bin/env node "use strict"; const { readFileSync } = require("node:fs"); const manifestPaths = [ "plugin.json", ".codex-plugin/plugin.json", ".claude-plugin/plugin.json", ".claude-plugin/marketplace.json", ".agents/plugins/marketplace.json", ]; function readManifestVersion(manifestPath) { const manifest = JSON.parse(readFileSync(manifestPath, "utf8")); return manifest.version ?? manifest.plugins?.[0]?.version; } const expectedVersion = readManifestVersion("plugin.json"); if (!expectedVersion) { throw new Error("plugin.json is missing a version field"); } for (const manifestPath of manifestPaths) { const version = readManifestVersion(manifestPath); if (version !== expectedVersion) { throw new Error( `${manifestPath} has version ${version ?? ""}; expected ${expectedVersion}`, ); } } console.log(`All plugin manifests use version ${expectedVersion}.`);