| 488 | } |
| 489 | |
| 490 | function getModeMeta(mode: string) { |
| 491 | switch (mode) { |
| 492 | case "best": |
| 493 | return { |
| 494 | description: "highest quality", |
| 495 | summary: "Biases toward stronger answers and is the least price-sensitive.", |
| 496 | }; |
| 497 | case "fast": |
| 498 | return { |
| 499 | description: "lighter and faster", |
| 500 | summary: "Biases toward speed and cost-efficiency while staying capable.", |
| 501 | }; |
| 502 | default: |
| 503 | return { |
| 504 | description: "balanced default", |
| 505 | summary: "Balances quality, speed, and cost across the discovered pool.", |
| 506 | }; |
| 507 | } |
| 508 | } |
| 509 | |
| 510 | function draftKey(mode: ModeName, tier: TierName): string { |
| 511 | return `${mode}:${tier}`; |