{ "common": { "ok": "OK", "cancel": "Cancel", "refresh": "Refresh", "close": "Close", "edit": "Edit", "delete": "Delete", "save": "Save", "loading": "Loading…", "search": "Search", "clearSearch": "Clear search", "noData": "No data", "confirm": "Confirm", "copy": "Copy", "copied": "Copied", "copyFailed": "Copy failed" }, "header": { "title": "CyberStrikeAI", "apiDocs": "API Docs", "logout": "Sign out", "language": "Interface language", "backToDashboard": "Back to dashboard", "userMenu": "User menu", "version": "Current version", "toggleSidebar": "Collapse/expand sidebar" }, "login": { "title": "Sign in to CyberStrikeAI", "subtitle": "Enter the access password from config", "passwordLabel": "Password", "passwordPlaceholder": "Enter password", "submit": "Sign in" }, "nav": { "dashboard": "Dashboard", "chat": "Chat", "infoCollect": "Recon", "tasks": "Tasks", "vulnerabilities": "Vulnerabilities", "mcp": "MCP", "mcpMonitor": "MCP Monitor", "mcpManagement": "MCP Management", "knowledge": "Knowledge", "knowledgeRetrievalLogs": "Retrieval history", "knowledgeManagement": "Knowledge management", "skills": "Skills", "skillsMonitor": "Skills monitor", "skillsManagement": "Skills management", "roles": "Roles", "rolesManagement": "Roles management", "settings": "System settings" }, "dashboard": { "title": "Dashboard", "refresh": "Refresh", "refreshData": "Refresh data", "runningTasks": "Running tasks", "vulnTotal": "Total vulnerabilities", "toolCalls": "Tool invocations", "successRate": "Tool success rate", "clickToViewTasks": "Click to view tasks", "clickToViewVuln": "Click to view vulnerabilities", "clickToViewMCP": "Click to view MCP monitor", "severityDistribution": "Vulnerability severity distribution", "severityCritical": "Critical", "severityHigh": "High", "severityMedium": "Medium", "severityLow": "Low", "severityInfo": "Info", "runOverview": "Run overview", "batchQueues": "Batch task queues", "pending": "Pending", "executing": "Running", "completed": "Completed", "toolInvocations": "Tool invocations", "callsUnit": "calls", "toolsUnit": "tools", "knowledgeLabel": "Knowledge", "knowledgeItems": "items", "categoriesUnit": "categories", "skillsLabel": "Skills", "skillUnit": "Skills", "quickLinks": "Quick links", "toolsExecCount": "Tool execution count", "ctaTitle": "Start your security journey", "ctaSub": "Describe your target in chat, AI will assist with scanning and vulnerability analysis", "goToChat": "Go to chat", "noTasks": "No tasks", "totalCount": "{{count}} total", "notEnabled": "Disabled", "enabled": "Enabled", "toConfigure": "To configure", "toUse": "To use", "active": "Active", "highFreq": "High frequency", "noCallData": "No call data" }, "chat": { "newChat": "New chat", "searchHistory": "Search history...", "conversationGroups": "Conversation groups", "addGroup": "New group", "recentConversations": "Recent conversations", "batchManage": "Batch manage", "attackChain": "Attack chain", "viewAttackChain": "View attack chain", "selectRole": "Select role", "defaultRole": "Default", "inputPlaceholder": "Enter target or command... (type @ to select tools | Shift+Enter newline, Enter send)", "selectFile": "Select file", "uploadFile": "Upload file (multi-select or drag & drop)", "send": "Send", "searchInGroup": "Search in group...", "loadingTools": "Loading tools...", "noMatchTools": "No matching tools", "penetrationTestDetail": "Penetration test details", "expandDetail": "Expand details", "noProcessDetail": "No process details (execution may be too fast or no detailed events)", "copyMessageTitle": "Copy message", "emptyGroupConversations": "This group has no conversations yet.", "noMatchingConversationsInGroup": "No matching conversations found.", "renameGroupPrompt": "Please enter new name:", "deleteGroupConfirm": "Are you sure you want to delete this group? Conversations in the group will not be deleted, but will be removed from the group.", "deleteConversationConfirm": "Are you sure you want to delete this conversation?", "renameFailed": "Rename failed", "viewAttackChainSelectConv": "Please select a conversation to view attack chain", "viewAttackChainCurrentConv": "View attack chain of current conversation", "executeFailed": "Execution failed", "callOpenAIFailed": "Call OpenAI failed", "systemReadyMessage": "System is ready. Please enter your test requirements, and the system will automatically perform the corresponding security tests.", "addNewGroup": "+ New group" }, "tasks": { "title": "Task management", "newTask": "New task", "autoRefresh": "Auto refresh", "historyHint": "Tip: Completed task history available. Check \"Show history\" to view.", "statusRunning": "Running", "statusCancelling": "Cancelling", "statusFailed": "Failed", "statusTimeout": "Timeout", "statusCancelled": "Cancelled", "statusCompleted": "Completed", "historyBadge": "History", "duration": "Duration", "completedAt": "Completed at", "startedAt": "Started at", "clickToCopy": "Click to copy", "unnamedTask": "Unnamed task", "unknown": "Unknown", "unknownTime": "Unknown time", "clearHistoryConfirm": "Clear all task history?", "cancelTaskFailed": "Cancel task failed", "copiedToast": "Copied!", "cancelling": "Cancelling...", "enterTaskPrompt": "Enter at least one task", "noValidTask": "No valid tasks", "createBatchQueueFailed": "Failed to create batch task queue", "noBatchQueues": "Currently there are no batch task queues", "recentCompletedTasks": "Recently completed tasks (last 24 hours)", "clearHistory": "Clear history", "cancelTask": "Cancel task", "viewConversation": "View conversation", "conversationIdLabel": "Conversation ID", "statusPending": "Pending", "statusPaused": "Paused", "confirmCancelTasks": "Cancel {{n}} selected task(s)?", "batchCancelResultPartial": "Batch cancel: {{success}} succeeded, {{fail}} failed", "batchCancelResultSuccess": "Successfully cancelled {{n}} task(s)", "taskCount": "{{count}} task(s)", "queueIdLabel": "Queue ID", "createdTimeLabel": "Created at", "totalLabel": "Total", "pendingLabel": "Pending", "runningLabel": "Running", "completedLabel": "Completed", "failedLabel": "Failed", "cancelledLabel": "Cancelled", "loadingTasks": "Loading...", "loadFailedRetry": "Load failed", "loadTaskListFailed": "Failed to load task list", "getQueueDetailFailed": "Failed to load queue details", "startBatchQueueFailed": "Failed to start batch queue", "pauseQueueFailed": "Failed to pause queue", "pauseQueueConfirm": "Pause this batch queue? The current task will be stopped; remaining tasks will stay pending.", "deleteQueueConfirm": "Delete this batch queue? This cannot be undone.", "deleteQueueFailed": "Failed to delete batch queue", "batchQueueTitle": "Batch task queue", "resumeExecute": "Resume", "taskIncomplete": "Task information incomplete", "cannotGetTaskMessageInput": "Cannot get task message input", "taskMessageRequired": "Task message is required", "saveTaskFailed": "Failed to save task", "queueInfoMissing": "Queue information not found", "addTaskFailed": "Failed to add task", "confirmDeleteTask": "Delete this task?\n\nTask: {{message}}\n\nThis cannot be undone.", "deleteTaskFailed": "Failed to delete task", "paginationShow": "{{start}}-{{end}} of {{total}}", "paginationPerPage": "Per page", "paginationFirst": "First", "paginationPrev": "Previous", "paginationNext": "Next", "paginationLast": "Last", "paginationPage": "Page {{current}} / {{total}}", "deleteQueue": "Delete queue", "retry": "Retry", "noMatchingTasks": "No matching tasks", "updateTaskFailed": "Failed to update task", "durationSeconds": "s", "durationMinutes": "m", "durationHours": "h" }, "infoCollect": { "enterFofaQuery": "Enter FOFA query syntax", "querying": "Querying...", "queryFailed": "Query failed", "enterNaturalLanguage": "Enter natural language description", "cancelParse": "Cancel parse", "clickToCancelParse": "Click to cancel AI parse", "parseToFofa": "Parse natural language to FOFA query", "parseResultEmpty": "Parse result empty: Please add/modify FOFA query in popup", "queryPlaceholder": "e.g. app=\"Apache\" && country=\"CN\"", "selectAll": "Select all/none", "selectRow": "Select row", "copyTarget": "Copy target", "sendToChat": "Send to chat (editable; Ctrl/Cmd+click to send directly)", "noTargetToCopy": "No target to copy", "targetCopied": "Target copied", "manualCopyHint": "Copy failed, please copy manually: ", "cannotInferTarget": "Cannot infer scan target from row (include host/ip/port/domain in fields)", "noSendMessage": "sendMessage() not found, please refresh and retry", "filledToInput": "Filled to chat input, edit and send", "noExportResult": "No results to export", "xlsxNotLoaded": "XLSX library not loaded, please refresh and retry", "noResults": "No results", "selectRowsFirst": "Select rows to scan first", "noScanTarget": "No scan targets inferred from selection (include host/ip/port/domain in fields)", "batchScanFailed": "Batch scan failed", "batchQueueCreated": "Batch scan queue created", "field": "Field", "parsePending": "AI parsing...", "parsePendingClickCancel": "AI parsing... (click button to cancel)", "parseSlow": "AI parse is taking a while, still processing…", "parseDone": "AI parse complete", "parseCancelled": "AI parse cancelled", "parseFailed": "AI parse failed: ", "parseResultTitle": "AI parse result", "naturalLanguageLabel": "Natural language", "fofaQueryEditable": "FOFA query (editable)", "confirmBeforeQuery": "Confirm syntax and scope before running the query.", "reminder": "Reminder", "explanation": "Explanation", "actions": "Actions", "batchScanTitle": "FOFA batch scan", "queueCreatedSkipped": "Queue created ({{n}} rows skipped, no target)", "createQueueFailed": "Failed to create batch queue", "loading": "Loading...", "none": "None", "truncated": "truncated", "resultsMeta": "Total {{total}} · This page {{count}} · page={{page}} · size={{size}}", "parseModalCancel": "Cancel", "parseModalApply": "Fill into query", "parseModalApplyRun": "Fill and query" }, "vulnerability": { "title": "Vulnerability management", "addVuln": "Add vulnerability", "editVuln": "Edit vulnerability", "loadFailed": "Failed to load vulnerabilities", "deleteConfirm": "Delete this vulnerability?" }, "mcp": { "monitorTitle": "MCP Status Monitor", "execStats": "Execution stats", "latestExecutions": "Latest executions", "toolSearch": "Tool search", "toolSearchPlaceholder": "Enter tool name...", "statusFilter": "Status filter", "filterAll": "All", "selectedCount": "{{count}} selected", "selectAll": "Select all", "deselectAll": "Deselect all", "deleteSelected": "Batch delete", "deleteExecConfirm": "Delete this execution record?", "batchDeleteFailed": "Batch delete failed", "managementTitle": "MCP Management", "addExternal": "Add external MCP", "toolConfig": "MCP tool config", "saveToolConfig": "Save tool config", "externalConfig": "External MCP config", "loadingTools": "Loading tools...", "loadToolsTimeout": "Tools load timeout. External MCP may be slow. Click Refresh to retry or check connection.", "loadToolsFailed": "Failed to load tools", "noTools": "No tools", "externalBadge": "External", "externalFrom": "External ({{name}})", "externalToolFrom": "External MCP - Source: {{name}}", "noDescription": "No description", "paginationInfo": "{{start}}-{{end}} of {{total}} tools", "perPage": "Per page:", "firstPage": "First", "prevPage": "Previous", "nextPage": "Next", "lastPage": "Last", "pageInfo": "Page {{page}} of {{total}}", "currentPageEnabled": "Enabled on current page", "totalEnabled": "Total enabled", "toolsConfigSaved": "Tool configuration saved!", "saveToolsConfigFailed": "Failed to save tool config", "getConfigFailed": "Failed to get config", "noExternalMCP": "No external MCP configured", "clickToAddExternal": "Click \"Add external MCP\" to configure", "connected": "Connected", "connecting": "Connecting...", "connectionFailed": "Connection failed", "disabled": "Disabled", "disconnected": "Disconnected", "stopConnection": "Stop connection", "startConnection": "Start connection", "stop": "Stop", "start": "Start", "editConfig": "Edit config", "deleteConfig": "Delete config", "transportMode": "Transport", "toolCount": "Tool count", "description": "Description", "timeout": "Timeout", "command": "Command", "addExternalMCP": "Add external MCP", "editExternalMCP": "Edit external MCP", "jsonEmpty": "JSON cannot be empty", "jsonError": "JSON format error", "configMustBeObject": "Config error: Must be JSON object with name as key", "configNeedOne": "Config error: At least one config item required", "configNameEmpty": "Config error: Name cannot be empty", "configMustBeObj": "Config error: \"{{name}}\" must be object", "configNeedCommand": "Config error: \"{{name}}\" needs command (stdio) or url (http/sse)", "configStdioNeedCommand": "Config error: \"{{name}}\" stdio mode needs command", "configHttpNeedUrl": "Config error: \"{{name}}\" http mode needs url", "configSseNeedUrl": "Config error: \"{{name}}\" sse mode needs url", "saveSuccess": "Saved", "deleteSuccess": "Deleted", "deleteExternalConfirm": "Delete external MCP \"{{name}}\"?", "operationFailed": "Operation failed", "connectionFailedCheck": "Connection failed. Check config and network.", "connectionTimeout": "Connection timeout. Check config and network.", "totalCount": "Total", "enabledCount": "Enabled", "disabledCount": "Disabled", "connectedCount": "Connected" }, "settings": { "title": "System settings", "nav": { "basic": "Basic", "robots": "Bots", "terminal": "Terminal", "security": "Security" }, "robots": { "title": "Bot settings", "description": "Configure WeCom, DingTalk and Lark bots so you can chat with CyberStrikeAI on your phone without opening the web UI.", "wecom": { "title": "WeCom", "enabled": "Enable WeCom bot" }, "dingtalk": { "title": "DingTalk", "enabled": "Enable DingTalk bot" }, "lark": { "title": "Lark", "enabled": "Enable Lark bot" } }, "apply": { "button": "Apply configuration", "loadFailed": "Failed to load configuration", "fillRequired": "Please fill in all required fields (marked with *)", "applyFailed": "Failed to apply configuration", "applySuccess": "Configuration applied successfully!" }, "security": { "changePassword": "Change password", "fillPasswordHint": "Fill current and new password correctly. New password at least 8 characters, must match twice.", "changePasswordFailed": "Failed to change password", "passwordUpdated": "Password updated. Please sign in again with new password." } }, "auth": { "sessionExpired": "Session expired, please sign in again", "unauthorized": "Unauthorized", "enterPassword": "Please enter password", "loginFailedCheck": "Sign-in failed, please check the password", "loginFailedRetry": "Sign-in failed, please try again later", "loggedOut": "Signed out" }, "knowledge": { "title": "Knowledge management", "retrievalLogs": "Retrieval history", "totalItems": "Total items", "categories": "Categories", "addKnowledge": "Add knowledge", "rebuildIndex": "Rebuild index", "rebuildIndexConfirm": "Rebuild index?", "deleteItemConfirm": "Delete this knowledge item?", "notEnabledTitle": "Knowledge base function not enabled", "notEnabledHint": "Please go to system settings to enable knowledge retrieval.", "goToSettings": "Go to settings" }, "roles": { "title": "Role management", "createRole": "Create role", "searchPlaceholder": "Search roles...", "deleteConfirm": "Delete this role?" }, "skills": { "title": "Skills management", "monitorTitle": "Skills monitor", "createSkill": "Create Skill", "callStats": "Call stats", "addSkill": "Add Skill", "editSkill": "Edit Skill", "loadListFailed": "Failed to load skills list", "noSkills": "No skills. Click \"Create Skill\" to add first.", "noMatch": "No matching skills", "searchFailed": "Search failed", "refreshed": "Refreshed", "loadDetailFailed": "Failed to load skill details", "viewFailed": "Failed to view skill", "saving": "Saving...", "saveFailed": "Failed to save skill", "deleteFailed": "Failed to delete skill", "loadStatsFailed": "Failed to load skills monitor data", "clearStatsConfirm": "Clear all Skills statistics? This cannot be undone.", "statsCleared": "Skills statistics cleared", "clearStatsFailed": "Failed to clear statistics" }, "apiDocs": { "curlCopied": "curl command copied to clipboard!" }, "chatGroup": { "search": "Search", "edit": "Edit", "delete": "Delete", "clearSearch": "Clear search", "searchInGroupPlaceholder": "Search in group...", "attackChain": "Attack chain", "viewAttackChain": "View attack chain", "selectRole": "Select role", "close": "Close", "selectFile": "Select file", "uploadFile": "Upload file (multi-select or drag & drop)", "send": "Send", "rolePanelTitle": "Select role", "copyMessage": "Copy message", "remove": "Remove" }, "mcpMonitor": { "deselectAll": "Deselect all", "statusPending": "Pending", "statusCompleted": "Completed", "statusRunning": "Running", "statusFailed": "Failed", "loading": "Loading...", "noStatsData": "No statistical data", "noExecutions": "No execution records", "noRecordsWithFilter": "No records with current filter", "paginationInfo": "Show {{start}}-{{end}} of {{total}} records", "perPageLabel": "Per page", "loadStatsError": "Failed to load statistics", "loadExecutionsError": "Failed to load execution records", "totalCalls": "Total calls", "successFailed": "Success {{success}} / Failed {{failed}}", "successRate": "Success rate", "statsFromAllTools": "From all tool calls", "lastCall": "Last call", "lastRefreshTime": "Last refresh", "noCallsYet": "No calls yet", "unknownTool": "Unknown tool", "successFailedRate": "Success {{success}} / Failed {{failed}} · {{rate}}% success rate", "columnTool": "Tool", "columnStatus": "Status", "columnStartTime": "Start time", "columnDuration": "Duration", "columnActions": "Actions", "viewDetail": "View details", "delete": "Delete", "deleteExecTitle": "Delete this execution record", "deleteExecConfirmSingle": "Are you sure you want to delete this execution record? This cannot be undone.", "deleteExecFailed": "Failed to delete execution record", "execDeleted": "Execution record deleted", "selectExecFirst": "Please select execution record(s) to delete first", "batchDeleteConfirm": "Are you sure you want to delete the selected {{count}} execution record(s)? This cannot be undone.", "batchDeleteSuccess": "Successfully deleted {{count}} execution record(s)", "unknown": "Unknown", "durationSeconds": "{{n}} sec", "durationMinutes": "{{minutes}} min {{seconds}} sec", "durationMinutesOnly": "{{minutes}} min", "durationHours": "{{hours}} hr {{minutes}} min", "durationHoursOnly": "{{hours}} hr" }, "knowledgePage": { "totalContent": "Total content", "categoryFilter": "Category filter", "all": "All", "searchPlaceholder": "Search knowledge...", "loading": "Loading..." }, "retrievalLogs": { "totalRetrievals": "Total retrievals", "successRetrievals": "Success", "successRate": "Success rate", "retrievedItems": "Items retrieved", "conversationId": "Conversation ID", "messageId": "Message ID", "filter": "Filter", "optionalConversation": "Optional: filter by conversation", "optionalMessage": "Optional: filter by message", "loading": "Loading...", "noRecords": "No retrieval records yet", "noQuery": "No query content", "itemsUnit": "items", "hasResults": "Has results", "noResults": "No results", "clickToCopy": "Click to copy", "retrievalResult": "Retrieval result", "foundCount": "Found {{count}} related knowledge item(s)", "foundUnknown": "Found related knowledge (count unknown)", "noMatch": "No matching knowledge items", "retrievedItemsLabel": "Retrieved knowledge items:", "viewDetails": "View details", "loadError": "Failed to load retrieval logs", "detailError": "Unable to get retrieval details", "deleteError": "Failed to delete retrieval log", "detailsTitle": "Retrieval details", "queryInfo": "Query info", "queryContent": "Query content:", "retrievalInfo": "Retrieval info", "riskType": "Risk type", "retrievalTime": "Retrieval time", "noItemDetails": "No knowledge item details found", "noContentPreview": "No content preview", "untitled": "Untitled", "uncategorized": "Uncategorized", "relatedInfo": "Related info", "itemsCount": "{{count}} knowledge item(s)", "deleteConfirm": "Delete this retrieval record?" }, "infoCollectPage": { "title": "Recon", "reset": "Reset", "confirm": "OK", "fofaQuerySyntax": "FOFA query syntax", "naturalLanguage": "Natural language (AI parses to FOFA)", "returnCount": "Return count", "pageNum": "Page", "returnFields": "Return fields (comma-separated)", "queryResults": "Query results", "selectedRows": "{{count}} selected", "selectedRowsZero": "0 selected", "columns": "Columns", "exportCsv": "Export CSV", "exportJson": "Export JSON", "exportXlsx": "Export XLSX", "batchScan": "Batch scan", "showColumns": "Show columns", "columnsPanelAll": "Select all", "columnsPanelNone": "Deselect all", "columnsPanelClose": "Close", "formHint": "See FOFA docs for query syntax; supports && / || / ().", "parseBtn": "AI parse", "parseHint": "Result will open in a popup for editing before running the query.", "minFields": "Min fields", "webCommon": "Web common", "intelEnhanced": "Intel enhanced", "presetApache": "Apache + China", "presetLogin": "Login page + China", "presetDomain": "By domain", "presetIp": "By IP", "nlPlaceholder": "e.g. Apache sites in Missouri, US, title contains Home", "showHideColumns": "Show/hide columns", "exportCsvTitle": "Export results as CSV (UTF-8)", "exportJsonTitle": "Export results as JSON", "exportXlsxTitle": "Export results as Excel", "batchScanTitle": "Create batch task queue from selected rows" }, "vulnerabilityPage": { "statTotal": "Total", "filter": "Filter", "clear": "Clear", "vulnId": "Vuln ID", "conversationId": "Conversation ID", "severity": "Severity", "status": "Status", "statusOpen": "Open", "statusConfirmed": "Confirmed", "statusFixed": "Fixed", "statusFalsePositive": "False positive", "searchVulnId": "Search vuln ID", "filterConversation": "Filter by conversation", "loading": "Loading...", "noRecords": "No vulnerability records" }, "tasksPage": { "statusFilter": "Status filter", "statusPending": "Pending", "statusPaused": "Paused", "statusCancelled": "Cancelled", "searchQueuePlaceholder": "Search queue ID, title or created time", "searchKeywordPlaceholder": "Enter keyword..." }, "skillsPage": { "clearStats": "Clear stats", "clearStatsTitle": "Clear all statistics", "skillsCallStats": "Skills call stats", "searchPlaceholder": "Search Skills...", "loading": "Loading..." }, "settingsBasic": { "basicTitle": "Basic settings", "openaiConfig": "OpenAI config", "fofaConfig": "FOFA config", "agentConfig": "Agent config", "knowledgeConfig": "Knowledge base config", "baseUrl": "Base URL", "apiKey": "API Key", "model": "Model", "openaiBaseUrlPlaceholder": "https://api.openai.com/v1", "openaiApiKeyPlaceholder": "Enter OpenAI API Key", "modelPlaceholder": "gpt-4", "fofaBaseUrlPlaceholder": "https://fofa.info/api/v1/search/all (optional)", "fofaBaseUrlHint": "Leave empty for default.", "email": "Email", "fofaEmailPlaceholder": "Enter FOFA email", "fofaApiKeyPlaceholder": "Enter FOFA API Key", "fofaApiKeyHint": "Stored in server config (config.yaml) only.", "maxIterations": "Max iterations", "iterationsPlaceholder": "30", "enableKnowledge": "Enable knowledge retrieval", "knowledgeBasePath": "Knowledge base path", "knowledgeBasePathPlaceholder": "knowledge_base", "knowledgeBasePathHint": "Relative to config file directory", "embeddingConfig": "Embedding config", "provider": "Provider", "embeddingBaseUrlPlaceholder": "Leave empty to use OpenAI base_url", "embeddingApiKeyPlaceholder": "Leave empty to use OpenAI api_key", "modelName": "Model name", "embeddingModelPlaceholder": "text-embedding-v4", "retrievalConfig": "Retrieval config", "topK": "Top-K results", "topKPlaceholder": "5", "topKHint": "Number of top-K results to return", "similarityThreshold": "Similarity threshold", "similarityPlaceholder": "0.7", "similarityHint": "Results below this value are filtered (0-1)", "hybridWeight": "Hybrid weight", "hybridPlaceholder": "0.7", "hybridHint": "Vector weight (0-1); 1.0 = vector only, 0.0 = keyword only", "indexConfig": "Index config", "chunkSize": "Chunk size", "chunkSizePlaceholder": "512", "chunkSizeHint": "Max tokens per chunk (default 512)", "chunkOverlap": "Chunk overlap", "chunkOverlapPlaceholder": "50", "chunkOverlapHint": "Overlap tokens between chunks (default 50)", "maxChunksPerItem": "Max chunks per item", "maxChunksPlaceholder": "0", "maxChunksHint": "Max chunks per knowledge item (0 = no limit)", "maxRpm": "Max RPM", "maxRpmPlaceholder": "0", "maxRpmHint": "Max requests per minute (0 = no limit)", "rateLimitDelay": "Rate limit delay (ms)", "rateLimitPlaceholder": "300", "rateLimitHint": "Delay between requests (ms); 0 = no limit", "maxRetries": "Max retries", "maxRetriesPlaceholder": "3", "maxRetriesHint": "Retries on rate limit or server error", "retryDelay": "Retry delay (ms)", "retryDelayPlaceholder": "1000", "retryDelayHint": "Delay between retries (ms)" }, "settingsTerminal": { "title": "Terminal", "description": "Run commands on the server for ops and debugging. Commands run on the server; avoid sensitive or destructive operations.", "terminalTab": "Terminal {{n}}", "close": "Close", "newTerminal": "New terminal" }, "settingsSecurity": { "changePasswordTitle": "Change password", "changePasswordDesc": "After changing password, sign in again with the new password.", "currentPassword": "Current password", "currentPasswordPlaceholder": "Enter current password", "newPassword": "New password", "newPasswordPlaceholder": "New password (at least 8 characters)", "confirmPassword": "Confirm new password", "confirmPasswordPlaceholder": "Enter new password again", "clear": "Clear", "changePasswordBtn": "Change password" }, "settingsRobotsExtra": { "botCommandsTitle": "Bot commands", "botCommandsDesc": "You can send these commands in chat (Chinese and English supported):" }, "mcpDetailModal": { "title": "Tool call details", "execInfo": "Execution info", "tool": "Tool", "status": "Status", "time": "Time", "executionId": "Execution ID", "requestParams": "Request params", "copyJson": "Copy JSON", "responseResult": "Response", "copyContent": "Copy content", "correctInfo": "Correct info", "errorInfo": "Error info", "copyError": "Copy error" }, "attackChainModal": { "title": "Attack chain", "regenerate": "Regenerate", "regenerateTitle": "Regenerate attack chain (include latest conversation)", "exportPng": "Export PNG", "exportSvg": "Export SVG", "refreshTitle": "Refresh current attack chain", "nodesEdges": "Nodes: {{nodes}} | Edges: {{edges}}", "searchPlaceholder": "Search nodes...", "allTypes": "All types", "target": "Target", "action": "Action", "vulnerability": "Vulnerability", "allRisks": "All risks", "highRisk": "High (80-100)", "mediumHighRisk": "Medium-high (60-79)", "mediumRisk": "Medium (40-59)", "lowRisk": "Low (0-39)", "resetFilter": "Reset filter", "loading": "Loading...", "riskLevel": "Risk level", "lineMeaning": "Line meaning", "blueLine": "Blue: action finds vulnerability", "redLine": "Red: enables/contributes", "grayLine": "Gray: logical order", "nodeDetails": "Node details", "closeDetails": "Close details" }, "externalMcpModal": { "configJson": "Config JSON", "formatLabel": "Format:", "formatDesc": "JSON object; key = config name, value = config. Use Start/Stop buttons to control state.", "formatJson": "Format JSON", "loadExample": "Load example" }, "skillModal": { "addSkill": "Add Skill", "editSkill": "Edit Skill", "skillName": "Skill name", "skillNamePlaceholder": "e.g. sql-injection-testing", "skillNameHint": "Letters, numbers, hyphens and underscores only", "description": "Description", "descriptionPlaceholder": "Short description", "contentLabel": "Content (Markdown)", "contentPlaceholder": "Enter skill content in Markdown...", "contentHint": "YAML front matter supported (optional)" }, "knowledgeItemModal": { "addKnowledge": "Add knowledge", "editKnowledge": "Edit knowledge", "category": "Category (risk type)", "categoryPlaceholder": "e.g. SQL injection", "title": "Title", "titlePlaceholder": "Knowledge item title", "contentLabel": "Content (Markdown)", "contentPlaceholder": "Enter content in Markdown..." }, "batchManageModal": { "title": "Manage conversations · {{count}} total", "searchPlaceholder": "Search history", "conversationName": "Conversation name", "lastTime": "Last activity", "action": "Action", "selectAll": "Select all", "deleteSelected": "Delete selected", "confirmDeleteNone": "Please select at least one conversation to delete", "confirmDeleteN": "Delete {{count}} selected conversation(s)?", "deleteFailed": "Delete failed", "unnamedConversation": "Unnamed conversation" }, "createGroupModal": { "title": "Create group", "description": "Group conversations for easier management.", "selectIcon": "Click to choose icon", "groupNamePlaceholder": "Enter group name", "pickIcon": "Pick icon", "customIcon": "Custom", "confirmIcon": "OK", "create": "Create", "cancel": "Cancel", "suggestionPenetrationTest": "Penetration Testing", "suggestionCtf": "CTF", "suggestionRedTeam": "Red Team", "suggestionVulnerabilityMining": "Vulnerability Mining", "nameExists": "Group name already exists, please use another name.", "createFailed": "Create failed", "unknownError": "Unknown error" }, "contextMenu": { "viewAttackChain": "View attack chain", "rename": "Rename", "pinConversation": "Pin conversation", "unpinConversation": "Unpin", "batchManage": "Batch manage", "moveToGroup": "Move to group", "deleteConversation": "Delete conversation", "pinGroup": "Pin group", "unpinGroup": "Unpin", "deleteGroup": "Delete group" }, "batchImportModal": { "title": "New task", "queueTitle": "Queue title", "queueTitlePlaceholder": "Enter queue title (optional, for identification and filtering)", "queueTitleHint": "Set a title for the batch task queue to make it easier to find and manage later.", "role": "Role", "defaultRole": "Default", "roleHint": "Select a role; all tasks will be executed using that role's configuration (prompt and tools).", "tasksList": "Task list (one task per line)", "tasksListPlaceholder": "Enter task list, one per line", "tasksListPlaceholderExample": "Enter task list, one per line, for example:\nScan open ports of 192.168.1.1\nCheck if https://example.com has SQL injection\nEnumerate subdomains of example.com", "tasksListHint": "Enter one task command per line; the system will execute them in order. Empty lines are ignored.", "tasksListHintFull": "Hint: Enter one task command per line; the system will execute these tasks in order. Empty lines are ignored.", "createQueue": "Create queue" }, "batchQueueDetailModal": { "title": "Batch queue details", "addTask": "Add task", "startExecute": "Start", "pauseQueue": "Pause queue", "deleteQueue": "Delete queue", "queueTitle": "Task title", "role": "Role", "defaultRole": "Default", "queueId": "Queue ID", "status": "Status", "createdAt": "Created at", "startedAt": "Started at", "completedAt": "Completed at", "taskTotal": "Total tasks", "taskList": "Task list", "startLabel": "Start", "completeLabel": "Complete", "errorLabel": "Error", "resultLabel": "Result" }, "editBatchTaskModal": { "title": "Edit task", "taskMessage": "Task message", "taskMessagePlaceholder": "Enter task message" }, "addBatchTaskModal": { "title": "Add task", "taskMessage": "Task message", "taskMessagePlaceholder": "Enter task message", "add": "Add" }, "vulnerabilityModal": { "conversationId": "Conversation ID", "conversationIdPlaceholder": "Enter conversation ID", "title": "Title", "titlePlaceholder": "Vulnerability title", "description": "Description", "descriptionPlaceholder": "Detailed description", "severity": "Severity", "pleaseSelect": "Please select", "severityCritical": "Critical", "severityHigh": "High", "severityMedium": "Medium", "severityLow": "Low", "severityInfo": "Info", "status": "Status", "statusOpen": "Open", "statusConfirmed": "Confirmed", "statusFixed": "Fixed", "statusFalsePositive": "False positive", "type": "Vulnerability type", "typePlaceholder": "e.g. SQL injection, XSS, CSRF", "target": "Target", "targetPlaceholder": "Affected target (URL, IP, etc.)", "proof": "Proof (POC)", "proofPlaceholder": "Proof: request/response, screenshots, etc.", "impact": "Impact", "impactPlaceholder": "Impact description", "recommendation": "Recommendation", "recommendationPlaceholder": "Remediation" }, "roleModal": { "addRole": "Add role", "editRole": "Edit role", "roleName": "Role name", "roleNamePlaceholder": "Enter role name", "roleDescription": "Role description", "roleDescriptionPlaceholder": "Enter role description", "roleIcon": "Role icon", "roleIconPlaceholder": "Enter emoji, e.g. 🏆", "roleIconHint": "Emoji shown in role selector.", "userPrompt": "User prompt", "userPromptPlaceholder": "Appended before user message...", "userPromptHint": "This prompt is appended before user message to guide AI. It does not change system prompt.", "relatedTools": "Related tools (optional)", "defaultRoleToolsTitle": "Default role uses all tools", "defaultRoleToolsDesc": "Default role uses all tools enabled in MCP management.", "searchToolsPlaceholder": "Search tools...", "loadingTools": "Loading tools...", "relatedToolsHint": "Select tools to link; empty = use all from MCP management.", "relatedSkills": "Related Skills (optional)", "searchSkillsPlaceholder": "Search skill...", "loadingSkills": "Loading skills...", "relatedSkillsHint": "Selected skills are injected into system prompt before task execution.", "enableRole": "Enable this role" } }