Module Control.Request

SDK control request types.

type permission_r = private {
  1. tool_name : string;
  2. input : Jsont.json;
  3. permission_suggestions : Permissions.Update.t list option;
  4. blocked_path : string option;
  5. unknown : Unknown.t;
}
type initialize_r = private {
  1. hooks : (string * Jsont.json) list option;
  2. unknown : Unknown.t;
}
type set_permission_mode_r = private {
  1. mode : Permissions.Mode.t;
  2. unknown : Unknown.t;
}
type hook_callback_r = private {
  1. callback_id : string;
  2. input : Jsont.json;
  3. tool_use_id : string option;
  4. unknown : Unknown.t;
}
type mcp_message_r = private {
  1. server_name : string;
  2. message : Jsont.json;
  3. unknown : Unknown.t;
}
type set_model_r = private {
  1. model : string;
  2. unknown : Unknown.t;
}
type t =
  1. | Interrupt
  2. | Permission of permission_r
  3. | Initialize of initialize_r
  4. | Set_permission_mode of set_permission_mode_r
  5. | Hook_callback of hook_callback_r
  6. | Mcp_message of mcp_message_r
  7. | Set_model of set_model_r
  8. | Get_server_info
    (*

    The type of SDK control requests. Wire format uses "subtype" field: "interrupt", "canUseTool", "initialize", "setPermissionMode", "hookCallback", "mcpMessage", "setModel", "getServerInfo".

    *)
val jsont : t Jsont.t

jsont is the Jsont codec for requests.

val interrupt : unit -> t

interrupt () creates an interrupt request.

val permission : tool_name:string -> input:Jsont.json -> ?permission_suggestions:Permissions.Update.t list -> ?blocked_path:string -> unit -> t

permission ~tool_name ~input ?permission_suggestions ?blocked_path () creates a permission request.

val initialize : ?hooks:(string * Jsont.json) list -> unit -> t

initialize ?hooks () creates an initialize request.

val set_permission_mode : mode:Permissions.Mode.t -> unit -> t

set_permission_mode ~mode () creates a permission mode change request.

val hook_callback : callback_id:string -> input:Jsont.json -> ?tool_use_id:string -> unit -> t

hook_callback ~callback_id ~input ?tool_use_id () creates a hook callback request.

val mcp_message : server_name:string -> message:Jsont.json -> unit -> t

mcp_message ~server_name ~message () creates an MCP message request.

val set_model : model:string -> unit -> t

set_model ~model () creates a model change request.

val get_server_info : unit -> t

get_server_info () creates a server info request.