{
  "common": {
    "cancel": "Cancel",
    "confirm": "Confirm",
    "save": "Save",
    "delete": "Delete",
    "run": "Run",
    "loading": "Loading...",
    "refresh": "Refresh",
    "edit": "Edit",
    "output": "Output",
    "back": "Back",
    "steps": "{count} steps",
    "noDescription": "No description",
    "add": "Add",
    "running": "Running..."
  },
  "sidebar": {
    "chat": "Chat",
    "dashboard": "Dashboard",
    "section": {
      "workspace": "Workspace",
      "system": "System"
    },
    "labs": "AI Labs",
    "mcpServers": "MCP Servers",
    "models": "Models",
    "projects": "Projects",
    "scenarios": "Scenarios",
    "tasks": "Tasks",
    "keys": "Keys",
    "agents": "Agents",
    "sessions": "Sessions",
    "skills": "Skills",
    "adapters": "Adapters",
    "settings": "Settings"
  },
  "chat": {
    "newChat": "New Chat",
    "conversations": "Conversations",
    "deleteConversation": "Delete conversation",
    "deleteConfirm": "Delete this conversation and all its messages?",
    "noConversations": "No conversations yet",
    "typeMessage": "Type your message...",
    "thinking": "Thinking...",
    "emptyStateTitle": "New Conversation",
    "emptyStateDesc": "Start a new conversation with the AI agent. Your chats are automatically saved and can be resumed later.",
    "untitled": "Untitled",
    "configure": "Configure",
    "justNow": "Just now",
    "minutesAgo": "{count}m ago",
    "hoursAgo": "{count}h ago",
    "daysAgo": "{count}d ago"
  },
  "theme": {
    "switchToLight": "Switch to light mode",
    "switchToDark": "Switch to dark mode"
  },
  "language": {
    "switchLanguage": "Switch language"
  },
  "login": {
    "title": "CLIver Admin",
    "username": "Username",
    "password": "Password",
    "signIn": "Sign in",
    "signingIn": "Signing in...",
    "invalidCredentials": "Invalid credentials"
  },
  "dashboard": {
    "title": "Dashboard",
    "uptime": "Uptime",
    "tasksRun": "Tasks Run",
    "status": "Status",
    "platformAdapters": "Platform Adapters"
  },
  "sessions": {
    "title": "Sessions",
    "cli": "CLI",
    "gateway": "Gateway",
    "deleteSession": "Delete Session",
    "deleteSessionDescription": "This will permanently delete this session and all its conversation history.",
    "noSessions": "No sessions found.",
    "untitled": "(untitled)",
    "noConversationTurns": "No conversation turns.",
    "session": "Session",
    "turns": "{count} turns",
    "thinking": "Thinking..."
  },
  "tasks": {
    "title": "Tasks",
    "name": "Name",
    "schedule": "Schedule",
    "status": "Status",
    "actions": "Actions",
    "noTasks": "No tasks configured.",
    "deleteTask": "Delete Task",
    "deleteTaskDescription": "Delete task \"{name}\" and all its run history?",
    "starting": "Starting...",
    "oneShot": "One-shot",
    "manual": "Manual",
    "runsIn": "Runs in {time}",
    "nextRun": "Next run: {time}",
    "upcomingRuns": "Upcoming runs:",
    "invalidCron": "Invalid cron expression",
    "taskNotFound": "Task not found.",
    "running": "Running...",
    "taskRunning": "Task is running in the background...",
    "taskStartedSuccess": "Task started successfully. It is running in the background.",
    "taskStartFailed": "Failed to start task: {error}",
    "liveStatus": "Live Status",
    "state": "State",
    "started": "Started",
    "finished": "Finished",
    "error": "Error",
    "definition": "Definition",
    "prompt": "Prompt",
    "description": "Description",
    "model": "Model",
    "skills": "Skills",
    "sessionLabel": "Session",
    "viewConversation": "View conversation",
    "created": "Created",
    "updated": "Updated",
    "runHistory": "Run History",
    "noRuns": "No runs yet.",
    "scheduleTitle": "Schedule",
    "manualDescription": "Manual — run on demand only",
    "oneShotSchedule": "One-Shot Schedule",
    "recurringSchedule": "Recurring Schedule",
    "completed": "completed",
    "overdue": "overdue",
    "createTask": "Create Task",
    "editTask": "Edit",
    "saveTask": "Save",
    "saving": "Saving...",
    "cancelEdit": "Cancel",
    "taskName": "Name",
    "taskNamePlaceholder": "my-task-name",
    "taskPrompt": "Prompt",
    "taskPromptPlaceholder": "What should the agent do?",
    "taskDescription": "Description",
    "taskDescriptionPlaceholder": "Optional description of this task",
    "scheduleType": "Schedule Type",
    "scheduleManual": "Manual",
    "scheduleOneShot": "One-shot (run once)",
    "scheduleCron": "Recurring (cron)",
    "cronExpression": "Cron Expression",
    "cronPlaceholder": "0 9 * * 1-5",
    "runAtLabel": "Run At",
    "taskSkill": "Skill",
    "taskSkills": "Skills",
    "taskWorkflow": "Workflow",
    "noneSelected": "— None —",
    "skillWorkflowExclusive": "Cannot set both skill and workflow.",
    "createSuccess": "Task created successfully.",
    "createError": "Failed to create task: {error}",
    "updateSuccess": "Task updated successfully.",
    "updateError": "Failed to update task: {error}",
    "taskNameExists": "A task with this name already exists.",
    "taskAgent": "Agent",
    "taskAgentDefault": "— Default Agent —",
    "taskContext": "Context",
    "taskContextPlaceholder": "https://... or /path/to/file",
    "taskContextHelp": "URL or file path — content is read and appended to the prompt at execution time"
  },
  "agents": {
    "title": "Agents",
    "name": "Name",
    "description": "Description",
    "role": "Role",
    "systemPrompt": "System Prompt",
    "model": "Model",
    "isDefault": "Default",
    "noAgents": "No agents configured.",
    "type": "Type",
    "command": "Command",
    "args": "Arguments",
    "env": "Environment Variables",
    "createAgent": "Create Agent",
    "editAgent": "Edit",
    "saveAgent": "Save",
    "agentName": "Name",
    "agentNamePlaceholder": "my-agent",
    "rolePlaceholder": "You are an expert...",
    "systemPromptPlaceholder": "Additional instructions for this agent...",
    "descriptionPlaceholder": "What this agent specializes in",
    "deleteAgent": "Delete Agent",
    "deleteAgentDescription": "Delete agent \"{name}\"? This cannot be undone.",
    "noneSelected": "— None —",
    "defaultBadge": "default"
  },
  "workflows": {
    "title": "Workflows",
    "definitions": "Definitions",
    "executions": "Executions",
    "noExecutions": "No executions yet.",
    "workflowNotFound": "Workflow not found.",
    "addNode": "Add Node",
    "llmStep": "LLM Step",
    "pythonStep": "Python Step",
    "saving": "Saving...",
    "saved": "Saved",
    "stepName": "Step Name",
    "type": "Type",
    "outputFormat": "Output Format",
    "prompt": "Prompt",
    "file": "File",
    "code": "Code",
    "codeHelp": "Define run(inputs) -> dict. Disabled when file is set.",
    "dependsOn": "Depends On",
    "noneRootNode": "None (root node)",
    "runToSeeOutput": "Run the workflow to see step output here.",
    "textResult": "Text Result",
    "outputFiles": "Output Files",
    "noOutput": "Step completed with no output.",
    "running": "Running…",
    "waitingForOutput": "Waiting for output…",
    "createWorkflow": "Create Workflow",
    "deleteWorkflow": "Delete Workflow",
    "deleteWorkflowDescription": "Are you sure you want to delete workflow '{name}'? This cannot be undone.",
    "workflowName": "Workflow Name",
    "workflowNamePlaceholder": "my_workflow",
    "description": "Description",
    "descriptionPlaceholder": "What this workflow does",
    "createError": "Failed to create workflow: {error}"
  },
  "skills": {
    "title": "Skills",
    "skillNotFound": "Skill not found.",
    "metadata": "Metadata",
    "name": "Name",
    "description": "Description",
    "source": "Source",
    "path": "Path",
    "license": "License",
    "compatibility": "Compatibility",
    "allowedTools": "Allowed Tools",
    "noToolsConfigured": "No tools configured",
    "addTool": "Add",
    "addToolPlaceholder": "Tool name...",
    "bodyContent": "Skill Content",
    "preview": "Preview",
    "generateWithAI": "Generate with AI",
    "aiGenerateDesc": "Describe what the skill should do and the AI will generate the content for you.",
    "aiPromptPlaceholder": "e.g. Create a skill that helps users write unit tests for Python code using pytest...",
    "aiGenerate": "Generate",
    "aiGenerating": "Generating...",
    "aiAccept": "Use This Content",
    "readOnly": "Read-only",
    "save": "Save",
    "saving": "Saving...",
    "saved": "Skill saved successfully.",
    "saveError": "Failed to save skill: {error}",
    "createSkill": "Create Skill",
    "createDescription": "Create a new skill in .cliver/skills/",
    "create": "Create",
    "creating": "Creating...",
    "createError": "Failed to create skill: {error}",
    "namePlaceholder": "my-skill-name",
    "nameHint": "Lowercase letters, digits, and hyphens only. Max 64 characters.",
    "descriptionPlaceholder": "Describe what this skill does and when to use it...",
    "descriptionRequired": "Description is required"
  },
  "config": {
    "title": "Configuration",
    "save": "Save",
    "saving": "Saving...",
    "saved": "Configuration saved successfully. Restart the gateway to apply changes.",
    "saveError": "Failed to save: {error}",
    "restart": "Restart Gateway",
    "restarting": "Restarting...",
    "restartConfirmTitle": "Restart Gateway?",
    "restartConfirmDesc": "The gateway will be temporarily unavailable. All active connections will be dropped.",
    "general": "General",
    "providers": "Providers & Models",
    "mcpServers": "MCP Servers",
    "gateway": "Gateway",
    "session": "Session",
    "defaultModel": "Default Model",
    "userAgent": "User Agent",
    "timezone": "Timezone",
    "timezonePlaceholder": "e.g. Asia/Shanghai",
    "searchEngines": "Search Engines",
    "skillAutoLearn": "Skill Auto-Learn",
    "skillAutoLearnDesc": "Automatically create skills after complex tasks",
    "modelAutoFallback": "Model Auto-Fallback",
    "modelAutoFallbackDesc": "Fall back to another model when the current one fails",
    "workflowRunsDir": "Workflow Runs Directory",
    "providerType": "Type",
    "providerApiUrl": "API URL",
    "providerApiKey": "API Key",
    "providerApiKeyPlaceholder": "API key or {{ env.VAR }}",
    "providerApiKeyMasked": "Masked — leave unchanged or enter new value",
    "secretHint": "For security, use {{ env.VAR_NAME }} to reference environment variables or .env files.",
    "testConnection": "Test Connection",
    "testing": "Testing...",
    "testNeedsModel": "Add a model first to test",
    "rateLimit": "Rate Limit",
    "rateLimitRequests": "Requests",
    "rateLimitPeriod": "Period",
    "rateLimitMargin": "Margin",
    "pricing": "Pricing (per 1M tokens)",
    "pricingCurrency": "Currency",
    "pricingInput": "Input",
    "pricingOutput": "Output",
    "pricingCachedInput": "Cached Input",
    "imageUrl": "Image URL",
    "imageModel": "Image Model",
    "audioUrl": "Audio URL",
    "audioModel": "Audio Model",
    "models": "Models",
    "modelName": "Model Name",
    "modelOptions": "Options",
    "temperature": "Temperature",
    "topP": "Top-P",
    "maxTokens": "Max Tokens",
    "frequencyPenalty": "Frequency Penalty",
    "presencePenalty": "Presence Penalty",
    "contextWindow": "Context Window",
    "thinkMode": "Think Mode",
    "thinkModeAuto": "Auto-detect",
    "thinkModeOn": "Enabled",
    "thinkModeOff": "Disabled",
    "capabilities": "Capabilities",
    "addModel": "Add Model",
    "addProvider": "Add Provider",
    "providerName": "Provider Name",
    "transport": "Transport",
    "command": "Command",
    "args": "Arguments",
    "argsPlaceholder": "Arg...",
    "addArg": "Add",
    "url": "URL",
    "headers": "Headers",
    "headerKey": "Key",
    "headerValue": "Value",
    "addHeader": "Add Header",
    "env": "Environment Variables",
    "envKey": "Key",
    "envValue": "Value",
    "addEnv": "Add Variable",
    "addServer": "Add Server",
    "serverName": "Server Name",
    "gwHost": "Host",
    "gwPort": "Port",
    "gwAdminUsername": "Admin Username",
    "gwAdminPassword": "Admin Password",
    "gwApiKey": "API Key",
    "gwLogFile": "Log File",
    "gwLogMaxBytes": "Log Max Bytes",
    "gwLogBackupCount": "Log Backup Count",
    "platformsTab": "Platforms",
    "platforms": "Platform Adapters",
    "platformType": "Type",
    "platformToken": "Token",
    "platformAppToken": "App Token",
    "platformHomeChannel": "Home Channel",
    "platformAllowedUsers": "Allowed Users",
    "platformStatus": "Status",
    "platformCustomType": "Custom module path...",
    "checkHealth": "Check Health",
    "addPlatform": "Add Platform",
    "platformName": "Platform Name",
    "maxSessions": "Max Sessions",
    "maxTurnsPerSession": "Max Turns Per Session",
    "maxAgeDays": "Max Age (Days)",
    "noProviders": "No providers configured.",
    "noServers": "No MCP servers configured.",
    "noGateway": "Gateway is not configured.",
    "noPlatforms": "No platform adapters configured.",
    "deleteConfirm": "Delete",
    "deleteConfirmTitle": "Delete \"{name}\"?",
    "deleteConfirmDesc": "This action cannot be undone. Click Save to apply.",
    "addUserPlaceholder": "User ID...",
    "addUser": "Add"
  },
  "labs": {
    "title": "AI Labs",
    "newLab": "New AI Lab",
    "noLabs": "No AI Labs Yet",
    "noLabsDesc": "Create an AI Lab to start experimenting with agent configurations.",
    "createLab": "Create AI Lab",
    "createTitle": "New AI Lab",
    "titleLabel": "Title",
    "titlePlaceholder": "e.g. E-commerce Order Agent",
    "descLabel": "Description",
    "descPlaceholder": "What domain problem does this agent solve?",
    "deleteTitle": "Delete AI Lab",
    "deleteDesc": "Delete \"{name}\" and all its sessions and benchmarks? This cannot be undone.",
    "sessions": "{count} sessions",
    "updated": "Updated {date}",
    "notFound": "AI Lab not found",
    "enterLab": "Enter Lab",
    "editLab": "Edit Lab",
    "labTitle": "Lab Title",
    "labDescription": "Lab Description",
    "saveLab": "Save Lab",
    "savingLab": "Saving..."
  },
  "lab": {
    "chat": "Chat",
    "config": "Configuration",
    "saveConfig": "Save Config",
    "configSaved": "Configuration saved",
    "model": "Model",
    "modelPlaceholder": "Select model...",
    "systemPrompt": "System Prompt",
    "systemPromptPlaceholder": "Instructions for the AI agent...",
    "mcpServers": "MCP Servers",
    "knowledgeBases": "Knowledge Bases",
    "skills": "Skills",
    "actions": "Actions",
    "runTests": "Run Benchmarks",
    "viewReport": "View Report",
    "distillSkill": "Distill Skill",
    "generatePackage": "Generate Package",
    "comingSoon": "Coming Soon",
    "benchmarks": "Benchmarks",
    "noTests": "No benchmarks defined yet.",
    "addTest": "Add Benchmark",
    "testName": "Test Name",
    "testInput": "Input",
    "testExpectedOutput": "Expected Output",
    "testExpectedFiles": "Expected Files (JSON)",
    "passing": "passing",
    "failing": "failing",
    "notRun": "not run",
    "testResults": "Test Results",
    "actualOutput": "Actual Output",
    "expectedOutput": "Expected Output",
    "typeMessage": "Type your message... (Enter to send, Shift+Enter for new line)"
  },
  "mcpServers": {
    "title": "MCP Servers",
    "newServer": "New MCP Server",
    "noServers": "No MCP Servers",
    "noServersDesc": "Connect to MCP servers to extend your agent with external tools and APIs.",
    "createTitle": "New MCP Server",
    "editTitle": "Edit MCP Server",
    "nameLabel": "Name",
    "namePlaceholder": "e.g. GitHub API Server",
    "transport": "Transport",
    "urlLabel": "URL",
    "urlPlaceholder": "https://mcp-server.example.com/sse",
    "authType": "Auth Type",
    "authNone": "None",
    "authApiKey": "API Key",
    "authToken": "Token",
    "authValue": "Auth Value",
    "authValuePlaceholder": "sk-... or {{ env.SECRET }}",
    "headers": "Headers",
    "command": "Command",
    "commandPlaceholder": "e.g. npx -y @modelcontextprotocol/server-filesystem",
    "args": "Arguments",
    "addArg": "Add Arg",
    "argsPlaceholder": "Arg...",
    "envs": "Environment Variables",
    "addEnv": "Add Variable",
    "deleteTitle": "Delete MCP Server",
    "deleteDesc": "Delete \"{name}\"? This cannot be undone.",
    "createdAgo": "Created {time}",
    "updatedAgo": "Updated {time}",
    "saving": "Saving..."
  },
  "models": {
    "title": "Models",
    "newModel": "New Model",
    "noModels": "No models configured",
    "noModelsDesc": "Add your first LLM model by clicking the button above.",
    "allModels": "All",
    "textModels": "Text",
    "imageModels": "Image",
    "audioModels": "Audio",
    "videoModels": "Video",
    "createTitle": "Create Model",
    "editTitle": "Edit Model",
    "deleteTitle": "Delete Model",
    "deleteDesc": "Are you sure you want to delete {name}?",
    "nameLabel": "Model Name",
    "namePlaceholder": "e.g. gpt-4o",
    "providerLabel": "Provider",
    "endpointLabel": "Endpoint",
    "newProvider": "Create new provider...",
    "newEndpoint": "New endpoint...",
    "optionsLabel": "Options",
    "addOption": "Add option",
    "capabilities": "Capabilities",
    "thinkMode": "Think Mode",
    "thinkModeAuto": "Auto",
    "thinkModeOn": "On",
    "thinkModeOff": "Off",
    "contextWindow": "Context Window",
    "pricing": "Pricing",
    "pricingCurrency": "Currency",
    "pricingInput": "Input ($/1M)",
    "pricingOutput": "Output ($/1M)",
    "pricingCachedInput": "Cached Input ($/1M)",
    "providerName": "Provider Name",
    "providerType": "Type",
    "providerApiKey": "API Key",
    "selectKey": "Select a key...",
    "createKey": "Create Key",
    "keyName": "Key Name",
    "keyValue": "Key Value",
    "keyDescription": "Description",
    "createAndSelect": "Create & Select",
    "endpointBaseUrl": "Base URL",
    "category": "Category",
    "apiModelName": "API Model Name",
    "apiUrl": "API URL",
    "apiModelNamePlaceholder": "e.g. gpt-4o",
    "keyColumn": "Key",
    "valueColumn": "Value",
    "keyPlaceholder": "key",
    "valuePlaceholder": "value",
    "newProviderTitle": "New Provider",
    "newProviderButton": "New Provider",
    "providerApiUrl": "API URL",
    "providerApiUrlPlaceholder": "https://api.example.com/v1",
    "rateLimitLabel": "Rate Limit",
    "rateLimitRequests": "Requests",
    "rateLimitPeriod": "Period",
    "rateLimitMargin": "Margin",
    "categoryText": "Text",
    "categoryImage": "Image",
    "categoryAudio": "Audio",
    "categoryVideo": "Video",
    "saving": "Saving...",
    "noProviders": "No providers configured. Create one first."
  },
  "keys": {
    "title": "Keys",
    "addKey": "Add Key",
    "noKeys": "No keys stored. Click \"Add Key\" to create one.",
    "name": "Name",
    "description": "Description",
    "created": "Created",
    "addTitle": "Add Key",
    "addDesc": "Store an encrypted secret (API key, token, password).",
    "nameLabel": "Name",
    "namePlaceholder": "e.g. openai_key",
    "valueLabel": "Value",
    "valuePlaceholder": "Enter secret value",
    "descLabel": "Description (optional)",
    "descPlaceholder": "e.g. OpenAI API key for research",
    "saveKey": "Save Key",
    "deleteTitle": "Delete Key",
    "deleteDesc": "Are you sure you want to delete \"{name}\"? This cannot be undone.",
    "notFound": "Key '{name}' not found."
  },
  "projects": {
    "title": "Projects",
    "comingSoon": "Projects Coming Soon",
    "comingSoonDesc": "Organize your work into projects with issues and scenario templates. Each issue generates an AI lab from a pre-configured scenario."
  },
  "scenarios": {
    "title": "Scenarios",
    "installFromGithub": "Install from GitHub",
    "installTitle": "Install Scenario",
    "installDesc": "Install a scenario template from a GitHub repository.",
    "githubSource": "GitHub Source",
    "githubPlaceholder": "github:user/repo",
    "githubExample": "Example: github:alice/research-ai-lab",
    "install": "Install",
    "installing": "Installing...",
    "removeTitle": "Remove Scenario",
    "removeDesc": "Remove scenario \"{name}\"? This cannot be undone.",
    "noScenarios": "No scenarios installed."
  },
  "settings": {
    "title": "Settings",
    "configuration": "Configuration",
    "agents": "Agents",
    "adapters": "Adapters",
    "scenarios": "Scenarios",
    "scenariosInstalled": "{count} scenarios installed",
    "installFromGithub": "Install from GitHub",
    "installTitle": "Install Scenario",
    "installDesc": "Install a scenario template from a GitHub repository.",
    "githubSource": "GitHub Source",
    "githubPlaceholder": "github:user/repo",
    "githubExample": "Example: github:alice/research-ai-lab",
    "install": "Install",
    "installing": "Installing...",
    "removeTitle": "Remove Scenario",
    "removeDesc": "Remove scenario \"{name}\"? This cannot be undone.",
    "noAgents": "No agents configured.",
    "noAdapters": "No adapters configured.",
    "noScenarios": "No scenarios installed.",
    "type": "Type",
    "model": "Model",
    "role": "Role"
  },
  "templates": {
    "make-slides": "Make slides",
    "create-website": "Create a website",
    "write-novel": "Write a novel",
    "create-video": "Create a video",
    "analyze-data": "Analyze data"
  },
  "adapters": {
    "title": "Adapters",
    "addTitle": "Add Adapter",
    "addDesc": "Connect a messaging platform to CLIver.",
    "nameLabel": "Name",
    "namePlaceholder": "e.g. my-slack",
    "typeLabel": "Type",
    "tokenLabel": "Token",
    "tokenPlaceholder": "Bot token",
    "appTokenLabel": "App Token (optional)",
    "appTokenPlaceholder": "App-level token (Slack only)",
    "homeChannelLabel": "Home Channel (optional)",
    "homeChannelPlaceholder": "Channel ID",
    "type": "Type",
    "token": "Token",
    "channel": "Channel",
    "emptyState": "No adapters configured. Click \"Add\" to connect a messaging platform.",
    "deleteTitle": "Delete Adapter",
    "deleteDesc": "Remove adapter \"{name}\"? Restart the gateway for changes to take effect."
  }
}
