feat: sampling knobs + live PTY stream-json + token UI (v2.7.3)
Three small wins from boocode_code_review_v2 §1 #11/#7/#8. #11 sampling knobs: top_n_sigma + dry_* family as first-class Agent fields, threaded into the request body via providerOptions.openaiCompatible. Fixes a latent bug — top_k (rejected by the AI-SDK provider) and min_p (never passed to streamText) were dead on the wire; both now route through the same channel. --reasoning-budget documented in data/AGENTS.md. #7 live PTY stream-json: new stream-json-parser.ts line-buffers qwen/claude NDJSON and emits text/reasoning/tool frames live + persists, with a fallback to the old opaque slice. claude gets --output-format stream-json --verbose. #8 token UI: agent_sessions input/output_tokens/cost now flow through the route + type and render beside the AgentComposerBar session chip. Built by 3 parallel agents. Server 523 + coder 245 tests passing; builds + web tsc clean. Builds on v2.7.2. openspec sampling-streamjson-tokens. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -16,6 +16,11 @@ export interface AgentSessionRow {
|
||||
status: string;
|
||||
has_session: boolean;
|
||||
last_active_at: string | null;
|
||||
// v2.6.8 per-(chat,agent) running token/cost totals (sampling-streamjson-tokens
|
||||
// #8). BIGINT columns arrive as strings over the wire; the frontend coerces.
|
||||
input_tokens: number;
|
||||
output_tokens: number;
|
||||
cost: number;
|
||||
}
|
||||
|
||||
export function registerAgentSessionRoutes(app: FastifyInstance, sql: Sql): void {
|
||||
@@ -39,7 +44,10 @@ export function registerAgentSessionRoutes(app: FastifyInstance, sql: Sql): void
|
||||
a.agent AS agent,
|
||||
a.status AS status,
|
||||
(a.agent_session_id IS NOT NULL) AS has_session,
|
||||
a.last_active_at AS last_active_at
|
||||
a.last_active_at AS last_active_at,
|
||||
a.input_tokens AS input_tokens,
|
||||
a.output_tokens AS output_tokens,
|
||||
a.cost AS cost
|
||||
FROM agent_sessions a
|
||||
JOIN chats c ON c.id = a.chat_id
|
||||
WHERE c.session_id = ${sessionId}
|
||||
|
||||
Reference in New Issue
Block a user