export default { ai: { assistant: 'AI 助手', toolName: { readFile: '读取文件', listDirectory: '查看目录', writeFile: '写入文件', fileInfo: '文件信息', appendFile: '追加写入', searchFiles: '搜索文件', patchFile: '修改文件', deleteFile: '删除文件', renameFile: '重命名/移动文件', }, aiTool: { fileInfoDesc: '获取文件或目录的元信息(是否存在、大小、行数、修改时间、是否二进制、是否目录),不读取文件内容', appendFileDesc: '向文件末尾追加内容,文件不存在则自动创建。返回写入字数和新文件大小', searchFilesDesc: '在指定目录下搜索匹配模式(字符串包含匹配)的文件名,返回路径和大小列表。支持递归搜索,结果限 50 条', renameFileDesc: '重命名或移动文件(同一工具覆盖 rename 和 move)。from=源路径、to=目标路径、overwrite=默认 false 目标存在拒绝。同卷原子 rename,跨卷自动 copy+remove', }, errorNotFound: '调用失败:接口地址或模型不存在,请检查 Provider 配置', errorAuth: '调用失败:API Key 无效或无权限', errorTimeout: '响应超时,请重试', errorNetwork: '网络连接失败,请检查网络', // CR-30-2 / F-260616-07(d) / 决策 a1: 流中断自动重试的过渡细条文案(中性描述: // 重试是过渡态非终态失败,不用错误警示语气;重试耗尽的终态失败仍走 AiError 错误卡) aiStreamRetry: '与上游连接中断,自动重试中({attempt}/{max})…', // Fatal 类错误(4xx/鉴权)不可重试,提示用户去设置而非重试 notRetryable: '此错误无法通过重试解决,请检查配置', streamInterruptedAfterTool: '⚠ 工具已执行完成,后续回复中断(长时间无数据流)。可点继续重试。', streamInterrupted: '⚠ 响应中断(长时间无数据流)。可能是网络断连或后端异常,请重试。', // 看门狗探测到后端已正常收敛(仅收尾事件丢失)时补的轻收敛提示,非错误语气 streamFinishedConverged: '响应在收尾阶段中断,已自动完成收敛。', // 看门狗超时探测到后端 loop 活着/已自动续跑时的首次提示(仅首次补,后续静默重挂不刷屏) streamAutoResuming: '响应出现停滞,正在自动恢复(无需手动操作)…', // UX-2025-04 / CR-30-2 / 决策 a1: 流中途失败保文后的系统提示气泡(前端镜像后端 session.messages) responseIncomplete: '⚠ 响应因网络中断不完整,以上为已接收的部分内容。可重新发送以获取完整回复。', // 达最大轮次后端自动收尾(非网络中断,复用 incomplete 气泡但语义独立) responseIncompleteMaxRounds: '已达最大轮次,AI 已自动收尾本轮结果;可继续对话让 AI 补充完善', queueFull: '待发送队列已满(最多 {limit} 条)', forceSendConfirm: 'AI 生成似乎卡住了。是否强制结束当前生成并发送消息?(可能中断正在生成的回复)', forceSendBtn: '强制发送', queueTimedOut: '排队超时', approvalNotDelivered: '审批操作未送达后端:{error}', queuedSendFailed: '队列消息发送失败:{error}', // UX-P2-A2:出错/重生成/编辑清排队消息的 toast 提示(原静默丢弃无任何反馈) queueCleared: '已清 {n} 条排队消息', approvalTimeout: '⚰ 审批超时,已自动拒绝:{toolName}', // 对话加载/切换失败反馈(网络抖动/IPC 断开 → 列表空/切换空白,原静默无反馈) loadConvFail: '对话列表加载失败,请检查网络或后端连接', switchConvFail: '对话切换失败,请重试', // M30:重命名/归档/置顶 IPC 失败反馈(原无 try/catch 异常进 unhandledrejection,用户无感) renameConvFail: '重命名失败,请重试', archiveConvFail: '{action}失败,请重试', pinConvFail: '{action}失败,请重试', // G3.4:新建/删除对话失败反馈(原裸 await → unhandledrejection,用户无感) newConvFail: '新建对话失败,请重试', deleteConvFail: '删除对话失败,请重试', archiveAction: '归档', unarchiveAction: '取消归档', pinAction: '置顶', unpinAction: '取消置顶', // Agentic 循环进度条文案(C 状态语义化:第 N 轮 · 累计 M 次调用 · 进行中/待审批) // total 由前端聚合当前轮次 toolCalls(useTurnTrace),非后端字段 // 注:max 总轮次后端暂不透传,模板条件渲染省略;后端补全后新增 *WithMax key agenticProgress: '第 {round} 轮 · 累计 {total} 次调用 · ⏳{pending} 项待审批', agenticProgressNoPending: '第 {round} 轮 · 累计 {total} 次调用 · 进行中', // 执行轨迹卡/实时步骤摘要(A 过程压缩)与聚合分组行(B 聚合卡统一)共用语义 trace: { title: '执行轨迹', calls: '{n} 次调用', ok: '成功 {n}', fail: '失败 {n}', rejected: '拒绝 {n}', duration: '总耗时 {time}', expand: '展开轨迹', collapse: '收起轨迹', roundN: '第 {n} 轮', processOnly: '过程记录', stepDone: '✓ {n} 次调用完成', stepRunning: '正在 {name}', stepPending: '⏳ {n} 项待审批', }, // S1 子代理完成卡(AiAgentFinished):父会话消息流末尾的子代理终态轻量卡 agentFinished: { title: '子代理', completed: '已完成', truncated: '已截断', failed: '失败', meta: '{rounds} 轮 · {tokens} tokens', // S3:完成卡可点击查看只读轨迹(hover 提示) viewHint: '点击查看执行轨迹', }, // S3 子代理轨迹浮层(完成卡点击展开,只读简版渲染,关即弃) agentTrace: { title: '子代理执行轨迹', empty: '暂无消息记录', loadFail: '拉取子代理轨迹失败', roleUser: '用户', roleAssistant: '助手', roleTool: '工具结果', roleSystem: '系统', }, }, }