OCaml Claude SDK using Eio and Jsont
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 50 lines 1.5 kB view raw
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_6 8 | `Sonnet_4_5 9 | `Sonnet_4 10 | `Sonnet_3_5 11 | `Opus_4_6 12 | `Opus_4_5 13 | `Opus_4_1 14 | `Opus_4 15 | `Haiku_4_5 16 | `Haiku_4 17 | `Custom of string ] 18 19let to_string = function 20 | `Sonnet_4_6 -> "claude-sonnet-4-6" 21 | `Sonnet_4_5 -> "claude-sonnet-4-5" 22 | `Sonnet_4 -> "claude-sonnet-4" 23 | `Sonnet_3_5 -> "claude-sonnet-3-5" 24 | `Opus_4_6 -> "claude-opus-4-6" 25 | `Opus_4_5 -> "claude-opus-4-5" 26 | `Opus_4_1 -> "claude-opus-4-1" 27 | `Opus_4 -> "claude-opus-4" 28 | `Haiku_4_5 -> "claude-haiku-4-5" 29 | `Haiku_4 -> "claude-haiku-4" 30 | `Custom s -> s 31 32let pp ppf t = Format.pp_print_string ppf (to_string t) 33 34let of_string = function 35 | "claude-sonnet-4-6" | "sonnet" -> `Sonnet_4_6 36 | "claude-sonnet-4-5" -> `Sonnet_4_5 37 | "claude-sonnet-4" -> `Sonnet_4 38 | "claude-sonnet-3-5" -> `Sonnet_3_5 39 | "claude-opus-4-6" | "opus" -> `Opus_4_6 40 | "claude-opus-4-5" -> `Opus_4_5 41 | "claude-opus-4-1" -> `Opus_4_1 42 | "claude-opus-4" -> `Opus_4 43 | "claude-haiku-4-5" | "haiku" -> `Haiku_4_5 44 | "claude-haiku-4" -> `Haiku_4 45 | s -> `Custom s 46 47let json : t Json.codec = 48 let enc = to_string in 49 let open Json.Codec in 50 map ~kind:"Model" ~dec:of_string ~enc string