Remove example health polling

This commit is contained in:
Nathan Flurry 2026-03-05 23:16:35 -08:00
parent 8f8b1f563a
commit 6fd55fe8a8
2 changed files with 2 additions and 51 deletions

View file

@ -4,7 +4,6 @@ import fs from "node:fs";
import path from "node:path"; import path from "node:path";
import { PassThrough } from "node:stream"; import { PassThrough } from "node:stream";
import { fileURLToPath } from "node:url"; import { fileURLToPath } from "node:url";
import { waitForHealth } from "./sandbox-agent-client.ts";
const __dirname = path.dirname(fileURLToPath(import.meta.url)); const __dirname = path.dirname(fileURLToPath(import.meta.url));
const EXAMPLE_IMAGE = "sandbox-agent-examples:latest"; const EXAMPLE_IMAGE = "sandbox-agent-examples:latest";
@ -173,7 +172,7 @@ async function ensureExampleImage(_docker: Docker): Promise<string> {
} }
/** /**
* Start a Docker container running sandbox-agent and wait for it to be healthy. * Start a Docker container running sandbox-agent.
* Registers SIGINT/SIGTERM handlers for cleanup. * Registers SIGINT/SIGTERM handlers for cleanup.
*/ */
export async function startDockerSandbox(opts: DockerSandboxOptions): Promise<DockerSandbox> { export async function startDockerSandbox(opts: DockerSandboxOptions): Promise<DockerSandbox> {
@ -275,18 +274,8 @@ export async function startDockerSandbox(opts: DockerSandboxOptions): Promise<Do
} }
const baseUrl = `http://127.0.0.1:${mappedHostPort}`; const baseUrl = `http://127.0.0.1:${mappedHostPort}`;
try {
await waitForHealth({ baseUrl });
} catch (err) {
stopStartupLogs(); stopStartupLogs();
console.error(" Container logs:"); console.log(` Started (${baseUrl})`);
for (const chunk of logChunks) {
process.stderr.write(` ${chunk}`);
}
throw err;
}
stopStartupLogs();
console.log(` Ready (${baseUrl})`);
const cleanup = async () => { const cleanup = async () => {
stopStartupLogs(); stopStartupLogs();

View file

@ -3,8 +3,6 @@
* Provides minimal helpers for connecting to and interacting with sandbox-agent servers. * Provides minimal helpers for connecting to and interacting with sandbox-agent servers.
*/ */
import { setTimeout as delay } from "node:timers/promises";
function normalizeBaseUrl(baseUrl: string): string { function normalizeBaseUrl(baseUrl: string): string {
return baseUrl.replace(/\/+$/, ""); return baseUrl.replace(/\/+$/, "");
} }
@ -74,41 +72,6 @@ export function buildHeaders({
return headers; return headers;
} }
export async function waitForHealth({
baseUrl,
token,
extraHeaders,
timeoutMs = 120_000,
}: {
baseUrl: string;
token?: string;
extraHeaders?: Record<string, string>;
timeoutMs?: number;
}): Promise<void> {
const normalized = normalizeBaseUrl(baseUrl);
const deadline = Date.now() + timeoutMs;
let lastError: unknown;
while (Date.now() < deadline) {
try {
const headers = buildHeaders({ token, extraHeaders });
const response = await fetch(`${normalized}/v1/health`, { headers });
if (response.ok) {
const data = await response.json();
if (data?.status === "ok") {
return;
}
lastError = new Error(`Unexpected health response: ${JSON.stringify(data)}`);
} else {
lastError = new Error(`Health check failed: ${response.status}`);
}
} catch (error) {
lastError = error;
}
await delay(500);
}
throw (lastError ?? new Error("Timed out waiting for /v1/health")) as Error;
}
export function generateSessionId(): string { export function generateSessionId(): string {
const chars = "abcdefghijklmnopqrstuvwxyz0123456789"; const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
let id = "session-"; let id = "session-";
@ -144,4 +107,3 @@ export function detectAgent(): string {
} }
return "claude"; return "claude";
} }