mu-agent 0.1.7 → 0.1.10

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 (198) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +34 -29
  3. package/dist/bundle/chunks/anthropic-messages-4PAJY4R6.js +6 -0
  4. package/dist/bundle/chunks/anthropic.js +2 -2
  5. package/dist/bundle/chunks/azure-openai-responses-Y4BBWQ3N.js +2 -0
  6. package/dist/bundle/chunks/bedrock-converse-stream.js +12 -9
  7. package/dist/bundle/chunks/{chunk-TRDNDS6A.js → chunk-3V45WARH.js} +6 -3
  8. package/dist/bundle/chunks/{chunk-XDUWOHPL.js → chunk-5AGIVGSV.js} +3 -3
  9. package/dist/bundle/chunks/chunk-6QGV3IWD.js +6 -0
  10. package/dist/bundle/chunks/chunk-7CBJINYJ.js +20 -0
  11. package/dist/bundle/chunks/{chunk-DRQDKNXA.js → chunk-7DDKXS2Q.js} +1 -1
  12. package/dist/bundle/chunks/chunk-BSS6T6KQ.js +2 -0
  13. package/dist/bundle/chunks/chunk-CF5GWZHW.js +31 -0
  14. package/dist/bundle/chunks/chunk-DNNHZBQR.js +4 -0
  15. package/dist/bundle/chunks/chunk-FN6OEZYR.js +2 -0
  16. package/dist/bundle/chunks/chunk-FTJT2X6E.js +2 -0
  17. package/dist/bundle/chunks/chunk-HZNN636Z.js +130 -0
  18. package/dist/bundle/chunks/{chunk-4L3WN2XY.js → chunk-JXWJOIH4.js} +1 -1
  19. package/dist/bundle/chunks/{chunk-4O2SCVYF.js → chunk-KIDDRTZP.js} +4 -4
  20. package/dist/bundle/chunks/chunk-LMNWTX2L.js +11 -0
  21. package/dist/bundle/chunks/chunk-LPXNMA2W.js +2 -0
  22. package/dist/bundle/chunks/{chunk-6CYCI3EJ.js → chunk-LVVZS2NO.js} +1 -1
  23. package/dist/bundle/chunks/chunk-NN4BEPYX.js +2 -0
  24. package/dist/bundle/chunks/chunk-O7IPTASE.js +1221 -0
  25. package/dist/bundle/chunks/chunk-PMRZO46Y.js +2 -0
  26. package/dist/bundle/chunks/chunk-QOEEJKS4.js +9 -0
  27. package/dist/bundle/chunks/chunk-R4VPBBDS.js +2 -0
  28. package/dist/bundle/chunks/chunk-RAQ6TU76.js +2 -0
  29. package/dist/bundle/chunks/chunk-RDZVAGPR.js +2 -0
  30. package/dist/bundle/chunks/chunk-SGOTYFMT.js +91 -0
  31. package/dist/bundle/chunks/chunk-TMTOQ7H7.js +2 -0
  32. package/dist/bundle/chunks/chunk-UKVNB6C4.js +2 -0
  33. package/dist/bundle/chunks/chunk-VJLOQZKR.js +9 -0
  34. package/dist/bundle/chunks/chunk-WCGU75WO.js +11 -0
  35. package/dist/bundle/chunks/chunk-X234222Q.js +64 -0
  36. package/dist/bundle/chunks/cli-722OL3K5.js +51 -0
  37. package/dist/bundle/chunks/cloudflare-workers-ai-system-one-MEZHQVNP.js +2 -0
  38. package/dist/bundle/chunks/codemode-worker.js +478 -0
  39. package/dist/bundle/chunks/easter-egg-3d-6H34EDGX.js +2 -0
  40. package/dist/bundle/chunks/execute-KVSEIDWL.js +499 -0
  41. package/dist/bundle/chunks/github-copilot.js +1 -1
  42. package/dist/bundle/chunks/{google-generative-ai-C44KRRZ4.js → google-generative-ai-D2VJQBTK.js} +1 -1
  43. package/dist/bundle/chunks/{google-vertex-25DUXPTJ.js → google-vertex-SQG2BO6C.js} +1 -1
  44. package/dist/bundle/chunks/https-proxy-agent-LVOO5TPL.js +13 -0
  45. package/dist/bundle/chunks/image-resize-worker.js +1 -1
  46. package/dist/bundle/chunks/{jiti-loader-C3NU2SDH.js → jiti-loader-GL4HJFAD.js} +1 -1
  47. package/dist/bundle/chunks/{jiti-static-loader-E6ANQD5T.js → jiti-static-loader-2RCDI6B4.js} +1 -1
  48. package/dist/bundle/chunks/{lib-HGQMNYVT.js → lib-4AVRLBHM.js} +2 -2
  49. package/dist/bundle/chunks/llama-cpp-classify-5YHLY3RC.js +22 -0
  50. package/dist/bundle/chunks/mistral-conversations-BDARVJTT.js +5 -0
  51. package/dist/bundle/chunks/{multipart-parser-SQ6GDJL7.js → multipart-parser-FMGQ7342.js} +1 -1
  52. package/dist/bundle/chunks/{node-TWVVAGPO.js → node-AUOGOBCN.js} +1 -1
  53. package/dist/bundle/chunks/node-KCMANYC2.js +16 -0
  54. package/dist/bundle/chunks/openai-chatgpt.js +86 -0
  55. package/dist/bundle/chunks/openai-codex-responses-CECGTDYD.js +10 -0
  56. package/dist/bundle/chunks/openai-codex.js +2 -2
  57. package/dist/bundle/chunks/openai-completions-UOA7MELD.js +7 -0
  58. package/dist/bundle/chunks/openai-decisions-HLM372N6.js +5 -0
  59. package/dist/bundle/chunks/openai-responses-TII7ZY5X.js +3 -0
  60. package/dist/bundle/chunks/{openrouter-images-JVEJN44Q.js → openrouter-images-7T452AS5.js} +1 -1
  61. package/dist/bundle/chunks/openrouter.js +2 -2
  62. package/dist/bundle/chunks/{pi-messages-TM5SOOIW.js → pi-messages-2UDKLKOO.js} +1 -1
  63. package/dist/bundle/chunks/radius.js +2 -2
  64. package/dist/bundle/chunks/runtime-O3ELDOM7.js +2 -0
  65. package/dist/bundle/chunks/{src-UK77SYZE.js → src-QKGKDFSU.js} +1 -1
  66. package/dist/bundle/chunks/typesafe-system-one-KNCICMO5.js +2 -0
  67. package/dist/bundle/chunks/virtual-modules-IKEARUOZ.js +2 -0
  68. package/dist/bundle/cli-runtime.js +1 -1
  69. package/dist/bundle/index.js +1 -1
  70. package/dist/bundle/native/darwin/prebuilds/darwin-arm64/darwin-platform.node +0 -0
  71. package/dist/bundle/native/darwin/prebuilds/darwin-x64/darwin-platform.node +0 -0
  72. package/dist/bundle/rpc-entry.js +1 -1
  73. package/dist/core/export-html/template.js +37 -16
  74. package/dist/modes/interactive/theme/dark.json +60 -73
  75. package/dist/modes/interactive/theme/light.json +58 -70
  76. package/dist/modes/interactive/theme/system-theme.d.ts +55 -0
  77. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  78. package/dist/modes/interactive/theme/system-theme.js +546 -0
  79. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  80. package/dist/modes/interactive/theme/theme-controller.d.ts +43 -9
  81. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  82. package/dist/modes/interactive/theme/theme-controller.js +121 -79
  83. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  84. package/dist/modes/interactive/theme/theme-schema.d.ts +28 -0
  85. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  86. package/dist/modes/interactive/theme/theme-schema.js +105 -0
  87. package/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  88. package/dist/modes/interactive/theme/theme-tokens.d.ts +257 -0
  89. package/dist/modes/interactive/theme/theme-tokens.d.ts.map +1 -0
  90. package/dist/modes/interactive/theme/theme-tokens.js +94 -0
  91. package/dist/modes/interactive/theme/theme-tokens.js.map +1 -0
  92. package/dist/modes/interactive/theme/theme.d.ts +47 -56
  93. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  94. package/dist/modes/interactive/theme/theme.js +149 -143
  95. package/dist/modes/interactive/theme/theme.js.map +1 -1
  96. package/dist/native/darwin/prebuilds/darwin-arm64/darwin-platform.node +0 -0
  97. package/dist/native/darwin/prebuilds/darwin-x64/darwin-platform.node +0 -0
  98. package/docs/cli-integration.md +1 -1
  99. package/docs/cli.md +78 -13
  100. package/docs/codemode.md +230 -0
  101. package/docs/compaction.md +5 -5
  102. package/docs/configuration.md +2 -0
  103. package/docs/custom-provider.md +53 -1
  104. package/docs/docs.json +21 -1
  105. package/docs/environment-variables.md +5 -3
  106. package/docs/extensions.md +172 -10
  107. package/docs/index.md +1 -1
  108. package/docs/json.md +3 -3
  109. package/docs/keybindings.md +7 -6
  110. package/docs/llama-cpp.md +21 -1
  111. package/docs/mcp.md +272 -0
  112. package/docs/message-types.md +22 -4
  113. package/docs/models-configuration.md +187 -0
  114. package/docs/models.md +100 -2
  115. package/docs/nvidia-rtx-llama-cpp.md +96 -0
  116. package/docs/packages.md +1 -1
  117. package/docs/providers.md +66 -6
  118. package/docs/quickstart.md +16 -2
  119. package/docs/rpc-commands.md +9 -3
  120. package/docs/rpc.md +3 -1
  121. package/docs/sdk.md +8 -3
  122. package/docs/security.md +2 -0
  123. package/docs/session-format.md +5 -1
  124. package/docs/sessions.md +1 -1
  125. package/docs/settings.md +30 -8
  126. package/docs/terminal-setup.md +14 -0
  127. package/docs/themes.md +31 -7
  128. package/docs/tui.md +71 -1
  129. package/docs/usage.md +2 -2
  130. package/docs/virtual-models.md +114 -0
  131. package/docs/windows.md +2 -0
  132. package/examples/README.md +1 -4
  133. package/examples/extensions/README.md +1 -0
  134. package/examples/extensions/built-in-tool-renderer.ts +16 -40
  135. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  136. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  137. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  138. package/examples/extensions/custom-provider-gitlab-duo/test.ts +5 -5
  139. package/examples/extensions/dynamic-resources/dynamic.json +1 -1
  140. package/examples/extensions/gondolin/package-lock.json +2 -2
  141. package/examples/extensions/gondolin/package.json +1 -1
  142. package/examples/extensions/jev-router.ts +113 -0
  143. package/examples/extensions/minimal-mode.ts +28 -101
  144. package/examples/extensions/overlay-test.ts +2 -2
  145. package/examples/extensions/plan-mode/index.ts +6 -2
  146. package/examples/extensions/sandbox/package-lock.json +2 -2
  147. package/examples/extensions/sandbox/package.json +1 -1
  148. package/examples/extensions/subagent/index.ts +4 -6
  149. package/examples/extensions/with-deps/package-lock.json +2 -2
  150. package/examples/extensions/with-deps/package.json +1 -1
  151. package/examples/rpc-client.ts +1 -1
  152. package/examples/rpc-extension-ui.ts +1 -1
  153. package/examples/sdk/14-codemode-mcp.ts +61 -0
  154. package/examples/sdk/README.md +2 -1
  155. package/judge/THIRD_PARTY_NOTICES.md +63 -0
  156. package/judge/dist/auth.js +169 -123
  157. package/judge/dist/import.js +36 -30
  158. package/judge/dist/setup.js +250 -120
  159. package/judge/manifest.json +1008 -316
  160. package/judge/{dist/kyrn-judge.js → mu/index.js} +6933 -5995
  161. package/judge/themes/mu-dark.json +80 -0
  162. package/judge/themes/mu-light.json +80 -0
  163. package/kyrn/bin/kyrn-doctor +75 -25
  164. package/kyrn/bin/kyrn-judge-local +2 -2
  165. package/kyrn/bin/kyrn-ledger +1 -1
  166. package/kyrn/bin/mu.mjs +149 -107
  167. package/package.json +4 -5
  168. package/dist/bundle/chunks/anthropic-messages-VMESUHQ7.js +0 -6
  169. package/dist/bundle/chunks/azure-openai-responses-K232MQFF.js +0 -2
  170. package/dist/bundle/chunks/chunk-A3JYRWB6.js +0 -2
  171. package/dist/bundle/chunks/chunk-AYFRR3OD.js +0 -2
  172. package/dist/bundle/chunks/chunk-DTD7JQ7Y.js +0 -42
  173. package/dist/bundle/chunks/chunk-FU4XQUSL.js +0 -11
  174. package/dist/bundle/chunks/chunk-GNYZK6XN.js +0 -2
  175. package/dist/bundle/chunks/chunk-HEMXN7VJ.js +0 -1653
  176. package/dist/bundle/chunks/chunk-MVPXOVOJ.js +0 -2
  177. package/dist/bundle/chunks/chunk-NUHFSC37.js +0 -25
  178. package/dist/bundle/chunks/chunk-V7IXECST.js +0 -11
  179. package/dist/bundle/chunks/chunk-XNGRGP62.js +0 -2
  180. package/dist/bundle/chunks/cloudflare-workers-ai-system-one-NR2TDCXU.js +0 -2
  181. package/dist/bundle/chunks/https-proxy-agent-2VXB7436.js +0 -13
  182. package/dist/bundle/chunks/mistral-conversations-6IHQOR4R.js +0 -5
  183. package/dist/bundle/chunks/node-O3RIBJRH.js +0 -16
  184. package/dist/bundle/chunks/openai-codex-responses-3UAYOSSR.js +0 -10
  185. package/dist/bundle/chunks/openai-completions-FIEQGWAH.js +0 -7
  186. package/dist/bundle/chunks/openai-responses-OZJXLHFC.js +0 -2
  187. package/dist/bundle/chunks/typesafe-system-one-VKYX4OGY.js +0 -2
  188. package/dist/bundle/chunks/virtual-modules-V7SXVVLP.js +0 -2
  189. package/dist/modes/interactive/theme/theme-json.d.ts +0 -85
  190. package/dist/modes/interactive/theme/theme-json.d.ts.map +0 -1
  191. package/dist/modes/interactive/theme/theme-json.js +0 -132
  192. package/dist/modes/interactive/theme/theme-json.js.map +0 -1
  193. package/dist/modes/interactive/theme/theme-schema.json +0 -361
  194. package/examples/plugins/pi-example-plugin/README.md +0 -38
  195. package/examples/plugins/pi-example-plugin/package.json +0 -10
  196. package/examples/plugins/pi-example-plugin/src/contract.ts +0 -13
  197. package/examples/plugins/pi-example-plugin/src/session.ts +0 -24
  198. package/examples/plugins/pi-example-plugin/src/tui.ts +0 -31
@@ -130,7 +130,7 @@
130
130
  },
131
131
  "help": {
132
132
  "zh": "照常提问并记录,但不改变任何行为,用来先观察判定准不准。",
133
- "en": "Asked and recorded, but nothing changes. For watching how well it judges first.",
133
+ "en": "Asked and logged, but changes nothing. Use it to see how well the judge does before relying on it.",
134
134
  "zh-TW": "照常提問並記錄,但不改變任何行為,用來先觀察判定準不準。",
135
135
  "ja-JP": "問い合わせて記録しますが、何も変わりません。まず判定の精度を確かめるためのモードです。",
136
136
  "ko-KR": "질문하고 기록하지만, 아무것도 바꾸지 않습니다. 판정이 얼마나 정확한지 먼저 지켜볼 때 씁니다.",
@@ -163,7 +163,7 @@
163
163
  },
164
164
  "help": {
165
165
  "zh": "不提问,这个判定点关闭。",
166
- "en": "Not asked; this decision is off.",
166
+ "en": "Not asked; this decision point is off.",
167
167
  "zh-TW": "不提問,這個判定點關閉。",
168
168
  "ja-JP": "問い合わせません。この判定ポイントはオフです。",
169
169
  "ko-KR": "질문하지 않습니다. 이 판정 지점은 꺼져 있습니다.",
@@ -200,7 +200,7 @@
200
200
  },
201
201
  "summary": {
202
202
  "zh": "每条消息先判断是什么类型、要多深的思考,据此给出一行提示;可选按判定设定本回合的思考等级。",
203
- "en": "Classifies each message and how much thinking it needs, then gives a one-line hint; optionally sets the turn's thinking level.",
203
+ "en": "Classifies each message and how much thinking it needs, then gives the model a one-line hint; it can also set the turn's thinking level.",
204
204
  "zh-TW": "為每則訊息分類,並判斷它需要多深的思考,據此給出一行提示;也可以依判定結果設定這一輪的思考強度。",
205
205
  "ja-JP": "各メッセージの種類と必要な思考の深さを分類し、1 行のヒントを渡します。オプションで、そのターンの思考レベルも設定できます。",
206
206
  "ko-KR": "각 메시지의 유형과 필요한 사고의 깊이를 분류한 뒤 한 줄 힌트를 줍니다. 옵션을 켜면 해당 턴의 사고 수준도 정합니다.",
@@ -235,7 +235,7 @@
235
235
  },
236
236
  "summary": {
237
237
  "zh": "每条消息判断一次:它是新任务、新的硬约束、对做法的纠正、新的子目标,还是什么都没变。只有变了才让模型重写任务帧。",
238
- "en": "Asks of each message: a new task, a new hard constraint, a correction, a new subgoal, or no change. Only a change has a model rewrite the task frame.",
238
+ "en": "Classifies each message as a new task, a new hard constraint, a correction, a new subgoal or no change. Only a change makes a model rewrite the task frame.",
239
239
  "zh-TW": "每則訊息判斷一次:它是新任務、新的硬性約束、對做法的糾正、新的子目標,還是什麼都沒變。只有變了才讓模型重寫任務框架。",
240
240
  "ja-JP": "メッセージごとに、新しいタスク、新しい制約、訂正、新しいサブ目標、変更なしのどれにあたるかを判定します。変更があったときだけ、モデルがタスクフレームを書き直します。",
241
241
  "ko-KR": "메시지마다 새 작업인지, 새 제약 조건인지, 정정인지, 새 하위 목표인지, 아니면 바뀐 것이 없는지 묻습니다. 바뀐 것이 있을 때만 모델이 작업 프레임을 다시 씁니다.",
@@ -270,7 +270,7 @@
270
270
  },
271
271
  "summary": {
272
272
  "zh": "任务进行中你又发来一句话:判断是要立刻打断,还是等这一步做完再处理。",
273
- "en": "A message that arrives while the agent works: interrupt now, or handle it after the current step.",
273
+ "en": "For a message that arrives while the agent is working: interrupt now, or handle it after the current step.",
274
274
  "zh-TW": "代理工作時你又傳來一則訊息:判斷是要立刻打斷,還是等這一步做完再處理。",
275
275
  "ja-JP": "エージェントの作業中に届いたメッセージについて、すぐに中断するか、現在のステップが終わってから対応するかを判定します。",
276
276
  "ko-KR": "에이전트가 작업하는 중에 메시지가 도착하면, 지금 바로 작업을 중단할지 현재 단계를 마친 뒤 처리할지 판정합니다.",
@@ -340,7 +340,7 @@
340
340
  },
341
341
  "summary": {
342
342
  "zh": "能力包、MCP 服务器等装着但默认不露,任务需要时才打开,对应的进程也到那时才启动。",
343
- "en": "Packs and MCP servers are installed but hidden, opened only when a task needs them; their processes start then.",
343
+ "en": "Packs and MCP servers stay installed but hidden until a task needs them; their processes start only then.",
344
344
  "zh-TW": "能力包和 MCP 伺服器已經裝好但預設隱藏,任務需要時才開啟,對應的程序也到那時才啟動。",
345
345
  "ja-JP": "ケイパビリティパックや MCP サーバーはインストールされていても非表示にしておき、タスクで必要になったときだけ開きます。プロセスもそのときに起動します。",
346
346
  "ko-KR": "기능 확장 팩과 MCP 서버는 설치해 두되 숨겨 두었다가 작업에 필요할 때만 엽니다. 해당 프로세스도 그때 시작됩니다.",
@@ -375,7 +375,7 @@
375
375
  },
376
376
  "summary": {
377
377
  "zh": "很长的工具输出分块判断,只让与任务有关的部分进入上下文,其余归档并留下指针。",
378
- "en": "Long tool output is judged in chunks; only what matters enters the context, the rest is archived with a pointer.",
378
+ "en": "Judges long tool output in chunks; only what matters enters the context, and the rest is archived behind a pointer.",
379
379
  "zh-TW": "很長的工具輸出會分塊判斷,只讓重要的部分進入上下文,其餘歸檔並留下指標。",
380
380
  "ja-JP": "長いツール出力はチャンクごとに判定し、必要な部分だけをコンテキストに入れます。残りはアーカイブし、参照先を残します。",
381
381
  "ko-KR": "긴 도구 출력을 청크 단위로 판정해 중요한 부분만 컨텍스트에 넣고, 나머지는 보관한 뒤 그 위치를 가리키는 포인터를 남깁니다.",
@@ -410,7 +410,7 @@
410
410
  },
411
411
  "summary": {
412
412
  "zh": "测试输出里完全重复的失败段落只留一份;可再让判定器挑出必要的部分。",
413
- "en": "Exact repeats in test output are kept once; optionally the judge selects what is needed from the rest.",
413
+ "en": "Keeps one copy of exact repeats in test output; optionally, the judge picks what's needed from the rest.",
414
414
  "zh-TW": "測試輸出裡完全重複的段落只留一份;也可以再讓判定器從其餘部分挑出需要的內容。",
415
415
  "ja-JP": "テスト出力の完全な重複は 1 回分だけ残します。さらに、残りから必要な部分を判定器に選ばせることもできます。",
416
416
  "ko-KR": "테스트 출력에서 완전히 똑같이 반복되는 부분은 한 번만 남깁니다. 선택에 따라 나머지에서 필요한 부분을 판정기가 고르게 할 수도 있습니다.",
@@ -445,7 +445,7 @@
445
445
  },
446
446
  "summary": {
447
447
  "zh": "上下文用量越过阈值时,把已经用不上的旧工具结果在发出的请求里换成一行占位。",
448
- "en": "When context use crosses a threshold, stale tool results are replaced by one-line tombstones in outgoing requests.",
448
+ "en": "When context use crosses a threshold, replaces stale tool results with one-line placeholders in outgoing requests.",
449
449
  "zh-TW": "上下文用量超過門檻時,在送出的請求裡把用不上的舊工具結果換成一行佔位文字。",
450
450
  "ja-JP": "コンテキスト使用量がしきい値を超えると、送信するリクエスト内の古いツール結果を 1 行のプレースホルダーに置き換えます。",
451
451
  "ko-KR": "컨텍스트 사용량이 임계값을 넘으면, 보내는 요청에서 오래된 도구 결과를 한 줄짜리 자리 표시로 바꿉니다.",
@@ -480,7 +480,7 @@
480
480
  },
481
481
  "summary": {
482
482
  "zh": "压缩时不让模型写摘要,而是逐段判断保留还是裁掉,原文保真。",
483
- "en": "Compaction keeps or prunes passages by judgment instead of asking a model for a summary.",
483
+ "en": "When compacting, the judge keeps or prunes each passage instead of having a model write a summary.",
484
484
  "zh-TW": "壓縮時逐段判斷要保留還是裁剪原文,而不是請模型寫摘要。",
485
485
  "ja-JP": "モデルに要約を書かせる代わりに、判定によって元の文章を残すか削るかを決めて圧縮します。",
486
486
  "ko-KR": "모델에게 요약을 요청하는 대신, 판정에 따라 구절을 유지하거나 잘라내며 압축합니다.",
@@ -550,7 +550,7 @@
550
550
  },
551
551
  "summary": {
552
552
  "zh": "判断你的一句话是不是在纠正代理、或立下以后都要守的规矩;是就记成一条经验。",
553
- "en": "Decides whether a message of yours corrects the agent or sets a rule for later; if so, it becomes a lesson.",
553
+ "en": "Decides whether your message corrects the agent or sets a rule for the future; if so, saves it as a lesson.",
554
554
  "zh-TW": "判斷你的一句話是不是在糾正代理,或是立下以後都要守的規矩;是的話就記成一條經驗。",
555
555
  "ja-JP": "あなたのメッセージが、エージェントへの訂正か、今後守るルールの設定かを判定します。そうであれば教訓として記録します。",
556
556
  "ko-KR": "사용자의 메시지가 에이전트를 바로잡는 것인지, 앞으로 지킬 규칙을 정하는 것인지 판정하고, 그렇다면 교훈으로 남깁니다.",
@@ -570,7 +570,7 @@
570
570
  "feature": "memory",
571
571
  "title": {
572
572
  "zh": "从脱困中学",
573
- "en": "Learning from a way out",
573
+ "en": "Learning from getting unstuck",
574
574
  "zh-TW": "從脫困中學",
575
575
  "ja-JP": "抜け道から学ぶ",
576
576
  "ko-KR": "탈출구에서 배우기",
@@ -585,7 +585,7 @@
585
585
  },
586
586
  "summary": {
587
587
  "zh": "代理原地打转或跑偏过、这一回合却以通过的检查或达成的目标收尾时,判断最后奏效的办法是不是换了一种;是就记下这个坑和绕过办法。每回合最多问一次。",
588
- "en": "When the agent went in circles or off course and the turn still ended with a passing check or the goal met, judges whether what finally worked was a different approach; if so, keeps the trap and the way around it. Asked at most once a turn.",
588
+ "en": "When the agent went in circles or off course but the turn still ended with a passing check or the goal met, judges whether what finally worked was a different approach; if so, saves the pitfall and the workaround as a lesson. Asked at most once per turn.",
589
589
  "zh-TW": "代理曾原地打轉或偏離方向,這一輪卻以通過的檢查或達成的目標收尾時,判斷最後奏效的辦法是不是換了一種;是的話就記下這個坑和繞過辦法。每輪最多問一次。",
590
590
  "ja-JP": "エージェントが堂々巡りしたり目標からそれたりしたのに、ターンがチェックの通過や目標の達成で終わったとき、最後にうまくいったのが別のやり方だったかを判定します。そうであれば、その落とし穴と回避策を記録します。1 ターンに最大 1 回だけ問い合わせます。",
591
591
  "ko-KR": "에이전트가 제자리를 맴돌거나 옆길로 샜는데도 턴이 통과한 검사나 달성한 목표로 끝났을 때, 마지막에 통한 방법이 다른 접근이었는지 판정합니다. 그렇다면 그 함정과 우회 방법을 기록합니다. 턴마다 최대 한 번만 묻습니다.",
@@ -620,7 +620,7 @@
620
620
  },
621
621
  "summary": {
622
622
  "zh": "模型自己想记下的经验、子代理报告里标出的经验,判断是以后还用得上、只关这一次,还是提示词或项目文件里早就有。只存以后用得上的。",
623
- "en": "For a lesson the model keeps with the remember tool, or a Lesson: line in a sub-agent's report: useful again later, a one-off, or known already from the prompt or the project files. Only the first kind is kept.",
623
+ "en": "For a lesson the model saves with the remember tool, or a Lesson: line in a subagent's report: will it help again, is it a one-off or is it already in the prompt or project files? Only lessons that will help again are kept.",
624
624
  "zh-TW": "模型用 remember 工具想記下的經驗,或子代理報告裡以 Lesson: 標出的經驗:判斷它以後還用得上、只跟這一次有關,還是提示詞或專案檔案裡早就有了。只存以後用得上的。",
625
625
  "ja-JP": "モデルが remember ツールで残そうとする教訓や、サブエージェントの報告にある Lesson: 行について、今後も役立つか、その場限りか、プロンプトやプロジェクトのファイルからすでにわかることかを判定します。残すのは今後も役立つものだけです。",
626
626
  "ko-KR": "모델이 remember 도구로 남기려는 교훈이나 하위 에이전트 보고의 Lesson: 줄을 두고, 나중에 다시 쓸모 있는지, 이번 한 번뿐인지, 프롬프트나 프로젝트 파일로 이미 아는 것인지 판정합니다. 나중에 쓸모 있는 것만 남깁니다.",
@@ -655,7 +655,7 @@
655
655
  },
656
656
  "summary": {
657
657
  "zh": "新经验落盘前,和最像的几条已有经验逐一比:同一条就不重复存,说得更准的替代旧的,互相矛盾时以你最新的说法为准。",
658
- "en": "Before a new lesson is stored, compares it with the most similar kept ones: the same lesson is not kept twice, a more precise one replaces the old, and on a contradiction your latest word wins.",
658
+ "en": "Before saving a new lesson, compares it with the most similar existing ones: a duplicate isn't saved twice, a more precise lesson replaces the older one, and when two contradict, your latest word wins.",
659
659
  "zh-TW": "新經驗存下之前,先和最像的幾條已有經驗逐一比對:同一條就不重複存,說得更準的取代舊的,互相矛盾時以你最新的說法為準。",
660
660
  "ja-JP": "新しい教訓を保存する前に、最も似ている既存の教訓と 1 つずつ比べます。同じ教訓は二重に残さず、より正確なものが古いものを置き換え、矛盾する場合はあなたの最新の言葉を優先します。",
661
661
  "ko-KR": "새 교훈을 저장하기 전에 가장 비슷한 기존 교훈들과 하나씩 비교합니다. 같은 교훈은 두 번 저장하지 않고, 더 정확한 것이 옛것을 대체하며, 서로 모순되면 사용자의 가장 최근 말을 따릅니다.",
@@ -704,6 +704,41 @@
704
704
  "fa-IR": "در پایان هر نوبت داوری می‌کند که آیا به تجربه‌هایی که به آن نوبت آورده شده عمل شده است یا نه. تجربه‌ای که بارها فراخوانی شده و هرگز به آن عمل نشده کنار گذاشته می‌شود."
705
705
  }
706
706
  },
707
+ {
708
+ "id": "skill.capture",
709
+ "group": "context",
710
+ "feature": "procedures",
711
+ "title": {
712
+ "zh": "把做法起草成技能",
713
+ "en": "Drafting a procedure as a skill",
714
+ "zh-TW": "把做法起草成技能",
715
+ "ja-JP": "手順をスキルとして下書き",
716
+ "ko-KR": "절차를 스킬로 초안 작성",
717
+ "de-DE": "Ein Vorgehen als Skill entwerfen",
718
+ "fr-FR": "Rédiger une procédure comme skill",
719
+ "es-ES": "Redactar un procedimiento como skill",
720
+ "pt-BR": "Rascunhar um procedimento como skill",
721
+ "ru-RU": "Черновик навыка из процедуры",
722
+ "uk-UA": "Чернетка навички з процедури",
723
+ "tr-TR": "Bir yordamı beceri olarak taslağa dökme",
724
+ "fa-IR": "پیش‌نویس یک روال به‌صورت مهارت"
725
+ },
726
+ "summary": {
727
+ "zh": "一次步骤多、跑过命令、以成功收尾的运行结束后,判断它是不是一套可复用的做法(同样的步骤能做下一件同类的事),还是只为这一件事、或者已有技能覆盖了。是做法就由写作模型起草成技能,放进待审区,等你 /skills accept 才安装。每回合最多问一次,普通回合不问。",
728
+ "en": "After a long, successful run that ran commands, judges whether it was a reusable procedure (the same steps would handle the next task of its kind), a one-off, or already covered by an installed skill. The writer model drafts a procedure as a skill, which waits until you install it with /skills accept. Asked at most once per turn, and never for an ordinary turn.",
729
+ "zh-TW": "一次步驟多、跑過指令、以成功收尾的執行結束後,判斷它是不是一套可重複使用的做法(同樣的步驟能做下一件同類的事),還是只為這一件事、或已有技能涵蓋了。是做法就由寫作模型起草成技能,放進待審區,等你 /skills accept 才安裝。每回合最多問一次,一般回合不問。",
730
+ "ja-JP": "コマンドを実行し、うまく終わった長い実行のあとで、それが再利用できる手順(同じ手順で次の同種の作業ができる)か、この作業だけのものか、インストール済みのスキルでカバーされているかを判定します。手順であればライターモデルがスキルとして下書きし、/skills accept でインストールするまで保留します。1 ターンに最大 1 回、普通のターンでは尋ねません。",
731
+ "ko-KR": "명령을 실행하고 잘 끝난 긴 실행 뒤에, 그것이 재사용할 수 있는 절차(같은 단계로 다음 같은 종류의 작업을 할 수 있음)인지, 이번 작업만을 위한 것인지, 설치된 스킬이 이미 다루는지 판정합니다. 절차라면 작성 모델이 스킬로 초안을 쓰고, /skills accept로 설치할 때까지 대기합니다. 턴마다 최대 한 번, 평범한 턴에서는 묻지 않습니다.",
732
+ "de-DE": "Nach einem langen Lauf, der Befehle ausgeführt hat und gut endete, wird beurteilt, ob er ein wiederverwendbares Vorgehen war (dieselben Schritte erledigen die nächste Aufgabe dieser Art), Arbeit nur für diese Aufgabe oder durch einen installierten Skill abgedeckt. Ein Vorgehen wird vom Schreibmodell als Skill entworfen und wartet, bis Sie es mit /skills accept installieren. Höchstens einmal pro Zug gefragt, nie bei einem gewöhnlichen Zug.",
733
+ "fr-FR": "Après une longue exécution qui a lancé des commandes et s'est bien terminée, juge s'il s'agissait d'une procédure réutilisable (les mêmes étapes feraient la prochaine tâche du même genre), d'un travail pour cette seule tâche, ou de quelque chose déjà couvert par un skill installé. Une procédure est rédigée comme skill par le modèle rédacteur et attend que vous l'installiez avec /skills accept. Posée au plus une fois par tour, jamais pour un tour ordinaire.",
734
+ "es-ES": "Tras una ejecución larga que lanzó comandos y terminó bien, juzga si fue un procedimiento reutilizable (los mismos pasos harían la próxima tarea de ese tipo), trabajo solo para esta tarea, o algo ya cubierto por un skill instalado. Un procedimiento se redacta como skill con el modelo redactor y espera hasta que lo instales con /skills accept. Se pregunta como mucho una vez por turno, nunca en un turno corriente.",
735
+ "pt-BR": "Depois de uma execução longa que rodou comandos e terminou bem, julga se foi um procedimento reutilizável (os mesmos passos fariam a próxima tarefa desse tipo), trabalho só para esta tarefa, ou algo já coberto por um skill instalado. Um procedimento é rascunhado como skill pelo modelo redator e espera até você instalá-lo com /skills accept. Perguntado no máximo uma vez por turno, nunca num turno comum.",
736
+ "ru-RU": "После долгого прогона, который запускал команды и закончился успешно, оценивает, была ли это повторяемая процедура (те же шаги выполнят следующую задачу такого рода), работа только для этой задачи или то, что уже покрывает установленный навык. Процедуру модель-писатель оформляет как черновик навыка, и он ждёт, пока вы не установите его через /skills accept. Спрашивается не чаще раза за ход и никогда в обычном ходе.",
737
+ "uk-UA": "Після довгого прогону, який запускав команди й закінчився успішно, оцінює, чи це була повторювана процедура (ті самі кроки виконають наступне завдання такого роду), робота лише для цього завдання чи те, що вже покриває встановлена навичка. Процедуру модель-письменник оформлює як чернетку навички, і вона чекає, доки ви не встановите її через /skills accept. Питається не частіше разу за хід і ніколи у звичайному ході.",
738
+ "tr-TR": "Komut çalıştıran ve iyi biten uzun bir çalışmanın ardından, bunun yeniden kullanılabilir bir yordam mı (aynı adımlar aynı türden bir sonraki işi yapar), yalnızca bu işe özgü mü, yoksa kurulu bir becerinin zaten kapsadığı bir şey mi olduğuna karar verir. Yordam, yazıcı model tarafından beceri olarak taslağa dökülür ve siz /skills accept ile kurana kadar bekler. Her turda en fazla bir kez sorulur, sıradan bir turda hiç sorulmaz.",
739
+ "fa-IR": "پس از یک اجرای طولانی که فرمان اجرا کرده و خوب تمام شده، داوری می‌کند که آیا یک روال قابل‌استفادهٔ دوباره بوده (همان گام‌ها کار بعدی از همین نوع را انجام می‌دهند)، کاری فقط برای همین مورد، یا چیزی که یک مهارت نصب‌شده آن را پوشش می‌دهد. روال را مدل نویسنده به‌صورت پیش‌نویس مهارت می‌نویسد و تا وقتی با /skills accept نصبش نکنید منتظر می‌ماند. هر نوبت حداکثر یک بار پرسیده می‌شود و در نوبت‌های معمولی هرگز."
740
+ }
741
+ },
707
742
  {
708
743
  "id": "cache.warming",
709
744
  "group": "context",
@@ -725,7 +760,7 @@
725
760
  },
726
761
  "summary": {
727
762
  "zh": "判断你是否很快会回来,以决定要不要在提示词缓存过期前续一下。",
728
- "en": "Guesses whether you will be back soon, to decide on refreshing the prompt cache before it expires.",
763
+ "en": "Guesses whether you'll be back soon, to decide whether to refresh the prompt cache before it expires.",
729
764
  "zh-TW": "判斷你是否很快會回來,以決定要不要在提示快取過期前先續上。",
730
765
  "ja-JP": "あなたがすぐに戻ってくるかを予測し、期限が切れる前にプロンプトキャッシュを更新するかを決めます。",
731
766
  "ko-KR": "사용자가 곧 돌아올지 추측해, 프롬프트 캐시가 만료되기 전에 갱신할지 정합니다.",
@@ -760,7 +795,7 @@
760
795
  },
761
796
  "summary": {
762
797
  "zh": "规则先挑出看起来危险的命令,判定器只负责确认「这是不是你要求的」;拿不准就问你。",
763
- "en": "Rules flag dangerous-looking commands; the judge only vouches that you asked for it. Unsure means asking you.",
798
+ "en": "Rules flag dangerous-looking commands; the judge only confirms that you asked for them. If it's unsure, mu asks you.",
764
799
  "zh-TW": "規則先挑出看起來危險的指令,判定器只負責確認「這是不是你要求的」;拿不準就問你。",
765
800
  "ja-JP": "危険そうなコマンドはルールで検出し、判定器はそれがあなたの依頼したものかどうかだけを見極めます。確信が持てなければ、あなたに確認します。",
766
801
  "ko-KR": "규칙이 위험해 보이는 명령을 골라내고, 판정기는 사용자가 요청한 것인지만 확인합니다. 확실하지 않으면 사용자에게 묻습니다.",
@@ -795,7 +830,7 @@
795
830
  },
796
831
  "summary": {
797
832
  "zh": "在「Jev 审批」模式下,命令、项目外的改动、对外操作和子代理先交给 Jev:它确信这是任务需要、也是你会预期的做法才放行,否则在状态栏问你。",
798
- "en": "In Jev-approves mode, commands, changes outside the project, outside actions and sub-agents go to Jev first: only what it is sure the task needs, done as you would expect, runs without you; anything else asks you in the status bar.",
833
+ "en": "In Jev approves mode, commands, changes outside the project, external actions and subagents go to Jev first. Only what Jev is sure the task needs, done the way you'd expect, runs without asking; anything else asks you in the status bar.",
799
834
  "zh-TW": "在「Jev 審批」模式下,指令、專案外的改動、對外操作和子代理都先交給 Jev:它確信是任務需要、做法也符合你預期的,才不問你直接執行;其餘都會在狀態列問你。",
800
835
  "ja-JP": "「Jev が承認」モードでは、コマンド、プロジェクト外の変更、外部への操作、サブエージェントをまず Jev が審査します。タスクに必要で、あなたが期待するやり方だと確信できるものだけをそのまま実行し、それ以外はステータスバーであなたに確認します。",
801
836
  "ko-KR": "Jev 승인 모드에서는 명령, 프로젝트 밖의 변경, 외부 작업, 하위 에이전트 실행이 먼저 Jev를 거칩니다. 작업에 필요하고 사용자가 예상하는 방식이라고 Jev가 확신하는 것만 사용자 확인 없이 실행되며, 그 밖의 것은 상태 표시줄에서 사용자에게 묻습니다.",
@@ -830,7 +865,7 @@
830
865
  },
831
866
  "summary": {
832
867
  "zh": "你说过「先别改 X」「不要加依赖」这类话会原文记在任务帧里;每次要改动东西之前,逐条判断这次调用是否违反,确信违反才拦下,并用你的原话告诉模型。",
833
- "en": "What you ruled out is kept word for word in the task frame; before a call that changes something, each constraint is checked, and only a confident violation is stopped, in your own words.",
868
+ "en": "What you ruled out is kept verbatim in the task frame. Before any call that changes something, each constraint is checked; only a confident violation is blocked, and the model is told in your own words.",
834
869
  "zh-TW": "你說過的「先別改 X」「不要新增相依套件」這類話,會一字不差地記在任務框架裡;每次要改動東西之前,逐條檢查這次呼叫有沒有違反,確信違反才攔下,並用你的原話說明。",
835
870
  "ja-JP": "あなたが禁止したことは、言葉どおりにタスクフレームに記録されます。何かを変更する呼び出しの前に制約を 1 つずつ確認し、違反が確実な場合だけ止めて、あなた自身の言葉でモデルに伝えます。",
836
871
  "ko-KR": "사용자가 금지한 것은 작업 프레임에 원문 그대로 보관됩니다. 무언가를 바꾸는 호출 전에 제약 조건을 하나씩 확인하고, 위반이 확실할 때만 사용자가 한 말 그대로 알리며 막습니다.",
@@ -844,13 +879,83 @@
844
879
  "fa-IR": "آنچه منع کرده‌اید، کلمه‌به‌کلمه در چارچوب وظیفه نگه داشته می‌شود؛ پیش از هر فراخوانی که چیزی را تغییر می‌دهد، تک‌تک محدودیت‌ها بررسی می‌شوند و فقط نقضی که با اطمینان تشخیص داده شود متوقف می‌شود، با همان کلمات خود شما."
845
880
  }
846
881
  },
882
+ {
883
+ "id": "tool.injection",
884
+ "group": "tools",
885
+ "feature": "injection",
886
+ "title": {
887
+ "zh": "外来内容里的指令",
888
+ "en": "Instructions in outside content",
889
+ "zh-TW": "外來內容裡的指令",
890
+ "ja-JP": "外部コンテンツ内の指示",
891
+ "ko-KR": "외부 콘텐츠 속 지시",
892
+ "de-DE": "Anweisungen in fremden Inhalten",
893
+ "fr-FR": "Instructions dans les contenus externes",
894
+ "es-ES": "Instrucciones en contenido externo",
895
+ "pt-BR": "Instruções em conteúdo externo",
896
+ "ru-RU": "Инструкции во внешнем содержимом",
897
+ "uk-UA": "Інструкції в зовнішньому вмісті",
898
+ "tr-TR": "Dış içerikteki talimatlar",
899
+ "fa-IR": "دستورها در محتوای بیرونی"
900
+ },
901
+ "summary": {
902
+ "zh": "网页、搜索结果、MCP 服务器返回的内容,以及 shell 命令从别的机器取回的内容(curl、gh issue view),模型读到之前先过一遍:哪一段是写给 AI 的指令(让它忽略规则、交出数据、跑命令,或借一个链接把对话带出去)。这样的段落被扣下,换成一行说明。Jev 没答上来时,只扣下明显的注入用语。子代理读到的内容里有段落被扣下时,它的报告交回时前面带一句警告。",
903
+ "en": "Before the model reads a web page, search results, an MCP server's response or what a shell command fetched from another machine (curl, gh issue view), checks which passages carry instructions aimed at an AI (to ignore rules, hand over data, run commands or leak the conversation through a link). Those passages are withheld and replaced with a one-line note. When Jev doesn't answer, only obvious injection phrases are withheld. If a subagent had passages withheld from what it read, its report comes back with a warning.",
904
+ "zh-TW": "網頁、搜尋結果、MCP 伺服器回傳的內容,以及 shell 指令從別的機器取回的內容(curl、gh issue view),在模型讀到之前先過一遍:哪一段是寫給 AI 的指令(叫它忽略規則、交出資料、執行指令,或藉一個連結把對話帶出去)。這樣的段落會被扣下,換成一行說明。Jev 沒答上來時,只扣下明顯的注入用語。子代理讀到的內容裡有段落被扣下時,它的報告交回時前面會附一句警告。",
905
+ "ja-JP": "モデルが Web ページ、検索結果、MCP サーバーの応答、またはシェルコマンドが別のマシンから取得した内容(curl、gh issue view)を読む前に確認します。どの段落が AI に向けた指示(ルールを無視させる、データを渡させる、コマンドを実行させる、リンク経由で会話を外部へ持ち出させる)を含むか。該当する段落は差し止め、1 行の説明に置き換えます。Jev が答えないときは、明らかなインジェクション表現だけを差し止めます。読んだ内容から段落が差し止められたサブエージェントの報告には、警告が付いて返されます。",
906
+ "ko-KR": "모델이 웹 페이지, 검색 결과, MCP 서버의 응답, 또는 셸 명령이 다른 컴퓨터에서 가져온 내용(curl, gh issue view)을 읽기 전에 먼저 살펴봅니다. 어떤 단락이 AI를 겨냥한 지시(규칙 무시, 데이터 넘기기, 명령 실행, 링크로 대화를 밖으로 빼내기)를 담고 있는지. 그런 단락은 보류하고 한 줄 안내로 바꿉니다. Jev가 답하지 못하면 명백한 주입 문구만 보류합니다. 읽은 내용에서 단락이 보류된 하위 에이전트의 보고서는 경고와 함께 돌아옵니다.",
907
+ "de-DE": "Bevor das Modell eine Webseite, Suchergebnisse, die Antwort eines MCP-Servers oder das liest, was ein Shell-Befehl von einem anderen Rechner geholt hat (curl, gh issue view): Welche Abschnitte enthalten Anweisungen an eine KI (Regeln ignorieren, Daten herausgeben, Befehle ausführen oder das Gespräch über einen Link nach außen tragen)? Diese werden zurückgehalten und durch einen einzeiligen Hinweis ersetzt. Antwortet Jev nicht, werden nur eindeutige Injektionsformulierungen zurückgehalten. Ein Sub-Agent, dem beim Lesen Abschnitte zurückgehalten wurden, gibt seinen Bericht mit einer Warnung zurück.",
908
+ "fr-FR": "Avant que le modèle lise une page web, des résultats de recherche, la réponse d'un serveur MCP ou ce qu'une commande shell a récupéré sur une autre machine (curl, gh issue view) : quels passages contiennent des instructions destinées à une IA (ignorer les règles, livrer des données, exécuter des commandes, ou faire sortir la conversation par un lien) ? Ces passages sont retenus et remplacés par une note d'une ligne. Si Jev ne répond pas, seules les formulations d'injection évidentes sont retenues. Un sous-agent dont des passages lus ont été retenus rend son rapport précédé d'un avertissement.",
909
+ "es-ES": "Antes de que el modelo lea una página web, resultados de búsqueda, la respuesta de un servidor MCP o lo que un comando de shell trajo de otra máquina (curl, gh issue view): ¿qué pasajes llevan instrucciones dirigidas a una IA (ignorar reglas, entregar datos, ejecutar comandos o sacar la conversación a través de un enlace)? Esos pasajes se retienen y se sustituyen por una nota de una línea. Si Jev no responde, solo se retienen las frases de inyección evidentes. Un subagente al que se le retuvieron pasajes de lo que leyó entrega su informe con una advertencia.",
910
+ "pt-BR": "Antes de o modelo ler uma página web, resultados de busca, a resposta de um servidor MCP ou o que um comando de shell trouxe de outra máquina (curl, gh issue view): quais trechos trazem instruções dirigidas a uma IA (ignorar regras, entregar dados, executar comandos ou levar a conversa para fora por um link)? Esses trechos são retidos e substituídos por uma nota de uma linha. Se o Jev não responder, só as frases de injeção evidentes são retidas. Um subagente que teve trechos retidos do que leu devolve o relatório com um aviso.",
911
+ "ru-RU": "Прежде чем модель прочтёт веб-страницу, результаты поиска, ответ MCP-сервера или то, что shell-команда получила с другой машины (curl, gh issue view): какие фрагменты содержат инструкции, адресованные ИИ (игнорировать правила, выдать данные, выполнить команды или вынести разговор наружу через ссылку)? Такие фрагменты задерживаются и заменяются однострочной пометкой. Если Jev не ответил, задерживаются только явные фразы-инъекции. Субагент, у которого из прочитанного были задержаны фрагменты, сдаёт отчёт с предупреждением.",
912
+ "uk-UA": "Перш ніж модель прочитає вебсторінку, результати пошуку, відповідь MCP-сервера чи те, що shell-команда отримала з іншої машини (curl, gh issue view): які фрагменти містять інструкції, адресовані ШІ (ігнорувати правила, видати дані, виконати команди чи винести розмову назовні через посилання)? Такі фрагменти затримуються й замінюються однорядковою приміткою. Якщо Jev не відповів, затримуються лише явні фрази-ін'єкції. Субагент, у якого з прочитаного були затримані фрагменти, здає звіт із попередженням.",
913
+ "tr-TR": "Model bir web sayfasını, arama sonuçlarını, bir MCP sunucusunun yanıtını veya bir kabuk komutunun başka bir makineden getirdiğini (curl, gh issue view) okumadan önce: hangi bölümler bir yapay zekâya yönelik talimat içeriyor (kuralları yok saymak, veri vermek, komut çalıştırmak veya konuşmayı bir bağlantıyla dışarı taşımak)? Bu bölümler alıkonur ve tek satırlık bir notla değiştirilir. Jev yanıt vermezse yalnızca açık enjeksiyon ifadeleri alıkonur. Okuduklarından bölümler alıkonan bir alt ajan, raporunu bir uyarıyla teslim eder.",
914
+ "fa-IR": "پیش از آنکه مدل یک صفحهٔ وب، نتایج جست‌وجو، پاسخ یک سرور MCP یا آنچه یک فرمان shell از ماشین دیگری آورده (curl، gh issue view) را بخواند: کدام بخش‌ها دستورهایی خطاب به هوش مصنوعی دارند (نادیده گرفتن قوانین، تحویل داده، اجرای فرمان، یا بیرون بردن گفت‌وگو با یک پیوند)؟ این بخش‌ها نگه داشته می‌شوند و جایشان یک یادداشت یک‌خطی می‌آید. اگر Jev پاسخ ندهد، فقط عبارت‌های آشکار تزریق نگه داشته می‌شوند. زیرعاملی که بخش‌هایی از خوانده‌هایش نگه داشته شده، گزارشش را با یک هشدار تحویل می‌دهد."
915
+ }
916
+ },
917
+ {
918
+ "id": "tool.description",
919
+ "group": "tools",
920
+ "feature": "injection",
921
+ "title": {
922
+ "zh": "MCP 工具说明里的私货",
923
+ "en": "Hidden instructions in MCP tool descriptions",
924
+ "zh-TW": "MCP 工具說明裡的私貨",
925
+ "ja-JP": "MCP ツールの説明に隠れた指示",
926
+ "ko-KR": "MCP 도구 설명에 숨은 지시",
927
+ "de-DE": "Versteckte Anweisungen in MCP-Werkzeugbeschreibungen",
928
+ "fr-FR": "Ordres cachés dans les descriptions d'outils MCP",
929
+ "es-ES": "Órdenes ocultas en las descripciones de herramientas MCP",
930
+ "pt-BR": "Ordens escondidas nas descrições de ferramentas MCP",
931
+ "ru-RU": "Скрытые указания в описаниях инструментов MCP",
932
+ "uk-UA": "Приховані вказівки в описах інструментів MCP",
933
+ "tr-TR": "MCP araç açıklamalarına gizlenmiş talimatlar",
934
+ "fa-IR": "دستورهای پنهان در توضیح ابزارهای MCP"
935
+ },
936
+ "summary": {
937
+ "zh": "MCP 服务器自己写工具说明,模型把它当工具列表的一部分来读。每个工具第一次出现、说明变了时问一次:这段说明是不是要 AI 做调用这个工具以外的事(读用不着的文件或密钥、把数据发到别处、改变它对待别的工具或你的方式、瞒着你)?是的话这个工具从列表里拿掉,调用也被拒绝,并告诉你。Jev 没答上来时,只按 <IMPORTANT> 块、「别告诉用户」这类明显标记处理。",
938
+ "en": "MCP servers write their own tool descriptions, and the model reads them as part of its tool list. Asked once per tool when it first appears and whenever its description changes: does the description ask the AI to do more than call this tool (read files or secrets it doesn't need, send data elsewhere, change how it treats other tools or you, hide something from you)? If so, the tool is removed from the list, calls to it are refused and you're told. When Jev gives no answer, only obvious markers such as an <IMPORTANT> block or \"do not tell the user\" count.",
939
+ "zh-TW": "MCP 伺服器自己寫工具說明,模型把它當成工具列表的一部分來讀。每個工具第一次出現、說明變了時問一次:這段說明是不是要 AI 做呼叫這個工具以外的事(讀用不著的檔案或金鑰、把資料送到別處、改變它對待別的工具或你的方式、瞞著你)?是的話,這個工具會從列表裡拿掉,呼叫也會被拒絕,並告訴你。Jev 沒答上來時,只按 <IMPORTANT> 區塊、「別告訴使用者」這類明顯標記處理。",
940
+ "ja-JP": "MCP サーバーはツールの説明を自分で書き、モデルはそれをツール一覧の一部として読みます。ツールが初めて現れたときと説明が変わったときに一度だけ確認します。その説明は、このツールを呼ぶこと以上のこと(不要なファイルや秘密情報を読む、データを別の場所へ送る、他のツールやあなたへの接し方を変える、あなたに隠しごとをする)を AI に求めていないか?求めていれば、そのツールは一覧から外され、呼び出しも拒否され、あなたに知らされます。Jev が答えないときは、<IMPORTANT> ブロックや「ユーザーに伝えるな」のような明らかな印だけで判断します。",
941
+ "ko-KR": "MCP 서버는 도구 설명을 직접 쓰고, 모델은 그것을 도구 목록의 일부로 읽습니다. 도구가 처음 나타날 때와 설명이 바뀔 때 한 번씩 묻습니다. 이 설명이 AI에게 이 도구를 호출하는 것 이상의 일(필요 없는 파일이나 비밀 읽기, 데이터를 다른 곳으로 보내기, 다른 도구나 당신을 대하는 방식 바꾸기, 당신에게 숨기기)을 요구하는가? 그렇다면 그 도구는 목록에서 빠지고, 호출도 거부되며, 당신에게 알려집니다. Jev가 답하지 못하면 <IMPORTANT> 블록이나 \"사용자에게 말하지 마라\" 같은 명백한 표시만 봅니다.",
942
+ "de-DE": "Ein MCP-Server schreibt die Beschreibungen seiner Werkzeuge selbst, und das Modell liest sie als Teil seiner Werkzeugliste. Einmal pro Werkzeug gefragt, wenn es zuerst erscheint und wenn sich seine Beschreibung ändert: Verlangt die Beschreibung von der KI mehr, als dieses Werkzeug aufzurufen (Dateien oder Geheimnisse lesen, die es nicht braucht, Daten anderswohin senden, ändern, wie sie mit anderen Werkzeugen oder mit Ihnen umgeht, Ihnen etwas verschweigen)? Dann wird das Werkzeug von der Liste genommen, Aufrufe werden abgelehnt, und Sie werden informiert. Antwortet Jev nicht, zählen nur eindeutige Merkmale wie ein <IMPORTANT>-Block oder „sag es dem Nutzer nicht\".",
943
+ "fr-FR": "Un serveur MCP écrit lui-même les descriptions de ses outils, et le modèle les lit comme une partie de sa liste d'outils. Posée une fois par outil, à sa première apparition et quand sa description change : la description demande-t-elle à l'IA plus que d'appeler cet outil (lire des fichiers ou des secrets dont il n'a pas besoin, envoyer des données ailleurs, changer sa façon de traiter les autres outils ou vous, vous cacher quelque chose) ? Si oui, l'outil est retiré de la liste, ses appels sont refusés, et vous êtes prévenu. Si Jev ne répond pas, seuls comptent des marqueurs évidents comme un bloc <IMPORTANT> ou « ne le dis pas à l'utilisateur ».",
944
+ "es-ES": "Un servidor MCP escribe las descripciones de sus propias herramientas, y el modelo las lee como parte de su lista de herramientas. Se pregunta una vez por herramienta, cuando aparece por primera vez y cuando cambia su descripción: ¿la descripción pide a la IA algo más que llamar a esta herramienta (leer archivos o secretos que no necesita, enviar datos a otro lugar, cambiar cómo trata a otras herramientas o a ti, ocultarte algo)? Si es así, la herramienta se quita de la lista, sus llamadas se rechazan y se te avisa. Si Jev no responde, solo cuentan marcas evidentes como un bloque <IMPORTANT> o «no se lo digas al usuario».",
945
+ "pt-BR": "Um servidor MCP escreve as descrições das próprias ferramentas, e o modelo as lê como parte da sua lista de ferramentas. Perguntado uma vez por ferramenta, quando ela aparece pela primeira vez e quando a descrição muda: a descrição pede à IA mais do que chamar esta ferramenta (ler arquivos ou segredos de que ela não precisa, enviar dados para outro lugar, mudar como trata outras ferramentas ou você, esconder algo de você)? Se sim, a ferramenta sai da lista, as chamadas a ela são recusadas e você é avisado. Se o Jev não responder, só contam marcas evidentes como um bloco <IMPORTANT> ou \"não conte ao usuário\".",
946
+ "ru-RU": "MCP-сервер сам пишет описания своих инструментов, и модель читает их как часть списка инструментов. Вопрос задаётся один раз для каждого инструмента, когда он впервые появляется и когда меняется его описание: требует ли описание от ИИ большего, чем вызвать этот инструмент (читать ненужные ему файлы или секреты, отправлять данные куда-то ещё, менять отношение к другим инструментам или к вам, что-то от вас скрывать)? Если да, инструмент убирается из списка, его вызовы отклоняются, и вам об этом сообщают. Если Jev не ответил, учитываются только явные признаки вроде блока <IMPORTANT> или «не говори пользователю».",
947
+ "uk-UA": "MCP-сервер сам пише описи своїх інструментів, і модель читає їх як частину списку інструментів. Питання ставиться один раз для кожного інструмента, коли він уперше з'являється і коли змінюється його опис: чи вимагає опис від ШІ більшого, ніж викликати цей інструмент (читати непотрібні йому файли чи секрети, надсилати дані деінде, змінювати ставлення до інших інструментів чи до вас, щось від вас приховувати)? Якщо так, інструмент прибирається зі списку, його виклики відхиляються, і вам про це повідомляють. Якщо Jev не відповів, враховуються лише явні ознаки на кшталт блоку <IMPORTANT> чи «не кажи користувачу».",
948
+ "tr-TR": "Bir MCP sunucusu kendi araçlarının açıklamalarını kendisi yazar ve model bunları araç listesinin bir parçası olarak okur. Her araç için, ilk göründüğünde ve açıklaması değiştiğinde bir kez sorulur: açıklama yapay zekâdan bu aracı çağırmaktan fazlasını mı istiyor (aracın gerek duymadığı dosyaları veya gizli bilgileri okumak, verileri başka bir yere göndermek, diğer araçlara ya da size davranışını değiştirmek, sizden bir şey saklamak)? Öyleyse araç listeden çıkarılır, çağrıları reddedilir ve size bildirilir. Jev yanıt vermezse yalnızca <IMPORTANT> bloğu veya \"kullanıcıya söyleme\" gibi açık işaretler dikkate alınır.",
949
+ "fa-IR": "هر سرور MCP توضیح ابزارهایش را خودش می‌نویسد و مدل آن‌ها را بخشی از فهرست ابزارهایش می‌خواند. برای هر ابزار یک بار، وقتی نخستین بار پیدا می‌شود و وقتی توضیحش عوض می‌شود، پرسیده می‌شود: آیا این توضیح از هوش مصنوعی چیزی بیش از فراخواندن همین ابزار می‌خواهد (خواندن فایل‌ها یا رازهایی که ابزار لازم ندارد، فرستادن داده به جای دیگر، تغییر رفتارش با ابزارهای دیگر یا با شما، پنهان کردن چیزی از شما)؟ اگر چنین باشد، ابزار از فهرست برداشته می‌شود، فراخوانی‌اش رد می‌شود و به شما خبر داده می‌شود. اگر Jev پاسخ ندهد، فقط نشانه‌های آشکار مانند یک بلوک <IMPORTANT> یا «به کاربر نگو» در نظر گرفته می‌شوند."
950
+ }
951
+ },
847
952
  {
848
953
  "id": "files.locate",
849
954
  "group": "tools",
850
955
  "feature": "locate",
851
956
  "title": {
852
957
  "zh": "文件定位",
853
- "en": "File location",
958
+ "en": "File locator",
854
959
  "zh-TW": "檔案定位",
855
960
  "ja-JP": "ファイルの特定",
856
961
  "ko-KR": "파일 찾기",
@@ -865,7 +970,7 @@
865
970
  },
866
971
  "summary": {
867
972
  "zh": "用一句话描述要找什么,判定器给候选文件排序,省去一次次搜索。",
868
- "en": "Describe what you are looking for; the judge ranks candidate files instead of a string of greps.",
973
+ "en": "Describe what you're looking for, and the judge ranks candidate files, saving a string of greps.",
869
974
  "zh-TW": "用一句話描述要找什麼,由判定器為候選檔案排序,省去一連串 grep。",
870
975
  "ja-JP": "探しているものを説明すると、grep を何度も繰り返す代わりに、判定器が候補ファイルを順位付けします。",
871
976
  "ko-KR": "찾는 대상을 설명하면, grep을 여러 번 실행하는 대신 판정기가 후보 파일의 순위를 매깁니다.",
@@ -879,6 +984,41 @@
879
984
  "fa-IR": "بگویید دنبال چه هستید؛ داور به‌جای یک رشته grep پشت سر هم، فایل‌های نامزد را رتبه‌بندی می‌کند."
880
985
  }
881
986
  },
987
+ {
988
+ "id": "judge.items",
989
+ "group": "tools",
990
+ "feature": "judgeItems",
991
+ "title": {
992
+ "zh": "批量判定(模型用的工具)",
993
+ "en": "Judging many items (a tool for the model)",
994
+ "zh-TW": "批次判定(模型用的工具)",
995
+ "ja-JP": "多数の項目の判定(モデル用ツール)",
996
+ "ko-KR": "여러 항목 판정(모델용 도구)",
997
+ "de-DE": "Viele Einträge beurteilen (ein Werkzeug für das Modell)",
998
+ "fr-FR": "Juger de nombreux éléments (un outil pour le modèle)",
999
+ "es-ES": "Juzgar muchos elementos (una herramienta para el modelo)",
1000
+ "pt-BR": "Julgar muitos itens (uma ferramenta para o modelo)",
1001
+ "ru-RU": "Оценка множества элементов (инструмент для модели)",
1002
+ "uk-UA": "Оцінювання багатьох елементів (інструмент для моделі)",
1003
+ "tr-TR": "Çok sayıda öğeyi değerlendirme (model için bir araç)",
1004
+ "fa-IR": "داوری دربارهٔ موارد زیاد (ابزاری برای مدل)"
1005
+ },
1006
+ "summary": {
1007
+ "zh": "模型要从几百个文件、日志行或发现里挑东西时,把一个是非题交给 Jev 逐条回答,每条给一个概率,不用自己一条条读。只在任务用得上时出现。是模型自己问的,所以影子模式下也照常回答;关闭则不能用。",
1008
+ "en": "When the model has to sort through hundreds of files, log lines or findings, it gives Jev one yes/no question to answer for each item, with a probability for each, instead of reading them all. Available only when a task needs it. Since the model is the one asking, it's answered in shadow mode too; off disables it.",
1009
+ "zh-TW": "模型要從幾百個檔案、日誌行或發現裡挑東西時,把一個是非題交給 Jev 逐條回答,每條給一個機率,不用自己一條條讀。只在任務用得上時出現。是模型自己問的,所以影子模式下也照常回答;關閉則不能用。",
1010
+ "ja-JP": "モデルが数百のファイル、ログ行、指摘から選び出す必要があるとき、はい/いいえの質問を 1 つ Jev に渡して項目ごとに答えさせ、それぞれに確率を付けます。すべてを自分で読む必要はありません。タスクで必要なときだけ現れます。モデル自身の質問なのでシャドーでも回答し、オフにすると使えません。",
1011
+ "ko-KR": "모델이 수백 개의 파일, 로그 줄, 발견 사항 중에서 골라야 할 때, 예/아니오 질문 하나를 Jev에게 넘겨 항목마다 답하게 하고 각각 확률을 붙입니다. 하나하나 직접 읽을 필요가 없습니다. 작업에 필요할 때만 나타납니다. 모델이 직접 묻는 것이라 섀도 모드에서도 답하며, 끄면 쓸 수 없습니다.",
1012
+ "de-DE": "Muss das Modell Hunderte Dateien, Logzeilen oder Befunde sortieren, übergibt es Jev eine Ja/Nein-Frage, die Jev für jeden Eintrag mit einer Wahrscheinlichkeit beantwortet, statt alle selbst zu lesen. Es erscheint nur, wenn eine Aufgabe es braucht. Das Modell hat gefragt, daher antwortet es auch im Schattenmodus; Aus weist es ab.",
1013
+ "fr-FR": "Quand le modèle doit trier des centaines de fichiers, de lignes de journal ou de constats, il confie à Jev une question oui/non à laquelle Jev répond élément par élément, avec une probabilité pour chacun, au lieu de tout lire. Il n'apparaît que lorsqu'une tâche en a besoin. C'est le modèle qui demande, il répond donc aussi en mode fantôme ; désactivé, il est refusé.",
1014
+ "es-ES": "Cuando el modelo tiene que clasificar cientos de archivos, líneas de registro o hallazgos, le pasa a Jev una pregunta de sí/no para que la responda elemento por elemento, con una probabilidad para cada uno, en lugar de leerlos todos. Solo aparece cuando una tarea lo necesita. Lo pide el modelo, así que también responde en modo sombra; desactivado, no se puede usar.",
1015
+ "pt-BR": "Quando o modelo precisa separar centenas de arquivos, linhas de log ou achados, ele passa ao Jev uma pergunta de sim/não para responder item por item, com uma probabilidade para cada um, em vez de ler tudo. Só aparece quando uma tarefa precisa. Quem pergunta é o modelo, então responde também no modo sombra; desligado, não pode ser usado.",
1016
+ "ru-RU": "Когда модели нужно разобрать сотни файлов, строк журнала или находок, она передаёт Jev один вопрос «да/нет», и Jev отвечает по каждому элементу с вероятностью, вместо того чтобы модель читала всё сама. Появляется только тогда, когда это нужно задаче. Спрашивает сама модель, поэтому отвечает и в теневом режиме; в выключенном недоступно.",
1017
+ "uk-UA": "Коли моделі треба розібрати сотні файлів, рядків журналу чи знахідок, вона передає Jev одне питання «так/ні», і Jev відповідає щодо кожного елемента з імовірністю, замість того щоб модель читала все сама. З'являється лише тоді, коли це потрібно завданню. Питає сама модель, тож відповідає й у тіньовому режимі; у вимкненому недоступно.",
1018
+ "tr-TR": "Model yüzlerce dosya, günlük satırı veya bulgu arasından seçim yapmak zorunda kaldığında, tek bir evet/hayır sorusunu Jev'e verir; Jev her öğeyi ayrı ayrı yanıtlar ve her birine bir olasılık verir, model hepsini kendisi okumaz. Yalnızca bir görev gerektirdiğinde görünür. Soran model olduğu için gölge modunda da yanıt verir; kapalıyken kullanılamaz.",
1019
+ "fa-IR": "وقتی مدل باید از میان صدها فایل، خط گزارش یا یافته چیزی را جدا کند، یک پرسش بله/خیر را به Jev می‌سپارد تا برای هر مورد جداگانه با یک احتمال پاسخ دهد، به‌جای آنکه همه را خودش بخواند. فقط وقتی کاری به آن نیاز دارد ظاهر می‌شود. پرسش از خود مدل است، پس در حالت سایه هم پاسخ می‌دهد؛ خاموش که باشد قابل استفاده نیست."
1020
+ }
1021
+ },
882
1022
  {
883
1023
  "id": "browser.step",
884
1024
  "group": "tools",
@@ -900,7 +1040,7 @@
900
1040
  },
901
1041
  "summary": {
902
1042
  "zh": "内置浏览器每一步「观察 → 一次判定 → 动作」,由判定器选择下一步操作和目标。",
903
- "en": "Each browser step is observe, one judgment, act: the judge picks the next operation and its target.",
1043
+ "en": "Each browser step is observe, judge once, act: the judge picks the next action and its target.",
904
1044
  "zh-TW": "瀏覽器的每一步都是「觀察 → 一次判定 → 動作」:由判定器選出下一個操作和目標。",
905
1045
  "ja-JP": "ブラウザーの各ステップは「観察 → 1 回の判定 → 操作」で進みます。次の操作とその対象は判定器が選びます。",
906
1046
  "ko-KR": "브라우저의 각 단계는 관찰, 한 번의 판정, 동작으로 이루어집니다. 판정기가 다음 조작과 그 대상을 고릅니다.",
@@ -935,7 +1075,7 @@
935
1075
  },
936
1076
  "summary": {
937
1077
  "zh": "每隔几步判断当前工作是否还在为目标服务,并用规则发现原地打转。",
938
- "en": "Every few steps, checks that the work still serves the goal; rules catch going in circles.",
1078
+ "en": "Every few steps, checks that the work still serves the goal; rules catch the agent going in circles.",
939
1079
  "zh-TW": "每隔幾步判斷目前的工作是否還在為目標服務,並用規則發現原地打轉。",
940
1080
  "ja-JP": "数ステップごとに、作業がまだ目標に沿っているかを確認します。堂々巡りはルールで検出します。",
941
1081
  "ko-KR": "몇 단계마다 작업이 아직 목표에 도움이 되는지 확인하고, 제자리를 맴도는 것은 규칙으로 잡아냅니다.",
@@ -970,7 +1110,7 @@
970
1110
  },
971
1111
  "summary": {
972
1112
  "zh": "监测发现原地打转或同一条命令连续失败时,判断这条路是不是死路;只有确信是死路且没有进展,才向你提议回到本回合开始前的检查点。它自己从不回退。",
973
- "en": "When the monitor sees the agent going in circles, or one command failing again and again, judges whether the approach is a dead end; only a confident dead end with no progress proposes going back to the turn's checkpoint. It never rewinds by itself.",
1113
+ "en": "When the monitor sees the agent going in circles or the same command failing again and again, judges whether the approach is a dead end. Only a confident dead end with no progress makes mu propose going back to the turn's checkpoint; it never rewinds on its own.",
974
1114
  "zh-TW": "監控發現代理原地打轉,或同一條指令一再失敗時,判斷這條路是不是死路;只有確信是死路且沒有進展,才向你提議回到本輪的檢查點。它自己從不回退。",
975
1115
  "ja-JP": "逸脱検知が、エージェントの堂々巡りや同じコマンドの失敗の繰り返しを見つけると、その方針が行き止まりかを判定します。行き止まりだと確信でき、進捗もない場合にだけ、そのターンのチェックポイントに戻ることを提案します。自分から巻き戻すことはありません。",
976
1116
  "ko-KR": "감시 기능이 에이전트가 제자리를 맴돌거나 같은 명령이 계속 실패하는 것을 발견하면, 이 접근이 막다른 길인지 판정합니다. 진전 없는 막다른 길이 확실할 때만 이번 턴의 체크포인트로 되돌아가자고 제안합니다. 스스로 되감지는 않습니다.",
@@ -1005,7 +1145,7 @@
1005
1145
  },
1006
1146
  "summary": {
1007
1147
  "zh": "模型说「做完了」时,判断是否真的验证过;没验证就提醒一次。",
1008
- "en": "When the model says it is done, checks whether anything verified that; one nudge if not.",
1148
+ "en": "When the model says it's done, checks whether anything verified the work; if not, nudges it once.",
1009
1149
  "zh-TW": "模型說「做完了」時,判斷是否真的驗證過;沒有就提醒一次。",
1010
1150
  "ja-JP": "モデルが完了したと言ったときに、それが検証されたかを確認します。検証されていなければ 1 回だけ促します。",
1011
1151
  "ko-KR": "모델이 끝났다고 하면 그것을 검증한 것이 있는지 확인하고, 없으면 한 번 알려 줍니다.",
@@ -1019,6 +1159,41 @@
1019
1159
  "fa-IR": "وقتی مدل می‌گوید کار تمام شده، بررسی می‌کند که آیا چیزی آن را راستی‌آزمایی کرده است؛ اگر نه، یک بار یادآوری می‌کند."
1020
1160
  }
1021
1161
  },
1162
+ {
1163
+ "id": "turn.continue",
1164
+ "group": "turn",
1165
+ "feature": "continuation",
1166
+ "title": {
1167
+ "zh": "半路停下",
1168
+ "en": "Stopped short",
1169
+ "zh-TW": "半路停下",
1170
+ "ja-JP": "途中で止まった",
1171
+ "ko-KR": "중간에 멈춤",
1172
+ "de-DE": "Auf halbem Weg stehen geblieben",
1173
+ "fr-FR": "Arrêt à mi-chemin",
1174
+ "es-ES": "Se detuvo a medias",
1175
+ "pt-BR": "Parou no meio do caminho",
1176
+ "ru-RU": "Остановился на полпути",
1177
+ "uk-UA": "Зупинився на півдорозі",
1178
+ "tr-TR": "Yarıda durdu",
1179
+ "fa-IR": "نیمه‌کاره ماند"
1180
+ },
1181
+ "summary": {
1182
+ "zh": "一轮结束在「接下来我去跑测试」却什么也没做,或者你已经让它做了它还在问「要我改吗」:让它接着做。难以撤销、或要出这台电脑的一步(推送、发布、删除、付款)不催。每条消息最多催两次。",
1183
+ "en": "When a run ends on \"next I'll run the tests\" without doing it, or asks permission for work you already asked for, sends the agent back to it. Never nudges a step that is hard to undo or reaches beyond this machine (push, publish, delete, pay). At most twice per message.",
1184
+ "zh-TW": "一輪結束在「接下來我去跑測試」卻什麼也沒做,或者你已經讓它做了它還在問「要我改嗎」:讓它接著做。難以撤銷、或要離開這台電腦的一步(推送、發布、刪除、付款)不催。每則訊息最多催兩次。",
1185
+ "ja-JP": "「次にテストを実行します」と言って何もせずに終わった回や、すでに頼んだ作業について「直しましょうか?」と聞いて終わった回は、作業に戻らせます。元に戻しにくい手順や、このマシンの外に及ぶ手順(プッシュ、公開、削除、支払い)は促しません。1 メッセージにつき最大 2 回です。",
1186
+ "ko-KR": "\"다음으로 테스트를 실행하겠습니다\"라고 하고 아무것도 하지 않은 채 끝난 실행이나, 이미 요청한 작업인데 \"고칠까요?\"라고 묻고 끝난 실행은 다시 작업으로 돌려보냅니다. 되돌리기 어렵거나 이 컴퓨터 밖에 영향을 주는 단계(푸시, 게시, 삭제, 결제)는 재촉하지 않습니다. 메시지마다 최대 두 번입니다.",
1187
+ "de-DE": "Ein Lauf, der mit „als Nächstes führe ich die Tests aus“ endet, ohne es zu tun, oder der für eine bereits erbetene Arbeit um Erlaubnis fragt, wird zurück an die Arbeit geschickt. Ein Schritt, der schwer rückgängig zu machen ist oder über diesen Rechner hinausreicht (Push, Veröffentlichen, Löschen, Bezahlen), wird nie angetrieben. Höchstens zweimal pro Nachricht.",
1188
+ "fr-FR": "Une exécution qui se termine sur « ensuite je lance les tests » sans le faire, ou qui demande le feu vert pour un travail que vous avez déjà demandé, est renvoyée au travail. Une étape difficile à annuler ou qui sort de cette machine (push, publication, suppression, paiement) n'est jamais forcée. Au plus deux fois par message.",
1189
+ "es-ES": "Una ejecución que termina en «ahora ejecuto las pruebas» sin hacerlo, o que pide permiso para un trabajo que ya pediste, se devuelve al trabajo. Un paso difícil de deshacer o que va más allá de esta máquina (push, publicar, borrar, pagar) nunca se fuerza. Como máximo dos veces por mensaje.",
1190
+ "pt-BR": "Uma execução que termina em \"agora vou rodar os testes\" sem fazer isso, ou que pede autorização para um trabalho que você já pediu, é mandada de volta ao trabalho. Um passo difícil de desfazer ou que vai além desta máquina (push, publicar, apagar, pagar) nunca é forçado. No máximo duas vezes por mensagem.",
1191
+ "ru-RU": "Запуск, который заканчивается словами «дальше запущу тесты», но ничего не делает, или спрашивает разрешения на работу, о которой вы уже попросили, отправляется обратно к работе. Шаг, который трудно отменить или который выходит за пределы этой машины (push, публикация, удаление, оплата), никогда не подталкивается. Не больше двух раз на сообщение.",
1192
+ "uk-UA": "Запуск, що завершується словами «далі запущу тести», але нічого не робить, або питає дозволу на роботу, про яку ви вже попросили, відправляється назад до роботи. Крок, який важко скасувати або який виходить за межі цієї машини (push, публікація, видалення, оплата), ніколи не підганяється. Не більше двох разів на повідомлення.",
1193
+ "tr-TR": "\"Sırada testleri çalıştırmak var\" deyip hiçbir şey yapmadan biten ya da zaten istediğiniz bir iş için onay soran bir çalışma, işe geri gönderilir. Geri alınması zor ya da bu makinenin dışına uzanan bir adım (push, yayımlama, silme, ödeme) asla zorlanmaz. Mesaj başına en fazla iki kez.",
1194
+ "fa-IR": "اجرایی که با «حالا تست‌ها را اجرا می‌کنم» تمام شود ولی کاری نکند، یا برای کاری که خودتان خواسته‌اید اجازه بخواهد، به کار برگردانده می‌شود. گامی که برگرداندنش دشوار است یا از این رایانه بیرون می‌رود (push، انتشار، حذف، پرداخت) هرگز تحت فشار قرار نمی‌گیرد. حداکثر دو بار برای هر پیام."
1195
+ }
1196
+ },
1022
1197
  {
1023
1198
  "id": "review.triage",
1024
1199
  "group": "tools",
@@ -1040,7 +1215,7 @@
1040
1215
  },
1041
1216
  "summary": {
1042
1217
  "zh": "评审子代理交回发现之后,逐条判断两件事:会不会改变程序行为,是不是这次改动引起的;再结合评审自己标的轻重,按严重程度排成四级。一条都不丢,最轻的一级折叠显示;评审坚持必须改的永远不会落到最轻一级。",
1043
- "en": "After the reviewer of /review reports, each finding gets two questions: does it change how the program behaves, and is it about this change; with the reviewer's own severity that orders them P0 to P3. None is dropped, P3 is collapsed, and a finding the reviewer insisted on never lands in P3.",
1218
+ "en": "After the /review reviewer reports, each finding gets two questions: does it change how the program behaves, and is it caused by this change? Together with the reviewer's own severity, the answers rank findings from P0 to P3. None is dropped, P3 is collapsed, and a finding the reviewer insisted on never lands in P3.",
1044
1219
  "zh-TW": "/review 的審查者回報後,每則發現都要回答兩個問題:會不會改變程式的行為,是不是這次改動造成的;再結合審查者自己標的嚴重程度,排成 P0 到 P3。一則都不丟,P3 摺疊顯示;審查者堅持要改的發現絕不會落到 P3。",
1045
1220
  "ja-JP": "/review のレビュアーが報告すると、各指摘について「プログラムの動作を変えるか」「今回の変更に関するものか」の 2 点を判定し、レビュアー自身の重大度と合わせて P0〜P3 に並べます。指摘は 1 つも捨てず、P3 は折りたたんで表示します。レビュアーが修正必須とした指摘が P3 になることはありません。",
1046
1221
  "ko-KR": "/review의 리뷰어가 보고하면 각 발견에 두 가지를 묻습니다. 프로그램의 동작을 바꾸는가, 이번 변경에 관한 것인가. 여기에 리뷰어가 매긴 심각도를 더해 P0부터 P3까지 순서를 정합니다. 버리는 발견은 없고 P3은 접어서 보여 주며, 리뷰어가 꼭 고쳐야 한다고 한 발견은 P3에 들어가지 않습니다.",
@@ -1060,7 +1235,7 @@
1060
1235
  "feature": "ttsr",
1061
1236
  "title": {
1062
1237
  "zh": "写偏即停(实验)",
1063
- "en": "Mid-stream correction (experiment)",
1238
+ "en": "Mid-stream correction (experimental)",
1064
1239
  "zh-TW": "寫偏即停(實驗)",
1065
1240
  "ja-JP": "出力中の軌道修正(実験的)",
1066
1241
  "ko-KR": "출력 중 교정(실험)",
@@ -1075,7 +1250,7 @@
1075
1250
  },
1076
1251
  "summary": {
1077
1252
  "zh": "模型边输出,判定器边每隔几百字对照一次你的硬约束和下面配置的规则;确信写偏了就立刻掐断输出,告诉模型是哪一条,让它从断点接着写。只有开启了「写偏即停」功能才会运行。",
1078
- "en": "While the model writes, the judge reads the tail of its output against your hard constraints and the configured rules every few hundred characters; on a confident violation the output is cut, the rule is named, and the model carries on from there. Runs only with the feature switched on.",
1253
+ "en": "While the model writes, the judge checks the latest output against your hard constraints and the configured rules every few hundred characters. On a confident violation, the output is cut off, the rule is named, and the model continues from there. Runs only when the feature is turned on.",
1079
1254
  "zh-TW": "模型一邊輸出,判定器一邊每隔幾百個字元,對照一次你的硬性約束和設定的規則;確信寫偏了就截斷輸出,指出是哪一條規則,讓模型從斷點接著寫。只有開啟「寫偏即停」功能時才會執行。",
1080
1255
  "ja-JP": "モデルが書いている間、判定器が数百文字ごとに出力の末尾を、あなたが設定した制約と設定済みのルールに照らして確認します。違反が確実なら出力を止め、該当するルールを示して、モデルにそこから続けさせます。この機能をオンにしたときだけ動作します。",
1081
1256
  "ko-KR": "모델이 출력하는 동안 판정기가 수백 자마다 출력의 끝부분을 사용자의 제약 조건과 설정된 규칙에 비추어 읽습니다. 위반이 확실하면 출력을 끊고 해당 규칙을 알려 주며, 모델은 그 지점부터 이어서 씁니다. 이 기능을 켰을 때만 실행됩니다.",
@@ -1095,7 +1270,7 @@
1095
1270
  "feature": "lsp",
1096
1271
  "title": {
1097
1272
  "zh": "诊断何时告知",
1098
- "en": "When to tell diagnostics",
1273
+ "en": "When to report diagnostics",
1099
1274
  "zh-TW": "診斷何時告知",
1100
1275
  "ja-JP": "診断を伝えるタイミング",
1101
1276
  "ko-KR": "진단 알림 시점",
@@ -1110,7 +1285,7 @@
1110
1285
  },
1111
1286
  "summary": {
1112
1287
  "zh": "改完文件后语言服务器新报的错:现在就说、等模型停下再说,还是不说(风格类警告)。回合结束时仍在的新错误一定会说。",
1113
- "en": "New language-server diagnostics after an edit: tell now, when the model pauses, or never (style warnings). New errors still there when the turn ends are always told.",
1288
+ "en": "For new language server diagnostics after an edit: report now, when the model pauses or never (style warnings). New errors still present when the turn ends are always reported.",
1114
1289
  "zh-TW": "改完檔案後語言伺服器新回報的診斷:現在就說、等模型停下再說,還是不說(風格類警告)。這一輪結束時仍在的新錯誤一定會說。",
1115
1290
  "ja-JP": "編集後に言語サーバーが新たに出した診断を、すぐに伝えるか、モデルが手を止めたときに伝えるか、伝えないか(スタイルの警告など)を判定します。ターン終了時にまだ残っている新しいエラーは必ず伝えます。",
1116
1291
  "ko-KR": "편집 후 새로 생긴 언어 서버 진단을 지금 알릴지, 모델이 멈출 때 알릴지, 알리지 않을지(스타일 경고) 정합니다. 턴이 끝날 때까지 남아 있는 새 오류는 항상 알립니다.",
@@ -1130,7 +1305,7 @@
1130
1305
  "feature": "goal",
1131
1306
  "title": {
1132
1307
  "zh": "目标是否达成(Jev 兜底)",
1133
- "en": "Goal reached (Jev fallback)",
1308
+ "en": "Goal met (Jev fallback)",
1134
1309
  "zh-TW": "目標是否達成(Jev 備援)",
1135
1310
  "ja-JP": "目標の達成(Jev による予備判定)",
1136
1311
  "ko-KR": "목표 달성(Jev 보조)",
@@ -1145,7 +1320,7 @@
1145
1320
  },
1146
1321
  "summary": {
1147
1322
  "zh": "目标模式默认由大模型判断;这个判定点只在选了 Jev、或大模型没答上来时用:读结束语,判断目标是否达成、是否需要你拿主意。还有没勾掉的验收条件、或改完没跑过,一律算没达成。",
1148
- "en": "Goal mode is checked by a model by default; this decision is used when Jev is chosen or the model gives no answer: it reads the closing message for whether the goal holds and whether you are needed. An open acceptance item or an unverified edit always means not yet.",
1323
+ "en": "In goal mode, a model decides by default whether the goal is met. This decision point is used only when Jev is chosen or the model doesn't answer: it reads the closing message to judge whether the goal is met and whether you're needed. An open acceptance item or an unverified edit always means not yet.",
1149
1324
  "zh-TW": "目標模式預設由大模型判斷;只有選了 Jev,或大模型沒給出答案時,才用這個判定點:讀最後的結束語,判斷目標是否達成、是否需要你。只要還有未完成的驗收項目,或有改動沒驗證過,一律算還沒達成。",
1150
1325
  "ja-JP": "目標モードの達成チェックは、既定ではモデルが行います。この判定ポイントは、Jev を選んだ場合か、モデルが回答しなかった場合に使われます。最後のメッセージから、目標を達成したか、あなたの判断が必要かを読み取ります。未完了の受け入れ条件や未検証の編集が残っていれば、必ず未達成とします。",
1151
1326
  "ko-KR": "목표 모드는 기본적으로 모델이 확인합니다. 이 판정 지점은 Jev를 선택했거나 모델이 답하지 않을 때 쓰이며, 마무리 메시지를 읽고 목표가 달성되었는지, 사용자가 나서야 하는지 판정합니다. 완료되지 않은 확인 항목이나 검증되지 않은 편집이 있으면 항상 아직 달성되지 않은 것으로 봅니다.",
@@ -1180,7 +1355,7 @@
1180
1355
  },
1181
1356
  "summary": {
1182
1357
  "zh": "打开人话看板的项目里,代理每说一段话、跑完检查或勾掉一条验收条件时、每做几步、以及每次停下时,用选择题读出它处在哪个阶段、在做哪条验收条件、是不是在等你,并把这段时间发生的事逐条分成「你会想知道的」和「例行步骤」。只有出现新情况,才把挑出来的要点交给会说人话的模型重写看板、并在流水里重讲一句;一轮结束时再挑一次整轮的要点,做个总结。",
1183
- "en": "In a project with the board on, whenever the agent says something, after a check or a ticked acceptance item, every few tool calls, and whenever the agent stops, multiple-choice questions read its phase, the acceptance item it works on and whether it waits for you, and sort what happened since the last board into news and routine. Only something new has a plain-speaking model write the board again and retell the news on the running account; when a run ends, the news of the whole run is picked again for a summing up.",
1358
+ "en": "In a project with the board on, multiple-choice questions run whenever the agent says something, after a check or a ticked acceptance item, every few tool calls and whenever the agent stops. They read the agent's phase, the acceptance item it's working on and whether it's waiting for you, and sort what happened since the last update into news and routine. Only something new makes a plain-speaking model rewrite the board and retell the news in the running account. When a run ends, the news from the whole run is picked again for a summary.",
1184
1359
  "zh-TW": "在開啟人話看板的專案裡,代理每說一段話、跑完檢查或勾掉一條驗收條件時、每做幾步、以及每次停下時,用選擇題讀出它處在哪個階段、在做哪條驗收條件、是不是在等你,並把這段時間發生的事逐條分成「你會想知道的」和「例行步驟」。只有出現新情況,才把挑出來的要點交給會講人話的模型重寫看板、並在流水裡重講一句;一輪結束時再挑一次整輪的要點,做個總結。",
1185
1360
  "ja-JP": "ボードがオンのプロジェクトでは、エージェントが何か言うたび、検証や受け入れ条件の項目にチェックが入ったあと、数回のツール呼び出しごと、そしてエージェントが止まるたびに、選択式の質問でその段階、取り組んでいる受け入れ条件、あなたを待っているかどうかを読み取り、前回のボード以降に起きたことをニュースと日常の手順に分けます。新しいことがあったときだけ、わかりやすく話すモデルがボードを書き直し、そのニュースを記録の上で語り直します。実行が終わると、その実行全体のニュースをもう一度選び直してまとめます。",
1186
1361
  "ko-KR": "보드를 켠 프로젝트에서는 에이전트가 무언가 말할 때마다, 검증을 하거나 인수 조건 항목에 체크한 뒤, 도구 호출 몇 번마다, 그리고 에이전트가 멈출 때마다 객관식 질문으로 지금 단계, 작업 중인 인수 조건 항목, 여러분을 기다리는지 여부를 읽어 내고, 지난 보드 이후 일어난 일을 새 소식과 일상적인 단계로 나눠요. 새로운 것이 있을 때만 쉽게 말하는 모델이 보드를 다시 쓰고 그 소식을 기록에 다시 말해 줘요. 실행이 끝나면 실행 전체의 소식을 다시 골라 요약해요.",
@@ -1215,7 +1390,7 @@
1215
1390
  },
1216
1391
  "summary": {
1217
1392
  "zh": "上下文预算等事件出现时,判断该现在告诉模型、稍后再说,还是不必说。",
1218
- "en": "For events such as the context budget: tell the model now, later, or not at all.",
1393
+ "en": "For events such as the context budget: tell the model now, later or not at all.",
1219
1394
  "zh-TW": "上下文預算這類事件出現時,判斷該現在告訴模型、晚點再說,還是不必說。",
1220
1395
  "ja-JP": "コンテキスト予算などのイベントを、モデルにすぐ伝えるか、後で伝えるか、伝えないかを判定します。",
1221
1396
  "ko-KR": "컨텍스트 예산 같은 이벤트를 모델에게 지금 알릴지, 나중에 알릴지, 알리지 않을지 정합니다.",
@@ -1235,7 +1410,7 @@
1235
1410
  "feature": "swarm",
1236
1411
  "title": {
1237
1412
  "zh": "子代理分派",
1238
- "en": "Sub-agent routing",
1413
+ "en": "Subagent routing",
1239
1414
  "zh-TW": "子代理分派",
1240
1415
  "ja-JP": "サブエージェントの振り分け",
1241
1416
  "ko-KR": "하위 에이전트 배정",
@@ -1250,7 +1425,7 @@
1250
1425
  },
1251
1426
  "summary": {
1252
1427
  "zh": "为每个委派任务挑选角色,并按难度选择模型档位和思考等级。",
1253
- "en": "Picks a role for each delegated task, and a model tier and thinking level by difficulty.",
1428
+ "en": "Picks a role for each delegated task, and a model tier and thinking level based on difficulty.",
1254
1429
  "zh-TW": "為每個委派的任務挑選角色,並依難度選擇模型等級和思考強度。",
1255
1430
  "ja-JP": "委任する各タスクの役割を選び、難しさに応じてモデルの階層と思考レベルを選びます。",
1256
1431
  "ko-KR": "위임된 각 작업에 역할을 고르고, 난이도에 따라 모델 등급과 사고 수준을 정합니다.",
@@ -1270,7 +1445,7 @@
1270
1445
  "feature": "swarm",
1271
1446
  "title": {
1272
1447
  "zh": "子代理补丁的范围检查",
1273
- "en": "Scope check of a sub-agent's patch",
1448
+ "en": "Subagent patch scope check",
1274
1449
  "zh-TW": "子代理修補程式的範圍檢查",
1275
1450
  "ja-JP": "サブエージェントのパッチの範囲チェック",
1276
1451
  "ko-KR": "하위 에이전트 패치 범위 확인",
@@ -1285,7 +1460,7 @@
1285
1460
  },
1286
1461
  "summary": {
1287
1462
  "zh": "隔离的子代理交回补丁时,只看任务、改动的路径和行数,判断改动是否超出任务、哪些文件与任务无关;只给主代理一句提示,从不拦截。",
1288
- "en": "When an isolated sub-agent hands back a patch, judges from the task, the changed paths and the line counts whether it stays within the task and which files look unrelated. One line of advice for the main agent; it never blocks.",
1463
+ "en": "When an isolated subagent hands back a patch, judges from the task, the changed paths and the line counts whether it stays within scope and which files look unrelated. Gives the main agent one line of advice; it never blocks.",
1289
1464
  "zh-TW": "隔離執行的子代理交回修補程式時,只根據任務、改動的路徑和行數,判斷改動有沒有超出任務、哪些檔案看起來與任務無關。只給主代理一句建議,從不攔截。",
1290
1465
  "ja-JP": "分離されたサブエージェントがパッチを返すと、タスク、変更されたパス、行数から、変更がタスクの範囲内か、どのファイルが無関係に見えるかを判定します。メインのエージェントに 1 行の助言を伝えるだけで、ブロックはしません。",
1291
1466
  "ko-KR": "격리된 하위 에이전트가 패치를 돌려주면, 작업 내용과 변경된 경로, 줄 수를 보고 작업 범위 안에 있는지, 어떤 파일이 무관해 보이는지 판정합니다. 메인 에이전트에게 한 줄 조언을 줄 뿐 막지는 않습니다.",
@@ -1320,7 +1495,7 @@
1320
1495
  },
1321
1496
  "summary": {
1322
1497
  "zh": "一只蜂的发现值不值得放到公告板上给其他蜂看。",
1323
- "en": "Whether a bee's finding is worth putting on the board for the others.",
1498
+ "en": "Decides whether a bee's finding is worth putting on the board for the others.",
1324
1499
  "zh-TW": "一個蜂群成員的發現,值不值得放到共享看板上給其他成員看。",
1325
1500
  "ja-JP": "ビーの発見を、ほかのビーのために共有ボードへ載せる価値があるかを判定します。",
1326
1501
  "ko-KR": "비(bee)의 발견이 다른 비들을 위해 공유 보드에 올릴 가치가 있는지 판정합니다.",
@@ -1355,7 +1530,7 @@
1355
1530
  },
1356
1531
  "summary": {
1357
1532
  "zh": "公告板上的一条发现与某只蜂手头的工作有没有关系,有关系才送达。",
1358
- "en": "Whether a finding on the board matters to a bee's current work; only then is it delivered.",
1533
+ "en": "Decides whether a finding on the board matters to a bee's current work; only then is it delivered.",
1359
1534
  "zh-TW": "共享看板上的一則發現和某個蜂群成員手上的工作有沒有關係;有關係才送達。",
1360
1535
  "ja-JP": "共有ボード上の発見が、あるビーの現在の作業に関係するかを判定し、関係する場合にだけ配信します。",
1361
1536
  "ko-KR": "공유 보드의 발견이 어떤 비의 현재 작업에 중요한지 판정하고, 중요할 때만 전달합니다.",
@@ -1390,7 +1565,7 @@
1390
1565
  },
1391
1566
  "summary": {
1392
1567
  "zh": "一条新发现对公告板上的旧发现意味着什么:更新了它、和它冲突、佐证它,还是无关。被更新的下线,听过它的蜂收到纠正;冲突两边都留着,交给蜂去核实。",
1393
- "en": "What a new finding does to an earlier one on the board: replaces it, contradicts it, supports it, or nothing. A replaced finding goes down and whoever heard it is told; a contradiction keeps both sides for a bee to settle.",
1568
+ "en": "How a new finding relates to an earlier one on the board: it replaces it, contradicts it, supports it or is unrelated. A replaced finding is withdrawn and every bee that heard it is told; a contradiction keeps both sides for a bee to settle.",
1394
1569
  "zh-TW": "一則新發現對共享看板上較早的發現意味著什麼:取代它、和它矛盾、佐證它,還是無關。被取代的發現會撤下,聽過它的蜂群成員會收到更正;互相矛盾時兩邊都留著,交給蜂群成員去核實。",
1395
1570
  "ja-JP": "新しい発見が、共有ボード上の以前の発見にとって何を意味するかを判定します。置き換えるのか、矛盾するのか、裏付けるのか、どれでもないのかです。置き換えられた発見は取り下げられ、それを受け取ったビーに訂正が届きます。矛盾する場合は両方を残し、ビーに決着をつけさせます。",
1396
1571
  "ko-KR": "새 발견이 공유 보드의 이전 발견에 어떤 의미인지 판정합니다. 대체하는지, 모순되는지, 뒷받침하는지, 아무 관계가 없는지입니다. 대체된 발견은 내려지고 그것을 받은 비에게 정정이 전달됩니다. 모순되면 양쪽을 모두 남겨 두고 비가 가리게 합니다.",
@@ -1446,7 +1621,7 @@
1446
1621
  "default": false,
1447
1622
  "label": {
1448
1623
  "zh": "按判定设置思考等级(切换会丢缓存)",
1449
- "en": "Set the thinking level from the verdict (a switch loses the cache)",
1624
+ "en": "Set the thinking level from the verdict (changing it invalidates the prompt cache)",
1450
1625
  "zh-TW": "依判定結果設定思考強度(切換會丟掉提示快取)",
1451
1626
  "ja-JP": "判定に応じて思考レベルを設定(切り替えるとプロンプトキャッシュが失われる)",
1452
1627
  "ko-KR": "판정에 따라 사고 수준 설정(바꾸면 프롬프트 캐시가 사라짐)",
@@ -1538,7 +1713,7 @@
1538
1713
  },
1539
1714
  "help": {
1540
1715
  "zh": "超时就不等了,按原样开始。",
1541
- "en": "After this the turn starts without the verdict.",
1716
+ "en": "After this, the turn starts without the verdict.",
1542
1717
  "zh-TW": "超過這個時間,這一輪就不等判定結果,直接開始。",
1543
1718
  "ja-JP": "これを過ぎると、判定を待たずにターンを始めます。",
1544
1719
  "ko-KR": "이 시간이 지나면 판정 없이 턴을 시작합니다.",
@@ -1646,7 +1821,7 @@
1646
1821
  },
1647
1822
  "summary": {
1648
1823
  "zh": "按任务决定提示词里带哪些技能说明。",
1649
- "en": "Chooses which skill descriptions a session carries.",
1824
+ "en": "Chooses which skill descriptions go into a session's prompt.",
1650
1825
  "zh-TW": "決定一個對話帶上哪些技能說明。",
1651
1826
  "ja-JP": "セッションに含めるスキルの説明を選びます。",
1652
1827
  "ko-KR": "세션에 어떤 스킬 설명을 넣을지 고릅니다.",
@@ -1669,7 +1844,7 @@
1669
1844
  "max": 100,
1670
1845
  "label": {
1671
1846
  "zh": "技能少于这个数就不筛",
1672
- "en": "Do not filter below this many skills",
1847
+ "en": "Don't filter below this many skills",
1673
1848
  "zh-TW": "技能少於這個數就不篩選",
1674
1849
  "ja-JP": "スキルがこの数未満なら絞り込まない",
1675
1850
  "ko-KR": "스킬이 이보다 적으면 거르지 않음",
@@ -1741,7 +1916,7 @@
1741
1916
  },
1742
1917
  "summary": {
1743
1918
  "zh": "装得多、露得少:能力包和 MCP 服务器默认隐藏,按任务打开。",
1744
- "en": "Install a lot, expose little: packs and MCP servers stay hidden and open per task.",
1919
+ "en": "Install a lot, expose little: packs and MCP servers stay hidden until a task needs them.",
1745
1920
  "zh-TW": "裝得多、露得少:能力包和 MCP 伺服器預設隱藏,依任務開啟。",
1746
1921
  "ja-JP": "多くをインストールし、見せるのは少しだけ。ケイパビリティパックと MCP サーバーは非表示にしておき、タスクごとに開きます。",
1747
1922
  "ko-KR": "많이 설치하고 적게 노출합니다. 기능 확장 팩과 MCP 서버는 숨겨 두었다가 작업마다 엽니다.",
@@ -1814,7 +1989,7 @@
1814
1989
  },
1815
1990
  "summary": {
1816
1991
  "zh": "记住你到底要什么:目标、你的硬约束(原话加出处)、当前子目标、验收条件。验收条件就是待办清单,模型用 todo 工具勾选。所有「和目标相关吗」的判断都以它为准,回退会话时它跟着回退。",
1817
- "en": "Keeps what you actually want: the goal, your hard constraints (your own words, with their source), the current subgoal and the acceptance items. Those items are the to-do list the model ticks with the todo tool. Every goal-relevance judgment reads it, and it rewinds with the session.",
1992
+ "en": "Keeps track of what you actually want: the goal, your hard constraints (in your own words, with their source), the current subgoal and the acceptance criteria. The acceptance criteria are the to-do list the model checks off with the todo tool. Every goal-related verdict reads the frame, and it rewinds with the session.",
1818
1993
  "zh-TW": "記住你真正想要的:目標、你的硬性約束(你的原話,附出處)、目前的子目標和驗收項目。這些驗收項目就是待辦清單,模型用 todo 工具勾選。所有「和目標有關嗎」的判斷都以它為準,回退對話時它也跟著回退。",
1819
1994
  "ja-JP": "あなたが本当に求めていることを記録します。目標、あなたが設定した制約(あなたの言葉のまま、出典つき)、現在のサブ目標、受け入れ条件です。受け入れ条件はそのまま ToDo リストになり、モデルが todo ツールでチェックを付けます。「目標に関係するか」の判定はすべてこれに基づき、セッションを巻き戻すとこれも一緒に巻き戻ります。",
1820
1995
  "ko-KR": "사용자가 실제로 원하는 것을 기록합니다. 목표, 제약 조건(사용자가 한 말 그대로, 출처 포함), 현재 하위 목표, 확인 항목입니다. 확인 항목은 모델이 todo 도구로 체크하는 할 일 목록입니다. 목표와 관련 있는지 따지는 모든 판정이 이를 읽으며, 세션을 되감으면 함께 되감깁니다.",
@@ -1852,7 +2027,7 @@
1852
2027
  },
1853
2028
  "label": {
1854
2029
  "zh": "回合最多等任务帧多久",
1855
- "en": "A turn waits for its frame at most",
2030
+ "en": "Wait for the task frame at most",
1856
2031
  "zh-TW": "每輪最多等任務框架多久",
1857
2032
  "ja-JP": "ターンがタスクフレームを待つ最大時間",
1858
2033
  "ko-KR": "턴이 프레임을 기다리는 최대 시간",
@@ -1867,7 +2042,7 @@
1867
2042
  },
1868
2043
  "help": {
1869
2044
  "zh": "从消息到达算起。超时不丢弃:本回合先用上一版加这条原话,更新完成后照常落地。",
1870
- "en": "Counted from the arrival of the message. A late update is not dropped: the turn starts on the previous version plus the raw message, and the update lands when it is ready.",
2045
+ "en": "Counted from when the message arrives. A late update isn't dropped: the turn starts with the previous version plus the raw message, and the update applies when it's ready.",
1871
2046
  "zh-TW": "從訊息到達時算起。來晚的更新不會丟掉:這一輪先用上一版加上這則訊息的原文開始,更新好了再照常套用。",
1872
2047
  "ja-JP": "メッセージの到着から数えます。間に合わなかった更新も破棄されません。ターンは前の版とメッセージの原文で始まり、更新は準備ができた時点で反映されます。",
1873
2048
  "ko-KR": "메시지가 도착한 때부터 셉니다. 늦은 업데이트도 버리지 않습니다. 턴은 이전 버전과 원래 메시지로 시작하고, 업데이트는 준비되는 대로 반영됩니다.",
@@ -1919,7 +2094,7 @@
1919
2094
  },
1920
2095
  "help": {
1921
2096
  "zh": "超时或写坏了就保留上一版并标记为过期,按目标筛选上下文的功能暂停,下一条消息时重试。",
1922
- "en": "On a timeout or a malformed reply the last version stays and is marked stale, goal-based filtering holds back, and the next message retries.",
2097
+ "en": "On a timeout or malformed reply, the last version stays and is marked stale, goal-based filtering holds back, and the next message tries again.",
1923
2098
  "zh-TW": "逾時或回覆格式不對時,保留上一版並標為過期,依目標篩選的功能先暫停,下一則訊息時再重試。",
1924
2099
  "ja-JP": "タイムアウトした場合や応答の形式が正しくない場合は、前の版を残して古いものとしてマークし、目標に基づく絞り込みを控えて、次のメッセージで再試行します。",
1925
2100
  "ko-KR": "시간이 초과되거나 응답 형식이 잘못되면 마지막 버전을 유지하고 오래된 것으로 표시하며, 목표 기반 필터링을 보류하고 다음 메시지에서 다시 시도합니다.",
@@ -1974,7 +2149,7 @@
1974
2149
  },
1975
2150
  "summary": {
1976
2151
  "zh": "从你的纠正、代理自己的脱困、模型和子代理的发现里学经验,存之前先和已有的合并,下次遇到相关任务时带上,没人照做的自动退役。随时可以查看、编辑或让一条退役。",
1977
- "en": "Learns from your corrections, from the agent getting itself unstuck, and from what the model and sub-agents found; merges each lesson with the kept ones before storing it, brings the relevant ones along next time, and retires those nobody follows. /lessons shows them, /forget retires one.",
2152
+ "en": "Learns from your corrections, from the agent getting itself unstuck and from what the model and subagents find. Merges each new lesson with existing ones before saving it, brings relevant lessons into later turns and retires those that are never followed. /lessons lists them; /forget retires one.",
1978
2153
  "zh-TW": "從你的糾正、代理自己的脫困、模型和子代理的發現裡學經驗;存之前先和已有的合併,下次遇到相關任務時帶上,沒人照做的自動退役。/lessons 列出經驗,/forget 讓一條退役。",
1979
2154
  "ja-JP": "あなたの訂正、エージェントが自力で見つけた抜け道、モデルやサブエージェントの発見から教訓を学びます。保存する前に既存の教訓とまとめ、次からは関係するものを取り込み、誰も守らないものは廃止します。/lessons で一覧を表示し、/forget で 1 つを廃止します。",
1980
2155
  "ko-KR": "사용자의 정정, 에이전트가 스스로 찾은 탈출구, 모델과 하위 에이전트가 알아낸 것에서 교훈을 배웁니다. 저장하기 전에 기존 교훈과 병합하고, 다음에 관련된 교훈을 함께 가져오며, 아무도 따르지 않는 교훈은 사용 중지합니다. /lessons로 목록을 보고, /forget으로 하나를 사용 중지합니다.",
@@ -2010,7 +2185,7 @@
2010
2185
  },
2011
2186
  "help": {
2012
2187
  "zh": "留空使用默认位置。",
2013
- "en": "Empty uses the default location.",
2188
+ "en": "Leave empty for the default location.",
2014
2189
  "zh-TW": "留空使用預設位置。",
2015
2190
  "ja-JP": "空欄の場合は既定の場所を使います。",
2016
2191
  "ko-KR": "비워 두면 기본 위치를 사용합니다.",
@@ -2047,7 +2222,7 @@
2047
2222
  },
2048
2223
  "help": {
2049
2224
  "zh": "照做次数多的、最近记下或确认过的排在前面。",
2050
- "en": "The most followed, then the most recently stored or confirmed, come first.",
2225
+ "en": "The most followed come first, then the most recently saved or confirmed.",
2051
2226
  "zh-TW": "照做次數多的排在前面,其次是最近記下或確認過的。",
2052
2227
  "ja-JP": "守られた回数が多いものが先で、その次に最近保存または確認されたものが来ます。",
2053
2228
  "ko-KR": "따른 횟수가 많은 교훈이 먼저이고, 그다음은 최근에 저장되거나 확인된 교훈입니다.",
@@ -2106,7 +2281,7 @@
2106
2281
  },
2107
2282
  "label": {
2108
2283
  "zh": "最多等召回结果",
2109
- "en": "Wait for the recall at most",
2284
+ "en": "Wait for recall at most",
2110
2285
  "zh-TW": "最多等召回結果",
2111
2286
  "ja-JP": "呼び出し結果を待つ最大時間",
2112
2287
  "ko-KR": "불러오기 최대 대기 시간",
@@ -2121,7 +2296,7 @@
2121
2296
  },
2122
2297
  "help": {
2123
2298
  "zh": "从消息到达算起;给子代理挑经验也等这么久。",
2124
- "en": "Counted from the arrival of the message; picking lessons for sub-agents waits as long.",
2299
+ "en": "Counted from when the message arrives; picking lessons for subagents uses the same limit.",
2125
2300
  "zh-TW": "從訊息到達時算起;替子代理挑經驗也等這麼久。",
2126
2301
  "ja-JP": "メッセージの到着から数えます。サブエージェント向けに教訓を選ぶときも同じだけ待ちます。",
2127
2302
  "ko-KR": "메시지가 도착한 때부터 셉니다. 하위 에이전트에게 줄 교훈을 고를 때도 이만큼 기다립니다.",
@@ -2143,7 +2318,7 @@
2143
2318
  "max": 100,
2144
2319
  "label": {
2145
2320
  "zh": "召回几次从没照做就退役",
2146
- "en": "Retire after this many recalls never followed",
2321
+ "en": "Retire after this many recalls without being followed",
2147
2322
  "zh-TW": "召回幾次都沒照做就退役",
2148
2323
  "ja-JP": "一度も守られずにこの回数呼び出されたら廃止",
2149
2324
  "ko-KR": "한 번도 따르지 않은 채 이만큼 불러오면 사용 중지",
@@ -2158,7 +2333,7 @@
2158
2333
  },
2159
2334
  "help": {
2160
2335
  "zh": "0 表示从不自动退役。",
2161
- "en": "0 never retires a lesson by itself.",
2336
+ "en": "0 never retires lessons automatically.",
2162
2337
  "zh-TW": "0 表示從不自動退役。",
2163
2338
  "ja-JP": "0 にすると自動では廃止しません。",
2164
2339
  "ko-KR": "0이면 교훈을 자동으로 사용 중지하지 않습니다.",
@@ -2195,7 +2370,7 @@
2195
2370
  },
2196
2371
  "help": {
2197
2372
  "zh": "按字面重合挑出来,一次请求问完;0 表示不整理,直接存。",
2198
- "en": "Picked by shared words, asked in one request; 0 stores without merging.",
2373
+ "en": "Chosen by shared words and judged in one request; 0 saves without merging.",
2199
2374
  "zh-TW": "依字面重合挑出來,一次請求問完;0 表示不整理,直接存。",
2200
2375
  "ja-JP": "共通する語で選び、1 回のリクエストで問い合わせます。0 にすると、まとめずにそのまま保存します。",
2201
2376
  "ko-KR": "겹치는 단어로 골라 한 번의 요청으로 묻습니다. 0이면 병합하지 않고 바로 저장합니다.",
@@ -2230,7 +2405,7 @@
2230
2405
  },
2231
2406
  "help": {
2232
2407
  "zh": "需要写作模型或当前对话模型把经验写成一句话。",
2233
- "en": "Needs the writer model or the conversation's model to put the lesson into words.",
2408
+ "en": "Needs the writer model or the session's model to word the lesson.",
2234
2409
  "zh-TW": "需要 writer 模型或目前對話的模型,把經驗寫成一句話。",
2235
2410
  "ja-JP": "教訓を文章にするには、writer モデルか会話のモデルが必要です。",
2236
2411
  "ko-KR": "교훈을 글로 옮기려면 writer 모델이나 대화의 모델이 필요합니다.",
@@ -2266,6 +2441,153 @@
2266
2441
  }
2267
2442
  ]
2268
2443
  },
2444
+ {
2445
+ "name": "procedures",
2446
+ "title": {
2447
+ "zh": "做法变技能",
2448
+ "en": "Procedures as skills",
2449
+ "zh-TW": "做法變技能",
2450
+ "ja-JP": "手順をスキルに",
2451
+ "ko-KR": "절차를 스킬로",
2452
+ "de-DE": "Vorgehen als Skills",
2453
+ "fr-FR": "Procédures en skills",
2454
+ "es-ES": "Procedimientos como skills",
2455
+ "pt-BR": "Procedimentos como skills",
2456
+ "ru-RU": "Процедуры как навыки",
2457
+ "uk-UA": "Процедури як навички",
2458
+ "tr-TR": "Beceri olarak yordamlar",
2459
+ "fa-IR": "روال‌ها به‌صورت مهارت"
2460
+ },
2461
+ "summary": {
2462
+ "zh": "一次成功的长运行如果是一套可复用的做法,起草成技能放进待审区:/skills 列出草稿,/skills show、accept、reject 查看、安装、丢掉。不经你同意不安装任何技能。",
2463
+ "en": "When a long, successful run was a reusable procedure, drafts it as a skill for you to review: /skills lists the drafts, and /skills show, accept and reject read, install or discard one. Nothing is installed without your approval.",
2464
+ "zh-TW": "一次成功的長執行如果是一套可重複使用的做法,就起草成技能放進待審區:/skills 列出草稿,/skills show、accept、reject 查看、安裝、丟掉。不經你同意不安裝任何技能。",
2465
+ "ja-JP": "うまく終わった長い実行が再利用できる手順だったとき、それをスキルとして下書きして保留します。/skills で下書きを一覧し、/skills show・accept・reject で読む・インストール・破棄します。あなたの同意なしにスキルはインストールされません。",
2466
+ "ko-KR": "잘 끝난 긴 실행이 재사용할 수 있는 절차였다면 스킬로 초안을 써서 보관합니다. /skills로 초안을 나열하고, /skills show, accept, reject로 읽고 설치하고 버립니다. 당신의 동의 없이는 어떤 스킬도 설치되지 않습니다.",
2467
+ "de-DE": "War ein langer, gut beendeter Lauf ein wiederverwendbares Vorgehen, wird er als Skill entworfen und für Sie aufbewahrt: /skills listet die Entwürfe, /skills show, accept und reject lesen, installieren und verwerfen einen. Ohne Sie wird kein Skill installiert.",
2468
+ "fr-FR": "Quand une longue exécution bien terminée était une procédure réutilisable, la rédige comme skill et la garde pour vous : /skills liste les brouillons, /skills show, accept et reject en lisent, installent et jettent un. Aucun skill n'est installé sans vous.",
2469
+ "es-ES": "Cuando una ejecución larga que terminó bien fue un procedimiento reutilizable, lo redacta como skill y te lo guarda: /skills lista los borradores, /skills show, accept y reject leen, instalan y descartan uno. Ningún skill se instala sin ti.",
2470
+ "pt-BR": "Quando uma execução longa que terminou bem foi um procedimento reutilizável, rascunha-o como skill e o guarda para você: /skills lista os rascunhos, /skills show, accept e reject leem, instalam e descartam um. Nenhum skill é instalado sem você.",
2471
+ "ru-RU": "Если долгий успешный прогон был повторяемой процедурой, оформляет её черновиком навыка и хранит для вас: /skills показывает черновики, /skills show, accept и reject читают, устанавливают и удаляют. Без вас ни один навык не устанавливается.",
2472
+ "uk-UA": "Якщо довгий успішний прогін був повторюваною процедурою, оформлює її чернеткою навички й зберігає для вас: /skills показує чернетки, /skills show, accept і reject читають, встановлюють і видаляють. Без вас жодна навичка не встановлюється.",
2473
+ "tr-TR": "İyi biten uzun bir çalışma yeniden kullanılabilir bir yordamsa, onu beceri olarak taslağa döker ve sizin için saklar: /skills taslakları listeler, /skills show, accept ve reject birini okur, kurar ve atar. Siz olmadan hiçbir beceri kurulmaz.",
2474
+ "fa-IR": "اگر یک اجرای طولانی که خوب تمام شده یک روال قابل‌استفادهٔ دوباره بوده، آن را به‌صورت پیش‌نویس مهارت می‌نویسد و برایتان نگه می‌دارد: /skills پیش‌نویس‌ها را فهرست می‌کند و /skills show، accept و reject یکی را می‌خوانند، نصب می‌کنند و دور می‌اندازند. هیچ مهارتی بدون شما نصب نمی‌شود."
2475
+ },
2476
+ "defaultEnabled": true,
2477
+ "options": [
2478
+ {
2479
+ "key": "minSteps",
2480
+ "kind": "number",
2481
+ "default": 6,
2482
+ "min": 2,
2483
+ "max": 100,
2484
+ "label": {
2485
+ "zh": "至少多少步",
2486
+ "en": "Minimum steps",
2487
+ "zh-TW": "至少多少步",
2488
+ "ja-JP": "最少ステップ数",
2489
+ "ko-KR": "최소 단계 수",
2490
+ "de-DE": "Mindestens Schritte",
2491
+ "fr-FR": "Étapes au minimum",
2492
+ "es-ES": "Pasos como mínimo",
2493
+ "pt-BR": "Passos no mínimo",
2494
+ "ru-RU": "Шагов не меньше",
2495
+ "uk-UA": "Кроків щонайменше",
2496
+ "tr-TR": "En az adım",
2497
+ "fa-IR": "دست‌کم چند گام"
2498
+ },
2499
+ "help": {
2500
+ "zh": "少于这么多步的运行不问。",
2501
+ "en": "Runs with fewer steps aren't considered.",
2502
+ "zh-TW": "少於這麼多步的執行不問。",
2503
+ "ja-JP": "これより少ないステップの実行は尋ねません。",
2504
+ "ko-KR": "이보다 단계가 적은 실행은 묻지 않습니다.",
2505
+ "de-DE": "Läufe mit weniger Schritten werden nicht beurteilt.",
2506
+ "fr-FR": "Les exécutions plus courtes ne sont pas examinées.",
2507
+ "es-ES": "No se pregunta por ejecuciones con menos pasos.",
2508
+ "pt-BR": "Execuções com menos passos não são avaliadas.",
2509
+ "ru-RU": "О прогонах с меньшим числом шагов не спрашивается.",
2510
+ "uk-UA": "Про прогони з меншою кількістю кроків не питається.",
2511
+ "tr-TR": "Daha az adımlı çalışmalar sorulmaz.",
2512
+ "fa-IR": "دربارهٔ اجراهای با گام کمتر پرسیده نمی‌شود."
2513
+ }
2514
+ },
2515
+ {
2516
+ "key": "minCommands",
2517
+ "kind": "number",
2518
+ "default": 2,
2519
+ "min": 0,
2520
+ "max": 50,
2521
+ "label": {
2522
+ "zh": "至少多少条命令",
2523
+ "en": "Minimum commands",
2524
+ "zh-TW": "至少多少條指令",
2525
+ "ja-JP": "最少コマンド数",
2526
+ "ko-KR": "최소 명령 수",
2527
+ "de-DE": "Mindestens Befehle",
2528
+ "fr-FR": "Commandes au minimum",
2529
+ "es-ES": "Comandos como mínimo",
2530
+ "pt-BR": "Comandos no mínimo",
2531
+ "ru-RU": "Команд не меньше",
2532
+ "uk-UA": "Команд щонайменше",
2533
+ "tr-TR": "En az komut",
2534
+ "fa-IR": "دست‌کم چند فرمان"
2535
+ },
2536
+ "help": {
2537
+ "zh": "跑过的 shell 命令少于这么多的运行不问:做法总要做点什么。",
2538
+ "en": "Runs with fewer shell commands aren't considered: a procedure has to do something.",
2539
+ "zh-TW": "跑過的 shell 指令少於這麼多的執行不問:做法總要做點什麼。",
2540
+ "ja-JP": "実行したシェルコマンドがこれより少ない実行は尋ねません。手順は何かを実行するものです。",
2541
+ "ko-KR": "실행한 셸 명령이 이보다 적은 실행은 묻지 않습니다. 절차는 무언가를 실행합니다.",
2542
+ "de-DE": "Läufe mit weniger Shell-Befehlen werden nicht beurteilt: Ein Vorgehen tut etwas.",
2543
+ "fr-FR": "Les exécutions qui ont lancé moins de commandes shell ne sont pas examinées : une procédure agit.",
2544
+ "es-ES": "No se pregunta por ejecuciones que lanzaron menos comandos de shell: un procedimiento hace algo.",
2545
+ "pt-BR": "Execuções que rodaram menos comandos de shell não são avaliadas: um procedimento faz algo.",
2546
+ "ru-RU": "О прогонах, где shell-команд было меньше, не спрашивается: процедура что-то делает.",
2547
+ "uk-UA": "Про прогони, де shell-команд було менше, не питається: процедура щось робить.",
2548
+ "tr-TR": "Daha az kabuk komutu çalıştıran çalışmalar sorulmaz: bir yordam bir şey yapar.",
2549
+ "fa-IR": "دربارهٔ اجراهایی که فرمان shell کمتری اجرا کرده‌اند پرسیده نمی‌شود: روال کاری انجام می‌دهد."
2550
+ }
2551
+ },
2552
+ {
2553
+ "key": "maxPending",
2554
+ "kind": "number",
2555
+ "default": 3,
2556
+ "min": 1,
2557
+ "max": 20,
2558
+ "label": {
2559
+ "zh": "每个项目最多待审",
2560
+ "en": "Max pending drafts per project",
2561
+ "zh-TW": "每個專案最多待審",
2562
+ "ja-JP": "プロジェクトごとの保留下書き数",
2563
+ "ko-KR": "프로젝트당 대기 초안 수",
2564
+ "de-DE": "Wartende Entwürfe pro Projekt",
2565
+ "fr-FR": "Brouillons en attente par projet",
2566
+ "es-ES": "Borradores en espera por proyecto",
2567
+ "pt-BR": "Rascunhos aguardando por projeto",
2568
+ "ru-RU": "Черновиков в ожидании на проект",
2569
+ "uk-UA": "Чернеток в очікуванні на проєкт",
2570
+ "tr-TR": "Proje başına bekleyen taslak",
2571
+ "fa-IR": "پیش‌نویس‌های منتظر در هر پروژه"
2572
+ },
2573
+ "help": {
2574
+ "zh": "一个项目的草稿攒到这么多,就不再起草,等你先看。",
2575
+ "en": "Once a project has this many pending drafts, no more are made until you review them.",
2576
+ "zh-TW": "一個專案的草稿攢到這麼多,就不再起草,等你先看。",
2577
+ "ja-JP": "プロジェクトの保留中の下書きがこの数に達すると、あなたが確認するまで新しい下書きは作りません。",
2578
+ "ko-KR": "프로젝트의 대기 초안이 이만큼 쌓이면, 당신이 확인할 때까지 더 만들지 않습니다.",
2579
+ "de-DE": "Hat ein Projekt so viele wartende Entwürfe, werden keine weiteren erstellt, bis Sie sie angesehen haben.",
2580
+ "fr-FR": "Quand un projet a autant de brouillons en attente, plus aucun n'est créé tant que vous ne les avez pas regardés.",
2581
+ "es-ES": "Cuando un proyecto tiene tantos borradores en espera, no se crean más hasta que los hayas revisado.",
2582
+ "pt-BR": "Quando um projeto tem essa quantidade de rascunhos aguardando, nenhum outro é criado até você olhá-los.",
2583
+ "ru-RU": "Когда у проекта столько черновиков в ожидании, новые не создаются, пока вы их не посмотрите.",
2584
+ "uk-UA": "Коли у проєкту стільки чернеток в очікуванні, нові не створюються, доки ви їх не переглянете.",
2585
+ "tr-TR": "Bir projede bu kadar taslak beklediğinde, siz bakana kadar yenisi yapılmaz.",
2586
+ "fa-IR": "وقتی یک پروژه این تعداد پیش‌نویس منتظر داشته باشد، تا وقتی آن‌ها را نبینید پیش‌نویس تازه‌ای ساخته نمی‌شود."
2587
+ }
2588
+ }
2589
+ ]
2590
+ },
2269
2591
  {
2270
2592
  "name": "guard",
2271
2593
  "title": {
@@ -2320,7 +2642,7 @@
2320
2642
  },
2321
2643
  "summary": {
2322
2644
  "zh": "完全访问、Jev 审批、最小权限三种模式,用 /permissions 随时切换;需要授权时在状态栏提示你,可以只允许这一次,或这次对话都允许。开着它时,危险命令的把关也归它管。",
2323
- "en": "Full access, Jev approves, or minimal permissions, switched any time with /permissions. When a step needs your permission the status bar asks; allow it once or for the whole conversation. While it is on, it also handles the risky command guard.",
2645
+ "en": "Full access, Jev approves or Ask first; switch any time with /permissions. When a step needs your permission, the status bar asks; allow it once or for the whole conversation. While this feature is on, it also takes over the risky command guard.",
2324
2646
  "zh-TW": "完全存取、Jev 審批、最小權限三種模式,隨時可用 /permissions 切換。需要你授權時會在狀態列詢問,可以只允許這一次,或這次對話都允許。開啟時,危險指令的把關也由它負責。",
2325
2647
  "ja-JP": "フルアクセス、Jev が承認、最小権限の 3 つのモードを、/permissions でいつでも切り替えられます。許可が必要なステップではステータスバーでお知らせし、「今回のみ許可」か「この会話中は許可」を選べます。オンの間は、危険なコマンドのチェックもこの機能が担当します。",
2326
2648
  "ko-KR": "전체 접근, Jev 승인, 최소 권한 중 하나를 쓰며 /permissions로 언제든 전환합니다. 단계에 권한이 필요하면 상태 표시줄에서 묻고, 한 번만 허용하거나 대화 전체에 허용할 수 있습니다. 켜져 있는 동안에는 위험한 명령 차단도 이 기능이 맡습니다.",
@@ -2380,7 +2702,7 @@
2380
2702
  "value": "ask",
2381
2703
  "label": {
2382
2704
  "zh": "最小权限",
2383
- "en": "Minimal permissions",
2705
+ "en": "Ask first",
2384
2706
  "zh-TW": "最小權限",
2385
2707
  "ja-JP": "最小権限",
2386
2708
  "ko-KR": "최소 권한",
@@ -2397,7 +2719,7 @@
2397
2719
  ],
2398
2720
  "label": {
2399
2721
  "zh": "新对话的默认模式",
2400
- "en": "Mode of a new conversation",
2722
+ "en": "Mode for new conversations",
2401
2723
  "zh-TW": "新對話的預設模式",
2402
2724
  "ja-JP": "新しい会話のモード",
2403
2725
  "ko-KR": "새 대화의 모드",
@@ -2412,7 +2734,7 @@
2412
2734
  },
2413
2735
  "help": {
2414
2736
  "zh": "用 /permissions 选过之后,以你最后选的为准。",
2415
- "en": "Once you pick one with /permissions, your last pick is used.",
2737
+ "en": "Once you pick a mode with /permissions, your latest choice is used.",
2416
2738
  "zh-TW": "用 /permissions 選過之後,以你最後選的為準。",
2417
2739
  "ja-JP": "/permissions で選んだ後は、最後に選んだモードが使われます。",
2418
2740
  "ko-KR": "/permissions로 한 번 고르면 마지막으로 고른 모드를 사용합니다.",
@@ -2447,7 +2769,7 @@
2447
2769
  },
2448
2770
  "summary": {
2449
2771
  "zh": "改动文件或执行命令之前,对照你的硬约束检查一遍;子代理同样受这些约束限制。",
2450
- "en": "Checks a change or a command against your hard constraints first; sub-agents work under them too.",
2772
+ "en": "Checks each change or command against your hard constraints first; subagents follow them too.",
2451
2773
  "zh-TW": "改動檔案或執行指令之前,先對照你的硬性約束檢查一遍;子代理同樣受這些約束。",
2452
2774
  "ja-JP": "変更やコマンドを、まずあなたが設定した制約と照らし合わせます。サブエージェントにも同じ制約が適用されます。",
2453
2775
  "ko-KR": "변경이나 명령을 먼저 사용자의 제약 조건에 비추어 확인합니다. 하위 에이전트도 이 제약 조건을 따릅니다.",
@@ -2470,7 +2792,7 @@
2470
2792
  "max": 20,
2471
2793
  "label": {
2472
2794
  "zh": "每次最多对照的约束条数",
2473
- "en": "Constraints checked per call at most",
2795
+ "en": "Max constraints checked per call",
2474
2796
  "zh-TW": "每次呼叫最多對照的約束數",
2475
2797
  "ja-JP": "1 回の呼び出しで確認する制約の最大数",
2476
2798
  "ko-KR": "호출당 확인할 최대 제약 조건 수",
@@ -2538,6 +2860,267 @@
2538
2860
  }
2539
2861
  ]
2540
2862
  },
2863
+ {
2864
+ "name": "injection",
2865
+ "title": {
2866
+ "zh": "注入筛查",
2867
+ "en": "Injection screening",
2868
+ "zh-TW": "注入篩查",
2869
+ "ja-JP": "インジェクションの選別",
2870
+ "ko-KR": "주입 선별",
2871
+ "de-DE": "Injektionsprüfung",
2872
+ "fr-FR": "Filtrage des injections",
2873
+ "es-ES": "Filtrado de inyecciones",
2874
+ "pt-BR": "Triagem de injeções",
2875
+ "ru-RU": "Проверка на инъекции",
2876
+ "uk-UA": "Перевірка на ін'єкції",
2877
+ "tr-TR": "Enjeksiyon taraması",
2878
+ "fa-IR": "غربال تزریق"
2879
+ },
2880
+ "summary": {
2881
+ "zh": "模型读网页、搜索结果、MCP 结果和 shell 命令从别的机器取回的内容之前,扣下写给 AI 的指令;说明里夹带私货的 MCP 工具从列表里拿掉。",
2882
+ "en": "Withholds instructions aimed at an AI before the model reads web pages, search results, MCP responses and what shell commands fetch from other machines, and removes MCP tools whose descriptions contain such instructions.",
2883
+ "zh-TW": "模型讀網頁、搜尋結果、MCP 結果和 shell 指令從別的機器取回的內容之前,扣下寫給 AI 的指令;說明裡夾帶私貨的 MCP 工具從列表裡拿掉。",
2884
+ "ja-JP": "モデルが Web ページ、検索結果、MCP の応答、シェルコマンドが別のマシンから取得した内容を読む前に、AI に向けた指示を差し止めます。説明にそうした指示を含む MCP ツールは一覧から外します。",
2885
+ "ko-KR": "모델이 웹 페이지, 검색 결과, MCP 응답, 셸 명령이 다른 컴퓨터에서 가져온 내용을 읽기 전에 AI를 겨냥한 지시를 보류하고, 설명에 그런 지시를 담은 MCP 도구는 목록에서 뺍니다.",
2886
+ "de-DE": "Hält Anweisungen an eine KI zurück, bevor das Modell Webseiten, Suchergebnisse, MCP-Antworten und das liest, was Shell-Befehle von anderen Rechnern holen, und nimmt MCP-Werkzeuge, deren Beschreibungen solche Anweisungen enthalten, von der Werkzeugliste.",
2887
+ "fr-FR": "Retient les instructions destinées à une IA avant que le modèle lise des pages web, des résultats de recherche, des réponses MCP et ce que des commandes shell récupèrent sur d'autres machines, et retire de la liste les outils MCP dont la description contient de tels ordres.",
2888
+ "es-ES": "Retiene las instrucciones dirigidas a una IA antes de que el modelo lea páginas web, resultados de búsqueda, respuestas MCP y lo que los comandos de shell traen de otras máquinas, y quita de la lista las herramientas MCP cuyas descripciones llevan tales órdenes.",
2889
+ "pt-BR": "Retém instruções dirigidas a uma IA antes de o modelo ler páginas web, resultados de busca, respostas MCP e o que comandos de shell trazem de outras máquinas, e tira da lista as ferramentas MCP cujas descrições trazem ordens assim.",
2890
+ "ru-RU": "Задерживает инструкции, адресованные ИИ, прежде чем модель прочтёт веб-страницы, результаты поиска, ответы MCP и то, что shell-команды получают с других машин, и убирает из списка инструменты MCP, в описаниях которых есть такие указания.",
2891
+ "uk-UA": "Затримує інструкції, адресовані ШІ, перш ніж модель прочитає вебсторінки, результати пошуку, відповіді MCP і те, що shell-команди отримують з інших машин, і прибирає зі списку інструменти MCP, в описах яких є такі вказівки.",
2892
+ "tr-TR": "Model web sayfalarını, arama sonuçlarını, MCP yanıtlarını ve kabuk komutlarının başka makinelerden getirdiklerini okumadan önce yapay zekâya yönelik talimatları alıkoyar; açıklamasında böyle talimatlar taşıyan MCP araçlarını listeden çıkarır.",
2893
+ "fa-IR": "پیش از آنکه مدل صفحه‌های وب، نتایج جست‌وجو، پاسخ‌های MCP و آنچه فرمان‌های shell از ماشین‌های دیگر می‌آورند را بخواند، دستورهای خطاب به هوش مصنوعی را نگه می‌دارد و ابزارهای MCP را که توضیحشان چنین دستورهایی دارد از فهرست برمی‌دارد."
2894
+ },
2895
+ "defaultEnabled": true,
2896
+ "options": [
2897
+ {
2898
+ "key": "tools",
2899
+ "kind": "list",
2900
+ "default": [
2901
+ "web_fetch",
2902
+ "web_search",
2903
+ "browse",
2904
+ "mcp__*"
2905
+ ],
2906
+ "label": {
2907
+ "zh": "要筛的工具",
2908
+ "en": "Tools screened",
2909
+ "zh-TW": "要篩的工具",
2910
+ "ja-JP": "選別するツール",
2911
+ "ko-KR": "선별할 도구",
2912
+ "de-DE": "Geprüfte Werkzeuge",
2913
+ "fr-FR": "Outils filtrés",
2914
+ "es-ES": "Herramientas filtradas",
2915
+ "pt-BR": "Ferramentas triadas",
2916
+ "ru-RU": "Проверяемые инструменты",
2917
+ "uk-UA": "Інструменти, що перевіряються",
2918
+ "tr-TR": "Taranan araçlar",
2919
+ "fa-IR": "ابزارهایی که غربال می‌شوند"
2920
+ },
2921
+ "help": {
2922
+ "zh": "工具名,或以 * 结尾的前缀;mcp__* 是所有 MCP 服务器。",
2923
+ "en": "Tool names, or a prefix ending in *; mcp__* covers every MCP server.",
2924
+ "zh-TW": "工具名,或以 * 結尾的前綴;mcp__* 是所有 MCP 伺服器。",
2925
+ "ja-JP": "ツール名、または * で終わる接頭辞。mcp__* はすべての MCP サーバーです。",
2926
+ "ko-KR": "도구 이름 또는 *로 끝나는 접두사. mcp__*는 모든 MCP 서버입니다.",
2927
+ "de-DE": "Werkzeugnamen oder ein Präfix, das auf * endet; mcp__* steht für jeden MCP-Server.",
2928
+ "fr-FR": "Noms d'outils, ou un préfixe terminé par * ; mcp__* désigne tous les serveurs MCP.",
2929
+ "es-ES": "Nombres de herramientas, o un prefijo que termina en *; mcp__* es cualquier servidor MCP.",
2930
+ "pt-BR": "Nomes de ferramentas, ou um prefixo terminado em *; mcp__* é qualquer servidor MCP.",
2931
+ "ru-RU": "Имена инструментов или префикс, оканчивающийся на *; mcp__* — это все MCP-серверы.",
2932
+ "uk-UA": "Назви інструментів або префікс, що закінчується на *; mcp__* — це всі MCP-сервери.",
2933
+ "tr-TR": "Araç adları ya da * ile biten bir önek; mcp__* tüm MCP sunucularıdır.",
2934
+ "fa-IR": "نام ابزارها، یا پیشوندی که با * تمام می‌شود؛ mcp__* یعنی همهٔ سرورهای MCP."
2935
+ }
2936
+ },
2937
+ {
2938
+ "key": "fetchCommands",
2939
+ "kind": "list",
2940
+ "default": [
2941
+ "curl",
2942
+ "wget",
2943
+ "gh",
2944
+ "glab",
2945
+ "lynx",
2946
+ "w3m",
2947
+ "Invoke-WebRequest",
2948
+ "Invoke-RestMethod",
2949
+ "iwr",
2950
+ "irm"
2951
+ ],
2952
+ "label": {
2953
+ "zh": "算作外取的命令",
2954
+ "en": "Fetching commands",
2955
+ "zh-TW": "算作外取的指令",
2956
+ "ja-JP": "外部取得とみなすコマンド",
2957
+ "ko-KR": "외부 가져오기로 보는 명령",
2958
+ "de-DE": "Abrufende Befehle",
2959
+ "fr-FR": "Commandes de récupération",
2960
+ "es-ES": "Comandos que descargan",
2961
+ "pt-BR": "Comandos que buscam conteúdo",
2962
+ "ru-RU": "Команды загрузки",
2963
+ "uk-UA": "Команди завантаження",
2964
+ "tr-TR": "Getiren komutlar",
2965
+ "fa-IR": "فرمان‌های دریافت"
2966
+ },
2967
+ "help": {
2968
+ "zh": "bash 或 PowerShell 命令用到这些程序时,输出要筛;给的地址全在本机(localhost)时不筛,gh 和 glab 总要筛。留空:不筛 shell 输出。",
2969
+ "en": "When a bash or PowerShell command runs one of these programs, its output is screened unless every address it's given is on this machine (localhost); gh and glab output is always screened. Empty: no shell output is screened.",
2970
+ "zh-TW": "bash 或 PowerShell 指令用到這些程式時,輸出要篩;給的位址全在本機(localhost)時不篩,gh 和 glab 一律要篩。留空:不篩 shell 輸出。",
2971
+ "ja-JP": "bash または PowerShell のコマンドがこれらのプログラムを実行すると、その出力を選別します。渡されたアドレスがすべてこのマシン(localhost)なら選別しません。gh と glab は常に選別します。空にすると、シェルの出力は選別しません。",
2972
+ "ko-KR": "bash나 PowerShell 명령이 이 프로그램 중 하나를 실행하면 그 출력을 선별합니다. 주어진 주소가 모두 이 컴퓨터(localhost)이면 선별하지 않으며, gh와 glab은 항상 선별합니다. 비워 두면 셸 출력은 선별하지 않습니다.",
2973
+ "de-DE": "Führt ein bash- oder PowerShell-Befehl eines dieser Programme aus, wird seine Ausgabe geprüft, außer alle angegebenen Adressen liegen auf diesem Rechner (localhost); gh und glab immer. Leer: Keine Shell-Ausgabe wird geprüft.",
2974
+ "fr-FR": "Quand une commande bash ou PowerShell lance l'un de ces programmes, sa sortie est filtrée, sauf si toutes les adresses données sont sur cette machine (localhost) ; gh et glab le sont toujours. Vide : aucune sortie shell n'est filtrée.",
2975
+ "es-ES": "Cuando un comando de bash o PowerShell ejecuta uno de estos programas, su salida se filtra, salvo que todas las direcciones que recibe estén en esta máquina (localhost); gh y glab siempre se filtran. Vacío: no se filtra ninguna salida de shell.",
2976
+ "pt-BR": "Quando um comando bash ou PowerShell executa um destes programas, a saída é triada, a menos que todos os endereços dados estejam nesta máquina (localhost); gh e glab sempre são. Vazio: nenhuma saída de shell é triada.",
2977
+ "ru-RU": "Когда команда bash или PowerShell запускает одну из этих программ, её вывод проверяется, если только все переданные адреса не на этой машине (localhost); gh и glab проверяются всегда. Пусто: вывод shell не проверяется.",
2978
+ "uk-UA": "Коли команда bash чи PowerShell запускає одну з цих програм, її вивід перевіряється, якщо лише всі передані адреси не на цій машині (localhost); gh і glab перевіряються завжди. Порожньо: вивід shell не перевіряється.",
2979
+ "tr-TR": "Bir bash veya PowerShell komutu bu programlardan birini çalıştırdığında çıktısı taranır; verilen tüm adresler bu makinedeyse (localhost) taranmaz, gh ve glab her zaman taranır. Boş: hiçbir kabuk çıktısı taranmaz.",
2980
+ "fa-IR": "وقتی یک فرمان bash یا PowerShell یکی از این برنامه‌ها را اجرا کند، خروجی‌اش غربال می‌شود، مگر اینکه همهٔ نشانی‌هایی که می‌گیرد روی همین ماشین (localhost) باشند؛ gh و glab همیشه غربال می‌شوند. خالی: هیچ خروجی shell غربال نمی‌شود."
2981
+ }
2982
+ },
2983
+ {
2984
+ "key": "waitMs",
2985
+ "kind": "number",
2986
+ "default": 6000,
2987
+ "min": 500,
2988
+ "max": 30000,
2989
+ "unit": {
2990
+ "zh": "毫秒",
2991
+ "en": "ms",
2992
+ "zh-TW": "毫秒",
2993
+ "ja-JP": "ミリ秒",
2994
+ "ko-KR": "밀리초",
2995
+ "de-DE": "ms",
2996
+ "fr-FR": "ms",
2997
+ "es-ES": "ms",
2998
+ "pt-BR": "ms",
2999
+ "ru-RU": "мс",
3000
+ "uk-UA": "мс",
3001
+ "tr-TR": "ms",
3002
+ "fa-IR": "میلی‌ثانیه"
3003
+ },
3004
+ "label": {
3005
+ "zh": "最多等待",
3006
+ "en": "Wait at most",
3007
+ "zh-TW": "最多等待",
3008
+ "ja-JP": "最大待機時間",
3009
+ "ko-KR": "최대 대기 시간",
3010
+ "de-DE": "Maximale Wartezeit",
3011
+ "fr-FR": "Attendre au plus",
3012
+ "es-ES": "Espera máxima",
3013
+ "pt-BR": "Esperar no máximo",
3014
+ "ru-RU": "Ждать не дольше",
3015
+ "uk-UA": "Чекати щонайбільше",
3016
+ "tr-TR": "En fazla bekleme",
3017
+ "fa-IR": "حداکثر انتظار"
3018
+ },
3019
+ "help": {
3020
+ "zh": "超时就只按规则扣下明显的注入用语,判定照样记账。",
3021
+ "en": "After this, rules withhold only obvious injection phrases; the verdict is still recorded.",
3022
+ "zh-TW": "逾時就只依規則扣下明顯的注入用語,判定照樣記錄。",
3023
+ "ja-JP": "これを過ぎると、明らかなインジェクション表現だけをルールで差し止めます。判定は記録されます。",
3024
+ "ko-KR": "이 시간이 지나면 명백한 주입 문구만 규칙으로 보류합니다. 판정은 그대로 기록됩니다.",
3025
+ "de-DE": "Danach werden nur eindeutige Injektionsformulierungen per Regel zurückgehalten; das Urteil wird trotzdem aufgezeichnet.",
3026
+ "fr-FR": "Au-delà, seules les formulations d'injection évidentes sont retenues, par règle ; le verdict est tout de même enregistré.",
3027
+ "es-ES": "Después, solo se retienen por regla las frases de inyección evidentes; el veredicto se registra igualmente.",
3028
+ "pt-BR": "Depois disso, só as frases de injeção evidentes são retidas, por regra; o veredito é registrado mesmo assim.",
3029
+ "ru-RU": "После этого по правилу задерживаются только явные фразы-инъекции; вердикт всё равно записывается.",
3030
+ "uk-UA": "Після цього за правилом затримуються лише явні фрази-ін'єкції; вердикт однаково записується.",
3031
+ "tr-TR": "Bundan sonra yalnızca açık enjeksiyon ifadeleri kuralla alıkonur; karar yine de kaydedilir.",
3032
+ "fa-IR": "پس از این، فقط عبارت‌های آشکار تزریق طبق قاعده نگه داشته می‌شوند؛ رأی همچنان ثبت می‌شود."
3033
+ }
3034
+ },
3035
+ {
3036
+ "key": "descriptions",
3037
+ "kind": "boolean",
3038
+ "default": true,
3039
+ "label": {
3040
+ "zh": "筛 MCP 工具说明",
3041
+ "en": "Screen MCP tool descriptions",
3042
+ "zh-TW": "篩 MCP 工具說明",
3043
+ "ja-JP": "MCP ツールの説明を選別",
3044
+ "ko-KR": "MCP 도구 설명 선별",
3045
+ "de-DE": "MCP-Werkzeugbeschreibungen prüfen",
3046
+ "fr-FR": "Filtrer les descriptions d'outils MCP",
3047
+ "es-ES": "Filtrar las descripciones de herramientas MCP",
3048
+ "pt-BR": "Triar descrições de ferramentas MCP",
3049
+ "ru-RU": "Проверять описания инструментов MCP",
3050
+ "uk-UA": "Перевіряти описи інструментів MCP",
3051
+ "tr-TR": "MCP araç açıklamalarını tara",
3052
+ "fa-IR": "غربال توضیح ابزارهای MCP"
3053
+ },
3054
+ "help": {
3055
+ "zh": "说明里要 AI 做额外事情的 MCP 工具从列表里拿掉(tool.description)。",
3056
+ "en": "MCP tools whose descriptions ask the AI to do more than use the tool are removed from the list (tool.description).",
3057
+ "zh-TW": "說明裡要 AI 做額外事情的 MCP 工具從列表裡拿掉(tool.description)。",
3058
+ "ja-JP": "使うこと以上を AI に求める説明を持つ MCP ツールを一覧から外します(tool.description)。",
3059
+ "ko-KR": "사용하는 것 이상을 AI에게 요구하는 설명을 가진 MCP 도구는 목록에서 뺍니다(tool.description).",
3060
+ "de-DE": "MCP-Werkzeuge, deren Beschreibungen von der KI mehr verlangen als ihre Nutzung, werden von der Liste genommen (tool.description).",
3061
+ "fr-FR": "Les outils MCP dont la description demande à l'IA plus que de les utiliser sont retirés de la liste (tool.description).",
3062
+ "es-ES": "Las herramientas MCP cuyas descripciones piden a la IA más que usarlas se quitan de la lista (tool.description).",
3063
+ "pt-BR": "Ferramentas MCP cujas descrições pedem à IA mais do que usá-las saem da lista (tool.description).",
3064
+ "ru-RU": "Инструменты MCP, описания которых требуют от ИИ большего, чем их использование, убираются из списка (tool.description).",
3065
+ "uk-UA": "Інструменти MCP, описи яких вимагають від ШІ більшого, ніж їх використання, прибираються зі списку (tool.description).",
3066
+ "tr-TR": "Açıklaması yapay zekâdan onu kullanmaktan fazlasını isteyen MCP araçları listeden çıkarılır (tool.description).",
3067
+ "fa-IR": "ابزارهای MCP که توضیحشان از هوش مصنوعی چیزی بیش از به‌کار بردنشان می‌خواهد از فهرست برداشته می‌شوند (tool.description)."
3068
+ }
3069
+ },
3070
+ {
3071
+ "key": "descriptionWaitMs",
3072
+ "kind": "number",
3073
+ "default": 8000,
3074
+ "min": 500,
3075
+ "max": 30000,
3076
+ "unit": {
3077
+ "zh": "毫秒",
3078
+ "en": "ms",
3079
+ "zh-TW": "毫秒",
3080
+ "ja-JP": "ミリ秒",
3081
+ "ko-KR": "밀리초",
3082
+ "de-DE": "ms",
3083
+ "fr-FR": "ms",
3084
+ "es-ES": "ms",
3085
+ "pt-BR": "ms",
3086
+ "ru-RU": "мс",
3087
+ "uk-UA": "мс",
3088
+ "tr-TR": "ms",
3089
+ "fa-IR": "میلی‌ثانیه"
3090
+ },
3091
+ "label": {
3092
+ "zh": "工具说明最多等待",
3093
+ "en": "Wait for tool description verdicts at most",
3094
+ "zh-TW": "工具說明最多等待",
3095
+ "ja-JP": "ツール説明の最大待ち時間",
3096
+ "ko-KR": "도구 설명 최대 대기",
3097
+ "de-DE": "Höchstens auf Werkzeugbeschreibungen warten",
3098
+ "fr-FR": "Attente maximale pour les descriptions d'outils",
3099
+ "es-ES": "Espera máxima para las descripciones de herramientas",
3100
+ "pt-BR": "Espera máxima pelas descrições de ferramentas",
3101
+ "ru-RU": "Максимальное ожидание описаний инструментов",
3102
+ "uk-UA": "Максимальне очікування описів інструментів",
3103
+ "tr-TR": "Araç açıklamaları için en fazla bekleme",
3104
+ "fa-IR": "بیشینهٔ انتظار برای توضیح ابزارها"
3105
+ },
3106
+ "help": {
3107
+ "zh": "第一次见到的 MCP 工具,回合最多等这么久;超时先按规则处理,判定到了再更新。",
3108
+ "en": "How long a turn waits for verdicts on MCP tools it hasn't seen before. After this, rules decide until the verdict arrives.",
3109
+ "zh-TW": "第一次見到的 MCP 工具,回合最多等這麼久;逾時先按規則處理,判定到了再更新。",
3110
+ "ja-JP": "初めて見る MCP ツールの判定をターンが待つ最大時間です。過ぎるとルールで判断し、判定が届いたら更新します。",
3111
+ "ko-KR": "처음 보는 MCP 도구에 대한 판정을 한 턴이 기다리는 최대 시간입니다. 넘으면 판정이 올 때까지 규칙으로 결정합니다.",
3112
+ "de-DE": "Wie lange ein Zug auf Urteile zu MCP-Werkzeugen wartet, die er noch nicht kennt. Danach entscheiden die Regeln, bis das Urteil eintrifft.",
3113
+ "fr-FR": "Combien de temps un tour attend les verdicts sur des outils MCP qu'il n'a jamais vus. Au-delà, les règles décident jusqu'à l'arrivée du verdict.",
3114
+ "es-ES": "Cuánto espera un turno los veredictos sobre herramientas MCP que no ha visto antes. Pasado ese tiempo, deciden las reglas hasta que llegue el veredicto.",
3115
+ "pt-BR": "Quanto tempo um turno espera os veredictos sobre ferramentas MCP que ainda não viu. Depois disso, as regras decidem até o veredicto chegar.",
3116
+ "ru-RU": "Сколько ход ждёт вердиктов по инструментам MCP, которых он раньше не видел. Дальше до прихода вердикта решают правила.",
3117
+ "uk-UA": "Скільки хід чекає вердиктів щодо інструментів MCP, яких він раніше не бачив. Далі до надходження вердикту вирішують правила.",
3118
+ "tr-TR": "Bir turun daha önce görmediği MCP araçları için kararları ne kadar beklediği. Bundan sonra karar gelene kadar kurallar belirler.",
3119
+ "fa-IR": "یک نوبت حداکثر چه مدت برای حکم دربارهٔ ابزارهای MCP که پیش‌تر ندیده منتظر می‌ماند. پس از آن تا رسیدن حکم، قاعده‌ها تصمیم می‌گیرند."
3120
+ }
3121
+ }
3122
+ ]
3123
+ },
2541
3124
  {
2542
3125
  "name": "admission",
2543
3126
  "title": {
@@ -2557,7 +3140,7 @@
2557
3140
  },
2558
3141
  "summary": {
2559
3142
  "zh": "控制多长的工具输出、以什么方式进入上下文。",
2560
- "en": "Controls how long tool output enters the context.",
3143
+ "en": "Decides which parts of long tool output enter the context.",
2561
3144
  "zh-TW": "控制很長的工具輸出以什麼方式進入上下文。",
2562
3145
  "ja-JP": "長いツール出力をどのようにコンテキストに入れるかを制御します。",
2563
3146
  "ko-KR": "긴 도구 출력이 컨텍스트에 어떻게 들어갈지 정합니다.",
@@ -2691,7 +3274,7 @@
2691
3274
  },
2692
3275
  "help": {
2693
3276
  "zh": "托管判定器把多块放进一个请求,状态只计费一次;本地判定器始终一次一块。",
2694
- "en": "A hosted judge takes many chunks in one request, the state billed once; the local judge takes one at a time.",
3277
+ "en": "A hosted judge takes many chunks in one request, with the shared context billed once; the local judge takes one at a time.",
2695
3278
  "zh-TW": "託管判定器把多塊放進一個請求,狀態只計費一次;本機判定器一律一次一塊。",
2696
3279
  "ja-JP": "ホスト型の判定器は多くのチャンクを 1 回のリクエストで受け取り、状態の課金は 1 回だけです。ローカルの判定器は 1 つずつ処理します。",
2697
3280
  "ko-KR": "호스팅 판정기는 여러 청크를 한 번의 요청으로 받으며 상태는 한 번만 과금됩니다. 로컬 판정기는 한 번에 하나씩 처리합니다.",
@@ -2743,7 +3326,7 @@
2743
3326
  },
2744
3327
  "help": {
2745
3328
  "zh": "超时就整段放行,判定只记账。",
2746
- "en": "After this the output goes in whole; the verdict is only recorded.",
3329
+ "en": "After this, the full output goes in; the verdict is only recorded.",
2747
3330
  "zh-TW": "超過這個時間,輸出就整段放行,判定結果只記錄下來。",
2748
3331
  "ja-JP": "これを過ぎると出力をそのまますべて取り込み、判定は記録だけします。",
2749
3332
  "ko-KR": "이 시간이 지나면 출력을 통째로 넣고, 판정은 기록만 합니다.",
@@ -2841,7 +3424,7 @@
2841
3424
  "value": "jev",
2842
3425
  "label": {
2843
3426
  "zh": "再由判定器挑选剩余部分",
2844
- "en": "Also let the judge select from the rest",
3427
+ "en": "Also let the judge pick from the rest",
2845
3428
  "zh-TW": "再由判定器從其餘部分挑選",
2846
3429
  "ja-JP": "残りからも判定器に選ばせる",
2847
3430
  "ko-KR": "나머지에서도 판정기가 선별",
@@ -2878,7 +3461,7 @@
2878
3461
  },
2879
3462
  "help": {
2880
3463
  "zh": "Vitest 等会因此只输出失败和汇总。",
2881
- "en": "Vitest and others then print failures and the summary only.",
3464
+ "en": "Vitest and other runners then print only failures and the summary.",
2882
3465
  "zh-TW": "Vitest 等工具因此只會輸出失敗和摘要。",
2883
3466
  "ja-JP": "これにより、Vitest などは失敗とサマリーだけを出力します。",
2884
3467
  "ko-KR": "그러면 Vitest 등은 실패와 요약만 출력합니다.",
@@ -2913,7 +3496,7 @@
2913
3496
  },
2914
3497
  "summary": {
2915
3498
  "zh": "上下文吃紧时,把用不上的旧结果换成占位。",
2916
- "en": "Replaces stale results with tombstones when the context gets tight.",
3499
+ "en": "Replaces stale results with placeholders when the context gets tight.",
2917
3500
  "zh-TW": "上下文吃緊時,把用不上的舊結果換成佔位文字。",
2918
3501
  "ja-JP": "コンテキストが逼迫すると、古い結果をプレースホルダーに置き換えます。",
2919
3502
  "ko-KR": "컨텍스트가 빠듯해지면 오래된 결과를 자리 표시로 바꿉니다.",
@@ -3071,7 +3654,7 @@
3071
3654
  },
3072
3655
  "help": {
3073
3656
  "zh": "这次请求最多等这么久;来晚的判定在下一次请求生效。",
3074
- "en": "This request waits this long; verdicts that come later apply at the next request.",
3657
+ "en": "The current request waits this long; later verdicts apply from the next request on.",
3075
3658
  "zh-TW": "這次請求最多等這麼久;來晚的判定在下一次請求時生效。",
3076
3659
  "ja-JP": "今回のリクエストはこの時間だけ待ちます。遅れて届いた判定は次のリクエストで反映されます。",
3077
3660
  "ko-KR": "이번 요청은 이 시간만큼 기다리며, 늦게 온 판정은 다음 요청에 적용됩니다.",
@@ -3285,7 +3868,7 @@
3285
3868
  },
3286
3869
  "label": {
3287
3870
  "zh": "小于此的历史不受预算挤压",
3288
- "en": "Histories this small are not squeezed",
3871
+ "en": "Leave histories smaller than this alone",
3289
3872
  "zh-TW": "短於此的歷史不受預算擠壓",
3290
3873
  "ja-JP": "これより小さい履歴は予算で削らない",
3291
3874
  "ko-KR": "이보다 짧은 기록은 줄이지 않음",
@@ -3342,7 +3925,7 @@
3342
3925
  },
3343
3926
  "summary": {
3344
3927
  "zh": "每个会改文件的回合,在第一次改动前给工作区拍一张快照,存在 mu 自己的影子 git 目录里,不碰你的仓库。/rewind 让文件和对话一起回到那一刻,/rewind undo 撤销回退。",
3345
- "en": "Before the first change of every turn that edits files, snapshots the working tree into mu's own shadow git directory, never touching your repository. /rewind takes files and conversation back, /rewind undo takes the rewind back.",
3928
+ "en": "Before the first file change in each turn, snapshots the working tree into mu's own shadow git directory, without touching your repository. /rewind restores files and the conversation; /rewind undo reverses a rewind.",
3346
3929
  "zh-TW": "每一輪第一次改動檔案之前,先為工作區拍一張快照,存在 mu 自己的影子 git 目錄裡,從不碰你的儲存庫。/rewind 讓檔案和對話一起回到那一刻,/rewind undo 撤銷這次回退。",
3347
3930
  "ja-JP": "ファイルを編集するターンでは、最初の変更の前に作業ツリーのスナップショットを mu 専用のシャドー git ディレクトリに保存し、あなたのリポジトリには触れません。/rewind でファイルと会話を巻き戻し、/rewind undo で巻き戻しを取り消します。",
3348
3931
  "ko-KR": "파일을 편집하는 모든 턴에서 첫 변경 전에 작업 트리의 스냅샷을 mu 전용 섀도 git 디렉토리에 저장하며, 사용자의 저장소는 건드리지 않습니다. /rewind는 파일과 대화를 되돌리고, /rewind undo는 되감기를 취소합니다.",
@@ -3378,7 +3961,7 @@
3378
3961
  },
3379
3962
  "help": {
3380
3963
  "zh": "留空则放在 mu 主目录的 mu/checkpoints 下,每个项目一个影子仓库。",
3381
- "en": "Empty means mu/checkpoints in the mu home, one shadow repository per project.",
3964
+ "en": "Empty means mu/checkpoints in mu's home folder, with one shadow repository per project.",
3382
3965
  "zh-TW": "留空則放在 mu 主目錄的 mu/checkpoints 下,每個專案一個影子儲存庫。",
3383
3966
  "ja-JP": "空欄の場合は mu のホームにある mu/checkpoints に保存し、プロジェクトごとに 1 つのシャドーリポジトリを使います。",
3384
3967
  "ko-KR": "비워 두면 mu 홈의 mu/checkpoints를 쓰며, 프로젝트마다 섀도 저장소를 하나씩 둡니다.",
@@ -3511,7 +4094,7 @@
3511
4094
  "max": 1000000,
3512
4095
  "label": {
3513
4096
  "zh": "一次快照最多的文件数",
3514
- "en": "Most files a snapshot takes in",
4097
+ "en": "Max files per snapshot",
3515
4098
  "zh-TW": "一次快照最多的檔案數",
3516
4099
  "ja-JP": "1 回のスナップショットに含める最大ファイル数",
3517
4100
  "ko-KR": "스냅샷 한 번에 담는 최대 파일 수",
@@ -3526,7 +4109,7 @@
3526
4109
  },
3527
4110
  "help": {
3528
4111
  "zh": "要拍的文件更多时,这个会话就不拍检查点,并说一次原因。你的主目录和 mu 自己的目录从来不拍。",
3529
- "en": "With more files to take in, the session goes without checkpoints and says so once. Your home folder and mu's own folders are never snapshotted.",
4112
+ "en": "With more files than this, the session runs without checkpoints and tells you once. Your home folder and mu's own folders are never snapshotted.",
3530
4113
  "zh-TW": "要拍的檔案更多時,這個對話就不建立檢查點,並說明一次原因。你的主目錄和 mu 自己的目錄從來不拍。",
3531
4114
  "ja-JP": "これより多くのファイルを取り込む場合、そのセッションはチェックポイントなしで進み、その旨を一度だけ伝えます。ホームフォルダーと mu 自身のフォルダーはスナップショットの対象になりません。",
3532
4115
  "ko-KR": "담을 파일이 이보다 많으면 해당 세션은 체크포인트 없이 진행되며, 그 사실을 한 번 알려 줍니다. 홈 폴더와 mu 자체 폴더는 스냅샷에 넣지 않습니다.",
@@ -3563,7 +4146,7 @@
3563
4146
  "max": 100000,
3564
4147
  "label": {
3565
4148
  "zh": "一次快照最多的总大小",
3566
- "en": "Most a snapshot takes in, in all",
4149
+ "en": "Max total snapshot size",
3567
4150
  "zh-TW": "一次快照最多的總大小",
3568
4151
  "ja-JP": "1 回のスナップショットの合計サイズの上限",
3569
4152
  "ko-KR": "스냅샷 한 번의 최대 전체 크기",
@@ -3578,7 +4161,7 @@
3578
4161
  },
3579
4162
  "help": {
3580
4163
  "zh": "要拍的文件加起来更大时,这个会话就不拍检查点,并说一次原因。",
3581
- "en": "With more to take in, the session goes without checkpoints and says so once.",
4164
+ "en": "Above this, the session runs without checkpoints and tells you once.",
3582
4165
  "zh-TW": "要拍的檔案加起來更大時,這個對話就不建立檢查點,並說明一次原因。",
3583
4166
  "ja-JP": "これより多くを取り込む場合、そのセッションはチェックポイントなしで進み、その旨を一度だけ伝えます。",
3584
4167
  "ko-KR": "담을 양이 이보다 많으면 해당 세션은 체크포인트 없이 진행되며, 그 사실을 한 번 알려 줍니다.",
@@ -3650,7 +4233,7 @@
3650
4233
  "max": 600000,
3651
4234
  "label": {
3652
4235
  "zh": "单次快照最长用时",
3653
- "en": "Longest a snapshot may take",
4236
+ "en": "Max time for a snapshot",
3654
4237
  "zh-TW": "單次快照的時限",
3655
4238
  "ja-JP": "スナップショットにかけられる最大時間",
3656
4239
  "ko-KR": "스냅샷 최대 소요 시간",
@@ -3665,7 +4248,7 @@
3665
4248
  },
3666
4249
  "help": {
3667
4250
  "zh": "超时则本回合不拍快照,工具照常执行。",
3668
- "en": "Past this the turn goes without a checkpoint; the tool call still runs.",
4251
+ "en": "Past this, the turn runs without a checkpoint; the tool call still runs.",
3669
4252
  "zh-TW": "超過這個時間,這一輪就不建立檢查點;工具呼叫照常執行。",
3670
4253
  "ja-JP": "これを過ぎると、そのターンはチェックポイントなしで進みます。ツールの呼び出しはそのまま実行されます。",
3671
4254
  "ko-KR": "이 시간을 넘기면 해당 턴은 체크포인트 없이 진행되며, 도구 호출은 그대로 실행됩니다.",
@@ -3737,7 +4320,7 @@
3737
4320
  },
3738
4321
  "help": {
3739
4322
  "zh": "到时未答就继续原来的工作。0 表示一直等。",
3740
- "en": "Unanswered, the run carries on. 0 waits forever.",
4323
+ "en": "If you don't answer, the run continues. 0 waits forever.",
3741
4324
  "zh-TW": "沒有回覆就繼續原本的工作。0 表示一直等。",
3742
4325
  "ja-JP": "返答がなければ、そのまま作業を続けます。0 の場合はいつまでも待ちます。",
3743
4326
  "ko-KR": "응답이 없으면 실행을 계속합니다. 0이면 무기한 기다립니다.",
@@ -3787,7 +4370,7 @@
3787
4370
  },
3788
4371
  "summary": {
3789
4372
  "zh": "发现偏离目标和原地打转。",
3790
- "en": "Notices drift from the goal and going in circles.",
4373
+ "en": "Catches drift from the goal and the agent going in circles.",
3791
4374
  "zh-TW": "發現偏離目標和原地打轉。",
3792
4375
  "ja-JP": "目標からの逸脱と堂々巡りを検知します。",
3793
4376
  "ko-KR": "목표에서 벗어나거나 제자리를 맴도는 것을 알아차립니다.",
@@ -3810,7 +4393,7 @@
3810
4393
  "max": 100,
3811
4394
  "label": {
3812
4395
  "zh": "每隔几次工具调用检查",
3813
- "en": "Check every this many tool calls",
4396
+ "en": "Tool calls between checks",
3814
4397
  "zh-TW": "每隔幾次工具呼叫檢查一次",
3815
4398
  "ja-JP": "確認の間隔(ツール呼び出し回数)",
3816
4399
  "ko-KR": "확인 간격(도구 호출 수)",
@@ -3854,14 +4437,14 @@
3854
4437
  "max": 100,
3855
4438
  "label": {
3856
4439
  "zh": "观察窗口",
3857
- "en": "Window",
4440
+ "en": "Recent calls checked",
3858
4441
  "zh-TW": "觀察視窗",
3859
4442
  "ja-JP": "観察ウィンドウ",
3860
4443
  "ko-KR": "관찰 구간",
3861
4444
  "de-DE": "Beobachtungsfenster",
3862
4445
  "fr-FR": "Fenêtre d’observation",
3863
- "es-ES": "Ventana",
3864
- "pt-BR": "Janela",
4446
+ "es-ES": "Llamadas recientes revisadas",
4447
+ "pt-BR": "Chamadas recentes verificadas",
3865
4448
  "ru-RU": "Окно наблюдения",
3866
4449
  "uk-UA": "Вікно спостереження",
3867
4450
  "tr-TR": "Gözlem penceresi",
@@ -3889,7 +4472,7 @@
3889
4472
  },
3890
4473
  "summary": {
3891
4474
  "zh": "接本机已装的语言服务器(不代装),只留这次改动新引入的报错,由判定器决定何时告诉模型。",
3892
- "en": "Uses the language servers already installed here (installs none), keeps only what an edit newly introduced, and lets the judge pick the moment to tell the model.",
4475
+ "en": "Uses language servers already installed on this machine (it installs none), keeps only diagnostics an edit newly introduced and lets the judge decide when to tell the model.",
3893
4476
  "zh-TW": "使用本機已安裝的語言伺服器(不會代為安裝),只保留這次改動新引入的問題,由判定器決定何時告訴模型。",
3894
4477
  "ja-JP": "このマシンにインストール済みの言語サーバーを使い(新たにはインストールしません)、編集で新たに生じた診断だけを残して、モデルに伝えるタイミングを判定器に選ばせます。",
3895
4478
  "ko-KR": "이 컴퓨터에 이미 설치된 언어 서버를 사용하고(따로 설치하지 않음), 편집으로 새로 생긴 진단만 남기며, 모델에게 알릴 시점은 판정기가 고릅니다.",
@@ -3910,7 +4493,7 @@
3910
4493
  "default": true,
3911
4494
  "label": {
3912
4495
  "zh": "使用内置的常见服务器表",
3913
- "en": "Use the built-in table of well-known servers",
4496
+ "en": "Use the built-in list of well-known servers",
3914
4497
  "zh-TW": "使用內建的常見伺服器清單",
3915
4498
  "ja-JP": "組み込みの主要サーバー一覧を使う",
3916
4499
  "ko-KR": "잘 알려진 서버의 내장 목록 사용",
@@ -3925,7 +4508,7 @@
3925
4508
  },
3926
4509
  "help": {
3927
4510
  "zh": "TypeScript、Python、Go、Rust、C/C++ 的常见服务器,只在 PATH 上查找。自定义的服务器在设置文件里添加。",
3928
- "en": "Well-known servers for TypeScript, Python, Go, Rust and C/C++, looked up on PATH only. Your own go under features.lsp.servers in mu.json.",
4511
+ "en": "Well-known servers for TypeScript, Python, Go, Rust and C/C++, found on PATH only. Add your own under features.lsp.servers in mu.json.",
3929
4512
  "zh-TW": "TypeScript、Python、Go、Rust 和 C/C++ 的常見伺服器,只在 PATH 上尋找。自訂的伺服器寫在 mu.json 的 features.lsp.servers 下。",
3930
4513
  "ja-JP": "TypeScript、Python、Go、Rust、C/C++ の主要なサーバーを PATH 上でのみ探します。独自のサーバーは mu.json の features.lsp.servers に書きます。",
3931
4514
  "ko-KR": "TypeScript, Python, Go, Rust, C/C++용으로 잘 알려진 서버이며, PATH에서만 찾습니다. 직접 추가하는 서버는 mu.json의 features.lsp.servers에 넣습니다.",
@@ -3968,7 +4551,7 @@
3968
4551
  "default": false,
3969
4552
  "label": {
3970
4553
  "zh": "子代理也启动语言服务器",
3971
- "en": "Sub-agents start language servers too",
4554
+ "en": "Subagents start language servers too",
3972
4555
  "zh-TW": "子代理也啟動語言伺服器",
3973
4556
  "ja-JP": "サブエージェントでも言語サーバーを起動",
3974
4557
  "ko-KR": "하위 에이전트도 언어 서버 시작",
@@ -3983,7 +4566,7 @@
3983
4566
  },
3984
4567
  "help": {
3985
4568
  "zh": "默认关闭:每个子代理各起一套服务器会很吃资源。",
3986
- "en": "Off by default: one set of servers per sub-agent is heavy on the machine.",
4569
+ "en": "Off by default: a set of servers per subagent is heavy on the machine.",
3987
4570
  "zh-TW": "預設關閉:每個子代理各跑一套伺服器,很吃電腦資源。",
3988
4571
  "ja-JP": "既定ではオフです。サブエージェントごとにサーバー一式を起動すると、マシンの負荷が大きくなります。",
3989
4572
  "ko-KR": "기본값은 꺼짐입니다. 하위 에이전트마다 서버를 따로 띄우면 컴퓨터에 부담이 큽니다.",
@@ -4035,7 +4618,7 @@
4035
4618
  },
4036
4619
  "help": {
4037
4620
  "zh": "超时不再等:晚到的诊断在下一次改动或回合结束时处理。",
4038
- "en": "Past this nothing waits: late diagnostics are handled at the next edit or when the turn ends.",
4621
+ "en": "Past this, nothing waits: late diagnostics are handled at the next edit or when the turn ends.",
4039
4622
  "zh-TW": "超過就不再等:晚到的診斷留到下一次改動或這一輪結束時處理。",
4040
4623
  "ja-JP": "これを過ぎると待ちません。遅れて届いた診断は、次の編集時かターン終了時に処理します。",
4041
4624
  "ko-KR": "이 시간이 지나면 기다리지 않습니다. 늦게 온 진단은 다음 편집 때나 턴이 끝날 때 처리합니다.",
@@ -4161,7 +4744,7 @@
4161
4744
  },
4162
4745
  "help": {
4163
4746
  "zh": "在后台等,不挡工具调用。过了上限就不把首份诊断当成新问题。",
4164
- "en": "Waited for in the background, never blocking a tool. Past it, the first report is not called new.",
4747
+ "en": "Waited for in the background, never blocking a tool. Past this, the first report isn't treated as new.",
4165
4748
  "zh-TW": "在背景等待,從不擋住工具。超過這個時間,第一份回報就不算作新問題。",
4166
4749
  "ja-JP": "バックグラウンドで待つため、ツールをブロックしません。これを過ぎると、最初の報告は新しい問題として扱いません。",
4167
4750
  "ko-KR": "백그라운드에서 기다리며 도구를 막지 않습니다. 이 시간이 지나면 첫 보고를 새 진단으로 보지 않습니다.",
@@ -4183,7 +4766,7 @@
4183
4766
  "max": 100,
4184
4767
  "label": {
4185
4768
  "zh": "一次最多告知几条",
4186
- "en": "Diagnostics told at once, at most",
4769
+ "en": "Diagnostics reported at once, at most",
4187
4770
  "zh-TW": "一次最多告知幾條診斷",
4188
4771
  "ja-JP": "一度に伝える診断の最大数",
4189
4772
  "ko-KR": "한 번에 알릴 최대 진단 수",
@@ -4262,7 +4845,7 @@
4262
4845
  "name": "ttsr",
4263
4846
  "title": {
4264
4847
  "zh": "写偏即停(实验)",
4265
- "en": "Mid-stream correction (experiment)",
4848
+ "en": "Mid-stream correction (experimental)",
4266
4849
  "zh-TW": "寫偏即停(實驗)",
4267
4850
  "ja-JP": "出力中の軌道修正(実験的)",
4268
4851
  "ko-KR": "출력 중 교정(실험)",
@@ -4277,7 +4860,7 @@
4277
4860
  },
4278
4861
  "summary": {
4279
4862
  "zh": "语义版 TTSR:不用正则,而由判定器发现模型写偏,中断输出、摆出规则、从原处继续。默认关闭;开启后每隔一段输出就会多一次判定调用。",
4280
- "en": "Semantic TTSR: the judge, not a regular expression, notices the output going astray, cuts it, shows the rule and lets the model carry on. Off by default; when on, every stretch of output costs one more judge call.",
4863
+ "en": "The judge, not a regular expression, notices when output goes astray, cuts it off, shows the rule and lets the model continue. Off by default; when on, every stretch of output costs one more judge call.",
4281
4864
  "zh-TW": "語意版 TTSR:不用正規表示式,而是由判定器發現輸出走偏,截斷輸出、指出規則,再讓模型接著寫。預設關閉;開啟後每一段輸出都會多一次判定器呼叫。",
4282
4865
  "ja-JP": "意味ベースの TTSR です。正規表現ではなく判定器が出力の逸脱に気づき、出力を止めてルールを示し、モデルに続きを書かせます。既定ではオフです。オンにすると、一定量の出力ごとに判定器の呼び出しが 1 回増えます。",
4283
4866
  "ko-KR": "의미 기반 TTSR: 정규식이 아니라 판정기가 출력이 벗어나는 것을 알아차리고, 출력을 끊고, 규칙을 보여 준 뒤 모델이 이어서 쓰게 합니다. 기본값은 꺼짐이며, 켜면 출력 구간마다 판정기 호출이 한 번씩 더 듭니다.",
@@ -4298,7 +4881,7 @@
4298
4881
  "default": [],
4299
4882
  "label": {
4300
4883
  "zh": "一直要守的规则",
4301
- "en": "Rules to hold at all times",
4884
+ "en": "Rules to follow at all times",
4302
4885
  "zh-TW": "隨時都要遵守的規則",
4303
4886
  "ja-JP": "常に守るルール",
4304
4887
  "ko-KR": "항상 지킬 규칙",
@@ -4372,7 +4955,7 @@
4372
4955
  },
4373
4956
  "help": {
4374
4957
  "zh": "超出时保留你最近说的。",
4375
- "en": "When there are more, the ones you said last stay.",
4958
+ "en": "When there are more, the most recent ones are used.",
4376
4959
  "zh-TW": "規則更多時,保留你最近說的那些。",
4377
4960
  "ja-JP": "これを超える場合は、最後に指定したものが残ります。",
4378
4961
  "ko-KR": "규칙이 더 많으면 가장 최근에 말한 것을 남깁니다.",
@@ -4394,7 +4977,7 @@
4394
4977
  "max": 10,
4395
4978
  "label": {
4396
4979
  "zh": "两次发言之间最多中断几次",
4397
- "en": "Cuts at most between two of your messages",
4980
+ "en": "Max cuts between two of your messages",
4398
4981
  "zh-TW": "你兩次發言之間最多截斷幾次",
4399
4982
  "ja-JP": "あなたの 2 つのメッセージの間で出力を止める最大回数",
4400
4983
  "ko-KR": "사용자 메시지 사이 최대 중단 횟수",
@@ -4429,7 +5012,7 @@
4429
5012
  },
4430
5013
  "summary": {
4431
5014
  "zh": "定下一个完成条件后,代理会一直干到条件成立为止。每次它想停,由大模型对照证据判断是否达成、下一步做什么。被你打断、模型调用失败、连续空转或原地打转、用完续跑次数或时间,都会自己停下;你再发一条消息就接着干。",
4432
- "en": "After /goal <condition> the agent keeps working until the condition holds (/goal alone asks for it). Each time it wants to stop, a model reads the evidence: met, or the next step. It stops by itself when you interrupt, a model call fails, it idles or goes in circles, or its allowance runs out; your next message picks it up again.",
5015
+ "en": "After /goal <condition>, the agent keeps working until the condition holds (/goal alone asks for one). Each time it wants to stop, a model reads the evidence and decides: met, or the next step. It pauses on its own when you interrupt, a model call fails, it idles or goes in circles, or it reaches its limits; your next message resumes it.",
4433
5016
  "zh-TW": "輸入 /goal <條件> 之後,代理會一直做到條件成立為止(只輸入 /goal 會問你條件)。每次它想停下,都由大模型讀取證據判斷:已經達成,還是下一步該做什麼。遇到你打斷、模型呼叫失敗、閒置空轉或原地打轉,或是次數和時間額度用完,它會自己停下;你再傳一則訊息,它就接著做。",
4434
5017
  "ja-JP": "/goal <条件> を入力すると、エージェントは条件が満たされるまで作業を続けます(/goal だけを入力すると条件を尋ねます)。止まろうとするたびに、モデルが証拠を読んで、達成したか、次に何をするかを判断します。あなたが中断したとき、モデルの呼び出しが失敗したとき、何もしない状態や堂々巡りが続いたとき、または上限に達したときは自ら停止します。次にメッセージを送ると再開します。",
4435
5018
  "ko-KR": "/goal <조건>을 입력하면 에이전트는 조건이 충족될 때까지 계속 작업합니다(/goal만 입력하면 조건을 묻습니다). 멈추려 할 때마다 모델이 증거를 읽고 충족되었는지, 다음 단계가 무엇인지 확인합니다. 사용자가 중단하거나, 모델 호출이 실패하거나, 아무것도 하지 않거나 제자리를 맴돌거나, 허용된 횟수나 시간을 다 쓰면 스스로 멈추며, 다음 메시지를 보내면 다시 이어 갑니다.",
@@ -4450,7 +5033,7 @@
4450
5033
  "default": "model",
4451
5034
  "label": {
4452
5035
  "zh": "谁来判断目标是否达成",
4453
- "en": "Who checks whether the goal holds",
5036
+ "en": "Who checks whether the goal is met",
4454
5037
  "zh-TW": "由誰判斷目標是否達成",
4455
5038
  "ja-JP": "目標の達成を判断する担当",
4456
5039
  "ko-KR": "목표 달성 확인 주체",
@@ -4465,7 +5048,7 @@
4465
5048
  },
4466
5049
  "help": {
4467
5050
  "zh": "大模型读目标、这一轮做了什么、最后一次测试的结果和结束语,给出结论和下一步;它没答上来时才退回 Jev。无论哪种,没勾的验收条件、改完没跑都算没达成。",
4468
- "en": "A model reads the goal, what the run did, the last test run and the closing message, and gives a verdict and the next step; Jev only when it gives no answer. Either way an open acceptance item or an unverified edit means not yet.",
5051
+ "en": "A model reads the goal, what the run did, the last test run and the closing message, then gives a verdict and the next step; Jev steps in only when the model doesn't answer. Either way, an open acceptance item or an unverified edit means not yet.",
4469
5052
  "zh-TW": "大模型讀取目標、這次執行做了什麼、最後一次測試結果和結束語,給出結論和下一步;只有它沒給出答案時才改由 Jev 判斷。無論哪種,只要還有未完成的驗收項目,或有改動沒驗證過,都算還沒達成。",
4470
5053
  "ja-JP": "モデルが目標、この実行で行ったこと、最後のテスト結果、最後のメッセージを読み、判断と次のステップを返します。Jev を使うのは、モデルが回答しなかった場合だけです。どちらの場合も、未完了の受け入れ条件や未検証の編集があれば未達成とします。",
4471
5054
  "ko-KR": "모델이 목표, 이번 실행에서 한 일, 마지막 테스트 실행, 마무리 메시지를 읽고 결론과 다음 단계를 제시합니다. Jev는 모델이 답하지 않을 때만 씁니다. 어느 쪽이든 완료되지 않은 확인 항목이나 검증되지 않은 편집이 있으면 아직 달성되지 않은 것입니다.",
@@ -4501,7 +5084,7 @@
4501
5084
  "value": "jev",
4502
5085
  "label": {
4503
5086
  "zh": "Jev 判定器",
4504
- "en": "The Jev judge",
5087
+ "en": "Jev",
4505
5088
  "zh-TW": "Jev 判定器",
4506
5089
  "ja-JP": "Jev 判定器",
4507
5090
  "ko-KR": "Jev 판정기",
@@ -4558,7 +5141,7 @@
4558
5141
  "default": "off",
4559
5142
  "label": {
4560
5143
  "zh": "判断时的思考等级",
4561
- "en": "Thinking level of the check",
5144
+ "en": "Thinking level for the check",
4562
5145
  "zh-TW": "判斷時的思考強度",
4563
5146
  "ja-JP": "チェック時の思考レベル",
4564
5147
  "ko-KR": "확인 시 사고 수준",
@@ -4687,7 +5270,7 @@
4687
5270
  },
4688
5271
  "label": {
4689
5272
  "zh": "判断最多等多久",
4690
- "en": "Longest wait for the check",
5273
+ "en": "Max wait for the check",
4691
5274
  "zh-TW": "判斷最多等多久",
4692
5275
  "ja-JP": "チェックを待つ最大時間",
4693
5276
  "ko-KR": "확인 최대 대기 시간",
@@ -4702,7 +5285,7 @@
4702
5285
  },
4703
5286
  "help": {
4704
5287
  "zh": "超时就退回 Jev 判定器,再退回只看事实。",
4705
- "en": "After that, Jev decides, and failing that the facts alone.",
5288
+ "en": "If the check takes longer, Jev decides; if Jev can't, only the facts count.",
4706
5289
  "zh-TW": "逾時就改由 Jev 判斷,Jev 也不行就只看事實。",
4707
5290
  "ja-JP": "それを過ぎると Jev が判定し、それもできなければ事実だけで判断します。",
4708
5291
  "ko-KR": "이 시간이 지나면 Jev가 판정하고, 그것도 안 되면 사실만 보고 정합니다.",
@@ -4724,7 +5307,7 @@
4724
5307
  "max": 10,
4725
5308
  "label": {
4726
5309
  "zh": "连续几轮没进展就停",
4727
- "en": "Runs without progress before it stops",
5310
+ "en": "Runs without progress before pausing",
4728
5311
  "zh-TW": "連續幾次沒進展就停",
4729
5312
  "ja-JP": "進捗なしで停止するまでの回数",
4730
5313
  "ko-KR": "멈추기 전 진전 없는 실행 수",
@@ -4739,7 +5322,7 @@
4739
5322
  },
4740
5323
  "help": {
4741
5324
  "zh": "判断者发现代理在重复自己、原地打转。第一次会让它换个思路,到这个次数就停下来问你。",
4742
- "en": "The check found the agent repeating itself. The first time it is told to change course; at this count the goal pauses for you.",
5325
+ "en": "Runs where the check finds the agent repeating itself. The first time, the agent is told to change course; at this count, the goal pauses for you.",
4743
5326
  "zh-TW": "判斷時發現代理在重複自己。第一次會要它換個方向;達到這個次數,目標模式就暫停,等你決定。",
4744
5327
  "ja-JP": "チェックで、エージェントが同じことを繰り返していると判断された回数です。1 回目は方針を変えるよう指示し、この回数に達すると目標を一時停止してあなたを待ちます。",
4745
5328
  "ko-KR": "확인에서 에이전트가 같은 일을 반복하고 있다고 본 경우입니다. 처음에는 방향을 바꾸라고 알리고, 이 횟수에 이르면 목표를 일시정지하고 사용자를 기다립니다.",
@@ -4761,7 +5344,7 @@
4761
5344
  "max": 200,
4762
5345
  "label": {
4763
5346
  "zh": "最多自动续跑次数",
4764
- "en": "Continuations at most",
5347
+ "en": "Max continuations",
4765
5348
  "zh-TW": "最多自動續跑幾次",
4766
5349
  "ja-JP": "自動続行の最大回数",
4767
5350
  "ko-KR": "최대 계속 실행 횟수",
@@ -4796,20 +5379,35 @@
4796
5379
  "default": 180,
4797
5380
  "min": 5,
4798
5381
  "max": 1440,
4799
- "label": {
4800
- "zh": "最长自动运行(分钟)",
4801
- "en": "Minutes at most",
4802
- "zh-TW": "最多執行幾分鐘",
4803
- "ja-JP": "最大時間(分)",
4804
- "ko-KR": "최대 실행 시간(분)",
4805
- "de-DE": "Höchstdauer in Minuten",
4806
- "fr-FR": "Minutes au plus",
4807
- "es-ES": "Máximo de minutos",
4808
- "pt-BR": "Máximo de minutos",
4809
- "ru-RU": "Минут не больше",
4810
- "uk-UA": "Макс. хвилин",
4811
- "tr-TR": "En fazla dakika",
4812
- "fa-IR": "حداکثر دقیقه"
5382
+ "unit": {
5383
+ "zh": "分钟",
5384
+ "en": "min",
5385
+ "zh-TW": "分鐘",
5386
+ "ja-JP": "分",
5387
+ "ko-KR": "분",
5388
+ "de-DE": "Min.",
5389
+ "fr-FR": "min",
5390
+ "es-ES": "min",
5391
+ "pt-BR": "min",
5392
+ "ru-RU": "мин",
5393
+ "uk-UA": "хв",
5394
+ "tr-TR": "dk",
5395
+ "fa-IR": "دقیقه"
5396
+ },
5397
+ "label": {
5398
+ "zh": "最长自动运行",
5399
+ "en": "Longest automatic run",
5400
+ "zh-TW": "最長自動執行",
5401
+ "ja-JP": "自動実行の最長時間",
5402
+ "ko-KR": "최대 자동 실행 시간",
5403
+ "de-DE": "Längste automatische Laufzeit",
5404
+ "fr-FR": "Durée maximale d’exécution automatique",
5405
+ "es-ES": "Ejecución automática más larga",
5406
+ "pt-BR": "Execução automática mais longa",
5407
+ "ru-RU": "Максимальная длительность автозапуска",
5408
+ "uk-UA": "Максимальна тривалість автозапуску",
5409
+ "tr-TR": "En uzun otomatik çalışma",
5410
+ "fa-IR": "طولانی‌ترین اجرای خودکار"
4813
5411
  },
4814
5412
  "help": {
4815
5413
  "zh": "从你上一次发言算起。",
@@ -4835,7 +5433,7 @@
4835
5433
  "max": 10,
4836
5434
  "label": {
4837
5435
  "zh": "连续空转几次就停",
4838
- "en": "Idle runs before it stops",
5436
+ "en": "Idle runs before pausing",
4839
5437
  "zh-TW": "連續空轉幾次就停",
4840
5438
  "ja-JP": "空回りで停止するまでの回数",
4841
5439
  "ko-KR": "멈추기 전 빈 실행 수",
@@ -4885,7 +5483,7 @@
4885
5483
  },
4886
5484
  "summary": {
4887
5485
  "zh": "用大白话告诉你项目推进到哪、现在在干什么、有什么要你确认,并记一份流水:代理每做一步就记一行,它说的话、发现的事由会说人话的模型当场重讲,Jev 决定什么值得讲;一轮做完再总结一遍,过程留在流水里。只给人看,不进模型的上下文。每个项目单独开关;第一次打开时选一个模型来讲,之后可以换。",
4888
- "en": "Tells you in plain words how far the work is, what is happening now and what waits on you, and keeps a running account: a line for every step as it happens, and what the agent says or finds retold at once by a plain-speaking model, with Jev deciding what is worth telling; a finished run is summed up once more, with the account kept. For you only, never in the model's context. Switched per project (/board on, /board off); the first time, you pick the model that writes it (/board model changes it).",
5486
+ "en": "Tells you in plain words how far along the work is, what's happening now and what's waiting on you. It keeps a running account: a line for each step as it happens, plus what the agent says or finds, retold right away by a plain-speaking model, with Jev deciding what's worth telling. A finished run gets a summary, and the account is kept. For you only; never in the model's context. Turned on per project (/board on, /board off); the first time, you pick the model that writes it (/board model changes it).",
4889
5487
  "zh-TW": "用大白話告訴你專案推進到哪、現在在做什麼、有什麼要你確認,並記一份流水:代理每做一步就記一行,它說的話、發現的事由會講人話的模型當場重講,Jev 決定什麼值得講;一輪做完再總結一遍,過程留在流水裡。只給人看,不進模型的上下文。每個專案單獨開關;第一次打開時選一個模型來講,之後可以換。",
4890
5488
  "ja-JP": "作業がどこまで進んだか、いま何が起きているか、あなたの確認を待っているものは何かをわかりやすい言葉で伝え、さらに記録を付けます。一歩ごとにその場で一行、エージェントが言ったことや見つけたことはわかりやすく話すモデルがすぐに語り直し、何を語る価値があるかは Jev が決めます。実行が終わるともう一度まとめ、記録はそのまま残ります。あなたのためだけのもので、モデルのコンテキストには入りません。プロジェクトごとに切り替え(/board on、/board off)、最初に書き手のモデルを選びます(/board model で変更)。",
4891
5489
  "ko-KR": "일이 어디까지 진행됐는지, 지금 무슨 일이 일어나는지, 무엇이 여러분을 기다리는지 쉬운 말로 알려 주고, 기록도 남겨요. 한 걸음마다 그 자리에서 한 줄, 에이전트가 말하거나 알아낸 것은 쉽게 말하는 모델이 바로 다시 말해 주고, 무엇이 말할 가치가 있는지는 Jev가 정해요. 실행이 끝나면 한 번 더 요약하고 기록은 그대로 남아요. 여러분만을 위한 것이며 모델의 컨텍스트에는 들어가지 않아요. 프로젝트별로 켜고 꺼요(/board on, /board off). 처음에는 글을 쓸 모델을 고르고(/board model로 바꿀 수 있어요).",
@@ -4906,7 +5504,7 @@
4906
5504
  "default": false,
4907
5505
  "label": {
4908
5506
  "zh": "没单独设置过的项目也打开",
4909
- "en": "On for projects not switched yet",
5507
+ "en": "On in projects you haven't set it for",
4910
5508
  "zh-TW": "沒單獨設定過的專案也開啟",
4911
5509
  "ja-JP": "まだ切り替えていないプロジェクトでもオン",
4912
5510
  "ko-KR": "아직 설정하지 않은 프로젝트에도 켜기",
@@ -4921,7 +5519,7 @@
4921
5519
  },
4922
5520
  "help": {
4923
5521
  "zh": "默认关闭:看板每更新一次就调用一次模型。",
4924
- "en": "Off by default: each update of the board costs a model call.",
5522
+ "en": "Off by default: each board update costs a model call.",
4925
5523
  "zh-TW": "預設關閉:看板每更新一次就要呼叫一次模型。",
4926
5524
  "ja-JP": "既定ではオフです。ボードを更新するたびにモデルを 1 回呼び出します。",
4927
5525
  "ko-KR": "기본값은 꺼짐입니다. 보드를 업데이트할 때마다 모델을 한 번 호출합니다.",
@@ -4956,7 +5554,7 @@
4956
5554
  },
4957
5555
  "help": {
4958
5556
  "zh": "写成「提供商/模型」,填了就不再问。留空:第一次打开看板时让你挑一个(推荐 Claude Opus 4.6,其次 Gemini 3.8 Flash),挑好的会记住。",
4959
- "en": "As provider/model; set here, nobody is asked. Empty: you pick one the first time the board is switched on (Claude Opus 4.6 recommended, then Gemini 3.8 Flash), kept in mu/board.json; none picked: the writer model, else the session's.",
5557
+ "en": "As provider/model; if set here, you won't be asked. Empty: you pick one the first time you turn the board on (Claude Opus 4.6 recommended, then Gemini 3.8 Flash), saved in mu/board.json. If none is picked: the writer model, else the session's model.",
4960
5558
  "zh-TW": "格式為 provider/model;在這裡填了就不會再問。留空:第一次開啟看板時讓你挑一個(推薦 Claude Opus 4.6,其次 Gemini 3.8 Flash),記在 mu/board.json 裡;沒挑的話用 writer 模型,再沒有就用這個對話的模型。",
4961
5559
  "ja-JP": "provider/model の形式で指定します。ここで指定すると、確認はしません。空欄の場合は、初めてボードをオンにしたときに選びます(おすすめは Claude Opus 4.6、次点は Gemini 3.8 Flash)。選んだモデルは mu/board.json に保存されます。選ばなかった場合は writer モデルを、それもなければセッションのモデルを使います。",
4962
5560
  "ko-KR": "provider/model 형식이며, 여기서 정하면 묻지 않습니다. 비워 두면 보드를 처음 켤 때 고르게 되며(Claude Opus 4.6 추천, 다음은 Gemini 3.8 Flash), mu/board.json에 저장됩니다. 고르지 않으면 writer 모델을, 그것도 없으면 세션의 모델을 씁니다.",
@@ -4976,7 +5574,7 @@
4976
5574
  "default": "auto",
4977
5575
  "label": {
4978
5576
  "zh": "看板的语言",
4979
- "en": "Language of the board",
5577
+ "en": "Board language",
4980
5578
  "zh-TW": "看板的語言",
4981
5579
  "ja-JP": "ボードの言語",
4982
5580
  "ko-KR": "보드 언어",
@@ -5054,7 +5652,7 @@
5054
5652
  "max": 100,
5055
5653
  "label": {
5056
5654
  "zh": "代理每做几步看一次",
5057
- "en": "Tool calls between two looks",
5655
+ "en": "Tool calls between checks",
5058
5656
  "zh-TW": "每隔幾次工具呼叫看一次",
5059
5657
  "ja-JP": "状況を読み取る間隔(ツール呼び出し回数)",
5060
5658
  "ko-KR": "살펴보기 간격(도구 호출 수)",
@@ -5091,7 +5689,7 @@
5091
5689
  },
5092
5690
  "label": {
5093
5691
  "zh": "干活时两次查看至少隔多久",
5094
- "en": "Shortest gap between two looks while it works",
5692
+ "en": "Minimum time between checks while it works",
5095
5693
  "zh-TW": "工作時兩次查看至少間隔多久",
5096
5694
  "ja-JP": "作業中に状況を読み取る最短間隔",
5097
5695
  "ko-KR": "작업 중 살펴보기 최소 간격",
@@ -5106,7 +5704,7 @@
5106
5704
  },
5107
5705
  "help": {
5108
5706
  "zh": "代理停下时总会看一次,不受这个限制。",
5109
- "en": "When the agent stops it always looks, whatever this says.",
5707
+ "en": "When the agent stops, the board always checks, regardless of this setting.",
5110
5708
  "zh-TW": "代理停下時一定會看一次,不受這個限制。",
5111
5709
  "ja-JP": "この設定に関係なく、エージェントが停止したときは必ず読み取ります。",
5112
5710
  "ko-KR": "에이전트가 멈추면 이 설정과 관계없이 항상 살펴봅니다.",
@@ -5165,7 +5763,7 @@
5165
5763
  },
5166
5764
  "label": {
5167
5765
  "zh": "写看板最多等多久",
5168
- "en": "Longest wait for the writer",
5766
+ "en": "Max wait for the writer",
5169
5767
  "zh-TW": "撰寫看板最多等多久",
5170
5768
  "ja-JP": "書き手のモデルを待つ最大時間",
5171
5769
  "ko-KR": "보드 작성 최대 대기 시간",
@@ -5215,7 +5813,7 @@
5215
5813
  },
5216
5814
  "summary": {
5217
5815
  "zh": "「做完了」之前确认有没有验证过。",
5218
- "en": "Checks that something verified the work before it is called done.",
5816
+ "en": "Checks that something verified the work before it's called done.",
5219
5817
  "zh-TW": "說「做完了」之前,確認有沒有驗證過。",
5220
5818
  "ja-JP": "完了とする前に、作業が検証されたかを確認します。",
5221
5819
  "ko-KR": "완료라고 하기 전에 작업을 검증한 것이 있는지 확인합니다.",
@@ -5268,7 +5866,117 @@
5268
5866
  },
5269
5867
  "help": {
5270
5868
  "zh": "超时就不催了,判定只记账。",
5271
- "en": "After this there is no nudge; the verdict is only recorded.",
5869
+ "en": "After this, there's no nudge; the verdict is only recorded.",
5870
+ "zh-TW": "超過這個時間就不再提醒,判定結果只記錄下來。",
5871
+ "ja-JP": "これを過ぎると促しはせず、判定は記録だけします。",
5872
+ "ko-KR": "이 시간이 지나면 알려 주지 않고, 판정은 기록만 합니다.",
5873
+ "de-DE": "Danach gibt es keine Erinnerung; das Urteil wird nur aufgezeichnet.",
5874
+ "fr-FR": "Au-delà, pas de rappel ; le jugement est seulement enregistré.",
5875
+ "es-ES": "Pasado este tiempo no hay recordatorio; el veredicto solo se registra.",
5876
+ "pt-BR": "Depois disso não há lembrete; o veredito só é registrado.",
5877
+ "ru-RU": "После этого напоминания нет, а решение только записывается.",
5878
+ "uk-UA": "Після цього нагадування немає, а рішення лише записується.",
5879
+ "tr-TR": "Bu süreden sonra hatırlatma yapılmaz; karar yalnızca kaydedilir.",
5880
+ "fa-IR": "پس از این مدت یادآوری‌ای در کار نیست؛ نتیجهٔ داوری فقط ثبت می‌شود."
5881
+ }
5882
+ }
5883
+ ]
5884
+ },
5885
+ {
5886
+ "name": "continuation",
5887
+ "title": {
5888
+ "zh": "半路停下时接着做",
5889
+ "en": "Continue after stopping short",
5890
+ "zh-TW": "半路停下時接著做",
5891
+ "ja-JP": "途中で止まったら続ける",
5892
+ "ko-KR": "중간에 멈추면 이어서 하기",
5893
+ "de-DE": "Nach einem Halt auf halbem Weg weitermachen",
5894
+ "fr-FR": "Reprendre après un arrêt à mi-chemin",
5895
+ "es-ES": "Continuar tras detenerse a medias",
5896
+ "pt-BR": "Continuar depois de parar no meio",
5897
+ "ru-RU": "Продолжать после остановки на полпути",
5898
+ "uk-UA": "Продовжувати після зупинки на півдорозі",
5899
+ "tr-TR": "Yarıda durunca devam ettirme",
5900
+ "fa-IR": "ادامه دادن پس از نیمه‌کاره ماندن"
5901
+ },
5902
+ "summary": {
5903
+ "zh": "说了要做却停下的一轮,让它接着做。",
5904
+ "en": "Sends the agent back to work when a run stops short of what it said it would do.",
5905
+ "zh-TW": "說了要做卻停下的一輪,讓它接著做。",
5906
+ "ja-JP": "やると言ったのに止まった回を、作業に戻らせます。",
5907
+ "ko-KR": "하겠다고 하고 멈춘 실행을 다시 작업으로 돌려보냅니다.",
5908
+ "de-DE": "Schickt einen Lauf, der vor dem Angekündigten stehen blieb, zurück an die Arbeit.",
5909
+ "fr-FR": "Renvoie au travail une exécution qui s'est arrêtée avant ce qu'elle avait annoncé.",
5910
+ "es-ES": "Devuelve al trabajo una ejecución que se detuvo antes de hacer lo que dijo.",
5911
+ "pt-BR": "Manda de volta ao trabalho uma execução que parou antes de fazer o que disse.",
5912
+ "ru-RU": "Возвращает к работе запуск, который остановился, не сделав обещанного.",
5913
+ "uk-UA": "Повертає до роботи запуск, який зупинився, не зробивши обіцяного.",
5914
+ "tr-TR": "Söylediğini yapmadan duran bir çalışmayı işe geri gönderir.",
5915
+ "fa-IR": "اجرایی را که پیش از انجام کاری که گفته بود متوقف شده، به کار برمی‌گرداند."
5916
+ },
5917
+ "defaultEnabled": true,
5918
+ "options": [
5919
+ {
5920
+ "key": "maxNudges",
5921
+ "kind": "number",
5922
+ "default": 2,
5923
+ "min": 1,
5924
+ "max": 5,
5925
+ "label": {
5926
+ "zh": "每条消息最多催几次",
5927
+ "en": "Max nudges per message",
5928
+ "zh-TW": "每則訊息最多催幾次",
5929
+ "ja-JP": "1 メッセージあたりの最大催促回数",
5930
+ "ko-KR": "메시지당 최대 재촉 횟수",
5931
+ "de-DE": "Höchstens so oft pro Nachricht anstoßen",
5932
+ "fr-FR": "Relances au plus par message",
5933
+ "es-ES": "Máximo de avisos por mensaje",
5934
+ "pt-BR": "Máximo de lembretes por mensagem",
5935
+ "ru-RU": "Не больше напоминаний на сообщение",
5936
+ "uk-UA": "Не більше нагадувань на повідомлення",
5937
+ "tr-TR": "Mesaj başına en fazla dürtme",
5938
+ "fa-IR": "حداکثر یادآوری برای هر پیام"
5939
+ }
5940
+ },
5941
+ {
5942
+ "key": "waitMs",
5943
+ "kind": "number",
5944
+ "default": 3000,
5945
+ "min": 500,
5946
+ "max": 30000,
5947
+ "unit": {
5948
+ "zh": "毫秒",
5949
+ "en": "ms",
5950
+ "zh-TW": "毫秒",
5951
+ "ja-JP": "ミリ秒",
5952
+ "ko-KR": "밀리초",
5953
+ "de-DE": "ms",
5954
+ "fr-FR": "ms",
5955
+ "es-ES": "ms",
5956
+ "pt-BR": "ms",
5957
+ "ru-RU": "мс",
5958
+ "uk-UA": "мс",
5959
+ "tr-TR": "ms",
5960
+ "fa-IR": "میلی‌ثانیه"
5961
+ },
5962
+ "label": {
5963
+ "zh": "最多等待",
5964
+ "en": "Wait at most",
5965
+ "zh-TW": "最多等待",
5966
+ "ja-JP": "最大待機時間",
5967
+ "ko-KR": "최대 대기 시간",
5968
+ "de-DE": "Maximale Wartezeit",
5969
+ "fr-FR": "Attendre au plus",
5970
+ "es-ES": "Espera máxima",
5971
+ "pt-BR": "Esperar no máximo",
5972
+ "ru-RU": "Ждать не дольше",
5973
+ "uk-UA": "Чекати щонайбільше",
5974
+ "tr-TR": "En fazla bekleme",
5975
+ "fa-IR": "حداکثر انتظار"
5976
+ },
5977
+ "help": {
5978
+ "zh": "超时就不催了,判定只记账。",
5979
+ "en": "After this, there's no nudge; the verdict is only recorded.",
5272
5980
  "zh-TW": "超過這個時間就不再提醒,判定結果只記錄下來。",
5273
5981
  "ja-JP": "これを過ぎると促しはせず、判定は記録だけします。",
5274
5982
  "ko-KR": "이 시간이 지나면 알려 주지 않고, 판정은 기록만 합니다.",
@@ -5303,7 +6011,7 @@
5303
6011
  },
5304
6012
  "summary": {
5305
6013
  "zh": "决定各类事件何时告诉模型。",
5306
- "en": "Decides when events are told to the model.",
6014
+ "en": "Decides when to tell the model about events.",
5307
6015
  "zh-TW": "決定各類事件何時告訴模型。",
5308
6016
  "ja-JP": "各種イベントをいつモデルに伝えるかを決めます。",
5309
6017
  "ko-KR": "이벤트를 언제 모델에게 알릴지 정합니다.",
@@ -5362,7 +6070,7 @@
5362
6070
  },
5363
6071
  "summary": {
5364
6072
  "zh": "在提示词缓存过期前视情况续一下。",
5365
- "en": "Refreshes the prompt cache before it expires when that pays off.",
6073
+ "en": "Refreshes the prompt cache before it expires, when that pays off.",
5366
6074
  "zh-TW": "划算時,在提示快取過期前先續上。",
5367
6075
  "ja-JP": "効果がある場合に、期限が切れる前にプロンプトキャッシュを更新します。",
5368
6076
  "ko-KR": "이득이 될 때 프롬프트 캐시가 만료되기 전에 갱신합니다.",
@@ -5397,7 +6105,7 @@
5397
6105
  },
5398
6106
  "summary": {
5399
6107
  "zh": "会话在用时每隔一会儿问判定器一个小问题,让连接一直热着:一轮开始前的判定省下 1–3 秒的建连。",
5400
- "en": "While the session is in use, one tiny question keeps the judge's connection warm: the questions before a turn skip 1-3 s of connecting.",
6108
+ "en": "While the session is in use, a tiny question keeps the judge's connection warm, so the questions before a turn skip 1–3 s of connection setup.",
5401
6109
  "zh-TW": "對話使用中時,每隔一陣子問判定器一個小問題,讓連線一直保持熱的:一輪開始前的判定就能省下 1–3 秒的連線時間。",
5402
6110
  "ja-JP": "セッションの使用中は、ときどきごく小さな問いを送って判定器との接続をウォームな状態に保ちます。これでターン開始前の判定は、接続にかかる 1〜3 秒を省けます。",
5403
6111
  "ko-KR": "세션을 쓰는 동안 이따금 아주 작은 질문을 보내 판정기와의 연결을 웜 상태로 유지합니다. 그래서 턴이 시작되기 전의 판정은 연결에 드는 1~3초를 아낍니다.",
@@ -5450,7 +6158,7 @@
5450
6158
  },
5451
6159
  "help": {
5452
6160
  "zh": "服务端空闲约 90 秒断开,间隔要短于它。",
5453
- "en": "The server drops a connection idle for about 90 s; stay under that.",
6161
+ "en": "The server drops connections idle for about 90 s; stay below that.",
5454
6162
  "zh-TW": "伺服器端約 90 秒沒有動靜就會斷開連線,間隔要比這短。",
5455
6163
  "ja-JP": "サーバーは約 90 秒アイドル状態が続いた接続を切断するので、間隔はそれより短くします。",
5456
6164
  "ko-KR": "서버는 약 90초 동안 쉬고 있는 연결을 끊으므로, 간격은 그보다 짧아야 합니다.",
@@ -5487,7 +6195,7 @@
5487
6195
  },
5488
6196
  "label": {
5489
6197
  "zh": "多久没动静就停",
5490
- "en": "Stop after this much quiet",
6198
+ "en": "Stop after this much inactivity",
5491
6199
  "zh-TW": "多久沒動靜就停",
5492
6200
  "ja-JP": "この時間動きがなければ停止",
5493
6201
  "ko-KR": "이만큼 조용하면 중지",
@@ -5507,7 +6215,7 @@
5507
6215
  "name": "swarm",
5508
6216
  "title": {
5509
6217
  "zh": "子代理",
5510
- "en": "Sub-agents",
6218
+ "en": "Subagents",
5511
6219
  "zh-TW": "子代理",
5512
6220
  "ja-JP": "サブエージェント",
5513
6221
  "ko-KR": "하위 에이전트",
@@ -5522,7 +6230,7 @@
5522
6230
  },
5523
6231
  "summary": {
5524
6232
  "zh": "把任务委派给按角色分工的子代理。",
5525
- "en": "Delegates tasks to sub-agents with roles.",
6233
+ "en": "Delegates tasks to subagents with roles.",
5526
6234
  "zh-TW": "把任務委派給按角色分工的子代理。",
5527
6235
  "ja-JP": "役割を持つサブエージェントにタスクを委任します。",
5528
6236
  "ko-KR": "역할을 맡은 하위 에이전트에게 작업을 위임합니다.",
@@ -5558,7 +6266,7 @@
5558
6266
  },
5559
6267
  "help": {
5560
6268
  "zh": "留空则子代理都用当前会话的模型。",
5561
- "en": "Empty means every sub-agent uses the session's model.",
6269
+ "en": "Empty means every subagent uses the session's model.",
5562
6270
  "zh-TW": "留空則所有子代理都使用這個對話的模型。",
5563
6271
  "ja-JP": "空欄の場合、すべてのサブエージェントがセッションのモデルを使います。",
5564
6272
  "ko-KR": "비워 두면 모든 하위 에이전트가 세션의 모델을 씁니다.",
@@ -5580,7 +6288,7 @@
5580
6288
  "max": 32,
5581
6289
  "label": {
5582
6290
  "zh": "一次最多委派",
5583
- "en": "Tasks per call at most",
6291
+ "en": "Max tasks per call",
5584
6292
  "zh-TW": "每次呼叫最多委派幾個任務",
5585
6293
  "ja-JP": "1 回の呼び出しで委任するタスクの最大数",
5586
6294
  "ko-KR": "호출당 최대 작업 수",
@@ -5680,7 +6388,7 @@
5680
6388
  "value": "worktree",
5681
6389
  "label": {
5682
6390
  "zh": "在独立的 git worktree 里改",
5683
- "en": "Edit in a git worktree of its own",
6391
+ "en": "Edit in its own git worktree",
5684
6392
  "zh-TW": "在自己的 git 工作樹裡修改",
5685
6393
  "ja-JP": "専用の git ワークツリーで編集",
5686
6394
  "ko-KR": "자체 git 워크트리에서 편집",
@@ -5715,7 +6423,7 @@
5715
6423
  ],
5716
6424
  "label": {
5717
6425
  "zh": "会改文件的子代理",
5718
- "en": "Sub-agents that edit files",
6426
+ "en": "Subagents that edit files",
5719
6427
  "zh-TW": "會改檔案的子代理",
5720
6428
  "ja-JP": "ファイルを編集するサブエージェント",
5721
6429
  "ko-KR": "파일을 편집하는 하위 에이전트",
@@ -5730,7 +6438,7 @@
5730
6438
  },
5731
6439
  "help": {
5732
6440
  "zh": "隔离时改动以补丁交回,由主代理用 apply_patch_from 决定是否应用;不在 git 仓库里时自动退回原地修改。",
5733
- "en": "Isolated changes come back as a patch that the main agent applies with apply_patch_from, or not. Outside a git repository it falls back to editing in place.",
6441
+ "en": "Isolated changes come back as a patch, which the main agent may apply with apply_patch_from. Outside a git repository, subagents edit in place.",
5734
6442
  "zh-TW": "隔離時,改動會以修補程式交回,由主代理決定是否用 apply_patch_from 套用。不在 git 儲存庫裡時,會退回直接在原處修改。",
5735
6443
  "ja-JP": "分離された変更はパッチとして戻り、適用するかどうかはメインのエージェントが apply_patch_from で決めます。git リポジトリの外では、その場での編集に切り替わります。",
5736
6444
  "ko-KR": "격리된 변경은 패치로 돌아오며, 메인 에이전트가 apply_patch_from으로 적용할지 정합니다. git 저장소 밖에서는 현재 위치에서 바로 편집합니다.",
@@ -5750,7 +6458,7 @@
5750
6458
  "default": true,
5751
6459
  "label": {
5752
6460
  "zh": "带上未提交的改动",
5753
- "en": "Carry uncommitted changes over",
6461
+ "en": "Carry over uncommitted changes",
5754
6462
  "zh-TW": "帶上未提交的改動",
5755
6463
  "ja-JP": "未コミットの変更を引き継ぐ",
5756
6464
  "ko-KR": "커밋하지 않은 변경 가져가기",
@@ -5765,7 +6473,7 @@
5765
6473
  },
5766
6474
  "help": {
5767
6475
  "zh": "子代理从主代理当前看到的文件状态开始,而不是从上一次提交开始。",
5768
- "en": "The sub-agent starts from the files as the main agent sees them, not from the last commit.",
6476
+ "en": "The subagent starts from the files as the main agent sees them, not from the last commit.",
5769
6477
  "zh-TW": "子代理從主代理目前看到的檔案狀態開始,而不是從上一次提交開始。",
5770
6478
  "ja-JP": "サブエージェントは、最後のコミットではなく、メインのエージェントが現在見ているファイルの状態から始めます。",
5771
6479
  "ko-KR": "하위 에이전트가 마지막 커밋이 아니라 메인 에이전트가 보는 파일 상태에서 시작합니다.",
@@ -5802,7 +6510,7 @@
5802
6510
  },
5803
6511
  "help": {
5804
6512
  "zh": "随子代理报告一起给主代理看的补丁开头。",
5805
- "en": "The beginning of the patch shown with the sub-agent's report.",
6513
+ "en": "The start of the patch, shown with the subagent's report.",
5806
6514
  "zh-TW": "隨子代理的報告一起顯示的修補程式開頭。",
5807
6515
  "ja-JP": "サブエージェントのレポートと一緒に表示する、パッチの冒頭部分です。",
5808
6516
  "ko-KR": "하위 에이전트의 보고와 함께 보여 줄 패치의 앞부분입니다.",
@@ -5837,7 +6545,7 @@
5837
6545
  },
5838
6546
  "summary": {
5839
6547
  "zh": "多只蜂并行攻一个难题,判定器把关它们之间传什么。输入 /hive <问题> 就能自己发起;遇到直接做不下去的难题,代理也会自己发起。",
5840
- "en": "Several bees work one hard task in parallel; the judge gates what passes between them. /hive <question> starts one yourself; the agent also starts one when a problem resists a direct attempt.",
6548
+ "en": "Several bees work on one hard task in parallel, and the judge decides what passes between them. Start one yourself with /hive <question>; the agent also starts one when a problem resists a direct attempt.",
5841
6549
  "zh-TW": "多個蜂群成員平行處理同一個難題,由判定器把關它們之間傳遞什麼。輸入 /hive <問題> 就能自己發起;遇到直接做不下去的難題,代理也會自己發起。",
5842
6550
  "ja-JP": "複数のビーが 1 つの難しいタスクに並行して取り組みます。ビーの間でやり取りする内容は判定器が選別します。/hive <質問> で自分で始められます。まっすぐには解けない問題では、エージェントも自分から始めます。",
5843
6551
  "ko-KR": "여러 비(bee)가 하나의 어려운 작업을 병렬로 처리하고, 비 사이에 오가는 내용은 판정기가 통제합니다. /hive <질문>으로 직접 시작할 수 있고, 곧바로 풀리지 않는 문제에서는 에이전트도 스스로 시작합니다.",
@@ -5860,7 +6568,7 @@
5860
6568
  "max": 100,
5861
6569
  "label": {
5862
6570
  "zh": "每只蜂最多发布",
5863
- "en": "Notes per bee at most",
6571
+ "en": "Max notes per bee",
5864
6572
  "zh-TW": "每個成員最多發布幾則",
5865
6573
  "ja-JP": "ビーごとの公開数の上限",
5866
6574
  "ko-KR": "비 한 마리당 최대 게시 수",
@@ -5882,7 +6590,7 @@
5882
6590
  "max": 100,
5883
6591
  "label": {
5884
6592
  "zh": "每只蜂最多收到",
5885
- "en": "Deliveries per bee at most",
6593
+ "en": "Max deliveries per bee",
5886
6594
  "zh-TW": "每個成員最多收到幾則",
5887
6595
  "ja-JP": "ビーごとの配信数の上限",
5888
6596
  "ko-KR": "비 한 마리당 최대 전달 수",
@@ -5939,7 +6647,7 @@
5939
6647
  "default": true,
5940
6648
  "label": {
5941
6649
  "zh": "写报告时再听一次新消息",
5942
- "en": "One last hearing while writing the report",
6650
+ "en": "Deliver findings once more while writing the report",
5943
6651
  "zh-TW": "寫報告時再收一次遲到的發現",
5944
6652
  "ja-JP": "レポート作成中に最終配信を受け取る",
5945
6653
  "ko-KR": "보고서 작성 중 마지막으로 한 번 더 수신",
@@ -5961,7 +6669,7 @@
5961
6669
  "max": 30,
5962
6670
  "label": {
5963
6671
  "zh": "一条新发现最多对照几条旧发现",
5964
- "en": "Earlier findings a new one is held against, at most",
6672
+ "en": "Max earlier findings to compare a new one against",
5965
6673
  "zh-TW": "一則新發現最多對照幾則較早的發現",
5966
6674
  "ja-JP": "新しい発見と照らし合わせる以前の発見の最大数",
5967
6675
  "ko-KR": "새 발견과 대조할 이전 발견의 최대 수",
@@ -5998,7 +6706,7 @@
5998
6706
  "max": 3,
5999
6707
  "label": {
6000
6708
  "zh": "为没解决的冲突最多加派几只验证蜂",
6001
- "en": "Verifier bees for unsettled disputes, at most",
6709
+ "en": "Max verifier bees for unsettled disputes",
6002
6710
  "zh-TW": "為未解決的爭議最多加派幾個核實成員",
6003
6711
  "ja-JP": "未解決の対立に追加する検証役のビーの最大数",
6004
6712
  "ko-KR": "해결되지 않은 이견에 더 보낼 검증 비 최대 마릿수",
@@ -6035,7 +6743,7 @@
6035
6743
  "max": 600,
6036
6744
  "label": {
6037
6745
  "zh": "冲突挂多少秒没人解决才加派",
6038
- "en": "Seconds a dispute may stand before a verifier is added",
6746
+ "en": "Seconds before a verifier joins an open dispute",
6039
6747
  "zh-TW": "爭議幾秒沒人解決才加派核實成員",
6040
6748
  "ja-JP": "検証役のビーを追加するまで対立を待つ秒数",
6041
6749
  "ko-KR": "검증 비를 더 보내기 전까지 이견을 기다리는 시간(초)",
@@ -6055,7 +6763,7 @@
6055
6763
  "name": "locate",
6056
6764
  "title": {
6057
6765
  "zh": "文件定位",
6058
- "en": "File location",
6766
+ "en": "File locator",
6059
6767
  "zh-TW": "檔案定位",
6060
6768
  "ja-JP": "ファイルの特定",
6061
6769
  "ko-KR": "파일 찾기",
@@ -6131,6 +6839,64 @@
6131
6839
  }
6132
6840
  ]
6133
6841
  },
6842
+ {
6843
+ "name": "judgeItems",
6844
+ "title": {
6845
+ "zh": "批量判定工具",
6846
+ "en": "Bulk judging tool",
6847
+ "zh-TW": "批次判定工具",
6848
+ "ja-JP": "一括判定ツール",
6849
+ "ko-KR": "일괄 판정 도구",
6850
+ "de-DE": "Werkzeug für Massenurteile",
6851
+ "fr-FR": "Outil de jugement en masse",
6852
+ "es-ES": "Herramienta de juicio en lote",
6853
+ "pt-BR": "Ferramenta de julgamento em lote",
6854
+ "ru-RU": "Инструмент массовой оценки",
6855
+ "uk-UA": "Інструмент масового оцінювання",
6856
+ "tr-TR": "Toplu değerlendirme aracı",
6857
+ "fa-IR": "ابزار داوری گروهی"
6858
+ },
6859
+ "summary": {
6860
+ "zh": "judge_items 工具:一个是非题,对很多条目逐条给出概率。",
6861
+ "en": "The judge_items tool: one yes/no question, a probability for each of many items.",
6862
+ "zh-TW": "judge_items 工具:一個是非題,對很多條目逐條給出機率。",
6863
+ "ja-JP": "judge_items ツール:はい/いいえの質問 1 つで、多数の項目それぞれに確率を返します。",
6864
+ "ko-KR": "judge_items 도구: 예/아니오 질문 하나로 여러 항목 각각에 확률을 줍니다.",
6865
+ "de-DE": "Das Werkzeug judge_items: eine Ja/Nein-Frage, eine Wahrscheinlichkeit für jeden von vielen Einträgen.",
6866
+ "fr-FR": "L'outil judge_items : une question oui/non, une probabilité pour chacun de nombreux éléments.",
6867
+ "es-ES": "La herramienta judge_items: una pregunta de sí/no, una probabilidad para cada uno de muchos elementos.",
6868
+ "pt-BR": "A ferramenta judge_items: uma pergunta de sim/não, uma probabilidade para cada um de muitos itens.",
6869
+ "ru-RU": "Инструмент judge_items: один вопрос «да/нет», вероятность для каждого из множества элементов.",
6870
+ "uk-UA": "Інструмент judge_items: одне питання «так/ні», імовірність для кожного з багатьох елементів.",
6871
+ "tr-TR": "judge_items aracı: tek bir evet/hayır sorusu, çok sayıda öğenin her biri için bir olasılık.",
6872
+ "fa-IR": "ابزار judge_items: یک پرسش بله/خیر، یک احتمال برای هر یک از موارد زیاد."
6873
+ },
6874
+ "defaultEnabled": true,
6875
+ "options": [
6876
+ {
6877
+ "key": "maxItems",
6878
+ "kind": "number",
6879
+ "default": 500,
6880
+ "min": 10,
6881
+ "max": 5000,
6882
+ "label": {
6883
+ "zh": "一次最多几条",
6884
+ "en": "Max items per call",
6885
+ "zh-TW": "一次最多幾條",
6886
+ "ja-JP": "1 回あたりの最大項目数",
6887
+ "ko-KR": "한 번에 최대 항목 수",
6888
+ "de-DE": "Höchstens so viele Einträge pro Aufruf",
6889
+ "fr-FR": "Éléments au plus par appel",
6890
+ "es-ES": "Máximo de elementos por llamada",
6891
+ "pt-BR": "Máximo de itens por chamada",
6892
+ "ru-RU": "Не больше элементов за вызов",
6893
+ "uk-UA": "Не більше елементів за виклик",
6894
+ "tr-TR": "Çağrı başına en fazla öğe",
6895
+ "fa-IR": "حداکثر مورد در هر فراخوانی"
6896
+ }
6897
+ }
6898
+ ]
6899
+ },
6134
6900
  {
6135
6901
  "name": "browser",
6136
6902
  "title": {
@@ -6193,7 +6959,7 @@
6193
6959
  "max": 200,
6194
6960
  "label": {
6195
6961
  "zh": "每次最多步数",
6196
- "en": "Steps per run at most",
6962
+ "en": "Max steps per run",
6197
6963
  "zh-TW": "每次最多步數",
6198
6964
  "ja-JP": "1 回の実行の最大ステップ数",
6199
6965
  "ko-KR": "실행당 최대 단계 수",
@@ -6250,7 +7016,7 @@
6250
7016
  "default": true,
6251
7017
  "label": {
6252
7018
  "zh": "桌面端运行时使用应用内的浏览器面板",
6253
- "en": "Use the desktop app's browser panel when it is running",
7019
+ "en": "Use the desktop app's browser panel when it's running",
6254
7020
  "zh-TW": "桌面應用程式開著時,使用它的瀏覽器面板",
6255
7021
  "ja-JP": "デスクトップアプリの実行中はそのブラウザーパネルを使う",
6256
7022
  "ko-KR": "데스크톱 앱이 실행 중이면 앱의 브라우저 패널 사용",
@@ -6265,7 +7031,7 @@
6265
7031
  },
6266
7032
  "help": {
6267
7033
  "zh": "这样每一步都看得见,可以随时暂停、停止或接管;应用没开时用 mu 自己的浏览器。",
6268
- "en": "Every step is then visible and can be paused, stopped or taken over; without the app mu's own browser is used.",
7034
+ "en": "Every step is then visible and can be paused, stopped or taken over; without the app, mu uses its own browser.",
6269
7035
  "zh-TW": "這樣每一步都看得見,可以暫停、停止或接手;應用程式沒開時,使用 mu 自己的瀏覽器。",
6270
7036
  "ja-JP": "すべてのステップが見えるので、一時停止、停止、引き継ぎができます。アプリがないときは mu 自身のブラウザーを使います。",
6271
7037
  "ko-KR": "그러면 모든 단계가 보이고, 일시정지, 중지, 직접 조작을 할 수 있습니다. 앱이 없으면 mu 자체 브라우저를 씁니다.",
@@ -6335,7 +7101,7 @@
6335
7101
  },
6336
7102
  "summary": {
6337
7103
  "zh": "开发服务器、长时间构建放到后台跑,不占用回合;结束时是否打断交给「通知分流」;会话结束时全部终止。",
6338
- "en": "bg_start / bg_output / bg_stop: dev servers and long builds without blocking the turn. Whether the end of a job interrupts is decided by notification routing; every job stops with the session.",
7104
+ "en": "bg_start / bg_output / bg_stop: run dev servers and long builds without blocking the turn. Notification routing decides whether a finished job interrupts; every job stops when the session ends.",
6339
7105
  "zh-TW": "bg_start / bg_output / bg_stop:開發伺服器和長時間的建置不會卡住這一輪。工作結束時要不要打斷,交給「通知分流」決定;對話結束時,所有工作一起停止。",
6340
7106
  "ja-JP": "bg_start / bg_output / bg_stop: 開発サーバーや長いビルドを、ターンをブロックせずに実行します。ジョブの終了時に割り込むかどうかは「通知の振り分け」が決めます。すべてのジョブはセッションとともに停止します。",
6341
7107
  "ko-KR": "bg_start / bg_output / bg_stop: 개발 서버나 긴 빌드를 턴을 막지 않고 실행합니다. 작업이 끝났을 때 끼어들지는 알림 라우팅이 정하며, 모든 작업은 세션과 함께 중지됩니다.",
@@ -6409,7 +7175,7 @@
6409
7175
  },
6410
7176
  "help": {
6411
7177
  "zh": "只留最新的;完整输出在日志文件里。",
6412
- "en": "The newest is kept; the log file has everything.",
7178
+ "en": "The newest output is kept; the log file has everything.",
6413
7179
  "zh-TW": "只保留最新的部分;完整內容在日誌檔裡。",
6414
7180
  "ja-JP": "最新の出力だけを保持します。すべての出力はログファイルにあります。",
6415
7181
  "ko-KR": "최신 출력만 남기며, 전체 출력은 로그 파일에 있습니다.",
@@ -6445,7 +7211,7 @@
6445
7211
  },
6446
7212
  "label": {
6447
7213
  "zh": "bg_output 单次返回上限",
6448
- "en": "Most that one bg_output returns",
7214
+ "en": "Max output per bg_output call",
6449
7215
  "zh-TW": "單次 bg_output 回傳上限",
6450
7216
  "ja-JP": "bg_output が 1 回で返す上限",
6451
7217
  "ko-KR": "bg_output 1회 최대 반환량",
@@ -6481,7 +7247,7 @@
6481
7247
  },
6482
7248
  "label": {
6483
7249
  "zh": "强制终止前的等待",
6484
- "en": "Wait before a job is killed by force",
7250
+ "en": "Wait before force-killing a job",
6485
7251
  "zh-TW": "強制終止前的等待時間",
6486
7252
  "ja-JP": "ジョブを強制終了するまでの待機時間",
6487
7253
  "ko-KR": "강제 종료 전 대기 시간",
@@ -6496,7 +7262,7 @@
6496
7262
  },
6497
7263
  "help": {
6498
7264
  "zh": "先发 SIGTERM(Windows 上是不带 /F 的 taskkill),超时后强制。",
6499
- "en": "SIGTERM first (taskkill without /F on Windows), force after this long.",
7265
+ "en": "SIGTERM first (taskkill without /F on Windows), then force after this long.",
6500
7266
  "zh-TW": "先送出 SIGTERM(Windows 上是不帶 /F 的 taskkill),超過這個時間再強制終止。",
6501
7267
  "ja-JP": "まず SIGTERM を送り(Windows では /F なしの taskkill)、この時間が経つと強制終了します。",
6502
7268
  "ko-KR": "먼저 SIGTERM을 보내고(Windows에서는 /F 없는 taskkill), 이 시간이 지나면 강제로 종료합니다.",
@@ -6601,7 +7367,7 @@
6601
7367
  },
6602
7368
  "help": {
6603
7369
  "zh": "只有判定为「立刻」时才会开始新回合;关闭时只留一条消息。",
6604
- "en": "Only a verdict of \"now\" starts a turn; when off the notice is only appended.",
7370
+ "en": "Only a verdict of \"now\" starts a turn; when off, the notice is only appended.",
6605
7371
  "zh-TW": "只有判定為「立刻」時才會開始新的一輪;關閉時只附上一則通知。",
6606
7372
  "ja-JP": "判定が「すぐに届ける」の場合だけ新しいターンを始めます。オフの場合は、通知を追加するだけです。",
6607
7373
  "ko-KR": "“지금”으로 판정될 때만 턴을 시작합니다. 끄면 알림을 덧붙이기만 합니다.",
@@ -6636,7 +7402,7 @@
6636
7402
  },
6637
7403
  "summary": {
6638
7404
  "zh": "把网页读成文字(限时限量,拒绝内网地址,页面文字标为不可信);网页搜索用国内不需要密钥就能访问的搜索源。",
6639
- "en": "web_fetch reads a page as text (time and size limits, internal addresses refused, page text labelled untrusted); web_search uses a source that answers from mainland China without a key.",
7405
+ "en": "web_fetch reads a page as text (with time and size limits, internal addresses refused and page text labeled untrusted); web_search uses a source that works from mainland China without a key.",
6640
7406
  "zh-TW": "web_fetch 把網頁讀成文字(有時間和大小限制,拒絕內部位址,頁面文字標為不可信);web_search 使用在中國大陸不需金鑰也能回應的搜尋來源。",
6641
7407
  "ja-JP": "web_fetch はページをテキストとして読み取ります(時間とサイズに上限があり、内部アドレスは拒否し、ページのテキストは信頼できないものとして扱います)。web_search は、キーなしで中国本土から利用できる検索ソースを使います。",
6642
7408
  "ko-KR": "web_fetch는 페이지를 텍스트로 읽습니다(시간·크기 제한, 내부 주소 거부, 페이지 텍스트는 신뢰할 수 없음으로 표시). web_search는 중국 본토에서 키 없이 응답하는 검색 소스를 씁니다.",
@@ -6707,7 +7473,7 @@
6707
7473
  },
6708
7474
  "help": {
6709
7475
  "zh": "遇到验证页、没有结果或结果与查询无关时生效。",
6710
- "en": "Applies to a verification page, no results, or results unrelated to the query.",
7476
+ "en": "Applies when a source returns a verification page, no results, or results unrelated to the query.",
6711
7477
  "zh-TW": "遇到驗證頁、沒有結果,或結果與查詢無關時適用。",
6712
7478
  "ja-JP": "確認ページが返された場合、結果がない場合、検索内容と無関係な結果の場合に適用されます。",
6713
7479
  "ko-KR": "보안 확인 페이지, 결과 없음, 검색어와 무관한 결과일 때 적용됩니다.",
@@ -6743,7 +7509,7 @@
6743
7509
  },
6744
7510
  "label": {
6745
7511
  "zh": "一次读取网页最多返回",
6746
- "en": "Most that one web_fetch returns",
7512
+ "en": "Max text per web_fetch call",
6747
7513
  "zh-TW": "單次 web_fetch 回傳上限",
6748
7514
  "ja-JP": "web_fetch が 1 回で返す上限",
6749
7515
  "ko-KR": "web_fetch 1회 최대 반환량",
@@ -6779,7 +7545,7 @@
6779
7545
  },
6780
7546
  "label": {
6781
7547
  "zh": "单次请求时限",
6782
- "en": "Time limit of one request",
7548
+ "en": "Time limit per request",
6783
7549
  "zh-TW": "單次請求時限",
6784
7550
  "ja-JP": "1 回のリクエストの制限時間",
6785
7551
  "ko-KR": "요청당 시간 제한",
@@ -6798,20 +7564,35 @@
6798
7564
  "kind": "number",
6799
7565
  "default": 2000000,
6800
7566
  "min": 10000,
6801
- "label": {
6802
- "zh": "下载上限(字节)",
6803
- "en": "Download limit (bytes)",
6804
- "zh-TW": "下載上限(位元組)",
6805
- "ja-JP": "ダウンロードの上限(バイト)",
6806
- "ko-KR": "다운로드 한도(바이트)",
6807
- "de-DE": "Download-Limit (Bytes)",
6808
- "fr-FR": "Limite de téléchargement (octets)",
6809
- "es-ES": "Límite de descarga (bytes)",
6810
- "pt-BR": "Limite de download (bytes)",
6811
- "ru-RU": "Лимит загрузки (байт)",
6812
- "uk-UA": "Ліміт завантаження (байти)",
6813
- "tr-TR": "İndirme sınırı (bayt)",
6814
- "fa-IR": "سقف بارگیری (بایت)"
7567
+ "unit": {
7568
+ "zh": "字节",
7569
+ "en": "bytes",
7570
+ "zh-TW": "位元組",
7571
+ "ja-JP": "バイト",
7572
+ "ko-KR": "바이트",
7573
+ "de-DE": "Bytes",
7574
+ "fr-FR": "octets",
7575
+ "es-ES": "bytes",
7576
+ "pt-BR": "bytes",
7577
+ "ru-RU": "байт",
7578
+ "uk-UA": "байтів",
7579
+ "tr-TR": "bayt",
7580
+ "fa-IR": "بایت"
7581
+ },
7582
+ "label": {
7583
+ "zh": "下载上限",
7584
+ "en": "Download limit",
7585
+ "zh-TW": "下載上限",
7586
+ "ja-JP": "ダウンロードの上限",
7587
+ "ko-KR": "다운로드 한도",
7588
+ "de-DE": "Download-Limit",
7589
+ "fr-FR": "Limite de téléchargement",
7590
+ "es-ES": "Límite de descarga",
7591
+ "pt-BR": "Limite de download",
7592
+ "ru-RU": "Лимит загрузки",
7593
+ "uk-UA": "Ліміт завантаження",
7594
+ "tr-TR": "İndirme sınırı",
7595
+ "fa-IR": "سقف بارگیری"
6815
7596
  }
6816
7597
  },
6817
7598
  {
@@ -6857,7 +7638,7 @@
6857
7638
  },
6858
7639
  "help": {
6859
7640
  "zh": "仅当网址直接写 localhost 或 127.0.0.1 时;从外部网页重定向过来的一律拒绝。",
6860
- "en": "Only when the URL itself says localhost or 127.0.0.1; a redirect from the web is always refused.",
7641
+ "en": "Only when the URL itself names localhost or 127.0.0.1; a redirect from the web is always refused.",
6861
7642
  "zh-TW": "只限網址本身寫的就是 localhost 或 127.0.0.1;從外部網頁重新導向過來的一律拒絕。",
6862
7643
  "ja-JP": "URL 自体に localhost または 127.0.0.1 と書かれている場合のみです。Web からのリダイレクトは常に拒否します。",
6863
7644
  "ko-KR": "URL 자체에 localhost 또는 127.0.0.1이 적힌 경우에만 허용합니다. 웹에서 리디렉션된 경우는 항상 거부합니다.",
@@ -6892,7 +7673,7 @@
6892
7673
  },
6893
7674
  "help": {
6894
7675
  "zh": "10/8、172.16/12、192.168/16、链路本地等。默认拒绝,防止网页诱导读取内网。",
6895
- "en": "10/8, 172.16/12, 192.168/16, link-local and the like. Refused by default so a page cannot steer the reader into the local network.",
7676
+ "en": "10/8, 172.16/12, 192.168/16, link-local and similar. Refused by default so a page can't steer the reader into your local network.",
6896
7677
  "zh-TW": "10/8、172.16/12、192.168/16、連結本機位址等。預設拒絕,以免網頁把讀取引導到區域網路。",
6897
7678
  "ja-JP": "10/8、172.16/12、192.168/16、リンクローカルなど。ページが読み取りをローカルネットワークに誘導できないよう、既定では拒否します。",
6898
7679
  "ko-KR": "10/8, 172.16/12, 192.168/16, 링크 로컬 등입니다. 페이지가 읽기 도구를 내부 네트워크로 유도하지 못하도록 기본적으로 거부합니다.",
@@ -6927,7 +7708,7 @@
6927
7708
  },
6928
7709
  "summary": {
6929
7710
  "zh": "终端里的欢迎框和身份说明。",
6930
- "en": "The welcome box in the terminal and the identity note.",
7711
+ "en": "The terminal's welcome screen and the identity note for the model.",
6931
7712
  "zh-TW": "終端機裡的歡迎框和身分說明。",
6932
7713
  "ja-JP": "ターミナルに表示するウェルカムボックスと自己紹介です。",
6933
7714
  "ko-KR": "터미널의 환영 상자와 신원 안내입니다.",
@@ -6962,7 +7743,7 @@
6962
7743
  },
6963
7744
  "summary": {
6964
7745
  "zh": "首次运行就沿用你给 Claude Code、Cursor、Codex 配好的规则、技能和 MCP 服务器,只读不写。常驻规则进提示词;按文件匹配的规则只在碰到匹配文件时随工具结果交给模型一次;其余规则只列描述。项目里的内容只在项目受信任时才用。",
6965
- "en": "Uses the rules, skills and MCP servers you already set up for Claude Code, Cursor and Codex, read-only. Always-on rules join the prompt; a rule scoped to file patterns is handed over once, with the result of the first tool that touches a matching file; the rest are listed by description. Project content is only used for a trusted project.",
7746
+ "en": "Uses the rules, skills and MCP servers you've already set up for Claude Code, Cursor and Codex, read-only. Always-on rules join the prompt; a rule scoped to file patterns is passed along once, with the result of the first tool that touches a matching file; the rest are listed by description. Project content is used only in trusted projects.",
6966
7747
  "zh-TW": "以唯讀方式沿用你已經為 Claude Code、Cursor 和 Codex 設好的規則、技能和 MCP 伺服器。常駐規則會加入提示詞;限定檔案範圍的規則只交給模型一次,隨第一個碰到符合檔案的工具結果一起送出;其餘只列出描述。專案裡的內容只在專案受信任時才會使用。",
6967
7748
  "ja-JP": "Claude Code、Cursor、Codex 用にすでに設定したルール、スキル、MCP サーバーを読み取り専用で使います。常時適用のルールはプロンプトに入れます。ファイルパターンに限定されたルールは、該当するファイルに最初に触れたツールの結果とともに 1 回だけ渡します。それ以外のルールは説明だけを一覧にします。プロジェクト内の設定は、信頼済みのプロジェクトでのみ使います。",
6968
7749
  "ko-KR": "Claude Code, Cursor, Codex에 이미 설정한 규칙, 스킬, MCP 서버를 읽기 전용으로 사용합니다. 항상 적용되는 규칙은 프롬프트에 들어가고, 파일 패턴으로 범위가 정해진 규칙은 일치하는 파일을 처음 건드린 도구의 결과와 함께 한 번 전달되며, 나머지는 설명만 나열됩니다. 프로젝트 내용은 신뢰하는 프로젝트에서만 사용합니다.",
@@ -7135,7 +7916,7 @@
7135
7916
  },
7136
7917
  "label": {
7137
7918
  "zh": "单条按文件规则最多交给模型",
7138
- "en": "Most of one file-scoped rule handed over",
7919
+ "en": "Max size of a file-scoped rule passed along",
7139
7920
  "zh-TW": "單條檔案範圍規則最多交給模型",
7140
7921
  "ja-JP": "ファイル限定ルール 1 つあたりの受け渡し上限",
7141
7922
  "ko-KR": "파일 범위 규칙 1개당 최대 전달량",
@@ -7202,7 +7983,7 @@
7202
7983
  },
7203
7984
  "help": {
7204
7985
  "zh": "放不下的常驻规则改为只列描述,避免提示词被规则撑大。",
7205
- "en": "Always-on rules that do not fit are listed by description instead, so rules cannot bloat the prompt.",
7986
+ "en": "Always-on rules that don't fit are listed by description instead, so they can't bloat the prompt.",
7206
7987
  "zh-TW": "放不下的常駐規則改為只列出描述,避免規則把提示詞撐大。",
7207
7988
  "ja-JP": "収まらない常時適用のルールは説明だけを一覧にし、ルールでプロンプトが膨らまないようにします。",
7208
7989
  "ko-KR": "예산에 들어가지 않는 항상 적용 규칙은 설명만 나열하므로, 규칙 때문에 프롬프트가 부풀지 않습니다.",
@@ -7236,19 +8017,19 @@
7236
8017
  "fa-IR": "سرورهای MCP"
7237
8018
  },
7238
8019
  "summary": {
7239
- "zh": "内置的 MCP 客户端(stdio 与 Streamable HTTP)。每个服务器是能力目录里的一项,默认隐藏:Jev 认定任务需要,或模型主动申请,才启动进程并注册它的工具。工具清单会缓存,服务器没跑过 Jev 也有描述可判。项目里定义的服务器第一次启动前要你点头,定义变了会再问。在设置文件里可以把某个服务器设为常开。",
7240
- "en": "A built-in MCP client (stdio and Streamable HTTP). Each server is a catalog entry that stays hidden: its process starts and its tools register only when the judge finds the task needs it or the model asks through find_capability. Tool lists are cached, so the judge has a description before a server ever ran. A server defined by a project asks before its first start, and again when its definition changes. \"exposure\": \"always\" under mcp.servers in mu.json keeps a server open.",
7241
- "zh-TW": "內建的 MCP 用戶端(stdio 與 Streamable HTTP)。每個伺服器都是能力目錄裡的一項,預設隱藏:判定器認定任務需要它,或模型透過 find_capability 要求時,才啟動它的程序並註冊它的工具。工具清單會快取,所以伺服器即使從未執行過,判定器也有描述可以判斷。專案定義的伺服器第一次啟動前會先問你,定義變了也會再問。在 mu.json 的 mcp.servers 下為伺服器加上 \"exposure\": \"always\",就能讓它常駐開啟。",
7242
- "ja-JP": "組み込みの MCP クライアントです(stdio と Streamable HTTP)。各サーバーはカタログの項目として非表示になっており、タスクに必要だと判定器が判定したとき、またはモデルが find_capability で求めたときにだけ、プロセスが起動してツールが登録されます。ツール一覧はキャッシュされるため、サーバーを一度も起動していなくても判定器は説明を参照できます。プロジェクトで定義されたサーバーは、初回の起動前と、定義が変わったときに確認します。mu.json の mcp.servers で \"exposure\": \"always\" を指定すると、そのサーバーは常に開いたままになります。",
7243
- "ko-KR": "내장 MCP 클라이언트(stdio 및 Streamable HTTP)입니다. 각 서버는 숨겨진 카탈로그 항목으로, 판정기가 작업에 필요하다고 보거나 모델이 find_capability로 요청할 때만 프로세스가 시작되고 도구가 등록됩니다. 도구 목록은 캐시되므로 서버가 한 번도 실행되지 않았어도 판정기가 설명을 볼 수 있습니다. 프로젝트에서 정의한 서버는 처음 시작하기 전에 묻고, 정의가 바뀌면 다시 묻습니다. mu.json의 mcp.servers에서 \"exposure\": \"always\"를 지정하면 서버가 항상 열려 있습니다.",
7244
- "de-DE": "Ein integrierter MCP-Client (stdio und Streamable HTTP). Jeder Server ist ein Katalogeintrag, der verborgen bleibt: Erst wenn der Judge feststellt, dass die Aufgabe ihn braucht, oder das Modell über find_capability danach fragt, startet sein Prozess und werden seine Tools registriert. Tool-Listen werden zwischengespeichert, sodass der Judge schon eine Beschreibung hat, bevor ein Server überhaupt gelaufen ist. Ein in einem Projekt definierter Server fragt vor seinem ersten Start nach und erneut, wenn sich seine Definition ändert. \"exposure\": \"always\" unter mcp.servers in mu.json hält einen Server ständig offen.",
7245
- "fr-FR": "Un client MCP intégré (stdio et Streamable HTTP). Chaque serveur est une entrée du catalogue qui reste masquée : son processus démarre et ses outils s’enregistrent seulement quand le juge estime que la tâche en a besoin, ou quand le modèle le demande via find_capability. Les listes d’outils sont mises en cache : le juge dispose donc d’une description avant même le premier lancement d’un serveur. Un serveur défini par un projet demande votre accord avant son premier démarrage, puis de nouveau si sa définition change. Avec \"exposure\": \"always\" sous mcp.servers dans mu.json, un serveur reste ouvert.",
7246
- "es-ES": "Un cliente MCP integrado (stdio y Streamable HTTP). Cada servidor es una entrada del catálogo que permanece oculta: su proceso se inicia y sus herramientas se registran solo cuando el juez ve que la tarea lo necesita o el modelo lo pide mediante find_capability. Las listas de herramientas se guardan en caché, así que el juez tiene una descripción aunque el servidor no se haya ejecutado nunca. Un servidor definido por un proyecto pide permiso antes de su primer inicio y otra vez si cambia su definición. \"exposure\": \"always\" en mcp.servers de mu.json mantiene un servidor abierto.",
7247
- "pt-BR": "Um cliente MCP integrado (stdio e Streamable HTTP). Cada servidor é uma entrada do catálogo que fica oculta: o processo dele inicia e as ferramentas dele são registradas só quando o juiz conclui que a tarefa precisa dele ou o modelo o pede por find_capability. As listas de ferramentas ficam em cache, então o juiz tem uma descrição antes mesmo de um servidor ter rodado. Um servidor definido por um projeto pede a sua aprovação antes de iniciar pela primeira vez, e de novo quando a definição dele muda. \"exposure\": \"always\" em mcp.servers no mu.json mantém um servidor sempre ativo.",
7248
- "ru-RU": "Встроенный MCP-клиент (stdio и Streamable HTTP). Каждый сервер — скрытая запись в каталоге возможностей: его процесс запускается, а инструменты регистрируются, только когда судья решает, что он нужен задаче, или модель запрашивает его через find_capability. Списки инструментов кэшируются, поэтому у судьи есть описание, даже если сервер ещё ни разу не запускался. Для сервера, заданного в проекте, mu спрашивает разрешения перед первым запуском и снова — когда его определение меняется. \"exposure\": \"always\" в mcp.servers в mu.json держит сервер подключённым.",
7249
- "uk-UA": "Вбудований клієнт MCP (stdio і Streamable HTTP). Кожен сервер — прихований запис у каталозі можливостей: його процес запускається, а інструменти реєструються лише тоді, коли суддя визначає, що він потрібен завданню, або модель просить про це через find_capability. Списки інструментів кешуються, тож суддя має опис ще до першого запуску сервера. Сервер, визначений у проєкті, запитує дозволу перед першим запуском і знову, коли його визначення змінюється. \"exposure\": \"always\" у mcp.servers у mu.json тримає сервер відкритим.",
7250
- "tr-TR": "Yerleşik bir MCP istemcisi (stdio ve Streamable HTTP). Her sunucu, gizli kalan bir katalog girdisidir: süreci yalnızca hakem görevin ona ihtiyaç duyduğuna karar verdiğinde ya da model find_capability ile istediğinde başlar ve araçları da o zaman kaydedilir. Araç listeleri önbelleğe alınır; böylece bir sunucu hiç çalışmamış olsa bile hakemin elinde bir açıklama olur. Bir projenin tanımladığı sunucu ilk kez başlamadan önce ve tanımı her değiştiğinde izin ister. mu.json içinde mcp.servers altında \"exposure\": \"always\" bir sunucuyu açık tutar.",
7251
- "fa-IR": "یک کلاینت MCP داخلی (stdio و Streamable HTTP). هر سرور یک مورد در فهرست توانمندی‌هاست که پنهان می‌ماند: فرایندش شروع نمی‌شود و ابزارهایش ثبت نمی‌شوند، مگر وقتی داور تشخیص دهد وظیفه به آن نیاز دارد یا مدل از طریق find_capability آن را بخواهد. فهرست ابزارها در حافظهٔ نهان نگه داشته می‌شود، پس داور حتی پیش از نخستین اجرای یک سرور توضیحی از آن دارد. سروری که یک پروژه تعریف کرده، پیش از نخستین راه‌اندازی از شما اجازه می‌گیرد و هر بار تعریفش تغییر کند دوباره می‌پرسد. \"exposure\": \"always\" در mcp.servers در mu.json یک سرور را همیشه باز نگه می‌دارد."
8020
+ "zh": "MCP 服务器由 pi 自带的客户端连接(stdio 与 Streamable HTTP,支持 OAuth 登录,用 /mcp 管理)。从 Claude Code、Cursor、Codex 和 mu.json 沿用的服务器,每个是能力目录里的一项,默认隐藏:Jev 认定任务需要,或模型主动申请,才启动它并把工具交给模型。工具清单会缓存,服务器没跑过 Jev 也有描述可判。项目里定义的服务器第一次启动前要你点头,定义变了会再问。在 mu.json 里可以把某个服务器设为常开。用 mu mcp add 加的服务器归 pi 管:随会话连接,工具由 tool_search 按需加载。",
8021
+ "en": "MCP servers connect through pi's own client (stdio and Streamable HTTP, OAuth sign-in, managed with /mcp). Each server mu inherits from Claude Code, Cursor, Codex or mu.json is a hidden catalog entry: it starts, and its tools reach the model, only when the judge finds the task needs it or the model asks through find_capability. Tool lists are cached, so the judge has a description even before a server has run. A server defined by a project asks before its first start, and again when its definition changes. \"exposure\": \"always\" under mcp.servers in mu.json keeps a server open. Servers added with mu mcp add belong to pi: they connect with the session, and tool_search loads their tools when needed.",
8022
+ "zh-TW": "MCP 伺服器由 pi 內建的用戶端連線(stdio 與 Streamable HTTP,支援 OAuth 登入,用 /mcp 管理)。從 Claude Code、Cursor、Codex 和 mu.json 沿用的每個伺服器都是能力目錄裡的一項,預設隱藏:判定器認定任務需要它,或模型透過 find_capability 要求時,才啟動它並把工具交給模型。工具清單會快取,所以伺服器即使從未執行過,判定器也有描述可以判斷。專案定義的伺服器第一次啟動前會先問你,定義變了也會再問。在 mu.json 的 mcp.servers 下為伺服器加上 \"exposure\": \"always\",就能讓它常駐開啟。用 mu mcp add 加入的伺服器歸 pi 管理:隨工作階段連線,工具由 tool_search 按需載入。",
8023
+ "ja-JP": "MCP サーバーには pi 組み込みのクライアントで接続します(stdio と Streamable HTTP、OAuth サインイン、/mcp で管理)。Claude Code、Cursor、Codex、mu.json から引き継いだ各サーバーはカタログの項目として非表示になっており、タスクに必要だと判定器が判定したとき、またはモデルが find_capability で求めたときにだけ起動し、ツールがモデルに渡されます。ツール一覧はキャッシュされるため、サーバーを一度も起動していなくても判定器は説明を参照できます。プロジェクトで定義されたサーバーは、初回の起動前と、定義が変わったときに確認します。mu.json の mcp.servers で \"exposure\": \"always\" を指定すると、そのサーバーは常に開いたままになります。mu mcp add で追加したサーバーは pi が管理します。セッションとともに接続され、ツールは必要なときに tool_search が読み込みます。",
8024
+ "ko-KR": "MCP 서버는 pi 내장 클라이언트로 연결합니다(stdio 및 Streamable HTTP, OAuth 로그인, /mcp로 관리). Claude Code, Cursor, Codex, mu.json에서 이어받은 각 서버는 숨겨진 카탈로그 항목으로, 판정기가 작업에 필요하다고 보거나 모델이 find_capability로 요청할 때만 시작되고 도구가 모델에 전달됩니다. 도구 목록은 캐시되므로 서버가 한 번도 실행되지 않았어도 판정기가 설명을 볼 수 있습니다. 프로젝트에서 정의한 서버는 처음 시작하기 전에 묻고, 정의가 바뀌면 다시 묻습니다. mu.json의 mcp.servers에서 \"exposure\": \"always\"를 지정하면 서버가 항상 열려 있습니다. mu mcp add로 추가한 서버는 pi가 관리합니다. 세션과 함께 연결되고, 도구는 필요할 때 tool_search가 불러옵니다.",
8025
+ "de-DE": "MCP-Server verbindet pis eigener Client (stdio und Streamable HTTP, OAuth-Anmeldung, verwaltet mit /mcp). Jeder Server, den mu aus Claude Code, Cursor, Codex und mu.json übernimmt, ist ein Katalogeintrag, der verborgen bleibt: Er startet und seine Werkzeuge gehen erst an das Modell, wenn der Judge feststellt, dass die Aufgabe ihn braucht, oder das Modell ihn über find_capability anfordert. Werkzeuglisten werden zwischengespeichert, sodass der Judge schon eine Beschreibung hat, bevor ein Server je gelaufen ist. Ein vom Projekt definierter Server fragt vor seinem ersten Start nach, und erneut, wenn sich seine Definition ändert. \"exposure\": \"always\" unter mcp.servers in mu.json hält einen Server dauerhaft offen. Mit mu mcp add hinzugefügte Server verwaltet pi: Sie verbinden sich mit der Sitzung, und tool_search lädt ihre Werkzeuge bei Bedarf.",
8026
+ "fr-FR": "Les serveurs MCP sont connectés par le client intégré de pi (stdio et Streamable HTTP, connexion OAuth, gestion avec /mcp). Chaque serveur que mu reprend de Claude Code, Cursor, Codex et mu.json est une entrée du catalogue qui reste masquée : il ne démarre et ses outils ne sont confiés au modèle que lorsque le juge estime que la tâche en a besoin ou que le modèle le demande via find_capability. Les listes d'outils sont mises en cache, de sorte que le juge dispose d'une description avant même qu'un serveur ait tourné. Un serveur défini par un projet demande votre accord avant son premier démarrage, et de nouveau quand sa définition change. \"exposure\": \"always\" sous mcp.servers dans mu.json garde un serveur ouvert. Les serveurs ajoutés avec mu mcp add appartiennent à pi : ils se connectent avec la session, et tool_search charge leurs outils au besoin.",
8027
+ "es-ES": "Los servidores MCP se conectan con el cliente propio de pi (stdio y Streamable HTTP, inicio de sesión OAuth, gestionados con /mcp). Cada servidor que mu toma de Claude Code, Cursor, Codex y mu.json es una entrada del catálogo que permanece oculta: solo arranca y entrega sus herramientas al modelo cuando el juez determina que la tarea lo necesita o el modelo lo pide mediante find_capability. Las listas de herramientas se guardan en caché, así que el juez tiene una descripción antes de que un servidor se haya ejecutado nunca. Un servidor definido por un proyecto pide permiso antes de su primer arranque, y de nuevo cuando cambia su definición. \"exposure\": \"always\" en mcp.servers de mu.json mantiene un servidor abierto. Los servidores añadidos con mu mcp add son de pi: se conectan con la sesión y tool_search carga sus herramientas cuando hacen falta.",
8028
+ "pt-BR": "Os servidores MCP são conectados pelo cliente próprio do pi (stdio e Streamable HTTP, login OAuth, gerenciados com /mcp). Cada servidor que o mu herda do Claude Code, Cursor, Codex e mu.json é uma entrada do catálogo que fica oculta: ele só inicia e entrega suas ferramentas ao modelo quando o juiz conclui que a tarefa precisa dele ou o modelo pede via find_capability. As listas de ferramentas ficam em cache, então o juiz tem uma descrição antes mesmo de um servidor ter rodado. Um servidor definido pelo projeto pede confirmação antes da primeira inicialização, e de novo quando sua definição muda. \"exposure\": \"always\" em mcp.servers no mu.json mantém um servidor aberto. Servidores adicionados com mu mcp add são do pi: conectam-se com a sessão, e o tool_search carrega suas ferramentas quando necessário.",
8029
+ "ru-RU": "Серверы MCP подключает собственный клиент pi (stdio и Streamable HTTP, вход через OAuth, управление командой /mcp). Каждый сервер, который mu берёт из Claude Code, Cursor, Codex и mu.json, — это скрытая запись каталога: он запускается, а его инструменты передаются модели, только когда судья решает, что задаче он нужен, или модель запрашивает его через find_capability. Списки инструментов кешируются, поэтому у судьи есть описание ещё до первого запуска сервера. Сервер, определённый проектом, спрашивает разрешения перед первым запуском и снова — когда меняется его определение. \"exposure\": \"always\" в mcp.servers файла mu.json держит сервер открытым. Серверы, добавленные через mu mcp add, принадлежат pi: они подключаются вместе с сеансом, а tool_search загружает их инструменты по мере надобности.",
8030
+ "uk-UA": "Сервери MCP підключає власний клієнт pi (stdio і Streamable HTTP, вхід через OAuth, керування командою /mcp). Кожен сервер, який mu переймає з Claude Code, Cursor, Codex і mu.json, — це прихований запис каталогу: він запускається, а його інструменти передаються моделі, лише коли суддя вирішує, що завданню він потрібен, або модель запитує його через find_capability. Списки інструментів кешуються, тож суддя має опис ще до першого запуску сервера. Сервер, визначений проєктом, питає дозволу перед першим запуском і знову — коли змінюється його визначення. \"exposure\": \"always\" у mcp.servers файлу mu.json тримає сервер відкритим. Сервери, додані через mu mcp add, належать pi: вони підключаються разом із сеансом, а tool_search завантажує їхні інструменти за потреби.",
8031
+ "tr-TR": "MCP sunucularına pi'nin kendi istemcisi bağlanır (stdio ve Streamable HTTP, OAuth ile giriş, /mcp ile yönetim). mu'nun Claude Code, Cursor, Codex ve mu.json'dan devraldığı her sunucu gizli kalan bir katalog girdisidir: yalnızca yargıç görevin ona ihtiyaç duyduğuna karar verdiğinde ya da model find_capability ile istediğinde başlar ve araçları modele verilir. Araç listeleri önbelleğe alınır; böylece bir sunucu hiç çalışmamış olsa da yargıcın elinde bir açıklama olur. Proje tarafından tanımlanan bir sunucu ilk başlatmadan önce ve tanımı değiştiğinde yeniden onay ister. mu.json'daki mcp.servers altında \"exposure\": \"always\" bir sunucuyu açık tutar. mu mcp add ile eklenen sunucular pi'ye aittir: oturumla birlikte bağlanır, araçlarını gerektiğinde tool_search yükler.",
8032
+ "fa-IR": "سرورهای MCP را کلاینت خودِ pi وصل می‌کند (stdio و Streamable HTTP، ورود با OAuth، مدیریت با /mcp). هر سروری که mu از Claude Code، Cursor، Codex و mu.json برمی‌دارد یک مدخل پنهان در کاتالوگ است: فقط وقتی داور تشخیص دهد که کار به آن نیاز دارد، یا مدل از طریق find_capability آن را بخواهد، راه می‌افتد و ابزارهایش به مدل داده می‌شود. فهرست ابزارها کش می‌شود، پس داور حتی پیش از نخستین اجرای سرور توضیحی در دست دارد. سروری که پروژه تعریف کرده پیش از نخستین راه‌اندازی، و دوباره هر بار که تعریفش عوض شود، اجازه می‌گیرد. \"exposure\": \"always\" زیر mcp.servers در mu.json سرور را همیشه باز نگه می‌دارد. سرورهایی که با mu mcp add افزوده می‌شوند متعلق به pi هستند: همراه نشست وصل می‌شوند و tool_search ابزارهایشان را هر وقت لازم شد بارگذاری می‌کند."
7252
8033
  },
7253
8034
  "defaultEnabled": true,
7254
8035
  "options": [
@@ -7340,95 +8121,6 @@
7340
8121
  "tr-TR": "Çağrı zaman aşımı",
7341
8122
  "fa-IR": "مهلت هر فراخوانی"
7342
8123
  }
7343
- },
7344
- {
7345
- "key": "waitMs",
7346
- "kind": "number",
7347
- "default": 8000,
7348
- "min": 0,
7349
- "max": 60000,
7350
- "unit": {
7351
- "zh": "毫秒",
7352
- "en": "ms",
7353
- "zh-TW": "毫秒",
7354
- "ja-JP": "ミリ秒",
7355
- "ko-KR": "밀리초",
7356
- "de-DE": "ms",
7357
- "fr-FR": "ms",
7358
- "es-ES": "ms",
7359
- "pt-BR": "ms",
7360
- "ru-RU": "мс",
7361
- "uk-UA": "мс",
7362
- "tr-TR": "ms",
7363
- "fa-IR": "میلی‌ثانیه"
7364
- },
7365
- "label": {
7366
- "zh": "回合开始前最多等常开服务器",
7367
- "en": "Wait for pinned servers before a turn",
7368
- "zh-TW": "每輪開始前最多等常駐伺服器",
7369
- "ja-JP": "ターン開始前に常時オンのサーバーを待つ時間",
7370
- "ko-KR": "턴 시작 전 상시 서버 대기 시간",
7371
- "de-DE": "Wartezeit auf ständig offene Server vor einer Runde",
7372
- "fr-FR": "Attente des serveurs toujours ouverts avant un tour",
7373
- "es-ES": "Espera a los servidores siempre abiertos al iniciar un turno",
7374
- "pt-BR": "Esperar pelos servidores sempre ativos antes de um turno",
7375
- "ru-RU": "Ждать постоянные серверы перед ходом",
7376
- "uk-UA": "Чекати на закріплені сервери перед ходом",
7377
- "tr-TR": "Tur öncesinde her zaman açık sunucular için en fazla bekleme",
7378
- "fa-IR": "انتظار برای سرورهای همیشه‌باز پیش از نوبت"
7379
- }
7380
- },
7381
- {
7382
- "key": "maxResultChars",
7383
- "kind": "number",
7384
- "default": 60000,
7385
- "min": 2000,
7386
- "max": 1000000,
7387
- "unit": {
7388
- "zh": "字符",
7389
- "en": "chars",
7390
- "zh-TW": "字元",
7391
- "ja-JP": "文字",
7392
- "ko-KR": "자",
7393
- "de-DE": "Zeichen",
7394
- "fr-FR": "caractères",
7395
- "es-ES": "caracteres",
7396
- "pt-BR": "caracteres",
7397
- "ru-RU": "симв.",
7398
- "uk-UA": "символів",
7399
- "tr-TR": "karakter",
7400
- "fa-IR": "نویسه"
7401
- },
7402
- "label": {
7403
- "zh": "单个结果最多进上下文",
7404
- "en": "Most of one result kept in context",
7405
- "zh-TW": "單個結果最多進入上下文",
7406
- "ja-JP": "1 つの結果をコンテキストに残す上限",
7407
- "ko-KR": "컨텍스트에 넣는 결과 1개 최대량",
7408
- "de-DE": "Höchstens im Kontext behaltener Teil eines Ergebnisses",
7409
- "fr-FR": "Maximum d’un résultat gardé dans le contexte",
7410
- "es-ES": "Máximo de un resultado que queda en el contexto",
7411
- "pt-BR": "Máximo de um resultado mantido no contexto",
7412
- "ru-RU": "Объём результата в контексте не больше",
7413
- "uk-UA": "Макс. обсяг результату в контексті",
7414
- "tr-TR": "Bir sonuçtan bağlamda en fazla tutulan metin",
7415
- "fa-IR": "حداکثر متن هر نتیجه در زمینه"
7416
- },
7417
- "help": {
7418
- "zh": "超出的部分截掉,完整结果存到文件。",
7419
- "en": "The rest is cut and the whole result saved to a file.",
7420
- "zh-TW": "超出的部分會截斷,完整結果存到檔案。",
7421
- "ja-JP": "超えた部分は切り捨て、結果全体をファイルに保存します。",
7422
- "ko-KR": "나머지는 잘리고, 전체 결과는 파일에 저장됩니다.",
7423
- "de-DE": "Der Rest wird abgeschnitten und das vollständige Ergebnis in einer Datei gespeichert.",
7424
- "fr-FR": "Le reste est coupé, et le résultat complet est enregistré dans un fichier.",
7425
- "es-ES": "El resto se corta y el resultado completo se guarda en un archivo.",
7426
- "pt-BR": "O resto é cortado, e o resultado inteiro é salvo em um arquivo.",
7427
- "ru-RU": "Остальное обрезается, а полный результат сохраняется в файл.",
7428
- "uk-UA": "Решта обрізається, а повний результат зберігається у файл.",
7429
- "tr-TR": "Gerisi kesilir ve sonucun tamamı bir dosyaya kaydedilir.",
7430
- "fa-IR": "بقیه بریده می‌شود و کل نتیجه در یک فایل ذخیره می‌شود."
7431
- }
7432
8124
  }
7433
8125
  ]
7434
8126
  },
@@ -7451,7 +8143,7 @@
7451
8143
  },
7452
8144
  "summary": {
7453
8145
  "zh": "随 mu 装好、默认不露的工具包,任务需要时才打开;缺外部程序时给出安装提示。",
7454
- "en": "Tool packs that ship with mu and stay hidden until a task needs them; a missing program gives an install hint.",
8146
+ "en": "Tool packs that ship with mu and stay hidden until a task needs them; if a required program is missing, mu shows how to install it.",
7455
8147
  "zh-TW": "隨 mu 附帶的工具包,預設隱藏,任務需要時才開啟;缺少外部程式時會提示如何安裝。",
7456
8148
  "ja-JP": "mu に同梱され、タスクで必要になるまで非表示のツールパックです。必要なプログラムがない場合は、インストール方法を案内します。",
7457
8149
  "ko-KR": "mu와 함께 제공되며 작업에 필요할 때까지 숨겨 두는 도구 팩입니다. 필요한 프로그램이 없으면 설치 안내를 보여 줍니다.",
@@ -7487,7 +8179,7 @@
7487
8179
  },
7488
8180
  "help": {
7489
8181
  "zh": "按语法而不是按文字找代码、改代码。需要本机装有 ast-grep。",
7490
- "en": "Finds and changes code by syntax, not text. Needs ast-grep on this machine.",
8182
+ "en": "Finds and changes code by syntax, not text. Requires ast-grep on this machine.",
7491
8183
  "zh-TW": "依語法而不是文字來尋找和修改程式碼。需要本機裝有 ast-grep。",
7492
8184
  "ja-JP": "テキストではなく構文でコードを検索・変更します。このマシンに ast-grep が必要です。",
7493
8185
  "ko-KR": "텍스트가 아닌 문법 구조로 코드를 찾고 바꿉니다. 이 컴퓨터에 ast-grep이 있어야 합니다.",
@@ -7509,7 +8201,7 @@
7509
8201
  "max": 500,
7510
8202
  "label": {
7511
8203
  "zh": "一次搜索最多返回",
7512
- "en": "Matches one search returns",
8204
+ "en": "Max matches per search",
7513
8205
  "zh-TW": "單次搜尋最多回傳幾筆",
7514
8206
  "ja-JP": "1 回の検索で返す一致数",
7515
8207
  "ko-KR": "검색 1회 최대 일치 수",
@@ -7546,7 +8238,7 @@
7546
8238
  },
7547
8239
  "label": {
7548
8240
  "zh": "单个结果最多带多少 diff",
7549
- "en": "Most diff one result carries",
8241
+ "en": "Max diff per result",
7550
8242
  "zh-TW": "單個結果最多附帶多少 diff",
7551
8243
  "ja-JP": "1 つの結果に含める diff の上限",
7552
8244
  "ko-KR": "결과 1개의 최대 diff",
@@ -7566,7 +8258,7 @@
7566
8258
  "default": "",
7567
8259
  "label": {
7568
8260
  "zh": "ast-grep 的路径",
7569
- "en": "Path of ast-grep",
8261
+ "en": "ast-grep path",
7570
8262
  "zh-TW": "ast-grep 的路徑",
7571
8263
  "ja-JP": "ast-grep のパス",
7572
8264
  "ko-KR": "ast-grep 경로",
@@ -7616,7 +8308,7 @@
7616
8308
  },
7617
8309
  "help": {
7618
8310
  "zh": "不加工具,只带一个教模型用 gh 处理 PR、issue、检查和发布的技能。需要本机装有 gh。",
7619
- "en": "No tools, one skill that teaches gh for PRs, issues, checks and releases. Needs gh on this machine.",
8311
+ "en": "No tools; a skill that teaches gh for PRs, issues, checks and releases. Requires gh on this machine.",
7620
8312
  "zh-TW": "不加工具,只帶一個教模型用 gh 處理 PR、issue、檢查和發行版本的技能。需要本機裝有 gh。",
7621
8313
  "ja-JP": "ツールは追加せず、PR、issue、チェック、リリースでの gh の使い方を教えるスキルを 1 つ追加します。このマシンに gh が必要です。",
7622
8314
  "ko-KR": "도구 없이, PR, 이슈, 검사, 릴리스에 gh를 쓰는 법을 알려 주는 스킬 하나만 제공합니다. 이 컴퓨터에 gh가 있어야 합니다.",
@@ -7636,7 +8328,7 @@
7636
8328
  "default": "",
7637
8329
  "label": {
7638
8330
  "zh": "gh 的路径",
7639
- "en": "Path of gh",
8331
+ "en": "gh path",
7640
8332
  "zh-TW": "gh 的路徑",
7641
8333
  "ja-JP": "gh のパス",
7642
8334
  "ko-KR": "gh 경로",
@@ -7671,7 +8363,7 @@
7671
8363
  "default": true,
7672
8364
  "label": {
7673
8365
  "zh": "/commit:把改动拆成多个提交",
7674
- "en": "/commit: split the change into commits",
8366
+ "en": "/commit: split changes into commits",
7675
8367
  "zh-TW": "/commit:把改動拆成多個提交",
7676
8368
  "ja-JP": "/commit: 変更を複数のコミットに分割",
7677
8369
  "ko-KR": "/commit: 변경을 여러 커밋으로 나누기",
@@ -7686,7 +8378,7 @@
7686
8378
  },
7687
8379
  "help": {
7688
8380
  "zh": "模型提议怎么分组、怎么写提交说明,你看过计划并确认后才提交;要么全部提交成功,要么一个都不留。从不推送。",
7689
- "en": "A model proposes the groups and the messages; commits are made only after you confirm the plan, all or none. Never pushes.",
8381
+ "en": "A model proposes the groups and messages; commits are made only after you confirm the plan, all or none. Never pushes.",
7690
8382
  "zh-TW": "由模型提議如何分組、提交訊息怎麼寫;你確認計畫後才會提交,而且全有或全無。從不推送。",
7691
8383
  "ja-JP": "モデルがグループ分けとコミットメッセージを提案し、あなたが計画を確認してからコミットします。すべてコミットするか、1 つもコミットしないかのどちらかです。プッシュはしません。",
7692
8384
  "ko-KR": "모델이 커밋 묶음과 메시지를 제안하고, 사용자가 계획을 확인한 뒤에만 커밋합니다. 모두 커밋되거나 하나도 커밋되지 않습니다. 푸시는 하지 않습니다.",
@@ -7728,7 +8420,7 @@
7728
8420
  "default": true,
7729
8421
  "label": {
7730
8422
  "zh": "评审并按严重程度分级",
7731
- "en": "/review, with findings sorted P0 to P3",
8423
+ "en": "/review, with findings ranked P0 to P3",
7732
8424
  "zh-TW": "/review:審查並依 P0 到 P3 分級",
7733
8425
  "ja-JP": "/review(指摘を P0〜P3 で優先度付け)",
7734
8426
  "ko-KR": "/review, 발견을 P0~P3로 분류",
@@ -7763,7 +8455,7 @@
7763
8455
  },
7764
8456
  "help": {
7765
8457
  "zh": "合并、变基、拣选停在冲突上时,逐个文件显示双方和共同基线,按块写入解决结果并标记为已解决。从不提交,也不执行 --continue。",
7766
- "en": "When a merge, rebase or cherry-pick stops on conflicts: both sides and their base per file, the resolution written block by block and the file marked resolved. Never commits, never runs --continue.",
8458
+ "en": "When a merge, rebase or cherry-pick stops on conflicts, shows both sides and their base for each file, writes the resolution block by block and marks the file resolved. Never commits and never runs --continue.",
7767
8459
  "zh-TW": "合併、rebase 或 cherry-pick 因衝突停下時:逐個檔案顯示雙方和共同基準,逐塊寫入解決結果,再把檔案標為已解決。從不提交,也從不執行 --continue。",
7768
8460
  "ja-JP": "マージ、リベース、cherry-pick がコンフリクトで止まったときに、ファイルごとに両側と共通のベースを示し、ブロックごとに解決内容を書き込んで、ファイルを解決済みにします。コミットはせず、--continue も実行しません。",
7769
8461
  "ko-KR": "병합, 리베이스, 체리픽이 충돌로 멈추면 파일마다 양쪽 내용과 공통 기준을 보여 주고, 블록 단위로 해결 내용을 쓴 뒤 파일을 해결됨으로 표시합니다. 커밋하지 않으며 --continue도 실행하지 않습니다.",
@@ -7807,7 +8499,7 @@
7807
8499
  "max": 200000,
7808
8500
  "label": {
7809
8501
  "zh": "一个文件的冲突最多显示多少字符",
7810
- "en": "Characters of one file's conflicts shown",
8502
+ "en": "Max characters of conflicts shown per file",
7811
8503
  "zh-TW": "單一檔案的衝突最多顯示多少字元",
7812
8504
  "ja-JP": "1 ファイルのコンフリクトを表示する文字数",
7813
8505
  "ko-KR": "파일 하나의 충돌 표시 글자 수",
@@ -7829,7 +8521,7 @@
7829
8521
  "max": 200,
7830
8522
  "label": {
7831
8523
  "zh": "一次最多分级多少条发现",
7832
- "en": "Findings sorted per triage at most",
8524
+ "en": "Max findings ranked per triage",
7833
8525
  "zh-TW": "每次分級最多處理幾則發現",
7834
8526
  "ja-JP": "1 回に優先度付けする指摘の最大数",
7835
8527
  "ko-KR": "분류 1회당 최대 발견 수",
@@ -7844,7 +8536,7 @@
7844
8536
  },
7845
8537
  "help": {
7846
8538
  "zh": "超出的照样报告,只是不参与分级。",
7847
- "en": "The rest are still reported, just not sorted.",
8539
+ "en": "The rest are still reported, just not ranked.",
7848
8540
  "zh-TW": "超出的照樣回報,只是不分級。",
7849
8541
  "ja-JP": "残りも報告されますが、優先度付けはされません。",
7850
8542
  "ko-KR": "나머지도 보고되지만 분류되지는 않습니다.",
@@ -7879,7 +8571,7 @@
7879
8571
  },
7880
8572
  "help": {
7881
8573
  "zh": "在调试器里运行程序,停在断点或未捕获的异常处,看调用栈和变量。Python 用 debugpy,Go 用 delve,编译型程序用 lldb-dap,都要本机已装;也可以在设置文件里加自己的。一次只跑一个,随会话结束。",
7882
- "en": "Runs a program under a debugger, stopped at breakpoints or an uncaught exception, with the call stack and variables. debugpy for Python, delve for Go, lldb-dap for compiled programs, each if installed; add your own under debugAdapters in mu.json. One run at a time, ended with the session.",
8574
+ "en": "Runs a program under a debugger and stops at breakpoints or uncaught exceptions, showing the call stack and variables. Uses debugpy for Python, delve for Go and lldb-dap for compiled programs, if installed; add your own under debugAdapters in mu.json. One run at a time, ended with the session.",
7883
8575
  "zh-TW": "在偵錯工具下執行程式,停在中斷點或未攔截的例外處,查看呼叫堆疊和變數。Python 用 debugpy、Go 用 delve、編譯型程式用 lldb-dap,都需要本機已安裝;也可以在 mu.json 的 debugAdapters 下加入自己的。一次只執行一個,隨對話結束。",
7884
8576
  "ja-JP": "デバッガーでプログラムを実行し、ブレークポイントや捕捉されていない例外で停止して、コールスタックと変数を確認します。Python には debugpy、Go には delve、コンパイル型のプログラムには lldb-dap を、それぞれインストールされていれば使います。独自のものは mu.json の debugAdapters に追加します。同時に実行できるのは 1 つだけで、セッションとともに終了します。",
7885
8577
  "ko-KR": "프로그램을 디버거에서 실행해 중단점이나 처리되지 않은 예외에서 멈추고, 호출 스택과 변수를 보여 줍니다. Python은 debugpy, Go는 delve, 컴파일된 프로그램은 lldb-dap을 쓰며, 각각 설치되어 있어야 합니다. mu.json의 debugAdapters에 직접 추가할 수도 있습니다. 한 번에 하나만 실행하며, 세션과 함께 끝납니다.",
@@ -7960,7 +8652,7 @@
7960
8652
  },
7961
8653
  "label": {
7962
8654
  "zh": "一次结果最多带多少程序输出",
7963
- "en": "Program output one result carries",
8655
+ "en": "Max program output per result",
7964
8656
  "zh-TW": "單個結果最多附帶多少程式輸出",
7965
8657
  "ja-JP": "1 つの結果に含めるプログラム出力",
7966
8658
  "ko-KR": "결과 1개에 담을 프로그램 출력",
@@ -7975,7 +8667,7 @@
7975
8667
  },
7976
8668
  "help": {
7977
8669
  "zh": "超出时只留最后的部分。",
7978
- "en": "Only the tail is kept when there is more.",
8670
+ "en": "When there's more, only the end is kept.",
7979
8671
  "zh-TW": "超出時只保留最後的部分。",
7980
8672
  "ja-JP": "これを超える場合は末尾だけを残します。",
7981
8673
  "ko-KR": "이보다 많으면 끝부분만 남깁니다.",
@@ -8012,7 +8704,7 @@
8012
8704
  },
8013
8705
  "label": {
8014
8706
  "zh": "等程序停下的最长时间",
8015
- "en": "Longest wait for the program to stop",
8707
+ "en": "Max wait for the program to stop",
8016
8708
  "zh-TW": "最多等程式停下多久",
8017
8709
  "ja-JP": "プログラムの停止を待つ最大時間",
8018
8710
  "ko-KR": "프로그램이 멈출 때까지 최대 대기 시간",
@@ -8027,7 +8719,7 @@
8027
8719
  },
8028
8720
  "help": {
8029
8721
  "zh": "到时还没停下也没结束,就告诉模型程序还在跑;它可以暂停看看停在哪,或者接着等。",
8030
- "en": "If it has neither stopped nor ended by then, the model is told it still runs, and can pause it to see where, or wait more.",
8722
+ "en": "If it hasn't stopped or exited by then, the model is told it's still running, and can pause it to see where it is, or keep waiting.",
8031
8723
  "zh-TW": "到時程式既沒停下也沒結束,就告訴模型它還在執行;模型可以暫停它看看停在哪裡,或繼續等。",
8032
8724
  "ja-JP": "それまでに停止も終了もしなければ、まだ実行中であることをモデルに伝えます。モデルは一時停止して位置を確かめるか、さらに待つことができます。",
8033
8725
  "ko-KR": "그때까지 멈추지도 끝나지도 않으면 모델에게 아직 실행 중이라고 알립니다. 모델은 일시정지해서 위치를 확인하거나 더 기다릴 수 있습니다.",
@@ -8062,7 +8754,7 @@
8062
8754
  },
8063
8755
  "summary": {
8064
8756
  "zh": "在 /login 里多出两项:借 Gemini CLI 的登录用 Gemini 模型,借 Antigravity 的登录用 Gemini、Claude 和 GPT-OSS。这是 Google 给自家工具的登录,别的程序用它可能违反 Google 的条款、被限制或封号,所以登录前会先说明风险,你同意才继续。官方的方式不需要这一项:Gemini API key(提供商 google)和 Vertex AI(提供商 google-vertex,用 gcloud 登录)。",
8065
- "en": "Adds two entries to /login: Gemini CLI's sign-in for the Gemini models, and Antigravity's for Gemini, Claude and GPT-OSS. These are Google's logins for its own tools; another program using them may break Google's terms and get the account limited or suspended, so the sign-in states the risk first and goes on only if you agree. The official routes need none of this: a Gemini API key (provider google) and Vertex AI (provider google-vertex, signed in with gcloud).",
8757
+ "en": "Adds two entries to /login: Gemini CLI's sign-in for the Gemini models, and Antigravity's for Gemini, Claude and GPT-OSS. These are Google's sign-ins for its own tools; using them from another program may violate Google's terms and get the account limited or suspended, so mu explains the risk first and continues only if you agree. The official routes need none of this: a Gemini API key (provider google) or Vertex AI (provider google-vertex, signed in with gcloud).",
8066
8758
  "zh-TW": "在 /login 裡多出兩個選項:借用 Gemini CLI 的登入來使用 Gemini 模型,借用 Antigravity 的登入來使用 Gemini、Claude 和 GPT-OSS。這些是 Google 給自家工具用的登入方式,其他程式使用它們可能違反 Google 的條款,導致帳號受限或被停用,所以登入前會先說明風險,你同意才會繼續。官方的方式不需要這些:Gemini API 金鑰(供應商 google)和 Vertex AI(供應商 google-vertex,用 gcloud 登入)。",
8067
8759
  "ja-JP": "/login に 2 つの項目を追加します。Gemini モデル用の Gemini CLI のログインと、Gemini、Claude、GPT-OSS 用の Antigravity のログインです。これらは Google が自社ツールのために用意したログインで、ほかのプログラムが使うと Google の規約に違反し、アカウントが制限または停止される可能性があります。そのため、ログイン前にリスクを説明し、同意した場合にだけ続行します。公式の方法ではこの機能は不要です: Gemini API キー(プロバイダー google)と Vertex AI(プロバイダー google-vertex、gcloud でログイン)。",
8068
8760
  "ko-KR": "/login에 두 항목을 추가합니다. Gemini 모델용 Gemini CLI 로그인과, Gemini, Claude, GPT-OSS용 Antigravity 로그인입니다. 이는 Google이 자사 도구용으로 만든 로그인이므로, 다른 프로그램이 사용하면 Google 약관을 위반해 계정이 제한되거나 정지될 수 있습니다. 그래서 로그인 전에 위험을 먼저 알리고, 동의할 때만 진행합니다. 공식 경로에는 이런 절차가 필요 없습니다. Gemini API 키(공급자 google)와 Vertex AI(공급자 google-vertex, gcloud로 로그인)입니다.",
@@ -8099,7 +8791,7 @@
8099
8791
  },
8100
8792
  "help": {
8101
8793
  "zh": "Gemini 模型;个人账号走免费额度,有 Code Assist 许可的走许可。",
8102
- "en": "The Gemini models, on the free tier for a personal account or on a Code Assist licence.",
8794
+ "en": "The Gemini models, on the free tier for a personal account or with a Code Assist license.",
8103
8795
  "zh-TW": "Gemini 模型;個人帳號使用免費額度,有 Code Assist 授權的則使用授權。",
8104
8796
  "ja-JP": "Gemini モデル。個人アカウントなら無料枠、Code Assist のライセンスがあればそのライセンスで使います。",
8105
8797
  "ko-KR": "Gemini 모델을 개인 계정은 무료 등급으로, Code Assist 라이선스가 있으면 라이선스로 사용합니다.",
@@ -8134,7 +8826,7 @@
8134
8826
  },
8135
8827
  "help": {
8136
8828
  "zh": "Gemini、Claude 和 GPT-OSS;登录后按账号实际能用的模型更新列表。",
8137
- "en": "Gemini, Claude and GPT-OSS; once signed in, the list follows what the account can use.",
8829
+ "en": "Gemini, Claude and GPT-OSS; once you're signed in, the list shows what the account can use.",
8138
8830
  "zh-TW": "Gemini、Claude 和 GPT-OSS;登入後,清單會依帳號實際能用的模型更新。",
8139
8831
  "ja-JP": "Gemini、Claude、GPT-OSS。ログイン後は、アカウントで実際に使えるモデルに合わせて一覧が更新されます。",
8140
8832
  "ko-KR": "Gemini, Claude, GPT-OSS를 사용합니다. 로그인하면 계정이 쓸 수 있는 모델에 맞춰 목록이 바뀝니다.",