From 794f9db56876294c94d06caa89c7d37fd181e79a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=A9=98?= Date: Fri, 5 Jun 2026 07:29:54 +0000 Subject: [PATCH] fix: add --version to adapter CLIs, read VERSION from package.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - All uwf-* adapter CLIs now support --version / -V - util VERSION constant reads from package.json at runtime - agent-hermes ACP clientInfo uses dynamic VERSION 小橘 🍊(NEKO Team) --- packages/agent-builtin/src/cli.ts | 7 +++++++ packages/agent-claude-code/src/cli.ts | 7 +++++++ packages/agent-hermes/src/acp-client.ts | 3 ++- packages/agent-hermes/src/cli.ts | 7 +++++++ packages/agent-mock/src/cli.ts | 7 +++++++ packages/util/src/version.ts | 11 +++++++++-- 6 files changed, 39 insertions(+), 3 deletions(-) diff --git a/packages/agent-builtin/src/cli.ts b/packages/agent-builtin/src/cli.ts index 57042b4..3f7acc2 100755 --- a/packages/agent-builtin/src/cli.ts +++ b/packages/agent-builtin/src/cli.ts @@ -1,5 +1,12 @@ #!/usr/bin/env node +// eslint-disable-next-line -- dynamic import for version +const pkg = await import("../package.json", { with: { type: "json" } }); +if (process.argv.includes("--version") || process.argv.includes("-V")) { + process.stdout.write(`${pkg.default.version}\n`); + process.exit(0); +} + import { createBuiltinAgent } from "./agent.js"; const main = createBuiltinAgent(); diff --git a/packages/agent-claude-code/src/cli.ts b/packages/agent-claude-code/src/cli.ts index b944e99..8f6de2b 100644 --- a/packages/agent-claude-code/src/cli.ts +++ b/packages/agent-claude-code/src/cli.ts @@ -1,5 +1,12 @@ #!/usr/bin/env node +// eslint-disable-next-line -- dynamic import for version +const pkg = await import("../package.json", { with: { type: "json" } }); +if (process.argv.includes("--version") || process.argv.includes("-V")) { + process.stdout.write(`${pkg.default.version}\n`); + process.exit(0); +} + import { createClaudeCodeAgent } from "./claude-code.js"; const model = process.env.CLAUDE_MODEL ?? null; diff --git a/packages/agent-hermes/src/acp-client.ts b/packages/agent-hermes/src/acp-client.ts index af057db..60303ba 100644 --- a/packages/agent-hermes/src/acp-client.ts +++ b/packages/agent-hermes/src/acp-client.ts @@ -1,6 +1,7 @@ import type { ChildProcess } from "node:child_process"; import { spawn } from "node:child_process"; import { createInterface } from "node:readline"; +import { VERSION } from "@united-workforce/util"; const HERMES_COMMAND = "hermes"; const PROTOCOL_VERSION = 1; @@ -299,7 +300,7 @@ export class HermesAcpClient { private async initialize(): Promise { const initResponse = await this.sendRequest("initialize", { protocolVersion: PROTOCOL_VERSION, - clientInfo: { name: "uwf", version: "0.1.0" }, + clientInfo: { name: "uwf", version: VERSION }, capabilities: {}, }); diff --git a/packages/agent-hermes/src/cli.ts b/packages/agent-hermes/src/cli.ts index 7e60b24..dfb679c 100755 --- a/packages/agent-hermes/src/cli.ts +++ b/packages/agent-hermes/src/cli.ts @@ -1,5 +1,12 @@ #!/usr/bin/env node +// eslint-disable-next-line -- dynamic import for version +const pkg = await import("../package.json", { with: { type: "json" } }); +if (process.argv.includes("--version") || process.argv.includes("-V")) { + process.stdout.write(`${pkg.default.version}\n`); + process.exit(0); +} + import { createHermesAgent } from "./hermes.js"; import { isResumeDisabled } from "./session-cache.js"; diff --git a/packages/agent-mock/src/cli.ts b/packages/agent-mock/src/cli.ts index 2676ac6..778caf8 100644 --- a/packages/agent-mock/src/cli.ts +++ b/packages/agent-mock/src/cli.ts @@ -1,5 +1,12 @@ #!/usr/bin/env node +// eslint-disable-next-line -- dynamic import for version +const pkg = await import("../package.json", { with: { type: "json" } }); +if (process.argv.includes("--version") || process.argv.includes("-V")) { + process.stdout.write(`${pkg.default.version}\n`); + process.exit(0); +} + import { createMockAgent } from "./mock-agent.js"; const USAGE = "usage: uwf-mock --mock-data --thread --role --prompt "; diff --git a/packages/util/src/version.ts b/packages/util/src/version.ts index 3e20583..d0c7de6 100644 --- a/packages/util/src/version.ts +++ b/packages/util/src/version.ts @@ -1,2 +1,9 @@ -// This version is kept in sync with package.json during releases. -export const VERSION = "0.1.0"; +import { readFileSync } from "node:fs"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const pkg = JSON.parse(readFileSync(join(__dirname, "..", "package.json"), "utf-8")) as { + version: string; +}; +export const VERSION = pkg.version; -- 2.43.0