@neeter/server
Advanced tools
@@ -12,2 +12,3 @@ import type { CustomEvent, SSEEvent } from "@neeter/types"; | ||
| private hadStreamThinking; | ||
| private lastStreamStopReason; | ||
| constructor(config?: TranslatorConfig<TCtx>); | ||
@@ -14,0 +15,0 @@ translate(message: Record<string, unknown>, session: Session<TCtx>): SSEEvent[]; |
+11
-1
@@ -7,2 +7,3 @@ import { PushChannel } from "./push-channel.js"; | ||
| hadStreamThinking = false; | ||
| lastStreamStopReason = null; | ||
| constructor(config) { | ||
@@ -61,2 +62,9 @@ this.config = config ?? {}; | ||
| } | ||
| case "message_delta": { | ||
| const delta = event.delta; | ||
| if (typeof delta.stop_reason === "string") { | ||
| this.lastStreamStopReason = delta.stop_reason; | ||
| } | ||
| break; | ||
| } | ||
| case "content_block_delta": { | ||
@@ -198,2 +206,3 @@ const delta = event.delta; | ||
| case "result": { | ||
| const stopReason = message.stop_reason ?? this.lastStreamStopReason ?? null; | ||
| if (message.subtype === "success") { | ||
@@ -214,2 +223,3 @@ const sdkUsage = message.usage; | ||
| cost: message.total_cost_usd ?? 0, | ||
| stopReason, | ||
| usage, | ||
@@ -223,3 +233,3 @@ modelUsage: message.modelUsage ?? null, | ||
| event: "session_error", | ||
| data: JSON.stringify({ subtype: message.subtype }), | ||
| data: JSON.stringify({ subtype: message.subtype, stopReason }), | ||
| }); | ||
@@ -226,0 +236,0 @@ } |
+3
-3
| { | ||
| "name": "@neeter/server", | ||
| "version": "0.14.0", | ||
| "version": "0.15.0", | ||
| "description": "Hono server toolkit for building chat UIs on top of the Claude Agent SDK", | ||
@@ -24,3 +24,3 @@ "license": "MIT", | ||
| "dependencies": { | ||
| "@neeter/types": "0.14.0" | ||
| "@neeter/types": "0.15.0" | ||
| }, | ||
@@ -32,3 +32,3 @@ "peerDependencies": { | ||
| "devDependencies": { | ||
| "@anthropic-ai/claude-agent-sdk": "latest", | ||
| "@anthropic-ai/claude-agent-sdk": "0.2.53", | ||
| "@types/node": "^25.3.0", | ||
@@ -35,0 +35,0 @@ "hono": "^4.12.2" |
53723
1%1177
0.94%+ Added
- Removed
Updated