capell-app/ai-orchestrator
AI orchestration for Laravel: route prompts across multiple providers, manage agents and tool calls, and stream responses through a single, configurable pipeline. Built for the Capell app with clean driver support and queue-friendly workflows.
composer require capell-app/ai-orchestrator (this release line is 1.0.x — pin with ^1.0 and let patch releases flow, since the 1.0.43→1.0.49 span is patch-only).php artisan vendor:publish --tag="ai-orchestrator-config". The config file is the source of truth for provider credentials, default driver, timeouts, and model mappings..env (e.g. OPENAI_API_KEY, ANTHROPIC_API_KEY) rather than inlining them in config; reference them via env() only in the config file.config/ai-orchestrator.php, the service provider bindings (to see what contracts/facades are registered), and any Contracts directory shipped with the package — that is where the driver interface and testing seams live.ShouldQueue) with explicit $timeout and $tries, and dispatch the downstream work from the handle() method rather than chaining raw synchronous calls.AiService (or similar) that owns prompt selection, provider choice, and usage logging keeps the package's API out of your domain code and makes future provider swaps a one-file change.--timeout and below any HTTP client timeout. A sync call in a web request should have a shorter timeout than a queued one; configure them separately..env or the config file, run php artisan config:clear. Cached config ignores env() changes and is a common "my key isn't being picked up" cause.Orchestrator::fake()), call it in setUp and assert on dispatched prompts/responses rather than asserting on HTTP. Reset fakes between tests — leaked fakes across test classes cause confusing ordering-dependent failures.How can I help you explore Laravel packages today?