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.
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