mirror of
https://fastgit.cc/github.com/openclaw/openclaw
synced 2026-04-30 22:12:32 +08:00
Codex: parse Desktop app-server user agents
This commit is contained in:
committed by
Peter Steinberger
parent
d74533c718
commit
728295c046
@@ -200,10 +200,14 @@ describe("CodexAppServerClient", () => {
|
||||
expect(process.unref).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
it("reads the Codex version from the app-server user agent", () => {
|
||||
expect(readCodexVersionFromUserAgent("Codex Desktop/0.118.0")).toBe("0.118.0");
|
||||
expect(readCodexVersionFromUserAgent("openclaw/0.118.0 (macOS; test)")).toBe("0.118.0");
|
||||
expect(readCodexVersionFromUserAgent("codex_cli_rs/0.118.1-dev (linux; test)")).toBe(
|
||||
"0.118.1-dev",
|
||||
);
|
||||
expect(readCodexVersionFromUserAgent("Codex Desktop/not-a-version")).toBeUndefined();
|
||||
expect(readCodexVersionFromUserAgent("Codex Desktop/0.118")).toBeUndefined();
|
||||
expect(readCodexVersionFromUserAgent("openclaw/0.118.0abc")).toBeUndefined();
|
||||
expect(readCodexVersionFromUserAgent("missing-version")).toBeUndefined();
|
||||
});
|
||||
|
||||
|
||||
@@ -373,8 +373,11 @@ function assertSupportedCodexAppServerVersion(response: CodexInitializeResponse)
|
||||
|
||||
export function readCodexVersionFromUserAgent(userAgent: string | undefined): string | undefined {
|
||||
// Codex returns `<originator>/<codex-version> ...`; the originator can be
|
||||
// OpenClaw or an env override, so only the slash-delimited version is stable.
|
||||
const match = userAgent?.match(/^[^/\s]+\/(\d+\.\d+\.\d+(?:[-+][^\s()]*)?)/);
|
||||
// OpenClaw, Codex Desktop, or an env override, so only the slash-delimited
|
||||
// version in the leading product field is stable.
|
||||
const match = userAgent?.match(
|
||||
/^[^/]+\/(\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?)(?:[\s(]|$)/,
|
||||
);
|
||||
return match?.[1];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user