# ==================== MateClaw i18n: en-US ==================== # --- Result Codes --- result.success=Success result.unauthorized=Not logged in or token expired result.forbidden=Access denied result.not_found=Resource not found result.system_error=Internal server error result.param_error=Parameter validation failed result.agent_not_found=Agent not found result.agent_busy=Agent is busy, please try later result.llm_error=LLM call failed result.tool_not_found=Tool not found result.channel_error=Channel message sending failed # --- Tool Descriptions --- tool.getCurrentDateTime.desc=Get current date and time in yyyy-MM-dd HH:mm:ss format tool.getCurrentDate.desc=Get current date in yyyy-MM-dd format tool.getCurrentTime.desc=Get current time in HH:mm:ss format tool.read_file.desc=Read the contents of a file. Supports line-range reading (1-based). Returns structured JSON with filePath, totalLines, readLines, content. Auto-truncates large files with continuation hints. Text files only; use extract_document_text for PDF/Office documents. tool.read_file.param.filePath=Absolute or relative file path tool.read_file.param.startLine=Start line number (1-based, inclusive). Omit to start from line 1 tool.read_file.param.endLine=End line number (1-based, inclusive). Omit to read to EOF or truncation limit tool.write_file.desc=Write content to a file. Overwrites if exists, creates if not (auto-creates parent directories). Returns structured JSON with filePath, bytesWritten. Requires user approval. tool.write_file.param.filePath=Absolute or relative file path tool.write_file.param.content=Content to write to the file tool.edit_file.desc=Edit file content via find-and-replace. Finds exact match of old_text and replaces with new_text. Returns structured JSON with filePath, replacements count. Requires user approval. Replaces first occurrence by default; set replaceAll=true for all. tool.edit_file.param.filePath=Absolute or relative file path tool.edit_file.param.oldText=Original text to find (exact match) tool.edit_file.param.newText=Replacement text tool.edit_file.param.replaceAll=Replace all occurrences, default false (first only) tool.execute_shell_command.desc=Execute a shell command on the local server. For running system commands, viewing files, running scripts. Uses cmd.exe on Windows, /bin/sh on Linux/macOS. Dangerous operations trigger security approval. Returns structured result with exitCode, stdout, stderr, timedOut. tool.execute_shell_command.param.command=Shell command to execute tool.execute_shell_command.param.timeoutSeconds=Timeout in seconds, default 60 tool.search.desc=Search the internet for latest information. Use when querying real-time news, latest data, or uncertain facts. Supports optional freshness, language, count parameters. tool.search.param.query=Search keywords tool.search.param.freshness=Time range filter: day (today), week (this week), month (this month), year (this year) tool.search.param.language=Language preference: zh-CN (Chinese), en (English) tool.search.param.count=Max results: 1-10, default 5 tool.create_cron_job.desc=Create a scheduled task (cron job). Runs automatically at specified time and sends trigger message to current agent. Use 5-field cron: minute hour day month weekday. tool.list_cron_jobs.desc=List all scheduled tasks with name, cron expression, next run time, and enabled status. tool.toggle_cron_job.desc=Enable or disable a scheduled task by its job ID. tool.delete_cron_job.desc=Delete a scheduled task. Requires user approval. tool.delegateToAgent.desc=Delegate a task to another Agent for multi-agent collaboration. Target Agent executes in an independent session and returns its final reply. Provide complete task context as the target cannot see current conversation history. tool.delegateToAgent.param.agentName=Target Agent name (exact match) tool.delegateToAgent.param.task=Task description with complete context information tool.listAvailableAgents.desc=List all available Agents (enabled), including name, type, and description. # --- Tool Error Messages --- tool.read_file.error.not_found=File does not exist: {0} tool.read_file.error.is_directory=Path is a directory, not a file: {0} tool.read_file.error.not_readable=File is not readable: {0} tool.read_file.error.start_exceeds=Start line {0} exceeds total lines {1} tool.read_file.error.start_gt_end=Start line {0} is greater than end line {1} tool.read_file.error.read_exception=Read file exception: {0} tool.write_file.error.path_empty=File path cannot be empty tool.write_file.error.is_directory=Path is an existing directory, cannot write as file: {0} tool.write_file.error.write_exception=Write file exception: {0} tool.edit_file.error.path_empty=File path cannot be empty tool.edit_file.error.old_text_empty=oldText cannot be empty tool.edit_file.error.same_text=oldText and newText are identical, no replacement needed tool.edit_file.error.not_found=File does not exist: {0} tool.edit_file.error.is_directory=Path is a directory, not a file: {0} tool.edit_file.error.not_rw=File is not readable/writable: {0} tool.edit_file.error.old_not_found=Specified oldText not found in file. Check for exact match including spaces and line breaks. tool.edit_file.error.edit_exception=Edit file exception: {0} tool.shell.error.timeout=Command timed out ({0} seconds), forcefully terminated tool.shell.error.exception=Execution exception: {0} # --- Guard Rules --- guard.SHELL_RM_RF_ROOT.name=Recursive force delete root directory guard.SHELL_RM_RF_ROOT.fix=Specify a concrete directory path instead of root guard.SHELL_MKFS.name=Filesystem formatting guard.SHELL_MKFS.fix=Verify target device and execute manually guard.SHELL_DD_DEV.name=Direct disk write guard.SHELL_DD_DEV.fix=Verify target device and execute manually guard.SHELL_KILL_INIT.name=Kill init/systemd guard.SHELL_KILL_INIT.fix=Use systemctl to manage services guard.SHELL_CURL_PIPE_SH.name=Pipe download execution (curl) guard.SHELL_CURL_PIPE_SH.fix=Download file first, review content, then execute guard.SHELL_WGET_PIPE_SH.name=Pipe download execution (wget) guard.SHELL_WGET_PIPE_SH.fix=Download file first, review content, then execute guard.SHELL_FORK_BOMB.name=Fork Bomb guard.SHELL_FORK_BOMB.fix=This command has no legitimate use guard.SHELL_REVERSE_SHELL.name=Reverse Shell guard.SHELL_REVERSE_SHELL.fix=This command may be used for remote control guard.SHELL_RM.name=rm delete command guard.SHELL_RM.fix=Confirm files to delete, consider using trash instead of rm guard.SHELL_RM_RF.name=Recursive force delete guard.SHELL_RM_RF.fix=Use rm -ri or specify exact files guard.SHELL_RM_ROOT.name=Delete from root path guard.SHELL_RM_ROOT.fix=Specify a concrete path guard.SHELL_RMDIR_ROOT.name=Delete directory from root path guard.SHELL_RMDIR_ROOT.fix=Specify a concrete path guard.SHELL_SQL_DROP.name=SQL DROP operation guard.SHELL_SQL_DROP.fix=Backup data before executing guard.SHELL_SQL_TRUNCATE.name=SQL TRUNCATE operation guard.SHELL_SQL_TRUNCATE.fix=Backup data before executing guard.SHELL_SQL_DELETE_ALL.name=SQL unconditional DELETE guard.SHELL_SQL_DELETE_ALL.fix=Add a WHERE clause guard.SHELL_SQL_ALTER_DROP.name=SQL ALTER TABLE DROP guard.SHELL_SQL_ALTER_DROP.fix=Backup data before executing guard.SHELL_SHUTDOWN.name=System shutdown guard.SHELL_SHUTDOWN.fix=Confirm shutdown is needed guard.SHELL_REBOOT.name=System reboot guard.SHELL_REBOOT.fix=Confirm reboot is needed guard.SHELL_CHMOD_777.name=Overly permissive chmod guard.SHELL_CHMOD_777.fix=Use minimum necessary permissions guard.SHELL_EVAL.name=Dynamic code execution guard.SHELL_EVAL.fix=Avoid using eval guard.SHELL_GIT_FORCE_PUSH.name=Git force push guard.SHELL_GIT_FORCE_PUSH.fix=Use --force-with-lease guard.SHELL_GIT_RESET_HARD.name=Git hard reset guard.SHELL_GIT_RESET_HARD.fix=Use git stash first guard.SHELL_CRONTAB.name=Crontab modification guard.SHELL_CRONTAB.fix=Confirm crontab content guard.SHELL_AUTHORIZED_KEYS.name=SSH key modification guard.SHELL_AUTHORIZED_KEYS.fix=Confirm SSH key changes guard.SHELL_SUDOERS.name=Sudo privilege modification guard.SHELL_SUDOERS.fix=Use visudo guard.SHELL_OBFUSCATED_EXEC.name=Obfuscated code execution guard.SHELL_OBFUSCATED_EXEC.fix=Decode and review content before executing guard.CRED_PASSWORD_ASSIGN.name=Credential exposure guard.CRED_PASSWORD_ASSIGN.fix=Use environment variables or secret manager guard.CRED_AWS_KEY.name=AWS Access Key leak guard.CRED_AWS_KEY.fix=Use IAM Role or AWS Secrets Manager guard.CRED_PRIVATE_KEY.name=Private key leak guard.CRED_PRIVATE_KEY.fix=Do not pass private keys in parameters # --- WorkspacePathGuard --- guard.path.not_allowed=Path is outside workspace boundary: {0}, allowed root: {1} guard.path.symlink_escape=Path escapes workspace via symlink: {0}, allowed root: {1} # --- Exception Messages (structured keys, resolved by GlobalExceptionHandler) --- # auth err.auth.invalid_credentials=Invalid username or password err.auth.username_exists=Username already exists err.auth.user_not_found=User not found err.auth.wrong_password=Incorrect current password # agent err.agent.not_found=Agent not found err.agent.disabled=Agent is disabled # workspace err.workspace.not_found=Workspace not found err.workspace.slug_exists=Workspace slug already exists err.workspace.cannot_modify_default=Cannot modify default workspace slug err.workspace.cannot_delete_default=Cannot delete default workspace err.workspace.member_exists=User is already a member of this workspace err.workspace.not_member=User is not a member of this workspace err.workspace.cannot_modify_owner=Cannot modify workspace owner role err.workspace.cannot_remove_owner=Cannot remove workspace owner err.workspace.insufficient_permission=Insufficient permission # channel err.channel.not_found=Channel not found err.channel.name_required=Channel name cannot be empty err.channel.type_required=Channel type cannot be empty # tool err.tool.not_found=Tool not found err.tool.builtin_readonly=Built-in tool cannot be deleted # skill err.skill.not_found=Skill not found err.skill.name_required=Skill name cannot be empty err.skill.name_exists=Skill name already exists err.skill.builtin_readonly=Built-in skill cannot be deleted # mcp err.mcp.not_found=MCP server not found err.mcp.builtin_readonly=Built-in MCP server cannot be deleted err.mcp.name_required=MCP server name cannot be empty err.mcp.transport_required=Transport type cannot be empty err.mcp.transport_unsupported=Unsupported transport type err.mcp.stdio_command_required=stdio type requires command err.mcp.http_url_required=HTTP/SSE type requires URL # cron err.cron.not_found=Scheduled task not found err.cron.name_required=Task name cannot be empty err.cron.agent_required=Please select an Agent err.cron.expression_required=Cron expression cannot be empty err.cron.trigger_required=Trigger message cannot be empty err.cron.target_required=Execution target cannot be empty # agent (extended) err.agent.no_default_model=Cannot build Agent: please configure and enable a default model in Settings > Models err.agent.model_not_configured=Model provider not configured, please fill in API Key in Settings > Models err.agent.protocol_not_supported=Protocol not currently supported err.agent.plan_compile_failed=Plan-Execute StateGraph compilation failed err.agent.graph_compile_failed=StateGraph v2 compilation failed err.agent.protocol_limited=StateGraph currently only supports DashScope, OpenAI-compatible, and Anthropic protocols err.agent.provider_not_configured=Provider not configured, please fill in valid API Key and Base URL err.agent.provider_apikey_invalid=Provider API Key not configured or invalid err.agent.provider_baseurl_missing=Provider Base URL not configured err.agent.dashscope_key_missing=DashScope API Key not configured err.agent.anthropic_not_configured=Anthropic Provider not configured err.agent.anthropic_key_invalid=Anthropic API Key not configured or invalid err.agent.template_not_found=Template not found err.common.wrong_workspace=Resource does not belong to current workspace # llm err.llm.model_config_not_found=Model config not found err.llm.no_available_model=No available model config err.llm.cannot_disable_default=Cannot disable default model, switch default first err.llm.cannot_delete_default=Cannot delete default model, switch default first err.llm.provider_model_required=Provider and model ID cannot be empty err.llm.model_exists=Model already exists err.llm.model_not_found=Model not found err.llm.builtin_readonly=Built-in model cannot be deleted err.llm.only_enabled_default=Only enabled models can be set as default err.llm.name_required=Model name cannot be empty err.llm.id_required=Model identifier cannot be empty err.llm.id_exists=Model identifier already exists err.llm.provider_fields_required=Provider ID and name cannot be empty err.llm.provider_exists=Provider already exists err.llm.provider_builtin_readonly=Built-in provider cannot be deleted err.llm.provider_not_found=Provider not found err.llm.discovery_not_supported=This provider does not support model discovery err.llm.no_model_for_test=No configured models, cannot test connection err.llm.chatgpt_no_discovery=ChatGPT OAuth does not support model discovery err.llm.chatgpt_no_test=ChatGPT OAuth does not support model testing err.llm.base_url_missing=Base URL not configured err.llm.dashscope_key_missing=DashScope API Key not configured err.llm.gemini_key_missing=Gemini API Key not configured err.llm.anthropic_key_missing=Anthropic API Key not configured err.llm.oauth_state_invalid=Invalid OAuth state, may be expired or reused err.llm.oauth_no_refresh=No refresh_token, please log in again err.llm.oauth_not_connected=Not connected to OpenAI OAuth, please log in first err.llm.oauth_exchange_failed=OAuth token exchange failed err.llm.oauth_no_token=access_token missing in OAuth response err.llm.chatgpt_not_configured=ChatGPT provider not configured, check database initialization err.llm.pkce_failed=PKCE code_challenge generation failed err.llm.chatgpt_stream_failed=ChatGPT streaming call failed err.llm.chatgpt_error=ChatGPT returned an error err.llm.chatgpt_account_missing=chatgpt-account-id missing, disconnect and re-login via OAuth # datasource err.datasource.not_found=Datasource not found err.datasource.sql_empty=SQL cannot be empty err.datasource.only_single_sql=Only single SQL statement allowed err.datasource.sql_parse_failed=SQL parse failed err.datasource.only_select=Only SELECT queries allowed err.datasource.connection_failed=Failed to get database connection err.datasource.unsupported_db=Unsupported database type err.datasource.unsafe_jdbc=JDBC parameters contain unsafe options # approval err.approval.not_found=Approval record not found or expired # --- RuntimeContext --- context.current_time=[system-context] Current time: {0} {1} (Asia/Shanghai) context.working_dir=[system-context] Working directory: {0} context.working_dir_hint=You can only read/write files and execute commands within this directory and its subdirectories. # --- Wiki Research Fallback (RFC: prompt-cleanup) --- research.fallback.no_plan=Unable to generate a research plan for this topic. research.fallback.no_materials=Not enough material to answer this topic. research.fallback.no_materials_for_question=No relevant material was found in the knowledge base for this question. research.fallback.draft_empty=Insufficient material to answer this sub-question. research.fallback.failed=Research failed: {0} research.broadcast.no_plan=Topic cannot be decomposed into researchable sub-questions. research.broadcast.draft_all_empty=No sub-question could be drafted from available material. research.broadcast.failed=Research failed. # --- Agent Limit Exceeded Fallback (RFC: prompt-cleanup) --- agent.limit_exceeded.fallback=Sorry, the maximum reasoning steps were reached before a full answer could be produced. agent.limit_exceeded.empty_context=(No tool call results collected yet.)