🏢

{{ t('appName') }}

v0.1.0
{{ sseConnected ? t('sseLive') : t('pollingLive') }}
🏛️

{{ t('statDepartments') }}

{{ stats.departments_count || departments.length || 0 }} {{ company.departments?.length || 0 }} {{ t('teamsCount') }}
{{ departments.map(d => d.name).join('، ') || '...' }}
👥

{{ t('statEmployees') }}

{{ stats.employees_total || employees.length || 0 }} {{ stats.employees_busy || 0 }} {{ t('busy') }} / {{ stats.employees_idle || employees.length || 0 }} {{ t('idle') }}
📋

{{ t('statTasks') }}

{{ stats.tasks_total || tasks.length || 0 }} ✅ {{ stats.tasks_by_status?.completed || 0 }} / ❌ {{ stats.tasks_by_status?.failed || 0 }}
{{ t('inProgress') }}: {{ stats.tasks_by_status?.in_progress || 0 }} {{ t('assigned') }}: {{ stats.tasks_by_status?.assigned || 0 }}
📦

{{ t('statArtifacts') }}

{{ stats.artifacts_total || artifacts.length || 0 }} {{ t('deliverables') }}
{{ t('artifactsTypes') }}
{{ t('filterDept') }}:

{{ dept.name }}

{{ dept.id }}

{{ dept.description }}

{{ t('deptLead') }}: {{ getEmployeeName(dept.lead_agent_id) }}
{{ getAvatarIcon(emp.role) }}

{{ emp.name }} ⭐

{{ emp.role }}

{{ emp.adapter }}
{{ t('liveStatus') }}: {{ emp.status === 'busy' ? t('busy') : t('idle') }}

{{ t('capabilities') }}:

{{ cap }}
{{ t('filterStatus') }}:

📭

{{ t('noTasks') }}

{{ t('noTasksSub') }}

{{ t(task.status.toUpperCase()) || task.status }} {{ t('priority_' + task.priority) || task.priority }} {{ task.id }} 📅 {{ formatDate(task.created_at) }}

{{ task.title }}

{{ task.description }}

{{ task.result_summary }}
{{ getAvatarIcon(getEmployeeRole(task.assigned_to)) }}

{{ getEmployeeName(task.assigned_to) }}

{{ task.department_id || 'engineering' }}

{{ liveEvents.length }} {{ t('eventsCaptured') }}

⚡

{{ t('terminalWaiting') }}

{{ t('terminalWaitingSub') }}

{{ formatTime(evt.timestamp) }} {{ getEmployeeName(evt.agent_id) }} {{ evt.type }} [{{ evt.task_id }}]
💭 {{ evt.message || evt.data?.notice || JSON.stringify(evt.data) }} 🔧 {{ evt.message || JSON.stringify(evt.data) }} {{ evt.message || evt.data?.chunk || '' }} ✅ {{ evt.message || 'Task completed successfully.' }} ❌ {{ evt.message || evt.data?.error || 'Execution failed.' }} {{ evt.message || JSON.stringify(evt.data) }}
{{ t('showingArtifacts') }}: {{ filteredArtifacts.length }}

📂

{{ t('noArtifacts') }}

{{ t('noArtifactsSub') }}

{{ getArtifactIcon(art.type) }}

{{ art.name }}

{{ art.type }}

{{ t('task') }}: {{ art.task_id }}

{{ t('created') }}: {{ formatDate(art.created_at) }}

{{ t('size') }}: {{ art.content.length }} {{ t('chars') }}

🔄 {{ t('workflowPipelines') }}

{{ t('workflowDesc') }}

{{ t('preset1Title') }}

4 {{ t('steps') }}

{{ t('preset1Desc') }}

architect ➔ backend_dev ➔ devops ➔ qa_engineer

{{ t('preset2Title') }}

2 {{ t('steps') }}

{{ t('preset2Desc') }}

researcher ➔ hermes_operator
⏳ 🎉

{{ activeWorkflowTitle || t('workflowPipelines') }}

{{ workflowRunning ? t('workflowExecuting') : t('workflowDone') }}

{{ t('stepDeliverables') }}:
{{ t('step') }} {{ idx + 1 }}: {{ res.task_id }} {{ res.success ? t('SUCCESS') : t('FAILED') }} ({{ res.metrics?.duration_seconds }}s)
{{ res.output || res.error || '...' }}

📌 {{ t('modalNewTaskTitle') }}

{{ t(selectedTask.status.toUpperCase()) || selectedTask.status }} {{ selectedTask.id }}

{{ selectedTask.title }}

{{ t('assignee') }} {{ getEmployeeName(selectedTask.assigned_to) }}
{{ t('dept') }} {{ selectedTask.department_id || 'engineering' }}
{{ t('priority') }} {{ t('priority_' + selectedTask.priority) || selectedTask.priority }}
{{ t('created') }} {{ formatDate(selectedTask.created_at) }}

{{ t('taskPrompt') }}

{{ selectedTask.description }}

{{ t('deliverableOutput') }}

{{ selectedTask.output_data?.full_output || selectedTask.result_summary }}

{{ t('generatedArtifacts') }} ({{ selectedTaskArtifacts.length }})

{{ getArtifactIcon(art.type) }} {{ art.name }}
{{ t('view') }} →

{{ t('workLogsTimeline') }} ({{ selectedTaskLogs.length }})

{{ formatTime(log.timestamp) }} {{ log.event_type }}

{{ log.content }}

{{ getArtifactIcon(selectedArtifact.type) }}

{{ selectedArtifact.name }}

{{ selectedArtifact.type }} | {{ selectedArtifact.task_id }}

{{ selectedArtifact.content || 'No text content available.' }}