@@ -9,7 +9,8 @@ import { Billing } from "@opencode-ai/console-core/billing.js"
99import { Actor } from "@opencode-ai/console-core/actor.js"
1010import { WorkspaceTable } from "@opencode-ai/console-core/schema/workspace.sql.js"
1111import { ZenData } from "@opencode-ai/console-core/model.js"
12- import { Black , BlackData } from "@opencode-ai/console-core/black.js"
12+ import { Subscription } from "@opencode-ai/console-core/subscription.js"
13+ import { BlackData } from "@opencode-ai/console-core/black.js"
1314import { UserTable } from "@opencode-ai/console-core/schema/user.sql.js"
1415import { ModelTable } from "@opencode-ai/console-core/schema/model.sql.js"
1516import { ProviderTable } from "@opencode-ai/console-core/schema/provider.sql.js"
@@ -196,7 +197,7 @@ export async function handler(
196197 const costInfo = calculateCost ( modelInfo , usageInfo )
197198 await trialLimiter ?. track ( usageInfo )
198199 await rateLimiter ?. track ( )
199- await trackUsage ( billingSource , authInfo , modelInfo , providerInfo , usageInfo , costInfo )
200+ await trackUsage ( sessionId , billingSource , authInfo , modelInfo , providerInfo , usageInfo , costInfo )
200201 await reload ( billingSource , authInfo , costInfo )
201202
202203 const responseConverter = createResponseConverter ( providerInfo . format , opts . format )
@@ -246,7 +247,7 @@ export async function handler(
246247 const usageInfo = providerInfo . normalizeUsage ( usage )
247248 const costInfo = calculateCost ( modelInfo , usageInfo )
248249 await trialLimiter ?. track ( usageInfo )
249- await trackUsage ( billingSource , authInfo , modelInfo , providerInfo , usageInfo , costInfo )
250+ await trackUsage ( sessionId , billingSource , authInfo , modelInfo , providerInfo , usageInfo , costInfo )
250251 await reload ( billingSource , authInfo , costInfo )
251252 cost = calculateOccuredCost ( billingSource , costInfo )
252253 }
@@ -541,8 +542,9 @@ export async function handler(
541542
542543 // Check weekly limit
543544 if ( sub . fixedUsage && sub . timeFixedUpdated ) {
544- const result = Black . analyzeWeeklyUsage ( {
545- plan,
545+ const blackData = BlackData . getLimits ( { plan } )
546+ const result = Subscription . analyzeWeeklyUsage ( {
547+ limit : blackData . fixedLimit ,
546548 usage : sub . fixedUsage ,
547549 timeUpdated : sub . timeFixedUpdated ,
548550 } )
@@ -555,8 +557,10 @@ export async function handler(
555557
556558 // Check rolling limit
557559 if ( sub . rollingUsage && sub . timeRollingUpdated ) {
558- const result = Black . analyzeRollingUsage ( {
559- plan,
560+ const blackData = BlackData . getLimits ( { plan } )
561+ const result = Subscription . analyzeRollingUsage ( {
562+ limit : blackData . rollingLimit ,
563+ window : blackData . rollingWindow ,
560564 usage : sub . rollingUsage ,
561565 timeUpdated : sub . timeRollingUpdated ,
562566 } )
@@ -687,6 +691,7 @@ export async function handler(
687691 }
688692
689693 async function trackUsage (
694+ sessionId : string ,
690695 billingSource : BillingSource ,
691696 authInfo : AuthInfo ,
692697 modelInfo : ModelInfo ,
@@ -734,6 +739,7 @@ export async function handler(
734739 cacheWrite1hTokens,
735740 cost,
736741 keyID : authInfo . apiKeyId ,
742+ sessionID : sessionId . substring ( 0 , 30 ) ,
737743 enrichment : billingSource === "subscription" ? { plan : "sub" } : undefined ,
738744 } ) ,
739745 db
0 commit comments