diff options
| author | Frank <[email protected]> | 2026-02-10 13:07:06 -0500 |
|---|---|---|
| committer | Frank <[email protected]> | 2026-02-10 13:07:08 -0500 |
| commit | 7d5be1556ad8d777b532e49baba5b569e01e39b3 (patch) | |
| tree | 8f9b1aa21251d54567be2d77f110b28251956837 | |
| parent | 659f15aa9b000c8b53db775b9ec128c724c9e622 (diff) | |
| download | opencode-7d5be1556ad8d777b532e49baba5b569e01e39b3.tar.gz opencode-7d5be1556ad8d777b532e49baba5b569e01e39b3.zip | |
wip: zen
| -rw-r--r-- | packages/console/app/src/routes/zen/util/error.ts | 8 | ||||
| -rw-r--r-- | packages/console/app/src/routes/zen/util/handler.ts | 12 | ||||
| -rw-r--r-- | packages/console/app/src/routes/zen/util/rateLimiter.ts | 4 |
3 files changed, 12 insertions, 12 deletions
diff --git a/packages/console/app/src/routes/zen/util/error.ts b/packages/console/app/src/routes/zen/util/error.ts index b97b73430..a1393eb7f 100644 --- a/packages/console/app/src/routes/zen/util/error.ts +++ b/packages/console/app/src/routes/zen/util/error.ts @@ -1,13 +1,13 @@ export class AuthError extends Error {} export class CreditsError extends Error {} export class MonthlyLimitError extends Error {} -export class SubscriptionError extends Error { +export class UserLimitError extends Error {} +export class ModelError extends Error {} +export class FreeUsageLimitError extends Error {} +export class SubscriptionUsageLimitError extends Error { retryAfter?: number constructor(message: string, retryAfter?: number) { super(message) this.retryAfter = retryAfter } } -export class UserLimitError extends Error {} -export class ModelError extends Error {} -export class RateLimitError extends Error {} diff --git a/packages/console/app/src/routes/zen/util/handler.ts b/packages/console/app/src/routes/zen/util/handler.ts index af2a8c3e6..8e8c450a6 100644 --- a/packages/console/app/src/routes/zen/util/handler.ts +++ b/packages/console/app/src/routes/zen/util/handler.ts @@ -18,10 +18,10 @@ import { AuthError, CreditsError, MonthlyLimitError, - SubscriptionError, UserLimitError, ModelError, - RateLimitError, + FreeUsageLimitError, + SubscriptionUsageLimitError, } from "./error" import { createBodyConverter, createStreamPartConverter, createResponseConverter, UsageInfo } from "./provider/provider" import { anthropicHelper } from "./provider/anthropic" @@ -304,9 +304,9 @@ export async function handler( { status: 401 }, ) - if (error instanceof RateLimitError || error instanceof SubscriptionError) { + if (error instanceof FreeUsageLimitError || error instanceof SubscriptionUsageLimitError) { const headers = new Headers() - if (error instanceof SubscriptionError && error.retryAfter) { + if (error instanceof SubscriptionUsageLimitError && error.retryAfter) { headers.set("retry-after", String(error.retryAfter)) } return new Response( @@ -520,7 +520,7 @@ export async function handler( timeUpdated: sub.timeFixedUpdated, }) if (result.status === "rate-limited") - throw new SubscriptionError( + throw new SubscriptionUsageLimitError( `Subscription quota exceeded. Retry in ${formatRetryTime(result.resetInSec)}.`, result.resetInSec, ) @@ -534,7 +534,7 @@ export async function handler( timeUpdated: sub.timeRollingUpdated, }) if (result.status === "rate-limited") - throw new SubscriptionError( + throw new SubscriptionUsageLimitError( `Subscription quota exceeded. Retry in ${formatRetryTime(result.resetInSec)}.`, result.resetInSec, ) diff --git a/packages/console/app/src/routes/zen/util/rateLimiter.ts b/packages/console/app/src/routes/zen/util/rateLimiter.ts index 90e10479c..fafbc06e9 100644 --- a/packages/console/app/src/routes/zen/util/rateLimiter.ts +++ b/packages/console/app/src/routes/zen/util/rateLimiter.ts @@ -1,6 +1,6 @@ import { Database, eq, and, sql, inArray } from "@opencode-ai/console-core/drizzle/index.js" import { IpRateLimitTable } from "@opencode-ai/console-core/schema/ip.sql.js" -import { RateLimitError } from "./error" +import { FreeUsageLimitError } from "./error" import { logger } from "./logger" import { ZenData } from "@opencode-ai/console-core/model.js" @@ -34,7 +34,7 @@ export function createRateLimiter(limit: ZenData.RateLimit | undefined, rawIp: s ) const total = rows.reduce((sum, r) => sum + r.count, 0) logger.debug(`rate limit total: ${total}`) - if (total >= limitValue) throw new RateLimitError(`Rate limit exceeded. Please try again later.`) + if (total >= limitValue) throw new FreeUsageLimitError(`Rate limit exceeded. Please try again later.`) }, } } |
