aemeathcli 1.0.0

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 (102) hide show
  1. package/README.md +607 -0
  2. package/dist/App-P4MYD4QY.js +2719 -0
  3. package/dist/App-P4MYD4QY.js.map +1 -0
  4. package/dist/api-key-fallback-YQQBOQIL.js +11 -0
  5. package/dist/api-key-fallback-YQQBOQIL.js.map +1 -0
  6. package/dist/chunk-4IJD72YB.js +184 -0
  7. package/dist/chunk-4IJD72YB.js.map +1 -0
  8. package/dist/chunk-6PDJ45T4.js +325 -0
  9. package/dist/chunk-6PDJ45T4.js.map +1 -0
  10. package/dist/chunk-CARHU3DO.js +562 -0
  11. package/dist/chunk-CARHU3DO.js.map +1 -0
  12. package/dist/chunk-CGEV3ARR.js +80 -0
  13. package/dist/chunk-CGEV3ARR.js.map +1 -0
  14. package/dist/chunk-CS5X3BWX.js +27 -0
  15. package/dist/chunk-CS5X3BWX.js.map +1 -0
  16. package/dist/chunk-CYQNBB25.js +44 -0
  17. package/dist/chunk-CYQNBB25.js.map +1 -0
  18. package/dist/chunk-DAHGLHNR.js +657 -0
  19. package/dist/chunk-DAHGLHNR.js.map +1 -0
  20. package/dist/chunk-H66O5Z2V.js +305 -0
  21. package/dist/chunk-H66O5Z2V.js.map +1 -0
  22. package/dist/chunk-HCIHOHLX.js +322 -0
  23. package/dist/chunk-HCIHOHLX.js.map +1 -0
  24. package/dist/chunk-HMJRPNPZ.js +1031 -0
  25. package/dist/chunk-HMJRPNPZ.js.map +1 -0
  26. package/dist/chunk-I5PZ4JTS.js +119 -0
  27. package/dist/chunk-I5PZ4JTS.js.map +1 -0
  28. package/dist/chunk-IYW62KKR.js +255 -0
  29. package/dist/chunk-IYW62KKR.js.map +1 -0
  30. package/dist/chunk-JAXXTYID.js +51 -0
  31. package/dist/chunk-JAXXTYID.js.map +1 -0
  32. package/dist/chunk-LSOYPSAT.js +183 -0
  33. package/dist/chunk-LSOYPSAT.js.map +1 -0
  34. package/dist/chunk-MFBHNWGV.js +416 -0
  35. package/dist/chunk-MFBHNWGV.js.map +1 -0
  36. package/dist/chunk-MXZSI3AY.js +311 -0
  37. package/dist/chunk-MXZSI3AY.js.map +1 -0
  38. package/dist/chunk-NBR3GHMT.js +72 -0
  39. package/dist/chunk-NBR3GHMT.js.map +1 -0
  40. package/dist/chunk-O3ZF22SW.js +246 -0
  41. package/dist/chunk-O3ZF22SW.js.map +1 -0
  42. package/dist/chunk-SUSJPZU2.js +181 -0
  43. package/dist/chunk-SUSJPZU2.js.map +1 -0
  44. package/dist/chunk-TEVZS4FA.js +310 -0
  45. package/dist/chunk-TEVZS4FA.js.map +1 -0
  46. package/dist/chunk-UY2SYSEZ.js +211 -0
  47. package/dist/chunk-UY2SYSEZ.js.map +1 -0
  48. package/dist/chunk-WAHVZH7V.js +260 -0
  49. package/dist/chunk-WAHVZH7V.js.map +1 -0
  50. package/dist/chunk-WPP3PEDE.js +234 -0
  51. package/dist/chunk-WPP3PEDE.js.map +1 -0
  52. package/dist/chunk-Y5XVD2CD.js +1610 -0
  53. package/dist/chunk-Y5XVD2CD.js.map +1 -0
  54. package/dist/chunk-YL5XFHR3.js +56 -0
  55. package/dist/chunk-YL5XFHR3.js.map +1 -0
  56. package/dist/chunk-ZGOHARPV.js +122 -0
  57. package/dist/chunk-ZGOHARPV.js.map +1 -0
  58. package/dist/claude-adapter-QMLFMSP3.js +6 -0
  59. package/dist/claude-adapter-QMLFMSP3.js.map +1 -0
  60. package/dist/claude-login-5WELXPKT.js +324 -0
  61. package/dist/claude-login-5WELXPKT.js.map +1 -0
  62. package/dist/cli.d.ts +1 -0
  63. package/dist/cli.js +703 -0
  64. package/dist/cli.js.map +1 -0
  65. package/dist/codex-login-7HHLJHBF.js +164 -0
  66. package/dist/codex-login-7HHLJHBF.js.map +1 -0
  67. package/dist/config-store-W6FBCQAQ.js +6 -0
  68. package/dist/config-store-W6FBCQAQ.js.map +1 -0
  69. package/dist/executor-6RIKIGXK.js +4 -0
  70. package/dist/executor-6RIKIGXK.js.map +1 -0
  71. package/dist/gemini-adapter-6JIHZ7WI.js +6 -0
  72. package/dist/gemini-adapter-6JIHZ7WI.js.map +1 -0
  73. package/dist/gemini-login-ZZLYC3J6.js +346 -0
  74. package/dist/gemini-login-ZZLYC3J6.js.map +1 -0
  75. package/dist/index.d.ts +2210 -0
  76. package/dist/index.js +1419 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/kimi-adapter-JN4HFFHU.js +6 -0
  79. package/dist/kimi-adapter-JN4HFFHU.js.map +1 -0
  80. package/dist/kimi-login-CZPS63NK.js +149 -0
  81. package/dist/kimi-login-CZPS63NK.js.map +1 -0
  82. package/dist/native-cli-adapters-OLW3XX57.js +6 -0
  83. package/dist/native-cli-adapters-OLW3XX57.js.map +1 -0
  84. package/dist/ollama-adapter-OJQ3FKWK.js +6 -0
  85. package/dist/ollama-adapter-OJQ3FKWK.js.map +1 -0
  86. package/dist/openai-adapter-XU46EN7B.js +6 -0
  87. package/dist/openai-adapter-XU46EN7B.js.map +1 -0
  88. package/dist/registry-4KD24ZC3.js +6 -0
  89. package/dist/registry-4KD24ZC3.js.map +1 -0
  90. package/dist/registry-H7B3AHPQ.js +5 -0
  91. package/dist/registry-H7B3AHPQ.js.map +1 -0
  92. package/dist/server-manager-PTGBHCLS.js +5 -0
  93. package/dist/server-manager-PTGBHCLS.js.map +1 -0
  94. package/dist/session-manager-ECEEACGY.js +12 -0
  95. package/dist/session-manager-ECEEACGY.js.map +1 -0
  96. package/dist/team-manager-HC4XGCFY.js +11 -0
  97. package/dist/team-manager-HC4XGCFY.js.map +1 -0
  98. package/dist/tmux-manager-GPYZ3WQH.js +6 -0
  99. package/dist/tmux-manager-GPYZ3WQH.js.map +1 -0
  100. package/dist/tools-TSMXMHIF.js +6 -0
  101. package/dist/tools-TSMXMHIF.js.map +1 -0
  102. package/package.json +89 -0
@@ -0,0 +1,322 @@
1
+ // src/types/model.ts
2
+ var PROVIDER_THINKING_CONFIGS = {
3
+ anthropic: {
4
+ method: "extended_thinking",
5
+ options: [
6
+ { value: "off", label: "Off", description: "No extended thinking" },
7
+ { value: "low", label: "Low (1K tokens)", description: "budget_tokens: 1024" },
8
+ { value: "medium", label: "Medium (8K tokens)", description: "budget_tokens: 8192" },
9
+ { value: "high", label: "High (16K tokens)", description: "budget_tokens: 16384" },
10
+ { value: "max", label: "Max (model limit)", description: "budget_tokens: max_output_tokens" }
11
+ ],
12
+ defaultValue: "medium"
13
+ },
14
+ openai: {
15
+ method: "reasoning_effort",
16
+ options: [
17
+ { value: "low", label: "Low", description: "Fewer reasoning tokens, faster" },
18
+ { value: "medium", label: "Medium", description: "Balanced reasoning (default)" },
19
+ { value: "high", label: "High", description: "Thorough reasoning, more tokens" }
20
+ ],
21
+ defaultValue: "medium"
22
+ },
23
+ "google:gemini-2.5": {
24
+ method: "thinking_budget",
25
+ options: [
26
+ { value: "off", label: "Off", description: "Disable thinking (budget: 0)" },
27
+ { value: "dynamic", label: "Dynamic", description: "Auto-adjust based on complexity (budget: -1)" },
28
+ { value: "low", label: "Low (4K tokens)", description: "thinkingBudget: 4096" },
29
+ { value: "medium", label: "Medium (12K tokens)", description: "thinkingBudget: 12288" },
30
+ { value: "high", label: "High (24K tokens)", description: "thinkingBudget: 24576" }
31
+ ],
32
+ defaultValue: "dynamic"
33
+ },
34
+ "google:gemini-3": {
35
+ method: "thinking_level",
36
+ options: [
37
+ { value: "minimal", label: "Minimal", description: "Minimal thinking" },
38
+ { value: "low", label: "Low", description: "Light thinking" },
39
+ { value: "medium", label: "Medium", description: "Balanced thinking" },
40
+ { value: "high", label: "High", description: "Deep thinking" }
41
+ ],
42
+ defaultValue: "medium"
43
+ },
44
+ kimi: {
45
+ method: "thinking_mode",
46
+ options: [
47
+ { value: "enabled", label: "Enabled", description: "Include reasoning traces" },
48
+ { value: "disabled", label: "Disabled", description: "Direct responses only" }
49
+ ],
50
+ defaultValue: "enabled"
51
+ }
52
+ };
53
+ function getThinkingConfigForModel(modelId) {
54
+ const modelInfo = SUPPORTED_MODELS[modelId];
55
+ if (modelInfo === void 0) return void 0;
56
+ if (modelInfo.provider === "google") {
57
+ if (modelId.startsWith("gemini-3")) {
58
+ return PROVIDER_THINKING_CONFIGS["google:gemini-3"];
59
+ }
60
+ return PROVIDER_THINKING_CONFIGS["google:gemini-2.5"];
61
+ }
62
+ return PROVIDER_THINKING_CONFIGS[modelInfo.provider];
63
+ }
64
+ var SUPPORTED_MODELS = {
65
+ // ── Anthropic / Claude ─────────────────────────────────────────────────
66
+ "claude-opus-4-6": {
67
+ id: "claude-opus-4-6",
68
+ name: "Claude Opus 4.6",
69
+ provider: "anthropic",
70
+ contextWindow: 2e5,
71
+ maxOutputTokens: 32e3,
72
+ inputPricePerMToken: 15,
73
+ outputPricePerMToken: 75,
74
+ supportsStreaming: true,
75
+ supportsToolCalling: true,
76
+ supportedRoles: ["planning", "review", "bugfix", "coding"],
77
+ description: "Most capable for complex work"
78
+ },
79
+ "claude-opus-4-6-1m": {
80
+ id: "claude-opus-4-6-1m",
81
+ name: "Claude Opus 4.6 (1M context)",
82
+ provider: "anthropic",
83
+ contextWindow: 1e6,
84
+ maxOutputTokens: 32e3,
85
+ inputPricePerMToken: 10,
86
+ outputPricePerMToken: 37.5,
87
+ supportsStreaming: true,
88
+ supportsToolCalling: true,
89
+ supportedRoles: ["planning", "review", "bugfix", "coding"],
90
+ description: "Opus 4.6 with 1M context"
91
+ },
92
+ "claude-sonnet-4-6": {
93
+ id: "claude-sonnet-4-6",
94
+ name: "Claude Sonnet 4.6",
95
+ provider: "anthropic",
96
+ contextWindow: 2e5,
97
+ maxOutputTokens: 16e3,
98
+ inputPricePerMToken: 3,
99
+ outputPricePerMToken: 15,
100
+ supportsStreaming: true,
101
+ supportsToolCalling: true,
102
+ supportedRoles: ["coding", "bugfix", "documentation", "review"],
103
+ description: "Best for everyday tasks"
104
+ },
105
+ "claude-sonnet-4-6-1m": {
106
+ id: "claude-sonnet-4-6-1m",
107
+ name: "Claude Sonnet 4.6 (1M context)",
108
+ provider: "anthropic",
109
+ contextWindow: 1e6,
110
+ maxOutputTokens: 16e3,
111
+ inputPricePerMToken: 6,
112
+ outputPricePerMToken: 22.5,
113
+ supportsStreaming: true,
114
+ supportsToolCalling: true,
115
+ supportedRoles: ["coding", "bugfix", "documentation", "review"],
116
+ description: "Sonnet 4.6 with 1M context"
117
+ },
118
+ "claude-haiku-4-5": {
119
+ id: "claude-haiku-4-5",
120
+ name: "Claude Haiku 4.5",
121
+ provider: "anthropic",
122
+ contextWindow: 2e5,
123
+ maxOutputTokens: 8192,
124
+ inputPricePerMToken: 0.8,
125
+ outputPricePerMToken: 4,
126
+ supportsStreaming: true,
127
+ supportsToolCalling: true,
128
+ supportedRoles: ["testing", "documentation"],
129
+ description: "Fastest for quick answers"
130
+ },
131
+ // ── OpenAI / Codex ─────────────────────────────────────────────────────
132
+ "gpt-5.3-codex": {
133
+ id: "gpt-5.3-codex",
134
+ name: "GPT-5.3 Codex",
135
+ provider: "openai",
136
+ contextWindow: 256e3,
137
+ maxOutputTokens: 32e3,
138
+ inputPricePerMToken: 2.5,
139
+ outputPricePerMToken: 10,
140
+ supportsStreaming: true,
141
+ supportsToolCalling: true,
142
+ supportedRoles: ["planning", "coding", "review", "bugfix"],
143
+ description: "Latest frontier agentic coding model"
144
+ },
145
+ "gpt-5.3-codex-spark": {
146
+ id: "gpt-5.3-codex-spark",
147
+ name: "GPT-5.3 Codex Spark",
148
+ provider: "openai",
149
+ contextWindow: 256e3,
150
+ maxOutputTokens: 16384,
151
+ inputPricePerMToken: 0.15,
152
+ outputPricePerMToken: 0.6,
153
+ supportsStreaming: true,
154
+ supportsToolCalling: true,
155
+ supportedRoles: ["coding", "testing", "documentation"],
156
+ description: "Ultra-fast coding model"
157
+ },
158
+ "gpt-5.2-codex": {
159
+ id: "gpt-5.2-codex",
160
+ name: "GPT-5.2 Codex",
161
+ provider: "openai",
162
+ contextWindow: 256e3,
163
+ maxOutputTokens: 32e3,
164
+ inputPricePerMToken: 2.5,
165
+ outputPricePerMToken: 10,
166
+ supportsStreaming: true,
167
+ supportsToolCalling: true,
168
+ supportedRoles: ["planning", "coding", "review", "bugfix"],
169
+ description: "Frontier agentic coding model"
170
+ },
171
+ "gpt-5.1-codex-max": {
172
+ id: "gpt-5.1-codex-max",
173
+ name: "GPT-5.1 Codex Max",
174
+ provider: "openai",
175
+ contextWindow: 256e3,
176
+ maxOutputTokens: 1e5,
177
+ inputPricePerMToken: 10,
178
+ outputPricePerMToken: 40,
179
+ supportsStreaming: true,
180
+ supportsToolCalling: true,
181
+ supportedRoles: ["planning", "review", "coding"],
182
+ description: "Codex-optimized flagship for deep and fast reasoning"
183
+ },
184
+ "gpt-5.2": {
185
+ id: "gpt-5.2",
186
+ name: "GPT-5.2",
187
+ provider: "openai",
188
+ contextWindow: 256e3,
189
+ maxOutputTokens: 32e3,
190
+ inputPricePerMToken: 2.5,
191
+ outputPricePerMToken: 10,
192
+ supportsStreaming: true,
193
+ supportsToolCalling: true,
194
+ supportedRoles: ["planning", "coding", "review", "bugfix"],
195
+ description: "Latest frontier model with improvements across knowledge, reasoning and coding"
196
+ },
197
+ "gpt-5.1-codex-mini": {
198
+ id: "gpt-5.1-codex-mini",
199
+ name: "GPT-5.1 Codex Mini",
200
+ provider: "openai",
201
+ contextWindow: 256e3,
202
+ maxOutputTokens: 16384,
203
+ inputPricePerMToken: 0.15,
204
+ outputPricePerMToken: 0.6,
205
+ supportsStreaming: true,
206
+ supportsToolCalling: true,
207
+ supportedRoles: ["testing", "documentation", "coding"],
208
+ description: "Optimized for codex. Cheaper, faster, but less capable"
209
+ },
210
+ // ── Google / Gemini ────────────────────────────────────────────────────
211
+ "gemini-3-pro-preview": {
212
+ id: "gemini-3-pro-preview",
213
+ name: "Gemini 3 Pro Preview",
214
+ provider: "google",
215
+ contextWindow: 2e6,
216
+ maxOutputTokens: 65536,
217
+ inputPricePerMToken: 1.25,
218
+ outputPricePerMToken: 10,
219
+ supportsStreaming: true,
220
+ supportsToolCalling: true,
221
+ supportedRoles: ["planning", "review", "coding"],
222
+ description: "Next-gen Gemini Pro preview"
223
+ },
224
+ "gemini-3-flash-preview": {
225
+ id: "gemini-3-flash-preview",
226
+ name: "Gemini 3 Flash Preview",
227
+ provider: "google",
228
+ contextWindow: 2e6,
229
+ maxOutputTokens: 65536,
230
+ inputPricePerMToken: 0.15,
231
+ outputPricePerMToken: 0.6,
232
+ supportsStreaming: true,
233
+ supportsToolCalling: true,
234
+ supportedRoles: ["coding", "testing", "documentation"],
235
+ description: "Next-gen Gemini Flash preview"
236
+ },
237
+ "gemini-2.5-pro": {
238
+ id: "gemini-2.5-pro",
239
+ name: "Gemini 2.5 Pro",
240
+ provider: "google",
241
+ contextWindow: 2e6,
242
+ maxOutputTokens: 65536,
243
+ inputPricePerMToken: 1.25,
244
+ outputPricePerMToken: 10,
245
+ supportsStreaming: true,
246
+ supportsToolCalling: true,
247
+ supportedRoles: ["planning", "review", "coding"],
248
+ description: "Gemini 2.5 Pro stable"
249
+ },
250
+ "gemini-2.5-flash": {
251
+ id: "gemini-2.5-flash",
252
+ name: "Gemini 2.5 Flash",
253
+ provider: "google",
254
+ contextWindow: 2e6,
255
+ maxOutputTokens: 65536,
256
+ inputPricePerMToken: 0.15,
257
+ outputPricePerMToken: 0.6,
258
+ supportsStreaming: true,
259
+ supportsToolCalling: true,
260
+ supportedRoles: ["testing", "documentation", "coding"],
261
+ description: "Gemini 2.5 Flash stable"
262
+ },
263
+ "gemini-2.5-flash-lite": {
264
+ id: "gemini-2.5-flash-lite",
265
+ name: "Gemini 2.5 Flash Lite",
266
+ provider: "google",
267
+ contextWindow: 1e6,
268
+ maxOutputTokens: 32768,
269
+ inputPricePerMToken: 0.075,
270
+ outputPricePerMToken: 0.3,
271
+ supportsStreaming: true,
272
+ supportsToolCalling: true,
273
+ supportedRoles: ["testing", "documentation"],
274
+ description: "Gemini 2.5 Flash Lite"
275
+ },
276
+ // ── Moonshot / Kimi ────────────────────────────────────────────────────
277
+ "kimi-for-coding": {
278
+ id: "kimi-for-coding",
279
+ name: "Kimi Code",
280
+ provider: "kimi",
281
+ contextWindow: 128e3,
282
+ maxOutputTokens: 8192,
283
+ inputPricePerMToken: 0.5,
284
+ outputPricePerMToken: 2,
285
+ supportsStreaming: true,
286
+ supportsToolCalling: true,
287
+ supportedRoles: ["coding", "bugfix"],
288
+ description: "Kimi for coding"
289
+ }
290
+ };
291
+ var PROVIDER_MODEL_ORDER = {
292
+ anthropic: [
293
+ { id: "claude-opus-4-6", label: "Default (recommended)", description: "Opus 4.6 \xB7 Most capable for complex work", isDefault: true },
294
+ { id: "claude-opus-4-6-1m", label: "Opus (1M context)", description: "Opus 4.6 with 1M context \xB7 Billed as extra usage \xB7 $10/$37.50 per Mtok" },
295
+ { id: "claude-sonnet-4-6", label: "Sonnet", description: "Sonnet 4.6 \xB7 Best for everyday tasks" },
296
+ { id: "claude-sonnet-4-6-1m", label: "Sonnet (1M context)", description: "Sonnet 4.6 with 1M context \xB7 Billed as extra usage \xB7 $6/$22.50 per Mtok" },
297
+ { id: "claude-haiku-4-5", label: "Haiku", description: "Haiku 4.5 \xB7 Fastest for quick answers" }
298
+ ],
299
+ openai: [
300
+ { id: "gpt-5.3-codex", label: "gpt-5.3-codex", description: "Latest frontier agentic coding model", isDefault: true },
301
+ { id: "gpt-5.3-codex-spark", label: "gpt-5.3-codex-spark", description: "Ultra-fast coding model" },
302
+ { id: "gpt-5.2-codex", label: "gpt-5.2-codex", description: "Frontier agentic coding model" },
303
+ { id: "gpt-5.1-codex-max", label: "gpt-5.1-codex-max", description: "Codex-optimized flagship for deep and fast reasoning" },
304
+ { id: "gpt-5.2", label: "gpt-5.2", description: "Latest frontier model with improvements across knowledge, reasoning and coding" },
305
+ { id: "gpt-5.1-codex-mini", label: "gpt-5.1-codex-mini", description: "Optimized for codex. Cheaper, faster, but less capable" }
306
+ ],
307
+ google: [
308
+ { id: "gemini-3-pro-preview", label: "gemini-3-pro-preview", description: "Next-gen Gemini Pro preview", isDefault: true },
309
+ { id: "gemini-3-flash-preview", label: "gemini-3-flash-preview", description: "Next-gen Gemini Flash preview" },
310
+ { id: "gemini-2.5-pro", label: "gemini-2.5-pro", description: "Gemini 2.5 Pro stable" },
311
+ { id: "gemini-2.5-flash", label: "gemini-2.5-flash", description: "Gemini 2.5 Flash stable" },
312
+ { id: "gemini-2.5-flash-lite", label: "gemini-2.5-flash-lite", description: "Gemini 2.5 Flash Lite" }
313
+ ],
314
+ kimi: [
315
+ { id: "kimi-for-coding", label: "kimi-for-coding (Kimi Code)", description: "Kimi for coding", isDefault: true }
316
+ ]
317
+ };
318
+ var DEFAULT_MODEL_ID = "claude-sonnet-4-6";
319
+
320
+ export { DEFAULT_MODEL_ID, PROVIDER_MODEL_ORDER, SUPPORTED_MODELS, getThinkingConfigForModel };
321
+ //# sourceMappingURL=chunk-HCIHOHLX.js.map
322
+ //# sourceMappingURL=chunk-HCIHOHLX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/model.ts"],"names":[],"mappings":"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","file":"chunk-HCIHOHLX.js","sourcesContent":["/**\n * Model-related types per PRD sections 7.1-7.5\n */\n\n// ── Provider Identifiers ─────────────────────────────────────────────────\n\nexport type ProviderName = \"anthropic\" | \"openai\" | \"google\" | \"kimi\" | \"ollama\";\n\n// ── Model Roles (PRD section 7.2) ───────────────────────────────────────\n\nexport type ModelRole =\n | \"planning\"\n | \"coding\"\n | \"review\"\n | \"testing\"\n | \"bugfix\"\n | \"documentation\";\n\n// ── Provider-specific Thinking / Reasoning Configuration ─────────────────\n\nexport interface IThinkingOption {\n readonly value: string;\n readonly label: string;\n readonly description: string;\n}\n\nexport interface IProviderThinkingConfig {\n readonly method: string;\n readonly options: readonly IThinkingOption[];\n readonly defaultValue: string;\n}\n\n/**\n * Provider-specific thinking configurations.\n *\n * Anthropic → Extended Thinking (budget_tokens: 1024–model max)\n * OpenAI → Reasoning Effort (low | medium | high)\n * Google 2.5 → Thinking Budget (0–24576, -1 = dynamic)\n * Google 3 → Thinking Level (minimal | low | medium | high)\n * Kimi → Thinking Mode (enabled | disabled)\n */\nexport const PROVIDER_THINKING_CONFIGS: Readonly<Record<string, IProviderThinkingConfig>> = {\n anthropic: {\n method: \"extended_thinking\",\n options: [\n { value: \"off\", label: \"Off\", description: \"No extended thinking\" },\n { value: \"low\", label: \"Low (1K tokens)\", description: \"budget_tokens: 1024\" },\n { value: \"medium\", label: \"Medium (8K tokens)\", description: \"budget_tokens: 8192\" },\n { value: \"high\", label: \"High (16K tokens)\", description: \"budget_tokens: 16384\" },\n { value: \"max\", label: \"Max (model limit)\", description: \"budget_tokens: max_output_tokens\" },\n ],\n defaultValue: \"medium\",\n },\n openai: {\n method: \"reasoning_effort\",\n options: [\n { value: \"low\", label: \"Low\", description: \"Fewer reasoning tokens, faster\" },\n { value: \"medium\", label: \"Medium\", description: \"Balanced reasoning (default)\" },\n { value: \"high\", label: \"High\", description: \"Thorough reasoning, more tokens\" },\n ],\n defaultValue: \"medium\",\n },\n \"google:gemini-2.5\": {\n method: \"thinking_budget\",\n options: [\n { value: \"off\", label: \"Off\", description: \"Disable thinking (budget: 0)\" },\n { value: \"dynamic\", label: \"Dynamic\", description: \"Auto-adjust based on complexity (budget: -1)\" },\n { value: \"low\", label: \"Low (4K tokens)\", description: \"thinkingBudget: 4096\" },\n { value: \"medium\", label: \"Medium (12K tokens)\", description: \"thinkingBudget: 12288\" },\n { value: \"high\", label: \"High (24K tokens)\", description: \"thinkingBudget: 24576\" },\n ],\n defaultValue: \"dynamic\",\n },\n \"google:gemini-3\": {\n method: \"thinking_level\",\n options: [\n { value: \"minimal\", label: \"Minimal\", description: \"Minimal thinking\" },\n { value: \"low\", label: \"Low\", description: \"Light thinking\" },\n { value: \"medium\", label: \"Medium\", description: \"Balanced thinking\" },\n { value: \"high\", label: \"High\", description: \"Deep thinking\" },\n ],\n defaultValue: \"medium\",\n },\n kimi: {\n method: \"thinking_mode\",\n options: [\n { value: \"enabled\", label: \"Enabled\", description: \"Include reasoning traces\" },\n { value: \"disabled\", label: \"Disabled\", description: \"Direct responses only\" },\n ],\n defaultValue: \"enabled\",\n },\n};\n\n/**\n * Look up the thinking configuration for a specific model.\n * Handles Google's model-family split (Gemini 2.5 vs Gemini 3).\n */\nexport function getThinkingConfigForModel(modelId: string): IProviderThinkingConfig | undefined {\n const modelInfo = SUPPORTED_MODELS[modelId];\n if (modelInfo === undefined) return undefined;\n\n if (modelInfo.provider === \"google\") {\n if (modelId.startsWith(\"gemini-3\")) {\n return PROVIDER_THINKING_CONFIGS[\"google:gemini-3\"];\n }\n return PROVIDER_THINKING_CONFIGS[\"google:gemini-2.5\"];\n }\n\n return PROVIDER_THINKING_CONFIGS[modelInfo.provider];\n}\n\n// ── Model Information ────────────────────────────────────────────────────\n\nexport interface IModelInfo {\n readonly id: string;\n readonly name: string;\n readonly provider: ProviderName;\n readonly contextWindow: number;\n readonly maxOutputTokens: number;\n readonly inputPricePerMToken: number;\n readonly outputPricePerMToken: number;\n readonly supportsStreaming: boolean;\n readonly supportsToolCalling: boolean;\n readonly supportedRoles: readonly ModelRole[];\n readonly description?: string | undefined;\n}\n\n// ── Model Display Entry (for /model selection UI) ────────────────────────\n\nexport interface IModelDisplayEntry {\n readonly id: string;\n readonly label: string;\n readonly description: string;\n readonly isDefault?: boolean | undefined;\n}\n\n// ── Role Configuration (PRD section 7.2) ─────────────────────────────────\n\nexport interface IRoleConfig {\n readonly primary: string;\n readonly fallback: readonly string[];\n}\n\n// ── Model Router Resolution (PRD section 7.2) ────────────────────────────\n\nexport type ModelResolutionSource =\n | \"user_override\"\n | \"role_config\"\n | \"fallback_chain\"\n | \"system_default\";\n\nexport interface IModelResolution {\n readonly modelId: string;\n readonly provider: ProviderName;\n readonly source: ModelResolutionSource;\n readonly role?: ModelRole | undefined;\n}\n\n// ── Token Usage ──────────────────────────────────────────────────────────\n\nexport interface ITokenUsage {\n readonly inputTokens: number;\n readonly outputTokens: number;\n readonly totalTokens: number;\n readonly costUsd: number;\n}\n\n// ── Supported Models Registry (PRD section 7.3) ─────────────────────────\n\nexport const SUPPORTED_MODELS: Record<string, IModelInfo> = {\n // ── Anthropic / Claude ─────────────────────────────────────────────────\n \"claude-opus-4-6\": {\n id: \"claude-opus-4-6\",\n name: \"Claude Opus 4.6\",\n provider: \"anthropic\",\n contextWindow: 200_000,\n maxOutputTokens: 32_000,\n inputPricePerMToken: 15,\n outputPricePerMToken: 75,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"planning\", \"review\", \"bugfix\", \"coding\"],\n description: \"Most capable for complex work\",\n },\n \"claude-opus-4-6-1m\": {\n id: \"claude-opus-4-6-1m\",\n name: \"Claude Opus 4.6 (1M context)\",\n provider: \"anthropic\",\n contextWindow: 1_000_000,\n maxOutputTokens: 32_000,\n inputPricePerMToken: 10,\n outputPricePerMToken: 37.5,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"planning\", \"review\", \"bugfix\", \"coding\"],\n description: \"Opus 4.6 with 1M context\",\n },\n \"claude-sonnet-4-6\": {\n id: \"claude-sonnet-4-6\",\n name: \"Claude Sonnet 4.6\",\n provider: \"anthropic\",\n contextWindow: 200_000,\n maxOutputTokens: 16_000,\n inputPricePerMToken: 3,\n outputPricePerMToken: 15,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"coding\", \"bugfix\", \"documentation\", \"review\"],\n description: \"Best for everyday tasks\",\n },\n \"claude-sonnet-4-6-1m\": {\n id: \"claude-sonnet-4-6-1m\",\n name: \"Claude Sonnet 4.6 (1M context)\",\n provider: \"anthropic\",\n contextWindow: 1_000_000,\n maxOutputTokens: 16_000,\n inputPricePerMToken: 6,\n outputPricePerMToken: 22.5,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"coding\", \"bugfix\", \"documentation\", \"review\"],\n description: \"Sonnet 4.6 with 1M context\",\n },\n \"claude-haiku-4-5\": {\n id: \"claude-haiku-4-5\",\n name: \"Claude Haiku 4.5\",\n provider: \"anthropic\",\n contextWindow: 200_000,\n maxOutputTokens: 8_192,\n inputPricePerMToken: 0.8,\n outputPricePerMToken: 4,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"testing\", \"documentation\"],\n description: \"Fastest for quick answers\",\n },\n\n // ── OpenAI / Codex ─────────────────────────────────────────────────────\n \"gpt-5.3-codex\": {\n id: \"gpt-5.3-codex\",\n name: \"GPT-5.3 Codex\",\n provider: \"openai\",\n contextWindow: 256_000,\n maxOutputTokens: 32_000,\n inputPricePerMToken: 2.5,\n outputPricePerMToken: 10,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"planning\", \"coding\", \"review\", \"bugfix\"],\n description: \"Latest frontier agentic coding model\",\n },\n \"gpt-5.3-codex-spark\": {\n id: \"gpt-5.3-codex-spark\",\n name: \"GPT-5.3 Codex Spark\",\n provider: \"openai\",\n contextWindow: 256_000,\n maxOutputTokens: 16_384,\n inputPricePerMToken: 0.15,\n outputPricePerMToken: 0.6,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"coding\", \"testing\", \"documentation\"],\n description: \"Ultra-fast coding model\",\n },\n \"gpt-5.2-codex\": {\n id: \"gpt-5.2-codex\",\n name: \"GPT-5.2 Codex\",\n provider: \"openai\",\n contextWindow: 256_000,\n maxOutputTokens: 32_000,\n inputPricePerMToken: 2.5,\n outputPricePerMToken: 10,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"planning\", \"coding\", \"review\", \"bugfix\"],\n description: \"Frontier agentic coding model\",\n },\n \"gpt-5.1-codex-max\": {\n id: \"gpt-5.1-codex-max\",\n name: \"GPT-5.1 Codex Max\",\n provider: \"openai\",\n contextWindow: 256_000,\n maxOutputTokens: 100_000,\n inputPricePerMToken: 10,\n outputPricePerMToken: 40,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"planning\", \"review\", \"coding\"],\n description: \"Codex-optimized flagship for deep and fast reasoning\",\n },\n \"gpt-5.2\": {\n id: \"gpt-5.2\",\n name: \"GPT-5.2\",\n provider: \"openai\",\n contextWindow: 256_000,\n maxOutputTokens: 32_000,\n inputPricePerMToken: 2.5,\n outputPricePerMToken: 10,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"planning\", \"coding\", \"review\", \"bugfix\"],\n description: \"Latest frontier model with improvements across knowledge, reasoning and coding\",\n },\n \"gpt-5.1-codex-mini\": {\n id: \"gpt-5.1-codex-mini\",\n name: \"GPT-5.1 Codex Mini\",\n provider: \"openai\",\n contextWindow: 256_000,\n maxOutputTokens: 16_384,\n inputPricePerMToken: 0.15,\n outputPricePerMToken: 0.6,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"testing\", \"documentation\", \"coding\"],\n description: \"Optimized for codex. Cheaper, faster, but less capable\",\n },\n\n // ── Google / Gemini ────────────────────────────────────────────────────\n \"gemini-3-pro-preview\": {\n id: \"gemini-3-pro-preview\",\n name: \"Gemini 3 Pro Preview\",\n provider: \"google\",\n contextWindow: 2_000_000,\n maxOutputTokens: 65_536,\n inputPricePerMToken: 1.25,\n outputPricePerMToken: 10,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"planning\", \"review\", \"coding\"],\n description: \"Next-gen Gemini Pro preview\",\n },\n \"gemini-3-flash-preview\": {\n id: \"gemini-3-flash-preview\",\n name: \"Gemini 3 Flash Preview\",\n provider: \"google\",\n contextWindow: 2_000_000,\n maxOutputTokens: 65_536,\n inputPricePerMToken: 0.15,\n outputPricePerMToken: 0.6,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"coding\", \"testing\", \"documentation\"],\n description: \"Next-gen Gemini Flash preview\",\n },\n \"gemini-2.5-pro\": {\n id: \"gemini-2.5-pro\",\n name: \"Gemini 2.5 Pro\",\n provider: \"google\",\n contextWindow: 2_000_000,\n maxOutputTokens: 65_536,\n inputPricePerMToken: 1.25,\n outputPricePerMToken: 10,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"planning\", \"review\", \"coding\"],\n description: \"Gemini 2.5 Pro stable\",\n },\n \"gemini-2.5-flash\": {\n id: \"gemini-2.5-flash\",\n name: \"Gemini 2.5 Flash\",\n provider: \"google\",\n contextWindow: 2_000_000,\n maxOutputTokens: 65_536,\n inputPricePerMToken: 0.15,\n outputPricePerMToken: 0.6,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"testing\", \"documentation\", \"coding\"],\n description: \"Gemini 2.5 Flash stable\",\n },\n \"gemini-2.5-flash-lite\": {\n id: \"gemini-2.5-flash-lite\",\n name: \"Gemini 2.5 Flash Lite\",\n provider: \"google\",\n contextWindow: 1_000_000,\n maxOutputTokens: 32_768,\n inputPricePerMToken: 0.075,\n outputPricePerMToken: 0.3,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"testing\", \"documentation\"],\n description: \"Gemini 2.5 Flash Lite\",\n },\n\n // ── Moonshot / Kimi ────────────────────────────────────────────────────\n \"kimi-for-coding\": {\n id: \"kimi-for-coding\",\n name: \"Kimi Code\",\n provider: \"kimi\",\n contextWindow: 128_000,\n maxOutputTokens: 8_192,\n inputPricePerMToken: 0.5,\n outputPricePerMToken: 2,\n supportsStreaming: true,\n supportsToolCalling: true,\n supportedRoles: [\"coding\", \"bugfix\"],\n description: \"Kimi for coding\",\n },\n};\n\n// ── Ordered Model Lists Per Provider (for /model selection UI) ───────────\n\nexport const PROVIDER_MODEL_ORDER: Readonly<Record<string, readonly IModelDisplayEntry[]>> = {\n anthropic: [\n { id: \"claude-opus-4-6\", label: \"Default (recommended)\", description: \"Opus 4.6 · Most capable for complex work\", isDefault: true },\n { id: \"claude-opus-4-6-1m\", label: \"Opus (1M context)\", description: \"Opus 4.6 with 1M context · Billed as extra usage · $10/$37.50 per Mtok\" },\n { id: \"claude-sonnet-4-6\", label: \"Sonnet\", description: \"Sonnet 4.6 · Best for everyday tasks\" },\n { id: \"claude-sonnet-4-6-1m\", label: \"Sonnet (1M context)\", description: \"Sonnet 4.6 with 1M context · Billed as extra usage · $6/$22.50 per Mtok\" },\n { id: \"claude-haiku-4-5\", label: \"Haiku\", description: \"Haiku 4.5 · Fastest for quick answers\" },\n ],\n openai: [\n { id: \"gpt-5.3-codex\", label: \"gpt-5.3-codex\", description: \"Latest frontier agentic coding model\", isDefault: true },\n { id: \"gpt-5.3-codex-spark\", label: \"gpt-5.3-codex-spark\", description: \"Ultra-fast coding model\" },\n { id: \"gpt-5.2-codex\", label: \"gpt-5.2-codex\", description: \"Frontier agentic coding model\" },\n { id: \"gpt-5.1-codex-max\", label: \"gpt-5.1-codex-max\", description: \"Codex-optimized flagship for deep and fast reasoning\" },\n { id: \"gpt-5.2\", label: \"gpt-5.2\", description: \"Latest frontier model with improvements across knowledge, reasoning and coding\" },\n { id: \"gpt-5.1-codex-mini\", label: \"gpt-5.1-codex-mini\", description: \"Optimized for codex. Cheaper, faster, but less capable\" },\n ],\n google: [\n { id: \"gemini-3-pro-preview\", label: \"gemini-3-pro-preview\", description: \"Next-gen Gemini Pro preview\", isDefault: true },\n { id: \"gemini-3-flash-preview\", label: \"gemini-3-flash-preview\", description: \"Next-gen Gemini Flash preview\" },\n { id: \"gemini-2.5-pro\", label: \"gemini-2.5-pro\", description: \"Gemini 2.5 Pro stable\" },\n { id: \"gemini-2.5-flash\", label: \"gemini-2.5-flash\", description: \"Gemini 2.5 Flash stable\" },\n { id: \"gemini-2.5-flash-lite\", label: \"gemini-2.5-flash-lite\", description: \"Gemini 2.5 Flash Lite\" },\n ],\n kimi: [\n { id: \"kimi-for-coding\", label: \"kimi-for-coding (Kimi Code)\", description: \"Kimi for coding\", isDefault: true },\n ],\n};\n\nexport const DEFAULT_MODEL_ID = \"claude-sonnet-4-6\";\n"]}