utils/teammate/teammate_utils
library
Functions
-
appendTeamMemorySummaryParts(Map<String, int> memoryCounts, bool isActive, List<String> parts)
→ void
-
Append team memory summary parts to the parts array.
-
clearDynamicTeamContext()
→ void
-
Clear the dynamic team context (called when leaving a team).
-
clearMailbox(String agentName, {String? teamName})
→ Future<void>
-
Clear a teammate's inbox (delete all messages).
-
createIdleNotification(String agentId, {String? idleReason, String? summary, String? completedTaskId, String? completedStatus, String? failureReason})
→ IdleNotificationMessage
-
Creates an idle notification message to send to the team leader.
-
createModeSetRequestMessage({required String mode, required String from})
→ ModeSetRequestMessage
-
Creates a mode set request message.
-
createPermissionRequestMessage({required String requestId, required String agentId, required String toolName, required String toolUseId, required String description, required Map<String, dynamic> input, List? permissionSuggestions})
→ PermissionRequestMessage
-
Creates a permission request message.
-
createPermissionResponseMessage({required String requestId, required String subtype, String? error, Map<String, dynamic>? updatedInput, List? permissionUpdates})
→ PermissionResponseMessage
-
Creates a permission response message.
-
createSandboxPermissionRequestMessage({required String requestId, required String workerId, required String workerName, String? workerColor, required String host})
→ SandboxPermissionRequestMessage
-
Creates a sandbox permission request.
-
createSandboxPermissionResponseMessage({required String requestId, required String host, required bool allow})
→ SandboxPermissionResponseMessage
-
Creates a sandbox permission response.
-
createShutdownApprovedMessage({required String requestId, required String from, String? paneId, String? backendType})
→ ShutdownApprovedMessage
-
Creates a shutdown approved message.
-
createShutdownRejectedMessage({required String requestId, required String from, required String reason})
→ ShutdownRejectedMessage
-
Creates a shutdown rejected message.
-
createShutdownRequestMessage({required String requestId, required String from, String? reason})
→ ShutdownRequestMessage
-
Creates a shutdown request message.
-
createTeammateContext({required String agentId, required String agentName, required String teamName, String? color, required bool planModeRequired, required String parentSessionId, Completer<void>? abortController})
→ TeammateContext
-
Create a TeammateContext from spawn configuration.
-
formatTeammateMessages(List<TeammateMessage> messages)
→ String
-
Format teammate messages as XML for attachment display.
-
getAgentId()
→ String?
-
Returns the agent ID if this session is running as a teammate in a swarm,
or
null if running as a standalone session.
-
getAgentName()
→ String?
-
Returns the agent name if running as a teammate in a swarm.
-
getDynamicTeamContext()
→ DynamicTeamContext?
-
Get the current dynamic team context (for inspection / debugging).
-
getInboxPath(String agentName, {String? teamName})
→ String
-
Get the path to a teammate's inbox file.
-
getLastPeerDmSummary(List<Map<String, dynamic>> messages)
→ String?
-
Extracts a "
to {name} {summary}" string from the last assistant message
if it ended with a SendMessage tool_use targeting a peer.
-
getParentSessionId()
→ String?
-
Returns the parent session ID for this teammate.
Priority: AsyncLocalStorage (in-process) > dynamicTeamContext (tmux).
-
getTeammateColor()
→ String?
-
Returns the teammate's assigned colour, or
null.
-
getTeammateContext()
→ TeammateContext?
-
Get the current in-process teammate context, if running as one.
Returns
null if not running within an in-process teammate context.
-
getTeammateStatuses(String teamName, {Map<String, dynamic>? teamFileOverride})
→ List<TeammateStatus>
-
Get detailed teammate statuses for a team by reading the team file.
-
getTeamName({String? teamContextTeamName})
→ String?
-
Returns the team name if this session is part of a team.
Pass
teamContext from AppState to support leaders without dynamicTeamContext.
-
hasActiveInProcessTeammates(Map<String, InProcessTeammateTask> tasks)
→ bool
-
Checks if there are any active in-process teammates running.
-
hasWorkingInProcessTeammates(Map<String, InProcessTeammateTask> tasks)
→ bool
-
Checks if there are in-process teammates still actively working on tasks.
-
isIdleNotification(String messageText)
→ IdleNotificationMessage?
-
Checks if a message text contains an idle notification.
-
isInProcessTeammate()
→ bool
-
Check if current execution is within an in-process teammate.
-
isModeSetRequest(String messageText)
→ ModeSetRequestMessage?
-
Checks if a message text contains a mode set request.
-
isPermissionRequest(String messageText)
→ PermissionRequestMessage?
-
Checks if a message text contains a permission request.
-
isPermissionResponse(String messageText)
→ PermissionResponseMessage?
-
Checks if a message text contains a permission response.
-
isPlanApprovalRequest(String messageText)
→ PlanApprovalRequestMessage?
-
Checks if a message text contains a plan approval request.
-
isPlanApprovalResponse(String messageText)
→ PlanApprovalResponseMessage?
-
Checks if a message text contains a plan approval response.
-
isPlanModeRequired()
→ bool
-
Returns
true if this teammate session requires plan mode before
implementation.
-
isSandboxPermissionRequest(String messageText)
→ SandboxPermissionRequestMessage?
-
Checks if a message text contains a sandbox permission request.
-
isSandboxPermissionResponse(String messageText)
→ SandboxPermissionResponseMessage?
-
Checks if a message text contains a sandbox permission response.
-
isShutdownApproved(String messageText)
→ ShutdownApprovedMessage?
-
Checks if a message text contains a shutdown approved message.
-
isShutdownRejected(String messageText)
→ ShutdownRejectedMessage?
-
Checks if a message text contains a shutdown rejected message.
-
isShutdownRequest(String messageText)
→ ShutdownRequestMessage?
-
Checks if a message text contains a shutdown request.
-
isStructuredProtocolMessage(String messageText)
→ bool
-
Checks if a message text is a structured protocol message.
-
isTaskAssignment(String messageText)
→ TaskAssignmentMessage?
-
Checks if a message text contains a task assignment.
-
isTeamLead({String? leadAgentId})
→ bool
-
Check if this session is a team lead.
-
isTeammate()
→ bool
-
Returns
true if this session is running as a teammate in a swarm.
-
isTeamMemFile(String path)
→ bool
-
Checks if a path is a team memory file.
-
isTeamMemorySearch(Map<String, dynamic>? toolInput)
→ bool
-
Check if a search tool use targets team memory files.
-
isTeamMemoryWriteOrEdit(String toolName, Map<String, dynamic>? toolInput)
→ bool
-
Check if a Write or Edit tool use targets a team memory file.
-
isTeamPermissionUpdate(String messageText)
→ TeamPermissionUpdateMessage?
-
Checks if a message text contains a team permission update.
-
markMessageAsReadByIndex(String agentName, int messageIndex, {String? teamName})
→ Future<void>
-
Mark a specific message as read by index.
-
markMessagesAsRead(String agentName, {String? teamName})
→ Future<void>
-
Mark all messages in a teammate's inbox as read.
-
markMessagesAsReadByPredicate(String agentName, bool predicate(TeammateMessage), {String? teamName})
→ Future<void>
-
Mark messages matching
predicate as read, leaving others unread.
-
readMailbox(String agentName, {String? teamName})
→ Future<List<TeammateMessage>>
-
Read all messages from a teammate's inbox.
-
readUnreadMessages(String agentName, {String? teamName})
→ Future<List<TeammateMessage>>
-
Read only unread messages from a teammate's inbox.
-
runWithTeammateContext<T>(TeammateContext context, T fn())
→ T
-
Run
fn with context set as the current teammate context.
Dart equivalent of AsyncLocalStorage.run().
-
sendShutdownRequestToMailbox(String targetName, {String? teamName, String? reason})
→ Future<({String requestId, String target})>
-
Sends a shutdown request to a teammate's mailbox.
-
setDynamicTeamContext(DynamicTeamContext? context)
→ void
-
Set the dynamic team context (called when joining a team at runtime).
-
waitForTeammatesToBecomeIdle(Map<String, InProcessTeammateTask> tasks, void setTasks(Map<String, InProcessTeammateTask> updateFn(Map<String, InProcessTeammateTask>)))
→ Future<void>
-
Returns a future that completes when all working in-process teammates
become idle. Returns immediately if no teammates are working.
-
writeToMailbox(String recipientName, TeammateMessage message, {String? teamName})
→ Future<void>
-
Write a message to a teammate's inbox.
Uses file locking via a .lock file sentinel to prevent race conditions.