@qwen-code/qwen-code 0.17.1 → 0.18.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +4 -6
  2. package/bundled/qc-helper/SKILL.md +30 -24
  3. package/bundled/qc-helper/docs/features/auto-mode.md +54 -9
  4. package/bundled/qc-helper/docs/features/commands.md +11 -11
  5. package/bundled/qc-helper/docs/features/markdown-rendering.md +21 -1
  6. package/bundled/qc-helper/docs/overview.md +4 -4
  7. package/bundled/qc-helper/docs/quickstart.md +4 -4
  8. package/bundled/qc-helper/docs/support/Uninstall.md +19 -1
  9. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  10. package/chunks/{agent-ZJHHICAC.js → agent-6J2FFD7S.js} +18 -22
  11. package/chunks/{anthropicContentGenerator-M45RXZVS.js → anthropicContentGenerator-4QBVSFSJ.js} +5 -5
  12. package/chunks/{askUserQuestion-TGRD7FNQ.js → askUserQuestion-NOOLRWCJ.js} +5 -7
  13. package/chunks/{ca-6RSCDYUS.js → ca-WRHFBIDH.js} +38 -3
  14. package/chunks/{chunk-C5CUHYSM.js → chunk-3H7ENG2Q.js} +821 -461
  15. package/chunks/{chunk-SOGUPKP6.js → chunk-5RNZ2QKF.js} +3 -5
  16. package/chunks/{chunk-GVWPJCXU.js → chunk-6VFG3EUJ.js} +1 -1
  17. package/chunks/{chunk-NQ3E7YLD.js → chunk-AVLOK27J.js} +42 -8
  18. package/chunks/{chunk-JBSYXHJF.js → chunk-BBTV54KB.js} +2 -2
  19. package/chunks/{chunk-X2474BTT.js → chunk-BPZQVC2P.js} +142 -9
  20. package/chunks/{chunk-2KEXT6RB.js → chunk-BUOJN3MM.js} +91245 -78527
  21. package/chunks/{chunk-3BJBCG2K.js → chunk-C6WMLUNB.js} +1 -1
  22. package/chunks/{chunk-TDZCEIK6.js → chunk-D46KOV3C.js} +1 -1
  23. package/chunks/{chunk-HX3JRTWL.js → chunk-F5ORN4YO.js} +1 -1
  24. package/chunks/{chunk-JKUAX6UT.js → chunk-G763GDO6.js} +125 -12
  25. package/chunks/{chunk-OIL7KDWV.js → chunk-GBEPNWYB.js} +1 -1
  26. package/chunks/{chunk-5JBZM7FZ.js → chunk-IKOMHTCC.js} +6 -6
  27. package/chunks/{chunk-G4K6P5KN.js → chunk-JMLIPZUU.js} +3 -3
  28. package/chunks/{chunk-OJFMTECH.js → chunk-JSYEZAYV.js} +2 -2
  29. package/chunks/{chunk-AKBFRR6J.js → chunk-K5PGHDBN.js} +132 -112
  30. package/chunks/{chunk-QVJ33ZBG.js → chunk-MVX64PNU.js} +1 -1
  31. package/chunks/{chunk-EY6BDW7Y.js → chunk-PLYZAP4W.js} +45 -9
  32. package/chunks/{chunk-ACBGEKB7.js → chunk-R5PDRHEF.js} +2 -1
  33. package/chunks/{chunk-6O244QKR.js → chunk-SCHRFI7O.js} +1 -1
  34. package/chunks/{chunk-GJHMAWS7.js → chunk-SHUT5MQY.js} +1 -1
  35. package/chunks/{chunk-RQW7WUJR.js → chunk-UABFCMPA.js} +34 -6
  36. package/chunks/{chunk-33RDTIU6.js → chunk-UFC57OYT.js} +3 -5
  37. package/chunks/{chunk-PLYRQYKC.js → chunk-UQZQP5PA.js} +11 -11
  38. package/chunks/{chunk-NP3ICQCN.js → chunk-USE2VQ5P.js} +1 -1
  39. package/chunks/{chunk-NJJER6E2.js → chunk-UXBKX55L.js} +10 -6
  40. package/chunks/{chunk-QWSRH265.js → chunk-WFVXF3OM.js} +776 -776
  41. package/chunks/{computer-use-NAHQPV2L.js → computer-use-6LZXL3UW.js} +51 -18
  42. package/chunks/contextCommand-ZV5QQ2LA.js +46 -0
  43. package/chunks/{cron-create-V3UK2SJN.js → cron-create-PIPMXQN4.js} +5 -7
  44. package/chunks/{cron-delete-MANALPCP.js → cron-delete-6Y5XIDMS.js} +5 -7
  45. package/chunks/{cron-list-UDIYK3B3.js → cron-list-A4WNRUWZ.js} +5 -7
  46. package/chunks/{de-APURNJ3I.js → de-M5RPB2NB.js} +38 -3
  47. package/chunks/{dist-XTTPOFAH.js → dist-BXDUQ2QY.js} +3 -4
  48. package/chunks/{dist-AHZNZWRI.js → dist-R2SXPG74.js} +4 -5
  49. package/chunks/{dist-ATAKC63R.js → dist-TE5QKMGR.js} +3 -4
  50. package/chunks/{dist-6RUZ2JD6.js → dist-ZMQ4TXD5.js} +3 -4
  51. package/chunks/{edit-JWXCQ4KK.js → edit-J7D6VMPQ.js} +22 -27
  52. package/chunks/{en-FYO57HJW.js → en-UMYKQAZE.js} +46 -3
  53. package/chunks/{enter-worktree-G4CJXPT4.js → enter-worktree-NDJTVGYJ.js} +20 -25
  54. package/chunks/{exit-worktree-MYZ2FGU2.js → exit-worktree-UB6XYYAX.js} +20 -25
  55. package/chunks/{exitPlanMode-ELJ6FSMU.js → exitPlanMode-V6X2KL4X.js} +20 -25
  56. package/chunks/{fr-32YHQZIS.js → fr-MPYXXXPW.js} +38 -3
  57. package/chunks/{geminiContentGenerator-3LR7MKCQ.js → geminiContentGenerator-3AKHMB3P.js} +5 -5
  58. package/chunks/{getMachineId-bsd-GS3V2GK7.js → getMachineId-bsd-F7GNPTER.js} +1 -1
  59. package/chunks/{getMachineId-darwin-ZQB4Q7EW.js → getMachineId-darwin-T73DJL27.js} +1 -1
  60. package/chunks/{getMachineId-linux-JQ4NN4DN.js → getMachineId-linux-MKQTFPQM.js} +1 -1
  61. package/chunks/{getMachineId-unsupported-U7H4V4HJ.js → getMachineId-unsupported-MUR5KOQE.js} +1 -1
  62. package/chunks/{getMachineId-win-VHUZGBQ3.js → getMachineId-win-CDYFC6ZM.js} +1 -1
  63. package/chunks/{glob-CANUAUTC.js → glob-PBG5DRG4.js} +20 -25
  64. package/chunks/{grep-WZWNJRDX.js → grep-VQ56EWQ7.js} +20 -25
  65. package/chunks/{ja-PEUXN4XT.js → ja-NFZ32AB3.js} +38 -3
  66. package/chunks/{keychain-token-storage-3552ENXE.js → keychain-token-storage-UHGOCDD6.js} +3 -3
  67. package/chunks/{ls-T4SVZWR6.js → ls-34DLNYCD.js} +6 -8
  68. package/chunks/{lsp-U4ZQLNIS.js → lsp-NCDEHH3V.js} +5 -7
  69. package/chunks/{monitor-CCKNOUFG.js → monitor-J3YCSOEH.js} +20 -25
  70. package/chunks/{notebook-edit-XDUY5Q4I.js → notebook-edit-AL3CBYJ6.js} +21 -26
  71. package/chunks/{openaiContentGenerator-N3O3MYIT.js → openaiContentGenerator-3U6UARHS.js} +12 -14
  72. package/chunks/{pt-2INS7YVC.js → pt-BR43FRBA.js} +38 -3
  73. package/chunks/{qwenContentGenerator-DEOIWKVH.js → qwenContentGenerator-JRFHJRH6.js} +20 -24
  74. package/chunks/{qwenOAuth2-LKXG7XVO.js → qwenOAuth2-KRJT35QH.js} +5 -5
  75. package/chunks/{read-file-BRNXGILN.js → read-file-ZF6EIVE3.js} +9 -11
  76. package/chunks/ripGrep-N2ZT7M6Z.js +42 -0
  77. package/chunks/{ru-6CQ5HNHB.js → ru-DQCW2KHD.js} +38 -3
  78. package/chunks/{scheduler-SSFABMN5.js → scheduler-OS37FUFT.js} +18 -22
  79. package/chunks/{send-message-GFYV7WLL.js → send-message-YYF56TS7.js} +5 -7
  80. package/chunks/{serve-B5O72CRN.js → serve-ABOLLDNN.js} +21 -25
  81. package/chunks/{shell-SGYNBVMK.js → shell-XGN7IDUS.js} +18 -22
  82. package/chunks/{skill-V7Y6DOFB.js → skill-YQQ6CR4U.js} +88 -25
  83. package/chunks/{src-OKFFQGXB.js → src-LORPPHWB.js} +86 -33
  84. package/chunks/{syntheticOutput-DM43O6TY.js → syntheticOutput-T5SWX3YF.js} +4 -5
  85. package/chunks/{task-stop-WKP5OB3V.js → task-stop-3VHAQMYM.js} +5 -7
  86. package/chunks/{todoWrite-GHL6DCLP.js → todoWrite-EAGJGKO5.js} +7 -9
  87. package/chunks/{tool-search-7MHT3HGM.js → tool-search-PDOJPXJJ.js} +27 -15
  88. package/chunks/{web-fetch-SZIV74ZX.js → web-fetch-SS6IKK6N.js} +7 -9
  89. package/chunks/{write-file-ARS2Z6BJ.js → write-file-VWWCN7LI.js} +23 -28
  90. package/chunks/{zh-ZHZCMIRG.js → zh-6VFXOAR5.js} +49 -3
  91. package/chunks/{zh-TW-SSL3ATVZ.js → zh-TW-IQZ4AD5M.js} +45 -3
  92. package/cli.js +8143 -4150
  93. package/examples/agent/agents/diary.md +86 -0
  94. package/examples/agent/qwen-extension.json +4 -0
  95. package/examples/commands/commands/fs/grep-code.md +3 -0
  96. package/examples/commands/qwen-extension.json +4 -0
  97. package/examples/context/QWEN.md +8 -0
  98. package/examples/context/qwen-extension.json +4 -0
  99. package/examples/mcp-server/example.ts +60 -0
  100. package/examples/mcp-server/package.json +18 -0
  101. package/examples/mcp-server/qwen-extension.json +11 -0
  102. package/examples/mcp-server/tsconfig.json +13 -0
  103. package/examples/skills/qwen-extension.json +4 -0
  104. package/examples/skills/skills/synonyms/SKILL.md +48 -0
  105. package/locales/ca.js +64 -4
  106. package/locales/de.js +63 -4
  107. package/locales/en.js +75 -4
  108. package/locales/fr.js +65 -4
  109. package/locales/ja.js +61 -4
  110. package/locales/pt.js +64 -4
  111. package/locales/ru.js +62 -4
  112. package/locales/zh-TW.js +70 -4
  113. package/locales/zh.js +74 -4
  114. package/package.json +3 -2
  115. package/chunks/chunk-24YKA2DA.js +0 -233
  116. package/chunks/chunk-6RQTH7UQ.js +0 -115
  117. package/chunks/chunk-7TQVELRB.js +0 -10412
  118. package/chunks/chunk-W57YDFU5.js +0 -41
  119. package/chunks/contextCommand-7KJT3UJS.js +0 -50
  120. package/chunks/ripGrep-ZRY5PKUZ.js +0 -46
@@ -0,0 +1,42 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ RipGrepTool,
5
+ _resetRipGrepCachesForTest
6
+ } from "./chunk-BUOJN3MM.js";
7
+ import "./chunk-K5PGHDBN.js";
8
+ import "./chunk-O4PICXES.js";
9
+ import "./chunk-TW522KN6.js";
10
+ import "./chunk-MLZQVCF3.js";
11
+ import "./chunk-SCHRFI7O.js";
12
+ import "./chunk-PLYZAP4W.js";
13
+ import "./chunk-UABFCMPA.js";
14
+ import "./chunk-77WXWU44.js";
15
+ import "./chunk-6VFG3EUJ.js";
16
+ import "./chunk-3H7ENG2Q.js";
17
+ import "./chunk-3PJXIDKI.js";
18
+ import "./chunk-UWCTAVOD.js";
19
+ import "./chunk-OFEVLU4C.js";
20
+ import "./chunk-AVLOK27J.js";
21
+ import "./chunk-JSYEZAYV.js";
22
+ import "./chunk-5RNZ2QKF.js";
23
+ import "./chunk-G763GDO6.js";
24
+ import "./chunk-JMLIPZUU.js";
25
+ import "./chunk-GBEPNWYB.js";
26
+ import "./chunk-F5ORN4YO.js";
27
+ import "./chunk-MVX64PNU.js";
28
+ import "./chunk-D46KOV3C.js";
29
+ import "./chunk-BNESGOSJ.js";
30
+ import "./chunk-SZOEIL6S.js";
31
+ import "./chunk-5IFG2VC4.js";
32
+ import "./chunk-R5PDRHEF.js";
33
+ import "./chunk-ZERZSAZL.js";
34
+ import "./chunk-QN5NZ3UQ.js";
35
+ import "./chunk-BR4QREVK.js";
36
+ import "./chunk-WFVXF3OM.js";
37
+ import "./chunk-A4BMJM77.js";
38
+ import "./chunk-J2S4EL5Y.js";
39
+ export {
40
+ RipGrepTool,
41
+ _resetRipGrepCachesForTest
42
+ };
@@ -96,7 +96,30 @@ var ru_default = {
96
96
  // ============================================================================
97
97
  "Analyzes the project and creates a tailored QWEN.md file.": "\u0410\u043D\u0430\u043B\u0438\u0437 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0430\u0434\u0430\u043F\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430 QWEN.md",
98
98
  "List available Qwen Code tools. Usage: /tools [desc]": "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 Qwen Code. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: /tools [desc]",
99
- "List available skills.": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438.",
99
+ "Open the skills panel (browse, search, toggle, pick).": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u043D\u0430\u0432\u044B\u043A\u043E\u0432 (\u043E\u0431\u0437\u043E\u0440, \u043F\u043E\u0438\u0441\u043A, \u0432\u043A\u043B/\u0432\u044B\u043A\u043B, \u0432\u044B\u0431\u043E\u0440).",
100
+ "Manage Skills": "\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0430\u0432\u044B\u043A\u0430\u043C\u0438",
101
+ "Skills configuration saved.": "\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043D\u0430\u0432\u044B\u043A\u043E\u0432 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430.",
102
+ "Skills configuration saved, but refresh failed: {{error}}. Restart to ensure the new state is applied.": "\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043D\u0430\u0432\u044B\u043A\u043E\u0432 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430, \u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C: {{error}}. \u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0435 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435.",
103
+ "Workspace is untrusted; workspace settings are ignored by the merged config. Run /trust first to persist skills changes here, or edit ~/.qwen/settings.json directly to manage skills at user scope.": "\u0420\u0430\u0431\u043E\u0447\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u043D\u0435 \u044F\u0432\u043B\u044F\u0435\u0442\u0441\u044F \u0434\u043E\u0432\u0435\u0440\u0435\u043D\u043D\u043E\u0439; \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0440\u0430\u0431\u043E\u0447\u0435\u0439 \u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u044E\u0442\u0441\u044F \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u043E\u0439 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439. \u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 /trust \u0438\u043B\u0438 \u043E\u0442\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0443\u0439\u0442\u0435 ~/.qwen/settings.json \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E, \u0447\u0442\u043E\u0431\u044B \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u043D\u0430\u0432\u044B\u043A\u0430\u043C\u0438 \u043D\u0430 \u0443\u0440\u043E\u0432\u043D\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.",
104
+ "SkillManager not available.": "SkillManager \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D.",
105
+ "Loading skills\u2026": "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043D\u0430\u0432\u044B\u043A\u043E\u0432\u2026",
106
+ "Failed to load skills: {{error}}": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043D\u0430\u0432\u044B\u043A\u0438: {{error}}",
107
+ "Failed to save skills configuration: {{error}}": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E \u043D\u0430\u0432\u044B\u043A\u043E\u0432: {{error}}",
108
+ "All available skills are disabled. Edit ~/.qwen/settings.json or .qwen/settings.json (skills.disabled) to re-enable.": "\u0412\u0441\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u044B. \u041E\u0442\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0443\u0439\u0442\u0435 ~/.qwen/settings.json \u0438\u043B\u0438 .qwen/settings.json (skills.disabled), \u0447\u0442\u043E\u0431\u044B \u0441\u043D\u043E\u0432\u0430 \u0438\u0445 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C.",
109
+ "Press esc to close.": "\u041D\u0430\u0436\u043C\u0438\u0442\u0435 Esc, \u0447\u0442\u043E\u0431\u044B \u0437\u0430\u043A\u0440\u044B\u0442\u044C.",
110
+ "{{count}} skills \xB7 ": "{{count}} \u043D\u0430\u0432\u044B\u043A\u043E\u0432 \xB7 ",
111
+ "{{matched}} / {{total}} skills \xB7 ": "{{matched}} / {{total}} \u043D\u0430\u0432\u044B\u043A\u043E\u0432 \xB7 ",
112
+ "Space toggle \xB7 Enter pick (fill input) \xB7 Esc save & exit \xB7 workspace scope": "\u041F\u0440\u043E\u0431\u0435\u043B \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \xB7 Enter \u0432\u044B\u0431\u0440\u0430\u0442\u044C (\u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0432 \u0432\u0432\u043E\u0434) \xB7 Esc \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0438 \u0432\u044B\u0439\u0442\u0438 \xB7 \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0440\u0430\u0431\u043E\u0447\u0435\u0439 \u043E\u0431\u043B\u0430\u0441\u0442\u0438",
113
+ "Search:": "\u041F\u043E\u0438\u0441\u043A:",
114
+ "type to filter\u2026": "\u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u0434\u043B\u044F \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u0446\u0438\u0438\u2026",
115
+ "No skills are currently available.": "\u0421\u0435\u0439\u0447\u0430\u0441 \u043D\u0430\u0432\u044B\u043A\u043E\u0432 \u043D\u0435\u0442.",
116
+ "All available skills are locked at a higher scope (see below).": "\u0412\u0441\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u043D\u0430 \u0431\u043E\u043B\u0435\u0435 \u0432\u044B\u0441\u043E\u043A\u043E\u043C \u0443\u0440\u043E\u0432\u043D\u0435 (\u0441\u043C. \u043D\u0438\u0436\u0435).",
117
+ "No skills match the search.": "\u041D\u0435\u0442 \u043D\u0430\u0432\u044B\u043A\u043E\u0432, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0445 \u043F\u043E\u0438\u0441\u043A\u0443.",
118
+ "Locked by higher-scope settings (cannot toggle here):": "\u0417\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u043C\u0438 \u0431\u043E\u043B\u0435\u0435 \u0432\u044B\u0441\u043E\u043A\u043E\u0433\u043E \u0443\u0440\u043E\u0432\u043D\u044F (\u0437\u0434\u0435\u0441\u044C \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F):",
119
+ "higher scope": "\u0431\u043E\u043B\u0435\u0435 \u0432\u044B\u0441\u043E\u043A\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C",
120
+ " {{name}} {{description}} [locked: {{scope}}]": " {{name}} {{description}} [\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u043E: {{scope}}]",
121
+ "\u2191/\u2193 navigate \xB7 backspace edits search": "\u2191/\u2193 \u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F \xB7 Backspace \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0443\u0435\u0442 \u043F\u043E\u0438\u0441\u043A",
122
+ Bundled: "\u0412\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0439",
100
123
  "Available Qwen Code CLI tools:": "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B Qwen Code CLI:",
101
124
  "No tools available": "\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
102
125
  "View or change the approval mode for tool usage": "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0440\u0435\u0436\u0438\u043C\u0430 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
@@ -149,7 +172,7 @@ var ru_default = {
149
172
  "open full Qwen Code documentation in your browser": "\u041E\u0442\u043A\u0440\u044B\u0442\u0438\u0435 \u043F\u043E\u043B\u043D\u043E\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438 Qwen Code \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435",
150
173
  "Configuration not available.": "\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430.",
151
174
  "Connect an LLM provider": "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430 LLM",
152
- "Copy the last result or code snippet to clipboard": "\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0438\u043B\u0438 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442\u0430 \u043A\u043E\u0434\u0430 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430",
175
+ "Copy the last AI response to clipboard (/copy N for Nth-latest)": "\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u043E\u0442\u0432\u0435\u0442 \u0418\u0418 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043E\u0431\u043C\u0435\u043D\u0430 (/copy N \u0434\u043B\u044F N-\u0433\u043E \u0441 \u043A\u043E\u043D\u0446\u0430)",
153
176
  // ============================================================================
154
177
  // Команды - Агенты
155
178
  // ============================================================================
@@ -514,6 +537,7 @@ var ru_default = {
514
537
  "After tool execution fails": "\u041F\u0440\u0438 \u043D\u0435\u0443\u0434\u0430\u0447\u043D\u043E\u043C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430",
515
538
  "When notifications are sent": "\u041F\u0440\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0435 \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439",
516
539
  "When the user submits a prompt": "\u041A\u043E\u0433\u0434\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u043F\u0440\u043E\u043C\u043F\u0442",
540
+ "When a slash command expands into a prompt": "\u041A\u043E\u0433\u0434\u0430 slash-\u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u0440\u0430\u0437\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0432 \u043F\u0440\u043E\u043C\u043F\u0442",
517
541
  "When a new session is started": "\u041F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435 \u043D\u043E\u0432\u043E\u0439 \u0441\u0435\u0441\u0441\u0438\u0438",
518
542
  "Right before Qwen Code concludes its response": "\u041D\u0435\u043F\u043E\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043D\u043D\u043E \u043F\u0435\u0440\u0435\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u0435\u043C \u043E\u0442\u0432\u0435\u0442\u0430 Qwen Code",
519
543
  "When a subagent (Agent tool call) is started": "\u041F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435 \u0441\u0443\u0431\u0430\u0433\u0435\u043D\u0442\u0430 (\u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 Agent)",
@@ -529,6 +553,7 @@ var ru_default = {
529
553
  "Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.": "\u0412\u0432\u043E\u0434 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u2014 \u044D\u0442\u043E JSON \u0441 tool_name, tool_input, tool_use_id, error, error_type, is_interrupt \u0438 is_timeout.",
530
554
  "Input to command is JSON with notification message and type.": "\u0412\u0432\u043E\u0434 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u2014 \u044D\u0442\u043E JSON \u0441 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\u043C \u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0438 \u0442\u0438\u043F\u043E\u043C.",
531
555
  "Input to command is JSON with original user prompt text.": "\u0412\u0432\u043E\u0434 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u2014 \u044D\u0442\u043E JSON \u0441 \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u043C \u0442\u0435\u043A\u0441\u0442\u043E\u043C \u043F\u0440\u043E\u043C\u043F\u0442\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F.",
556
+ "Input to command is JSON with command_name, command_args, and expanded prompt text.": "\u0412\u0432\u043E\u0434 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u2014 \u044D\u0442\u043E JSON \u0441 command_name, command_args \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044B\u043C \u0442\u0435\u043A\u0441\u0442\u043E\u043C \u043F\u0440\u043E\u043C\u043F\u0442\u0430.",
532
557
  "Input to command is JSON with session start source.": "\u0412\u0432\u043E\u0434 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u2014 \u044D\u0442\u043E JSON \u0441 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u043C \u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u0441\u0435\u0441\u0441\u0438\u0438.",
533
558
  "Input to command is JSON with session end reason.": "\u0412\u0432\u043E\u0434 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u2014 \u044D\u0442\u043E JSON \u0441 \u043F\u0440\u0438\u0447\u0438\u043D\u043E\u0439 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0441\u0435\u0441\u0441\u0438\u0438.",
534
559
  "Input to command is JSON with agent_id and agent_type.": "\u0412\u0432\u043E\u0434 \u0432 \u043A\u043E\u043C\u0430\u043D\u0434\u0443 \u2014 \u044D\u0442\u043E JSON \u0441 agent_id \u0438 agent_type.",
@@ -545,6 +570,7 @@ var ru_default = {
545
570
  "show stderr to model immediately": "\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C stderr \u043C\u043E\u0434\u0435\u043B\u0438 \u043D\u0435\u043C\u0435\u0434\u043B\u0435\u043D\u043D\u043E",
546
571
  "show stderr to user only but continue with tool call": "\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C stderr \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E, \u043D\u043E \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430",
547
572
  "block processing, erase original prompt, and show stderr to user only": "\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443, \u0441\u0442\u0435\u0440\u0435\u0442\u044C \u0438\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043F\u0440\u043E\u043C\u043F\u0442 \u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C stderr \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E",
573
+ "block expanded prompt submission and show stderr to user only": "\u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0443 \u0440\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u043E\u0433\u043E \u043F\u0440\u043E\u043C\u043F\u0442\u0430 \u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C stderr \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E",
548
574
  "stdout shown to Qwen": "stdout \u043F\u043E\u043A\u0430\u0437\u0430\u043D Qwen",
549
575
  "show stderr to user only (blocking errors ignored)": "\u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C stderr \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E (\u0431\u043B\u043E\u043A\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u043E\u0448\u0438\u0431\u043A\u0438 \u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0443\u044E\u0442\u0441\u044F)",
550
576
  "command completes successfully": "\u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430",
@@ -578,6 +604,15 @@ var ru_default = {
578
604
  // ============================================================================
579
605
  "Resume a previous session": "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E",
580
606
  "Fork the current conversation into a new session": "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0432\u0435\u0442\u043A\u0443 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430 \u0432 \u043D\u043E\u0432\u043E\u0439 \u0441\u0435\u0441\u0441\u0438\u0438",
607
+ "Spawn a background agent that inherits the full conversation": "\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0444\u043E\u043D\u043E\u0432\u043E\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430, \u043A\u043E\u0442\u043E\u0440\u044B\u0439 \u043D\u0430\u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u0432\u0435\u0441\u044C \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440",
608
+ "Please provide a directive. Usage: /fork <directive>": "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u044E. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: /fork <\u0438\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u044F>",
609
+ "Cannot fork while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.": "\u041D\u0435\u043B\u044C\u0437\u044F \u0441\u043E\u0437\u0434\u0430\u0442\u044C fork, \u043F\u043E\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442 \u0438\u043B\u0438 \u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430. \u0414\u043E\u0436\u0434\u0438\u0442\u0435\u0441\u044C \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u0439\u0442\u0435 \u043E\u0436\u0438\u0434\u0430\u044E\u0449\u0438\u0439 \u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430.",
610
+ "Cannot fork before the first conversation turn.": "\u041D\u0435\u043B\u044C\u0437\u044F \u0441\u043E\u0437\u0434\u0430\u0442\u044C fork \u0434\u043E \u043F\u0435\u0440\u0432\u043E\u0433\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0432 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0435.",
611
+ "The /fork command requires the fork feature gate. Set QWEN_CODE_ENABLE_FORK_SUBAGENT=1 to enable it.": "\u041A\u043E\u043C\u0430\u043D\u0434\u0435 /fork \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F feature gate fork. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 QWEN_CODE_ENABLE_FORK_SUBAGENT=1, \u0447\u0442\u043E\u0431\u044B \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0435\u0433\u043E.",
612
+ "The agent tool is unavailable; cannot fork.": "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0430\u0433\u0435\u043D\u0442\u0430 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D; fork \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u043D\u0435\u043B\u044C\u0437\u044F.",
613
+ "Failed to launch fork: {{error}}": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C fork: {{error}}",
614
+ "User launched a background fork via /fork: {{directive}}": "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u043B \u0444\u043E\u043D\u043E\u0432\u044B\u0439 fork \u0447\u0435\u0440\u0435\u0437 /fork: {{directive}}",
615
+ "Forked into a background agent. It inherits this conversation and runs without blocking \u2014 track it in the background tasks panel; it reports back when done.": "\u0421\u043E\u0437\u0434\u0430\u043D fork \u0432 \u0444\u043E\u043D\u043E\u0432\u043E\u043C \u0430\u0433\u0435\u043D\u0442\u0435. \u041E\u043D \u043D\u0430\u0441\u043B\u0435\u0434\u0443\u0435\u0442 \u044D\u0442\u043E\u0442 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440 \u0438 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438 \u2014 \u043E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u0435\u0433\u043E \u043D\u0430 \u043F\u0430\u043D\u0435\u043B\u0438 \u0444\u043E\u043D\u043E\u0432\u044B\u0445 \u0437\u0430\u0434\u0430\u0447; \u043E\u043D \u0441\u043E\u043E\u0431\u0449\u0438\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u043F\u043E\u0441\u043B\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F.",
581
616
  "Cannot branch while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.": "\u041D\u0435\u043B\u044C\u0437\u044F \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0432\u0435\u0442\u043A\u0443, \u043F\u043E\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u043E\u0442\u0432\u0435\u0442 \u0438\u043B\u0438 \u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430. \u0414\u043E\u0436\u0434\u0438\u0442\u0435\u0441\u044C \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F \u0438\u043B\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u0439\u0442\u0435 \u043E\u0436\u0438\u0434\u0430\u044E\u0449\u0438\u0439 \u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430.",
582
617
  "No conversation to branch.": "\u041D\u0435\u0442 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430 \u0434\u043B\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F \u0432\u0435\u0442\u043A\u0438.",
583
618
  "Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "\u0412\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430. \u042D\u0442\u043E \u0432\u0435\u0440\u043D\u0435\u0442 \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430 \u0438 \u0444\u0430\u0439\u043B\u043E\u0432 \u043A \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044E \u043D\u0430 \u043C\u043E\u043C\u0435\u043D\u0442, \u043A\u043E\u0433\u0434\u0430 \u0431\u044B\u043B \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D \u044D\u0442\u043E\u0442 \u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430",
@@ -610,10 +645,10 @@ var ru_default = {
610
645
  // Команды - Режим подтверждения
611
646
  // ============================================================================
612
647
  "Tool Approval Mode": "\u0420\u0435\u0436\u0438\u043C \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
613
- "{{mode}} mode": "\u0420\u0435\u0436\u0438\u043C {{mode}}",
614
648
  "Analyze only, do not modify files or execute commands": "\u0422\u043E\u043B\u044C\u043A\u043E \u0430\u043D\u0430\u043B\u0438\u0437, \u0431\u0435\u0437 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u043E\u0432 \u0438\u043B\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043A\u043E\u043C\u0430\u043D\u0434",
615
649
  "Require approval for file edits or shell commands": "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u043E\u0432 \u0438\u043B\u0438 \u043A\u043E\u043C\u0430\u043D\u0434 \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430",
616
650
  "Automatically approve file edits": "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u043E\u0432",
651
+ "Use classifier to automatically approve safe tool calls": "\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043A\u043B\u0430\u0441\u0441\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0434\u043B\u044F \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0445 \u0432\u044B\u0437\u043E\u0432\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
617
652
  "Automatically approve all tools": "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044C \u0432\u0441\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B",
618
653
  "Workspace approval mode exists and takes priority. User-level change will have no effect.": "\u0420\u0435\u0436\u0438\u043C \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0440\u0430\u0431\u043E\u0447\u0435\u0433\u043E \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u0438\u043C\u0435\u0435\u0442 \u043F\u0440\u0438\u043E\u0440\u0438\u0442\u0435\u0442. \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u0443\u0440\u043E\u0432\u043D\u0435 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C \u044D\u0444\u0444\u0435\u043A\u0442\u0430.",
619
654
  "Apply To": "\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C \u043A",
@@ -5,44 +5,40 @@ import {
5
5
  } from "./chunk-MRO43B25.js";
6
6
  import {
7
7
  FILE_HISTORY_DIR
8
- } from "./chunk-2KEXT6RB.js";
9
- import "./chunk-24YKA2DA.js";
8
+ } from "./chunk-BUOJN3MM.js";
9
+ import "./chunk-K5PGHDBN.js";
10
10
  import "./chunk-O4PICXES.js";
11
11
  import "./chunk-TW522KN6.js";
12
- import "./chunk-7TQVELRB.js";
13
- import "./chunk-AKBFRR6J.js";
14
12
  import "./chunk-MLZQVCF3.js";
15
- import "./chunk-6O244QKR.js";
16
- import "./chunk-EY6BDW7Y.js";
17
- import "./chunk-RQW7WUJR.js";
13
+ import "./chunk-SCHRFI7O.js";
14
+ import "./chunk-PLYZAP4W.js";
15
+ import "./chunk-UABFCMPA.js";
18
16
  import "./chunk-77WXWU44.js";
19
- import "./chunk-GVWPJCXU.js";
20
- import "./chunk-C5CUHYSM.js";
17
+ import "./chunk-6VFG3EUJ.js";
18
+ import "./chunk-3H7ENG2Q.js";
21
19
  import "./chunk-3PJXIDKI.js";
22
20
  import "./chunk-UWCTAVOD.js";
23
- import "./chunk-W57YDFU5.js";
24
21
  import "./chunk-OFEVLU4C.js";
25
- import "./chunk-NQ3E7YLD.js";
26
- import "./chunk-OJFMTECH.js";
27
- import "./chunk-SOGUPKP6.js";
28
- import "./chunk-6RQTH7UQ.js";
29
- import "./chunk-JKUAX6UT.js";
30
- import "./chunk-G4K6P5KN.js";
31
- import "./chunk-OIL7KDWV.js";
32
- import "./chunk-HX3JRTWL.js";
33
- import "./chunk-QVJ33ZBG.js";
34
- import "./chunk-TDZCEIK6.js";
22
+ import "./chunk-AVLOK27J.js";
23
+ import "./chunk-JSYEZAYV.js";
24
+ import "./chunk-5RNZ2QKF.js";
25
+ import "./chunk-G763GDO6.js";
26
+ import "./chunk-JMLIPZUU.js";
27
+ import "./chunk-GBEPNWYB.js";
28
+ import "./chunk-F5ORN4YO.js";
29
+ import "./chunk-MVX64PNU.js";
30
+ import "./chunk-D46KOV3C.js";
35
31
  import "./chunk-BNESGOSJ.js";
36
32
  import "./chunk-SZOEIL6S.js";
37
33
  import "./chunk-5IFG2VC4.js";
38
34
  import {
39
35
  Storage,
40
36
  createDebugLogger
41
- } from "./chunk-ACBGEKB7.js";
37
+ } from "./chunk-R5PDRHEF.js";
42
38
  import "./chunk-ZERZSAZL.js";
43
39
  import "./chunk-QN5NZ3UQ.js";
44
40
  import "./chunk-BR4QREVK.js";
45
- import "./chunk-QWSRH265.js";
41
+ import "./chunk-WFVXF3OM.js";
46
42
  import {
47
43
  init_esbuild_shims
48
44
  } from "./chunk-A4BMJM77.js";
@@ -1,15 +1,13 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
+ BaseDeclarativeTool,
5
+ BaseToolInvocation,
4
6
  ToolDisplayNames,
5
7
  ToolNames
6
- } from "./chunk-6RQTH7UQ.js";
7
- import {
8
- BaseDeclarativeTool,
9
- BaseToolInvocation
10
- } from "./chunk-JKUAX6UT.js";
11
- import "./chunk-ACBGEKB7.js";
12
- import "./chunk-QWSRH265.js";
8
+ } from "./chunk-G763GDO6.js";
9
+ import "./chunk-R5PDRHEF.js";
10
+ import "./chunk-WFVXF3OM.js";
13
11
  import {
14
12
  init_esbuild_shims
15
13
  } from "./chunk-A4BMJM77.js";
@@ -29,16 +29,16 @@ import {
29
29
  getNpmVersion,
30
30
  loadSettings,
31
31
  mapDomainErrorToErrorKind
32
- } from "./chunk-X2474BTT.js";
32
+ } from "./chunk-BPZQVC2P.js";
33
33
  import {
34
34
  ClientSideConnection,
35
35
  PROTOCOL_VERSION,
36
36
  ndJsonStream
37
- } from "./chunk-33RDTIU6.js";
37
+ } from "./chunk-UFC57OYT.js";
38
38
  import {
39
39
  writeStderrLine,
40
40
  writeStdoutLine
41
- } from "./chunk-PLYRQYKC.js";
41
+ } from "./chunk-UQZQP5PA.js";
42
42
  import {
43
43
  APPROVAL_MODES,
44
44
  BuiltinAgentRegistry,
@@ -56,18 +56,16 @@ import {
56
56
  loadIgnoreRules,
57
57
  require_once,
58
58
  writeWorkspaceContextFile
59
- } from "./chunk-2KEXT6RB.js";
60
- import "./chunk-24YKA2DA.js";
59
+ } from "./chunk-BUOJN3MM.js";
60
+ import "./chunk-K5PGHDBN.js";
61
61
  import "./chunk-O4PICXES.js";
62
62
  import "./chunk-TW522KN6.js";
63
- import "./chunk-7TQVELRB.js";
64
- import "./chunk-AKBFRR6J.js";
65
63
  import "./chunk-MLZQVCF3.js";
66
- import "./chunk-6O244QKR.js";
67
- import "./chunk-EY6BDW7Y.js";
68
- import "./chunk-RQW7WUJR.js";
64
+ import "./chunk-SCHRFI7O.js";
65
+ import "./chunk-PLYZAP4W.js";
66
+ import "./chunk-UABFCMPA.js";
69
67
  import "./chunk-77WXWU44.js";
70
- import "./chunk-GVWPJCXU.js";
68
+ import "./chunk-6VFG3EUJ.js";
71
69
  import {
72
70
  decodeBufferWithEncodingInfo,
73
71
  getAllGeminiMdFilenames,
@@ -75,16 +73,14 @@ import {
75
73
  isBinaryFile,
76
74
  isWithinRoot,
77
75
  require_safer
78
- } from "./chunk-C5CUHYSM.js";
76
+ } from "./chunk-3H7ENG2Q.js";
79
77
  import "./chunk-3PJXIDKI.js";
80
78
  import "./chunk-UWCTAVOD.js";
81
- import "./chunk-W57YDFU5.js";
82
79
  import "./chunk-OFEVLU4C.js";
83
- import "./chunk-NQ3E7YLD.js";
84
- import "./chunk-OJFMTECH.js";
85
- import "./chunk-SOGUPKP6.js";
86
- import "./chunk-6RQTH7UQ.js";
87
- import "./chunk-JKUAX6UT.js";
80
+ import "./chunk-AVLOK27J.js";
81
+ import "./chunk-JSYEZAYV.js";
82
+ import "./chunk-5RNZ2QKF.js";
83
+ import "./chunk-G763GDO6.js";
88
84
  import {
89
85
  QwenOAuth2Client,
90
86
  QwenOAuthPollError,
@@ -93,20 +89,20 @@ import {
93
89
  isDeviceAuthorizationSuccess,
94
90
  isDeviceTokenPending,
95
91
  isDeviceTokenSuccess
96
- } from "./chunk-G4K6P5KN.js";
97
- import "./chunk-OIL7KDWV.js";
98
- import "./chunk-HX3JRTWL.js";
92
+ } from "./chunk-JMLIPZUU.js";
93
+ import "./chunk-GBEPNWYB.js";
94
+ import "./chunk-F5ORN4YO.js";
99
95
  import {
100
96
  detectRuntime,
101
97
  redactProxyCredentials
102
- } from "./chunk-QVJ33ZBG.js";
103
- import "./chunk-TDZCEIK6.js";
98
+ } from "./chunk-MVX64PNU.js";
99
+ import "./chunk-D46KOV3C.js";
104
100
  import "./chunk-BNESGOSJ.js";
105
101
  import "./chunk-SZOEIL6S.js";
106
102
  import "./chunk-5IFG2VC4.js";
107
103
  import {
108
104
  Storage
109
- } from "./chunk-ACBGEKB7.js";
105
+ } from "./chunk-R5PDRHEF.js";
110
106
  import "./chunk-ZERZSAZL.js";
111
107
  import {
112
108
  require_src
@@ -114,7 +110,7 @@ import {
114
110
  import {
115
111
  require_ms
116
112
  } from "./chunk-BR4QREVK.js";
117
- import "./chunk-QWSRH265.js";
113
+ import "./chunk-WFVXF3OM.js";
118
114
  import {
119
115
  init_esbuild_shims
120
116
  } from "./chunk-A4BMJM77.js";
@@ -7,41 +7,37 @@ import {
7
7
  buildLongRunningForegroundHint,
8
8
  detectBlockedSleepPattern,
9
9
  parseNumstat
10
- } from "./chunk-2KEXT6RB.js";
11
- import "./chunk-24YKA2DA.js";
10
+ } from "./chunk-BUOJN3MM.js";
11
+ import "./chunk-K5PGHDBN.js";
12
12
  import "./chunk-O4PICXES.js";
13
13
  import "./chunk-TW522KN6.js";
14
- import "./chunk-7TQVELRB.js";
15
- import "./chunk-AKBFRR6J.js";
16
14
  import "./chunk-MLZQVCF3.js";
17
- import "./chunk-6O244QKR.js";
18
- import "./chunk-EY6BDW7Y.js";
19
- import "./chunk-RQW7WUJR.js";
15
+ import "./chunk-SCHRFI7O.js";
16
+ import "./chunk-PLYZAP4W.js";
17
+ import "./chunk-UABFCMPA.js";
20
18
  import "./chunk-77WXWU44.js";
21
- import "./chunk-GVWPJCXU.js";
22
- import "./chunk-C5CUHYSM.js";
19
+ import "./chunk-6VFG3EUJ.js";
20
+ import "./chunk-3H7ENG2Q.js";
23
21
  import "./chunk-3PJXIDKI.js";
24
22
  import "./chunk-UWCTAVOD.js";
25
- import "./chunk-W57YDFU5.js";
26
23
  import "./chunk-OFEVLU4C.js";
27
- import "./chunk-NQ3E7YLD.js";
28
- import "./chunk-OJFMTECH.js";
29
- import "./chunk-SOGUPKP6.js";
30
- import "./chunk-6RQTH7UQ.js";
31
- import "./chunk-JKUAX6UT.js";
32
- import "./chunk-G4K6P5KN.js";
33
- import "./chunk-OIL7KDWV.js";
34
- import "./chunk-HX3JRTWL.js";
35
- import "./chunk-QVJ33ZBG.js";
36
- import "./chunk-TDZCEIK6.js";
24
+ import "./chunk-AVLOK27J.js";
25
+ import "./chunk-JSYEZAYV.js";
26
+ import "./chunk-5RNZ2QKF.js";
27
+ import "./chunk-G763GDO6.js";
28
+ import "./chunk-JMLIPZUU.js";
29
+ import "./chunk-GBEPNWYB.js";
30
+ import "./chunk-F5ORN4YO.js";
31
+ import "./chunk-MVX64PNU.js";
32
+ import "./chunk-D46KOV3C.js";
37
33
  import "./chunk-BNESGOSJ.js";
38
34
  import "./chunk-SZOEIL6S.js";
39
35
  import "./chunk-5IFG2VC4.js";
40
- import "./chunk-ACBGEKB7.js";
36
+ import "./chunk-R5PDRHEF.js";
41
37
  import "./chunk-ZERZSAZL.js";
42
38
  import "./chunk-QN5NZ3UQ.js";
43
39
  import "./chunk-BR4QREVK.js";
44
- import "./chunk-QWSRH265.js";
40
+ import "./chunk-WFVXF3OM.js";
45
41
  import "./chunk-A4BMJM77.js";
46
42
  import "./chunk-J2S4EL5Y.js";
47
43
  export {
@@ -1,42 +1,40 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
+ applySkillAllowedTools,
4
5
  buildSkillLlmContent,
5
6
  escapeXml,
6
7
  registerSkillHooks
7
- } from "./chunk-EY6BDW7Y.js";
8
- import "./chunk-RQW7WUJR.js";
8
+ } from "./chunk-PLYZAP4W.js";
9
+ import "./chunk-UABFCMPA.js";
9
10
  import {
10
11
  SkillLaunchEvent,
11
12
  logSkillLaunch
12
- } from "./chunk-C5CUHYSM.js";
13
+ } from "./chunk-3H7ENG2Q.js";
13
14
  import "./chunk-3PJXIDKI.js";
14
15
  import "./chunk-UWCTAVOD.js";
15
- import "./chunk-W57YDFU5.js";
16
16
  import "./chunk-OFEVLU4C.js";
17
- import "./chunk-NQ3E7YLD.js";
18
- import "./chunk-OJFMTECH.js";
19
- import "./chunk-SOGUPKP6.js";
17
+ import "./chunk-AVLOK27J.js";
18
+ import "./chunk-JSYEZAYV.js";
19
+ import "./chunk-5RNZ2QKF.js";
20
20
  import {
21
+ BaseDeclarativeTool,
22
+ BaseToolInvocation,
21
23
  ToolDisplayNames,
22
24
  ToolNames
23
- } from "./chunk-6RQTH7UQ.js";
24
- import {
25
- BaseDeclarativeTool,
26
- BaseToolInvocation
27
- } from "./chunk-JKUAX6UT.js";
28
- import "./chunk-HX3JRTWL.js";
29
- import "./chunk-TDZCEIK6.js";
25
+ } from "./chunk-G763GDO6.js";
26
+ import "./chunk-F5ORN4YO.js";
27
+ import "./chunk-D46KOV3C.js";
30
28
  import "./chunk-BNESGOSJ.js";
31
29
  import "./chunk-SZOEIL6S.js";
32
30
  import "./chunk-5IFG2VC4.js";
33
31
  import {
34
32
  createDebugLogger
35
- } from "./chunk-ACBGEKB7.js";
33
+ } from "./chunk-R5PDRHEF.js";
36
34
  import "./chunk-ZERZSAZL.js";
37
35
  import "./chunk-QN5NZ3UQ.js";
38
36
  import "./chunk-BR4QREVK.js";
39
- import "./chunk-QWSRH265.js";
37
+ import "./chunk-WFVXF3OM.js";
40
38
  import {
41
39
  init_esbuild_shims
42
40
  } from "./chunk-A4BMJM77.js";
@@ -55,7 +53,11 @@ var SkillTool = class _SkillTool extends BaseDeclarativeTool {
55
53
  properties: {
56
54
  skill: {
57
55
  type: "string",
58
- description: 'The skill name (no arguments). E.g., "pdf" or "xlsx"'
56
+ description: 'The skill or command name. E.g., "pdf" or "xlsx"'
57
+ },
58
+ args: {
59
+ type: "string",
60
+ description: "Optional arguments for model-invocable slash commands."
59
61
  }
60
62
  },
61
63
  required: ["skill"],
@@ -113,18 +115,20 @@ var SkillTool = class _SkillTool extends BaseDeclarativeTool {
113
115
  async refreshSkills() {
114
116
  try {
115
117
  const allSkills = await this.skillManager.listSkills();
118
+ const disabledNames = this.config.getDisabledSkillNames();
119
+ const isDisabled = /* @__PURE__ */ __name((name) => disabledNames.has(name.toLowerCase()), "isDisabled");
116
120
  this.availableSkills = allSkills.filter(
117
- (s) => !s.disableModelInvocation && this.skillManager.isSkillActive(s)
121
+ (s) => !s.disableModelInvocation && this.skillManager.isSkillActive(s) && !isDisabled(s.name)
118
122
  );
119
123
  this.pendingConditionalSkillNames = new Set(
120
124
  allSkills.filter(
121
- (s) => !s.disableModelInvocation && s.paths && s.paths.length > 0 && !this.skillManager.isSkillActive(s)
125
+ (s) => !s.disableModelInvocation && s.paths && s.paths.length > 0 && !this.skillManager.isSkillActive(s) && !isDisabled(s.name)
122
126
  ).map((s) => s.name)
123
127
  );
124
128
  const provider = this.config.getModelInvocableCommandsProvider();
125
129
  const allCommands = provider ? provider() : [];
126
130
  const fileBasedSkillNames = new Set(
127
- allSkills.filter((s) => !s.disableModelInvocation).map((s) => s.name)
131
+ allSkills.filter((s) => !s.disableModelInvocation && !isDisabled(s.name)).map((s) => s.name)
128
132
  );
129
133
  this.modelInvocableCommands = allCommands.filter(
130
134
  (cmd) => !fileBasedSkillNames.has(cmd.name)
@@ -190,6 +194,7 @@ How to invoke:
190
194
  - \`skill: "pdf"\` - invoke the pdf skill
191
195
  - \`skill: "xlsx"\` - invoke the xlsx skill
192
196
  - \`skill: "ms-office-suite:pdf"\` - invoke using fully qualified name
197
+ - \`skill: "mcp-prompt", args: "topic"\` - invoke a model-invocable command with arguments
193
198
 
194
199
  Important:
195
200
  - When a skill is relevant, you must invoke this tool IMMEDIATELY as your first action
@@ -213,6 +218,9 @@ ${skillDescriptions}
213
218
  if (!params.skill || typeof params.skill !== "string" || params.skill.trim() === "") {
214
219
  return 'Parameter "skill" must be a non-empty string.';
215
220
  }
221
+ if (params.args !== void 0 && typeof params.args !== "string") {
222
+ return 'Parameter "args" must be a string when provided.';
223
+ }
216
224
  const skillExists = this.availableSkills.some(
217
225
  (skill) => skill.name === params.skill
218
226
  );
@@ -221,6 +229,9 @@ ${skillDescriptions}
221
229
  (cmd) => cmd.name === params.skill
222
230
  );
223
231
  if (commandExists) return null;
232
+ if (this.config.getDisabledSkillNames().has(params.skill.toLowerCase())) {
233
+ return `Skill "${params.skill}" is disabled. Re-enable it via /skills or remove it from skills.disabled.`;
234
+ }
224
235
  if (this.pendingConditionalSkillNames.has(params.skill)) {
225
236
  return `Skill "${params.skill}" is gated by path-based activation (paths: frontmatter) and is not yet available. Access a file matching its paths patterns first to activate it.`;
226
237
  }
@@ -243,7 +254,7 @@ ${skillDescriptions}
243
254
  );
244
255
  }
245
256
  toAutoClassifierInput(params) {
246
- return { skill: params.skill };
257
+ return params.args === void 0 ? { skill: params.skill } : { skill: params.skill, args: params.args };
247
258
  }
248
259
  getAvailableSkillNames() {
249
260
  return this.availableSkills.map((skill) => skill.name);
@@ -295,7 +306,7 @@ var SkillToolInvocation = class extends BaseToolInvocation {
295
306
  this.promptId = promptId;
296
307
  }
297
308
  getDescription() {
298
- return `Use skill: "${this.params.skill}"`;
309
+ return this.params.args === void 0 ? `Use skill: "${this.params.skill}"` : `Use skill: "${this.params.skill}" with args: "${formatArgsForDescription(this.params.args)}"`;
299
310
  }
300
311
  /**
301
312
  * Skills load user-defined code that runs with the agent's tool
@@ -309,21 +320,64 @@ var SkillToolInvocation = class extends BaseToolInvocation {
309
320
  return "ask";
310
321
  }
311
322
  async execute(_signal, _updateOutput) {
323
+ const disabled = this.config.getDisabledSkillNames().has(this.params.skill.toLowerCase());
324
+ if (disabled) {
325
+ if (this.commandExecutor) {
326
+ try {
327
+ const content = await this.commandExecutor(
328
+ this.params.skill,
329
+ this.params.args ?? ""
330
+ );
331
+ if (content && typeof content === "object" && "error" in content) {
332
+ return {
333
+ llmContent: content.error,
334
+ returnDisplay: content.error
335
+ };
336
+ }
337
+ if (typeof content === "string") {
338
+ return {
339
+ llmContent: [{ text: content }],
340
+ returnDisplay: `Delegated to command: ${this.params.skill}`
341
+ };
342
+ }
343
+ } catch {
344
+ }
345
+ }
346
+ logSkillLaunch(
347
+ this.config,
348
+ new SkillLaunchEvent(this.params.skill, false, this.promptId)
349
+ );
350
+ const msg = `Skill "${this.params.skill}" is disabled. Re-enable it via /skills or remove it from skills.disabled.`;
351
+ return { llmContent: msg, returnDisplay: msg };
352
+ }
312
353
  try {
313
354
  const skill = await this.skillManager.loadSkillForRuntime(
314
355
  this.params.skill
315
356
  );
316
357
  if (!skill) {
317
358
  if (this.commandExecutor) {
318
- const content = await this.commandExecutor(this.params.skill);
319
- if (content !== null) {
359
+ const commandResult = await this.commandExecutor(
360
+ this.params.skill,
361
+ this.params.args ?? ""
362
+ );
363
+ if (commandResult && typeof commandResult === "object" && "error" in commandResult) {
364
+ logSkillLaunch(
365
+ this.config,
366
+ new SkillLaunchEvent(this.params.skill, false, this.promptId)
367
+ );
368
+ return {
369
+ llmContent: commandResult.error,
370
+ returnDisplay: commandResult.error
371
+ };
372
+ }
373
+ if (typeof commandResult === "string") {
320
374
  logSkillLaunch(
321
375
  this.config,
322
376
  new SkillLaunchEvent(this.params.skill, true, this.promptId)
323
377
  );
324
378
  this.onSkillLoaded(this.params.skill);
325
379
  return {
326
- llmContent: [{ text: content }],
380
+ llmContent: [{ text: commandResult }],
327
381
  returnDisplay: `Executed command: ${this.params.skill}`
328
382
  };
329
383
  }
@@ -352,6 +406,10 @@ ${errorMessages.join("\n")}` : "";
352
406
  new SkillLaunchEvent(this.params.skill, true, this.promptId)
353
407
  );
354
408
  this.onSkillLoaded(this.params.skill);
409
+ applySkillAllowedTools(
410
+ this.config.getPermissionManager(),
411
+ skill.allowedTools
412
+ );
355
413
  debugLogger.debug("Skill hooks check:", {
356
414
  hasHooks: !!skill.hooks,
357
415
  hooksKeys: skill.hooks ? Object.keys(skill.hooks) : [],
@@ -407,6 +465,11 @@ ${errorMessages.join("\n")}` : "";
407
465
  }
408
466
  }
409
467
  };
468
+ function formatArgsForDescription(args) {
469
+ const escapeMarkdown = /* @__PURE__ */ __name((value) => value.replace(/([\\`*_{}[\]()#+\-.!|>])/g, "\\$1"), "escapeMarkdown");
470
+ return args.length > 120 ? `${escapeMarkdown(args.slice(0, 117))}...` : escapeMarkdown(args);
471
+ }
472
+ __name(formatArgsForDescription, "formatArgsForDescription");
410
473
  export {
411
474
  SkillTool,
412
475
  buildSkillLlmContent