reasonix 0.37.0 → 0.38.0

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 (74) hide show
  1. package/README.md +1 -0
  2. package/README.zh-CN.md +1 -0
  3. package/dist/cli/{chat-7257YAPG.js → chat-FPEYKTMI.js} +13 -14
  4. package/dist/cli/{chunk-T52GAWPP.js → chunk-3VTV4WAH.js} +2 -2
  5. package/dist/cli/{chunk-MSKUP6PD.js → chunk-4PNXH2MH.js} +910 -659
  6. package/dist/cli/chunk-4PNXH2MH.js.map +1 -0
  7. package/dist/cli/{chunk-YER7WCHF.js → chunk-A63QT566.js} +24 -10
  8. package/dist/cli/chunk-A63QT566.js.map +1 -0
  9. package/dist/cli/{chunk-4Q3GRJIU.js → chunk-AATCLE5N.js} +2 -2
  10. package/dist/cli/{chunk-BHLHOS5Y.js → chunk-BW2HWSYH.js} +315 -5
  11. package/dist/cli/chunk-BW2HWSYH.js.map +1 -0
  12. package/dist/cli/{chunk-ZJR4QLXB.js → chunk-FB46F6H4.js} +2 -2
  13. package/dist/cli/{chunk-GKZJXYMY.js → chunk-FYKZB6TX.js} +415 -11
  14. package/dist/cli/chunk-FYKZB6TX.js.map +1 -0
  15. package/dist/cli/{chunk-XQIFIB3U.js → chunk-JOFZ6AW5.js} +2 -2
  16. package/dist/cli/{chunk-JGZKTAOH.js → chunk-LMNAMITH.js} +2 -2
  17. package/dist/cli/{chunk-S4GF3HPO.js → chunk-LY352GTC.js} +6 -4
  18. package/dist/cli/chunk-LY352GTC.js.map +1 -0
  19. package/dist/cli/{chunk-VF57YX2M.js → chunk-NYP2DDDV.js} +40 -1
  20. package/dist/cli/chunk-NYP2DDDV.js.map +1 -0
  21. package/dist/cli/{chunk-JULZ7JTO.js → chunk-T5U5JO7Q.js} +11 -8
  22. package/dist/cli/chunk-T5U5JO7Q.js.map +1 -0
  23. package/dist/cli/{chunk-SEFXUF24.js → chunk-YJKLNYCP.js} +113 -24
  24. package/dist/cli/chunk-YJKLNYCP.js.map +1 -0
  25. package/dist/cli/{code-64EG5IU2.js → code-GTE65OUT.js} +23 -17
  26. package/dist/cli/{code-64EG5IU2.js.map → code-GTE65OUT.js.map} +1 -1
  27. package/dist/cli/{commands-FE2UDFBC.js → commands-R4JWISND.js} +3 -4
  28. package/dist/cli/{commands-FE2UDFBC.js.map → commands-R4JWISND.js.map} +1 -1
  29. package/dist/cli/{commit-3IAGB22T.js → commit-TQ4DMUNS.js} +2 -3
  30. package/dist/cli/{commit-3IAGB22T.js.map → commit-TQ4DMUNS.js.map} +1 -1
  31. package/dist/cli/{doctor-BW5HSQDW.js → doctor-GGK2JKTA.js} +6 -7
  32. package/dist/cli/index.js +24 -25
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/{mcp-2RDEQST6.js → mcp-M7I23TQ7.js} +2 -3
  35. package/dist/cli/{mcp-2RDEQST6.js.map → mcp-M7I23TQ7.js.map} +1 -1
  36. package/dist/cli/{mcp-browse-VM5GLRBQ.js → mcp-browse-TWO7RYT4.js} +2 -3
  37. package/dist/cli/{mcp-browse-VM5GLRBQ.js.map → mcp-browse-TWO7RYT4.js.map} +1 -1
  38. package/dist/cli/{prompt-KGIUONO3.js → prompt-ODPFOKSH.js} +2 -2
  39. package/dist/cli/{replay-D7RT2DR7.js → replay-R3QRXPI2.js} +13 -9
  40. package/dist/cli/replay-R3QRXPI2.js.map +1 -0
  41. package/dist/cli/{run-RWCOA32G.js → run-WGSPYYOJ.js} +7 -8
  42. package/dist/cli/{run-RWCOA32G.js.map → run-WGSPYYOJ.js.map} +1 -1
  43. package/dist/cli/{server-6ZW4TQUP.js → server-IZPWQYG3.js} +8 -9
  44. package/dist/cli/{server-6ZW4TQUP.js.map → server-IZPWQYG3.js.map} +1 -1
  45. package/dist/cli/{sessions-5ISNWFMU.js → sessions-E4UH5JYL.js} +7 -8
  46. package/dist/cli/{sessions-5ISNWFMU.js.map → sessions-E4UH5JYL.js.map} +1 -1
  47. package/dist/cli/{setup-HJG23NKJ.js → setup-FTZNN3TZ.js} +60 -15
  48. package/dist/cli/setup-FTZNN3TZ.js.map +1 -0
  49. package/dist/cli/{version-BXAN7Q4V.js → version-MDVCFTKA.js} +7 -8
  50. package/dist/cli/{version-BXAN7Q4V.js.map → version-MDVCFTKA.js.map} +1 -1
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.js +568 -40
  53. package/dist/index.js.map +1 -1
  54. package/package.json +1 -1
  55. package/dist/cli/chunk-BHLHOS5Y.js.map +0 -1
  56. package/dist/cli/chunk-GKZJXYMY.js.map +0 -1
  57. package/dist/cli/chunk-JULZ7JTO.js.map +0 -1
  58. package/dist/cli/chunk-MSKUP6PD.js.map +0 -1
  59. package/dist/cli/chunk-S4GF3HPO.js.map +0 -1
  60. package/dist/cli/chunk-SEFXUF24.js.map +0 -1
  61. package/dist/cli/chunk-VF57YX2M.js.map +0 -1
  62. package/dist/cli/chunk-WUI3P4RA.js +0 -319
  63. package/dist/cli/chunk-WUI3P4RA.js.map +0 -1
  64. package/dist/cli/chunk-YER7WCHF.js.map +0 -1
  65. package/dist/cli/replay-D7RT2DR7.js.map +0 -1
  66. package/dist/cli/setup-HJG23NKJ.js.map +0 -1
  67. /package/dist/cli/{chat-7257YAPG.js.map → chat-FPEYKTMI.js.map} +0 -0
  68. /package/dist/cli/{chunk-T52GAWPP.js.map → chunk-3VTV4WAH.js.map} +0 -0
  69. /package/dist/cli/{chunk-4Q3GRJIU.js.map → chunk-AATCLE5N.js.map} +0 -0
  70. /package/dist/cli/{chunk-ZJR4QLXB.js.map → chunk-FB46F6H4.js.map} +0 -0
  71. /package/dist/cli/{chunk-XQIFIB3U.js.map → chunk-JOFZ6AW5.js.map} +0 -0
  72. /package/dist/cli/{chunk-JGZKTAOH.js.map → chunk-LMNAMITH.js.map} +0 -0
  73. /package/dist/cli/{doctor-BW5HSQDW.js.map → doctor-GGK2JKTA.js.map} +0 -0
  74. /package/dist/cli/{prompt-KGIUONO3.js.map → prompt-ODPFOKSH.js.map} +0 -0
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  loadLanguage,
4
4
  saveLanguage
5
- } from "./chunk-BHLHOS5Y.js";
5
+ } from "./chunk-BW2HWSYH.js";
6
6
 
7
7
  // src/i18n/EN.ts
8
8
  var EN = {
@@ -130,6 +130,10 @@ var EN = {
130
130
  title: "copy / paste",
131
131
  rows: [
132
132
  { key: "select text", text: "drag to select \u2014 terminal-native (no modifier needed)" },
133
+ {
134
+ key: "/copy",
135
+ text: "vim/tmux-style copy mode \u2014 works in SSH/mosh/tmux where drag-select can't extend past the viewport"
136
+ },
133
137
  {
134
138
  key: "copy",
135
139
  text: "Ctrl+Shift+C (Win/Linux) \xB7 Cmd+C (macOS) \u2014 or auto-copy-on-select if your terminal does it"
@@ -212,6 +216,9 @@ var EN = {
212
216
  },
213
217
  slash: {
214
218
  help: { description: "show the full command reference" },
219
+ copy: {
220
+ description: "open vim/tmux-style copy mode \u2014 j/k navigate, v select, y yank to clipboard"
221
+ },
215
222
  status: { description: "current model, flags, context, session" },
216
223
  preset: {
217
224
  description: "model bundle \u2014 auto escalates flash \u2192 pro, flash/pro lock",
@@ -219,6 +226,10 @@ var EN = {
219
226
  },
220
227
  model: { description: "switch DeepSeek model id", argsHint: "<id>" },
221
228
  models: { description: "list available models fetched from DeepSeek /models" },
229
+ theme: {
230
+ description: "show or persist the terminal theme preference. Bare opens picker.",
231
+ argsHint: "[auto|default|dark|light|tokyo-night|github-dark|github-light|high-contrast]"
232
+ },
222
233
  language: {
223
234
  description: "switch the runtime language",
224
235
  argsHint: "<EN|zh-CN>",
@@ -274,9 +285,15 @@ var EN = {
274
285
  context: { description: "show context-window breakdown (system / tools / log / input)" },
275
286
  retry: { description: "truncate & resend your last message (fresh sample)" },
276
287
  compact: {
277
- description: "shrink oversized tool results AND tool-call args (edit_file search/replace) in the log; cap in tokens, default 4000",
288
+ description: "narrow oversized tool results + tool-call args in the log; cap at tokens, default 4000",
278
289
  argsHint: "[tokens]"
279
290
  },
291
+ cwd: {
292
+ description: "switch the workspace root mid-session \u2014 re-points fs / shell / memory tools, reloads project hooks, refreshes the at-mention walker",
293
+ argsHint: "<path>"
294
+ },
295
+ stop: { description: "abort the current model turn (typed alternative to Esc)" },
296
+ feedback: { description: "open a GitHub issue with diagnostic info copied to clipboard" },
280
297
  keys: { description: "keyboard + mouse + copy/paste reference" },
281
298
  plans: { description: "list this session's active + archived plans, newest first" },
282
299
  replay: {
@@ -352,6 +369,9 @@ var EN = {
352
369
  apiKeySavedLocally: "Saved locally to {path}",
353
370
  apiKeyInputLabel: "key \u203A ",
354
371
  apiKeyInvalid: "Key looks too short \u2014 paste the full token (16+ chars, no spaces).",
372
+ apiKeyChecking: "Checking API key\u2026",
373
+ apiKeyRejected: "DeepSeek rejected this API key. Paste a valid key, or press Esc to cancel setup.",
374
+ apiKeyCheckFailed: "Could not verify this API key right now ({message}). Check your network or try again.",
355
375
  apiKeyPreview: "preview: {redacted}",
356
376
  themeTitle: "Choose a theme",
357
377
  themeSubtitle: "Preview updates live as you navigate. Change later with /theme.",
@@ -899,12 +919,157 @@ var EN = {
899
919
  waitingForResponse: "\u2026waiting for response\u2026",
900
920
  hintSend: "send",
901
921
  hintNewline: "newline",
922
+ hintClear: "clear",
902
923
  hintScroll: "scroll",
903
924
  hintHistory: "history",
904
925
  hintAbort: "abort",
905
926
  hintQuit: "quit",
906
927
  abortedHint: "turn aborted by user \xB7 esc again to clear \xB7 \u23CE to ask a follow-up"
907
928
  },
929
+ shellConfirm: {
930
+ title: "Shell command",
931
+ bgTitle: "Background process",
932
+ subtitle: "model wants to run a shell command",
933
+ bgSubtitle: "long-running process \u2014 keeps running after approval, /kill to stop",
934
+ denyTitle: "Deny \u2014 provide context",
935
+ optional: "optional",
936
+ denyFooter: "type context \xB7 \u23CE submit with reason \xB7 esc skip (deny without reason)",
937
+ awaiting: "awaiting",
938
+ pickFooter: "\u2191\u2193 pick \xB7 \u23CE confirm \xB7 Tab add context \xB7 esc cancel",
939
+ allowOnce: "allow once",
940
+ allowOnceDesc: "run this command, ask again next time",
941
+ allowAlways: "allow always",
942
+ allowAlwaysDesc: "remember `{prefix}` for this project",
943
+ deny: "deny",
944
+ denyDesc: "press Tab to add context telling the model why"
945
+ },
946
+ editConfirm: {
947
+ footer: "[y/Enter] apply \xB7 [n] reject with reason \xB7 [a] apply rest \xB7 [A] flip AUTO \xB7 [\u2191\u2193/Space] scroll \xB7 [Esc] abort",
948
+ newTag: "NEW",
949
+ editTag: "EDIT",
950
+ linesCount: "-{removed} +{added} lines",
951
+ viewingRange: "viewing {start}-{end}/{total}",
952
+ denyFooter: "\u23CE submit \xB7 esc skip (deny without reason)",
953
+ oldLabel: " - old",
954
+ newLabel: " + new",
955
+ sideBySide: " side-by-side \xB7 removed lines on the left, added on the right \xB7 paired by offset",
956
+ linesAbove: " \u2191 {count} line above (\u2191/k or PgUp)",
957
+ linesAbovePlural: " \u2191 {count} lines above (\u2191/k or PgUp)",
958
+ linesBelow: " \u2193 {count} line below (\u2193/j or Space/PgDn)",
959
+ linesBelowPlural: " \u2193 {count} lines below (\u2193/j or Space/PgDn)"
960
+ },
961
+ sessionPicker: {
962
+ header: " \u25C8 REASONIX \xB7 pick a session ",
963
+ title: "pick a session \u2014 {workspace}",
964
+ messages: "{count} message",
965
+ messagesPlural: "{count} messages",
966
+ turns: "{count} turns",
967
+ pickerHint: "\u2191\u2193 pick \xB7 \u23CE open \xB7 [n] new \xB7 [d] delete \xB7 [r] rename \xB7 esc quit",
968
+ empty: " no saved sessions in this workspace yet \u2014 press ",
969
+ emptyNew: " to start a new one",
970
+ renamePrompt: ' rename "{from}" \u2192 ',
971
+ renameHint: " \u23CE confirm rename \xB7 esc cancel",
972
+ emptyHint: " \u23CE new session \xB7 esc quit",
973
+ justNow: "just now",
974
+ minAgo: "{count} min ago",
975
+ yesterday: "yesterday",
976
+ hoursAgo: "{count}h ago",
977
+ daysAgo: "{count} days ago"
978
+ },
979
+ modelPicker: {
980
+ header: " \u25C8 REASONIX \xB7 pick a setup ",
981
+ loading: " \xB7 loading catalog\u2026",
982
+ catalogEmpty: " \xB7 catalog empty \u2014 using known fallbacks",
983
+ modelsAvailable: " \xB7 {count} models available",
984
+ presetsHeader: " PRESETS \xB7 recommended \u2014 model + effort + auto-escalate",
985
+ modelsHeader: " MODELS \xB7 raw pick \u2014 auto-escalate stays as-is",
986
+ pickerFooter: " \u2191\u2193 pick \xB7 \u23CE confirm \xB7 [r] refresh \xB7 esc cancel",
987
+ currentLabel: " \xB7 current"
988
+ },
989
+ slashSuggestions: {
990
+ noMatch: "no slash command matches that prefix",
991
+ backspaceHint: " \u2014 Backspace to edit, or /help for the full list",
992
+ commandCount: "{count} command",
993
+ commandCountPlural: "{count} commands",
994
+ aboveLabel: " \u2191 {count} above",
995
+ belowLabel: " \u2193 {count} below",
996
+ advancedHint: " + {count} advanced \xB7 type a letter to search",
997
+ footerHint: " \u2191\u2193 navigate \xB7 Tab / \u23CE pick \xB7 esc cancel",
998
+ groupChat: "CHAT",
999
+ groupSetup: "SETUP",
1000
+ groupInfo: "INFO",
1001
+ groupSession: "SESSION",
1002
+ groupExtend: "EXTEND",
1003
+ groupCode: "CODE",
1004
+ groupJobs: "JOBS",
1005
+ groupAdvanced: "ADVANCED"
1006
+ },
1007
+ atMentions: {
1008
+ loading: "loading\u2026",
1009
+ entrySingular: "{count} entry",
1010
+ entryPlural: "{count} entries",
1011
+ searching: "searching\u2026",
1012
+ scanned: "scanned",
1013
+ match: "match",
1014
+ matches: "matches",
1015
+ forFilter: 'for "{filter}"',
1016
+ noMatch: 'no files match "{filter}"',
1017
+ emptyDir: "empty directory",
1018
+ scanning: "scanning the tree\u2026",
1019
+ footerBrowse: "\u2191\u2193 navigate \xB7 Tab drill into folder \xB7 \u23CE insert \xB7 esc cancel",
1020
+ footerBrowseSearch: "\u2191\u2193 navigate \xB7 Tab / \u23CE insert as @path \xB7 esc cancel",
1021
+ footerInsert: "\u2191\u2193 navigate \xB7 Tab / \u23CE insert as @path \xB7 esc cancel"
1022
+ },
1023
+ statsPanel: {
1024
+ modePlan: "PLAN",
1025
+ modeYolo: "yolo",
1026
+ modeAuto: "auto",
1027
+ modeReview: "review",
1028
+ pro: "\u21E7 pro",
1029
+ budget: " budget "
1030
+ },
1031
+ welcomeBanner: {
1032
+ workspace: "\u25B8 workspace",
1033
+ relaunchHint: " (relaunch with --dir <path> to switch)",
1034
+ dashboard: "\u25B8 web"
1035
+ },
1036
+ ctxBreakdown: {
1037
+ title: "\u25A3 context",
1038
+ compactHint: " /compact folds (auto at 50%) \xB7 /new wipes log",
1039
+ topTools: " top tool results by cost ({count}):",
1040
+ msg: "msg",
1041
+ turnLabel: "turn"
1042
+ },
1043
+ startup: {
1044
+ codeRooted: '\u25B8 reasonix code: rooted at {rootDir}, session "{session}" \xB7 {tools} native tool(s){semantic}',
1045
+ ephemeral: "(ephemeral)",
1046
+ semanticOn: " \xB7 semantic_search on"
1047
+ },
1048
+ doctorErrors: {
1049
+ unreadable: "{path} unreadable \u2014 {message}",
1050
+ cannotList: "cannot list \u2014 {message}",
1051
+ parseFailed: "couldn't parse settings.json \u2014 {message}",
1052
+ probeFailed: "probe failed \u2014 {message}"
1053
+ },
1054
+ webErrors: {
1055
+ status: "web_search {status}",
1056
+ mojeekBlocked: "web_search: Mojeek anti-bot page \u2014 rate-limited or blocked",
1057
+ mojeekNoResults: "web_search: 0 results but response doesn't look like a real empty page ({chars} chars, first 120: {preview})",
1058
+ invalidEndpoint: 'web_search: invalid SearXNG endpoint "{endpoint}"',
1059
+ endpointMustBeHttp: "web_search: SearXNG endpoint must be http(s), got {protocol}",
1060
+ cannotReach: "web_search: Cannot reach SearXNG server at {endpoint}. Please install SearXNG (https://github.com/searxng/searxng) and start it (e.g. `docker run -d -p 8080:8080 searxng/searxng`), or switch to the default engine with /search-engine mojeek.",
1061
+ searxngNoResults: "web_search: 0 results but SearXNG response doesn't look like an empty results page ({chars} chars)",
1062
+ fetchStatus: "web_fetch {status} for {url}",
1063
+ fetchTooLarge: "web_fetch refused: content-length {len} bytes exceeds {cap}-byte cap ({url})",
1064
+ fetchBodyTooLarge: "web_fetch refused: response body exceeded {cap}-byte cap ({seen} bytes seen)",
1065
+ fetchInvalidUrl: "web_fetch: url must start with http:// or https://"
1066
+ },
1067
+ choiceConfirm: {
1068
+ customLabel: "Let me type my own answer",
1069
+ customDesc: "None of the above fits \u2014 type a free-form reply. The model reads it verbatim.",
1070
+ cancelLabel: "Cancel \u2014 drop the question",
1071
+ cancelDesc: "Model stops and asks what you want instead."
1072
+ },
908
1073
  cardTitles: {
909
1074
  usage: "usage",
910
1075
  context: "context",
@@ -914,7 +1079,9 @@ var EN = {
914
1079
  reasoning: "reasoning",
915
1080
  reasoningAborted: "reasoning (aborted)",
916
1081
  reasoningEllipsis: "reasoning\u2026",
917
- error: "error"
1082
+ error: "error",
1083
+ doctor: "doctor",
1084
+ you: "you"
918
1085
  },
919
1086
  cardLabels: {
920
1087
  prompt: "prompt",
@@ -953,7 +1120,42 @@ var EN = {
953
1120
  retries: "retries",
954
1121
  reasoningLabel: "reasoning \xB7 {count} \xB6",
955
1122
  runningLabel: "running",
956
- workingLabel: "working"
1123
+ workingLabel: "working",
1124
+ defaultFooter: "\u2191\u2193 pick \xB7 \u23CE confirm \xB7 esc cancel",
1125
+ applyAction: "[a] apply",
1126
+ skipAction: "[s] skip",
1127
+ rejectAction: "[r] reject",
1128
+ levelOk: "OK",
1129
+ levelWarn: "warn",
1130
+ levelFail: "FAIL",
1131
+ checksLabel: "checks",
1132
+ passed: "passed",
1133
+ warnTag: "warn",
1134
+ failTag: "fail",
1135
+ stepLabel: "step",
1136
+ done: "done",
1137
+ inProgress: "\u2190 in progress",
1138
+ upcoming: "upcoming",
1139
+ resumed: "resumed \xB7 ",
1140
+ archive: "\u23EA archive \xB7 ",
1141
+ more: "\u22EE +{count} more",
1142
+ categoryUser: "user",
1143
+ categoryFeedback: "feedback",
1144
+ categoryProject: "project",
1145
+ categoryReference: "reference"
1146
+ },
1147
+ copyMode: {
1148
+ title: "\u2500\u2500 COPY MODE \u2500\u2500",
1149
+ help: "j/k or \u2191/\u2193 move \xB7 v select \xB7 y yank \xB7 g/G top/bottom \xB7 q quit",
1150
+ statusBar: "line {cur}/{total} \xB7 selection: {sel}",
1151
+ statusYanked: "yanked {size} chars (osc52={osc52})",
1152
+ statusEmpty: "nothing selected",
1153
+ empty: "(no chat content yet \u2014 say something to the model first)",
1154
+ labelUser: "you",
1155
+ labelAssistant: "assistant",
1156
+ labelReasoning: "reasoning",
1157
+ yankedToast: "\u25B8 copied {size} chars to clipboard (osc52)",
1158
+ yankedToastFile: "\u25B8 copied {size} chars \xB7 file: {path}"
957
1159
  }
958
1160
  };
959
1161
 
@@ -1080,6 +1282,10 @@ var zhCN = {
1080
1282
  title: "\u590D\u5236 / \u7C98\u8D34",
1081
1283
  rows: [
1082
1284
  { key: "\u9009\u4E2D\u6587\u5B57", text: "\u76F4\u63A5\u62D6\u52A8 \u2014 \u7EC8\u7AEF\u539F\u751F\uFF08\u4E0D\u9700\u8981\u4EFB\u4F55\u4FEE\u9970\u952E\uFF09" },
1285
+ {
1286
+ key: "/copy",
1287
+ text: "vim/tmux \u98CE\u683C\u590D\u5236\u6A21\u5F0F \u2014 SSH / mosh / tmux \u4E0B\u62D6\u9009\u8D8A\u8FC7\u53EF\u89C6\u533A\u65E0\u6548\u65F6\u7528\u8FD9\u4E2A"
1288
+ },
1083
1289
  {
1084
1290
  key: "\u590D\u5236",
1085
1291
  text: "Ctrl+Shift+C\uFF08Win/Linux\uFF09\xB7 Cmd+C\uFF08macOS\uFF09\u2014 \u6216\u9009\u4E2D\u5373\u590D\u5236\uFF08\u770B\u7EC8\u7AEF\u8BBE\u7F6E\uFF09"
@@ -1162,6 +1368,9 @@ var zhCN = {
1162
1368
  },
1163
1369
  slash: {
1164
1370
  help: { description: "\u663E\u793A\u5B8C\u6574\u547D\u4EE4\u53C2\u8003" },
1371
+ copy: {
1372
+ description: "\u8FDB\u5165 vim/tmux \u98CE\u683C\u590D\u5236\u6A21\u5F0F \u2014 j/k \u79FB\u52A8\u3001v \u8D77\u9009\u533A\u3001y \u590D\u5236\u5230\u526A\u8D34\u677F"
1373
+ },
1165
1374
  status: { description: "\u5F53\u524D\u6A21\u578B\u3001\u6807\u5FD7\u3001\u4E0A\u4E0B\u6587\u3001\u4F1A\u8BDD" },
1166
1375
  preset: {
1167
1376
  description: "\u6A21\u578B\u7EC4\u5408 \u2014 \u81EA\u52A8\u5728 flash \u2192 pro \u4E4B\u95F4\u5207\u6362\uFF0C\u6216\u9501\u5B9A flash/pro",
@@ -1169,6 +1378,10 @@ var zhCN = {
1169
1378
  },
1170
1379
  model: { description: "\u5207\u6362 DeepSeek \u6A21\u578B ID", argsHint: "<id>" },
1171
1380
  models: { description: "\u5217\u51FA\u4ECE DeepSeek /models \u83B7\u53D6\u7684\u53EF\u7528\u6A21\u578B" },
1381
+ theme: {
1382
+ description: "\u663E\u793A\u6216\u6301\u4E45\u5316\u7EC8\u7AEF\u4E3B\u9898\u504F\u597D\u3002\u65E0\u53C2\u6570\u65F6\u6253\u5F00\u9009\u62E9\u5668\u3002",
1383
+ argsHint: "[auto|default|dark|light|tokyo-night|github-dark|github-light|high-contrast]"
1384
+ },
1172
1385
  language: {
1173
1386
  description: "\u5207\u6362\u8FD0\u884C\u65F6\u8BED\u8A00",
1174
1387
  argsHint: "<en|zh-CN>",
@@ -1230,6 +1443,12 @@ var zhCN = {
1230
1443
  argsHint: "[tokens]"
1231
1444
  },
1232
1445
  keys: { description: "\u952E\u76D8 + \u9F20\u6807 + \u590D\u5236\u7C98\u8D34\u53C2\u8003" },
1446
+ cwd: {
1447
+ description: "\u5207\u6362\u5DE5\u4F5C\u533A\u6839\u76EE\u5F55 \u2014 \u91CD\u65B0\u6307\u5411\u6587\u4EF6/Shell/\u8BB0\u5FC6\u5DE5\u5177\uFF0C\u91CD\u8F7D\u9879\u76EE hooks\uFF0C\u5237\u65B0 @ \u5F15\u7528\u904D\u5386\u5668",
1448
+ argsHint: "<path>"
1449
+ },
1450
+ stop: { description: "\u4E2D\u6B62\u5F53\u524D\u6A21\u578B\u56DE\u5408\uFF08\u6309 Esc \u7684\u66FF\u4EE3\u65B9\u5F0F\uFF09" },
1451
+ feedback: { description: "\u6253\u5F00 GitHub Issue\uFF0C\u8BCA\u65AD\u4FE1\u606F\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F" },
1233
1452
  plans: { description: "\u5217\u51FA\u6B64\u4F1A\u8BDD\u7684\u6D3B\u8DC3 + \u5F52\u6863\u8BA1\u5212\uFF08\u6700\u65B0\u5728\u524D\uFF09" },
1234
1453
  replay: {
1235
1454
  description: "\u52A0\u8F7D\u5F52\u6863\u8BA1\u5212\u4E3A\u53EA\u8BFB\u7684\u65F6\u95F4\u65C5\u884C\u5FEB\u7167\uFF08\u9ED8\u8BA4\uFF1A\u6700\u65B0\uFF09",
@@ -1306,6 +1525,9 @@ var zhCN = {
1306
1525
  apiKeySavedLocally: "\u4FDD\u5B58\u5728\u672C\u5730\uFF1A{path}",
1307
1526
  apiKeyInputLabel: "key \u203A ",
1308
1527
  apiKeyInvalid: "key \u957F\u5EA6\u4E0D\u8DB3\u2014\u2014\u8BF7\u7C98\u8D34\u5B8C\u6574 token\uFF0816+ \u5B57\u7B26\uFF0C\u4E0D\u542B\u7A7A\u683C\uFF09\u3002",
1528
+ apiKeyChecking: "\u6B63\u5728\u68C0\u67E5 API key\u2026",
1529
+ apiKeyRejected: "DeepSeek \u62D2\u7EDD\u4E86\u8FD9\u4E2A API key\u3002\u8BF7\u7C98\u8D34\u6709\u6548 key\uFF0C\u6216\u6309 Esc \u53D6\u6D88\u8BBE\u7F6E\u3002",
1530
+ apiKeyCheckFailed: "\u6682\u65F6\u65E0\u6CD5\u9A8C\u8BC1 API key\uFF08{message}\uFF09\u3002\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5\u3002",
1309
1531
  apiKeyPreview: "\u9884\u89C8\uFF1A{redacted}",
1310
1532
  themeTitle: "\u9009\u62E9\u4E3B\u9898",
1311
1533
  themeSubtitle: "\u65B9\u5411\u952E\u5207\u6362\u65F6\u5373\u65F6\u9884\u89C8\u6548\u679C\uFF0C\u4E4B\u540E\u53EF\u7528 /theme \u66F4\u6539\u3002",
@@ -1839,10 +2061,10 @@ var zhCN = {
1839
2061
  plan: "\u8BA1\u5212",
1840
2062
  yolo: "\u81EA\u7531",
1841
2063
  auto: "\u81EA\u52A8",
1842
- review: "\u5BA1\u6838",
1843
- writesGated: " \u5199\u5165\u53D7\u9650 \xB7 /plan off \u89E3\u9664",
2064
+ review: "\u5BA1\u67E5",
2065
+ writesGated: " \u5DF2\u9650\u5236\u5199\u5165 \xB7 /plan off \u89E3\u9664",
1844
2066
  editsShellAuto: "\u7F16\u8F91 + Shell \u81EA\u52A8 \xB7 /undo \u53EF\u56DE\u6EDA",
1845
- editsLandNow: "\u7F16\u8F91\u7ACB\u5373\u751F\u6548 \xB7 \u6309 u \u64A4\u6D88",
2067
+ editsLandNow: "\u7F16\u8F91\u5DF2\u751F\u6548 \xB7 \u6309 u \u64A4\u6D88",
1846
2068
  queuedApplyDiscard: "{count} \u4E2A\u5F85\u5904\u7406 \xB7 y \u5E94\u7528 \xB7 n \u4E22\u5F03",
1847
2069
  editsQueued: "\u7F16\u8F91\u5DF2\u6392\u961F \xB7 y \u5E94\u7528 \xB7 n \u4E22\u5F03",
1848
2070
  shiftTabFlip: " {mid} \xB7 Shift+Tab \u5207\u6362",
@@ -1853,12 +2075,157 @@ var zhCN = {
1853
2075
  waitingForResponse: "\u2026\u7B49\u5F85\u54CD\u5E94\u2026",
1854
2076
  hintSend: "\u53D1\u9001",
1855
2077
  hintNewline: "\u6362\u884C",
2078
+ hintClear: "\u6E05\u7A7A",
1856
2079
  hintScroll: "\u6EDA\u52A8",
1857
2080
  hintHistory: "\u5386\u53F2",
1858
2081
  hintAbort: "\u4E2D\u6B62",
1859
2082
  hintQuit: "\u9000\u51FA",
1860
2083
  abortedHint: "\u7528\u6237\u5DF2\u4E2D\u6B62\u672C\u8F6E \xB7 \u518D\u6309 Esc \u6E05\u9664 \xB7 \u23CE \u7EE7\u7EED\u63D0\u95EE"
1861
2084
  },
2085
+ shellConfirm: {
2086
+ title: "Shell \u547D\u4EE4",
2087
+ bgTitle: "\u540E\u53F0\u8FDB\u7A0B",
2088
+ subtitle: "\u6A21\u578B\u8BF7\u6C42\u6267\u884C Shell \u547D\u4EE4",
2089
+ bgSubtitle: "\u957F\u65F6\u95F4\u8FD0\u884C \u2014 \u6279\u51C6\u540E\u6301\u7EED\u8FD0\u884C\uFF0C/kill \u53EF\u505C\u6B62",
2090
+ denyTitle: "\u62D2\u7EDD \u2014 \u63D0\u4F9B\u539F\u56E0",
2091
+ optional: "\u53EF\u9009",
2092
+ denyFooter: "\u8F93\u5165\u539F\u56E0 \xB7 \u23CE \u63D0\u4EA4 \xB7 Esc \u8DF3\u8FC7\uFF08\u76F4\u63A5\u62D2\u7EDD\uFF09",
2093
+ awaiting: "\u7B49\u5F85\u4E2D",
2094
+ pickFooter: "\u2191\u2193 \u9009\u62E9 \xB7 \u23CE \u786E\u8BA4 \xB7 Tab \u6DFB\u52A0\u8BF4\u660E \xB7 Esc \u53D6\u6D88",
2095
+ allowOnce: "\u5141\u8BB8\u4E00\u6B21",
2096
+ allowOnceDesc: "\u6267\u884C\u6B64\u547D\u4EE4\uFF0C\u4E0B\u6B21\u518D\u95EE",
2097
+ allowAlways: "\u59CB\u7EC8\u5141\u8BB8",
2098
+ allowAlwaysDesc: "\u8BB0\u4F4F `{prefix}`\uFF0C\u672C\u9879\u76EE\u5185\u4E0D\u518D\u8BE2\u95EE",
2099
+ deny: "\u62D2\u7EDD",
2100
+ denyDesc: "\u6309 Tab \u6DFB\u52A0\u8BF4\u660E\uFF0C\u544A\u8BC9\u6A21\u578B\u539F\u56E0"
2101
+ },
2102
+ editConfirm: {
2103
+ footer: "[y/Enter] \u5E94\u7528 \xB7 [n] \u62D2\u7EDD\u5E76\u8BF4\u660E \xB7 [a] \u5E94\u7528\u5269\u4F59 \xB7 [A] \u5207\u6362 AUTO \xB7 [\u2191\u2193/Space] \u6EDA\u52A8 \xB7 [Esc] \u4E2D\u6B62",
2104
+ newTag: "\u65B0\u589E",
2105
+ editTag: "\u7F16\u8F91",
2106
+ linesCount: "-{removed} +{added} \u884C",
2107
+ viewingRange: "\u6B63\u5728\u67E5\u770B {start}-{end}/{total}",
2108
+ denyFooter: "\u23CE \u63D0\u4EA4 \xB7 Esc \u8DF3\u8FC7\uFF08\u76F4\u63A5\u62D2\u7EDD\uFF09",
2109
+ oldLabel: " \u65E7\u5185\u5BB9",
2110
+ newLabel: " \u65B0\u5185\u5BB9",
2111
+ sideBySide: " \u5DE6\u53F3\u5BF9\u6BD4 \xB7 \u5DE6\u4FA7\u5220\u9664\uFF0C\u53F3\u4FA7\u65B0\u589E \xB7 \u6309\u504F\u79FB\u914D\u5BF9",
2112
+ linesAbove: " \u2191 \u4E0A\u65B9 {count} \u884C\uFF08\u2191/k \u6216 PgUp\uFF09",
2113
+ linesAbovePlural: " \u2191 \u4E0A\u65B9 {count} \u884C\uFF08\u2191/k \u6216 PgUp\uFF09",
2114
+ linesBelow: " \u2193 \u4E0B\u65B9 {count} \u884C\uFF08\u2193/j \u6216 Space/PgDn\uFF09",
2115
+ linesBelowPlural: " \u2193 \u4E0B\u65B9 {count} \u884C\uFF08\u2193/j \u6216 Space/PgDn\uFF09"
2116
+ },
2117
+ sessionPicker: {
2118
+ header: " \u25C8 REASONIX \xB7 \u9009\u62E9\u4F1A\u8BDD ",
2119
+ title: "\u9009\u62E9\u4F1A\u8BDD \u2014 {workspace}",
2120
+ messages: "{count} \u6761\u6D88\u606F",
2121
+ messagesPlural: "{count} \u6761\u6D88\u606F",
2122
+ turns: "{count} \u8F6E",
2123
+ pickerHint: "\u2191\u2193 \u9009\u62E9 \xB7 \u23CE \u6253\u5F00 \xB7 [n] \u65B0\u5EFA \xB7 [d] \u5220\u9664 \xB7 [r] \u91CD\u547D\u540D \xB7 Esc \u9000\u51FA",
2124
+ empty: " \u6B64\u5DE5\u4F5C\u533A\u6682\u65E0\u5DF2\u4FDD\u5B58\u7684\u4F1A\u8BDD \u2014 \u6309 ",
2125
+ emptyNew: " \u5F00\u59CB\u65B0\u4F1A\u8BDD",
2126
+ renamePrompt: ' \u91CD\u547D\u540D "{from}" \u2192 ',
2127
+ renameHint: " \u23CE \u786E\u8BA4\u91CD\u547D\u540D \xB7 Esc \u53D6\u6D88",
2128
+ emptyHint: " \u23CE \u65B0\u5EFA\u4F1A\u8BDD \xB7 Esc \u9000\u51FA",
2129
+ justNow: "\u521A\u521A",
2130
+ minAgo: "{count} \u5206\u949F\u524D",
2131
+ yesterday: "\u6628\u5929",
2132
+ hoursAgo: "{count} \u5C0F\u65F6\u524D",
2133
+ daysAgo: "{count} \u5929\u524D"
2134
+ },
2135
+ modelPicker: {
2136
+ header: " \u25C8 REASONIX \xB7 \u9009\u62E9\u914D\u7F6E ",
2137
+ loading: " \xB7 \u52A0\u8F7D\u76EE\u5F55\u2026",
2138
+ catalogEmpty: " \xB7 \u76EE\u5F55\u4E3A\u7A7A \u2014 \u4F7F\u7528\u5DF2\u77E5\u5907\u9009",
2139
+ modelsAvailable: " \xB7 {count} \u4E2A\u6A21\u578B\u53EF\u7528",
2140
+ presetsHeader: " \u9884\u8BBE \xB7 \u63A8\u8350 \u2014 \u6A21\u578B + \u5F3A\u5EA6 + \u81EA\u52A8\u5347\u7EA7",
2141
+ modelsHeader: " \u6A21\u578B \xB7 \u76F4\u63A5\u9009\u62E9 \u2014 \u81EA\u52A8\u5347\u7EA7\u4FDD\u6301\u4E0D\u53D8",
2142
+ pickerFooter: " \u2191\u2193 \u9009\u62E9 \xB7 \u23CE \u786E\u8BA4 \xB7 [r] \u5237\u65B0 \xB7 Esc \u53D6\u6D88",
2143
+ currentLabel: " \xB7 \u5F53\u524D"
2144
+ },
2145
+ slashSuggestions: {
2146
+ noMatch: "\u6CA1\u6709\u5339\u914D\u6B64\u524D\u7F00\u7684\u659C\u6760\u547D\u4EE4",
2147
+ backspaceHint: " \u2014 \u6309 Backspace \u4FEE\u6539\uFF0C\u6216 /help \u67E5\u770B\u5B8C\u6574\u5217\u8868",
2148
+ commandCount: "{count} \u4E2A\u547D\u4EE4",
2149
+ commandCountPlural: "{count} \u4E2A\u547D\u4EE4",
2150
+ aboveLabel: " \u2191 {count} \u4E2A\u4EE5\u4E0A",
2151
+ belowLabel: " \u2193 {count} \u4E2A\u4EE5\u4E0B",
2152
+ advancedHint: " + {count} \u4E2A\u9AD8\u7EA7\u547D\u4EE4 \xB7 \u8F93\u5165\u5B57\u6BCD\u641C\u7D22",
2153
+ footerHint: " \u2191\u2193 \u5BFC\u822A \xB7 Tab / \u23CE \u9009\u62E9 \xB7 Esc \u53D6\u6D88",
2154
+ groupChat: "\u804A\u5929",
2155
+ groupSetup: "\u8BBE\u7F6E",
2156
+ groupInfo: "\u4FE1\u606F",
2157
+ groupSession: "\u4F1A\u8BDD",
2158
+ groupExtend: "\u6269\u5C55",
2159
+ groupCode: "\u4EE3\u7801",
2160
+ groupJobs: "\u4EFB\u52A1",
2161
+ groupAdvanced: "\u9AD8\u7EA7"
2162
+ },
2163
+ atMentions: {
2164
+ loading: "\u52A0\u8F7D\u4E2D\u2026",
2165
+ entrySingular: "{count} \u6761",
2166
+ entryPlural: "{count} \u6761",
2167
+ searching: "\u641C\u7D22\u4E2D\u2026",
2168
+ scanned: "\u5DF2\u626B\u63CF",
2169
+ match: "\u4E2A\u5339\u914D",
2170
+ matches: "\u4E2A\u5339\u914D",
2171
+ forFilter: '\u5339\u914D "{filter}"',
2172
+ noMatch: '\u6CA1\u6709\u5339\u914D "{filter}" \u7684\u6587\u4EF6',
2173
+ emptyDir: "\u7A7A\u76EE\u5F55",
2174
+ scanning: "\u6B63\u5728\u626B\u63CF\u76EE\u5F55\u6811\u2026",
2175
+ footerBrowse: "\u2191\u2193 \u5BFC\u822A \xB7 Tab \u8FDB\u5165\u6587\u4EF6\u5939 \xB7 \u23CE \u63D2\u5165 \xB7 Esc \u53D6\u6D88",
2176
+ footerBrowseSearch: "\u2191\u2193 \u5BFC\u822A \xB7 Tab / \u23CE \u4EE5 @path \u63D2\u5165 \xB7 Esc \u53D6\u6D88",
2177
+ footerInsert: "\u2191\u2193 \u5BFC\u822A \xB7 Tab / \u23CE \u4EE5 @path \u63D2\u5165 \xB7 Esc \u53D6\u6D88"
2178
+ },
2179
+ statsPanel: {
2180
+ modePlan: "\u8BA1\u5212",
2181
+ modeYolo: "\u81EA\u7531",
2182
+ modeAuto: "\u81EA\u52A8",
2183
+ modeReview: "\u5BA1\u67E5",
2184
+ pro: "\u21E7 \u4E13\u4E1A",
2185
+ budget: " \u9884\u7B97 "
2186
+ },
2187
+ welcomeBanner: {
2188
+ workspace: "\u25B8 \u5DE5\u4F5C\u533A",
2189
+ relaunchHint: "\uFF08\u91CD\u542F\u65F6\u7528 --dir <path> \u5207\u6362\uFF09",
2190
+ dashboard: "\u25B8 \u7F51\u9875"
2191
+ },
2192
+ ctxBreakdown: {
2193
+ title: "\u25A3 \u4E0A\u4E0B\u6587",
2194
+ compactHint: " /compact \u6298\u53E0\uFF08\u8D85\u8FC7 50% \u81EA\u52A8\u89E6\u53D1\uFF09\xB7 /new \u6E05\u7A7A\u65E5\u5FD7",
2195
+ topTools: " \u5E38\u7528\u5DE5\u5177\uFF08\u6309\u6210\u672C\u6392\u5E8F\uFF0C{count} \u4E2A\uFF09\uFF1A",
2196
+ msg: "\u6761",
2197
+ turnLabel: "\u8F6E"
2198
+ },
2199
+ startup: {
2200
+ codeRooted: '\u25B8 reasonix code\uFF1A\u6839\u76EE\u5F55 {rootDir}\uFF0C\u4F1A\u8BDD "{session}" \xB7 {tools} \u4E2A\u539F\u751F\u5DE5\u5177{semantic}',
2201
+ ephemeral: "\uFF08\u4E34\u65F6\uFF09",
2202
+ semanticOn: " \xB7 \u8BED\u4E49\u641C\u7D22\u5DF2\u5F00\u542F"
2203
+ },
2204
+ doctorErrors: {
2205
+ unreadable: "{path} \u65E0\u6CD5\u8BFB\u53D6 \u2014 {message}",
2206
+ cannotList: "\u65E0\u6CD5\u5217\u51FA \u2014 {message}",
2207
+ parseFailed: "\u65E0\u6CD5\u89E3\u6790 settings.json \u2014 {message}",
2208
+ probeFailed: "\u63A2\u6D4B\u5931\u8D25 \u2014 {message}"
2209
+ },
2210
+ webErrors: {
2211
+ status: "web_search \u72B6\u6001\u7801 {status}",
2212
+ mojeekBlocked: "web_search: Mojeek \u53CD\u722C\u9875\u9762 \u2014 \u9891\u7387\u9650\u5236\u6216\u88AB\u5C4F\u853D",
2213
+ mojeekNoResults: "web_search: \u8FD4\u56DE 0 \u6761\u7ED3\u679C\u4F46\u54CD\u5E94\u770B\u8D77\u6765\u4E0D\u662F\u6B63\u5E38\u7A7A\u7ED3\u679C\u9875\uFF08{chars} \u5B57\u7B26\uFF0C\u524D 120 \u5B57\u7B26\uFF1A{preview}\uFF09",
2214
+ invalidEndpoint: 'web_search: \u65E0\u6548\u7684 SearXNG \u7AEF\u70B9 "{endpoint}"',
2215
+ endpointMustBeHttp: "web_search: SearXNG \u7AEF\u70B9\u5FC5\u987B\u662F http(s) \u534F\u8BAE\uFF0C\u5F53\u524D\u4E3A {protocol}",
2216
+ cannotReach: "web_search: \u65E0\u6CD5\u8BBF\u95EE SearXNG \u670D\u52A1\u5668 {endpoint}\u3002\u8BF7\u5B89\u88C5 SearXNG\uFF08https://github.com/searxng/searxng\uFF09\u5E76\u542F\u52A8\uFF08\u4F8B\u5982 `docker run -d -p 8080:8080 searxng/searxng`\uFF09\uFF0C\u6216\u4F7F\u7528 /search-engine mojeek \u5207\u6362\u5230\u9ED8\u8BA4\u5F15\u64CE\u3002",
2217
+ searxngNoResults: "web_search: \u8FD4\u56DE 0 \u6761\u7ED3\u679C\u4F46 SearXNG \u54CD\u5E94\u770B\u8D77\u6765\u4E0D\u662F\u6B63\u5E38\u7A7A\u7ED3\u679C\u9875\uFF08{chars} \u5B57\u7B26\uFF09",
2218
+ fetchStatus: "web_fetch \u72B6\u6001\u7801 {status}\uFF08{url}\uFF09",
2219
+ fetchTooLarge: "web_fetch \u62D2\u7EDD\uFF1Acontent-length {len} \u5B57\u8282\u8D85\u8FC7\u4E0A\u9650 {cap} \u5B57\u8282\uFF08{url}\uFF09",
2220
+ fetchBodyTooLarge: "web_fetch \u62D2\u7EDD\uFF1A\u54CD\u5E94\u4F53\u8D85\u8FC7 {cap} \u5B57\u8282\u4E0A\u9650\uFF08\u5DF2\u63A5\u6536 {seen} \u5B57\u8282\uFF09",
2221
+ fetchInvalidUrl: "web_fetch: URL \u5FC5\u987B\u4EE5 http:// \u6216 https:// \u5F00\u5934"
2222
+ },
2223
+ choiceConfirm: {
2224
+ customLabel: "\u81EA\u5B9A\u4E49\u56DE\u7B54",
2225
+ customDesc: "\u4EE5\u4E0A\u9009\u9879\u90FD\u4E0D\u5408\u9002 \u2014 \u8F93\u5165\u81EA\u7531\u683C\u5F0F\u56DE\u590D\uFF0C\u6A21\u578B\u4F1A\u539F\u6837\u8BFB\u53D6",
2226
+ cancelLabel: "\u53D6\u6D88 \u2014 \u653E\u5F03\u95EE\u9898",
2227
+ cancelDesc: "\u6A21\u578B\u505C\u6B62\u5E76\u8BE2\u95EE\u4F60\u771F\u6B63\u7684\u9700\u6C42"
2228
+ },
1862
2229
  cardTitles: {
1863
2230
  usage: "\u7528\u91CF",
1864
2231
  context: "\u4E0A\u4E0B\u6587",
@@ -1868,7 +2235,9 @@ var zhCN = {
1868
2235
  reasoning: "\u63A8\u7406\u4E2D",
1869
2236
  reasoningAborted: "\u63A8\u7406\uFF08\u5DF2\u4E2D\u6B62\uFF09",
1870
2237
  reasoningEllipsis: "\u63A8\u7406\u4E2D\u2026",
1871
- error: "\u9519\u8BEF"
2238
+ error: "\u9519\u8BEF",
2239
+ doctor: "\u73AF\u5883\u8BCA\u65AD",
2240
+ you: "\u4F60"
1872
2241
  },
1873
2242
  cardLabels: {
1874
2243
  prompt: "\u63D0\u793A",
@@ -1882,7 +2251,7 @@ var zhCN = {
1882
2251
  tools: "\u5DE5\u5177",
1883
2252
  log: "\u65E5\u5FD7",
1884
2253
  input: "\u8F93\u5165",
1885
- topTools: "Top \u5DE5\u5177",
2254
+ topTools: "\u5E38\u7528\u5DE5\u5177",
1886
2255
  logMsgs: "\u65E5\u5FD7\u6D88\u606F",
1887
2256
  hitSingular: "{count} \u6761\u7ED3\u679C \xB7 {files} \u4E2A\u6587\u4EF6",
1888
2257
  hitsPlural: "{count} \u6761\u7ED3\u679C \xB7 {files} \u4E2A\u6587\u4EF6",
@@ -1907,7 +2276,42 @@ var zhCN = {
1907
2276
  retries: "\u6B21\u91CD\u8BD5",
1908
2277
  reasoningLabel: "\u63A8\u7406 \xB7 {count} \xB6",
1909
2278
  runningLabel: "\u8FD0\u884C\u4E2D",
1910
- workingLabel: "\u5DE5\u4F5C\u4E2D"
2279
+ workingLabel: "\u5904\u7406\u4E2D",
2280
+ defaultFooter: "\u2191\u2193 \u9009\u62E9 \xB7 \u23CE \u786E\u8BA4 \xB7 Esc \u53D6\u6D88",
2281
+ applyAction: "[a] \u5E94\u7528",
2282
+ skipAction: "[s] \u8DF3\u8FC7",
2283
+ rejectAction: "[r] \u62D2\u7EDD",
2284
+ levelOk: "\u6B63\u5E38",
2285
+ levelWarn: "\u8B66\u544A",
2286
+ levelFail: "\u5931\u8D25",
2287
+ checksLabel: "\u68C0\u67E5\u9879",
2288
+ passed: "\u901A\u8FC7",
2289
+ warnTag: "\u8B66\u544A",
2290
+ failTag: "\u5931\u8D25",
2291
+ stepLabel: "\u6B65\u9AA4",
2292
+ done: "\u5DF2\u5B8C\u6210",
2293
+ inProgress: "\u2190 \u8FDB\u884C\u4E2D",
2294
+ upcoming: "\u5F85\u5904\u7406",
2295
+ resumed: "\u5DF2\u6062\u590D \xB7 ",
2296
+ archive: "\u23EA \u5F52\u6863 \xB7 ",
2297
+ more: "\u22EE +{count} \u66F4\u591A",
2298
+ categoryUser: "\u7528\u6237",
2299
+ categoryFeedback: "\u53CD\u9988",
2300
+ categoryProject: "\u9879\u76EE",
2301
+ categoryReference: "\u53C2\u8003"
2302
+ },
2303
+ copyMode: {
2304
+ title: "\u2500\u2500 \u590D\u5236\u6A21\u5F0F \u2500\u2500",
2305
+ help: "j/k \u6216 \u2191/\u2193 \u79FB\u52A8 \xB7 v \u8D77\u9009\u533A \xB7 y \u590D\u5236 \xB7 g/G \u9876/\u5E95 \xB7 q \u9000\u51FA",
2306
+ statusBar: "\u7B2C {cur}/{total} \u884C \xB7 \u9009\u533A\uFF1A{sel}",
2307
+ statusYanked: "\u5DF2\u590D\u5236 {size} \u5B57\u7B26\uFF08osc52={osc52}\uFF09",
2308
+ statusEmpty: "\u672A\u9009\u4E2D\u5185\u5BB9",
2309
+ empty: "\uFF08\u8FD8\u6CA1\u6709\u804A\u5929\u5185\u5BB9 \u2014 \u5148\u548C\u6A21\u578B\u8BF4\u70B9\u4EC0\u4E48\uFF09",
2310
+ labelUser: "\u4F60",
2311
+ labelAssistant: "\u52A9\u624B",
2312
+ labelReasoning: "\u63A8\u7406",
2313
+ yankedToast: "\u25B8 \u5DF2\u590D\u5236 {size} \u5B57\u7B26\u5230\u526A\u8D34\u677F (osc52)",
2314
+ yankedToastFile: "\u25B8 \u5DF2\u590D\u5236 {size} \u5B57\u7B26 \xB7 \u6587\u4EF6\uFF1A{path}"
1911
2315
  }
1912
2316
  };
1913
2317
 
@@ -1998,4 +2402,4 @@ export {
1998
2402
  tObj,
1999
2403
  t
2000
2404
  };
2001
- //# sourceMappingURL=chunk-GKZJXYMY.js.map
2405
+ //# sourceMappingURL=chunk-FYKZB6TX.js.map