@oh-my-pi/pi-coding-agent 17.2.5 → 17.2.7

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.
Files changed (201) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/dist/{CHANGELOG-q2w43aw3.md → CHANGELOG-1p8yvde7.md} +35 -1
  3. package/dist/cli.js +3340 -3339
  4. package/dist/types/advisor/advise-tool.d.ts +10 -4
  5. package/dist/types/autoresearch/tools/init-experiment.d.ts +19 -7
  6. package/dist/types/autoresearch/tools/log-experiment.d.ts +19 -11
  7. package/dist/types/autoresearch/tools/run-experiment.d.ts +4 -2
  8. package/dist/types/autoresearch/tools/update-notes.d.ts +5 -2
  9. package/dist/types/cli/gc-cli.d.ts +1 -0
  10. package/dist/types/commit/agentic/tools/analyze-file.d.ts +5 -2
  11. package/dist/types/commit/agentic/tools/git-file-diff.d.ts +5 -2
  12. package/dist/types/commit/agentic/tools/git-hunk.d.ts +6 -2
  13. package/dist/types/commit/agentic/tools/git-overview.d.ts +5 -2
  14. package/dist/types/commit/agentic/tools/propose-changelog.d.ts +29 -7
  15. package/dist/types/commit/agentic/tools/propose-commit.d.ts +14 -4
  16. package/dist/types/commit/agentic/tools/recent-commits.d.ts +4 -2
  17. package/dist/types/commit/agentic/tools/schemas.d.ts +7 -3
  18. package/dist/types/commit/agentic/tools/split-commit.d.ts +37 -10
  19. package/dist/types/commit/changelog/generate.d.ts +13 -3
  20. package/dist/types/commit/shared-llm.d.ts +13 -4
  21. package/dist/types/config/config-file.d.ts +1 -1
  22. package/dist/types/config/models-config-schema-bundle.d.ts +1992 -981
  23. package/dist/types/config/models-config-schema.d.ts +1201 -580
  24. package/dist/types/config/models-config.d.ts +355 -371
  25. package/dist/types/edit/hashline/params.d.ts +4 -2
  26. package/dist/types/edit/modes/apply-patch.d.ts +4 -2
  27. package/dist/types/edit/modes/patch.d.ts +16 -5
  28. package/dist/types/edit/modes/replace.d.ts +8 -3
  29. package/dist/types/eval/bridge-timeout.d.ts +5 -2
  30. package/dist/types/eval/completion-bridge.d.ts +13 -0
  31. package/dist/types/eval/py/tool-bridge.d.ts +12 -0
  32. package/dist/types/extensibility/custom-commands/types.d.ts +4 -4
  33. package/dist/types/extensibility/custom-tools/types.d.ts +4 -4
  34. package/dist/types/extensibility/extensions/types.d.ts +4 -4
  35. package/dist/types/extensibility/hooks/types.d.ts +4 -4
  36. package/dist/types/extensibility/legacy-pi-ai-shim.d.ts +1 -1
  37. package/dist/types/extensibility/legacy-pi-coding-agent-shim.d.ts +1 -1
  38. package/dist/types/extensibility/legacy-typebox.d.ts +8 -0
  39. package/dist/types/extensibility/plugins/legacy-pi-compat.d.ts +6 -13
  40. package/dist/types/goals/tools/goal-tool.d.ts +12 -4
  41. package/dist/types/launch/client.d.ts +9 -1
  42. package/dist/types/launch/protocol.d.ts +17 -0
  43. package/dist/types/lsp/index.d.ts +15 -5
  44. package/dist/types/lsp/types.d.ts +15 -5
  45. package/dist/types/modes/components/btw-panel.d.ts +3 -0
  46. package/dist/types/modes/controllers/btw-controller.d.ts +2 -0
  47. package/dist/types/modes/controllers/command-controller.d.ts +1 -0
  48. package/dist/types/modes/interactive-mode.d.ts +4 -1
  49. package/dist/types/modes/types.d.ts +3 -1
  50. package/dist/types/security/contracts/schemas.d.ts +1115 -537
  51. package/dist/types/security/publication.d.ts +92 -34
  52. package/dist/types/session/agent-session-types.d.ts +5 -0
  53. package/dist/types/session/agent-session.d.ts +26 -2
  54. package/dist/types/session/launch-completion.d.ts +10 -0
  55. package/dist/types/session/session-entries.d.ts +15 -1
  56. package/dist/types/session/session-manager.d.ts +7 -0
  57. package/dist/types/session/yield-queue.d.ts +6 -1
  58. package/dist/types/task/types.d.ts +63 -18
  59. package/dist/types/tools/ask.d.ts +34 -8
  60. package/dist/types/tools/ast-edit.d.ts +16 -4
  61. package/dist/types/tools/ast-grep.d.ts +12 -4
  62. package/dist/types/tools/bash.d.ts +20 -11
  63. package/dist/types/tools/browser.d.ts +64 -20
  64. package/dist/types/tools/checkpoint.d.ts +16 -8
  65. package/dist/types/tools/computer.d.ts +1 -1
  66. package/dist/types/tools/debug.d.ts +118 -48
  67. package/dist/types/tools/eval.d.ts +11 -5
  68. package/dist/types/tools/gh.d.ts +74 -26
  69. package/dist/types/tools/glob.d.ts +16 -6
  70. package/dist/types/tools/grep.d.ts +18 -6
  71. package/dist/types/tools/hub/index.d.ts +116 -46
  72. package/dist/types/tools/image-gen.d.ts +25 -8
  73. package/dist/types/tools/index.d.ts +9 -0
  74. package/dist/types/tools/inspect-image.d.ts +10 -4
  75. package/dist/types/tools/learn.d.ts +26 -8
  76. package/dist/types/tools/manage-skill.d.ts +16 -6
  77. package/dist/types/tools/memory-edit.d.ts +18 -6
  78. package/dist/types/tools/memory-recall.d.ts +8 -4
  79. package/dist/types/tools/memory-reflect.d.ts +10 -4
  80. package/dist/types/tools/memory-retain.d.ts +14 -4
  81. package/dist/types/tools/read.d.ts +8 -4
  82. package/dist/types/tools/security-scan.d.ts +82 -30
  83. package/dist/types/tools/todo.d.ts +30 -10
  84. package/dist/types/tools/tts.d.ts +12 -5
  85. package/dist/types/tools/vibe.d.ts +42 -18
  86. package/dist/types/tools/write.d.ts +10 -4
  87. package/dist/types/web/search/index.d.ts +20 -6
  88. package/package.json +13 -13
  89. package/scripts/legacy-pi-virtual-module.ts +2 -2
  90. package/src/advisor/advise-tool.ts +1 -1
  91. package/src/advisor/config.ts +1 -1
  92. package/src/autoresearch/tools/init-experiment.ts +1 -2
  93. package/src/autoresearch/tools/log-experiment.ts +1 -2
  94. package/src/autoresearch/tools/run-experiment.ts +1 -1
  95. package/src/autoresearch/tools/update-notes.ts +1 -1
  96. package/src/cli/gc-cli.ts +641 -21
  97. package/src/commit/agentic/tools/analyze-file.ts +1 -1
  98. package/src/commit/agentic/tools/git-file-diff.ts +1 -1
  99. package/src/commit/agentic/tools/git-hunk.ts +1 -1
  100. package/src/commit/agentic/tools/git-overview.ts +1 -1
  101. package/src/commit/agentic/tools/propose-changelog.ts +1 -1
  102. package/src/commit/agentic/tools/propose-commit.ts +1 -1
  103. package/src/commit/agentic/tools/recent-commits.ts +1 -1
  104. package/src/commit/agentic/tools/schemas.ts +1 -1
  105. package/src/commit/agentic/tools/split-commit.ts +1 -1
  106. package/src/commit/analysis/summary.ts +1 -1
  107. package/src/commit/changelog/generate.ts +1 -1
  108. package/src/config/config-file.ts +2 -2
  109. package/src/config/model-discovery.ts +14 -14
  110. package/src/config/model-registry.ts +10 -8
  111. package/src/config/models-config-schema-bundle.ts +1 -8
  112. package/src/config/settings.ts +1 -1
  113. package/src/discovery/codex.ts +22 -9
  114. package/src/edit/hashline/params.ts +1 -1
  115. package/src/edit/modes/apply-patch.ts +1 -1
  116. package/src/edit/modes/patch.ts +1 -1
  117. package/src/edit/modes/replace.ts +2 -1
  118. package/src/eval/agent-bridge.ts +4 -2
  119. package/src/eval/bridge-timeout.ts +5 -2
  120. package/src/eval/completion-bridge.ts +3 -2
  121. package/src/eval/executor-base.ts +20 -1
  122. package/src/eval/js/context-manager.ts +94 -6
  123. package/src/eval/py/tool-bridge.ts +29 -9
  124. package/src/export/html/index.ts +10 -3
  125. package/src/export/share.ts +4 -0
  126. package/src/extensibility/custom-commands/loader.ts +3 -3
  127. package/src/extensibility/custom-commands/types.ts +4 -4
  128. package/src/extensibility/custom-tools/loader.ts +3 -3
  129. package/src/extensibility/custom-tools/types.ts +5 -4
  130. package/src/extensibility/extensions/loader.ts +3 -3
  131. package/src/extensibility/extensions/types.ts +5 -4
  132. package/src/extensibility/hooks/loader.ts +3 -3
  133. package/src/extensibility/hooks/types.ts +4 -4
  134. package/src/extensibility/legacy-pi-ai-shim.ts +1 -1
  135. package/src/extensibility/legacy-pi-coding-agent-shim.ts +2 -2
  136. package/src/extensibility/legacy-typebox.ts +101 -0
  137. package/src/extensibility/plugins/legacy-pi-compat.ts +13 -22
  138. package/src/goals/tools/goal-tool.ts +1 -1
  139. package/src/launch/broker.ts +222 -6
  140. package/src/launch/client.ts +161 -9
  141. package/src/launch/protocol.ts +52 -0
  142. package/src/lsp/types.ts +1 -1
  143. package/src/main.ts +13 -6
  144. package/src/mcp/config-writer.ts +1 -1
  145. package/src/modes/components/btw-panel.ts +41 -4
  146. package/src/modes/controllers/btw-controller.ts +55 -7
  147. package/src/modes/controllers/command-controller.ts +31 -0
  148. package/src/modes/controllers/input-controller.ts +24 -7
  149. package/src/modes/interactive-mode.ts +16 -2
  150. package/src/modes/theme/theme.ts +3 -3
  151. package/src/modes/types.ts +8 -1
  152. package/src/prompts/session/launch-completion.md +1 -0
  153. package/src/sdk.ts +15 -0
  154. package/src/security/contracts/schemas.ts +202 -184
  155. package/src/security/contracts/validation.ts +6 -2
  156. package/src/security/publication.ts +1 -1
  157. package/src/security/store.ts +2 -2
  158. package/src/session/agent-session-types.ts +6 -0
  159. package/src/session/agent-session.ts +190 -14
  160. package/src/session/launch-completion.ts +37 -0
  161. package/src/session/session-context.ts +26 -0
  162. package/src/session/session-entries.ts +17 -1
  163. package/src/session/session-manager.ts +21 -0
  164. package/src/session/yield-queue.ts +121 -16
  165. package/src/slash-commands/builtin-registry.ts +10 -1
  166. package/src/task/types.ts +1 -1
  167. package/src/tools/ask.ts +1 -1
  168. package/src/tools/ast-edit.ts +1 -1
  169. package/src/tools/ast-grep.ts +1 -1
  170. package/src/tools/bash.ts +61 -3
  171. package/src/tools/browser/cmux/cmux-tab.ts +92 -4
  172. package/src/tools/browser.ts +1 -1
  173. package/src/tools/checkpoint.ts +1 -1
  174. package/src/tools/computer.ts +1 -1
  175. package/src/tools/debug.ts +1 -1
  176. package/src/tools/eval.ts +1 -1
  177. package/src/tools/gh.ts +1 -2
  178. package/src/tools/glob.ts +1 -1
  179. package/src/tools/grep.ts +1 -1
  180. package/src/tools/hub/index.ts +1 -1
  181. package/src/tools/hub/launch.ts +122 -6
  182. package/src/tools/image-gen.ts +1 -1
  183. package/src/tools/index.ts +9 -0
  184. package/src/tools/inspect-image.ts +1 -1
  185. package/src/tools/learn.ts +1 -1
  186. package/src/tools/manage-skill.ts +1 -1
  187. package/src/tools/memory-edit.ts +1 -1
  188. package/src/tools/memory-recall.ts +1 -1
  189. package/src/tools/memory-reflect.ts +1 -1
  190. package/src/tools/memory-retain.ts +1 -1
  191. package/src/tools/read.ts +1 -1
  192. package/src/tools/security-scan.ts +1 -1
  193. package/src/tools/todo.ts +1 -1
  194. package/src/tools/tts.ts +1 -1
  195. package/src/tools/vibe.ts +2 -1
  196. package/src/tools/write.ts +1 -1
  197. package/src/web/search/index.ts +2 -1
  198. package/dist/types/config/file-lock.d.ts +0 -29
  199. package/dist/types/extensibility/typebox.d.ts +0 -181
  200. package/src/config/file-lock.ts +0 -164
  201. package/src/extensibility/typebox.ts +0 -958
@@ -28,437 +28,421 @@ export interface ProviderValidationConfig {
28
28
  }
29
29
  export declare function validateProviderConfiguration(providerName: string, config: ProviderValidationConfig, mode: ProviderValidationMode): void;
30
30
  export declare const ModelsConfigFile: ConfigFile<{
31
- providers?: {
32
- [x: string]: {
33
- baseUrl?: string | undefined;
34
- apiKey?: string | undefined;
35
- api?: "anthropic-messages" | "azure-openai-responses" | "bedrock-converse-stream" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
36
- headers?: {
37
- [x: string]: string;
31
+ providers?: Record<string, {
32
+ api?: "anthropic-messages" | "azure-openai-responses" | "bedrock-converse-stream" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
33
+ apiKey?: string | undefined;
34
+ auth?: "apiKey" | "none" | "oauth" | undefined;
35
+ authHeader?: boolean | undefined;
36
+ baseUrl?: string | undefined;
37
+ compat?: ({
38
+ allowAnthropicHeaderOverrides?: boolean | undefined;
39
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
40
+ alwaysSendMaxTokens?: boolean | undefined;
41
+ cacheControlFormat?: "anthropic" | undefined;
42
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
43
+ disableReasoningOnToolChoice?: boolean | undefined;
44
+ extraBody?: Record<string, unknown> | undefined;
45
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
46
+ openRouterRouting?: {
47
+ only?: string[] | undefined;
48
+ order?: string[] | undefined;
38
49
  } | undefined;
39
- compat?: {
40
- supportsStore?: boolean | undefined;
41
- supportsDeveloperRole?: boolean | undefined;
42
- supportsMultipleSystemMessages?: boolean | undefined;
43
- supportsReasoningEffort?: boolean | undefined;
50
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
51
+ reasoningEffortMap?: {
52
+ high?: string | undefined;
53
+ low?: string | undefined;
54
+ max?: string | undefined;
55
+ medium?: string | undefined;
56
+ minimal?: string | undefined;
57
+ xhigh?: string | undefined;
58
+ } | undefined;
59
+ replayUnsignedThinking?: boolean | undefined;
60
+ requiresAssistantAfterToolResult?: boolean | undefined;
61
+ requiresAssistantContentForToolCalls?: boolean | undefined;
62
+ requiresMistralToolIds?: boolean | undefined;
63
+ requiresReasoningContentForToolCalls?: boolean | undefined;
64
+ requiresThinkingAsText?: boolean | undefined;
65
+ requiresToolResultId?: boolean | undefined;
66
+ requiresToolResultName?: boolean | undefined;
67
+ streamIdleTimeoutMs?: number | undefined;
68
+ strictResponsesPairing?: boolean | undefined;
69
+ supportsDeveloperRole?: boolean | undefined;
70
+ supportsEagerToolInputStreaming?: boolean | undefined;
71
+ supportsForcedToolChoice?: boolean | undefined;
72
+ supportsImageDetailOriginal?: boolean | undefined;
73
+ supportsLongPromptCacheRetention?: boolean | undefined;
74
+ supportsMultipleSystemMessages?: boolean | undefined;
75
+ supportsReasoningEffort?: boolean | undefined;
76
+ supportsReasoningParams?: boolean | undefined;
77
+ supportsStore?: boolean | undefined;
78
+ supportsStrictMode?: boolean | undefined;
79
+ supportsToolChoice?: boolean | undefined;
80
+ supportsUsageInStreaming?: boolean | undefined;
81
+ thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
82
+ toolStrictMode?: "all_strict" | "none" | undefined;
83
+ vercelGatewayRouting?: {
84
+ only?: string[] | undefined;
85
+ order?: string[] | undefined;
86
+ } | undefined;
87
+ whenThinking?: {
88
+ allowAnthropicHeaderOverrides?: boolean | undefined;
89
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
90
+ alwaysSendMaxTokens?: boolean | undefined;
91
+ cacheControlFormat?: "anthropic" | undefined;
92
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
93
+ disableReasoningOnToolChoice?: boolean | undefined;
94
+ extraBody?: Record<string, unknown> | undefined;
95
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
96
+ openRouterRouting?: {
97
+ only?: string[] | undefined;
98
+ order?: string[] | undefined;
99
+ } | undefined;
100
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
44
101
  reasoningEffortMap?: {
45
- minimal?: string | undefined;
102
+ high?: string | undefined;
46
103
  low?: string | undefined;
104
+ max?: string | undefined;
47
105
  medium?: string | undefined;
48
- high?: string | undefined;
106
+ minimal?: string | undefined;
49
107
  xhigh?: string | undefined;
50
- max?: string | undefined;
51
108
  } | undefined;
52
- maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
53
- supportsUsageInStreaming?: boolean | undefined;
54
- requiresToolResultName?: boolean | undefined;
55
- requiresMistralToolIds?: boolean | undefined;
109
+ replayUnsignedThinking?: boolean | undefined;
56
110
  requiresAssistantAfterToolResult?: boolean | undefined;
57
- requiresThinkingAsText?: boolean | undefined;
58
- reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
59
- requiresReasoningContentForToolCalls?: boolean | undefined;
60
- allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
61
111
  requiresAssistantContentForToolCalls?: boolean | undefined;
62
- supportsToolChoice?: boolean | undefined;
112
+ requiresMistralToolIds?: boolean | undefined;
113
+ requiresReasoningContentForToolCalls?: boolean | undefined;
114
+ requiresThinkingAsText?: boolean | undefined;
115
+ requiresToolResultId?: boolean | undefined;
116
+ requiresToolResultName?: boolean | undefined;
117
+ streamIdleTimeoutMs?: number | undefined;
118
+ strictResponsesPairing?: boolean | undefined;
119
+ supportsDeveloperRole?: boolean | undefined;
120
+ supportsEagerToolInputStreaming?: boolean | undefined;
63
121
  supportsForcedToolChoice?: boolean | undefined;
64
- disableReasoningOnForcedToolChoice?: boolean | undefined;
65
- disableReasoningOnToolChoice?: boolean | undefined;
122
+ supportsImageDetailOriginal?: boolean | undefined;
123
+ supportsLongPromptCacheRetention?: boolean | undefined;
124
+ supportsMultipleSystemMessages?: boolean | undefined;
125
+ supportsReasoningEffort?: boolean | undefined;
126
+ supportsReasoningParams?: boolean | undefined;
127
+ supportsStore?: boolean | undefined;
128
+ supportsStrictMode?: boolean | undefined;
129
+ supportsToolChoice?: boolean | undefined;
130
+ supportsUsageInStreaming?: boolean | undefined;
66
131
  thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
67
- openRouterRouting?: {
132
+ toolStrictMode?: "all_strict" | "none" | undefined;
133
+ vercelGatewayRouting?: {
68
134
  only?: string[] | undefined;
69
135
  order?: string[] | undefined;
70
136
  } | undefined;
71
- vercelGatewayRouting?: {
137
+ } | undefined;
138
+ } & {
139
+ promptCacheMaximumCheckpoints?: number | undefined;
140
+ promptCacheMinimumTokens?: number | undefined;
141
+ promptCacheMode?: "automatic" | "explicit" | "none" | undefined;
142
+ supportsLongPromptCacheRetention?: boolean | undefined;
143
+ }) | undefined;
144
+ disableStrictTools?: boolean | undefined;
145
+ discovery?: {
146
+ timeoutMs?: number | undefined;
147
+ type: "litellm" | "llama.cpp" | "lm-studio" | "ollama" | "openai-models-list" | "proxy";
148
+ } | undefined;
149
+ headers?: Record<string, string> | undefined;
150
+ modelOverrides?: Record<string, {
151
+ compactionModel?: string | undefined;
152
+ compat?: ({
153
+ allowAnthropicHeaderOverrides?: boolean | undefined;
154
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
155
+ alwaysSendMaxTokens?: boolean | undefined;
156
+ cacheControlFormat?: "anthropic" | undefined;
157
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
158
+ disableReasoningOnToolChoice?: boolean | undefined;
159
+ extraBody?: Record<string, unknown> | undefined;
160
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
161
+ openRouterRouting?: {
72
162
  only?: string[] | undefined;
73
163
  order?: string[] | undefined;
74
164
  } | undefined;
75
- extraBody?: {
76
- [x: string]: unknown;
165
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
166
+ reasoningEffortMap?: {
167
+ high?: string | undefined;
168
+ low?: string | undefined;
169
+ max?: string | undefined;
170
+ medium?: string | undefined;
171
+ minimal?: string | undefined;
172
+ xhigh?: string | undefined;
77
173
  } | undefined;
78
- cacheControlFormat?: "anthropic" | undefined;
79
- supportsStrictMode?: boolean | undefined;
80
- toolStrictMode?: "all_strict" | "none" | undefined;
174
+ replayUnsignedThinking?: boolean | undefined;
175
+ requiresAssistantAfterToolResult?: boolean | undefined;
176
+ requiresAssistantContentForToolCalls?: boolean | undefined;
177
+ requiresMistralToolIds?: boolean | undefined;
178
+ requiresReasoningContentForToolCalls?: boolean | undefined;
179
+ requiresThinkingAsText?: boolean | undefined;
180
+ requiresToolResultId?: boolean | undefined;
181
+ requiresToolResultName?: boolean | undefined;
81
182
  streamIdleTimeoutMs?: number | undefined;
82
- supportsLongPromptCacheRetention?: boolean | undefined;
83
- supportsReasoningParams?: boolean | undefined;
84
- alwaysSendMaxTokens?: boolean | undefined;
85
183
  strictResponsesPairing?: boolean | undefined;
86
- supportsImageDetailOriginal?: boolean | undefined;
184
+ supportsDeveloperRole?: boolean | undefined;
87
185
  supportsEagerToolInputStreaming?: boolean | undefined;
88
- allowAnthropicHeaderOverrides?: boolean | undefined;
89
- requiresToolResultId?: boolean | undefined;
90
- replayUnsignedThinking?: boolean | undefined;
186
+ supportsForcedToolChoice?: boolean | undefined;
187
+ supportsImageDetailOriginal?: boolean | undefined;
188
+ supportsLongPromptCacheRetention?: boolean | undefined;
189
+ supportsMultipleSystemMessages?: boolean | undefined;
190
+ supportsReasoningEffort?: boolean | undefined;
191
+ supportsReasoningParams?: boolean | undefined;
192
+ supportsStore?: boolean | undefined;
193
+ supportsStrictMode?: boolean | undefined;
194
+ supportsToolChoice?: boolean | undefined;
195
+ supportsUsageInStreaming?: boolean | undefined;
196
+ thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
197
+ toolStrictMode?: "all_strict" | "none" | undefined;
198
+ vercelGatewayRouting?: {
199
+ only?: string[] | undefined;
200
+ order?: string[] | undefined;
201
+ } | undefined;
91
202
  whenThinking?: {
92
- supportsStore?: boolean | undefined;
93
- supportsDeveloperRole?: boolean | undefined;
94
- supportsMultipleSystemMessages?: boolean | undefined;
95
- supportsReasoningEffort?: boolean | undefined;
203
+ allowAnthropicHeaderOverrides?: boolean | undefined;
204
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
205
+ alwaysSendMaxTokens?: boolean | undefined;
206
+ cacheControlFormat?: "anthropic" | undefined;
207
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
208
+ disableReasoningOnToolChoice?: boolean | undefined;
209
+ extraBody?: Record<string, unknown> | undefined;
210
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
211
+ openRouterRouting?: {
212
+ only?: string[] | undefined;
213
+ order?: string[] | undefined;
214
+ } | undefined;
215
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
96
216
  reasoningEffortMap?: {
97
- minimal?: string | undefined;
217
+ high?: string | undefined;
98
218
  low?: string | undefined;
219
+ max?: string | undefined;
99
220
  medium?: string | undefined;
100
- high?: string | undefined;
221
+ minimal?: string | undefined;
101
222
  xhigh?: string | undefined;
102
- max?: string | undefined;
103
223
  } | undefined;
104
- maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
105
- supportsUsageInStreaming?: boolean | undefined;
106
- requiresToolResultName?: boolean | undefined;
107
- requiresMistralToolIds?: boolean | undefined;
224
+ replayUnsignedThinking?: boolean | undefined;
108
225
  requiresAssistantAfterToolResult?: boolean | undefined;
109
- requiresThinkingAsText?: boolean | undefined;
110
- reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
111
- requiresReasoningContentForToolCalls?: boolean | undefined;
112
- allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
113
226
  requiresAssistantContentForToolCalls?: boolean | undefined;
114
- supportsToolChoice?: boolean | undefined;
227
+ requiresMistralToolIds?: boolean | undefined;
228
+ requiresReasoningContentForToolCalls?: boolean | undefined;
229
+ requiresThinkingAsText?: boolean | undefined;
230
+ requiresToolResultId?: boolean | undefined;
231
+ requiresToolResultName?: boolean | undefined;
232
+ streamIdleTimeoutMs?: number | undefined;
233
+ strictResponsesPairing?: boolean | undefined;
234
+ supportsDeveloperRole?: boolean | undefined;
235
+ supportsEagerToolInputStreaming?: boolean | undefined;
115
236
  supportsForcedToolChoice?: boolean | undefined;
116
- disableReasoningOnForcedToolChoice?: boolean | undefined;
117
- disableReasoningOnToolChoice?: boolean | undefined;
237
+ supportsImageDetailOriginal?: boolean | undefined;
238
+ supportsLongPromptCacheRetention?: boolean | undefined;
239
+ supportsMultipleSystemMessages?: boolean | undefined;
240
+ supportsReasoningEffort?: boolean | undefined;
241
+ supportsReasoningParams?: boolean | undefined;
242
+ supportsStore?: boolean | undefined;
243
+ supportsStrictMode?: boolean | undefined;
244
+ supportsToolChoice?: boolean | undefined;
245
+ supportsUsageInStreaming?: boolean | undefined;
118
246
  thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
119
- openRouterRouting?: {
120
- only?: string[] | undefined;
121
- order?: string[] | undefined;
122
- } | undefined;
247
+ toolStrictMode?: "all_strict" | "none" | undefined;
123
248
  vercelGatewayRouting?: {
124
249
  only?: string[] | undefined;
125
250
  order?: string[] | undefined;
126
251
  } | undefined;
127
- extraBody?: {
128
- [x: string]: unknown;
129
- } | undefined;
130
- cacheControlFormat?: "anthropic" | undefined;
131
- supportsStrictMode?: boolean | undefined;
132
- toolStrictMode?: "all_strict" | "none" | undefined;
133
- streamIdleTimeoutMs?: number | undefined;
134
- supportsLongPromptCacheRetention?: boolean | undefined;
135
- supportsReasoningParams?: boolean | undefined;
136
- alwaysSendMaxTokens?: boolean | undefined;
137
- strictResponsesPairing?: boolean | undefined;
138
- supportsImageDetailOriginal?: boolean | undefined;
139
- supportsEagerToolInputStreaming?: boolean | undefined;
140
- allowAnthropicHeaderOverrides?: boolean | undefined;
141
- requiresToolResultId?: boolean | undefined;
142
- replayUnsignedThinking?: boolean | undefined;
143
252
  } | undefined;
144
- promptCacheMode?: "automatic" | "explicit" | "none" | undefined;
145
- promptCacheMinimumTokens?: number | undefined;
253
+ } & {
146
254
  promptCacheMaximumCheckpoints?: number | undefined;
255
+ promptCacheMinimumTokens?: number | undefined;
256
+ promptCacheMode?: "automatic" | "explicit" | "none" | undefined;
257
+ supportsLongPromptCacheRetention?: boolean | undefined;
258
+ }) | undefined;
259
+ contextPromotionTarget?: string | undefined;
260
+ contextWindow?: number | undefined;
261
+ cost?: {
262
+ cacheRead?: number | undefined;
263
+ cacheWrite?: number | undefined;
264
+ input?: number | undefined;
265
+ output?: number | undefined;
147
266
  } | undefined;
267
+ headers?: Record<string, string> | undefined;
268
+ input?: ("image" | "text")[] | undefined;
269
+ maxTokens?: number | undefined;
270
+ name?: string | undefined;
271
+ omitMaxOutputTokens?: boolean | undefined;
272
+ premiumMultiplier?: number | undefined;
273
+ reasoning?: boolean | undefined;
148
274
  remoteCompaction?: {
149
- enabled?: boolean | undefined;
150
275
  api?: "anthropic-messages" | "azure-openai-responses" | "bedrock-converse-stream" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
276
+ enabled?: boolean | undefined;
151
277
  endpoint?: string | undefined;
152
278
  model?: string | undefined;
153
- v2StreamingEnabled?: boolean | undefined;
154
- v2Endpoint?: string | undefined;
155
279
  streamingEndpoint?: string | undefined;
280
+ v2Endpoint?: string | undefined;
281
+ v2StreamingEnabled?: boolean | undefined;
156
282
  } | undefined;
157
- authHeader?: boolean | undefined;
158
- auth?: "apiKey" | "none" | "oauth" | undefined;
159
- discovery?: {
160
- type: "litellm" | "llama.cpp" | "lm-studio" | "ollama" | "openai-models-list" | "proxy";
161
- timeoutMs?: number | undefined;
283
+ supportsTools?: boolean | undefined;
284
+ thinking?: {
285
+ mode: any;
286
+ efforts: any;
287
+ defaultLevel?: any;
288
+ effortMap?: any;
289
+ supportsDisplay?: any;
162
290
  } | undefined;
163
- models?: {
164
- id: string;
165
- name?: string | undefined;
166
- api?: "anthropic-messages" | "azure-openai-responses" | "bedrock-converse-stream" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
167
- baseUrl?: string | undefined;
168
- reasoning?: boolean | undefined;
169
- thinking?: {
170
- mode: any;
171
- efforts: any;
172
- defaultLevel?: any;
173
- effortMap?: any;
174
- supportsDisplay?: any;
291
+ }> | undefined;
292
+ models?: {
293
+ api?: "anthropic-messages" | "azure-openai-responses" | "bedrock-converse-stream" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
294
+ baseUrl?: string | undefined;
295
+ compactionModel?: string | undefined;
296
+ compat?: ({
297
+ allowAnthropicHeaderOverrides?: boolean | undefined;
298
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
299
+ alwaysSendMaxTokens?: boolean | undefined;
300
+ cacheControlFormat?: "anthropic" | undefined;
301
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
302
+ disableReasoningOnToolChoice?: boolean | undefined;
303
+ extraBody?: Record<string, unknown> | undefined;
304
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
305
+ openRouterRouting?: {
306
+ only?: string[] | undefined;
307
+ order?: string[] | undefined;
175
308
  } | undefined;
176
- input?: ("image" | "text")[] | undefined;
177
- supportsTools?: boolean | undefined;
178
- cost?: {
179
- input: number;
180
- output: number;
181
- cacheRead: number;
182
- cacheWrite: number;
309
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
310
+ reasoningEffortMap?: {
311
+ high?: string | undefined;
312
+ low?: string | undefined;
313
+ max?: string | undefined;
314
+ medium?: string | undefined;
315
+ minimal?: string | undefined;
316
+ xhigh?: string | undefined;
183
317
  } | undefined;
184
- premiumMultiplier?: number | undefined;
185
- contextWindow?: number | undefined;
186
- maxTokens?: number | undefined;
187
- omitMaxOutputTokens?: boolean | undefined;
188
- headers?: {
189
- [x: string]: string;
318
+ replayUnsignedThinking?: boolean | undefined;
319
+ requiresAssistantAfterToolResult?: boolean | undefined;
320
+ requiresAssistantContentForToolCalls?: boolean | undefined;
321
+ requiresMistralToolIds?: boolean | undefined;
322
+ requiresReasoningContentForToolCalls?: boolean | undefined;
323
+ requiresThinkingAsText?: boolean | undefined;
324
+ requiresToolResultId?: boolean | undefined;
325
+ requiresToolResultName?: boolean | undefined;
326
+ streamIdleTimeoutMs?: number | undefined;
327
+ strictResponsesPairing?: boolean | undefined;
328
+ supportsDeveloperRole?: boolean | undefined;
329
+ supportsEagerToolInputStreaming?: boolean | undefined;
330
+ supportsForcedToolChoice?: boolean | undefined;
331
+ supportsImageDetailOriginal?: boolean | undefined;
332
+ supportsLongPromptCacheRetention?: boolean | undefined;
333
+ supportsMultipleSystemMessages?: boolean | undefined;
334
+ supportsReasoningEffort?: boolean | undefined;
335
+ supportsReasoningParams?: boolean | undefined;
336
+ supportsStore?: boolean | undefined;
337
+ supportsStrictMode?: boolean | undefined;
338
+ supportsToolChoice?: boolean | undefined;
339
+ supportsUsageInStreaming?: boolean | undefined;
340
+ thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
341
+ toolStrictMode?: "all_strict" | "none" | undefined;
342
+ vercelGatewayRouting?: {
343
+ only?: string[] | undefined;
344
+ order?: string[] | undefined;
190
345
  } | undefined;
191
- compat?: {
192
- supportsStore?: boolean | undefined;
193
- supportsDeveloperRole?: boolean | undefined;
194
- supportsMultipleSystemMessages?: boolean | undefined;
195
- supportsReasoningEffort?: boolean | undefined;
346
+ whenThinking?: {
347
+ allowAnthropicHeaderOverrides?: boolean | undefined;
348
+ allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
349
+ alwaysSendMaxTokens?: boolean | undefined;
350
+ cacheControlFormat?: "anthropic" | undefined;
351
+ disableReasoningOnForcedToolChoice?: boolean | undefined;
352
+ disableReasoningOnToolChoice?: boolean | undefined;
353
+ extraBody?: Record<string, unknown> | undefined;
354
+ maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
355
+ openRouterRouting?: {
356
+ only?: string[] | undefined;
357
+ order?: string[] | undefined;
358
+ } | undefined;
359
+ reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
196
360
  reasoningEffortMap?: {
197
- minimal?: string | undefined;
361
+ high?: string | undefined;
198
362
  low?: string | undefined;
363
+ max?: string | undefined;
199
364
  medium?: string | undefined;
200
- high?: string | undefined;
365
+ minimal?: string | undefined;
201
366
  xhigh?: string | undefined;
202
- max?: string | undefined;
203
367
  } | undefined;
204
- maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
205
- supportsUsageInStreaming?: boolean | undefined;
206
- requiresToolResultName?: boolean | undefined;
207
- requiresMistralToolIds?: boolean | undefined;
368
+ replayUnsignedThinking?: boolean | undefined;
208
369
  requiresAssistantAfterToolResult?: boolean | undefined;
209
- requiresThinkingAsText?: boolean | undefined;
210
- reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
211
- requiresReasoningContentForToolCalls?: boolean | undefined;
212
- allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
213
370
  requiresAssistantContentForToolCalls?: boolean | undefined;
214
- supportsToolChoice?: boolean | undefined;
371
+ requiresMistralToolIds?: boolean | undefined;
372
+ requiresReasoningContentForToolCalls?: boolean | undefined;
373
+ requiresThinkingAsText?: boolean | undefined;
374
+ requiresToolResultId?: boolean | undefined;
375
+ requiresToolResultName?: boolean | undefined;
376
+ streamIdleTimeoutMs?: number | undefined;
377
+ strictResponsesPairing?: boolean | undefined;
378
+ supportsDeveloperRole?: boolean | undefined;
379
+ supportsEagerToolInputStreaming?: boolean | undefined;
215
380
  supportsForcedToolChoice?: boolean | undefined;
216
- disableReasoningOnForcedToolChoice?: boolean | undefined;
217
- disableReasoningOnToolChoice?: boolean | undefined;
381
+ supportsImageDetailOriginal?: boolean | undefined;
382
+ supportsLongPromptCacheRetention?: boolean | undefined;
383
+ supportsMultipleSystemMessages?: boolean | undefined;
384
+ supportsReasoningEffort?: boolean | undefined;
385
+ supportsReasoningParams?: boolean | undefined;
386
+ supportsStore?: boolean | undefined;
387
+ supportsStrictMode?: boolean | undefined;
388
+ supportsToolChoice?: boolean | undefined;
389
+ supportsUsageInStreaming?: boolean | undefined;
218
390
  thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
219
- openRouterRouting?: {
220
- only?: string[] | undefined;
221
- order?: string[] | undefined;
222
- } | undefined;
391
+ toolStrictMode?: "all_strict" | "none" | undefined;
223
392
  vercelGatewayRouting?: {
224
393
  only?: string[] | undefined;
225
394
  order?: string[] | undefined;
226
395
  } | undefined;
227
- extraBody?: {
228
- [x: string]: unknown;
229
- } | undefined;
230
- cacheControlFormat?: "anthropic" | undefined;
231
- supportsStrictMode?: boolean | undefined;
232
- toolStrictMode?: "all_strict" | "none" | undefined;
233
- streamIdleTimeoutMs?: number | undefined;
234
- supportsLongPromptCacheRetention?: boolean | undefined;
235
- supportsReasoningParams?: boolean | undefined;
236
- alwaysSendMaxTokens?: boolean | undefined;
237
- strictResponsesPairing?: boolean | undefined;
238
- supportsImageDetailOriginal?: boolean | undefined;
239
- supportsEagerToolInputStreaming?: boolean | undefined;
240
- allowAnthropicHeaderOverrides?: boolean | undefined;
241
- requiresToolResultId?: boolean | undefined;
242
- replayUnsignedThinking?: boolean | undefined;
243
- whenThinking?: {
244
- supportsStore?: boolean | undefined;
245
- supportsDeveloperRole?: boolean | undefined;
246
- supportsMultipleSystemMessages?: boolean | undefined;
247
- supportsReasoningEffort?: boolean | undefined;
248
- reasoningEffortMap?: {
249
- minimal?: string | undefined;
250
- low?: string | undefined;
251
- medium?: string | undefined;
252
- high?: string | undefined;
253
- xhigh?: string | undefined;
254
- max?: string | undefined;
255
- } | undefined;
256
- maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
257
- supportsUsageInStreaming?: boolean | undefined;
258
- requiresToolResultName?: boolean | undefined;
259
- requiresMistralToolIds?: boolean | undefined;
260
- requiresAssistantAfterToolResult?: boolean | undefined;
261
- requiresThinkingAsText?: boolean | undefined;
262
- reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
263
- requiresReasoningContentForToolCalls?: boolean | undefined;
264
- allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
265
- requiresAssistantContentForToolCalls?: boolean | undefined;
266
- supportsToolChoice?: boolean | undefined;
267
- supportsForcedToolChoice?: boolean | undefined;
268
- disableReasoningOnForcedToolChoice?: boolean | undefined;
269
- disableReasoningOnToolChoice?: boolean | undefined;
270
- thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
271
- openRouterRouting?: {
272
- only?: string[] | undefined;
273
- order?: string[] | undefined;
274
- } | undefined;
275
- vercelGatewayRouting?: {
276
- only?: string[] | undefined;
277
- order?: string[] | undefined;
278
- } | undefined;
279
- extraBody?: {
280
- [x: string]: unknown;
281
- } | undefined;
282
- cacheControlFormat?: "anthropic" | undefined;
283
- supportsStrictMode?: boolean | undefined;
284
- toolStrictMode?: "all_strict" | "none" | undefined;
285
- streamIdleTimeoutMs?: number | undefined;
286
- supportsLongPromptCacheRetention?: boolean | undefined;
287
- supportsReasoningParams?: boolean | undefined;
288
- alwaysSendMaxTokens?: boolean | undefined;
289
- strictResponsesPairing?: boolean | undefined;
290
- supportsImageDetailOriginal?: boolean | undefined;
291
- supportsEagerToolInputStreaming?: boolean | undefined;
292
- allowAnthropicHeaderOverrides?: boolean | undefined;
293
- requiresToolResultId?: boolean | undefined;
294
- replayUnsignedThinking?: boolean | undefined;
295
- } | undefined;
296
- promptCacheMode?: "automatic" | "explicit" | "none" | undefined;
297
- promptCacheMinimumTokens?: number | undefined;
298
- promptCacheMaximumCheckpoints?: number | undefined;
299
396
  } | undefined;
300
- contextPromotionTarget?: string | undefined;
301
- compactionModel?: string | undefined;
302
- remoteCompaction?: {
303
- enabled?: boolean | undefined;
304
- api?: "anthropic-messages" | "azure-openai-responses" | "bedrock-converse-stream" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
305
- endpoint?: string | undefined;
306
- model?: string | undefined;
307
- v2StreamingEnabled?: boolean | undefined;
308
- v2Endpoint?: string | undefined;
309
- streamingEndpoint?: string | undefined;
310
- } | undefined;
311
- }[] | undefined;
312
- modelOverrides?: {
313
- [x: string]: {
314
- name?: string | undefined;
315
- reasoning?: boolean | undefined;
316
- thinking?: {
317
- mode: any;
318
- efforts: any;
319
- defaultLevel?: any;
320
- effortMap?: any;
321
- supportsDisplay?: any;
322
- } | undefined;
323
- input?: ("image" | "text")[] | undefined;
324
- supportsTools?: boolean | undefined;
325
- cost?: {
326
- input?: number | undefined;
327
- output?: number | undefined;
328
- cacheRead?: number | undefined;
329
- cacheWrite?: number | undefined;
330
- } | undefined;
331
- premiumMultiplier?: number | undefined;
332
- contextWindow?: number | undefined;
333
- maxTokens?: number | undefined;
334
- omitMaxOutputTokens?: boolean | undefined;
335
- headers?: {
336
- [x: string]: string;
337
- } | undefined;
338
- compat?: {
339
- supportsStore?: boolean | undefined;
340
- supportsDeveloperRole?: boolean | undefined;
341
- supportsMultipleSystemMessages?: boolean | undefined;
342
- supportsReasoningEffort?: boolean | undefined;
343
- reasoningEffortMap?: {
344
- minimal?: string | undefined;
345
- low?: string | undefined;
346
- medium?: string | undefined;
347
- high?: string | undefined;
348
- xhigh?: string | undefined;
349
- max?: string | undefined;
350
- } | undefined;
351
- maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
352
- supportsUsageInStreaming?: boolean | undefined;
353
- requiresToolResultName?: boolean | undefined;
354
- requiresMistralToolIds?: boolean | undefined;
355
- requiresAssistantAfterToolResult?: boolean | undefined;
356
- requiresThinkingAsText?: boolean | undefined;
357
- reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
358
- requiresReasoningContentForToolCalls?: boolean | undefined;
359
- allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
360
- requiresAssistantContentForToolCalls?: boolean | undefined;
361
- supportsToolChoice?: boolean | undefined;
362
- supportsForcedToolChoice?: boolean | undefined;
363
- disableReasoningOnForcedToolChoice?: boolean | undefined;
364
- disableReasoningOnToolChoice?: boolean | undefined;
365
- thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
366
- openRouterRouting?: {
367
- only?: string[] | undefined;
368
- order?: string[] | undefined;
369
- } | undefined;
370
- vercelGatewayRouting?: {
371
- only?: string[] | undefined;
372
- order?: string[] | undefined;
373
- } | undefined;
374
- extraBody?: {
375
- [x: string]: unknown;
376
- } | undefined;
377
- cacheControlFormat?: "anthropic" | undefined;
378
- supportsStrictMode?: boolean | undefined;
379
- toolStrictMode?: "all_strict" | "none" | undefined;
380
- streamIdleTimeoutMs?: number | undefined;
381
- supportsLongPromptCacheRetention?: boolean | undefined;
382
- supportsReasoningParams?: boolean | undefined;
383
- alwaysSendMaxTokens?: boolean | undefined;
384
- strictResponsesPairing?: boolean | undefined;
385
- supportsImageDetailOriginal?: boolean | undefined;
386
- supportsEagerToolInputStreaming?: boolean | undefined;
387
- allowAnthropicHeaderOverrides?: boolean | undefined;
388
- requiresToolResultId?: boolean | undefined;
389
- replayUnsignedThinking?: boolean | undefined;
390
- whenThinking?: {
391
- supportsStore?: boolean | undefined;
392
- supportsDeveloperRole?: boolean | undefined;
393
- supportsMultipleSystemMessages?: boolean | undefined;
394
- supportsReasoningEffort?: boolean | undefined;
395
- reasoningEffortMap?: {
396
- minimal?: string | undefined;
397
- low?: string | undefined;
398
- medium?: string | undefined;
399
- high?: string | undefined;
400
- xhigh?: string | undefined;
401
- max?: string | undefined;
402
- } | undefined;
403
- maxTokensField?: "max_completion_tokens" | "max_tokens" | undefined;
404
- supportsUsageInStreaming?: boolean | undefined;
405
- requiresToolResultName?: boolean | undefined;
406
- requiresMistralToolIds?: boolean | undefined;
407
- requiresAssistantAfterToolResult?: boolean | undefined;
408
- requiresThinkingAsText?: boolean | undefined;
409
- reasoningContentField?: "reasoning" | "reasoning_content" | "reasoning_text" | undefined;
410
- requiresReasoningContentForToolCalls?: boolean | undefined;
411
- allowsSyntheticReasoningContentForToolCalls?: boolean | undefined;
412
- requiresAssistantContentForToolCalls?: boolean | undefined;
413
- supportsToolChoice?: boolean | undefined;
414
- supportsForcedToolChoice?: boolean | undefined;
415
- disableReasoningOnForcedToolChoice?: boolean | undefined;
416
- disableReasoningOnToolChoice?: boolean | undefined;
417
- thinkingFormat?: "openai" | "openrouter" | "qwen" | "qwen-chat-template" | "zai" | undefined;
418
- openRouterRouting?: {
419
- only?: string[] | undefined;
420
- order?: string[] | undefined;
421
- } | undefined;
422
- vercelGatewayRouting?: {
423
- only?: string[] | undefined;
424
- order?: string[] | undefined;
425
- } | undefined;
426
- extraBody?: {
427
- [x: string]: unknown;
428
- } | undefined;
429
- cacheControlFormat?: "anthropic" | undefined;
430
- supportsStrictMode?: boolean | undefined;
431
- toolStrictMode?: "all_strict" | "none" | undefined;
432
- streamIdleTimeoutMs?: number | undefined;
433
- supportsLongPromptCacheRetention?: boolean | undefined;
434
- supportsReasoningParams?: boolean | undefined;
435
- alwaysSendMaxTokens?: boolean | undefined;
436
- strictResponsesPairing?: boolean | undefined;
437
- supportsImageDetailOriginal?: boolean | undefined;
438
- supportsEagerToolInputStreaming?: boolean | undefined;
439
- allowAnthropicHeaderOverrides?: boolean | undefined;
440
- requiresToolResultId?: boolean | undefined;
441
- replayUnsignedThinking?: boolean | undefined;
442
- } | undefined;
443
- promptCacheMode?: "automatic" | "explicit" | "none" | undefined;
444
- promptCacheMinimumTokens?: number | undefined;
445
- promptCacheMaximumCheckpoints?: number | undefined;
446
- } | undefined;
447
- contextPromotionTarget?: string | undefined;
448
- compactionModel?: string | undefined;
449
- remoteCompaction?: {
450
- enabled?: boolean | undefined;
451
- api?: "anthropic-messages" | "azure-openai-responses" | "bedrock-converse-stream" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
452
- endpoint?: string | undefined;
453
- model?: string | undefined;
454
- v2StreamingEnabled?: boolean | undefined;
455
- v2Endpoint?: string | undefined;
456
- streamingEndpoint?: string | undefined;
457
- } | undefined;
458
- };
397
+ } & {
398
+ promptCacheMaximumCheckpoints?: number | undefined;
399
+ promptCacheMinimumTokens?: number | undefined;
400
+ promptCacheMode?: "automatic" | "explicit" | "none" | undefined;
401
+ supportsLongPromptCacheRetention?: boolean | undefined;
402
+ }) | undefined;
403
+ contextPromotionTarget?: string | undefined;
404
+ contextWindow?: number | undefined;
405
+ cost?: {
406
+ cacheRead: number;
407
+ cacheWrite: number;
408
+ input: number;
409
+ output: number;
459
410
  } | undefined;
460
- disableStrictTools?: boolean | undefined;
461
- transport?: "pi-native" | undefined;
462
- };
463
- } | undefined;
411
+ headers?: Record<string, string> | undefined;
412
+ id: string;
413
+ input?: ("image" | "text")[] | undefined;
414
+ maxTokens?: number | undefined;
415
+ name?: string | undefined;
416
+ omitMaxOutputTokens?: boolean | undefined;
417
+ premiumMultiplier?: number | undefined;
418
+ reasoning?: boolean | undefined;
419
+ remoteCompaction?: {
420
+ api?: "anthropic-messages" | "azure-openai-responses" | "bedrock-converse-stream" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
421
+ enabled?: boolean | undefined;
422
+ endpoint?: string | undefined;
423
+ model?: string | undefined;
424
+ streamingEndpoint?: string | undefined;
425
+ v2Endpoint?: string | undefined;
426
+ v2StreamingEnabled?: boolean | undefined;
427
+ } | undefined;
428
+ supportsTools?: boolean | undefined;
429
+ thinking?: {
430
+ mode: any;
431
+ efforts: any;
432
+ defaultLevel?: any;
433
+ effortMap?: any;
434
+ supportsDisplay?: any;
435
+ } | undefined;
436
+ }[] | undefined;
437
+ remoteCompaction?: {
438
+ api?: "anthropic-messages" | "azure-openai-responses" | "bedrock-converse-stream" | "google-gemini-cli" | "google-generative-ai" | "google-vertex" | "openai-codex-responses" | "openai-completions" | "openai-responses" | undefined;
439
+ enabled?: boolean | undefined;
440
+ endpoint?: string | undefined;
441
+ model?: string | undefined;
442
+ streamingEndpoint?: string | undefined;
443
+ v2Endpoint?: string | undefined;
444
+ v2StreamingEnabled?: boolean | undefined;
445
+ } | undefined;
446
+ transport?: "pi-native" | undefined;
447
+ }> | undefined;
464
448
  }>;