@@ -5,10 +5,10 @@ import type { ServerAction, ClientAction } from '../../common/src/actions'
55import type { WebSocket } from 'ws'
66
77export type WebSocketHandlerOptions = {
8- onWebsocketError : ( error : WebSocket . ErrorEvent ) => void
9- onWebsocketReconnect : ( ) => void
10- onRequestReconnect : ( ) => Promise < void >
11- onResponseError : (
8+ onWebsocketError ? : ( error : WebSocket . ErrorEvent ) => void
9+ onWebsocketReconnect ? : ( ) => void
10+ onRequestReconnect ? : ( ) => Promise < void >
11+ onResponseError ? : (
1212 error : Extract < ServerAction , { type : 'action-error' } > ,
1313 ) => Promise < void >
1414 readFiles : (
@@ -22,40 +22,41 @@ export type WebSocketHandlerOptions = {
2222 'type' | 'requestId'
2323 >
2424 >
25- onCostResponse : (
25+ onCostResponse ? : (
2626 action : Extract < ServerAction , { type : 'message-cost-response' } > ,
2727 ) => Promise < void >
28- onUsageResponse : (
28+ onUsageResponse ? : (
2929 action : Extract < ServerAction , { type : 'usage-response' } > ,
3030 ) => Promise < void >
3131
32- onResponseChunk : (
32+ onResponseChunk ? : (
3333 action : Extract < ServerAction , { type : 'response-chunk' } > ,
3434 ) => Promise < void >
35- onSubagentResponseChunk : (
35+ onSubagentResponseChunk ? : (
3636 action : Extract < ServerAction , { type : 'subagent-response-chunk' } > ,
3737 ) => Promise < void >
3838
39- onPromptResponse : (
39+ onPromptResponse ? : (
4040 action : Extract < ServerAction , { type : 'prompt-response' } > ,
4141 ) => Promise < void >
4242
4343 apiKey : string
4444}
4545
46+ type WebSocketHandlerOptionsWithDefaults = Required < WebSocketHandlerOptions >
47+
4648export class WebSocketHandler {
4749 private cbWebSocket : APIRealtimeClient
48- private onRequestReconnect : NonNullable <
49- WebSocketHandlerOptions [ 'onRequestReconnect' ]
50- >
51- private onResponseError : WebSocketHandlerOptions [ 'onResponseError' ]
52- private readFiles : WebSocketHandlerOptions [ 'readFiles' ]
53- private handleToolCall : WebSocketHandlerOptions [ 'handleToolCall' ]
54- private onCostResponse : WebSocketHandlerOptions [ 'onCostResponse' ]
55- private onUsageResponse : WebSocketHandlerOptions [ 'onUsageResponse' ]
56- private onResponseChunk : WebSocketHandlerOptions [ 'onResponseChunk' ]
57- private onSubagentResponseChunk : WebSocketHandlerOptions [ 'onSubagentResponseChunk' ]
58- private onPromptResponse : WebSocketHandlerOptions [ 'onPromptResponse' ]
50+ private onRequestReconnect : WebSocketHandlerOptionsWithDefaults [ 'onRequestReconnect' ]
51+
52+ private onResponseError : WebSocketHandlerOptionsWithDefaults [ 'onResponseError' ]
53+ private readFiles : WebSocketHandlerOptionsWithDefaults [ 'readFiles' ]
54+ private handleToolCall : WebSocketHandlerOptionsWithDefaults [ 'handleToolCall' ]
55+ private onCostResponse : WebSocketHandlerOptionsWithDefaults [ 'onCostResponse' ]
56+ private onUsageResponse : WebSocketHandlerOptionsWithDefaults [ 'onUsageResponse' ]
57+ private onResponseChunk : WebSocketHandlerOptionsWithDefaults [ 'onResponseChunk' ]
58+ private onSubagentResponseChunk : WebSocketHandlerOptionsWithDefaults [ 'onSubagentResponseChunk' ]
59+ private onPromptResponse : WebSocketHandlerOptionsWithDefaults [ 'onPromptResponse' ]
5960 private apiKey : string
6061
6162 constructor ( {
0 commit comments