MCPcopy Index your code
hub / github.com/ChatLab/ChatLab / fetchRemoteSessions

Function fetchRemoteSessions

apps/desktop/main/ipc/api.ts:79–124  ·  view source on GitHub ↗
(
  baseUrl: string,
  token?: string,
  query: RemoteSessionDiscoveryQuery = {}
)

Source from the content-addressed store, hash-verified

77}
78
79function fetchRemoteSessions(
80 baseUrl: string,
81 token?: string,
82 query: RemoteSessionDiscoveryQuery = {}
83): Promise<RemoteSessionDiscoveryResult> {
84 return new Promise<RemoteSessionDiscoveryResult>((resolve, reject) => {
85 const url = buildRemoteSessionsUrl(normalizeBaseUrl(baseUrl), query)
86
87 const request = net.request(url)
88 if (token) {
89 request.setHeader('Authorization', `Bearer ${token}`)
90 }
91 request.setHeader('Accept', 'application/json')
92
93 let body = ''
94
95 request.on('response', (response) => {
96 if (response.statusCode !== 200) {
97 reject(new Error(`Remote server returned HTTP ${response.statusCode}`))
98 return
99 }
100
101 response.on('data', (chunk: Buffer) => {
102 body += chunk.toString('utf-8')
103 })
104
105 response.on('end', () => {
106 try {
107 resolve(parseRemoteSessionsResponse(body))
108 } catch {
109 reject(new Error('Failed to parse remote sessions response'))
110 }
111 })
112
113 response.on('error', (err: Error) => {
114 reject(err)
115 })
116 })
117
118 request.on('error', (err: Error) => {
119 reject(err)
120 })
121
122 request.end()
123 })
124}
125
126export function registerApiHandlers(_ctx: IpcContext): void {
127 ensureInstances()

Callers 1

registerApiHandlersFunction · 0.70

Calls 7

buildRemoteSessionsUrlFunction · 0.90
normalizeBaseUrlFunction · 0.90
resolveFunction · 0.85
onMethod · 0.80
endMethod · 0.80
requestMethod · 0.65

Tested by

no test coverage detected