mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-20 02:17:05 +00:00
feat(cliproxy): add 'max' thinking level for Claude Opus 4.7
Anthropic exposes `max` as a distinct adaptive-thinking effort above `xhigh` on Opus 4.7. Previously the validator aliased user input `max` down to `xhigh`, so users couldn't reach the real top-tier effort through CCS. Extend the validator: - Add `max` to VALID_THINKING_LEVELS and THINKING_LEVEL_RANK (rank 6, above xhigh) - Add `max` to THINKING_LEVEL_BUDGETS (65536, CCS-internal numeric mapping for closest-level lookups) - Widen ThinkingSupport.maxLevel union to include 'max' The existing `max: 'xhigh'` alias in findClosestLevel is kept as a graceful fallback for models whose levels list does not include `max` (e.g. Codex `gpt-5.4`), because exact-match on validLevels takes priority — so Opus 4.7 returns `max` directly while Codex still maps `max` -> `xhigh`. Update the claude.claude-opus-4-7 catalog entry to expose `['low', 'medium', 'high', 'xhigh', 'max']` with `maxLevel: 'max'`. Built [OnSteroids](https://onsteroids.ai) Co-Authored-By: OnSteroids <built@onsteroids.ai>
This commit is contained in:
1 parent
46920dbc08
commit
45fe7ab086
4 files changed
+47
-7
No files matched your search
@@ -33,7 +33,7 @@ export interface ThinkingSupport {
|
||||
/** Valid level names (for levels type) */
|
||||
levels?: string[];
|
||||
/** Maximum reasoning effort level (caps effort at this level for levels type) */
|
||||
maxLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
||||
maxLevel?: 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
||||
/** Whether zero/disabled thinking is allowed */
|
||||
zeroAllowed?: boolean;
|
||||
/** Whether dynamic/auto thinking is allowed */
|
||||
@@ -298,10 +298,11 @@ export const MODEL_CATALOG: Partial<Record<CLIProxyProvider, ProviderCatalog>> =
|
||||
// Opus 4.7 only supports adaptive thinking on the Anthropic API; manual
|
||||
// thinking.type: "enabled" with budget_tokens is rejected with 400.
|
||||
// Expose effort levels; the proxy translates these into adaptive effort.
|
||||
// `max` is a distinct adaptive effort above `xhigh` exposed by Anthropic.
|
||||
thinking: {
|
||||
type: 'levels',
|
||||
levels: ['low', 'medium', 'high', 'xhigh'],
|
||||
maxLevel: 'xhigh',
|
||||
levels: ['low', 'medium', 'high', 'xhigh', 'max'],
|
||||
maxLevel: 'max',
|
||||
dynamicAllowed: true,
|
||||
},
|
||||
extendedContext: true,
|
||||
|
||||
Reference in new issue
Block a user