diff options
Diffstat (limited to 'packages/cli/src/ui/components')
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 │ |
