diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 000000000..6a38e7277 --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,3 @@ +import pkg from "../package.json"; + +export const PACKAGE_VERSION = pkg.version; diff --git a/src/index.ts b/src/index.ts index 20c7aa212..90a166c04 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,6 +16,7 @@ import { runWithExitCode } from "./runnable"; import { DefaultGlobalConfigAccessor } from "./globalConfig"; import { DefaultTelemetryClient } from "./telemetry"; import { AgentCoreCLIError } from "./errors"; +import { PACKAGE_VERSION } from "./constants"; import { CommandRunMetricEventKey, ValueContext } from "./router"; process.exit( @@ -27,7 +28,7 @@ process.exit( const rootLogger = createFileLogger({ filePath: join(homedir(), ".agentcore", "logs", "output"), logLevel: LOG_LEVEL.DEBUG, - bindings: { cliSessionId }, + bindings: { cliSessionId, version: PACKAGE_VERSION }, }); const io = { diff --git a/src/telemetry/client.test.tsx b/src/telemetry/client.test.tsx index f76b3882c..1eb1a08a9 100644 --- a/src/telemetry/client.test.tsx +++ b/src/telemetry/client.test.tsx @@ -8,6 +8,7 @@ import { LOG_LEVEL } from "../logging"; import { assertLogsMatch, TestGlobalConfigAccessor } from "../testing"; import type { MetricSink } from "./types"; import { FileSystemSink } from "./fileSystemSink"; +import { PACKAGE_VERSION } from "../constants"; describe("DefaultTelemetryClient", () => { let tempDir: string; @@ -69,7 +70,7 @@ describe("DefaultTelemetryClient", () => { const resourceAttributes = { "service.name": "agentcore-cli", - "service.version": "0.0.0", + "service.version": PACKAGE_VERSION, "agentcore-cli.installation_id": installationId, "agentcore-cli.session_id": sessionId, "os.type": os.type(), @@ -157,7 +158,7 @@ describe("DefaultTelemetryClient", () => { value: 123, attrs: { "service.name": "agentcore-cli", - "service.version": "0.0.0", + "service.version": PACKAGE_VERSION, "agentcore-cli.installation_id": enabledConfig.installationId, "agentcore-cli.session_id": enabledSessionId, "os.type": os.type(), diff --git a/src/telemetry/client.tsx b/src/telemetry/client.tsx index 94538abec..2ac07c3de 100644 --- a/src/telemetry/client.tsx +++ b/src/telemetry/client.tsx @@ -13,6 +13,7 @@ import { import type { GlobalConfigAccessor } from "../globalConfig"; import { FileSystemSink } from "./fileSystemSink"; import path from "path"; +import { PACKAGE_VERSION } from "../constants"; export type DefaultTelemetryClientConfig = { logger: Logger; @@ -91,8 +92,7 @@ export class DefaultTelemetryClient implements TelemetryClient { const globalConfig = await this.globalConfigAccessor.get(); return resourceAttributesSchema.parse({ "service.name": "agentcore-cli", - // TODO: wire up real package version. - "service.version": "0.0.0", + "service.version": PACKAGE_VERSION, "agentcore-cli.installation_id": globalConfig.installationId, "agentcore-cli.session_id": this.sessionId, "os.type": os.type(),