diff --git a/src/overseer.ts b/src/overseer.ts index 2223701..ae0fdba 100644 --- a/src/overseer.ts +++ b/src/overseer.ts @@ -265,8 +265,29 @@ export async function runOverseer(config: OverseerConfig) { break; } + case "!version": { + try { + const { readFileSync } = await import("node:fs"); + const { execFileSync } = await import("node:child_process"); + const { join, dirname } = await import("node:path"); + const { fileURLToPath } = await import("node:url"); + const pkgDir = join(dirname(fileURLToPath(import.meta.url)), ".."); + const pkg = JSON.parse(readFileSync(join(pkgDir, "package.json"), "utf-8")); + let gitHash = ""; + try { + gitHash = execFileSync("git", ["rev-parse", "--short", "HEAD"], { + encoding: "utf-8", cwd: pkgDir, timeout: 3_000, + }).trim(); + } catch {} + bot.say(event.target, `fireclaw v${pkg.version}${gitHash ? ` (${gitHash})` : ""}`); + } catch { + bot.say(event.target, "fireclaw (version unknown)"); + } + break; + } + case "!help": { - bot.say(event.target, "Commands: !invoke