OCaml Claude SDK using Eio and Jsont
1(*---------------------------------------------------------------------------
2 Copyright (c) 2025 Anil Madhavapeddy <anil@recoil.org>. All rights reserved.
3 SPDX-License-Identifier: ISC
4 ---------------------------------------------------------------------------*)
5
6type t =
7 [ `Sonnet_4_5
8 | `Sonnet_4
9 | `Sonnet_3_5
10 | `Opus_4_5
11 | `Opus_4_1
12 | `Opus_4
13 | `Haiku_4
14 | `Custom of string ]
15
16let to_string = function
17 | `Sonnet_4_5 -> "claude-sonnet-4-5"
18 | `Sonnet_4 -> "claude-sonnet-4"
19 | `Sonnet_3_5 -> "claude-sonnet-3-5"
20 | `Opus_4_5 -> "claude-opus-4-5"
21 | `Opus_4_1 -> "claude-opus-4-1"
22 | `Opus_4 -> "claude-opus-4"
23 | `Haiku_4 -> "claude-haiku-4"
24 | `Custom s -> s
25
26let of_string = function
27 | "claude-sonnet-4-5" -> `Sonnet_4_5
28 | "claude-sonnet-4" -> `Sonnet_4
29 | "claude-sonnet-3-5" -> `Sonnet_3_5
30 | "claude-opus-4-5" -> `Opus_4_5
31 | "claude-opus-4-1" -> `Opus_4_1
32 | "claude-opus-4" -> `Opus_4
33 | "claude-haiku-4" -> `Haiku_4
34 | s -> `Custom s