Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
1.7 kB · 69 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970import type { AppState } from '../state/AppState.js'
/** * Parse `@agent-name message` syntax for direct team member messaging. */export function parseDirectMemberMessage(input: string): { recipientName: string message: string} | null { const match = input.match(/^@([\w-]+)\s+(.+)$/s) if (!match) return null
const [, recipientName, message] = match if (!recipientName || !message) return null
const trimmedMessage = message.trim() if (!trimmedMessage) return null
return { recipientName, message: trimmedMessage }}
export type DirectMessageResult = | { success: true; recipientName: string } | { success: false error: 'no_team_context' | 'unknown_recipient' recipientName?: string }
type WriteToMailboxFn = ( recipientName: string, message: { from: string; text: string; timestamp: string }, teamName: string,) => Promise<void>
/** * Send a direct message to a team member, bypassing the model. */export async function sendDirectMemberMessage( recipientName: string, message: string, teamContext: AppState['teamContext'], writeToMailbox?: WriteToMailboxFn,): Promise<DirectMessageResult> { if (!teamContext || !writeToMailbox) { return { success: false, error: 'no_team_context' } }
// Find team member by name const member = Object.values(teamContext.teammates ?? {}).find( t => t.name === recipientName, )
if (!member) { return { success: false, error: 'unknown_recipient', recipientName } }
await writeToMailbox( recipientName, { from: 'user', text: message, timestamp: new Date().toISOString(), }, teamContext.teamName, )
return { success: true, recipientName }}