@extends('admin.layout') @section('title', $mission->target_name.' · '.__('admin.research.title')) @section('content')
{{ __('admin.research.mission_eyebrow') }}

{{ $mission->target_name }}

{{ $mission->public_id }}

{{ $mission->steps->where('step_type', 'provider')->count() }}{{ __('admin.research.providers') }} {{ $mission->steps->where('step_type', 'agent')->count() }}{{ __('admin.research.agents') }} {{ $mission->steps->where('status', 'ready')->count() }}{{ __('admin.research.ready') }} {{ $mission->steps->where('status', 'blocked')->count() }}{{ __('admin.research.blocked') }}
@php $assessment = $mission->latestAssessment; @endphp @if ($assessment)

{{ __('admin.enrichment.assessment_title') }}

{{ __('admin.enrichment.assessment_hint') }}

{{ __('admin.enrichment.statuses.'.$assessment->status) }}
{{ number_format((float) $assessment->overall_percent, 0) }}% {{ __('admin.enrichment.completeness') }} {{ number_format((float) $assessment->overall_percent, 0) }}%
{{ number_format((float) $assessment->required_percent, 0) }}%{{ __('admin.enrichment.importance.required') }}
{{ number_format((float) $assessment->recommended_percent, 0) }}%{{ __('admin.enrichment.importance.recommended') }}
{{ $assessment->provider_step_count }}{{ __('admin.enrichment.ready_provider_steps') }}
{{ $assessment->ai_fallback_count }}{{ __('admin.enrichment.ai_fallback_fields') }}
@php $missingFields = collect($assessment->field_results ?? [])->where('present', false); @endphp @if ($missingFields->isNotEmpty())
@foreach ($missingFields as $field) @endforeach
{{ __('admin.enrichment.missing_field') }}{{ __('admin.enrichment.importance_label') }}{{ __('admin.enrichment.ready_providers') }}{{ __('admin.enrichment.ai_fallback') }}
{{ __($field['label_key']) }}{{ $field['field_key'] }} {{ __('admin.enrichment.importance.'.$field['importance']) }} {{ $field['ready_provider_count'] }} {{ $field['ai_fallback_allowed'] ? ($field['ai_agent_code'] ?? __('admin.yes')) : __('admin.no') }}
@else
{{ __('admin.enrichment.complete_note') }}
@endif @if (! empty($assessment->provider_plan))

{{ __('admin.enrichment.provider_plan_title') }}

{{ __('admin.enrichment.provider_plan_hint') }}

@foreach ($assessment->provider_plan as $providerStep)
{{ $providerStep['source_name'] }} {{ $providerStep['capability'] }} · {{ __('admin.enrichment.cost_tiers.'.$providerStep['cost_tier']) }} {{ collect($providerStep['fields'])->map(fn ($field) => __('admin.enrichment.fields.'.$field))->join(', ') }} {{ __('admin.research.step_statuses.'.$providerStep['status']) }}
@endforeach
@endif

{{ __('admin.enrichment.ai_last_resort_note') }}

@endif

{{ __('admin.research.ai_runtime.title') }}

{{ __('admin.research.ai_runtime.hint') }}

{{ $aiRuntimeDriverCode }}
{{ __('admin.research.ai_runtime.driver') }}{{ $aiRuntimeDriverCode }}
{{ __('admin.research.ai_runtime.model') }}{{ $aiRuntimeDriverCode === 'simulation' ? 'simulation' : $aiRuntimeModel }}
{{ __('admin.research.ai_runtime.cost') }}${{ number_format((float) $aiRuntimeBudget['max_cost'], 3) }} max
{{ __('admin.research.ai_runtime.tool_calls') }}{{ $aiRuntimeBudget['max_tool_calls'] }} max
{{ __('admin.research.ai_runtime.tokens') }}{{ number_format($aiRuntimeBudget['max_output_tokens']) }} out max

{{ __('admin.research.ai_runtime.simulate_hint') }}

@if ($aiRuntimeDriverCode !== 'simulation')

{{ __('admin.research.ai_runtime.queue_worker_hint') }}

@endif

{{ __('admin.research.plan_title') }}

{{ __('admin.research.plan_hint') }}

@csrf
@foreach ($mission->steps as $step) @endforeach
#{{ __('admin.research.step') }}{{ __('admin.source') }}{{ __('admin.research.capability') }}{{ __('admin.status') }}{{ __('admin.research.policy') }}{{ __('admin.research.ai_runtime.actions') }}
{{ $step->sequence }} {{ __('admin.research.step_types.'.$step->step_type) }}{{ $step->step_code }} {{ $step->source?->name ?? ($step->agent?->name ?? '—') }} {{ $step->capability ?? '—' }} {{ __('admin.research.step_statuses.'.$step->status) }} {{ __('admin.research.policy_states.'.$step->policy_state) }} @if ($step->step_type === 'agent' && $step->agent)
@csrf
@php $canQueueAi = $researchExecutionEnabled && $aiAgentsEnabled && $step->agent->is_enabled && $aiRuntimeConfigured && $aiRuntimeDriverCode !== 'simulation' && in_array($step->status, ['ready', 'fallback'], true); @endphp
@csrf
@else — @endif

{{ __('admin.research.ai_runtime.runs_title') }}

{{ __('admin.research.ai_runtime.runs_hint') }}

@if ($mission->agentRuns->isEmpty())
{{ __('admin.research.ai_runtime.no_runs') }}
@else
@foreach ($mission->agentRuns->take(20) as $run) @endforeach
{{ __('admin.research.ai_runtime.mode') }}{{ __('admin.research.ai_runtime.driver') }}{{ __('admin.research.ai_runtime.model') }}{{ __('admin.status') }}{{ __('admin.research.ai_runtime.tokens') }}{{ __('admin.research.ai_runtime.tool_calls') }}{{ __('admin.research.ai_runtime.cost') }}{{ __('admin.research.ai_runtime.proposals') }}{{ __('admin.research.ai_runtime.evidence') }}
{{ $run->execution_mode === 'simulation' ? __('admin.research.ai_runtime.simulation_mode') : __('admin.research.ai_runtime.live_mode') }} {{ $run->driver ?? '—' }} {{ $run->model_snapshot ?? '—' }} {{ __('admin.research.statuses.'.$run->status) }}@if ($run->error_message){{ $run->error_message }}@endif {{ number_format((int) $run->prompt_tokens + (int) $run->completion_tokens) }} {{ $run->tool_calls }} {{ $run->estimated_cost !== null ? '$'.number_format((float) $run->estimated_cost, 4) : '—' }} {{ $run->proposals->count() }} {{ $run->evidence->count() }}
@foreach ($mission->agentRuns->take(10) as $run)
{{ $run->public_id }} · {{ $run->agent?->name ?? '—' }} · {{ __('admin.research.statuses.'.$run->status) }}

{{ __('admin.research.ai_runtime.events') }}

@forelse ($run->events as $event)
{{ $event->event_type }} · {{ $event->message }}
@empty
{{ __('admin.research.ai_runtime.no_events') }}
@endforelse

{{ __('admin.research.ai_runtime.evidence') }}

@forelse ($run->evidence as $evidence)
{{ $evidence->title ?: $evidence->url }} {{ $evidence->field_key ?? '—' }} · {{ $evidence->tool_verified ? __('admin.research.ai_runtime.verified') : __('admin.research.ai_runtime.not_verified') }}
@empty
{{ __('admin.research.ai_runtime.no_evidence') }}
@endforelse
@endforeach
@endif
@endsection