My agentic slop goes here. Not intended for anyone else!
1type t = [
2 | `Sonnet_4_5
3 | `Sonnet_4
4 | `Sonnet_3_5
5 | `Opus_4
6 | `Haiku_4
7 | `Custom of string
8]
9
10let to_string = function
11 | `Sonnet_4_5 -> "claude-sonnet-4-5"
12 | `Sonnet_4 -> "claude-sonnet-4"
13 | `Sonnet_3_5 -> "claude-sonnet-3-5"
14 | `Opus_4 -> "claude-opus-4"
15 | `Haiku_4 -> "claude-haiku-4"
16 | `Custom s -> s
17
18let of_string = function
19 | "claude-sonnet-4-5" -> `Sonnet_4_5
20 | "claude-sonnet-4" -> `Sonnet_4
21 | "claude-sonnet-3-5" -> `Sonnet_3_5
22 | "claude-opus-4" -> `Opus_4
23 | "claude-haiku-4" -> `Haiku_4
24 | s -> `Custom s
25
26let pp fmt t =
27 Fmt.string fmt (to_string t)