{{-- Service Unavailable Error --}} @if(!$serviceAvailable)

AI Assistant Unavailable

{{ $serviceError }}

@if(auth()->user()->isAdmin()) Go to Settings @else

Please contact the administrator to configure AI settings.

@endif
@else @if(!empty($displayMessages))

Assistant

{{ $providerInfo['providerName'] ?? 'AI' }} @if($providerInfo['usingOwnKey'] ?? false) (Your API key) @endif

@if(!($providerInfo['usingOwnKey'] ?? false) && !($providerInfo['unlimitedTokens'] ?? false))

Tokens remaining

{{ number_format($providerInfo['remainingTokens'] ?? 0) }} / {{ number_format($providerInfo['monthlyLimit'] ?? 0) }}

@elseif($providerInfo['unlimitedTokens'] ?? false)
Unlimited
@endif
@endif
@if(empty($displayMessages))
{{-- Settings button for welcome screen (only when sidebar is hidden) --}} @if(auth()->user()->plan?->allowsUserAiApiKey()) @endif

How can I help you today?

I can help you create and configure mobile apps. Tell me what you'd like to build!

@else @foreach($displayMessages as $index => $msg)
@if($msg['role'] === 'assistant')
@endif
@if($msg['role'] === 'assistant') @if($msg['isStreaming'] ?? false) {{-- Streaming placeholder --}}
@elseif($msg['typewriter'] ?? false) {{-- Typewriter effect for non-streaming --}}
@else
{!! \Illuminate\Support\Str::markdown($msg['content'], ['renderer' => ['soft_break' => "
\n"]]) !!}
@endif @else

{{ $msg['content'] }}

@endif
@if($msg['role'] === 'user')
@endif
@endforeach @if($isLoading && !$streamingEnabled)
Thinking...
@endif @endif
@if(!empty($displayMessages))
@endif {{-- Typewriter effect for non-streaming responses --}} @script @endscript @if($streamingEnabled) @script @endscript @endif @endif {{-- End serviceAvailable check --}}