summaryrefslogtreecommitdiffhomepage
path: root/packages/api/src/app.ts
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-20 20:40:35 +0900
committerAdam Malczewski <[email protected]>2026-05-20 20:40:35 +0900
commit8151447758e6826a578363758a755c6cebd1c05f (patch)
tree6afa780c28ca6e4622c1ab30238665caaad4371e /packages/api/src/app.ts
parentf05099d450748cc7508f8cbde4e6539db2105f6d (diff)
downloaddispatch-8151447758e6826a578363758a755c6cebd1c05f.tar.gz
dispatch-8151447758e6826a578363758a755c6cebd1c05f.zip
feat: claude max oauth support with multi-account switching, reasoning effort, and dynamic model listing
Diffstat (limited to 'packages/api/src/app.ts')
-rw-r--r--packages/api/src/app.ts11
1 files changed, 9 insertions, 2 deletions
diff --git a/packages/api/src/app.ts b/packages/api/src/app.ts
index c2fbae5..3591281 100644
--- a/packages/api/src/app.ts
+++ b/packages/api/src/app.ts
@@ -33,7 +33,7 @@ app.get("/status", (c) => {
});
app.post("/chat", async (c) => {
- const body = await c.req.json<{ message?: unknown }>();
+ const body = await c.req.json<{ message?: unknown; keyId?: unknown; modelId?: unknown; reasoningEffort?: unknown }>();
const message = body.message;
if (typeof message !== "string" || message.trim() === "") {
@@ -44,8 +44,15 @@ app.post("/chat", async (c) => {
return c.json({ error: "agent is already running" }, 409);
}
+ const keyId = typeof body.keyId === "string" ? body.keyId : undefined;
+ const modelId = typeof body.modelId === "string" ? body.modelId : undefined;
+ const validEfforts = ["none", "low", "medium", "high", "max"];
+ const reasoningEffort = typeof body.reasoningEffort === "string" && validEfforts.includes(body.reasoningEffort)
+ ? (body.reasoningEffort as "none" | "low" | "medium" | "high" | "max")
+ : undefined;
+
// Non-blocking — let the agent run in the background
- agentManager.processMessage(message).catch(console.error);
+ agentManager.processMessage(message, keyId, modelId, reasoningEffort).catch(console.error);
return c.json({ status: "ok" });
});