@ai-agent-forge/agent-forge 0.88.1 → 0.88.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/bundled-plugins/agent-loop-policy/agent-forge.json +1 -1
  3. package/bundled-plugins/agent-loop-policy/plugin.json +1 -1
  4. package/bundled-plugins/coding-tools/agent-forge.json +1 -1
  5. package/bundled-plugins/coding-tools/plugin.json +1 -1
  6. package/bundled-plugins/compaction-policy/agent-forge.json +1 -1
  7. package/bundled-plugins/compaction-policy/plugin.json +1 -1
  8. package/bundled-plugins/overflow-policy/agent-forge.json +1 -1
  9. package/bundled-plugins/overflow-policy/plugin.json +1 -1
  10. package/bundled-plugins/provider-failover/agent-forge.json +1 -1
  11. package/bundled-plugins/provider-failover/plugin.json +1 -1
  12. package/bundled-plugins/retry-policy/agent-forge.json +1 -1
  13. package/bundled-plugins/retry-policy/plugin.json +1 -1
  14. package/dist/bundle/.build-manifest.json +68 -58
  15. package/dist/bundle/chunks/{chunk-D3ARGZFR.js → chunk-44I47ACN.js} +3 -3
  16. package/dist/bundle/chunks/{chunk-Z72JWUZ4.js → chunk-6F5JWGKE.js} +1 -1
  17. package/dist/bundle/chunks/{chunk-LZOEQITZ.js → chunk-HTC5K5SM.js} +56 -45
  18. package/dist/bundle/chunks/{chunk-AQLNTW2B.js → chunk-LSP24WNH.js} +8 -7
  19. package/dist/bundle/chunks/image-resize-worker.js +3 -3
  20. package/dist/bundle/chunks/{virtual-modules-WF6WRHP7.js → virtual-modules-MRXD3RWG.js} +1 -1
  21. package/dist/bundle/cli.js +1 -1
  22. package/dist/bundle/client.js +1 -1
  23. package/dist/bundle/index.js +1 -1
  24. package/dist/bundle/rpc-entry.js +1 -1
  25. package/dist/cli/plugin-command.d.ts.map +1 -1
  26. package/dist/cli/plugin-command.js +8 -2
  27. package/dist/cli/plugin-command.js.map +1 -1
  28. package/dist/core/agent-session-internal.d.ts +2 -0
  29. package/dist/core/agent-session-internal.d.ts.map +1 -1
  30. package/dist/core/agent-session-internal.js.map +1 -1
  31. package/dist/core/agent-session-services.d.ts +2 -0
  32. package/dist/core/agent-session-services.d.ts.map +1 -1
  33. package/dist/core/agent-session-services.js +1 -0
  34. package/dist/core/agent-session-services.js.map +1 -1
  35. package/dist/core/agent-session-store.d.ts.map +1 -1
  36. package/dist/core/agent-session-store.js +6 -1
  37. package/dist/core/agent-session-store.js.map +1 -1
  38. package/dist/core/agent-session-tools.d.ts.map +1 -1
  39. package/dist/core/agent-session-tools.js +13 -0
  40. package/dist/core/agent-session-tools.js.map +1 -1
  41. package/dist/core/agent-session.d.ts +24 -0
  42. package/dist/core/agent-session.d.ts.map +1 -1
  43. package/dist/core/agent-session.js +58 -4
  44. package/dist/core/agent-session.js.map +1 -1
  45. package/dist/core/i18n/locales/zh-cn/cli.d.ts.map +1 -1
  46. package/dist/core/i18n/locales/zh-cn/cli.js +2 -0
  47. package/dist/core/i18n/locales/zh-cn/cli.js.map +1 -1
  48. package/dist/core/i18n/locales/zh-cn/index.d.ts.map +1 -1
  49. package/dist/core/i18n/locales/zh-cn/index.js +2 -0
  50. package/dist/core/i18n/locales/zh-cn/index.js.map +1 -1
  51. package/dist/core/i18n/locales/zh-cn/interactive-mode.d.ts.map +1 -1
  52. package/dist/core/i18n/locales/zh-cn/interactive-mode.js +5 -0
  53. package/dist/core/i18n/locales/zh-cn/interactive-mode.js.map +1 -1
  54. package/dist/core/i18n/locales/zh-cn/session-cleanup.d.ts +7 -0
  55. package/dist/core/i18n/locales/zh-cn/session-cleanup.d.ts.map +1 -0
  56. package/dist/core/i18n/locales/zh-cn/session-cleanup.js +15 -0
  57. package/dist/core/i18n/locales/zh-cn/session-cleanup.js.map +1 -0
  58. package/dist/core/i18n/locales/zh-cn/slash-commands.d.ts.map +1 -1
  59. package/dist/core/i18n/locales/zh-cn/slash-commands.js +1 -0
  60. package/dist/core/i18n/locales/zh-cn/slash-commands.js.map +1 -1
  61. package/dist/core/sdk.d.ts.map +1 -1
  62. package/dist/core/sdk.js +24 -1
  63. package/dist/core/sdk.js.map +1 -1
  64. package/dist/core/session-cleanup.d.ts +49 -0
  65. package/dist/core/session-cleanup.d.ts.map +1 -0
  66. package/dist/core/session-cleanup.js +159 -0
  67. package/dist/core/session-cleanup.js.map +1 -0
  68. package/dist/core/session-index.d.ts +75 -0
  69. package/dist/core/session-index.d.ts.map +1 -0
  70. package/dist/core/session-index.js +455 -0
  71. package/dist/core/session-index.js.map +1 -0
  72. package/dist/core/session-manager.d.ts +9 -0
  73. package/dist/core/session-manager.d.ts.map +1 -1
  74. package/dist/core/session-manager.js +202 -47
  75. package/dist/core/session-manager.js.map +1 -1
  76. package/dist/core/slash-commands.d.ts.map +1 -1
  77. package/dist/core/slash-commands.js +5 -0
  78. package/dist/core/slash-commands.js.map +1 -1
  79. package/dist/core/system-prompt.d.ts.map +1 -1
  80. package/dist/core/system-prompt.js +12 -1
  81. package/dist/core/system-prompt.js.map +1 -1
  82. package/dist/core/tools/capability-mount.d.ts +40 -0
  83. package/dist/core/tools/capability-mount.d.ts.map +1 -0
  84. package/dist/core/tools/capability-mount.js +112 -0
  85. package/dist/core/tools/capability-mount.js.map +1 -0
  86. package/dist/main.d.ts.map +1 -1
  87. package/dist/main.js +1 -0
  88. package/dist/main.js.map +1 -1
  89. package/dist/modes/interactive/components/assistant-message.d.ts +3 -0
  90. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  91. package/dist/modes/interactive/components/assistant-message.js +27 -5
  92. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  93. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  94. package/dist/modes/interactive/components/session-selector-search.js +5 -1
  95. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  96. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  97. package/dist/modes/interactive/components/session-selector.js +9 -0
  98. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  99. package/dist/modes/interactive/components/tool-execution.d.ts +17 -0
  100. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  101. package/dist/modes/interactive/components/tool-execution.js +43 -0
  102. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  103. package/dist/modes/interactive/components/tool-run-group.d.ts +44 -0
  104. package/dist/modes/interactive/components/tool-run-group.d.ts.map +1 -0
  105. package/dist/modes/interactive/components/tool-run-group.js +121 -0
  106. package/dist/modes/interactive/components/tool-run-group.js.map +1 -0
  107. package/dist/modes/interactive/interactive-commands.d.ts +2 -0
  108. package/dist/modes/interactive/interactive-commands.d.ts.map +1 -1
  109. package/dist/modes/interactive/interactive-commands.js +7 -0
  110. package/dist/modes/interactive/interactive-commands.js.map +1 -1
  111. package/dist/modes/interactive/interactive-mode.d.ts +18 -0
  112. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  113. package/dist/modes/interactive/interactive-mode.js +85 -3
  114. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  115. package/dist/plugins/ecosystem/cli.d.ts.map +1 -1
  116. package/dist/plugins/ecosystem/cli.js +6 -3
  117. package/dist/plugins/ecosystem/cli.js.map +1 -1
  118. package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts +7 -1
  119. package/dist/plugins/ecosystem/node-plugin-bootstrap.d.ts.map +1 -1
  120. package/dist/plugins/ecosystem/node-plugin-bootstrap.js +50 -3
  121. package/dist/plugins/ecosystem/node-plugin-bootstrap.js.map +1 -1
  122. package/dist/plugins/ecosystem/plugin-bootstrap.d.ts +28 -16
  123. package/dist/plugins/ecosystem/plugin-bootstrap.d.ts.map +1 -1
  124. package/dist/plugins/ecosystem/plugin-bootstrap.js +35 -33
  125. package/dist/plugins/ecosystem/plugin-bootstrap.js.map +1 -1
  126. package/dist/profile/plugin-profiles.d.ts +1 -1
  127. package/dist/profile/plugin-profiles.d.ts.map +1 -1
  128. package/dist/profile/plugin-profiles.js +18 -0
  129. package/dist/profile/plugin-profiles.js.map +1 -1
  130. package/dist/profiles/builtin-suites.d.ts +14 -4
  131. package/dist/profiles/builtin-suites.d.ts.map +1 -1
  132. package/dist/profiles/builtin-suites.js +20 -5
  133. package/dist/profiles/builtin-suites.js.map +1 -1
  134. package/docs/settings.md +354 -354
  135. package/docs/usage.md +292 -292
  136. package/examples/extensions/with-deps/package-lock.json +2 -2
  137. package/examples/extensions/with-deps/package.json +1 -1
  138. package/examples/extensions/with-deps/plugin.json +1 -1
  139. package/package.json +1 -1
  140. package/examples/extensions/mcp-stdio/index.d.ts +0 -64
  141. package/examples/extensions/mcp-stdio/index.d.ts.map +0 -1
  142. package/examples/extensions/mcp-stdio/index.js +0 -292
  143. package/examples/extensions/mcp-stdio/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6QtC,CAAC","sourcesContent":["/**\n * CLI 输出层域词典(docs/design/国际化与本地化.md §3,批次⑤):覆盖\n * main.ts 启动/错误输出、--help(printHelp)、auth help、--list-models、\n * print-mode 的用户可见文案。key 为英文原文,占位符 `{name}` 原样保留。\n * 命令名、flag、路径、环境变量、suite 等代码标识符不译。\n */\nexport const cli: Record<string, string> = {\n\t// --- main.ts:诊断/错误前缀与兜底 ---\n\t\"Error: {message}\": \"错误:{message}\",\n\t\"Warning: {message}\": \"警告:{message}\",\n\t\"Failed to parse auth command\": \"解析 auth 命令失败\",\n\t\"Failed to resolve credential\": \"解析凭证失败\",\n\t\"Failed to export session\": \"导出会话失败\",\n\t\"Exported to: {result}\": \"已导出到:{result}\",\n\n\t// --- main.ts:auth 命令参数错误 ---\n\t'Invalid arguments for \"{command}\".': '\"{command}\" 的参数无效。',\n\t'Use \"{help}\" or \"{usage}\".': '请使用 \"{help}\" 或 \"{usage}\"。',\n\n\t// --- main.ts:suite 生命周期 ---\n\t'Created suite \"{id}\" at {dir}': '已创建 suite \"{id}\",位于 {dir}',\n\t\"Error: --clone-from requires --suite-create\": \"错误:--clone-from 需要与 --suite-create 一起使用\",\n\t'Error: suite \"{id}\" is referenced by {count} existing session(s); deletion refused:':\n\t\t'错误:suite \"{id}\" 被 {count} 个现有会话引用,拒绝删除:',\n\t'Deleting suite \"{id}\": the workspace directory {dir} will be moved to the trash and released.':\n\t\t'正在删除 suite \"{id}\":工作区目录 {dir} 将被移入回收站并释放。',\n\t'Refusing to delete suite \"{id}\" without an interactive confirmation (non-interactive stdin). Re-run in a terminal to confirm.':\n\t\t'拒绝删除 suite \"{id}\":缺少交互式确认(stdin 非交互)。请在终端中重新运行以确认。',\n\t'Delete suite \"{id}\"?': '删除 suite \"{id}\"?',\n\t'Aborted: suite \"{id}\" was not deleted.': '已中止:suite \"{id}\" 未删除。',\n\t'Cleared the {scope} settings \"suite\" key (pointed at \"{id}\").':\n\t\t'已清除 {scope} 设置中的 \"suite\" 键(原指向 \"{id}\")。',\n\t'Deleted suite \"{id}\"; the workspace was moved to {trashPath} and is being released.':\n\t\t'已删除 suite \"{id}\";工作区已移至 {trashPath},正在释放。',\n\t'Suite \"{id}\" is a user suite; only builtin suites can be reset — use --suite-delete instead.':\n\t\t'suite \"{id}\" 是用户 suite;只有内置 suite 可以重置——请改用 --suite-delete。',\n\t'Suite \"{id}\" already matches the factory contents; nothing to reset.': 'suite \"{id}\" 已与出厂内容一致,无需重置。',\n\t'Resetting builtin suite \"{id}\" to the factory contents:': '正在将内置 suite \"{id}\" 重置为出厂内容:',\n\t'Refusing to reset suite \"{id}\" without an interactive confirmation (non-interactive stdin). Review the diff above and re-run in a terminal to confirm.':\n\t\t'拒绝重置 suite \"{id}\":缺少交互式确认(stdin 非交互)。请先查看上方 diff,再在终端中重新运行以确认。',\n\t'Apply reset of suite \"{id}\"?': '应用 suite \"{id}\" 的重置?',\n\t'Aborted: suite \"{id}\" was not reset.': '已中止:suite \"{id}\" 未重置。',\n\t'Suite \"{id}\" was reset to the factory contents (profile lock generation {generation}).':\n\t\t'suite \"{id}\" 已重置为出厂内容(profile lock 代数 {generation})。',\n\n\t// --- main.ts:flag 冲突与模式错误 ---\n\t\"Error: --fork cannot be combined with {flags}\": \"错误:--fork 不能与 {flags} 组合使用\",\n\t\"Error: --session-id cannot be combined with {flags}. To resume that exact session, drop the other flags and use --session-id alone (or use --continue to resume the most recent session).\":\n\t\t\"错误:--session-id 不能与 {flags} 组合使用。要恢复该确切会话,请去掉其他 flag,单独使用 --session-id(或使用 --continue 恢复最近会话)。\",\n\t\"Error: --serve cannot be combined with {flags}\": \"错误:--serve 不能与 {flags} 组合使用\",\n\t\"--serve ignores session/model/tool options: {flags}\": \"--serve 会忽略会话/模型/工具选项:{flags}\",\n\t\"Error: @file arguments are not supported in RPC mode\": \"错误:RPC 模式不支持 @file 参数\",\n\t\"Error: --name requires a non-empty value\": \"错误:--name 需要非空值\",\n\t\"Error: AGENT_FORGE_STARTUP_BENCHMARK only supports interactive mode\":\n\t\t\"错误:AGENT_FORGE_STARTUP_BENCHMARK 仅支持交互模式\",\n\n\t// --- main.ts:会话选择/创建 ---\n\t\"Session already exists with id '{sessionId}'\": \"已存在 id 为 '{sessionId}' 的会话\",\n\t\"No session found matching '{arg}'\": \"没有找到匹配 '{arg}' 的会话\",\n\t\"Session found in different project: {cwd}\": \"会话位于其他项目:{cwd}\",\n\t\"Fork this session into current directory?\": \"将该会话 fork 到当前目录?\",\n\t\"Aborted.\": \"已中止。\",\n\t\"No session selected\": \"未选择会话\",\n\t\"Warning: No project session found with id '{sessionId}'; creating a new session with that id.\":\n\t\t\"警告:没有找到 id 为 '{sessionId}' 的项目会话;将创建使用该 id 的新会话。\",\n\n\t// --- main.ts:插件 bootstrap/拒绝 ---\n\t\"Plugin bootstrap {code}: {message}\": \"插件 bootstrap {code}:{message}\",\n\t\"First run: installing {count} factory plugins…\": \"首次运行:正在安装 {count} 个出厂插件…\",\n\t\"Offline posture (AGENT_FORGE_OFFLINE) skips the startup plugin bootstrap; run `agent-forge plugin install <package>` explicitly to install plugins.\":\n\t\t\"离线姿态(AGENT_FORGE_OFFLINE)跳过启动插件引导;可用 `agent-forge plugin install <包名>` 显式安装插件。\",\n\t\"Warning: capability plugin rejected ({code}): {target}: {message}\":\n\t\t\"警告:能力插件被拒绝({code}):{target}:{message}\",\n\n\t// --- args.ts:printHelp 节标题与标题行 ---\n\t\"AI coding assistant with read, bash, edit, write tools\": \"具备 read、bash、edit、write 工具的 AI 编程助手\",\n\t\"Usage:\": \"用法:\",\n\t\"Commands:\": \"命令:\",\n\t\"Options:\": \"选项:\",\n\t\"Examples:\": \"示例:\",\n\t\"Environment Variables:\": \"环境变量:\",\n\t\"Built-in Tool Names:\": \"内置工具名:\",\n\n\t// --- args.ts:printHelp Commands 描述 ---\n\t\"Install extension source and add to settings\": \"安装扩展源并加入设置\",\n\t\"Remove extension source from settings\": \"从设置中移除扩展源\",\n\t\"Alias for remove\": \"remove 的别名\",\n\t\"Update Agent Forge, extensions, or model catalogs\": \"更新 Agent Forge、扩展或模型目录\",\n\t\"List installed extensions from settings\": \"列出设置中已安装的扩展\",\n\t\"Open TUI to enable/disable package resources (Tab switches scope)\": \"打开 TUI 启用/禁用包资源(Tab 切换作用域)\",\n\t\"Print credentials or check provider readiness\": \"打印凭证或检查提供商就绪状态\",\n\t\"Show help for install/remove/uninstall/update/list/config/auth\":\n\t\t\"显示 install/remove/uninstall/update/list/config/auth 的帮助\",\n\n\t// --- args.ts:printHelp Options 描述 ---\n\t\"Provider name (default: google)\": \"提供商名称(默认:google)\",\n\t'Model pattern or ID (supports \"provider/id\" and optional \":<thinking>\")':\n\t\t'模型模式或 ID(支持 \"provider/id\" 与可选的 \":<thinking>\")',\n\t\"API key (defaults to env vars)\": \"API key(默认取自环境变量)\",\n\t\"System prompt (default: coding assistant prompt)\": \"系统提示词(默认:编程助手提示词)\",\n\t\"Append text or file contents to the system prompt (can be used multiple times)\":\n\t\t\"向系统提示词追加文本或文件内容(可多次使用)\",\n\t\"Output mode: text (default), json, or rpc\": \"输出模式:text(默认)、json 或 rpc\",\n\t\"Non-interactive mode: process prompt and exit\": \"非交互模式:处理提示后退出\",\n\t\"Continue previous session\": \"继续上一个会话\",\n\t\"Select a session to resume\": \"选择要恢复的会话\",\n\t\"Use specific session file or partial UUID\": \"使用指定会话文件或部分 UUID\",\n\t\"Use exact project session ID, creating it if missing\": \"使用精确的项目会话 ID,不存在则创建\",\n\t\"Fork specific session file or partial UUID into a new session\": \"将指定会话文件或部分 UUID fork 为新会话\",\n\t\"Directory for session storage and lookup\": \"会话存储与查找目录\",\n\t\"Suite (方案) for this run: coding (default) or assistant; new sessions only\":\n\t\t\"本次运行的 suite(方案):coding(默认)或 assistant;仅对新会话生效\",\n\t\"Create a user suite workspace and exit; add --clone-from <id> to copy one\":\n\t\t\"创建用户 suite 工作区并退出;加 --clone-from <id> 可复制既有 suite\",\n\t\"Delete a user suite workspace (active session references refuse) and exit\":\n\t\t\"删除用户 suite 工作区(存在活动会话引用时拒绝)并退出\",\n\t\"Reset a builtin suite to factory contents (shows a diff) and exit\":\n\t\t\"将内置 suite 重置为出厂内容(显示 diff)并退出\",\n\t\"(Experimental, local trust only) Serve the coding-agent session runtime over the WebSocket gateway (default: 127.0.0.1; HTTP surface: /healthz plus token-protected artifact reads) and exit on SIGINT/SIGTERM\":\n\t\t\"(实验性,仅限本地信任)经 WebSocket 网关提供 coding-agent 会话运行时(默认:127.0.0.1;HTTP 面:/healthz 及受令牌保护的产物读取),SIGINT/SIGTERM 时退出\",\n\t\"Durable journal: <agentDir>/remote-server-journal.jsonl (never the process cwd)\":\n\t\t\"持久日志:<agentDir>/remote-server-journal.jsonl(绝不写入进程 cwd)\",\n\t\"Opt-in --serve boundary: remote creates must run inside one of these roots (repeatable); without it any local directory is allowed\":\n\t\t\"--serve 的可选边界:远程创建必须在这些根目录内运行(可重复);未指定时允许任意本地目录\",\n\t\"(Experimental) Run as a headless subagent runner: serve the subagent-task protocol on stdio for a parent session's runner pool (D-045)\":\n\t\t\"(实验性)作为无头子代理运行器:在 stdio 上为父会话的 runner 池提供 subagent-task 协议(D-045)\",\n\t\"Don't save session (ephemeral)\": \"不保存会话(一次性)\",\n\t\"Set session display name\": \"设置会话显示名称\",\n\t\"Comma-separated model patterns for Ctrl+P cycling\": \"逗号分隔的模型模式,用于 Ctrl+P 轮换\",\n\t\"Supports globs (anthropic/*, *sonnet*) and fuzzy matching\": \"支持 glob(anthropic/*、*sonnet*)与模糊匹配\",\n\t\"Disable all tools by default (built-in and plugin)\": \"默认禁用全部工具(内置与插件)\",\n\t\"Disable built-in tools by default but keep plugin/custom tools enabled\":\n\t\t\"默认禁用内置工具,但保持插件/自定义工具可用\",\n\t\"Comma-separated allowlist of tool names to enable\": \"逗号分隔的工具名白名单\",\n\t\"Applies to built-in, plugin, and custom tools\": \"作用于内置、插件与自定义工具\",\n\t\"Comma-separated denylist of tool names to disable\": \"逗号分隔的工具名黑名单\",\n\t\"Set thinking level: off, minimal, low, medium, high, xhigh, max\":\n\t\t\"设置思考级别:off、minimal、low、medium、high、xhigh、max\",\n\t\"Disable capability plugin discovery (D-028 escape hatch)\": \"禁用能力插件发现(D-028 逃生口)\",\n\t\"Disable session trace collection (no .trace.jsonl file is written)\": \"禁用会话轨迹收集(不写 .trace.jsonl 文件)\",\n\t\"Host log level: debug, info (default), warn, error\": \"宿主日志级别:debug、info(默认)、warn、error\",\n\t\"Select a builtin capability plugin profile for this run\": \"为本次运行选择内置能力插件 profile\",\n\t\"Select a plugin within the profile (repeatable)\": \"在 profile 内选择插件(可重复)\",\n\t\"Disable a plugin within the profile (repeatable)\": \"在 profile 内禁用插件(可重复)\",\n\t\"Read the explicit selection from global or project storage\": \"从全局或项目存储读取显式选择\",\n\t\"List installed/available ecosystem plugins (independent namespace)\": \"列出已安装/可用的生态插件(独立命名空间)\",\n\t\"Load a skill file or directory (can be used multiple times)\": \"加载 skill 文件或目录(可多次使用)\",\n\t\"Disable skills discovery and loading\": \"禁用 skill 发现与加载\",\n\t\"Load a prompt template file or directory (can be used multiple times)\": \"加载提示词模板文件或目录(可多次使用)\",\n\t\"Disable prompt template discovery and loading\": \"禁用提示词模板发现与加载\",\n\t\"Load a theme file or directory (can be used multiple times)\": \"加载主题文件或目录(可多次使用)\",\n\t\"Set the initial interactive theme for this run\": \"设置本次运行的初始交互主题\",\n\t\"Disable theme discovery and loading\": \"禁用主题发现与加载\",\n\t\"Disable AGENTS.md and CLAUDE.md discovery and loading\": \"禁用 AGENTS.md 与 CLAUDE.md 的发现与加载\",\n\t\"Export session file to HTML and exit\": \"将会话文件导出为 HTML 并退出\",\n\t\"View a session trace file as a text timeline and exit; <session> is a session id/prefix or trace/session file path, omit it for the most recent session\":\n\t\t\"以文本时间线查看会话轨迹文件并退出;<session> 为会话 id/前缀或轨迹/会话文件路径,省略则查看最近会话\",\n\t\"With --trace, output the structured trace records as JSON instead of the text timeline\":\n\t\t\"配合 --trace,以 JSON 输出结构化轨迹记录,而非文本时间线\",\n\t\"With --trace, show only records of these kinds (comma-separated); valid kinds: {kinds}\":\n\t\t\"配合 --trace,只显示这些类型的记录(逗号分隔);有效类型:{kinds}\",\n\t\"With --trace, show only the last N records (positive integer)\": \"配合 --trace,只显示最后 N 条记录(正整数)\",\n\t\"List available models (with optional fuzzy search)\": \"列出可用模型(可选模糊搜索)\",\n\t\"Force verbose startup (overrides quietStartup setting)\": \"强制详细启动(覆盖 quietStartup 设置)\",\n\t\"TUI mode: regular (default) or fullscreen\": \"TUI 模式:regular(默认)或 fullscreen\",\n\t\"Disable startup network operations (same as AGENT_FORGE_OFFLINE=1)\":\n\t\t\"禁用启动网络操作(等同 AGENT_FORGE_OFFLINE=1)\",\n\t\"End option parsing; treat remaining arguments as messages/files\": \"结束选项解析;剩余参数视为消息/文件\",\n\t\"Show this help\": \"显示此帮助\",\n\t\"Show version number\": \"显示版本号\",\n\n\t// --- args.ts:printHelp Examples 注释 ---\n\t\"Print a provider API key for an external client\": \"为外部客户端打印提供商 API key\",\n\t\"Print an OAuth bearer token for an external client (refreshes if expired)\":\n\t\t\"为外部客户端打印 OAuth bearer token(过期则刷新)\",\n\t\"Interactive mode\": \"交互模式\",\n\t\"Interactive mode with initial prompt\": \"带初始提示的交互模式\",\n\t\"Include files in initial message\": \"在初始消息中包含文件\",\n\t\"Non-interactive mode (process and exit)\": \"非交互模式(处理后退出)\",\n\t\"Prompt beginning with a dash\": \"以连字符开头的提示\",\n\t\"Multiple messages (interactive)\": \"多条消息(交互)\",\n\t\"Start a named session\": \"启动命名会话\",\n\t\"Use different model\": \"使用不同模型\",\n\t\"Use model with provider prefix (no --provider needed)\": \"使用带提供商前缀的模型(无需 --provider)\",\n\t\"Use model with thinking level shorthand\": \"使用思考级别简写形式的模型\",\n\t\"Limit model cycling to specific models\": \"将模型轮换限定为指定模型\",\n\t\"Limit to a specific provider with glob pattern\": \"用 glob 模式限定到指定提供商\",\n\t\"Cycle models with fixed thinking levels\": \"以固定思考级别轮换模型\",\n\t\"Start with a specific thinking level\": \"以指定思考级别启动\",\n\t\"Read-only mode (no file modifications possible)\": \"只读模式(不能修改文件)\",\n\t\"Disable one tool while keeping the rest available\": \"禁用单个工具,其余保持可用\",\n\t\"Export a session file to HTML\": \"导出会话文件为 HTML\",\n\n\t// --- args.ts:printHelp 环境变量描述 ---\n\t\"Anthropic bearer auth token\": \"Anthropic bearer 认证令牌\",\n\t\"Anthropic Claude API key\": \"Anthropic Claude API key\",\n\t\"Anthropic OAuth token (alternative to API key)\": \"Anthropic OAuth 令牌(API key 的替代)\",\n\t\"Ant Ling API key\": \"Ant Ling API key\",\n\t\"OpenAI GPT API key\": \"OpenAI GPT API key\",\n\t\"Azure OpenAI API key\": \"Azure OpenAI API key\",\n\t\"Azure OpenAI/Cognitive Services base URL (e.g. https://{resource}.openai.azure.com)\":\n\t\t\"Azure OpenAI/Cognitive Services base URL(如 https://{resource}.openai.azure.com)\",\n\t\"Azure OpenAI resource name (alternative to base URL)\": \"Azure OpenAI 资源名(base URL 的替代)\",\n\t\"Azure OpenAI API version (default: v1)\": \"Azure OpenAI API 版本(默认:v1)\",\n\t\"Azure OpenAI model=deployment map (comma-separated)\": \"Azure OpenAI 模型=部署映射(逗号分隔)\",\n\t\"DeepSeek API key\": \"DeepSeek API key\",\n\t\"NVIDIA NIM API key\": \"NVIDIA NIM API key\",\n\t\"Google Gemini API key\": \"Google Gemini API key\",\n\t\"Groq API key\": \"Groq API key\",\n\t\"Cerebras API key\": \"Cerebras API key\",\n\t\"xAI Grok API key\": \"xAI Grok API key\",\n\t\"Fireworks API key\": \"Fireworks API key\",\n\t\"Together AI API key\": \"Together AI API key\",\n\t\"Baseten API key\": \"Baseten API key\",\n\t\"OpenRouter API key\": \"OpenRouter API key\",\n\t\"Vercel AI Gateway API key\": \"Vercel AI Gateway API key\",\n\t\"ZAI Coding Plan API key (Global)\": \"ZAI Coding Plan API key(全球区)\",\n\t\"ZAI Coding Plan API key (China)\": \"ZAI Coding Plan API key(中国区)\",\n\t\"Mistral API key\": \"Mistral API key\",\n\t\"MiniMax API key\": \"MiniMax API key\",\n\t\"Moonshot AI API key\": \"Moonshot AI API key\",\n\t\"OpenCode Zen/OpenCode Go API key\": \"OpenCode Zen/OpenCode Go API key\",\n\t\"Kimi For Coding API key\": \"Kimi For Coding API key\",\n\t\"Cloudflare API token (Workers AI and AI Gateway)\": \"Cloudflare API 令牌(Workers AI 与 AI Gateway)\",\n\t\"Cloudflare account id (required for both)\": \"Cloudflare 账户 id(两者均需要)\",\n\t\"Cloudflare AI Gateway slug (required for AI Gateway)\": \"Cloudflare AI Gateway slug(AI Gateway 需要)\",\n\t\"Qwen Token Plan API key (international region)\": \"Qwen Token Plan API key(国际区)\",\n\t\"Qwen Token Plan API key (China region)\": \"Qwen Token Plan API key(中国区)\",\n\t\"Xiaomi MiMo API key (api.xiaomimimo.com billing)\": \"Xiaomi MiMo API key(按 api.xiaomimimo.com 计费)\",\n\t\"Xiaomi MiMo Token Plan API key (China region)\": \"Xiaomi MiMo Token Plan API key(中国区)\",\n\t\"Xiaomi MiMo Token Plan API key (Amsterdam region)\": \"Xiaomi MiMo Token Plan API key(阿姆斯特丹区)\",\n\t\"Xiaomi MiMo Token Plan API key (Singapore region)\": \"Xiaomi MiMo Token Plan API key(新加坡区)\",\n\t\"AWS profile for Amazon Bedrock\": \"Amazon Bedrock 的 AWS profile\",\n\t\"AWS access key for Amazon Bedrock\": \"Amazon Bedrock 的 AWS access key\",\n\t\"AWS secret key for Amazon Bedrock\": \"Amazon Bedrock 的 AWS secret key\",\n\t\"Bedrock API key (bearer token)\": \"Bedrock API key(bearer token)\",\n\t\"AWS region for Amazon Bedrock (e.g., us-east-1)\": \"Amazon Bedrock 的 AWS 区域(如 us-east-1)\",\n\t\"Config directory (default: ~/{configDir}/agent)\": \"配置目录(默认:~/{configDir}/agent)\",\n\t\"Session storage directory (overridden by --session-dir)\": \"会话存储目录(--session-dir 可覆盖)\",\n\t\"Override package directory (for Nix/Guix store paths)\": \"覆盖包目录(用于 Nix/Guix store 路径)\",\n\t\"Disable startup network operations when set to 1/true/yes\": \"设为 1/true/yes 时禁用启动网络操作\",\n\n\t// --- args.ts:printHelp 内置工具描述 ---\n\t\"Read file contents\": \"读取文件内容\",\n\t\"Execute bash commands\": \"执行 bash 命令\",\n\t\"Execute PowerShell commands on Windows\": \"在 Windows 上执行 PowerShell 命令\",\n\t\"Edit files with find/replace\": \"以查找/替换方式编辑文件\",\n\t\"Write files (creates/overwrites)\": \"写文件(创建/覆盖)\",\n\t\"Search file contents (read-only, off by default)\": \"搜索文件内容(只读,默认关闭)\",\n\t\"Find files by glob pattern (read-only, off by default)\": \"按 glob 模式查找文件(只读,默认关闭)\",\n\t\"List directory contents (read-only, off by default)\": \"列出目录内容(只读,默认关闭)\",\n\n\t// --- auth-command.ts:printAuthCommandHelp ---\n\t\"Auth commands require at least one of --provider or --model. Checks refresh expired OAuth credentials by default; --no-refresh prevents this. --credentials emits the credential, or includes it in JSON output. --no-refresh also leaves command-backed keys unresolved: --credentials reports them as unavailable instead of running the command.\":\n\t\t\"auth 命令需要 --provider 或 --model 至少其一。check 默认刷新已过期的 OAuth 凭证;--no-refresh 可阻止。--credentials 输出凭证,或将其包含在 JSON 输出中。--no-refresh 同时不解析命令型 key:--credentials 将其报告为不可用,而不会执行该命令。\",\n\n\t// --- list-models.ts ---\n\t\"Warning: errors loading models.json:\\n{loadError}\": \"警告:加载 models.json 出错:\\n{loadError}\",\n\t'No models matching \"{searchPattern}\"': '没有匹配 \"{searchPattern}\" 的模型',\n\tprovider: \"提供商\",\n\tmodel: \"模型\",\n\tcontext: \"上下文\",\n\t\"max-out\": \"最大输出\",\n\tthinking: \"思考\",\n\timages: \"图像\",\n\n\t// --- print-mode.ts ---\n\t\"{label}: {url}\": \"{label}:{url}\",\n\t\"Request {stopReason}\": \"请求 {stopReason}\",\n\n\t// --- serve.ts ---\n\t\"remote-server error: {error}\": \"remote-server 错误:{error}\",\n\t\"Port {port} is already in use\": \"端口 {port} 已被占用\",\n\t\"Remote server shutdown failed: {error}\": \"远程服务器关闭失败:{error}\",\n\t\"Remote server listening on {addresses}\": \"远程服务器监听于 {addresses}\",\n};\n"]}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgRtC,CAAC","sourcesContent":["/**\n * CLI 输出层域词典(docs/design/国际化与本地化.md §3,批次⑤):覆盖\n * main.ts 启动/错误输出、--help(printHelp)、auth help、--list-models、\n * print-mode 的用户可见文案。key 为英文原文,占位符 `{name}` 原样保留。\n * 命令名、flag、路径、环境变量、suite 等代码标识符不译。\n */\nexport const cli: Record<string, string> = {\n\t// --- main.ts:诊断/错误前缀与兜底 ---\n\t\"Error: {message}\": \"错误:{message}\",\n\t\"Warning: {message}\": \"警告:{message}\",\n\t\"Failed to parse auth command\": \"解析 auth 命令失败\",\n\t\"Failed to resolve credential\": \"解析凭证失败\",\n\t\"Failed to export session\": \"导出会话失败\",\n\t\"Exported to: {result}\": \"已导出到:{result}\",\n\n\t// --- main.ts:auth 命令参数错误 ---\n\t'Invalid arguments for \"{command}\".': '\"{command}\" 的参数无效。',\n\t'Use \"{help}\" or \"{usage}\".': '请使用 \"{help}\" 或 \"{usage}\"。',\n\n\t// --- main.ts:suite 生命周期 ---\n\t'Created suite \"{id}\" at {dir}': '已创建 suite \"{id}\",位于 {dir}',\n\t\"Error: --clone-from requires --suite-create\": \"错误:--clone-from 需要与 --suite-create 一起使用\",\n\t'Error: suite \"{id}\" is referenced by {count} existing session(s); deletion refused:':\n\t\t'错误:suite \"{id}\" 被 {count} 个现有会话引用,拒绝删除:',\n\t'Deleting suite \"{id}\": the workspace directory {dir} will be moved to the trash and released.':\n\t\t'正在删除 suite \"{id}\":工作区目录 {dir} 将被移入回收站并释放。',\n\t'Refusing to delete suite \"{id}\" without an interactive confirmation (non-interactive stdin). Re-run in a terminal to confirm.':\n\t\t'拒绝删除 suite \"{id}\":缺少交互式确认(stdin 非交互)。请在终端中重新运行以确认。',\n\t'Delete suite \"{id}\"?': '删除 suite \"{id}\"?',\n\t'Aborted: suite \"{id}\" was not deleted.': '已中止:suite \"{id}\" 未删除。',\n\t'Cleared the {scope} settings \"suite\" key (pointed at \"{id}\").':\n\t\t'已清除 {scope} 设置中的 \"suite\" 键(原指向 \"{id}\")。',\n\t'Deleted suite \"{id}\"; the workspace was moved to {trashPath} and is being released.':\n\t\t'已删除 suite \"{id}\";工作区已移至 {trashPath},正在释放。',\n\t'Suite \"{id}\" is a user suite; only builtin suites can be reset — use --suite-delete instead.':\n\t\t'suite \"{id}\" 是用户 suite;只有内置 suite 可以重置——请改用 --suite-delete。',\n\t'Suite \"{id}\" already matches the factory contents; nothing to reset.': 'suite \"{id}\" 已与出厂内容一致,无需重置。',\n\t'Resetting builtin suite \"{id}\" to the factory contents:': '正在将内置 suite \"{id}\" 重置为出厂内容:',\n\t'Refusing to reset suite \"{id}\" without an interactive confirmation (non-interactive stdin). Review the diff above and re-run in a terminal to confirm.':\n\t\t'拒绝重置 suite \"{id}\":缺少交互式确认(stdin 非交互)。请先查看上方 diff,再在终端中重新运行以确认。',\n\t'Apply reset of suite \"{id}\"?': '应用 suite \"{id}\" 的重置?',\n\t'Aborted: suite \"{id}\" was not reset.': '已中止:suite \"{id}\" 未重置。',\n\t'Suite \"{id}\" was reset to the factory contents (profile lock generation {generation}).':\n\t\t'suite \"{id}\" 已重置为出厂内容(profile lock 代数 {generation})。',\n\n\t// --- main.ts:flag 冲突与模式错误 ---\n\t\"Error: --fork cannot be combined with {flags}\": \"错误:--fork 不能与 {flags} 组合使用\",\n\t\"Error: --session-id cannot be combined with {flags}. To resume that exact session, drop the other flags and use --session-id alone (or use --continue to resume the most recent session).\":\n\t\t\"错误:--session-id 不能与 {flags} 组合使用。要恢复该确切会话,请去掉其他 flag,单独使用 --session-id(或使用 --continue 恢复最近会话)。\",\n\t\"Error: --serve cannot be combined with {flags}\": \"错误:--serve 不能与 {flags} 组合使用\",\n\t\"--serve ignores session/model/tool options: {flags}\": \"--serve 会忽略会话/模型/工具选项:{flags}\",\n\t\"Error: @file arguments are not supported in RPC mode\": \"错误:RPC 模式不支持 @file 参数\",\n\t\"Error: --name requires a non-empty value\": \"错误:--name 需要非空值\",\n\t\"Error: AGENT_FORGE_STARTUP_BENCHMARK only supports interactive mode\":\n\t\t\"错误:AGENT_FORGE_STARTUP_BENCHMARK 仅支持交互模式\",\n\n\t// --- main.ts:会话选择/创建 ---\n\t\"Session already exists with id '{sessionId}'\": \"已存在 id 为 '{sessionId}' 的会话\",\n\t\"No session found matching '{arg}'\": \"没有找到匹配 '{arg}' 的会话\",\n\t\"Session found in different project: {cwd}\": \"会话位于其他项目:{cwd}\",\n\t\"Fork this session into current directory?\": \"将该会话 fork 到当前目录?\",\n\t\"Aborted.\": \"已中止。\",\n\t\"No session selected\": \"未选择会话\",\n\t\"Warning: No project session found with id '{sessionId}'; creating a new session with that id.\":\n\t\t\"警告:没有找到 id 为 '{sessionId}' 的项目会话;将创建使用该 id 的新会话。\",\n\n\t// --- main.ts:插件 bootstrap/拒绝 ---\n\t\"Plugin bootstrap {code}: {message}\": \"插件 bootstrap {code}:{message}\",\n\t\"First run: installing {count} factory plugins…\": \"首次运行:正在安装 {count} 个出厂插件…\",\n\t\"{pluginId}: installed {version}\": \"{pluginId}:已安装 {version}\",\n\t\"{pluginId}: install failed ({code}) — startup continues; the next startup retries automatically\":\n\t\t\"{pluginId}:安装失败({code})——启动继续,下次启动将自动重试\",\n\t\"Offline posture (AGENT_FORGE_OFFLINE) skips the startup plugin bootstrap; run `agent-forge plugin install <package>` explicitly to install plugins.\":\n\t\t\"离线姿态(AGENT_FORGE_OFFLINE)跳过启动插件引导;可用 `agent-forge plugin install <包名>` 显式安装插件。\",\n\t\"Warning: capability plugin rejected ({code}): {target}: {message}\":\n\t\t\"警告:能力插件被拒绝({code}):{target}:{message}\",\n\n\t// --- args.ts:printHelp 节标题与标题行 ---\n\t\"AI coding assistant with read, bash, edit, write tools\": \"具备 read、bash、edit、write 工具的 AI 编程助手\",\n\t\"Usage:\": \"用法:\",\n\t\"Commands:\": \"命令:\",\n\t\"Options:\": \"选项:\",\n\t\"Examples:\": \"示例:\",\n\t\"Environment Variables:\": \"环境变量:\",\n\t\"Built-in Tool Names:\": \"内置工具名:\",\n\n\t// --- args.ts:printHelp Commands 描述 ---\n\t\"Install extension source and add to settings\": \"安装扩展源并加入设置\",\n\t\"Remove extension source from settings\": \"从设置中移除扩展源\",\n\t\"Alias for remove\": \"remove 的别名\",\n\t\"Update Agent Forge, extensions, or model catalogs\": \"更新 Agent Forge、扩展或模型目录\",\n\t\"List installed extensions from settings\": \"列出设置中已安装的扩展\",\n\t\"Open TUI to enable/disable package resources (Tab switches scope)\": \"打开 TUI 启用/禁用包资源(Tab 切换作用域)\",\n\t\"Print credentials or check provider readiness\": \"打印凭证或检查提供商就绪状态\",\n\t\"Show help for install/remove/uninstall/update/list/config/auth\":\n\t\t\"显示 install/remove/uninstall/update/list/config/auth 的帮助\",\n\n\t// --- args.ts:printHelp Options 描述 ---\n\t\"Provider name (default: google)\": \"提供商名称(默认:google)\",\n\t'Model pattern or ID (supports \"provider/id\" and optional \":<thinking>\")':\n\t\t'模型模式或 ID(支持 \"provider/id\" 与可选的 \":<thinking>\")',\n\t\"API key (defaults to env vars)\": \"API key(默认取自环境变量)\",\n\t\"System prompt (default: coding assistant prompt)\": \"系统提示词(默认:编程助手提示词)\",\n\t\"Append text or file contents to the system prompt (can be used multiple times)\":\n\t\t\"向系统提示词追加文本或文件内容(可多次使用)\",\n\t\"Output mode: text (default), json, or rpc\": \"输出模式:text(默认)、json 或 rpc\",\n\t\"Non-interactive mode: process prompt and exit\": \"非交互模式:处理提示后退出\",\n\t\"Continue previous session\": \"继续上一个会话\",\n\t\"Select a session to resume\": \"选择要恢复的会话\",\n\t\"Use specific session file or partial UUID\": \"使用指定会话文件或部分 UUID\",\n\t\"Use exact project session ID, creating it if missing\": \"使用精确的项目会话 ID,不存在则创建\",\n\t\"Fork specific session file or partial UUID into a new session\": \"将指定会话文件或部分 UUID fork 为新会话\",\n\t\"Directory for session storage and lookup\": \"会话存储与查找目录\",\n\t\"Suite (方案) for this run: coding (default) or assistant; new sessions only\":\n\t\t\"本次运行的 suite(方案):coding(默认)或 assistant;仅对新会话生效\",\n\t\"Create a user suite workspace and exit; add --clone-from <id> to copy one\":\n\t\t\"创建用户 suite 工作区并退出;加 --clone-from <id> 可复制既有 suite\",\n\t\"Delete a user suite workspace (active session references refuse) and exit\":\n\t\t\"删除用户 suite 工作区(存在活动会话引用时拒绝)并退出\",\n\t\"Reset a builtin suite to factory contents (shows a diff) and exit\":\n\t\t\"将内置 suite 重置为出厂内容(显示 diff)并退出\",\n\t\"(Experimental, local trust only) Serve the coding-agent session runtime over the WebSocket gateway (default: 127.0.0.1; HTTP surface: /healthz plus token-protected artifact reads) and exit on SIGINT/SIGTERM\":\n\t\t\"(实验性,仅限本地信任)经 WebSocket 网关提供 coding-agent 会话运行时(默认:127.0.0.1;HTTP 面:/healthz 及受令牌保护的产物读取),SIGINT/SIGTERM 时退出\",\n\t\"Durable journal: <agentDir>/remote-server-journal.jsonl (never the process cwd)\":\n\t\t\"持久日志:<agentDir>/remote-server-journal.jsonl(绝不写入进程 cwd)\",\n\t\"Opt-in --serve boundary: remote creates must run inside one of these roots (repeatable); without it any local directory is allowed\":\n\t\t\"--serve 的可选边界:远程创建必须在这些根目录内运行(可重复);未指定时允许任意本地目录\",\n\t\"(Experimental) Run as a headless subagent runner: serve the subagent-task protocol on stdio for a parent session's runner pool (D-045)\":\n\t\t\"(实验性)作为无头子代理运行器:在 stdio 上为父会话的 runner 池提供 subagent-task 协议(D-045)\",\n\t\"Don't save session (ephemeral)\": \"不保存会话(一次性)\",\n\t\"Set session display name\": \"设置会话显示名称\",\n\t\"Comma-separated model patterns for Ctrl+P cycling\": \"逗号分隔的模型模式,用于 Ctrl+P 轮换\",\n\t\"Supports globs (anthropic/*, *sonnet*) and fuzzy matching\": \"支持 glob(anthropic/*、*sonnet*)与模糊匹配\",\n\t\"Disable all tools by default (built-in and plugin)\": \"默认禁用全部工具(内置与插件)\",\n\t\"Disable built-in tools by default but keep plugin/custom tools enabled\":\n\t\t\"默认禁用内置工具,但保持插件/自定义工具可用\",\n\t\"Comma-separated allowlist of tool names to enable\": \"逗号分隔的工具名白名单\",\n\t\"Applies to built-in, plugin, and custom tools\": \"作用于内置、插件与自定义工具\",\n\t\"Comma-separated denylist of tool names to disable\": \"逗号分隔的工具名黑名单\",\n\t\"Set thinking level: off, minimal, low, medium, high, xhigh, max\":\n\t\t\"设置思考级别:off、minimal、low、medium、high、xhigh、max\",\n\t\"Disable capability plugin discovery (D-028 escape hatch)\": \"禁用能力插件发现(D-028 逃生口)\",\n\t\"Disable session trace collection (no .trace.jsonl file is written)\": \"禁用会话轨迹收集(不写 .trace.jsonl 文件)\",\n\t\"Host log level: debug, info (default), warn, error\": \"宿主日志级别:debug、info(默认)、warn、error\",\n\t\"Select a builtin capability plugin profile for this run\": \"为本次运行选择内置能力插件 profile\",\n\t\"Select a plugin within the profile (repeatable)\": \"在 profile 内选择插件(可重复)\",\n\t\"Disable a plugin within the profile (repeatable)\": \"在 profile 内禁用插件(可重复)\",\n\t\"Read the explicit selection from global or project storage\": \"从全局或项目存储读取显式选择\",\n\t\"List installed/available ecosystem plugins (independent namespace)\": \"列出已安装/可用的生态插件(独立命名空间)\",\n\t\"Load a skill file or directory (can be used multiple times)\": \"加载 skill 文件或目录(可多次使用)\",\n\t\"Disable skills discovery and loading\": \"禁用 skill 发现与加载\",\n\t\"Load a prompt template file or directory (can be used multiple times)\": \"加载提示词模板文件或目录(可多次使用)\",\n\t\"Disable prompt template discovery and loading\": \"禁用提示词模板发现与加载\",\n\t\"Load a theme file or directory (can be used multiple times)\": \"加载主题文件或目录(可多次使用)\",\n\t\"Set the initial interactive theme for this run\": \"设置本次运行的初始交互主题\",\n\t\"Disable theme discovery and loading\": \"禁用主题发现与加载\",\n\t\"Disable AGENTS.md and CLAUDE.md discovery and loading\": \"禁用 AGENTS.md 与 CLAUDE.md 的发现与加载\",\n\t\"Export session file to HTML and exit\": \"将会话文件导出为 HTML 并退出\",\n\t\"View a session trace file as a text timeline and exit; <session> is a session id/prefix or trace/session file path, omit it for the most recent session\":\n\t\t\"以文本时间线查看会话轨迹文件并退出;<session> 为会话 id/前缀或轨迹/会话文件路径,省略则查看最近会话\",\n\t\"With --trace, output the structured trace records as JSON instead of the text timeline\":\n\t\t\"配合 --trace,以 JSON 输出结构化轨迹记录,而非文本时间线\",\n\t\"With --trace, show only records of these kinds (comma-separated); valid kinds: {kinds}\":\n\t\t\"配合 --trace,只显示这些类型的记录(逗号分隔);有效类型:{kinds}\",\n\t\"With --trace, show only the last N records (positive integer)\": \"配合 --trace,只显示最后 N 条记录(正整数)\",\n\t\"List available models (with optional fuzzy search)\": \"列出可用模型(可选模糊搜索)\",\n\t\"Force verbose startup (overrides quietStartup setting)\": \"强制详细启动(覆盖 quietStartup 设置)\",\n\t\"TUI mode: regular (default) or fullscreen\": \"TUI 模式:regular(默认)或 fullscreen\",\n\t\"Disable startup network operations (same as AGENT_FORGE_OFFLINE=1)\":\n\t\t\"禁用启动网络操作(等同 AGENT_FORGE_OFFLINE=1)\",\n\t\"End option parsing; treat remaining arguments as messages/files\": \"结束选项解析;剩余参数视为消息/文件\",\n\t\"Show this help\": \"显示此帮助\",\n\t\"Show version number\": \"显示版本号\",\n\n\t// --- args.ts:printHelp Examples 注释 ---\n\t\"Print a provider API key for an external client\": \"为外部客户端打印提供商 API key\",\n\t\"Print an OAuth bearer token for an external client (refreshes if expired)\":\n\t\t\"为外部客户端打印 OAuth bearer token(过期则刷新)\",\n\t\"Interactive mode\": \"交互模式\",\n\t\"Interactive mode with initial prompt\": \"带初始提示的交互模式\",\n\t\"Include files in initial message\": \"在初始消息中包含文件\",\n\t\"Non-interactive mode (process and exit)\": \"非交互模式(处理后退出)\",\n\t\"Prompt beginning with a dash\": \"以连字符开头的提示\",\n\t\"Multiple messages (interactive)\": \"多条消息(交互)\",\n\t\"Start a named session\": \"启动命名会话\",\n\t\"Use different model\": \"使用不同模型\",\n\t\"Use model with provider prefix (no --provider needed)\": \"使用带提供商前缀的模型(无需 --provider)\",\n\t\"Use model with thinking level shorthand\": \"使用思考级别简写形式的模型\",\n\t\"Limit model cycling to specific models\": \"将模型轮换限定为指定模型\",\n\t\"Limit to a specific provider with glob pattern\": \"用 glob 模式限定到指定提供商\",\n\t\"Cycle models with fixed thinking levels\": \"以固定思考级别轮换模型\",\n\t\"Start with a specific thinking level\": \"以指定思考级别启动\",\n\t\"Read-only mode (no file modifications possible)\": \"只读模式(不能修改文件)\",\n\t\"Disable one tool while keeping the rest available\": \"禁用单个工具,其余保持可用\",\n\t\"Export a session file to HTML\": \"导出会话文件为 HTML\",\n\n\t// --- args.ts:printHelp 环境变量描述 ---\n\t\"Anthropic bearer auth token\": \"Anthropic bearer 认证令牌\",\n\t\"Anthropic Claude API key\": \"Anthropic Claude API key\",\n\t\"Anthropic OAuth token (alternative to API key)\": \"Anthropic OAuth 令牌(API key 的替代)\",\n\t\"Ant Ling API key\": \"Ant Ling API key\",\n\t\"OpenAI GPT API key\": \"OpenAI GPT API key\",\n\t\"Azure OpenAI API key\": \"Azure OpenAI API key\",\n\t\"Azure OpenAI/Cognitive Services base URL (e.g. https://{resource}.openai.azure.com)\":\n\t\t\"Azure OpenAI/Cognitive Services base URL(如 https://{resource}.openai.azure.com)\",\n\t\"Azure OpenAI resource name (alternative to base URL)\": \"Azure OpenAI 资源名(base URL 的替代)\",\n\t\"Azure OpenAI API version (default: v1)\": \"Azure OpenAI API 版本(默认:v1)\",\n\t\"Azure OpenAI model=deployment map (comma-separated)\": \"Azure OpenAI 模型=部署映射(逗号分隔)\",\n\t\"DeepSeek API key\": \"DeepSeek API key\",\n\t\"NVIDIA NIM API key\": \"NVIDIA NIM API key\",\n\t\"Google Gemini API key\": \"Google Gemini API key\",\n\t\"Groq API key\": \"Groq API key\",\n\t\"Cerebras API key\": \"Cerebras API key\",\n\t\"xAI Grok API key\": \"xAI Grok API key\",\n\t\"Fireworks API key\": \"Fireworks API key\",\n\t\"Together AI API key\": \"Together AI API key\",\n\t\"Baseten API key\": \"Baseten API key\",\n\t\"OpenRouter API key\": \"OpenRouter API key\",\n\t\"Vercel AI Gateway API key\": \"Vercel AI Gateway API key\",\n\t\"ZAI Coding Plan API key (Global)\": \"ZAI Coding Plan API key(全球区)\",\n\t\"ZAI Coding Plan API key (China)\": \"ZAI Coding Plan API key(中国区)\",\n\t\"Mistral API key\": \"Mistral API key\",\n\t\"MiniMax API key\": \"MiniMax API key\",\n\t\"Moonshot AI API key\": \"Moonshot AI API key\",\n\t\"OpenCode Zen/OpenCode Go API key\": \"OpenCode Zen/OpenCode Go API key\",\n\t\"Kimi For Coding API key\": \"Kimi For Coding API key\",\n\t\"Cloudflare API token (Workers AI and AI Gateway)\": \"Cloudflare API 令牌(Workers AI 与 AI Gateway)\",\n\t\"Cloudflare account id (required for both)\": \"Cloudflare 账户 id(两者均需要)\",\n\t\"Cloudflare AI Gateway slug (required for AI Gateway)\": \"Cloudflare AI Gateway slug(AI Gateway 需要)\",\n\t\"Qwen Token Plan API key (international region)\": \"Qwen Token Plan API key(国际区)\",\n\t\"Qwen Token Plan API key (China region)\": \"Qwen Token Plan API key(中国区)\",\n\t\"Xiaomi MiMo API key (api.xiaomimimo.com billing)\": \"Xiaomi MiMo API key(按 api.xiaomimimo.com 计费)\",\n\t\"Xiaomi MiMo Token Plan API key (China region)\": \"Xiaomi MiMo Token Plan API key(中国区)\",\n\t\"Xiaomi MiMo Token Plan API key (Amsterdam region)\": \"Xiaomi MiMo Token Plan API key(阿姆斯特丹区)\",\n\t\"Xiaomi MiMo Token Plan API key (Singapore region)\": \"Xiaomi MiMo Token Plan API key(新加坡区)\",\n\t\"AWS profile for Amazon Bedrock\": \"Amazon Bedrock 的 AWS profile\",\n\t\"AWS access key for Amazon Bedrock\": \"Amazon Bedrock 的 AWS access key\",\n\t\"AWS secret key for Amazon Bedrock\": \"Amazon Bedrock 的 AWS secret key\",\n\t\"Bedrock API key (bearer token)\": \"Bedrock API key(bearer token)\",\n\t\"AWS region for Amazon Bedrock (e.g., us-east-1)\": \"Amazon Bedrock 的 AWS 区域(如 us-east-1)\",\n\t\"Config directory (default: ~/{configDir}/agent)\": \"配置目录(默认:~/{configDir}/agent)\",\n\t\"Session storage directory (overridden by --session-dir)\": \"会话存储目录(--session-dir 可覆盖)\",\n\t\"Override package directory (for Nix/Guix store paths)\": \"覆盖包目录(用于 Nix/Guix store 路径)\",\n\t\"Disable startup network operations when set to 1/true/yes\": \"设为 1/true/yes 时禁用启动网络操作\",\n\n\t// --- args.ts:printHelp 内置工具描述 ---\n\t\"Read file contents\": \"读取文件内容\",\n\t\"Execute bash commands\": \"执行 bash 命令\",\n\t\"Execute PowerShell commands on Windows\": \"在 Windows 上执行 PowerShell 命令\",\n\t\"Edit files with find/replace\": \"以查找/替换方式编辑文件\",\n\t\"Write files (creates/overwrites)\": \"写文件(创建/覆盖)\",\n\t\"Search file contents (read-only, off by default)\": \"搜索文件内容(只读,默认关闭)\",\n\t\"Find files by glob pattern (read-only, off by default)\": \"按 glob 模式查找文件(只读,默认关闭)\",\n\t\"List directory contents (read-only, off by default)\": \"列出目录内容(只读,默认关闭)\",\n\n\t// --- auth-command.ts:printAuthCommandHelp ---\n\t\"Auth commands require at least one of --provider or --model. Checks refresh expired OAuth credentials by default; --no-refresh prevents this. --credentials emits the credential, or includes it in JSON output. --no-refresh also leaves command-backed keys unresolved: --credentials reports them as unavailable instead of running the command.\":\n\t\t\"auth 命令需要 --provider 或 --model 至少其一。check 默认刷新已过期的 OAuth 凭证;--no-refresh 可阻止。--credentials 输出凭证,或将其包含在 JSON 输出中。--no-refresh 同时不解析命令型 key:--credentials 将其报告为不可用,而不会执行该命令。\",\n\n\t// --- list-models.ts ---\n\t\"Warning: errors loading models.json:\\n{loadError}\": \"警告:加载 models.json 出错:\\n{loadError}\",\n\t'No models matching \"{searchPattern}\"': '没有匹配 \"{searchPattern}\" 的模型',\n\tprovider: \"提供商\",\n\tmodel: \"模型\",\n\tcontext: \"上下文\",\n\t\"max-out\": \"最大输出\",\n\tthinking: \"思考\",\n\timages: \"图像\",\n\n\t// --- print-mode.ts ---\n\t\"{label}: {url}\": \"{label}:{url}\",\n\t\"Request {stopReason}\": \"请求 {stopReason}\",\n\n\t// --- serve.ts ---\n\t\"remote-server error: {error}\": \"remote-server 错误:{error}\",\n\t\"Port {port} is already in use\": \"端口 {port} 已被占用\",\n\t\"Remote server shutdown failed: {error}\": \"远程服务器关闭失败:{error}\",\n\t\"Remote server listening on {addresses}\": \"远程服务器监听于 {addresses}\",\n};\n"]}
@@ -51,6 +51,8 @@ export const cli = {
51
51
  // --- main.ts:插件 bootstrap/拒绝 ---
52
52
  "Plugin bootstrap {code}: {message}": "插件 bootstrap {code}:{message}",
53
53
  "First run: installing {count} factory plugins…": "首次运行:正在安装 {count} 个出厂插件…",
54
+ "{pluginId}: installed {version}": "{pluginId}:已安装 {version}",
55
+ "{pluginId}: install failed ({code}) — startup continues; the next startup retries automatically": "{pluginId}:安装失败({code})——启动继续,下次启动将自动重试",
54
56
  "Offline posture (AGENT_FORGE_OFFLINE) skips the startup plugin bootstrap; run `agent-forge plugin install <package>` explicitly to install plugins.": "离线姿态(AGENT_FORGE_OFFLINE)跳过启动插件引导;可用 `agent-forge plugin install <包名>` 显式安装插件。",
55
57
  "Warning: capability plugin rejected ({code}): {target}: {message}": "警告:能力插件被拒绝({code}):{target}:{message}",
56
58
  // --- args.ts:printHelp 节标题与标题行 ---
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/cli.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * CLI 输出层域词典(docs/design/国际化与本地化.md §3,批次⑤):覆盖\n * main.ts 启动/错误输出、--help(printHelp)、auth help、--list-models、\n * print-mode 的用户可见文案。key 为英文原文,占位符 `{name}` 原样保留。\n * 命令名、flag、路径、环境变量、suite 等代码标识符不译。\n */\nexport const cli: Record<string, string> = {\n\t// --- main.ts:诊断/错误前缀与兜底 ---\n\t\"Error: {message}\": \"错误:{message}\",\n\t\"Warning: {message}\": \"警告:{message}\",\n\t\"Failed to parse auth command\": \"解析 auth 命令失败\",\n\t\"Failed to resolve credential\": \"解析凭证失败\",\n\t\"Failed to export session\": \"导出会话失败\",\n\t\"Exported to: {result}\": \"已导出到:{result}\",\n\n\t// --- main.ts:auth 命令参数错误 ---\n\t'Invalid arguments for \"{command}\".': '\"{command}\" 的参数无效。',\n\t'Use \"{help}\" or \"{usage}\".': '请使用 \"{help}\" 或 \"{usage}\"。',\n\n\t// --- main.ts:suite 生命周期 ---\n\t'Created suite \"{id}\" at {dir}': '已创建 suite \"{id}\",位于 {dir}',\n\t\"Error: --clone-from requires --suite-create\": \"错误:--clone-from 需要与 --suite-create 一起使用\",\n\t'Error: suite \"{id}\" is referenced by {count} existing session(s); deletion refused:':\n\t\t'错误:suite \"{id}\" 被 {count} 个现有会话引用,拒绝删除:',\n\t'Deleting suite \"{id}\": the workspace directory {dir} will be moved to the trash and released.':\n\t\t'正在删除 suite \"{id}\":工作区目录 {dir} 将被移入回收站并释放。',\n\t'Refusing to delete suite \"{id}\" without an interactive confirmation (non-interactive stdin). Re-run in a terminal to confirm.':\n\t\t'拒绝删除 suite \"{id}\":缺少交互式确认(stdin 非交互)。请在终端中重新运行以确认。',\n\t'Delete suite \"{id}\"?': '删除 suite \"{id}\"?',\n\t'Aborted: suite \"{id}\" was not deleted.': '已中止:suite \"{id}\" 未删除。',\n\t'Cleared the {scope} settings \"suite\" key (pointed at \"{id}\").':\n\t\t'已清除 {scope} 设置中的 \"suite\" 键(原指向 \"{id}\")。',\n\t'Deleted suite \"{id}\"; the workspace was moved to {trashPath} and is being released.':\n\t\t'已删除 suite \"{id}\";工作区已移至 {trashPath},正在释放。',\n\t'Suite \"{id}\" is a user suite; only builtin suites can be reset — use --suite-delete instead.':\n\t\t'suite \"{id}\" 是用户 suite;只有内置 suite 可以重置——请改用 --suite-delete。',\n\t'Suite \"{id}\" already matches the factory contents; nothing to reset.': 'suite \"{id}\" 已与出厂内容一致,无需重置。',\n\t'Resetting builtin suite \"{id}\" to the factory contents:': '正在将内置 suite \"{id}\" 重置为出厂内容:',\n\t'Refusing to reset suite \"{id}\" without an interactive confirmation (non-interactive stdin). Review the diff above and re-run in a terminal to confirm.':\n\t\t'拒绝重置 suite \"{id}\":缺少交互式确认(stdin 非交互)。请先查看上方 diff,再在终端中重新运行以确认。',\n\t'Apply reset of suite \"{id}\"?': '应用 suite \"{id}\" 的重置?',\n\t'Aborted: suite \"{id}\" was not reset.': '已中止:suite \"{id}\" 未重置。',\n\t'Suite \"{id}\" was reset to the factory contents (profile lock generation {generation}).':\n\t\t'suite \"{id}\" 已重置为出厂内容(profile lock 代数 {generation})。',\n\n\t// --- main.ts:flag 冲突与模式错误 ---\n\t\"Error: --fork cannot be combined with {flags}\": \"错误:--fork 不能与 {flags} 组合使用\",\n\t\"Error: --session-id cannot be combined with {flags}. To resume that exact session, drop the other flags and use --session-id alone (or use --continue to resume the most recent session).\":\n\t\t\"错误:--session-id 不能与 {flags} 组合使用。要恢复该确切会话,请去掉其他 flag,单独使用 --session-id(或使用 --continue 恢复最近会话)。\",\n\t\"Error: --serve cannot be combined with {flags}\": \"错误:--serve 不能与 {flags} 组合使用\",\n\t\"--serve ignores session/model/tool options: {flags}\": \"--serve 会忽略会话/模型/工具选项:{flags}\",\n\t\"Error: @file arguments are not supported in RPC mode\": \"错误:RPC 模式不支持 @file 参数\",\n\t\"Error: --name requires a non-empty value\": \"错误:--name 需要非空值\",\n\t\"Error: AGENT_FORGE_STARTUP_BENCHMARK only supports interactive mode\":\n\t\t\"错误:AGENT_FORGE_STARTUP_BENCHMARK 仅支持交互模式\",\n\n\t// --- main.ts:会话选择/创建 ---\n\t\"Session already exists with id '{sessionId}'\": \"已存在 id 为 '{sessionId}' 的会话\",\n\t\"No session found matching '{arg}'\": \"没有找到匹配 '{arg}' 的会话\",\n\t\"Session found in different project: {cwd}\": \"会话位于其他项目:{cwd}\",\n\t\"Fork this session into current directory?\": \"将该会话 fork 到当前目录?\",\n\t\"Aborted.\": \"已中止。\",\n\t\"No session selected\": \"未选择会话\",\n\t\"Warning: No project session found with id '{sessionId}'; creating a new session with that id.\":\n\t\t\"警告:没有找到 id 为 '{sessionId}' 的项目会话;将创建使用该 id 的新会话。\",\n\n\t// --- main.ts:插件 bootstrap/拒绝 ---\n\t\"Plugin bootstrap {code}: {message}\": \"插件 bootstrap {code}:{message}\",\n\t\"First run: installing {count} factory plugins…\": \"首次运行:正在安装 {count} 个出厂插件…\",\n\t\"Offline posture (AGENT_FORGE_OFFLINE) skips the startup plugin bootstrap; run `agent-forge plugin install <package>` explicitly to install plugins.\":\n\t\t\"离线姿态(AGENT_FORGE_OFFLINE)跳过启动插件引导;可用 `agent-forge plugin install <包名>` 显式安装插件。\",\n\t\"Warning: capability plugin rejected ({code}): {target}: {message}\":\n\t\t\"警告:能力插件被拒绝({code}):{target}:{message}\",\n\n\t// --- args.ts:printHelp 节标题与标题行 ---\n\t\"AI coding assistant with read, bash, edit, write tools\": \"具备 read、bash、edit、write 工具的 AI 编程助手\",\n\t\"Usage:\": \"用法:\",\n\t\"Commands:\": \"命令:\",\n\t\"Options:\": \"选项:\",\n\t\"Examples:\": \"示例:\",\n\t\"Environment Variables:\": \"环境变量:\",\n\t\"Built-in Tool Names:\": \"内置工具名:\",\n\n\t// --- args.ts:printHelp Commands 描述 ---\n\t\"Install extension source and add to settings\": \"安装扩展源并加入设置\",\n\t\"Remove extension source from settings\": \"从设置中移除扩展源\",\n\t\"Alias for remove\": \"remove 的别名\",\n\t\"Update Agent Forge, extensions, or model catalogs\": \"更新 Agent Forge、扩展或模型目录\",\n\t\"List installed extensions from settings\": \"列出设置中已安装的扩展\",\n\t\"Open TUI to enable/disable package resources (Tab switches scope)\": \"打开 TUI 启用/禁用包资源(Tab 切换作用域)\",\n\t\"Print credentials or check provider readiness\": \"打印凭证或检查提供商就绪状态\",\n\t\"Show help for install/remove/uninstall/update/list/config/auth\":\n\t\t\"显示 install/remove/uninstall/update/list/config/auth 的帮助\",\n\n\t// --- args.ts:printHelp Options 描述 ---\n\t\"Provider name (default: google)\": \"提供商名称(默认:google)\",\n\t'Model pattern or ID (supports \"provider/id\" and optional \":<thinking>\")':\n\t\t'模型模式或 ID(支持 \"provider/id\" 与可选的 \":<thinking>\")',\n\t\"API key (defaults to env vars)\": \"API key(默认取自环境变量)\",\n\t\"System prompt (default: coding assistant prompt)\": \"系统提示词(默认:编程助手提示词)\",\n\t\"Append text or file contents to the system prompt (can be used multiple times)\":\n\t\t\"向系统提示词追加文本或文件内容(可多次使用)\",\n\t\"Output mode: text (default), json, or rpc\": \"输出模式:text(默认)、json 或 rpc\",\n\t\"Non-interactive mode: process prompt and exit\": \"非交互模式:处理提示后退出\",\n\t\"Continue previous session\": \"继续上一个会话\",\n\t\"Select a session to resume\": \"选择要恢复的会话\",\n\t\"Use specific session file or partial UUID\": \"使用指定会话文件或部分 UUID\",\n\t\"Use exact project session ID, creating it if missing\": \"使用精确的项目会话 ID,不存在则创建\",\n\t\"Fork specific session file or partial UUID into a new session\": \"将指定会话文件或部分 UUID fork 为新会话\",\n\t\"Directory for session storage and lookup\": \"会话存储与查找目录\",\n\t\"Suite (方案) for this run: coding (default) or assistant; new sessions only\":\n\t\t\"本次运行的 suite(方案):coding(默认)或 assistant;仅对新会话生效\",\n\t\"Create a user suite workspace and exit; add --clone-from <id> to copy one\":\n\t\t\"创建用户 suite 工作区并退出;加 --clone-from <id> 可复制既有 suite\",\n\t\"Delete a user suite workspace (active session references refuse) and exit\":\n\t\t\"删除用户 suite 工作区(存在活动会话引用时拒绝)并退出\",\n\t\"Reset a builtin suite to factory contents (shows a diff) and exit\":\n\t\t\"将内置 suite 重置为出厂内容(显示 diff)并退出\",\n\t\"(Experimental, local trust only) Serve the coding-agent session runtime over the WebSocket gateway (default: 127.0.0.1; HTTP surface: /healthz plus token-protected artifact reads) and exit on SIGINT/SIGTERM\":\n\t\t\"(实验性,仅限本地信任)经 WebSocket 网关提供 coding-agent 会话运行时(默认:127.0.0.1;HTTP 面:/healthz 及受令牌保护的产物读取),SIGINT/SIGTERM 时退出\",\n\t\"Durable journal: <agentDir>/remote-server-journal.jsonl (never the process cwd)\":\n\t\t\"持久日志:<agentDir>/remote-server-journal.jsonl(绝不写入进程 cwd)\",\n\t\"Opt-in --serve boundary: remote creates must run inside one of these roots (repeatable); without it any local directory is allowed\":\n\t\t\"--serve 的可选边界:远程创建必须在这些根目录内运行(可重复);未指定时允许任意本地目录\",\n\t\"(Experimental) Run as a headless subagent runner: serve the subagent-task protocol on stdio for a parent session's runner pool (D-045)\":\n\t\t\"(实验性)作为无头子代理运行器:在 stdio 上为父会话的 runner 池提供 subagent-task 协议(D-045)\",\n\t\"Don't save session (ephemeral)\": \"不保存会话(一次性)\",\n\t\"Set session display name\": \"设置会话显示名称\",\n\t\"Comma-separated model patterns for Ctrl+P cycling\": \"逗号分隔的模型模式,用于 Ctrl+P 轮换\",\n\t\"Supports globs (anthropic/*, *sonnet*) and fuzzy matching\": \"支持 glob(anthropic/*、*sonnet*)与模糊匹配\",\n\t\"Disable all tools by default (built-in and plugin)\": \"默认禁用全部工具(内置与插件)\",\n\t\"Disable built-in tools by default but keep plugin/custom tools enabled\":\n\t\t\"默认禁用内置工具,但保持插件/自定义工具可用\",\n\t\"Comma-separated allowlist of tool names to enable\": \"逗号分隔的工具名白名单\",\n\t\"Applies to built-in, plugin, and custom tools\": \"作用于内置、插件与自定义工具\",\n\t\"Comma-separated denylist of tool names to disable\": \"逗号分隔的工具名黑名单\",\n\t\"Set thinking level: off, minimal, low, medium, high, xhigh, max\":\n\t\t\"设置思考级别:off、minimal、low、medium、high、xhigh、max\",\n\t\"Disable capability plugin discovery (D-028 escape hatch)\": \"禁用能力插件发现(D-028 逃生口)\",\n\t\"Disable session trace collection (no .trace.jsonl file is written)\": \"禁用会话轨迹收集(不写 .trace.jsonl 文件)\",\n\t\"Host log level: debug, info (default), warn, error\": \"宿主日志级别:debug、info(默认)、warn、error\",\n\t\"Select a builtin capability plugin profile for this run\": \"为本次运行选择内置能力插件 profile\",\n\t\"Select a plugin within the profile (repeatable)\": \"在 profile 内选择插件(可重复)\",\n\t\"Disable a plugin within the profile (repeatable)\": \"在 profile 内禁用插件(可重复)\",\n\t\"Read the explicit selection from global or project storage\": \"从全局或项目存储读取显式选择\",\n\t\"List installed/available ecosystem plugins (independent namespace)\": \"列出已安装/可用的生态插件(独立命名空间)\",\n\t\"Load a skill file or directory (can be used multiple times)\": \"加载 skill 文件或目录(可多次使用)\",\n\t\"Disable skills discovery and loading\": \"禁用 skill 发现与加载\",\n\t\"Load a prompt template file or directory (can be used multiple times)\": \"加载提示词模板文件或目录(可多次使用)\",\n\t\"Disable prompt template discovery and loading\": \"禁用提示词模板发现与加载\",\n\t\"Load a theme file or directory (can be used multiple times)\": \"加载主题文件或目录(可多次使用)\",\n\t\"Set the initial interactive theme for this run\": \"设置本次运行的初始交互主题\",\n\t\"Disable theme discovery and loading\": \"禁用主题发现与加载\",\n\t\"Disable AGENTS.md and CLAUDE.md discovery and loading\": \"禁用 AGENTS.md 与 CLAUDE.md 的发现与加载\",\n\t\"Export session file to HTML and exit\": \"将会话文件导出为 HTML 并退出\",\n\t\"View a session trace file as a text timeline and exit; <session> is a session id/prefix or trace/session file path, omit it for the most recent session\":\n\t\t\"以文本时间线查看会话轨迹文件并退出;<session> 为会话 id/前缀或轨迹/会话文件路径,省略则查看最近会话\",\n\t\"With --trace, output the structured trace records as JSON instead of the text timeline\":\n\t\t\"配合 --trace,以 JSON 输出结构化轨迹记录,而非文本时间线\",\n\t\"With --trace, show only records of these kinds (comma-separated); valid kinds: {kinds}\":\n\t\t\"配合 --trace,只显示这些类型的记录(逗号分隔);有效类型:{kinds}\",\n\t\"With --trace, show only the last N records (positive integer)\": \"配合 --trace,只显示最后 N 条记录(正整数)\",\n\t\"List available models (with optional fuzzy search)\": \"列出可用模型(可选模糊搜索)\",\n\t\"Force verbose startup (overrides quietStartup setting)\": \"强制详细启动(覆盖 quietStartup 设置)\",\n\t\"TUI mode: regular (default) or fullscreen\": \"TUI 模式:regular(默认)或 fullscreen\",\n\t\"Disable startup network operations (same as AGENT_FORGE_OFFLINE=1)\":\n\t\t\"禁用启动网络操作(等同 AGENT_FORGE_OFFLINE=1)\",\n\t\"End option parsing; treat remaining arguments as messages/files\": \"结束选项解析;剩余参数视为消息/文件\",\n\t\"Show this help\": \"显示此帮助\",\n\t\"Show version number\": \"显示版本号\",\n\n\t// --- args.ts:printHelp Examples 注释 ---\n\t\"Print a provider API key for an external client\": \"为外部客户端打印提供商 API key\",\n\t\"Print an OAuth bearer token for an external client (refreshes if expired)\":\n\t\t\"为外部客户端打印 OAuth bearer token(过期则刷新)\",\n\t\"Interactive mode\": \"交互模式\",\n\t\"Interactive mode with initial prompt\": \"带初始提示的交互模式\",\n\t\"Include files in initial message\": \"在初始消息中包含文件\",\n\t\"Non-interactive mode (process and exit)\": \"非交互模式(处理后退出)\",\n\t\"Prompt beginning with a dash\": \"以连字符开头的提示\",\n\t\"Multiple messages (interactive)\": \"多条消息(交互)\",\n\t\"Start a named session\": \"启动命名会话\",\n\t\"Use different model\": \"使用不同模型\",\n\t\"Use model with provider prefix (no --provider needed)\": \"使用带提供商前缀的模型(无需 --provider)\",\n\t\"Use model with thinking level shorthand\": \"使用思考级别简写形式的模型\",\n\t\"Limit model cycling to specific models\": \"将模型轮换限定为指定模型\",\n\t\"Limit to a specific provider with glob pattern\": \"用 glob 模式限定到指定提供商\",\n\t\"Cycle models with fixed thinking levels\": \"以固定思考级别轮换模型\",\n\t\"Start with a specific thinking level\": \"以指定思考级别启动\",\n\t\"Read-only mode (no file modifications possible)\": \"只读模式(不能修改文件)\",\n\t\"Disable one tool while keeping the rest available\": \"禁用单个工具,其余保持可用\",\n\t\"Export a session file to HTML\": \"导出会话文件为 HTML\",\n\n\t// --- args.ts:printHelp 环境变量描述 ---\n\t\"Anthropic bearer auth token\": \"Anthropic bearer 认证令牌\",\n\t\"Anthropic Claude API key\": \"Anthropic Claude API key\",\n\t\"Anthropic OAuth token (alternative to API key)\": \"Anthropic OAuth 令牌(API key 的替代)\",\n\t\"Ant Ling API key\": \"Ant Ling API key\",\n\t\"OpenAI GPT API key\": \"OpenAI GPT API key\",\n\t\"Azure OpenAI API key\": \"Azure OpenAI API key\",\n\t\"Azure OpenAI/Cognitive Services base URL (e.g. https://{resource}.openai.azure.com)\":\n\t\t\"Azure OpenAI/Cognitive Services base URL(如 https://{resource}.openai.azure.com)\",\n\t\"Azure OpenAI resource name (alternative to base URL)\": \"Azure OpenAI 资源名(base URL 的替代)\",\n\t\"Azure OpenAI API version (default: v1)\": \"Azure OpenAI API 版本(默认:v1)\",\n\t\"Azure OpenAI model=deployment map (comma-separated)\": \"Azure OpenAI 模型=部署映射(逗号分隔)\",\n\t\"DeepSeek API key\": \"DeepSeek API key\",\n\t\"NVIDIA NIM API key\": \"NVIDIA NIM API key\",\n\t\"Google Gemini API key\": \"Google Gemini API key\",\n\t\"Groq API key\": \"Groq API key\",\n\t\"Cerebras API key\": \"Cerebras API key\",\n\t\"xAI Grok API key\": \"xAI Grok API key\",\n\t\"Fireworks API key\": \"Fireworks API key\",\n\t\"Together AI API key\": \"Together AI API key\",\n\t\"Baseten API key\": \"Baseten API key\",\n\t\"OpenRouter API key\": \"OpenRouter API key\",\n\t\"Vercel AI Gateway API key\": \"Vercel AI Gateway API key\",\n\t\"ZAI Coding Plan API key (Global)\": \"ZAI Coding Plan API key(全球区)\",\n\t\"ZAI Coding Plan API key (China)\": \"ZAI Coding Plan API key(中国区)\",\n\t\"Mistral API key\": \"Mistral API key\",\n\t\"MiniMax API key\": \"MiniMax API key\",\n\t\"Moonshot AI API key\": \"Moonshot AI API key\",\n\t\"OpenCode Zen/OpenCode Go API key\": \"OpenCode Zen/OpenCode Go API key\",\n\t\"Kimi For Coding API key\": \"Kimi For Coding API key\",\n\t\"Cloudflare API token (Workers AI and AI Gateway)\": \"Cloudflare API 令牌(Workers AI 与 AI Gateway)\",\n\t\"Cloudflare account id (required for both)\": \"Cloudflare 账户 id(两者均需要)\",\n\t\"Cloudflare AI Gateway slug (required for AI Gateway)\": \"Cloudflare AI Gateway slug(AI Gateway 需要)\",\n\t\"Qwen Token Plan API key (international region)\": \"Qwen Token Plan API key(国际区)\",\n\t\"Qwen Token Plan API key (China region)\": \"Qwen Token Plan API key(中国区)\",\n\t\"Xiaomi MiMo API key (api.xiaomimimo.com billing)\": \"Xiaomi MiMo API key(按 api.xiaomimimo.com 计费)\",\n\t\"Xiaomi MiMo Token Plan API key (China region)\": \"Xiaomi MiMo Token Plan API key(中国区)\",\n\t\"Xiaomi MiMo Token Plan API key (Amsterdam region)\": \"Xiaomi MiMo Token Plan API key(阿姆斯特丹区)\",\n\t\"Xiaomi MiMo Token Plan API key (Singapore region)\": \"Xiaomi MiMo Token Plan API key(新加坡区)\",\n\t\"AWS profile for Amazon Bedrock\": \"Amazon Bedrock 的 AWS profile\",\n\t\"AWS access key for Amazon Bedrock\": \"Amazon Bedrock 的 AWS access key\",\n\t\"AWS secret key for Amazon Bedrock\": \"Amazon Bedrock 的 AWS secret key\",\n\t\"Bedrock API key (bearer token)\": \"Bedrock API key(bearer token)\",\n\t\"AWS region for Amazon Bedrock (e.g., us-east-1)\": \"Amazon Bedrock 的 AWS 区域(如 us-east-1)\",\n\t\"Config directory (default: ~/{configDir}/agent)\": \"配置目录(默认:~/{configDir}/agent)\",\n\t\"Session storage directory (overridden by --session-dir)\": \"会话存储目录(--session-dir 可覆盖)\",\n\t\"Override package directory (for Nix/Guix store paths)\": \"覆盖包目录(用于 Nix/Guix store 路径)\",\n\t\"Disable startup network operations when set to 1/true/yes\": \"设为 1/true/yes 时禁用启动网络操作\",\n\n\t// --- args.ts:printHelp 内置工具描述 ---\n\t\"Read file contents\": \"读取文件内容\",\n\t\"Execute bash commands\": \"执行 bash 命令\",\n\t\"Execute PowerShell commands on Windows\": \"在 Windows 上执行 PowerShell 命令\",\n\t\"Edit files with find/replace\": \"以查找/替换方式编辑文件\",\n\t\"Write files (creates/overwrites)\": \"写文件(创建/覆盖)\",\n\t\"Search file contents (read-only, off by default)\": \"搜索文件内容(只读,默认关闭)\",\n\t\"Find files by glob pattern (read-only, off by default)\": \"按 glob 模式查找文件(只读,默认关闭)\",\n\t\"List directory contents (read-only, off by default)\": \"列出目录内容(只读,默认关闭)\",\n\n\t// --- auth-command.ts:printAuthCommandHelp ---\n\t\"Auth commands require at least one of --provider or --model. Checks refresh expired OAuth credentials by default; --no-refresh prevents this. --credentials emits the credential, or includes it in JSON output. --no-refresh also leaves command-backed keys unresolved: --credentials reports them as unavailable instead of running the command.\":\n\t\t\"auth 命令需要 --provider 或 --model 至少其一。check 默认刷新已过期的 OAuth 凭证;--no-refresh 可阻止。--credentials 输出凭证,或将其包含在 JSON 输出中。--no-refresh 同时不解析命令型 key:--credentials 将其报告为不可用,而不会执行该命令。\",\n\n\t// --- list-models.ts ---\n\t\"Warning: errors loading models.json:\\n{loadError}\": \"警告:加载 models.json 出错:\\n{loadError}\",\n\t'No models matching \"{searchPattern}\"': '没有匹配 \"{searchPattern}\" 的模型',\n\tprovider: \"提供商\",\n\tmodel: \"模型\",\n\tcontext: \"上下文\",\n\t\"max-out\": \"最大输出\",\n\tthinking: \"思考\",\n\timages: \"图像\",\n\n\t// --- print-mode.ts ---\n\t\"{label}: {url}\": \"{label}:{url}\",\n\t\"Request {stopReason}\": \"请求 {stopReason}\",\n\n\t// --- serve.ts ---\n\t\"remote-server error: {error}\": \"remote-server 错误:{error}\",\n\t\"Port {port} is already in use\": \"端口 {port} 已被占用\",\n\t\"Remote server shutdown failed: {error}\": \"远程服务器关闭失败:{error}\",\n\t\"Remote server listening on {addresses}\": \"远程服务器监听于 {addresses}\",\n};\n"]}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/cli.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * CLI 输出层域词典(docs/design/国际化与本地化.md §3,批次⑤):覆盖\n * main.ts 启动/错误输出、--help(printHelp)、auth help、--list-models、\n * print-mode 的用户可见文案。key 为英文原文,占位符 `{name}` 原样保留。\n * 命令名、flag、路径、环境变量、suite 等代码标识符不译。\n */\nexport const cli: Record<string, string> = {\n\t// --- main.ts:诊断/错误前缀与兜底 ---\n\t\"Error: {message}\": \"错误:{message}\",\n\t\"Warning: {message}\": \"警告:{message}\",\n\t\"Failed to parse auth command\": \"解析 auth 命令失败\",\n\t\"Failed to resolve credential\": \"解析凭证失败\",\n\t\"Failed to export session\": \"导出会话失败\",\n\t\"Exported to: {result}\": \"已导出到:{result}\",\n\n\t// --- main.ts:auth 命令参数错误 ---\n\t'Invalid arguments for \"{command}\".': '\"{command}\" 的参数无效。',\n\t'Use \"{help}\" or \"{usage}\".': '请使用 \"{help}\" 或 \"{usage}\"。',\n\n\t// --- main.ts:suite 生命周期 ---\n\t'Created suite \"{id}\" at {dir}': '已创建 suite \"{id}\",位于 {dir}',\n\t\"Error: --clone-from requires --suite-create\": \"错误:--clone-from 需要与 --suite-create 一起使用\",\n\t'Error: suite \"{id}\" is referenced by {count} existing session(s); deletion refused:':\n\t\t'错误:suite \"{id}\" 被 {count} 个现有会话引用,拒绝删除:',\n\t'Deleting suite \"{id}\": the workspace directory {dir} will be moved to the trash and released.':\n\t\t'正在删除 suite \"{id}\":工作区目录 {dir} 将被移入回收站并释放。',\n\t'Refusing to delete suite \"{id}\" without an interactive confirmation (non-interactive stdin). Re-run in a terminal to confirm.':\n\t\t'拒绝删除 suite \"{id}\":缺少交互式确认(stdin 非交互)。请在终端中重新运行以确认。',\n\t'Delete suite \"{id}\"?': '删除 suite \"{id}\"?',\n\t'Aborted: suite \"{id}\" was not deleted.': '已中止:suite \"{id}\" 未删除。',\n\t'Cleared the {scope} settings \"suite\" key (pointed at \"{id}\").':\n\t\t'已清除 {scope} 设置中的 \"suite\" 键(原指向 \"{id}\")。',\n\t'Deleted suite \"{id}\"; the workspace was moved to {trashPath} and is being released.':\n\t\t'已删除 suite \"{id}\";工作区已移至 {trashPath},正在释放。',\n\t'Suite \"{id}\" is a user suite; only builtin suites can be reset — use --suite-delete instead.':\n\t\t'suite \"{id}\" 是用户 suite;只有内置 suite 可以重置——请改用 --suite-delete。',\n\t'Suite \"{id}\" already matches the factory contents; nothing to reset.': 'suite \"{id}\" 已与出厂内容一致,无需重置。',\n\t'Resetting builtin suite \"{id}\" to the factory contents:': '正在将内置 suite \"{id}\" 重置为出厂内容:',\n\t'Refusing to reset suite \"{id}\" without an interactive confirmation (non-interactive stdin). Review the diff above and re-run in a terminal to confirm.':\n\t\t'拒绝重置 suite \"{id}\":缺少交互式确认(stdin 非交互)。请先查看上方 diff,再在终端中重新运行以确认。',\n\t'Apply reset of suite \"{id}\"?': '应用 suite \"{id}\" 的重置?',\n\t'Aborted: suite \"{id}\" was not reset.': '已中止:suite \"{id}\" 未重置。',\n\t'Suite \"{id}\" was reset to the factory contents (profile lock generation {generation}).':\n\t\t'suite \"{id}\" 已重置为出厂内容(profile lock 代数 {generation})。',\n\n\t// --- main.ts:flag 冲突与模式错误 ---\n\t\"Error: --fork cannot be combined with {flags}\": \"错误:--fork 不能与 {flags} 组合使用\",\n\t\"Error: --session-id cannot be combined with {flags}. To resume that exact session, drop the other flags and use --session-id alone (or use --continue to resume the most recent session).\":\n\t\t\"错误:--session-id 不能与 {flags} 组合使用。要恢复该确切会话,请去掉其他 flag,单独使用 --session-id(或使用 --continue 恢复最近会话)。\",\n\t\"Error: --serve cannot be combined with {flags}\": \"错误:--serve 不能与 {flags} 组合使用\",\n\t\"--serve ignores session/model/tool options: {flags}\": \"--serve 会忽略会话/模型/工具选项:{flags}\",\n\t\"Error: @file arguments are not supported in RPC mode\": \"错误:RPC 模式不支持 @file 参数\",\n\t\"Error: --name requires a non-empty value\": \"错误:--name 需要非空值\",\n\t\"Error: AGENT_FORGE_STARTUP_BENCHMARK only supports interactive mode\":\n\t\t\"错误:AGENT_FORGE_STARTUP_BENCHMARK 仅支持交互模式\",\n\n\t// --- main.ts:会话选择/创建 ---\n\t\"Session already exists with id '{sessionId}'\": \"已存在 id 为 '{sessionId}' 的会话\",\n\t\"No session found matching '{arg}'\": \"没有找到匹配 '{arg}' 的会话\",\n\t\"Session found in different project: {cwd}\": \"会话位于其他项目:{cwd}\",\n\t\"Fork this session into current directory?\": \"将该会话 fork 到当前目录?\",\n\t\"Aborted.\": \"已中止。\",\n\t\"No session selected\": \"未选择会话\",\n\t\"Warning: No project session found with id '{sessionId}'; creating a new session with that id.\":\n\t\t\"警告:没有找到 id 为 '{sessionId}' 的项目会话;将创建使用该 id 的新会话。\",\n\n\t// --- main.ts:插件 bootstrap/拒绝 ---\n\t\"Plugin bootstrap {code}: {message}\": \"插件 bootstrap {code}:{message}\",\n\t\"First run: installing {count} factory plugins…\": \"首次运行:正在安装 {count} 个出厂插件…\",\n\t\"{pluginId}: installed {version}\": \"{pluginId}:已安装 {version}\",\n\t\"{pluginId}: install failed ({code}) — startup continues; the next startup retries automatically\":\n\t\t\"{pluginId}:安装失败({code})——启动继续,下次启动将自动重试\",\n\t\"Offline posture (AGENT_FORGE_OFFLINE) skips the startup plugin bootstrap; run `agent-forge plugin install <package>` explicitly to install plugins.\":\n\t\t\"离线姿态(AGENT_FORGE_OFFLINE)跳过启动插件引导;可用 `agent-forge plugin install <包名>` 显式安装插件。\",\n\t\"Warning: capability plugin rejected ({code}): {target}: {message}\":\n\t\t\"警告:能力插件被拒绝({code}):{target}:{message}\",\n\n\t// --- args.ts:printHelp 节标题与标题行 ---\n\t\"AI coding assistant with read, bash, edit, write tools\": \"具备 read、bash、edit、write 工具的 AI 编程助手\",\n\t\"Usage:\": \"用法:\",\n\t\"Commands:\": \"命令:\",\n\t\"Options:\": \"选项:\",\n\t\"Examples:\": \"示例:\",\n\t\"Environment Variables:\": \"环境变量:\",\n\t\"Built-in Tool Names:\": \"内置工具名:\",\n\n\t// --- args.ts:printHelp Commands 描述 ---\n\t\"Install extension source and add to settings\": \"安装扩展源并加入设置\",\n\t\"Remove extension source from settings\": \"从设置中移除扩展源\",\n\t\"Alias for remove\": \"remove 的别名\",\n\t\"Update Agent Forge, extensions, or model catalogs\": \"更新 Agent Forge、扩展或模型目录\",\n\t\"List installed extensions from settings\": \"列出设置中已安装的扩展\",\n\t\"Open TUI to enable/disable package resources (Tab switches scope)\": \"打开 TUI 启用/禁用包资源(Tab 切换作用域)\",\n\t\"Print credentials or check provider readiness\": \"打印凭证或检查提供商就绪状态\",\n\t\"Show help for install/remove/uninstall/update/list/config/auth\":\n\t\t\"显示 install/remove/uninstall/update/list/config/auth 的帮助\",\n\n\t// --- args.ts:printHelp Options 描述 ---\n\t\"Provider name (default: google)\": \"提供商名称(默认:google)\",\n\t'Model pattern or ID (supports \"provider/id\" and optional \":<thinking>\")':\n\t\t'模型模式或 ID(支持 \"provider/id\" 与可选的 \":<thinking>\")',\n\t\"API key (defaults to env vars)\": \"API key(默认取自环境变量)\",\n\t\"System prompt (default: coding assistant prompt)\": \"系统提示词(默认:编程助手提示词)\",\n\t\"Append text or file contents to the system prompt (can be used multiple times)\":\n\t\t\"向系统提示词追加文本或文件内容(可多次使用)\",\n\t\"Output mode: text (default), json, or rpc\": \"输出模式:text(默认)、json 或 rpc\",\n\t\"Non-interactive mode: process prompt and exit\": \"非交互模式:处理提示后退出\",\n\t\"Continue previous session\": \"继续上一个会话\",\n\t\"Select a session to resume\": \"选择要恢复的会话\",\n\t\"Use specific session file or partial UUID\": \"使用指定会话文件或部分 UUID\",\n\t\"Use exact project session ID, creating it if missing\": \"使用精确的项目会话 ID,不存在则创建\",\n\t\"Fork specific session file or partial UUID into a new session\": \"将指定会话文件或部分 UUID fork 为新会话\",\n\t\"Directory for session storage and lookup\": \"会话存储与查找目录\",\n\t\"Suite (方案) for this run: coding (default) or assistant; new sessions only\":\n\t\t\"本次运行的 suite(方案):coding(默认)或 assistant;仅对新会话生效\",\n\t\"Create a user suite workspace and exit; add --clone-from <id> to copy one\":\n\t\t\"创建用户 suite 工作区并退出;加 --clone-from <id> 可复制既有 suite\",\n\t\"Delete a user suite workspace (active session references refuse) and exit\":\n\t\t\"删除用户 suite 工作区(存在活动会话引用时拒绝)并退出\",\n\t\"Reset a builtin suite to factory contents (shows a diff) and exit\":\n\t\t\"将内置 suite 重置为出厂内容(显示 diff)并退出\",\n\t\"(Experimental, local trust only) Serve the coding-agent session runtime over the WebSocket gateway (default: 127.0.0.1; HTTP surface: /healthz plus token-protected artifact reads) and exit on SIGINT/SIGTERM\":\n\t\t\"(实验性,仅限本地信任)经 WebSocket 网关提供 coding-agent 会话运行时(默认:127.0.0.1;HTTP 面:/healthz 及受令牌保护的产物读取),SIGINT/SIGTERM 时退出\",\n\t\"Durable journal: <agentDir>/remote-server-journal.jsonl (never the process cwd)\":\n\t\t\"持久日志:<agentDir>/remote-server-journal.jsonl(绝不写入进程 cwd)\",\n\t\"Opt-in --serve boundary: remote creates must run inside one of these roots (repeatable); without it any local directory is allowed\":\n\t\t\"--serve 的可选边界:远程创建必须在这些根目录内运行(可重复);未指定时允许任意本地目录\",\n\t\"(Experimental) Run as a headless subagent runner: serve the subagent-task protocol on stdio for a parent session's runner pool (D-045)\":\n\t\t\"(实验性)作为无头子代理运行器:在 stdio 上为父会话的 runner 池提供 subagent-task 协议(D-045)\",\n\t\"Don't save session (ephemeral)\": \"不保存会话(一次性)\",\n\t\"Set session display name\": \"设置会话显示名称\",\n\t\"Comma-separated model patterns for Ctrl+P cycling\": \"逗号分隔的模型模式,用于 Ctrl+P 轮换\",\n\t\"Supports globs (anthropic/*, *sonnet*) and fuzzy matching\": \"支持 glob(anthropic/*、*sonnet*)与模糊匹配\",\n\t\"Disable all tools by default (built-in and plugin)\": \"默认禁用全部工具(内置与插件)\",\n\t\"Disable built-in tools by default but keep plugin/custom tools enabled\":\n\t\t\"默认禁用内置工具,但保持插件/自定义工具可用\",\n\t\"Comma-separated allowlist of tool names to enable\": \"逗号分隔的工具名白名单\",\n\t\"Applies to built-in, plugin, and custom tools\": \"作用于内置、插件与自定义工具\",\n\t\"Comma-separated denylist of tool names to disable\": \"逗号分隔的工具名黑名单\",\n\t\"Set thinking level: off, minimal, low, medium, high, xhigh, max\":\n\t\t\"设置思考级别:off、minimal、low、medium、high、xhigh、max\",\n\t\"Disable capability plugin discovery (D-028 escape hatch)\": \"禁用能力插件发现(D-028 逃生口)\",\n\t\"Disable session trace collection (no .trace.jsonl file is written)\": \"禁用会话轨迹收集(不写 .trace.jsonl 文件)\",\n\t\"Host log level: debug, info (default), warn, error\": \"宿主日志级别:debug、info(默认)、warn、error\",\n\t\"Select a builtin capability plugin profile for this run\": \"为本次运行选择内置能力插件 profile\",\n\t\"Select a plugin within the profile (repeatable)\": \"在 profile 内选择插件(可重复)\",\n\t\"Disable a plugin within the profile (repeatable)\": \"在 profile 内禁用插件(可重复)\",\n\t\"Read the explicit selection from global or project storage\": \"从全局或项目存储读取显式选择\",\n\t\"List installed/available ecosystem plugins (independent namespace)\": \"列出已安装/可用的生态插件(独立命名空间)\",\n\t\"Load a skill file or directory (can be used multiple times)\": \"加载 skill 文件或目录(可多次使用)\",\n\t\"Disable skills discovery and loading\": \"禁用 skill 发现与加载\",\n\t\"Load a prompt template file or directory (can be used multiple times)\": \"加载提示词模板文件或目录(可多次使用)\",\n\t\"Disable prompt template discovery and loading\": \"禁用提示词模板发现与加载\",\n\t\"Load a theme file or directory (can be used multiple times)\": \"加载主题文件或目录(可多次使用)\",\n\t\"Set the initial interactive theme for this run\": \"设置本次运行的初始交互主题\",\n\t\"Disable theme discovery and loading\": \"禁用主题发现与加载\",\n\t\"Disable AGENTS.md and CLAUDE.md discovery and loading\": \"禁用 AGENTS.md 与 CLAUDE.md 的发现与加载\",\n\t\"Export session file to HTML and exit\": \"将会话文件导出为 HTML 并退出\",\n\t\"View a session trace file as a text timeline and exit; <session> is a session id/prefix or trace/session file path, omit it for the most recent session\":\n\t\t\"以文本时间线查看会话轨迹文件并退出;<session> 为会话 id/前缀或轨迹/会话文件路径,省略则查看最近会话\",\n\t\"With --trace, output the structured trace records as JSON instead of the text timeline\":\n\t\t\"配合 --trace,以 JSON 输出结构化轨迹记录,而非文本时间线\",\n\t\"With --trace, show only records of these kinds (comma-separated); valid kinds: {kinds}\":\n\t\t\"配合 --trace,只显示这些类型的记录(逗号分隔);有效类型:{kinds}\",\n\t\"With --trace, show only the last N records (positive integer)\": \"配合 --trace,只显示最后 N 条记录(正整数)\",\n\t\"List available models (with optional fuzzy search)\": \"列出可用模型(可选模糊搜索)\",\n\t\"Force verbose startup (overrides quietStartup setting)\": \"强制详细启动(覆盖 quietStartup 设置)\",\n\t\"TUI mode: regular (default) or fullscreen\": \"TUI 模式:regular(默认)或 fullscreen\",\n\t\"Disable startup network operations (same as AGENT_FORGE_OFFLINE=1)\":\n\t\t\"禁用启动网络操作(等同 AGENT_FORGE_OFFLINE=1)\",\n\t\"End option parsing; treat remaining arguments as messages/files\": \"结束选项解析;剩余参数视为消息/文件\",\n\t\"Show this help\": \"显示此帮助\",\n\t\"Show version number\": \"显示版本号\",\n\n\t// --- args.ts:printHelp Examples 注释 ---\n\t\"Print a provider API key for an external client\": \"为外部客户端打印提供商 API key\",\n\t\"Print an OAuth bearer token for an external client (refreshes if expired)\":\n\t\t\"为外部客户端打印 OAuth bearer token(过期则刷新)\",\n\t\"Interactive mode\": \"交互模式\",\n\t\"Interactive mode with initial prompt\": \"带初始提示的交互模式\",\n\t\"Include files in initial message\": \"在初始消息中包含文件\",\n\t\"Non-interactive mode (process and exit)\": \"非交互模式(处理后退出)\",\n\t\"Prompt beginning with a dash\": \"以连字符开头的提示\",\n\t\"Multiple messages (interactive)\": \"多条消息(交互)\",\n\t\"Start a named session\": \"启动命名会话\",\n\t\"Use different model\": \"使用不同模型\",\n\t\"Use model with provider prefix (no --provider needed)\": \"使用带提供商前缀的模型(无需 --provider)\",\n\t\"Use model with thinking level shorthand\": \"使用思考级别简写形式的模型\",\n\t\"Limit model cycling to specific models\": \"将模型轮换限定为指定模型\",\n\t\"Limit to a specific provider with glob pattern\": \"用 glob 模式限定到指定提供商\",\n\t\"Cycle models with fixed thinking levels\": \"以固定思考级别轮换模型\",\n\t\"Start with a specific thinking level\": \"以指定思考级别启动\",\n\t\"Read-only mode (no file modifications possible)\": \"只读模式(不能修改文件)\",\n\t\"Disable one tool while keeping the rest available\": \"禁用单个工具,其余保持可用\",\n\t\"Export a session file to HTML\": \"导出会话文件为 HTML\",\n\n\t// --- args.ts:printHelp 环境变量描述 ---\n\t\"Anthropic bearer auth token\": \"Anthropic bearer 认证令牌\",\n\t\"Anthropic Claude API key\": \"Anthropic Claude API key\",\n\t\"Anthropic OAuth token (alternative to API key)\": \"Anthropic OAuth 令牌(API key 的替代)\",\n\t\"Ant Ling API key\": \"Ant Ling API key\",\n\t\"OpenAI GPT API key\": \"OpenAI GPT API key\",\n\t\"Azure OpenAI API key\": \"Azure OpenAI API key\",\n\t\"Azure OpenAI/Cognitive Services base URL (e.g. https://{resource}.openai.azure.com)\":\n\t\t\"Azure OpenAI/Cognitive Services base URL(如 https://{resource}.openai.azure.com)\",\n\t\"Azure OpenAI resource name (alternative to base URL)\": \"Azure OpenAI 资源名(base URL 的替代)\",\n\t\"Azure OpenAI API version (default: v1)\": \"Azure OpenAI API 版本(默认:v1)\",\n\t\"Azure OpenAI model=deployment map (comma-separated)\": \"Azure OpenAI 模型=部署映射(逗号分隔)\",\n\t\"DeepSeek API key\": \"DeepSeek API key\",\n\t\"NVIDIA NIM API key\": \"NVIDIA NIM API key\",\n\t\"Google Gemini API key\": \"Google Gemini API key\",\n\t\"Groq API key\": \"Groq API key\",\n\t\"Cerebras API key\": \"Cerebras API key\",\n\t\"xAI Grok API key\": \"xAI Grok API key\",\n\t\"Fireworks API key\": \"Fireworks API key\",\n\t\"Together AI API key\": \"Together AI API key\",\n\t\"Baseten API key\": \"Baseten API key\",\n\t\"OpenRouter API key\": \"OpenRouter API key\",\n\t\"Vercel AI Gateway API key\": \"Vercel AI Gateway API key\",\n\t\"ZAI Coding Plan API key (Global)\": \"ZAI Coding Plan API key(全球区)\",\n\t\"ZAI Coding Plan API key (China)\": \"ZAI Coding Plan API key(中国区)\",\n\t\"Mistral API key\": \"Mistral API key\",\n\t\"MiniMax API key\": \"MiniMax API key\",\n\t\"Moonshot AI API key\": \"Moonshot AI API key\",\n\t\"OpenCode Zen/OpenCode Go API key\": \"OpenCode Zen/OpenCode Go API key\",\n\t\"Kimi For Coding API key\": \"Kimi For Coding API key\",\n\t\"Cloudflare API token (Workers AI and AI Gateway)\": \"Cloudflare API 令牌(Workers AI 与 AI Gateway)\",\n\t\"Cloudflare account id (required for both)\": \"Cloudflare 账户 id(两者均需要)\",\n\t\"Cloudflare AI Gateway slug (required for AI Gateway)\": \"Cloudflare AI Gateway slug(AI Gateway 需要)\",\n\t\"Qwen Token Plan API key (international region)\": \"Qwen Token Plan API key(国际区)\",\n\t\"Qwen Token Plan API key (China region)\": \"Qwen Token Plan API key(中国区)\",\n\t\"Xiaomi MiMo API key (api.xiaomimimo.com billing)\": \"Xiaomi MiMo API key(按 api.xiaomimimo.com 计费)\",\n\t\"Xiaomi MiMo Token Plan API key (China region)\": \"Xiaomi MiMo Token Plan API key(中国区)\",\n\t\"Xiaomi MiMo Token Plan API key (Amsterdam region)\": \"Xiaomi MiMo Token Plan API key(阿姆斯特丹区)\",\n\t\"Xiaomi MiMo Token Plan API key (Singapore region)\": \"Xiaomi MiMo Token Plan API key(新加坡区)\",\n\t\"AWS profile for Amazon Bedrock\": \"Amazon Bedrock 的 AWS profile\",\n\t\"AWS access key for Amazon Bedrock\": \"Amazon Bedrock 的 AWS access key\",\n\t\"AWS secret key for Amazon Bedrock\": \"Amazon Bedrock 的 AWS secret key\",\n\t\"Bedrock API key (bearer token)\": \"Bedrock API key(bearer token)\",\n\t\"AWS region for Amazon Bedrock (e.g., us-east-1)\": \"Amazon Bedrock 的 AWS 区域(如 us-east-1)\",\n\t\"Config directory (default: ~/{configDir}/agent)\": \"配置目录(默认:~/{configDir}/agent)\",\n\t\"Session storage directory (overridden by --session-dir)\": \"会话存储目录(--session-dir 可覆盖)\",\n\t\"Override package directory (for Nix/Guix store paths)\": \"覆盖包目录(用于 Nix/Guix store 路径)\",\n\t\"Disable startup network operations when set to 1/true/yes\": \"设为 1/true/yes 时禁用启动网络操作\",\n\n\t// --- args.ts:printHelp 内置工具描述 ---\n\t\"Read file contents\": \"读取文件内容\",\n\t\"Execute bash commands\": \"执行 bash 命令\",\n\t\"Execute PowerShell commands on Windows\": \"在 Windows 上执行 PowerShell 命令\",\n\t\"Edit files with find/replace\": \"以查找/替换方式编辑文件\",\n\t\"Write files (creates/overwrites)\": \"写文件(创建/覆盖)\",\n\t\"Search file contents (read-only, off by default)\": \"搜索文件内容(只读,默认关闭)\",\n\t\"Find files by glob pattern (read-only, off by default)\": \"按 glob 模式查找文件(只读,默认关闭)\",\n\t\"List directory contents (read-only, off by default)\": \"列出目录内容(只读,默认关闭)\",\n\n\t// --- auth-command.ts:printAuthCommandHelp ---\n\t\"Auth commands require at least one of --provider or --model. Checks refresh expired OAuth credentials by default; --no-refresh prevents this. --credentials emits the credential, or includes it in JSON output. --no-refresh also leaves command-backed keys unresolved: --credentials reports them as unavailable instead of running the command.\":\n\t\t\"auth 命令需要 --provider 或 --model 至少其一。check 默认刷新已过期的 OAuth 凭证;--no-refresh 可阻止。--credentials 输出凭证,或将其包含在 JSON 输出中。--no-refresh 同时不解析命令型 key:--credentials 将其报告为不可用,而不会执行该命令。\",\n\n\t// --- list-models.ts ---\n\t\"Warning: errors loading models.json:\\n{loadError}\": \"警告:加载 models.json 出错:\\n{loadError}\",\n\t'No models matching \"{searchPattern}\"': '没有匹配 \"{searchPattern}\" 的模型',\n\tprovider: \"提供商\",\n\tmodel: \"模型\",\n\tcontext: \"上下文\",\n\t\"max-out\": \"最大输出\",\n\tthinking: \"思考\",\n\timages: \"图像\",\n\n\t// --- print-mode.ts ---\n\t\"{label}: {url}\": \"{label}:{url}\",\n\t\"Request {stopReason}\": \"请求 {stopReason}\",\n\n\t// --- serve.ts ---\n\t\"remote-server error: {error}\": \"remote-server 错误:{error}\",\n\t\"Port {port} is already in use\": \"端口 {port} 已被占用\",\n\t\"Remote server shutdown failed: {error}\": \"远程服务器关闭失败:{error}\",\n\t\"Remote server listening on {addresses}\": \"远程服务器监听于 {addresses}\",\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/index.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmBvC,CAAC","sourcesContent":["/**\n * zh-CN 聚合入口:收集全部域词典为一个平面 `Record<string, string>`。\n * 新增域文件 = 新建 `<domain>.ts` + 在此处展开;域内 key 冲突处理见设计文档 §翻译规范。\n */\nimport { cli } from \"./cli.ts\";\nimport { common } from \"./common.ts\";\nimport { coreContractCore } from \"./core-contract-core.ts\";\nimport { coreContractExtensions } from \"./core-contract-extensions.ts\";\nimport { coreContractFinal } from \"./core-contract-final.ts\";\nimport { coreContractPlugins } from \"./core-contract-plugins.ts\";\nimport { coreErrors } from \"./core-errors.ts\";\nimport { example } from \"./example.ts\";\nimport { interactiveMode } from \"./interactive-mode.ts\";\nimport { keybindings } from \"./keybindings.ts\";\nimport { slashCommands } from \"./slash-commands.ts\";\nimport { tuiBuiltin } from \"./tui-builtin.ts\";\nimport { tuiComponentsMisc } from \"./tui-components-misc.ts\";\nimport { tuiComponentsSelectors } from \"./tui-components-selectors.ts\";\nimport { tuiInteractiveMisc } from \"./tui-interactive-misc.ts\";\nimport { tuiSelfOwned } from \"./tui-self-owned.ts\";\n\nexport const zhCn: Record<string, string> = {\n\t...common,\n\t...example,\n\t...interactiveMode,\n\t...slashCommands,\n\t...tuiSelfOwned,\n\t...tuiComponentsSelectors,\n\t...tuiComponentsMisc,\n\t...tuiInteractiveMisc,\n\t...cli,\n\t...coreErrors,\n\t...coreContractExtensions,\n\t...coreContractCore,\n\t...coreContractPlugins,\n\t...coreContractFinal,\n\t// 批次⑦两个后铺域:与 interactiveMode 的同名 key(\"Jump forward/backward\n\t// to character\")译文一致,覆盖登记见设计文档 §5.3。\n\t...keybindings,\n\t...tuiBuiltin,\n};\n"]}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/index.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoBvC,CAAC","sourcesContent":["/**\n * zh-CN 聚合入口:收集全部域词典为一个平面 `Record<string, string>`。\n * 新增域文件 = 新建 `<domain>.ts` + 在此处展开;域内 key 冲突处理见设计文档 §翻译规范。\n */\nimport { cli } from \"./cli.ts\";\nimport { common } from \"./common.ts\";\nimport { coreContractCore } from \"./core-contract-core.ts\";\nimport { coreContractExtensions } from \"./core-contract-extensions.ts\";\nimport { coreContractFinal } from \"./core-contract-final.ts\";\nimport { coreContractPlugins } from \"./core-contract-plugins.ts\";\nimport { coreErrors } from \"./core-errors.ts\";\nimport { example } from \"./example.ts\";\nimport { interactiveMode } from \"./interactive-mode.ts\";\nimport { keybindings } from \"./keybindings.ts\";\nimport { sessionCleanup } from \"./session-cleanup.ts\";\nimport { slashCommands } from \"./slash-commands.ts\";\nimport { tuiBuiltin } from \"./tui-builtin.ts\";\nimport { tuiComponentsMisc } from \"./tui-components-misc.ts\";\nimport { tuiComponentsSelectors } from \"./tui-components-selectors.ts\";\nimport { tuiInteractiveMisc } from \"./tui-interactive-misc.ts\";\nimport { tuiSelfOwned } from \"./tui-self-owned.ts\";\n\nexport const zhCn: Record<string, string> = {\n\t...common,\n\t...example,\n\t...interactiveMode,\n\t...slashCommands,\n\t...tuiSelfOwned,\n\t...tuiComponentsSelectors,\n\t...tuiComponentsMisc,\n\t...tuiInteractiveMisc,\n\t...cli,\n\t...coreErrors,\n\t...sessionCleanup,\n\t...coreContractExtensions,\n\t...coreContractCore,\n\t...coreContractPlugins,\n\t...coreContractFinal,\n\t// 批次⑦两个后铺域:与 interactiveMode 的同名 key(\"Jump forward/backward\n\t// to character\")译文一致,覆盖登记见设计文档 §5.3。\n\t...keybindings,\n\t...tuiBuiltin,\n};\n"]}
@@ -12,6 +12,7 @@ import { coreErrors } from "./core-errors.js";
12
12
  import { example } from "./example.js";
13
13
  import { interactiveMode } from "./interactive-mode.js";
14
14
  import { keybindings } from "./keybindings.js";
15
+ import { sessionCleanup } from "./session-cleanup.js";
15
16
  import { slashCommands } from "./slash-commands.js";
16
17
  import { tuiBuiltin } from "./tui-builtin.js";
17
18
  import { tuiComponentsMisc } from "./tui-components-misc.js";
@@ -29,6 +30,7 @@ export const zhCn = {
29
30
  ...tuiInteractiveMisc,
30
31
  ...cli,
31
32
  ...coreErrors,
33
+ ...sessionCleanup,
32
34
  ...coreContractExtensions,
33
35
  ...coreContractCore,
34
36
  ...coreContractPlugins,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,CAAC,MAAM,IAAI,GAA2B;IAC3C,GAAG,MAAM;IACT,GAAG,OAAO;IACV,GAAG,eAAe;IAClB,GAAG,aAAa;IAChB,GAAG,YAAY;IACf,GAAG,sBAAsB;IACzB,GAAG,iBAAiB;IACpB,GAAG,kBAAkB;IACrB,GAAG,GAAG;IACN,GAAG,UAAU;IACb,GAAG,sBAAsB;IACzB,GAAG,gBAAgB;IACnB,GAAG,mBAAmB;IACtB,GAAG,iBAAiB;IACpB,wFAA4D;IAC5D,sEAAqC;IACrC,GAAG,WAAW;IACd,GAAG,UAAU;CACb,CAAC","sourcesContent":["/**\n * zh-CN 聚合入口:收集全部域词典为一个平面 `Record<string, string>`。\n * 新增域文件 = 新建 `<domain>.ts` + 在此处展开;域内 key 冲突处理见设计文档 §翻译规范。\n */\nimport { cli } from \"./cli.ts\";\nimport { common } from \"./common.ts\";\nimport { coreContractCore } from \"./core-contract-core.ts\";\nimport { coreContractExtensions } from \"./core-contract-extensions.ts\";\nimport { coreContractFinal } from \"./core-contract-final.ts\";\nimport { coreContractPlugins } from \"./core-contract-plugins.ts\";\nimport { coreErrors } from \"./core-errors.ts\";\nimport { example } from \"./example.ts\";\nimport { interactiveMode } from \"./interactive-mode.ts\";\nimport { keybindings } from \"./keybindings.ts\";\nimport { slashCommands } from \"./slash-commands.ts\";\nimport { tuiBuiltin } from \"./tui-builtin.ts\";\nimport { tuiComponentsMisc } from \"./tui-components-misc.ts\";\nimport { tuiComponentsSelectors } from \"./tui-components-selectors.ts\";\nimport { tuiInteractiveMisc } from \"./tui-interactive-misc.ts\";\nimport { tuiSelfOwned } from \"./tui-self-owned.ts\";\n\nexport const zhCn: Record<string, string> = {\n\t...common,\n\t...example,\n\t...interactiveMode,\n\t...slashCommands,\n\t...tuiSelfOwned,\n\t...tuiComponentsSelectors,\n\t...tuiComponentsMisc,\n\t...tuiInteractiveMisc,\n\t...cli,\n\t...coreErrors,\n\t...coreContractExtensions,\n\t...coreContractCore,\n\t...coreContractPlugins,\n\t...coreContractFinal,\n\t// 批次⑦两个后铺域:与 interactiveMode 的同名 key(\"Jump forward/backward\n\t// to character\")译文一致,覆盖登记见设计文档 §5.3。\n\t...keybindings,\n\t...tuiBuiltin,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,CAAC,MAAM,IAAI,GAA2B;IAC3C,GAAG,MAAM;IACT,GAAG,OAAO;IACV,GAAG,eAAe;IAClB,GAAG,aAAa;IAChB,GAAG,YAAY;IACf,GAAG,sBAAsB;IACzB,GAAG,iBAAiB;IACpB,GAAG,kBAAkB;IACrB,GAAG,GAAG;IACN,GAAG,UAAU;IACb,GAAG,cAAc;IACjB,GAAG,sBAAsB;IACzB,GAAG,gBAAgB;IACnB,GAAG,mBAAmB;IACtB,GAAG,iBAAiB;IACpB,wFAA4D;IAC5D,sEAAqC;IACrC,GAAG,WAAW;IACd,GAAG,UAAU;CACb,CAAC","sourcesContent":["/**\n * zh-CN 聚合入口:收集全部域词典为一个平面 `Record<string, string>`。\n * 新增域文件 = 新建 `<domain>.ts` + 在此处展开;域内 key 冲突处理见设计文档 §翻译规范。\n */\nimport { cli } from \"./cli.ts\";\nimport { common } from \"./common.ts\";\nimport { coreContractCore } from \"./core-contract-core.ts\";\nimport { coreContractExtensions } from \"./core-contract-extensions.ts\";\nimport { coreContractFinal } from \"./core-contract-final.ts\";\nimport { coreContractPlugins } from \"./core-contract-plugins.ts\";\nimport { coreErrors } from \"./core-errors.ts\";\nimport { example } from \"./example.ts\";\nimport { interactiveMode } from \"./interactive-mode.ts\";\nimport { keybindings } from \"./keybindings.ts\";\nimport { sessionCleanup } from \"./session-cleanup.ts\";\nimport { slashCommands } from \"./slash-commands.ts\";\nimport { tuiBuiltin } from \"./tui-builtin.ts\";\nimport { tuiComponentsMisc } from \"./tui-components-misc.ts\";\nimport { tuiComponentsSelectors } from \"./tui-components-selectors.ts\";\nimport { tuiInteractiveMisc } from \"./tui-interactive-misc.ts\";\nimport { tuiSelfOwned } from \"./tui-self-owned.ts\";\n\nexport const zhCn: Record<string, string> = {\n\t...common,\n\t...example,\n\t...interactiveMode,\n\t...slashCommands,\n\t...tuiSelfOwned,\n\t...tuiComponentsSelectors,\n\t...tuiComponentsMisc,\n\t...tuiInteractiveMisc,\n\t...cli,\n\t...coreErrors,\n\t...sessionCleanup,\n\t...coreContractExtensions,\n\t...coreContractCore,\n\t...coreContractPlugins,\n\t...coreContractFinal,\n\t// 批次⑦两个后铺域:与 interactiveMode 的同名 key(\"Jump forward/backward\n\t// to character\")译文一致,覆盖登记见设计文档 §5.3。\n\t...keybindings,\n\t...tuiBuiltin,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/interactive-mode.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmSlD,CAAC","sourcesContent":["/**\n * interactive-mode 域词典(批次③):key 为\n * src/modes/interactive/interactive-mode.ts 中 `t()` 调用点的英文原文,\n * value 为 zh-CN 译文。占位符 `{name}` 原样保留(coverage-i18n 测试校验\n * key 与译文占位符集合一致)。命令名/路径/键名/品牌(/suite、models.json、\n * bash、tmux 指令、Agent Forge)不译;suite 保留原文;token 按语境译作\n * token(计量单位)。\n */\nexport const interactiveMode: Record<string, string> = {\n\t// ---- 默认状态指示器 ----\n\t\"Working...\": \"处理中…\",\n\t\"Thinking...\": \"思考中...\",\n\t\"({key} to interrupt)\": \"({key} 中断)\",\n\t\"({key} to cycle)\": \"({key} 切换)\",\n\t\"(thinking: {level})\": \"(思考:{level})\",\n\n\t// ---- 启动 banner / 模型范围 ----\n\t\"to interrupt\": \"中断\",\n\t\"to clear\": \"清空\",\n\t\"{key} twice\": \"{key} 两次\",\n\t\"to exit\": \"退出\",\n\t\"to exit (empty)\": \"退出(编辑器为空时)\",\n\t\"to suspend\": \"挂起\",\n\t\"to delete to end\": \"删除到行尾\",\n\t\"to expand tools\": \"展开工具输出\",\n\t\"to expand thinking\": \"展开思考\",\n\t\"for external editor\": \"打开外部编辑器\",\n\t\"for commands\": \"命令\",\n\t\"to run bash\": \"运行 bash\",\n\t\"to run bash (no context)\": \"运行 bash(不进上下文)\",\n\t\"to paste image (with text fallback)\": \"粘贴图片(无图则退回文本)\",\n\t\"to attach\": \"附加文件\",\n\tinterrupt: \"中断\",\n\t\"clear/exit\": \"清空/退出\",\n\tcommands: \"命令\",\n\tbash: \"bash\",\n\tmore: \"更多\",\n\t\"Press {key} to show full startup help and loaded resources.\": \"按 {key} 展示完整启动帮助与已加载资源。\",\n\t\"Agent Forge can explain its own features and look up its docs. Ask it how to use or extend Agent Forge.\":\n\t\t\"Agent Forge 能解释自身功能并查阅自己的文档。可以直接问它如何使用或扩展 Agent Forge。\",\n\t\"Model scope: {models}{hint}\": \"模型范围:{models}{hint}\",\n\n\t// ---- 更新与 changelog ----\n\t\"Updated to v{version}. Use {command} to view full changelog.\":\n\t\t\"已更新到 v{version}。使用 {command} 查看完整变更日志。\",\n\t\"What's New\": \"新特性\",\n\t\"No changelog entries found.\": \"未找到变更日志条目。\",\n\t\"New version {version} is available. Run\": \"新版本 {version} 可用。请运行\",\n\t\"Changelog:\": \"变更日志:\",\n\t\"Changelog URL is not configured.\": \"未配置变更日志 URL。\",\n\t\"Update Available\": \"有可用更新\",\n\t\"Package updates are available. Run\": \"有可用的包更新。请运行\",\n\t\"Package Updates Available\": \"有可用的包更新\",\n\t\"Packages:\": \"包:\",\n\n\t// ---- 启动警告 ----\n\t\"Migrated credentials to auth.json: {providers}\": \"已迁移凭据到 auth.json:{providers}\",\n\t\"models.json error: {error}\": \"models.json 错误:{error}\",\n\t\"tmux extended-keys is off. Modified Enter keys may not work. Add `set -g extended-keys on` to ~/.tmux.conf and restart tmux.\":\n\t\t\"tmux extended-keys 已关闭,修饰 Enter 键可能失效。请在 ~/.tmux.conf 中加入 `set -g extended-keys on` 并重启 tmux。\",\n\t\"tmux extended-keys-format is xterm. Agent Forge works best with csi-u. Add `set -g extended-keys-format csi-u` to ~/.tmux.conf and restart tmux.\":\n\t\t\"tmux extended-keys-format 为 xterm,Agent Forge 在 csi-u 下工作最佳。请在 ~/.tmux.conf 中加入 `set -g extended-keys-format csi-u` 并重启 tmux。\",\n\t\"Anthropic subscription auth is active. Third-party harness usage draws from extra usage and is billed per token, not your Claude plan limits. Manage extra usage at https://claude.ai/settings/usage. Disable this warning in /settings.\":\n\t\t\"Anthropic 订阅认证处于活跃状态。第三方 harness 用量计入 extra usage 并按 token 计费,不占用 Claude 计划额度。可在 https://claude.ai/settings/usage 管理 extra usage。在 /settings 中可关闭此警告。\",\n\n\t// ---- 已加载资源区块 ----\n\tContext: \"上下文\",\n\tSkills: \"技能\",\n\tPrompts: \"提示词\",\n\tThemes: \"主题\",\n\t\"[Skill conflicts]\": \"[技能冲突]\",\n\t\"[Prompt conflicts]\": \"[提示词模板冲突]\",\n\t\"[Theme conflicts]\": \"[主题冲突]\",\n\n\t// ---- 输入 / 消息队列 ----\n\t\"Startup in progress — input queued and will run when startup completes\": \"启动进行中——输入已排队,启动完成后执行\",\n\t\"A bash command is already running. Press Esc to cancel it first.\": \"已有 bash 命令在运行。请先按 Esc 取消。\",\n\t\"No queued messages to restore\": \"没有可恢复的排队消息\",\n\t\"No queued messages to manage\": \"没有可管理的排队消息\",\n\t\"Restored {count} queued message to editor\": \"已恢复 {count} 条排队消息到编辑器\",\n\t\"Restored {count} queued messages to editor\": \"已恢复 {count} 条排队消息到编辑器\",\n\t\"Usage: /queue <text>\": \"用法:/queue <文本>\",\n\t\"Queued message for after compaction\": \"消息已排队,压缩后发送\",\n\t\"Failed to send queued message: {error}\": \"发送排队消息失败:{error}\",\n\t\"Failed to send queued messages: {error}\": \"发送排队消息失败:{error}\",\n\t\"Steering: {message}\": \"转向:{message}\",\n\t\"Follow-up: {message}\": \"后续:{message}\",\n\t\"↳ {key} to edit all queued messages\": \"↳ {key} 编辑全部排队消息\",\n\n\t// ---- 事件 / 中止 / 压缩 / 重试 ----\n\t\"Aborted after {count} retry attempt\": \"已中止,此前重试 {count} 次\",\n\t\"Aborted after {count} retry attempts\": \"已中止,此前重试 {count} 次\",\n\t\"Operation aborted\": \"操作已中止\",\n\t\"Compaction cancelled\": \"已取消压缩\",\n\t\"Auto-compaction cancelled\": \"已取消自动压缩\",\n\t\"Auto-compaction skipped: nothing to compact\": \"自动压缩已跳过:没有可压缩内容\",\n\t\"Retry failed after {count} attempts: {error}\": \"重试 {count} 次后失败:{error}\",\n\t\"Previous reply was empty, retrying...\": \"上一条回复为空,正在重试…\",\n\n\t// ---- 计费 / 缓存通知 ----\n\tCompaction: \"压缩\",\n\t\"Branch summary\": \"分支摘要\",\n\t\"{tokens} tokens billed{cost}\": \"计费 {tokens} token{cost}\",\n\t\"Anthropic dropped {count} thinking blocks (details in session)\": \"Anthropic 丢弃了 {count} 个思考块(详情见会话)\",\n\t\"{tokens} tokens re-billed{cost}\": \"重新计费 {tokens} token{cost}\",\n\t\"Cache miss\": \"缓存未命中\",\n\t\"Cache miss after model switch\": \"切换模型后缓存未命中\",\n\t\"Cache miss after {minutes}m idle\": \"闲置 {minutes} 分钟后缓存未命中\",\n\t\"Session compacted {count} time\": \"会话已压缩 {count} 次\",\n\t\"Session compacted {count} times\": \"会话已压缩 {count} 次\",\n\n\t// ---- 退出 / 挂起 ----\n\t\"To resume this session:\": \"恢复本会话:\",\n\t\"{app} exiting due to uncaughtException:\": \"{app} 因未捕获异常退出:\",\n\t\"Suspend to background is not supported on Windows\": \"Windows 不支持挂起到后台\",\n\n\t// ---- 模型 / 思考 / 工具输出切换 ----\n\t\"Current model does not support thinking\": \"当前模型不支持思考\",\n\t\"Thinking level: {level}\": \"思考级别:{level}\",\n\t\"Only one model in scope\": \"范围内只有一个模型\",\n\t\"Only one model available\": \"只有一个可用模型\",\n\t\"Switched to {model}{thinking}\": \"已切换到 {model}{thinking}\",\n\t\"Tool output: expanded\": \"工具输出:已展开\",\n\t\"Tool output: collapsed\": \"工具输出:已折叠\",\n\t\"Thinking blocks: hidden\": \"思考块:已隐藏\",\n\t\"Thinking blocks: visible\": \"思考块:已显示\",\n\n\t// ---- 设置选择器 ----\n\t\"not set\": \"未设置\",\n\t\"HTTP idle timeout: {value}\": \"HTTP 空闲超时:{value}\",\n\t\"Close active overlays before changing TUI mode\": \"切换 TUI 模式前请先关闭活动浮层\",\n\t\"TUI mode: {mode}\": \"TUI 模式:{mode}\",\n\n\t// ---- suite / 会话重建 ----\n\t'Suite \"{id}\" was not found. The selected suite applies to the new session.':\n\t\t'未找到 suite \"{id}\"。所选 suite 将应用于新会话。',\n\t'Suite \"{id}\" was not found — continuing without a suite. Use /suite to choose one.':\n\t\t'未找到 suite \"{id}\"——将在无 suite 下继续。可使用 /suite 选择。',\n\t\"Suite set to {id} — new session started\": \"suite 已设为 {id}——新会话已开始\",\n\t\"Failed to create session\": \"创建会话失败\",\n\t'Cross-suite compatible mode: session created with \"{from}\", assembling with \"{to}\"':\n\t\t'跨 suite 兼容模式:会话创建于 \"{from}\",正以 \"{to}\" 组装',\n\n\t// ---- workflow / 子代理 / 会话树 ----\n\t\"No workflow in this session\": \"本会话没有 workflow\",\n\t\"Workflow action staged — review in the editor and submit\": \"workflow 动作已暂存——请在编辑器中审阅后提交\",\n\t\"No subagent sessions in this session\": \"本会话没有子代理会话\",\n\t\"No entries in session\": \"会话中没有条目\",\n\t\"Already at this point\": \"已在该节点\",\n\t\"Summarize branch?\": \"生成分支摘要?\",\n\t\"No summary\": \"不生成摘要\",\n\tSummarize: \"生成摘要\",\n\t\"Summarize with custom prompt\": \"使用自定义提示生成摘要\",\n\t\"Custom summarization instructions\": \"自定义摘要指令\",\n\t\"Branch summarization cancelled\": \"已取消分支摘要\",\n\t\"Navigation cancelled\": \"已取消导航\",\n\t\"Navigated to selected point\": \"已导航到所选节点\",\n\t\"Selected entry has no text to copy\": \"所选条目没有可复制的文本\",\n\t\"Copied selected message to clipboard\": \"已复制所选消息到剪贴板\",\n\n\t// ---- 恢复 / 导入 / 导出 ----\n\t\"Resumed session\": \"已恢复会话\",\n\t\"Resume cancelled\": \"已取消恢复\",\n\t\"Resumed session in current cwd\": \"已在当前工作目录恢复会话\",\n\t\"Failed to resume session\": \"恢复会话失败\",\n\t\"Usage: /import <path.jsonl>\": \"用法:/import <路径.jsonl>\",\n\t\"Import session\": \"导入会话\",\n\t\"Replace current session with {path}?\": \"用 {path} 替换当前会话?\",\n\t\"Import cancelled\": \"已取消导入\",\n\t\"Session imported from: {path}\": \"会话导入自:{path}\",\n\t\"Failed to import session: {error}\": \"导入会话失败:{error}\",\n\t\"Failed to import session\": \"导入会话失败\",\n\t\"Session exported to: {path}\": \"会话已导出到:{path}\",\n\t\"Failed to export session: {error}\": \"导出会话失败:{error}\",\n\n\t// ---- /copy / /name ----\n\t\"No agent messages to copy yet.\": \"还没有可复制的代理消息。\",\n\t\"Copied!\": \"已复制!\",\n\t\"Copied last agent message to clipboard\": \"已复制最近一条代理消息到剪贴板\",\n\t\"Session name: {name}\": \"会话名称:{name}\",\n\t\"Usage: /name <name>\": \"用法:/name <名称>\",\n\t\"Session name was normalized from {from} to {to}\": \"会话名称已从 {from} 规范化为 {to}\",\n\t\"Session name set: {name}\": \"会话名称已设置:{name}\",\n\n\t// ---- /stop-agents ----\n\t\"No background subagents running\": \"没有正在运行的后台子代理\",\n\t\"Terminated {count} background subagent\": \"已终止 {count} 个后台子代理\",\n\t\"Terminated {count} background subagents\": \"已终止 {count} 个后台子代理\",\n\t\"{count} subagent still running · /stop-agents stops all (Esc only stops the current turn)\":\n\t\t\"{count} 个子代理仍在运行 · /stop-agents 终止全部(Esc 只停当前回合)\",\n\t\"{count} subagents still running · /stop-agents stops all (Esc only stops the current turn)\":\n\t\t\"{count} 个子代理仍在运行 · /stop-agents 终止全部(Esc 只停当前回合)\",\n\n\t// ---- /session 统计 ----\n\t\"Session Info\": \"会话信息\",\n\t\"Name:\": \"名称:\",\n\t\"File:\": \"文件:\",\n\t\"ID:\": \"ID:\",\n\t\"In-memory\": \"内存中\",\n\tMessages: \"消息\",\n\t\"Total:\": \"总计:\",\n\t\"User:\": \"用户:\",\n\t\"Assistant:\": \"助手:\",\n\t\"Tools:\": \"工具:\",\n\t\"{calls} calls, {results} results\": \"{calls} 次调用,{results} 次结果\",\n\tTokens: \"Token\",\n\t\"Input:\": \"输入:\",\n\t\"Cached:\": \"已缓存:\",\n\t\"({count} written to cache)\": \"({count} 写入缓存)\",\n\t\"Uncached:\": \"未缓存:\",\n\t\"Output:\": \"输出:\",\n\t\"By Provider/Model\": \"按供应商/模型\",\n\t\"(cache {rate}%, W {written})\": \"(缓存 {rate}%,写 {written})\",\n\tCost: \"费用\",\n\t\"({tokens} tokens)\": \"({tokens} token)\",\n\t\"{count} miss\": \"{count} 次未命中\",\n\t\"{count} misses\": \"{count} 次未命中\",\n\t\"{tokens} tokens, {misses}\": \"{tokens} token,{misses}\",\n\t\"Cache Re-billed:\": \"缓存重新计费:\",\n\n\t// ---- /metrics ----\n\t\"Metrics are not available: the observability plugin is not mounted in this session\":\n\t\t\"指标不可用:本会话未挂载 observability 插件\",\n\t\"Invalid turns: {turns}. Usage: /metrics [turns]\": \"无效的轮数:{turns}。用法:/metrics [turns]\",\n\n\t// ---- /help ----\n\tCommand: \"命令\",\n\tDescription: \"说明\",\n\t\"Built-in commands\": \"内置命令\",\n\t\"Prompt templates\": \"提示词模板\",\n\t\"Type `/` for autocomplete. Use `/hotkeys` for keyboard shortcuts.\":\n\t\t\"输入 `/` 自动补全。使用 `/hotkeys` 查看快捷键。\",\n\t\"Available Commands\": \"可用命令\",\n\n\t// ---- /hotkeys ----\n\t\"Open model selector\": \"打开模型选择器\",\n\t\"Copy selection in /tree\": \"在 /tree 中复制选区\",\n\t\"External editor (inside dialog inputs)\": \"外部编辑器(对话框输入内)\",\n\t\"Queue follow-up message\": \"排队后续消息\",\n\t\"Restore queued messages\": \"恢复排队消息\",\n\t\"Cycle thinking level\": \"循环切换思考级别\",\n\t\"Cycle models\": \"循环切换模型\",\n\t\"Suspend to background\": \"挂起到后台\",\n\tNavigation: \"导航\",\n\tKey: \"按键\",\n\tAction: \"动作\",\n\t\"Move cursor / browse history\": \"移动光标 / 浏览历史\",\n\t\"Move by word\": \"按词移动\",\n\t\"Start of line\": \"行首\",\n\t\"End of line\": \"行尾\",\n\t\"Jump forward to character\": \"向后跳到字符\",\n\t\"Jump backward to character\": \"向前跳到字符\",\n\t\"Scroll by page\": \"按页滚动\",\n\tEditing: \"编辑\",\n\t\"Send message\": \"发送消息\",\n\t\"New line\": \"换行\",\n\t\"New line (Ctrl+Enter on Windows Terminal)\": \"换行(Windows Terminal 上为 Ctrl+Enter)\",\n\t\"Delete word backwards\": \"向前删除单词\",\n\t\"Delete word forwards\": \"向后删除单词\",\n\t\"Delete to start of line\": \"删除到行首\",\n\t\"Delete to end of line\": \"删除到行尾\",\n\t\"Paste the most-recently-deleted text\": \"粘贴最近删除的文本\",\n\t\"Cycle through the deleted text after pasting\": \"粘贴后循环切换已删除文本\",\n\tUndo: \"撤销\",\n\tOther: \"其他\",\n\t\"Path completion / accept autocomplete\": \"路径补全 / 接受自动补全\",\n\t\"Cancel autocomplete / abort streaming\": \"取消自动补全 / 中止流式输出\",\n\t\"Clear editor (first) / exit (second)\": \"清空编辑器(第一次)/ 退出(第二次)\",\n\t\"Exit (when editor is empty)\": \"退出(编辑器为空时)\",\n\t\"Toggle tool output expansion\": \"切换工具输出展开\",\n\t\"Toggle thinking block visibility\": \"切换思考块可见性\",\n\t\"Paste image or text from clipboard\": \"从剪贴板粘贴图片或文本\",\n\t\"Slash commands\": \"斜杠命令\",\n\t\"Run bash command\": \"运行 bash 命令\",\n\t\"Run bash command (excluded from context)\": \"运行 bash 命令(不进上下文)\",\n\t\"Keyboard Shortcuts\": \"键盘快捷键\",\n\n\t// ---- /new / /debug / bash ----\n\t\"✓ New session started\": \"✓ 新会话已开始\",\n\t\"Debug output at {date}\": \"调试输出时间:{date}\",\n\t\"Terminal: {columns}x{rows}\": \"终端:{columns}x{rows}\",\n\t\"Total lines: {count}\": \"总行数:{count}\",\n\t\"=== All rendered lines with visible widths ===\": \"=== 全部渲染行(含可见宽度)===\",\n\t\"=== Agent messages (JSONL) ===\": \"=== 代理消息(JSONL)===\",\n\t\"✓ Debug log written\": \"✓ 调试日志已写入\",\n\t\"Bash command failed: {error}\": \"bash 命令失败:{error}\",\n\n\t// ---- 通用错误前缀 / 兜底 ----\n\t\"Error: {message}\": \"错误:{message}\",\n\t\"Warning: {message}\": \"警告:{message}\",\n\tError: \"错误\",\n\t\"Unknown error\": \"未知错误\",\n\t\"Unknown error occurred\": \"发生未知错误\",\n\t\"Reload failed: {error}\": \"重载失败:{error}\",\n\t\"Wait for the current response to finish before reloading.\": \"请等待当前响应完成后再重载。\",\n\t\"Wait for compaction to finish before reloading.\": \"请等待压缩完成后再重载。\",\n\t\"Reloading keybindings, skills, prompts, themes, and context files...\":\n\t\t\"正在重载键位、技能、提示词模板、主题与上下文文件…\",\n\t\"Reloaded keybindings, skills, prompts, themes, and context files\": \"已重载键位、技能、提示词模板、主题与上下文文件\",\n};\n"]}
1
+ {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../../../src/core/i18n/locales/zh-cn/interactive-mode.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAySlD,CAAC","sourcesContent":["/**\n * interactive-mode 域词典(批次③):key 为\n * src/modes/interactive/interactive-mode.ts 中 `t()` 调用点的英文原文,\n * value 为 zh-CN 译文。占位符 `{name}` 原样保留(coverage-i18n 测试校验\n * key 与译文占位符集合一致)。命令名/路径/键名/品牌(/suite、models.json、\n * bash、tmux 指令、Agent Forge)不译;suite 保留原文;token 按语境译作\n * token(计量单位)。\n */\nexport const interactiveMode: Record<string, string> = {\n\t// ---- 默认状态指示器 ----\n\t\"Working...\": \"处理中…\",\n\t\"Thinking...\": \"思考中...\",\n\t\"({key} to interrupt)\": \"({key} 中断)\",\n\t\"({key} to cycle)\": \"({key} 切换)\",\n\t\"(thinking: {level})\": \"(思考:{level})\",\n\n\t// ---- 启动 banner / 模型范围 ----\n\t\"to interrupt\": \"中断\",\n\t\"to clear\": \"清空\",\n\t\"{key} twice\": \"{key} 两次\",\n\t\"to exit\": \"退出\",\n\t\"to exit (empty)\": \"退出(编辑器为空时)\",\n\t\"to suspend\": \"挂起\",\n\t\"to delete to end\": \"删除到行尾\",\n\t\"to expand tools\": \"展开工具输出\",\n\t\"to expand thinking\": \"展开思考\",\n\t\"for external editor\": \"打开外部编辑器\",\n\t\"for commands\": \"命令\",\n\t\"to run bash\": \"运行 bash\",\n\t\"to run bash (no context)\": \"运行 bash(不进上下文)\",\n\t\"to paste image (with text fallback)\": \"粘贴图片(无图则退回文本)\",\n\t\"to attach\": \"附加文件\",\n\tinterrupt: \"中断\",\n\t\"clear/exit\": \"清空/退出\",\n\tcommands: \"命令\",\n\tbash: \"bash\",\n\tmore: \"更多\",\n\t\"Press {key} to show full startup help and loaded resources.\": \"按 {key} 展示完整启动帮助与已加载资源。\",\n\t\"Agent Forge can explain its own features and look up its docs. Ask it how to use or extend Agent Forge.\":\n\t\t\"Agent Forge 能解释自身功能并查阅自己的文档。可以直接问它如何使用或扩展 Agent Forge。\",\n\t\"Model scope: {models}{hint}\": \"模型范围:{models}{hint}\",\n\n\t// ---- 更新与 changelog ----\n\t\"Updated to v{version}. Use {command} to view full changelog.\":\n\t\t\"已更新到 v{version}。使用 {command} 查看完整变更日志。\",\n\t\"What's New\": \"新特性\",\n\t\"No changelog entries found.\": \"未找到变更日志条目。\",\n\t\"New version {version} is available. Run\": \"新版本 {version} 可用。请运行\",\n\t\"Changelog:\": \"变更日志:\",\n\t\"Changelog URL is not configured.\": \"未配置变更日志 URL。\",\n\t\"Update Available\": \"有可用更新\",\n\t\"Package updates are available. Run\": \"有可用的包更新。请运行\",\n\t\"Package Updates Available\": \"有可用的包更新\",\n\t\"Packages:\": \"包:\",\n\n\t// ---- 启动警告 ----\n\t\"Migrated credentials to auth.json: {providers}\": \"已迁移凭据到 auth.json:{providers}\",\n\t\"models.json error: {error}\": \"models.json 错误:{error}\",\n\t\"tmux extended-keys is off. Modified Enter keys may not work. Add `set -g extended-keys on` to ~/.tmux.conf and restart tmux.\":\n\t\t\"tmux extended-keys 已关闭,修饰 Enter 键可能失效。请在 ~/.tmux.conf 中加入 `set -g extended-keys on` 并重启 tmux。\",\n\t\"tmux extended-keys-format is xterm. Agent Forge works best with csi-u. Add `set -g extended-keys-format csi-u` to ~/.tmux.conf and restart tmux.\":\n\t\t\"tmux extended-keys-format 为 xterm,Agent Forge 在 csi-u 下工作最佳。请在 ~/.tmux.conf 中加入 `set -g extended-keys-format csi-u` 并重启 tmux。\",\n\t\"Anthropic subscription auth is active. Third-party harness usage draws from extra usage and is billed per token, not your Claude plan limits. Manage extra usage at https://claude.ai/settings/usage. Disable this warning in /settings.\":\n\t\t\"Anthropic 订阅认证处于活跃状态。第三方 harness 用量计入 extra usage 并按 token 计费,不占用 Claude 计划额度。可在 https://claude.ai/settings/usage 管理 extra usage。在 /settings 中可关闭此警告。\",\n\n\t// ---- 已加载资源区块 ----\n\tContext: \"上下文\",\n\tSkills: \"技能\",\n\tPrompts: \"提示词\",\n\tThemes: \"主题\",\n\t\"[Skill conflicts]\": \"[技能冲突]\",\n\t\"[Prompt conflicts]\": \"[提示词模板冲突]\",\n\t\"[Theme conflicts]\": \"[主题冲突]\",\n\n\t// ---- 输入 / 消息队列 ----\n\t\"Startup in progress — input queued and will run when startup completes\": \"启动进行中——输入已排队,启动完成后执行\",\n\t\"A bash command is already running. Press Esc to cancel it first.\": \"已有 bash 命令在运行。请先按 Esc 取消。\",\n\t\"No queued messages to restore\": \"没有可恢复的排队消息\",\n\t\"No queued messages to manage\": \"没有可管理的排队消息\",\n\t\"Restored {count} queued message to editor\": \"已恢复 {count} 条排队消息到编辑器\",\n\t\"Restored {count} queued messages to editor\": \"已恢复 {count} 条排队消息到编辑器\",\n\t\"Usage: /queue <text>\": \"用法:/queue <文本>\",\n\t\"Queued message for after compaction\": \"消息已排队,压缩后发送\",\n\t\"Failed to send queued message: {error}\": \"发送排队消息失败:{error}\",\n\t\"Failed to send queued messages: {error}\": \"发送排队消息失败:{error}\",\n\t\"Steering: {message}\": \"转向:{message}\",\n\t\"Follow-up: {message}\": \"后续:{message}\",\n\t\"↳ {key} to edit all queued messages\": \"↳ {key} 编辑全部排队消息\",\n\n\t// ---- 事件 / 中止 / 压缩 / 重试 ----\n\t\"Aborted after {count} retry attempt\": \"已中止,此前重试 {count} 次\",\n\t\"Aborted after {count} retry attempts\": \"已中止,此前重试 {count} 次\",\n\t\"Operation aborted\": \"操作已中止\",\n\t\"Compaction cancelled\": \"已取消压缩\",\n\t\"Auto-compaction cancelled\": \"已取消自动压缩\",\n\t\"Auto-compaction skipped: nothing to compact\": \"自动压缩已跳过:没有可压缩内容\",\n\t\"Retry failed after {count} attempts: {error}\": \"重试 {count} 次后失败:{error}\",\n\t\"Previous reply was empty, retrying...\": \"上一条回复为空,正在重试…\",\n\n\t// ---- 计费 / 缓存通知 ----\n\tCompaction: \"压缩\",\n\t\"Branch summary\": \"分支摘要\",\n\t\"{tokens} tokens billed{cost}\": \"计费 {tokens} token{cost}\",\n\t\"Anthropic dropped {count} thinking blocks (details in session)\": \"Anthropic 丢弃了 {count} 个思考块(详情见会话)\",\n\t\"{tokens} tokens re-billed{cost}\": \"重新计费 {tokens} token{cost}\",\n\t\"Cache miss\": \"缓存未命中\",\n\t\"Cache miss after model switch\": \"切换模型后缓存未命中\",\n\t\"Cache miss after {minutes}m idle\": \"闲置 {minutes} 分钟后缓存未命中\",\n\t\"Session compacted {count} time\": \"会话已压缩 {count} 次\",\n\t\"Session compacted {count} times\": \"会话已压缩 {count} 次\",\n\n\t// ---- 退出 / 挂起 ----\n\t\"To resume this session:\": \"恢复本会话:\",\n\t\"{app} exiting due to uncaughtException:\": \"{app} 因未捕获异常退出:\",\n\t\"Suspend to background is not supported on Windows\": \"Windows 不支持挂起到后台\",\n\n\t// ---- 模型 / 思考 / 工具输出切换 ----\n\t\"Current model does not support thinking\": \"当前模型不支持思考\",\n\t\"Thinking level: {level}\": \"思考级别:{level}\",\n\t\"Only one model in scope\": \"范围内只有一个模型\",\n\t\"Only one model available\": \"只有一个可用模型\",\n\t\"Switched to {model}{thinking}\": \"已切换到 {model}{thinking}\",\n\t\"Tool output: expanded\": \"工具输出:已展开\",\n\t\"Tool output: collapsed\": \"工具输出:已折叠\",\n\t\"Thinking blocks: hidden\": \"思考块:已隐藏\",\n\t\"Thinking blocks: visible\": \"思考块:已显示\",\n\n\t// ---- D-083 转录静默化(quiet 态合并标记与思考折叠行)----\n\t\"✻ thinking\": \"✻ 思考\",\n\t\"{count} tool\": \"{count} 个工具\",\n\t\"{count} tools\": \"{count} 个工具\",\n\t\"{count} failed\": \"{count} 个失败\",\n\n\t// ---- 设置选择器 ----\n\t\"not set\": \"未设置\",\n\t\"HTTP idle timeout: {value}\": \"HTTP 空闲超时:{value}\",\n\t\"Close active overlays before changing TUI mode\": \"切换 TUI 模式前请先关闭活动浮层\",\n\t\"TUI mode: {mode}\": \"TUI 模式:{mode}\",\n\n\t// ---- suite / 会话重建 ----\n\t'Suite \"{id}\" was not found. The selected suite applies to the new session.':\n\t\t'未找到 suite \"{id}\"。所选 suite 将应用于新会话。',\n\t'Suite \"{id}\" was not found — continuing without a suite. Use /suite to choose one.':\n\t\t'未找到 suite \"{id}\"——将在无 suite 下继续。可使用 /suite 选择。',\n\t\"Suite set to {id} — new session started\": \"suite 已设为 {id}——新会话已开始\",\n\t\"Failed to create session\": \"创建会话失败\",\n\t'Cross-suite compatible mode: session created with \"{from}\", assembling with \"{to}\"':\n\t\t'跨 suite 兼容模式:会话创建于 \"{from}\",正以 \"{to}\" 组装',\n\n\t// ---- workflow / 子代理 / 会话树 ----\n\t\"No workflow in this session\": \"本会话没有 workflow\",\n\t\"Workflow action staged — review in the editor and submit\": \"workflow 动作已暂存——请在编辑器中审阅后提交\",\n\t\"No subagent sessions in this session\": \"本会话没有子代理会话\",\n\t\"No entries in session\": \"会话中没有条目\",\n\t\"Already at this point\": \"已在该节点\",\n\t\"Summarize branch?\": \"生成分支摘要?\",\n\t\"No summary\": \"不生成摘要\",\n\tSummarize: \"生成摘要\",\n\t\"Summarize with custom prompt\": \"使用自定义提示生成摘要\",\n\t\"Custom summarization instructions\": \"自定义摘要指令\",\n\t\"Branch summarization cancelled\": \"已取消分支摘要\",\n\t\"Navigation cancelled\": \"已取消导航\",\n\t\"Navigated to selected point\": \"已导航到所选节点\",\n\t\"Selected entry has no text to copy\": \"所选条目没有可复制的文本\",\n\t\"Copied selected message to clipboard\": \"已复制所选消息到剪贴板\",\n\n\t// ---- 恢复 / 导入 / 导出 ----\n\t\"Resumed session\": \"已恢复会话\",\n\t\"Resume cancelled\": \"已取消恢复\",\n\t\"Resumed session in current cwd\": \"已在当前工作目录恢复会话\",\n\t\"Failed to resume session\": \"恢复会话失败\",\n\t\"Usage: /import <path.jsonl>\": \"用法:/import <路径.jsonl>\",\n\t\"Import session\": \"导入会话\",\n\t\"Replace current session with {path}?\": \"用 {path} 替换当前会话?\",\n\t\"Import cancelled\": \"已取消导入\",\n\t\"Session imported from: {path}\": \"会话导入自:{path}\",\n\t\"Failed to import session: {error}\": \"导入会话失败:{error}\",\n\t\"Failed to import session\": \"导入会话失败\",\n\t\"Session exported to: {path}\": \"会话已导出到:{path}\",\n\t\"Failed to export session: {error}\": \"导出会话失败:{error}\",\n\n\t// ---- /copy / /name ----\n\t\"No agent messages to copy yet.\": \"还没有可复制的代理消息。\",\n\t\"Copied!\": \"已复制!\",\n\t\"Copied last agent message to clipboard\": \"已复制最近一条代理消息到剪贴板\",\n\t\"Session name: {name}\": \"会话名称:{name}\",\n\t\"Usage: /name <name>\": \"用法:/name <名称>\",\n\t\"Session name was normalized from {from} to {to}\": \"会话名称已从 {from} 规范化为 {to}\",\n\t\"Session name set: {name}\": \"会话名称已设置:{name}\",\n\n\t// ---- /stop-agents ----\n\t\"No background subagents running\": \"没有正在运行的后台子代理\",\n\t\"Terminated {count} background subagent\": \"已终止 {count} 个后台子代理\",\n\t\"Terminated {count} background subagents\": \"已终止 {count} 个后台子代理\",\n\t\"{count} subagent still running · /stop-agents stops all (Esc only stops the current turn)\":\n\t\t\"{count} 个子代理仍在运行 · /stop-agents 终止全部(Esc 只停当前回合)\",\n\t\"{count} subagents still running · /stop-agents stops all (Esc only stops the current turn)\":\n\t\t\"{count} 个子代理仍在运行 · /stop-agents 终止全部(Esc 只停当前回合)\",\n\n\t// ---- /session 统计 ----\n\t\"Session Info\": \"会话信息\",\n\t\"Name:\": \"名称:\",\n\t\"File:\": \"文件:\",\n\t\"ID:\": \"ID:\",\n\t\"In-memory\": \"内存中\",\n\tMessages: \"消息\",\n\t\"Total:\": \"总计:\",\n\t\"User:\": \"用户:\",\n\t\"Assistant:\": \"助手:\",\n\t\"Tools:\": \"工具:\",\n\t\"{calls} calls, {results} results\": \"{calls} 次调用,{results} 次结果\",\n\tTokens: \"Token\",\n\t\"Input:\": \"输入:\",\n\t\"Cached:\": \"已缓存:\",\n\t\"({count} written to cache)\": \"({count} 写入缓存)\",\n\t\"Uncached:\": \"未缓存:\",\n\t\"Output:\": \"输出:\",\n\t\"By Provider/Model\": \"按供应商/模型\",\n\t\"(cache {rate}%, W {written})\": \"(缓存 {rate}%,写 {written})\",\n\tCost: \"费用\",\n\t\"({tokens} tokens)\": \"({tokens} token)\",\n\t\"{count} miss\": \"{count} 次未命中\",\n\t\"{count} misses\": \"{count} 次未命中\",\n\t\"{tokens} tokens, {misses}\": \"{tokens} token,{misses}\",\n\t\"Cache Re-billed:\": \"缓存重新计费:\",\n\n\t// ---- /metrics ----\n\t\"Metrics are not available: the observability plugin is not mounted in this session\":\n\t\t\"指标不可用:本会话未挂载 observability 插件\",\n\t\"Invalid turns: {turns}. Usage: /metrics [turns]\": \"无效的轮数:{turns}。用法:/metrics [turns]\",\n\n\t// ---- /help ----\n\tCommand: \"命令\",\n\tDescription: \"说明\",\n\t\"Built-in commands\": \"内置命令\",\n\t\"Prompt templates\": \"提示词模板\",\n\t\"Type `/` for autocomplete. Use `/hotkeys` for keyboard shortcuts.\":\n\t\t\"输入 `/` 自动补全。使用 `/hotkeys` 查看快捷键。\",\n\t\"Available Commands\": \"可用命令\",\n\n\t// ---- /hotkeys ----\n\t\"Open model selector\": \"打开模型选择器\",\n\t\"Copy selection in /tree\": \"在 /tree 中复制选区\",\n\t\"External editor (inside dialog inputs)\": \"外部编辑器(对话框输入内)\",\n\t\"Queue follow-up message\": \"排队后续消息\",\n\t\"Restore queued messages\": \"恢复排队消息\",\n\t\"Cycle thinking level\": \"循环切换思考级别\",\n\t\"Cycle models\": \"循环切换模型\",\n\t\"Suspend to background\": \"挂起到后台\",\n\tNavigation: \"导航\",\n\tKey: \"按键\",\n\tAction: \"动作\",\n\t\"Move cursor / browse history\": \"移动光标 / 浏览历史\",\n\t\"Move by word\": \"按词移动\",\n\t\"Start of line\": \"行首\",\n\t\"End of line\": \"行尾\",\n\t\"Jump forward to character\": \"向后跳到字符\",\n\t\"Jump backward to character\": \"向前跳到字符\",\n\t\"Scroll by page\": \"按页滚动\",\n\tEditing: \"编辑\",\n\t\"Send message\": \"发送消息\",\n\t\"New line\": \"换行\",\n\t\"New line (Ctrl+Enter on Windows Terminal)\": \"换行(Windows Terminal 上为 Ctrl+Enter)\",\n\t\"Delete word backwards\": \"向前删除单词\",\n\t\"Delete word forwards\": \"向后删除单词\",\n\t\"Delete to start of line\": \"删除到行首\",\n\t\"Delete to end of line\": \"删除到行尾\",\n\t\"Paste the most-recently-deleted text\": \"粘贴最近删除的文本\",\n\t\"Cycle through the deleted text after pasting\": \"粘贴后循环切换已删除文本\",\n\tUndo: \"撤销\",\n\tOther: \"其他\",\n\t\"Path completion / accept autocomplete\": \"路径补全 / 接受自动补全\",\n\t\"Cancel autocomplete / abort streaming\": \"取消自动补全 / 中止流式输出\",\n\t\"Clear editor (first) / exit (second)\": \"清空编辑器(第一次)/ 退出(第二次)\",\n\t\"Exit (when editor is empty)\": \"退出(编辑器为空时)\",\n\t\"Toggle tool output expansion\": \"切换工具输出展开\",\n\t\"Toggle thinking block visibility\": \"切换思考块可见性\",\n\t\"Paste image or text from clipboard\": \"从剪贴板粘贴图片或文本\",\n\t\"Slash commands\": \"斜杠命令\",\n\t\"Run bash command\": \"运行 bash 命令\",\n\t\"Run bash command (excluded from context)\": \"运行 bash 命令(不进上下文)\",\n\t\"Keyboard Shortcuts\": \"键盘快捷键\",\n\n\t// ---- /new / /debug / bash ----\n\t\"✓ New session started\": \"✓ 新会话已开始\",\n\t\"Debug output at {date}\": \"调试输出时间:{date}\",\n\t\"Terminal: {columns}x{rows}\": \"终端:{columns}x{rows}\",\n\t\"Total lines: {count}\": \"总行数:{count}\",\n\t\"=== All rendered lines with visible widths ===\": \"=== 全部渲染行(含可见宽度)===\",\n\t\"=== Agent messages (JSONL) ===\": \"=== 代理消息(JSONL)===\",\n\t\"✓ Debug log written\": \"✓ 调试日志已写入\",\n\t\"Bash command failed: {error}\": \"bash 命令失败:{error}\",\n\n\t// ---- 通用错误前缀 / 兜底 ----\n\t\"Error: {message}\": \"错误:{message}\",\n\t\"Warning: {message}\": \"警告:{message}\",\n\tError: \"错误\",\n\t\"Unknown error\": \"未知错误\",\n\t\"Unknown error occurred\": \"发生未知错误\",\n\t\"Reload failed: {error}\": \"重载失败:{error}\",\n\t\"Wait for the current response to finish before reloading.\": \"请等待当前响应完成后再重载。\",\n\t\"Wait for compaction to finish before reloading.\": \"请等待压缩完成后再重载。\",\n\t\"Reloading keybindings, skills, prompts, themes, and context files...\":\n\t\t\"正在重载键位、技能、提示词模板、主题与上下文文件…\",\n\t\"Reloaded keybindings, skills, prompts, themes, and context files\": \"已重载键位、技能、提示词模板、主题与上下文文件\",\n};\n"]}
@@ -110,6 +110,11 @@ export const interactiveMode = {
110
110
  "Tool output: collapsed": "工具输出:已折叠",
111
111
  "Thinking blocks: hidden": "思考块:已隐藏",
112
112
  "Thinking blocks: visible": "思考块:已显示",
113
+ // ---- D-083 转录静默化(quiet 态合并标记与思考折叠行)----
114
+ "✻ thinking": "✻ 思考",
115
+ "{count} tool": "{count} 个工具",
116
+ "{count} tools": "{count} 个工具",
117
+ "{count} failed": "{count} 个失败",
113
118
  // ---- 设置选择器 ----
114
119
  "not set": "未设置",
115
120
  "HTTP idle timeout: {value}": "HTTP 空闲超时:{value}",