Skip to content

Commit dbd69a1

Browse files
small improvement
1 parent 945f93b commit dbd69a1

File tree

3 files changed

+30
-9
lines changed

3 files changed

+30
-9
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Added
1111
- Added `find_symbol_definitions`, and `find_symbol_references` tools to the MCP server. [#1014](https://github.com/sourcebot-dev/sourcebot/pull/1014)
1212
- Added `list_tree` tool to the ask agent. [#1014](https://github.com/sourcebot-dev/sourcebot/pull/1014)
13+
- Added input & output token breakdown in ask details card. [#1014](https://github.com/sourcebot-dev/sourcebot/pull/1014)
1314

1415
### Fixed
1516
- Fixed issue where ask responses would sometimes appear in the details panel while generating. [#1014](https://github.com/sourcebot-dev/sourcebot/pull/1014)

packages/web/src/features/chat/components/chatThread/detailsCard.tsx

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/component
55
import { Separator } from '@/components/ui/separator';
66
import { Skeleton } from '@/components/ui/skeleton';
77
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
8-
import { cn } from '@/lib/utils';
8+
import { cn, getShortenedNumberDisplayString } from '@/lib/utils';
99
import { Brain, ChevronDown, ChevronRight, Clock, InfoIcon, Loader2, List, ScanSearchIcon, Zap } from 'lucide-react';
1010
import { memo, useCallback } from 'react';
1111
import useCaptureEvent from '@/hooks/useCaptureEvent';
@@ -106,15 +106,35 @@ const DetailsCardComponent = ({
106106
</div>
107107
)}
108108
{metadata?.totalTokens && (
109-
<div className="flex items-center text-xs">
110-
<Zap className="w-3 h-3 mr-1 flex-shrink-0" />
111-
{metadata?.totalTokens} tokens
112-
</div>
109+
<Tooltip>
110+
<TooltipTrigger asChild>
111+
<div className="flex items-center text-xs cursor-help">
112+
<Zap className="w-3 h-3 mr-1 flex-shrink-0" />
113+
{getShortenedNumberDisplayString(metadata.totalTokens, 0)} tokens
114+
</div>
115+
</TooltipTrigger>
116+
<TooltipContent side="bottom">
117+
<div className="space-y-1 text-xs">
118+
<div className="flex justify-between gap-4">
119+
<span className="text-muted-foreground">Input</span>
120+
<span>{metadata.totalInputTokens?.toLocaleString() ?? '—'}</span>
121+
</div>
122+
<div className="flex justify-between gap-4">
123+
<span className="text-muted-foreground">Output</span>
124+
<span>{metadata.totalOutputTokens?.toLocaleString() ?? '—'}</span>
125+
</div>
126+
<div className="flex justify-between gap-4 border-t border-border pt-1">
127+
<span className="text-muted-foreground">Total</span>
128+
<span>{metadata.totalTokens.toLocaleString()}</span>
129+
</div>
130+
</div>
131+
</TooltipContent>
132+
</Tooltip>
113133
)}
114134
{metadata?.totalResponseTimeMs && (
115135
<div className="flex items-center text-xs">
116136
<Clock className="w-3 h-3 mr-1 flex-shrink-0" />
117-
{metadata?.totalResponseTimeMs / 1000} seconds
137+
{Math.round(metadata.totalResponseTimeMs / 1000)} seconds
118138
</div>
119139
)}
120140
<div className="flex items-center text-xs">

packages/web/src/lib/utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -507,13 +507,13 @@ export const getFormattedDate = (date: Date) => {
507507
/**
508508
* Converts a number to a string
509509
*/
510-
export const getShortenedNumberDisplayString = (number: number) => {
510+
export const getShortenedNumberDisplayString = (number: number, fractionDigits: number = 1) => {
511511
if (number < 1000) {
512512
return number.toString();
513513
} else if (number < 1000000) {
514-
return `${(number / 1000).toFixed(1)}k`;
514+
return `${(number / 1000).toFixed(fractionDigits)}k`;
515515
} else {
516-
return `${(number / 1000000).toFixed(1)}m`;
516+
return `${(number / 1000000).toFixed(fractionDigits)}m`;
517517
}
518518
}
519519

0 commit comments

Comments
 (0)