(id: string)
| 231 | * overrides this. |
| 232 | */ |
| 233 | export function guessContextWindow(id: string): number { |
| 234 | const lower = id.toLowerCase(); |
| 235 | if (/gemma-?4/.test(lower)) return 131072; // supports 256k; 128k is RAM-safe |
| 236 | if (/qwen3-coder|coder-next/.test(lower)) return 131072; // supports 256k |
| 237 | if (/qwen3-235b|qwen3.*235/.test(lower)) return 131072; // supports 256k |
| 238 | if (/qwen3/.test(lower)) return 65536; |
| 239 | if (/nemotron/.test(lower)) return 131072; // supports 1M; 128k is RAM-safe |
| 240 | if (/llama-?4/.test(lower)) return 131072; |
| 241 | if (/qwen2\.5/.test(lower)) return 32768; |
| 242 | if (/llama-?3\.[12]/.test(lower)) return 131072; |
| 243 | return 32768; // safe fallback |
| 244 | } |
| 245 | |
| 246 | /** |
| 247 | * Query LM Studio's NATIVE REST API (`/api/v0/models`) for the real per-model |
no outgoing calls
no test coverage detected