use std::collections::BTreeMap;
use schemars::JsonSchema;
use serde::Deserialize;
use serde_json::Value;
pub(super) const LOOK_LINES_MIN: u64 = 1;
pub(super) const LOOK_LINES_MAX: u64 = 1000;
pub(super) const LIST_SESSIONS_SCHEMA_VERSION: &str = "1";
pub(super) const LIST_COMMAND_PRINCIPALS: &str = "principals";
pub(super) const TOOL_HELP: &str = "help";
pub(super) const TOOL_LIST: &str = "list";
pub(super) const TOOL_LOOK: &str = "look";
pub(super) const TOOL_RAWW: &str = "raww";
pub(super) const TOOL_SEND: &str = "send";
pub(super) const TOOL_GRANT: &str = "grant";
pub(super) const GRANT_COMMAND_LIST: &str = "list";
pub(super) const GRANT_COMMAND_RESOLVE: &str = "resolve";
pub(super) const GRANT_OUTCOME_SELECTED: &str = "selected";
pub(super) const GRANT_OUTCOME_CANCELLED: &str = "cancelled";
pub(super) const TOOL_UPDOWN: &str = "updown";
pub(super) const UPDOWN_COMMAND_UP: &str = "up";
pub(super) const UPDOWN_COMMAND_DOWN: &str = "down";
pub(super) const TOOL_NEW: &str = "new";
pub(super) const NEW_COMMAND_PEER: &str = "peer";
pub(super) const TOOL_CHANGE: &str = "change";
pub(super) const CHANGE_COMMAND_PSK: &str = "psk";
pub(super) const NAMESPACE_AGENTMUX: &str = "agentmux";
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct ListParams {
#[serde(default)]
pub(super) command: Option<String>,
#[schemars(with = "std::collections::BTreeMap<String, serde_json::Value>")]
#[serde(default)]
pub(super) args: Value,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct HelpParams {
#[serde(default)]
pub(super) query: Option<String>,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct ListArgs {
#[serde(default)]
pub(super) namespace: Option<String>,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct SendParams {
#[serde(default)]
pub(super) request_id: Option<String>,
pub(super) message: String,
#[serde(default)]
pub(super) targets: Vec<String>,
#[serde(default)]
pub(super) broadcast: bool,
#[serde(default)]
pub(super) quiescence_timeout_ms: Option<u64>,
#[serde(default)]
pub(super) acp_turn_timeout_ms: Option<u64>,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct LookParams {
pub(super) target_session: String,
#[serde(default)]
pub(super) lines: Option<u64>,
#[serde(default)]
pub(super) offset: Option<u64>,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct GrantParams {
#[serde(default)]
pub(super) command: Option<String>,
#[schemars(with = "std::collections::BTreeMap<String, serde_json::Value>")]
#[serde(default)]
pub(super) args: Value,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct GrantListArgs {
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct GrantResolveArgs {
#[serde(default)]
pub(super) permission_request_id: Option<String>,
#[serde(default)]
pub(super) outcome: Option<String>,
#[serde(default)]
pub(super) option_id: Option<String>,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct UpdownParams {
#[serde(default)]
pub(super) command: Option<String>,
#[schemars(with = "std::collections::BTreeMap<String, serde_json::Value>")]
#[serde(default)]
pub(super) args: Value,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct UpdownArgs {
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct NewParams {
#[serde(default)]
pub(super) command: Option<String>,
#[schemars(with = "std::collections::BTreeMap<String, serde_json::Value>")]
#[serde(default)]
pub(super) args: Value,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct NewPeerArgs {
#[serde(default)]
pub(super) principal_id: Option<String>,
#[serde(default)]
pub(super) scope: Option<String>,
#[serde(default)]
pub(super) output_path: Option<String>,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct ChangeParams {
#[serde(default)]
pub(super) command: Option<String>,
#[schemars(with = "std::collections::BTreeMap<String, serde_json::Value>")]
#[serde(default)]
pub(super) args: Value,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Default, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct ChangePskArgs {
#[serde(default)]
pub(super) principal_id: Option<String>,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}
#[derive(Debug, Deserialize, JsonSchema)]
#[schemars(deny_unknown_fields)]
pub(super) struct RawwParams {
pub(super) target_session: String,
pub(super) text: String,
#[serde(default)]
pub(super) no_enter: bool,
#[serde(default)]
pub(super) request_id: Option<String>,
#[serde(flatten, default)]
#[schemars(skip)]
pub(super) extra_fields: BTreeMap<String, Value>,
}