My agentic slop goes here. Not intended for anyone else!
1(** Vicuna Bot - User Registration and Management Bot for Zulip *)
2
3(** Create a Vicuna bot handler instance *)
4val create_handler :
5 Zulip_bot.Bot_config.t ->
6 Zulip_bot.Bot_storage.t ->
7 Zulip_bot.Bot_handler.Identity.t ->
8 Zulip_bot.Bot_handler.t
9
10(** {1 CLI Management Functions} *)
11
12(** Default admin user ID *)
13val default_admin_id : int
14
15(** Register a user with optional admin flag *)
16val register_user :
17 ?is_admin:bool ->
18 Zulip_bot.Bot_storage.t ->
19 string ->
20 int ->
21 string ->
22 (unit, Zulip.zerror) result
23
24(** Delete a user by Zulip ID *)
25val delete_user :
26 Zulip_bot.Bot_storage.t ->
27 int ->
28 (unit, Zulip.zerror) result
29
30(** Check if a user is an admin *)
31val is_admin :
32 Zulip_bot.Bot_storage.t ->
33 int ->
34 bool
35
36(** Set admin status for a user *)
37val set_admin :
38 Zulip_bot.Bot_storage.t ->
39 int ->
40 bool ->
41 (unit, Zulip.zerror) result
42
43(** Get all registered user IDs *)
44val get_all_user_ids :
45 Zulip_bot.Bot_storage.t ->
46 int list
47
48(** Look up a user by Zulip ID *)
49type user_registration = {
50 email: string;
51 zulip_id: int;
52 full_name: string;
53 registered_at: float;
54 is_admin: bool;
55}
56
57val lookup_user_by_id :
58 Zulip_bot.Bot_storage.t ->
59 int ->
60 user_registration option
61
62(** {1 Storage Management Functions} *)
63
64(** Get all storage keys *)
65val get_storage_keys :
66 Zulip_bot.Bot_storage.t ->
67 (string list, Zulip.zerror) result
68
69(** Get the value of a specific storage key *)
70val get_storage_value :
71 Zulip_bot.Bot_storage.t ->
72 string ->
73 string option
74
75(** Delete a specific storage key *)
76val delete_storage_key :
77 Zulip_bot.Bot_storage.t ->
78 string ->
79 (unit, Zulip.zerror) result
80
81(** Clear all storage (delete all keys) *)
82val clear_storage :
83 Zulip_bot.Bot_storage.t ->
84 (unit, Zulip.zerror) result