wip examples and content

This commit is contained in:
Nathan Flurry 2026-01-28 02:56:22 -08:00
parent fa89872d3b
commit 0bbe92b344
11 changed files with 724 additions and 151 deletions

View file

@ -154,7 +154,7 @@ export async function createSession({
const normalized = normalizeBaseUrl(baseUrl);
const sessionId = randomUUID();
const body: Record<string, string> = {
agent: agentId || process.env.SANDBOX_AGENT || "claude",
agent: agentId || detectAgent(),
};
const envAgentMode = agentMode || process.env.SANDBOX_AGENT_MODE;
const envPermissionMode = permissionMode || process.env.SANDBOX_PERMISSION_MODE;
@ -269,6 +269,15 @@ export async function sendMessageStream({
return fullText;
}
function detectAgent(): string {
// Prefer explicit setting
if (process.env.SANDBOX_AGENT) return process.env.SANDBOX_AGENT;
// Select based on available API key
if (process.env.ANTHROPIC_API_KEY) return "claude";
if (process.env.OPENAI_API_KEY) return "codex";
return "claude";
}
export async function runPrompt({
baseUrl,
token,
@ -286,11 +295,10 @@ export async function runPrompt({
headers: extraHeaders,
});
const agent = agentId || detectAgent();
const sessionId = randomUUID();
await client.createSession(sessionId, {
agent: agentId || process.env.SANDBOX_AGENT || "claude",
});
console.log(`Session ${sessionId} ready. Press Ctrl+C to quit.`);
await client.createSession(sessionId, { agent });
console.log(`Session ${sessionId} using ${agent}. Press Ctrl+C to quit.`);
let isThinking = false;
let hasStartedOutput = false;
@ -334,6 +342,12 @@ export async function runPrompt({
}
}
// Handle errors
if (event.type === "error") {
const data = event.data as any;
console.error(`\nError: ${data?.message || JSON.stringify(data)}`);
}
// Handle session ended
if (event.type === "session.ended") {
const data = event.data as any;