+1
claudeio/.gitignore
+1
claudeio/.gitignore
···
+1
claudeio/CLAUDE.md
+1
claudeio/CLAUDE.md
···+I want a high quality OCaml Eio library that wraps `claude` Claude Code CLI invocations in an Eio style library. It should use the JSON input and output streaming modes of the CLI, and expose these as JSON messages using ezjsonm and good Eio abstractions (like using Buf_read and Seq)
+27
claudeio/claude.opam
+27
claudeio/claude.opam
···
+14
claudeio/dune-project
+14
claudeio/dune-project
···+(description "An Eio-based OCaml library for interacting with the Claude CLI using JSON streaming")
+6
claudeio/lib/claude.ml
+6
claudeio/lib/claude.ml
+6
claudeio/lib/claude.mli
+6
claudeio/lib/claude.mli
+153
claudeio/lib/client.ml
+153
claudeio/lib/client.ml
···
+19
claudeio/lib/client.mli
+19
claudeio/lib/client.mli
···
+4
claudeio/lib/dune
+4
claudeio/lib/dune
+109
claudeio/lib/message.ml
+109
claudeio/lib/message.ml
···+total_cost_usd = (try Some (find json ["total_cost_usd"] |> get_float) with Not_found -> None);+raise (Message_parse_error (Printf.sprintf "Failed to parse message: %s" (Printexc.to_string e), json))
+7
claudeio/lib/message.mli
+7
claudeio/lib/message.mli
+25
claudeio/lib/options.ml
+25
claudeio/lib/options.ml
···
+14
claudeio/lib/options.mli
+14
claudeio/lib/options.mli
···
+59
claudeio/lib/permissions.ml
+59
claudeio/lib/permissions.ml
···
+37
claudeio/lib/permissions.mli
+37
claudeio/lib/permissions.mli
···
+154
claudeio/lib/transport.ml
+154
claudeio/lib/transport.ml
···+raise (CLI_not_found (Printf.sprintf "Failed to spawn claude CLI: %s" (Printexc.to_string exn)))+raise (Connection_error (Printf.sprintf "Failed to send message: %s" (Printexc.to_string exn)))+raise (Connection_error (Printf.sprintf "Failed to receive message: %s" (Printexc.to_string exn)))
+17
claudeio/lib/transport.mli
+17
claudeio/lib/transport.mli
···
+62
claudeio/lib/types.ml
+62
claudeio/lib/types.ml
···
+62
claudeio/lib/types.mli
+62
claudeio/lib/types.mli
···
+65
claudeio/test/camel_jokes.ml
+65
claudeio/test/camel_jokes.ml
···