diff options
| author | Frank <[email protected]> | 2025-11-18 14:28:27 -0500 |
|---|---|---|
| committer | Frank <[email protected]> | 2025-11-18 14:28:31 -0500 |
| commit | 7283bfa480b163da7ea66250f4782747293afdfd (patch) | |
| tree | ce86b0e55f81392f0651de54339689ec5135e972 /packages/console/app/src/routes/zen/v1 | |
| parent | 37d5099728613f73edf773d0ea3b88c97a124206 (diff) | |
| download | opencode-7283bfa480b163da7ea66250f4782747293afdfd.tar.gz opencode-7283bfa480b163da7ea66250f4782747293afdfd.zip | |
zen: gemini
Diffstat (limited to 'packages/console/app/src/routes/zen/v1')
4 files changed, 19 insertions, 0 deletions
diff --git a/packages/console/app/src/routes/zen/v1/chat/completions.ts b/packages/console/app/src/routes/zen/v1/chat/completions.ts index 44326e79e..655459129 100644 --- a/packages/console/app/src/routes/zen/v1/chat/completions.ts +++ b/packages/console/app/src/routes/zen/v1/chat/completions.ts @@ -5,5 +5,7 @@ export function POST(input: APIEvent) { return handler(input, { format: "oa-compat", parseApiKey: (headers: Headers) => headers.get("authorization")?.split(" ")[1], + parseModel: (url: string, body: any) => body.model, + parseIsStream: (url: string, body: any) => !!body.stream, }) } diff --git a/packages/console/app/src/routes/zen/v1/messages.ts b/packages/console/app/src/routes/zen/v1/messages.ts index 4478b6444..54d223f95 100644 --- a/packages/console/app/src/routes/zen/v1/messages.ts +++ b/packages/console/app/src/routes/zen/v1/messages.ts @@ -5,5 +5,7 @@ export function POST(input: APIEvent) { return handler(input, { format: "anthropic", parseApiKey: (headers: Headers) => headers.get("x-api-key") ?? undefined, + parseModel: (url: string, body: any) => body.model, + parseIsStream: (url: string, body: any) => !!body.stream, }) } diff --git a/packages/console/app/src/routes/zen/v1/models/[model].ts b/packages/console/app/src/routes/zen/v1/models/[model].ts new file mode 100644 index 000000000..b20378e37 --- /dev/null +++ b/packages/console/app/src/routes/zen/v1/models/[model].ts @@ -0,0 +1,13 @@ +import type { APIEvent } from "@solidjs/start/server" +import { handler } from "~/routes/zen/util/handler" + +export function POST(input: APIEvent) { + return handler(input, { + format: "google", + parseApiKey: (headers: Headers) => headers.get("x-goog-api-key") ?? undefined, + parseModel: (url: string, body: any) => url.split("/").pop()?.split(":")?.[0] ?? "", + parseIsStream: (url: string, body: any) => + // ie. url: https://opencode.ai/zen/v1/models/gemini-3-pro:streamGenerateContent?alt=sse' + url.split("/").pop()?.split(":")?.[1]?.startsWith("streamGenerateContent") ?? false, + }) +} diff --git a/packages/console/app/src/routes/zen/v1/responses.ts b/packages/console/app/src/routes/zen/v1/responses.ts index eadc5bc8e..a82a667cc 100644 --- a/packages/console/app/src/routes/zen/v1/responses.ts +++ b/packages/console/app/src/routes/zen/v1/responses.ts @@ -5,5 +5,7 @@ export function POST(input: APIEvent) { return handler(input, { format: "openai", parseApiKey: (headers: Headers) => headers.get("authorization")?.split(" ")[1], + parseModel: (url: string, body: any) => body.model, + parseIsStream: (url: string, body: any) => !!body.stream, }) } |
