timmcleod / agent-workflows-ui
A dashboard for timmcleod/agent-workflows — visualize runs, approve interrupts, and retry failures from the browser.
Package info
github.com/timmcleod/agent-workflows-ui
Language:Blade
pkg:composer/timmcleod/agent-workflows-ui
Requires
- php: ^8.3
- illuminate/contracts: ^12.0|^13.0
- illuminate/support: ^12.0|^13.0
- timmcleod/agent-workflows: ^0.9|^0.10|^0.11|^0.12
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.13
- orchestra/testbench: ^10.0|^11.0
- pestphp/pest: ^3.0|^4.0
- phpstan/phpstan: ^2.0
README
A dashboard for timmcleod/agent-workflows. Install it alongside the core package and get a live view of every workflow run: the definition rendered as a flowchart with each step's status overlaid, the step-by-step audit trail with attempts and token counts, and the checkpointed state bag.
One run, most of the package: this workflow took the high-risk escalation branch (the auto-approve branch dimmed as skipped), parked at the human gate — the audit trail shows the gate interrupted on attempt #1, then completed on attempt #2 after sign-off arrived via resume() — and finished with the summary agent. Note every step shows exactly one execution: checkpointed results are never re-run, and their tokens are never paid twice.
It is not read-only where it matters:
- Approve from the browser. Runs parked by
awaitHuman()show a form generated from the step's validation schema; submitting it callsresume()and the run continues. - Retry from the checkpoint. Failed runs get a retry button that re-runs only the failed step — earlier steps keep their results.
- Cancel any run that isn't already terminal.
The dashboard is plain server-rendered Blade with light polling — no build step, no assets to publish, nothing to go stale after upgrades.
Status: pre-release. Tracks the pre-1.0 core package; APIs and screens may change.
Requirements
- PHP 8.3+
- Laravel 12 or 13
timmcleod/agent-workflows^0.7
Installation
composer require timmcleod/agent-workflows-ui
That's it — the dashboard is mounted at /agent-workflows.
Authorization
Like Horizon and Telescope, the dashboard is open in the local environment. In every other environment, all requests are refused until your application defines a viewAgentWorkflows gate:
// app/Providers/AppServiceProvider.php use Illuminate\Support\Facades\Gate; public function boot(): void { Gate::define('viewAgentWorkflows', function ($user) { return $user->isAdmin(); }); }
Treat access as sensitive: the dashboard exposes run state (which may contain document text and agent output) and can approve pending sign-offs.
Configuration
php artisan vendor:publish --tag=agent-workflows-ui-config
return [ // URI prefix the dashboard is mounted under. 'path' => env('AGENT_WORKFLOWS_UI_PATH', 'agent-workflows'), // Middleware for the dashboard routes. 'middleware' => ['web', TimMcLeod\AgentWorkflowsUi\Http\Middleware\Authorize::class], // How often (ms) pages refresh their data. 'polling' => 2500, // How many runs the index lists. 'runs' => 50, ];
Views can be overridden the standard way: php artisan vendor:publish --tag=agent-workflows-ui-views.
Notes
- Steps execute on your queue as usual; the dashboard just observes. With a running worker you'll watch steps light up as they complete.
- Runs whose workflow is no longer registered (or whose definition has drifted since they started) still render their audit trail and state; drifted runs are badged.
License
MIT
