Migrate ocaml-typesense to OpenAPI-generated library
Replace the handwritten Typesense bindings with an OpenAPI-generated
library following the pattern established in ocaml-immich and
ocaml-peertube. This provides full Typesense API v30.0 coverage.
Changes:
- Add typesense-openapi.yaml spec from upstream
- Generate typesense.ml/mli using openapi-gen
- Create typesense.auth library with:
- session.ml: Profile-based API key storage
- client.ml: Wrapper with JSONL batch import/export
- error.ml: Typesense error handling
- cmd.ml: Cmdliner integration for auth commands
- Create typesense-cli with commands for:
- auth: login, logout, status, profile management
- collections: list, get, delete
- documents: get, delete, import, export
- search: full-text search with filters
- health: server health check
- Delete old handwritten library (lib/typesense/)
- Update dune-project with new dependencies
The bushel consumer does not depend on the old typesense library,
so there are no backwards compatibility concerns.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>