diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index 7875f91e..c790db0b 100644 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -123,7 +123,7 @@ async function parseArguments(): Promise { description: 'Enables checkpointing of file edits', default: false, }) - .version(getCliVersion()) // This will enable the --version flag based on package.json + .version(await getCliVersion()) // This will enable the --version flag based on package.json .alias('v', 'version') .help() .alias('h', 'help') diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts index 2eec29ca..7c750af1 100644 --- a/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts +++ b/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts @@ -48,7 +48,7 @@ vi.mock('node:fs/promises', () => ({ mkdir: vi.fn(), })); -const mockGetCliVersionFn = vi.fn(() => '0.1.0'); +const mockGetCliVersionFn = vi.fn(() => Promise.resolve('0.1.0')); vi.mock('../../utils/version.js', () => ({ getCliVersion: (...args: []) => mockGetCliVersionFn(...args), })); @@ -377,7 +377,7 @@ describe('useSlashCommandProcessor', () => { const originalEnv = process.env; beforeEach(() => { vi.resetModules(); - mockGetCliVersionFn.mockReturnValue('0.1.0'); + mockGetCliVersionFn.mockResolvedValue('0.1.0'); process.env = { ...originalEnv }; }); @@ -427,7 +427,7 @@ Add any other context about the problem here. }; it('should call open with the correct GitHub issue URL and return true', async () => { - mockGetCliVersionFn.mockReturnValue('test-version'); + mockGetCliVersionFn.mockResolvedValue('test-version'); process.env.SANDBOX = 'gemini-sandbox'; process.env.SEATBELT_PROFILE = 'test_profile'; const { handleSlashCommand } = getProcessor(); diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.ts index 8303ea55..0e622f23 100644 --- a/packages/cli/src/ui/hooks/slashCommandProcessor.ts +++ b/packages/cli/src/ui/hooks/slashCommandProcessor.ts @@ -518,7 +518,7 @@ export const useSlashCommandProcessor = ( { name: 'about', description: 'show version info', - action: (_mainCommand, _subCommand, _args) => { + action: async (_mainCommand, _subCommand, _args) => { const osVersion = process.platform; let sandboxEnv = 'no sandbox'; if (process.env.SANDBOX && process.env.SANDBOX !== 'sandbox-exec') { @@ -529,7 +529,7 @@ export const useSlashCommandProcessor = ( })`; } const modelVersion = config?.getModel() || 'Unknown'; - const cliVersion = getCliVersion(); + const cliVersion = await getCliVersion(); addMessage({ type: MessageType.ABOUT, timestamp: new Date(), @@ -543,7 +543,7 @@ export const useSlashCommandProcessor = ( { name: 'bug', description: 'submit a bug report', - action: (_mainCommand, _subCommand, args) => { + action: async (_mainCommand, _subCommand, args) => { let bugDescription = _subCommand || ''; if (args) { bugDescription += ` ${args}`; @@ -560,8 +560,8 @@ export const useSlashCommandProcessor = ( })`; } const modelVersion = config?.getModel() || 'Unknown'; + const cliVersion = await getCliVersion(); const memoryUsage = formatMemoryUsage(process.memoryUsage().rss); - const cliVersion = getCliVersion(); const diagnosticInfo = ` ## Describe the bug diff --git a/packages/cli/src/utils/version.ts b/packages/cli/src/utils/version.ts index 78aeafcd..3b7bb0e2 100644 --- a/packages/cli/src/utils/version.ts +++ b/packages/cli/src/utils/version.ts @@ -4,6 +4,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -export function getCliVersion(): string { - return process.env.CLI_VERSION || 'unknown'; +import { getPackageJson } from './package.js'; + +export async function getCliVersion(): Promise { + const pkgJson = await getPackageJson(); + return process.env.CLI_VERSION || pkgJson?.version || 'unknown'; }