mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 21:03:26 +00:00
- Add `sandbox-agent/modal` provider using Modal SDK with node:22-slim image - Add `sandbox-agent/computesdk` provider using ComputeSDK's unified sandbox API - Update Modal and ComputeSDK examples to use new SDK providers - Update Modal and ComputeSDK deploy docs with provider-based examples - Add Modal to quickstart CodeGroup and docs.json navigation - Add provider test entries for Modal and ComputeSDK - Remove old standalone example files (modal.ts, computesdk.ts) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { SandboxAgent } from "sandbox-agent";
|
|
import { computesdk } from "sandbox-agent/computesdk";
|
|
|
|
const hasModal = Boolean(process.env.MODAL_TOKEN_ID && process.env.MODAL_TOKEN_SECRET);
|
|
const hasVercel = Boolean(process.env.VERCEL_TOKEN || process.env.VERCEL_OIDC_TOKEN);
|
|
const hasProviderKey = Boolean(
|
|
process.env.BLAXEL_API_KEY || process.env.CSB_API_KEY || process.env.DAYTONA_API_KEY || process.env.E2B_API_KEY || hasModal || hasVercel,
|
|
);
|
|
|
|
const shouldRun = Boolean(process.env.COMPUTESDK_API_KEY) && hasProviderKey;
|
|
const timeoutMs = Number.parseInt(process.env.SANDBOX_TEST_TIMEOUT_MS || "", 10) || 300_000;
|
|
|
|
const testFn = shouldRun ? it : it.skip;
|
|
|
|
describe("computesdk provider", () => {
|
|
testFn(
|
|
"starts sandbox-agent and responds to /v1/health",
|
|
async () => {
|
|
const envs: Record<string, string> = {};
|
|
if (process.env.ANTHROPIC_API_KEY) envs.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
|
|
if (process.env.OPENAI_API_KEY) envs.OPENAI_API_KEY = process.env.OPENAI_API_KEY;
|
|
|
|
const sdk = await SandboxAgent.start({
|
|
sandbox: computesdk({ create: { envs } }),
|
|
});
|
|
|
|
try {
|
|
const health = await sdk.getHealth();
|
|
expect(health.status).toBe("ok");
|
|
} finally {
|
|
await sdk.destroySandbox();
|
|
}
|
|
},
|
|
timeoutMs,
|
|
);
|
|
});
|