374 lines
13 KiB
PHP
374 lines
13 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Agentic module translations (en_GB).
|
||
|
|
*
|
||
|
|
* Key structure: section.subsection.key
|
||
|
|
*/
|
||
|
|
|
||
|
|
return [
|
||
|
|
// Dashboard
|
||
|
|
'dashboard' => [
|
||
|
|
'title' => 'Agent Operations',
|
||
|
|
'subtitle' => 'Monitor AI agent plans, sessions, and tool usage',
|
||
|
|
'recent_activity' => 'Recent Activity',
|
||
|
|
'top_tools' => 'Top Tools (7 days)',
|
||
|
|
'no_activity' => 'No recent activity',
|
||
|
|
'no_tool_usage' => 'No tool usage data',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Plans
|
||
|
|
'plans' => [
|
||
|
|
'title' => 'Agent Plans',
|
||
|
|
'subtitle' => 'Manage AI agent work plans across workspaces',
|
||
|
|
'search_placeholder' => 'Search plans...',
|
||
|
|
'progress' => 'Progress',
|
||
|
|
'total_phases' => 'Total Phases',
|
||
|
|
'completed' => 'Completed',
|
||
|
|
'in_progress' => 'In Progress',
|
||
|
|
'pending' => 'Pending',
|
||
|
|
'description' => 'Description',
|
||
|
|
'phases' => 'Phases',
|
||
|
|
'no_tasks' => 'No tasks defined',
|
||
|
|
'add_task' => 'Add a task',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Plan Detail
|
||
|
|
'plan_detail' => [
|
||
|
|
'progress' => 'Progress',
|
||
|
|
'description' => 'Description',
|
||
|
|
'phases' => 'Phases',
|
||
|
|
'sessions' => 'Sessions',
|
||
|
|
'no_phases' => 'No phases defined for this plan',
|
||
|
|
'no_sessions' => 'No sessions for this plan yet',
|
||
|
|
'phase_number' => 'Phase :number',
|
||
|
|
'tasks_progress' => ':completed/:total',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Sessions
|
||
|
|
'sessions' => [
|
||
|
|
'title' => 'Agent Sessions',
|
||
|
|
'subtitle' => 'Monitor and manage agent work sessions',
|
||
|
|
'search_placeholder' => 'Search sessions...',
|
||
|
|
'active_sessions' => ':count active session(s)',
|
||
|
|
'actions_count' => ':count actions',
|
||
|
|
'artifacts_count' => ':count artifacts',
|
||
|
|
'no_plan' => 'No plan',
|
||
|
|
'unknown_agent' => 'Unknown',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Session Detail
|
||
|
|
'session_detail' => [
|
||
|
|
'title' => 'Session Details',
|
||
|
|
'workspace' => 'Workspace',
|
||
|
|
'plan' => 'Plan',
|
||
|
|
'duration' => 'Duration',
|
||
|
|
'activity' => 'Activity',
|
||
|
|
'plan_timeline' => 'Plan Timeline (Session :current of :total)',
|
||
|
|
'context_summary' => 'Context Summary',
|
||
|
|
'goal' => 'Goal',
|
||
|
|
'progress' => 'Progress',
|
||
|
|
'next_steps' => 'Next Steps',
|
||
|
|
'work_log' => 'Work Log',
|
||
|
|
'entries' => ':count entries',
|
||
|
|
'no_work_log' => 'No work log entries yet',
|
||
|
|
'final_summary' => 'Final Summary',
|
||
|
|
'timestamps' => 'Timestamps',
|
||
|
|
'started' => 'Started',
|
||
|
|
'last_active' => 'Last Active',
|
||
|
|
'ended' => 'Ended',
|
||
|
|
'not_started' => 'Not started',
|
||
|
|
'artifacts' => 'Artifacts',
|
||
|
|
'no_artifacts' => 'No artifacts',
|
||
|
|
'handoff_notes' => 'Handoff Notes',
|
||
|
|
'summary' => 'Summary',
|
||
|
|
'blockers' => 'Blockers',
|
||
|
|
'suggested_next_agent' => 'Suggested Next Agent',
|
||
|
|
'no_handoff_notes' => 'No handoff notes',
|
||
|
|
'complete_session' => 'Complete Session',
|
||
|
|
'complete_session_prompt' => 'Provide an optional summary for this session completion:',
|
||
|
|
'fail_session' => 'Fail Session',
|
||
|
|
'fail_session_prompt' => 'Provide a reason for marking this session as failed:',
|
||
|
|
'replay_session' => 'Replay Session',
|
||
|
|
'replay_session_prompt' => 'Create a new session with the context from this one. The new session will inherit the work log state and can continue from where this session left off.',
|
||
|
|
'total_actions' => 'Total Actions',
|
||
|
|
'checkpoints' => 'Checkpoints',
|
||
|
|
'last_checkpoint' => 'Last Checkpoint',
|
||
|
|
'agent_type' => 'Agent Type',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Templates
|
||
|
|
'templates' => [
|
||
|
|
'title' => 'Plan Templates',
|
||
|
|
'subtitle' => 'Browse and create plans from reusable templates',
|
||
|
|
'search_placeholder' => 'Search templates...',
|
||
|
|
'stats' => [
|
||
|
|
'templates' => 'Templates',
|
||
|
|
'categories' => 'Categories',
|
||
|
|
'total_phases' => 'Total Phases',
|
||
|
|
'with_variables' => 'With Variables',
|
||
|
|
],
|
||
|
|
'phases_count' => ':count phases',
|
||
|
|
'variables_count' => ':count variables',
|
||
|
|
'variables' => 'Variables',
|
||
|
|
'more' => '+:count more',
|
||
|
|
'preview' => 'Preview',
|
||
|
|
'use_template' => 'Use Template',
|
||
|
|
'no_templates' => 'No Templates Found',
|
||
|
|
'no_templates_filtered' => 'No templates match your filters. Try adjusting your search.',
|
||
|
|
'no_templates_empty' => 'No plan templates are available yet. Import a YAML template to get started.',
|
||
|
|
'import_template' => 'Import Template',
|
||
|
|
'guidelines' => 'Guidelines',
|
||
|
|
'create_from_template' => 'Create Plan from Template',
|
||
|
|
'using_template' => 'Using template: :name',
|
||
|
|
'plan_title' => 'Plan Title',
|
||
|
|
'plan_title_placeholder' => 'Enter a name for this plan',
|
||
|
|
'template_variables' => 'Template Variables',
|
||
|
|
'activate_immediately' => 'Activate plan immediately (otherwise created as draft)',
|
||
|
|
'variable' => 'Variable',
|
||
|
|
'default' => 'Default',
|
||
|
|
'required' => 'Required',
|
||
|
|
'yes' => 'Yes',
|
||
|
|
'no' => 'No',
|
||
|
|
'use_this_template' => 'Use This Template',
|
||
|
|
'import' => [
|
||
|
|
'title' => 'Import Template',
|
||
|
|
'subtitle' => 'Upload a YAML file to add a new plan template',
|
||
|
|
'file_label' => 'Template File (YAML)',
|
||
|
|
'file_prompt' => 'Click to select a YAML file',
|
||
|
|
'file_types' => '.yaml or .yml files only',
|
||
|
|
'processing' => 'Processing file...',
|
||
|
|
'preview' => 'Template Preview',
|
||
|
|
'name' => 'Name:',
|
||
|
|
'category' => 'Category:',
|
||
|
|
'phases' => 'Phases:',
|
||
|
|
'variables' => 'Variables:',
|
||
|
|
'description' => 'Description:',
|
||
|
|
'filename_label' => 'Template Filename (without extension)',
|
||
|
|
'filename_placeholder' => 'my-template',
|
||
|
|
'will_be_saved' => 'Will be saved as :filename.yaml',
|
||
|
|
],
|
||
|
|
],
|
||
|
|
|
||
|
|
// API Keys
|
||
|
|
'api_keys' => [
|
||
|
|
'title' => 'API Keys',
|
||
|
|
'subtitle' => 'Manage API access for external agents',
|
||
|
|
'stats' => [
|
||
|
|
'total_keys' => 'Total Keys',
|
||
|
|
'active' => 'Active',
|
||
|
|
'revoked' => 'Revoked',
|
||
|
|
'total_calls' => 'Total Calls',
|
||
|
|
],
|
||
|
|
'calls_per_min' => ':count/min',
|
||
|
|
'calls' => ':count calls',
|
||
|
|
'no_keys' => 'No API keys found',
|
||
|
|
'no_keys_filtered' => 'Try adjusting your filters',
|
||
|
|
'no_keys_empty' => 'Create an API key to enable external agent access',
|
||
|
|
'create' => [
|
||
|
|
'title' => 'Create API Key',
|
||
|
|
'key_name' => 'Key Name',
|
||
|
|
'key_name_placeholder' => 'e.g. Claude Code Integration',
|
||
|
|
'workspace' => 'Workspace',
|
||
|
|
'permissions' => 'Permissions',
|
||
|
|
'rate_limit' => 'Rate Limit (calls per minute)',
|
||
|
|
'expiry' => 'Expiry',
|
||
|
|
'never_expires' => 'Never expires',
|
||
|
|
'30_days' => '30 days',
|
||
|
|
'90_days' => '90 days',
|
||
|
|
'1_year' => '1 year',
|
||
|
|
],
|
||
|
|
'created' => [
|
||
|
|
'title' => 'API Key Created',
|
||
|
|
'copy_now' => 'Copy this key now',
|
||
|
|
'copy_warning' => 'This is the only time you will see this key. Store it securely.',
|
||
|
|
'your_key' => 'Your API Key',
|
||
|
|
'usage_hint' => 'Use this key in the Authorization header:',
|
||
|
|
],
|
||
|
|
'edit' => [
|
||
|
|
'title' => 'Edit API Key',
|
||
|
|
'key' => 'Key',
|
||
|
|
],
|
||
|
|
],
|
||
|
|
|
||
|
|
// Tools Analytics
|
||
|
|
'tools' => [
|
||
|
|
'title' => 'Tool Analytics',
|
||
|
|
'subtitle' => 'MCP tool usage and performance metrics',
|
||
|
|
'stats' => [
|
||
|
|
'total_calls' => 'Total Calls',
|
||
|
|
'successful' => 'Successful',
|
||
|
|
'errors' => 'Errors',
|
||
|
|
'success_rate' => 'Success Rate',
|
||
|
|
'unique_tools' => 'Unique Tools',
|
||
|
|
],
|
||
|
|
'daily_trend' => 'Daily Trend',
|
||
|
|
'day_window' => ':days-day window',
|
||
|
|
'no_data' => 'No data for selected period',
|
||
|
|
'server_breakdown' => 'Server Breakdown',
|
||
|
|
'calls' => ':count calls',
|
||
|
|
'tools' => ':count tools',
|
||
|
|
'success' => ':rate% success',
|
||
|
|
'no_server_data' => 'No server data',
|
||
|
|
'top_tools' => 'Top 10 Tools',
|
||
|
|
'no_tool_usage' => 'No tool usage data',
|
||
|
|
'tool_calls_appear' => 'Tool calls will appear here when agents use MCP tools',
|
||
|
|
'recent_errors' => 'Recent Errors',
|
||
|
|
'unknown_error' => 'Unknown error',
|
||
|
|
'error_code' => 'Code: :code',
|
||
|
|
'drill_down' => 'Drill Down',
|
||
|
|
'avg_duration' => 'Avg Duration',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Tool Calls
|
||
|
|
'tool_calls' => [
|
||
|
|
'title' => 'Tool Calls',
|
||
|
|
'subtitle' => 'Individual MCP tool call logs with full parameters',
|
||
|
|
'search_placeholder' => 'Search tools, servers, sessions, errors...',
|
||
|
|
'no_calls' => 'No tool calls found',
|
||
|
|
'no_calls_filtered' => 'Try adjusting your filters',
|
||
|
|
'no_calls_empty' => 'Tool calls will appear here when agents use MCP tools',
|
||
|
|
'details' => 'Details',
|
||
|
|
'metadata' => [
|
||
|
|
'duration' => 'Duration',
|
||
|
|
'agent_type' => 'Agent Type',
|
||
|
|
'workspace' => 'Workspace',
|
||
|
|
'time' => 'Time',
|
||
|
|
],
|
||
|
|
'session_id' => 'Session ID',
|
||
|
|
'input_params' => 'Input Parameters',
|
||
|
|
'error_details' => 'Error Details',
|
||
|
|
'result_summary' => 'Result Summary',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Table headers
|
||
|
|
'table' => [
|
||
|
|
'plan' => 'Plan',
|
||
|
|
'workspace' => 'Workspace',
|
||
|
|
'status' => 'Status',
|
||
|
|
'progress' => 'Progress',
|
||
|
|
'sessions' => 'Sessions',
|
||
|
|
'last_activity' => 'Last Activity',
|
||
|
|
'actions' => 'Actions',
|
||
|
|
'session' => 'Session',
|
||
|
|
'agent' => 'Agent',
|
||
|
|
'duration' => 'Duration',
|
||
|
|
'activity' => 'Activity',
|
||
|
|
'name' => 'Name',
|
||
|
|
'permissions' => 'Permissions',
|
||
|
|
'rate_limit' => 'Rate Limit',
|
||
|
|
'usage' => 'Usage',
|
||
|
|
'last_used' => 'Last Used',
|
||
|
|
'created' => 'Created',
|
||
|
|
'tool' => 'Tool',
|
||
|
|
'server' => 'Server',
|
||
|
|
'time' => 'Time',
|
||
|
|
'success_rate' => 'Success Rate',
|
||
|
|
'calls' => 'Calls',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Filters
|
||
|
|
'filters' => [
|
||
|
|
'all_statuses' => 'All Statuses',
|
||
|
|
'all_workspaces' => 'All Workspaces',
|
||
|
|
'all_agents' => 'All Agents',
|
||
|
|
'all_plans' => 'All Plans',
|
||
|
|
'all_categories' => 'All Categories',
|
||
|
|
'all_servers' => 'All Servers',
|
||
|
|
'all_tools' => 'All Tools',
|
||
|
|
'all_status' => 'All Status',
|
||
|
|
'success' => 'Success',
|
||
|
|
'failed' => 'Failed',
|
||
|
|
'active' => 'Active',
|
||
|
|
'revoked' => 'Revoked',
|
||
|
|
'expired' => 'Expired',
|
||
|
|
'last_7_days' => 'Last 7 days',
|
||
|
|
'last_14_days' => 'Last 14 days',
|
||
|
|
'last_30_days' => 'Last 30 days',
|
||
|
|
'last_90_days' => 'Last 90 days',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Actions
|
||
|
|
'actions' => [
|
||
|
|
'refresh' => 'Refresh',
|
||
|
|
'clear' => 'Clear',
|
||
|
|
'clear_filters' => 'Clear Filters',
|
||
|
|
'view' => 'View',
|
||
|
|
'edit' => 'Edit',
|
||
|
|
'delete' => 'Delete',
|
||
|
|
'activate' => 'Activate',
|
||
|
|
'complete' => 'Complete',
|
||
|
|
'archive' => 'Archive',
|
||
|
|
'pause' => 'Pause',
|
||
|
|
'resume' => 'Resume',
|
||
|
|
'fail' => 'Fail',
|
||
|
|
'revoke' => 'Revoke',
|
||
|
|
'import' => 'Import',
|
||
|
|
'back_to_plans' => 'Back to Plans',
|
||
|
|
'create_key' => 'Create Key',
|
||
|
|
'export_csv' => 'Export',
|
||
|
|
'view_all_calls' => 'View All Calls',
|
||
|
|
'preview' => 'Preview',
|
||
|
|
'create_plan' => 'Create Plan',
|
||
|
|
'copy' => 'Copy',
|
||
|
|
'done' => 'Done',
|
||
|
|
'cancel' => 'Cancel',
|
||
|
|
'save_changes' => 'Save Changes',
|
||
|
|
'close' => 'Close',
|
||
|
|
'add_task' => 'Add Task',
|
||
|
|
'start_phase' => 'Start Phase',
|
||
|
|
'complete_phase' => 'Complete Phase',
|
||
|
|
'block_phase' => 'Block Phase',
|
||
|
|
'unblock' => 'Unblock (Reset)',
|
||
|
|
'skip_phase' => 'Skip Phase',
|
||
|
|
'reset_to_pending' => 'Reset to Pending',
|
||
|
|
'complete_session' => 'Complete Session',
|
||
|
|
'mark_as_failed' => 'Mark as Failed',
|
||
|
|
'replay' => 'Replay',
|
||
|
|
'replay_session' => 'Replay Session',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Status labels
|
||
|
|
'status' => [
|
||
|
|
'draft' => 'Draft',
|
||
|
|
'active' => 'Active',
|
||
|
|
'completed' => 'Completed',
|
||
|
|
'archived' => 'Archived',
|
||
|
|
'blocked' => 'Blocked',
|
||
|
|
'pending' => 'Pending',
|
||
|
|
'in_progress' => 'In Progress',
|
||
|
|
'skipped' => 'Skipped',
|
||
|
|
'paused' => 'Paused',
|
||
|
|
'failed' => 'Failed',
|
||
|
|
'success' => 'Success',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Empty states
|
||
|
|
'empty' => [
|
||
|
|
'no_plans' => 'No plans found',
|
||
|
|
'plans_appear' => 'Agent plans will appear here once created',
|
||
|
|
'no_sessions' => 'No sessions found',
|
||
|
|
'sessions_appear' => 'Agent sessions will appear here when agents start working',
|
||
|
|
'filter_hint' => 'Try adjusting your filters',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Confirmations
|
||
|
|
'confirm' => [
|
||
|
|
'delete_plan' => 'Are you sure you want to delete this plan?',
|
||
|
|
'delete_template' => 'Delete this template? This cannot be undone.',
|
||
|
|
'revoke_key' => 'Are you sure you want to revoke this API key? This action cannot be undone.',
|
||
|
|
'archive_plan' => 'Are you sure you want to archive this plan?',
|
||
|
|
],
|
||
|
|
|
||
|
|
// Add Task Modal
|
||
|
|
'add_task' => [
|
||
|
|
'title' => 'Add Task',
|
||
|
|
'task_name' => 'Task Name',
|
||
|
|
'task_name_placeholder' => 'Enter task name...',
|
||
|
|
'notes' => 'Notes (optional)',
|
||
|
|
'notes_placeholder' => 'Additional notes...',
|
||
|
|
],
|
||
|
|
];
|