(url: string)
| 158 | } |
| 159 | |
| 160 | function probeReady(url: string): Promise<boolean> { |
| 161 | return new Promise((resolve) => { |
| 162 | const parsed = new URL(url) |
| 163 | const client = parsed.protocol === "https:" ? https : http |
| 164 | const request = client.request(parsed, { method: "GET", timeout: 1000 }, (response) => { |
| 165 | response.resume() |
| 166 | resolve((response.statusCode ?? 0) >= 200 && (response.statusCode ?? 0) < 300) |
| 167 | }) |
| 168 | request.once("timeout", () => { |
| 169 | request.destroy() |
| 170 | resolve(false) |
| 171 | }) |
| 172 | request.once("error", () => resolve(false)) |
| 173 | request.end() |
| 174 | }) |
| 175 | } |
| 176 | |
| 177 | export class RuntimeNodeCodexAppServerBridge implements RuntimeNodeServerProtocolAgentBridge { |
| 178 | readonly providerId: string |
no test coverage detected