mirror of
http://10.0.2.1:3031/sauer/claude-code.git
synced 2026-06-30 17:46:58 +10:00
162 lines
15 KiB
TypeScript
162 lines
15 KiB
TypeScript
|
|
import { c as _c } from "react/compiler-runtime";
|
||
|
|
import { useEffect } from 'react';
|
||
|
|
import { useNotifications } from 'src/context/notifications.js';
|
||
|
|
import { useAppState, useSetAppState } from 'src/state/AppState.js';
|
||
|
|
import { type CooldownReason, isFastModeEnabled, onCooldownExpired, onCooldownTriggered, onFastModeOverageRejection, onOrgFastModeChanged } from 'src/utils/fastMode.js';
|
||
|
|
import { formatDuration } from 'src/utils/format.js';
|
||
|
|
import { getIsRemoteMode } from '../../bootstrap/state.js';
|
||
|
|
const COOLDOWN_STARTED_KEY = 'fast-mode-cooldown-started';
|
||
|
|
const COOLDOWN_EXPIRED_KEY = 'fast-mode-cooldown-expired';
|
||
|
|
const ORG_CHANGED_KEY = 'fast-mode-org-changed';
|
||
|
|
const OVERAGE_REJECTED_KEY = 'fast-mode-overage-rejected';
|
||
|
|
export function useFastModeNotification() {
|
||
|
|
const $ = _c(13);
|
||
|
|
const {
|
||
|
|
addNotification
|
||
|
|
} = useNotifications();
|
||
|
|
const isFastMode = useAppState(_temp);
|
||
|
|
const setAppState = useSetAppState();
|
||
|
|
let t0;
|
||
|
|
let t1;
|
||
|
|
if ($[0] !== addNotification || $[1] !== isFastMode || $[2] !== setAppState) {
|
||
|
|
t0 = () => {
|
||
|
|
if (getIsRemoteMode()) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if (!isFastModeEnabled()) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
return onOrgFastModeChanged(orgEnabled => {
|
||
|
|
if (orgEnabled) {
|
||
|
|
addNotification({
|
||
|
|
key: ORG_CHANGED_KEY,
|
||
|
|
color: "fastMode",
|
||
|
|
priority: "immediate",
|
||
|
|
text: "Fast mode is now available \xB7 /fast to turn on"
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
if (isFastMode) {
|
||
|
|
setAppState(_temp2);
|
||
|
|
addNotification({
|
||
|
|
key: ORG_CHANGED_KEY,
|
||
|
|
color: "warning",
|
||
|
|
priority: "immediate",
|
||
|
|
text: "Fast mode has been disabled by your organization"
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
};
|
||
|
|
t1 = [addNotification, isFastMode, setAppState];
|
||
|
|
$[0] = addNotification;
|
||
|
|
$[1] = isFastMode;
|
||
|
|
$[2] = setAppState;
|
||
|
|
$[3] = t0;
|
||
|
|
$[4] = t1;
|
||
|
|
} else {
|
||
|
|
t0 = $[3];
|
||
|
|
t1 = $[4];
|
||
|
|
}
|
||
|
|
useEffect(t0, t1);
|
||
|
|
let t2;
|
||
|
|
let t3;
|
||
|
|
if ($[5] !== addNotification || $[6] !== setAppState) {
|
||
|
|
t2 = () => {
|
||
|
|
if (getIsRemoteMode()) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if (!isFastModeEnabled()) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
return onFastModeOverageRejection(message => {
|
||
|
|
setAppState(_temp3);
|
||
|
|
addNotification({
|
||
|
|
key: OVERAGE_REJECTED_KEY,
|
||
|
|
color: "warning",
|
||
|
|
priority: "immediate",
|
||
|
|
text: message
|
||
|
|
});
|
||
|
|
});
|
||
|
|
};
|
||
|
|
t3 = [addNotification, setAppState];
|
||
|
|
$[5] = addNotification;
|
||
|
|
$[6] = setAppState;
|
||
|
|
$[7] = t2;
|
||
|
|
$[8] = t3;
|
||
|
|
} else {
|
||
|
|
t2 = $[7];
|
||
|
|
t3 = $[8];
|
||
|
|
}
|
||
|
|
useEffect(t2, t3);
|
||
|
|
let t4;
|
||
|
|
let t5;
|
||
|
|
if ($[9] !== addNotification || $[10] !== isFastMode) {
|
||
|
|
t4 = () => {
|
||
|
|
if (getIsRemoteMode()) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
if (!isFastMode) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
const unsubTriggered = onCooldownTriggered((resetAt, reason) => {
|
||
|
|
const resetIn = formatDuration(resetAt - Date.now(), {
|
||
|
|
hideTrailingZeros: true
|
||
|
|
});
|
||
|
|
const message_0 = getCooldownMessage(reason, resetIn);
|
||
|
|
addNotification({
|
||
|
|
key: COOLDOWN_STARTED_KEY,
|
||
|
|
invalidates: [COOLDOWN_EXPIRED_KEY],
|
||
|
|
text: message_0,
|
||
|
|
color: "warning",
|
||
|
|
priority: "immediate"
|
||
|
|
});
|
||
|
|
});
|
||
|
|
const unsubExpired = onCooldownExpired(() => {
|
||
|
|
addNotification({
|
||
|
|
key: COOLDOWN_EXPIRED_KEY,
|
||
|
|
invalidates: [COOLDOWN_STARTED_KEY],
|
||
|
|
color: "fastMode",
|
||
|
|
text: "Fast limit reset \xB7 now using fast mode",
|
||
|
|
priority: "immediate"
|
||
|
|
});
|
||
|
|
});
|
||
|
|
return () => {
|
||
|
|
unsubTriggered();
|
||
|
|
unsubExpired();
|
||
|
|
};
|
||
|
|
};
|
||
|
|
t5 = [addNotification, isFastMode];
|
||
|
|
$[9] = addNotification;
|
||
|
|
$[10] = isFastMode;
|
||
|
|
$[11] = t4;
|
||
|
|
$[12] = t5;
|
||
|
|
} else {
|
||
|
|
t4 = $[11];
|
||
|
|
t5 = $[12];
|
||
|
|
}
|
||
|
|
useEffect(t4, t5);
|
||
|
|
}
|
||
|
|
function _temp3(prev_0) {
|
||
|
|
return {
|
||
|
|
...prev_0,
|
||
|
|
fastMode: false
|
||
|
|
};
|
||
|
|
}
|
||
|
|
function _temp2(prev) {
|
||
|
|
return {
|
||
|
|
...prev,
|
||
|
|
fastMode: false
|
||
|
|
};
|
||
|
|
}
|
||
|
|
function _temp(s) {
|
||
|
|
return s.fastMode;
|
||
|
|
}
|
||
|
|
function getCooldownMessage(reason: CooldownReason, resetIn: string): string {
|
||
|
|
switch (reason) {
|
||
|
|
case 'overloaded':
|
||
|
|
return `Fast mode overloaded and is temporarily unavailable · resets in ${resetIn}`;
|
||
|
|
case 'rate_limit':
|
||
|
|
return `Fast limit reached and temporarily disabled · resets in ${resetIn}`;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VOb3RpZmljYXRpb25zIiwidXNlQXBwU3RhdGUiLCJ1c2VTZXRBcHBTdGF0ZSIsIkNvb2xkb3duUmVhc29uIiwiaXNGYXN0TW9kZUVuYWJsZWQiLCJvbkNvb2xkb3duRXhwaXJlZCIsIm9uQ29vbGRvd25UcmlnZ2VyZWQiLCJvbkZhc3RNb2RlT3ZlcmFnZVJlamVjdGlvbiIsIm9uT3JnRmFzdE1vZGVDaGFuZ2VkIiwiZm9ybWF0RHVyYXRpb24iLCJnZXRJc1JlbW90ZU1vZGUiLCJDT09MRE9XTl9TVEFSVEVEX0tFWSIsIkNPT0xET1dOX0VYUElSRURfS0VZIiwiT1JHX0NIQU5HRURfS0VZIiwiT1ZFUkFHRV9SRUpFQ1RFRF9LRVkiLCJ1c2VGYXN0TW9kZU5vdGlmaWNhdGlvbiIsIiQiLCJfYyIsImFkZE5vdGlmaWNhdGlvbiIsImlzRmFzdE1vZGUiLCJfdGVtcCIsInNldEFwcFN0YXRlIiwidDAiLCJ0MSIsIm9yZ0VuYWJsZWQiLCJrZXkiLCJjb2xvciIsInByaW9yaXR5IiwidGV4dCIsIl90ZW1wMiIsInQyIiwidDMiLCJtZXNzYWdlIiwiX3RlbXAzIiwidDQiLCJ0NSIsInVuc3ViVHJpZ2dlcmVkIiwicmVzZXRBdCIsInJlYXNvbiIsInJlc2V0SW4iLCJEYXRlIiwibm93IiwiaGlkZVRyYWlsaW5nWmVyb3MiLCJtZXNzYWdlXzAiLCJnZXRDb29sZG93bk1lc3NhZ2UiLCJpbnZhbGlkYXRlcyIsInVuc3ViRXhwaXJlZCIsInByZXZfMCIsInByZXYiLCJmYXN0TW9kZSIsInMiXSwic291cmNlcyI6WyJ1c2VGYXN0TW9kZU5vdGlmaWNhdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VOb3RpZmljYXRpb25zIH0gZnJvbSAnc3JjL2NvbnRleHQvbm90aWZpY2F0aW9ucy5qcydcbmltcG9ydCB7IHVzZUFwcFN0YXRlLCB1c2VTZXRBcHBTdGF0ZSB9IGZyb20gJ3NyYy9zdGF0ZS9BcHBTdGF0ZS5qcydcbmltcG9ydCB7XG4gIHR5cGUgQ29vbGRvd25SZWFzb24sXG4gIGlzRmFzdE1vZGVFbmFibGVkLFxuICBvbkNvb2xkb3duRXhwaXJlZCxcbiAgb25Db29sZG93blRyaWdnZXJlZCxcbiAgb25GYXN0TW9kZU92ZXJhZ2VSZWplY3Rpb24sXG4gIG9uT3JnRmFzdE1vZGVDaGFuZ2VkLFxufSBmcm9tICdzcmMvdXRpbHMvZmFzdE1vZGUuanMnXG5pbXBvcnQgeyBmb3JtYXREdXJhdGlvbiB9IGZyb20gJ3NyYy91dGlscy9mb3JtYXQuanMnXG5pbXBvcnQgeyBnZXRJc1JlbW90ZU1vZGUgfSBmcm9tICcuLi8uLi9ib290c3RyYXAvc3RhdGUuanMnXG5cbmNvbnN0IENPT0xET1dOX1NUQVJURURfS0VZID0gJ2Zhc3QtbW9kZS1jb29sZG93bi1zdGFydGVkJ1xuY29uc3QgQ09PTERPV05fRVhQSVJFRF9LRVkgPSAnZmFzdC1tb2RlLWNvb2xkb3duLWV4cGlyZWQnXG5jb25zdCBPUkdfQ0hBTkdFRF9LRVkgPSAnZmFzdC1tb2RlLW9yZy1jaGFuZ2VkJ1xuY29uc3QgT1ZFUkFHRV9SRUpFQ1RFRF9LRVkgPSAnZmFzdC1tb2RlLW92ZXJhZ2UtcmVqZWN0ZWQnXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VGYXN0TW9kZU5vdGlmaWNhdGlvbigpOiB2b2lkIHtcbiAgY29uc3QgeyBhZGROb3RpZmljYXRpb24gfSA9IHVzZU5vdGlmaWNhdGlvbnMoKVxuICBjb25zdCBpc0Zhc3RNb2RlID0gdXNlQXBwU3RhdGUocyA9PiBzLmZhc3RNb2RlKVxuICBjb25zdCBzZXRBcHBTdGF0ZSA9IHVzZVNldEFwcFN0YXRlKClcblxuICAvLyBOb3RpZnkgd2hlbiBvcmcgZmFzdCBtb2RlIHN0YXR1cyBjaGFuZ2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGdldElzUmVtb3RlTW9kZSgpKSByZXR1cm5cbiAgICBpZiAoIWlzRmFzdE1vZGVFbmFibGVkKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHJldHVybiBvbk9yZ0Zhc3RNb2RlQ2hhbmdlZChvcmdFbmFibGVkID0+IHtcbiAgICAgIGlmIChvcmdFbmFibGVkKSB7XG4gICAgICAgIGFkZE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAga2V5OiBPUkdfQ0hBTkdFRF9LRVksXG4gICAgICAgICAgY29sb3I6ICdmYXN0TW9kZScsXG4gICAgICAgICAgcHJpb3JpdHk6ICdpbW1lZGlhdGUnLFxuICAgICAgICAgIHRleHQ6ICdGYXN0IG1vZGUgaXMgbm93IGF2YWlsYWJsZSDCtyAvZmFzdCB0byB0dXJuIG9uJyxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoaXNGYXN0TW9kZSkge1xuICAgICAgICAvLyBPcmcgZGlzYWJsZWQgZmFzdCBtb2RlIOKAlCBwZXJtYW5lbnRseSB0dXJuIG9mZiBmYXN0IG1vZGVcbiAgICAgICAgc2V0QXBwU3RhdGUocHJldiA9PiAoeyAuLi5wcmV2LCBmYXN0TW9kZTogZmFsc2UgfSkpXG4gICAgICAgIGFkZE5vdGlmaWNhdGlvbih7XG4gICAgICAgICAga2V5OiBPUkdfQ0hBTkdFRF9LRVksXG4gICAgICAgICAgY29sb3I6ICd3YXJuaW5nJyxcbiAgICAgICAgICBwcmlvcml0eTogJ2ltbWVkaWF0ZScsXG4gICAgICAgICAgdGV4dDogJ0Zhc3QgbW9kZSBoYXMgYmVlbiBkaXNhYmxlZCBieSB5b3VyIG9yZ2FuaXphdGlvbicsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfSwgW2FkZE5vdGlmaWNhdGlvbiwgaXNGYXN0TW9kZSwgc2V0QXBwU3RhdGVdKVxuXG4gIC8vIE5vdGlmeSB3aGVuIGZhc3QgbW9kZSBpcyByZWplY3RlZCBkdWUgdG8gb3ZlcmFnZS9leHRyYSB1c2FnZSBpc3N1ZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZ2V0SXNSZW1vdGVNb2RlKCkpIHJldHVyblxuICAgIGlmICghaXNGYXN0TW9kZUVuYWJsZWQoKSkgcmV0dXJuXG5cbiAgICByZXR1cm4gb25GYXN0TW9kZU92ZXJhZ2VSZWplY3Rpb24obWVzc2FnZSA9PiB7XG4gICAgICBzZXRBcHBTdGF0ZShwcmV2ID0+ICh7IC4uLnByZXYsIGZhc3RNb2RlOiBmYWxzZSB9KSlcbiAgICAgIGFkZE5vdGlmaWNhdGlvbih7XG4gICAgICAgIGtleTogT1ZFUkFHRV9SRUpFQ1RFRF9LRVksXG4gICAgICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgICAgIHByaW9yaXR5OiAnaW1tZWRpYXRlJyxcbiAgICAgICAgdGV4dDogbWVzc2FnZSxcbiAgICAgIH0pXG4gICAgfSlcbiAgfSwgW2FkZE5vdGlmaWNhdGlvbiwgc2V0QXBwU3RhdGVdKVxuXG4gIHVzZUVmZmV
|