MCPcopy Create free account
hub / github.com/AnukarOP/claude-code-leaked / sendRequest

Method sendRequest

source code/cli/structuredIO.ts:471–533  ·  view source on GitHub ↗
(
    request: SDKControlRequest['request'],
    schema: z.Schema,
    signal?: AbortSignal,
    requestId: string = randomUUID(),
  )

Source from the content-addressed store, hash-verified

469 }
470
471 private async sendRequest<Response>(
472 request: SDKControlRequest['request'],
473 schema: z.Schema,
474 signal?: AbortSignal,
475 requestId: string = randomUUID(),
476 ): Promise<Response> {
477 const message: SDKControlRequest = {
478 type: 'control_request',
479 request_id: requestId,
480 request,
481 }
482 if (this.inputClosed) {
483 throw new Error('Stream closed')
484 }
485 if (signal?.aborted) {
486 throw new Error('Request aborted')
487 }
488 this.outbound.enqueue(message)
489 if (request.subtype === 'can_use_tool' && this.onControlRequestSent) {
490 this.onControlRequestSent(message)
491 }
492 const aborted = () => {
493 this.outbound.enqueue({
494 type: 'control_cancel_request',
495 request_id: requestId,
496 })
497 // Immediately reject the outstanding promise, without
498 // waiting for the host to acknowledge the cancellation.
499 const request = this.pendingRequests.get(requestId)
500 if (request) {
501 // Track the tool_use ID as resolved before rejecting, so that a
502 // late response from the host is ignored by the orphan handler.
503 this.trackResolvedToolUseId(request.request)
504 request.reject(new AbortError())
505 }
506 }
507 if (signal) {
508 signal.addEventListener('abort', aborted, {
509 once: true,
510 })
511 }
512 try {
513 return await new Promise<Response>((resolve, reject) => {
514 this.pendingRequests.set(requestId, {
515 request: {
516 type: 'control_request',
517 request_id: requestId,
518 request,
519 },
520 resolve: result => {
521 resolve(result as Response)
522 },
523 reject,
524 schema,
525 })
526 })
527 } finally {
528 if (signal) {

Callers 8

createCanUseToolMethod · 0.95
callFunction · 0.80
REPLFunction · 0.80
initializeFunction · 0.80
sendRequestFunction · 0.80
stopFunction · 0.80
sendRequestFunction · 0.80

Calls 4

setMethod · 0.80
deleteMethod · 0.80
resolveFunction · 0.50
enqueueMethod · 0.45

Tested by

no test coverage detected