mu-agent 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +5 -4
  3. package/dist/bundle/chunks/anthropic-messages-MI4QHRXW.js +6 -0
  4. package/dist/bundle/chunks/anthropic.js +2 -2
  5. package/dist/bundle/chunks/azure-openai-responses-E3QGN4VN.js +2 -0
  6. package/dist/bundle/chunks/bedrock-converse-stream.js +2 -2
  7. package/dist/bundle/chunks/chunk-33KL6IIQ.js +20 -0
  8. package/dist/bundle/chunks/chunk-4OBXYPH4.js +4 -0
  9. package/dist/bundle/chunks/chunk-C47CLQZK.js +2 -0
  10. package/dist/bundle/chunks/chunk-F5ZABL6Z.js +20 -0
  11. package/dist/bundle/chunks/chunk-H3QXYIF7.js +31 -0
  12. package/dist/bundle/chunks/chunk-HQHD6PZI.js +2 -0
  13. package/dist/bundle/chunks/chunk-KJUDFE6Y.js +11 -0
  14. package/dist/bundle/chunks/chunk-LD2P6SFZ.js +2 -0
  15. package/dist/bundle/chunks/chunk-NG4PO5FP.js +1204 -0
  16. package/dist/bundle/chunks/chunk-NTSWBG4X.js +2 -0
  17. package/dist/bundle/chunks/chunk-RLZVFGW4.js +127 -0
  18. package/dist/bundle/chunks/{chunk-XDUWOHPL.js → chunk-S3GGRYIO.js} +2 -2
  19. package/dist/bundle/chunks/{chunk-4O2SCVYF.js → chunk-TAOL3JFA.js} +1 -1
  20. package/dist/bundle/chunks/chunk-TE3GUV6H.js +9 -0
  21. package/dist/bundle/chunks/chunk-VIV3CWXG.js +2 -0
  22. package/dist/bundle/chunks/{chunk-V7IXECST.js → chunk-WE4MXUQS.js} +3 -3
  23. package/dist/bundle/chunks/chunk-Y2PP32XV.js +2 -0
  24. package/dist/bundle/chunks/chunk-YLY6CKPK.js +132 -0
  25. package/dist/bundle/chunks/chunk-ZE5FMF3V.js +99 -0
  26. package/dist/bundle/chunks/cli-AOVD3SSZ.js +51 -0
  27. package/dist/bundle/chunks/cloudflare-workers-ai-system-one-NM3JRRWQ.js +2 -0
  28. package/dist/bundle/chunks/codemode-worker.js +374 -0
  29. package/dist/bundle/chunks/easter-egg-3d-G2LUBEMZ.js +2 -0
  30. package/dist/bundle/chunks/execute-MZVUC6BB.js +388 -0
  31. package/dist/bundle/chunks/github-copilot.js +1 -1
  32. package/dist/bundle/chunks/{google-generative-ai-C44KRRZ4.js → google-generative-ai-XMFHGQC5.js} +1 -1
  33. package/dist/bundle/chunks/{google-vertex-25DUXPTJ.js → google-vertex-4XRRNP74.js} +1 -1
  34. package/dist/bundle/chunks/{lib-HGQMNYVT.js → lib-TEDK3E5I.js} +2 -2
  35. package/dist/bundle/chunks/llama-cpp-classify-XT44PI3C.js +22 -0
  36. package/dist/bundle/chunks/mistral-conversations-Q22M3IBG.js +5 -0
  37. package/dist/bundle/chunks/node-N5BSDOA5.js +16 -0
  38. package/dist/bundle/chunks/openai-chatgpt.js +86 -0
  39. package/dist/bundle/chunks/{openai-codex-responses-3UAYOSSR.js → openai-codex-responses-4MYQSO5E.js} +1 -1
  40. package/dist/bundle/chunks/openai-codex.js +2 -2
  41. package/dist/bundle/chunks/openai-completions-OSRCWAAA.js +7 -0
  42. package/dist/bundle/chunks/openai-responses-UHF3DHNG.js +3 -0
  43. package/dist/bundle/chunks/{openrouter-images-JVEJN44Q.js → openrouter-images-ZVXWCSIM.js} +1 -1
  44. package/dist/bundle/chunks/openrouter.js +2 -2
  45. package/dist/bundle/chunks/radius.js +2 -2
  46. package/dist/bundle/chunks/runtime-VJMMDLVH.js +2 -0
  47. package/dist/bundle/chunks/typesafe-system-one-PRR5K6CI.js +2 -0
  48. package/dist/bundle/chunks/virtual-modules-RJXJGCPI.js +2 -0
  49. package/dist/bundle/cli-runtime.js +1 -1
  50. package/dist/bundle/index.js +1 -1
  51. package/dist/bundle/native/darwin/prebuilds/darwin-arm64/darwin-platform.node +0 -0
  52. package/dist/bundle/native/darwin/prebuilds/darwin-x64/darwin-platform.node +0 -0
  53. package/dist/bundle/rpc-entry.js +1 -1
  54. package/dist/core/export-html/template.js +16 -0
  55. package/dist/modes/interactive/theme/dark.json +59 -72
  56. package/dist/modes/interactive/theme/light.json +57 -69
  57. package/dist/modes/interactive/theme/system-theme.d.ts +55 -0
  58. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  59. package/dist/modes/interactive/theme/system-theme.js +546 -0
  60. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  61. package/dist/modes/interactive/theme/theme-controller.d.ts +43 -9
  62. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  63. package/dist/modes/interactive/theme/theme-controller.js +121 -79
  64. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  65. package/dist/modes/interactive/theme/theme-json.d.ts.map +1 -1
  66. package/dist/modes/interactive/theme/theme-json.js +1 -1
  67. package/dist/modes/interactive/theme/theme-json.js.map +1 -1
  68. package/dist/modes/interactive/theme/theme-schema.json +2 -2
  69. package/dist/modes/interactive/theme/theme.d.ts +34 -40
  70. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  71. package/dist/modes/interactive/theme/theme.js +139 -126
  72. package/dist/modes/interactive/theme/theme.js.map +1 -1
  73. package/dist/native/darwin/prebuilds/darwin-arm64/darwin-platform.node +0 -0
  74. package/dist/native/darwin/prebuilds/darwin-x64/darwin-platform.node +0 -0
  75. package/docs/cli.md +60 -7
  76. package/docs/codemode.md +207 -0
  77. package/docs/configuration.md +2 -0
  78. package/docs/docs.json +13 -1
  79. package/docs/environment-variables.md +2 -2
  80. package/docs/extensions.md +53 -0
  81. package/docs/index.md +1 -1
  82. package/docs/keybindings.md +2 -2
  83. package/docs/llama-cpp.md +13 -0
  84. package/docs/mcp.md +270 -0
  85. package/docs/models.md +83 -1
  86. package/docs/packages.md +1 -1
  87. package/docs/providers.md +19 -6
  88. package/docs/quickstart.md +16 -2
  89. package/docs/rpc-commands.md +9 -3
  90. package/docs/rpc.md +3 -1
  91. package/docs/sdk.md +8 -3
  92. package/docs/security.md +2 -0
  93. package/docs/session-format.md +5 -1
  94. package/docs/settings.md +24 -5
  95. package/docs/themes.md +28 -6
  96. package/docs/usage.md +1 -1
  97. package/docs/virtual-models.md +114 -0
  98. package/docs/windows.md +2 -0
  99. package/examples/README.md +1 -1
  100. package/examples/extensions/README.md +1 -0
  101. package/examples/extensions/built-in-tool-renderer.ts +16 -40
  102. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  103. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  104. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  105. package/examples/extensions/custom-provider-gitlab-duo/test.ts +5 -5
  106. package/examples/extensions/gondolin/package-lock.json +2 -2
  107. package/examples/extensions/gondolin/package.json +1 -1
  108. package/examples/extensions/jev-router.ts +113 -0
  109. package/examples/extensions/minimal-mode.ts +24 -96
  110. package/examples/extensions/sandbox/package-lock.json +2 -2
  111. package/examples/extensions/sandbox/package.json +1 -1
  112. package/examples/extensions/with-deps/package-lock.json +2 -2
  113. package/examples/extensions/with-deps/package.json +1 -1
  114. package/examples/rpc-client.ts +1 -1
  115. package/examples/rpc-extension-ui.ts +1 -1
  116. package/examples/sdk/14-codemode-mcp.ts +61 -0
  117. package/examples/sdk/README.md +2 -1
  118. package/judge/THIRD_PARTY_NOTICES.md +63 -0
  119. package/judge/dist/auth.js +128 -113
  120. package/judge/dist/import.js +10 -9
  121. package/judge/dist/kyrn-judge.js +5444 -5354
  122. package/judge/dist/setup.js +138 -12
  123. package/judge/manifest.json +414 -102
  124. package/kyrn/bin/kyrn-doctor +61 -11
  125. package/kyrn/bin/mu.mjs +84 -69
  126. package/package.json +4 -4
  127. package/dist/bundle/chunks/anthropic-messages-VMESUHQ7.js +0 -6
  128. package/dist/bundle/chunks/azure-openai-responses-K232MQFF.js +0 -2
  129. package/dist/bundle/chunks/chunk-AYFRR3OD.js +0 -2
  130. package/dist/bundle/chunks/chunk-DTD7JQ7Y.js +0 -42
  131. package/dist/bundle/chunks/chunk-FU4XQUSL.js +0 -11
  132. package/dist/bundle/chunks/chunk-GNYZK6XN.js +0 -2
  133. package/dist/bundle/chunks/chunk-HEMXN7VJ.js +0 -1653
  134. package/dist/bundle/chunks/chunk-MVPXOVOJ.js +0 -2
  135. package/dist/bundle/chunks/chunk-NUHFSC37.js +0 -25
  136. package/dist/bundle/chunks/chunk-XNGRGP62.js +0 -2
  137. package/dist/bundle/chunks/cloudflare-workers-ai-system-one-NR2TDCXU.js +0 -2
  138. package/dist/bundle/chunks/mistral-conversations-6IHQOR4R.js +0 -5
  139. package/dist/bundle/chunks/node-O3RIBJRH.js +0 -16
  140. package/dist/bundle/chunks/openai-completions-FIEQGWAH.js +0 -7
  141. package/dist/bundle/chunks/openai-responses-OZJXLHFC.js +0 -2
  142. package/dist/bundle/chunks/typesafe-system-one-VKYX4OGY.js +0 -2
  143. package/dist/bundle/chunks/virtual-modules-V7SXVVLP.js +0 -2
@@ -844,6 +844,41 @@
844
844
  "fa-IR": "آنچه منع کرده‌اید، کلمه‌به‌کلمه در چارچوب وظیفه نگه داشته می‌شود؛ پیش از هر فراخوانی که چیزی را تغییر می‌دهد، تک‌تک محدودیت‌ها بررسی می‌شوند و فقط نقضی که با اطمینان تشخیص داده شود متوقف می‌شود، با همان کلمات خود شما."
845
845
  }
846
846
  },
847
+ {
848
+ "id": "tool.injection",
849
+ "group": "tools",
850
+ "feature": "injection",
851
+ "title": {
852
+ "zh": "外来内容里的指令",
853
+ "en": "Instructions in outside content",
854
+ "zh-TW": "外來內容裡的指令",
855
+ "ja-JP": "外部コンテンツ内の指示",
856
+ "ko-KR": "외부 콘텐츠 속 지시",
857
+ "de-DE": "Anweisungen in fremden Inhalten",
858
+ "fr-FR": "Instructions dans les contenus externes",
859
+ "es-ES": "Instrucciones en contenido externo",
860
+ "pt-BR": "Instruções em conteúdo externo",
861
+ "ru-RU": "Инструкции во внешнем содержимом",
862
+ "uk-UA": "Інструкції в зовнішньому вмісті",
863
+ "tr-TR": "Dış içerikteki talimatlar",
864
+ "fa-IR": "دستورها در محتوای بیرونی"
865
+ },
866
+ "summary": {
867
+ "zh": "网页、搜索结果和 MCP 服务器返回的内容,模型读到之前先过一遍:哪一段是写给 AI 的指令(让它忽略规则、交出数据、跑命令,或借一个链接把对话带出去)。这样的段落被扣下,换成一行说明。Jev 没答上来时,只扣下明显的注入用语。",
868
+ "en": "Before the model reads a web page, search results or an MCP server's answer: which passages carry instructions aimed at an AI (ignore rules, hand over data, run commands, or carry the conversation out through a link)? Those are withheld and replaced by a one-line note. When Jev gives no answer, only plain injection phrases are withheld.",
869
+ "zh-TW": "網頁、搜尋結果和 MCP 伺服器回傳的內容,在模型讀到之前先過一遍:哪一段是寫給 AI 的指令(叫它忽略規則、交出資料、執行指令,或藉一個連結把對話帶出去)。這樣的段落會被扣下,換成一行說明。Jev 沒答上來時,只扣下明顯的注入用語。",
870
+ "ja-JP": "モデルが Web ページ、検索結果、MCP サーバーの応答を読む前に確認します。どの段落が AI に向けた指示(ルールを無視させる、データを渡させる、コマンドを実行させる、リンク経由で会話を外部へ持ち出させる)を含むか。該当する段落は差し止め、1 行の説明に置き換えます。Jev が答えないときは、明らかなインジェクション表現だけを差し止めます。",
871
+ "ko-KR": "모델이 웹 페이지, 검색 결과, MCP 서버의 응답을 읽기 전에 먼저 살펴봅니다. 어떤 단락이 AI를 겨냥한 지시(규칙 무시, 데이터 넘기기, 명령 실행, 링크로 대화를 밖으로 빼내기)를 담고 있는지. 그런 단락은 보류하고 한 줄 안내로 바꿉니다. Jev가 답하지 못하면 명백한 주입 문구만 보류합니다.",
872
+ "de-DE": "Bevor das Modell eine Webseite, Suchergebnisse oder die Antwort eines MCP-Servers liest: 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.",
873
+ "fr-FR": "Avant que le modèle lise une page web, des résultats de recherche ou la réponse d'un serveur MCP : 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.",
874
+ "es-ES": "Antes de que el modelo lea una página web, resultados de búsqueda o la respuesta de un servidor MCP: ¿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.",
875
+ "pt-BR": "Antes de o modelo ler uma página web, resultados de busca ou a resposta de um servidor MCP: 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.",
876
+ "ru-RU": "Прежде чем модель прочтёт веб-страницу, результаты поиска или ответ MCP-сервера: какие фрагменты содержат инструкции, адресованные ИИ (игнорировать правила, выдать данные, выполнить команды или вынести разговор наружу через ссылку)? Такие фрагменты задерживаются и заменяются однострочной пометкой. Если Jev не ответил, задерживаются только явные фразы-инъекции.",
877
+ "uk-UA": "Перш ніж модель прочитає вебсторінку, результати пошуку чи відповідь MCP-сервера: які фрагменти містять інструкції, адресовані ШІ (ігнорувати правила, видати дані, виконати команди чи винести розмову назовні через посилання)? Такі фрагменти затримуються й замінюються однорядковою приміткою. Якщо Jev не відповів, затримуються лише явні фрази-ін'єкції.",
878
+ "tr-TR": "Model bir web sayfasını, arama sonuçlarını veya bir MCP sunucusunun yanıtını 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.",
879
+ "fa-IR": "پیش از آنکه مدل یک صفحهٔ وب، نتایج جست‌وجو یا پاسخ یک سرور MCP را بخواند: کدام بخش‌ها دستورهایی خطاب به هوش مصنوعی دارند (نادیده گرفتن قوانین، تحویل داده، اجرای فرمان، یا بیرون بردن گفت‌وگو با یک پیوند)؟ این بخش‌ها نگه داشته می‌شوند و جایشان یک یادداشت یک‌خطی می‌آید. اگر Jev پاسخ ندهد، فقط عبارت‌های آشکار تزریق نگه داشته می‌شوند."
880
+ }
881
+ },
847
882
  {
848
883
  "id": "files.locate",
849
884
  "group": "tools",
@@ -879,6 +914,41 @@
879
914
  "fa-IR": "بگویید دنبال چه هستید؛ داور به‌جای یک رشته grep پشت سر هم، فایل‌های نامزد را رتبه‌بندی می‌کند."
880
915
  }
881
916
  },
917
+ {
918
+ "id": "judge.items",
919
+ "group": "tools",
920
+ "feature": "judgeItems",
921
+ "title": {
922
+ "zh": "批量判定(模型用的工具)",
923
+ "en": "Judging many items (a tool for the model)",
924
+ "zh-TW": "批次判定(模型用的工具)",
925
+ "ja-JP": "多数の項目の判定(モデル用ツール)",
926
+ "ko-KR": "여러 항목 판정(모델용 도구)",
927
+ "de-DE": "Viele Einträge beurteilen (ein Werkzeug für das Modell)",
928
+ "fr-FR": "Juger de nombreux éléments (un outil pour le modèle)",
929
+ "es-ES": "Juzgar muchos elementos (una herramienta para el modelo)",
930
+ "pt-BR": "Julgar muitos itens (uma ferramenta para o modelo)",
931
+ "ru-RU": "Оценка множества элементов (инструмент для модели)",
932
+ "uk-UA": "Оцінювання багатьох елементів (інструмент для моделі)",
933
+ "tr-TR": "Çok sayıda öğeyi değerlendirme (model için bir araç)",
934
+ "fa-IR": "داوری دربارهٔ موارد زیاد (ابزاری برای مدل)"
935
+ },
936
+ "summary": {
937
+ "zh": "模型要从几百个文件、日志行或发现里挑东西时,把一个是非题交给 Jev 逐条回答,每条给一个概率,不用自己一条条读。只在任务用得上时出现。是模型自己问的,所以影子模式下也照常回答;关闭则不能用。",
938
+ "en": "When the model has to sort hundreds of files, log lines or findings, it hands Jev one yes/no question to answer item by item, with a probability each, instead of reading them all. It appears only when a task needs it. The model asked, so it answers in shadow too; off turns it away.",
939
+ "zh-TW": "模型要從幾百個檔案、日誌行或發現裡挑東西時,把一個是非題交給 Jev 逐條回答,每條給一個機率,不用自己一條條讀。只在任務用得上時出現。是模型自己問的,所以影子模式下也照常回答;關閉則不能用。",
940
+ "ja-JP": "モデルが数百のファイル、ログ行、指摘から選び出す必要があるとき、はい/いいえの質問を 1 つ Jev に渡して項目ごとに答えさせ、それぞれに確率を付けます。すべてを自分で読む必要はありません。タスクで必要なときだけ現れます。モデル自身の質問なのでシャドーでも回答し、オフにすると使えません。",
941
+ "ko-KR": "모델이 수백 개의 파일, 로그 줄, 발견 사항 중에서 골라야 할 때, 예/아니오 질문 하나를 Jev에게 넘겨 항목마다 답하게 하고 각각 확률을 붙입니다. 하나하나 직접 읽을 필요가 없습니다. 작업에 필요할 때만 나타납니다. 모델이 직접 묻는 것이라 섀도 모드에서도 답하며, 끄면 쓸 수 없습니다.",
942
+ "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.",
943
+ "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é.",
944
+ "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.",
945
+ "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.",
946
+ "ru-RU": "Когда модели нужно разобрать сотни файлов, строк журнала или находок, она передаёт Jev один вопрос «да/нет», и Jev отвечает по каждому элементу с вероятностью, вместо того чтобы модель читала всё сама. Появляется только тогда, когда это нужно задаче. Спрашивает сама модель, поэтому отвечает и в теневом режиме; в выключенном недоступно.",
947
+ "uk-UA": "Коли моделі треба розібрати сотні файлів, рядків журналу чи знахідок, вона передає Jev одне питання «так/ні», і Jev відповідає щодо кожного елемента з імовірністю, замість того щоб модель читала все сама. З'являється лише тоді, коли це потрібно завданню. Питає сама модель, тож відповідає й у тіньовому режимі; у вимкненому недоступно.",
948
+ "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.",
949
+ "fa-IR": "وقتی مدل باید از میان صدها فایل، خط گزارش یا یافته چیزی را جدا کند، یک پرسش بله/خیر را به Jev می‌سپارد تا برای هر مورد جداگانه با یک احتمال پاسخ دهد، به‌جای آنکه همه را خودش بخواند. فقط وقتی کاری به آن نیاز دارد ظاهر می‌شود. پرسش از خود مدل است، پس در حالت سایه هم پاسخ می‌دهد؛ خاموش که باشد قابل استفاده نیست."
950
+ }
951
+ },
882
952
  {
883
953
  "id": "browser.step",
884
954
  "group": "tools",
@@ -1019,6 +1089,41 @@
1019
1089
  "fa-IR": "وقتی مدل می‌گوید کار تمام شده، بررسی می‌کند که آیا چیزی آن را راستی‌آزمایی کرده است؛ اگر نه، یک بار یادآوری می‌کند."
1020
1090
  }
1021
1091
  },
1092
+ {
1093
+ "id": "turn.continue",
1094
+ "group": "turn",
1095
+ "feature": "continuation",
1096
+ "title": {
1097
+ "zh": "半路停下",
1098
+ "en": "Stopped short",
1099
+ "zh-TW": "半路停下",
1100
+ "ja-JP": "途中で止まった",
1101
+ "ko-KR": "중간에 멈춤",
1102
+ "de-DE": "Auf halbem Weg stehen geblieben",
1103
+ "fr-FR": "Arrêt à mi-chemin",
1104
+ "es-ES": "Se detuvo a medias",
1105
+ "pt-BR": "Parou no meio do caminho",
1106
+ "ru-RU": "Остановился на полпути",
1107
+ "uk-UA": "Зупинився на півдорозі",
1108
+ "tr-TR": "Yarıda durdu",
1109
+ "fa-IR": "نیمه‌کاره ماند"
1110
+ },
1111
+ "summary": {
1112
+ "zh": "一轮结束在「接下来我去跑测试」却什么也没做,或者你已经让它做了它还在问「要我改吗」:让它接着做。难以撤销、或要出这台电脑的一步(推送、发布、删除、付款)不催。每条消息最多催两次。",
1113
+ "en": "A run that ends on \"next I'll run the tests\" without doing it, or asks for a go-ahead on work you already asked for, is sent back to it. A step that is hard to undo or reaches beyond this machine (push, publish, delete, pay) is never pushed. At most twice per message.",
1114
+ "zh-TW": "一輪結束在「接下來我去跑測試」卻什麼也沒做,或者你已經讓它做了它還在問「要我改嗎」:讓它接著做。難以撤銷、或要離開這台電腦的一步(推送、發布、刪除、付款)不催。每則訊息最多催兩次。",
1115
+ "ja-JP": "「次にテストを実行します」と言って何もせずに終わった回や、すでに頼んだ作業について「直しましょうか?」と聞いて終わった回は、作業に戻らせます。元に戻しにくい手順や、このマシンの外に及ぶ手順(プッシュ、公開、削除、支払い)は促しません。1 メッセージにつき最大 2 回です。",
1116
+ "ko-KR": "\"다음으로 테스트를 실행하겠습니다\"라고 하고 아무것도 하지 않은 채 끝난 실행이나, 이미 요청한 작업인데 \"고칠까요?\"라고 묻고 끝난 실행은 다시 작업으로 돌려보냅니다. 되돌리기 어렵거나 이 컴퓨터 밖에 영향을 주는 단계(푸시, 게시, 삭제, 결제)는 재촉하지 않습니다. 메시지마다 최대 두 번입니다.",
1117
+ "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.",
1118
+ "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.",
1119
+ "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.",
1120
+ "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.",
1121
+ "ru-RU": "Запуск, который заканчивается словами «дальше запущу тесты», но ничего не делает, или спрашивает разрешения на работу, о которой вы уже попросили, отправляется обратно к работе. Шаг, который трудно отменить или который выходит за пределы этой машины (push, публикация, удаление, оплата), никогда не подталкивается. Не больше двух раз на сообщение.",
1122
+ "uk-UA": "Запуск, що завершується словами «далі запущу тести», але нічого не робить, або питає дозволу на роботу, про яку ви вже попросили, відправляється назад до роботи. Крок, який важко скасувати або який виходить за межі цієї машини (push, публікація, видалення, оплата), ніколи не підганяється. Не більше двох разів на повідомлення.",
1123
+ "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.",
1124
+ "fa-IR": "اجرایی که با «حالا تست‌ها را اجرا می‌کنم» تمام شود ولی کاری نکند، یا برای کاری که خودتان خواسته‌اید اجازه بخواهد، به کار برگردانده می‌شود. گامی که برگرداندنش دشوار است یا از این رایانه بیرون می‌رود (push، انتشار، حذف، پرداخت) هرگز تحت فشار قرار نمی‌گیرد. حداکثر دو بار برای هر پیام."
1125
+ }
1126
+ },
1022
1127
  {
1023
1128
  "id": "review.triage",
1024
1129
  "group": "tools",
@@ -2538,6 +2643,134 @@
2538
2643
  }
2539
2644
  ]
2540
2645
  },
2646
+ {
2647
+ "name": "injection",
2648
+ "title": {
2649
+ "zh": "注入筛查",
2650
+ "en": "Injection screening",
2651
+ "zh-TW": "注入篩查",
2652
+ "ja-JP": "インジェクションの選別",
2653
+ "ko-KR": "주입 선별",
2654
+ "de-DE": "Injektionsprüfung",
2655
+ "fr-FR": "Filtrage des injections",
2656
+ "es-ES": "Filtrado de inyecciones",
2657
+ "pt-BR": "Triagem de injeções",
2658
+ "ru-RU": "Проверка на инъекции",
2659
+ "uk-UA": "Перевірка на ін'єкції",
2660
+ "tr-TR": "Enjeksiyon taraması",
2661
+ "fa-IR": "غربال تزریق"
2662
+ },
2663
+ "summary": {
2664
+ "zh": "模型读网页、搜索结果和 MCP 结果之前,扣下写给 AI 的指令。",
2665
+ "en": "Withholds instructions aimed at an AI before the model reads web pages, search results and MCP answers.",
2666
+ "zh-TW": "模型讀網頁、搜尋結果和 MCP 結果之前,扣下寫給 AI 的指令。",
2667
+ "ja-JP": "モデルが Web ページ、検索結果、MCP の応答を読む前に、AI に向けた指示を差し止めます。",
2668
+ "ko-KR": "모델이 웹 페이지, 검색 결과, MCP 응답을 읽기 전에 AI를 겨냥한 지시를 보류합니다.",
2669
+ "de-DE": "Hält Anweisungen an eine KI zurück, bevor das Modell Webseiten, Suchergebnisse und MCP-Antworten liest.",
2670
+ "fr-FR": "Retient les instructions destinées à une IA avant que le modèle lise des pages web, des résultats de recherche et des réponses MCP.",
2671
+ "es-ES": "Retiene las instrucciones dirigidas a una IA antes de que el modelo lea páginas web, resultados de búsqueda y respuestas MCP.",
2672
+ "pt-BR": "Retém instruções dirigidas a uma IA antes de o modelo ler páginas web, resultados de busca e respostas MCP.",
2673
+ "ru-RU": "Задерживает инструкции, адресованные ИИ, прежде чем модель прочтёт веб-страницы, результаты поиска и ответы MCP.",
2674
+ "uk-UA": "Затримує інструкції, адресовані ШІ, перш ніж модель прочитає вебсторінки, результати пошуку та відповіді MCP.",
2675
+ "tr-TR": "Model web sayfalarını, arama sonuçlarını ve MCP yanıtlarını okumadan önce yapay zekâya yönelik talimatları alıkoyar.",
2676
+ "fa-IR": "پیش از آنکه مدل صفحه‌های وب، نتایج جست‌وجو و پاسخ‌های MCP را بخواند، دستورهای خطاب به هوش مصنوعی را نگه می‌دارد."
2677
+ },
2678
+ "defaultEnabled": true,
2679
+ "options": [
2680
+ {
2681
+ "key": "tools",
2682
+ "kind": "list",
2683
+ "default": [
2684
+ "web_fetch",
2685
+ "web_search",
2686
+ "browse",
2687
+ "mcp__*"
2688
+ ],
2689
+ "label": {
2690
+ "zh": "要筛的工具",
2691
+ "en": "Tools screened",
2692
+ "zh-TW": "要篩的工具",
2693
+ "ja-JP": "選別するツール",
2694
+ "ko-KR": "선별할 도구",
2695
+ "de-DE": "Geprüfte Werkzeuge",
2696
+ "fr-FR": "Outils filtrés",
2697
+ "es-ES": "Herramientas filtradas",
2698
+ "pt-BR": "Ferramentas triadas",
2699
+ "ru-RU": "Проверяемые инструменты",
2700
+ "uk-UA": "Інструменти, що перевіряються",
2701
+ "tr-TR": "Taranan araçlar",
2702
+ "fa-IR": "ابزارهایی که غربال می‌شوند"
2703
+ },
2704
+ "help": {
2705
+ "zh": "工具名,或以 * 结尾的前缀;mcp__* 是所有 MCP 服务器。",
2706
+ "en": "Tool names, or a prefix ending in *; mcp__* is every MCP server.",
2707
+ "zh-TW": "工具名,或以 * 結尾的前綴;mcp__* 是所有 MCP 伺服器。",
2708
+ "ja-JP": "ツール名、または * で終わる接頭辞。mcp__* はすべての MCP サーバーです。",
2709
+ "ko-KR": "도구 이름 또는 *로 끝나는 접두사. mcp__*는 모든 MCP 서버입니다.",
2710
+ "de-DE": "Werkzeugnamen oder ein Präfix, das auf * endet; mcp__* steht für jeden MCP-Server.",
2711
+ "fr-FR": "Noms d'outils, ou un préfixe terminé par * ; mcp__* désigne tous les serveurs MCP.",
2712
+ "es-ES": "Nombres de herramientas, o un prefijo que termina en *; mcp__* es cualquier servidor MCP.",
2713
+ "pt-BR": "Nomes de ferramentas, ou um prefixo terminado em *; mcp__* é qualquer servidor MCP.",
2714
+ "ru-RU": "Имена инструментов или префикс, оканчивающийся на *; mcp__* — это все MCP-серверы.",
2715
+ "uk-UA": "Назви інструментів або префікс, що закінчується на *; mcp__* — це всі MCP-сервери.",
2716
+ "tr-TR": "Araç adları ya da * ile biten bir önek; mcp__* tüm MCP sunucularıdır.",
2717
+ "fa-IR": "نام ابزارها، یا پیشوندی که با * تمام می‌شود؛ mcp__* یعنی همهٔ سرورهای MCP."
2718
+ }
2719
+ },
2720
+ {
2721
+ "key": "waitMs",
2722
+ "kind": "number",
2723
+ "default": 6000,
2724
+ "min": 500,
2725
+ "max": 30000,
2726
+ "unit": {
2727
+ "zh": "毫秒",
2728
+ "en": "ms",
2729
+ "zh-TW": "毫秒",
2730
+ "ja-JP": "ミリ秒",
2731
+ "ko-KR": "밀리초",
2732
+ "de-DE": "ms",
2733
+ "fr-FR": "ms",
2734
+ "es-ES": "ms",
2735
+ "pt-BR": "ms",
2736
+ "ru-RU": "мс",
2737
+ "uk-UA": "мс",
2738
+ "tr-TR": "ms",
2739
+ "fa-IR": "میلی‌ثانیه"
2740
+ },
2741
+ "label": {
2742
+ "zh": "最多等待",
2743
+ "en": "Wait at most",
2744
+ "zh-TW": "最多等待",
2745
+ "ja-JP": "最大待機時間",
2746
+ "ko-KR": "최대 대기 시간",
2747
+ "de-DE": "Maximale Wartezeit",
2748
+ "fr-FR": "Attendre au plus",
2749
+ "es-ES": "Espera máxima",
2750
+ "pt-BR": "Esperar no máximo",
2751
+ "ru-RU": "Ждать не дольше",
2752
+ "uk-UA": "Чекати щонайбільше",
2753
+ "tr-TR": "En fazla bekleme",
2754
+ "fa-IR": "حداکثر انتظار"
2755
+ },
2756
+ "help": {
2757
+ "zh": "超时就只按规则扣下明显的注入用语,判定照样记账。",
2758
+ "en": "After this only plain injection phrases are withheld, by rule; the verdict is still recorded.",
2759
+ "zh-TW": "逾時就只依規則扣下明顯的注入用語,判定照樣記錄。",
2760
+ "ja-JP": "これを過ぎると、明らかなインジェクション表現だけをルールで差し止めます。判定は記録されます。",
2761
+ "ko-KR": "이 시간이 지나면 명백한 주입 문구만 규칙으로 보류합니다. 판정은 그대로 기록됩니다.",
2762
+ "de-DE": "Danach werden nur eindeutige Injektionsformulierungen per Regel zurückgehalten; das Urteil wird trotzdem aufgezeichnet.",
2763
+ "fr-FR": "Au-delà, seules les formulations d'injection évidentes sont retenues, par règle ; le verdict est tout de même enregistré.",
2764
+ "es-ES": "Después, solo se retienen por regla las frases de inyección evidentes; el veredicto se registra igualmente.",
2765
+ "pt-BR": "Depois disso, só as frases de injeção evidentes são retidas, por regra; o veredito é registrado mesmo assim.",
2766
+ "ru-RU": "После этого по правилу задерживаются только явные фразы-инъекции; вердикт всё равно записывается.",
2767
+ "uk-UA": "Після цього за правилом затримуються лише явні фрази-ін'єкції; вердикт однаково записується.",
2768
+ "tr-TR": "Bundan sonra yalnızca açık enjeksiyon ifadeleri kuralla alıkonur; karar yine de kaydedilir.",
2769
+ "fa-IR": "پس از این، فقط عبارت‌های آشکار تزریق طبق قاعده نگه داشته می‌شوند؛ رأی همچنان ثبت می‌شود."
2770
+ }
2771
+ }
2772
+ ]
2773
+ },
2541
2774
  {
2542
2775
  "name": "admission",
2543
2776
  "title": {
@@ -5284,6 +5517,116 @@
5284
5517
  }
5285
5518
  ]
5286
5519
  },
5520
+ {
5521
+ "name": "continuation",
5522
+ "title": {
5523
+ "zh": "半路停下时接着做",
5524
+ "en": "Carry on after stopping short",
5525
+ "zh-TW": "半路停下時接著做",
5526
+ "ja-JP": "途中で止まったら続ける",
5527
+ "ko-KR": "중간에 멈추면 이어서 하기",
5528
+ "de-DE": "Nach einem Halt auf halbem Weg weitermachen",
5529
+ "fr-FR": "Reprendre après un arrêt à mi-chemin",
5530
+ "es-ES": "Continuar tras detenerse a medias",
5531
+ "pt-BR": "Continuar depois de parar no meio",
5532
+ "ru-RU": "Продолжать после остановки на полпути",
5533
+ "uk-UA": "Продовжувати після зупинки на півдорозі",
5534
+ "tr-TR": "Yarıda durunca devam ettirme",
5535
+ "fa-IR": "ادامه دادن پس از نیمه‌کاره ماندن"
5536
+ },
5537
+ "summary": {
5538
+ "zh": "说了要做却停下的一轮,让它接着做。",
5539
+ "en": "Sends a run that stopped short of what it said it would do back to it.",
5540
+ "zh-TW": "說了要做卻停下的一輪,讓它接著做。",
5541
+ "ja-JP": "やると言ったのに止まった回を、作業に戻らせます。",
5542
+ "ko-KR": "하겠다고 하고 멈춘 실행을 다시 작업으로 돌려보냅니다.",
5543
+ "de-DE": "Schickt einen Lauf, der vor dem Angekündigten stehen blieb, zurück an die Arbeit.",
5544
+ "fr-FR": "Renvoie au travail une exécution qui s'est arrêtée avant ce qu'elle avait annoncé.",
5545
+ "es-ES": "Devuelve al trabajo una ejecución que se detuvo antes de hacer lo que dijo.",
5546
+ "pt-BR": "Manda de volta ao trabalho uma execução que parou antes de fazer o que disse.",
5547
+ "ru-RU": "Возвращает к работе запуск, который остановился, не сделав обещанного.",
5548
+ "uk-UA": "Повертає до роботи запуск, який зупинився, не зробивши обіцяного.",
5549
+ "tr-TR": "Söylediğini yapmadan duran bir çalışmayı işe geri gönderir.",
5550
+ "fa-IR": "اجرایی را که پیش از انجام کاری که گفته بود متوقف شده، به کار برمی‌گرداند."
5551
+ },
5552
+ "defaultEnabled": true,
5553
+ "options": [
5554
+ {
5555
+ "key": "maxNudges",
5556
+ "kind": "number",
5557
+ "default": 2,
5558
+ "min": 1,
5559
+ "max": 5,
5560
+ "label": {
5561
+ "zh": "每条消息最多催几次",
5562
+ "en": "Most nudges per message",
5563
+ "zh-TW": "每則訊息最多催幾次",
5564
+ "ja-JP": "1 メッセージあたりの最大催促回数",
5565
+ "ko-KR": "메시지당 최대 재촉 횟수",
5566
+ "de-DE": "Höchstens so oft pro Nachricht anstoßen",
5567
+ "fr-FR": "Relances au plus par message",
5568
+ "es-ES": "Máximo de avisos por mensaje",
5569
+ "pt-BR": "Máximo de lembretes por mensagem",
5570
+ "ru-RU": "Не больше напоминаний на сообщение",
5571
+ "uk-UA": "Не більше нагадувань на повідомлення",
5572
+ "tr-TR": "Mesaj başına en fazla dürtme",
5573
+ "fa-IR": "حداکثر یادآوری برای هر پیام"
5574
+ }
5575
+ },
5576
+ {
5577
+ "key": "waitMs",
5578
+ "kind": "number",
5579
+ "default": 3000,
5580
+ "min": 500,
5581
+ "max": 30000,
5582
+ "unit": {
5583
+ "zh": "毫秒",
5584
+ "en": "ms",
5585
+ "zh-TW": "毫秒",
5586
+ "ja-JP": "ミリ秒",
5587
+ "ko-KR": "밀리초",
5588
+ "de-DE": "ms",
5589
+ "fr-FR": "ms",
5590
+ "es-ES": "ms",
5591
+ "pt-BR": "ms",
5592
+ "ru-RU": "мс",
5593
+ "uk-UA": "мс",
5594
+ "tr-TR": "ms",
5595
+ "fa-IR": "میلی‌ثانیه"
5596
+ },
5597
+ "label": {
5598
+ "zh": "最多等待",
5599
+ "en": "Wait at most",
5600
+ "zh-TW": "最多等待",
5601
+ "ja-JP": "最大待機時間",
5602
+ "ko-KR": "최대 대기 시간",
5603
+ "de-DE": "Maximale Wartezeit",
5604
+ "fr-FR": "Attendre au plus",
5605
+ "es-ES": "Espera máxima",
5606
+ "pt-BR": "Esperar no máximo",
5607
+ "ru-RU": "Ждать не дольше",
5608
+ "uk-UA": "Чекати щонайбільше",
5609
+ "tr-TR": "En fazla bekleme",
5610
+ "fa-IR": "حداکثر انتظار"
5611
+ },
5612
+ "help": {
5613
+ "zh": "超时就不催了,判定只记账。",
5614
+ "en": "After this there is no nudge; the verdict is only recorded.",
5615
+ "zh-TW": "超過這個時間就不再提醒,判定結果只記錄下來。",
5616
+ "ja-JP": "これを過ぎると促しはせず、判定は記録だけします。",
5617
+ "ko-KR": "이 시간이 지나면 알려 주지 않고, 판정은 기록만 합니다.",
5618
+ "de-DE": "Danach gibt es keine Erinnerung; das Urteil wird nur aufgezeichnet.",
5619
+ "fr-FR": "Au-delà, pas de rappel ; le jugement est seulement enregistré.",
5620
+ "es-ES": "Pasado este tiempo no hay recordatorio; el veredicto solo se registra.",
5621
+ "pt-BR": "Depois disso não há lembrete; o veredito só é registrado.",
5622
+ "ru-RU": "После этого напоминания нет, а решение только записывается.",
5623
+ "uk-UA": "Після цього нагадування немає, а рішення лише записується.",
5624
+ "tr-TR": "Bu süreden sonra hatırlatma yapılmaz; karar yalnızca kaydedilir.",
5625
+ "fa-IR": "پس از این مدت یادآوری‌ای در کار نیست؛ نتیجهٔ داوری فقط ثبت می‌شود."
5626
+ }
5627
+ }
5628
+ ]
5629
+ },
5287
5630
  {
5288
5631
  "name": "notify",
5289
5632
  "title": {
@@ -6131,6 +6474,64 @@
6131
6474
  }
6132
6475
  ]
6133
6476
  },
6477
+ {
6478
+ "name": "judgeItems",
6479
+ "title": {
6480
+ "zh": "批量判定工具",
6481
+ "en": "Bulk judging tool",
6482
+ "zh-TW": "批次判定工具",
6483
+ "ja-JP": "一括判定ツール",
6484
+ "ko-KR": "일괄 판정 도구",
6485
+ "de-DE": "Werkzeug für Massenurteile",
6486
+ "fr-FR": "Outil de jugement en masse",
6487
+ "es-ES": "Herramienta de juicio en lote",
6488
+ "pt-BR": "Ferramenta de julgamento em lote",
6489
+ "ru-RU": "Инструмент массовой оценки",
6490
+ "uk-UA": "Інструмент масового оцінювання",
6491
+ "tr-TR": "Toplu değerlendirme aracı",
6492
+ "fa-IR": "ابزار داوری گروهی"
6493
+ },
6494
+ "summary": {
6495
+ "zh": "judge_items 工具:一个是非题,对很多条目逐条给出概率。",
6496
+ "en": "The judge_items tool: one yes/no question, a probability for each of many items.",
6497
+ "zh-TW": "judge_items 工具:一個是非題,對很多條目逐條給出機率。",
6498
+ "ja-JP": "judge_items ツール:はい/いいえの質問 1 つで、多数の項目それぞれに確率を返します。",
6499
+ "ko-KR": "judge_items 도구: 예/아니오 질문 하나로 여러 항목 각각에 확률을 줍니다.",
6500
+ "de-DE": "Das Werkzeug judge_items: eine Ja/Nein-Frage, eine Wahrscheinlichkeit für jeden von vielen Einträgen.",
6501
+ "fr-FR": "L'outil judge_items : une question oui/non, une probabilité pour chacun de nombreux éléments.",
6502
+ "es-ES": "La herramienta judge_items: una pregunta de sí/no, una probabilidad para cada uno de muchos elementos.",
6503
+ "pt-BR": "A ferramenta judge_items: uma pergunta de sim/não, uma probabilidade para cada um de muitos itens.",
6504
+ "ru-RU": "Инструмент judge_items: один вопрос «да/нет», вероятность для каждого из множества элементов.",
6505
+ "uk-UA": "Інструмент judge_items: одне питання «так/ні», імовірність для кожного з багатьох елементів.",
6506
+ "tr-TR": "judge_items aracı: tek bir evet/hayır sorusu, çok sayıda öğenin her biri için bir olasılık.",
6507
+ "fa-IR": "ابزار judge_items: یک پرسش بله/خیر، یک احتمال برای هر یک از موارد زیاد."
6508
+ },
6509
+ "defaultEnabled": true,
6510
+ "options": [
6511
+ {
6512
+ "key": "maxItems",
6513
+ "kind": "number",
6514
+ "default": 500,
6515
+ "min": 10,
6516
+ "max": 5000,
6517
+ "label": {
6518
+ "zh": "一次最多几条",
6519
+ "en": "Most items per call",
6520
+ "zh-TW": "一次最多幾條",
6521
+ "ja-JP": "1 回あたりの最大項目数",
6522
+ "ko-KR": "한 번에 최대 항목 수",
6523
+ "de-DE": "Höchstens so viele Einträge pro Aufruf",
6524
+ "fr-FR": "Éléments au plus par appel",
6525
+ "es-ES": "Máximo de elementos por llamada",
6526
+ "pt-BR": "Máximo de itens por chamada",
6527
+ "ru-RU": "Не больше элементов за вызов",
6528
+ "uk-UA": "Не більше елементів за виклик",
6529
+ "tr-TR": "Çağrı başına en fazla öğe",
6530
+ "fa-IR": "حداکثر مورد در هر فراخوانی"
6531
+ }
6532
+ }
6533
+ ]
6534
+ },
6134
6535
  {
6135
6536
  "name": "browser",
6136
6537
  "title": {
@@ -7236,19 +7637,19 @@
7236
7637
  "fa-IR": "سرورهای MCP"
7237
7638
  },
7238
7639
  "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 یک سرور را همیشه باز نگه می‌دارد."
7640
+ "zh": "MCP 服务器由 pi 自带的客户端连接(stdio 与 Streamable HTTP,支持 OAuth 登录,用 /mcp 管理)。从 Claude Code、Cursor、Codex 和 mu.json 沿用的服务器,每个是能力目录里的一项,默认隐藏:Jev 认定任务需要,或模型主动申请,才启动它并把工具交给模型。工具清单会缓存,服务器没跑过 Jev 也有描述可判。项目里定义的服务器第一次启动前要你点头,定义变了会再问。在 mu.json 里可以把某个服务器设为常开。用 mu mcp add 加的服务器归 pi 管:随会话连接,工具由 tool_search 按需加载。",
7641
+ "en": "MCP servers are connected by pi's own client (stdio and Streamable HTTP, OAuth sign-in, managed with /mcp). Each server mu takes over from Claude Code, Cursor, Codex and mu.json is a catalog entry that stays hidden: it starts and its tools are handed to 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 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. Servers added with mu mcp add are pi's: they connect with the session, and tool_search loads their tools when needed.",
7642
+ "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 按需載入。",
7643
+ "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 が読み込みます。",
7644
+ "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가 불러옵니다.",
7645
+ "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.",
7646
+ "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.",
7647
+ "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.",
7648
+ "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.",
7649
+ "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 загружает их инструменты по мере надобности.",
7650
+ "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 завантажує їхні інструменти за потреби.",
7651
+ "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.",
7652
+ "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
7653
  },
7253
7654
  "defaultEnabled": true,
7254
7655
  "options": [
@@ -7340,95 +7741,6 @@
7340
7741
  "tr-TR": "Çağrı zaman aşımı",
7341
7742
  "fa-IR": "مهلت هر فراخوانی"
7342
7743
  }
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
7744
  }
7433
7745
  ]
7434
7746
  },