pub(crate) const CLOSE_PANE_TOOL: &str = r#"{
"name": "ClosePane",
"description": "Close a pane. With no arguments this is QuitSelf without its safeguards: it ends YOUR OWN session and closes YOUR OWN tab (sibling tabs keep running), but only after a 15-second window in which the user can keep you running. If the user told you to quit, use QuitSelf instead. Pass block_id to close ANY pane instead — including one that is unresponsive/unclickable (e.g. a pane stuck in a broken render state) — with no ownership check on the target: this is a fleet-level action, logged to the audit trail with your own verified identity as the source, same posture as FleetBulkStop. Get a target block_id from Layout. Closing a pane only removes it from the layout; the underlying agent's conversation history is not deleted. Shutting down an agent you don't own (or yourself, without the user asking this turn) waits for a 15-second user override window. Expect this call to take at least 15 seconds; the result says whether the user kept the agent running.",
"inputSchema": {
"type": "object",
"properties": {
"block_id": { "type": "string", "description": "Target pane to close (from Layout). Omit to close your own pane." },
"reason": { "type": "string", "description": "Optional note recorded in the audit log — most useful when closing another agent's pane." }
}
}
}"#;