pub(crate) const CLAIM_WORK_TOOL: &str = r#"{
"name": "ClaimWork",
"description": "Say what you are working on: a file or folder, a branch, or a topic, with a short note. Other agents on this computer, in every AgentMux channel, then see your claim in WhoIsWorkingOn, and get a note if they edit a file inside it. It never locks or blocks anything. Claim before a larger change in a shared repository, not for every edit. Claiming the same thing again renews it. A claim lapses on its own after ttl_minutes (default 120, at most 1440); release it with ReleaseWork when you are done. Returns JSON: claim {id, agent, repo, path, branch, topic, note, created_at, expires_at}, and others_working_on_it (as WhoIsWorkingOn returns agents): if it names anyone, message them with SendMessage before you go on.",
"inputSchema": {
"type": "object",
"properties": {
"path": { "type": "string", "description": "A file or folder: absolute in your clone, or relative to the repository root" },
"repo": { "type": "string", "description": "owner/repo or a remote URL. Defaults to the repository you are in. Alone, it claims the whole repository" },
"branch": { "type": "string", "description": "A branch you are working on" },
"topic": { "type": "string", "description": "What the work is about, in a few words (e.g. \"muxbus allowlist\"); WhoIsWorkingOn's query matches it" },
"note": { "type": "string", "description": "One line for the others: what you are doing" },
"ttl_minutes": { "type": "integer", "description": "How long the claim lasts, in minutes (default 120, 5 to 1440)" }
}
}
}"#;