mirror of
https://github.com/obra/episodic-memory.git
synced 2026-09-14 13:43:14 +08:00
27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
export const MIN_CODEX_VERSION = '0.130.0';
|
|
export function parseCodexCliVersion(output) {
|
|
return output.match(/\b(\d+\.\d+\.\d+)\b/)?.[1];
|
|
}
|
|
export function compareSemver(a, b) {
|
|
const aParts = a.split('.').map(part => Number.parseInt(part, 10));
|
|
const bParts = b.split('.').map(part => Number.parseInt(part, 10));
|
|
for (let i = 0; i < 3; i++) {
|
|
const aPart = Number.isFinite(aParts[i]) ? aParts[i] : 0;
|
|
const bPart = Number.isFinite(bParts[i]) ? bParts[i] : 0;
|
|
if (aPart !== bPart) {
|
|
return aPart - bPart;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
export function versionMeetsMinimum(version, minimum = MIN_CODEX_VERSION) {
|
|
return compareSemver(version, minimum) >= 0;
|
|
}
|
|
export function codexVersionRequirementMessage(versionOutput) {
|
|
const version = parseCodexCliVersion(versionOutput);
|
|
if (!version) {
|
|
return `Codex summarization requires codex-cli >= ${MIN_CODEX_VERSION}; unable to parse version from: ${versionOutput.trim() || '(empty output)'}`;
|
|
}
|
|
return `Codex summarization requires codex-cli >= ${MIN_CODEX_VERSION}; found ${version}. Run codex update and retry.`;
|
|
}
|