summaryrefslogtreecommitdiffhomepage
path: root/packages/api/src/app.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-23 16:59:20 +0900
committerAdam Malczewski <[email protected]>2026-05-23 16:59:20 +0900
commit236beefb708a6cd91b673978ddf4ebf045a9844c (patch)
tree6522c65a0d490b41cc01297f2444f160f8dbb7f8 /packages/api/src/app.ts
parent225d3ea65cfc35d211fc66e30cf05cbc693d37e4 (diff)
downloaddispatch-236beefb708a6cd91b673978ddf4ebf045a9844c.tar.gz
dispatch-236beefb708a6cd91b673978ddf4ebf045a9844c.zip
feat: key fallback using agent models[] hierarchy, background tool modes, copy truncation
- Agent rate-limit fallback now iterates through agent's configured models[] in strict order - Frontend sends agentModels with each /chat request; backend uses buildFallbackSequence() - Emits notice event on fallback so chat shows which key failed and what's being tried next - Child agents inherit parent's agentModels for fallback - Added statusCode propagation from AI SDK errors for programmatic 429 detection - Copy button truncates all tool results at 300 chars (was 200 for 4 specific tools) - run_shell, summon, youtube_transcribe: background mode support - summon: blocking mode by default with getResult callback
Diffstat (limited to 'packages/api/src/app.ts')
-rw-r--r--packages/api/src/app.ts3
1 files changed, 2 insertions, 1 deletions
diff --git a/packages/api/src/app.ts b/packages/api/src/app.ts
index 9ccc911..d7dd0be 100644
--- a/packages/api/src/app.ts
+++ b/packages/api/src/app.ts
@@ -63,6 +63,7 @@ app.post("/chat", async (c) => {
const keyId = typeof body.keyId === "string" ? body.keyId : undefined;
const modelId = typeof body.modelId === "string" ? body.modelId : undefined;
+ const agentModels = Array.isArray(body.agentModels) ? body.agentModels : undefined;
const workingDirectory =
typeof body.workingDirectory === "string" ? body.workingDirectory : undefined;
const validEfforts = ["none", "low", "medium", "high", "max"];
@@ -73,7 +74,7 @@ app.post("/chat", async (c) => {
// Non-blocking — let the agent run in the background
agentManager
- .processMessage(tabId, message, keyId, modelId, reasoningEffort, workingDirectory)
+ .processMessage(tabId, message, keyId, modelId, reasoningEffort, workingDirectory, agentModels)
.catch(console.error);
return c.json({ status: "ok" });