SendMessageTool class

SendMessage tool -- delivers messages between agents in a multi-agent swarm system.

Supports plain text messages, structured shutdown/plan messages, broadcast to all teammates, in-process agent routing with auto-resume, and message queuing for offline agents.

Inheritance

Constructors

SendMessageTool({TeamContext getTeamContext()?, String getAgentName()?, String? getAgentColor()?, bool getIsTeamLead()?, bool getIsTeammate()?, bool isSwarmEnabled()?})

Properties

alwaysLoad bool
Whether this tool should always be loaded (never deferred).
no setterinherited
definition ToolDefinition
Convert to API tool definition.
no setterinherited
description String
Human-readable description.
no setteroverride
getAgentColor String? Function()?
Agent color for display.
getter/setter pair
getAgentName String Function()?
Agent name for this instance (injected at construction).
getter/setter pair
getIsTeamLead bool Function()?
Whether the agent is a team lead.
getter/setter pair
getIsTeammate bool Function()?
Whether the agent is a teammate.
getter/setter pair
getTeamContext TeamContext Function()?
Team context provider (injected at construction).
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
inputSchema Map<String, dynamic>
JSON Schema for the tool's input parameters.
no setteroverride
interruptBehavior InterruptBehavior
How this tool behaves when interrupted by user input.
no setterinherited
isAvailable bool
Whether this tool is available on the current platform.
no setteroverride
isConcurrencySafe bool
Whether this tool is safe to run concurrently with other tools.
no setterinherited
isDestructive bool
Whether this tool can cause destructive changes.
no setterinherited
isEnabled bool
Whether this tool is enabled (can be toggled by config).
no setteroverride
isMcp bool
Whether this tool comes from an MCP server.
no setterinherited
isReadOnly bool
Whether this tool only reads data (no side effects).
no setterinherited
isSwarmEnabled bool Function()?
Whether swarms are enabled.
getter/setter pair
maxResultSizeChars int?
Maximum size in characters for tool results before disk persistence.
no setteroverride
mcpInfo Map<String, dynamic>?
MCP server info if this is an MCP tool.
no setterinherited
name String
Tool name as registered with the API.
no setteroverride
prompt String
Detailed prompt text sent in the system prompt for this tool.
no setteroverride
requiresUserInteraction bool
Whether this tool requires user interaction (prompts, confirmations).
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
shouldDefer bool
Whether this tool should be deferred (loaded on demand via ToolSearch).
no setteroverride
strict bool
Whether this tool enforces strict JSON output.
no setterinherited
userFacingName String
Human-facing name for display in permission prompts.
no setterinherited

Methods

call(Map<String, dynamic> input, ToolUseContext context) Future<ToolResult>
Execute with full context (default delegates to simple execute).
inherited
checkPermissions(Map<String, dynamic> input, ToolPermissionContext permContext) Future<PermissionDecision>
Check if this tool use is permitted. Returns a PermissionDecision. Override in subclasses for tool-specific permission logic.
inherited
consumeMessages(String agentId) List<String>
Retrieve and clear pending messages for an agent.
execute(Map<String, dynamic> input) Future<ToolResult>
Execute the tool with the given input.
override
getActivityDescription(Map<String, dynamic> input) String
Activity description for status display.
inherited
getAgentInfo(String agentId) Map<String, dynamic>?
Get info about a registered agent.
getPermissionExplanation(Map<String, dynamic> input) PermissionExplanation?
Permission explanation for this tool.
inherited
getToolUseSummary(Map<String, dynamic> input) String
Short summary of tool use for compact/grouped display.
override
hasPendingMessages(String agentId) bool
Check if there are pending messages for an agent.
isAgentActive(String agentId) bool
Check if an agent is registered and active.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
peekMessages(String agentId) List<Map<String, dynamic>>
Get all pending messages without consuming them.
registerAgent(String agentId, Map<String, dynamic> info) → void
Register an agent in the active agent registry.
toAutoClassifierInput(Map<String, dynamic> input) String
Generate classifier input for auto-permission decisions. Returns empty string to skip classification.
override
toString() String
A string representation of this object.
inherited
unregisterAgent(String agentId) → void
Unregister an agent from the active agent registry.
validateInput(Map<String, dynamic> input) ValidationResult
Validate input before execution and permission checks.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited