diff --git a/packages/cli/src/check-cli-contract.ts b/packages/cli/src/check-cli-contract.ts index d960e38a..5113d73e 100644 --- a/packages/cli/src/check-cli-contract.ts +++ b/packages/cli/src/check-cli-contract.ts @@ -7,6 +7,8 @@ import { tmpdir } from "node:os"; import { assertSafeProjectHookPath, cliPackageName, configureProject, createClaudeMcpAddJsonArgs, createLocalDevCliCommand, createVersionPinnedCliCommand, installProjectLocalHooks, parseConfigureArgs, parseInstallArgs, parseReactArgs, parseSayArgs, resolveConfiguredPet, runClaudeMcpAddJson } from "./index.js"; +const packageVersion = (JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")) as { readonly version: string }).version; + const parsed = parseConfigureArgs(["--agent", "claude", "--pet", "fixer", "--cwd", "/tmp/project", "--yes"]); assert.equal(parsed.agent, "claude"); assert.equal(parsed.petId, "fixer"); @@ -130,9 +132,9 @@ try { const opencodeConfigPath = join(opencodeProject, ".opencode", "opencode.jsonc"); const opencodeInstructionPath = join(opencodeProject, ".opencode", "openpets.md"); const opencodeConfig = JSON.parse(readFileSync(opencodeConfigPath, "utf8")) as { readonly mcp?: Record; readonly instructions?: readonly string[]; readonly plugin?: readonly unknown[] }; - assert.deepEqual(opencodeConfig.mcp?.openpets?.command, ["npx", "-y", "@open-pets/cli@2.0.4", "mcp", "--pet", "fixer"]); + assert.deepEqual(opencodeConfig.mcp?.openpets?.command, ["npx", "-y", `@open-pets/cli@${packageVersion}`, "mcp", "--pet", "fixer"]); assert.deepEqual(opencodeConfig.instructions, [".opencode/openpets.md"]); - assert.deepEqual(opencodeConfig.plugin, [["@open-pets/opencode@2.0.4", { pet: "fixer" }]]); + assert.deepEqual(opencodeConfig.plugin, [[`@open-pets/opencode@${packageVersion}`, { pet: "fixer" }]]); assert.match(readFileSync(opencodeInstructionPath, "utf8"), /OPENPETS:START/); await configureProject({ agent: "opencode", petId: "fixer", cwd: opencodeProject, yes: true, force: false, localDev: false }); const opencodeConfigAgain = readFileSync(opencodeConfigPath, "utf8"); @@ -158,7 +160,7 @@ try { const lowerTop = readFileSync(join(lowerOwnerProject, "opencode.json"), "utf8"); const lowerOwned = JSON.parse(readFileSync(join(lowerOwnerProject, ".opencode", "opencode.jsonc"), "utf8")) as { readonly mcp?: Record }; assert.equal(lowerTop.includes("@open-pets/cli"), false); - assert.deepEqual(lowerOwned.mcp?.openpets?.command, ["npx", "-y", "@open-pets/cli@2.0.4", "mcp", "--pet", "fixer"]); + assert.deepEqual(lowerOwned.mcp?.openpets?.command, ["npx", "-y", `@open-pets/cli@${packageVersion}`, "mcp", "--pet", "fixer"]); const customProject = join(dir, "opencode-custom"); mkdirSync(customProject);