source dump of claude code
at main 38 lines 1.2 kB view raw
1import axios from 'axios' 2import { getOauthConfig } from '../../constants/oauth.js' 3import { isClaudeAISubscriber } from '../../utils/auth.js' 4import { logForDebugging } from '../../utils/debug.js' 5import { getOAuthHeaders, prepareApiRequest } from '../../utils/teleport/api.js' 6 7export type UltrareviewQuotaResponse = { 8 reviews_used: number 9 reviews_limit: number 10 reviews_remaining: number 11 is_overage: boolean 12} 13 14/** 15 * Peek the ultrareview quota for display and nudge decisions. Consume 16 * happens server-side at session creation. Null when not a subscriber or 17 * the endpoint errors. 18 */ 19export async function fetchUltrareviewQuota(): Promise<UltrareviewQuotaResponse | null> { 20 if (!isClaudeAISubscriber()) return null 21 try { 22 const { accessToken, orgUUID } = await prepareApiRequest() 23 const response = await axios.get<UltrareviewQuotaResponse>( 24 `${getOauthConfig().BASE_API_URL}/v1/ultrareview/quota`, 25 { 26 headers: { 27 ...getOAuthHeaders(accessToken), 28 'x-organization-uuid': orgUUID, 29 }, 30 timeout: 5000, 31 }, 32 ) 33 return response.data 34 } catch (error) { 35 logForDebugging(`fetchUltrareviewQuota failed: ${error}`) 36 return null 37 } 38}