Immich bindings and CLI in OCaml

Replace hand-written PeerTube library with OpenAPI-generated code

- Add YAML support to openapi-gen CLI using yamlt library
- Fix recursive schema handling (self-referential types use Jsont.json)
- Fix topological sort to ignore self-dependencies
- Fix newline before @param in generated doc comments
- Generate PeerTube library from official OpenAPI spec (v8.0.0)
- Add peertube_auth library with OAuth2 session management
- Add peertube CLI with auth commands (login, logout, status, profiles)
- Remove old hand-written PeerTube library modules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

+24 -12
+12 -6
immich.ml
··· 1333 1333 1334 1334 (** Get time buckets 1335 1335 1336 - Retrieve a list of all minimal time buckets. @param album_id Filter assets belonging to a specific album 1336 + Retrieve a list of all minimal time buckets. 1337 + @param album_id Filter assets belonging to a specific album 1337 1338 @param is_favorite Filter by favorite status (true for favorites only, false for non-favorites only) 1338 1339 @param is_trashed Filter by trash status (true for trashed assets only, false for non-trashed only) 1339 1340 @param order Sort order for assets within time buckets (ASC for oldest first, DESC for newest first) ··· 8182 8183 8183 8184 (** Retrieve memories statistics 8184 8185 8185 - Retrieve statistics about memories, such as total count and other relevant metrics. @param size Number of memories to return 8186 + Retrieve statistics about memories, such as total count and other relevant metrics. 8187 + @param size Number of memories to return 8186 8188 *) 8187 8189 let memories_statistics ?for_ ?is_saved ?is_trashed ?order ?size ?type_ client () = 8188 8190 let op_name = "memories_statistics" in ··· 11428 11430 11429 11431 (** Get time bucket 11430 11432 11431 - Retrieve a string of all asset ids in a given time bucket. @param album_id Filter assets belonging to a specific album 11433 + Retrieve a string of all asset ids in a given time bucket. 11434 + @param album_id Filter assets belonging to a specific album 11432 11435 @param is_favorite Filter by favorite status (true for favorites only, false for non-favorites only) 11433 11436 @param is_trashed Filter by trash status (true for trashed assets only, false for non-trashed only) 11434 11437 @param order Sort order for assets within time buckets (ASC for oldest first, DESC for newest first) ··· 13129 13132 13130 13133 (** Retrieve memories 13131 13134 13132 - Retrieve a list of memories. Memories are sorted descending by creation date by default, although they can also be sorted in ascending order, or randomly. @param size Number of memories to return 13135 + Retrieve a list of memories. Memories are sorted descending by creation date by default, although they can also be sorted in ascending order, or randomly. 13136 + @param size Number of memories to return 13133 13137 *) 13134 13138 let search_memories ?for_ ?is_saved ?is_trashed ?order ?size ?type_ client () = 13135 13139 let op_name = "search_memories" in ··· 13832 13836 13833 13837 (** Get all people 13834 13838 13835 - Retrieve a list of all people. @param page Page number for pagination 13839 + Retrieve a list of all people. 13840 + @param page Page number for pagination 13836 13841 @param size Number of items per page 13837 13842 *) 13838 13843 let get_all_people ?closest_asset_id ?closest_person_id ?page ?size ?with_hidden client () = ··· 14870 14875 14871 14876 (** List all albums 14872 14877 14873 - Retrieve a list of albums available to the authenticated user. @param asset_id Only returns albums that contain the asset 14878 + Retrieve a list of albums available to the authenticated user. 14879 + @param asset_id Only returns albums that contain the asset 14874 14880 Ignores the shared parameter 14875 14881 undefined: get all albums 14876 14882 *)
+12 -6
immich.mli
··· 711 711 712 712 (** Get time buckets 713 713 714 - Retrieve a list of all minimal time buckets. @param album_id Filter assets belonging to a specific album 714 + Retrieve a list of all minimal time buckets. 715 + @param album_id Filter assets belonging to a specific album 715 716 @param is_favorite Filter by favorite status (true for favorites only, false for non-favorites only) 716 717 @param is_trashed Filter by trash status (true for trashed assets only, false for non-trashed only) 717 718 @param order Sort order for assets within time buckets (ASC for oldest first, DESC for newest first) ··· 4400 4401 4401 4402 (** Retrieve memories statistics 4402 4403 4403 - Retrieve statistics about memories, such as total count and other relevant metrics. @param size Number of memories to return 4404 + Retrieve statistics about memories, such as total count and other relevant metrics. 4405 + @param size Number of memories to return 4404 4406 *) 4405 4407 val memories_statistics : ?for_:string -> ?is_saved:string -> ?is_trashed:string -> ?order:string -> ?size:string -> ?type_:string -> t -> unit -> ResponseDto.t 4406 4408 end ··· 6047 6049 6048 6050 (** Get time bucket 6049 6051 6050 - Retrieve a string of all asset ids in a given time bucket. @param album_id Filter assets belonging to a specific album 6052 + Retrieve a string of all asset ids in a given time bucket. 6053 + @param album_id Filter assets belonging to a specific album 6051 6054 @param is_favorite Filter by favorite status (true for favorites only, false for non-favorites only) 6052 6055 @param is_trashed Filter by trash status (true for trashed assets only, false for non-trashed only) 6053 6056 @param order Sort order for assets within time buckets (ASC for oldest first, DESC for newest first) ··· 6917 6920 6918 6921 (** Retrieve memories 6919 6922 6920 - Retrieve a list of memories. Memories are sorted descending by creation date by default, although they can also be sorted in ascending order, or randomly. @param size Number of memories to return 6923 + Retrieve a list of memories. Memories are sorted descending by creation date by default, although they can also be sorted in ascending order, or randomly. 6924 + @param size Number of memories to return 6921 6925 *) 6922 6926 val search_memories : ?for_:string -> ?is_saved:string -> ?is_trashed:string -> ?order:string -> ?size:string -> ?type_:string -> t -> unit -> ResponseDto.t 6923 6927 ··· 7251 7255 7252 7256 (** Get all people 7253 7257 7254 - Retrieve a list of all people. @param page Page number for pagination 7258 + Retrieve a list of all people. 7259 + @param page Page number for pagination 7255 7260 @param size Number of items per page 7256 7261 *) 7257 7262 val get_all_people : ?closest_asset_id:string -> ?closest_person_id:string -> ?page:string -> ?size:string -> ?with_hidden:string -> t -> unit -> ResponseDto.t ··· 7752 7757 7753 7758 (** List all albums 7754 7759 7755 - Retrieve a list of albums available to the authenticated user. @param asset_id Only returns albums that contain the asset 7760 + Retrieve a list of albums available to the authenticated user. 7761 + @param asset_id Only returns albums that contain the asset 7756 7762 Ignores the shared parameter 7757 7763 undefined: get all albums 7758 7764 *)