| import { c as _c } from "react/compiler-runtime"; | |
| import React, { useEffect, useMemo, useState } from 'react'; | |
| import { extraUsage } from 'src/commands/extra-usage/index.js'; | |
| import { Box, Text } from 'src/ink.js'; | |
| import { useClaudeAiLimits } from 'src/services/claudeAiLimitsHook.js'; | |
| import { shouldProcessMockLimits } from 'src/services/rateLimitMocking.js'; // Used for /mock-limits command | |
| import { getRateLimitTier, getSubscriptionType, isClaudeAISubscriber } from 'src/utils/auth.js'; | |
| import { hasClaudeAiBillingAccess } from 'src/utils/billing.js'; | |
| import { MessageResponse } from '../MessageResponse.js'; | |
| type UpsellParams = { | |
| shouldShowUpsell: boolean; | |
| isMax20x: boolean; | |
| isExtraUsageCommandEnabled: boolean; | |
| shouldAutoOpenRateLimitOptionsMenu: boolean; | |
| isTeamOrEnterprise: boolean; | |
| hasBillingAccess: boolean; | |
| }; | |
| export function getUpsellMessage({ | |
| shouldShowUpsell, | |
| isMax20x, | |
| isExtraUsageCommandEnabled, | |
| shouldAutoOpenRateLimitOptionsMenu, | |
| isTeamOrEnterprise, | |
| hasBillingAccess | |
| }: UpsellParams): string | null { | |
| if (!shouldShowUpsell) return null; | |
| if (isMax20x) { | |
| if (isExtraUsageCommandEnabled) { | |
| return '/extra-usage to finish what you\u2019re working on.'; | |
| } | |
| return '/login to switch to an API usage-billed account.'; | |
| } | |
| if (shouldAutoOpenRateLimitOptionsMenu) { | |
| return 'Opening your options\u2026'; | |
| } | |
| if (!isTeamOrEnterprise && !isExtraUsageCommandEnabled) { | |
| return '/upgrade to increase your usage limit.'; | |
| } | |
| if (isTeamOrEnterprise) { | |
| if (!isExtraUsageCommandEnabled) return null; | |
| if (hasBillingAccess) { | |
| return '/extra-usage to finish what you\u2019re working on.'; | |
| } | |
| return '/extra-usage to request more usage from your admin.'; | |
| } | |
| return '/upgrade or /extra-usage to finish what you\u2019re working on.'; | |
| } | |
| type RateLimitMessageProps = { | |
| text: string; | |
| onOpenRateLimitOptions?: () => void; | |
| }; | |
| export function RateLimitMessage(t0) { | |
| const $ = _c(16); | |
| const { | |
| text, | |
| onOpenRateLimitOptions | |
| } = t0; | |
| 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 isTeamOrEnterprise = subscriptionType === "team" || subscriptionType === "enterprise"; | |
| const isMax20x = rateLimitTier === "default_claude_max_20x"; | |
| let t3; | |
| if ($[2] === Symbol.for("react.memo_cache_sentinel")) { | |
| t3 = shouldProcessMockLimits() || isClaudeAISubscriber(); | |
| $[2] = t3; | |
| } else { | |
| t3 = $[2]; | |
| } | |
| const shouldShowUpsell = t3; | |
| const canSeeRateLimitOptionsUpsell = shouldShowUpsell && !isMax20x; | |
| const [hasOpenedInteractiveMenu, setHasOpenedInteractiveMenu] = useState(false); | |
| const claudeAiLimits = useClaudeAiLimits(); | |
| const isCurrentlyRateLimited = claudeAiLimits.status === "rejected" && claudeAiLimits.resetsAt !== undefined && !claudeAiLimits.isUsingOverage; | |
| const shouldAutoOpenRateLimitOptionsMenu = canSeeRateLimitOptionsUpsell && !hasOpenedInteractiveMenu && isCurrentlyRateLimited && onOpenRateLimitOptions; | |
| let t4; | |
| let t5; | |
| if ($[3] !== onOpenRateLimitOptions || $[4] !== shouldAutoOpenRateLimitOptionsMenu) { | |
| t4 = () => { | |
| if (shouldAutoOpenRateLimitOptionsMenu) { | |
| setHasOpenedInteractiveMenu(true); | |
| onOpenRateLimitOptions(); | |
| } | |
| }; | |
| t5 = [shouldAutoOpenRateLimitOptionsMenu, onOpenRateLimitOptions]; | |
| $[3] = onOpenRateLimitOptions; | |
| $[4] = shouldAutoOpenRateLimitOptionsMenu; | |
| $[5] = t4; | |
| $[6] = t5; | |
| } else { | |
| t4 = $[5]; | |
| t5 = $[6]; | |
| } | |
| useEffect(t4, t5); | |
| let t6; | |
| bb0: { | |
| let t7; | |
| if ($[7] !== shouldAutoOpenRateLimitOptionsMenu) { | |
| t7 = getUpsellMessage({ | |
| shouldShowUpsell, | |
| isMax20x, | |
| isExtraUsageCommandEnabled: extraUsage.isEnabled(), | |
| shouldAutoOpenRateLimitOptionsMenu: !!shouldAutoOpenRateLimitOptionsMenu, | |
| isTeamOrEnterprise, | |
| hasBillingAccess: hasClaudeAiBillingAccess() | |
| }); | |
| $[7] = shouldAutoOpenRateLimitOptionsMenu; | |
| $[8] = t7; | |
| } else { | |
| t7 = $[8]; | |
| } | |
| const message = t7; | |
| if (!message) { | |
| t6 = null; | |
| break bb0; | |
| } | |
| let t8; | |
| if ($[9] !== message) { | |
| t8 = <Text dimColor={true}>{message}</Text>; | |
| $[9] = message; | |
| $[10] = t8; | |
| } else { | |
| t8 = $[10]; | |
| } | |
| t6 = t8; | |
| } | |
| const upsell = t6; | |
| let t7; | |
| if ($[11] !== text) { | |
| t7 = <Text color="error">{text}</Text>; | |
| $[11] = text; | |
| $[12] = t7; | |
| } else { | |
| t7 = $[12]; | |
| } | |
| const t8 = hasOpenedInteractiveMenu ? null : upsell; | |
| let t9; | |
| if ($[13] !== t7 || $[14] !== t8) { | |
| t9 = <MessageResponse><Box flexDirection="column">{t7}{t8}</Box></MessageResponse>; | |
| $[13] = t7; | |
| $[14] = t8; | |
| $[15] = t9; | |
| } else { | |
| t9 = $[15]; | |
| } | |
| return t9; | |
| } | |
| //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImV4dHJhVXNhZ2UiLCJCb3giLCJUZXh0IiwidXNlQ2xhdWRlQWlMaW1pdHMiLCJzaG91bGRQcm9jZXNzTW9ja0xpbWl0cyIsImdldFJhdGVMaW1pdFRpZXIiLCJnZXRTdWJzY3JpcHRpb25UeXBlIiwiaXNDbGF1ZGVBSVN1YnNjcmliZXIiLCJoYXNDbGF1ZGVBaUJpbGxpbmdBY2Nlc3MiLCJNZXNzYWdlUmVzcG9uc2UiLCJVcHNlbGxQYXJhbXMiLCJzaG91bGRTaG93VXBzZWxsIiwiaXNNYXgyMHgiLCJpc0V4dHJhVXNhZ2VDb21tYW5kRW5hYmxlZCIsInNob3VsZEF1dG9PcGVuUmF0ZUxpbWl0T3B0aW9uc01lbnUiLCJpc1RlYW1PckVudGVycHJpc2UiLCJoYXNCaWxsaW5nQWNjZXNzIiwiZ2V0VXBzZWxsTWVzc2FnZSIsIlJhdGVMaW1pdE1lc3NhZ2VQcm9wcyIsInRleHQiLCJvbk9wZW5SYXRlTGltaXRPcHRpb25zIiwiUmF0ZUxpbWl0TWVzc2FnZSIsInQwIiwiJCIsIl9jIiwidDEiLCJTeW1ib2wiLCJmb3IiLCJzdWJzY3JpcHRpb25UeXBlIiwidDIiLCJyYXRlTGltaXRUaWVyIiwidDMiLCJjYW5TZWVSYXRlTGltaXRPcHRpb25zVXBzZWxsIiwiaGFzT3BlbmVkSW50ZXJhY3RpdmVNZW51Iiwic2V0SGFzT3BlbmVkSW50ZXJhY3RpdmVNZW51IiwiY2xhdWRlQWlMaW1pdHMiLCJpc0N1cnJlbnRseVJhdGVMaW1pdGVkIiwic3RhdHVzIiwicmVzZXRzQXQiLCJ1bmRlZmluZWQiLCJpc1VzaW5nT3ZlcmFnZSIsInQ0IiwidDUiLCJ0NiIsImJiMCIsInQ3IiwiaXNFbmFibGVkIiwibWVzc2FnZSIsInQ4IiwidXBzZWxsIiwidDkiXSwic291cmNlcyI6WyJSYXRlTGltaXRNZXNzYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZXh0cmFVc2FnZSB9IGZyb20gJ3NyYy9jb21tYW5kcy9leHRyYS11c2FnZS9pbmRleC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJ3NyYy9pbmsuanMnXG5pbXBvcnQgeyB1c2VDbGF1ZGVBaUxpbWl0cyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9jbGF1ZGVBaUxpbWl0c0hvb2suanMnXG5pbXBvcnQgeyBzaG91bGRQcm9jZXNzTW9ja0xpbWl0cyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9yYXRlTGltaXRNb2NraW5nLmpzJyAvLyBVc2VkIGZvciAvbW9jay1saW1pdHMgY29tbWFuZFxuaW1wb3J0IHtcbiAgZ2V0UmF0ZUxpbWl0VGllcixcbiAgZ2V0U3Vic2NyaXB0aW9uVHlwZSxcbiAgaXNDbGF1ZGVBSVN1YnNjcmliZXIsXG59IGZyb20gJ3NyYy91dGlscy9hdXRoLmpzJ1xuaW1wb3J0IHsgaGFzQ2xhdWRlQWlCaWxsaW5nQWNjZXNzIH0gZnJvbSAnc3JjL3V0aWxzL2JpbGxpbmcuanMnXG5pbXBvcnQgeyBNZXNzYWdlUmVzcG9uc2UgfSBmcm9tICcuLi9NZXNzYWdlUmVzcG9uc2UuanMnXG5cbnR5cGUgVXBzZWxsUGFyYW1zID0ge1xuICBzaG91bGRTaG93VXBzZWxsOiBib29sZWFuXG4gIGlzTWF4MjB4OiBib29sZWFuXG4gIGlzRXh0cmFVc2FnZUNvbW1hbmRFbmFibGVkOiBib29sZWFuXG4gIHNob3VsZEF1dG9PcGVuUmF0ZUxpbWl0T3B0aW9uc01lbnU6IGJvb2xlYW5cbiAgaXNUZWFtT3JFbnRlcnByaXNlOiBib29sZWFuXG4gIGhhc0JpbGxpbmdBY2Nlc3M6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVwc2VsbE1lc3NhZ2Uoe1xuICBzaG91bGRTaG93VXBzZWxsLFxuICBpc01heDIweCxcbiAgaXNFeHRyYVVzYWdlQ29tbWFuZEVuYWJsZWQsXG4gIHNob3VsZEF1dG9PcGVuUmF0ZUxpbWl0T3B0aW9uc01lbnUsXG4gIGlzVGVhbU9yRW50ZXJwcmlzZSxcbiAgaGFzQmlsbGluZ0FjY2Vzcyxcbn06IFVwc2VsbFBhcmFtcyk6IHN0cmluZyB8IG51bGwge1xuICBpZiAoIXNob3VsZFNob3dVcHNlbGwpIHJldHVybiBudWxsXG5cbiAgaWYgKGlzTWF4MjB4KSB7XG4gICAgaWYgKGlzRXh0cmFVc2FnZUNvbW1hbmRFbmFibGVkKSB7XG4gICAgICByZXR1cm4gJy9leHRyYS11c2FnZSB0byBmaW5pc2ggd2hhdCB5b3VcXHUyMDE5cmUgd29ya2luZyBvbi4nXG4gICAgfVxuICAgIHJldHVybiAnL2xvZ2luIHRvIHN3aXRjaCB0byBhbiBBUEkgdXNhZ2UtYmlsbGVkIGFjY291bnQuJ1xuICB9XG5cbiAgaWYgKHNob3VsZEF1dG9PcGVuUmF0ZUxpbWl0T3B0aW9uc01lbnUpIHtcbiAgICByZXR1cm4gJ09wZW5pbmcgeW91ciBvcHRpb25zXFx1MjAyNidcbiAgfVxuXG4gIGlmICghaXNUZWFtT3JFbnRlcnByaXNlICYmICFpc0V4dHJhVXNhZ2VDb21tYW5kRW5hYmxlZCkge1xuICAgIHJldHVybiAnL3VwZ3JhZGUgdG8gaW5jcmVhc2UgeW91ciB1c2FnZSBsaW1pdC4nXG4gIH1cblxuICBpZiAoaXNUZWFtT3JFbnRlcnByaXNlKSB7XG4gICAgaWYgKCFpc0V4dHJhVXNhZ2VDb21tYW5kRW5hYmxlZCkgcmV0dXJuIG51bGxcblxuICAgIGlmIChoYXNCaWxsaW5nQWNjZXNzKSB7XG4gICAgICByZXR1cm4gJy9leHRyYS11c2FnZSB0byBmaW5pc2ggd2hhdCB5b3VcXHUyMDE5cmUgd29ya2luZyBvbi4nXG4gICAgfVxuXG4gICAgcmV0dXJuICcvZXh0cmEtdXNhZ2UgdG8gcmVxdWVzdCBtb3JlIHVzYWdlIGZyb20geW91ciBhZG1pbi4nXG4gIH1cblxuICByZXR1cm4gJy91cGdyYWRlIG9yIC9leHRyYS11c2FnZSB0byBmaW5pc2ggd2hhdCB5b3VcXHUyMDE5cmUgd29ya2luZyBvbi4nXG59XG5cbnR5cGUgUmF0ZUxpbWl0TWVzc2FnZVByb3BzID0ge1xuICB0ZXh0OiBzdHJpbmdcbiAgb25PcGVuUmF0ZUxpbWl0T3B0aW9ucz86ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJhdGVMaW1pdE1lc3NhZ2Uoe1xuICB0ZXh0LFxuICBvbk9wZW5SYXRlTGltaXRPcHRpb25zLFxufTogUmF0ZUxpbWl0TWVzc2FnZVByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3Qgc3Vic2NyaXB0aW9uVHlwZSA9IGdldFN1YnNjcmlwdGlvblR5cGUoKVxuICBjb25zdCByYXRlTGltaXRUaWVyID0gZ2V0UmF0ZUxpbWl0VGllcigpXG4gIGNvbnN0IGlzVGVhbU9yRW50ZXJwcmlzZSA9XG4gICAgc3Vic2NyaXB0aW9uVHlwZSA9PT0gJ3RlYW0nIHx8IHN1YnNjcmlwdGlvblR5cGUgPT09ICdlbnRlcnByaXNlJ1xuICBjb25zdCBpc01heDIweCA9IHJhdGVMaW1pdFRpZXIgPT09ICdkZWZhdWx0X2NsYXVkZV9tYXhfMjB4J1xuICAvLyBBbHdheXMgc2hvdyB1cHNlbGwgd2hlbiB1c2luZyAvbW9jay1saW1pdHMgY29tbWFuZCwgb3RoZXJ3aXNlIHNob3cgZm9yIHN1YnNjcmliZXJzXG4gIGNvbnN0IHNob3VsZFNob3dVcHNlbGwgPSBzaG91bGRQcm9jZXNzTW9ja0xpbWl0cygpIHx8IGlzQ2xhdWRlQUlTdWJzY3JpYmVyKClcblxuICBjb25zdCBjYW5TZWVSYXRlTGltaXRPcHRpb25zVXBzZWxsID0gc2hvdWxkU2hvd1Vwc2VsbCAmJiAhaXNNYXgyMHhcblxuICBjb25zdCBbaGFzT3BlbmVkSW50ZXJhY3RpdmVNZW51LCBzZXRIYXNPcGVuZWRJbnRlcmFjdGl2ZU1lbnVdID1cbiAgICB1c2VTdGF0ZShmYWxzZSlcblxuICAvLyBDaGVjayBhY3R1YWwgcmF0ZSBsaW1pdCBzdGF0dXMgLSBvbmx5IGF1dG8tb3BlbiBpZiB1c2VyIGlzIGN1cnJlbnRseSByYXRlIGxpbWl0ZWRcbiAgLy8gQU5EIHdlJ3ZlIHZlcmlmaWVkIHRoaXMgd2l0aCB0aGUgQVBJIChyZXNldHNBdCBpcyBvbmx5IHNldCBhZnRlciBBUEkgcmVzcG9uc2UpLlxuICAvLyBUaGlzIHByZXZlbnRzIGZhbHNlIGFsZXJ0cyB3aGVuIHJlc3VtaW5nIHNlc3Npb25zIHdpdGggb2xkIHJhdGUgbGltaXQgbWVzc2FnZXMuXG4gIGNvbnN0IGNsYXVkZUFpTGltaXRzID0gdXNlQ2xhdWRlQWlMaW1pdHMoKVxuICBjb25zdCBpc0N1cnJlbnRseVJhdGVMaW1pdGVkID1cbiAgICBjbGF1ZGVBaUxpbWl0cy5zdGF0dXMgPT09ICdyZWplY3RlZCcgJiZcbiAgICBjbGF1ZGVBaUxpbWl0cy5yZXNldHNBdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgIWNsYXVkZUFpTGltaXRzLmlzVXNpbmdPdmVyYWdlXG5cbiAgY29uc3Qgc2hvdWxkQXV0b09wZW5SYXRlTGltaXRPcHRpb25zTWVudSA9XG4gICAgY2FuU2VlUmF0ZUxpbWl0T3B0aW9uc1Vwc2VsbCAmJlxuICAgICFoYXNPcGVuZWRJbnRlcmFjdGl2ZU1lbnUgJiZcbiAgICBpc0N1cnJlbnRseVJhdGVMaW1pdGVkICYmXG4gICAgb25PcGVuUmF0ZUxpbWl0T3B0aW9uc1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHNob3VsZEF1dG9PcGVuUmF0ZUxpbWl0T3B0aW9uc01lbnUpIHtcbiAgICAgIHNldEhhc09wZW5lZEludGVyYWN0aXZlTWVudSh0cnVlKVxuICAgICAgb25PcGVuUmF0ZUxpbWl0T3B0aW9ucygpXG4gICAgfVxuICB9LCBbc2hvdWxkQXV0b09wZW5SYXRlTGltaXRPcHRpb25zTWVudSwgb25PcGVuUmF0ZUxpbWl0T3B0aW9uc10pXG5cbiAgY29uc3QgdXBzZWxsID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGdldFVwc2VsbE1lc3NhZ2Uoe1xuICAgICAgc2hvdWxkU2hvd1Vwc2VsbCxcbiAgICAgIGlzTWF4MjB4LFxuICAgICAgaXNFeHRyYVVzYWdlQ29tbWFuZEVuYWJsZWQ6IGV4dHJhVXNhZ2UuaXNFbmFibGVkKCksXG4gICAgICBzaG91bGRBdXRvT3BlblJhdGVMaW1pdE9wdGlvbnNNZW51OiAhIXNob3VsZEF1dG9PcGVuUmF0ZUxpbWl0T3B0aW9uc01lbnUsXG4gICAgICBpc1RlYW1PckVudGVycHJpc2UsXG4gICAgICBoYXNCaWxsaW5nQWNjZXNzOiBoYXNDbGF1ZGVBaUJpbGxpbmdBY2Nlc3MoKSxcbiAgICB9KVxuICAgIGlmICghbWVzc2FnZSkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gPFRleHQgZGltQ29sb3I+e21lc3NhZ2V9PC9UZXh0PlxuICB9LCBbXG4gICAgc2hvdWxkU2hvd1Vwc2VsbCxcbiAgICBpc01heDIweCxcbiAgICBpc1RlYW1PckVudGVycHJpc2UsXG4gICAgc2hvdWxkQXV0b09wZW5SYXRlTGltaXRPcHRpb25zTWVudSxcbiAgXSlcblxuICByZXR1cm4gKFxuICAgIDxNZXNzYWdlUmVzcG9uc2U+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgPFRleHQgY29sb3I9XCJlcnJvclwiPnt0ZXh0fTwvVGV4dD5cbiAgICAgICAge2hhc09wZW5lZEludGVyYWN0aXZlTWVudSA/IG51bGwgOiB1cHNlbGx9XG4gICAgICA8L0JveD5cbiAgICA8L01lc3NhZ2VSZXNwb25zZT5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0QsU0FBU0MsVUFBVSxRQUFRLG1DQUFtQztBQUM5RCxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxZQUFZO0FBQ3RDLFNBQVNDLGlCQUFpQixRQUFRLG9DQUFvQztBQUN0RSxTQUFTQyx1QkFBdUIsUUFBUSxrQ0FBa0MsRUFBQztBQUMzRSxTQUNFQyxnQkFBZ0IsRUFDaEJDLG1CQUFtQixFQUNuQkMsb0JBQW9CLFFBQ2YsbUJBQW1CO0FBQzFCLFNBQVNDLHdCQUF3QixR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 |