( agentName: string, teamName?: string, )
| 82 | * @param teamName - Optional team name (defaults to CLAUDE_CODE_TEAM_NAME env var or 'default') |
| 83 | */ |
| 84 | export async function readMailbox( |
| 85 | agentName: string, |
| 86 | teamName?: string, |
| 87 | ): Promise<TeammateMessage[]> { |
| 88 | const inboxPath = getInboxPath(agentName, teamName) |
| 89 | logForDebugging(`[TeammateMailbox] readMailbox: path=${inboxPath}`) |
| 90 | |
| 91 | try { |
| 92 | const content = await readFile(inboxPath, 'utf-8') |
| 93 | const messages = jsonParse(content) as TeammateMessage[] |
| 94 | logForDebugging( |
| 95 | `[TeammateMailbox] readMailbox: read ${messages.length} message(s)`, |
| 96 | ) |
| 97 | return messages |
| 98 | } catch (error) { |
| 99 | const code = getErrnoCode(error) |
| 100 | if (code === 'ENOENT') { |
| 101 | logForDebugging(`[TeammateMailbox] readMailbox: file does not exist`) |
| 102 | return [] |
| 103 | } |
| 104 | logForDebugging(`Failed to read inbox for ${agentName}: ${error}`) |
| 105 | logError(error) |
| 106 | return [] |
| 107 | } |
| 108 | } |
| 109 | |
| 110 | /** |
| 111 | * Read only unread messages from a teammate's inbox |
no test coverage detected