···1313module Com : sig
1414 module Atproto : sig
1515 module Repo : sig
1616- module Defs : sig
1616+ module StrongRef : sig
17171818-type commit_meta = {
1818+type main = {
1919 cid : string;
2020- rev : string;
2020+ uri : string;
2121}
22222323-(** Jsont codec for {!type:commit_meta}. *)
2424-val commit_meta_jsont : commit_meta Jsont.t
2323+(** Jsont codec for {!type:main}. *)
2424+val main_jsont : main Jsont.t
25252626 end
2727- module GetRecord : sig
2828-(** Get a single record from a repository. Does not require auth. *)
2929-3030-(** Query/procedure parameters. *)
3131-type params = {
3232- cid : string option; (** The CID of the version of the record. If not specified, then return the most recent version. *)
3333- collection : string; (** The NSID of the record collection. *)
3434- repo : string; (** The handle or DID of the repo. *)
3535- rkey : string; (** The Record Key. *)
3636-}
3737-3838-(** Jsont codec for {!type:params}. *)
3939-val params_jsont : params Jsont.t
4040-2727+ module Defs : sig
41284242-type output = {
4343- cid : string option;
4444- uri : string;
4545- value : Jsont.json;
2929+type commit_meta = {
3030+ cid : string;
3131+ rev : string;
4632}
47334848-(** Jsont codec for {!type:output}. *)
4949-val output_jsont : output Jsont.t
3434+(** Jsont codec for {!type:commit_meta}. *)
3535+val commit_meta_jsont : commit_meta Jsont.t
50365137 end
5238 module ListRecords : sig
···8470val output_jsont : output Jsont.t
85718672 end
8787- module StrongRef : sig
7373+ module GetRecord : sig
7474+(** Get a single record from a repository. Does not require auth. *)
88758989-type main = {
9090- cid : string;
7676+(** Query/procedure parameters. *)
7777+type params = {
7878+ cid : string option; (** The CID of the version of the record. If not specified, then return the most recent version. *)
7979+ collection : string; (** The NSID of the record collection. *)
8080+ repo : string; (** The handle or DID of the repo. *)
8181+ rkey : string; (** The Record Key. *)
8282+}
8383+8484+(** Jsont codec for {!type:params}. *)
8585+val params_jsont : params Jsont.t
8686+8787+8888+type output = {
8989+ cid : string option;
9190 uri : string;
9191+ value : Jsont.json;
9292}
93939494-(** Jsont codec for {!type:main}. *)
9595-val main_jsont : main Jsont.t
9494+(** Jsont codec for {!type:output}. *)
9595+val output_jsont : output Jsont.t
96969797 end
9898 module PutRecord : sig
···124124val output_jsont : output Jsont.t
125125126126 end
127127- module CreateRecord : sig
128128-(** Create a single new repository record. Requires auth, implemented by PDS. *)
127127+ module DeleteRecord : sig
128128+(** Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS. *)
129129130130131131type input = {
132132 collection : string; (** The NSID of the record collection. *)
133133- record : Jsont.json; (** The record itself. Must contain a $type field. *)
134133 repo : string; (** The handle or DID of the repo (aka, current account). *)
135135- rkey : string option; (** The Record Key. *)
134134+ rkey : string; (** The Record Key. *)
136135 swap_commit : string option; (** Compare and swap with the previous commit by CID. *)
137137- validate : bool option; (** Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons. *)
136136+ swap_record : string option; (** Compare and swap with the previous record by CID. *)
138137}
139138140139(** Jsont codec for {!type:input}. *)
···142141143142144143type output = {
145145- cid : string;
146144 commit : Defs.commit_meta option;
147147- uri : string;
148148- validation_status : string option;
149145}
150146151147(** Jsont codec for {!type:output}. *)
152148val output_jsont : output Jsont.t
153149154150 end
155155- module DeleteRecord : sig
156156-(** Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS. *)
151151+ module CreateRecord : sig
152152+(** Create a single new repository record. Requires auth, implemented by PDS. *)
157153158154159155type input = {
160156 collection : string; (** The NSID of the record collection. *)
157157+ record : Jsont.json; (** The record itself. Must contain a $type field. *)
161158 repo : string; (** The handle or DID of the repo (aka, current account). *)
162162- rkey : string; (** The Record Key. *)
159159+ rkey : string option; (** The Record Key. *)
163160 swap_commit : string option; (** Compare and swap with the previous commit by CID. *)
164164- swap_record : string option; (** Compare and swap with the previous record by CID. *)
161161+ validate : bool option; (** Can be set to 'false' to skip Lexicon schema validation of record data, 'true' to require it, or leave unset to validate only for known Lexicons. *)
165162}
166163167164(** Jsont codec for {!type:input}. *)
···169166170167171168type output = {
169169+ cid : string;
172170 commit : Defs.commit_meta option;
171171+ uri : string;
172172+ validation_status : string option;
173173}
174174175175(** Jsont codec for {!type:output}. *)
···12121313module Com : sig
1414 module Atproto : sig
1515- module Moderation : sig
1616- module Defs : sig
1717-(** Tag describing a type of subject that might be reported. *)
1818-1919-type subject_type = string
2020-val subject_type_jsont : subject_type Jsont.t
2121-2222-(** Direct violation of server rules, laws, terms of service. Prefer new lexicon definition `tools.ozone.report.defs#reasonRuleOther`. *)
2323-2424-type reason_violation = string
2525-val reason_violation_jsont : reason_violation Jsont.t
2626-2727-2828-type reason_type = string
2929-val reason_type_jsont : reason_type Jsont.t
3030-3131-(** Spam: frequent unwanted promotion, replies, mentions. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingSpam`. *)
3232-3333-type reason_spam = string
3434-val reason_spam_jsont : reason_spam Jsont.t
3535-3636-(** Unwanted or mislabeled sexual content. Prefer new lexicon definition `tools.ozone.report.defs#reasonSexualUnlabeled`. *)
3737-3838-type reason_sexual = string
3939-val reason_sexual_jsont : reason_sexual Jsont.t
4040-4141-(** Rude, harassing, explicit, or otherwise unwelcoming behavior. Prefer new lexicon definition `tools.ozone.report.defs#reasonHarassmentOther`. *)
4242-4343-type reason_rude = string
4444-val reason_rude_jsont : reason_rude Jsont.t
4545-4646-(** Reports not falling under another report category. Prefer new lexicon definition `tools.ozone.report.defs#reasonOther`. *)
4747-4848-type reason_other = string
4949-val reason_other_jsont : reason_other Jsont.t
5050-5151-(** Misleading identity, affiliation, or content. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingOther`. *)
5252-5353-type reason_misleading = string
5454-val reason_misleading_jsont : reason_misleading Jsont.t
5555-5656-(** Appeal a previously taken moderation action *)
5757-5858-type reason_appeal = string
5959-val reason_appeal_jsont : reason_appeal Jsont.t
6060-6161- end
6262- end
6315 module Label : sig
6416 module Defs : sig
6517(** Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel. *)
···1419314294 end
14395 end
9696+ module Moderation : sig
9797+ module Defs : sig
9898+(** Tag describing a type of subject that might be reported. *)
9999+100100+type subject_type = string
101101+val subject_type_jsont : subject_type Jsont.t
102102+103103+(** Direct violation of server rules, laws, terms of service. Prefer new lexicon definition `tools.ozone.report.defs#reasonRuleOther`. *)
104104+105105+type reason_violation = string
106106+val reason_violation_jsont : reason_violation Jsont.t
107107+108108+109109+type reason_type = string
110110+val reason_type_jsont : reason_type Jsont.t
111111+112112+(** Spam: frequent unwanted promotion, replies, mentions. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingSpam`. *)
113113+114114+type reason_spam = string
115115+val reason_spam_jsont : reason_spam Jsont.t
116116+117117+(** Unwanted or mislabeled sexual content. Prefer new lexicon definition `tools.ozone.report.defs#reasonSexualUnlabeled`. *)
118118+119119+type reason_sexual = string
120120+val reason_sexual_jsont : reason_sexual Jsont.t
121121+122122+(** Rude, harassing, explicit, or otherwise unwelcoming behavior. Prefer new lexicon definition `tools.ozone.report.defs#reasonHarassmentOther`. *)
123123+124124+type reason_rude = string
125125+val reason_rude_jsont : reason_rude Jsont.t
126126+127127+(** Reports not falling under another report category. Prefer new lexicon definition `tools.ozone.report.defs#reasonOther`. *)
128128+129129+type reason_other = string
130130+val reason_other_jsont : reason_other Jsont.t
131131+132132+(** Misleading identity, affiliation, or content. Prefer new lexicon definition `tools.ozone.report.defs#reasonMisleadingOther`. *)
133133+134134+type reason_misleading = string
135135+val reason_misleading_jsont : reason_misleading Jsont.t
136136+137137+(** Appeal a previously taken moderation action *)
138138+139139+type reason_appeal = string
140140+val reason_appeal_jsont : reason_appeal Jsont.t
141141+142142+ end
143143+ end
144144 end
145145end
146146module App : sig
147147 module Bsky : sig
148148- module AuthFullApp : sig
148148+ module AuthManageLabelerService : sig
149149150150type main = unit
151151val main_jsont : main Jsont.t
···157157val main_jsont : main Jsont.t
158158159159 end
160160+ module AuthManageModeration : sig
161161+162162+type main = unit
163163+val main_jsont : main Jsont.t
164164+165165+ end
166166+ module Richtext : sig
167167+ module Facet : sig
168168+(** Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags'). *)
169169+170170+type tag = {
171171+ tag : string;
172172+}
173173+174174+(** Jsont codec for {!type:tag}. *)
175175+val tag_jsont : tag Jsont.t
176176+177177+(** Facet feature for mention of another account. The text is usually a handle, including a '\@' prefix, but the facet reference is a DID. *)
178178+179179+type mention = {
180180+ did : string;
181181+}
182182+183183+(** Jsont codec for {!type:mention}. *)
184184+val mention_jsont : mention Jsont.t
185185+186186+(** Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL. *)
187187+188188+type link = {
189189+ uri : string;
190190+}
191191+192192+(** Jsont codec for {!type:link}. *)
193193+val link_jsont : link Jsont.t
194194+195195+(** Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets. *)
196196+197197+type byte_slice = {
198198+ byte_end : int;
199199+ byte_start : int;
200200+}
201201+202202+(** Jsont codec for {!type:byte_slice}. *)
203203+val byte_slice_jsont : byte_slice Jsont.t
204204+205205+(** Annotation of a sub-string within rich text. *)
206206+207207+type main = {
208208+ features : Jsont.json list;
209209+ index : byte_slice;
210210+}
211211+212212+(** Jsont codec for {!type:main}. *)
213213+val main_jsont : main Jsont.t
214214+215215+ end
216216+ end
160217 module AuthManageFeedDeclarations : sig
161218162219type main = unit
163220val main_jsont : main Jsont.t
164221165222 end
166166- module AuthManageNotifications : sig
223223+ module AuthFullApp : sig
167224168225type main = unit
169226val main_jsont : main Jsont.t
170227171228 end
172172- module AuthManageModeration : sig
229229+ module AuthManageNotifications : sig
173230174231type main = unit
175232val main_jsont : main Jsont.t
···181238val main_jsont : main Jsont.t
182239183240 end
184184- module AuthManageLabelerService : sig
241241+ module Ageassurance : sig
242242+ module Defs : sig
243243+(** The status of the Age Assurance process. *)
244244+245245+type status = string
246246+val status_jsont : status Jsont.t
247247+248248+(** Additional metadata needed to compute Age Assurance state client-side. *)
249249+250250+type state_metadata = {
251251+ account_created_at : string option; (** The account creation timestamp. *)
252252+}
253253+254254+(** Jsont codec for {!type:state_metadata}. *)
255255+val state_metadata_jsont : state_metadata Jsont.t
256256+257257+(** Object used to store Age Assurance data in stash. *)
258258+259259+type event = {
260260+ access : string; (** The access level granted based on Age Assurance data we've processed. *)
261261+ attempt_id : string; (** The unique identifier for this instance of the Age Assurance flow, in UUID format. *)
262262+ complete_ip : string option; (** The IP address used when completing the Age Assurance flow. *)
263263+ complete_ua : string option; (** The user agent used when completing the Age Assurance flow. *)
264264+ country_code : string; (** The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow. *)
265265+ created_at : string; (** The date and time of this write operation. *)
266266+ email : string option; (** The email used for Age Assurance. *)
267267+ init_ip : string option; (** The IP address used when initiating the Age Assurance flow. *)
268268+ init_ua : string option; (** The user agent used when initiating the Age Assurance flow. *)
269269+ region_code : string option; (** The ISO 3166-2 region code provided when beginning the Age Assurance flow. *)
270270+ status : string; (** The status of the Age Assurance process. *)
271271+}
272272+273273+(** Jsont codec for {!type:event}. *)
274274+val event_jsont : event Jsont.t
275275+276276+(** The Age Assurance configuration for a specific region. *)
277277+278278+type config_region = {
279279+ country_code : string; (** The ISO 3166-1 alpha-2 country code this configuration applies to. *)
280280+ min_access_age : int; (** The minimum age (as a whole integer) required to use Bluesky in this region. *)
281281+ region_code : string option; (** The ISO 3166-2 region code this configuration applies to. If omitted, the configuration applies to the entire country. *)
282282+ rules : Jsont.json list; (** The ordered list of Age Assurance rules that apply to this region. Rules should be applied in order, and the first matching rule determines the access level granted. The rules array should always include a default rule as the last item. *)
283283+}
284284+285285+(** Jsont codec for {!type:config_region}. *)
286286+val config_region_jsont : config_region Jsont.t
287287+288288+(** The access level granted based on Age Assurance data we've processed. *)
289289+290290+type access = string
291291+val access_jsont : access Jsont.t
292292+293293+(** The user's computed Age Assurance state. *)
294294+295295+type state = {
296296+ access : access;
297297+ last_initiated_at : string option; (** The timestamp when this state was last updated. *)
298298+ status : status;
299299+}
300300+301301+(** Jsont codec for {!type:state}. *)
302302+val state_jsont : state Jsont.t
303303+304304+(** Age Assurance rule that applies if the user has declared themselves under a certain age. *)
305305+306306+type config_region_rule_if_declared_under_age = {
307307+ access : access;
308308+ age : int; (** The age threshold as a whole integer. *)
309309+}
310310+311311+(** Jsont codec for {!type:config_region_rule_if_declared_under_age}. *)
312312+val config_region_rule_if_declared_under_age_jsont : config_region_rule_if_declared_under_age Jsont.t
313313+314314+(** Age Assurance rule that applies if the user has declared themselves equal-to or over a certain age. *)
315315+316316+type config_region_rule_if_declared_over_age = {
317317+ access : access;
318318+ age : int; (** The age threshold as a whole integer. *)
319319+}
320320+321321+(** Jsont codec for {!type:config_region_rule_if_declared_over_age}. *)
322322+val config_region_rule_if_declared_over_age_jsont : config_region_rule_if_declared_over_age Jsont.t
323323+324324+(** Age Assurance rule that applies if the user has been assured to be under a certain age. *)
325325+326326+type config_region_rule_if_assured_under_age = {
327327+ access : access;
328328+ age : int; (** The age threshold as a whole integer. *)
329329+}
330330+331331+(** Jsont codec for {!type:config_region_rule_if_assured_under_age}. *)
332332+val config_region_rule_if_assured_under_age_jsont : config_region_rule_if_assured_under_age Jsont.t
333333+334334+(** Age Assurance rule that applies if the user has been assured to be equal-to or over a certain age. *)
335335+336336+type config_region_rule_if_assured_over_age = {
337337+ access : access;
338338+ age : int; (** The age threshold as a whole integer. *)
339339+}
340340+341341+(** Jsont codec for {!type:config_region_rule_if_assured_over_age}. *)
342342+val config_region_rule_if_assured_over_age_jsont : config_region_rule_if_assured_over_age Jsont.t
343343+344344+(** Age Assurance rule that applies if the account is older than a certain date. *)
345345+346346+type config_region_rule_if_account_older_than = {
347347+ access : access;
348348+ date : string; (** The date threshold as a datetime string. *)
349349+}
350350+351351+(** Jsont codec for {!type:config_region_rule_if_account_older_than}. *)
352352+val config_region_rule_if_account_older_than_jsont : config_region_rule_if_account_older_than Jsont.t
353353+354354+(** Age Assurance rule that applies if the account is equal-to or newer than a certain date. *)
355355+356356+type config_region_rule_if_account_newer_than = {
357357+ access : access;
358358+ date : string; (** The date threshold as a datetime string. *)
359359+}
360360+361361+(** Jsont codec for {!type:config_region_rule_if_account_newer_than}. *)
362362+val config_region_rule_if_account_newer_than_jsont : config_region_rule_if_account_newer_than Jsont.t
363363+364364+(** Age Assurance rule that applies by default. *)
365365+366366+type config_region_rule_default = {
367367+ access : access;
368368+}
369369+370370+(** Jsont codec for {!type:config_region_rule_default}. *)
371371+val config_region_rule_default_jsont : config_region_rule_default Jsont.t
372372+373373+374374+type config = {
375375+ regions : config_region list; (** The per-region Age Assurance configuration. *)
376376+}
377377+378378+(** Jsont codec for {!type:config}. *)
379379+val config_jsont : config Jsont.t
380380+381381+ end
382382+ module Begin : sig
383383+(** Initiate Age Assurance for an account. *)
384384+385385+386386+type input = {
387387+ country_code : string; (** An ISO 3166-1 alpha-2 code of the user's location. *)
388388+ email : string; (** The user's email address to receive Age Assurance instructions. *)
389389+ language : string; (** The user's preferred language for communication during the Age Assurance process. *)
390390+ region_code : string option; (** An optional ISO 3166-2 code of the user's region or state within the country. *)
391391+}
392392+393393+(** Jsont codec for {!type:input}. *)
394394+val input_jsont : input Jsont.t
395395+396396+397397+type output = Defs.state
398398+399399+(** Jsont codec for {!type:output}. *)
400400+val output_jsont : output Jsont.t
401401+402402+ end
403403+ module GetState : sig
404404+(** Returns server-computed Age Assurance state, if available, and any additional metadata needed to compute Age Assurance state client-side. *)
405405+406406+(** Query/procedure parameters. *)
407407+type params = {
408408+ country_code : string;
409409+ region_code : string option;
410410+}
411411+412412+(** Jsont codec for {!type:params}. *)
413413+val params_jsont : params Jsont.t
414414+415415+416416+type output = {
417417+ metadata : Defs.state_metadata;
418418+ state : Defs.state;
419419+}
420420+421421+(** Jsont codec for {!type:output}. *)
422422+val output_jsont : output Jsont.t
423423+424424+ end
425425+ module GetConfig : sig
426426+(** Returns Age Assurance configuration for use on the client. *)
427427+428428+429429+type output = Defs.config
430430+431431+(** Jsont codec for {!type:output}. *)
432432+val output_jsont : output Jsont.t
433433+434434+ end
435435+ end
436436+ module Labeler : sig
437437+ module Defs : sig
438438+439439+type labeler_viewer_state = {
440440+ like : string option;
441441+}
442442+443443+(** Jsont codec for {!type:labeler_viewer_state}. *)
444444+val labeler_viewer_state_jsont : labeler_viewer_state Jsont.t
445445+446446+447447+type labeler_policies = {
448448+ label_value_definitions : Com.Atproto.Label.Defs.label_value_definition list option; (** Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler. *)
449449+ label_values : Com.Atproto.Label.Defs.label_value list; (** The label values which this labeler publishes. May include global or custom labels. *)
450450+}
451451+452452+(** Jsont codec for {!type:labeler_policies}. *)
453453+val labeler_policies_jsont : labeler_policies Jsont.t
454454+455455+456456+type labeler_view_detailed = {
457457+ cid : string;
458458+ creator : Jsont.json;
459459+ indexed_at : string;
460460+ labels : Com.Atproto.Label.Defs.label list option;
461461+ like_count : int option;
462462+ policies : Jsont.json;
463463+ reason_types : Com.Atproto.Moderation.Defs.reason_type list option; (** The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed. *)
464464+ subject_collections : string list option; (** Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type. *)
465465+ subject_types : Com.Atproto.Moderation.Defs.subject_type list option; (** The set of subject types (account, record, etc) this service accepts reports on. *)
466466+ uri : string;
467467+ viewer : Jsont.json option;
468468+}
469469+470470+(** Jsont codec for {!type:labeler_view_detailed}. *)
471471+val labeler_view_detailed_jsont : labeler_view_detailed Jsont.t
472472+473473+474474+type labeler_view = {
475475+ cid : string;
476476+ creator : Jsont.json;
477477+ indexed_at : string;
478478+ labels : Com.Atproto.Label.Defs.label list option;
479479+ like_count : int option;
480480+ uri : string;
481481+ viewer : Jsont.json option;
482482+}
483483+484484+(** Jsont codec for {!type:labeler_view}. *)
485485+val labeler_view_jsont : labeler_view Jsont.t
486486+487487+ end
488488+ module Service : sig
489489+(** A declaration of the existence of labeler service. *)
490490+491491+type main = {
492492+ created_at : string;
493493+ labels : Com.Atproto.Label.Defs.self_labels option;
494494+ policies : Jsont.json;
495495+ reason_types : Com.Atproto.Moderation.Defs.reason_type list option; (** The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed. *)
496496+ subject_collections : string list option; (** Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type. *)
497497+ subject_types : Com.Atproto.Moderation.Defs.subject_type list option; (** The set of subject types (account, record, etc) this service accepts reports on. *)
498498+}
499499+500500+(** Jsont codec for {!type:main}. *)
501501+val main_jsont : main Jsont.t
502502+503503+ end
504504+ module GetServices : sig
505505+(** Get information about a list of labeler services. *)
506506+507507+(** Query/procedure parameters. *)
508508+type params = {
509509+ detailed : bool option;
510510+ dids : string list;
511511+}
512512+513513+(** Jsont codec for {!type:params}. *)
514514+val params_jsont : params Jsont.t
515515+516516+517517+type output = {
518518+ views : Jsont.json list;
519519+}
520520+521521+(** Jsont codec for {!type:output}. *)
522522+val output_jsont : output Jsont.t
523523+524524+ end
525525+ end
526526+ module AuthCreatePosts : sig
185527186528type main = unit
187529val main_jsont : main Jsont.t
188530189531 end
190190- module Notification : sig
191191- module GetUnreadCount : sig
192192-(** Count the number of unread notifications for the requesting account. Requires auth. *)
532532+ module Video : sig
533533+ module GetUploadLimits : sig
534534+(** Get video upload limits for the authenticated user. *)
535535+536536+537537+type output = {
538538+ can_upload : bool;
539539+ error : string option;
540540+ message : string option;
541541+ remaining_daily_bytes : int option;
542542+ remaining_daily_videos : int option;
543543+}
544544+545545+(** Jsont codec for {!type:output}. *)
546546+val output_jsont : output Jsont.t
547547+548548+ end
549549+ module Defs : sig
550550+551551+type job_status = {
552552+ blob : Atp.Blob_ref.t option;
553553+ did : string;
554554+ error : string option;
555555+ job_id : string;
556556+ message : string option;
557557+ progress : int option; (** Progress within the current processing state. *)
558558+ state : string; (** The state of the video processing job. All values not listed as a known value indicate that the job is in process. *)
559559+}
560560+561561+(** Jsont codec for {!type:job_status}. *)
562562+val job_status_jsont : job_status Jsont.t
563563+564564+ end
565565+ module UploadVideo : sig
566566+(** Upload a video to be processed then stored on the PDS. *)
567567+568568+569569+type input = unit
570570+val input_jsont : input Jsont.t
571571+572572+573573+type output = {
574574+ job_status : Defs.job_status;
575575+}
576576+577577+(** Jsont codec for {!type:output}. *)
578578+val output_jsont : output Jsont.t
579579+580580+ end
581581+ module GetJobStatus : sig
582582+(** Get status details for a video processing job. *)
193583194584(** Query/procedure parameters. *)
195585type params = {
196196- priority : bool option;
197197- seen_at : string option;
586586+ job_id : string;
198587}
199588200589(** Jsont codec for {!type:params}. *)
···202591203592204593type output = {
205205- count : int;
594594+ job_status : Defs.job_status;
206595}
207596208597(** Jsont codec for {!type:output}. *)
209598val output_jsont : output Jsont.t
210599211600 end
601601+ end
602602+ module Embed : sig
603603+ module External : sig
604604+605605+type view_external = {
606606+ description : string;
607607+ thumb : string option;
608608+ title : string;
609609+ uri : string;
610610+}
611611+612612+(** Jsont codec for {!type:view_external}. *)
613613+val view_external_jsont : view_external Jsont.t
614614+615615+616616+type external_ = {
617617+ description : string;
618618+ thumb : Atp.Blob_ref.t option;
619619+ title : string;
620620+ uri : string;
621621+}
622622+623623+(** Jsont codec for {!type:external_}. *)
624624+val external__jsont : external_ Jsont.t
625625+626626+627627+type view = {
628628+ external_ : Jsont.json;
629629+}
630630+631631+(** Jsont codec for {!type:view}. *)
632632+val view_jsont : view Jsont.t
633633+634634+(** A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post). *)
635635+636636+type main = {
637637+ external_ : Jsont.json;
638638+}
639639+640640+(** Jsont codec for {!type:main}. *)
641641+val main_jsont : main Jsont.t
642642+643643+ end
644644+ module Defs : sig
645645+(** width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit. *)
646646+647647+type aspect_ratio = {
648648+ height : int;
649649+ width : int;
650650+}
651651+652652+(** Jsont codec for {!type:aspect_ratio}. *)
653653+val aspect_ratio_jsont : aspect_ratio Jsont.t
654654+655655+ end
656656+ module Images : sig
657657+658658+type view_image = {
659659+ alt : string; (** Alt text description of the image, for accessibility. *)
660660+ aspect_ratio : Jsont.json option;
661661+ fullsize : string; (** Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View. *)
662662+ thumb : string; (** Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View. *)
663663+}
664664+665665+(** Jsont codec for {!type:view_image}. *)
666666+val view_image_jsont : view_image Jsont.t
667667+668668+669669+type image = {
670670+ alt : string; (** Alt text description of the image, for accessibility. *)
671671+ aspect_ratio : Jsont.json option;
672672+ image : Atp.Blob_ref.t;
673673+}
674674+675675+(** Jsont codec for {!type:image}. *)
676676+val image_jsont : image Jsont.t
677677+678678+679679+type view = {
680680+ images : Jsont.json list;
681681+}
682682+683683+(** Jsont codec for {!type:view}. *)
684684+val view_jsont : view Jsont.t
685685+686686+687687+type main = {
688688+ images : Jsont.json list;
689689+}
690690+691691+(** Jsont codec for {!type:main}. *)
692692+val main_jsont : main Jsont.t
693693+694694+ end
695695+ module Video : sig
696696+697697+type view = {
698698+ alt : string option;
699699+ aspect_ratio : Jsont.json option;
700700+ cid : string;
701701+ playlist : string;
702702+ thumbnail : string option;
703703+}
704704+705705+(** Jsont codec for {!type:view}. *)
706706+val view_jsont : view Jsont.t
707707+708708+709709+type caption = {
710710+ file : Atp.Blob_ref.t;
711711+ lang : string;
712712+}
713713+714714+(** Jsont codec for {!type:caption}. *)
715715+val caption_jsont : caption Jsont.t
716716+717717+718718+type main = {
719719+ alt : string option; (** Alt text description of the video, for accessibility. *)
720720+ aspect_ratio : Jsont.json option;
721721+ captions : Jsont.json list option;
722722+ video : Atp.Blob_ref.t; (** The mp4 video file. May be up to 100mb, formerly limited to 50mb. *)
723723+}
724724+725725+(** Jsont codec for {!type:main}. *)
726726+val main_jsont : main Jsont.t
727727+728728+ end
729729+ module RecordWithMedia : sig
730730+731731+type view = {
732732+ media : Jsont.json;
733733+ record : Jsont.json;
734734+}
735735+736736+(** Jsont codec for {!type:view}. *)
737737+val view_jsont : view Jsont.t
738738+739739+740740+type main = {
741741+ media : Jsont.json;
742742+ record : Jsont.json;
743743+}
744744+745745+(** Jsont codec for {!type:main}. *)
746746+val main_jsont : main Jsont.t
747747+748748+ end
749749+ module Record : sig
750750+751751+type view_record = {
752752+ author : Jsont.json;
753753+ cid : string;
754754+ embeds : Jsont.json list option;
755755+ indexed_at : string;
756756+ labels : Com.Atproto.Label.Defs.label list option;
757757+ like_count : int option;
758758+ quote_count : int option;
759759+ reply_count : int option;
760760+ repost_count : int option;
761761+ uri : string;
762762+ value : Jsont.json; (** The record data itself. *)
763763+}
764764+765765+(** Jsont codec for {!type:view_record}. *)
766766+val view_record_jsont : view_record Jsont.t
767767+768768+769769+type view_not_found = {
770770+ not_found : bool;
771771+ uri : string;
772772+}
773773+774774+(** Jsont codec for {!type:view_not_found}. *)
775775+val view_not_found_jsont : view_not_found Jsont.t
776776+777777+778778+type view_detached = {
779779+ detached : bool;
780780+ uri : string;
781781+}
782782+783783+(** Jsont codec for {!type:view_detached}. *)
784784+val view_detached_jsont : view_detached Jsont.t
785785+786786+787787+type view_blocked = {
788788+ author : Jsont.json;
789789+ blocked : bool;
790790+ uri : string;
791791+}
792792+793793+(** Jsont codec for {!type:view_blocked}. *)
794794+val view_blocked_jsont : view_blocked Jsont.t
795795+796796+797797+type view = {
798798+ record : Jsont.json;
799799+}
800800+801801+(** Jsont codec for {!type:view}. *)
802802+val view_jsont : view Jsont.t
803803+804804+805805+type main = {
806806+ record : Com.Atproto.Repo.StrongRef.main;
807807+}
808808+809809+(** Jsont codec for {!type:main}. *)
810810+val main_jsont : main Jsont.t
811811+812812+ end
813813+ end
814814+ module Notification : sig
212815 module UpdateSeen : sig
213816(** Notify server that the requesting account has seen notifications. Requires auth. *)
214817···221824val input_jsont : input Jsont.t
222825223826 end
827827+ module RegisterPush : sig
828828+(** Register to receive push notifications, via a specified service, for the requesting account. Requires auth. *)
829829+830830+831831+type input = {
832832+ age_restricted : bool option; (** Set to true when the actor is age restricted *)
833833+ app_id : string;
834834+ platform : string;
835835+ service_did : string;
836836+ token : string;
837837+}
838838+839839+(** Jsont codec for {!type:input}. *)
840840+val input_jsont : input Jsont.t
841841+842842+ end
224843 module ListNotifications : sig
225844226845type notification = {
···264883val output_jsont : output Jsont.t
265884266885 end
267267- module Declaration : sig
268268-(** A declaration of the user's choices related to notifications that can be produced by them. *)
886886+ module GetUnreadCount : sig
887887+(** Count the number of unread notifications for the requesting account. Requires auth. *)
269888270270-type main = {
271271- allow_subscriptions : string; (** A declaration of the user's preference for allowing activity subscriptions from other users. Absence of a record implies 'followers'. *)
889889+(** Query/procedure parameters. *)
890890+type params = {
891891+ priority : bool option;
892892+ seen_at : string option;
272893}
273894274274-(** Jsont codec for {!type:main}. *)
275275-val main_jsont : main Jsont.t
895895+(** Jsont codec for {!type:params}. *)
896896+val params_jsont : params Jsont.t
276897277277- end
278278- module PutPreferences : sig
279279-(** Set notification-related preferences for an account. Requires auth. *)
280898281281-282282-type input = {
283283- priority : bool;
899899+type output = {
900900+ count : int;
284901}
285902286286-(** Jsont codec for {!type:input}. *)
287287-val input_jsont : input Jsont.t
903903+(** Jsont codec for {!type:output}. *)
904904+val output_jsont : output Jsont.t
288905289906 end
290290- module RegisterPush : sig
291291-(** Register to receive push notifications, via a specified service, for the requesting account. Requires auth. *)
907907+ module UnregisterPush : sig
908908+(** The inverse of registerPush - inform a specified service that push notifications should no longer be sent to the given token for the requesting account. Requires auth. *)
292909293910294911type input = {
295295- age_restricted : bool option; (** Set to true when the actor is age restricted *)
296912 app_id : string;
297913 platform : string;
298914 service_did : string;
···303919val input_jsont : input Jsont.t
304920305921 end
306306- module UnregisterPush : sig
307307-(** The inverse of registerPush - inform a specified service that push notifications should no longer be sent to the given token for the requesting account. Requires auth. *)
922922+ module PutPreferences : sig
923923+(** Set notification-related preferences for an account. Requires auth. *)
308924309925310926type input = {
311311- app_id : string;
312312- platform : string;
313313- service_did : string;
314314- token : string;
927927+ priority : bool;
315928}
316929317930(** Jsont codec for {!type:input}. *)
···39110043921005(** Jsont codec for {!type:preferences}. *)
3931006val preferences_jsont : preferences Jsont.t
10071007+10081008+ end
10091009+ module Declaration : sig
10101010+(** A declaration of the user's choices related to notifications that can be produced by them. *)
10111011+10121012+type main = {
10131013+ allow_subscriptions : string; (** A declaration of the user's preference for allowing activity subscriptions from other users. Absence of a record implies 'followers'. *)
10141014+}
10151015+10161016+(** Jsont codec for {!type:main}. *)
10171017+val main_jsont : main Jsont.t
39410183951019 end
3961020 module ListActivitySubscriptions : sig
···48811124891113 end
4901114 end
491491- module Labeler : sig
492492- module Defs : sig
493493-494494-type labeler_viewer_state = {
495495- like : string option;
496496-}
497497-498498-(** Jsont codec for {!type:labeler_viewer_state}. *)
499499-val labeler_viewer_state_jsont : labeler_viewer_state Jsont.t
500500-501501-502502-type labeler_policies = {
503503- label_value_definitions : Com.Atproto.Label.Defs.label_value_definition list option; (** Label values created by this labeler and scoped exclusively to it. Labels defined here will override global label definitions for this labeler. *)
504504- label_values : Com.Atproto.Label.Defs.label_value list; (** The label values which this labeler publishes. May include global or custom labels. *)
505505-}
506506-507507-(** Jsont codec for {!type:labeler_policies}. *)
508508-val labeler_policies_jsont : labeler_policies Jsont.t
509509-510510-511511-type labeler_view_detailed = {
512512- cid : string;
513513- creator : Jsont.json;
514514- indexed_at : string;
515515- labels : Com.Atproto.Label.Defs.label list option;
516516- like_count : int option;
517517- policies : Jsont.json;
518518- reason_types : Com.Atproto.Moderation.Defs.reason_type list option; (** The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed. *)
519519- subject_collections : string list option; (** Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type. *)
520520- subject_types : Com.Atproto.Moderation.Defs.subject_type list option; (** The set of subject types (account, record, etc) this service accepts reports on. *)
521521- uri : string;
522522- viewer : Jsont.json option;
523523-}
524524-525525-(** Jsont codec for {!type:labeler_view_detailed}. *)
526526-val labeler_view_detailed_jsont : labeler_view_detailed Jsont.t
527527-528528-529529-type labeler_view = {
530530- cid : string;
531531- creator : Jsont.json;
532532- indexed_at : string;
533533- labels : Com.Atproto.Label.Defs.label list option;
534534- like_count : int option;
535535- uri : string;
536536- viewer : Jsont.json option;
537537-}
538538-539539-(** Jsont codec for {!type:labeler_view}. *)
540540-val labeler_view_jsont : labeler_view Jsont.t
541541-542542- end
543543- module Service : sig
544544-(** A declaration of the existence of labeler service. *)
545545-546546-type main = {
547547- created_at : string;
548548- labels : Com.Atproto.Label.Defs.self_labels option;
549549- policies : Jsont.json;
550550- reason_types : Com.Atproto.Moderation.Defs.reason_type list option; (** The set of report reason 'codes' which are in-scope for this service to review and action. These usually align to policy categories. If not defined (distinct from empty array), all reason types are allowed. *)
551551- subject_collections : string list option; (** Set of record types (collection NSIDs) which can be reported to this service. If not defined (distinct from empty array), default is any record type. *)
552552- subject_types : Com.Atproto.Moderation.Defs.subject_type list option; (** The set of subject types (account, record, etc) this service accepts reports on. *)
553553-}
554554-555555-(** Jsont codec for {!type:main}. *)
556556-val main_jsont : main Jsont.t
557557-558558- end
559559- module GetServices : sig
560560-(** Get information about a list of labeler services. *)
561561-562562-(** Query/procedure parameters. *)
563563-type params = {
564564- detailed : bool option;
565565- dids : string list;
566566-}
567567-568568-(** Jsont codec for {!type:params}. *)
569569-val params_jsont : params Jsont.t
570570-571571-572572-type output = {
573573- views : Jsont.json list;
574574-}
575575-576576-(** Jsont codec for {!type:output}. *)
577577-val output_jsont : output Jsont.t
578578-579579- end
580580- end
5811115 module Actor : sig
5821116 module Status : sig
5831117(** Advertises an account as currently offering live content. *)
···5921126 duration_minutes : int option; (** The duration of the status in minutes. Applications can choose to impose minimum and maximum limits. *)
5931127 embed : Jsont.json option; (** An optional embed associated with the status. *)
5941128 status : string; (** The status for the account. *)
11291129+}
11301130+11311131+(** Jsont codec for {!type:main}. *)
11321132+val main_jsont : main Jsont.t
11331133+11341134+ end
11351135+ module Profile : sig
11361136+(** A declaration of a Bluesky account profile. *)
11371137+11381138+type main = {
11391139+ avatar : Atp.Blob_ref.t option; (** Small image to be displayed next to posts from account. AKA, 'profile picture' *)
11401140+ banner : Atp.Blob_ref.t option; (** Larger horizontal image to display behind profile view. *)
11411141+ created_at : string option;
11421142+ description : string option; (** Free-form profile description text. *)
11431143+ display_name : string option;
11441144+ joined_via_starter_pack : Com.Atproto.Repo.StrongRef.main option;
11451145+ labels : Com.Atproto.Label.Defs.self_labels option; (** Self-label values, specific to the Bluesky application, on the overall account. *)
11461146+ pinned_post : Com.Atproto.Repo.StrongRef.main option;
11471147+ pronouns : string option; (** Free-form pronouns text. *)
11481148+ website : string option;
5951149}
59611505971151(** Jsont codec for {!type:main}. *)
···9611515val known_followers_jsont : known_followers Jsont.t
96215169631517 end
964964- module Profile : sig
965965-(** A declaration of a Bluesky account profile. *)
15181518+ module GetPreferences : sig
15191519+(** Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth. *)
15201520+15211521+(** Query/procedure parameters. *)
15221522+type params = unit
15231523+15241524+(** Jsont codec for {!type:params}. *)
15251525+val params_jsont : params Jsont.t
15261526+9661527967967-type main = {
968968- avatar : Atp.Blob_ref.t option; (** Small image to be displayed next to posts from account. AKA, 'profile picture' *)
969969- banner : Atp.Blob_ref.t option; (** Larger horizontal image to display behind profile view. *)
970970- created_at : string option;
971971- description : string option; (** Free-form profile description text. *)
972972- display_name : string option;
973973- joined_via_starter_pack : Com.Atproto.Repo.StrongRef.main option;
974974- labels : Com.Atproto.Label.Defs.self_labels option; (** Self-label values, specific to the Bluesky application, on the overall account. *)
975975- pinned_post : Com.Atproto.Repo.StrongRef.main option;
976976- pronouns : string option; (** Free-form pronouns text. *)
977977- website : string option;
15281528+type output = {
15291529+ preferences : Jsont.json;
9781530}
9791531980980-(** Jsont codec for {!type:main}. *)
981981-val main_jsont : main Jsont.t
15321532+(** Jsont codec for {!type:output}. *)
15331533+val output_jsont : output Jsont.t
98215349831535 end
984984- module GetProfiles : sig
985985-(** Get detailed profile views of multiple actors. *)
15361536+ module SearchActorsTypeahead : sig
15371537+(** Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth. *)
98615389871539(** Query/procedure parameters. *)
9881540type params = {
989989- actors : string list;
15411541+ limit : int option;
15421542+ q : string option; (** Search query prefix; not a full query string. *)
15431543+ term : string option; (** DEPRECATED: use 'q' instead. *)
9901544}
99115459921546(** Jsont codec for {!type:params}. *)
···994154899515499961550type output = {
997997- profiles : Jsont.json list;
15511551+ actors : Jsont.json list;
9981552}
999155310001554(** Jsont codec for {!type:output}. *)
10011555val output_jsont : output Jsont.t
1002155610031557 end
10041004- module GetPreferences : sig
10051005-(** Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth. *)
15581558+ module GetProfile : sig
15591559+(** Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth. *)
1006156010071561(** Query/procedure parameters. *)
10081008-type params = unit
15621562+type params = {
15631563+ actor : string; (** Handle or DID of account to fetch profile of. *)
15641564+}
1009156510101566(** Jsont codec for {!type:params}. *)
10111567val params_jsont : params Jsont.t
101215681013156910141014-type output = {
10151015- preferences : Jsont.json;
10161016-}
15701570+type output = Jsont.json
1017157110181572(** Jsont codec for {!type:output}. *)
10191573val output_jsont : output Jsont.t
1020157410211575 end
10221022- module GetSuggestions : sig
10231023-(** Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding. *)
15761576+ module SearchActors : sig
15771577+(** Find actors (profiles) matching search criteria. Does not require auth. *)
1024157810251579(** Query/procedure parameters. *)
10261580type params = {
10271581 cursor : string option;
10281582 limit : int option;
15831583+ q : string option; (** Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. *)
15841584+ term : string option; (** DEPRECATED: use 'q' instead. *)
10291585}
1030158610311587(** Jsont codec for {!type:params}. *)
···10351591type output = {
10361592 actors : Jsont.json list;
10371593 cursor : string option;
10381038- rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
10391594}
1040159510411596(** Jsont codec for {!type:output}. *)
10421597val output_jsont : output Jsont.t
1043159810441599 end
10451045- module GetProfile : sig
10461046-(** Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth. *)
16001600+ module GetSuggestions : sig
16011601+(** Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding. *)
1047160210481603(** Query/procedure parameters. *)
10491604type params = {
10501050- actor : string; (** Handle or DID of account to fetch profile of. *)
16051605+ cursor : string option;
16061606+ limit : int option;
10511607}
1052160810531609(** Jsont codec for {!type:params}. *)
10541610val params_jsont : params Jsont.t
105516111056161210571057-type output = Jsont.json
16131613+type output = {
16141614+ actors : Jsont.json list;
16151615+ cursor : string option;
16161616+ rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
16171617+}
1058161810591619(** Jsont codec for {!type:output}. *)
10601620val output_jsont : output Jsont.t
1061162110621622 end
10631063- module SearchActors : sig
10641064-(** Find actors (profiles) matching search criteria. Does not require auth. *)
16231623+ module GetProfiles : sig
16241624+(** Get detailed profile views of multiple actors. *)
1065162510661626(** Query/procedure parameters. *)
10671627type params = {
10681068- cursor : string option;
10691069- limit : int option;
10701070- q : string option; (** Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. *)
10711071- term : string option; (** DEPRECATED: use 'q' instead. *)
16281628+ actors : string list;
10721629}
1073163010741631(** Jsont codec for {!type:params}. *)
···107616331077163410781635type output = {
10791079- actors : Jsont.json list;
10801080- cursor : string option;
16361636+ profiles : Jsont.json list;
10811637}
1082163810831639(** Jsont codec for {!type:output}. *)
···10961652val input_jsont : input Jsont.t
1097165310981654 end
10991099- module SearchActorsTypeahead : sig
11001100-(** Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth. *)
16551655+ end
16561656+ module Contact : sig
16571657+ module Defs : sig
1101165811021102-(** Query/procedure parameters. *)
11031103-type params = {
11041104- limit : int option;
11051105- q : string option; (** Search query prefix; not a full query string. *)
11061106- term : string option; (** DEPRECATED: use 'q' instead. *)
16591659+type sync_status = {
16601660+ matches_count : int; (** Number of existing contact matches resulting of the user imports and of their imported contacts having imported the user. Matches stop being counted when the user either follows the matched contact or dismisses the match. *)
16611661+ synced_at : string; (** Last date when contacts where imported. *)
16621662+}
16631663+16641664+(** Jsont codec for {!type:sync_status}. *)
16651665+val sync_status_jsont : sync_status Jsont.t
16661666+16671667+(** A stash object to be sent via bsync representing a notification to be created. *)
16681668+16691669+type notification = {
16701670+ from : string; (** The DID of who this notification comes from. *)
16711671+ to_ : string; (** The DID of who this notification should go to. *)
11071672}
1108167311091109-(** Jsont codec for {!type:params}. *)
11101110-val params_jsont : params Jsont.t
16741674+(** Jsont codec for {!type:notification}. *)
16751675+val notification_jsont : notification Jsont.t
1111167616771677+(** Associates a profile with the positional index of the contact import input in the call to `app.bsky.contact.importContacts`, so clients can know which phone caused a particular match. *)
1112167811131113-type output = {
11141114- actors : Jsont.json list;
16791679+type match_and_contact_index = {
16801680+ contact_index : int; (** The index of this match in the import contact input. *)
16811681+ match_ : Jsont.json; (** Profile of the matched user. *)
11151682}
1116168311171117-(** Jsont codec for {!type:output}. *)
11181118-val output_jsont : output Jsont.t
16841684+(** Jsont codec for {!type:match_and_contact_index}. *)
16851685+val match_and_contact_index_jsont : match_and_contact_index Jsont.t
1119168611201687 end
11211121- end
11221122- module Video : sig
11231123- module GetUploadLimits : sig
11241124-(** Get video upload limits for the authenticated user. *)
16881688+ module RemoveData : sig
16891689+(** Removes all stored hashes used for contact matching, existing matches, and sync status. Requires authentication. *)
112516901126169111271127-type output = {
11281128- can_upload : bool;
11291129- error : string option;
11301130- message : string option;
11311131- remaining_daily_bytes : int option;
11321132- remaining_daily_videos : int option;
11331133-}
16921692+type input = unit
16931693+16941694+(** Jsont codec for {!type:input}. *)
16951695+val input_jsont : input Jsont.t
16961696+16971697+16981698+type output = unit
1134169911351700(** Jsont codec for {!type:output}. *)
11361701val output_jsont : output Jsont.t
1137170211381703 end
11391139- module Defs : sig
17041704+ module DismissMatch : sig
17051705+(** Removes a match that was found via contact import. It shouldn't appear again if the same contact is re-imported. Requires authentication. *)
1140170611411141-type job_status = {
11421142- blob : Atp.Blob_ref.t option;
11431143- did : string;
11441144- error : string option;
11451145- job_id : string;
11461146- message : string option;
11471147- progress : int option; (** Progress within the current processing state. *)
11481148- state : string; (** The state of the video processing job. All values not listed as a known value indicate that the job is in process. *)
17071707+17081708+type input = {
17091709+ subject : string; (** The subject's DID to dismiss the match with. *)
11491710}
1150171111511151-(** Jsont codec for {!type:job_status}. *)
11521152-val job_status_jsont : job_status Jsont.t
17121712+(** Jsont codec for {!type:input}. *)
17131713+val input_jsont : input Jsont.t
17141714+17151715+17161716+type output = unit
17171717+17181718+(** Jsont codec for {!type:output}. *)
17191719+val output_jsont : output Jsont.t
1153172011541721 end
11551155- module GetJobStatus : sig
11561156-(** Get status details for a video processing job. *)
17221722+ module GetMatches : sig
17231723+(** Returns the matched contacts (contacts that were mutually imported). Excludes dismissed matches. Requires authentication. *)
1157172411581725(** Query/procedure parameters. *)
11591726type params = {
11601160- job_id : string;
17271727+ cursor : string option;
17281728+ limit : int option;
11611729}
1162173011631731(** Jsont codec for {!type:params}. *)
···116517331166173411671735type output = {
11681168- job_status : Defs.job_status;
17361736+ cursor : string option;
17371737+ matches : Jsont.json list;
11691738}
1170173911711740(** Jsont codec for {!type:output}. *)
11721741val output_jsont : output Jsont.t
1173174211741743 end
11751175- module UploadVideo : sig
11761176-(** Upload a video to be processed then stored on the PDS. *)
17441744+ module VerifyPhone : sig
17451745+(** Verifies control over a phone number with a code received via SMS and starts a contact import session. Requires authentication. *)
17461746+1177174717481748+type input = {
17491749+ code : string; (** The code received via SMS as a result of the call to `app.bsky.contact.startPhoneVerification`. *)
17501750+ phone : string; (** The phone number to verify. Should be the same as the one passed to `app.bsky.contact.startPhoneVerification`. *)
17511751+}
1178175211791179-type input = unit
17531753+(** Jsont codec for {!type:input}. *)
11801754val input_jsont : input Jsont.t
118117551182175611831757type output = {
11841184- job_status : Defs.job_status;
17581758+ token : string; (** JWT to be used in a call to `app.bsky.contact.importContacts`. It is only valid for a single call. *)
11851759}
1186176011871761(** Jsont codec for {!type:output}. *)
11881762val output_jsont : output Jsont.t
1189176311901764 end
11911191- end
11921192- module Richtext : sig
11931193- module Facet : sig
11941194-(** Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags'). *)
17651765+ module StartPhoneVerification : sig
17661766+(** Starts a phone verification flow. The phone passed will receive a code via SMS that should be passed to `app.bsky.contact.verifyPhone`. Requires authentication. *)
17671767+1195176811961196-type tag = {
11971197- tag : string;
17691769+type input = {
17701770+ phone : string; (** The phone number to receive the code via SMS. *)
11981771}
1199177212001200-(** Jsont codec for {!type:tag}. *)
12011201-val tag_jsont : tag Jsont.t
17731773+(** Jsont codec for {!type:input}. *)
17741774+val input_jsont : input Jsont.t
1202177512031203-(** Facet feature for mention of another account. The text is usually a handle, including a '\@' prefix, but the facet reference is a DID. *)
1204177612051205-type mention = {
12061206- did : string;
12071207-}
17771777+type output = unit
1208177812091209-(** Jsont codec for {!type:mention}. *)
12101210-val mention_jsont : mention Jsont.t
17791779+(** Jsont codec for {!type:output}. *)
17801780+val output_jsont : output Jsont.t
1211178112121212-(** Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL. *)
17821782+ end
17831783+ module SendNotification : sig
17841784+(** System endpoint to send notifications related to contact imports. Requires role authentication. *)
1213178512141214-type link = {
12151215- uri : string;
12161216-}
1217178612181218-(** Jsont codec for {!type:link}. *)
12191219-val link_jsont : link Jsont.t
12201220-12211221-(** Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets. *)
12221222-12231223-type byte_slice = {
12241224- byte_end : int;
12251225- byte_start : int;
17871787+type input = {
17881788+ from : string; (** The DID of who this notification comes from. *)
17891789+ to_ : string; (** The DID of who this notification should go to. *)
12261790}
1227179112281228-(** Jsont codec for {!type:byte_slice}. *)
12291229-val byte_slice_jsont : byte_slice Jsont.t
17921792+(** Jsont codec for {!type:input}. *)
17931793+val input_jsont : input Jsont.t
1230179412311231-(** Annotation of a sub-string within rich text. *)
1232179512331233-type main = {
12341234- features : Jsont.json list;
12351235- index : byte_slice;
12361236-}
17961796+type output = unit
1237179712381238-(** Jsont codec for {!type:main}. *)
12391239-val main_jsont : main Jsont.t
17981798+(** Jsont codec for {!type:output}. *)
17991799+val output_jsont : output Jsont.t
1240180012411801 end
12421242- end
12431243- module AuthCreatePosts : sig
18021802+ module GetSyncStatus : sig
18031803+(** Gets the user's current contact import status. Requires authentication. *)
1244180412451245-type main = unit
12461246-val main_jsont : main Jsont.t
18051805+(** Query/procedure parameters. *)
18061806+type params = unit
1247180712481248- end
12491249- module Ageassurance : sig
12501250- module Defs : sig
12511251-(** The status of the Age Assurance process. *)
18081808+(** Jsont codec for {!type:params}. *)
18091809+val params_jsont : params Jsont.t
1252181012531253-type status = string
12541254-val status_jsont : status Jsont.t
1255181112561256-(** Additional metadata needed to compute Age Assurance state client-side. *)
12571257-12581258-type state_metadata = {
12591259- account_created_at : string option; (** The account creation timestamp. *)
18121812+type output = {
18131813+ sync_status : Defs.sync_status option; (** If present, indicates the user has imported their contacts. If not present, indicates the user never used the feature or called `app.bsky.contact.removeData` and didn't import again since. *)
12601814}
1261181512621262-(** Jsont codec for {!type:state_metadata}. *)
12631263-val state_metadata_jsont : state_metadata Jsont.t
18161816+(** Jsont codec for {!type:output}. *)
18171817+val output_jsont : output Jsont.t
1264181812651265-(** Object used to store Age Assurance data in stash. *)
18191819+ end
18201820+ module ImportContacts : sig
18211821+(** Import contacts for securely matching with other users. This follows the protocol explained in https://docs.bsky.app/blog/contact-import-rfc. Requires authentication. *)
1266182212671267-type event = {
12681268- access : string; (** The access level granted based on Age Assurance data we've processed. *)
12691269- attempt_id : string; (** The unique identifier for this instance of the Age Assurance flow, in UUID format. *)
12701270- complete_ip : string option; (** The IP address used when completing the Age Assurance flow. *)
12711271- complete_ua : string option; (** The user agent used when completing the Age Assurance flow. *)
12721272- country_code : string; (** The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow. *)
12731273- created_at : string; (** The date and time of this write operation. *)
12741274- email : string option; (** The email used for Age Assurance. *)
12751275- init_ip : string option; (** The IP address used when initiating the Age Assurance flow. *)
12761276- init_ua : string option; (** The user agent used when initiating the Age Assurance flow. *)
12771277- region_code : string option; (** The ISO 3166-2 region code provided when beginning the Age Assurance flow. *)
12781278- status : string; (** The status of the Age Assurance process. *)
18231823+18241824+type input = {
18251825+ contacts : string list; (** List of phone numbers in global E.164 format (e.g., '+12125550123'). Phone numbers that cannot be normalized into a valid phone number will be discarded. Should not repeat the 'phone' input used in `app.bsky.contact.verifyPhone`. *)
18261826+ token : string; (** JWT to authenticate the call. Use the JWT received as a response to the call to `app.bsky.contact.verifyPhone`. *)
12791827}
1280182812811281-(** Jsont codec for {!type:event}. *)
12821282-val event_jsont : event Jsont.t
18291829+(** Jsont codec for {!type:input}. *)
18301830+val input_jsont : input Jsont.t
1283183112841284-(** The Age Assurance configuration for a specific region. *)
1285183212861286-type config_region = {
12871287- country_code : string; (** The ISO 3166-1 alpha-2 country code this configuration applies to. *)
12881288- min_access_age : int; (** The minimum age (as a whole integer) required to use Bluesky in this region. *)
12891289- region_code : string option; (** The ISO 3166-2 region code this configuration applies to. If omitted, the configuration applies to the entire country. *)
12901290- rules : Jsont.json list; (** The ordered list of Age Assurance rules that apply to this region. Rules should be applied in order, and the first matching rule determines the access level granted. The rules array should always include a default rule as the last item. *)
18331833+type output = {
18341834+ matches_and_contact_indexes : Defs.match_and_contact_index list; (** The users that matched during import and their indexes on the input contacts, so the client can correlate with its local list. *)
12911835}
1292183612931293-(** Jsont codec for {!type:config_region}. *)
12941294-val config_region_jsont : config_region Jsont.t
18371837+(** Jsont codec for {!type:output}. *)
18381838+val output_jsont : output Jsont.t
1295183912961296-(** The access level granted based on Age Assurance data we've processed. *)
18401840+ end
18411841+ end
18421842+ module Graph : sig
18431843+ module Starterpack : sig
1297184412981298-type access = string
12991299-val access_jsont : access Jsont.t
13001300-13011301-(** The user's computed Age Assurance state. *)
13021302-13031303-type state = {
13041304- access : access;
13051305- last_initiated_at : string option; (** The timestamp when this state was last updated. *)
13061306- status : status;
18451845+type feed_item = {
18461846+ uri : string;
13071847}
1308184813091309-(** Jsont codec for {!type:state}. *)
13101310-val state_jsont : state Jsont.t
18491849+(** Jsont codec for {!type:feed_item}. *)
18501850+val feed_item_jsont : feed_item Jsont.t
1311185113121312-(** Age Assurance rule that applies if the user has declared themselves under a certain age. *)
18521852+(** Record defining a starter pack of actors and feeds for new users. *)
1313185313141314-type config_region_rule_if_declared_under_age = {
13151315- access : access;
13161316- age : int; (** The age threshold as a whole integer. *)
18541854+type main = {
18551855+ created_at : string;
18561856+ description : string option;
18571857+ description_facets : Richtext.Facet.main list option;
18581858+ feeds : Jsont.json list option;
18591859+ list_ : string; (** Reference (AT-URI) to the list record. *)
18601860+ name : string; (** Display name for starter pack; can not be empty. *)
13171861}
1318186213191319-(** Jsont codec for {!type:config_region_rule_if_declared_under_age}. *)
13201320-val config_region_rule_if_declared_under_age_jsont : config_region_rule_if_declared_under_age Jsont.t
18631863+(** Jsont codec for {!type:main}. *)
18641864+val main_jsont : main Jsont.t
1321186513221322-(** Age Assurance rule that applies if the user has declared themselves equal-to or over a certain age. *)
18661866+ end
18671867+ module GetFollows : sig
18681868+(** Enumerates accounts which a specified account (actor) follows. *)
1323186913241324-type config_region_rule_if_declared_over_age = {
13251325- access : access;
13261326- age : int; (** The age threshold as a whole integer. *)
18701870+(** Query/procedure parameters. *)
18711871+type params = {
18721872+ actor : string;
18731873+ cursor : string option;
18741874+ limit : int option;
13271875}
1328187613291329-(** Jsont codec for {!type:config_region_rule_if_declared_over_age}. *)
13301330-val config_region_rule_if_declared_over_age_jsont : config_region_rule_if_declared_over_age Jsont.t
18771877+(** Jsont codec for {!type:params}. *)
18781878+val params_jsont : params Jsont.t
1331187913321332-(** Age Assurance rule that applies if the user has been assured to be under a certain age. *)
1333188013341334-type config_region_rule_if_assured_under_age = {
13351335- access : access;
13361336- age : int; (** The age threshold as a whole integer. *)
18811881+type output = {
18821882+ cursor : string option;
18831883+ follows : Jsont.json list;
18841884+ subject : Jsont.json;
13371885}
1338188613391339-(** Jsont codec for {!type:config_region_rule_if_assured_under_age}. *)
13401340-val config_region_rule_if_assured_under_age_jsont : config_region_rule_if_assured_under_age Jsont.t
18871887+(** Jsont codec for {!type:output}. *)
18881888+val output_jsont : output Jsont.t
1341188913421342-(** Age Assurance rule that applies if the user has been assured to be equal-to or over a certain age. *)
18901890+ end
18911891+ module GetSuggestedFollowsByActor : sig
18921892+(** Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account. *)
1343189313441344-type config_region_rule_if_assured_over_age = {
13451345- access : access;
13461346- age : int; (** The age threshold as a whole integer. *)
18941894+(** Query/procedure parameters. *)
18951895+type params = {
18961896+ actor : string;
13471897}
1348189813491349-(** Jsont codec for {!type:config_region_rule_if_assured_over_age}. *)
13501350-val config_region_rule_if_assured_over_age_jsont : config_region_rule_if_assured_over_age Jsont.t
18991899+(** Jsont codec for {!type:params}. *)
19001900+val params_jsont : params Jsont.t
1351190113521352-(** Age Assurance rule that applies if the account is older than a certain date. *)
1353190213541354-type config_region_rule_if_account_older_than = {
13551355- access : access;
13561356- date : string; (** The date threshold as a datetime string. *)
19031903+type output = {
19041904+ is_fallback : bool option; (** If true, response has fallen-back to generic results, and is not scoped using relativeToDid *)
19051905+ rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
19061906+ suggestions : Jsont.json list;
13571907}
1358190813591359-(** Jsont codec for {!type:config_region_rule_if_account_older_than}. *)
13601360-val config_region_rule_if_account_older_than_jsont : config_region_rule_if_account_older_than Jsont.t
19091909+(** Jsont codec for {!type:output}. *)
19101910+val output_jsont : output Jsont.t
1361191113621362-(** Age Assurance rule that applies if the account is equal-to or newer than a certain date. *)
19121912+ end
19131913+ module Block : sig
19141914+(** Record declaring a 'block' relationship against another account. NOTE: blocks are public in Bluesky; see blog posts for details. *)
1363191513641364-type config_region_rule_if_account_newer_than = {
13651365- access : access;
13661366- date : string; (** The date threshold as a datetime string. *)
19161916+type main = {
19171917+ created_at : string;
19181918+ subject : string; (** DID of the account to be blocked. *)
13671919}
1368192013691369-(** Jsont codec for {!type:config_region_rule_if_account_newer_than}. *)
13701370-val config_region_rule_if_account_newer_than_jsont : config_region_rule_if_account_newer_than Jsont.t
19211921+(** Jsont codec for {!type:main}. *)
19221922+val main_jsont : main Jsont.t
1371192313721372-(** Age Assurance rule that applies by default. *)
19241924+ end
19251925+ module Listblock : sig
19261926+(** Record representing a block relationship against an entire an entire list of accounts (actors). *)
1373192713741374-type config_region_rule_default = {
13751375- access : access;
19281928+type main = {
19291929+ created_at : string;
19301930+ subject : string; (** Reference (AT-URI) to the mod list record. *)
13761931}
1377193213781378-(** Jsont codec for {!type:config_region_rule_default}. *)
13791379-val config_region_rule_default_jsont : config_region_rule_default Jsont.t
19331933+(** Jsont codec for {!type:main}. *)
19341934+val main_jsont : main Jsont.t
19351935+19361936+ end
19371937+ module MuteThread : sig
19381938+(** Mutes a thread preventing notifications from the thread and any of its children. Mutes are private in Bluesky. Requires auth. *)
138019391381194013821382-type config = {
13831383- regions : config_region list; (** The per-region Age Assurance configuration. *)
19411941+type input = {
19421942+ root : string;
13841943}
1385194413861386-(** Jsont codec for {!type:config}. *)
13871387-val config_jsont : config Jsont.t
19451945+(** Jsont codec for {!type:input}. *)
19461946+val input_jsont : input Jsont.t
1388194713891948 end
13901390- module GetState : sig
13911391-(** Returns server-computed Age Assurance state, if available, and any additional metadata needed to compute Age Assurance state client-side. *)
19491949+ module GetFollowers : sig
19501950+(** Enumerates accounts which follow a specified account (actor). *)
1392195113931952(** Query/procedure parameters. *)
13941953type params = {
13951395- country_code : string;
13961396- region_code : string option;
19541954+ actor : string;
19551955+ cursor : string option;
19561956+ limit : int option;
13971957}
1398195813991959(** Jsont codec for {!type:params}. *)
···140119611402196214031963type output = {
14041404- metadata : Defs.state_metadata;
14051405- state : Defs.state;
19641964+ cursor : string option;
19651965+ followers : Jsont.json list;
19661966+ subject : Jsont.json;
14061967}
1407196814081969(** Jsont codec for {!type:output}. *)
14091970val output_jsont : output Jsont.t
1410197114111972 end
14121412- module Begin : sig
14131413-(** Initiate Age Assurance for an account. *)
19731973+ module UnmuteThread : sig
19741974+(** Unmutes the specified thread. Requires auth. *)
141419751415197614161977type input = {
14171417- country_code : string; (** An ISO 3166-1 alpha-2 code of the user's location. *)
14181418- email : string; (** The user's email address to receive Age Assurance instructions. *)
14191419- language : string; (** The user's preferred language for communication during the Age Assurance process. *)
14201420- region_code : string option; (** An optional ISO 3166-2 code of the user's region or state within the country. *)
19781978+ root : string;
14211979}
1422198014231981(** Jsont codec for {!type:input}. *)
14241982val input_jsont : input Jsont.t
1425198319841984+ end
19851985+ module Follow : sig
19861986+(** Record declaring a social 'follow' relationship of another account. Duplicate follows will be ignored by the AppView. *)
1426198714271427-type output = Defs.state
19881988+type main = {
19891989+ created_at : string;
19901990+ subject : string;
19911991+ via : Com.Atproto.Repo.StrongRef.main option;
19921992+}
1428199314291429-(** Jsont codec for {!type:output}. *)
14301430-val output_jsont : output Jsont.t
19941994+(** Jsont codec for {!type:main}. *)
19951995+val main_jsont : main Jsont.t
1431199614321997 end
14331433- module GetConfig : sig
14341434-(** Returns Age Assurance configuration for use on the client. *)
19981998+ module UnmuteActor : sig
19991999+(** Unmutes the specified account. Requires auth. *)
143520001436200114371437-type output = Defs.config
14381438-14391439-(** Jsont codec for {!type:output}. *)
14401440-val output_jsont : output Jsont.t
14411441-14421442- end
14431443- end
14441444- module Embed : sig
14451445- module Defs : sig
14461446-(** width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit. *)
14471447-14481448-type aspect_ratio = {
14491449- height : int;
14501450- width : int;
20022002+type input = {
20032003+ actor : string;
14512004}
1452200514531453-(** Jsont codec for {!type:aspect_ratio}. *)
14541454-val aspect_ratio_jsont : aspect_ratio Jsont.t
20062006+(** Jsont codec for {!type:input}. *)
20072007+val input_jsont : input Jsont.t
1455200814562009 end
14571457- module External : sig
14581458-14591459-type view_external = {
14601460- description : string;
14611461- thumb : string option;
14621462- title : string;
14631463- uri : string;
14641464-}
14651465-14661466-(** Jsont codec for {!type:view_external}. *)
14671467-val view_external_jsont : view_external Jsont.t
20102010+ module MuteActorList : sig
20112011+(** Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth. *)
146820121469201314701470-type external_ = {
14711471- description : string;
14721472- thumb : Atp.Blob_ref.t option;
14731473- title : string;
14741474- uri : string;
20142014+type input = {
20152015+ list_ : string;
14752016}
1476201714771477-(** Jsont codec for {!type:external_}. *)
14781478-val external__jsont : external_ Jsont.t
20182018+(** Jsont codec for {!type:input}. *)
20192019+val input_jsont : input Jsont.t
1479202020212021+ end
20222022+ module UnmuteActorList : sig
20232023+(** Unmutes the specified list of accounts. Requires auth. *)
1480202414811481-type view = {
14821482- external_ : Jsont.json;
14831483-}
1484202514851485-(** Jsont codec for {!type:view}. *)
14861486-val view_jsont : view Jsont.t
14871487-14881488-(** A representation of some externally linked content (eg, a URL and 'card'), embedded in a Bluesky record (eg, a post). *)
14891489-14901490-type main = {
14911491- external_ : Jsont.json;
20262026+type input = {
20272027+ list_ : string;
14922028}
1493202914941494-(** Jsont codec for {!type:main}. *)
14951495-val main_jsont : main Jsont.t
20302030+(** Jsont codec for {!type:input}. *)
20312031+val input_jsont : input Jsont.t
1496203214972033 end
14981498- module Images : sig
20342034+ module GetKnownFollowers : sig
20352035+(** Enumerates accounts which follow a specified account (actor) and are followed by the viewer. *)
1499203615001500-type view_image = {
15011501- alt : string; (** Alt text description of the image, for accessibility. *)
15021502- aspect_ratio : Jsont.json option;
15031503- fullsize : string; (** Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View. *)
15041504- thumb : string; (** Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View. *)
20372037+(** Query/procedure parameters. *)
20382038+type params = {
20392039+ actor : string;
20402040+ cursor : string option;
20412041+ limit : int option;
15052042}
1506204315071507-(** Jsont codec for {!type:view_image}. *)
15081508-val view_image_jsont : view_image Jsont.t
20442044+(** Jsont codec for {!type:params}. *)
20452045+val params_jsont : params Jsont.t
150920461510204715111511-type image = {
15121512- alt : string; (** Alt text description of the image, for accessibility. *)
15131513- aspect_ratio : Jsont.json option;
15141514- image : Atp.Blob_ref.t;
20482048+type output = {
20492049+ cursor : string option;
20502050+ followers : Jsont.json list;
20512051+ subject : Jsont.json;
15152052}
1516205315171517-(** Jsont codec for {!type:image}. *)
15181518-val image_jsont : image Jsont.t
20542054+(** Jsont codec for {!type:output}. *)
20552055+val output_jsont : output Jsont.t
1519205620572057+ end
20582058+ module MuteActor : sig
20592059+(** Creates a mute relationship for the specified account. Mutes are private in Bluesky. Requires auth. *)
1520206015211521-type view = {
15221522- images : Jsont.json list;
20612061+20622062+type input = {
20632063+ actor : string;
15232064}
1524206515251525-(** Jsont codec for {!type:view}. *)
15261526-val view_jsont : view Jsont.t
20662066+(** Jsont codec for {!type:input}. *)
20672067+val input_jsont : input Jsont.t
1527206820692069+ end
20702070+ module Listitem : sig
20712071+(** Record representing an account's inclusion on a specific list. The AppView will ignore duplicate listitem records. *)
1528207215292073type main = {
15301530- images : Jsont.json list;
20742074+ created_at : string;
20752075+ list_ : string; (** Reference (AT-URI) to the list record (app.bsky.graph.list). *)
20762076+ subject : string; (** The account which is included on the list. *)
15312077}
1532207815332079(** Jsont codec for {!type:main}. *)
15342080val main_jsont : main Jsont.t
1535208115362082 end
15371537- module Video : sig
20832083+ module Defs : sig
1538208415391539-type view = {
15401540- alt : string option;
15411541- aspect_ratio : Jsont.json option;
20852085+type starter_pack_view_basic = {
15422086 cid : string;
15431543- playlist : string;
15441544- thumbnail : string option;
20872087+ creator : Jsont.json;
20882088+ indexed_at : string;
20892089+ joined_all_time_count : int option;
20902090+ joined_week_count : int option;
20912091+ labels : Com.Atproto.Label.Defs.label list option;
20922092+ list_item_count : int option;
20932093+ record : Jsont.json;
20942094+ uri : string;
15452095}
1546209615471547-(** Jsont codec for {!type:view}. *)
15481548-val view_jsont : view Jsont.t
20972097+(** Jsont codec for {!type:starter_pack_view_basic}. *)
20982098+val starter_pack_view_basic_jsont : starter_pack_view_basic Jsont.t
1549209921002100+(** lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object) *)
1550210115511551-type caption = {
15521552- file : Atp.Blob_ref.t;
15531553- lang : string;
21022102+type relationship = {
21032103+ blocked_by : string option; (** if the actor is blocked by this DID, contains the AT-URI of the block record *)
21042104+ blocked_by_list : string option; (** if the actor is blocked by this DID via a block list, contains the AT-URI of the listblock record *)
21052105+ blocking : string option; (** if the actor blocks this DID, this is the AT-URI of the block record *)
21062106+ blocking_by_list : string option; (** if the actor blocks this DID via a block list, this is the AT-URI of the listblock record *)
21072107+ did : string;
21082108+ followed_by : string option; (** if the actor is followed by this DID, contains the AT-URI of the follow record *)
21092109+ following : string option; (** if the actor follows this DID, this is the AT-URI of the follow record *)
15542110}
1555211115561556-(** Jsont codec for {!type:caption}. *)
15571557-val caption_jsont : caption Jsont.t
21122112+(** Jsont codec for {!type:relationship}. *)
21132113+val relationship_jsont : relationship Jsont.t
1558211421152115+(** A list of actors used for only for reference purposes such as within a starter pack. *)
1559211615601560-type main = {
15611561- alt : string option; (** Alt text description of the video, for accessibility. *)
15621562- aspect_ratio : Jsont.json option;
15631563- captions : Jsont.json list option;
15641564- video : Atp.Blob_ref.t; (** The mp4 video file. May be up to 100mb, formerly limited to 50mb. *)
21172117+type referencelist = string
21182118+val referencelist_jsont : referencelist Jsont.t
21192119+21202120+(** indicates that a handle or DID could not be resolved *)
21212121+21222122+type not_found_actor = {
21232123+ actor : string;
21242124+ not_found : bool;
15652125}
1566212615671567-(** Jsont codec for {!type:main}. *)
15681568-val main_jsont : main Jsont.t
21272127+(** Jsont codec for {!type:not_found_actor}. *)
21282128+val not_found_actor_jsont : not_found_actor Jsont.t
21292129+21302130+(** A list of actors to apply an aggregate moderation action (mute/block) on. *)
21312131+21322132+type modlist = string
21332133+val modlist_jsont : modlist Jsont.t
1569213415701570- end
15711571- module RecordWithMedia : sig
1572213515731573-type view = {
15741574- media : Jsont.json;
15751575- record : Jsont.json;
21362136+type list_viewer_state = {
21372137+ blocked : string option;
21382138+ muted : bool option;
15762139}
1577214015781578-(** Jsont codec for {!type:view}. *)
15791579-val view_jsont : view Jsont.t
21412141+(** Jsont codec for {!type:list_viewer_state}. *)
21422142+val list_viewer_state_jsont : list_viewer_state Jsont.t
158021431581214415821582-type main = {
15831583- media : Jsont.json;
15841584- record : Jsont.json;
21452145+type list_purpose = string
21462146+val list_purpose_jsont : list_purpose Jsont.t
21472147+21482148+21492149+type list_item_view = {
21502150+ subject : Jsont.json;
21512151+ uri : string;
15852152}
1586215315871587-(** Jsont codec for {!type:main}. *)
15881588-val main_jsont : main Jsont.t
21542154+(** Jsont codec for {!type:list_item_view}. *)
21552155+val list_item_view_jsont : list_item_view Jsont.t
21562156+21572157+(** A list of actors used for curation purposes such as list feeds or interaction gating. *)
21582158+21592159+type curatelist = string
21602160+val curatelist_jsont : curatelist Jsont.t
1589216115901590- end
15911591- module Record : sig
1592216215931593-type view_record = {
15941594- author : Jsont.json;
21632163+type list_view_basic = {
21642164+ avatar : string option;
15952165 cid : string;
15961596- embeds : Jsont.json list option;
15971597- indexed_at : string;
21662166+ indexed_at : string option;
15982167 labels : Com.Atproto.Label.Defs.label list option;
15991599- like_count : int option;
16001600- quote_count : int option;
16011601- reply_count : int option;
16021602- repost_count : int option;
21682168+ list_item_count : int option;
21692169+ name : string;
21702170+ purpose : Jsont.json;
16032171 uri : string;
16041604- value : Jsont.json; (** The record data itself. *)
21722172+ viewer : Jsont.json option;
16052173}
1606217416071607-(** Jsont codec for {!type:view_record}. *)
16081608-val view_record_jsont : view_record Jsont.t
21752175+(** Jsont codec for {!type:list_view_basic}. *)
21762176+val list_view_basic_jsont : list_view_basic Jsont.t
160921771610217816111611-type view_not_found = {
16121612- not_found : bool;
21792179+type list_view = {
21802180+ avatar : string option;
21812181+ cid : string;
21822182+ creator : Jsont.json;
21832183+ description : string option;
21842184+ description_facets : Richtext.Facet.main list option;
21852185+ indexed_at : string;
21862186+ labels : Com.Atproto.Label.Defs.label list option;
21872187+ list_item_count : int option;
21882188+ name : string;
21892189+ purpose : Jsont.json;
16132190 uri : string;
21912191+ viewer : Jsont.json option;
16142192}
1615219316161616-(** Jsont codec for {!type:view_not_found}. *)
16171617-val view_not_found_jsont : view_not_found Jsont.t
21942194+(** Jsont codec for {!type:list_view}. *)
21952195+val list_view_jsont : list_view Jsont.t
161821961619219716201620-type view_detached = {
16211621- detached : bool;
21982198+type starter_pack_view = {
21992199+ cid : string;
22002200+ creator : Jsont.json;
22012201+ feeds : Jsont.json list option;
22022202+ indexed_at : string;
22032203+ joined_all_time_count : int option;
22042204+ joined_week_count : int option;
22052205+ labels : Com.Atproto.Label.Defs.label list option;
22062206+ list_ : Jsont.json option;
22072207+ list_items_sample : Jsont.json list option;
22082208+ record : Jsont.json;
16222209 uri : string;
16232210}
1624221116251625-(** Jsont codec for {!type:view_detached}. *)
16261626-val view_detached_jsont : view_detached Jsont.t
22122212+(** Jsont codec for {!type:starter_pack_view}. *)
22132213+val starter_pack_view_jsont : starter_pack_view Jsont.t
1627221422152215+ end
22162216+ module GetBlocks : sig
22172217+(** Enumerates which accounts the requesting account is currently blocking. Requires auth. *)
1628221816291629-type view_blocked = {
16301630- author : Jsont.json;
16311631- blocked : bool;
16321632- uri : string;
22192219+(** Query/procedure parameters. *)
22202220+type params = {
22212221+ cursor : string option;
22222222+ limit : int option;
16332223}
1634222416351635-(** Jsont codec for {!type:view_blocked}. *)
16361636-val view_blocked_jsont : view_blocked Jsont.t
22252225+(** Jsont codec for {!type:params}. *)
22262226+val params_jsont : params Jsont.t
163722271638222816391639-type view = {
16401640- record : Jsont.json;
22292229+type output = {
22302230+ blocks : Jsont.json list;
22312231+ cursor : string option;
16412232}
1642223316431643-(** Jsont codec for {!type:view}. *)
16441644-val view_jsont : view Jsont.t
22342234+(** Jsont codec for {!type:output}. *)
22352235+val output_jsont : output Jsont.t
1645223622372237+ end
22382238+ module Verification : sig
22392239+(** Record declaring a verification relationship between two accounts. Verifications are only considered valid by an app if issued by an account the app considers trusted. *)
1646224016472241type main = {
16481648- record : Com.Atproto.Repo.StrongRef.main;
22422242+ created_at : string; (** Date of when the verification was created. *)
22432243+ display_name : string; (** Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying. *)
22442244+ handle : string; (** Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying. *)
22452245+ subject : string; (** DID of the subject the verification applies to. *)
16492246}
1650224716512248(** Jsont codec for {!type:main}. *)
16522249val main_jsont : main Jsont.t
1653225016542251 end
16551655- end
16561656- module Contact : sig
16571657- module SendNotification : sig
16581658-(** System endpoint to send notifications related to contact imports. Requires role authentication. *)
22522252+ module GetMutes : sig
22532253+(** Enumerates accounts that the requesting account (actor) currently has muted. Requires auth. *)
1659225416601660-16611661-type input = {
16621662- from : string; (** The DID of who this notification comes from. *)
16631663- to_ : string; (** The DID of who this notification should go to. *)
22552255+(** Query/procedure parameters. *)
22562256+type params = {
22572257+ cursor : string option;
22582258+ limit : int option;
16642259}
1665226016661666-(** Jsont codec for {!type:input}. *)
16671667-val input_jsont : input Jsont.t
22612261+(** Jsont codec for {!type:params}. *)
22622262+val params_jsont : params Jsont.t
166822631669226416701670-type output = unit
22652265+type output = {
22662266+ cursor : string option;
22672267+ mutes : Jsont.json list;
22682268+}
1671226916722270(** Jsont codec for {!type:output}. *)
16732271val output_jsont : output Jsont.t
1674227216752273 end
16761676- module StartPhoneVerification : sig
16771677-(** Starts a phone verification flow. The phone passed will receive a code via SMS that should be passed to `app.bsky.contact.verifyPhone`. Requires authentication. *)
22742274+ module GetRelationships : sig
22752275+(** Enumerates public relationships between one account, and a list of other accounts. Does not require auth. *)
1678227616791679-16801680-type input = {
16811681- phone : string; (** The phone number to receive the code via SMS. *)
22772277+(** Query/procedure parameters. *)
22782278+type params = {
22792279+ actor : string; (** Primary account requesting relationships for. *)
22802280+ others : string list option; (** List of 'other' accounts to be related back to the primary. *)
16822281}
1683228216841684-(** Jsont codec for {!type:input}. *)
16851685-val input_jsont : input Jsont.t
22832283+(** Jsont codec for {!type:params}. *)
22842284+val params_jsont : params Jsont.t
168622851687228616881688-type output = unit
22872287+type output = {
22882288+ actor : string option;
22892289+ relationships : Jsont.json list;
22902290+}
1689229116902292(** Jsont codec for {!type:output}. *)
16912293val output_jsont : output Jsont.t
1692229416932295 end
16941694- module GetMatches : sig
16951695-(** Returns the matched contacts (contacts that were mutually imported). Excludes dismissed matches. Requires authentication. *)
22962296+ module GetStarterPacksWithMembership : sig
22972297+(** A starter pack and an optional list item indicating membership of a target user to that starter pack. *)
22982298+22992299+type starter_pack_with_membership = {
23002300+ list_item : Jsont.json option;
23012301+ starter_pack : Jsont.json;
23022302+}
23032303+23042304+(** Jsont codec for {!type:starter_pack_with_membership}. *)
23052305+val starter_pack_with_membership_jsont : starter_pack_with_membership Jsont.t
23062306+23072307+(** Enumerates the starter packs created by the session user, and includes membership information about `actor` in those starter packs. Requires auth. *)
1696230816972309(** Query/procedure parameters. *)
16982310type params = {
23112311+ actor : string; (** The account (actor) to check for membership. *)
16992312 cursor : string option;
17002313 limit : int option;
17012314}
···1706231917072320type output = {
17082321 cursor : string option;
17091709- matches : Jsont.json list;
23222322+ starter_packs_with_membership : Jsont.json list;
17102323}
1711232417122325(** Jsont codec for {!type:output}. *)
17132326val output_jsont : output Jsont.t
1714232717152328 end
17161716- module VerifyPhone : sig
17171717-(** Verifies control over a phone number with a code received via SMS and starts a contact import session. Requires authentication. *)
23292329+ module GetActorStarterPacks : sig
23302330+(** Get a list of starter packs created by the actor. *)
1718233117191719-17201720-type input = {
17211721- code : string; (** The code received via SMS as a result of the call to `app.bsky.contact.startPhoneVerification`. *)
17221722- phone : string; (** The phone number to verify. Should be the same as the one passed to `app.bsky.contact.startPhoneVerification`. *)
23322332+(** Query/procedure parameters. *)
23332333+type params = {
23342334+ actor : string;
23352335+ cursor : string option;
23362336+ limit : int option;
17232337}
1724233817251725-(** Jsont codec for {!type:input}. *)
17261726-val input_jsont : input Jsont.t
23392339+(** Jsont codec for {!type:params}. *)
23402340+val params_jsont : params Jsont.t
172723411728234217292343type output = {
17301730- token : string; (** JWT to be used in a call to `app.bsky.contact.importContacts`. It is only valid for a single call. *)
23442344+ cursor : string option;
23452345+ starter_packs : Jsont.json list;
17312346}
1732234717332348(** Jsont codec for {!type:output}. *)
17342349val output_jsont : output Jsont.t
1735235017362351 end
17371737- module RemoveData : sig
17381738-(** Removes all stored hashes used for contact matching, existing matches, and sync status. Requires authentication. *)
17391739-23522352+ module List : sig
23532353+(** Record representing a list of accounts (actors). Scope includes both moderation-oriented lists and curration-oriented lists. *)
1740235417411741-type input = unit
23552355+type main = {
23562356+ avatar : Atp.Blob_ref.t option;
23572357+ created_at : string;
23582358+ description : string option;
23592359+ description_facets : Richtext.Facet.main list option;
23602360+ labels : Com.Atproto.Label.Defs.self_labels option;
23612361+ name : string; (** Display name for list; can not be empty. *)
23622362+ purpose : Jsont.json; (** Defines the purpose of the list (aka, moderation-oriented or curration-oriented) *)
23632363+}
1742236417431743-(** Jsont codec for {!type:input}. *)
17441744-val input_jsont : input Jsont.t
23652365+(** Jsont codec for {!type:main}. *)
23662366+val main_jsont : main Jsont.t
1745236723682368+ end
23692369+ module SearchStarterPacks : sig
23702370+(** Find starter packs matching search criteria. Does not require auth. *)
1746237117471747-type output = unit
23722372+(** Query/procedure parameters. *)
23732373+type params = {
23742374+ cursor : string option;
23752375+ limit : int option;
23762376+ q : string; (** Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. *)
23772377+}
1748237817491749-(** Jsont codec for {!type:output}. *)
17501750-val output_jsont : output Jsont.t
23792379+(** Jsont codec for {!type:params}. *)
23802380+val params_jsont : params Jsont.t
1751238117521752- end
17531753- module Defs : sig
1754238217551755-type sync_status = {
17561756- matches_count : int; (** Number of existing contact matches resulting of the user imports and of their imported contacts having imported the user. Matches stop being counted when the user either follows the matched contact or dismisses the match. *)
17571757- synced_at : string; (** Last date when contacts where imported. *)
23832383+type output = {
23842384+ cursor : string option;
23852385+ starter_packs : Jsont.json list;
17582386}
1759238717601760-(** Jsont codec for {!type:sync_status}. *)
17611761-val sync_status_jsont : sync_status Jsont.t
23882388+(** Jsont codec for {!type:output}. *)
23892389+val output_jsont : output Jsont.t
1762239017631763-(** A stash object to be sent via bsync representing a notification to be created. *)
23912391+ end
23922392+ module GetList : sig
23932393+(** Gets a 'view' (with additional context) of a specified list. *)
1764239417651765-type notification = {
17661766- from : string; (** The DID of who this notification comes from. *)
17671767- to_ : string; (** The DID of who this notification should go to. *)
23952395+(** Query/procedure parameters. *)
23962396+type params = {
23972397+ cursor : string option;
23982398+ limit : int option;
23992399+ list_ : string; (** Reference (AT-URI) of the list record to hydrate. *)
17682400}
1769240117701770-(** Jsont codec for {!type:notification}. *)
17711771-val notification_jsont : notification Jsont.t
24022402+(** Jsont codec for {!type:params}. *)
24032403+val params_jsont : params Jsont.t
1772240417731773-(** Associates a profile with the positional index of the contact import input in the call to `app.bsky.contact.importContacts`, so clients can know which phone caused a particular match. *)
1774240517751775-type match_and_contact_index = {
17761776- contact_index : int; (** The index of this match in the import contact input. *)
17771777- match_ : Jsont.json; (** Profile of the matched user. *)
24062406+type output = {
24072407+ cursor : string option;
24082408+ items : Jsont.json list;
24092409+ list_ : Jsont.json;
17782410}
1779241117801780-(** Jsont codec for {!type:match_and_contact_index}. *)
17811781-val match_and_contact_index_jsont : match_and_contact_index Jsont.t
24122412+(** Jsont codec for {!type:output}. *)
24132413+val output_jsont : output Jsont.t
1782241417832415 end
17841784- module DismissMatch : sig
17851785-(** Removes a match that was found via contact import. It shouldn't appear again if the same contact is re-imported. Requires authentication. *)
24162416+ module GetListBlocks : sig
24172417+(** Get mod lists that the requesting account (actor) is blocking. Requires auth. *)
1786241817871787-17881788-type input = {
17891789- subject : string; (** The subject's DID to dismiss the match with. *)
24192419+(** Query/procedure parameters. *)
24202420+type params = {
24212421+ cursor : string option;
24222422+ limit : int option;
17902423}
1791242417921792-(** Jsont codec for {!type:input}. *)
17931793-val input_jsont : input Jsont.t
24252425+(** Jsont codec for {!type:params}. *)
24262426+val params_jsont : params Jsont.t
179424271795242817961796-type output = unit
24292429+type output = {
24302430+ cursor : string option;
24312431+ lists : Jsont.json list;
24322432+}
1797243317982434(** Jsont codec for {!type:output}. *)
17992435val output_jsont : output Jsont.t
1800243618012437 end
18021802- module GetSyncStatus : sig
18031803-(** Gets the user's current contact import status. Requires authentication. *)
24382438+ module GetStarterPack : sig
24392439+(** Gets a view of a starter pack. *)
1804244018052441(** Query/procedure parameters. *)
18061806-type params = unit
24422442+type params = {
24432443+ starter_pack : string; (** Reference (AT-URI) of the starter pack record. *)
24442444+}
1807244518082446(** Jsont codec for {!type:params}. *)
18092447val params_jsont : params Jsont.t
181024481811244918122450type output = {
18131813- sync_status : Defs.sync_status option; (** If present, indicates the user has imported their contacts. If not present, indicates the user never used the feature or called `app.bsky.contact.removeData` and didn't import again since. *)
24512451+ starter_pack : Jsont.json;
18142452}
1815245318162454(** Jsont codec for {!type:output}. *)
18172455val output_jsont : output Jsont.t
1818245618192457 end
18201820- module ImportContacts : sig
18211821-(** Import contacts for securely matching with other users. This follows the protocol explained in https://docs.bsky.app/blog/contact-import-rfc. Requires authentication. *)
24582458+ module GetListsWithMembership : sig
24592459+(** A list and an optional list item indicating membership of a target user to that list. *)
24602460+24612461+type list_with_membership = {
24622462+ list_ : Jsont.json;
24632463+ list_item : Jsont.json option;
24642464+}
1822246524662466+(** Jsont codec for {!type:list_with_membership}. *)
24672467+val list_with_membership_jsont : list_with_membership Jsont.t
1823246818241824-type input = {
18251825- contacts : string list; (** List of phone numbers in global E.164 format (e.g., '+12125550123'). Phone numbers that cannot be normalized into a valid phone number will be discarded. Should not repeat the 'phone' input used in `app.bsky.contact.verifyPhone`. *)
18261826- token : string; (** JWT to authenticate the call. Use the JWT received as a response to the call to `app.bsky.contact.verifyPhone`. *)
24692469+(** Enumerates the lists created by the session user, and includes membership information about `actor` in those lists. Only supports curation and moderation lists (no reference lists, used in starter packs). Requires auth. *)
24702470+24712471+(** Query/procedure parameters. *)
24722472+type params = {
24732473+ actor : string; (** The account (actor) to check for membership. *)
24742474+ cursor : string option;
24752475+ limit : int option;
24762476+ purposes : string list option; (** Optional filter by list purpose. If not specified, all supported types are returned. *)
18272477}
1828247818291829-(** Jsont codec for {!type:input}. *)
18301830-val input_jsont : input Jsont.t
24792479+(** Jsont codec for {!type:params}. *)
24802480+val params_jsont : params Jsont.t
183124811832248218332483type output = {
18341834- matches_and_contact_indexes : Defs.match_and_contact_index list; (** The users that matched during import and their indexes on the input contacts, so the client can correlate with its local list. *)
24842484+ cursor : string option;
24852485+ lists_with_membership : Jsont.json list;
18352486}
1836248718372488(** Jsont codec for {!type:output}. *)
18382489val output_jsont : output Jsont.t
1839249018402491 end
18411841- end
18421842- module Feed : sig
18431843- module Repost : sig
18441844-(** Record representing a 'repost' of an existing Bluesky post. *)
24922492+ module GetListMutes : sig
24932493+(** Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth. *)
1845249418461846-type main = {
18471847- created_at : string;
18481848- subject : Com.Atproto.Repo.StrongRef.main;
18491849- via : Com.Atproto.Repo.StrongRef.main option;
24952495+(** Query/procedure parameters. *)
24962496+type params = {
24972497+ cursor : string option;
24982498+ limit : int option;
18502499}
1851250018521852-(** Jsont codec for {!type:main}. *)
18531853-val main_jsont : main Jsont.t
25012501+(** Jsont codec for {!type:params}. *)
25022502+val params_jsont : params Jsont.t
1854250318551855- end
18561856- module DescribeFeedGenerator : sig
1857250418581858-type links = {
18591859- privacy_policy : string option;
18601860- terms_of_service : string option;
25052505+type output = {
25062506+ cursor : string option;
25072507+ lists : Jsont.json list;
18612508}
1862250918631863-(** Jsont codec for {!type:links}. *)
18641864-val links_jsont : links Jsont.t
25102510+(** Jsont codec for {!type:output}. *)
25112511+val output_jsont : output Jsont.t
1865251225132513+ end
25142514+ module GetStarterPacks : sig
25152515+(** Get views for a list of starter packs. *)
1866251618671867-type feed = {
18681868- uri : string;
25172517+(** Query/procedure parameters. *)
25182518+type params = {
25192519+ uris : string list;
18692520}
1870252118711871-(** Jsont codec for {!type:feed}. *)
18721872-val feed_jsont : feed Jsont.t
18731873-18741874-(** Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View). *)
25222522+(** Jsont codec for {!type:params}. *)
25232523+val params_jsont : params Jsont.t
187525241876252518772526type output = {
18781878- did : string;
18791879- feeds : Jsont.json list;
18801880- links : Jsont.json option;
25272527+ starter_packs : Jsont.json list;
18812528}
1882252918832530(** Jsont codec for {!type:output}. *)
18842531val output_jsont : output Jsont.t
1885253218862533 end
18871887- module Threadgate : sig
18881888-(** Allow replies from actors mentioned in your post. *)
25342534+ module GetLists : sig
25352535+(** Enumerates the lists created by a specified account (actor). *)
1889253618901890-type mention_rule = unit
25372537+(** Query/procedure parameters. *)
25382538+type params = {
25392539+ actor : string; (** The account (actor) to enumerate lists from. *)
25402540+ cursor : string option;
25412541+ limit : int option;
25422542+ purposes : string list option; (** Optional filter by list purpose. If not specified, all supported types are returned. *)
25432543+}
1891254418921892-(** Jsont codec for {!type:mention_rule}. *)
18931893-val mention_rule_jsont : mention_rule Jsont.t
25452545+(** Jsont codec for {!type:params}. *)
25462546+val params_jsont : params Jsont.t
1894254718951895-(** Allow replies from actors on a list. *)
1896254818971897-type list_rule = {
18981898- list_ : string;
25492549+type output = {
25502550+ cursor : string option;
25512551+ lists : Jsont.json list;
18992552}
1900255319011901-(** Jsont codec for {!type:list_rule}. *)
19021902-val list_rule_jsont : list_rule Jsont.t
25542554+(** Jsont codec for {!type:output}. *)
25552555+val output_jsont : output Jsont.t
1903255619041904-(** Allow replies from actors you follow. *)
25572557+ end
25582558+ end
25592559+ module Feed : sig
25602560+ module Post : sig
25612561+(** Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings. *)
1905256219061906-type following_rule = unit
25632563+type text_slice = {
25642564+ end_ : int;
25652565+ start : int;
25662566+}
1907256719081908-(** Jsont codec for {!type:following_rule}. *)
19091909-val following_rule_jsont : following_rule Jsont.t
25682568+(** Jsont codec for {!type:text_slice}. *)
25692569+val text_slice_jsont : text_slice Jsont.t
1910257019111911-(** Allow replies from actors who follow you. *)
1912257119131913-type follower_rule = unit
25722572+type reply_ref = {
25732573+ parent : Com.Atproto.Repo.StrongRef.main;
25742574+ root : Com.Atproto.Repo.StrongRef.main;
25752575+}
1914257619151915-(** Jsont codec for {!type:follower_rule}. *)
19161916-val follower_rule_jsont : follower_rule Jsont.t
25772577+(** Jsont codec for {!type:reply_ref}. *)
25782578+val reply_ref_jsont : reply_ref Jsont.t
1917257919181918-(** Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository. *)
25802580+(** Deprecated: use facets instead. *)
1919258119201920-type main = {
19211921- allow : Jsont.json list option; (** List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply. *)
19221922- created_at : string;
19231923- hidden_replies : string list option; (** List of hidden reply URIs. *)
19241924- post : string; (** Reference (AT-URI) to the post record. *)
25822582+type entity = {
25832583+ index : Jsont.json;
25842584+ type_ : string; (** Expected values are 'mention' and 'link'. *)
25852585+ value : string;
19252586}
1926258719271927-(** Jsont codec for {!type:main}. *)
19281928-val main_jsont : main Jsont.t
25882588+(** Jsont codec for {!type:entity}. *)
25892589+val entity_jsont : entity Jsont.t
1929259019301930- end
19311931- module Like : sig
19321932-(** Record declaring a 'like' of a piece of subject content. *)
25912591+(** Record containing a Bluesky post. *)
1933259219342593type main = {
19351935- created_at : string;
19361936- subject : Com.Atproto.Repo.StrongRef.main;
19371937- via : Com.Atproto.Repo.StrongRef.main option;
25942594+ created_at : string; (** Client-declared timestamp when this post was originally created. *)
25952595+ embed : Jsont.json option;
25962596+ entities : Jsont.json list option; (** DEPRECATED: replaced by app.bsky.richtext.facet. *)
25972597+ facets : Richtext.Facet.main list option; (** Annotations of text (mentions, URLs, hashtags, etc) *)
25982598+ labels : Com.Atproto.Label.Defs.self_labels option; (** Self-label values for this post. Effectively content warnings. *)
25992599+ langs : string list option; (** Indicates human language of post primary text content. *)
26002600+ reply : Jsont.json option;
26012601+ tags : string list option; (** Additional hashtags, in addition to any included in post text and facets. *)
26022602+ text : string; (** The primary post content. May be an empty string, if there are embeds. *)
19382603}
1939260419402605(** Jsont codec for {!type:main}. *)
···19772642val output_jsont : output Jsont.t
1978264319792644 end
26452645+ module Postgate : sig
26462646+(** Disables embedding of this post. *)
26472647+26482648+type disable_rule = unit
26492649+26502650+(** Jsont codec for {!type:disable_rule}. *)
26512651+val disable_rule_jsont : disable_rule Jsont.t
26522652+26532653+(** Record defining interaction rules for a post. The record key (rkey) of the postgate record must match the record key of the post, and that record must be in the same repository. *)
26542654+26552655+type main = {
26562656+ created_at : string;
26572657+ detached_embedding_uris : string list option; (** List of AT-URIs embedding this post that the author has detached from. *)
26582658+ embedding_rules : Jsont.json list option; (** List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed. *)
26592659+ post : string; (** Reference (AT-URI) to the post record. *)
26602660+}
26612661+26622662+(** Jsont codec for {!type:main}. *)
26632663+val main_jsont : main Jsont.t
26642664+26652665+ end
19802666 module GetRepostedBy : sig
19812667(** Get a list of reposts for a given post. *)
19822668···20032689val output_jsont : output Jsont.t
2004269020052691 end
20062006- module Generator : sig
20072007-(** Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository. *)
26922692+ module DescribeFeedGenerator : sig
26932693+26942694+type links = {
26952695+ privacy_policy : string option;
26962696+ terms_of_service : string option;
26972697+}
26982698+26992699+(** Jsont codec for {!type:links}. *)
27002700+val links_jsont : links Jsont.t
27012701+27022702+27032703+type feed = {
27042704+ uri : string;
27052705+}
27062706+27072707+(** Jsont codec for {!type:feed}. *)
27082708+val feed_jsont : feed Jsont.t
27092709+27102710+(** Get information about a feed generator, including policies and offered feed URIs. Does not require auth; implemented by Feed Generator services (not App View). *)
2008271120092009-type main = {
20102010- accepts_interactions : bool option; (** Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions *)
20112011- avatar : Atp.Blob_ref.t option;
20122012- content_mode : string option;
20132013- created_at : string;
20142014- description : string option;
20152015- description_facets : Richtext.Facet.main list option;
27122712+27132713+type output = {
20162714 did : string;
20172017- display_name : string;
20182018- labels : Com.Atproto.Label.Defs.self_labels option; (** Self-label values *)
27152715+ feeds : Jsont.json list;
27162716+ links : Jsont.json option;
20192717}
2020271820212021-(** Jsont codec for {!type:main}. *)
20222022-val main_jsont : main Jsont.t
27192719+(** Jsont codec for {!type:output}. *)
27202720+val output_jsont : output Jsont.t
2023272120242722 end
20252025- module Postgate : sig
20262026-(** Disables embedding of this post. *)
27232723+ module Threadgate : sig
27242724+(** Allow replies from actors mentioned in your post. *)
2027272520282028-type disable_rule = unit
27262726+type mention_rule = unit
2029272720302030-(** Jsont codec for {!type:disable_rule}. *)
20312031-val disable_rule_jsont : disable_rule Jsont.t
27282728+(** Jsont codec for {!type:mention_rule}. *)
27292729+val mention_rule_jsont : mention_rule Jsont.t
27302730+27312731+(** Allow replies from actors on a list. *)
27322732+27332733+type list_rule = {
27342734+ list_ : string;
27352735+}
27362736+27372737+(** Jsont codec for {!type:list_rule}. *)
27382738+val list_rule_jsont : list_rule Jsont.t
2032273920332033-(** Record defining interaction rules for a post. The record key (rkey) of the postgate record must match the record key of the post, and that record must be in the same repository. *)
27402740+(** Allow replies from actors you follow. *)
27412741+27422742+type following_rule = unit
27432743+27442744+(** Jsont codec for {!type:following_rule}. *)
27452745+val following_rule_jsont : following_rule Jsont.t
27462746+27472747+(** Allow replies from actors who follow you. *)
27482748+27492749+type follower_rule = unit
27502750+27512751+(** Jsont codec for {!type:follower_rule}. *)
27522752+val follower_rule_jsont : follower_rule Jsont.t
27532753+27542754+(** Record defining interaction gating rules for a thread (aka, reply controls). The record key (rkey) of the threadgate record must match the record key of the thread's root post, and that record must be in the same repository. *)
2034275520352756type main = {
27572757+ allow : Jsont.json list option; (** List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply. *)
20362758 created_at : string;
20372037- detached_embedding_uris : string list option; (** List of AT-URIs embedding this post that the author has detached from. *)
20382038- embedding_rules : Jsont.json list option; (** List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed. *)
27592759+ hidden_replies : string list option; (** List of hidden reply URIs. *)
20392760 post : string; (** Reference (AT-URI) to the post record. *)
27612761+}
27622762+27632763+(** Jsont codec for {!type:main}. *)
27642764+val main_jsont : main Jsont.t
27652765+27662766+ end
27672767+ module Like : sig
27682768+(** Record declaring a 'like' of a piece of subject content. *)
27692769+27702770+type main = {
27712771+ created_at : string;
27722772+ subject : Com.Atproto.Repo.StrongRef.main;
27732773+ via : Com.Atproto.Repo.StrongRef.main option;
20402774}
2041277520422776(** Jsont codec for {!type:main}. *)
···23143048val feed_view_post_jsont : feed_view_post Jsont.t
2315304923163050 end
23172317- module Post : sig
23182318-(** Deprecated. Use app.bsky.richtext instead -- A text segment. Start is inclusive, end is exclusive. Indices are for utf16-encoded strings. *)
23192319-23202320-type text_slice = {
23212321- end_ : int;
23222322- start : int;
23232323-}
23242324-23252325-(** Jsont codec for {!type:text_slice}. *)
23262326-val text_slice_jsont : text_slice Jsont.t
23272327-23282328-23292329-type reply_ref = {
23302330- parent : Com.Atproto.Repo.StrongRef.main;
23312331- root : Com.Atproto.Repo.StrongRef.main;
23322332-}
23332333-23342334-(** Jsont codec for {!type:reply_ref}. *)
23352335-val reply_ref_jsont : reply_ref Jsont.t
23362336-23372337-(** Deprecated: use facets instead. *)
23382338-23392339-type entity = {
23402340- index : Jsont.json;
23412341- type_ : string; (** Expected values are 'mention' and 'link'. *)
23422342- value : string;
23432343-}
23442344-23452345-(** Jsont codec for {!type:entity}. *)
23462346-val entity_jsont : entity Jsont.t
23472347-23482348-(** Record containing a Bluesky post. *)
30513051+ module Repost : sig
30523052+(** Record representing a 'repost' of an existing Bluesky post. *)
2349305323503054type main = {
23512351- created_at : string; (** Client-declared timestamp when this post was originally created. *)
23522352- embed : Jsont.json option;
23532353- entities : Jsont.json list option; (** DEPRECATED: replaced by app.bsky.richtext.facet. *)
23542354- facets : Richtext.Facet.main list option; (** Annotations of text (mentions, URLs, hashtags, etc) *)
23552355- labels : Com.Atproto.Label.Defs.self_labels option; (** Self-label values for this post. Effectively content warnings. *)
23562356- langs : string list option; (** Indicates human language of post primary text content. *)
23572357- reply : Jsont.json option;
23582358- tags : string list option; (** Additional hashtags, in addition to any included in post text and facets. *)
23592359- text : string; (** The primary post content. May be an empty string, if there are embeds. *)
30553055+ created_at : string;
30563056+ subject : Com.Atproto.Repo.StrongRef.main;
30573057+ via : Com.Atproto.Repo.StrongRef.main option;
23603058}
2361305923623060(** Jsont codec for {!type:main}. *)
23633061val main_jsont : main Jsont.t
2364306223653063 end
23662366- module GetPosts : sig
23672367-(** Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'. *)
30643064+ module Generator : sig
30653065+(** Record declaring of the existence of a feed generator, and containing metadata about it. The record can exist in any repository. *)
2368306623692369-(** Query/procedure parameters. *)
23702370-type params = {
23712371- uris : string list; (** List of post AT-URIs to return hydrated views for. *)
30673067+type main = {
30683068+ accepts_interactions : bool option; (** Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions *)
30693069+ avatar : Atp.Blob_ref.t option;
30703070+ content_mode : string option;
30713071+ created_at : string;
30723072+ description : string option;
30733073+ description_facets : Richtext.Facet.main list option;
30743074+ did : string;
30753075+ display_name : string;
30763076+ labels : Com.Atproto.Label.Defs.self_labels option; (** Self-label values *)
23723077}
2373307823742374-(** Jsont codec for {!type:params}. *)
23752375-val params_jsont : params Jsont.t
23762376-23772377-23782378-type output = {
23792379- posts : Jsont.json list;
23802380-}
23812381-23822382-(** Jsont codec for {!type:output}. *)
23832383-val output_jsont : output Jsont.t
30793079+(** Jsont codec for {!type:main}. *)
30803080+val main_jsont : main Jsont.t
2384308123853082 end
23862386- module GetQuotes : sig
23872387-(** Get a list of quotes for a given post. *)
30833083+ module GetPostThread : sig
30843084+(** Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests. *)
2388308523893086(** Query/procedure parameters. *)
23903087type params = {
23912391- cid : string option; (** If supplied, filters to quotes of specific version (by CID) of the post record. *)
23922392- cursor : string option;
23932393- limit : int option;
23942394- uri : string; (** Reference (AT-URI) of post record *)
30883088+ depth : int option; (** How many levels of reply depth should be included in response. *)
30893089+ parent_height : int option; (** How many levels of parent (and grandparent, etc) post to include. *)
30903090+ uri : string; (** Reference (AT-URI) to post record. *)
23953091}
2396309223973093(** Jsont codec for {!type:params}. *)
···239930952400309624013097type output = {
24022402- cid : string option;
24032403- cursor : string option;
24042404- posts : Jsont.json list;
24052405- uri : string;
30983098+ thread : Jsont.json;
30993099+ threadgate : Jsont.json option;
24063100}
2407310124083102(** Jsont codec for {!type:output}. *)
24093103val output_jsont : output Jsont.t
2410310424113105 end
24122412- module GetAuthorFeed : sig
24132413-(** Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth. *)
31063106+ module GetFeed : sig
31073107+(** Get a hydrated feed from an actor's selected feed generator. Implemented by App View. *)
2414310824153109(** Query/procedure parameters. *)
24163110type params = {
24172417- actor : string;
24183111 cursor : string option;
24192419- filter : string option; (** Combinations of post/repost types to include in response. *)
24202420- include_pins : bool option;
31123112+ feed : string;
24213113 limit : int option;
24223114}
24233115···24343126val output_jsont : output Jsont.t
2435312724363128 end
24372437- module GetTimeline : sig
24382438-(** Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed. *)
31293129+ module GetQuotes : sig
31303130+(** Get a list of quotes for a given post. *)
2439313124403132(** Query/procedure parameters. *)
24413133type params = {
24422442- algorithm : string option; (** Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism. *)
31343134+ cid : string option; (** If supplied, filters to quotes of specific version (by CID) of the post record. *)
24433135 cursor : string option;
24443136 limit : int option;
31373137+ uri : string; (** Reference (AT-URI) of post record *)
24453138}
2446313924473140(** Jsont codec for {!type:params}. *)
···244931422450314324513144type output = {
31453145+ cid : string option;
24523146 cursor : string option;
24532453- feed : Jsont.json list;
31473147+ posts : Jsont.json list;
31483148+ uri : string;
24543149}
2455315024563151(** Jsont codec for {!type:output}. *)
···24803175val output_jsont : output Jsont.t
2481317624823177 end
24832483- module GetSuggestedFeeds : sig
24842484-(** Get a list of suggested feeds (feed generators) for the requesting account. *)
24852485-24862486-(** Query/procedure parameters. *)
24872487-type params = {
24882488- cursor : string option;
24892489- limit : int option;
24902490-}
24912491-24922492-(** Jsont codec for {!type:params}. *)
24932493-val params_jsont : params Jsont.t
24942494-24952495-24962496-type output = {
24972497- cursor : string option;
24982498- feeds : Jsont.json list;
24992499-}
25002500-25012501-(** Jsont codec for {!type:output}. *)
25022502-val output_jsont : output Jsont.t
25032503-25042504- end
25053178 module GetActorLikes : sig
25063179(** Get a list of posts liked by an actor. Requires auth, actor must be the requesting account. *)
25073180···25253198val output_jsont : output Jsont.t
2526319925273200 end
25282528- module GetActorFeeds : sig
25292529-(** Get a list of feeds (feed generator records) created by the actor (in the actor's repo). *)
32013201+ module GetFeedSkeleton : sig
32023202+(** Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service. *)
2530320325313204(** Query/procedure parameters. *)
25323205type params = {
25332533- actor : string;
25343206 cursor : string option;
32073207+ feed : string; (** Reference to feed generator record describing the specific feed being requested. *)
25353208 limit : int option;
25363209}
25373210···2541321425423215type output = {
25433216 cursor : string option;
25442544- feeds : Jsont.json list;
32173217+ feed : Jsont.json list;
32183218+ req_id : string option; (** Unique identifier per request that may be passed back alongside interactions. *)
25453219}
2546322025473221(** Jsont codec for {!type:output}. *)
···25813255val output_jsont : output Jsont.t
2582325625833257 end
25842584- module GetPostThread : sig
25852585-(** Get posts in a thread. Does not require auth, but additional metadata and filtering will be applied for authed requests. *)
25862586-25872587-(** Query/procedure parameters. *)
25882588-type params = {
25892589- depth : int option; (** How many levels of reply depth should be included in response. *)
25902590- parent_height : int option; (** How many levels of parent (and grandparent, etc) post to include. *)
25912591- uri : string; (** Reference (AT-URI) to post record. *)
25922592-}
25932593-25942594-(** Jsont codec for {!type:params}. *)
25952595-val params_jsont : params Jsont.t
25962596-25972597-25982598-type output = {
25992599- thread : Jsont.json;
26002600- threadgate : Jsont.json option;
26012601-}
26022602-26032603-(** Jsont codec for {!type:output}. *)
26042604-val output_jsont : output Jsont.t
26052605-26062606- end
26072607- module GetFeedSkeleton : sig
26082608-(** Get a skeleton of a feed provided by a feed generator. Auth is optional, depending on provider requirements, and provides the DID of the requester. Implemented by Feed Generator Service. *)
26092609-26102610-(** Query/procedure parameters. *)
26112611-type params = {
26122612- cursor : string option;
26132613- feed : string; (** Reference to feed generator record describing the specific feed being requested. *)
26142614- limit : int option;
26152615-}
26162616-26172617-(** Jsont codec for {!type:params}. *)
26182618-val params_jsont : params Jsont.t
26192619-26202620-26212621-type output = {
26222622- cursor : string option;
26232623- feed : Jsont.json list;
26242624- req_id : string option; (** Unique identifier per request that may be passed back alongside interactions. *)
26252625-}
26262626-26272627-(** Jsont codec for {!type:output}. *)
26282628-val output_jsont : output Jsont.t
26292629-26302630- end
26312631- module GetFeed : sig
26322632-(** Get a hydrated feed from an actor's selected feed generator. Implemented by App View. *)
26332633-26342634-(** Query/procedure parameters. *)
26352635-type params = {
26362636- cursor : string option;
26372637- feed : string;
26382638- limit : int option;
26392639-}
26402640-26412641-(** Jsont codec for {!type:params}. *)
26422642-val params_jsont : params Jsont.t
26432643-26442644-26452645-type output = {
26462646- cursor : string option;
26472647- feed : Jsont.json list;
26482648-}
26492649-26502650-(** Jsont codec for {!type:output}. *)
26512651-val output_jsont : output Jsont.t
26522652-26532653- end
26543258 module GetFeedGenerators : sig
26553259(** Get information about a list of feed generators. *)
26563260···26893293val output_jsont : output Jsont.t
2690329426913295 end
26922692- module GetFeedGenerator : sig
26932693-(** Get information about a feed generator. Implemented by AppView. *)
26942694-26952695-(** Query/procedure parameters. *)
26962696-type params = {
26972697- feed : string; (** AT-URI of the feed generator record. *)
26982698-}
26992699-27002700-(** Jsont codec for {!type:params}. *)
27012701-val params_jsont : params Jsont.t
27022702-27032703-27042704-type output = {
27052705- is_online : bool; (** Indicates whether the feed generator service has been online recently, or else seems to be inactive. *)
27062706- is_valid : bool; (** Indicates whether the feed generator service is compatible with the record declaration. *)
27072707- view : Jsont.json;
27082708-}
27092709-27102710-(** Jsont codec for {!type:output}. *)
27112711-val output_jsont : output Jsont.t
27122712-27132713- end
27142714- end
27152715- module Graph : sig
27162716- module Defs : sig
27172717-27182718-type starter_pack_view_basic = {
27192719- cid : string;
27202720- creator : Jsont.json;
27212721- indexed_at : string;
27222722- joined_all_time_count : int option;
27232723- joined_week_count : int option;
27242724- labels : Com.Atproto.Label.Defs.label list option;
27252725- list_item_count : int option;
27262726- record : Jsont.json;
27272727- uri : string;
27282728-}
27292729-27302730-(** Jsont codec for {!type:starter_pack_view_basic}. *)
27312731-val starter_pack_view_basic_jsont : starter_pack_view_basic Jsont.t
27322732-27332733-(** lists the bi-directional graph relationships between one actor (not indicated in the object), and the target actors (the DID included in the object) *)
27342734-27352735-type relationship = {
27362736- blocked_by : string option; (** if the actor is blocked by this DID, contains the AT-URI of the block record *)
27372737- blocked_by_list : string option; (** if the actor is blocked by this DID via a block list, contains the AT-URI of the listblock record *)
27382738- blocking : string option; (** if the actor blocks this DID, this is the AT-URI of the block record *)
27392739- blocking_by_list : string option; (** if the actor blocks this DID via a block list, this is the AT-URI of the listblock record *)
27402740- did : string;
27412741- followed_by : string option; (** if the actor is followed by this DID, contains the AT-URI of the follow record *)
27422742- following : string option; (** if the actor follows this DID, this is the AT-URI of the follow record *)
27432743-}
27442744-27452745-(** Jsont codec for {!type:relationship}. *)
27462746-val relationship_jsont : relationship Jsont.t
27472747-27482748-(** A list of actors used for only for reference purposes such as within a starter pack. *)
27492749-27502750-type referencelist = string
27512751-val referencelist_jsont : referencelist Jsont.t
27522752-27532753-(** indicates that a handle or DID could not be resolved *)
27542754-27552755-type not_found_actor = {
27562756- actor : string;
27572757- not_found : bool;
27582758-}
27592759-27602760-(** Jsont codec for {!type:not_found_actor}. *)
27612761-val not_found_actor_jsont : not_found_actor Jsont.t
27622762-27632763-(** A list of actors to apply an aggregate moderation action (mute/block) on. *)
27642764-27652765-type modlist = string
27662766-val modlist_jsont : modlist Jsont.t
27672767-27682768-27692769-type list_viewer_state = {
27702770- blocked : string option;
27712771- muted : bool option;
27722772-}
27732773-27742774-(** Jsont codec for {!type:list_viewer_state}. *)
27752775-val list_viewer_state_jsont : list_viewer_state Jsont.t
27762776-27772777-27782778-type list_purpose = string
27792779-val list_purpose_jsont : list_purpose Jsont.t
27802780-27812781-27822782-type list_item_view = {
27832783- subject : Jsont.json;
27842784- uri : string;
27852785-}
27862786-27872787-(** Jsont codec for {!type:list_item_view}. *)
27882788-val list_item_view_jsont : list_item_view Jsont.t
27892789-27902790-(** A list of actors used for curation purposes such as list feeds or interaction gating. *)
27912791-27922792-type curatelist = string
27932793-val curatelist_jsont : curatelist Jsont.t
27942794-27952795-27962796-type list_view_basic = {
27972797- avatar : string option;
27982798- cid : string;
27992799- indexed_at : string option;
28002800- labels : Com.Atproto.Label.Defs.label list option;
28012801- list_item_count : int option;
28022802- name : string;
28032803- purpose : Jsont.json;
28042804- uri : string;
28052805- viewer : Jsont.json option;
28062806-}
28072807-28082808-(** Jsont codec for {!type:list_view_basic}. *)
28092809-val list_view_basic_jsont : list_view_basic Jsont.t
28102810-28112811-28122812-type list_view = {
28132813- avatar : string option;
28142814- cid : string;
28152815- creator : Jsont.json;
28162816- description : string option;
28172817- description_facets : Richtext.Facet.main list option;
28182818- indexed_at : string;
28192819- labels : Com.Atproto.Label.Defs.label list option;
28202820- list_item_count : int option;
28212821- name : string;
28222822- purpose : Jsont.json;
28232823- uri : string;
28242824- viewer : Jsont.json option;
28252825-}
28262826-28272827-(** Jsont codec for {!type:list_view}. *)
28282828-val list_view_jsont : list_view Jsont.t
28292829-28302830-28312831-type starter_pack_view = {
28322832- cid : string;
28332833- creator : Jsont.json;
28342834- feeds : Jsont.json list option;
28352835- indexed_at : string;
28362836- joined_all_time_count : int option;
28372837- joined_week_count : int option;
28382838- labels : Com.Atproto.Label.Defs.label list option;
28392839- list_ : Jsont.json option;
28402840- list_items_sample : Jsont.json list option;
28412841- record : Jsont.json;
28422842- uri : string;
28432843-}
28442844-28452845-(** Jsont codec for {!type:starter_pack_view}. *)
28462846-val starter_pack_view_jsont : starter_pack_view Jsont.t
28472847-28482848- end
28492849- module UnmuteActor : sig
28502850-(** Unmutes the specified account. Requires auth. *)
28512851-28522852-28532853-type input = {
28542854- actor : string;
28552855-}
28562856-28572857-(** Jsont codec for {!type:input}. *)
28582858-val input_jsont : input Jsont.t
28592859-28602860- end
28612861- module Listitem : sig
28622862-(** Record representing an account's inclusion on a specific list. The AppView will ignore duplicate listitem records. *)
28632863-28642864-type main = {
28652865- created_at : string;
28662866- list_ : string; (** Reference (AT-URI) to the list record (app.bsky.graph.list). *)
28672867- subject : string; (** The account which is included on the list. *)
28682868-}
28692869-28702870-(** Jsont codec for {!type:main}. *)
28712871-val main_jsont : main Jsont.t
28722872-28732873- end
28742874- module GetSuggestedFollowsByActor : sig
28752875-(** Enumerates follows similar to a given account (actor). Expected use is to recommend additional accounts immediately after following one account. *)
28762876-28772877-(** Query/procedure parameters. *)
28782878-type params = {
28792879- actor : string;
28802880-}
28812881-28822882-(** Jsont codec for {!type:params}. *)
28832883-val params_jsont : params Jsont.t
28842884-28852885-28862886-type output = {
28872887- is_fallback : bool option; (** If true, response has fallen-back to generic results, and is not scoped using relativeToDid *)
28882888- rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
28892889- suggestions : Jsont.json list;
28902890-}
28912891-28922892-(** Jsont codec for {!type:output}. *)
28932893-val output_jsont : output Jsont.t
28942894-28952895- end
28962896- module MuteActorList : sig
28972897-(** Creates a mute relationship for the specified list of accounts. Mutes are private in Bluesky. Requires auth. *)
28982898-28992899-29002900-type input = {
29012901- list_ : string;
29022902-}
29032903-29042904-(** Jsont codec for {!type:input}. *)
29052905-val input_jsont : input Jsont.t
29062906-29072907- end
29082908- module GetFollowers : sig
29092909-(** Enumerates accounts which follow a specified account (actor). *)
32963296+ module GetAuthorFeed : sig
32973297+(** Get a view of an actor's 'author feed' (post and reposts by the author). Does not require auth. *)
2910329829113299(** Query/procedure parameters. *)
29123300type params = {
29133301 actor : string;
29143302 cursor : string option;
33033303+ filter : string option; (** Combinations of post/repost types to include in response. *)
33043304+ include_pins : bool option;
29153305 limit : int option;
29163306}
29173307···2921331129223312type output = {
29233313 cursor : string option;
29242924- followers : Jsont.json list;
29252925- subject : Jsont.json;
33143314+ feed : Jsont.json list;
29263315}
2927331629283317(** Jsont codec for {!type:output}. *)
29293318val output_jsont : output Jsont.t
2930331929313320 end
29322932- module MuteActor : sig
29332933-(** Creates a mute relationship for the specified account. Mutes are private in Bluesky. Requires auth. *)
29342934-29352935-29362936-type input = {
29372937- actor : string;
29382938-}
29392939-29402940-(** Jsont codec for {!type:input}. *)
29412941-val input_jsont : input Jsont.t
29422942-29432943- end
29442944- module UnmuteActorList : sig
29452945-(** Unmutes the specified list of accounts. Requires auth. *)
29462946-29472947-29482948-type input = {
29492949- list_ : string;
29502950-}
29512951-29522952-(** Jsont codec for {!type:input}. *)
29532953-val input_jsont : input Jsont.t
29542954-29552955- end
29562956- module GetBlocks : sig
29572957-(** Enumerates which accounts the requesting account is currently blocking. Requires auth. *)
33213321+ module GetFeedGenerator : sig
33223322+(** Get information about a feed generator. Implemented by AppView. *)
2958332329593324(** Query/procedure parameters. *)
29603325type params = {
29612961- cursor : string option;
29622962- limit : int option;
29632963-}
29642964-29652965-(** Jsont codec for {!type:params}. *)
29662966-val params_jsont : params Jsont.t
29672967-29682968-29692969-type output = {
29702970- blocks : Jsont.json list;
29712971- cursor : string option;
29722972-}
29732973-29742974-(** Jsont codec for {!type:output}. *)
29752975-val output_jsont : output Jsont.t
29762976-29772977- end
29782978- module Listblock : sig
29792979-(** Record representing a block relationship against an entire an entire list of accounts (actors). *)
29802980-29812981-type main = {
29822982- created_at : string;
29832983- subject : string; (** Reference (AT-URI) to the mod list record. *)
29842984-}
29852985-29862986-(** Jsont codec for {!type:main}. *)
29872987-val main_jsont : main Jsont.t
29882988-29892989- end
29902990- module MuteThread : sig
29912991-(** Mutes a thread preventing notifications from the thread and any of its children. Mutes are private in Bluesky. Requires auth. *)
29922992-29932993-29942994-type input = {
29952995- root : string;
29962996-}
29972997-29982998-(** Jsont codec for {!type:input}. *)
29992999-val input_jsont : input Jsont.t
30003000-30013001- end
30023002- module Follow : sig
30033003-(** Record declaring a social 'follow' relationship of another account. Duplicate follows will be ignored by the AppView. *)
30043004-30053005-type main = {
30063006- created_at : string;
30073007- subject : string;
30083008- via : Com.Atproto.Repo.StrongRef.main option;
30093009-}
30103010-30113011-(** Jsont codec for {!type:main}. *)
30123012-val main_jsont : main Jsont.t
30133013-30143014- end
30153015- module Starterpack : sig
30163016-30173017-type feed_item = {
30183018- uri : string;
30193019-}
30203020-30213021-(** Jsont codec for {!type:feed_item}. *)
30223022-val feed_item_jsont : feed_item Jsont.t
30233023-30243024-(** Record defining a starter pack of actors and feeds for new users. *)
30253025-30263026-type main = {
30273027- created_at : string;
30283028- description : string option;
30293029- description_facets : Richtext.Facet.main list option;
30303030- feeds : Jsont.json list option;
30313031- list_ : string; (** Reference (AT-URI) to the list record. *)
30323032- name : string; (** Display name for starter pack; can not be empty. *)
30333033-}
30343034-30353035-(** Jsont codec for {!type:main}. *)
30363036-val main_jsont : main Jsont.t
30373037-30383038- end
30393039- module GetFollows : sig
30403040-(** Enumerates accounts which a specified account (actor) follows. *)
30413041-30423042-(** Query/procedure parameters. *)
30433043-type params = {
30443044- actor : string;
30453045- cursor : string option;
30463046- limit : int option;
33263326+ feed : string; (** AT-URI of the feed generator record. *)
30473327}
3048332830493329(** Jsont codec for {!type:params}. *)
···305133313052333230533333type output = {
30543054- cursor : string option;
30553055- follows : Jsont.json list;
30563056- subject : Jsont.json;
33343334+ is_online : bool; (** Indicates whether the feed generator service has been online recently, or else seems to be inactive. *)
33353335+ is_valid : bool; (** Indicates whether the feed generator service is compatible with the record declaration. *)
33363336+ view : Jsont.json;
30573337}
3058333830593339(** Jsont codec for {!type:output}. *)
30603340val output_jsont : output Jsont.t
3061334130623342 end
30633063- module Verification : sig
30643064-(** Record declaring a verification relationship between two accounts. Verifications are only considered valid by an app if issued by an account the app considers trusted. *)
30653065-30663066-type main = {
30673067- created_at : string; (** Date of when the verification was created. *)
30683068- display_name : string; (** Display name of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current displayName matches the one at the time of verifying. *)
30693069- handle : string; (** Handle of the subject the verification applies to at the moment of verifying, which might not be the same at the time of viewing. The verification is only valid if the current handle matches the one at the time of verifying. *)
30703070- subject : string; (** DID of the subject the verification applies to. *)
30713071-}
30723072-30733073-(** Jsont codec for {!type:main}. *)
30743074-val main_jsont : main Jsont.t
30753075-30763076- end
30773077- module UnmuteThread : sig
30783078-(** Unmutes the specified thread. Requires auth. *)
30793079-30803080-30813081-type input = {
30823082- root : string;
30833083-}
30843084-30853085-(** Jsont codec for {!type:input}. *)
30863086-val input_jsont : input Jsont.t
30873087-30883088- end
30893089- module GetMutes : sig
30903090-(** Enumerates accounts that the requesting account (actor) currently has muted. Requires auth. *)
33433343+ module GetSuggestedFeeds : sig
33443344+(** Get a list of suggested feeds (feed generators) for the requesting account. *)
3091334530923346(** Query/procedure parameters. *)
30933347type params = {
···3101335531023356type output = {
31033357 cursor : string option;
31043104- mutes : Jsont.json list;
33583358+ feeds : Jsont.json list;
31053359}
3106336031073361(** Jsont codec for {!type:output}. *)
31083362val output_jsont : output Jsont.t
3109336331103364 end
31113111- module GetKnownFollowers : sig
31123112-(** Enumerates accounts which follow a specified account (actor) and are followed by the viewer. *)
33653365+ module GetActorFeeds : sig
33663366+(** Get a list of feeds (feed generator records) created by the actor (in the actor's repo). *)
3113336731143368(** Query/procedure parameters. *)
31153369type params = {
···3124337831253379type output = {
31263380 cursor : string option;
31273127- followers : Jsont.json list;
31283128- subject : Jsont.json;
33813381+ feeds : Jsont.json list;
31293382}
3130338331313384(** Jsont codec for {!type:output}. *)
31323385val output_jsont : output Jsont.t
3133338631343387 end
31353135- module Block : sig
31363136-(** Record declaring a 'block' relationship against another account. NOTE: blocks are public in Bluesky; see blog posts for details. *)
31373137-31383138-type main = {
31393139- created_at : string;
31403140- subject : string; (** DID of the account to be blocked. *)
31413141-}
31423142-31433143-(** Jsont codec for {!type:main}. *)
31443144-val main_jsont : main Jsont.t
31453145-31463146- end
31473147- module GetRelationships : sig
31483148-(** Enumerates public relationships between one account, and a list of other accounts. Does not require auth. *)
33883388+ module GetPosts : sig
33893389+(** Gets post views for a specified list of posts (by AT-URI). This is sometimes referred to as 'hydrating' a 'feed skeleton'. *)
3149339031503391(** Query/procedure parameters. *)
31513392type params = {
31523152- actor : string; (** Primary account requesting relationships for. *)
31533153- others : string list option; (** List of 'other' accounts to be related back to the primary. *)
33933393+ uris : string list; (** List of post AT-URIs to return hydrated views for. *)
31543394}
3155339531563396(** Jsont codec for {!type:params}. *)
···315833983159339931603400type output = {
31613161- actor : string option;
31623162- relationships : Jsont.json list;
34013401+ posts : Jsont.json list;
31633402}
3164340331653404(** Jsont codec for {!type:output}. *)
31663405val output_jsont : output Jsont.t
3167340631683407 end
31693169- module GetListsWithMembership : sig
31703170-(** A list and an optional list item indicating membership of a target user to that list. *)
31713171-31723172-type list_with_membership = {
31733173- list_ : Jsont.json;
31743174- list_item : Jsont.json option;
31753175-}
31763176-31773177-(** Jsont codec for {!type:list_with_membership}. *)
31783178-val list_with_membership_jsont : list_with_membership Jsont.t
31793179-31803180-(** Enumerates the lists created by the session user, and includes membership information about `actor` in those lists. Only supports curation and moderation lists (no reference lists, used in starter packs). Requires auth. *)
34083408+ module GetTimeline : sig
34093409+(** Get a view of the requesting account's home timeline. This is expected to be some form of reverse-chronological feed. *)
3181341031823411(** Query/procedure parameters. *)
31833412type params = {
31843184- actor : string; (** The account (actor) to check for membership. *)
34133413+ algorithm : string option; (** Variant 'algorithm' for timeline. Implementation-specific. NOTE: most feed flexibility has been moved to feed generator mechanism. *)
31853414 cursor : string option;
31863415 limit : int option;
31873187- purposes : string list option; (** Optional filter by list purpose. If not specified, all supported types are returned. *)
31883416}
3189341731903418(** Jsont codec for {!type:params}. *)
···3193342131943422type output = {
31953423 cursor : string option;
31963196- lists_with_membership : Jsont.json list;
34243424+ feed : Jsont.json list;
31973425}
3198342631993427(** Jsont codec for {!type:output}. *)
32003428val output_jsont : output Jsont.t
3201342932023430 end
32033203- module GetListMutes : sig
32043204-(** Enumerates mod lists that the requesting account (actor) currently has muted. Requires auth. *)
34313431+ end
34323432+ module Bookmark : sig
34333433+ module DeleteBookmark : sig
34343434+(** Deletes a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication. *)
3205343532063206-(** Query/procedure parameters. *)
32073207-type params = {
32083208- cursor : string option;
32093209- limit : int option;
32103210-}
32113211-32123212-(** Jsont codec for {!type:params}. *)
32133213-val params_jsont : params Jsont.t
3214343632153215-32163216-type output = {
32173217- cursor : string option;
32183218- lists : Jsont.json list;
34373437+type input = {
34383438+ uri : string;
32193439}
3220344032213221-(** Jsont codec for {!type:output}. *)
32223222-val output_jsont : output Jsont.t
34413441+(** Jsont codec for {!type:input}. *)
34423442+val input_jsont : input Jsont.t
3223344332243444 end
32253225- module GetActorStarterPacks : sig
32263226-(** Get a list of starter packs created by the actor. *)
32273227-32283228-(** Query/procedure parameters. *)
32293229-type params = {
32303230- actor : string;
32313231- cursor : string option;
32323232- limit : int option;
32333233-}
34453445+ module CreateBookmark : sig
34463446+(** Creates a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication. *)
3234344732353235-(** Jsont codec for {!type:params}. *)
32363236-val params_jsont : params Jsont.t
3237344832383238-32393239-type output = {
32403240- cursor : string option;
32413241- starter_packs : Jsont.json list;
34493449+type input = {
34503450+ cid : string;
34513451+ uri : string;
32423452}
3243345332443244-(** Jsont codec for {!type:output}. *)
32453245-val output_jsont : output Jsont.t
34543454+(** Jsont codec for {!type:input}. *)
34553455+val input_jsont : input Jsont.t
3246345632473457 end
32483248- module SearchStarterPacks : sig
32493249-(** Find starter packs matching search criteria. Does not require auth. *)
34583458+ module Defs : sig
3250345932513251-(** Query/procedure parameters. *)
32523252-type params = {
32533253- cursor : string option;
32543254- limit : int option;
32553255- q : string; (** Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. *)
34603460+type bookmark_view = {
34613461+ created_at : string option;
34623462+ item : Jsont.json;
34633463+ subject : Com.Atproto.Repo.StrongRef.main; (** A strong ref to the bookmarked record. *)
32563464}
3257346532583258-(** Jsont codec for {!type:params}. *)
32593259-val params_jsont : params Jsont.t
34663466+(** Jsont codec for {!type:bookmark_view}. *)
34673467+val bookmark_view_jsont : bookmark_view Jsont.t
3260346834693469+(** Object used to store bookmark data in stash. *)
3261347032623262-type output = {
32633263- cursor : string option;
32643264- starter_packs : Jsont.json list;
34713471+type bookmark = {
34723472+ subject : Com.Atproto.Repo.StrongRef.main; (** A strong ref to the record to be bookmarked. Currently, only `app.bsky.feed.post` records are supported. *)
32653473}
3266347432673267-(** Jsont codec for {!type:output}. *)
32683268-val output_jsont : output Jsont.t
34753475+(** Jsont codec for {!type:bookmark}. *)
34763476+val bookmark_jsont : bookmark Jsont.t
3269347732703478 end
32713271- module GetStarterPacksWithMembership : sig
32723272-(** A starter pack and an optional list item indicating membership of a target user to that starter pack. *)
32733273-32743274-type starter_pack_with_membership = {
32753275- list_item : Jsont.json option;
32763276- starter_pack : Jsont.json;
32773277-}
32783278-32793279-(** Jsont codec for {!type:starter_pack_with_membership}. *)
32803280-val starter_pack_with_membership_jsont : starter_pack_with_membership Jsont.t
32813281-32823282-(** Enumerates the starter packs created by the session user, and includes membership information about `actor` in those starter packs. Requires auth. *)
34793479+ module GetBookmarks : sig
34803480+(** Gets views of records bookmarked by the authenticated user. Requires authentication. *)
3283348132843482(** Query/procedure parameters. *)
32853483type params = {
32863286- actor : string; (** The account (actor) to check for membership. *)
32873484 cursor : string option;
32883485 limit : int option;
32893486}
···329334903294349132953492type output = {
34933493+ bookmarks : Defs.bookmark_view list;
32963494 cursor : string option;
32973297- starter_packs_with_membership : Jsont.json list;
32983495}
3299349633003497(** Jsont codec for {!type:output}. *)
33013498val output_jsont : output Jsont.t
3302349933033500 end
33043304- module GetLists : sig
33053305-(** Enumerates the lists created by a specified account (actor). *)
35013501+ end
35023502+ module Unspecced : sig
35033503+ module GetSuggestedUsersSkeleton : sig
35043504+(** Get a skeleton of suggested users. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsers *)
3306350533073506(** Query/procedure parameters. *)
33083507type params = {
33093309- actor : string; (** The account (actor) to enumerate lists from. *)
33103310- cursor : string option;
35083508+ category : string option; (** Category of users to get suggestions for. *)
33113509 limit : int option;
33123312- purposes : string list option; (** Optional filter by list purpose. If not specified, all supported types are returned. *)
33133313-}
33143314-33153315-(** Jsont codec for {!type:params}. *)
33163316-val params_jsont : params Jsont.t
33173317-33183318-33193319-type output = {
33203320- cursor : string option;
33213321- lists : Jsont.json list;
33223322-}
33233323-33243324-(** Jsont codec for {!type:output}. *)
33253325-val output_jsont : output Jsont.t
33263326-33273327- end
33283328- module GetStarterPack : sig
33293329-(** Gets a view of a starter pack. *)
33303330-33313331-(** Query/procedure parameters. *)
33323332-type params = {
33333333- starter_pack : string; (** Reference (AT-URI) of the starter pack record. *)
35103510+ viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). *)
33343511}
3335351233363513(** Jsont codec for {!type:params}. *)
···333835153339351633403517type output = {
33413341- starter_pack : Jsont.json;
35183518+ dids : string list;
35193519+ rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
33423520}
3343352133443522(** Jsont codec for {!type:output}. *)
33453523val output_jsont : output Jsont.t
3346352433473525 end
33483348- module GetListBlocks : sig
33493349-(** Get mod lists that the requesting account (actor) is blocking. Requires auth. *)
35263526+ module GetOnboardingSuggestedStarterPacks : sig
35273527+(** Get a list of suggested starterpacks for onboarding *)
3350352833513529(** Query/procedure parameters. *)
33523530type params = {
33533353- cursor : string option;
33543531 limit : int option;
33553532}
33563533···335935363360353733613538type output = {
33623362- cursor : string option;
33633363- lists : Jsont.json list;
33643364-}
33653365-33663366-(** Jsont codec for {!type:output}. *)
33673367-val output_jsont : output Jsont.t
33683368-33693369- end
33703370- module GetStarterPacks : sig
33713371-(** Get views for a list of starter packs. *)
33723372-33733373-(** Query/procedure parameters. *)
33743374-type params = {
33753375- uris : string list;
33763376-}
33773377-33783378-(** Jsont codec for {!type:params}. *)
33793379-val params_jsont : params Jsont.t
33803380-33813381-33823382-type output = {
33833539 starter_packs : Jsont.json list;
33843540}
33853541···33873543val output_jsont : output Jsont.t
3388354433893545 end
33903390- module GetList : sig
33913391-(** Gets a 'view' (with additional context) of a specified list. *)
35463546+ module GetPopularFeedGenerators : sig
35473547+(** An unspecced view of globally popular feed generators. *)
3392354833933549(** Query/procedure parameters. *)
33943550type params = {
33953551 cursor : string option;
33963552 limit : int option;
33973397- list_ : string; (** Reference (AT-URI) of the list record to hydrate. *)
35533553+ query : string option;
33983554}
3399355534003556(** Jsont codec for {!type:params}. *)
···3403355934043560type output = {
34053561 cursor : string option;
34063406- items : Jsont.json list;
34073407- list_ : Jsont.json;
35623562+ feeds : Jsont.json list;
34083563}
3409356434103565(** Jsont codec for {!type:output}. *)
34113566val output_jsont : output Jsont.t
3412356734133568 end
34143414- module List : sig
34153415-(** Record representing a list of accounts (actors). Scope includes both moderation-oriented lists and curration-oriented lists. *)
34163416-34173417-type main = {
34183418- avatar : Atp.Blob_ref.t option;
34193419- created_at : string;
34203420- description : string option;
34213421- description_facets : Richtext.Facet.main list option;
34223422- labels : Com.Atproto.Label.Defs.self_labels option;
34233423- name : string; (** Display name for list; can not be empty. *)
34243424- purpose : Jsont.json; (** Defines the purpose of the list (aka, moderation-oriented or curration-oriented) *)
34253425-}
34263426-34273427-(** Jsont codec for {!type:main}. *)
34283428-val main_jsont : main Jsont.t
34293429-34303430- end
34313431- end
34323432- module Bookmark : sig
34333433- module Defs : sig
34343434-34353435-type bookmark_view = {
34363436- created_at : string option;
34373437- item : Jsont.json;
34383438- subject : Com.Atproto.Repo.StrongRef.main; (** A strong ref to the bookmarked record. *)
34393439-}
34403440-34413441-(** Jsont codec for {!type:bookmark_view}. *)
34423442-val bookmark_view_jsont : bookmark_view Jsont.t
34433443-34443444-(** Object used to store bookmark data in stash. *)
34453445-34463446-type bookmark = {
34473447- subject : Com.Atproto.Repo.StrongRef.main; (** A strong ref to the record to be bookmarked. Currently, only `app.bsky.feed.post` records are supported. *)
34483448-}
34493449-34503450-(** Jsont codec for {!type:bookmark}. *)
34513451-val bookmark_jsont : bookmark Jsont.t
34523452-34533453- end
34543454- module CreateBookmark : sig
34553455-(** Creates a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication. *)
34563456-34573457-34583458-type input = {
34593459- cid : string;
34603460- uri : string;
34613461-}
34623462-34633463-(** Jsont codec for {!type:input}. *)
34643464-val input_jsont : input Jsont.t
34653465-34663466- end
34673467- module DeleteBookmark : sig
34683468-(** Deletes a private bookmark for the specified record. Currently, only `app.bsky.feed.post` records are supported. Requires authentication. *)
34693469-34703470-34713471-type input = {
34723472- uri : string;
34733473-}
34743474-34753475-(** Jsont codec for {!type:input}. *)
34763476-val input_jsont : input Jsont.t
34773477-34783478- end
34793479- module GetBookmarks : sig
34803480-(** Gets views of records bookmarked by the authenticated user. Requires authentication. *)
35693569+ module GetSuggestedStarterPacksSkeleton : sig
35703570+(** Get a skeleton of suggested starterpacks. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedStarterpacks *)
3481357134823572(** Query/procedure parameters. *)
34833573type params = {
34843484- cursor : string option;
34853574 limit : int option;
35753575+ viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). *)
34863576}
3487357734883578(** Jsont codec for {!type:params}. *)
···349035803491358134923582type output = {
34933493- bookmarks : Defs.bookmark_view list;
34943494- cursor : string option;
35833583+ starter_packs : string list;
34953584}
3496358534973586(** Jsont codec for {!type:output}. *)
34983587val output_jsont : output Jsont.t
3499358835003589 end
35013501- end
35023502- module Unspecced : sig
35033590 module GetSuggestedFeeds : sig
35043591(** Get a list of suggested feeds *)
35053592···35203607val output_jsont : output Jsont.t
3521360835223609 end
35233523- module GetSuggestedUsers : sig
35243524-(** Get a list of suggested users *)
36103610+ module GetSuggestedFeedsSkeleton : sig
36113611+(** Get a skeleton of suggested feeds. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedFeeds *)
3525361235263613(** Query/procedure parameters. *)
35273614type params = {
35283528- category : string option; (** Category of users to get suggestions for. *)
35293615 limit : int option;
36163616+ viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). *)
35303617}
3531361835323619(** Jsont codec for {!type:params}. *)
···353436213535362235363623type output = {
35373537- actors : Jsont.json list;
35383538- rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
36243624+ feeds : string list;
35393625}
3540362635413627(** Jsont codec for {!type:output}. *)
35423628val output_jsont : output Jsont.t
3543362935443630 end
35453545- module GetSuggestedUsersSkeleton : sig
35463546-(** Get a skeleton of suggested users. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedUsers *)
36313631+ module GetConfig : sig
3547363235483548-(** Query/procedure parameters. *)
35493549-type params = {
35503550- category : string option; (** Category of users to get suggestions for. *)
35513551- limit : int option;
35523552- viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). *)
36333633+type live_now_config = {
36343634+ did : string;
36353635+ domains : string list;
35533636}
3554363735553555-(** Jsont codec for {!type:params}. *)
35563556-val params_jsont : params Jsont.t
36383638+(** Jsont codec for {!type:live_now_config}. *)
36393639+val live_now_config_jsont : live_now_config Jsont.t
36403640+36413641+(** Get miscellaneous runtime configuration. *)
355736423558364335593644type output = {
35603560- dids : string list;
35613561- rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
36453645+ check_email_confirmed : bool option;
36463646+ live_now : live_now_config list option;
35623647}
3563364835643649(** Jsont codec for {!type:output}. *)
···35853670val output_jsont : output Jsont.t
3586367135873672 end
35883588- module GetOnboardingSuggestedStarterPacksSkeleton : sig
35893589-(** Get a skeleton of suggested starterpacks for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getOnboardingSuggestedStarterPacks *)
36733673+ module GetSuggestedUsers : sig
36743674+(** Get a list of suggested users *)
3590367535913676(** Query/procedure parameters. *)
35923677type params = {
36783678+ category : string option; (** Category of users to get suggestions for. *)
35933679 limit : int option;
35943594- viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). *)
35953680}
3596368135973682(** Jsont codec for {!type:params}. *)
···359936843600368536013686type output = {
36023602- starter_packs : string list;
36873687+ actors : Jsont.json list;
36883688+ rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
36033689}
3604369036053691(** Jsont codec for {!type:output}. *)
36063692val output_jsont : output Jsont.t
3607369336083694 end
36093609- module GetSuggestedFeedsSkeleton : sig
36103610-(** Get a skeleton of suggested feeds. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedFeeds *)
36953695+ module GetOnboardingSuggestedStarterPacksSkeleton : sig
36963696+(** Get a skeleton of suggested starterpacks for onboarding. Intended to be called and hydrated by app.bsky.unspecced.getOnboardingSuggestedStarterPacks *)
3611369736123698(** Query/procedure parameters. *)
36133699type params = {
···362037063621370736223708type output = {
36233623- feeds : string list;
36243624-}
36253625-36263626-(** Jsont codec for {!type:output}. *)
36273627-val output_jsont : output Jsont.t
36283628-36293629- end
36303630- module GetOnboardingSuggestedStarterPacks : sig
36313631-(** Get a list of suggested starterpacks for onboarding *)
36323632-36333633-(** Query/procedure parameters. *)
36343634-type params = {
36353635- limit : int option;
36363636-}
36373637-36383638-(** Jsont codec for {!type:params}. *)
36393639-val params_jsont : params Jsont.t
36403640-36413641-36423642-type output = {
36433643- starter_packs : Jsont.json list;
37093709+ starter_packs : string list;
36443710}
3645371136463712(** Jsont codec for {!type:output}. *)
···37733839val age_assurance_event_jsont : age_assurance_event Jsont.t
3774384037753841 end
37763776- module GetConfig : sig
38423842+ module GetTaggedSuggestions : sig
3777384337783778-type live_now_config = {
37793779- did : string;
37803780- domains : string list;
38443844+type suggestion = {
38453845+ subject : string;
38463846+ subject_type : string;
38473847+ tag : string;
37813848}
3782384937833783-(** Jsont codec for {!type:live_now_config}. *)
37843784-val live_now_config_jsont : live_now_config Jsont.t
38503850+(** Jsont codec for {!type:suggestion}. *)
38513851+val suggestion_jsont : suggestion Jsont.t
38523852+38533853+(** Get a list of suggestions (feeds and users) tagged with categories *)
3785385437863786-(** Get miscellaneous runtime configuration. *)
38553855+(** Query/procedure parameters. *)
38563856+type params = unit
38573857+38583858+(** Jsont codec for {!type:params}. *)
38593859+val params_jsont : params Jsont.t
378738603788386137893862type output = {
37903790- check_email_confirmed : bool option;
37913791- live_now : live_now_config list option;
38633863+ suggestions : suggestion list;
37923864}
3793386537943866(** Jsont codec for {!type:output}. *)
37953867val output_jsont : output Jsont.t
3796386837973869 end
37983798- module GetPopularFeedGenerators : sig
37993799-(** An unspecced view of globally popular feed generators. *)
38703870+ module SearchPostsSkeleton : sig
38713871+(** Backend Posts search, returns only skeleton *)
3800387238013873(** Query/procedure parameters. *)
38023874type params = {
38033803- cursor : string option;
38753875+ author : string option; (** Filter to posts by the given account. Handles are resolved to DID before query-time. *)
38763876+ cursor : string option; (** Optional pagination mechanism; may not necessarily allow scrolling through entire result set. *)
38773877+ domain : string option; (** Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization. *)
38783878+ lang : string option; (** Filter to posts in the given language. Expected to be based on post language field, though server may override language detection. *)
38043879 limit : int option;
38053805- query : string option;
38803880+ mentions : string option; (** Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions. *)
38813881+ q : string; (** Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. *)
38823882+ since : string option; (** Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD). *)
38833883+ sort : string option; (** Specifies the ranking order of results. *)
38843884+ tag : string list option; (** Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching. *)
38853885+ until : string option; (** Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD). *)
38863886+ url : string option; (** Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching. *)
38873887+ viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). Used for 'from:me' queries. *)
38063888}
3807388938083890(** Jsont codec for {!type:params}. *)
···3811389338123894type output = {
38133895 cursor : string option;
38143814- feeds : Jsont.json list;
38963896+ hits_total : int option; (** Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. *)
38973897+ posts : Defs.skeleton_search_post list;
38153898}
3816389938173900(** Jsont codec for {!type:output}. *)
38183901val output_jsont : output Jsont.t
3819390238203903 end
38213821- module GetTaggedSuggestions : sig
39043904+ module GetPostThreadV2 : sig
3822390538233823-type suggestion = {
38243824- subject : string;
38253825- subject_type : string;
38263826- tag : string;
39063906+type thread_item = {
39073907+ depth : int; (** The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths. *)
39083908+ uri : string;
39093909+ value : Jsont.json;
38273910}
3828391138293829-(** Jsont codec for {!type:suggestion}. *)
38303830-val suggestion_jsont : suggestion Jsont.t
39123912+(** Jsont codec for {!type:thread_item}. *)
39133913+val thread_item_jsont : thread_item Jsont.t
3831391438323832-(** Get a list of suggestions (feeds and users) tagged with categories *)
39153915+(** (NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get posts in a thread. It is based in an anchor post at any depth of the tree, and returns posts above it (recursively resolving the parent, without further branching to their replies) and below it (recursive replies, with branching to their replies). Does not require auth, but additional metadata and filtering will be applied for authed requests. *)
3833391638343917(** Query/procedure parameters. *)
38353835-type params = unit
39183918+type params = {
39193919+ above : bool option; (** Whether to include parents above the anchor. *)
39203920+ anchor : string; (** Reference (AT-URI) to post record. This is the anchor post, and the thread will be built around it. It can be any post in the tree, not necessarily a root post. *)
39213921+ below : int option; (** How many levels of replies to include below the anchor. *)
39223922+ branching_factor : int option; (** Maximum of replies to include at each level of the thread, except for the direct replies to the anchor, which are (NOTE: currently, during unspecced phase) all returned (NOTE: later they might be paginated). *)
39233923+ sort : string option; (** Sorting for the thread replies. *)
39243924+}
3836392538373926(** Jsont codec for {!type:params}. *)
38383927val params_jsont : params Jsont.t
383939283840392938413930type output = {
38423842- suggestions : suggestion list;
39313931+ has_other_replies : bool; (** Whether this thread has additional replies. If true, a call can be made to the `getPostThreadOtherV2` endpoint to retrieve them. *)
39323932+ thread : thread_item list; (** A flat list of thread items. The depth of each item is indicated by the depth property inside the item. *)
39333933+ threadgate : Jsont.json option;
38433934}
3844393538453936(** Jsont codec for {!type:output}. *)
38463937val output_jsont : output Jsont.t
3847393838483939 end
38493849- module GetSuggestedStarterPacksSkeleton : sig
38503850-(** Get a skeleton of suggested starterpacks. Intended to be called and hydrated by app.bsky.unspecced.getSuggestedStarterpacks *)
39403940+ module GetTrendingTopics : sig
39413941+(** Get a list of trending topics *)
3851394238523943(** Query/procedure parameters. *)
38533944type params = {
38543945 limit : int option;
38553855- viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). *)
39463946+ viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking. *)
38563947}
3857394838583949(** Jsont codec for {!type:params}. *)
···386039513861395238623953type output = {
38633863- starter_packs : string list;
39543954+ suggested : Defs.trending_topic list;
39553955+ topics : Defs.trending_topic list;
38643956}
3865395738663958(** Jsont codec for {!type:output}. *)
38673959val output_jsont : output Jsont.t
3868396038693961 end
38703870- module InitAgeAssurance : sig
38713871-(** Initiate age assurance for an account. This is a one-time action that will start the process of verifying the user's age. *)
38723872-38733873-38743874-type input = {
38753875- country_code : string; (** An ISO 3166-1 alpha-2 code of the user's location. *)
38763876- email : string; (** The user's email address to receive assurance instructions. *)
38773877- language : string; (** The user's preferred language for communication during the assurance process. *)
38783878-}
38793879-38803880-(** Jsont codec for {!type:input}. *)
38813881-val input_jsont : input Jsont.t
38823882-38833883-38843884-type output = Defs.age_assurance_state
38853885-38863886-(** Jsont codec for {!type:output}. *)
38873887-val output_jsont : output Jsont.t
38883888-38893889- end
38903890- module GetTrendingTopics : sig
38913891-(** Get a list of trending topics *)
39623962+ module GetTrendsSkeleton : sig
39633963+(** Get the skeleton of trends on the network. Intended to be called and then hydrated through app.bsky.unspecced.getTrends *)
3892396438933965(** Query/procedure parameters. *)
38943966type params = {
38953967 limit : int option;
38963896- viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking. *)
39683968+ viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). *)
38973969}
3898397038993971(** Jsont codec for {!type:params}. *)
···390139733902397439033975type output = {
39043904- suggested : Defs.trending_topic list;
39053905- topics : Defs.trending_topic list;
39763976+ trends : Defs.skeleton_trend list;
39063977}
3907397839083979(** Jsont codec for {!type:output}. *)
···39394010val output_jsont : output Jsont.t
3940401139414012 end
39423942- module GetSuggestionsSkeleton : sig
39433943-(** Get a skeleton of suggested actors. Intended to be called and then hydrated through app.bsky.actor.getSuggestions *)
40134013+ module InitAgeAssurance : sig
40144014+(** Initiate age assurance for an account. This is a one-time action that will start the process of verifying the user's age. *)
3944401539453945-(** Query/procedure parameters. *)
39463946-type params = {
39473947- cursor : string option;
39483948- limit : int option;
39493949- relative_to_did : string option; (** DID of the account to get suggestions relative to. If not provided, suggestions will be based on the viewer. *)
39503950- viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking. *)
39513951-}
3952401639533953-(** Jsont codec for {!type:params}. *)
39543954-val params_jsont : params Jsont.t
39553955-39563956-39573957-type output = {
39583958- actors : Defs.skeleton_search_actor list;
39593959- cursor : string option;
39603960- rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
39613961- relative_to_did : string option; (** DID of the account these suggestions are relative to. If this is returned undefined, suggestions are based on the viewer. *)
40174017+type input = {
40184018+ country_code : string; (** An ISO 3166-1 alpha-2 code of the user's location. *)
40194019+ email : string; (** The user's email address to receive assurance instructions. *)
40204020+ language : string; (** The user's preferred language for communication during the assurance process. *)
39624021}
3963402239643964-(** Jsont codec for {!type:output}. *)
39653965-val output_jsont : output Jsont.t
39663966-39673967- end
39683968- module GetAgeAssuranceState : sig
39693969-(** Returns the current state of the age assurance process for an account. This is used to check if the user has completed age assurance or if further action is required. *)
40234023+(** Jsont codec for {!type:input}. *)
40244024+val input_jsont : input Jsont.t
397040253971402639724027type output = Defs.age_assurance_state
···40004055val output_jsont : output Jsont.t
4001405640024057 end
40034003- module SearchPostsSkeleton : sig
40044004-(** Backend Posts search, returns only skeleton *)
40054005-40064006-(** Query/procedure parameters. *)
40074007-type params = {
40084008- author : string option; (** Filter to posts by the given account. Handles are resolved to DID before query-time. *)
40094009- cursor : string option; (** Optional pagination mechanism; may not necessarily allow scrolling through entire result set. *)
40104010- domain : string option; (** Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization. *)
40114011- lang : string option; (** Filter to posts in the given language. Expected to be based on post language field, though server may override language detection. *)
40124012- limit : int option;
40134013- mentions : string option; (** Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions. *)
40144014- q : string; (** Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. *)
40154015- since : string option; (** Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD). *)
40164016- sort : string option; (** Specifies the ranking order of results. *)
40174017- tag : string list option; (** Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching. *)
40184018- until : string option; (** Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD). *)
40194019- url : string option; (** Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching. *)
40204020- viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). Used for 'from:me' queries. *)
40214021-}
40224022-40234023-(** Jsont codec for {!type:params}. *)
40244024-val params_jsont : params Jsont.t
40254025-40264026-40274027-type output = {
40284028- cursor : string option;
40294029- hits_total : int option; (** Count of search hits. Optional, may be rounded/truncated, and may not be possible to paginate through all hits. *)
40304030- posts : Defs.skeleton_search_post list;
40314031-}
40324032-40334033-(** Jsont codec for {!type:output}. *)
40344034-val output_jsont : output Jsont.t
40354035-40364036- end
40374058 module SearchActorsSkeleton : sig
40384059(** Backend Actors (profile) search, returns only skeleton. *)
40394060···40604081val output_jsont : output Jsont.t
4061408240624083 end
40634063- module GetTrends : sig
40644064-(** Get the current trends on the network *)
40844084+ module GetAgeAssuranceState : sig
40854085+(** Returns the current state of the age assurance process for an account. This is used to check if the user has completed age assurance or if further action is required. *)
4065408640664066-(** Query/procedure parameters. *)
40674067-type params = {
40684068- limit : int option;
40694069-}
4070408740714071-(** Jsont codec for {!type:params}. *)
40724072-val params_jsont : params Jsont.t
40734073-40744074-40754075-type output = {
40764076- trends : Defs.trend_view list;
40774077-}
40884088+type output = Defs.age_assurance_state
4078408940794090(** Jsont codec for {!type:output}. *)
40804091val output_jsont : output Jsont.t
4081409240824093 end
40834083- module GetPostThreadV2 : sig
40844084-40854085-type thread_item = {
40864086- depth : int; (** The nesting level of this item in the thread. Depth 0 means the anchor item. Items above have negative depths, items below have positive depths. *)
40874087- uri : string;
40884088- value : Jsont.json;
40894089-}
40904090-40914091-(** Jsont codec for {!type:thread_item}. *)
40924092-val thread_item_jsont : thread_item Jsont.t
40934093-40944094-(** (NOTE: this endpoint is under development and WILL change without notice. Don't use it until it is moved out of `unspecced` or your application WILL break) Get posts in a thread. It is based in an anchor post at any depth of the tree, and returns posts above it (recursively resolving the parent, without further branching to their replies) and below it (recursive replies, with branching to their replies). Does not require auth, but additional metadata and filtering will be applied for authed requests. *)
40944094+ module GetSuggestionsSkeleton : sig
40954095+(** Get a skeleton of suggested actors. Intended to be called and then hydrated through app.bsky.actor.getSuggestions *)
4095409640964097(** Query/procedure parameters. *)
40974098type params = {
40984098- above : bool option; (** Whether to include parents above the anchor. *)
40994099- anchor : string; (** Reference (AT-URI) to post record. This is the anchor post, and the thread will be built around it. It can be any post in the tree, not necessarily a root post. *)
41004100- below : int option; (** How many levels of replies to include below the anchor. *)
41014101- branching_factor : int option; (** Maximum of replies to include at each level of the thread, except for the direct replies to the anchor, which are (NOTE: currently, during unspecced phase) all returned (NOTE: later they might be paginated). *)
41024102- sort : string option; (** Sorting for the thread replies. *)
40994099+ cursor : string option;
41004100+ limit : int option;
41014101+ relative_to_did : string option; (** DID of the account to get suggestions relative to. If not provided, suggestions will be based on the viewer. *)
41024102+ viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking. *)
41034103}
4104410441054105(** Jsont codec for {!type:params}. *)
···410741074108410841094109type output = {
41104110- has_other_replies : bool; (** Whether this thread has additional replies. If true, a call can be made to the `getPostThreadOtherV2` endpoint to retrieve them. *)
41114111- thread : thread_item list; (** A flat list of thread items. The depth of each item is indicated by the depth property inside the item. *)
41124112- threadgate : Jsont.json option;
41104110+ actors : Defs.skeleton_search_actor list;
41114111+ cursor : string option;
41124112+ rec_id : int option; (** Snowflake for this recommendation, use when submitting recommendation events. *)
41134113+ relative_to_did : string option; (** DID of the account these suggestions are relative to. If this is returned undefined, suggestions are based on the viewer. *)
41134114}
4114411541154116(** Jsont codec for {!type:output}. *)
41164117val output_jsont : output Jsont.t
4117411841184119 end
41194119- module GetTrendsSkeleton : sig
41204120-(** Get the skeleton of trends on the network. Intended to be called and then hydrated through app.bsky.unspecced.getTrends *)
41204120+ module GetTrends : sig
41214121+(** Get the current trends on the network *)
4121412241224123(** Query/procedure parameters. *)
41234124type params = {
41244125 limit : int option;
41254125- viewer : string option; (** DID of the account making the request (not included for public/unauthenticated queries). *)
41264126}
4127412741284128(** Jsont codec for {!type:params}. *)
···413041304131413141324132type output = {
41334133- trends : Defs.skeleton_trend list;
41334133+ trends : Defs.trend_view list;
41344134}
4135413541364136(** Jsont codec for {!type:output}. *)
···3030end
3131module Site : sig
3232 module Standard : sig
3333+ module Graph : sig
3434+ module Subscription : sig
3535+(** Record declaring a subscription to a publication. *)
3636+3737+type main = {
3838+ publication : string; (** AT-URI reference to the publication record being subscribed to (ex: at://did:plc:abc123/site.standard.publication/xyz789). *)
3939+}
4040+4141+(** Jsont codec for {!type:main}. *)
4242+val main_jsont : main Jsont.t
4343+4444+ end
4545+ end
3346 module Document : sig
3447(** A document record representing a published article, blog post, or other content. Documents can belong to a publication or exist independently. *)
3548···8396 accent_foreground : Color.rgb; (** Color used for button text. *)
8497 background : Color.rgb; (** Color used for content background. *)
8598 foreground : Color.rgb; (** Color used for content text. *)
8686-}
8787-8888-(** Jsont codec for {!type:main}. *)
8989-val main_jsont : main Jsont.t
9090-9191- end
9292- end
9393- module Graph : sig
9494- module Subscription : sig
9595-(** Record declaring a subscription to a publication. *)
9696-9797-type main = {
9898- publication : string; (** AT-URI reference to the publication record being subscribed to (ex: at://did:plc:abc123/site.standard.publication/xyz789). *)
9999}
100100101101(** Jsont codec for {!type:main}. *)