1
>
/*---------------------------------------------------------------------------------------------
reasoningEffort.ts
2
>
* Copyright (c) Microsoft Corporation. All rights reserved.
3
>
* Licensed under the MIT License. See License.txt in the project root for license information.
4
>
*--------------------------------------------------------------------------------------------*/
5
>
6
>
import { localize } from '../../../nls.js';
7
>
8
>
/**
9
>
* Union of every reasoning-effort / thinking-level value surfaced by any
10
>
* agent-host provider. Individual providers expose a subset:
11
>
* - Codex: `'minimal' | 'low' | 'medium' | 'high'`
12
>
* - Copilot / Claude: `'low' | 'medium' | 'high' | 'xhigh' | 'max'`
13
>
*
14
>
* The label/description helpers below are the single source of truth for
15
>
* the localized picker strings so every provider renders the same value
16
>
* consistently.
17
>
*/
18
>
export type ReasoningEffortLevel = 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
19
>
20
>
/**
21
>
* Localized, title-cased picker label for a reasoning-effort value.
22
>
* Falls back to capitalizing an unrecognized value so a newly-introduced
23
>
* effort tier never surfaces raw (e.g. lowercase `'max'`).
24
>
*/
25
>
export function getReasoningEffortLabel(level: string): string {
26
switch (level) {
27
case 'none': return localize('reasoningEffort.none', "None");