MCPcopy Create free account
hub / github.com/github/copilot-sdk / RegisterClientSessionAPIHandlers

Function RegisterClientSessionAPIHandlers

go/rpc/zrpc.go:18406–18711  ·  view source on GitHub ↗

RegisterClientSessionAPIHandlers registers handlers for server-to-client session API calls.

(client *jsonrpc2.Client, getHandlers func(sessionID string) *ClientSessionAPIHandlers)

Source from the content-addressed store, hash-verified

18404// RegisterClientSessionAPIHandlers registers handlers for server-to-client session API
18405// calls.
18406func RegisterClientSessionAPIHandlers(client *jsonrpc2.Client, getHandlers func(sessionID string) *ClientSessionAPIHandlers) {
18407 client.SetRequestHandler("canvas.close", func(params json.RawMessage) (json.RawMessage, *jsonrpc2.Error) {
18408 var request CanvasProviderCloseRequest
18409 if err := json.Unmarshal(params, &request); err != nil {
18410 return nil, &jsonrpc2.Error{Code: -32602, Message: fmt.Sprintf("Invalid params: %v", err)}
18411 }
18412 handlers := getHandlers(request.SessionID)
18413 if handlers == nil || handlers.Canvas == nil {
18414 return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("No canvas handler registered for session: %s", request.SessionID)}
18415 }
18416 result, err := handlers.Canvas.Close(&request)
18417 if err != nil {
18418 return nil, clientSessionHandlerError(err)
18419 }
18420 raw, err := json.Marshal(result)
18421 if err != nil {
18422 return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("Failed to marshal response: %v", err)}
18423 }
18424 return raw, nil
18425 })
18426 client.SetRequestHandler("canvas.action.invoke", func(params json.RawMessage) (json.RawMessage, *jsonrpc2.Error) {
18427 var request CanvasProviderInvokeActionRequest
18428 if err := json.Unmarshal(params, &request); err != nil {
18429 return nil, &jsonrpc2.Error{Code: -32602, Message: fmt.Sprintf("Invalid params: %v", err)}
18430 }
18431 handlers := getHandlers(request.SessionID)
18432 if handlers == nil || handlers.Canvas == nil {
18433 return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("No canvas handler registered for session: %s", request.SessionID)}
18434 }
18435 result, err := handlers.Canvas.Invoke(&request)
18436 if err != nil {
18437 return nil, clientSessionHandlerError(err)
18438 }
18439 raw, err := json.Marshal(result)
18440 if err != nil {
18441 return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("Failed to marshal response: %v", err)}
18442 }
18443 return raw, nil
18444 })
18445 client.SetRequestHandler("canvas.open", func(params json.RawMessage) (json.RawMessage, *jsonrpc2.Error) {
18446 var request CanvasProviderOpenRequest
18447 if err := json.Unmarshal(params, &request); err != nil {
18448 return nil, &jsonrpc2.Error{Code: -32602, Message: fmt.Sprintf("Invalid params: %v", err)}
18449 }
18450 handlers := getHandlers(request.SessionID)
18451 if handlers == nil || handlers.Canvas == nil {
18452 return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("No canvas handler registered for session: %s", request.SessionID)}
18453 }
18454 result, err := handlers.Canvas.Open(&request)
18455 if err != nil {
18456 return nil, clientSessionHandlerError(err)
18457 }
18458 raw, err := json.Marshal(result)
18459 if err != nil {
18460 return nil, &jsonrpc2.Error{Code: -32603, Message: fmt.Sprintf("Failed to marshal response: %v", err)}
18461 }
18462 return raw, nil
18463 })

Callers

nothing calls this directly

Calls 15

SetRequestHandlerMethod · 0.80
MarshalMethod · 0.80
CloseMethod · 0.65
InvokeMethod · 0.65
OpenMethod · 0.65
GetTokenMethod · 0.65
AppendFileMethod · 0.65
ExistsMethod · 0.65
MkdirMethod · 0.65
ReaddirMethod · 0.65
ReaddirWithTypesMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…