Skip to content

Config Options

Complete reference for all configuration options in config/ai-orbit.php.

Dashboard Path

php
'path' => env('AI_ORBIT_PATH', 'ai-orbit'),

The URI prefix for the Orbit dashboard.

ValueExample URL
'ai-orbit'/ai-orbit
'admin/ai'/admin/ai
'debug'/debug

Authentication

php
'auth_guard' => env('AI_ORBIT_GUARD', 'web'),

The authentication guard used for access control.

php
'middleware' => ['web'],

Middleware stack applied to all Orbit routes. The Authorize middleware is automatically appended.

Domain

php
'domain' => env('AI_ORBIT_DOMAIN', null),

Custom subdomain for Orbit routes. null uses the application domain.

php
'back_to_app_url' => env('AI_ORBIT_BACK_TO_APP_URL', '/'),

Target URL for the "Back to App" link in the dashboard header.

Agent Discovery

php
'agent_directories' => [
    'app/AI/Agents',
    'app/Ai/Agents',
],

Directories scanned for agent classes. Relative to the application base path.

php
'registry_cache_ttl' => 3600,

Cache duration for discovered agents (seconds). 0 disables caching.

Currency

php
'currency' => env('ORBIT_CURRENCY', 'USD'),
'currency_symbol' => env('ORBIT_CURRENCY_SYMBOL', '$'),

Default currency for cost calculations and display.

Budget Monitoring

php
'budget' => [
    'enabled' => env('ORBIT_BUDGET_ENABLED', true),
    'notification_channels' => ['mail'],
],
OptionTypeDefaultDescription
enabledbooltrueToggle budget alert system
notification_channelsarray['mail']Channels for budget notifications

Prompt Lab

php
'prompt-lab' => [
    'max_slots' => (int) env('ORBIT_PROMPT_LAB_MAX_SLOTS', 3),
    'timeout_seconds' => (int) env('ORBIT_PROMPT_LAB_TIMEOUT', 120),
],
OptionTypeDefaultDescription
max_slotsint3Max provider+model combinations per comparison
timeout_secondsint120Request timeout per slot

Sandbox

php
'sandbox' => [
    'records_per_picker' => 20,
],
OptionTypeDefaultDescription
records_per_pickerint20Records shown in Eloquent model pickers

Export

php
'export' => [
    'pest_namespace' => env('ORBIT_PEST_NAMESPACE', 'Tests\\Feature\\AI'),
    'json_format' => env('ORBIT_JSON_FORMAT', 'openai'),
],
OptionTypeDefaultDescription
pest_namespacestringTests\\Feature\\AINamespace for generated Pest tests
json_formatstringopenaiFormat for JSON exports

Audit

php
'audit' => [
    'enabled' => env('ORBIT_AUDIT_ENABLED', true),
    'retention_days' => (int) env('ORBIT_RETENTION_DAYS', 90),
],
OptionTypeDefaultDescription
enabledbooltrueToggle PII scanning and data retention
retention_daysint90Default data retention period

Environment Variables

VariableConfig KeyDefaultDescription
AI_ORBIT_PATHpathai-orbitDashboard URI prefix
AI_ORBIT_GUARDauth_guardwebAuth guard
AI_ORBIT_DOMAINdomainnullCustom subdomain
AI_ORBIT_BACK_TO_APP_URLback_to_app_url/Back to app link
ORBIT_CURRENCYcurrencyUSDCurrency code
ORBIT_CURRENCY_SYMBOLcurrency_symbol$Currency symbol
ORBIT_BUDGET_ENABLEDbudget.enabledtrueBudget alerts toggle
ORBIT_PROMPT_LAB_MAX_SLOTSprompt-lab.max_slots3Max comparison slots
ORBIT_PROMPT_LAB_TIMEOUTprompt-lab.timeout_seconds120Slot timeout
ORBIT_PEST_NAMESPACEexport.pest_namespaceTests\\Feature\\AIPest namespace
ORBIT_JSON_FORMATexport.json_formatopenaiJSON export format
ORBIT_AUDIT_ENABLEDaudit.enabledtrueAudit toggle
ORBIT_RETENTION_DAYSaudit.retention_days90Retention period

Full Config File

php
<?php

return [
    'path' => env('AI_ORBIT_PATH', 'ai-orbit'),
    'auth_guard' => env('AI_ORBIT_GUARD', 'web'),
    'middleware' => ['web'],
    'domain' => env('AI_ORBIT_DOMAIN', null),
    'back_to_app_url' => env('AI_ORBIT_BACK_TO_APP_URL', '/'),
    
    'agent_directories' => [
        'app/AI/Agents',
        'app/Ai/Agents',
    ],
    
    'registry_cache_ttl' => 3600,
    
    'currency' => env('ORBIT_CURRENCY', 'USD'),
    'currency_symbol' => env('ORBIT_CURRENCY_SYMBOL', '$'),
    
    'budget' => [
        'enabled' => env('ORBIT_BUDGET_ENABLED', true),
        'notification_channels' => ['mail'],
    ],
    
    'prompt-lab' => [
        'max_slots' => (int) env('ORBIT_PROMPT_LAB_MAX_SLOTS', 3),
        'timeout_seconds' => (int) env('ORBIT_PROMPT_LAB_TIMEOUT', 120),
    ],
    
    'sandbox' => [
        'records_per_picker' => 20,
    ],
    
    'export' => [
        'pest_namespace' => env('ORBIT_PEST_NAMESPACE', 'Tests\\Feature\\AI'),
        'json_format' => env('ORBIT_JSON_FORMAT', 'openai'),
    ],
    
    'audit' => [
        'enabled' => env('ORBIT_AUDIT_ENABLED', true),
        'retention_days' => (int) env('ORBIT_RETENTION_DAYS', 90),
    ],
];