Skip to content

Commit 3960e5f

Browse files
committed
tweak sdk for easier use
1 parent 958f296 commit 3960e5f

File tree

2 files changed

+23
-22
lines changed

2 files changed

+23
-22
lines changed

sdk/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export { CodebuffClient } from './client'
2-
3-
export * from './types'
2+
export { WebSocketHandler } from './websocket-client'
3+
export { getInitialSessionState } from '../../common/src/types/session-state'

sdk/src/websocket-client.ts

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import type { ServerAction, ClientAction } from '../../common/src/actions'
55
import type { WebSocket } from 'ws'
66

77
export 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+
4648
export 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

Comments
 (0)