( session: SubscriptionSessionInput, )
| 23 | } |
| 24 | |
| 25 | export function buildSubscriptionSessionState( |
| 26 | session: SubscriptionSessionInput, |
| 27 | ): SubscriptionSessionState { |
| 28 | const isOauthBackedFirstPartySession = |
| 29 | session?.providerPlan.mode === 'noumena_managed' && |
| 30 | session.headersKind === 'bearer' && |
| 31 | session.scopes.includes('user:inference') |
| 32 | |
| 33 | const subscriptionName = isOauthBackedFirstPartySession |
| 34 | ? session.subscription.subscriptionName |
| 35 | : null |
| 36 | const subscriptionType = isOauthBackedFirstPartySession |
| 37 | ? session.subscription.subscriptionType |
| 38 | : null |
| 39 | const rateLimitTier = isOauthBackedFirstPartySession |
| 40 | ? session.subscription.rateLimitTier |
| 41 | : null |
| 42 | |
| 43 | return { |
| 44 | subscriptionName, |
| 45 | subscriptionDisplayName: isOauthBackedFirstPartySession |
| 46 | ? (subscriptionName ?? 'Noumena Managed') |
| 47 | : null, |
| 48 | subscriptionType, |
| 49 | rateLimitTier, |
| 50 | isOauthBackedFirstPartySession, |
| 51 | isMaxSubscriber: subscriptionType === 'max', |
| 52 | isTeamSubscriber: subscriptionType === 'team', |
| 53 | isEnterpriseSubscriber: subscriptionType === 'enterprise', |
| 54 | isTeamPremiumSubscriber: |
| 55 | subscriptionType === 'team' && |
| 56 | rateLimitTier === 'default_claude_max_5x', |
| 57 | isProSubscriber: subscriptionType === 'pro', |
| 58 | } |
| 59 | } |
| 60 | |
| 61 | export function getCurrentSubscriptionSessionState(): SubscriptionSessionState { |
| 62 | return buildSubscriptionSessionState(getAuthRuntime().getCurrentSession()) |
no outgoing calls
no test coverage detected