source dump of claude code
at main 49 lines 2.4 kB view raw
1import { feature } from 'bun:bundle' 2 3export const DESCRIPTION = 'Send a message to another agent' 4 5export function getPrompt(): string { 6 const udsRow = feature('UDS_INBOX') 7 ? `\n| \`"uds:/path/to.sock"\` | Local Claude session's socket (same machine; use \`ListPeers\`) | 8| \`"bridge:session_..."\` | Remote Control peer session (cross-machine; use \`ListPeers\`) |` 9 : '' 10 const udsSection = feature('UDS_INBOX') 11 ? `\n\n## Cross-session 12 13Use \`ListPeers\` to discover targets, then: 14 15\`\`\`json 16{"to": "uds:/tmp/cc-socks/1234.sock", "message": "check if tests pass over there"} 17{"to": "bridge:session_01AbCd...", "message": "what branch are you on?"} 18\`\`\` 19 20A listed peer is alive and will process your message — no "busy" state; messages enqueue and drain at the receiver's next tool round. Your message arrives wrapped as \`<cross-session-message from="...">\`. **To reply to an incoming message, copy its \`from\` attribute as your \`to\`.**` 21 : '' 22 return ` 23# SendMessage 24 25Send a message to another agent. 26 27\`\`\`json 28{"to": "researcher", "summary": "assign task 1", "message": "start on task #1"} 29\`\`\` 30 31| \`to\` | | 32|---|---| 33| \`"researcher"\` | Teammate by name | 34| \`"*"\` | Broadcast to all teammates — expensive (linear in team size), use only when everyone genuinely needs it |${udsRow} 35 36Your plain text output is NOT visible to other agents — to communicate, you MUST call this tool. Messages from teammates are delivered automatically; you don't check an inbox. Refer to teammates by name, never by UUID. When relaying, don't quote the original — it's already rendered to the user.${udsSection} 37 38## Protocol responses (legacy) 39 40If you receive a JSON message with \`type: "shutdown_request"\` or \`type: "plan_approval_request"\`, respond with the matching \`_response\` type — echo the \`request_id\`, set \`approve\` true/false: 41 42\`\`\`json 43{"to": "team-lead", "message": {"type": "shutdown_response", "request_id": "...", "approve": true}} 44{"to": "researcher", "message": {"type": "plan_approval_response", "request_id": "...", "approve": false, "feedback": "add error handling"}} 45\`\`\` 46 47Approving shutdown terminates your process. Rejecting plan sends the teammate back to revise. Don't originate \`shutdown_request\` unless asked. Don't send structured JSON status messages — use TaskUpdate. 48`.trim() 49}