diff options
| author | Adam Malczewski <[email protected]> | 2026-06-07 18:52:13 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-07 18:52:13 +0900 |
| commit | 80f8a219c89a963c485da0f40dc428bf688fedb7 (patch) | |
| tree | 737822344118e5c1c840b8399a554a1898f07093 /src/core/telemetry/selectors.ts | |
| parent | 48c6d85c3cc5a57a729f14068e2346b17ed62088 (diff) | |
| download | dispatch-web-80f8a219c89a963c485da0f40dc428bf688fedb7.tar.gz dispatch-web-80f8a219c89a963c485da0f40dc428bf688fedb7.zip | |
Revert "feat(chat): live turn metrics — telemetry reducer + rendering"
This reverts commit 48c6d85c3cc5a57a729f14068e2346b17ed62088.
Diffstat (limited to 'src/core/telemetry/selectors.ts')
| -rw-r--r-- | src/core/telemetry/selectors.ts | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/src/core/telemetry/selectors.ts b/src/core/telemetry/selectors.ts deleted file mode 100644 index ecf1794..0000000 --- a/src/core/telemetry/selectors.ts +++ /dev/null @@ -1,95 +0,0 @@ -import type { Usage } from "@dispatch/wire"; -import type { StepMetrics, TelemetryState, TurnMetrics } from "./types"; - -/** Get the metrics for a specific step within a turn. */ -export function stepMetrics( - state: TelemetryState, - turnId: string, - stepIndex: number, -): StepMetrics | undefined { - return state.turns.get(turnId)?.steps[stepIndex]; -} - -/** Get the metrics for a turn. */ -export function turnMetrics(state: TelemetryState, turnId: string): TurnMetrics | undefined { - return state.turns.get(turnId); -} - -/** The number of steps in a turn. */ -export function stepCount(state: TelemetryState, turnId: string): number { - return state.turns.get(turnId)?.steps.length ?? 0; -} - -/** TTFT of the first step in a turn (the turn-visible first-token latency). */ -export function turnTtft(state: TelemetryState, turnId: string): number | undefined { - return state.turns.get(turnId)?.steps[0]?.ttftMs; -} - -/** Sum of all steps' decode times in a turn. */ -export function totalDecodeMs(state: TelemetryState, turnId: string): number | undefined { - const steps = state.turns.get(turnId)?.steps; - if (steps === undefined || steps.length === 0) return undefined; - let total = 0; - let found = false; - for (const s of steps) { - if (s.decodeMs !== undefined) { - total += s.decodeMs; - found = true; - } - } - return found ? total : undefined; -} - -/** Aggregate output tokens across all steps in a turn. */ -export function totalOutputTokens(state: TelemetryState, turnId: string): number | undefined { - const turn = state.turns.get(turnId); - if (turn === undefined) return undefined; - if (turn.doneUsage !== undefined) return turn.doneUsage.outputTokens; - let total = 0; - let found = false; - for (const s of turn.steps) { - if (s.usage?.outputTokens !== undefined) { - total += s.usage.outputTokens; - found = true; - } - } - return found ? total : undefined; -} - -/** Aggregate input tokens across all steps in a turn. */ -export function totalInputTokens(state: TelemetryState, turnId: string): number | undefined { - const turn = state.turns.get(turnId); - if (turn === undefined) return undefined; - if (turn.doneUsage !== undefined) return turn.doneUsage.inputTokens; - let total = 0; - let found = false; - for (const s of turn.steps) { - if (s.usage?.inputTokens !== undefined) { - total += s.usage.inputTokens; - found = true; - } - } - return found ? total : undefined; -} - -/** Derived TPS for a step: outputTokens / (decodeMs / 1000). */ -export function stepTps(step: StepMetrics): number | undefined { - if (step.usage?.outputTokens === undefined || step.decodeMs === undefined) return undefined; - if (step.decodeMs === 0) return undefined; - return step.usage.outputTokens / (step.decodeMs / 1000); -} - -/** Derived aggregate TPS for a turn. */ -export function turnTps(state: TelemetryState, turnId: string): number | undefined { - const outTokens = totalOutputTokens(state, turnId); - const decode = totalDecodeMs(state, turnId); - if (outTokens === undefined || decode === undefined || decode === 0) return undefined; - return outTokens / (decode / 1000); -} - -/** Sum of tool execution durations within a step. */ -export function stepToolDuration(step: StepMetrics): number | undefined { - return step.toolDurationMs !== undefined && step.toolDurationMs > 0 - ? step.toolDurationMs - : undefined; -} |
