diff --git a/packages/cli/src/ui/components/Composer.tsx b/packages/cli/src/ui/components/Composer.tsx
index 1310fface..70eb59a05 100644
--- a/packages/cli/src/ui/components/Composer.tsx
+++ b/packages/cli/src/ui/components/Composer.tsx
@@ -29,10 +29,10 @@ export const Composer = () => {
const { showAutoAcceptIndicator, sessionStats } = uiState;
- const tokens = Object.values(sessionStats.metrics.models).reduce(
+ const tokens = Object.values(sessionStats.metrics?.models ?? {}).reduce(
(acc, model) => ({
- prompt: acc.prompt + model.tokens.prompt,
- candidates: acc.candidates + model.tokens.candidates,
+ prompt: acc.prompt + (model.tokens?.prompt ?? 0),
+ candidates: acc.candidates + (model.tokens?.candidates ?? 0),
}),
{ prompt: 0, candidates: 0 },
);
diff --git a/packages/cli/src/ui/components/LoadingIndicator.test.tsx b/packages/cli/src/ui/components/LoadingIndicator.test.tsx
index 4c914bd30..ea9e54a34 100644
--- a/packages/cli/src/ui/components/LoadingIndicator.test.tsx
+++ b/packages/cli/src/ui/components/LoadingIndicator.test.tsx
@@ -313,11 +313,7 @@ describe('', () => {
describe('token display', () => {
it('should display output tokens inline with arrow notation', () => {
const { lastFrame } = renderWithContext(
- ,
+ ,
StreamingState.Responding,
);
const output = lastFrame();
@@ -329,11 +325,7 @@ describe('', () => {
it('should not display tokens when output tokens is 0', () => {
const { lastFrame } = renderWithContext(
- ,
+ ,
StreamingState.Responding,
);
const output = lastFrame();