executeStreaming() when you want incremental output.
execute() is a non-streaming convenience method.Handle text, tool, completion, and error events in real time.
executeStreaming() when you want incremental output.
use Cognesy\AgentCtrl\AgentCtrl;
use Cognesy\AgentCtrl\Dto\AgentResponse;
$response = AgentCtrl::openCode()
->onText(fn(string $text) => print($text))
->onToolUse(fn(string $tool, array $input, ?string $output) => print("\n[tool:$tool]\n"))
->onComplete(fn(AgentResponse $response) => print("\n[done]\n"))
->onError(fn(string $message, ?string $code) => print("\n[error:$message]\n"))
->executeStreaming('Explain this package architecture.');
// @doctest id="2e88"
execute() is a non-streaming convenience method.