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