ApiTestTool class

A tool for testing API endpoints by sending HTTP requests.

Includes built-in SSRF protection via a configurable hostnameBlacklist and automatic body truncation to prevent prompt history bloat.

Inheritance

Constructors

ApiTestTool({List<String> hostnameBlacklist = const ['localhost', '127.0.0.1', '0.0.0.0', 'metadata.google.internal']})

Properties

description → String
A description of what the tool does, for the agent's understanding.
no setteroverride
hashCode → int
The hash code for this object.
no setterinherited
hostnameBlacklist → List<String>
Blacklist of sensitive hostnames to prevent SSRF.
final
isUIBound → bool
Whether this tool MUST be executed on the UI/Main thread. Set this to true for tools that interact with Flutter UI, plugins, or databases that are not thread-safe or isolate-compatible.
no setterinherited
name → String
The name of the tool, used for identification in tool calls.
no setteroverride
parameters → Map<String, dynamic>
JSON Schema describing the parameters this tool accepts.
no setteroverride
requiresConfirmation → bool
Whether this tool normally requires human confirmation before execution. If you need dynamic confirmation logic based on the arguments, override requiresConfirmationFor instead.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
timeout → Duration
Maximum time this tool is allowed to run before being cancelled. Defaults to 30 seconds.
no setterinherited

Methods

execute(ApiTestArgs args) → Future<String>
Executes the tool with the given arguments.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
parseArgs(Map<String, dynamic> json) → ApiTestArgs
Parses the JSON arguments into the typed arguments object.
override
requiresConfirmationFor(ApiTestArgs args) → bool
Dynamic evaluation of whether this specific execution requires confirmation. By default, this simply returns requiresConfirmation. Override this to skip confirmation for low-risk operations (e.g., deleting a trivial resource).
inherited
toString() → String
A string representation of this object.
inherited

Operators

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