summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorFrank <[email protected]>2026-02-24 09:56:05 -0500
committerFrank <[email protected]>2026-02-24 09:56:11 -0500
commitf8cfb697bd10a328afab4e6a074148c2e651fcb2 (patch)
tree076e2e25bf73b3a69a684780f418f71b9cdb50fc /packages
parentc6d8e7624deb7470538c1156b73c6f33d2b9935c (diff)
downloadopencode-f8cfb697bd10a328afab4e6a074148c2e651fcb2.tar.gz
opencode-f8cfb697bd10a328afab4e6a074148c2e651fcb2.zip
zen: restrict alpha models to admin workspaces
Diffstat (limited to 'packages')
-rw-r--r--packages/console/app/src/routes/zen/util/handler.ts12
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/console/app/src/routes/zen/util/handler.ts b/packages/console/app/src/routes/zen/util/handler.ts
index 80a4b3ab7..171962583 100644
--- a/packages/console/app/src/routes/zen/util/handler.ts
+++ b/packages/console/app/src/routes/zen/util/handler.ts
@@ -34,6 +34,7 @@ import { createDataDumper } from "./dataDumper"
import { createTrialLimiter } from "./trialLimiter"
import { createStickyTracker } from "./stickyProviderTracker"
import { LiteData } from "@opencode-ai/console-core/lite.js"
+import { Resource } from "@opencode-ai/console-resource"
type ZenData = Awaited<ReturnType<typeof ZenData.list>>
type RetryOptions = {
@@ -59,7 +60,7 @@ export async function handler(
const MAX_FAILOVER_RETRIES = 3
const MAX_429_RETRIES = 3
- const FREE_WORKSPACES = [
+ const ADMIN_WORKSPACES = [
"wrk_01K46JDFR0E75SG2Q8K172KF3Y", // frank
"wrk_01K6W1A3VE0KMNVSCQT43BG2SX", // opencode bench
]
@@ -520,6 +521,13 @@ export async function handler(
)
if (!data) throw new AuthError("Invalid API key.")
+ if (
+ modelInfo.id.startsWith("alpha-") &&
+ Resource.App.stage === "production" &&
+ !ADMIN_WORKSPACES.includes(data.workspaceID)
+ )
+ throw new AuthError(`Model ${modelInfo.id} not supported`)
+
logger.metric({
api_key: data.apiKey,
workspace: data.workspaceID,
@@ -546,7 +554,7 @@ export async function handler(
black: data.black,
lite: data.lite,
provider: data.provider,
- isFree: FREE_WORKSPACES.includes(data.workspaceID),
+ isFree: ADMIN_WORKSPACES.includes(data.workspaceID),
isDisabled: !!data.timeDisabled,
}
}