mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 12:51:34 +00:00
* fix(openai): align Codex discovery client version * chore: leave release notes to release workflow
34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
// Codex Client Version Contract tests cover cross-plugin managed version alignment.
|
|
import fs from "node:fs";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
const CODEX_PACKAGE_JSON_URL = new URL("../../extensions/codex/package.json", import.meta.url);
|
|
const OPENAI_PROVIDER_URL = new URL("../../extensions/openai/openai-provider.ts", import.meta.url);
|
|
const OPENAI_CODEX_CLIENT_VERSION_PATTERN = /^const OPENAI_CODEX_CLIENT_VERSION = "([^"]+)";$/mu;
|
|
|
|
function readManagedCodexVersion(): string {
|
|
const packageJson = JSON.parse(fs.readFileSync(CODEX_PACKAGE_JSON_URL, "utf8")) as {
|
|
dependencies?: Record<string, unknown>;
|
|
};
|
|
const version = packageJson.dependencies?.["@openai/codex"];
|
|
if (typeof version !== "string") {
|
|
throw new Error("extensions/codex/package.json must pin @openai/codex exactly");
|
|
}
|
|
return version;
|
|
}
|
|
|
|
function readOpenAICodexClientVersion(): string {
|
|
const providerSource = fs.readFileSync(OPENAI_PROVIDER_URL, "utf8");
|
|
const version = OPENAI_CODEX_CLIENT_VERSION_PATTERN.exec(providerSource)?.[1];
|
|
if (!version) {
|
|
throw new Error("extensions/openai/openai-provider.ts must declare the Codex client version");
|
|
}
|
|
return version;
|
|
}
|
|
|
|
describe("Codex client version contract", () => {
|
|
it("matches OpenAI model discovery to the managed Codex package", () => {
|
|
expect(readOpenAICodexClientVersion()).toBe(readManagedCodexVersion());
|
|
});
|
|
});
|