Providers: skip context1m beta for Anthropic OAuth tokens (#24620)

* Providers: skip context1m beta for Anthropic OAuth tokens

* Tests: cover OAuth context1m beta skip behavior

* Docs: note context1m OAuth incompatibility

* Agents: add context1m-aware context token resolver

* Agents: cover context1m context-token resolver

* Commands: apply context1m-aware context tokens in session store

* Commands: apply context1m-aware context tokens in status summary

* Status: resolve context tokens with context1m model params

* Status: test context1m status context display
This commit is contained in:
Vincent Koc
2026-02-23 12:29:09 -05:00
committed by GitHub
parent 28377e1b7a
commit f03ff39754
11 changed files with 248 additions and 23 deletions

View File

@@ -1,5 +1,5 @@
import { setCliSessionId } from "../../agents/cli-session.js";
import { lookupContextTokens } from "../../agents/context.js";
import { resolveContextTokensForModel } from "../../agents/context.js";
import { DEFAULT_CONTEXT_TOKENS } from "../../agents/defaults.js";
import { isCliProvider } from "../../agents/model-selection.js";
import { deriveSessionTotalTokens, hasNonzeroUsage } from "../../agents/usage.js";
@@ -42,7 +42,13 @@ export async function updateSessionStoreAfterAgentRun(params: {
const modelUsed = result.meta.agentMeta?.model ?? fallbackModel ?? defaultModel;
const providerUsed = result.meta.agentMeta?.provider ?? fallbackProvider ?? defaultProvider;
const contextTokens =
params.contextTokensOverride ?? lookupContextTokens(modelUsed) ?? DEFAULT_CONTEXT_TOKENS;
resolveContextTokensForModel({
cfg,
provider: providerUsed,
model: modelUsed,
contextTokensOverride: params.contextTokensOverride,
fallbackContextTokens: DEFAULT_CONTEXT_TOKENS,
}) ?? DEFAULT_CONTEXT_TOKENS;
const entry = sessionStore[sessionKey] ?? {
sessionId,

View File

@@ -1,4 +1,4 @@
import { lookupContextTokens } from "../agents/context.js";
import { resolveContextTokensForModel } from "../agents/context.js";
import { DEFAULT_CONTEXT_TOKENS, DEFAULT_MODEL, DEFAULT_PROVIDER } from "../agents/defaults.js";
import { resolveConfiguredModelRef } from "../agents/model-selection.js";
import { loadConfig } from "../config/config.js";
@@ -105,9 +105,13 @@ export async function getStatusSummary(
});
const configModel = resolved.model ?? DEFAULT_MODEL;
const configContextTokens =
cfg.agents?.defaults?.contextTokens ??
lookupContextTokens(configModel) ??
DEFAULT_CONTEXT_TOKENS;
resolveContextTokensForModel({
cfg,
provider: resolved.provider ?? DEFAULT_PROVIDER,
model: configModel,
contextTokensOverride: cfg.agents?.defaults?.contextTokens,
fallbackContextTokens: DEFAULT_CONTEXT_TOKENS,
}) ?? DEFAULT_CONTEXT_TOKENS;
const now = Date.now();
const storeCache = new Map<string, Record<string, SessionEntry | undefined>>();
@@ -132,7 +136,13 @@ export async function getStatusSummary(
const resolvedModel = resolveSessionModelRef(cfg, entry, opts.agentIdOverride);
const model = resolvedModel.model ?? configModel ?? null;
const contextTokens =
entry?.contextTokens ?? lookupContextTokens(model) ?? configContextTokens ?? null;
resolveContextTokensForModel({
cfg,
provider: resolvedModel.provider,
model,
contextTokensOverride: entry?.contextTokens,
fallbackContextTokens: configContextTokens ?? undefined,
}) ?? null;
const total = resolveFreshSessionTotalTokens(entry);
const totalTokensFresh =
typeof entry?.totalTokens === "number" ? entry?.totalTokensFresh !== false : false;