export default {
  aiTool: {
    running: '执行中…',
    approve: '批准执行',
    reject: '拒绝',
    approveAll: '全部批准 {n} 项',
    rejectAll: '全部拒绝',
    rejectedHint: '用户拒绝了此操作',
    // B-260616-12:工具执行超时提示(前端降级,无后端取消 IPC)
    executionSlow: '工具「{name}」执行较久，请稍候…',
    // BUG-260624-02:审批挂起时长提示(>2分钟橙色,>5分钟红色)
    waitTime: '⏱ 已等待 {time}',
    // UX-260616-01:工具执行失败视觉标识(AR-6 下 status=completed,需红色区分于成功)
    executionFailed: '执行失败',
    executionFailedHint: '工具执行失败,详情见下方',
    collapse: '收起',
    expandAll: '展开全部',
    expand: '展开',
    collapseAll: '全部收起',
    written: '已写入',
    items: '项',
    lines: '行',
    // UX-260618-08/11:截断提示(read_file 分页截断 / list_directory 1000 上限截断)
    linesTruncated: '{shown}/{total} 行,已截断',
    dirTruncated: '已截断,仅前 {n} 项',

    // 工具显示名(含路径摘要前缀,fallback 兜底)
    readPrefix: '读取',
    readFallback: '读取文件',
    dirPrefix: '目录',
    dirFallback: '列出目录',
    writePrefix: '写入',
    writeFallback: '写入文件',
    // grep 跨文件内容搜索头部(F-260621)
    grepPrefix: '搜索',
    grepFallback: '内容搜索',
    // CRUD 类工具显示名(delete/restore/purge/update_project 按 id 解析项目名;无 id 或解析失败走 fallback)
    deletePrefix: '删除项目',
    deleteFallback: '删除项目',
    restorePrefix: '恢复项目',
    restoreFallback: '从回收站恢复项目',
    purgePrefix: '彻底删除项目',
    purgeFallback: '彻底删除项目',
    updatePrefix: '更新项目',
    updateFallback: '更新项目',
    createTask: '创建任务',
    createProject: '创建项目',

    // completed 结果摘要(header 折叠态可见)
    taskCount: '{n} 项任务',
    projectCount: '{n} 个项目',
    ideaCount: '{n} 条灵感',
    // UX-260618-10/12:list_trash 折叠态计数 + 分页 has_more 提示(后端返 {items,total,has_more} 对象)
    trashCount: '回收站 {n} 项',
    listHasMore: '(已显示 {n} 项,还有更多)',
    createdWithName: '已创建：{name}',
    created: '已创建',
    updatedField: '已更新 {field}',
    updated: '已更新',
    deleted: '已删除',
    deleteIneffective: '删除未生效',
    restored: '已恢复',
    restoreIneffective: '恢复未生效（项目不在回收站）',
    purged: '已彻底删除',
    purgeIneffective: '清除未生效',
    workflowHint: '请到工作流页面运行',
    // UX-260618-05:run_workflow tool_result 显 execution_id(workflowHint 误导——工作流已触发;旧 key 保留防他处引用)
    workflowTriggered: '任务 {id} 已触发工作流(推进至 {status},执行实例 {exec})',
    workflowTriggeredShort: '执行实例 {exec}',

    // UX-260616-04:formatToolResult 覆盖全部工具产出人类可读摘要(补缺失 key)
    updatedTaskField: '任务「{title}」已更新字段 {field}',
    advancedTask: '任务「{title}」已推进至 {status}',
    // UX-260618-09:advance_task 退回累加轮数(>0 才显);UX-260618-14:{title} 显任务名(后端返 TaskRecord),回退 id
    advancedTaskWithRounds: '任务「{title}」已推进至 {status}(已退回 {n} 次)',
    commandOk: '命令成功（{ms} 毫秒）',
    commandFailed: '命令失败（退出码 {code}）',
    commandOutputLines: '{n} 行输出',
    patchedFile: '已修改 {path}（增减 {diff} 字节）',
    // UX-260618-06:patch_file 多匹配提示 + size_diff 单位
    patchedMatches: '匹配 {n} 处',
    bytesUnit: '字节',
    patchedNoChange: '{path} 无更改',
    appendedTo: '已向 {path} 追加 {bytes}',
    renamedFile: '已重命名 {from} → {to}',
    // UX-260618-12:rename_file 字节/跨卷 + write_file 覆盖/编码提示
    renamedWithBytes: '已重命名 {from} → {to}({bytes})',
    renamedCrossVolume: '已移动 {from} → {to}(跨卷,{bytes})',
    writeOverwrite: '覆盖 {old} → {neww}',
    encodingLabel: '编码:{enc}',
    // http_request 结果摘要(method + 状态码 + 耗时;body 在展开态显示)
    httpOk: '{method} {status} 成功({ms} 毫秒)',
    httpFailed: '{method} {status} 失败',
    httpTruncated: '响应已截断({bytes}),详见下方',
    httpRequestFallback: 'HTTP 请求',
    foundN: '找到 {n} 项',
    // fetch_url 结果(render_mode 徽标 + obscura 引导)
    // - fetchUrlTitle: 有 title 时的 header 副标题
    // - fetchUrlRendered: render_mode=obscura(JS 渲染成功)徽标文案
    // - fetchUrlStatic: render_mode=static/static_fallback(静态)徽标文案
    // - fetchUrlFallbackHint: static_fallback(obscura 未装/失败)摘要,提示用户已静态回退
    // - fetchUrlChars: 静态模式 markdown 字符数(折叠态副标题)
    // - charsUnit: 字符单位(与 length 拼接)
    // - installObscura: "AI 帮装"按钮文案
    // - obscuraInstallPrompt: 点按钮后自动发给 AI 的对话提示(具体到 cargo install + releases 两种装法)
    fetchUrlTitle: '标题：{title}',
    fetchUrlRendered: '已 JS 渲染',
    fetchUrlStatic: '静态',
    fetchUrlFallbackHint: 'obscura 未装,已用静态模式(可增强 JS 渲染文档)',
    fetchUrlChars: '{n} 字符',
    charsUnit: '字符',
    // fetch_url 头部显示名(useToolCardHeader):host 精简前缀 + 无 url 时兜底
    fetchUrlPrefix: '获取',
    fetchUrlFallback: '获取网页',
    installObscura: 'AI 帮装 obscura',
    obscuraInstallPrompt: '请帮我安装 obscura(Rust 无头浏览器,用于 fetch_url 的 render=true JS 渲染)。优先尝试 `cargo install obscura`,若 cargo 不可用则从 GitHub releases(github.com/h4ckf0r0day/obscura)下载对应平台预编译二进制并放入 PATH。安装完成后用 `obscura --version` 验证,然后告诉我可以重试网页抓取了。',
    // grep 跨文件内容搜索结果(F-260621):按 output_mode 分文案
    grepHitsN: '命中 {n} 处',
    grepFilesN: '命中 {n} 文件',
    grepCountSummary: '命中 {n} 处 / {files} 文件',
    grepCountLines: '{n} 处',
    grepTruncated: '结果已截断(达上限),收紧 pattern 或加 glob',
    boundDir: '已绑定目录「{path}」技术栈：{stack}',
    deleteFilePermanent: '已硬删除 {path}',
    // UX-260618-07:软删补 backup_path(回收站文件名,用户知从哪恢复)
    deleteFileSoft: '已软删除 {path}（已备份，可从 {backup_path} 恢复）',
    fileInfoSize: '{path} {size}',
    // UX-260618-12:file_info 修改时间(epoch_ms → 客户端 toLocaleString)
    fileInfoModified: ' · 修改于 {time}',
    fileInfoLines: ' · {n} 行',
    fileInfoBinary: ' · 二进制',
    fileInfoDir: ' · 目录',
    fileInfoMissing: '{path} 不存在',

    // 审批参数特化(id/project_id 回显项目名,查不到标注原 id)
    projectLabel: '「{name}」',
    projectIdNotFound: '(项目已不存在, id={id})',
    // UX-260618-14:advance_task/run_workflow 的 task_id 回显任务标题(查 store.tasks,无则标 id)
    taskLabel: '「{name}」',
    taskIdNotFound: '(任务不在当前列表, id={id})',

    // AE-2025-05:High 风险审批二次确认文案(批准前再问一次,误点可取消)
    confirmHighDelete: '确定永久删除？此操作不可恢复',
    confirmHighExec: '确定执行此命令？',
    confirmHighGeneric: '确定执行此高危操作？',
    // http_request 高危二次确认:外发网络请求,数据可经 URL/body 泄露
    confirmHighHttp: '确定向外部服务器发起此 HTTP 请求？',

    // 工具结果详情格式(非 JSON 纯文本 + 审批占位时补参数摘要)
    resultDetail: '{raw}（{detail}）',

    // UX-260617-17:ToolCardList 分组标题(同名工具 >=2 时显示;原硬编码中文,英文化)
    toolGroup: {
      readFile: '读取文件',
      writeFile: '写入文件',
      listDirectory: '列出目录',
      grep: '内容搜索',
      createTask: '创建任务',
      createProject: '创建项目',
      createIdea: '创建灵感',
      listTasks: '列出任务',
      listProjects: '列出项目',
      listIdeas: '列出灵感',
      deleteProject: '删除项目',
      restoreProject: '恢复项目',
      purgeProject: '彻底删除项目',
      updateProject: '更新项目',
      runWorkflow: '运行工作流',
      httpRequest: 'HTTP 请求',
    },

    // UX-260617-14:审批 loading 超时兜底提示(后端无回执,卡片仍 pending_approval 时复位 + 提示用户)
    approveLoadingTimeout: '审批响应超时,请重试或检查后端',

    // UX-260617-18:工具失败检测文案(收窄正则后,行首锚定 err_msg 前缀)
    // (复用 executionFailed/executionFailedHint,不新增)

    // 审批参数键标签
    argLabel: {
      id: 'ID',
      projectId: '项目 ID',
      name: '名称',
      title: '标题',
      description: '描述',
      field: '字段',
      value: '新值',
      path: '路径',
      priority: '优先级',
      tags: '标签',
      source: '来源',
      method: '方法',
      url: 'URL',
      body: '请求体',
      headers: '请求头',
      timeout_secs: '超时(秒)',
      parse: '解析',
    },
  },
}
