ugly-app 0.1.454 → 0.1.455

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.
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.454";
1
+ export declare const CLI_VERSION = "0.1.455";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.454";
2
+ export const CLI_VERSION = "0.1.455";
3
3
  //# sourceMappingURL=version.js.map
@@ -1,3 +1,4 @@
1
+ import type { ReasoningEffort } from '../../shared/AiProxy.js';
1
2
  export type ImageMimeType = 'image/jpeg' | 'image/png' | 'image/gif' | 'image/webp';
2
3
  /**
3
4
  * ClientCallback — used by BotCode/TextGen to invoke client-side functions
@@ -98,14 +99,19 @@ export interface TextGenChat {
98
99
  */
99
100
  promptCacheKey?: string;
100
101
  /**
101
- * Coarse reasoning-depth knob. Translated per-provider into the
102
- * native field (Anthropic `thinking.budget_tokens`, OpenAI
103
- * `reasoning_effort`, Google `thinkingConfig.thinkingBudget`,
104
- * DeepSeek `output_config.effort`). Providers that don't expose
105
- * reasoning ignore it. When unset and `domain` is set, the
106
- * provider may pick a domain-aware default.
102
+ * Coarse reasoning-depth knob. Strongly typed via the canonical
103
+ * `ReasoningEffort` enum from `shared/AiProxy.ts`. Per-model
104
+ * translation to the native wire field (Anthropic
105
+ * `thinking.budget_tokens`, OpenAI `reasoning_effort`, Gemini
106
+ * `thinkingConfig.thinkingBudget`, model-id swap, etc.) lives in
107
+ * the ugly.bot proxy's `getThinkingSupport` /
108
+ * `resolveThinking` helpers. Callers pass the effort and the
109
+ * proxy figures out the right shape per model. Models without a
110
+ * thinking surface throw `ThinkingNotSupportedError` rather than
111
+ * silently dropping the request — silent drop was the bug the
112
+ * redesign targets.
107
113
  */
108
- reasoningEffort?: 'low' | 'medium' | 'high' | 'max';
114
+ reasoningEffort?: ReasoningEffort;
109
115
  /**
110
116
  * Anthropic-style thinking-block control. Wins over
111
117
  * `reasoningEffort` on Anthropic-compat providers — useful for the
@@ -1 +1 @@
1
- {"version":3,"file":"TextGenBase.d.ts","sourceRoot":"","sources":["../../../src/server/ai/TextGenBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextGenBase.d.ts","sourceRoot":"","sources":["../../../src/server/ai/TextGenBase.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TextGenBase.js","sourceRoot":"","sources":["../../../src/server/ai/TextGenBase.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,yDAAyD;AAiBzD,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,yCAA2B,CAAA;AAC7B,CAAC,EAFW,UAAU,KAAV,UAAU,QAErB;AAyMD,SAAS,WAAW,CAAC,OAAuB;IAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAiC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,OAAgB,WAAW;IAG/B,KAAK,CAAC,QAAQ,CACZ,MAA2C,EAC3C,cAAqC;QAErC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAClC;YACE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAC9C,EACD,cAAc,CACf,CAAC;QAEF,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YAC/C,GAAG,EAAE,YAAY,CAAC,GAAG;SACtB,CAAC;IACJ,CAAC;CAMF"}
1
+ {"version":3,"file":"TextGenBase.js","sourceRoot":"","sources":["../../../src/server/ai/TextGenBase.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,yDAAyD;AAmBzD,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,yCAA2B,CAAA;AAC7B,CAAC,EAFW,UAAU,KAAV,UAAU,QAErB;AA8MD,SAAS,WAAW,CAAC,OAAuB;IAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAiC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,OAAgB,WAAW;IAG/B,KAAK,CAAC,QAAQ,CACZ,MAA2C,EAC3C,cAAqC;QAErC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAClC;YACE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAC9C,EACD,cAAc,CACf,CAAC;QAEF,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YAC/C,GAAG,EAAE,YAAY,CAAC,GAAG;SACtB,CAAC;IACJ,CAAC;CAMF"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import type { ImageGenModel } from '../../shared/ImageGen.js';
3
+ import type { ReasoningEffort } from '../../shared/AiProxy.js';
3
4
  import type { Message, TextGenModel, TextGenTool } from '../../shared/TextGen.js';
4
5
  export type { ContentPart, Message } from '../../shared/TextGen.js';
5
6
  export interface TextGenOptions {
@@ -19,10 +20,19 @@ export interface TextGenOptions {
19
20
  promptCacheKey?: string;
20
21
  /**
21
22
  * Coarse reasoning-depth knob — see TextGenChat.reasoningEffort.
23
+ * Strongly typed via the canonical `ReasoningEffort` enum from
24
+ * `shared/AiProxy.ts`. Per-model translation to the right wire
25
+ * shape (Anthropic `thinking.budget_tokens`, OpenAI
26
+ * `reasoning_effort`, Gemini `thinkingConfig.thinkingBudget`,
27
+ * model-id swap, etc.) lives in the ugly.bot proxy's
28
+ * `getThinkingSupport` / `resolveThinking`. Callers don't need to
29
+ * know per-model budget ceilings — they pass the effort level and
30
+ * the proxy figures it out.
31
+ *
22
32
  * Set on the in-process textGen() path; the AI proxy plumbs this
23
33
  * through from `aiProxyChatRequestSchema.reasoning_effort`.
24
34
  */
25
- reasoningEffort?: 'low' | 'medium' | 'high' | 'max';
35
+ reasoningEffort?: ReasoningEffort;
26
36
  /**
27
37
  * Anthropic-style thinking control — see TextGenChat.thinking.
28
38
  * Wins over `reasoningEffort` on Anthropic-compat providers.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/ai/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/ai/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/ai/types.ts"],"names":[],"mappings":"AAgNA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEzB;IACA;IAFlB,YACkB,SAAkB,EAClB,WAAmB;QAEnC,KAAK,CAAC,wDAAwD,SAAS,EAAE,CAAC,CAAC;QAH3D,cAAS,GAAT,SAAS,CAAS;QAClB,gBAAW,GAAX,WAAW,CAAQ;QAGnC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/ai/types.ts"],"names":[],"mappings":"AA0NA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEzB;IACA;IAFlB,YACkB,SAAkB,EAClB,WAAmB;QAEnC,KAAK,CAAC,wDAAwD,SAAS,EAAE,CAAC,CAAC;QAH3D,cAAS,GAAT,SAAS,CAAS;QAClB,gBAAW,GAAX,WAAW,CAAQ;QAGnC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
@@ -77,21 +77,45 @@ export declare const aiProxyMessageSchema: z.ZodObject<{
77
77
  }, z.core.$strip>;
78
78
  export type AiProxyMessage = z.infer<typeof aiProxyMessageSchema>;
79
79
  /**
80
- * Reasoning-effort level. Maps onto each provider's native control:
81
- * Anthropic `thinking: { type: 'enabled', budget_tokens: N }`,
82
- * OpenAI `reasoning_effort` / Responses-API `reasoning.effort`,
83
- * Google Gemini `thinkingConfig.thinkingBudget`,
84
- * DeepSeek `output_config.effort`. Providers that don't support
85
- * reasoning ignore the field. `max` is reserved for the heaviest
86
- * setting on providers that distinguish (e.g. DeepSeek "max").
80
+ * Reasoning-effort level the canonical strongly-typed knob for the
81
+ * "how hard should the model think" axis. Same enum is used at every
82
+ * layer of the stack so studio UI / CLI flag / framework textGen API /
83
+ * ugly.bot wire schema / per-model translator all agree on what's
84
+ * being requested.
85
+ *
86
+ * Per-model handling lives in the ugly.bot proxy
87
+ * (`server/ai/providers/_reasoning.ts` `getThinkingSupport` /
88
+ * `resolveThinking`) — each model in the catalog declares its native
89
+ * shape (`anthropic` thinking budget, `openai-effort` enum, Gemini
90
+ * `thinkingBudget` integer, Gemini-3 `thinkingLevel`, model-id swap,
91
+ * or `unsupported`) and the proxy translates this single enum into
92
+ * the right wire field. Callers that ask for thinking on an
93
+ * unsupported model get `ThinkingNotSupportedError` rather than
94
+ * silent drop — silent drop was the bug that motivated the redesign.
95
+ *
96
+ * - 'off' : caller explicitly wants no thinking. Same effective
97
+ * behavior as omitting the field, but lets a UI render
98
+ * "thinking off" without ambiguity vs unset.
99
+ * - 'low' : minimal thinking budget (Anthropic 1024, etc.)
100
+ * - 'medium' : moderate thinking budget (Anthropic 8192).
101
+ * - 'high' : heavy thinking budget (Anthropic 16384, OpenAI top).
102
+ * - 'max' : provider's documented ceiling (Anthropic 32768,
103
+ * Gemini 2.5 Pro 32768, Gemini 2.5 Flash 24576). Some
104
+ * providers (OpenAI, Gemini-3-level) clamp `max` to
105
+ * their highest enum tier; the proxy surfaces the
106
+ * clamp via `defaultsApplied`.
87
107
  */
88
108
  export declare const reasoningEffortSchema: z.ZodEnum<{
89
109
  medium: "medium";
110
+ off: "off";
90
111
  max: "max";
91
112
  low: "low";
92
113
  high: "high";
93
114
  }>;
94
115
  export type ReasoningEffort = z.infer<typeof reasoningEffortSchema>;
116
+ /** Effort levels that turn thinking ON (i.e. all except 'off'). */
117
+ export declare const ENABLED_REASONING_EFFORTS: readonly ["low", "medium", "high", "max"];
118
+ export type EnabledReasoningEffort = (typeof ENABLED_REASONING_EFFORTS)[number];
95
119
  /**
96
120
  * Anthropic-style thinking control. Mirrors what Claude / DeepSeek-
97
121
  * Anthropic-gateway / MiniMax-Anthropic-compat / Kimi / z.ai accept
@@ -178,6 +202,7 @@ export declare const aiProxyChatRequestSchema: z.ZodObject<{
178
202
  prompt_cache_key: z.ZodOptional<z.ZodString>;
179
203
  reasoning_effort: z.ZodOptional<z.ZodEnum<{
180
204
  medium: "medium";
205
+ off: "off";
181
206
  max: "max";
182
207
  low: "low";
183
208
  high: "high";
@@ -256,6 +281,7 @@ export declare const aiProxyRequestFrameSchema: z.ZodObject<{
256
281
  prompt_cache_key: z.ZodOptional<z.ZodString>;
257
282
  reasoning_effort: z.ZodOptional<z.ZodEnum<{
258
283
  medium: "medium";
284
+ off: "off";
259
285
  max: "max";
260
286
  low: "low";
261
287
  high: "high";
@@ -410,6 +436,7 @@ export declare const aiProxyFrameSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
410
436
  prompt_cache_key: z.ZodOptional<z.ZodString>;
411
437
  reasoning_effort: z.ZodOptional<z.ZodEnum<{
412
438
  medium: "medium";
439
+ off: "off";
413
440
  max: "max";
414
441
  low: "low";
415
442
  high: "high";
@@ -1 +1 @@
1
- {"version":3,"file":"AiProxy.d.ts","sourceRoot":"","sources":["../../src/shared/AiProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AiProxy.d.ts","sourceRoot":"","sources":["../../src/shared/AiProxy.ts"],"names":[],"mappings":"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"}
@@ -66,15 +66,48 @@ export const aiProxyMessageSchema = z.object({
66
66
  cache_control: cacheControlSchema.optional(),
67
67
  });
68
68
  /**
69
- * Reasoning-effort level. Maps onto each provider's native control:
70
- * Anthropic `thinking: { type: 'enabled', budget_tokens: N }`,
71
- * OpenAI `reasoning_effort` / Responses-API `reasoning.effort`,
72
- * Google Gemini `thinkingConfig.thinkingBudget`,
73
- * DeepSeek `output_config.effort`. Providers that don't support
74
- * reasoning ignore the field. `max` is reserved for the heaviest
75
- * setting on providers that distinguish (e.g. DeepSeek "max").
69
+ * Reasoning-effort level the canonical strongly-typed knob for the
70
+ * "how hard should the model think" axis. Same enum is used at every
71
+ * layer of the stack so studio UI / CLI flag / framework textGen API /
72
+ * ugly.bot wire schema / per-model translator all agree on what's
73
+ * being requested.
74
+ *
75
+ * Per-model handling lives in the ugly.bot proxy
76
+ * (`server/ai/providers/_reasoning.ts` `getThinkingSupport` /
77
+ * `resolveThinking`) — each model in the catalog declares its native
78
+ * shape (`anthropic` thinking budget, `openai-effort` enum, Gemini
79
+ * `thinkingBudget` integer, Gemini-3 `thinkingLevel`, model-id swap,
80
+ * or `unsupported`) and the proxy translates this single enum into
81
+ * the right wire field. Callers that ask for thinking on an
82
+ * unsupported model get `ThinkingNotSupportedError` rather than
83
+ * silent drop — silent drop was the bug that motivated the redesign.
84
+ *
85
+ * - 'off' : caller explicitly wants no thinking. Same effective
86
+ * behavior as omitting the field, but lets a UI render
87
+ * "thinking off" without ambiguity vs unset.
88
+ * - 'low' : minimal thinking budget (Anthropic 1024, etc.)
89
+ * - 'medium' : moderate thinking budget (Anthropic 8192).
90
+ * - 'high' : heavy thinking budget (Anthropic 16384, OpenAI top).
91
+ * - 'max' : provider's documented ceiling (Anthropic 32768,
92
+ * Gemini 2.5 Pro 32768, Gemini 2.5 Flash 24576). Some
93
+ * providers (OpenAI, Gemini-3-level) clamp `max` to
94
+ * their highest enum tier; the proxy surfaces the
95
+ * clamp via `defaultsApplied`.
76
96
  */
77
- export const reasoningEffortSchema = z.enum(['low', 'medium', 'high', 'max']);
97
+ export const reasoningEffortSchema = z.enum([
98
+ 'off',
99
+ 'low',
100
+ 'medium',
101
+ 'high',
102
+ 'max',
103
+ ]);
104
+ /** Effort levels that turn thinking ON (i.e. all except 'off'). */
105
+ export const ENABLED_REASONING_EFFORTS = [
106
+ 'low',
107
+ 'medium',
108
+ 'high',
109
+ 'max',
110
+ ];
78
111
  /**
79
112
  * Anthropic-style thinking control. Mirrors what Claude / DeepSeek-
80
113
  * Anthropic-gateway / MiniMax-Anthropic-compat / Kimi / z.ai accept
@@ -1 +1 @@
1
- {"version":3,"file":"AiProxy.js","sourceRoot":"","sources":["../../src/shared/AiProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AiProxy.js","sourceRoot":"","sources":["../../src/shared/AiProxy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.454",
3
+ "version": "0.1.455",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.454";
2
+ export const CLI_VERSION = "0.1.455";
@@ -1,6 +1,8 @@
1
1
  // Moved from app/server/ai/TextGenBase.ts
2
2
  // Base interface and abstract class for text generation.
3
3
 
4
+ import type { ReasoningEffort } from '../../shared/AiProxy.js';
5
+
4
6
  export type ImageMimeType =
5
7
  | 'image/jpeg'
6
8
  | 'image/png'
@@ -126,14 +128,19 @@ export interface TextGenChat {
126
128
  */
127
129
  promptCacheKey?: string;
128
130
  /**
129
- * Coarse reasoning-depth knob. Translated per-provider into the
130
- * native field (Anthropic `thinking.budget_tokens`, OpenAI
131
- * `reasoning_effort`, Google `thinkingConfig.thinkingBudget`,
132
- * DeepSeek `output_config.effort`). Providers that don't expose
133
- * reasoning ignore it. When unset and `domain` is set, the
134
- * provider may pick a domain-aware default.
131
+ * Coarse reasoning-depth knob. Strongly typed via the canonical
132
+ * `ReasoningEffort` enum from `shared/AiProxy.ts`. Per-model
133
+ * translation to the native wire field (Anthropic
134
+ * `thinking.budget_tokens`, OpenAI `reasoning_effort`, Gemini
135
+ * `thinkingConfig.thinkingBudget`, model-id swap, etc.) lives in
136
+ * the ugly.bot proxy's `getThinkingSupport` /
137
+ * `resolveThinking` helpers. Callers pass the effort and the
138
+ * proxy figures out the right shape per model. Models without a
139
+ * thinking surface throw `ThinkingNotSupportedError` rather than
140
+ * silently dropping the request — silent drop was the bug the
141
+ * redesign targets.
135
142
  */
136
- reasoningEffort?: 'low' | 'medium' | 'high' | 'max';
143
+ reasoningEffort?: ReasoningEffort;
137
144
  /**
138
145
  * Anthropic-style thinking-block control. Wins over
139
146
  * `reasoningEffort` on Anthropic-compat providers — useful for the
@@ -1,6 +1,7 @@
1
1
  // src/server/ai/types.ts
2
2
  import { z } from 'zod';
3
3
  import type { ImageGenModel } from '../../shared/ImageGen.js';
4
+ import type { ReasoningEffort } from '../../shared/AiProxy.js';
4
5
  import type {
5
6
  Message,
6
7
  TextGenModel,
@@ -26,10 +27,19 @@ export interface TextGenOptions {
26
27
  promptCacheKey?: string;
27
28
  /**
28
29
  * Coarse reasoning-depth knob — see TextGenChat.reasoningEffort.
30
+ * Strongly typed via the canonical `ReasoningEffort` enum from
31
+ * `shared/AiProxy.ts`. Per-model translation to the right wire
32
+ * shape (Anthropic `thinking.budget_tokens`, OpenAI
33
+ * `reasoning_effort`, Gemini `thinkingConfig.thinkingBudget`,
34
+ * model-id swap, etc.) lives in the ugly.bot proxy's
35
+ * `getThinkingSupport` / `resolveThinking`. Callers don't need to
36
+ * know per-model budget ceilings — they pass the effort level and
37
+ * the proxy figures it out.
38
+ *
29
39
  * Set on the in-process textGen() path; the AI proxy plumbs this
30
40
  * through from `aiProxyChatRequestSchema.reasoning_effort`.
31
41
  */
32
- reasoningEffort?: 'low' | 'medium' | 'high' | 'max';
42
+ reasoningEffort?: ReasoningEffort;
33
43
  /**
34
44
  * Anthropic-style thinking control — see TextGenChat.thinking.
35
45
  * Wins over `reasoningEffort` on Anthropic-compat providers.
@@ -75,16 +75,50 @@ export const aiProxyMessageSchema = z.object({
75
75
  export type AiProxyMessage = z.infer<typeof aiProxyMessageSchema>;
76
76
 
77
77
  /**
78
- * Reasoning-effort level. Maps onto each provider's native control:
79
- * Anthropic `thinking: { type: 'enabled', budget_tokens: N }`,
80
- * OpenAI `reasoning_effort` / Responses-API `reasoning.effort`,
81
- * Google Gemini `thinkingConfig.thinkingBudget`,
82
- * DeepSeek `output_config.effort`. Providers that don't support
83
- * reasoning ignore the field. `max` is reserved for the heaviest
84
- * setting on providers that distinguish (e.g. DeepSeek "max").
78
+ * Reasoning-effort level the canonical strongly-typed knob for the
79
+ * "how hard should the model think" axis. Same enum is used at every
80
+ * layer of the stack so studio UI / CLI flag / framework textGen API /
81
+ * ugly.bot wire schema / per-model translator all agree on what's
82
+ * being requested.
83
+ *
84
+ * Per-model handling lives in the ugly.bot proxy
85
+ * (`server/ai/providers/_reasoning.ts` `getThinkingSupport` /
86
+ * `resolveThinking`) — each model in the catalog declares its native
87
+ * shape (`anthropic` thinking budget, `openai-effort` enum, Gemini
88
+ * `thinkingBudget` integer, Gemini-3 `thinkingLevel`, model-id swap,
89
+ * or `unsupported`) and the proxy translates this single enum into
90
+ * the right wire field. Callers that ask for thinking on an
91
+ * unsupported model get `ThinkingNotSupportedError` rather than
92
+ * silent drop — silent drop was the bug that motivated the redesign.
93
+ *
94
+ * - 'off' : caller explicitly wants no thinking. Same effective
95
+ * behavior as omitting the field, but lets a UI render
96
+ * "thinking off" without ambiguity vs unset.
97
+ * - 'low' : minimal thinking budget (Anthropic 1024, etc.)
98
+ * - 'medium' : moderate thinking budget (Anthropic 8192).
99
+ * - 'high' : heavy thinking budget (Anthropic 16384, OpenAI top).
100
+ * - 'max' : provider's documented ceiling (Anthropic 32768,
101
+ * Gemini 2.5 Pro 32768, Gemini 2.5 Flash 24576). Some
102
+ * providers (OpenAI, Gemini-3-level) clamp `max` to
103
+ * their highest enum tier; the proxy surfaces the
104
+ * clamp via `defaultsApplied`.
85
105
  */
86
- export const reasoningEffortSchema = z.enum(['low', 'medium', 'high', 'max']);
106
+ export const reasoningEffortSchema = z.enum([
107
+ 'off',
108
+ 'low',
109
+ 'medium',
110
+ 'high',
111
+ 'max',
112
+ ]);
87
113
  export type ReasoningEffort = z.infer<typeof reasoningEffortSchema>;
114
+ /** Effort levels that turn thinking ON (i.e. all except 'off'). */
115
+ export const ENABLED_REASONING_EFFORTS = [
116
+ 'low',
117
+ 'medium',
118
+ 'high',
119
+ 'max',
120
+ ] as const satisfies readonly ReasoningEffort[];
121
+ export type EnabledReasoningEffort = (typeof ENABLED_REASONING_EFFORTS)[number];
88
122
 
89
123
  /**
90
124
  * Anthropic-style thinking control. Mirrors what Claude / DeepSeek-