mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 14:03:52 +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>
30 lines
870 B
TypeScript
30 lines
870 B
TypeScript
import { SandboxAgent } from "sandbox-agent";
|
|
import { modal } from "sandbox-agent/modal";
|
|
import { detectAgent } from "@sandbox-agent/example-shared";
|
|
|
|
const secrets: Record<string, string> = {};
|
|
if (process.env.ANTHROPIC_API_KEY) secrets.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
|
|
if (process.env.OPENAI_API_KEY) secrets.OPENAI_API_KEY = process.env.OPENAI_API_KEY;
|
|
|
|
const client = await SandboxAgent.start({
|
|
sandbox: modal({
|
|
create: { secrets },
|
|
}),
|
|
});
|
|
|
|
console.log(`UI: ${client.inspectorUrl}`);
|
|
|
|
const session = await client.createSession({
|
|
agent: detectAgent(),
|
|
});
|
|
|
|
session.onEvent((event) => {
|
|
console.log(`[${event.sender}]`, JSON.stringify(event.payload));
|
|
});
|
|
|
|
session.prompt([{ type: "text", text: "Say hello from Modal in one sentence." }]);
|
|
|
|
process.once("SIGINT", async () => {
|
|
await client.destroySandbox();
|
|
process.exit(0);
|
|
});
|