MCPcopy Create free account
hub / github.com/WJX20/claude-code / connect

Method connect

src/server/directConnectManager.ts:50–123  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

48 }
49
50 connect(): void {
51 const headers: Record<string, string> = {}
52 if (this.config.authToken) {
53 headers['authorization'] = `Bearer ${this.config.authToken}`
54 }
55 // Bun's WebSocket supports headers option but the DOM typings don't
56 this.ws = new WebSocket(this.config.wsUrl, {
57 headers,
58 } as unknown as string[])
59
60 this.ws.addEventListener('open', () => {
61 this.callbacks.onConnected?.()
62 })
63
64 this.ws.addEventListener('message', event => {
65 const data = typeof event.data === 'string' ? event.data : ''
66 const lines = data.split('\n').filter((l: string) => l.trim())
67
68 for (const line of lines) {
69 let raw: unknown
70 try {
71 raw = jsonParse(line)
72 } catch {
73 continue
74 }
75
76 if (!isStdoutMessage(raw)) {
77 continue
78 }
79 const parsed = raw
80
81 // Handle control requests (permission requests)
82 if (parsed.type === 'control_request') {
83 if (parsed.request.subtype === 'can_use_tool') {
84 this.callbacks.onPermissionRequest(
85 parsed.request,
86 parsed.request_id,
87 )
88 } else {
89 // Send an error response for unrecognized subtypes so the
90 // server doesn't hang waiting for a reply that never comes.
91 logForDebugging(
92 `[DirectConnect] Unsupported control request subtype: ${parsed.request.subtype}`,
93 )
94 this.sendErrorResponse(
95 parsed.request_id,
96 `Unsupported control request subtype: ${parsed.request.subtype}`,
97 )
98 }
99 continue
100 }
101
102 // Forward SDK messages (assistant, result, system, etc.)
103 if (
104 parsed.type !== 'control_response' &&
105 parsed.type !== 'keep_alive' &&
106 parsed.type !== 'control_cancel_request' &&
107 parsed.type !== 'streamlined_text' &&

Callers 1

useDirectConnectFunction · 0.95

Calls 5

sendErrorResponseMethod · 0.95
jsonParseFunction · 0.85
isStdoutMessageFunction · 0.85
logForDebuggingFunction · 0.85
onErrorMethod · 0.80

Tested by

no test coverage detected