wip console

This commit is contained in:
Frank
2025-09-03 15:35:46 -04:00
parent 7119ace940
commit 93f507d330

View File

@@ -56,6 +56,13 @@ const MODELS = {
}, },
} }
const FREE_WORKSPACES = [
"wrk_01K47W3MEXPJZQ8J14B1NNPS9Z", // adam
"wrk_01K46F9BS6S1RC2W49CH6KSMDN", // dax
"wrk_01K46JDFR0E75SG2Q8K172KF3Y", // frank
"wrk_01K484AYAZ8RA7G32ZB93VZX6M", // jay
]
class AuthError extends Error {} class AuthError extends Error {}
class CreditsError extends Error {} class CreditsError extends Error {}
class ModelError extends Error {} class ModelError extends Error {}
@@ -66,6 +73,7 @@ export async function POST(input: APIEvent) {
const body = await input.request.json() const body = await input.request.json()
const MODEL = validateModel() const MODEL = validateModel()
const apiKey = await authenticate() const apiKey = await authenticate()
const isFree = FREE_WORKSPACES.includes(apiKey?.workspaceID ?? "")
await checkCredits() await checkCredits()
// Request to model provider // Request to model provider
@@ -195,7 +203,7 @@ export async function POST(input: APIEvent) {
} }
async function checkCredits() { async function checkCredits() {
if (!apiKey || !MODEL.auth) return if (!apiKey || !MODEL.auth || isFree) return
const billing = await Database.use((tx) => const billing = await Database.use((tx) =>
tx tx
@@ -229,7 +237,7 @@ export async function POST(input: APIEvent) {
const cacheReadCost = MODEL.cost.cacheRead * cacheReadTokens const cacheReadCost = MODEL.cost.cacheRead * cacheReadTokens
const cacheWriteCost = MODEL.cost.cacheWrite * cacheWriteTokens const cacheWriteCost = MODEL.cost.cacheWrite * cacheWriteTokens
const costInCents = (inputCost + outputCost + reasoningCost + cacheReadCost + cacheWriteCost) * 100 const costInCents = (inputCost + outputCost + reasoningCost + cacheReadCost + cacheWriteCost) * 100
const cost = centsToMicroCents(costInCents) const cost = isFree ? 0 : centsToMicroCents(costInCents)
await Database.transaction(async (tx) => { await Database.transaction(async (tx) => {
await tx.insert(UsageTable).values({ await tx.insert(UsageTable).values({