summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/components
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/components')
-rw-r--r--packages/cli/src/ui/components/StatsDisplay.test.tsx4
-rw-r--r--packages/cli/src/ui/components/StatsDisplay.tsx45
-rw-r--r--packages/cli/src/ui/components/__snapshots__/SessionSummaryDisplay.test.tsx.snap5
-rw-r--r--packages/cli/src/ui/components/__snapshots__/StatsDisplay.test.tsx.snap30
4 files changed, 61 insertions, 23 deletions
diff --git a/packages/cli/src/ui/components/StatsDisplay.test.tsx b/packages/cli/src/ui/components/StatsDisplay.test.tsx
index a0ed3858..eed105e3 100644
--- a/packages/cli/src/ui/components/StatsDisplay.test.tsx
+++ b/packages/cli/src/ui/components/StatsDisplay.test.tsx
@@ -24,6 +24,7 @@ const useSessionStatsMock = vi.mocked(SessionContext.useSessionStats);
const renderWithMockedStats = (metrics: SessionMetrics) => {
useSessionStatsMock.mockReturnValue({
stats: {
+ sessionId: 'test-session-id',
sessionStartTime: new Date(),
metrics,
lastPromptTokenCount: 0,
@@ -55,7 +56,7 @@ describe('<StatsDisplay />', () => {
const output = lastFrame();
expect(output).toContain('Performance');
- expect(output).not.toContain('Interaction Summary');
+ expect(output).toContain('Interaction Summary');
expect(output).not.toContain('Efficiency & Optimizations');
expect(output).not.toContain('Model'); // The table header
expect(output).toMatchSnapshot();
@@ -289,6 +290,7 @@ describe('<StatsDisplay />', () => {
it('renders the custom title when a title prop is provided', () => {
useSessionStatsMock.mockReturnValue({
stats: {
+ sessionId: 'test-session-id',
sessionStartTime: new Date(),
metrics: zeroMetrics,
lastPromptTokenCount: 0,
diff --git a/packages/cli/src/ui/components/StatsDisplay.tsx b/packages/cli/src/ui/components/StatsDisplay.tsx
index 014026ff..71c88aef 100644
--- a/packages/cli/src/ui/components/StatsDisplay.tsx
+++ b/packages/cli/src/ui/components/StatsDisplay.tsx
@@ -197,30 +197,31 @@ export const StatsDisplay: React.FC<StatsDisplayProps> = ({
{renderTitle()}
<Box height={1} />
- {tools.totalCalls > 0 && (
- <Section title="Interaction Summary">
- <StatRow title="Tool Calls:">
- <Text>
- {tools.totalCalls} ({' '}
- <Text color={Colors.AccentGreen}>✔ {tools.totalSuccess}</Text>{' '}
- <Text color={Colors.AccentRed}>✖ {tools.totalFail}</Text> )
+ <Section title="Interaction Summary">
+ <StatRow title="Session ID:">
+ <Text>{stats.sessionId}</Text>
+ </StatRow>
+ <StatRow title="Tool Calls:">
+ <Text>
+ {tools.totalCalls} ({' '}
+ <Text color={Colors.AccentGreen}>✔ {tools.totalSuccess}</Text>{' '}
+ <Text color={Colors.AccentRed}>✖ {tools.totalFail}</Text> )
+ </Text>
+ </StatRow>
+ <StatRow title="Success Rate:">
+ <Text color={successColor}>{computed.successRate.toFixed(1)}%</Text>
+ </StatRow>
+ {computed.totalDecisions > 0 && (
+ <StatRow title="User Agreement:">
+ <Text color={agreementColor}>
+ {computed.agreementRate.toFixed(1)}%{' '}
+ <Text color={Colors.Gray}>
+ ({computed.totalDecisions} reviewed)
+ </Text>
</Text>
</StatRow>
- <StatRow title="Success Rate:">
- <Text color={successColor}>{computed.successRate.toFixed(1)}%</Text>
- </StatRow>
- {computed.totalDecisions > 0 && (
- <StatRow title="User Agreement:">
- <Text color={agreementColor}>
- {computed.agreementRate.toFixed(1)}%{' '}
- <Text color={Colors.Gray}>
- ({computed.totalDecisions} reviewed)
- </Text>
- </Text>
- </StatRow>
- )}
- </Section>
- )}
+ )}
+ </Section>
<Section title="Performance">
<StatRow title="Wall Time:">
diff --git a/packages/cli/src/ui/components/__snapshots__/SessionSummaryDisplay.test.tsx.snap b/packages/cli/src/ui/components/__snapshots__/SessionSummaryDisplay.test.tsx.snap
index c9b2bd64..98e7722e 100644
--- a/packages/cli/src/ui/components/__snapshots__/SessionSummaryDisplay.test.tsx.snap
+++ b/packages/cli/src/ui/components/__snapshots__/SessionSummaryDisplay.test.tsx.snap
@@ -5,6 +5,11 @@ exports[`<SessionSummaryDisplay /> > renders the summary display with a title 1`
│ │
│ Agent powering down. Goodbye! │
│ │
+│ Interaction Summary │
+│ Session ID: │
+│ Tool Calls: 0 ( ✔ 0 ✖ 0 ) │
+│ Success Rate: 0.0% │
+│ │
│ Performance │
│ Wall Time: 1h 23m 45s │
│ Agent Active: 50.2s │
diff --git a/packages/cli/src/ui/components/__snapshots__/StatsDisplay.test.tsx.snap b/packages/cli/src/ui/components/__snapshots__/StatsDisplay.test.tsx.snap
index c7c2ec59..09202599 100644
--- a/packages/cli/src/ui/components/__snapshots__/StatsDisplay.test.tsx.snap
+++ b/packages/cli/src/ui/components/__snapshots__/StatsDisplay.test.tsx.snap
@@ -6,6 +6,7 @@ exports[`<StatsDisplay /> > Conditional Color Tests > renders success rate in gr
│ Session Stats │
│ │
│ Interaction Summary │
+│ Session ID: test-session-id │
│ Tool Calls: 10 ( ✔ 10 ✖ 0 ) │
│ Success Rate: 100.0% │
│ │
@@ -25,6 +26,7 @@ exports[`<StatsDisplay /> > Conditional Color Tests > renders success rate in re
│ Session Stats │
│ │
│ Interaction Summary │
+│ Session ID: test-session-id │
│ Tool Calls: 10 ( ✔ 5 ✖ 5 ) │
│ Success Rate: 50.0% │
│ │
@@ -44,6 +46,7 @@ exports[`<StatsDisplay /> > Conditional Color Tests > renders success rate in ye
│ Session Stats │
│ │
│ Interaction Summary │
+│ Session ID: test-session-id │
│ Tool Calls: 10 ( ✔ 9 ✖ 1 ) │
│ Success Rate: 90.0% │
│ │
@@ -62,6 +65,11 @@ exports[`<StatsDisplay /> > Conditional Rendering Tests > hides Efficiency secti
│ │
│ Session Stats │
│ │
+│ Interaction Summary │
+│ Session ID: test-session-id │
+│ Tool Calls: 0 ( ✔ 0 ✖ 0 ) │
+│ Success Rate: 0.0% │
+│ │
│ Performance │
│ Wall Time: 1s │
│ Agent Active: 100ms │
@@ -82,6 +90,7 @@ exports[`<StatsDisplay /> > Conditional Rendering Tests > hides User Agreement w
│ Session Stats │
│ │
│ Interaction Summary │
+│ Session ID: test-session-id │
│ Tool Calls: 2 ( ✔ 1 ✖ 1 ) │
│ Success Rate: 50.0% │
│ │
@@ -100,6 +109,11 @@ exports[`<StatsDisplay /> > Title Rendering > renders the custom title when a ti
│ │
│ Agent powering down. Goodbye! │
│ │
+│ Interaction Summary │
+│ Session ID: test-session-id │
+│ Tool Calls: 0 ( ✔ 0 ✖ 0 ) │
+│ Success Rate: 0.0% │
+│ │
│ Performance │
│ Wall Time: 1s │
│ Agent Active: 0s │
@@ -115,6 +129,11 @@ exports[`<StatsDisplay /> > Title Rendering > renders the default title when no
│ │
│ Session Stats │
│ │
+│ Interaction Summary │
+│ Session ID: test-session-id │
+│ Tool Calls: 0 ( ✔ 0 ✖ 0 ) │
+│ Success Rate: 0.0% │
+│ │
│ Performance │
│ Wall Time: 1s │
│ Agent Active: 0s │
@@ -130,6 +149,11 @@ exports[`<StatsDisplay /> > renders a table with two models correctly 1`] = `
│ │
│ Session Stats │
│ │
+│ Interaction Summary │
+│ Session ID: test-session-id │
+│ Tool Calls: 0 ( ✔ 0 ✖ 0 ) │
+│ Success Rate: 0.0% │
+│ │
│ Performance │
│ Wall Time: 1s │
│ Agent Active: 19.5s │
@@ -155,6 +179,7 @@ exports[`<StatsDisplay /> > renders all sections when all data is present 1`] =
│ Session Stats │
│ │
│ Interaction Summary │
+│ Session ID: test-session-id │
│ Tool Calls: 2 ( ✔ 1 ✖ 1 ) │
│ Success Rate: 50.0% │
│ User Agreement: 100.0% (1 reviewed) │
@@ -182,6 +207,11 @@ exports[`<StatsDisplay /> > renders only the Performance section in its zero sta
│ │
│ Session Stats │
│ │
+│ Interaction Summary │
+│ Session ID: test-session-id │
+│ Tool Calls: 0 ( ✔ 0 ✖ 0 ) │
+│ Success Rate: 0.0% │
+│ │
│ Performance │
│ Wall Time: 1s │
│ Agent Active: 0s │