openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
52 lines (51 loc) • 2.21 kB
JavaScript
import { A as withTimeout } from "./fs-safe-BBzelG8F.mjs";
import { t as createSubsystemLogger } from "./subsystem-4NzR43uz.mjs";
import { r as createLazyRuntimeModule } from "./lazy-runtime-CJrzFzqU.mjs";
import "./runtime-env-CySdLHPX.mjs";
import "./time-runtime-SlsIp1up.mjs";
import { r as parseClaudeCodeVersion, s as supportsClaudeDynamicSystemPromptSections } from "./cli-shared-GJQ1-Ev_.mjs";
import { t as resolveClaudeTerminalExecutable } from "./session-catalog-executable-xkKV0AP8.mjs";
//#region extensions/anthropic/cli-version.ts
const log = createSubsystemLogger("anthropic-cli-version");
/** Share one lazy discovery result between native CLI capabilities and OAuth identity. */
function createClaudeCodeVersionProbe(api) {
let installedVersion;
const resolveVersion = createLazyRuntimeModule(async () => {
try {
const executable = resolveClaudeTerminalExecutable(process.env, { pathStrategy: "direct" });
if (!executable) {
log.warn("Claude Code version probe: executable-missing; OAuth requests keep the built-in version floor");
return;
}
const result = await withTimeout(api.runtime.system.runCommandWithTimeout([executable.executable, "--version"], {
timeoutMs: 1500,
killProcessTree: true,
killGraceMs: 100,
maxOutputBytes: {
stdout: 1024,
stderr: 1024
},
terminateOnOutputLimit: true
}), 1500);
if (result.code !== 0 || result.outputLimitExceeded) {
log.warn("Claude Code version probe: command-failed; OAuth requests keep the built-in version floor");
return;
}
installedVersion = parseClaudeCodeVersion(result.stdout);
if (!installedVersion) log.warn("Claude Code version probe: unparseable-output; OAuth requests keep the built-in version floor");
return installedVersion;
} catch {
log.warn("Claude Code version probe: probe-error; OAuth requests keep the built-in version floor");
return;
}
});
return {
resolveVersion,
ensureDynamicSystemPromptSectionsSupport: async () => {
await resolveVersion();
},
supportsDynamicSystemPromptSections: () => supportsClaudeDynamicSystemPromptSections(installedVersion)
};
}
//#endregion
export { createClaudeCodeVersionProbe as t };