import { c as _c } from "react/compiler-runtime"; import React, { useMemo, useState } from 'react'; import type { CommandResultDisplay, LocalJSXCommandContext } from '../../commands.js'; import { type OptionWithDescription, Select } from '../../components/CustomSelect/select.js'; import { Dialog } from '../../components/design-system/Dialog.js'; import { getFeatureValue_CACHED_MAY_BE_STALE } from '../../services/analytics/growthbook.js'; import { logEvent } from '../../services/analytics/index.js'; import { useClaudeAiLimits } from '../../services/claudeAiLimitsHook.js'; import type { ToolUseContext } from '../../Tool.js'; import type { LocalJSXCommandOnDone } from '../../types/command.js'; import { getOauthAccountInfo, getRateLimitTier, getSubscriptionType } from '../../utils/auth.js'; import { hasClaudeAiBillingAccess } from '../../utils/billing.js'; import { call as extraUsageCall } from '../extra-usage/extra-usage.js'; import { extraUsage } from '../extra-usage/index.js'; import upgrade from '../upgrade/index.js'; import { call as upgradeCall } from '../upgrade/upgrade.js'; type RateLimitOptionsMenuOptionType = 'upgrade' | 'extra-usage' | 'cancel'; type RateLimitOptionsMenuProps = { onDone: (result?: string, options?: { display?: CommandResultDisplay | undefined; } | undefined) => void; context: ToolUseContext & LocalJSXCommandContext; }; function RateLimitOptionsMenu(t0) { const $ = _c(25); const { onDone, context } = t0; const [subCommandJSX, setSubCommandJSX] = useState(null); const claudeAiLimits = useClaudeAiLimits(); let t1; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { t1 = getSubscriptionType(); $[0] = t1; } else { t1 = $[0]; } const subscriptionType = t1; let t2; if ($[1] === Symbol.for("react.memo_cache_sentinel")) { t2 = getRateLimitTier(); $[1] = t2; } else { t2 = $[1]; } const rateLimitTier = t2; const hasExtraUsageEnabled = getOauthAccountInfo()?.hasExtraUsageEnabled === true; const isMax = subscriptionType === "max"; const isMax20x = isMax && rateLimitTier === "default_claude_max_20x"; const isTeamOrEnterprise = subscriptionType === "team" || subscriptionType === "enterprise"; const buyFirst = getFeatureValue_CACHED_MAY_BE_STALE("tengu_jade_anvil_4", false); let t3; bb0: { let actionOptions; if ($[2] !== claudeAiLimits.overageDisabledReason || $[3] !== claudeAiLimits.overageStatus) { actionOptions = []; if (extraUsage.isEnabled()) { const hasBillingAccess = hasClaudeAiBillingAccess(); const needsToRequestFromAdmin = isTeamOrEnterprise && !hasBillingAccess; const isOrgSpendCapDepleted = claudeAiLimits.overageDisabledReason === "out_of_credits" || claudeAiLimits.overageDisabledReason === "org_level_disabled_until" || claudeAiLimits.overageDisabledReason === "org_service_zero_credit_limit"; if (needsToRequestFromAdmin && isOrgSpendCapDepleted) {} else { const isOverageState = claudeAiLimits.overageStatus === "rejected" || claudeAiLimits.overageStatus === "allowed_warning"; let label; if (needsToRequestFromAdmin) { label = isOverageState ? "Request more" : "Request extra usage"; } else { label = hasExtraUsageEnabled ? "Add funds to continue with extra usage" : "Switch to extra usage"; } let t4; if ($[5] !== label) { t4 = { label, value: "extra-usage" }; $[5] = label; $[6] = t4; } else { t4 = $[6]; } actionOptions.push(t4); } } if (!isMax20x && !isTeamOrEnterprise && upgrade.isEnabled()) { let t4; if ($[7] === Symbol.for("react.memo_cache_sentinel")) { t4 = { label: "Upgrade your plan", value: "upgrade" }; $[7] = t4; } else { t4 = $[7]; } actionOptions.push(t4); } $[2] = claudeAiLimits.overageDisabledReason; $[3] = claudeAiLimits.overageStatus; $[4] = actionOptions; } else { actionOptions = $[4]; } let t4; if ($[8] === Symbol.for("react.memo_cache_sentinel")) { t4 = { label: "Stop and wait for limit to reset", value: "cancel" }; $[8] = t4; } else { t4 = $[8]; } const cancelOption = t4; if (buyFirst) { let t5; if ($[9] !== actionOptions) { t5 = [...actionOptions, cancelOption]; $[9] = actionOptions; $[10] = t5; } else { t5 = $[10]; } t3 = t5; break bb0; } let t5; if ($[11] !== actionOptions) { t5 = [cancelOption, ...actionOptions]; $[11] = actionOptions; $[12] = t5; } else { t5 = $[12]; } t3 = t5; } const options = t3; let t4; if ($[13] !== onDone) { t4 = function handleCancel() { logEvent("tengu_rate_limit_options_menu_cancel", {}); onDone(undefined, { display: "skip" }); }; $[13] = onDone; $[14] = t4; } else { t4 = $[14]; } const handleCancel = t4; let t5; if ($[15] !== context || $[16] !== handleCancel || $[17] !== onDone) { t5 = function handleSelect(value) { if (value === "upgrade") { logEvent("tengu_rate_limit_options_menu_select_upgrade", {}); upgradeCall(onDone, context).then(jsx => { if (jsx) { setSubCommandJSX(jsx); } }); } else { if (value === "extra-usage") { logEvent("tengu_rate_limit_options_menu_select_extra_usage", {}); extraUsageCall(onDone, context).then(jsx_0 => { if (jsx_0) { setSubCommandJSX(jsx_0); } }); } else { if (value === "cancel") { handleCancel(); } } } }; $[15] = context; $[16] = handleCancel; $[17] = onDone; $[18] = t5; } else { t5 = $[18]; } const handleSelect = t5; if (subCommandJSX) { return subCommandJSX; } let t6; if ($[19] !== handleSelect || $[20] !== options) { t6 =