From 6183398543bbd3ff9d23c5ba2ee40149c9ac7b68 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Wed, 28 May 2025 15:39:51 -0400 Subject: sync --- app/packages/web/src/components/Share.tsx | 55 ++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 11 deletions(-) (limited to 'app') diff --git a/app/packages/web/src/components/Share.tsx b/app/packages/web/src/components/Share.tsx index 292921ec7..78f901f67 100644 --- a/app/packages/web/src/components/Share.tsx +++ b/app/packages/web/src/components/Share.tsx @@ -23,6 +23,16 @@ type SessionMessage = UIMessage<{ created: number completed?: number } + assistant?: { + modelID: string; + providerID: string; + cost: number; + tokens: { + input: number; + output: number; + reasoning: number; + }; + }; sessionID: string tool: Record @@ -36,11 +46,6 @@ type SessionMessage = UIMessage<{ type SessionInfo = { title: string cost?: number - tokens?: { - input?: number - output?: number - reasoning?: number - } } function getPartTitle(role: string, type: string): string | undefined { @@ -229,6 +234,26 @@ export default function Share(props: { api: string }) { ) } + const metrics = createMemo(() => { + const result = { + cost: 0, + tokens: { + input: 0, + output: 0, + reasoning: 0, + } + } + for (const msg of messages()) { + const assistant = msg.metadata?.assistant + if (!assistant) continue + result.cost += assistant.cost + result.tokens.input += assistant.tokens.input + result.tokens.output += assistant.tokens.output + result.tokens.reasoning += assistant.tokens.reasoning + } + return result + }) + return (
@@ -241,26 +266,34 @@ export default function Share(props: { api: string }) {
    +
  • + Cost + {metrics().cost ? + {metrics().cost} + : + + } +
  • Input Tokens - {store.info?.tokens?.input ? - {store.info?.tokens?.input} + {metrics().tokens.input ? + {metrics().tokens.input} : }
  • Output Tokens - {store.info?.tokens?.output ? - {store.info?.tokens?.output} + {metrics().tokens.output ? + {metrics().tokens.output} : }
  • Reasoning Tokens - {store.info?.tokens?.reasoning ? - {store.info?.tokens?.reasoning} + {metrics().tokens.reasoning ? + {metrics().tokens.reasoning} : } -- cgit v1.2.3