codex-multi-auth 2.9.2 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +2 -1
- package/config/schema/config.schema.json +23 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -2
- package/dist/lib/accounts.d.ts +25 -1
- package/dist/lib/accounts.d.ts.map +1 -1
- package/dist/lib/accounts.js +26 -6
- package/dist/lib/codex-manager/backend-settings-helpers.d.ts.map +1 -1
- package/dist/lib/codex-manager/backend-settings-helpers.js +10 -1
- package/dist/lib/codex-manager/backend-settings-schema.d.ts +18 -0
- package/dist/lib/codex-manager/backend-settings-schema.d.ts.map +1 -1
- package/dist/lib/codex-manager/backend-settings-schema.js +19 -0
- package/dist/lib/codex-manager/experimental-settings-prompt.d.ts +1 -0
- package/dist/lib/codex-manager/experimental-settings-prompt.d.ts.map +1 -1
- package/dist/lib/codex-manager/experimental-settings-prompt.js +12 -0
- package/dist/lib/codex-manager/experimental-settings-schema.d.ts +2 -0
- package/dist/lib/codex-manager/experimental-settings-schema.d.ts.map +1 -1
- package/dist/lib/codex-manager/experimental-settings-schema.js +2 -0
- package/dist/lib/config.d.ts +29 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +88 -0
- package/dist/lib/context-budget/model-context-windows.d.ts +25 -0
- package/dist/lib/context-budget/model-context-windows.d.ts.map +1 -0
- package/dist/lib/context-budget/model-context-windows.js +118 -0
- package/dist/lib/context-budget-guard.d.ts +100 -0
- package/dist/lib/context-budget-guard.d.ts.map +1 -0
- package/dist/lib/context-budget-guard.js +183 -0
- package/dist/lib/context-budget-response.d.ts +25 -0
- package/dist/lib/context-budget-response.d.ts.map +1 -0
- package/dist/lib/context-budget-response.js +57 -0
- package/dist/lib/context-overflow.d.ts.map +1 -1
- package/dist/lib/context-overflow.js +5 -60
- package/dist/lib/request/rate-limit-decision.d.ts +4 -5
- package/dist/lib/request/rate-limit-decision.d.ts.map +1 -1
- package/dist/lib/request/rate-limit-decision.js +33 -4
- package/dist/lib/request/response-metadata.d.ts.map +1 -1
- package/dist/lib/request/response-metadata.js +1 -0
- package/dist/lib/request/stream-failover-runtime.d.ts +3 -1
- package/dist/lib/request/stream-failover-runtime.d.ts.map +1 -1
- package/dist/lib/request/stream-failover-runtime.js +7 -2
- package/dist/lib/runtime/context-budget-settings.d.ts +13 -0
- package/dist/lib/runtime/context-budget-settings.d.ts.map +1 -0
- package/dist/lib/runtime/context-budget-settings.js +8 -0
- package/dist/lib/runtime/loader-setup.d.ts +1 -0
- package/dist/lib/runtime/loader-setup.d.ts.map +1 -1
- package/dist/lib/runtime/loader-setup.js +1 -0
- package/dist/lib/runtime/rotation-account-selection.d.ts +23 -0
- package/dist/lib/runtime/rotation-account-selection.d.ts.map +1 -1
- package/dist/lib/runtime/rotation-account-selection.js +15 -6
- package/dist/lib/runtime/rotation-proxy-state.d.ts +2 -0
- package/dist/lib/runtime/rotation-proxy-state.d.ts.map +1 -1
- package/dist/lib/runtime/rotation-server-types.d.ts +11 -0
- package/dist/lib/runtime/rotation-server-types.d.ts.map +1 -1
- package/dist/lib/runtime-rotation-proxy.d.ts.map +1 -1
- package/dist/lib/runtime-rotation-proxy.js +251 -43
- package/dist/lib/schemas.d.ts +4 -0
- package/dist/lib/schemas.d.ts.map +1 -1
- package/dist/lib/schemas.js +10 -0
- package/dist/lib/synthetic-response.d.ts +31 -0
- package/dist/lib/synthetic-response.d.ts.map +1 -0
- package/dist/lib/synthetic-response.js +79 -0
- package/dist/lib/ui/ui-copy.d.ts +2 -1
- package/dist/lib/ui/ui-copy.d.ts.map +1 -1
- package/dist/lib/ui/ui-copy.js +2 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-multi-auth",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"description": "Install and operate codex-multi-auth for the official @openai/codex CLI with multi-account OAuth rotation, switching, health checks, and recovery tools.",
|
|
5
5
|
"interface": {
|
|
6
6
|
"composerIcon": "./assets/codex-multi-auth-icon.svg"
|
package/README.md
CHANGED
|
@@ -329,6 +329,7 @@ The Settings menu now includes an `Experimental` section for staged features:
|
|
|
329
329
|
- preview-first sync into `oc-chatgpt-multi-auth`
|
|
330
330
|
- named local pool backup export with filename prompt
|
|
331
331
|
- refresh guard toggle and interval controls moved out of Backend Controls
|
|
332
|
+
- context budget guard: pause a session before it hits the model's context window, with independently configurable soft/hard thresholds (default 65% / 69%) — ships disabled; see [Context Budget Guard](docs/features.md#context-budget-guard-experimental)
|
|
332
333
|
|
|
333
334
|
These flows are intentionally non-destructive by default: sync previews before apply, destination-only accounts are preserved, and backup filename collisions fail safely.
|
|
334
335
|
|
|
@@ -405,7 +406,7 @@ codex-multi-auth doctor --json
|
|
|
405
406
|
|
|
406
407
|
## Release Notes
|
|
407
408
|
|
|
408
|
-
- Current stable: [docs/releases/v2.
|
|
409
|
+
- Current stable: [docs/releases/v2.10.0.md](docs/releases/v2.10.0.md) — install via `npm i -g codex-multi-auth`
|
|
409
410
|
- Previous stable: [docs/releases/v2.8.3.md](docs/releases/v2.8.3.md)
|
|
410
411
|
- Previous stable: [docs/releases/v2.8.2.md](docs/releases/v2.8.2.md)
|
|
411
412
|
- Previous stable: [docs/releases/v2.7.1.md](docs/releases/v2.7.1.md)
|
|
@@ -247,6 +247,29 @@
|
|
|
247
247
|
"type": "number",
|
|
248
248
|
"minimum": 1000
|
|
249
249
|
},
|
|
250
|
+
"contextBudgetGuardEnabled": {
|
|
251
|
+
"type": "boolean"
|
|
252
|
+
},
|
|
253
|
+
"contextBudgetGuardSoftPercent": {
|
|
254
|
+
"type": "number",
|
|
255
|
+
"minimum": 0,
|
|
256
|
+
"maximum": 100
|
|
257
|
+
},
|
|
258
|
+
"contextBudgetGuardHardPercent": {
|
|
259
|
+
"type": "number",
|
|
260
|
+
"minimum": 10,
|
|
261
|
+
"maximum": 100
|
|
262
|
+
},
|
|
263
|
+
"contextBudgetGuardModelWindowOverrides": {
|
|
264
|
+
"type": "object",
|
|
265
|
+
"propertyNames": {
|
|
266
|
+
"type": "string"
|
|
267
|
+
},
|
|
268
|
+
"additionalProperties": {
|
|
269
|
+
"type": "number",
|
|
270
|
+
"exclusiveMinimum": 0
|
|
271
|
+
}
|
|
272
|
+
},
|
|
250
273
|
"routingMutex": {
|
|
251
274
|
"type": "string",
|
|
252
275
|
"enum": [
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,kBAAkB,CAAC;AA8W5D;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,iBAAiB,EAAE,MA80I/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,KAAoB,CAAC;AAElD,eAAe,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -30,9 +30,11 @@ import { startLocalOAuthServer } from "./lib/auth/server.js";
|
|
|
30
30
|
import { checkAndNotify } from "./lib/update-notice.js";
|
|
31
31
|
import { CapabilityPolicyStore } from "./lib/capability-policy.js";
|
|
32
32
|
import { promptAddAnotherAccount, promptLoginMode } from "./lib/cli.js";
|
|
33
|
-
import { getAutoResume, getCodexMode, getEmptyResponseMaxRetries, getEmptyResponseRetryDelayMs, getFallbackToGpt52OnUnsupportedGpt53, getFastSession, getFastSessionMaxInputItems, getFastSessionStrategy, getFetchTimeoutMs, getRateLimitDedupWindowMs, getRateLimitMaxBackoffMs, getRateLimitShortRetryThresholdMs, getRateLimitStateResetMs, getLiveAccountSync, getLiveAccountSyncDebounceMs, getLiveAccountSyncPollMs, getNetworkErrorCooldownMs, getPerProjectAccounts, getPidOffsetEnabled, getPreemptiveQuotaEnabled, getPreemptiveQuotaMaxDeferralMs, getPreemptiveQuotaRemainingPercent5h, getPreemptiveQuotaRemainingPercent7d, getProactiveRefreshBufferMs, getProactiveRefreshGuardian, getProactiveRefreshIntervalMs, getRateLimitToastDebounceMs, getRetryAllAccountsMaxRetries, getRetryAllAccountsMaxWaitMs, getRetryAllAccountsRateLimited, getBackgroundResponses, getResponseContinuation, getServerErrorCooldownMs, getSessionAffinity, getSessionAffinityMaxEntries, getSessionAffinityTtlMs, getSessionRecovery, getStorageBackupEnabled, getStreamStallTimeoutMs, getToastDurationMs, getTokenRefreshSkewMs, getUnsupportedCodexFallbackChain, getUnsupportedCodexPolicy, loadPluginConfig, } from "./lib/config.js";
|
|
33
|
+
import { getAutoResume, getCodexMode, getEmptyResponseMaxRetries, getEmptyResponseRetryDelayMs, getFallbackToGpt52OnUnsupportedGpt53, getFastSession, getFastSessionMaxInputItems, getFastSessionStrategy, getFetchTimeoutMs, getRateLimitDedupWindowMs, getRateLimitMaxBackoffMs, getRateLimitShortRetryThresholdMs, getRateLimitStateResetMs, getLiveAccountSync, getLiveAccountSyncDebounceMs, getLiveAccountSyncPollMs, getNetworkErrorCooldownMs, getPerProjectAccounts, getPidOffsetEnabled, getPreemptiveQuotaEnabled, getPreemptiveQuotaMaxDeferralMs, getPreemptiveQuotaRemainingPercent5h, getPreemptiveQuotaRemainingPercent7d, getContextBudgetGuardEnabled, getContextBudgetGuardSoftPercent, getContextBudgetGuardHardPercent, getContextBudgetGuardModelWindowOverrides, getProactiveRefreshBufferMs, getProactiveRefreshGuardian, getProactiveRefreshIntervalMs, getRateLimitToastDebounceMs, getRetryAllAccountsMaxRetries, getRetryAllAccountsMaxWaitMs, getRetryAllAccountsRateLimited, getBackgroundResponses, getResponseContinuation, getServerErrorCooldownMs, getSessionAffinity, getSessionAffinityMaxEntries, getSessionAffinityTtlMs, getSessionRecovery, getStorageBackupEnabled, getStreamStallTimeoutMs, getToastDurationMs, getTokenRefreshSkewMs, getUnsupportedCodexFallbackChain, getUnsupportedCodexPolicy, loadPluginConfig, } from "./lib/config.js";
|
|
34
34
|
import { ACCOUNT_LIMITS, AUTH_LABELS, CODEX_BASE_URL, DUMMY_API_KEY, LOG_STAGES, PLUGIN_NAME, PROVIDER_ID, } from "./lib/constants.js";
|
|
35
35
|
import { handleContextOverflow } from "./lib/context-overflow.js";
|
|
36
|
+
import { ContextBudgetGuard } from "./lib/context-budget-guard.js";
|
|
37
|
+
import { buildContextBudgetHeaders, createContextBudgetPauseResponse, } from "./lib/context-budget-response.js";
|
|
36
38
|
import { EntitlementCache, resolveEntitlementAccountKey, } from "./lib/entitlement-cache.js";
|
|
37
39
|
import { LiveAccountSync } from "./lib/live-account-sync.js";
|
|
38
40
|
import { clearCorrelationId, initLogger, logDebug, logError, logInfo, logRequest, logWarn, setCorrelationId, } from "./lib/logger.js";
|
|
@@ -89,6 +91,7 @@ import { ensureLiveAccountSyncEntry } from "./lib/runtime/live-sync-entry.js";
|
|
|
89
91
|
import { applyLoaderRuntimeSetup } from "./lib/runtime/loader-setup.js";
|
|
90
92
|
import { buildManualOAuthFlow } from "./lib/runtime/manual-oauth-flow.js";
|
|
91
93
|
import { applyPreemptiveQuotaSettingsFromConfig } from "./lib/runtime/quota-settings.js";
|
|
94
|
+
import { applyContextBudgetGuardSettingsFromConfig } from "./lib/runtime/context-budget-settings.js";
|
|
92
95
|
import { ensureLiveAccountSyncState, ensureRefreshGuardianState, ensureSessionAffinityState, } from "./lib/runtime/runtime-services.js";
|
|
93
96
|
import { getRuntimeObservabilitySnapshot, mutateRuntimeObservabilitySnapshot, } from "./lib/runtime/runtime-observability.js";
|
|
94
97
|
import { applyAccountStorageScopeFromConfig } from "./lib/runtime/storage-scope.js";
|
|
@@ -166,6 +169,7 @@ export const OpenAIOAuthPlugin = async ({ client }) => {
|
|
|
166
169
|
let sessionAffinityConfigKey = null;
|
|
167
170
|
const entitlementCache = new EntitlementCache();
|
|
168
171
|
const preemptiveQuotaScheduler = new PreemptiveQuotaScheduler();
|
|
172
|
+
const contextBudgetGuard = new ContextBudgetGuard();
|
|
169
173
|
const capabilityPolicyStore = new CapabilityPolicyStore();
|
|
170
174
|
let accountReloadInFlight = null;
|
|
171
175
|
const exposeAdvancedCodexTools = (process.env.CODEX_MULTI_AUTH_EXPOSE_ADMIN_TOOLS ?? "").trim() === "1";
|
|
@@ -359,6 +363,13 @@ export const OpenAIOAuthPlugin = async ({ client }) => {
|
|
|
359
363
|
getPreemptiveQuotaRemainingPercent7d,
|
|
360
364
|
getPreemptiveQuotaMaxDeferralMs,
|
|
361
365
|
});
|
|
366
|
+
const applyContextBudgetGuardSettings = (pluginConfig) => applyContextBudgetGuardSettingsFromConfig(pluginConfig, {
|
|
367
|
+
configure: (options) => contextBudgetGuard.configure(options),
|
|
368
|
+
getContextBudgetGuardEnabled,
|
|
369
|
+
getContextBudgetGuardSoftPercent,
|
|
370
|
+
getContextBudgetGuardHardPercent,
|
|
371
|
+
getContextBudgetGuardModelWindowOverrides,
|
|
372
|
+
});
|
|
362
373
|
// Event handler for session recovery and account selection
|
|
363
374
|
const eventHandler = async (input) => handleRuntimeEvent({
|
|
364
375
|
input,
|
|
@@ -410,6 +421,7 @@ export const OpenAIOAuthPlugin = async ({ client }) => {
|
|
|
410
421
|
ensureSessionAffinity,
|
|
411
422
|
ensureRefreshGuardian,
|
|
412
423
|
applyPreemptiveQuotaSettings,
|
|
424
|
+
applyContextBudgetGuardSettings,
|
|
413
425
|
});
|
|
414
426
|
// Only handle OAuth auth type, skip API key auth
|
|
415
427
|
if (auth.type !== "oauth") {
|
|
@@ -603,6 +615,23 @@ export const OpenAIOAuthPlugin = async ({ client }) => {
|
|
|
603
615
|
.toString()
|
|
604
616
|
.trim() || undefined;
|
|
605
617
|
const sessionAffinityKey = threadIdCandidate ?? promptCacheKey ?? null;
|
|
618
|
+
// Context budget guard: pause BEFORE spending an upstream
|
|
619
|
+
// round-trip on a request the tracked session is already over
|
|
620
|
+
// the hard threshold for, rather than waiting on the eventual
|
|
621
|
+
// context_length_exceeded 400 that handleContextOverflow below
|
|
622
|
+
// only reacts to after the fact. Independent of which account
|
|
623
|
+
// ends up serving the request, so it runs ahead of account
|
|
624
|
+
// selection entirely rather than inside its retry loop.
|
|
625
|
+
const contextBudgetAdvisory = contextBudgetGuard.getAdvisory(sessionAffinityKey ?? "", Date.now(), model);
|
|
626
|
+
if (contextBudgetAdvisory.level === "hard") {
|
|
627
|
+
// One-shot: this pause returns before the request is
|
|
628
|
+
// forwarded, so the onUsage hook that would lower the
|
|
629
|
+
// recorded usage never runs. Dropping the snapshot keeps
|
|
630
|
+
// the session recoverable — otherwise the `/compact` turn
|
|
631
|
+
// this message asks for is blocked by the same key.
|
|
632
|
+
contextBudgetGuard.noteHardPauseEmitted(sessionAffinityKey ?? "");
|
|
633
|
+
return createContextBudgetPauseResponse(contextBudgetAdvisory);
|
|
634
|
+
}
|
|
606
635
|
const sessionAffinityVersion = (sessionAffinityWriteVersion += 1);
|
|
607
636
|
const effectivePromptCacheKey = (sessionAffinityKey ?? promptCacheKey ?? "")
|
|
608
637
|
.toString()
|
|
@@ -1614,7 +1643,22 @@ export const OpenAIOAuthPlugin = async ({ client }) => {
|
|
|
1614
1643
|
sessionAffinityStore?.updateLastResponseId(sessionAffinityKey, responseId, Date.now(), sessionAffinityVersion);
|
|
1615
1644
|
storedResponseIdForSuccess = true;
|
|
1616
1645
|
},
|
|
1617
|
-
onUsage:
|
|
1646
|
+
onUsage: (usage) => {
|
|
1647
|
+
usageDeferral.onUsage(usage);
|
|
1648
|
+
// Responses is mostly stateless (store=false): this
|
|
1649
|
+
// turn's input_tokens reflects the full conversation
|
|
1650
|
+
// resent this call, so it doubles as a live read of
|
|
1651
|
+
// the session's current context size. input + output, NOT
|
|
1652
|
+
// total: total_tokens also counts reasoning tokens, which
|
|
1653
|
+
// are not resent as context on the next turn.
|
|
1654
|
+
if (sessionAffinityKey && model) {
|
|
1655
|
+
contextBudgetGuard.update(sessionAffinityKey, {
|
|
1656
|
+
model,
|
|
1657
|
+
contextTokens: usage.inputTokens + usage.outputTokens,
|
|
1658
|
+
updatedAt: Date.now(),
|
|
1659
|
+
});
|
|
1660
|
+
}
|
|
1661
|
+
},
|
|
1618
1662
|
streamStallTimeoutMs,
|
|
1619
1663
|
});
|
|
1620
1664
|
if (!isStreaming && emptyResponseMaxRetries > 0) {
|
|
@@ -1723,6 +1767,22 @@ export const OpenAIOAuthPlugin = async ({ client }) => {
|
|
|
1723
1767
|
clearPoolExhaustionCooldown();
|
|
1724
1768
|
clearServerBurstCooldown();
|
|
1725
1769
|
syncRuntimeObservability(requestTraceId);
|
|
1770
|
+
// Non-blocking: contextBudgetAdvisory reflects usage
|
|
1771
|
+
// observed as of the PRIOR turn (this turn's own usage
|
|
1772
|
+
// isn't known yet for a streaming body), attached as a
|
|
1773
|
+
// header for `codex-multi-auth status` / the statusline
|
|
1774
|
+
// rather than altering this response's body.
|
|
1775
|
+
if (contextBudgetAdvisory.level === "soft") {
|
|
1776
|
+
const headers = new Headers(successResponse.headers);
|
|
1777
|
+
for (const [name, value] of Object.entries(buildContextBudgetHeaders(contextBudgetAdvisory))) {
|
|
1778
|
+
headers.set(name, value);
|
|
1779
|
+
}
|
|
1780
|
+
return new Response(successResponse.body, {
|
|
1781
|
+
status: successResponse.status,
|
|
1782
|
+
statusText: successResponse.statusText,
|
|
1783
|
+
headers,
|
|
1784
|
+
});
|
|
1785
|
+
}
|
|
1726
1786
|
return successResponse;
|
|
1727
1787
|
}
|
|
1728
1788
|
if (retryNextAccountBeforeFallback) {
|
package/dist/lib/accounts.d.ts
CHANGED
|
@@ -147,7 +147,31 @@ export declare class AccountManager {
|
|
|
147
147
|
recordSuccess(account: ManagedAccount, family: ModelFamily, model?: string | null): void;
|
|
148
148
|
recordRateLimit(account: ManagedAccount, family: ModelFamily, model?: string | null): void;
|
|
149
149
|
recordFailure(account: ManagedAccount, family: ModelFamily, model?: string | null): void;
|
|
150
|
-
consumeToken(account: ManagedAccount, family: ModelFamily, model?: string | null
|
|
150
|
+
consumeToken(account: ManagedAccount, family: ModelFamily, model?: string | null, options?: {
|
|
151
|
+
bypassTokenBucket?: boolean;
|
|
152
|
+
}): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* `consumeToken`, but it says which admission gate rejected the request.
|
|
155
|
+
*
|
|
156
|
+
* There are two gates and they are not interchangeable to a caller writing
|
|
157
|
+
* `account_skip_reasons`: the pool-scoring token bucket, and the circuit
|
|
158
|
+
* breaker's race-safe admission slot. Re-deriving the answer afterwards
|
|
159
|
+
* with `getManagedAccountRuntimeSkipReason` gets it wrong in both
|
|
160
|
+
* directions -- that helper reports the FIRST blocker it finds (so a live
|
|
161
|
+
* cooldown masks a drained bucket), and its `isAvailable()` check answers
|
|
162
|
+
* true for a half-open breaker whose single probe `canExecute()` just
|
|
163
|
+
* handed to a concurrent request. Reporting the gate that actually
|
|
164
|
+
* rejected removes the race and the mis-attribution, and avoids a second
|
|
165
|
+
* state-mutating evaluation (`clearExpiredRateLimits`) on the hot path.
|
|
166
|
+
*/
|
|
167
|
+
consumeTokenWithReason(account: ManagedAccount, family: ModelFamily, model?: string | null, options?: {
|
|
168
|
+
bypassTokenBucket?: boolean;
|
|
169
|
+
}): {
|
|
170
|
+
ok: true;
|
|
171
|
+
} | {
|
|
172
|
+
ok: false;
|
|
173
|
+
reason: "token-exhausted" | "circuit-open";
|
|
174
|
+
};
|
|
151
175
|
/**
|
|
152
176
|
* Refund a token consumed within the refund window (30 seconds).
|
|
153
177
|
* Use this when a request fails due to network errors (not rate limits).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../lib/accounts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../lib/accounts.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/accounts.js
CHANGED
|
@@ -775,20 +775,40 @@ export class AccountManager {
|
|
|
775
775
|
healthTracker.recordFailure(getRuntimeTrackerKey(account), quotaKey);
|
|
776
776
|
getCircuitBreaker(getAccountCircuitKey(account)).recordFailure();
|
|
777
777
|
}
|
|
778
|
-
consumeToken(account, family, model) {
|
|
778
|
+
consumeToken(account, family, model, options = {}) {
|
|
779
|
+
return this.consumeTokenWithReason(account, family, model, options).ok;
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
* `consumeToken`, but it says which admission gate rejected the request.
|
|
783
|
+
*
|
|
784
|
+
* There are two gates and they are not interchangeable to a caller writing
|
|
785
|
+
* `account_skip_reasons`: the pool-scoring token bucket, and the circuit
|
|
786
|
+
* breaker's race-safe admission slot. Re-deriving the answer afterwards
|
|
787
|
+
* with `getManagedAccountRuntimeSkipReason` gets it wrong in both
|
|
788
|
+
* directions -- that helper reports the FIRST blocker it finds (so a live
|
|
789
|
+
* cooldown masks a drained bucket), and its `isAvailable()` check answers
|
|
790
|
+
* true for a half-open breaker whose single probe `canExecute()` just
|
|
791
|
+
* handed to a concurrent request. Reporting the gate that actually
|
|
792
|
+
* rejected removes the race and the mis-attribution, and avoids a second
|
|
793
|
+
* state-mutating evaluation (`clearExpiredRateLimits`) on the hot path.
|
|
794
|
+
*/
|
|
795
|
+
consumeTokenWithReason(account, family, model, options = {}) {
|
|
779
796
|
const quotaKey = model ? `${family}:${model}` : family;
|
|
780
797
|
const tokenTracker = getTokenTracker();
|
|
781
798
|
const trackerKey = getRuntimeTrackerKey(account);
|
|
782
|
-
|
|
783
|
-
|
|
799
|
+
const shouldConsumeToken = options.bypassTokenBucket !== true;
|
|
800
|
+
if (shouldConsumeToken && !tokenTracker.tryConsume(trackerKey, quotaKey)) {
|
|
801
|
+
return { ok: false, reason: "token-exhausted" };
|
|
784
802
|
}
|
|
785
803
|
try {
|
|
786
804
|
getCircuitBreaker(getAccountCircuitKey(account)).canExecute();
|
|
787
|
-
return true;
|
|
805
|
+
return { ok: true };
|
|
788
806
|
}
|
|
789
807
|
catch {
|
|
790
|
-
|
|
791
|
-
|
|
808
|
+
if (shouldConsumeToken) {
|
|
809
|
+
tokenTracker.refundToken(trackerKey, quotaKey);
|
|
810
|
+
}
|
|
811
|
+
return { ok: false, reason: "circuit-open" };
|
|
792
812
|
}
|
|
793
813
|
}
|
|
794
814
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-settings-helpers.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/backend-settings-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"backend-settings-helpers.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/backend-settings-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAON,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,MAAM,8BAA8B,CAAC;AAEtC,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAU3E;AAED,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,YAAY,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AAED,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,YAAY,GACjB,OAAO,CAKT;AAED,wBAAgB,wBAAwB,CACvC,MAAM,EAAE,0BAA0B,EAClC,KAAK,EAAE,MAAM,GACX,MAAM,CAUR;AASD,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,YAAY,EACpB,EAAE,EAAE,UAAU,CAAC,cAAc,kBAAkB,EAAE,mBAAmB,CAAC,EACrE,KAAK,EAAE,sBAAsB,EAC7B,IAAI,EAAE;IACL,qBAAqB,EAAE,CACtB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,UAAU,CAAC,cAAc,kBAAkB,EAAE,mBAAmB,CAAC,KACjE,MAAM,CAAC;CACZ,GACC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiDjC;AAED,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,YAAY,GAClB,OAAO,CAAC,YAAY,CAAC,CAqBvB;AAED,wBAAgB,0BAA0B,CACzC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACX,MAAM,CAQR"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BACKEND_DEFAULTS, BACKEND_NUMBER_OPTION_BY_KEY, BACKEND_NUMBER_OPTIONS, BACKEND_TOGGLE_OPTIONS, } from "./backend-settings-schema.js";
|
|
1
|
+
import { BACKEND_DEFAULTS, BACKEND_NUMBER_OPTION_BY_KEY, BACKEND_NUMBER_OPTIONS, BACKEND_TOGGLE_OPTIONS, EXPERIMENTAL_TOGGLE_KEYS, } from "./backend-settings-schema.js";
|
|
2
2
|
export function cloneBackendPluginConfig(config) {
|
|
3
3
|
const fallbackChain = config.unsupportedCodexFallbackChain;
|
|
4
4
|
return {
|
|
@@ -19,6 +19,9 @@ export function backendSettingsSnapshot(config) {
|
|
|
19
19
|
snapshot[option.key] =
|
|
20
20
|
config[option.key] ?? BACKEND_DEFAULTS[option.key] ?? option.min;
|
|
21
21
|
}
|
|
22
|
+
for (const key of EXPERIMENTAL_TOGGLE_KEYS) {
|
|
23
|
+
snapshot[key] = config[key] ?? BACKEND_DEFAULTS[key] ?? false;
|
|
24
|
+
}
|
|
22
25
|
return snapshot;
|
|
23
26
|
}
|
|
24
27
|
export function backendSettingsEqual(left, right) {
|
|
@@ -90,6 +93,12 @@ export function buildBackendConfigPatch(config) {
|
|
|
90
93
|
patch[option.key] = clampBackendNumber(option, value);
|
|
91
94
|
}
|
|
92
95
|
}
|
|
96
|
+
for (const key of EXPERIMENTAL_TOGGLE_KEYS) {
|
|
97
|
+
const value = config[key];
|
|
98
|
+
if (typeof value === "boolean") {
|
|
99
|
+
patch[key] = value;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
93
102
|
return patch;
|
|
94
103
|
}
|
|
95
104
|
export function clampBackendNumberForTests(settingKey, value) {
|
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import type { PluginConfig } from "../types.js";
|
|
2
2
|
export type BackendToggleSettingKey = "liveAccountSync" | "sessionAffinity" | "proactiveRefreshGuardian" | "retryAllAccountsRateLimited" | "parallelProbing" | "storageBackupEnabled" | "preemptiveQuotaEnabled" | "fastSession" | "sessionRecovery" | "autoResume" | "perProjectAccounts";
|
|
3
3
|
export type BackendNumberSettingKey = "liveAccountSyncDebounceMs" | "liveAccountSyncPollMs" | "sessionAffinityTtlMs" | "sessionAffinityMaxEntries" | "proactiveRefreshIntervalMs" | "proactiveRefreshBufferMs" | "parallelProbingMaxConcurrency" | "fastSessionMaxInputItems" | "networkErrorCooldownMs" | "serverErrorCooldownMs" | "fetchTimeoutMs" | "streamStallTimeoutMs" | "tokenRefreshSkewMs" | "preemptiveQuotaRemainingPercent5h" | "preemptiveQuotaRemainingPercent7d" | "preemptiveQuotaMaxDeferralMs";
|
|
4
|
+
/**
|
|
5
|
+
* Backend toggles that persist with the backend config but are NOT listed in
|
|
6
|
+
* BACKEND_TOGGLE_OPTIONS, because their home in the UI is the Experimental
|
|
7
|
+
* menu rather than a Backend settings category.
|
|
8
|
+
*
|
|
9
|
+
* They still have to travel through `backendSettingsSnapshot` and
|
|
10
|
+
* `buildBackendConfigPatch`: those two are what the Experimental save path
|
|
11
|
+
* uses to decide "did anything change" and "what do we write to
|
|
12
|
+
* settings.json". A toggle missing from both compares equal to its old value
|
|
13
|
+
* no matter what the user pressed, so the save is skipped and the change
|
|
14
|
+
* lives only in memory until the next launch drops it.
|
|
15
|
+
*
|
|
16
|
+
* Kept out of BACKEND_TOGGLE_OPTIONS so the settings menu's "every toggle
|
|
17
|
+
* belongs to a category" invariant (test/codex-manager-cli.test.ts) still
|
|
18
|
+
* holds without inventing a category for an experimental flag.
|
|
19
|
+
*/
|
|
20
|
+
export declare const EXPERIMENTAL_TOGGLE_KEYS: readonly ["contextBudgetGuardEnabled"];
|
|
21
|
+
export type ExperimentalToggleSettingKey = (typeof EXPERIMENTAL_TOGGLE_KEYS)[number];
|
|
4
22
|
export type BackendSettingFocusKey = BackendToggleSettingKey | BackendNumberSettingKey | null;
|
|
5
23
|
export interface BackendToggleSettingOption {
|
|
6
24
|
key: BackendToggleSettingKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-settings-schema.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/backend-settings-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAChC,iBAAiB,GACjB,iBAAiB,GACjB,0BAA0B,GAC1B,6BAA6B,GAC7B,iBAAiB,GACjB,sBAAsB,GACtB,wBAAwB,GACxB,aAAa,GACb,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,CAAC;AAExB,MAAM,MAAM,uBAAuB,GAChC,2BAA2B,GAC3B,uBAAuB,GACvB,sBAAsB,GACtB,2BAA2B,GAC3B,4BAA4B,GAC5B,0BAA0B,GAC1B,+BAA+B,GAC/B,0BAA0B,GAC1B,wBAAwB,GACxB,uBAAuB,GACvB,gBAAgB,GAChB,sBAAsB,GACtB,oBAAoB,GACpB,mCAAmC,GACnC,mCAAmC,GACnC,8BAA8B,CAAC;AAElC,MAAM,MAAM,sBAAsB,GAC/B,uBAAuB,GACvB,uBAAuB,GACvB,IAAI,CAAC;AAER,MAAM,WAAW,0BAA0B;IAC1C,GAAG,EAAE,uBAAuB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IAC1C,GAAG,EAAE,uBAAuB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,kBAAkB,GAC3B,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,sBAAsB,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACrC,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,2BAA2B,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,uBAAuB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpB,MAAM,MAAM,wBAAwB,GACjC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEtB,eAAO,MAAM,sBAAsB,EAAE,0BAA0B,EAwD9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,0BAA0B,EAiJ9D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,EAuD3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAAuC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,0DAGsB,CAAC;AAEhE,eAAO,MAAM,4BAA4B,0DAGsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"backend-settings-schema.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/backend-settings-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAChC,iBAAiB,GACjB,iBAAiB,GACjB,0BAA0B,GAC1B,6BAA6B,GAC7B,iBAAiB,GACjB,sBAAsB,GACtB,wBAAwB,GACxB,aAAa,GACb,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,CAAC;AAExB,MAAM,MAAM,uBAAuB,GAChC,2BAA2B,GAC3B,uBAAuB,GACvB,sBAAsB,GACtB,2BAA2B,GAC3B,4BAA4B,GAC5B,0BAA0B,GAC1B,+BAA+B,GAC/B,0BAA0B,GAC1B,wBAAwB,GACxB,uBAAuB,GACvB,gBAAgB,GAChB,sBAAsB,GACtB,oBAAoB,GACpB,mCAAmC,GACnC,mCAAmC,GACnC,8BAA8B,CAAC;AAElC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,wCAEe,CAAC;AAErD,MAAM,MAAM,4BAA4B,GACvC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3C,MAAM,MAAM,sBAAsB,GAC/B,uBAAuB,GACvB,uBAAuB,GACvB,IAAI,CAAC;AAER,MAAM,WAAW,0BAA0B;IAC1C,GAAG,EAAE,uBAAuB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IAC1C,GAAG,EAAE,uBAAuB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,kBAAkB,GAC3B,cAAc,GACd,gBAAgB,GAChB,kBAAkB,GAClB,sBAAsB,CAAC;AAE1B,MAAM,WAAW,qBAAqB;IACrC,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,uBAAuB,EAAE,CAAC;IACtC,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,2BAA2B,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,uBAAuB,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpB,MAAM,MAAM,wBAAwB,GACjC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,kBAAkB,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEtB,eAAO,MAAM,sBAAsB,EAAE,0BAA0B,EAwD9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,0BAA0B,EAiJ9D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,qBAAqB,EAuD3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,YAAuC,CAAC;AAEvE,eAAO,MAAM,4BAA4B,0DAGsB,CAAC;AAEhE,eAAO,MAAM,4BAA4B,0DAGsB,CAAC"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import { getDefaultPluginConfig } from "../config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Backend toggles that persist with the backend config but are NOT listed in
|
|
4
|
+
* BACKEND_TOGGLE_OPTIONS, because their home in the UI is the Experimental
|
|
5
|
+
* menu rather than a Backend settings category.
|
|
6
|
+
*
|
|
7
|
+
* They still have to travel through `backendSettingsSnapshot` and
|
|
8
|
+
* `buildBackendConfigPatch`: those two are what the Experimental save path
|
|
9
|
+
* uses to decide "did anything change" and "what do we write to
|
|
10
|
+
* settings.json". A toggle missing from both compares equal to its old value
|
|
11
|
+
* no matter what the user pressed, so the save is skipped and the change
|
|
12
|
+
* lives only in memory until the next launch drops it.
|
|
13
|
+
*
|
|
14
|
+
* Kept out of BACKEND_TOGGLE_OPTIONS so the settings menu's "every toggle
|
|
15
|
+
* belongs to a category" invariant (test/codex-manager-cli.test.ts) still
|
|
16
|
+
* holds without inventing a category for an experimental flag.
|
|
17
|
+
*/
|
|
18
|
+
export const EXPERIMENTAL_TOGGLE_KEYS = [
|
|
19
|
+
"contextBudgetGuardEnabled",
|
|
20
|
+
];
|
|
2
21
|
export const BACKEND_TOGGLE_OPTIONS = [
|
|
3
22
|
{
|
|
4
23
|
key: "liveAccountSync",
|
|
@@ -11,6 +11,7 @@ type ExperimentalSettingsCopy = {
|
|
|
11
11
|
experimentalRefreshInterval: string;
|
|
12
12
|
experimentalDecreaseInterval: string;
|
|
13
13
|
experimentalIncreaseInterval: string;
|
|
14
|
+
experimentalContextBudgetGuard: string;
|
|
14
15
|
saveAndBack: string;
|
|
15
16
|
backNoSave: string;
|
|
16
17
|
experimentalHelpMenu: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental-settings-prompt.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/experimental-settings-prompt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"experimental-settings-prompt.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/experimental-settings-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,11 @@ export async function promptExperimentalSettingsMenu(params) {
|
|
|
48
48
|
value: { type: "increase-refresh-interval" },
|
|
49
49
|
color: "green",
|
|
50
50
|
},
|
|
51
|
+
{
|
|
52
|
+
label: `${params.formatDashboardSettingState(draft.contextBudgetGuardEnabled ?? false)} ${copy.experimentalContextBudgetGuard}`,
|
|
53
|
+
value: { type: "toggle-context-budget-guard" },
|
|
54
|
+
color: "yellow",
|
|
55
|
+
},
|
|
51
56
|
{ label: copy.saveAndBack, value: { type: "save" }, color: "green" },
|
|
52
57
|
{ label: copy.backNoSave, value: { type: "back" }, color: "red" },
|
|
53
58
|
], params.getExperimentalSelectOptions(params.ui, copy.experimentalHelpMenu, params.mapExperimentalMenuHotkey));
|
|
@@ -77,6 +82,13 @@ export async function promptExperimentalSettingsMenu(params) {
|
|
|
77
82
|
};
|
|
78
83
|
continue;
|
|
79
84
|
}
|
|
85
|
+
if (actionType === "toggle-context-budget-guard") {
|
|
86
|
+
draft = {
|
|
87
|
+
...draft,
|
|
88
|
+
contextBudgetGuardEnabled: !(draft.contextBudgetGuardEnabled ?? false),
|
|
89
|
+
};
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
80
92
|
if (actionType === "backup") {
|
|
81
93
|
const prompt = createInterface({
|
|
82
94
|
input: params.input,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental-settings-schema.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/experimental-settings-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,0BAA0B,GACnC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpB,wBAAgB,4BAA4B,CAC3C,EAAE,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,GAC5D,aAAa,CAAC,0BAA0B,CAAC,CAU3C;AAED,wBAAgB,yBAAyB,CACxC,GAAG,EAAE,MAAM,GACT,0BAA0B,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"experimental-settings-schema.d.ts","sourceRoot":"","sources":["../../../lib/codex-manager/experimental-settings-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,0BAA0B,GACnC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,6BAA6B,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpB,wBAAgB,4BAA4B,CAC3C,EAAE,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,GAC5D,aAAa,CAAC,0BAA0B,CAAC,CAU3C;AAED,wBAAgB,yBAAyB,CACxC,GAAG,EAAE,MAAM,GACT,0BAA0B,GAAG,SAAS,CAWxC;AAED,wBAAgB,2BAA2B,CAC1C,GAAG,EAAE,MAAM,GACT,0BAA0B,GAAG,SAAS,CAExC"}
|
|
@@ -17,6 +17,8 @@ export function mapExperimentalMenuHotkey(raw) {
|
|
|
17
17
|
return { type: "backup" };
|
|
18
18
|
if (raw === "3")
|
|
19
19
|
return { type: "toggle-refresh-guardian" };
|
|
20
|
+
if (raw === "4")
|
|
21
|
+
return { type: "toggle-context-budget-guard" };
|
|
20
22
|
if (raw === "[" || raw === "-")
|
|
21
23
|
return { type: "decrease-refresh-interval" };
|
|
22
24
|
if (raw === "]" || raw === "+")
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -322,6 +322,35 @@ export declare function getPreemptiveQuotaRemainingPercent7d(pluginConfig: Plugi
|
|
|
322
322
|
* Security: the returned value contains no sensitive tokens and is safe to log.
|
|
323
323
|
*/
|
|
324
324
|
export declare function getPreemptiveQuotaMaxDeferralMs(pluginConfig: PluginConfig): number;
|
|
325
|
+
/**
|
|
326
|
+
* Whether the (experimental, opt-in) context budget guard is enabled.
|
|
327
|
+
*
|
|
328
|
+
* Ships disabled: pausing a session before it hits the context window is a
|
|
329
|
+
* staged behavior change, not a default-on safety net like preemptive quota
|
|
330
|
+
* deferral, so an explicit opt-in is required.
|
|
331
|
+
*/
|
|
332
|
+
export declare function getContextBudgetGuardEnabled(pluginConfig: PluginConfig): boolean;
|
|
333
|
+
/** Percent of the effective context window at which the guard's non-blocking advisory fires. */
|
|
334
|
+
export declare function getContextBudgetGuardSoftPercent(pluginConfig: PluginConfig): number;
|
|
335
|
+
/**
|
|
336
|
+
* Percent of the effective context window at which the guard pauses the next
|
|
337
|
+
* request.
|
|
338
|
+
*
|
|
339
|
+
* Floored at 10, not 0. `resolveNumberSetting` clamps out-of-range values
|
|
340
|
+
* instead of rejecting them, so a configured (or env-supplied) `0` would be a
|
|
341
|
+
* legal threshold that every recorded snapshot clears — pausing every session
|
|
342
|
+
* from its first turn on. The guard applies the same floor in `configure()`
|
|
343
|
+
* so a directly constructed instance cannot be set below it either.
|
|
344
|
+
*/
|
|
345
|
+
export declare function getContextBudgetGuardHardPercent(pluginConfig: PluginConfig): number;
|
|
346
|
+
/**
|
|
347
|
+
* User-supplied context-window sizes, keyed by normalized model id, that
|
|
348
|
+
* always take priority over this package's own best-effort estimates (see
|
|
349
|
+
* `lib/context-budget/model-context-windows.ts`). Settings-only: there is no
|
|
350
|
+
* environment override, the same as `unsupportedCodexFallbackChain`, since a
|
|
351
|
+
* per-model token count is not a reasonable single env var.
|
|
352
|
+
*/
|
|
353
|
+
export declare function getContextBudgetGuardModelWindowOverrides(pluginConfig: PluginConfig): Record<string, number>;
|
|
325
354
|
/**
|
|
326
355
|
* Resolve the routing-mutex mode (PR-N / R4).
|
|
327
356
|
*
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAoE/C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3D,KAAK,wBAAwB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;AAE3E,KAAK,yBAAyB,GAAG,OAAO,CACvC,wBAAwB,EACxB,SAAS,GAAG,MAAM,CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,yBAAyB,GAAG,SAAS,CAAC;AAEhF,MAAM,WAAW,kBAAkB;IAClC,GAAG,EAAE,MAAM,YAAY,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,wBAAwB,CAAC;IACtC,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAUD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAoED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
|