<?php
require 'examples/boot.php';
use Cognesy\AgentCtrl\AgentCtrl;
use Cognesy\AgentCtrl\Broadcasting\AgentCtrlConsoleLogger;
use Cognesy\AgentCtrl\Config\AgentCtrlConfig;
use Cognesy\AgentCtrl\Enum\AgentType;
// Create a console logger for visibility into agent execution
$logger = new AgentCtrlConsoleLogger(
useColors: true,
showTimestamps: true,
showToolArgs: true,
);
// Execute a prompt against OpenCode agent
echo "=== Agent Execution Log ===\n\n";
$response = AgentCtrl::make(AgentType::OpenCode)
->wiretap($logger->wiretap())
->withConfig(new AgentCtrlConfig(
timeout: 300,
workingDirectory: getcwd() ?: null,
))
->execute('Explain the SOLID principles in software design. List each principle with a one-line explanation.');
echo "\n=== Result ===\n";
if ($response->isSuccess()) {
echo "Answer: " . $response->text() . "\n";
echo "Agent: {$response->agentType->value}\n";
if ($response->sessionId()) {
echo "Session: {$response->sessionId()}\n";
}
if ($response->usage()) {
echo "Tokens: {$response->usage()->input} in / {$response->usage()->output} out\n";
}
if ($response->cost()) {
echo "Cost: $" . number_format($response->cost(), 4) . "\n";
}
} else {
echo "ERROR: Request failed with exit code {$response->exitCode}\n";
exit(1);
}
?>