import { VibeKit } from "@vibe-kit/sdk";
import { createCloudflareProvider } from "@vibe-kit/cloudflare";
// Export the Sandbox class for Durable Objects
export { Sandbox } from "@cloudflare/sandbox";
export default {
async fetch(request: Request, env: Env): Promise<Response> {
// Handle VibeKit requests
const provider = createCloudflareProvider({
env,
hostname: request.headers.get("host") || "localhost",
});
const vibeKit = new VibeKit()
.withAgent({
type: "claude",
provider: "anthropic",
apiKey: process.env.ANTHROPIC_API_KEY!,
model: "claude-sonnet-4-20250514",
})
.withSandbox(provider);
const result = await vibeKit.generateCode({
prompt: "Create a Node.js web server",
mode: "code",
});
return new Response(JSON.stringify(result), {
headers: { "Content-Type": "application/json" },
});
},
};