{ "ai_chat.builtin_tools.database.execute_sql.desc": "Execute a SQL query and return results", "ai_chat.builtin_tools.database.execute_sql.detail": "Pass connectionId, dbName, and sql, then execute SQL on the target database and return results (up to 50 rows). Controlled by safety level; read-only mode only allows SELECT/SHOW/DESCRIBE.", "ai_chat.builtin_tools.database.execute_sql.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.execute_sql.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.execute_sql.parameters.sql.description": "SQL statement to execute", "ai_chat.builtin_tools.database.execute_sql.params": "connectionId, dbName, sql", "ai_chat.builtin_tools.database.execute_sql.tool_description": "Execute SQL on the specified connection and database and return results. Controlled by safety level; read-only mode only allows query operations such as SELECT/SHOW/DESCRIBE. Results return at most 50 rows.", "ai_chat.builtin_tools.database.get_all_columns.desc": "Get field summaries for all tables in a database", "ai_chat.builtin_tools.database.get_all_columns.detail": "Pass connectionId and dbName, then return a cross-table field list including table name, field name, type, and comment. Useful when the user knows a business field but not which table contains it.", "ai_chat.builtin_tools.database.get_all_columns.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.get_all_columns.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.get_all_columns.params": "connectionId, dbName", "ai_chat.builtin_tools.database.get_all_columns.tool_description": "Get field summaries for all tables in the specified database, returning table names, field names, types, and comments. Use it for field-to-table lookup, cross-table field comparison, and data map exploration.", "ai_chat.builtin_tools.database.get_columns.desc": "Get the field structure of a specified table", "ai_chat.builtin_tools.database.get_columns.detail": "Pass connectionId, dbName, and tableName, then return each field's name, type, nullability, default value, and comment. AI must call this before generating SQL to confirm real field names.", "ai_chat.builtin_tools.database.get_columns.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.get_columns.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.get_columns.parameters.tableName.description": "Table name", "ai_chat.builtin_tools.database.get_columns.params": "connectionId, dbName, tableName", "ai_chat.builtin_tools.database.get_columns.tool_description": "Get the field list of the specified table, including field name, type, nullability, default value, comment, and related metadata. Before generating SQL, call this tool to confirm real field names and do not guess field names.", "ai_chat.builtin_tools.database.get_connections.desc": "Get all available database connections", "ai_chat.builtin_tools.database.get_connections.detail": "Returns connection ID, name, type (such as MySQL or PostgreSQL), and Host address. AI uses the returned data to decide which connection to explore first.", "ai_chat.builtin_tools.database.get_connections.params": "No parameters", "ai_chat.builtin_tools.database.get_connections.tool_description": "When database querying or operations are needed but the user has not selected any connection context, get all database connections available in the current app. Returned data includes connection ID (id) and name (name).", "ai_chat.builtin_tools.database.get_databases.desc": "Get all databases under a specified connection", "ai_chat.builtin_tools.database.get_databases.detail": "Pass connectionId and return the database or Schema name list under that connection.", "ai_chat.builtin_tools.database.get_databases.parameters.connectionId.description": "Connection ID (from get_connections)", "ai_chat.builtin_tools.database.get_databases.params": "connectionId: connection ID", "ai_chat.builtin_tools.database.get_databases.tool_description": "Get all database (Database/Schema) names under the specified connectionId.", "ai_chat.builtin_tools.database.get_foreign_keys.desc": "Get foreign-key relationships for a specified table", "ai_chat.builtin_tools.database.get_foreign_keys.detail": "Pass connectionId, dbName, and tableName, then return foreign-key mappings from the current table to other tables. AI can use it directly for relationship inference, join SQL generation, and data consistency review.", "ai_chat.builtin_tools.database.get_foreign_keys.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.get_foreign_keys.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.get_foreign_keys.parameters.tableName.description": "Table name", "ai_chat.builtin_tools.database.get_foreign_keys.params": "connectionId, dbName, tableName", "ai_chat.builtin_tools.database.get_foreign_keys.tool_description": "Get foreign-key relationships for the specified table, including local fields, referenced table, referenced fields, and constraint names. Use it for join-path analysis, ER relationship mapping, and constraint checks.", "ai_chat.builtin_tools.database.get_indexes.desc": "Get index definitions for a specified table", "ai_chat.builtin_tools.database.get_indexes.detail": "Pass connectionId, dbName, and tableName, then return index name, index columns, uniqueness, and index type. AI should prefer this for slow SQL analysis, index optimization, and execution-plan inference.", "ai_chat.builtin_tools.database.get_indexes.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.get_indexes.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.get_indexes.parameters.tableName.description": "Table name", "ai_chat.builtin_tools.database.get_indexes.params": "connectionId, dbName, tableName", "ai_chat.builtin_tools.database.get_indexes.tool_description": "Get index definitions for the specified table, including index name, column order, uniqueness, and index type. Use it for slow SQL analysis, index optimization suggestions, and confirming existing index coverage.", "ai_chat.builtin_tools.database.get_table_ddl.desc": "Get the table creation statement (DDL)", "ai_chat.builtin_tools.database.get_table_ddl.detail": "Pass connectionId, dbName, and tableName, then return the complete CREATE TABLE statement, including field definitions, indexes, constraints, and related structure details.", "ai_chat.builtin_tools.database.get_table_ddl.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.get_table_ddl.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.get_table_ddl.parameters.tableName.description": "Table name", "ai_chat.builtin_tools.database.get_table_ddl.params": "connectionId, dbName, tableName", "ai_chat.builtin_tools.database.get_table_ddl.tool_description": "Get the complete table creation statement (CREATE TABLE DDL) for the specified table, including fields, indexes, constraints, and complete structure information.", "ai_chat.builtin_tools.database.get_tables.desc": "Get all table names under a specified database", "ai_chat.builtin_tools.database.get_tables.detail": "Pass connectionId and dbName, then return a table name list. AI uses it to locate the target table mentioned by the user.", "ai_chat.builtin_tools.database.get_tables.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.get_tables.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.get_tables.params": "connectionId, dbName", "ai_chat.builtin_tools.database.get_tables.tool_description": "After the target connection and database name are known, if the user asks about a table or implicitly mentions one but the exact table name is unknown, call this tool to get all table names in that database (table names only) and infer the target table.", "ai_chat.builtin_tools.database.get_triggers.desc": "Get trigger definitions for a specified table", "ai_chat.builtin_tools.database.get_triggers.detail": "Pass connectionId, dbName, and tableName, then return trigger name, timing, event type, and statement body. AI can inspect it directly when analyzing implicit writes, side effects, and audit logic.", "ai_chat.builtin_tools.database.get_triggers.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.get_triggers.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.get_triggers.parameters.tableName.description": "Table name", "ai_chat.builtin_tools.database.get_triggers.params": "connectionId, dbName, tableName", "ai_chat.builtin_tools.database.get_triggers.tool_description": "Get trigger definitions for the specified table, including timing, event, and trigger statement. Use it to investigate implicit data changes, audit logic, and table-level side effects.", "ai_chat.builtin_tools.database.inspect_database_bundle.desc": "Capture a structure overview for a specified database", "ai_chat.builtin_tools.database.inspect_database_bundle.detail": "Pass connectionId and dbName, then return table list, table count, total field count, and per-table field summary preview. Useful for first-pass exploration of an unfamiliar database before drilling into target tables.", "ai_chat.builtin_tools.database.inspect_database_bundle.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.inspect_database_bundle.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.inspect_database_bundle.parameters.includeColumns.description": "Optional. Whether to include per-table field summaries. Default true.", "ai_chat.builtin_tools.database.inspect_database_bundle.parameters.perTableColumnLimit.description": "Optional. Maximum field summaries per table. Default 8, maximum 30.", "ai_chat.builtin_tools.database.inspect_database_bundle.parameters.tableLimit.description": "Optional. Maximum tables to return. Default 80, maximum 200.", "ai_chat.builtin_tools.database.inspect_database_bundle.params": "connectionId, dbName, includeColumns?, tableLimit?, perTableColumnLimit?", "ai_chat.builtin_tools.database.inspect_database_bundle.tool_description": "Get a structure overview for the specified database, returning table name list, total field count, and per-table field summary preview. Use it for unfamiliar database exploration, data mapping, and quickly choosing the next table to analyze deeply.", "ai_chat.builtin_tools.database.inspect_table_bundle.desc": "Capture a structure snapshot for a specified table", "ai_chat.builtin_tools.database.inspect_table_bundle.detail": "Pass connectionId, dbName, and tableName, then return columns, indexes, foreign keys, triggers, and DDL; sample rows can also be included. Useful before writing SQL, reviewing table design, or investigating side effects.", "ai_chat.builtin_tools.database.inspect_table_bundle.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.inspect_table_bundle.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.inspect_table_bundle.parameters.includeSampleRows.description": "Optional. Whether to include sample rows.", "ai_chat.builtin_tools.database.inspect_table_bundle.parameters.sampleLimit.description": "Optional. Sample row count. Default 10, maximum 100.", "ai_chat.builtin_tools.database.inspect_table_bundle.parameters.tableName.description": "Table name", "ai_chat.builtin_tools.database.inspect_table_bundle.params": "connectionId, dbName, tableName, includeSampleRows?, sampleLimit?", "ai_chat.builtin_tools.database.inspect_table_bundle.tool_description": "Get a complete structure snapshot for the specified table, returning columns, indexes, foreign keys, triggers, DDL, and optional sample rows. Use it for full table-design exploration, quickly understanding table relationships, and reducing repeated round trips.", "ai_chat.builtin_tools.database.preview_table_rows.desc": "Preview the first rows of a specified table", "ai_chat.builtin_tools.database.preview_table_rows.detail": "Pass connectionId, dbName, tableName, and optional limit, then return real sample rows from the table. Use it to inspect data shape, null distribution, and enum values before deciding how to write SQL.", "ai_chat.builtin_tools.database.preview_table_rows.parameters.connectionId.description": "Connection ID", "ai_chat.builtin_tools.database.preview_table_rows.parameters.dbName.description": "Database name", "ai_chat.builtin_tools.database.preview_table_rows.parameters.limit.description": "Optional. Preview row count. Default 20, maximum 100.", "ai_chat.builtin_tools.database.preview_table_rows.parameters.tableName.description": "Table name", "ai_chat.builtin_tools.database.preview_table_rows.params": "connectionId, dbName, tableName, limit?", "ai_chat.builtin_tools.database.preview_table_rows.tool_description": "Preview sample rows from the specified table. Use it to quickly understand field value shapes, nulls, time formats, and status enums, reducing blind SQL generation by the model.", "ai_chat.builtin_tools.flows.active_tab.description": "Read the current editor SQL draft or table tab before field checks, index analysis, and read-only verification.", "ai_chat.builtin_tools.flows.active_tab.title": "Read the current tab", "ai_chat.builtin_tools.flows.ai_context.description": "Confirm which table structures are attached to the current conversation before field checks, table design review, or SQL generation.", "ai_chat.builtin_tools.flows.ai_context.title": "Inspect current AI context", "ai_chat.builtin_tools.flows.ai_runtime.description": "Confirm the current model, safety level, context level, Skills, and MCP tools before choosing a probe chain.", "ai_chat.builtin_tools.flows.ai_runtime.title": "Inspect current AI capabilities", "ai_chat.builtin_tools.flows.ai_sessions.description": "Locate previous AI sessions, first user questions, and recent replies before reusing the current tab or historical SQL context.", "ai_chat.builtin_tools.flows.ai_sessions.title": "Review AI chat history", "ai_chat.builtin_tools.flows.ai_setup_health.description": "Get an AI configuration health snapshot first, then decide whether to drill into providers, chat readiness, MCP, prompts, Skills, or context.", "ai_chat.builtin_tools.flows.ai_setup_health.title": "One-shot AI setup health check", "ai_chat.builtin_tools.flows.app_health_overview.description": "Use when AI instability, connection issues, MCP issues, or message rendering problems overlap and an overall health snapshot is needed first.", "ai_chat.builtin_tools.flows.app_health_overview.title": "AI app health overview", "ai_chat.builtin_tools.flows.app_logs.description": "Review ERROR/WARN lines from the gonavi.log tail, then combine MCP, connection, and current data source state for diagnosis.", "ai_chat.builtin_tools.flows.app_logs.title": "Troubleshoot application logs", "ai_chat.builtin_tools.flows.chat_readiness.description": "Check which chat input prerequisites are missing, such as active provider, key, endpoint, or selected model, instead of guessing from UI symptoms.", "ai_chat.builtin_tools.flows.chat_readiness.title": "Troubleshoot chat send readiness", "ai_chat.builtin_tools.flows.choose_tool_route.description": "Use keywords to decide which built-in probes to call, how to fill tool arguments, and whether external MCP tools are available.", "ai_chat.builtin_tools.flows.choose_tool_route.title": "Choose an AI tool route", "ai_chat.builtin_tools.flows.codebase_hotspots.description": "Use before splitting thousand-line components, choosing the next refactor slice, or changing UI/AI/MCP code to inspect split hotspots, risk, and validation scope.", "ai_chat.builtin_tools.flows.codebase_hotspots.title": "Govern large frontend files", "ai_chat.builtin_tools.flows.connection_capabilities.description": "Check whether the current connection supports database creation/deletion, result editing, SQL export, or approximate counts.", "ai_chat.builtin_tools.flows.connection_capabilities.title": "Check data-source capability boundaries", "ai_chat.builtin_tools.flows.connection_failures.description": "When connection failures, cooldown, or validation failures appear, get structured root cause, latest address, and next actions first.", "ai_chat.builtin_tools.flows.connection_failures.title": "Troubleshoot connection failures and cooldown", "ai_chat.builtin_tools.flows.context_budget.description": "When AI slows down, answers poorly, or context is too large, inspect messages, DDL, MCP schema, prompts, and Skills before narrowing context.", "ai_chat.builtin_tools.flows.context_budget.title": "Diagnose AI context size", "ai_chat.builtin_tools.flows.current_connection.description": "Confirm the active data source type, address, current database, and SSH/proxy status before database exploration or connection troubleshooting.", "ai_chat.builtin_tools.flows.current_connection.title": "Inspect current connection", "ai_chat.builtin_tools.flows.database_overview.description": "Start by seeing which tables exist and what fields they roughly contain, then drill into target tables with snapshots.", "ai_chat.builtin_tools.flows.database_overview.title": "Quick database overview", "ai_chat.builtin_tools.flows.deep_structure.description": "Use for index optimization, relationship mapping, implicit side-effect investigation, and DDL review.", "ai_chat.builtin_tools.flows.deep_structure.title": "Deep-dive structure", "ai_chat.builtin_tools.flows.docker_mcp.description": "Use when Docker README setup discovers 0 tools, containers exit immediately, or docker run arguments may be split incorrectly.", "ai_chat.builtin_tools.flows.docker_mcp.title": "Troubleshoot Docker MCP startup", "ai_chat.builtin_tools.flows.external_sql_dirs.description": "Confirm configured external SQL directories, their connection/database bindings, and where an opened SQL file comes from before analyzing scripts.", "ai_chat.builtin_tools.flows.external_sql_dirs.title": "Inventory external SQL directories", "ai_chat.builtin_tools.flows.external_sql_file.description": "Locate a script path, read SQL file content from the directory, and combine it with the active tab draft if already opened.", "ai_chat.builtin_tools.flows.external_sql_file.title": "Read external SQL files", "ai_chat.builtin_tools.flows.field_lookup_table.description": "Use when only a field name, business meaning, or comment keyword is known, but the exact table is still unclear.", "ai_chat.builtin_tools.flows.field_lookup_table.title": "Find tables by field", "ai_chat.builtin_tools.flows.locate_table_fields.description": "Find the connection, database, and table first, then confirm real field names before generating SQL.", "ai_chat.builtin_tools.flows.locate_table_fields.title": "Locate tables and fields", "ai_chat.builtin_tools.flows.mcp_authoring.description": "Read real field descriptions, templates, and full-command splitting rules before validating pasted commands or drafts.", "ai_chat.builtin_tools.flows.mcp_authoring.title": "New MCP authoring guide", "ai_chat.builtin_tools.flows.mcp_setup.description": "Confirm configured and enabled MCP services and external client write status, then use MCP runtime failure logs to explain missing tools.", "ai_chat.builtin_tools.flows.mcp_setup.title": "Troubleshoot MCP access status", "ai_chat.builtin_tools.flows.mcp_tool_parameters.description": "Find the real discovered MCP tool alias first, then read inputSchema, required fields, enums, and nested parameter paths.", "ai_chat.builtin_tools.flows.mcp_tool_parameters.title": "Inspect MCP tool parameters", "ai_chat.builtin_tools.flows.message_flow.description": "Read the real current-session message structure and anomaly signals when replies split into bubbles, tool calls do not close, or flow state looks wrong.", "ai_chat.builtin_tools.flows.message_flow.title": "Diagnose AI message flow", "ai_chat.builtin_tools.flows.prompts_skills.description": "Confirm current custom prompts, enabled Skills, dependency tools, and effective scope before explaining current AI behavior.", "ai_chat.builtin_tools.flows.prompts_skills.title": "Inspect current prompts and Skills", "ai_chat.builtin_tools.flows.providers_models.description": "Confirm which providers are configured and active, whether keys or models are missing, and why chat cannot send or model lists are empty.", "ai_chat.builtin_tools.flows.providers_models.title": "Troubleshoot providers and models", "ai_chat.builtin_tools.flows.readonly_validation.description": "After generating SQL, validate results on a small scope while still respecting the AI safety level.", "ai_chat.builtin_tools.flows.readonly_validation.title": "Read-only validation", "ai_chat.builtin_tools.flows.recent_sql_activity.description": "Check whether recent activity is mostly read or write, whether DDL or deletes occurred, and which database has the most recent errors.", "ai_chat.builtin_tools.flows.recent_sql_activity.title": "Summarize recent SQL activity", "ai_chat.builtin_tools.flows.recent_sql_logs.description": "Trace recently failed SQL, slow query duration, or let AI explain and optimize based on real execution history.", "ai_chat.builtin_tools.flows.recent_sql_logs.title": "Review recent execution records", "ai_chat.builtin_tools.flows.redis_topology.description": "Use for Redis Sentinel, Cluster, multi-node, DB switch failures, or SSH tunnel issues to get status, redacted URI, adapter, DB semantics, and next actions.", "ai_chat.builtin_tools.flows.redis_topology.title": "Diagnose Redis topology", "ai_chat.builtin_tools.flows.remote_agent_mcp.description": "Use when OpenClaw/Hermans run on cloud Linux while database connections and passwords stay on the Windows GoNavi machine.", "ai_chat.builtin_tools.flows.remote_agent_mcp.title": "Connect remote Agents to GoNavi MCP", "ai_chat.builtin_tools.flows.render_error.description": "Use when an AI message is blank or a bubble fails locally while the panel stays alive; read the isolated render-error snapshot first.", "ai_chat.builtin_tools.flows.render_error.title": "Troubleshoot AI bubble render errors", "ai_chat.builtin_tools.flows.safety_boundary.description": "Check whether the current state is read-only, whether DDL/DML is allowed, and whether MCP writes require allowMutating.", "ai_chat.builtin_tools.flows.safety_boundary.title": "Check write safety boundaries", "ai_chat.builtin_tools.flows.sample_data.description": "Confirm fields first, then inspect the first real sample rows and null patterns.", "ai_chat.builtin_tools.flows.sample_data.title": "Understand sample data", "ai_chat.builtin_tools.flows.saved_connections.description": "Filter locally saved data sources by keyword or type, then inspect the chosen connection state or database structure.", "ai_chat.builtin_tools.flows.saved_connections.title": "Inventory local connection assets", "ai_chat.builtin_tools.flows.saved_queries.description": "Find locally saved query scripts first, then check fields and run read-only validation instead of rewriting old SQL manually.", "ai_chat.builtin_tools.flows.saved_queries.title": "Reuse saved SQL", "ai_chat.builtin_tools.flows.shortcuts.description": "Confirm current Win/Mac shortcuts, customizations, and how to trigger result panel, AI panel, query execution, and related actions.", "ai_chat.builtin_tools.flows.shortcuts.title": "Inspect current shortcut configuration", "ai_chat.builtin_tools.flows.sql_editor_transaction.description": "Confirm whether SQL editor DML enters a managed transaction, current commit mode, pending transactions, and commit semantics after update/insert/delete.", "ai_chat.builtin_tools.flows.sql_editor_transaction.title": "Check SQL editor transactions", "ai_chat.builtin_tools.flows.sql_risk.description": "Before execution, deletion, update, DDL, or batch SQL, check statement count, write/DDL risk, WHERE clauses, and current safety policy.", "ai_chat.builtin_tools.flows.sql_risk.title": "Pre-check SQL risk", "ai_chat.builtin_tools.flows.sql_snippets.description": "Find team SQL snippet templates, completion prefixes, and common skeletons before deciding whether to rewrite.", "ai_chat.builtin_tools.flows.sql_snippets.title": "Find SQL snippet templates", "ai_chat.builtin_tools.flows.support_bundle.description": "Use when troubleshooting evidence needs to be collected at once, without secrets or database passwords.", "ai_chat.builtin_tools.flows.support_bundle.title": "Export AI troubleshooting support bundle", "ai_chat.builtin_tools.flows.table_snapshot.description": "Return columns, indexes, foreign keys, triggers, and DDL in one call; sample rows can be included when needed to reduce round trips.", "ai_chat.builtin_tools.flows.table_snapshot.title": "One-shot table snapshot", "ai_chat.builtin_tools.flows.upstream_request.description": "Read redacted gonavi.log request records when the user needs upstream payloads, requestId, status codes, latency, or request body previews.", "ai_chat.builtin_tools.flows.upstream_request.title": "Trace AI upstream requests", "ai_chat.builtin_tools.flows.workspace_tabs.description": "See which SQL, table, or command tabs are open, then inspect the target tab for field checks, comparisons, and read-only validation.", "ai_chat.builtin_tools.flows.workspace_tabs.title": "Inventory the current workspace", "ai_chat.composer_notice.missing_model.description": "Open the model dropdown below and select a model. If the list is empty, check the provider endpoint and API Key.", "ai_chat.composer_notice.missing_model.title": "Select a model first", "ai_chat.composer_notice.missing_provider.description": "Add and enable a model provider in AI settings first.", "ai_chat.composer_notice.missing_provider.title": "No provider available", "ai_chat.composer_notice.model_fetch_failed.default_description": "Check the provider endpoint, API Key, or account permissions, then reopen the model dropdown.", "ai_chat.composer_notice.model_fetch_failed.detail_description": "Provider detail: {{detail}}", "ai_chat.composer_notice.model_fetch_failed.title": "Model list failed to load", "ai_chat.header.action.export": "Export", "ai_chat.header.default_session_title": "New chat", "ai_chat.header.export_time": "Exported at:", "ai_chat.header.export_user": "You", "ai_chat.header.mode_tabs.aria_label": "AI work mode", "ai_chat.header.mode.chat": "Chat", "ai_chat.header.mode.history": "History", "ai_chat.header.mode.insights": "Auto insights", "ai_chat.header.session.connected": "{{title}} · Connected", "ai_chat.header.tooltip.close": "Close panel", "ai_chat.header.tooltip.export_markdown": "Export as Markdown", "ai_chat.header.tooltip.history": "Chat history", "ai_chat.header.tooltip.new_chat": "New chat", "ai_chat.header.tooltip.new_chat_clear": "New chat (clear current)", "ai_chat.header.tooltip.settings": "AI settings", "ai_chat.history.action.new_chat": "Start new chat", "ai_chat.history.default_session_title": "New chat", "ai_chat.history.empty.no_history": "No history yet", "ai_chat.history.empty.no_matches": "No matching chats", "ai_chat.history.search.placeholder": "Search history...", "ai_chat.history.title": "Chat history", "ai_chat.history.tooltip.collapse": "Collapse", "ai_chat.history.tooltip.delete": "Delete", "ai_chat.input.action.send": "Send", "ai_chat.input.action.stop": "Stop generating", "ai_chat.input.attachment.excel.worksheet_header": "[Worksheet: {{sheetName}}]", "ai_chat.input.attachment.kind.document": "File", "ai_chat.input.attachment.kind.excel": "Excel", "ai_chat.input.attachment.kind.file": "File", "ai_chat.input.attachment.kind.image": "Image", "ai_chat.input.attachment.kind.markdown": "Markdown", "ai_chat.input.attachment.kind.pdf": "PDF", "ai_chat.input.attachment.kind.text": "Text", "ai_chat.input.attachment.kind.word": "Word", "ai_chat.input.attachment.message.read_failed": "Failed to read attachment {{name}}: {{detail}}", "ai_chat.input.attachment.message.warning": "{{name}}: {{message}}", "ai_chat.input.attachment.prompt.content_truncated": "[Attachment body truncated]", "ai_chat.input.attachment.prompt.default_user_content": "Continue based on the following attachment content.", "ai_chat.input.attachment.prompt.extract_warning": "- Extraction note: {{message}}", "ai_chat.input.attachment.prompt.heading": "### Attachment {{index}}: {{name}}", "ai_chat.input.attachment.prompt.kind": "- Type: {{kind}}", "ai_chat.input.attachment.prompt.mime": "- MIME: {{mimeType}}", "ai_chat.input.attachment.prompt.no_text": "No readable attachment body was extracted.", "ai_chat.input.attachment.prompt.size": "- Size: {{size}}", "ai_chat.input.attachment.prompt.text_truncated": "- Extraction note: Body text was truncated before sending.", "ai_chat.input.attachment.prompt.wrapper_end": "", "ai_chat.input.attachment.prompt.wrapper_start": "", "ai_chat.input.attachment.remove_file": "Remove attachment", "ai_chat.input.attachment.remove_image": "Remove image", "ai_chat.input.attachment.warning.extract_failed": "Attachment body extraction failed: {{detail}}", "ai_chat.input.attachment.warning.legacy_office_partial_text": "Legacy Office binary files only use lightweight text snippet extraction; convert to docx/xlsx before uploading for more complete content.", "ai_chat.input.attachment.warning.pdf_no_text": "No readable text was extracted from the PDF; if it is scanned or uses complex encoding, copy the body before sending.", "ai_chat.input.attachment.warning.pdf_partial_text": "PDF used lightweight text extraction; scanned or compressed-font content may not be fully readable.", "ai_chat.input.attachment.warning.too_large": "File exceeds {{size}}; file metadata was attached but the body was not read.", "ai_chat.input.attachment.warning.unsupported_type": "This file type was attached, but body text was not extracted yet; use markdown, txt, docx, xlsx, or pdf if the model needs the content.", "ai_chat.input.context.add": "Add", "ai_chat.input.context.connection_tooltip": "Current data query context", "ai_chat.input.context.current_count": "Current context · {{count}}", "ai_chat.input.context.label": "Attached context", "ai_chat.input.context.memory_tooltip": "Current session memory usage. Auto-compression starts when it reaches the {{limit}} limit.", "ai_chat.input.context.selector.cancel": "Cancel", "ai_chat.input.context.selector.confirm": "Sync selected tables to context", "ai_chat.input.context.selector.database_placeholder": "Switch database", "ai_chat.input.context.selector.empty_no_match": "No tables matching '{{searchText}}' were found", "ai_chat.input.context.selector.empty_no_tables": "No tables available to attach in the current database", "ai_chat.input.context.selector.invert_selection": "Invert matching selection", "ai_chat.input.context.selector.search_placeholder": "Search table names in the current database...", "ai_chat.input.context.selector.select_all": "Select all matching tables ({{count}})", "ai_chat.input.context.selector.title": "Attach table schemas as context", "ai_chat.input.context.tag_label": "Linked context ({{count}})", "ai_chat.input.message.context_added": "Added {{count}} table structures to the context", "ai_chat.input.message.context_load_failed": "Failed to load table context: {{detail}}", "ai_chat.input.message.context_removed": "Removed {{count}} table structures from the context", "ai_chat.input.message.context_sync_failed": "Failed to sync AI context: {{detail}}", "ai_chat.input.message.context_synced": "Context synced: added {{added}}, removed {{removed}}", "ai_chat.input.message.fetch_table_schema_failed": "Failed to load structure for {{table}}: {{detail}}", "ai_chat.input.message.fetch_tables_failed": "Failed to load tables: {{detail}}", "ai_chat.input.message.select_database_context_first": "Select a database on the left before attaching chat context", "ai_chat.input.message.selection_unchanged": "Selected tables did not change", "ai_chat.input.modal.empty_tables": "No tables match '{{query}}'", "ai_chat.input.modal.invert_matching": "Invert matching results", "ai_chat.input.modal.ok": "Sync selected tables to context", "ai_chat.input.modal.search_table.placeholder": "Search tables in the current database...", "ai_chat.input.modal.select_all_matching": "Select all matching tables ({{count}})", "ai_chat.input.modal.switch_database.placeholder": "Switch database", "ai_chat.input.modal.title": "Attach database table schema context", "ai_chat.input.model.placeholder": "Select model", "ai_chat.input.placeholder": "Type a message... ({{shortcut}}, Shift+Enter for newline, / for commands)", "ai_chat.input.placeholder_compact": "Type a message... {{shortcut}} · / commands", "ai_chat.input.shortcut.disabled": "Shortcut sending disabled", "ai_chat.input.shortcut.send_with_combo": "{{shortcut}} to send", "ai_chat.input.slash.activity.desc": "Summarize recent executions, errors, and hotspots", "ai_chat.input.slash.activity.keywords": "activity|sql logs|recent executions|error", "ai_chat.input.slash.activity.label": "🕘 Recent SQL activity", "ai_chat.input.slash.activity.prompt": "Call inspect_recent_sql_activity first. Summarize the recent SQL activity, error hotspots, and the main read/write patterns.", "ai_chat.input.slash.airender.desc": "Read the most recent AI message render failure record", "ai_chat.input.slash.airender.keywords": "render failure|blank bubble|ai message|render|white block", "ai_chat.input.slash.airender.label": "🧯 AI render failure", "ai_chat.input.slash.airender.prompt": "Call inspect_ai_last_render_error first. Tell me which message failed in the most recent AI render failure record, what the error summary says, and what I should check next.", "ai_chat.input.slash.applog.desc": "Review recent GoNavi application logs", "ai_chat.input.slash.applog.keywords": "logs|gonavi.log|mcp error|connection failure|startup exception", "ai_chat.input.slash.applog.label": "🪵 App logs", "ai_chat.input.slash.applog.prompt": "Call inspect_app_logs first. Check the recent errors and warnings in the GoNavi application logs; if I mention connection failures, MCP startup failures, startup exceptions, or gonavi.log, prioritize filtering with those keywords.", "ai_chat.input.slash.budget.desc": "Inspect message, DDL, MCP schema, and Skills size", "ai_chat.input.slash.budget.keywords": "context|budget|large context|slow response|schema too large|tool results", "ai_chat.input.slash.budget.label": "🧠 Context budget", "ai_chat.input.slash.budget.prompt": "Call inspect_ai_context_budget first. Inspect the size risks of the current conversation messages, tool results, DDL, MCP schema, prompts, and Skills, then tell me which context I should narrow down.", "ai_chat.input.slash.category.diagnose.description": "Run built-in probes first to inspect the real state of AI, MCP, and recent SQL activity.", "ai_chat.input.slash.category.diagnose.title": "Diagnostic probes", "ai_chat.input.slash.category.generate.description": "Generate SQL, test data, or migration drafts directly.", "ai_chat.input.slash.category.generate.title": "SQL generation", "ai_chat.input.slash.category.review.description": "Explain SQL and review table design and index strategies.", "ai_chat.input.slash.category.review.title": "Structure review", "ai_chat.input.slash.connfail.desc": "Summarize recent connection failures, cooldowns, and validation errors", "ai_chat.input.slash.connfail.keywords": "connection failure|cooldown|validation failure|ssh|mysql", "ai_chat.input.slash.connfail.label": "🧯 Connection failure probe", "ai_chat.input.slash.connfail.prompt": "Call inspect_recent_connection_failures first. Summarize the real log conclusions for recent database connection failures, connection cooldowns, validation failures, and SSH tunnel exceptions; if there is already a clear address or type, then use inspect_current_connection or inspect_saved_connections to narrow it further.", "ai_chat.input.slash.diff.desc": "Compare two tables and generate changes", "ai_chat.input.slash.diff.keywords": "diff|migration|alter", "ai_chat.input.slash.diff.label": "🔄 Table diff", "ai_chat.input.slash.diff.prompt": "Compare the structure differences between these two tables and generate ALTER statements to migrate from the old version to the new version:", "ai_chat.input.slash.empty.description": "Try these common entries first to jump into SQL generation, AI health checks, or MCP diagnostics.", "ai_chat.input.slash.empty.summary": "There are {{count}} slash commands available. Search by command name, description, or keyword.", "ai_chat.input.slash.empty.title": "No matching slash commands", "ai_chat.input.slash.explain.desc": "Explain the selected SQL logic", "ai_chat.input.slash.explain.keywords": "explain|sql|logic", "ai_chat.input.slash.explain.label": "💡 Explain SQL", "ai_chat.input.slash.explain.prompt": "Explain the execution logic of this SQL and what each step does:\n```sql\n\n```", "ai_chat.input.slash.health.desc": "Run health probes for the current AI setup", "ai_chat.input.slash.health.keywords": "health|ai config|probe", "ai_chat.input.slash.health.label": "🩺 AI health check", "ai_chat.input.slash.health.prompt": "Call inspect_ai_setup_health first. Run a full health check of the current GoNavi AI setup, then summarize blockers, warnings, and nextActions.", "ai_chat.input.slash.hotspots.desc": "Review large-file split candidates and test scope", "ai_chat.input.slash.hotspots.keywords": "large file|bloated|split|refactor|hotspots|code hotspots|thousands of lines", "ai_chat.input.slash.hotspots.label": "🧱 Code hotspots", "ai_chat.input.slash.hotspots.prompt": "Call inspect_codebase_hotspots first. Read the current GoNavi frontend large-file hotspots, suggested split slices, and testing targets, then tell me which file is the best next split candidate, what boundary to use, and which verification to run. Keywords:", "ai_chat.input.slash.index.desc": "Recommend the best index plan", "ai_chat.input.slash.index.keywords": "index|slow query|performance", "ai_chat.input.slash.index.label": "📊 Index suggestions", "ai_chat.input.slash.index.prompt": "Recommend the best index plan based on the current table structure and common query scenarios, and provide the table DDL:", "ai_chat.input.slash.mcp.desc": "Check MCP services and external client status", "ai_chat.input.slash.mcp.keywords": "mcp|codex|claude|openclaw|hermans|external client", "ai_chat.input.slash.mcp.label": "🪛 Troubleshoot MCP setup", "ai_chat.input.slash.mcp.prompt": "Call inspect_mcp_setup first. Audit the current MCP services, tool discovery results, and the connection status of local Claude Code / Codex clients plus remote OpenClaw / Hermans agents.", "ai_chat.input.slash.mcpadd.desc": "See how command, args, env, and templates should be filled", "ai_chat.input.slash.mcpadd.keywords": "add mcp|command|args|env|template", "ai_chat.input.slash.mcpadd.label": "🧭 Add MCP guidance", "ai_chat.input.slash.mcpadd.prompt": "Call inspect_mcp_authoring_guide first; if I pasted a full startup command or draft, also call inspect_mcp_draft to simulate the fields and validation issues. Then combine inspect_mcp_setup and tell me how command, args, env, and timeout should be filled when adding a GoNavi MCP service, plus which template is the closest fit.", "ai_chat.input.slash.mcpdraft.desc": "Validate how to split one MCP startup command", "ai_chat.input.slash.mcpdraft.keywords": "mcp draft|mcp validation|fullcommand|startup command|argument splitting|command|args|env", "ai_chat.input.slash.mcpdraft.label": "🧪 MCP draft validation", "ai_chat.input.slash.mcpdraft.prompt": "Call inspect_mcp_draft first to validate the MCP fullCommand or command/args/env/timeout draft I provide. Return the auto-split result, startup preview, suggestedServerSeed, errors, warnings, and nextActions; if field guidance is still missing, then also call inspect_mcp_authoring_guide.", "ai_chat.input.slash.mcpfail.desc": "Read recent MCP startup, discovery, and call failure logs", "ai_chat.input.slash.mcpfail.keywords": "mcpfail|mcp failure|runtime failure|zero tools discovered|stdio|docker mcp|http mcp|startup failure|call failure", "ai_chat.input.slash.mcpfail.label": "🧯 MCP runtime failures", "ai_chat.input.slash.mcpfail.prompt": "Call inspect_mcp_runtime_failures first. Read the recent MCP startup, tool discovery, tool call, stdio, Docker, or HTTP MCP failure logs, then combine them with the current MCP service configuration to judge the cause and nextActions. Keywords or service name:", "ai_chat.input.slash.mcptool.desc": "Review MCP tool schema and arguments format", "ai_chat.input.slash.mcptool.keywords": "mcp tool|mcp tool arguments|schema|arguments|parameters|tool call|inputschema", "ai_chat.input.slash.mcptool.label": "🧩 MCP tool arguments", "ai_chat.input.slash.mcptool.prompt": "Call inspect_mcp_setup first to find the currently discovered MCP tool alias. If I already gave a tool name or keyword, also call inspect_mcp_tool_schema to read the matching inputSchema, then tell me the required parameters, field types, enum values, nested paths, and how the arguments JSON should be written.", "ai_chat.input.slash.mock.desc": "Generate INSERT test data", "ai_chat.input.slash.mock.keywords": "mock|test data|insert", "ai_chat.input.slash.mock.label": "🎲 Mock test data", "ai_chat.input.slash.mock.prompt": "Generate 10 business-realistic INSERT test data statements for the current linked tables:", "ai_chat.input.slash.optimize.desc": "Analyze SQL performance bottlenecks", "ai_chat.input.slash.optimize.keywords": "optimize|index|performance", "ai_chat.input.slash.optimize.label": "⚡ Optimization analysis", "ai_chat.input.slash.optimize.prompt": "Analyze this SQL for performance issues and provide an optimized version:\n```sql\n\n```", "ai_chat.input.slash.query.desc": "Describe what you want to query", "ai_chat.input.slash.query.keywords": "query|natural language|data lookup", "ai_chat.input.slash.query.label": "🔍 Natural language query", "ai_chat.input.slash.query.prompt": "Write a SQL query for me:", "ai_chat.input.slash.safety.desc": "Confirm read-only vs write boundaries and allowMutating", "ai_chat.input.slash.safety.keywords": "safety|read-only|allowmutating|ddl|dml", "ai_chat.input.slash.safety.label": "🛡️ Write safety", "ai_chat.input.slash.safety.prompt": "Call inspect_ai_safety first. Tell me the current write boundaries for AI and GoNavi MCP, whether they are read-only, and whether execute_sql requires allowMutating.", "ai_chat.input.slash.schema.desc": "Review table design quality", "ai_chat.input.slash.schema.keywords": "schema|table structure|design", "ai_chat.input.slash.schema.label": "🏗️ Table design review", "ai_chat.input.slash.schema.prompt": "Review the current linked table design, including field types, normalization, index strategy, and improvement suggestions:", "ai_chat.input.slash.shortcuts.desc": "Read the current Win/Mac shortcut configuration", "ai_chat.input.slash.shortcuts.keywords": "shortcuts|result area|mac|windows", "ai_chat.input.slash.shortcuts.label": "⌨️ Shortcut probe", "ai_chat.input.slash.shortcuts.prompt": "Call inspect_shortcuts first. Tell me the current GoNavi shortcut configuration, especially how to execute SQL, switch the results area, open the AI panel, and send AI messages on the current platform and the other platform, and whether any defaults were changed.", "ai_chat.input.slash.sql.desc": "Describe requirements and generate statements", "ai_chat.input.slash.sql.keywords": "sql|generate|query statement", "ai_chat.input.slash.sql.label": "📝 Generate SQL", "ai_chat.input.slash.sql.prompt": "Generate SQL from the following requirements:", "ai_chat.input.slash.tools.desc": "Pick the right built-in probe by keyword", "ai_chat.input.slash.tools.keywords": "tool catalog|built-in tools|toolcatalog|parameter hints|arguments|probe route", "ai_chat.input.slash.tools.label": "🧰 Tool catalog", "ai_chat.input.slash.tools.prompt": "Call inspect_ai_tool_catalog first. Filter recommended flows, built-in tool parameter hints, and the current MCP tool summary by my question keywords, then tell me which tool I should call next. Keywords:", "ai_chat.input.slash.tx.desc": "Review SQL editor commit mode and pending transactions", "ai_chat.input.slash.tx.keywords": "transaction|commit|auto commit|manual commit|pending transaction|dml", "ai_chat.input.slash.tx.label": "🔁 SQL transaction status", "ai_chat.input.slash.tx.prompt": "Call inspect_sql_editor_transaction first. Tell me the current SQL editor DML-managed transaction semantics, manual vs automatic commit settings, whether the active SQL tabs enter a transaction, whether there are pending transactions, and whether I should commit, roll back, or keep executing next.", "ai_chat.input.status.action.fix_provider": "Fix provider configuration", "ai_chat.input.status.action.open_settings": "Open AI settings", "ai_chat.input.status.action.reload_models": "Reload models", "ai_chat.input.status.dismiss_aria_label": "Dismiss AI status notice", "ai_chat.input.status.issue.missing_base_url": "endpoint URL", "ai_chat.input.status.issue.missing_secret": "API key", "ai_chat.input.status.issue.missing_selected_model": "model", "ai_chat.input.status.issue.separator": ", ", "ai_chat.input.status.label.loading": "Loading", "ai_chat.input.status.label.model_required": "Model required", "ai_chat.input.status.label.needs_fix": "Needs fix", "ai_chat.input.status.label.not_ready": "Not ready", "ai_chat.input.status.label.ready": "Ready", "ai_chat.input.status.missing_model.description.available": "{{count}} models are available right now. Select one before sending.", "ai_chat.input.status.missing_model.description.empty": "If the list is empty, check the provider endpoint, API key, and model access.", "ai_chat.input.status.missing_model.title.loading": "Loading models for {{provider}}", "ai_chat.input.status.missing_model.title.select": "Select a model for {{provider}}", "ai_chat.input.status.missing_provider.description.none": "Add and enable a model provider in AI settings first.", "ai_chat.input.status.missing_provider.description.unselected": "Select an active provider in AI settings before sending.", "ai_chat.input.status.missing_provider.title.none": "No provider available", "ai_chat.input.status.missing_provider.title.unselected": "Providers are configured, but none is currently active", "ai_chat.input.status.provider_fallback_name": "Current provider", "ai_chat.input.status.provider_incomplete.description": "Complete the provider configuration before sending to avoid immediate request failures.", "ai_chat.input.status.provider_incomplete.title": "{{provider}} is missing {{issues}}", "ai_chat.input.status.ready.auto_model": "Auto-selected", "ai_chat.input.status.ready.description.no_context": "You can send now. Select a connection or attach table schema context for more precise database guidance.", "ai_chat.input.status.ready.description.with_connection": "The current connection is selected. Attach table schema context for more precise database guidance.", "ai_chat.input.status.ready.description.with_context": "{{count}} table schema contexts are attached. You can send now.", "ai_chat.input.status.ready.title": "AI is ready: {{provider}} / {{model}}", "ai_chat.input.tooltip.attach_table_context": "Attach database table context", "ai_chat.input.tooltip.slash_command": "Slash commands", "ai_chat.input.tooltip.upload_attachment": "Upload attachment (images, Markdown, Word, Excel, PDF, text)", "ai_chat.input.tooltip.upload_image": "Upload image or screenshot", "ai_chat.inspection.ai_config.error.inspect_ai_chat_readiness": "Failed to read AI chat prerequisites", "ai_chat.inspection.ai_config.error.inspect_ai_guidance": "Failed to read current AI prompts and Skills configuration", "ai_chat.inspection.ai_config.error.inspect_ai_providers": "Failed to read current AI provider configuration", "ai_chat.inspection.ai_config.error.inspect_ai_runtime": "Failed to read current AI runtime state", "ai_chat.inspection.ai_config.error.inspect_ai_safety": "Failed to read current AI safety boundary", "ai_chat.inspection.ai_config.error.inspect_ai_setup_health": "Failed to inspect current AI setup", "ai_chat.inspection.ai_config.error.inspect_ai_tool_catalog": "Failed to read AI tool catalog", "ai_chat.inspection.ai_config.error.inspect_mcp_authoring_guide": "Failed to read MCP authoring guide", "ai_chat.inspection.ai_config.error.inspect_mcp_docker_setup": "Failed to inspect Docker MCP setup", "ai_chat.inspection.ai_config.error.inspect_mcp_draft": "Failed to validate MCP draft", "ai_chat.inspection.ai_config.error.inspect_mcp_remote_access": "Failed to read MCP remote access guidance", "ai_chat.inspection.ai_config.error.inspect_mcp_setup": "Failed to read MCP setup state", "ai_chat.inspection.ai_config.error.inspect_mcp_tool_schema": "Failed to read MCP tool parameter schema", "ai_chat.inspection.ai_context.linked_summary": "Currently linked table schema contexts: {{count}}", "ai_chat.inspection.ai_context.none_linked": "No AI table schema context is currently linked", "ai_chat.inspection.ai_sessions.untitled": "Untitled session", "ai_chat.inspection.app_health.app_log.unread": "GoNavi application logs are not readable: {{detail}}", "ai_chat.inspection.app_health.connection_failures.unread": "Connection failure logs are not readable: {{detail}}", "ai_chat.inspection.app_health.error.app_health_failed": "Failed to read AI application health overview", "ai_chat.inspection.app_health.error.support_bundle_failed": "Failed to generate AI support bundle", "ai_chat.inspection.app_health.last_render_error.empty_summary": "No AI message render errors have been recorded yet.", "ai_chat.inspection.app_health.log_reading_unavailable": "The current runtime does not provide log reading capability", "ai_chat.inspection.app_health.message.blocked": "AI application health has {{count}} blockers; fix provider and send prerequisites first", "ai_chat.inspection.app_health.message.degraded": "AI application health has runtime anomaly signals; drill into logs or connection failure records first", "ai_chat.inspection.app_health.message.needs_attention": "AI application health is usable overall, but still has {{count}} recommendations", "ai_chat.inspection.app_health.message.ready": "The AI application health overview passed; AI configuration, logs, connection failures, and workspace context show no obvious issues", "ai_chat.inspection.app_health.next_action.enable_app_log_reading": "Confirm the current runtime can read gonavi.log, then call inspect_app_logs for log details", "ai_chat.inspection.app_health.next_action.inspect_app_log_errors": "Call inspect_app_logs to review recent raw ERROR/WARN lines and confirm whether they affect AI, MCP, or database connections", "ai_chat.inspection.app_health.next_action.inspect_app_log_warnings": "If the user reports instability, call inspect_app_logs first to see whether WARN lines cluster around AI/MCP/connection paths", "ai_chat.inspection.app_health.next_action.inspect_last_render_error": "Call inspect_ai_last_render_error to review the latest bubble render error messageId, content preview, and component stack", "ai_chat.inspection.app_health.next_action.inspect_recent_connection_failures": "Call inspect_recent_connection_failures to review the latest connection failure cause, then decide whether to inspect the current connection or saved connection config", "ai_chat.inspection.app_health.next_action.open_sql_tab": "To analyze the current SQL, open or select the target SQL tab first, then call inspect_active_tab", "ai_chat.inspection.app_health.warning.app_log_errors": "Recent application logs contain {{count}} ERROR entries; inspect_app_logs should be checked first", "ai_chat.inspection.app_health.warning.app_log_unread": "GoNavi application logs cannot be read, so startup exceptions and MCP/connection errors lack log evidence", "ai_chat.inspection.app_health.warning.app_log_warnings": "Recent application logs contain {{count}} WARN entries; confirm whether they are known ignorable warnings", "ai_chat.inspection.app_health.warning.connection_failures_recent": "Recently detected {{count}} connection failure/cooldown records", "ai_chat.inspection.app_health.warning.connection_failures_unread": "Connection failure logs cannot be read, so database connection cooldown and validation failures lack structured evidence", "ai_chat.inspection.app_health.warning.last_render_error": "A recent AI message render error was recorded and may affect reply bubble display or Markdown rendering", "ai_chat.inspection.app_health.warning.no_workspace_tabs": "No tabs are open in the current workspace, so AI has no active editor context to read directly", "ai_chat.inspection.app_log.message.no_keyword_match": "No recent log entries matched keyword \"{{keyword}}\".", "ai_chat.inspection.app_log.message.no_readable_entries": "No readable recent log entries are available.", "ai_chat.inspection.codebase_hotspots.connection_modal.preferred_next_slice": "TLS configuration section", "ai_chat.inspection.codebase_hotspots.connection_modal.safe_seam": "The connection form already has presentation utilities; first extract configuration sections shown per data source.", "ai_chat.inspection.codebase_hotspots.connection_modal.suggested_slice.jvm_section": "JVM configuration section", "ai_chat.inspection.codebase_hotspots.connection_modal.suggested_slice.mongodb_section": "MongoDB configuration section", "ai_chat.inspection.codebase_hotspots.connection_modal.suggested_slice.ssh_proxy_section": "SSH/proxy configuration section", "ai_chat.inspection.codebase_hotspots.connection_modal.suggested_slice.tls_section": "TLS configuration section", "ai_chat.inspection.codebase_hotspots.connection_modal.verification.browser_smoke": "Open the add/edit connection dialog in a browser and switch MySQL, Oracle, MongoDB, and Redis forms.", "ai_chat.inspection.codebase_hotspots.connection_modal.why": "Multi-source connection forms are still concentrated in one component, so adding data sources or secret rules can affect each other.", "ai_chat.inspection.codebase_hotspots.data_grid.preferred_next_slice": "Result export toolbar", "ai_chat.inspection.codebase_hotspots.data_grid.safe_seam": "Extract the pure display toolbar and menu item generation first; do not move data-editing transaction state yet.", "ai_chat.inspection.codebase_hotspots.data_grid.suggested_slice.cell_edit_transaction_hint": "Cell edit transaction hint", "ai_chat.inspection.codebase_hotspots.data_grid.suggested_slice.column_header_menu": "Column header menu", "ai_chat.inspection.codebase_hotspots.data_grid.suggested_slice.ddl_view": "DDL view", "ai_chat.inspection.codebase_hotspots.data_grid.suggested_slice.result_export_toolbar": "Result export toolbar", "ai_chat.inspection.codebase_hotspots.data_grid.verification.browser_smoke": "Run a query in the browser and verify the result table, export, column menu, and table editing entry.", "ai_chat.inspection.codebase_hotspots.data_grid.why": "Result display, editing, DDL, export, and column operations are coupled, so a focused fix can affect the query result area.", "ai_chat.inspection.codebase_hotspots.data_sync.preferred_next_slice": "Sync precheck results", "ai_chat.inspection.codebase_hotspots.data_sync.safe_seam": "Make precheck results a pure display component first, keeping connection selection and execution actions in the parent component.", "ai_chat.inspection.codebase_hotspots.data_sync.suggested_slice.connection_selection": "Connection selection area", "ai_chat.inspection.codebase_hotspots.data_sync.suggested_slice.execution_logs": "Execution log area", "ai_chat.inspection.codebase_hotspots.data_sync.suggested_slice.precheck_results": "Sync precheck results", "ai_chat.inspection.codebase_hotspots.data_sync.suggested_slice.table_mapping": "Table mapping area", "ai_chat.inspection.codebase_hotspots.data_sync.verification.browser_smoke": "Open data sync in a browser and verify connection selection, table mapping, precheck, and execution logs.", "ai_chat.inspection.codebase_hotspots.data_sync.why": "Data sync connections, table mapping, prechecks, and execution results are concentrated, so database dialect issues can be hidden.", "ai_chat.inspection.codebase_hotspots.driver_manager.preferred_next_slice": "Driver status list", "ai_chat.inspection.codebase_hotspots.driver_manager.safe_seam": "The status list is presentational; extract it first while keeping install and download actions in the parent component.", "ai_chat.inspection.codebase_hotspots.driver_manager.suggested_slice.download_logs": "Download log area", "ai_chat.inspection.codebase_hotspots.driver_manager.suggested_slice.driver_status_list": "Driver status list", "ai_chat.inspection.codebase_hotspots.driver_manager.suggested_slice.install_actions": "Install action area", "ai_chat.inspection.codebase_hotspots.driver_manager.verification.browser_smoke": "Open driver management in a browser and verify status display, install buttons, and the log area.", "ai_chat.inspection.codebase_hotspots.driver_manager.why": "Driver installation, status display, downloads, and optional proxy logic are substantial, so status cards and action areas are good next extraction targets.", "ai_chat.inspection.codebase_hotspots.evidence.note": "Based on the current repository frontend file-line hotspot snapshot; before extraction, prefer slices that are readyToExtract and already covered by tests.", "ai_chat.inspection.codebase_hotspots.jvm_diagnostic.preferred_next_slice": "Diagnostic output area", "ai_chat.inspection.codebase_hotspots.jvm_diagnostic.safe_seam": "The output area mainly depends on the command result array, so it can be extracted as a display component first.", "ai_chat.inspection.codebase_hotspots.jvm_diagnostic.suggested_slice.command_input": "Command input area", "ai_chat.inspection.codebase_hotspots.jvm_diagnostic.suggested_slice.diagnostic_output": "Diagnostic output area", "ai_chat.inspection.codebase_hotspots.jvm_diagnostic.suggested_slice.permission_hint": "Permission hint area", "ai_chat.inspection.codebase_hotspots.jvm_diagnostic.verification.browser_smoke": "Open the JVM diagnostics panel in a browser and verify command input, output, and permission hints.", "ai_chat.inspection.codebase_hotspots.jvm_diagnostic.why": "Diagnostic commands, output blocks, permission hints, and session state can continue to be split to lower JVM diagnostics regression risk.", "ai_chat.inspection.codebase_hotspots.next_action.browser_smoke": "For visible UI extraction, open the real page in a browser for one smoke verification.", "ai_chat.inspection.codebase_hotspots.next_action.confirm_safe_seam": "Confirm the safeSeam before every extraction, and do not cross SQL execution, transaction, connection secret, or database dialect boundaries.", "ai_chat.inspection.codebase_hotspots.next_action.pick_ready_slice": "Prefer a slice with readiness=readyToExtract and existing test coverage for small-step extraction; avoid rewriting an entire large component directly.", "ai_chat.inspection.codebase_hotspots.next_action.run_targeted_tests": "After extraction, run the corresponding component tests, related utils tests, and npm --prefix frontend run build at minimum.", "ai_chat.inspection.codebase_hotspots.query_editor.preferred_next_slice": "Editor toolbar", "ai_chat.inspection.codebase_hotspots.query_editor.safe_seam": "The toolbar JSX can pass state and callbacks through props, avoiding SQL execution, transaction, and result pagination logic.", "ai_chat.inspection.codebase_hotspots.query_editor.suggested_slice.editor_shortcut_binding": "Editor shortcut binding", "ai_chat.inspection.codebase_hotspots.query_editor.suggested_slice.execution_log_hint": "Execution log hint", "ai_chat.inspection.codebase_hotspots.query_editor.suggested_slice.result_toolbar": "Result area toolbar", "ai_chat.inspection.codebase_hotspots.query_editor.suggested_slice.transaction_status_bar": "Transaction status bar", "ai_chat.inspection.codebase_hotspots.query_editor.verification.browser_smoke": "Open the SQL editor in a browser and verify connection/database selection, run, save, format, result visibility, and the AI menu.", "ai_chat.inspection.codebase_hotspots.query_editor.why": "SQL editing, execution, transactions, result layout, and shortcut state are concentrated, so transaction and result-panel regressions are likely.", "ai_chat.inspection.codebase_hotspots.redis_viewer.preferred_next_slice": "Key search bar", "ai_chat.inspection.codebase_hotspots.redis_viewer.safe_seam": "Extract the search bar and topology hint first, avoiding early changes to each data-structure editor.", "ai_chat.inspection.codebase_hotspots.redis_viewer.suggested_slice.add_key_dialog": "Add key dialog", "ai_chat.inspection.codebase_hotspots.redis_viewer.suggested_slice.key_search_bar": "Key search bar", "ai_chat.inspection.codebase_hotspots.redis_viewer.suggested_slice.structure_editors": "String/List/Set/ZSet/Hash/Stream editors", "ai_chat.inspection.codebase_hotspots.redis_viewer.verification.browser_smoke": "Open a Redis connection in a browser and verify key search, refresh, TTL, and the add entry.", "ai_chat.inspection.codebase_hotspots.redis_viewer.why": "Key browsing, data-structure editing, TTL, encoding display, and the add dialog are concentrated, so Redis Cluster/Sentinel follow-up validation is broad.", "ai_chat.inspection.codebase_hotspots.sidebar.preferred_next_slice": "External SQL directory dialog", "ai_chat.inspection.codebase_hotspots.sidebar.safe_seam": "Extract stateless dialog and menu configuration first, then handle action dispatch that depends on connection tree state.", "ai_chat.inspection.codebase_hotspots.sidebar.suggested_slice.batch_operation_dialogs": "Batch operation dialogs", "ai_chat.inspection.codebase_hotspots.sidebar.suggested_slice.connection_tree_actions": "Connection tree actions", "ai_chat.inspection.codebase_hotspots.sidebar.suggested_slice.external_sql_directory_dialog": "External SQL directory dialog", "ai_chat.inspection.codebase_hotspots.sidebar.suggested_slice.v2_command_palette": "V2 command palette", "ai_chat.inspection.codebase_hotspots.sidebar.verification.browser_smoke": "Open the sidebar in a browser and verify the connection tree, context menus, and external SQL directory entry.", "ai_chat.inspection.codebase_hotspots.sidebar.why": "The left tree, command palette, context menus, and connection actions are concentrated in one file, so change entry points are numerous and regression risk is high.", "ai_chat.inspection.codebase_hotspots.table_designer.preferred_next_slice": "Field editing table", "ai_chat.inspection.codebase_hotspots.table_designer.safe_seam": "Add field type, length, NULL, and default value snapshot tests first, then extract the field editing table.", "ai_chat.inspection.codebase_hotspots.table_designer.suggested_slice.dialect_ddl_preview": "Dialect DDL preview", "ai_chat.inspection.codebase_hotspots.table_designer.suggested_slice.field_editing_table": "Field editing table", "ai_chat.inspection.codebase_hotspots.table_designer.suggested_slice.foreign_key_panel": "Foreign key configuration panel", "ai_chat.inspection.codebase_hotspots.table_designer.suggested_slice.index_panel": "Index configuration panel", "ai_chat.inspection.codebase_hotspots.table_designer.verification.browser_smoke": "Open object design in a browser and verify fields, indexes, foreign keys, and DDL preview.", "ai_chat.inspection.codebase_hotspots.table_designer.why": "Field editing, indexes, foreign keys, partitions, and DDL generation are concentrated, so database dialect differences can spread easily.", "ai_chat.inspection.connection_capabilities.cache_missing": "The target connection does not exist in the local cache", "ai_chat.inspection.connection_capabilities.hint.approximate_table_count": "Table browsing can show approximate row counts to reduce large-table counting overhead.", "ai_chat.inspection.connection_capabilities.hint.editable_result": "Query results for this data source can enter the edit path when row locating conditions are available.", "ai_chat.inspection.connection_capabilities.hint.exact_table_count": "Table browsing does not use approximate row counts by default.", "ai_chat.inspection.connection_capabilities.hint.manual_total_count": "Total result counts should prefer manual or deferred counting instead of relying directly on fast totals.", "ai_chat.inspection.connection_capabilities.hint.message_publish_supported": "This data source provides a test message publishing entry, suitable for Topic/Queue integration checks.", "ai_chat.inspection.connection_capabilities.hint.message_publish_unsupported": "This data source does not expose a test message publishing entry.", "ai_chat.inspection.connection_capabilities.hint.readonly_result": "Query results for this data source are shown as read-only by default and cannot be edited directly.", "ai_chat.inspection.connection_capabilities.hint.regular_total_count": "Total result counts can prefer the regular counting path.", "ai_chat.inspection.connection_capabilities.no_connection": "No connection is available for capability analysis", "ai_chat.inspection.connection_capabilities.summary": "Current connection {{connectionName}} ({{type}}) exposes {{count}} frontend capability signals", "ai_chat.inspection.connection_failures.category.authentication": "Authentication failed", "ai_chat.inspection.connection_failures.category.cooldown": "Connection cooldown", "ai_chat.inspection.connection_failures.category.network": "Network unreachable", "ai_chat.inspection.connection_failures.category.other": "Other connection anomaly", "ai_chat.inspection.connection_failures.category.parameter_compatibility": "Connection parameter/compatibility issue", "ai_chat.inspection.connection_failures.category.ssh": "SSH tunnel failed", "ai_chat.inspection.connection_failures.category.startup": "Driver/process startup failed", "ai_chat.inspection.connection_failures.category.timeout": "Connection timeout", "ai_chat.inspection.connection_failures.category.validation": "Connection validation failed", "ai_chat.inspection.connection_failures.message.detected": "Recent logs identified {{count}} connection-related anomalies; latest category is {{categoryLabel}}", "ai_chat.inspection.connection_failures.message.no_keyword_match": "No recent connection failure records matched keyword \"{{keyword}}\"", "ai_chat.inspection.connection_failures.message.none": "No connection failures, validation failures, or connection cooldown records were identified in recent logs", "ai_chat.inspection.connection_failures.next_action.authentication": "Verify the username, password, authentication database, tenant, or Service Name, and confirm the server allows this account to log in.", "ai_chat.inspection.connection_failures.next_action.check_current_connection": "If you need to confirm the connection currently shown in the UI still targets the same endpoint, call inspect_current_connection to check whether it still points to {{address}}.", "ai_chat.inspection.connection_failures.next_action.cooldown": "Fix the previous real connection error before retrying; repeated refreshes will keep hitting the connection cooldown.", "ai_chat.inspection.connection_failures.next_action.inspect_config": "First use inspect_current_connection and inspect_saved_connections to verify the current connection configuration, then widen the log window if more evidence is needed.", "ai_chat.inspection.connection_failures.next_action.network": "Check whether the target address, port, firewall, proxy, and tunnel path are reachable, and confirm the server is actually listening.", "ai_chat.inspection.connection_failures.next_action.parameter_compatibility": "Check connection parameters, DSN, and protocol compatibility first, especially multiStatements, charset, extra query parameters, and URL encoding.", "ai_chat.inspection.connection_failures.next_action.ssh": "Check the SSH jump host address, port, account, and tunnel target address; if needed, verify connectivity from the jump host to the database first.", "ai_chat.inspection.connection_failures.next_action.startup": "Check whether the driver process or external dependency can start normally; if needed, validate the startup command locally or on the target host first.", "ai_chat.inspection.connection_failures.next_action.validation": "Inspect the server validation failure details and confirm that database type, driver protocol, database name, or Service Name matches the target service.", "ai_chat.inspection.context_budget.next_action.continue_narrow_probe": "The current context volume is manageable; continue by calling narrower schema, log, or SQL risk probes for the specific question", "ai_chat.inspection.context_budget.next_action.inspect_message_flow": "Call inspect_ai_message_flow first to confirm whether tool calls are missing tool result messages", "ai_chat.inspection.context_budget.next_action.narrow_tables": "Keep only tables relevant to this turn; if needed, use inspect_table_bundle to read target tables on demand", "ai_chat.inspection.context_budget.next_action.narrow_tools": "Temporarily disable unrelated MCP services, or call inspect_ai_tool_catalog by keyword first to narrow the tool route", "ai_chat.inspection.context_budget.next_action.open_session": "Open or select the target AI session first, then call inspect_ai_context_budget again", "ai_chat.inspection.context_budget.next_action.reduce_skills": "Keep only Skills relevant to this turn, then restore other Skills after finishing", "ai_chat.inspection.context_budget.next_action.reduce_tool_results": "Reduce the returned volume from inspect_app_logs / inspect_recent_sql_logs / includeDDL / includeLogLines", "ai_chat.inspection.context_budget.next_action.summarize_or_new_session": "Start a new session or ask AI to summarize the current conclusion before continuing the next complex task", "ai_chat.inspection.context_budget.warning.critical_risk": "The current AI input context has reached critical volume and may cause slow replies, truncation, or ignored constraints", "ai_chat.inspection.context_budget.warning.high_risk": "The current AI input context is large; narrow the context before complex questions", "ai_chat.inspection.context_budget.warning.large_mcp_catalog": "Many MCP tools or schemas are exposed, which may make the model more likely to choose the wrong tool", "ai_chat.inspection.context_budget.warning.large_messages": "Recent messages in this session are long and may affect the stability of later replies", "ai_chat.inspection.context_budget.warning.large_schema_context": "Many table schemas or long DDL are mounted and may crowd out the user question and tool results", "ai_chat.inspection.context_budget.warning.large_skills": "Many Skills are enabled or prompts are long, which may stack conflicting constraints", "ai_chat.inspection.context_budget.warning.large_tool_results": "Recent tool results are long and may dilute later answers with logs or large result sets", "ai_chat.inspection.context_budget.warning.missing_session": "The target AI session was not found, so message volume statistics only cover an empty window", "ai_chat.inspection.context_budget.warning.unresolved_tool_calls": "The recent message window contains {{count}} unclosed tool calls", "ai_chat.inspection.current_connection.cache_missing": "The current active connection does not exist in the local cache", "ai_chat.inspection.current_connection.no_active": "No active connection is currently selected", "ai_chat.inspection.database_bundle.error.database_overview_failed": "Failed to build database structure overview: {{detail}}", "ai_chat.inspection.database_bundle.error.db_name_required": "dbName is required", "ai_chat.inspection.database_bundle.error.table_name_required": "tableName is required", "ai_chat.inspection.database_bundle.error.table_snapshot_failed": "Failed to build table structure snapshot: {{detail}}", "ai_chat.inspection.database_bundle.error.unknown": "Unknown error", "ai_chat.inspection.database_bundle.warning.all_columns_failed": "Failed to fetch column summary: {{detail}}", "ai_chat.inspection.database_bundle.warning.columns_failed": "Failed to fetch column list: {{detail}}", "ai_chat.inspection.database_bundle.warning.ddl_failed": "Failed to fetch DDL: {{detail}}", "ai_chat.inspection.database_bundle.warning.foreign_keys_failed": "Failed to fetch foreign key relationships: {{detail}}", "ai_chat.inspection.database_bundle.warning.indexes_failed": "Failed to fetch index definitions: {{detail}}", "ai_chat.inspection.database_bundle.warning.sample_rows_failed": "Failed to fetch sample rows: {{detail}}", "ai_chat.inspection.database_bundle.warning.tables_failed": "Failed to fetch table list: {{detail}}", "ai_chat.inspection.database_bundle.warning.tables_failed_with_column_fallback": "Failed to fetch table list, fell back to column summary inference: {{detail}}", "ai_chat.inspection.database_bundle.warning.triggers_failed": "Failed to fetch triggers: {{detail}}", "ai_chat.inspection.diagnostics.error.read_ai_upstream_logs_failed": "Failed to read AI upstream request logs: {{detail}}", "ai_chat.inspection.diagnostics.error.read_app_logs_failed": "Failed to read GoNavi app logs: {{detail}}", "ai_chat.inspection.diagnostics.error.read_app_logs_unsupported": "The current environment does not support reading GoNavi app logs", "ai_chat.inspection.diagnostics.error.read_recent_connection_failures_failed": "Failed to read recent connection failure records: {{detail}}", "ai_chat.inspection.diagnostics.error.unknown": "unknown error", "ai_chat.inspection.external_sql_file.error.file_path_required": "filePath is required", "ai_chat.inspection.external_sql_file.error.outside_configured_directory": "The target file is outside configured external SQL directories", "ai_chat.inspection.external_sql_file.error.read_failed": "Failed to read external SQL file: {{detail}}", "ai_chat.inspection.external_sql_file.error.unknown": "Unknown error", "ai_chat.inspection.external_sql_file.error.unsupported_runtime": "The current runtime does not support reading local SQL files yet", "ai_chat.inspection.guidance.message.configured": "{{promptCount}} custom prompts and {{skillCount}} Skills are enabled", "ai_chat.inspection.guidance.message.empty": "No custom prompts or Skills are enabled", "ai_chat.inspection.guidance.scope.database": "Database session", "ai_chat.inspection.guidance.scope.global": "Global", "ai_chat.inspection.guidance.scope.jvm": "JVM resource analysis", "ai_chat.inspection.guidance.scope.jvmDiagnostic": "JVM diagnostics", "ai_chat.inspection.last_render_error.empty_next_action.inspect_health": "If the entire AI panel is failing, combine this with inspect_ai_setup_health and inspect_app_logs.", "ai_chat.inspection.last_render_error.empty_next_action.reproduce": "If the user reports a blank AI message, white block, or localized render error, reproduce it and read this snapshot again.", "ai_chat.inspection.last_render_error.empty_summary": "No AI message render errors have been recorded yet.", "ai_chat.inspection.last_render_error.next_action.match_message": "Match messageId and contentPreview against the current conversation to identify which bubble triggered the render error.", "ai_chat.inspection.last_render_error.next_action.narrow_scope": "If more narrowing is needed, compare the latest user input, tool results, and related component code.", "ai_chat.inspection.last_render_error.recorded_summary": "A recent AI message render error was recorded, including the message, render path, and stack summary needed for diagnosis.", "ai_chat.inspection.mcp_docker.message.empty": "No Docker MCP servers are configured", "ai_chat.inspection.mcp_docker.message.with_enabled": "There are {{total}} Docker MCP servers; {{enabled}} are enabled", "ai_chat.inspection.mcp_docker.message.with_incomplete": "There are {{total}} Docker MCP servers; {{count}} have incomplete key arguments", "ai_chat.inspection.mcp_docker.next_action.add_image": "Add the image name from README after docker run options", "ai_chat.inspection.mcp_docker.next_action.add_interactive": "Add -i or --interactive to args so MCP stdio does not close immediately", "ai_chat.inspection.mcp_docker.next_action.add_run": "Add run to args, for example docker run --rm -i ", "ai_chat.inspection.mcp_docker.next_action.create_from_readme": "If README provides docker run -i --rm , create a server from the \"Docker image\" template in MCP settings", "ai_chat.inspection.mcp_docker.next_action.disabled": "This Docker MCP is disabled; enable it and test tool discovery after confirming the configuration", "ai_chat.inspection.mcp_docker.next_action.fix_key_args": "Fix key Docker MCP arguments first, then test tool discovery again", "ai_chat.inspection.mcp_docker.next_action.no_tools": "The configuration structure looks complete but no tools were discovered; click \"Test tool discovery\" to confirm Docker, the image, and in-container dependencies are available", "ai_chat.inspection.mcp_docker.next_action.open_services": "Open the affected Docker MCP services and confirm arguments and timeout from the configuration hints", "ai_chat.inspection.mcp_docker.next_action.refresh_tools": "Confirm local Docker is available, the image is pulled, and click \"Test tool discovery\" to refresh the tool list", "ai_chat.inspection.mcp_docker.next_action.timeout": "Docker may be slow on first startup; use timeoutSeconds 45 or 60", "ai_chat.inspection.mcp_docker.warning.config_warnings": "{{count}} Docker MCP server still has configuration warnings", "ai_chat.inspection.mcp_docker.warning.incomplete": "{{count}} Docker MCP server is missing key arguments such as run, -i, or image name", "ai_chat.inspection.mcp_docker.warning.no_tools": "{{count}} enabled Docker MCP server has not discovered tools yet", "ai_chat.inspection.mcp_draft.default_name": "MCP draft", "ai_chat.inspection.mcp_draft.next_action.args_missing_for_launcher": "Complete launcher arguments: npx usually needs -y and a package name, node needs server.js, python needs -m and a module name, uvx needs a package name, and docker needs run, -i, and an image name.", "ai_chat.inspection.mcp_draft.next_action.can_test_with_warnings": "The current draft can be tested, but handle warnings first to avoid tool discovery timeouts or discovering 0 tools.", "ai_chat.inspection.mcp_draft.next_action.command_missing": "Paste the full startup command from README first, or at least fill node, npx, uvx, python, or exe as command.", "ai_chat.inspection.mcp_draft.next_action.command_whole_line": "Put the whole command into the full command field for auto-splitting; keep only the executable in command, and put scripts, packages, and --stdio into args.", "ai_chat.inspection.mcp_draft.next_action.docker_image": "Add the image name from README to Docker MCP args, for example mcp/server-fetch:latest.", "ai_chat.inspection.mcp_draft.next_action.docker_interactive": "Add -i or --interactive to Docker MCP args so the stdio connection does not close immediately.", "ai_chat.inspection.mcp_draft.next_action.docker_run": "For Docker MCP, set command to docker and add run separately in args.", "ai_chat.inspection.mcp_draft.next_action.env_lines": "Write environment variables as one KEY=VALUE per line; do not put export, set, env, &&, or $env:KEY=VALUE; into args.", "ai_chat.inspection.mcp_draft.next_action.ready_to_save": "The current draft can be saved and tested for tool discovery; if it discovers 0 tools, check whether the service supports stdio.", "ai_chat.inspection.mcp_draft.next_action.send_full_command": "If you are still unsure how to split it, pass the original full command to fullCommand and let GoNavi calculate it.", "ai_chat.inspection.mcp_draft.next_action.timeout": "Set timeout to 20 seconds; slow-starting services can use 45 or 60 seconds.", "ai_chat.inspection.mcp_draft.parse.no_full_command": "No fullCommand was provided; validated the split-field draft instead.", "ai_chat.inspection.mcp_draft.redacted_parse_failed": "[Parse failed, original command hidden]", "ai_chat.inspection.mcp_remote.message.no_public_url": "The remote Agent needs to access the Windows GoNavi MCP HTTP endpoint through a controlled tunnel or reverse proxy", "ai_chat.inspection.mcp_remote.message.with_public_url": "The remote Agent should access GoNavi MCP through {{publicUrl}} and authenticate with Bearer Token", "ai_chat.inspection.mcp_remote.next_action.configure_agent": "Configure Streamable HTTP MCP URL and Authorization Bearer Token in OpenClaw/Hermans.", "ai_chat.inspection.mcp_remote.next_action.expose_mcp_only": "Expose only /mcp to the target cloud Agent through a tunnel, reverse proxy, or private network.", "ai_chat.inspection.mcp_remote.next_action.inspect_connections": "Call get_connections first to obtain connectionId, then read schemas; do not copy database passwords to the cloud Agent.", "ai_chat.inspection.mcp_remote.next_action.start_local_http": "Start GoNavi MCP HTTP mode on Windows and confirm /healthz is reachable.", "ai_chat.inspection.mcp_remote.security.recommended_bind_address": "127.0.0.1 unless a controlled gateway or private network is in front", "ai_chat.inspection.mcp_remote.strategy.cloudflare_tunnel.detail": "Use this for Windows machines without a fixed public entry point, with Cloudflare Access layered for identity checks.", "ai_chat.inspection.mcp_remote.strategy.cloudflare_tunnel.risk": "Access / Zero Trust rules must be enabled; do not rely only on a random URL.", "ai_chat.inspection.mcp_remote.strategy.cloudflare_tunnel.title": "Cloudflare Tunnel", "ai_chat.inspection.mcp_remote.strategy.custom.detail": "Use this when an enterprise gateway, bastion host, or dedicated MCP gateway already exists.", "ai_chat.inspection.mcp_remote.strategy.custom.risk": "Define TLS, authentication, audit, and source restrictions clearly to avoid exposing local database capabilities to unknown Agents.", "ai_chat.inspection.mcp_remote.strategy.custom.title": "Custom bridge", "ai_chat.inspection.mcp_remote.strategy.reverse_proxy.detail": "Use this when Windows GoNavi and the cloud Agent already share a trusted intranet or gateway.", "ai_chat.inspection.mcp_remote.strategy.reverse_proxy.risk": "Keep source IP, TLS, and Bearer Token restrictions at the gateway; do not expose it directly to the public internet.", "ai_chat.inspection.mcp_remote.strategy.reverse_proxy.title": "Internal reverse proxy", "ai_chat.inspection.mcp_remote.strategy.ssh_reverse_tunnel.detail": "Use this to temporarily map Windows 127.0.0.1:8765 to cloud Linux. It is simple, but the SSH account and port must be controlled.", "ai_chat.inspection.mcp_remote.strategy.ssh_reverse_tunnel.risk": "The cloud Agent becomes unavailable if the tunnel disconnects, so this fits PoC or controlled operations environments.", "ai_chat.inspection.mcp_remote.strategy.ssh_reverse_tunnel.title": "SSH reverse tunnel", "ai_chat.inspection.mcp_remote.strategy.tailscale.detail": "Use this when Windows GoNavi and the cloud Agent can join the same private network and prefer an intranet address.", "ai_chat.inspection.mcp_remote.strategy.tailscale.risk": "Control ACLs so only the target Agent can reach the GoNavi MCP port.", "ai_chat.inspection.mcp_remote.strategy.tailscale.title": "Tailscale / WireGuard", "ai_chat.inspection.mcp_remote.warning.missing_public_url": "No MCP URL reachable by the cloud Agent was provided; a remote Agent cannot directly access Windows local 127.0.0.1.", "ai_chat.inspection.mcp_remote.warning.missing_token": "Bearer Token readiness is not confirmed; HTTP MCP must use a random token and must not be exposed without authentication.", "ai_chat.inspection.mcp_remote.warning.non_https_public_url": "The remote MCP URL is not HTTPS; if it is not a private network address, add TLS or place it behind a controlled tunnel.", "ai_chat.inspection.mcp_runtime.error.read_logs_failed": "Failed to read MCP runtime failure logs: {{detail}}", "ai_chat.inspection.mcp_runtime.error.read_logs_unsupported": "The current environment does not support reading GoNavi app logs", "ai_chat.inspection.mcp_runtime.message.failure_events": "{{count}} MCP runtime failure signal was found in recent logs", "ai_chat.inspection.mcp_runtime.message.no_failure_events": "No MCP startup, tool discovery, or tool call failure signal was found in recent logs.", "ai_chat.inspection.mcp_runtime.next_action.argument_error": "Call inspect_mcp_tool_schema first to read the real inputSchema, then fix the tool arguments JSON.", "ai_chat.inspection.mcp_runtime.next_action.auth": "Check whether the Token/API Key in environment variables is configured, unexpired, and has enough scope.", "ai_chat.inspection.mcp_runtime.next_action.command_not_found": "Check that command contains only the executable name, and confirm it is on PATH or uses an absolute path.", "ai_chat.inspection.mcp_runtime.next_action.enabled_without_tools": "Some enabled MCP servers have no discovered tools; click \"Test tool discovery\" first and confirm the launch command runs independently.", "ai_chat.inspection.mcp_runtime.next_action.expand_logs": "No MCP failure signal was found in recent logs; if you just reproduced the issue, increase lineLimit or filter precisely with serverName.", "ai_chat.inspection.mcp_runtime.next_action.fix_discovery_first": "When the tool list is empty, fix startup/discovery failure before diagnosing individual tool arguments.", "ai_chat.inspection.mcp_runtime.next_action.network": "Check whether the remote endpoint, proxy, VPN, or local port required by MCP is reachable.", "ai_chat.inspection.mcp_runtime.next_action.permission": "Check executable permissions, antivirus/system blocking, and working directory access.", "ai_chat.inspection.mcp_runtime.next_action.process_exit": "Run the launch command in a terminal separately and inspect why the process exits immediately after startup.", "ai_chat.inspection.mcp_runtime.next_action.stdio_closed": "Confirm the --stdio/stdin argument required by README is set; for Docker, confirm args includes -i.", "ai_chat.inspection.mcp_runtime.next_action.timeout": "Raise timeoutSeconds to 45 or 60, and confirm the service keeps the stdio connection open after startup.", "ai_chat.inspection.mcp_runtime.next_action.transport": "New MCP servers in GoNavi currently support stdio only; for HTTP MCP, use the GoNavi HTTP service or the matching remote access guide.", "ai_chat.inspection.mcp_runtime.next_action.unknown": "Inspect the configuration with inspect_mcp_setup, then call inspect_app_logs with a larger log window to confirm the raw error.", "ai_chat.inspection.mcp_runtime.warning.enabled_without_tools": "{{count}} enabled MCP server currently has no discovered tools.", "ai_chat.inspection.mcp_runtime.warning.failure_events": "{{count}} MCP runtime failure signal was found in recent logs.", "ai_chat.inspection.mcp_tool_schema.message.empty": "No MCP tool schema is available yet", "ai_chat.inspection.mcp_tool_schema.message.no_matches": "No matching MCP tool was found", "ai_chat.inspection.mcp_tool_schema.message.with_matches": "Found {{matched}} MCP tools and returned {{returned}} parameter schema summaries", "ai_chat.inspection.mcp_tool_schema.next_action.inspect_setup": "Call inspect_mcp_setup first to check whether MCP services are enabled and tools have been discovered.", "ai_chat.inspection.mcp_tool_schema.next_action.lookup_alias": "Call inspect_mcp_setup first to check the MCP tool aliases actually discovered, then query by exact alias.", "ai_chat.inspection.mcp_tool_schema.next_action.read_readme": "For tools without schema, go back to the MCP service README or use tool errors to confirm parameters.", "ai_chat.inspection.mcp_tool_schema.usage.enum_values": "{{path}} must be one of: {{values}}", "ai_chat.inspection.mcp_tool_schema.usage.nested_json": "Nested object and array parameters must follow the JSON structure; do not pass the whole object as a string.", "ai_chat.inspection.mcp_tool_schema.usage.no_input_schema": "This MCP tool does not declare inputSchema; check the service README first or probe with an empty object.", "ai_chat.inspection.mcp_tool_schema.usage.required_params": "Before calling {{alias}}, provide: {{parameters}}", "ai_chat.inspection.mcp_tool_schema.usage.schema_fields_only": "Only pass fields declared in the schema; if a field meaning is unclear, ask the user instead of guessing.", "ai_chat.inspection.mcp_tool_schema.warning.missing_schema": "Some MCP tools do not declare inputSchema, so parameter documentation may be incomplete.", "ai_chat.inspection.mcp_tool_schema.warning.no_matches": "No matching MCP tool was found.", "ai_chat.inspection.mcp_tool_schema.warning.no_tools": "No MCP tools were discovered; MCP services may not be configured, or service testing/discovery may have failed.", "ai_chat.inspection.mcp.message.configured": "{{serverCount}} MCP server is configured; {{enabledCount}} enabled", "ai_chat.inspection.mcp.message.empty": "No MCP servers are configured yet", "ai_chat.inspection.mcp.message.with_issues": "{{serverCount}} MCP server is configured; {{enabledCount}} enabled; {{issueCount}} configuration checks need attention", "ai_chat.inspection.mcp.next_action.fix_config_errors": "Fix the MCP server configuration errors first, then test the server again", "ai_chat.inspection.mcp.next_action.fix_config_warnings": "Open the affected MCP server and split launch command, arguments, and timeout according to the configuration check hints", "ai_chat.inspection.mcp.warning.config_errors": "{{count}} MCP server has launch configuration errors; testing and tool discovery may fail", "ai_chat.inspection.mcp.warning.config_warnings": "{{count}} MCP server has launch configuration warnings; confirm them before diagnosing tool discovery failures", "ai_chat.inspection.message_flow.next_action.check_empty_assistant": "Check whether exception or cancellation paths left empty assistant placeholder messages.", "ai_chat.inspection.message_flow.next_action.check_stream_append": "Check whether streaming append logic reuses the same assistantMsgId instead of creating a new assistant message for the same reply.", "ai_chat.inspection.message_flow.next_action.check_tool_results": "Check whether useAIChatLocalTools writes a tool message for every tool_call_id.", "ai_chat.inspection.message_flow.next_action.inspect_render_or_logs": "No obvious message-flow structure issue was found; continue with inspect_ai_last_render_error or inspect_app_logs for rendering/runtime diagnostics.", "ai_chat.inspection.message_flow.warning.consecutive_assistant": "{{count}} consecutive assistant message pairs were found; one reply may have been split into multiple bubbles.", "ai_chat.inspection.message_flow.warning.empty_assistant": "{{count}} empty assistant messages were found.", "ai_chat.inspection.message_flow.warning.loading_message": "The session still contains a loading message; streaming may still be active or a previous interruption was not cleaned up.", "ai_chat.inspection.message_flow.warning.unresolved_tool_calls": "{{count}} tool calls have no matching tool result messages.", "ai_chat.inspection.provider.message.active_needs_attention": "Using {{provider}}, but {{issueCount}} items still need checking", "ai_chat.inspection.provider.message.active_ready": "{{count}} providers are configured; using {{provider}}", "ai_chat.inspection.provider.message.empty": "No AI providers are configured", "ai_chat.inspection.provider.message.unselected": "{{count}} providers are configured, but no active provider is selected", "ai_chat.inspection.redis_topology.db_note.cluster_logical_namespace": "Redis Cluster physically supports only db0; GoNavi uses the __gonavi_db_N__: prefix to emulate a multi-DB view.", "ai_chat.inspection.redis_topology.db_note.sentinel_selected_db": "After Sentinel discovers the master, GoNavi connects to the selected DB and keeps the Sentinel settings when reconnecting.", "ai_chat.inspection.redis_topology.db_note.single_selected_db": "Standalone mode uses Redis SELECT DB directly.", "ai_chat.inspection.redis_topology.label.cluster": "Redis Cluster", "ai_chat.inspection.redis_topology.label.sentinel": "Redis Sentinel", "ai_chat.inspection.redis_topology.label.single": "Standalone Redis", "ai_chat.inspection.redis_topology.next_action.align_single_topology": "Explicitly switch to Cluster mode, or remove extra nodes and keep one Standalone address to avoid mismatch between configured and backend topology.", "ai_chat.inspection.redis_topology.next_action.check_sentinel_port": "Change the primary Sentinel address port to 26379 unless your Sentinel explicitly listens on another port.", "ai_chat.inspection.redis_topology.next_action.disable_ssh": "Disable the SSH tunnel and use direct access, proxy/VPN, or GoNavi MCP HTTP so the remote Agent can access Redis through local GoNavi.", "ai_chat.inspection.redis_topology.next_action.fill_host": "Fill in the host first; use Sentinel addresses for Sentinel mode and Redis Cluster seed nodes for Cluster mode.", "ai_chat.inspection.redis_topology.next_action.fill_sentinel_master": "Fill in the Sentinel master name, for example mymaster.", "ai_chat.inspection.redis_topology.next_action.review_cluster_logical_db": "Confirm whether the workload really needs a Redis Cluster multi-DB view; if this is only key grouping, prefer an application namespace.", "ai_chat.inspection.redis_topology.next_action.test_connection": "The configuration looks usable for {{topologyLabel}}; next, test the connection and inspect the Redis DB/key tree.", "ai_chat.inspection.redis_topology.recommendation.check_tls": "TLS is enabled; if connection fails, first check sslMode, CA/certificate paths, and server SNI.", "ai_chat.inspection.redis_topology.recommendation.cluster_multiple_seeds": "Prefer at least two seed nodes, and confirm these nodes belong to the same Redis Cluster.", "ai_chat.inspection.redis_topology.recommendation.cluster_namespace": "If a multi-DB view is needed, prefer explicit namespaces in business keys to avoid misunderstanding the physical db0 limit of Cluster.", "ai_chat.inspection.redis_topology.recommendation.network_for_cluster_sentinel": "For cross-network Redis Cluster/Sentinel access, prefer a network proxy, VPN, or GoNavi MCP HTTP instead of a single-port SSH tunnel.", "ai_chat.inspection.redis_topology.recommendation.sentinel_addresses": "Confirm that host and extra nodes are Sentinel addresses, not Redis master addresses.", "ai_chat.inspection.redis_topology.recommendation.separate_auth": "Fill Redis data-node credentials and Sentinel credentials separately; do not mix them.", "ai_chat.inspection.redis_topology.recommendation.single_one_address": "Standalone mode should contain one Redis address; if there are multiple nodes, use Cluster or Sentinel mode instead.", "ai_chat.inspection.redis_topology.warning.cluster_logical_db": "Redis Cluster physically supports only db0; GoNavi uses the __gonavi_db_N__: prefix to emulate logical DB isolation", "ai_chat.inspection.redis_topology.warning.cluster_sentinel_fields_ignored": "Sentinel master and Sentinel user fields do not take effect in Cluster mode", "ai_chat.inspection.redis_topology.warning.cluster_single_seed": "Only one Cluster seed node is configured; add multiple master/replica nodes to improve discovery reliability", "ai_chat.inspection.redis_topology.warning.missing_host": "Host is empty; fill in a Redis node or Sentinel address before connecting", "ai_chat.inspection.redis_topology.warning.missing_sentinel_master": "Sentinel master name is empty; go-redis FailoverClient cannot discover the primary node", "ai_chat.inspection.redis_topology.warning.sentinel_default_redis_port": "The primary Sentinel address uses port 6379; confirm this is a Sentinel port, commonly 26379 by default", "ai_chat.inspection.redis_topology.warning.single_multiple_nodes": "Standalone mode has multiple node addresses; the backend will use the multi-node Cluster path, so explicitly switch to Cluster mode", "ai_chat.inspection.redis_topology.warning.single_sentinel_fields_ignored": "Sentinel fields do not take effect in Standalone mode; switch to Sentinel mode if Sentinel discovery is required", "ai_chat.inspection.redis_topology.warning.single_sentinel_node": "Only one Sentinel node is configured; provide at least 2-3 Sentinel addresses to avoid a single point of failure", "ai_chat.inspection.redis_topology.warning.ssh_unsupported": "{{topologyLabel}} is not supported with SSH tunnels by the current backend; use direct access, a proxy, or remote MCP HTTP instead", "ai_chat.inspection.runtime.context.schema_only": "Schema only", "ai_chat.inspection.runtime.context.with_results": "Schema + results", "ai_chat.inspection.runtime.context.with_samples": "Schema + samples", "ai_chat.inspection.runtime.message.active": "AI is using {{provider}} with {{toolCount}} tools available", "ai_chat.inspection.runtime.message.no_provider": "No AI provider is currently active", "ai_chat.inspection.runtime.safety.full": "Full access", "ai_chat.inspection.runtime.safety.readonly": "Read-only", "ai_chat.inspection.runtime.safety.readwrite": "Read/write", "ai_chat.inspection.safety.message.active": "AI safety level is {{safety}}; active connection is {{connection}}", "ai_chat.inspection.safety.message.no_connection": "AI safety level is {{safety}}; no active connection is selected", "ai_chat.inspection.safety.recommendation.confirm_jvm_policy": "The current JVM connection should be treated as read-only; confirm whether its policy should change before mutating diagnostics.", "ai_chat.inspection.safety.recommendation.enable_full_for_ddl": "Switch to full access mode before executing CREATE/ALTER/DROP/TRUNCATE schema changes.", "ai_chat.inspection.safety.recommendation.enable_jvm_mutating": "JVM diagnostics currently disallow mutating commands; adjust diagnostic permissions before high-risk commands.", "ai_chat.inspection.safety.recommendation.enable_readwrite_for_dml": "Switch AI safety level to read/write mode before executing INSERT/UPDATE/DELETE.", "ai_chat.inspection.safety.recommendation.full_required_for_schema": "DML is already allowed; schema changes still require full access mode.", "ai_chat.inspection.safety.recommendation.open_editable_grid": "If the goal is editing a result grid, reopen an editable table or query result instead of the current read-only tab.", "ai_chat.inspection.safety.restriction.active_result_readonly": "The current active tab result set is read-only and cannot be treated as a directly writable data grid.", "ai_chat.inspection.safety.restriction.jvm_mutating_disabled": "Current JVM diagnostics explicitly disallow mutating commands, even if the AI safety level allows writes.", "ai_chat.inspection.safety.restriction.jvm_readonly": "The current JVM connection is read-only, so diagnostic plans should default to observation and troubleshooting.", "ai_chat.inspection.safety.restriction.mcp_allow_mutating": "When executing non-query statements through GoNavi MCP execute_sql, allowMutating=true must also be passed explicitly.", "ai_chat.inspection.safety.restriction.non_query_confirmation": "Any allowed non-query statement still requires human confirmation.", "ai_chat.inspection.safety.restriction.readonly_blocks_mutating": "At the current safety level, all DML/DDL is blocked directly.", "ai_chat.inspection.safety.rule.full": "Full access mode allows all SQL operations; high-risk or unrecognized statements still require confirmation.", "ai_chat.inspection.safety.rule.readonly": "Read-only mode only allows query statements.", "ai_chat.inspection.safety.rule.readwrite": "Read/write mode allows queries and DML; DDL is still blocked.", "ai_chat.inspection.setup.blocker.missing_base_url": "The active provider is missing a base URL", "ai_chat.inspection.setup.blocker.missing_model": "The active provider has no selected model", "ai_chat.inspection.setup.blocker.missing_secret": "The active provider is missing an API Key / Secret", "ai_chat.inspection.setup.blocker.no_active_provider": "No active AI provider is selected", "ai_chat.inspection.setup.message.blocked": "AI setup has {{count}} blockers; fix the active provider and chat prerequisites first", "ai_chat.inspection.setup.message.needs_attention": "AI setup is usable overall, but {{count}} recommendations can still be optimized", "ai_chat.inspection.setup.message.ready": "AI setup health passed; provider, chat prerequisites, and MCP runtime path are available", "ai_chat.inspection.setup.next_action.add_guidance": "To pin response style or workflow, add custom prompts or enable Skills", "ai_chat.inspection.setup.next_action.add_mcp_server": "To extend AI tool capabilities, add and test at least one MCP server", "ai_chat.inspection.setup.next_action.attach_schema_context": "For more accurate SQL or schema suggestions, attach the target table schema to AI context first", "ai_chat.inspection.setup.next_action.connect_external_client": "To let external Agents use GoNavi MCP, connect local clients such as Claude Code/Codex or configure a remote MCP bridge for cloud Agents", "ai_chat.inspection.setup.next_action.fill_base_url": "Fill in the active provider baseUrl", "ai_chat.inspection.setup.next_action.fill_secret": "Fill in the active provider secret", "ai_chat.inspection.setup.next_action.select_model": "Select an available model for the active provider", "ai_chat.inspection.setup.next_action.select_provider": "Add and select an active provider in AI settings first", "ai_chat.inspection.setup.next_action.test_mcp_servers": "Test each enabled MCP server and confirm its command, arguments, and environment variables can discover tools correctly", "ai_chat.inspection.setup.next_action.wait_models": "Wait for the model list to finish loading, then confirm the active model again", "ai_chat.inspection.setup.warning.external_client_not_connected": "Claude Code / Codex is not connected to the current GoNavi MCP as a local client yet; OpenClaw/Hermans need a remote bridge", "ai_chat.inspection.setup.warning.loading_models": "The model list is still loading, so model selection is not complete yet", "ai_chat.inspection.setup.warning.no_guidance": "No custom prompts or Skills are configured", "ai_chat.inspection.setup.warning.no_mcp_servers": "No MCP servers are configured yet", "ai_chat.inspection.setup.warning.no_mcp_tools": "MCP servers are enabled, but no available MCP tools have been discovered yet", "ai_chat.inspection.setup.warning.no_schema_context": "Chat is ready, but no table schema context is attached yet", "ai_chat.inspection.snapshot.error.default": "Failed to read local inspection snapshot: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_active_tab": "Failed to read current active tab: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_ai_context": "Failed to read current AI context: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_ai_context_budget": "Failed to read AI context budget diagnostics: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_ai_last_render_error": "Failed to read the latest AI render error: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_ai_message_flow": "Failed to read AI message flow diagnostics: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_ai_sessions": "Failed to read local AI session list: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_app_health": "Failed to read AI app health overview: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_codebase_hotspots": "Failed to read code hotspot diagnostics: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_connection_capabilities": "Failed to read current connection capability matrix: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_current_connection": "Failed to read current connection: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_external_sql_directories": "Failed to read external SQL directories: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_external_sql_file": "Failed to read external SQL file: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_mcp_runtime_failures": "Failed to read MCP runtime failure diagnostics: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_recent_sql_activity": "Failed to summarize recent SQL activity: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_recent_sql_logs": "Failed to fetch recent SQL logs: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_redis_topology": "Failed to read Redis topology configuration: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_saved_connections": "Failed to read saved connection list: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_saved_queries": "Failed to read saved queries: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_shortcuts": "Failed to read shortcut configuration: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_sql_editor_transaction": "Failed to read SQL editor transaction state: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_sql_snippets": "Failed to read SQL snippets: {{detail}}", "ai_chat.inspection.snapshot.error.inspect_workspace_tabs": "Failed to read current workspace tabs: {{detail}}", "ai_chat.inspection.sql_editor_transaction.commit_policy.semantics": "SQL editor runs INSERT/UPDATE/DELETE/MERGE/REPLACE DML inside a managed transaction. Manual or auto mode only controls when COMMIT happens after successful execution, not whether a transaction is opened.", "ai_chat.inspection.sql_editor_transaction.next_action.explain_auto_commit": "Explain that the current DML opens a managed transaction first and auto-commits about {{seconds}} seconds after successful execution.", "ai_chat.inspection.sql_editor_transaction.next_action.explain_manual_commit": "Explain that the current DML opens a managed transaction first and requires a manual Commit or Rollback after successful execution.", "ai_chat.inspection.sql_editor_transaction.next_action.inspect_recent_activity": "Review recent write or transaction execution results in recentRelevantLogs, and call inspect_recent_sql_activity for deeper inspection if needed.", "ai_chat.inspection.sql_editor_transaction.next_action.resolve_active_pending": "Ask the user to click \"Commit\" or \"Rollback\" in the result transaction bar, or wait for the auto-commit countdown to finish.", "ai_chat.inspection.sql_editor_transaction.next_action.switch_to_pending_tab": "Before continuing with DML, switch back to the matching SQL tab and resolve the pending transaction.", "ai_chat.inspection.sql_editor_transaction.next_action.switch_to_sql_tab": "Switch to a query tab with a SQL draft first, or ask the user to paste the SQL they want to run.", "ai_chat.inspection.sql_editor_transaction.no_active_tab": "No active tab is currently selected", "ai_chat.inspection.sql_editor_transaction.not_sql_tab": "The current active tab is not a SQL editor tab", "ai_chat.inspection.sql_editor_transaction.semantics.explicit_transaction": "Explicit transaction control statements were detected, so GoNavi will not wrap another SQL editor managed transaction around them.", "ai_chat.inspection.sql_editor_transaction.semantics.managed_dml": "When the SQL editor runs INSERT/UPDATE/DELETE/MERGE/REPLACE DML, it first enters a managed transaction. The commit setting only decides when COMMIT happens after successful execution.", "ai_chat.inspection.sql_editor_transaction.semantics.no_managed_transaction": "The current SQL does not trigger a SQL editor managed transaction. Read-only queries still use the normal query path.", "ai_chat.inspection.sql_editor_transaction.warning.active_pending_transaction": "The active SQL tab already has a pending transaction. Commit or roll it back before running another DML statement.", "ai_chat.inspection.sql_editor_transaction.warning.auto_commit_managed_dml": "Auto commit is enabled, but DML still enters a managed transaction and only runs COMMIT after the delay expires.", "ai_chat.inspection.sql_editor_transaction.warning.explicit_transaction_control": "The current SQL already contains explicit transaction control, so the SQL editor will not take over commit or rollback.", "ai_chat.inspection.sql_editor_transaction.warning.pending_transactions": "There are {{count}} SQL editor managed transactions pending commit or rollback", "ai_chat.inspection.sql_log.unspecified_database": "(Unspecified database)", "ai_chat.inspection.sql_risk.error.inspect_failed": "Failed to inspect SQL risk: {{detail}}", "ai_chat.inspection.sql_risk.message.no_active_query_sql": "The current active tab is not a SQL query tab, or the editor has no SQL content.", "ai_chat.inspection.sql_risk.message.no_sql": "No SQL was provided, and there is no readable active SQL query tab.", "ai_chat.inspection.sql_risk.next_action.confirm_write_scope": "For write or DDL statements, confirm WHERE clauses, backups, target database, and impact scope first.", "ai_chat.inspection.sql_risk.next_action.explain_and_confirm": "Explain the risk points to the user first, then ask the user to confirm whether to continue.", "ai_chat.inspection.sql_risk.next_action.provide_sql": "Pass the sql argument first, or switch to a query tab that contains a SQL draft.", "ai_chat.inspection.sql_risk.next_action.read_only_check_target": "Read-only queries are lower risk, but still confirm the target connection and database name first.", "ai_chat.inspection.sql_risk.warning.data_change": "This statement modifies data. Confirm the target database, conditions, and impact scope before execution.", "ai_chat.inspection.sql_risk.warning.ddl_change": "This statement modifies database structures or objects. Back up first and confirm the rollback plan.", "ai_chat.inspection.sql_risk.warning.delete_missing_where": "DELETE is missing a WHERE clause and may delete the entire table.", "ai_chat.inspection.sql_risk.warning.drop_object": "DROP deletes database objects. Confirm the object and backup before execution.", "ai_chat.inspection.sql_risk.warning.multi_statement": "{{count}} SQL statements were detected. Confirm the impact scope of each statement before batch execution.", "ai_chat.inspection.sql_risk.warning.permission_change": "GRANT / REVOKE changes permission boundaries. Confirm the grantee and scope.", "ai_chat.inspection.sql_risk.warning.routine_side_effect": "This statement calls a routine or procedure and may have implicit writes or side effects.", "ai_chat.inspection.sql_risk.warning.safety_blocked": "The current AI safety policy does not allow {{operationType}} SQL.", "ai_chat.inspection.sql_risk.warning.safety_blocked_unknown": "The current AI safety policy does not allow this SQL operation type.", "ai_chat.inspection.sql_risk.warning.truncate": "TRUNCATE quickly clears table data and usually cannot be rolled back row by row.", "ai_chat.inspection.sql_risk.warning.unrecognized_operation": "No valid SQL operation keyword was recognized.", "ai_chat.inspection.sql_risk.warning.update_missing_where": "UPDATE is missing a WHERE clause and may update the entire table.", "ai_chat.inspection.support_bundle.message.ready": "Generated a GoNavi AI support bundle snapshot for diagnosing AI, MCP, logs, connections, and context size issues", "ai_chat.inspection.support_bundle.privacy.note": "By default, only summaries and structured counts are returned; log lines or message previews are included only when includeLogLines/includeMessageContent is explicitly enabled.", "ai_chat.inspection.table_schema.error.ddl_and_columns_failed": "Failed to fetch table DDL: {{ddlDetail}}; fallback column metadata also failed: {{columnDetail}}", "ai_chat.inspection.table_schema.error.ddl_failed": "Failed to fetch table DDL: {{detail}}", "ai_chat.inspection.table_schema.error.unknown": "Unknown error", "ai_chat.inspection.table_schema.value.none": "none", "ai_chat.inspection.table_schema.warning.available_fields": "Available fields: {{fields}}", "ai_chat.inspection.table_schema.warning.columns_contract": "⚠️ The following is the real field list for table {{tableName}}. When generating SQL, use only these field values as column names exactly as shown; do not modify, abbreviate, or invent column names.", "ai_chat.inspection.table_schema.warning.ddl_error": "DDL error: {{detail}}", "ai_chat.inspection.table_schema.warning.ddl_fallback": "Failed to fetch DDL for table {{tableName}}; fell back to a column metadata summary.", "ai_chat.inspection.table_schema.warning.detail": "Details: {{detail}}", "ai_chat.inspection.table_schema.warning.fallback_limitation": "This result does not include complete index, constraint, trigger, or other DDL information; continue analysis from the column list and do not stop solely because DDL permissions failed.", "ai_chat.inspection.tool_catalog.message.by_keyword": "Returned tool catalog suggestions for keyword {{keyword}}", "ai_chat.inspection.tool_catalog.message.by_tool_name": "Returned catalog information for tool {{toolName}}", "ai_chat.inspection.tool_catalog.message.summary": "Returned the GoNavi AI tool catalog summary", "ai_chat.inspection.tool_catalog.next_action.broaden_keyword": "Use broader keywords, or call inspect_ai_runtime first to view the complete current tool list", "ai_chat.inspection.tool_catalog.next_action.filter_by_keyword": "Filter by user-question keywords first, such as mcp, connection failure, transaction, shortcut, schema, or logs", "ai_chat.inspection.tool_catalog.next_action.inspect_mcp_setup": "Call inspect_mcp_setup to inspect MCP services and external client access status", "ai_chat.inspection.tool_catalog.next_action.use_parameter_descriptions": "Before calling tools with parameters, build arguments from parameters.description first; confirm with the user when context is missing", "ai_chat.inspection.tool_catalog.warning.no_matches": "No matching tools or recommended flows were found", "ai_chat.inspection.tool_catalog.warning.no_mcp_tools": "No external MCP tools were discovered; if the user needs external capabilities, check MCP service configuration and tool discovery status first", "ai_chat.inspection.tool_info.inspect_active_tab.desc": "Inspect the current active tab context", "ai_chat.inspection.tool_info.inspect_active_tab.detail": "Returns the current active tab type, connection, database, table name, and draft content in the current SQL or command tab, truncated when long. Use it when users mention the current SQL, ask to optimize the editor statement, or refer to the current tab.", "ai_chat.inspection.tool_info.inspect_active_tab.param.includeContent": "Optional. Whether to include SQL or command draft content from the tab. Default true.", "ai_chat.inspection.tool_info.inspect_active_tab.params": "includeContent?(default true)", "ai_chat.inspection.tool_info.inspect_active_tab.tool_description": "Get the current active tab context snapshot, including tab type, connection, database, table name, and draft content from the current SQL or command tab.", "ai_chat.inspection.tool_info.inspect_ai_chat_readiness.desc": "Inspect whether current AI chat can send", "ai_chat.inspection.tool_info.inspect_ai_chat_readiness.detail": "Returns whether the current chat input has all prerequisites to send, including active provider, missing key or endpoint on the current provider, selected model, current connection context, attached table context, and next actions. Use it when users ask why sending is disabled or what the chat input is missing.", "ai_chat.inspection.tool_info.inspect_ai_chat_readiness.params": "No parameters", "ai_chat.inspection.tool_info.inspect_ai_chat_readiness.tool_description": "Read the send-prerequisite state of the current AI chat input, including active provider, key and endpoint completeness, selected model, current connection context, attached table schema count, and suggested next actions.", "ai_chat.inspection.tool_info.inspect_ai_context_budget.desc": "Diagnose AI context size and stability risk", "ai_chat.inspection.tool_info.inspect_ai_context_budget.detail": "Estimates recent messages, tool results, attached table DDL, MCP tool schemas, user prompts, and Skills in the current or specified AI session, then returns low/medium/high/critical risk, main expansion sources, and narrowing suggestions. Use it when AI slows down, answers erratically, context is too large, tool results are long, or too many table schemas are attached.", "ai_chat.inspection.tool_info.inspect_ai_context_budget.param.includeDetails": "Optional. Whether to return largest message, largest DDL table, and largest MCP schema details. Default true.", "ai_chat.inspection.tool_info.inspect_ai_context_budget.param.messageLimit": "Optional. Maximum number of recent messages to count. Default 40, maximum 120.", "ai_chat.inspection.tool_info.inspect_ai_context_budget.param.sessionId": "Optional. AI session ID to diagnose. If omitted, the current active session is used.", "ai_chat.inspection.tool_info.inspect_ai_context_budget.params": "sessionId?(default current session), messageLimit?(default 40), includeDetails?(default true)", "ai_chat.inspection.tool_info.inspect_ai_context_budget.tool_description": "Read an AI context-size and stability-risk snapshot, including recent message window, tool result length, attached table DDL, MCP tool schemas, user prompts, and enabled Skills, then return risk level, warnings, and narrowing suggestions.", "ai_chat.inspection.tool_info.inspect_ai_context.desc": "Inspect currently attached AI table-schema context", "ai_chat.inspection.tool_info.inspect_ai_context.detail": "Returns the tables currently attached to the AI conversation context, their connection and database, and optional DDL previews. Use it when users ask which table structures are attached or what the current AI context contains.", "ai_chat.inspection.tool_info.inspect_ai_context.param.ddlLimit": "Optional. DDL truncation length. Default 4000, maximum 12000.", "ai_chat.inspection.tool_info.inspect_ai_context.param.includeDDL": "Optional. Whether to include each table's DDL content. Default false.", "ai_chat.inspection.tool_info.inspect_ai_context.params": "includeDDL?(default false), ddlLimit?(default 4000)", "ai_chat.inspection.tool_info.inspect_ai_context.tool_description": "Read the table-schema snapshot currently attached to the AI conversation context, including connection, database, table name, and optional DDL content.", "ai_chat.inspection.tool_info.inspect_ai_guidance.desc": "Inspect current AI prompts and Skills configuration", "ai_chat.inspection.tool_info.inspect_ai_guidance.detail": "Returns current user-defined global, database, and JVM prompts, plus enabled Skills, scopes, dependency tools, and skill prompt content. Use it when users ask which prompts are currently attached, why AI answers this way, or which Skills are active.", "ai_chat.inspection.tool_info.inspect_ai_guidance.params": "No parameters", "ai_chat.inspection.tool_info.inspect_ai_guidance.tool_description": "Read the current AI prompt and skill configuration snapshot, including user-defined prompts, enabled Skills, scopes, dependency tools, and each system prompt.", "ai_chat.inspection.tool_info.inspect_ai_last_render_error.desc": "Inspect the latest AI message render error", "ai_chat.inspection.tool_info.inspect_ai_last_render_error.detail": "Returns the latest isolated AI message render error, including message identity, content preview, error summary, and component stack summary. Use it when users report that one AI reply is blank, a message bubble failed to render, or a message block errored without crashing the whole panel.", "ai_chat.inspection.tool_info.inspect_ai_last_render_error.params": "No parameters", "ai_chat.inspection.tool_info.inspect_ai_last_render_error.tool_description": "Read the latest local AI message render error snapshot, including message ID, role, content preview, error summary, component stack summary, and next diagnostic suggestions.", "ai_chat.inspection.tool_info.inspect_ai_message_flow.desc": "Diagnose the current AI conversation message flow", "ai_chat.inspection.tool_info.inspect_ai_message_flow.detail": "Reads recent messages from the current or specified AI session, counts user/assistant/tool messages, checks whether tool calls have results, and detects consecutive assistant bubbles, empty assistant placeholders, or uncleared loading state. Use it when users report split replies, missing follow-up after tool calls, or abnormal message flow.", "ai_chat.inspection.tool_info.inspect_ai_message_flow.param.includeContent": "Optional. Whether to include message content previews. Default true.", "ai_chat.inspection.tool_info.inspect_ai_message_flow.param.limit": "Optional. Maximum number of recent messages to return. Default 24, maximum 80.", "ai_chat.inspection.tool_info.inspect_ai_message_flow.param.previewLimit": "Optional. Character limit for each message preview. Default 180, maximum 1000.", "ai_chat.inspection.tool_info.inspect_ai_message_flow.param.sessionId": "Optional. AI session ID to diagnose. If omitted, the current active session is used.", "ai_chat.inspection.tool_info.inspect_ai_message_flow.params": "sessionId?(default current session), limit?(default 24), includeContent?(default true), previewLimit?(default 180)", "ai_chat.inspection.tool_info.inspect_ai_message_flow.tool_description": "Read recent message-flow diagnostics for the current or specified AI session, including role sequence, assistant/tool counts, tool-call to tool-result matching, consecutive assistant messages, empty assistant messages, and loading leftovers.", "ai_chat.inspection.tool_info.inspect_ai_providers.desc": "Inspect current AI providers and model configuration", "ai_chat.inspection.tool_info.inspect_ai_providers.detail": "Returns configured AI providers, the active provider, baseUrl values, selected models, declared model lists, whether keys exist, custom request header keys, and missing key, model, or endpoint checks. Use it when users ask why there are no models, whether an API Key is configured, or which providers are currently configured.", "ai_chat.inspection.tool_info.inspect_ai_providers.params": "No parameters", "ai_chat.inspection.tool_info.inspect_ai_providers.tool_description": "Read the current AI provider configuration snapshot, including provider list, active provider, endpoint, selected model, declared model list, key presence, custom request header keys, and missing key, model, or endpoint checks.", "ai_chat.inspection.tool_info.inspect_ai_runtime.desc": "Inspect current AI runtime status", "ai_chat.inspection.tool_info.inspect_ai_runtime.detail": "Returns the active model provider, model name, safety level, context level, enabled Skills, and currently exposed built-in and MCP tools. Use it before answering questions about available tools, the active model, or why write operations are unavailable.", "ai_chat.inspection.tool_info.inspect_ai_runtime.params": "No parameters", "ai_chat.inspection.tool_info.inspect_ai_runtime.tool_description": "Read the current AI runtime snapshot, including provider, model, safety level, context level, enabled Skills, available built-in tools, and MCP tools. Use it before answering AI capability-boundary questions.", "ai_chat.inspection.tool_info.inspect_ai_safety.desc": "Inspect current AI write safety boundaries", "ai_chat.inspection.tool_info.inspect_ai_safety.detail": "Returns the SQL scope allowed by the current AI safety level, whether non-read-only statements still require confirmation or allowMutating, and whether the active connection, tab, or JVM diagnostic permission adds read-only restrictions. Use it when users ask why writes are blocked, whether DDL can run, or whether allowMutating is required.", "ai_chat.inspection.tool_info.inspect_ai_safety.params": "No parameters", "ai_chat.inspection.tool_info.inspect_ai_safety.tool_description": "Read the current AI safety-boundary snapshot, including SQL scope allowed by the active safety level, confirmation requirements for non-query statements, MCP execute_sql allowMutating requirements, and any additional read-only restrictions from the active connection, result tab, or JVM diagnostic permissions.", "ai_chat.inspection.tool_info.inspect_ai_sessions.desc": "Inspect local AI conversation history", "ai_chat.inspection.tool_info.inspect_ai_sessions.detail": "Filters local AI sessions by keyword and returns session title, update time, message count, whether it is current, first user question, and latest message preview. Use it when users want to find a previous AI conversation or recent session that discussed a topic.", "ai_chat.inspection.tool_info.inspect_ai_sessions.param.includePreview": "Optional. Whether to include first user question and latest message preview. Default true.", "ai_chat.inspection.tool_info.inspect_ai_sessions.param.keyword": "Optional. Filter by session title, session ID, first user question, or latest message content.", "ai_chat.inspection.tool_info.inspect_ai_sessions.param.limit": "Optional. Maximum number of sessions to return. Default 10, maximum 50.", "ai_chat.inspection.tool_info.inspect_ai_sessions.params": "keyword?, limit?, includePreview?(default true)", "ai_chat.inspection.tool_info.inspect_ai_sessions.tool_description": "Read local AI conversation history, optionally filtered by keyword, and return session title, update time, message count, current-session flag, first user question, and latest message preview.", "ai_chat.inspection.tool_info.inspect_ai_setup_health.desc": "Run a one-shot health check for the current AI setup", "ai_chat.inspection.tool_info.inspect_ai_setup_health.detail": "Summarizes the current AI provider, chat send prerequisites, MCP services and external client access, prompts and Skills, and attached context, then returns blockers, warnings, and next actions. Use it when users ask why AI is hard to use, whether the current AI setup has problems, or what is still missing.", "ai_chat.inspection.tool_info.inspect_ai_setup_health.params": "No parameters", "ai_chat.inspection.tool_info.inspect_ai_setup_health.tool_description": "Inspect current AI setup health, returning provider, model, chat send prerequisites, MCP access, prompts and Skills, attached table context, blockers, suggestions, and next actions.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.desc": "Export an AI troubleshooting support bundle", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.detail": "Aggregates AI application health, provider and MCP status, application log summary, connection failure summary, message flow structure, context size, remote MCP access, and tool catalog index. Use it when users report AI instability, need MCP, connection, and logs reviewed together, or need development troubleshooting material without secrets or database passwords.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.connectionKeyword": "Optional. Keyword used to analyze connection failure logs. If omitted, keyword is reused.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.exposeStrategy": "Optional. Remote exposure strategy used to generate matching safety reminders.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.includeDetails": "Optional. Whether to include context-size details. Default false.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.includeLogLines": "Optional. Whether to include original log lines. Default false; enable only when lines need to be quoted.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.includeMessageContent": "Optional. Whether to include message content previews. Default false; enable only when troubleshooting bubble content.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.keyword": "Optional. Filter logs and tool catalog entries by keyword, such as ai, mcp, mysql, error, or openclaw.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.lineLimit": "Optional. Maximum number of application log lines to analyze. Default 120, maximum 240.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.localAddr": "Optional. Windows local HTTP MCP listen address. Default 127.0.0.1:8765.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.path": "Optional. Streamable HTTP MCP path. Default /mcp.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.publicUrl": "Optional. Public or tunnel URL used by a cloud Agent to access GoNavi MCP for the remote MCP support bundle.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.sessionId": "Optional. AI session ID to diagnose. If omitted, the current active session is used.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.param.tokenConfigured": "Optional. Whether a random Bearer Token is already prepared. Passing false returns an authentication warning.", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.params": "keyword?, sessionId?, lineLimit?(default 120), includeLogLines?(default false), includeMessageContent?(default false), publicUrl?, tokenConfigured?", "ai_chat.inspection.tool_info.inspect_ai_support_bundle.tool_description": "Generate a GoNavi AI troubleshooting support bundle that summarizes AI application health, provider and send prerequisites, MCP configuration and remote access, application log summary, database connection failure summary, current AI message flow, context-size risk, and tool catalog index. By default it does not include database passwords, provider keys, MCP environment variable values, original log lines, or full message content.", "ai_chat.inspection.tool_info.inspect_ai_tool_catalog.desc": "Inspect AI built-in tool catalog and argument hints", "ai_chat.inspection.tool_info.inspect_ai_tool_catalog.detail": "Returns GoNavi AI built-in tools, recommended probe flows, argument descriptions, and current MCP tool summaries by keyword or tool name. Use it when users ask which tool should be used, how to fill arguments, which built-in tools exist, or when AI needs to choose a probe route first.", "ai_chat.inspection.tool_info.inspect_ai_tool_catalog.param.includeMCPTools": "Optional. Whether to include currently discovered MCP tool summaries. Default true.", "ai_chat.inspection.tool_info.inspect_ai_tool_catalog.param.keyword": "Optional. Filter tools and flows by problem keyword, such as mcp, connection failure, transaction, shortcut, schema, or log.", "ai_chat.inspection.tool_info.inspect_ai_tool_catalog.param.limit": "Optional. Maximum number of flows, built-in tools, and MCP tools to return. Default 12, maximum 40.", "ai_chat.inspection.tool_info.inspect_ai_tool_catalog.param.toolName": "Optional. Query by exact built-in tool name, such as inspect_mcp_draft or inspect_sql_risk.", "ai_chat.inspection.tool_info.inspect_ai_tool_catalog.params": "keyword?, toolName?, includeMCPTools?(default true), limit?(default 12)", "ai_chat.inspection.tool_info.inspect_ai_tool_catalog.tool_description": "Read the GoNavi AI tool catalog snapshot, filterable by keyword or tool name, and return recommended tool-call flows, built-in tool descriptions, argument hints, and currently discovered MCP tool summaries.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.desc": "Inspect AI upstream request payloads and status", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.detail": "Reads recent AI upstream request start, completion, and failure records from gonavi.log, filtered by provider, requestId, or keyword, then returns request body preview, payload structure summary, endpoint, status code, latency, and error summary. Use it when users need to verify the real payload sent upstream, diagnose request parameter compatibility, confirm whether tools were sent, or inspect redacted request logs.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.bodyPreviewLimit": "Optional. Maximum characters for one body preview. Default 6000, maximum 12000.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.includeBody": "Optional. Whether to return the redacted request body preview. Default true; set false when only status is needed.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.includeLines": "Optional. Whether to include redacted raw log lines. Default false; enable only when original lines need to be quoted.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.includePayloadSummary": "Optional. Whether to parse the request body and return model, message role distribution, tool count/name list, stream, and tool_choice summary. Default true; message bodies and keys are not returned.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.keyword": "Optional. Further filter by requestId, provider, endpoint, bodyPreview, or error, such as model name, API path, or parameter name.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.lineLimit": "Optional. Maximum number of tail log lines to read. Default 160, maximum 300.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.provider": "Optional. Inspect only one provider, such as openai, anthropic, or gemini. Case-insensitive.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.requestId": "Optional. Filter by the exact requestId in logs, useful when continuing from an error log.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.param.requestLimit": "Optional. Maximum number of request summaries to return. Default 12, maximum 40.", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.params": "provider?, requestId?, keyword?, lineLimit?(default 160), requestLimit?(default 12), includeBody?(default true), includePayloadSummary?(default true), includeLines?(default false)", "ai_chat.inspection.tool_info.inspect_ai_upstream_logs.tool_description": "Read AI upstream request records from GoNavi application logs and return requestId, provider, method, endpoint, request body preview, redacted payload structure summary, status code, latency, and error summary. Use it when users mention upstream request payloads, requestId, provider parameters, missing tool calls, model API errors, or need to verify the real payload just sent upstream.", "ai_chat.inspection.tool_info.inspect_app_health.desc": "Inspect the overall AI application health", "ai_chat.inspection.tool_info.inspect_app_health.detail": "Summarizes AI configuration, provider send prerequisites, MCP access, application log ERROR/WARN signals, recent connection failures and cooldowns, AI reply bubble render errors, and current workspace tabs. Use it first when users report AI instability, ask for an overall check, or need connection and MCP issues diagnosed together.", "ai_chat.inspection.tool_info.inspect_app_health.param.connectionKeyword": "Optional. Keyword used when analyzing connection failure logs by type, address, or error. If omitted, keyword is reused.", "ai_chat.inspection.tool_info.inspect_app_health.param.includeLogLines": "Optional. Whether to include original log lines in the result. Default false; enable only when lines need to be quoted.", "ai_chat.inspection.tool_info.inspect_app_health.param.keyword": "Optional. Filter application logs by keyword, such as ai, mcp, mysql, or error. If omitted, the recent log window is read.", "ai_chat.inspection.tool_info.inspect_app_health.param.lineLimit": "Optional. Maximum number of log lines to analyze per probe. Default 120, maximum 240.", "ai_chat.inspection.tool_info.inspect_app_health.params": "keyword?, connectionKeyword?, lineLimit?(default 120), includeLogLines?(default false)", "ai_chat.inspection.tool_info.inspect_app_health.tool_description": "Read the GoNavi AI application health overview, including AI provider and send prerequisites, MCP access, application log ERROR/WARN signals, recent connection failures and cooldowns, AI reply bubble render errors, and current workspace tabs, then return blockers, runtime anomaly signals, and suggested next probes.", "ai_chat.inspection.tool_info.inspect_app_logs.desc": "Inspect GoNavi application log tail", "ai_chat.inspection.tool_info.inspect_app_logs.detail": "Filters recent GoNavi application log INFO/WARN/ERROR lines by optional keyword and returns level distribution, log file path, and truncation status. Use it first when users mention gonavi.log, startup errors, MCP startup failures, or database connection failures.", "ai_chat.inspection.tool_info.inspect_app_logs.param.keyword": "Optional. Filter log content by keyword, such as mcp, mysql, timeout, or error.", "ai_chat.inspection.tool_info.inspect_app_logs.param.lineLimit": "Optional. Maximum number of log lines to return. Default 80, maximum 200.", "ai_chat.inspection.tool_info.inspect_app_logs.params": "keyword?, lineLimit?(default 80)", "ai_chat.inspection.tool_info.inspect_app_logs.tool_description": "Read the GoNavi application log tail, optionally filtered by keyword, and return recent log lines, level distribution, log path, and truncation status. Use it when users mention gonavi.log, application startup errors, MCP startup failures, database connection errors, or ask to inspect recent logs.", "ai_chat.inspection.tool_info.inspect_codebase_hotspots.desc": "Inspect large frontend files and split hotspots", "ai_chat.inspection.tool_info.inspect_codebase_hotspots.detail": "Returns large frontend file hotspots in GoNavi, including line counts, risk level, split maturity, safety boundaries, suggested split slices, and regression tests to run. Use it when users ask to continue large-file governance, choose the next component to split, or assess modification risk before changing UI, AI, or MCP code.", "ai_chat.inspection.tool_info.inspect_codebase_hotspots.param.includeRecommendations": "Optional. Whether to include suggestedSlices, testTargets, and nextActions. Default true.", "ai_chat.inspection.tool_info.inspect_codebase_hotspots.param.keyword": "Optional. Filter by path, module, risk, split slice, or test target, such as Sidebar, DataGrid, Redis, transaction, or connection.", "ai_chat.inspection.tool_info.inspect_codebase_hotspots.param.limit": "Optional. Maximum number of hotspots to return. Default 8, maximum 30.", "ai_chat.inspection.tool_info.inspect_codebase_hotspots.param.minLines": "Optional. Only return hotspot files with at least this many lines. Default 1000, maximum 20000.", "ai_chat.inspection.tool_info.inspect_codebase_hotspots.params": "keyword?, minLines?(default 1000), limit?(default 8), includeRecommendations?(default true)", "ai_chat.inspection.tool_info.inspect_codebase_hotspots.tool_description": "Read the GoNavi frontend large-file and split-hotspot snapshot, returning file path, line count, risk level, split maturity, preferred slice, safe split boundary, suggested slices, test targets, and verification plan.", "ai_chat.inspection.tool_info.inspect_connection_capabilities.desc": "Inspect frontend capabilities supported by the current connection", "ai_chat.inspection.tool_info.inspect_connection_capabilities.detail": "Returns the data-source capability matrix for the current or specified connection, including query editor support, SQL export, copy INSERT, create/rename/delete database support, forced read-only result state, and whether manual or approximate counts are preferred. Use it when users ask why database creation, deletion, result editing, or other actions are unavailable.", "ai_chat.inspection.tool_info.inspect_connection_capabilities.param.connectionId": "Optional. Connection ID to inspect. If omitted, the current active connection is used.", "ai_chat.inspection.tool_info.inspect_connection_capabilities.params": "connectionId?(default current active connection)", "ai_chat.inspection.tool_info.inspect_connection_capabilities.tool_description": "Read the frontend capability matrix for the current active connection or specified saved connection, including query editor support, SQL export, copy INSERT, create/rename/delete database support, forced read-only result state, and count strategy preferences.", "ai_chat.inspection.tool_info.inspect_current_connection.desc": "Inspect the current active connection or data source summary", "ai_chat.inspection.tool_info.inspect_current_connection.detail": "Returns current active connection type, address, port, current database, SSH/proxy/HTTP tunnel state, and table information bound to the active tab. Use it when users ask which database is connected, whether SSH is used, or what type the current data source is.", "ai_chat.inspection.tool_info.inspect_current_connection.params": "No parameters", "ai_chat.inspection.tool_info.inspect_current_connection.tool_description": "Read the real summary of the current active connection or active-tab data source, including connection type, address, port, current database, SSH/proxy/HTTP tunnel state, and table context bound to the active tab.", "ai_chat.inspection.tool_info.inspect_external_sql_directories.desc": "Inspect local external SQL directory assets", "ai_chat.inspection.tool_info.inspect_external_sql_directories.detail": "Filters local external SQL directories by keyword, connection, or database, and returns directory path, bound connection/database, and whether SQL files from those directories are currently open. Use it when users mention external SQL directories, ask which directory contains a script, or need to identify the external directory for an open SQL file.", "ai_chat.inspection.tool_info.inspect_external_sql_directories.param.connectionId": "Optional. Only inspect external SQL directories bound to one connection.", "ai_chat.inspection.tool_info.inspect_external_sql_directories.param.dbName": "Optional. Only inspect external SQL directories bound to one database.", "ai_chat.inspection.tool_info.inspect_external_sql_directories.param.keyword": "Optional. Filter by directory name, path, connection name, or database name.", "ai_chat.inspection.tool_info.inspect_external_sql_directories.param.limit": "Optional. Maximum number of directories to return. Default 20, maximum 100.", "ai_chat.inspection.tool_info.inspect_external_sql_directories.params": "keyword?, connectionId?, dbName?, limit?", "ai_chat.inspection.tool_info.inspect_external_sql_directories.tool_description": "Read locally configured external SQL directories, optionally filtered by keyword, connection, and database, and return directory path, bound connection/database, and summaries of currently open external SQL file tabs.", "ai_chat.inspection.tool_info.inspect_external_sql_file.desc": "Read external SQL file content", "ai_chat.inspection.tool_info.inspect_external_sql_file.detail": "Reads a specific SQL file inside a configured external SQL directory and returns its directory, bound connection/database, whether it already has an open tab, and a truncated content preview. Use it when users ask to inspect a script in a directory or explain what report.sql does.", "ai_chat.inspection.tool_info.inspect_external_sql_file.param.filePath": "Required. Absolute path of the SQL file to read, usually found with inspect_external_sql_directories first.", "ai_chat.inspection.tool_info.inspect_external_sql_file.param.previewCharLimit": "Optional. Maximum characters returned in the content preview. Default 12000, maximum 40000.", "ai_chat.inspection.tool_info.inspect_external_sql_file.params": "filePath, previewCharLimit?", "ai_chat.inspection.tool_info.inspect_external_sql_file.tool_description": "Read the content preview of a specified external SQL file, only for SQL files inside configured external SQL directories. Return file path, owning directory, bound connection/database, whether it is already open in the workspace, and truncated body content.", "ai_chat.inspection.tool_info.inspect_mcp_authoring_guide.desc": "Inspect the add-MCP authoring guide", "ai_chat.inspection.tool_info.inspect_mcp_authoring_guide.detail": "Returns add-MCP field purpose, recommended fill order, full-command auto-splitting rules, and npx / Node / uvx / Python / Docker / EXE templates. Use it before answering about command, args, env, templates, or pasting a full startup command.", "ai_chat.inspection.tool_info.inspect_mcp_authoring_guide.params": "No parameters", "ai_chat.inspection.tool_info.inspect_mcp_authoring_guide.tool_description": "Read GoNavi built-in MCP authoring guidance, including recommended field order, field purpose, common command examples, full-command auto-splitting rules, and npx / Node / uvx / Python / Docker / EXE template examples.", "ai_chat.inspection.tool_info.inspect_mcp_docker_setup.desc": "Inspect Docker MCP startup configuration", "ai_chat.inspection.tool_info.inspect_mcp_docker_setup.detail": "Reads saved Docker MCP services, checks whether command and args split into docker, run, --rm, -i, image name, and container arguments correctly, then returns missing arguments, tool count, timeout advice, and next repair actions.", "ai_chat.inspection.tool_info.inspect_mcp_docker_setup.param.includeDisabled": "Optional. Whether to include disabled Docker MCP services. Default true.", "ai_chat.inspection.tool_info.inspect_mcp_docker_setup.param.serverId": "Optional. Inspect only one MCP serverId. If omitted, all Docker MCP services are inspected.", "ai_chat.inspection.tool_info.inspect_mcp_docker_setup.params": "serverId?, includeDisabled?(default true)", "ai_chat.inspection.tool_info.inspect_mcp_docker_setup.tool_description": "Inspect startup arguments for saved Docker MCP services and return docker run/-i/image/--rm/env/timeout status, discovered tool counts, configuration warnings, and nextActions.", "ai_chat.inspection.tool_info.inspect_mcp_draft.desc": "Validate an add-MCP draft", "ai_chat.inspection.tool_info.inspect_mcp_draft.detail": "Simulates GoNavi add-MCP configuration from a full startup command or per-field draft, returning auto-split results, startup preview, applicable draft, argument and environment hints, validation issues, recommended templates, and next repair suggestions. Sensitive arguments are redacted.", "ai_chat.inspection.tool_info.inspect_mcp_draft.param.args": "Optional. Command arguments in a per-field draft. Arrays are more accurate, but comma-separated or newline-separated strings are also accepted.", "ai_chat.inspection.tool_info.inspect_mcp_draft.param.command": "Optional. Startup command in a per-field draft. It should be only npx, node, uvx, python, or an exe path.", "ai_chat.inspection.tool_info.inspect_mcp_draft.param.envText": "Optional. Environment variable draft, one KEY=VALUE per line. Do not pass export, set, or $env: prefixes.", "ai_chat.inspection.tool_info.inspect_mcp_draft.param.fullCommand": "Optional. A full MCP startup command from README or the user, such as $env:GITHUB_TOKEN=...; uvx mcp-server-github --stdio.", "ai_chat.inspection.tool_info.inspect_mcp_draft.param.name": "Optional. MCP service name, such as GitHub, Filesystem, or Browser.", "ai_chat.inspection.tool_info.inspect_mcp_draft.param.templateKey": "Optional. Apply a built-in template first, then override it with user-supplied fields.", "ai_chat.inspection.tool_info.inspect_mcp_draft.param.timeoutSeconds": "Optional. Timeout seconds for one tool discovery or call. Recommended 20; slow-start services can use 45 or 60.", "ai_chat.inspection.tool_info.inspect_mcp_draft.params": "fullCommand?, command?, args?, envText?, timeoutSeconds?, templateKey?, name?", "ai_chat.inspection.tool_info.inspect_mcp_draft.tool_description": "Validate a pending MCP service draft. Supports fullCommand/rawCommand/commandLine automatic splitting, or per-field validation for command, args, envText, timeoutSeconds, and templateKey. Returns parsed fields, redacted startup preview, suggestedServerSeed, argument hints, environment risk hints, errors, warnings, recommended templates, and nextActions without echoing api-key/token/password values.", "ai_chat.inspection.tool_info.inspect_mcp_remote_access.desc": "Inspect OpenClaw/Hermans remote MCP access", "ai_chat.inspection.tool_info.inspect_mcp_remote_access.detail": "Returns GoNavi Streamable HTTP MCP startup commands, remote URL, authentication guidance, OpenClaw/Hermans cloud Agent boundaries, bridging options, and safety reminders. Use it for cloud OpenClaw access to Windows GoNavi, keeping database passwords local, or exposing HTTP MCP.", "ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.exposeStrategy": "Optional. Planned remote exposure strategy used to return matching risk reminders.", "ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.localAddr": "Optional. Windows local HTTP MCP listen address. Default 127.0.0.1:8765. Binding directly to 0.0.0.0 is not recommended.", "ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.path": "Optional. Streamable HTTP MCP path. Default /mcp.", "ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.publicUrl": "Optional. HTTPS or private-network URL reachable by the remote Agent. If /mcp is missing, the tool appends the configured path.", "ai_chat.inspection.tool_info.inspect_mcp_remote_access.param.tokenConfigured": "Optional. Whether a random Bearer Token is already configured. Passing false returns an authentication warning.", "ai_chat.inspection.tool_info.inspect_mcp_remote_access.params": "publicUrl?, localAddr?, path?, exposeStrategy?, tokenConfigured?", "ai_chat.inspection.tool_info.inspect_mcp_remote_access.tool_description": "Read the GoNavi MCP remote Agent access snapshot, including Streamable HTTP startup commands, /mcp URL, Bearer Token requirements, OpenClaw/Hermans cloud access steps, Windows-host password boundary, and exposure risks for tunnel, reverse proxy, Tailscale, and similar strategies.", "ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.desc": "Diagnose MCP startup and tool-call failures", "ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.detail": "Reads recent MCP startup, tool discovery, tool-call, and HTTP MCP subprocess failures from gonavi.log, then combines saved services and discovered tools to return failure types, likely causes, involved services, and next repair actions.", "ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.param.includeLines": "Optional. Whether to include redacted raw MCP log lines. Default false; enable only when original lines need to be quoted.", "ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.param.keyword": "Optional. Filter MCP-related logs by keyword, such as timeout, stdio, permission, 401, or docker.", "ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.param.lineLimit": "Optional. Maximum number of tail log lines to read. Default 160, maximum 200.", "ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.param.serverName": "Optional. Inspect only one MCP service name or server= name from logs, such as GitHub, Browser, or DockerFetch.", "ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.params": "serverName?, keyword?, lineLimit?(default 160), includeLines?(default false)", "ai_chat.inspection.tool_info.inspect_mcp_runtime_failures.tool_description": "Read MCP runtime failure signals from GoNavi application logs, classify service startup, tool discovery, tool-call, and HTTP MCP subprocess exits, then combine current configuration and tool counts to return likely causes and nextActions.", "ai_chat.inspection.tool_info.inspect_mcp_setup.desc": "Inspect current MCP configuration and external access", "ai_chat.inspection.tool_info.inspect_mcp_setup.detail": "Returns local MCP services, enabled state, startup commands, Claude Code / Codex write status, OpenClaw / Hermans remote Agent boundaries, and command detection results. Use it to inspect configured MCP services, external client failures, or client config write status.", "ai_chat.inspection.tool_info.inspect_mcp_setup.params": "No parameters", "ai_chat.inspection.tool_info.inspect_mcp_setup.tool_description": "Read the local MCP configuration snapshot, including service list, enabled state, startup commands, environment variable keys, discovered tools, GoNavi MCP client write status, local CLI detection, and remote Agent access boundaries.", "ai_chat.inspection.tool_info.inspect_mcp_tool_schema.desc": "Inspect MCP tool argument schema", "ai_chat.inspection.tool_info.inspect_mcp_tool_schema.detail": "Reads inputSchema for discovered MCP tools by alias, serverId, or keyword, returning required parameters, field types, enum values, nested object paths, and pre-call hints. Use it after MCP discovery succeeds to confirm accepted arguments.", "ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.alias": "Optional. Query by exact MCP tool alias, such as github_create_issue. Prefer reading the real alias from inspect_mcp_setup first.", "ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.includeSchema": "Optional. Whether to include the full raw inputSchema. Default false; enable only for complex nested schema inspection.", "ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.keyword": "Optional. Filter by tool alias, original name, title, description, or service name.", "ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.limit": "Optional. Maximum number of matching tools to return. Default 8, maximum 30.", "ai_chat.inspection.tool_info.inspect_mcp_tool_schema.param.serverId": "Optional. Only inspect tools discovered under one MCP serverId.", "ai_chat.inspection.tool_info.inspect_mcp_tool_schema.params": "alias?, serverId?, keyword?, includeSchema?(default false), limit?(default 8)", "ai_chat.inspection.tool_info.inspect_mcp_tool_schema.tool_description": "Read parameter schema summaries for discovered MCP tools, filterable by alias, serverId, or keyword, and return required fields, types, enum values, nested parameter paths, and pre-call hints. Use it before writing arguments JSON for external MCP tool calls or after parameter errors.", "ai_chat.inspection.tool_info.inspect_recent_connection_failures.desc": "Summarize recent database connection failures and cooldowns", "ai_chat.inspection.tool_info.inspect_recent_connection_failures.detail": "Extracts database connection failures, validation failures, SSH tunnel errors, and connection cooldown hits from recent gonavi.log lines, then classifies main issue type, latest address, latest root cause, and next actions. Use it before manually reading long logs when users ask why a connection fails or whether SSH tunneling is involved.", "ai_chat.inspection.tool_info.inspect_recent_connection_failures.param.keyword": "Optional. Filter by connection type, address, or failure keyword, such as mysql, ssh, timeout, or 127.0.0.1.", "ai_chat.inspection.tool_info.inspect_recent_connection_failures.param.lineLimit": "Optional. Maximum number of log lines to analyze. Default 120, maximum 240.", "ai_chat.inspection.tool_info.inspect_recent_connection_failures.params": "keyword?, lineLimit?(default 120)", "ai_chat.inspection.tool_info.inspect_recent_connection_failures.tool_description": "Summarize recent database connection failures, validation failures, SSH tunnel failures, and cooldown hits from GoNavi application logs, returning main failure category, latest address, latest root cause, and recommended actions.", "ai_chat.inspection.tool_info.inspect_recent_sql_activity.desc": "Summarize recent SQL activity distribution", "ai_chat.inspection.tool_info.inspect_recent_sql_activity.detail": "Can filter by status, activityKind, dbName, and keyword, then returns a structured summary of recent SQL activity including read/write/DDL ratio, statement type distribution, database distribution, recent errors, recent writes, and slowest statements. Use it when the user asks what ran recently, whether data may have been deleted, which database is failing most, or whether recent activity is mostly reads or writes.", "ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.activityKind": "Optional. Filter by activity type: all, read, write, ddl, transaction, session, or other. Default all.", "ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.dbName": "Optional. Only include logs whose database name contains this keyword.", "ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.keyword": "Optional. Filter by SQL text, error message, statement type, or database name.", "ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.limit": "Optional. Maximum number of recent activity samples to return. Default 30, maximum 100.", "ai_chat.inspection.tool_info.inspect_recent_sql_activity.param.status": "Optional. Filter by execution status: all, success, or error. Default all.", "ai_chat.inspection.tool_info.inspect_recent_sql_activity.tool_description": "Summarize the structured profile of recent SQL activity, optionally filtered by execution status, activity type, database name, and keyword. Use it to inspect recent read/write operations, concentrated errors in a database, DELETE or DDL activity, and let AI judge from the real execution scene first.", "ai_chat.inspection.tool_info.inspect_recent_sql_logs.desc": "View recent SQL execution logs", "ai_chat.inspection.tool_info.inspect_recent_sql_logs.detail": "Accepts optional limit and status filters, then returns recent SQL execution records including database, duration, success or failure, error, affected rows, and SQL text. Use it to trace failed statements, locate slow queries, and let AI explain or optimize based on real execution history.", "ai_chat.inspection.tool_info.inspect_recent_sql_logs.param.limit": "Optional. Number of log entries to return. Default 20, maximum 100.", "ai_chat.inspection.tool_info.inspect_recent_sql_logs.param.status": "Optional. Filter by execution status: all, success, or error. Default all.", "ai_chat.inspection.tool_info.inspect_recent_sql_logs.tool_description": "Get a summary of recent SQL execution logs, optionally filtered by success or failure. Use it to review recently executed SQL, diagnose failures, locate slow queries, and let AI explain or optimize from real execution history.", "ai_chat.inspection.tool_info.inspect_redis_topology.desc": "Diagnose Redis standalone, Sentinel, and Cluster configuration", "ai_chat.inspection.tool_info.inspect_redis_topology.detail": "Reads local Redis connection topology summaries and returns standalone, Sentinel, and Cluster nodes, master, authentication state, DB range, redacted URI examples, status level, and next actions. Use it when users ask how to configure Redis Sentinel or Cluster, why DB switching fails, or how Cluster multi-DB behavior works.", "ai_chat.inspection.tool_info.inspect_redis_topology.param.connectionId": "Optional. Diagnose only one Redis connection ID.", "ai_chat.inspection.tool_info.inspect_redis_topology.param.includeRecommendations": "Optional. Whether to return repair recommendations. Default true.", "ai_chat.inspection.tool_info.inspect_redis_topology.param.keyword": "Optional. Filter by connection name, address, topology, Sentinel master, or node address.", "ai_chat.inspection.tool_info.inspect_redis_topology.param.limit": "Optional. Maximum number of Redis connections to return. Default 20, maximum 100.", "ai_chat.inspection.tool_info.inspect_redis_topology.params": "connectionId?, keyword?, limit?, includeRecommendations?(default true)", "ai_chat.inspection.tool_info.inspect_redis_topology.tool_description": "Read local Redis standalone, Sentinel, and Cluster topology summaries, returning nodes, Sentinel master, authentication state, DB selection, TLS/SSH/proxy state, backend adapter, redacted URI examples, status level, blockers, potential configuration risks, and recommendations. Results do not echo Redis or Sentinel passwords.", "ai_chat.inspection.tool_info.inspect_saved_connections.desc": "Inspect locally saved connections", "ai_chat.inspection.tool_info.inspect_saved_connections.detail": "Filters local saved data sources by keyword or database type and returns the data-source list, type distribution, address, current database, and SSH/proxy/HTTP tunnel state. Use it when users ask which connections are saved locally, want to find mysql or postgres connections, or need to know which connection has SSH configured.", "ai_chat.inspection.tool_info.inspect_saved_connections.param.keyword": "Optional. Filter by connection name, ID, type, host, database name, SSH address, or proxy address.", "ai_chat.inspection.tool_info.inspect_saved_connections.param.limit": "Optional. Maximum number of connections to return. Default 20, maximum 100.", "ai_chat.inspection.tool_info.inspect_saved_connections.param.type": "Optional. Only inspect one database type, such as mysql, postgres, redis, or mongodb.", "ai_chat.inspection.tool_info.inspect_saved_connections.params": "keyword?, type?, limit?", "ai_chat.inspection.tool_info.inspect_saved_connections.tool_description": "Read locally saved connections, optionally filtered by keyword and database type, and return each connection's type, address, current database, SSH/proxy/HTTP tunnel summary, and related metadata.", "ai_chat.inspection.tool_info.inspect_saved_queries.desc": "Inspect locally saved SQL queries", "ai_chat.inspection.tool_info.inspect_saved_queries.detail": "Filters locally saved queries by keyword, connection, or database and returns query name, connection, database, and SQL preview. Use it when users mention a previously saved query, want to find an old SQL script, or want to reuse a saved statement.", "ai_chat.inspection.tool_info.inspect_saved_queries.param.connectionId": "Optional. Only inspect saved queries under one connection.", "ai_chat.inspection.tool_info.inspect_saved_queries.param.dbName": "Optional. Only inspect saved queries under one database.", "ai_chat.inspection.tool_info.inspect_saved_queries.param.includeSql": "Optional. Whether to include SQL preview. Default true.", "ai_chat.inspection.tool_info.inspect_saved_queries.param.keyword": "Optional. Filter by query name, SQL text, connection name, or database name.", "ai_chat.inspection.tool_info.inspect_saved_queries.param.limit": "Optional. Maximum number of queries to return. Default 12, maximum 50.", "ai_chat.inspection.tool_info.inspect_saved_queries.params": "keyword?, connectionId?, dbName?, limit?, includeSql?(default true)", "ai_chat.inspection.tool_info.inspect_saved_queries.tool_description": "Read locally saved SQL queries, optionally filtered by keyword, connection, and database, and return each query name, connection, database, and SQL preview.", "ai_chat.inspection.tool_info.inspect_shortcuts.desc": "Inspect current shortcut configuration and platform differences", "ai_chat.inspection.tool_info.inspect_shortcuts.detail": "Returns shortcut actions, current platform binding, Windows/macOS combinations, whether the user changed a shortcut, and default-value comparison. Use it when users ask what a shortcut is, how to press it on Windows or Mac, or whether defaults were changed.", "ai_chat.inspection.tool_info.inspect_shortcuts.param.action": "Optional. Filter by exact action key, such as toggleQueryResultsPanel, sendAIChatMessage, or toggleAIPanel.", "ai_chat.inspection.tool_info.inspect_shortcuts.param.includeAllPlatforms": "Optional. Whether to include both Windows and macOS platform bindings. Default true.", "ai_chat.inspection.tool_info.inspect_shortcuts.param.includeDisabled": "Optional. Whether to include currently disabled shortcuts. Default true.", "ai_chat.inspection.tool_info.inspect_shortcuts.param.keyword": "Optional. Filter by action name, description, scope, key combination, or default value.", "ai_chat.inspection.tool_info.inspect_shortcuts.params": "action?, keyword?, includeDisabled?(default true), includeAllPlatforms?(default true)", "ai_chat.inspection.tool_info.inspect_shortcuts.tool_description": "Read the current GoNavi shortcut configuration snapshot, optionally filtered by action name or keyword, and return current platform binding, Windows/macOS bindings, defaults, and whether shortcuts were customized.", "ai_chat.inspection.tool_info.inspect_sql_editor_transaction.desc": "View SQL editor transaction commit state", "ai_chat.inspection.tool_info.inspect_sql_editor_transaction.detail": "Returns SQL editor managed-DML transaction semantics, current manual or auto commit setting, whether the active SQL tab will enter a managed transaction, pending transactions, and recent write or transaction execution records. Use it when the user asks what manual or auto commit means, whether there are uncommitted transactions, or whether update/insert/delete will commit automatically.", "ai_chat.inspection.tool_info.inspect_sql_editor_transaction.param.includeSqlPreview": "Optional. Whether to return a SQL preview from the active SQL tab. Default true.", "ai_chat.inspection.tool_info.inspect_sql_editor_transaction.tool_description": "Read a SQL editor transaction state snapshot, including the real semantics that DML always enters a managed transaction, current commit mode, auto-commit delay, whether the active SQL tab triggers a managed transaction, pending transactions, and recent write or transaction logs. Use it when the user asks about SQL editor manual commit, auto commit, uncommitted transactions, or whether DML commits after execution.", "ai_chat.inspection.tool_info.inspect_sql_risk.desc": "Check execution risk for current or specified SQL", "ai_chat.inspection.tool_info.inspect_sql_risk.detail": "Reads supplied SQL or the current active query tab content, detects multiple statements, writes, DDL, DELETE/UPDATE without WHERE, DROP/TRUNCATE, and other risks, then combines the result with current AI safety policy to say whether execution is allowed. Use it before AI executes SQL, explains risk, or confirms whether a SQL statement can run.", "ai_chat.inspection.tool_info.inspect_sql_risk.param.previewCharLimit": "Optional. Maximum number of characters to return in the SQL preview. Default 12000, maximum 40000.", "ai_chat.inspection.tool_info.inspect_sql_risk.param.sql": "Optional. SQL to inspect. If omitted, the current active query tab SQL draft is read by default.", "ai_chat.inspection.tool_info.inspect_sql_risk.tool_description": "Check execution risk for supplied SQL or the current active query tab SQL, returning statement count, activity type, risk level, risk points, whether user confirmation is required, and the current AI safety policy result. Use it before answering or continuing when the user asks to execute, delete, update, run DDL, run batch SQL, or asks whether a SQL statement can run.", "ai_chat.inspection.tool_info.inspect_sql_snippets.desc": "Inspect SQL snippet templates", "ai_chat.inspection.tool_info.inspect_sql_snippets.detail": "Returns local SQL snippet prefix, name, description, and template preview, optionally filtered by keyword. Use it when users want to find existing templates, completion snippets, or team SQL conventions.", "ai_chat.inspection.tool_info.inspect_sql_snippets.param.includeBody": "Optional. Whether to include template body preview. Default true.", "ai_chat.inspection.tool_info.inspect_sql_snippets.param.keyword": "Optional. Filter by prefix, name, description, or template content.", "ai_chat.inspection.tool_info.inspect_sql_snippets.param.limit": "Optional. Maximum number of snippets to return. Default 20, maximum 80.", "ai_chat.inspection.tool_info.inspect_sql_snippets.params": "keyword?, limit?, includeBody?(default true)", "ai_chat.inspection.tool_info.inspect_sql_snippets.tool_description": "Read local SQL snippet templates, optionally filtered by keyword, and return prefix, name, description, and template preview.", "ai_chat.inspection.tool_info.inspect_workspace_tabs.desc": "Inspect currently open workspace tabs", "ai_chat.inspection.tool_info.inspect_workspace_tabs.detail": "Returns the list of tabs open in the current workspace, which one is active, and each tab's connection, database, table name, and related context. Use it when users ask which SQL tabs are open, what exists in the workspace, or want to compare several query tabs.", "ai_chat.inspection.tool_info.inspect_workspace_tabs.param.includeContent": "Optional. Whether to include SQL or command draft content from tabs. Default false.", "ai_chat.inspection.tool_info.inspect_workspace_tabs.param.limit": "Optional. Maximum number of tabs to return. Default 12, maximum 30.", "ai_chat.inspection.tool_info.inspect_workspace_tabs.params": "limit?(default 12), includeContent?(default false)", "ai_chat.inspection.tool_info.inspect_workspace_tabs.tool_description": "Get an overview of currently open workspace tabs, including active tab, tab type, connection, database, table name, and optional SQL or command draft content.", "ai_chat.inspection.upstream_logs.message.empty": "No AI upstream request records were found in recent logs. Send one AI message first, or retry with a larger lineLimit.", "ai_chat.inspection.upstream_logs.next_action.confirm_logging": "Confirm that the current build includes AI upstream request logging.", "ai_chat.inspection.upstream_logs.next_action.filter_request_body": "To verify full request inputs, filter precisely by requestId first, then check whether bodyPreview was truncated.", "ai_chat.inspection.upstream_logs.next_action.inspect_timeout": "If there is only a start event with no completion or failure, continue with inspect_app_logs or increase lineLimit to check for request timeout.", "ai_chat.inspection.upstream_logs.next_action.read_warn_error": "If there are still no records, call inspect_app_logs to read recent WARN/ERROR raw logs.", "ai_chat.inspection.upstream_logs.next_action.send_message": "Send one AI chat message, then call this tool again.", "ai_chat.inspection.upstream_logs.warning.invalid_json": "The request body is not complete JSON. It may have been truncated by logs, so a structured summary cannot be generated.", "ai_chat.inspection.upstream_logs.warning.large_input": "The input text is large. Narrow the context or reduce log/DDL content if needed.", "ai_chat.inspection.upstream_logs.warning.missing_messages": "No messages, contents, system, or prompt field was found. Confirm whether the upstream protocol matches expectations.", "ai_chat.inspection.upstream_logs.warning.missing_tools": "The payload does not include tools/functions, so the model cannot initiate tool calls.", "ai_chat.inspection.upstream_logs.warning.not_json_object": "The request body is not a JSON object, so model, message, and tool fields cannot be identified.", "ai_chat.inspection.workspace.no_active_tab": "No active tab is currently selected", "ai_chat.mcp_client.install.action.connected": "{{label}} is connected; no reinstall needed", "ai_chat.mcp_client.install.action.copy_remote": "Copy {{label}} remote connection guide", "ai_chat.mcp_client.install.action.install": "Install to {{label}} (external tool)", "ai_chat.mcp_client.install.action.update": "Update {{label}} connection config", "ai_chat.mcp_client.install.detection.detected": "Detected local {{command}} command. After connecting or updating, restart {{label}} to verify.", "ai_chat.mcp_client.install.detection.not_detected": "Local {{command}} command was not detected. If the CLI is not in PATH yet, you can still write {{label}} config first and restart later.", "ai_chat.mcp_client.install.detection.remote": "{{label}} usually does not run on this Windows machine. No local {{command}} command detection is needed; configure a remote MCP bridge URL in the cloud.", "ai_chat.mcp_client.install.intro.description": "Claude Code and Codex write local user-level MCP config. Cloud Agents such as OpenClaw and Hermans use remote connection guidance so database passwords are not copied to the cloud.", "ai_chat.mcp_client.install.intro.title": "This connects GoNavi MCP to Claude Code / Codex / OpenClaw / Hermans for external tool calls. It is not installing a plugin into GoNavi itself.", "ai_chat.mcp_client.install.message.already_connected": "{{label}} is already connected to current GoNavi MCP. No repeated write is needed.", "ai_chat.mcp_client.install.message.claude_not_supported": "This version does not support automatic Claude Code MCP installation yet", "ai_chat.mcp_client.install.message.codex_not_supported": "This version does not support automatic Codex MCP installation yet", "ai_chat.mcp_client.install.message.config_path_copied": "Config file path copied", "ai_chat.mcp_client.install.message.config_path_copy_failed": "Failed to copy config file path", "ai_chat.mcp_client.install.message.config_path_missing": "No config file path is available to copy", "ai_chat.mcp_client.install.message.install_failed": "Failed to install {{label}} MCP", "ai_chat.mcp_client.install.message.install_success": "Wrote {{label}} user-level MCP config", "ai_chat.mcp_client.install.message.launch_command_copied": "Launch command copied", "ai_chat.mcp_client.install.message.launch_command_copy_failed": "Failed to copy launch command", "ai_chat.mcp_client.install.message.launch_command_missing": "No launch command is available to copy", "ai_chat.mcp_client.install.message.refresh_failed": "Failed to refresh client installation status", "ai_chat.mcp_client.install.message.remote_guide_copied": "{{label}} remote connection guide copied", "ai_chat.mcp_client.install.message.remote_guide_copy_failed": "Failed to copy {{label}} remote connection guide", "ai_chat.mcp_client.install.option.connected": "This GoNavi MCP is already connected to this client.", "ai_chat.mcp_client.install.option.error": "Connection status looks abnormal. Refresh before changing it.", "ai_chat.mcp_client.install.option.missing": "Current GoNavi MCP is not connected here yet.", "ai_chat.mcp_client.install.option.remote": "For cloud Agents: schema-only reads GoNavi structure by default, without copying database passwords or exposing execute_sql.", "ai_chat.mcp_client.install.option.stale": "An old GoNavi entry was detected. Update it to the current install path.", "ai_chat.mcp_client.install.repeat_avoidance": "When already connected to this GoNavi, the main button is disabled to avoid repeated writes.", "ai_chat.mcp_client.install.selected.connected": "Connected to current GoNavi; no repeated action needed", "ai_chat.mcp_client.install.selected.error": "Status read is abnormal; refresh detection first", "ai_chat.mcp_client.install.selected.missing": "GoNavi MCP is not connected yet", "ai_chat.mcp_client.install.selected.remote": "Configure a remote MCP bridge; database passwords stay on the GoNavi machine", "ai_chat.mcp_client.install.selected.stale": "Old connection record exists; update it to the current GoNavi path", "ai_chat.mcp_client.install.selector.aria_label": "Select the external client for GoNavi MCP", "ai_chat.mcp_client.install.selector.choice_title": "Select external client", "ai_chat.mcp_client.install.selector.description": "Choose one target client first. Local CLIs can write or update config automatically; remote Agents must access current GoNavi through an MCP bridge or tunnel and should not store database passwords.", "ai_chat.mcp_client.install.selector.hint.active_local": "Selected. Only this client will be written or updated.", "ai_chat.mcp_client.install.selector.hint.active_remote": "Selected. The remote connection guide will be copied.", "ai_chat.mcp_client.install.selector.hint.inactive_local": "Click to switch to this client.", "ai_chat.mcp_client.install.selector.hint.inactive_remote": "Click to view the remote connection method.", "ai_chat.mcp_client.install.selector.step.restart.detail": "Restart the local CLI to verify. Cloud Agents verify after configuring the remote MCP URL.", "ai_chat.mcp_client.install.selector.step.restart.title": "Restart or configure target", "ai_chat.mcp_client.install.selector.step.target.detail": "Local Claude/Codex can be installed automatically. OpenClaw/Hermans use remote connection guidance.", "ai_chat.mcp_client.install.selector.step.target.title": "Choose target client", "ai_chat.mcp_client.install.selector.step.write.detail": "Automatic install only changes user-level MCP config. Remote Agents copy bridge guidance.", "ai_chat.mcp_client.install.selector.step.write.title": "Write or copy config", "ai_chat.mcp_client.install.selector.title": "Connect external client", "ai_chat.mcp_client.install.state.connected": "External tool connection status: connected to this GoNavi", "ai_chat.mcp_client.install.state.error": "External tool connection status: failed to read", "ai_chat.mcp_client.install.state.missing": "External tool connection status: not connected", "ai_chat.mcp_client.install.state.remote": "External tool connection status: remote MCP bridge required", "ai_chat.mcp_client.install.state.stale": "External tool connection status: old config found, update needed", "ai_chat.mcp_client.install.status_tone.connected": "Connected", "ai_chat.mcp_client.install.status_tone.not_connected": "Not connected", "ai_chat.mcp_client.install.status_tone.remote_bridge": "Remote bridge", "ai_chat.mcp_client.install.status_tone.status_error": "Status error", "ai_chat.mcp_client.install.status_tone.update_required": "Update needed", "ai_chat.mcp_client.install.status.cli_prefix": "CLI detection: {{status}}", "ai_chat.mcp_client.install.status.cli.detected": "Detected {{command}}", "ai_chat.mcp_client.install.status.cli.not_detected": "{{command}} was not detected; config can still be written first", "ai_chat.mcp_client.install.status.cli.remote": "Remote Agent does not need local {{command}} command detection", "ai_chat.mcp_client.install.status.command_path": "Command path: {{path}}", "ai_chat.mcp_client.install.status.config_file": "Config file: {{path}}", "ai_chat.mcp_client.install.status.copy_command": "Copy launch command", "ai_chat.mcp_client.install.status.copy_config": "Copy config path", "ai_chat.mcp_client.install.status.current_state": "Current status: {{status}}", "ai_chat.mcp_client.install.status.current_target": "Current target client: {{label}}", "ai_chat.mcp_client.install.status.detection_missing": "No connection status detected", "ai_chat.mcp_client.install.status.detection_result": "Detection result: {{message}}", "ai_chat.mcp_client.install.status.launch_command": "Launch command: {{command}}", "ai_chat.mcp_client.install.status.no_client": "No client selected", "ai_chat.mcp_client.install.status.refresh": "Refresh status", "ai_chat.mcp_client.install.status.remote_boundary": "Remote connection boundary: database connection info and passwords stay in Windows GoNavi. Cloud Agents read connection summaries, object lists, tables, views, and DDL through schema-only MCP tools by default, and execute_sql is not registered. For cross-machine access, use GoNavi Streamable HTTP mode with a token, tunnel, or reverse proxy.", "ai_chat.mcp_client.install.status.title": "Selected client status", "ai_chat.mcp_client.install.summary.connected": "{{label}} is connected to this GoNavi MCP and can call it directly.", "ai_chat.mcp_client.install.summary.error": "Failed to read the connection status for {{label}}. Refresh detection first.", "ai_chat.mcp_client.install.summary.missing": "This GoNavi MCP is not connected to {{label}} yet.", "ai_chat.mcp_client.install.summary.remote": "{{label}} usually runs in the cloud or on another machine and needs a remote MCP bridge to call this GoNavi.", "ai_chat.mcp_client.install.summary.stale": "{{label}} already has an old GoNavi entry. Updating will point it to this GoNavi.", "ai_chat.message.action.copied": "Copied", "ai_chat.message.action.copied_error_raw": "Raw error copied", "ai_chat.message.action.copy_error_raw": "Copy raw error", "ai_chat.message.action.copy_full": "Copy full text", "ai_chat.message.action.delete": "Delete message", "ai_chat.message.action.edit": "Edit this message, remove later records, and resend", "ai_chat.message.action.retry": "Regenerate from the previous user message", "ai_chat.message.code.collapse": "Collapse code", "ai_chat.message.code.copied": "Copied", "ai_chat.message.code.copy": "Copy code", "ai_chat.message.code.execute": "Execute", "ai_chat.message.code.execute_failed": "Execution failed", "ai_chat.message.code.execute_tooltip": "Execute now, subject to the AI safety policy", "ai_chat.message.code.executing": "Executing...", "ai_chat.message.code.expand_all": "Expand all code", "ai_chat.message.code.insert": "Insert", "ai_chat.message.code.insert_tooltip": "Insert this SQL into the query workspace for quick edits or execution", "ai_chat.message.code.preview": "Preview", "ai_chat.message.code.preview_collapse": "Collapse", "ai_chat.message.code.preview_result": "Preview result ({{rows}} rows x {{columns}} columns)", "ai_chat.message.code.preview_tooltip": "Preview query results in chat, up to 20 rows", "ai_chat.message.code.query_no_result": "Query returned no results", "ai_chat.message.code.view_result": "View result ({{rows}} rows)", "ai_chat.message.image_alt": "Attached image {{index}}", "ai_chat.message.jvm.apply_diagnostic": "Apply to diagnostic console", "ai_chat.message.jvm.apply_preview": "Apply to JVM preview", "ai_chat.message.jvm.diagnostic_target_not_found": "No diagnostic console tab matches this plan. Open the original target console before applying it.", "ai_chat.message.jvm.missing_diagnostic_context": "This diagnostic plan is missing source tab context. Regenerate it from the target diagnostic console.", "ai_chat.message.jvm.missing_plan_context": "This JVM plan is missing source tab context. Regenerate it from the target JVM resource page.", "ai_chat.message.jvm.plan_target_not_found": "No resource tab matches this JVM plan. Open the original target resource before applying it.", "ai_chat.message.mermaid.parse_failed": "Mermaid parse failed: {{detail}}", "ai_chat.message.mermaid.render_failed": "Mermaid render failed: {{detail}}", "ai_chat.message.render_error.body": "The rest of the conversation is still available. You can delete this broken message before continuing.", "ai_chat.message.render_error.delete": "Delete this message", "ai_chat.message.render_error.retry": "Retry render", "ai_chat.message.render_error.title": "This AI message failed to render and has been isolated", "ai_chat.message.render_error.unknown": "Unknown render error", "ai_chat.message.role.user": "You", "ai_chat.message.security.blocked": "🔒 Safety policy blocked this SQL: the current safety level does not allow {{operationType}} operations. Adjust the safety level in AI settings.", "ai_chat.message.security.confirm_execute": "Execute", "ai_chat.message.security.confirm_title": "⚠️ Safety confirmation", "ai_chat.message.security.default_warning": "This SQL is a {{operationType}} operation. Execute it?", "ai_chat.message.thinking.active": "Thinking...", "ai_chat.message.thinking.count": "({{count}} chars)", "ai_chat.message.thinking.title": "Thinking process", "ai_chat.message.tool_call.done": "Data probes completed ({{count}} items)", "ai_chat.message.tool_call.execute_sql": "Execute SQL query", "ai_chat.message.tool_call.get_all_columns": "Summarize columns across tables", "ai_chat.message.tool_call.get_columns": "Read column list", "ai_chat.message.tool_call.get_connections": "Load available connection info", "ai_chat.message.tool_call.get_databases": "Scan database list", "ai_chat.message.tool_call.get_foreign_keys": "Map foreign key relationships", "ai_chat.message.tool_call.get_indexes": "Inspect index definitions", "ai_chat.message.tool_call.get_objects": "Read database object list", "ai_chat.message.tool_call.get_table_ddl": "Read CREATE TABLE statement", "ai_chat.message.tool_call.get_tables": "Analyze table structure info", "ai_chat.message.tool_call.get_views": "Analyze view structure info", "ai_chat.message.tool_call.get_triggers": "Inspect trigger logic", "ai_chat.message.tool_call.inspect_active_tab": "Read current active tab", "ai_chat.message.tool_call.inspect_ai_chat_readiness": "Read current AI chat preflight status", "ai_chat.message.tool_call.inspect_ai_context_budget": "Diagnose AI context budget risk", "ai_chat.message.tool_call.inspect_ai_guidance": "Read current AI prompt and skill configuration", "ai_chat.message.tool_call.inspect_ai_last_render_error": "Read latest AI rendering error", "ai_chat.message.tool_call.inspect_ai_message_flow": "Diagnose current AI message flow", "ai_chat.message.tool_call.inspect_ai_providers": "Read current AI provider and model configuration", "ai_chat.message.tool_call.inspect_ai_runtime": "Read current AI runtime status", "ai_chat.message.tool_call.inspect_ai_safety": "Read current AI safety boundary", "ai_chat.message.tool_call.inspect_ai_sessions": "Review local AI chat sessions", "ai_chat.message.tool_call.inspect_ai_support_bundle": "Generate AI troubleshooting support bundle", "ai_chat.message.tool_call.inspect_ai_tool_catalog": "Read AI tool catalog and parameter hints", "ai_chat.message.tool_call.inspect_app_logs": "Review GoNavi application logs", "ai_chat.message.tool_call.inspect_codebase_hotspots": "Read codebase hotspot files", "ai_chat.message.tool_call.inspect_connection_capabilities": "Read current connection capability matrix", "ai_chat.message.tool_call.inspect_current_connection": "Read current connection summary", "ai_chat.message.tool_call.inspect_database_bundle": "Fetch database structure overview", "ai_chat.message.tool_call.inspect_external_sql_directories": "Review external SQL directories", "ai_chat.message.tool_call.inspect_external_sql_file": "Read external SQL file", "ai_chat.message.tool_call.inspect_mcp_authoring_guide": "Read MCP authoring guide", "ai_chat.message.tool_call.inspect_mcp_draft": "Validate MCP draft", "ai_chat.message.tool_call.inspect_mcp_runtime_failures": "Diagnose MCP runtime failures", "ai_chat.message.tool_call.inspect_mcp_setup": "Read current MCP configuration status", "ai_chat.message.tool_call.inspect_mcp_tool_schema": "Read MCP tool parameter schema", "ai_chat.message.tool_call.inspect_recent_connection_failures": "Summarize recent connection failures", "ai_chat.message.tool_call.inspect_recent_sql_activity": "Summarize recent SQL activity", "ai_chat.message.tool_call.inspect_recent_sql_logs": "Review recent SQL execution logs", "ai_chat.message.tool_call.inspect_redis_topology": "Diagnose Redis topology configuration", "ai_chat.message.tool_call.inspect_saved_connections": "Review locally saved connections", "ai_chat.message.tool_call.inspect_saved_queries": "Search locally saved queries", "ai_chat.message.tool_call.inspect_shortcuts": "Read current shortcut settings", "ai_chat.message.tool_call.inspect_sql_editor_transaction": "Read SQL editor transaction status", "ai_chat.message.tool_call.inspect_sql_snippets": "Read SQL snippet templates", "ai_chat.message.tool_call.inspect_table_bundle": "Fetch full table structure snapshot", "ai_chat.message.tool_call.inspect_workspace_tabs": "Review current workspace tabs", "ai_chat.message.tool_call.preview_table_rows": "Preview real sample rows", "ai_chat.message.tool_call.running": "Running data probes...", "ai_chat.message.tool_result.char_count": "{{count}} chars", "ai_chat.message.tool_result.no_data": "No data", "ai_chat.message.tool_result.title": "Probe result ({{name}})", "ai_chat.message.wait.connecting": "Connecting", "ai_chat.panel.error.html_response": "The server returned an abnormal HTML response, possibly a gateway timeout or unavailable service", "ai_chat.panel.error.http_server": "HTTP {{code}} server error", "ai_chat.panel.error.truncated_suffix": "...(truncated)", "ai_chat.panel.error.unknown": "Unknown error", "ai_chat.panel.history.empty": "No chat history yet", "ai_chat.panel.insight.context.empty_body": "Opening AI from a table page links the current table automatically. You can also add context manually above the input.", "ai_chat.panel.insight.context.empty_title": "No table structure linked yet", "ai_chat.panel.insight.context.linked_body": "This conversation includes structure context for {{tables}}.", "ai_chat.panel.insight.context.linked_title": "{{count}} linked tables", "ai_chat.panel.insight.context.more_tables_suffix": " and more tables", "ai_chat.panel.insight.context.table_separator": ", ", "ai_chat.panel.insight.query.empty_body": "After a query runs, SQL clues for optimization analysis appear here.", "ai_chat.panel.insight.query.empty_title": "No query duration samples yet", "ai_chat.panel.insight.query.slowest_title": "Slowest recent query {{duration}}ms", "ai_chat.panel.insight.status.empty_body": "No SQL logs yet.", "ai_chat.panel.insight.status.failed_title": "{{count}} recent query failures", "ai_chat.panel.insight.status.ok_title": "Recent query status normal", "ai_chat.panel.insight.status.recent_body": "Recorded {{count}} recent SQL entries. You can ask AI to explain or optimize them.", "ai_chat.panel.insight.write.detected_body": "For SQL involving writes, generate a preview and rollback statements before committing.", "ai_chat.panel.insight.write.detected_title": "Detected {{count}} write operations", "ai_chat.panel.insight.write.readonly_body": "AI defaults to explaining, generating SELECT, analyzing Schema, and optimizing indexes.", "ai_chat.panel.insight.write.readonly_title": "Currently focused on read-only analysis", "ai_chat.panel.jvm_diagnostic.permission.allowed": "allowed", "ai_chat.panel.jvm_diagnostic.permission.forbidden": "forbidden", "ai_chat.panel.jvm_diagnostic.policy.plan_first": "Diagnostic commands may be generated, but always provide the plan first and let the user decide whether to execute.", "ai_chat.panel.jvm_diagnostic.policy.read_only": "Answer with read-only diagnostics by default; generate only observe, trace, and troubleshooting commands, and do not assume anything has already executed.", "ai_chat.panel.jvm_runtime.policy.preview_required": "Writable connection, but every modification must generate a preview first and wait for human confirmation.", "ai_chat.panel.jvm_runtime.policy.read_only": "Read-only connection; only analyze and generate change plans, and never assume writes have already executed.", "ai_chat.panel.jvm_runtime.resource_path.current": "Current resourcePath: {{resourcePath}}", "ai_chat.panel.jvm_runtime.resource_path.missing": "No specific resourcePath is currently selected.", "ai_chat.panel.local_tool.execute_sql.description": "Execute a SQL query on the specified connection and database, then return the result. Controlled by the safety level: in read-only mode, only SELECT/SHOW/DESCRIBE and similar query operations are allowed. Returns at most 50 rows.", "ai_chat.panel.local_tool.get_columns.description": "Get the field list for the specified table, including field names, types, nullable status, default values, comments, and related metadata. Before generating SQL, call this tool to confirm real field names and do not guess field names.", "ai_chat.panel.local_tool.get_connections.description": "When the user needs to query or operate on a database but no connection context is selected, get all database connections available in the app. The returned data includes connection ID (id) and name (name).", "ai_chat.panel.local_tool.get_databases.description": "Get all database (Database/Schema) names under the specified connection (connectionId).", "ai_chat.panel.local_tool.get_table_ddl.description": "Get the complete CREATE TABLE DDL for the specified table, including fields, indexes, constraints, and the full structure.", "ai_chat.panel.local_tool.get_tables.description": "After the target connection and dbName are known, if the user asks about or implicitly mentions a table and you do not know the exact tableName, call this tool to get all table names in that database (table names only) to infer the target table.", "ai_chat.panel.local_tool.param.connection_id": "connectionId", "ai_chat.panel.local_tool.param.connection_id_from_get_connections": "connectionId (from get_connections)", "ai_chat.panel.local_tool.param.db_name": "dbName", "ai_chat.panel.local_tool.param.sql": "SQL statement to execute", "ai_chat.panel.local_tool.param.table_name": "tableName", "ai_chat.panel.message.empty_response": "❌ The model did not return any content. It may have hit rate limits, context overload, or a refusal.", "ai_chat.panel.message.error": "❌ Error: {{detail}}", "ai_chat.panel.message.request_interrupted": "❌ Request interrupted: no concrete reply was received.", "ai_chat.panel.message.send_failed": "❌ Send failed: {{detail}}", "ai_chat.panel.message.service_not_ready": "❌ AI Service is not ready", "ai_chat.panel.model_control.continue_after_summary": "Based on the latest status and exploration results above, continue the analysis you had not finished or perform the next step.", "ai_chat.panel.model_control.force_tool_call": "Use a function call directly to invoke the tool and perform the operation; do not only describe the plan in text.", "ai_chat.panel.notice.fetch_models_failed": "Failed to fetch model list: {{detail}}", "ai_chat.panel.probe.consecutive_failed": "⚠️ Probes failed for 3 consecutive rounds and were stopped. Check the connection status and retry.", "ai_chat.panel.probe.max_rounds": "⚠️ Tool calls reached the {{count}} round limit and were stopped. Send a new message to continue exploring.", "ai_chat.panel.prompt.jvm_diagnostic": "You are GoNavi's JVM diagnostic assistant. The current tab is an Arthas-compatible diagnostic workbench, and the goal is to produce a structured diagnostic plan that can be pasted back into the diagnostic console.\n\nCurrent connection: {{connectionName}}\nTarget host: {{host}}\nDiagnostic transport: {{transport}}\nEnvironment: {{environment}}\nConnection policy: {{readOnlyPolicy}}\nCommand permissions: observe={{observePolicy}}, trace={{tracePolicy}}, mutating={{mutatingPolicy}}\n\nResponse rules:\n1. You may start with a short analysis, but the response must contain exactly one ```json code block.\n2. JSON fields are strictly limited to intent, transport, command, riskLevel, reason, expectedSignals.\n3. The transport field must match the diagnostic transport shown above; do not invent another transport.\n4. command must be a single diagnostic command, with no shell prompt, newline concatenation, multiple commands, or code fence.\n5. riskLevel must be one of low, medium, high.\n6. expectedSignals must be a string array describing signals to watch after execution.\n7. If permissions disallow an operation category, do not output that command category; explain the limitation directly if the request cannot be satisfied.", "ai_chat.panel.prompt.jvm_runtime": "You are GoNavi's JVM runtime analysis assistant. The current context is not SQL; it is the JVM resource workbench.\n\nCurrent connection: {{connectionName}}\nTarget host: {{host}}\nProvider mode: {{providerMode}}\nEnvironment: {{environment}}\nConnection policy: {{connectionPolicy}}\nResource path status: {{resourcePathStatus}}\n\nResponse rules:\n1. You may explain resource structure, risks, modification advice, and rollback advice.\n2. If the user asks for a JVM modification plan, output exactly one ```json code block, and strictly limit JSON fields to targetType, selector, action, payload, reason.\n3. Prefer action values already declared in the current resource snapshot or metadata as supportedActions; if the current resource does not declare them, infer cautiously from the snapshot content.\n4. Prefer the current resourcePath for selector.resourcePath; if the current path is unknown, clearly say precise targeting is not possible and do not invent a path.\n5. payload must use only {\"format\":\"json\",\"value\":{...}} or {\"format\":\"text\",\"value\":\"...\"}; do not output scripts, commands, or bare values.\n6. Do not output scripts, commands, or claims such as already executed successfully.", "ai_chat.panel.prompt.memory_summary": "This is the history of an overlong conversation. To free context space while preserving the core memory, read it carefully and produce a highly condensed structured summary based on technical facts, explored data-structure state, the user's central request, and current progress.\nNotes:\n1. Be objective and accurate; do not omit key business logic or discovered table names/fields.\n2. Remove ineffective execution process, pleasantries, and the JSON return values themselves.\n3. Keep it around 1000-2000 words and output concise Markdown only.\n4. Start directly with the summary; do not include greetings.", "ai_chat.panel.prompt.sql.context_tables": "You are a professional database assistant. The current database type is {{dbDisplayType}}. Generate SQL using that dialect. The following linked table DDL is provided by the user; prioritize it when answering:\n\n{{ddlChunks}}", "ai_chat.panel.prompt.sql.current_database": "You are a professional database assistant. The current database type is {{dbDisplayType}}, and the current database name is {{targetDbName}}. If the user needs information about a specific table or the current database, you can proactively call the provided get_tables tool to fetch table information.", "ai_chat.panel.prompt.sql.no_connections": "You are a professional database assistant. There are currently no available database connections in the app.\n\nIf the user's question needs database structure or SQL, first explain that get_connections, get_databases, get_tables, and get_columns cannot fetch real database information until a connection exists, then ask the user to create a connection and retry. Do not guess connectionId, dbName, table names, or field names.\n\nFor general questions that do not involve database querying, answer normally.", "ai_chat.panel.prompt.sql.no_context": "You are a professional database assistant. The user has not selected any specific database or table in the UI as context.\n\nImportant rules:\n1. If you need to help the user find a target table, never guess table names. You must call tools to fetch real data.\n2. Complete workflow: get_connections → get_databases → get_tables → get_columns → generate SQL. Do not skip any step.\n3. [Connection priority - critical] After getting the connection list, search in this order:\n - First priority: connections whose host is localhost, 127.0.0.1, or contains local-machine wording\n - Second priority: connections whose name or host contains dev or local, or whose host is an internal IP such as 10.x, 192.168.x, or 172.16-31.x\n - Third priority: other connections such as test or production\n If you find the target table in a higher-priority connection, use that connection directly and do not continue to lower-priority connections.\n4. If the target table is not found in the current database, continue checking other databases; do not give up.\n5. Stop only after every possible database has been checked, or after the target table has clearly been found.\n6. For general questions that do not involve database querying, answer normally.\n\nSQL generation rules (critical, follow strictly):\n7. [Field accuracy - absolute rule] Before generating SQL, you must call get_columns to fetch the real field list for the target table. Every field name in SQL must exactly match the field value returned by get_columns, including case. Do not invent, abbreviate, or infer field names. For example, if the field is channel, write channel, not pay_channel.\n8. Do not use a \"database.table\" qualified prefix when generating SQL; write only the table name itself.\n9. When reporting results, the connection name/ID and database name must strictly come from the actual parameters of the same get_tables call. Do not mix connectionId from one connection with dbName from another.\n10. If multiple databases have similar names, clearly tell the user which database contains the target table.\n11. [Required] The first line of every SQL code block must add a context declaration comment in exactly this format: -- @context connectionId= dbName=. connectionId and dbName must come from the same successful get_tables call, namely the actual parameter values you passed in that call. Example:\n```sql\n-- @context connectionId=1770778676549 dbName=mkefu_test\nSELECT * FROM users WHERE status = 1;\n```\n\nCurrent available connections: [{{connList}}]", "ai_chat.panel.render_error.delete": "Delete this message", "ai_chat.panel.render_error.description": "The rest of the conversation remains usable. You can delete this broken message before continuing.", "ai_chat.panel.render_error.retry": "Retry render", "ai_chat.panel.render_error.title": "This AI message failed to render and was isolated", "ai_chat.panel.render_error.unknown": "Unknown render error", "ai_chat.panel.session.default_title": "New chat", "ai_chat.panel.status.analyzing_chain": "Analyzing chain and logic deeply", "ai_chat.panel.status.deep_reasoning": "Model is reasoning deeply", "ai_chat.panel.status.memory_compress_failed": "❌ Memory compression failed. Continuing with the original context...", "ai_chat.panel.status.memory_compressing": "⚙️ Conversation is overloaded. Starting memory compression...", "ai_chat.panel.status.memory_probe_summary": "[Automatic memory reshape] Long probe history and chat have been compressed into a summary:\n\n{{summary}}", "ai_chat.panel.status.memory_summary": "[Automatic memory reshape] Long history has been compressed into a summary:\n\n{{summary}}", "ai_chat.panel.status.model_connecting": "Connecting to model", "ai_chat.panel.status.returning_runtime_data": "Returning runtime data to the model", "ai_chat.panel.status.summarizing_probe": "Summarizing probe results", "ai_chat.panel.status.waiting_instruction": "Waiting for operation instructions", "ai_chat.panel.status.waiting_response": "Waiting for model response", "ai_chat.panel.status.waking_engine": "Waking reasoning engine", "ai_chat.panel.tool_error.connection_not_found": "Connection not found", "ai_chat.panel.tool_error.fetch_all_columns_failed": "Failed to fetch database column summary: {{detail}}", "ai_chat.panel.tool_error.fetch_columns_failed": "Failed to fetch column list: {{detail}}", "ai_chat.panel.tool_error.fetch_databases_failed": "Failed to fetch database list: {{detail}}", "ai_chat.panel.tool_error.fetch_foreign_keys_failed": "Failed to fetch foreign key relationships: {{detail}}", "ai_chat.panel.tool_error.fetch_indexes_failed": "Failed to fetch index definitions: {{detail}}", "ai_chat.panel.tool_error.fetch_table_ddl_failed": "Failed to fetch CREATE TABLE statement: {{detail}}", "ai_chat.panel.tool_error.fetch_tables_failed": "Failed to fetch table list: {{detail}}", "ai_chat.panel.tool_error.fetch_triggers_failed": "Failed to fetch trigger definitions: {{detail}}", "ai_chat.panel.tool_error.mcp_failed": "MCP tool call failed", "ai_chat.panel.tool_error.mcp_failed_with_detail": "MCP tool call failed: {{detail}}", "ai_chat.panel.tool_error.preview_table_rows_failed": "Failed to preview table rows: {{detail}}", "ai_chat.panel.tool_error.sql_blocked": "Security policy blocked this request: the current safety level does not allow {{operationType}} SQL. Show the SQL to the user and ask them to run it manually.", "ai_chat.panel.tool_error.sql_execute_exception": "SQL execution exception: {{detail}}", "ai_chat.panel.tool_error.sql_execute_failed": "SQL execution failed", "ai_chat.panel.tool_error.table_name_required": "tableName cannot be empty", "ai_chat.panel.tool_error.unknown_function": "Unknown function: {{functionName}}", "ai_chat.panel.tool_result.columns_exact_fields": "⚠️ The following is the exact field list for table {{tableName}}. When generating SQL, use only these field values as column names, exactly as shown. Do not change, abbreviate, or invent field names.\nAvailable fields: {{fieldNames}}\nDetails: {{detailJson}}", "ai_chat.quick_action.explain_schema": "🔍 Explain schema", "ai_chat.quick_action.explain_schema.hint.with_context": "Explain fields and constraints", "ai_chat.quick_action.explain_schema.prompt.with_context": "Explain the design intent and field meanings of these tables in detail: {{tables}}", "ai_chat.quick_action.explain_schema.title": "Explain schema", "ai_chat.quick_action.explain_sql": "🔍 Explain SQL", "ai_chat.quick_action.explain_sql.hint.default": "Explain execution logic", "ai_chat.quick_action.explain_sql.prompt.default": "Explain how this SQL statement runs:\n```sql\n\n```", "ai_chat.quick_action.explain_sql.title": "Explain SQL", "ai_chat.quick_action.generate_sql": "📝 Generate SQL", "ai_chat.quick_action.generate_sql.hint.default": "Generate a query from natural language", "ai_chat.quick_action.generate_sql.hint.with_context": "Generate a query from natural language", "ai_chat.quick_action.generate_sql.prompt.default": "Generate a query from the current database table structure:", "ai_chat.quick_action.generate_sql.prompt.with_context": "Generate a commonly used query for these table structures: {{tables}}", "ai_chat.quick_action.generate_sql.title": "Generate SQL", "ai_chat.quick_action.optimize": "⚡ Optimization tips", "ai_chat.quick_action.optimize.hint.default": "Performance and index suggestions", "ai_chat.quick_action.optimize.hint.with_context": "Indexes, normalization, and risk checks", "ai_chat.quick_action.optimize.prompt.default": "Analyze the performance of this SQL statement and suggest optimizations:\n```sql\n\n```", "ai_chat.quick_action.optimize.prompt.with_context": "Analyze the structure design of these tables and suggest index and query performance optimizations: {{tables}}", "ai_chat.quick_action.optimize.title": "Optimization tips", "ai_chat.quick_action.schema_analysis": "🏗️ Schema analysis", "ai_chat.quick_action.schema_analysis.hint.default": "Analyze structural quality", "ai_chat.quick_action.schema_analysis.hint.with_context": "Table relationships and dependency graph", "ai_chat.quick_action.schema_analysis.prompt.default": "Analyze the current database table structure and suggest optimizations.", "ai_chat.quick_action.schema_analysis.prompt.with_context": "Run a full Schema analysis for these tables, including data type choices, normalization review, and improvement suggestions: {{tables}}", "ai_chat.quick_action.schema_analysis.title": "Schema analysis", "ai_chat.quick_action.table_separator": ", ", "ai_chat.system.context.custom_prompt.database": "The user has provided an additional database-session prompt. Follow it when it does not conflict with safety rules or factual constraints:\n{{content}}", "ai_chat.system.context.custom_prompt.global": "The user has provided an additional global prompt. Follow it when it does not conflict with safety rules or factual constraints:\n{{content}}", "ai_chat.system.context.custom_prompt.jvm": "The user has provided an additional JVM resource-analysis prompt. Follow it when it does not conflict with safety rules or factual constraints:\n{{content}}", "ai_chat.system.context.custom_prompt.jvm_diagnostic": "The user has provided an additional JVM diagnostic prompt. Follow it when it does not conflict with safety rules or factual constraints:\n{{content}}", "ai_chat.system.context.database_with_schema": "You are a professional database assistant. The current connection database type is {{dbType}}. Generate SQL using the {{dbType}} dialect. The user has attached table schema information; prioritize it when answering:\n\n{{ddlChunks}}", "ai_chat.system.context.database_with_target": "You are a professional database assistant. The current connection database type is {{dbType}}, and the current database name is {{dbName}}. If the user needs a specific table or information about the current database, call the provided get_tables tool to actively fetch table information.", "ai_chat.system.context.database_without_context": "You are a professional database assistant. The user has not selected any specific database or table in the interface as context.\n\nImportant rules:\n1. If you need to help the user find a target table, never guess the table name. Call tools to fetch real data.\n2. Complete workflow: get_connections -> get_databases -> get_tables -> get_columns -> generate SQL. Do not skip any step.\n3. Connection priority is critical. After retrieving connections, check them in this order:\n - First priority: host is localhost or 127.0.0.1, or the connection name indicates a local environment.\n - Second priority: name or host indicates a development/local environment, or host is a private-network IP such as 10.x, 192.168.x, or 172.16-31.x.\n - Third priority: other connections such as testing or production.\n If the target table is found in a higher-priority connection, use that connection directly and do not search lower-priority connections.\n4. If the target table is not found in the current database, continue querying other databases instead of giving up.\n5. Stop only when every possible database has been checked or the target table has clearly been found.\n6. For ordinary questions that do not involve database queries, answer normally.\n\nSQL generation rules:\n7. If the user mentions the current tab, current SQL, current editor, or this statement without pasting the content, call inspect_active_tab first to read the active tab context instead of guessing what is open.\n8. If the user asks which tabs are open or what queries are currently in the workspace, call inspect_workspace_tabs first, then decide which tab to inspect further.\n9. Field accuracy is an absolute rule. Before generating SQL, call get_columns to get the real target-table field list. Every field name in SQL must exactly match the field value returned by get_columns, including case. Do not compose, abbreviate, or infer field names.\n10. If the user asks about index optimization, join relationships, trigger side effects, constraints, or DDL details, call get_indexes, get_foreign_keys, get_triggers, and get_table_ddl as needed after get_columns, then provide the conclusion.\n11. When generating SQL, do not use a \"database.table\" qualified prefix; write only the table name.\n12. When reporting results, the connection name/ID and database name must come from the same actual get_tables call parameters. Do not mix connectionId from one connection with dbName from another.\n13. If multiple databases have similar names, clearly tell the user which database contains the target table.\n14. The first line of each SQL code block must be a context declaration comment in this exact format: -- @context connectionId= dbName=. connectionId and dbName must come from the same successful get_tables call parameters. Example:\n```sql\n-- @context connectionId=1770778676549 dbName=mkefu_test\nSELECT * FROM users WHERE status = 1;\n```\n\nExisting connections: [{{connList}}]", "ai_chat.system.context.jvm_diagnostic_policy.read_only": "Default to read-only diagnostic reasoning: only generate observe, trace, and troubleshooting commands, and never assume anything has already executed.", "ai_chat.system.context.jvm_diagnostic_policy.writable": "Diagnostic commands may be generated, but provide a plan first and let the user decide whether to run it.", "ai_chat.system.context.jvm_diagnostic_prompt": "You are GoNavi's JVM diagnostic assistant. The active tab is an Arthas-compatible diagnostic workspace. Produce a structured diagnostic plan that can be filled back into the diagnostic console.\n\nCurrent connection: {{connectionName}}\nTarget host: {{host}}\nDiagnostic transport: {{transport}}\nRuntime environment: {{environment}}\nConnection policy: {{connectionPolicy}}\nCommand permissions: observe={{observeAllowed}}, trace={{traceAllowed}}, mutating={{mutatingAllowed}}\n\nResponse rules:\n1. You may include a short analysis first, but the response must contain exactly one ```json code block.\n2. JSON fields are strictly limited to intent, transport, command, riskLevel, reason, and expectedSignals.\n3. transport must be the current value {{transport}}; do not invent another transport.\n4. command must be a single diagnostic command without a shell prompt, line-joined commands, multiple commands, or a code fence.\n5. riskLevel must be low, medium, or high.\n6. expectedSignals must be an array of strings describing the signals to observe after execution.\n7. If permissions do not allow a class of operation, do not output that class of command; if the request cannot be satisfied, state the limitation directly.", "ai_chat.system.context.jvm_runtime_policy.read_only": "This is a read-only connection. Only analyze and generate change plans; never assume writes have already executed.", "ai_chat.system.context.jvm_runtime_policy.writable": "This is a writable connection, but every modification must first produce a preview and wait for human confirmation.", "ai_chat.system.context.jvm_runtime_prompt": "You are GoNavi's JVM runtime analysis assistant. The current context is not SQL; it is the JVM resource workspace.\n\nCurrent connection: {{connectionName}}\nTarget host: {{host}}\nProvider mode: {{providerMode}}\nRuntime environment: {{environment}}\nConnection policy: {{connectionPolicy}}\n{{resourcePathLine}}\n\nResponse rules:\n1. You may explain resource structure, risk, modification suggestions, and rollback suggestions.\n2. If the user asks for a JVM change plan, output exactly one ```json code block, and limit JSON fields to targetType, selector, action, payload, and reason.\n3. Prefer actions declared by the current resource snapshot or metadata in supportedActions. If none are declared, infer cautiously from the snapshot.\n4. Prefer the current resource path for selector.resourcePath. If the path is unknown, state that exact targeting is unavailable instead of inventing a path.\n5. payload may only use {\"format\":\"json\",\"value\":{...}} or {\"format\":\"text\",\"value\":\"...\"}; do not output scripts, commands, or bare values.\n6. Do not output scripts, commands, or statements such as \"already executed successfully\".", "ai_chat.system.context.jvm_runtime_resource_path": "Current resource path: {{resourcePath}}", "ai_chat.system.context.jvm_runtime_resource_path_unselected": "No specific resource path is currently selected.", "ai_chat.system.context.no_connections": "no connections", "ai_chat.system.context.permission.allowed": "allowed", "ai_chat.system.context.permission.denied": "denied", "ai_chat.system.context.skill_prompt": "The active Skill \"{{skillName}}\" ({{skillDescription}}) applies to this response. Follow its constraints and workflow:{{requiredTools}}\n{{content}}", "ai_chat.system.context.skill_prompt_without_description": "The active Skill \"{{skillName}}\" applies to this response. Follow its constraints and workflow:{{requiredTools}}\n{{content}}", "ai_chat.system.context.skill_prompt.required_tools": "\nRequired tools: {{requiredTools}}", "ai_chat.system.inspection_guidance.inspect_ai_chat_readiness": "When the user asks why sending is unavailable, what configuration AI chat is missing, or whether the input area is ready, call inspect_ai_chat_readiness first to read the real pre-send state instead of judging from UI state alone.", "ai_chat.system.inspection_guidance.inspect_ai_context": "When the user asks about the current AI context, associated tables, or attached table schemas, call inspect_ai_context first to read the mounted table-schema context instead of repeating from memory.", "ai_chat.system.inspection_guidance.inspect_ai_context_budget": "When the user mentions slow AI, oversized context, too many table schemas, long tool results, unreliable answers, or needs context sizing before a complex task, call inspect_ai_context_budget first to read the size risks.", "ai_chat.system.inspection_guidance.inspect_ai_guidance": "When the user asks which prompts are attached, which Skills are active, why you answered that way, or what the current database/JVM prompt is, call inspect_ai_guidance first to read the real prompt and Skill configuration.", "ai_chat.system.inspection_guidance.inspect_ai_last_render_error": "When the user reports a blank AI message, failed bubble rendering, or a local message-block error without a full panel crash, call inspect_ai_last_render_error first to read the most recent isolated frontend render exception.", "ai_chat.system.inspection_guidance.inspect_ai_message_flow": "When the user reports replies split into multiple bubbles, no continuation after tool calls, wrong stream state, or one turn not appended to the same bubble, call inspect_ai_message_flow first to read the real message structure and unresolved tool calls.", "ai_chat.system.inspection_guidance.inspect_ai_providers": "When the user asks which providers are configured, why the model list is empty, whether an API Key is configured, or why sending is unavailable / no model is selected, call inspect_ai_providers first to read the real provider configuration.", "ai_chat.system.inspection_guidance.inspect_ai_runtime": "When the user asks about the active model, safety level, available tools, or enabled Skills / MCP tools, call inspect_ai_runtime first to read the real runtime state instead of answering from memory or assumptions.", "ai_chat.system.inspection_guidance.inspect_ai_safety": "When the user asks why writing is blocked, whether the current mode is read-only, whether DDL can run, or whether allowMutating should be passed, call inspect_ai_safety first to read the real safety boundary.", "ai_chat.system.inspection_guidance.inspect_ai_sessions": "When the user mentions a previous AI conversation, a prior discussion, or which recent session covered this problem, call inspect_ai_sessions first to read the local AI session list and previews.", "ai_chat.system.inspection_guidance.inspect_ai_setup_health": "When the user asks why AI is hard to use, requests a health check of the current AI configuration, or asks about obvious issues, call inspect_ai_setup_health first to get the overall state, then drill into providers, readiness, MCP, or guidance as needed.", "ai_chat.system.inspection_guidance.inspect_ai_support_bundle": "When the user asks to export troubleshooting material or prepare an AI, MCP, connection, log, and context issue for development, call inspect_ai_support_bundle first to create a bundle without secrets or database passwords, then drill down from warnings and nextActions.", "ai_chat.system.inspection_guidance.inspect_ai_tool_catalog": "When a question spans multiple features, you are unsure which built-in tool to call first, or the user asks about tool lists, parameter filling, or probe choice, call inspect_ai_tool_catalog first to read the real catalog, workflow, and parameter hints.", "ai_chat.system.inspection_guidance.inspect_ai_upstream_logs": "When the user mentions upstream AI requests, request body, requestId, model payloads, tools not triggering, or upstream error details, call inspect_ai_upstream_logs first to read the redacted request log and payload-structure summary.", "ai_chat.system.inspection_guidance.inspect_app_health": "When the user reports unstable AI behavior, requests an overall check, asks about obvious GoNavi AI issues, or wants connection, MCP, log, and reply-bubble diagnostics together, call inspect_app_health first to get the global health overview.", "ai_chat.system.inspection_guidance.inspect_app_logs": "When the user mentions gonavi.log, recent logs, startup errors, MCP startup failures, or database connection failures, call inspect_app_logs first to read the real application log tail and filter by keyword if needed.", "ai_chat.system.inspection_guidance.inspect_codebase_hotspots": "When the user mentions bloated multi-thousand-line files, splitting large components, which file to split next, or AI/MCP/UI change risk, call inspect_codebase_hotspots first to read hotspots, suggested slices, and test targets.", "ai_chat.system.inspection_guidance.inspect_connection_capabilities": "When the user asks why database create/delete/rename is unavailable, why result editing is unavailable, or which frontend actions this data source supports, call inspect_connection_capabilities first to read the real capability matrix.", "ai_chat.system.inspection_guidance.inspect_current_connection": "When the user asks about the current connection, current data source, connected database/address, or whether SSH/proxy is used, call inspect_current_connection first to read the active connection summary.", "ai_chat.system.inspection_guidance.inspect_external_sql_directories": "When the user mentions external SQL directories, scripts in a directory, a SQL file location, or where the current SQL file came from, call inspect_external_sql_directories first to read the real external SQL directory assets.", "ai_chat.system.inspection_guidance.inspect_external_sql_file": "When the user provides an external SQL file path or asks to inspect report.sql/job.sql in a directory, call inspect_external_sql_file first to read the real file content; if it is open in the editor, combine it with inspect_active_tab.", "ai_chat.system.inspection_guidance.inspect_mcp_authoring_guide": "When the user does not know how to fill command/args/env/timeout for a new MCP server, needs a node/uvx/python template, or asks why a startup command cannot be entered as one full line, call inspect_mcp_authoring_guide first; if a draft exists, call inspect_mcp_draft.", "ai_chat.system.inspection_guidance.inspect_mcp_draft": "When the user pastes an MCP README startup command or command/args/env/timeout draft, or asks how to fill an MCP command in GoNavi, call inspect_mcp_draft first to return splitting, launch preview, suggestedServerSeed, configuration errors/warnings, and nextActions.", "ai_chat.system.inspection_guidance.inspect_mcp_runtime_failures": "When the user mentions a failed new MCP test, zero discovered tools, MCP tool-call failures, stdio disconnects, Docker MCP exits, or HTTP MCP startup failures, call inspect_mcp_runtime_failures first to read real runtime failure logs and service discovery state.", "ai_chat.system.inspection_guidance.inspect_mcp_setup": "When the user asks about MCP configuration, whether Claude/Codex is connected to the GoNavi MCP, why an external client cannot use it, or which MCP services are enabled, call inspect_mcp_setup first to read the real configuration and external-client access state.", "ai_chat.system.inspection_guidance.inspect_mcp_tool_schema": "When the user asks how to fill MCP tool parameters, reports an argument error, or needs to write arguments JSON, call inspect_mcp_tool_schema first to read the real inputSchema; if the alias is unknown, call inspect_mcp_setup first.", "ai_chat.system.inspection_guidance.inspect_recent_connection_failures": "When the user asks why a connection fails, mentions cooldown, validation failure, SSH tunnel issues, or multiStatements / parameter compatibility exceptions, call inspect_recent_connection_failures first to read the real connection failure summary.", "ai_chat.system.inspection_guidance.inspect_recent_sql_activity": "When the user asks what ran recently, whether data was just deleted, whether recent work was mostly reads or writes, or which database had the most errors, call inspect_recent_sql_activity first to read the recent SQL activity summary.", "ai_chat.system.inspection_guidance.inspect_redis_topology": "When the user mentions Redis Sentinel/Cluster, Sentinel master, Redis Cluster multi-database behavior, Redis DB switching failure, or how to fill multiple Redis nodes, call inspect_redis_topology first to read the real topology, nodes, authentication state, and risk hints.", "ai_chat.system.inspection_guidance.inspect_saved_connections": "When the user asks which connections are stored locally, wants to find a MySQL/PostgreSQL/Redis connection, or asks which connection uses SSH/proxy, call inspect_saved_connections first to read the real local connection list.", "ai_chat.system.inspection_guidance.inspect_saved_queries": "When the user mentions saved queries, SQL history, a previous statement, or finding an earlier script, call inspect_saved_queries first to read locally saved queries, then decide whether to verify fields or reuse SQL.", "ai_chat.system.inspection_guidance.inspect_shortcuts": "When the user asks about shortcuts, Win/Mac key differences, result-area / AI panel / SQL execution combinations, or whether defaults were changed, call inspect_shortcuts first to read the real shortcut configuration and platform differences.", "ai_chat.system.inspection_guidance.inspect_sql_editor_transaction": "When the user asks about SQL editor manual commit/autocommit, uncommitted transactions, whether DML auto-commits, or transaction semantics, call inspect_sql_editor_transaction first to read the real commit settings and pending transactions.", "ai_chat.system.inspection_guidance.inspect_sql_risk": "When the user asks you to execute, delete, update, run DDL, run bulk SQL, or asks whether a SQL statement can run / is dangerous, call inspect_sql_risk first to check statement count, write/DDL risk, WHERE conditions, and safety policy; explain and confirm high risk first.", "ai_chat.system.inspection_guidance.inspect_sql_snippets": "When the user mentions SQL snippets, snippet templates, template prefixes, or common templates, call inspect_sql_snippets first to read the local SQL snippet library instead of inventing existing templates from memory.", "ai_chat.tools.mcp_fallback_description": "MCP tool {{toolName}} provided by {{serverName}}", "ai_chat.welcome.description.default": "I am your database assistant. I can help generate SQL queries, analyze schemas, explain execution logic, and optimize database performance.", "ai_chat.welcome.description.with_context": "{{count}} table structures are linked. Use the quick actions below to start analysis.", "ai_chat.welcome.suggestion.channel_distribution.default": "Order channel distribution for the past 7 days", "ai_chat.welcome.suggestion.channel_distribution.with_context": "Key channel distribution for the past 7 days", "ai_chat.welcome.suggestion.cleanup.default": "Help me write SQL to clean abnormal data", "ai_chat.welcome.suggestion.cleanup.with_context": "Help me write SQL to disable abnormal channels", "ai_chat.welcome.suggestion.divider": "Or ask directly", "ai_chat.welcome.suggestion.low_rows.default": "Why does the current result have so few rows?", "ai_chat.welcome.suggestion.low_rows.with_context": "Why does {{table}} have only a few rows?", "ai_chat.welcome.title": "Hi, I am GoNavi AI", "ai_service.backend.builtin_prompt.body.data_analyze": "You are the GoNavi AI assistant, a senior data analysis expert with sharp business instincts. Review the data sample produced by the user's query and extract the valuable information hidden in it.\n\nInsight goals:\n1. Hard statistics: summarize the overall row count and key numeric metrics, such as extremes, averages, and aggregate medians.\n2. Trends and anomalies: if the data contains timestamps, detect rising or falling trends; if there are outliers, highlight them clearly.\n3. Business value mining: do not merely translate the data. Combine the visible data patterns with AI judgment and give one constructive action suggestion that can help business decision makers or developers.\n4. Presentation format: structure the analysis as a concise mini report with a title and condensed bullet points, and avoid flat, mechanical narration.", "ai_service.backend.builtin_prompt.body.general_chat": "You are the GoNavi AI assistant, a dedicated expert system deeply integrated into the GoNavi database and cache client.\nYour goal is to be the most useful second brain for developers, DBAs, and data scientists by providing professional, precise, and forward-looking data-side solutions.\n\nCore persona and interaction tone:\n- Professionally grounded: make sound judgments about database products such as MySQL, PostgreSQL, DuckDB, and Redis, including execution plans, indexing, and storage behavior.\n- Direct and practical: avoid empty chatter. When the user's intent is clear, lead with elegant code or steps they can use directly.\n- Structured and readable: use Markdown headings, emphasis, and fenced code blocks with the correct language identifier, such as sql, json, or bash.\n- Production safety first: if a SQL statement may create serious risk, such as DELETE or UPDATE without a WHERE clause or a query that can lock a large production table, raise a clear warning before proceeding.\n\nCapability map:\n1. Natural-language to data operations: translate human intent into accurate queries or commands.\n2. Execution reasoning: explain the logic and performance implications behind queries.\n3. Expert optimization: identify bottlenecks and propose indexing or rewrite strategies.\n4. Data insight: extract meaningful patterns from result sets instead of merely restating rows.\n5. Architecture review: evaluate schema design limitations and suggest evolution paths that can withstand data growth.\n\nInteraction rules:\n- Use professional, collaborative language and adapt to the user's selected interface language.\n- When asked for database code, combine the answer with the relevant engine's best practices. If the exact version is unknown, use a standards-oriented baseline and note important version differences, such as MySQL 8 window functions.\n- Do not refuse too quickly: if the user asks for SQL but no detailed DDL is attached, use the conversation context and any plain table-name list to infer the likely target table. If inference is not possible, explain what is known and ask which table they want to query.", "ai_service.backend.builtin_prompt.body.schema_insight": "You are the GoNavi AI assistant, a chief database architect responsible for the full database lifecycle. In this mode, perform a strict normalization and forward-looking review of the table structures provided by the user.\n\nReview lens:\n1. Normalization trade-offs: identify obvious denormalized designs and judge whether the redundancy supports performance appropriately or is simply a design flaw.\n2. Index robustness review: assess primary key choices, such as auto-increment keys versus UUIDs, redundant indexes that slow writes, and missing high-frequency composite indexes.\n3. Physical capacity foresight: inspect data type allocation, such as oversized VARCHAR fields or unnecessary BIGINT columns that may waste storage.\n4. Code-level guidance: when structural defects exist, do not only complain. Provide concrete ALTER TABLE improvement scripts where appropriate.", "ai_service.backend.builtin_prompt.body.sql_explain": "You are the GoNavi AI assistant, a senior database engineer with deep practical experience. Explain the underlying intent and execution logic of the user's SQL statement in professional, well-structured, and approachable developer language.\n\nExplanation guidelines:\n1. Macro logic breakdown: summarize in one concise sentence what business problem this SQL is trying to solve.\n2. Step-by-step execution walkthrough: break down each key clause in the executor's real order, such as FROM -> JOIN -> WHERE -> GROUP BY -> SELECT -> ORDER BY.\n3. Performance risk scan: point out likely performance traps, such as implicit type conversions, function calls that prevent index usage, possible Cartesian products, or full table scans.\n4. Rigorous formatting: use lists for key points, emphasize important terms in bold, and keep long explanations readable.", "ai_service.backend.builtin_prompt.body.sql_generate": "You are the GoNavi AI assistant, an expert database developer and SQL query builder. Generate accurate, elegant, and high-performance SQL queries or Redis commands from the user's natural-language request.\n\nStrict output rules:\n1. Prioritize pure code output: always place code in a markdown code block with the correct language identifier, such as sql or bash.\n2. Stay concise: avoid excessive preamble and get straight to the answer.\n3. Protect production safety: prefer parameterized queries or defensive patterns to prevent SQL injection. For DELETE or UPDATE statements without explicit conditions, raise a strong red-line warning.\n4. Optimize for performance: add reasonable LIMIT clauses for large queries by default, such as LIMIT 100, and prefer efficient patterns for JOIN and aggregation.\n5. Comment only when helpful: for complex nested logic, add brief single-line comments inside the code block to explain the idea.", "ai_service.backend.builtin_prompt.body.sql_optimize": "You are the GoNavi AI assistant, a full-stack performance engineer and senior DBA with experience leading high-concurrency systems at large scale. Diagnose the user's original SQL with cold precision and provide a performance refactoring prescription.\n\nDiagnosis and prescription requirements:\n1. Performance bottleneck scan: identify the statement's weak points precisely, such as an unreasonable driving table, inability to use covering indexes, or unnecessary subqueries.\n2. Refactored SQL: if there is room for performance improvement, show the user a thoroughly optimized high-performance version while preserving logical equivalence.\n3. Explain the cause: do not only say what to change; explain why the executor will run faster after the change.\n4. Index construction advice: when the current structure cannot support the workload, propose concrete DDL-level CREATE INDEX statements and state the basis, such as leftmost-prefix matching.\n5. Priority assessment: end the answer by marking the urgency of the optimization advice, using high for blocking or lock-risk issues, medium for throughput bottlenecks, and low for long-term tuning.", "ai_service.backend.builtin_prompt.title.data_analyze": "Data insight analyst", "ai_service.backend.builtin_prompt.title.general_chat": "General chat assistant", "ai_service.backend.builtin_prompt.title.schema_insight": "Schema reviewer", "ai_service.backend.builtin_prompt.title.sql_explain": "SQL explainer", "ai_service.backend.builtin_prompt.title.sql_generate": "SQL generator", "ai_service.backend.builtin_prompt.title.sql_optimize": "SQL optimizer", "ai_service.backend.database_context.column_comment": "Comment", "ai_service.backend.database_context.column_name": "Column", "ai_service.backend.database_context.column_nullable": "Nullable", "ai_service.backend.database_context.column_primary_key": "Primary key", "ai_service.backend.database_context.column_type": "Type", "ai_service.backend.database_context.database_name": "Database name: {{name}}", "ai_service.backend.database_context.database_type": "Database type: {{type}}", "ai_service.backend.database_context.indexes": "**Indexes:**", "ai_service.backend.database_context.row_count": "[about {{count}} rows]", "ai_service.backend.database_context.sample_data": "**Sample data ({{count}} rows):**", "ai_service.backend.database_context.table_heading": "#### Table: {{table}}", "ai_service.backend.database_context.table_schema": "### Table structure", "ai_service.backend.database_context.title": "## Current database context", "ai_service.backend.database_context.unique_index": " (unique)", "ai_service.backend.database_context.value_no": "No", "ai_service.backend.database_context.value_yes": "Yes", "ai_service.backend.error.active_provider_not_found": "Active AI Provider was not found", "ai_service.backend.error.config_dir_create_failed": "Failed to create configuration directory: {{detail}}", "ai_service.backend.error.config_load_failed": "Failed to load AI configuration: {{detail}}", "ai_service.backend.error.config_read_failed": "Failed to read AI configuration: {{detail}}", "ai_service.backend.error.config_rewrite_failed": "Failed to rewrite AI configuration: {{detail}}", "ai_service.backend.error.config_serialize_failed": "Failed to serialize AI configuration: {{detail}}", "ai_service.backend.error.config_write_failed": "Failed to write AI configuration: {{detail}}", "ai_service.backend.error.daily_secret_store_unavailable": "Daily secret store is unavailable: {{detail}}", "ai_service.backend.error.editable_provider_not_found": "AI Provider to edit was not found: {{detail}}", "ai_service.backend.error.mcp_command_required": "MCP command cannot be empty", "ai_service.backend.error.mcp_http_executable_resolve_failed": "Failed to resolve the GoNavi executable: {{detail}}", "ai_service.backend.error.mcp_http_health_status_failed": "Healthz returned HTTP {{statusCode}}", "ai_service.backend.error.mcp_http_process_exited": "GoNavi MCP HTTP service stopped unexpectedly: {{detail}}", "ai_service.backend.error.mcp_http_start_failed": "Failed to start GoNavi MCP HTTP service: {{detail}}", "ai_service.backend.error.mcp_http_stop_failed": "Failed to stop GoNavi MCP HTTP service: {{detail}}", "ai_service.backend.error.mcp_http_subprocess_exited": "MCP HTTP subprocess exited", "ai_service.backend.error.mcp_http_token_generate_failed": "Failed to generate MCP HTTP Token: {{detail}}", "ai_service.backend.error.mcp_server_disabled": "MCP server is disabled: {{name}}", "ai_service.backend.error.mcp_server_not_found": "MCP server was not found: {{serverID}}", "ai_service.backend.error.mcp_tool_alias_invalid": "Invalid MCP tool alias: {{alias}}", "ai_service.backend.error.mcp_tool_arguments_parse_failed": "Failed to parse MCP tool arguments: {{detail}}", "ai_service.backend.error.mcp_transport_unsupported": "Unsupported MCP transport: {{transport}}", "ai_service.backend.error.models_http_status_failed": "Model list endpoint returned an unexpected status (HTTP {{status}}){{body}}", "ai_service.backend.error.models_parse_failed": "Failed to parse model list: {{detail}}", "ai_service.backend.error.models_remote_unsupported": "Remote model listing is not supported for the current provider", "ai_service.backend.error.models_request_create_failed": "Failed to create model list request: {{detail}}", "ai_service.backend.error.models_request_failed": "Failed to request model list: {{detail}}", "ai_service.backend.error.provider_auth_failed": "API key is invalid or the request was rejected (HTTP {{status}}){{body}}", "ai_service.backend.error.provider_http_server_error": "Upstream server returned an internal error (HTTP {{status}}){{body}}", "ai_service.backend.error.provider_http_status_failed": "Endpoint returned an unexpected status (HTTP {{status}}){{body}}", "ai_service.backend.error.provider_not_configured": "AI Provider is not configured. Configure one in Settings first.", "ai_service.backend.error.provider_request_create_failed": "Failed to create request: {{detail}}", "ai_service.backend.error.provider_request_serialize_failed": "Failed to serialize request: {{detail}}", "ai_service.backend.error.provider_secret_bundle_parse_failed": "Failed to parse provider secret bundle: {{detail}}", "ai_service.backend.error.provider_secret_delete_failed": "Failed to delete Provider secret: {{detail}}", "ai_service.backend.error.provider_secret_load_failed": "Failed to load AI Provider secret (provider={{provider}}): {{detail}}", "ai_service.backend.error.provider_secret_read_failed": "Failed to read Provider secret: {{detail}}", "ai_service.backend.error.provider_secret_save_failed": "Failed to save Provider secret: {{detail}}", "ai_service.backend.error.provider_secret_saved_read_failed": "Failed to read saved Provider secret: {{detail}}", "ai_service.backend.error.provider_test_failed": "Connection test failed: {{detail}}", "ai_service.backend.error.secret_store_unavailable": "Secret store is unavailable: {{detail}}", "ai_service.backend.error.session_corrupt": "Session data is corrupted", "ai_service.backend.error.session_delete_failed": "Failed to delete session: {{detail}}", "ai_service.backend.error.session_missing": "Session does not exist", "ai_service.backend.error.session_provider_messages_serialize_failed": "Failed to serialize session provider messages: {{detail}}", "ai_service.backend.error.session_serialize_failed": "Failed to serialize session data: {{detail}}", "ai_service.backend.error.session_write_failed": "Failed to save session: {{detail}}", "ai_service.backend.error.sessions_dir_create_failed": "Failed to create sessions directory: {{detail}}", "ai_service.backend.error.volcengine_coding_models_empty": "The current endpoint did not return any available Volcengine Coding Plan models. Check account access or switch to the \"Volcengine Ark\" provider", "ai_service.backend.message.mcp_test_success": "MCP server connection succeeded; discovered {{count}} tools", "ai_service.backend.message.provider_test_success": "Endpoint connectivity test succeeded", "ai_service.backend.message.skill_unnamed": "Unnamed Skill", "ai_service.backend.provider.image_fallback_prompt": "Please describe and analyze this image.", "ai_service.backend.provider.image_omitted_notice": "[Image omitted: the current model or upstream API does not support image input. Switch to a vision-capable model and resend the image.]", "ai_service.backend.warning.sql_delete_without_where": "High-risk SQL: DELETE without WHERE will delete all rows", "ai_service.backend.warning.sql_drop": "High-risk SQL: DROP permanently deletes database objects", "ai_service.backend.warning.sql_truncate": "High-risk SQL: TRUNCATE removes all rows from the table", "ai_service.backend.warning.sql_update_without_where": "High-risk SQL: UPDATE without WHERE will update all rows", "ai_settings.action.back": "Back", "ai_settings.action.connection_ok": "Connection OK", "ai_settings.action.retest": "Test again", "ai_settings.action.save": "Save", "ai_settings.action.test": "Test connection", "ai_settings.clipboard.error.unsupported": "Copying to the clipboard is not supported in this environment", "ai_settings.context.description": "Control how much database context is sent to AI", "ai_settings.context.schema_only.desc": "Only table and column structure is sent to AI", "ai_settings.context.schema_only.label": "Schema only", "ai_settings.context.with_results.desc": "Send recent query results as context", "ai_settings.context.with_results.label": "With query results", "ai_settings.context.with_samples.desc": "Include a small amount of sample data to help AI understand data patterns", "ai_settings.context.with_samples.label": "With samples", "ai_settings.form.api_endpoint": "API Endpoint (URL)", "ai_settings.form.api_endpoint_placeholder.codebuddy": "Leave blank to use the default CodeBuddy CLI gateway", "ai_settings.form.api_endpoint_required": "Enter a valid endpoint URL", "ai_settings.form.api_format": "API format", "ai_settings.form.api_key": "API Key", "ai_settings.form.api_key_keep_placeholder": "Leave blank to keep using the saved secret", "ai_settings.form.api_key_placeholder": "sk-... / your API Key", "ai_settings.form.api_key_placeholder.codebuddy": "Leave blank to use the local sign-in, or enter API Key / Token to override", "ai_settings.form.api_key_required": "Enter an API Key", "ai_settings.form.api_key_saved_hint": "An API Key is already saved. Leave blank to keep it, or enter a new value to replace it.", "ai_settings.form.api_key.codebuddy_hint": "Leave blank to use the signed-in CodeBuddy CLI account on this machine; if filled, the current credential overrides it.", "ai_settings.form.api_key.codebuddy_optional": "API Key / Auth Token (optional)", "ai_settings.form.clear_saved_api_key": "Clear saved API Key", "ai_settings.form.model_list": "Available model list (optional)", "ai_settings.form.model_list_placeholder": "Configure model IDs; leave blank to fetch them from the server", "ai_settings.form.model_list_placeholder.codebuddy": "Optional: prefill common models; leave blank to let CodeBuddy CLI or the service choose automatically", "ai_settings.form.model_list_placeholder.cursor": "Optional: prefill common Cursor model IDs; leave blank to use Cursor's default model automatically", "ai_settings.form.provider_name": "Provider name", "ai_settings.form.provider_name_placeholder": "Example: My OpenAI-compatible endpoint / private model", "ai_settings.form.provider_name_required": "Enter a name", "ai_settings.form.section.auth_connection": "Authentication & connection", "ai_settings.form.section.basic": "Basic information", "ai_settings.form.section.service_type": "Service type", "ai_settings.mcp_http.error.control_unsupported_runtime": "The current runtime does not support MCP HTTP server control", "ai_settings.mcp_http.error.start_unsupported_version": "This version does not support starting the MCP HTTP server", "ai_settings.mcp_http.error.stop_unsupported_version": "This version does not support stopping the MCP HTTP server", "ai_settings.mcp_http.message.authorization_header_copied": "Authorization Header copied", "ai_settings.mcp_http.message.authorization_header_required": "Start the MCP HTTP server first to generate the Authorization Header", "ai_settings.mcp_http.message.started": "GoNavi MCP HTTP server started", "ai_settings.mcp_http.message.stopped": "GoNavi MCP HTTP server stopped", "ai_settings.mcp_http.message.toggle_failed": "Failed to switch GoNavi MCP HTTP server", "ai_settings.mcp_http.message.url_copied": "MCP HTTP URL copied", "ai_settings.mcp_http.message.url_unavailable": "No MCP HTTP URL is available to copy", "ai_settings.mcp_http.panel.addr_label": "Listen address / port", "ai_settings.mcp_http.panel.authorization_placeholder": "Bearer gnv_xxx (leave empty to generate automatically)", "ai_settings.mcp_http.panel.copy_authorization": "Copy Authorization", "ai_settings.mcp_http.panel.copy_url": "Copy URL", "ai_settings.mcp_http.panel.description": "For remote Agents such as OpenClaw and Hermans. When enabled, it listens on a local address and only exposes structure-reading tools for connections, databases, tables, columns, and DDL.", "ai_settings.mcp_http.panel.running_hint": "The service is running. Configure the URL and Authorization Header in the remote MCP client.", "ai_settings.mcp_http.panel.status.running": "Running", "ai_settings.mcp_http.panel.status.stopped": "Stopped", "ai_settings.mcp_http.panel.stopped_hint": "You can customize the local listen port and Bearer Token. If Authorization is empty, a random Token is generated on startup.", "ai_settings.mcp_http.panel.switch.off": "Off", "ai_settings.mcp_http.panel.switch.on": "On", "ai_settings.mcp_http.panel.title": "GoNavi MCP HTTP service", "ai_settings.mcp_http.status.not_running": "GoNavi MCP HTTP server is not running", "ai_settings.mcp_server.argument_hints.action_separator": "; ", "ai_settings.mcp_server.argument_hints.argument_details": "Argument details", "ai_settings.mcp_server.argument_hints.business_arguments": "Detected business arguments", "ai_settings.mcp_server.argument_hints.business.access_token.detail": "Pass authentication data only when the README requires a command argument; prefer environment variables.", "ai_settings.mcp_server.argument_hints.business.access_token.label": "Access Token", "ai_settings.mcp_server.argument_hints.business.access_token.value_hint": "Use the real value locally; do not paste it into chat or screenshots.", "ai_settings.mcp_server.argument_hints.business.api_key.detail": "Pass authentication data only when the README requires a command argument; prefer environment variables.", "ai_settings.mcp_server.argument_hints.business.api_key.label": "API Key", "ai_settings.mcp_server.argument_hints.business.api_key.value_hint": "Use the real value locally; do not paste it into chat or screenshots.", "ai_settings.mcp_server.argument_hints.business.base_url.detail": "Specifies a service address or API entry point needed by the MCP service.", "ai_settings.mcp_server.argument_hints.business.base_url.label": "Base URL", "ai_settings.mcp_server.argument_hints.business.base_url.value_hint": "Enter the full address without embedding secrets in the URL.", "ai_settings.mcp_server.argument_hints.business.config_file.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.config_file.label": "Config file", "ai_settings.mcp_server.argument_hints.business.config_file.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.config.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.config.label": "Config file", "ai_settings.mcp_server.argument_hints.business.config.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.dir.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.dir.label": "Directory", "ai_settings.mcp_server.argument_hints.business.dir.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.directory.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.directory.label": "Allowed directory", "ai_settings.mcp_server.argument_hints.business.directory.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.endpoint.detail": "Specifies a service address or API entry point needed by the MCP service.", "ai_settings.mcp_server.argument_hints.business.endpoint.label": "Endpoint", "ai_settings.mcp_server.argument_hints.business.endpoint.value_hint": "Enter the full address without embedding secrets in the URL.", "ai_settings.mcp_server.argument_hints.business.executable_path.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.executable_path.label": "Browser or executable path", "ai_settings.mcp_server.argument_hints.business.executable_path.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.headless.detail": "Controls runtime behavior for the launched MCP process.", "ai_settings.mcp_server.argument_hints.business.headless.label": "Headless mode", "ai_settings.mcp_server.argument_hints.business.headless.value_hint": "Usually a switch argument; confirm whether an extra value is required.", "ai_settings.mcp_server.argument_hints.business.host.detail": "Configures a host, port, or network option used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.host.label": "Host address", "ai_settings.mcp_server.argument_hints.business.host.value_hint": "Use the host or port documented by the README.", "ai_settings.mcp_server.argument_hints.business.inferred_endpoint.detail": "Specifies a service address or API entry point needed by the MCP service.", "ai_settings.mcp_server.argument_hints.business.inferred_endpoint.label": "Address / endpoint", "ai_settings.mcp_server.argument_hints.business.inferred_endpoint.value_hint": "Enter the full address without embedding secrets in the URL.", "ai_settings.mcp_server.argument_hints.business.inferred_mode.detail": "Controls the transport, profile, permission, or runtime mode for the MCP service.", "ai_settings.mcp_server.argument_hints.business.inferred_mode.label": "Mode argument", "ai_settings.mcp_server.argument_hints.business.inferred_mode.value_hint": "Use the enum value or switch semantics documented by the README.", "ai_settings.mcp_server.argument_hints.business.inferred_path.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.inferred_path.label": "Path / config", "ai_settings.mcp_server.argument_hints.business.inferred_path.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.mode.detail": "Controls the transport, profile, permission, or runtime mode for the MCP service.", "ai_settings.mcp_server.argument_hints.business.mode.label": "Run mode", "ai_settings.mcp_server.argument_hints.business.mode.value_hint": "Use the enum value or switch semantics documented by the README.", "ai_settings.mcp_server.argument_hints.business.password.detail": "Pass authentication data only when the README requires a command argument; prefer environment variables.", "ai_settings.mcp_server.argument_hints.business.password.label": "Password", "ai_settings.mcp_server.argument_hints.business.password.value_hint": "Use the real value locally; do not paste it into chat or screenshots.", "ai_settings.mcp_server.argument_hints.business.path.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.path.label": "Path", "ai_settings.mcp_server.argument_hints.business.path.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.port.detail": "Configures a host, port, or network option used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.port.label": "Port", "ai_settings.mcp_server.argument_hints.business.port.value_hint": "Use the host or port documented by the README.", "ai_settings.mcp_server.argument_hints.business.profile.detail": "Controls the transport, profile, permission, or runtime mode for the MCP service.", "ai_settings.mcp_server.argument_hints.business.profile.label": "Profile", "ai_settings.mcp_server.argument_hints.business.profile.value_hint": "Use the enum value or switch semantics documented by the README.", "ai_settings.mcp_server.argument_hints.business.read_only.detail": "Controls the transport, profile, permission, or runtime mode for the MCP service.", "ai_settings.mcp_server.argument_hints.business.read_only.label": "Read-only mode", "ai_settings.mcp_server.argument_hints.business.read_only.value_hint": "Use the enum value or switch semantics documented by the README.", "ai_settings.mcp_server.argument_hints.business.readonly.detail": "Controls the transport, profile, permission, or runtime mode for the MCP service.", "ai_settings.mcp_server.argument_hints.business.readonly.label": "Read-only mode", "ai_settings.mcp_server.argument_hints.business.readonly.value_hint": "Use the enum value or switch semantics documented by the README.", "ai_settings.mcp_server.argument_hints.business.repo.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.repo.label": "Repository path", "ai_settings.mcp_server.argument_hints.business.repo.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.root.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.root.label": "Root directory", "ai_settings.mcp_server.argument_hints.business.root.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.secret.detail": "Pass authentication data only when the README requires a command argument; prefer environment variables.", "ai_settings.mcp_server.argument_hints.business.secret.label": "Secret", "ai_settings.mcp_server.argument_hints.business.secret.value_hint": "Use the real value locally; do not paste it into chat or screenshots.", "ai_settings.mcp_server.argument_hints.business.short_config.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.short_config.label": "Config file", "ai_settings.mcp_server.argument_hints.business.short_config.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.business.token.detail": "Pass authentication data only when the README requires a command argument; prefer environment variables.", "ai_settings.mcp_server.argument_hints.business.token.label": "Token", "ai_settings.mcp_server.argument_hints.business.token.value_hint": "Use the real value locally; do not paste it into chat or screenshots.", "ai_settings.mcp_server.argument_hints.business.transport.detail": "Controls the transport, profile, permission, or runtime mode for the MCP service.", "ai_settings.mcp_server.argument_hints.business.transport.label": "Transport mode", "ai_settings.mcp_server.argument_hints.business.transport.value_hint": "Use the enum value or switch semantics documented by the README.", "ai_settings.mcp_server.argument_hints.business.url.detail": "Specifies a service address or API entry point needed by the MCP service.", "ai_settings.mcp_server.argument_hints.business.url.label": "Service URL", "ai_settings.mcp_server.argument_hints.business.url.value_hint": "Enter the full address without embedding secrets in the URL.", "ai_settings.mcp_server.argument_hints.business.workspace.detail": "Points to a local file, directory, repository, or executable used by the MCP service.", "ai_settings.mcp_server.argument_hints.business.workspace.label": "Workspace directory", "ai_settings.mcp_server.argument_hints.business.workspace.value_hint": "Use an absolute local path and grant the smallest necessary scope.", "ai_settings.mcp_server.argument_hints.category.endpoint": "Endpoint", "ai_settings.mcp_server.argument_hints.category.generic": "Business", "ai_settings.mcp_server.argument_hints.category.mode": "Mode", "ai_settings.mcp_server.argument_hints.category.network": "Network", "ai_settings.mcp_server.argument_hints.category.path": "Path", "ai_settings.mcp_server.argument_hints.category.runtime": "Runtime", "ai_settings.mcp_server.argument_hints.category.secret": "Sensitive", "ai_settings.mcp_server.argument_hints.command_field_warning": "The startup command field still contains {{count}} arguments: {{args}}. Keep only {{command}} in command and move the rest to command arguments.", "ai_settings.mcp_server.argument_hints.current_command": "Current command {{command}} argument hints", "ai_settings.mcp_server.argument_hints.detail.docker_cleanup.detail": "Automatically remove temporary containers after testing and daily use to avoid leftovers.", "ai_settings.mcp_server.argument_hints.detail.docker_cleanup.label": "Clean up container after exit", "ai_settings.mcp_server.argument_hints.detail.docker_cleanup.value_hint": "This is a switch argument and does not need an extra value.", "ai_settings.mcp_server.argument_hints.detail.docker_image_or_arg.detail": "This is the image name in docker run or a positional argument passed to the MCP service inside the container.", "ai_settings.mcp_server.argument_hints.detail.docker_image_or_arg.label": "Docker image or container argument", "ai_settings.mcp_server.argument_hints.detail.docker_image_or_arg.value_hint": "The image name should come from the MCP README; arguments after the image are passed to the container entrypoint.", "ai_settings.mcp_server.argument_hints.detail.docker_interactive.detail": "MCP stdio needs container stdin to stay open; otherwise tool discovery may disconnect right after startup.", "ai_settings.mcp_server.argument_hints.detail.docker_interactive.label": "Keep standard input", "ai_settings.mcp_server.argument_hints.detail.docker_interactive.value_hint": "This is a key Docker MCP argument.", "ai_settings.mcp_server.argument_hints.detail.docker_run.detail": "Starts a container to run the MCP Server.", "ai_settings.mcp_server.argument_hints.detail.docker_run.label": "Docker run subcommand", "ai_settings.mcp_server.argument_hints.detail.docker_run.value_hint": "Usually the first argument after docker.", "ai_settings.mcp_server.argument_hints.detail.npm_package_or_arg.detail": "Usually the npm package name from the README, but it may also be a package-specific business argument.", "ai_settings.mcp_server.argument_hints.detail.npm_package_or_arg.label": "MCP package or positional argument", "ai_settings.mcp_server.argument_hints.detail.npm_package_or_arg.value_hint": "The package name usually goes after -y and before --stdio; business arguments follow the README.", "ai_settings.mcp_server.argument_hints.detail.positional.detail": "This argument has no flag name; GoNavi passes it to the MCP process unchanged in the current order.", "ai_settings.mcp_server.argument_hints.detail.positional.label": "Positional argument", "ai_settings.mcp_server.argument_hints.detail.positional.value_hint": "Check the README to decide whether it is a package name, path, image name, or business argument.", "ai_settings.mcp_server.argument_hints.detail.python_module_flag.detail": "Indicates that the next argument is a Python module name, not a script path.", "ai_settings.mcp_server.argument_hints.detail.python_module_flag.label": "Python module launch", "ai_settings.mcp_server.argument_hints.detail.python_module_flag.value_hint": "Add the module name next, for example your_mcp_server.", "ai_settings.mcp_server.argument_hints.detail.python_module_name.detail": "This is the module name after -m; do not include a .py suffix.", "ai_settings.mcp_server.argument_hints.detail.python_module_name.label": "Python module name", "ai_settings.mcp_server.argument_hints.detail.python_module_name.value_hint": "Follow the startup example in the README.", "ai_settings.mcp_server.argument_hints.detail.python_script_or_arg.detail": "Usually a local Python MCP script path, or a positional argument passed to the script.", "ai_settings.mcp_server.argument_hints.detail.python_script_or_arg.label": "Python script or positional argument", "ai_settings.mcp_server.argument_hints.detail.python_script_or_arg.value_hint": "Follow the startup example in the README.", "ai_settings.mcp_server.argument_hints.detail.script_or_arg.detail": "Usually the entry script for a local MCP Server; values after the script are passed as business arguments.", "ai_settings.mcp_server.argument_hints.detail.script_or_arg.label": "Script or positional argument", "ai_settings.mcp_server.argument_hints.detail.script_or_arg.value_hint": "Use a relative or absolute path accessible on this machine for the entry script.", "ai_settings.mcp_server.argument_hints.detail.sensitive_value_detail": "This is the sensitive value for the previous {{argument}} argument; it is masked in the hint.", "ai_settings.mcp_server.argument_hints.detail.skip_install_confirm.detail": "Avoid waiting for interactive confirmation when npx starts a package for the first time; useful for background tool discovery.", "ai_settings.mcp_server.argument_hints.detail.skip_install_confirm.label": "Skip install confirmation", "ai_settings.mcp_server.argument_hints.detail.skip_install_confirm.value_hint": "This is a switch argument and does not need an extra value.", "ai_settings.mcp_server.argument_hints.detail.stdio.detail": "Let the MCP Server communicate with GoNavi through standard input and output.", "ai_settings.mcp_server.argument_hints.detail.stdio.label": "stdio communication mode", "ai_settings.mcp_server.argument_hints.detail.stdio.value_hint": "This is a switch argument and usually does not need an extra value.", "ai_settings.mcp_server.argument_hints.detail.uvx_package_or_arg.detail": "uvx is usually followed by the MCP package name; later positional arguments are passed to that MCP service.", "ai_settings.mcp_server.argument_hints.detail.uvx_package_or_arg.label": "Python MCP package or positional argument", "ai_settings.mcp_server.argument_hints.detail.uvx_package_or_arg.value_hint": "The first positional argument should be the package name from the README.", "ai_settings.mcp_server.argument_hints.detail.value_detail": "This is the value for the previous {{argument}} argument.", "ai_settings.mcp_server.argument_hints.detail.value_label": "{{label}} value", "ai_settings.mcp_server.argument_hints.dont_screenshot": "Do not screenshot the real value", "ai_settings.mcp_server.argument_hints.fill_missing_required": "Fill missing required arguments: {{args}}", "ai_settings.mcp_server.argument_hints.generic.detail": "GoNavi cannot infer the business meaning of --{{flag}} from the argument name, but it will pass it to the MCP process in the current order.", "ai_settings.mcp_server.argument_hints.generic.label": "Unrecognized argument", "ai_settings.mcp_server.argument_hints.generic.value_hint": "Check the MCP README to confirm whether this argument needs a value; if it does, put the value as the next argument tag or use --name=value.", "ai_settings.mcp_server.argument_hints.hidden_value": "", "ai_settings.mcp_server.argument_hints.masked_value": "Value is masked", "ai_settings.mcp_server.argument_hints.next_action.add_step": "Add {{label}}, example: {{example}}", "ai_settings.mcp_server.argument_hints.next_actions": "Next: {{actions}}", "ai_settings.mcp_server.argument_hints.possible_secret_hidden": "