@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
@@ -3,17 +3,42 @@
3
3
  import {
4
4
  Client,
5
5
  StdioClientTransport
6
- } from "./chunk-7TQVELRB.js";
7
- import "./chunk-AKBFRR6J.js";
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";
8
16
  import {
9
17
  safeJsonStringify
10
- } from "./chunk-W57YDFU5.js";
18
+ } from "./chunk-3H7ENG2Q.js";
19
+ import "./chunk-3PJXIDKI.js";
20
+ import "./chunk-UWCTAVOD.js";
21
+ import "./chunk-OFEVLU4C.js";
22
+ import "./chunk-AVLOK27J.js";
23
+ import "./chunk-JSYEZAYV.js";
24
+ import "./chunk-5RNZ2QKF.js";
11
25
  import {
12
26
  BaseDeclarativeTool,
13
27
  BaseToolInvocation
14
- } from "./chunk-JKUAX6UT.js";
15
- import "./chunk-ACBGEKB7.js";
16
- import "./chunk-QWSRH265.js";
28
+ } from "./chunk-G763GDO6.js";
29
+ import "./chunk-JMLIPZUU.js";
30
+ import "./chunk-GBEPNWYB.js";
31
+ import "./chunk-F5ORN4YO.js";
32
+ import "./chunk-MVX64PNU.js";
33
+ import "./chunk-D46KOV3C.js";
34
+ import "./chunk-BNESGOSJ.js";
35
+ import "./chunk-SZOEIL6S.js";
36
+ import "./chunk-5IFG2VC4.js";
37
+ import "./chunk-R5PDRHEF.js";
38
+ import "./chunk-ZERZSAZL.js";
39
+ import "./chunk-QN5NZ3UQ.js";
40
+ import "./chunk-BR4QREVK.js";
41
+ import "./chunk-WFVXF3OM.js";
17
42
  import {
18
43
  init_esbuild_shims
19
44
  } from "./chunk-A4BMJM77.js";
@@ -288,12 +313,16 @@ async function runBootstrap(client, ctx, depsOverride) {
288
313
  const pollTimeoutMs = deps.pollTimeoutMs ?? 10 * 6e4;
289
314
  const approved = await isPackageSpecApproved(deps.homeDir, deps.packageSpec);
290
315
  if (!approved) {
291
- ctx.updateOutput?.("Computer Use needs to be installed (first use).");
292
- const ok = await deps.promptInstallApproval(deps.packageSpec);
293
- if (!ok) {
294
- throw new Error(
295
- `Computer Use install declined by user. Re-invoke the tool to be prompted again.`
296
- );
316
+ if (ctx.autoApproveInstall) {
317
+ ctx.updateOutput?.("Computer Use install auto-approved (approval mode).");
318
+ } else {
319
+ ctx.updateOutput?.("Computer Use needs to be installed (first use).");
320
+ const ok = await deps.promptInstallApproval(deps.packageSpec);
321
+ if (!ok) {
322
+ throw new Error(
323
+ `Computer Use install declined by user. Re-invoke the tool to be prompted again.`
324
+ );
325
+ }
297
326
  }
298
327
  await saveInstallState(deps.homeDir, {
299
328
  approvedPackageSpec: deps.packageSpec,
@@ -343,9 +372,10 @@ __name(runBootstrap, "runBootstrap");
343
372
  import { homedir as homedir3 } from "node:os";
344
373
  var INSTALL_REASON = "This will install the open-computer-use binary (~50MB) via npx the first time. Computer Use can click, type, and read your desktop apps. On macOS you'll be guided through Accessibility / Screen Recording permissions next.";
345
374
  var ComputerUseInvocation = class extends BaseToolInvocation {
346
- constructor(upstreamName, params) {
375
+ constructor(upstreamName, params, config) {
347
376
  super(params);
348
377
  this.upstreamName = upstreamName;
378
+ this.config = config;
349
379
  }
350
380
  static {
351
381
  __name(this, "ComputerUseInvocation");
@@ -423,7 +453,9 @@ ${INSTALL_REASON}`;
423
453
  }
424
454
  async execute(signal, updateOutput) {
425
455
  const client = ComputerUseClient.shared();
426
- await runBootstrap(client, { signal, updateOutput });
456
+ const mode = this.config?.getApprovalMode();
457
+ const autoApproveInstall = mode === "yolo" /* YOLO */ || mode === "auto-edit" /* AUTO_EDIT */ || mode === "auto" /* AUTO */;
458
+ await runBootstrap(client, { signal, updateOutput, autoApproveInstall });
427
459
  let mcpResult;
428
460
  try {
429
461
  mcpResult = await client.callTool(this.upstreamName, this.params);
@@ -452,7 +484,7 @@ ${INSTALL_REASON}`;
452
484
  }
453
485
  };
454
486
  var ComputerUseTool = class extends BaseDeclarativeTool {
455
- constructor(upstreamName, schema) {
487
+ constructor(upstreamName, schema, config) {
456
488
  const qwenName = `computer_use__${upstreamName}`;
457
489
  super(
458
490
  qwenName,
@@ -472,6 +504,7 @@ var ComputerUseTool = class extends BaseDeclarativeTool {
472
504
  `computer use desktop click type screenshot mouse keyboard scroll drag automation gui app native`
473
505
  );
474
506
  this.upstreamName = upstreamName;
507
+ this.config = config;
475
508
  }
476
509
  static {
477
510
  __name(this, "ComputerUseTool");
@@ -498,7 +531,7 @@ var ComputerUseTool = class extends BaseDeclarativeTool {
498
531
  return super.build(coerced);
499
532
  }
500
533
  createInvocation(params) {
501
- return new ComputerUseInvocation(this.upstreamName, params);
534
+ return new ComputerUseInvocation(this.upstreamName, params, this.config);
502
535
  }
503
536
  };
504
537
  function coerceTypes(params, schema) {
@@ -761,13 +794,13 @@ var COMPUTER_USE_SCHEMAS = {
761
794
  };
762
795
 
763
796
  // packages/core/src/tools/computer-use/index.ts
764
- async function registerComputerUseTools(registerLazy) {
797
+ async function registerComputerUseTools(registerLazy, config) {
765
798
  for (const upstreamName of COMPUTER_USE_TOOL_NAMES) {
766
799
  const schema = COMPUTER_USE_SCHEMAS[upstreamName];
767
800
  const qwenName = `computer_use__${upstreamName}`;
768
801
  await registerLazy(
769
802
  qwenName,
770
- async () => new ComputerUseTool(upstreamName, schema)
803
+ async () => new ComputerUseTool(upstreamName, schema, config)
771
804
  );
772
805
  }
773
806
  }
@@ -0,0 +1,46 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ collectContextData,
5
+ contextCommand,
6
+ formatContextUsageText
7
+ } from "./chunk-IKOMHTCC.js";
8
+ import "./chunk-UQZQP5PA.js";
9
+ import "./chunk-BUOJN3MM.js";
10
+ import "./chunk-K5PGHDBN.js";
11
+ import "./chunk-O4PICXES.js";
12
+ import "./chunk-TW522KN6.js";
13
+ import "./chunk-MLZQVCF3.js";
14
+ import "./chunk-SCHRFI7O.js";
15
+ import "./chunk-PLYZAP4W.js";
16
+ import "./chunk-UABFCMPA.js";
17
+ import "./chunk-77WXWU44.js";
18
+ import "./chunk-6VFG3EUJ.js";
19
+ import "./chunk-3H7ENG2Q.js";
20
+ import "./chunk-3PJXIDKI.js";
21
+ import "./chunk-UWCTAVOD.js";
22
+ import "./chunk-OFEVLU4C.js";
23
+ import "./chunk-AVLOK27J.js";
24
+ import "./chunk-JSYEZAYV.js";
25
+ import "./chunk-5RNZ2QKF.js";
26
+ import "./chunk-G763GDO6.js";
27
+ import "./chunk-JMLIPZUU.js";
28
+ import "./chunk-GBEPNWYB.js";
29
+ import "./chunk-F5ORN4YO.js";
30
+ import "./chunk-MVX64PNU.js";
31
+ import "./chunk-D46KOV3C.js";
32
+ import "./chunk-BNESGOSJ.js";
33
+ import "./chunk-SZOEIL6S.js";
34
+ import "./chunk-5IFG2VC4.js";
35
+ import "./chunk-R5PDRHEF.js";
36
+ import "./chunk-ZERZSAZL.js";
37
+ import "./chunk-QN5NZ3UQ.js";
38
+ import "./chunk-BR4QREVK.js";
39
+ import "./chunk-WFVXF3OM.js";
40
+ import "./chunk-A4BMJM77.js";
41
+ import "./chunk-J2S4EL5Y.js";
42
+ export {
43
+ collectContextData,
44
+ contextCommand,
45
+ formatContextUsageText
46
+ };
@@ -7,15 +7,13 @@ import {
7
7
  humanReadableCron
8
8
  } from "./chunk-TW522KN6.js";
9
9
  import {
10
+ BaseDeclarativeTool,
11
+ BaseToolInvocation,
10
12
  ToolDisplayNames,
11
13
  ToolNames
12
- } from "./chunk-6RQTH7UQ.js";
13
- import {
14
- BaseDeclarativeTool,
15
- BaseToolInvocation
16
- } from "./chunk-JKUAX6UT.js";
17
- import "./chunk-ACBGEKB7.js";
18
- import "./chunk-QWSRH265.js";
14
+ } from "./chunk-G763GDO6.js";
15
+ import "./chunk-R5PDRHEF.js";
16
+ import "./chunk-WFVXF3OM.js";
19
17
  import {
20
18
  init_esbuild_shims
21
19
  } 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";
@@ -4,15 +4,13 @@ import {
4
4
  humanReadableCron
5
5
  } from "./chunk-TW522KN6.js";
6
6
  import {
7
+ BaseDeclarativeTool,
8
+ BaseToolInvocation,
7
9
  ToolDisplayNames,
8
10
  ToolNames
9
- } from "./chunk-6RQTH7UQ.js";
10
- import {
11
- BaseDeclarativeTool,
12
- BaseToolInvocation
13
- } from "./chunk-JKUAX6UT.js";
14
- import "./chunk-ACBGEKB7.js";
15
- import "./chunk-QWSRH265.js";
11
+ } from "./chunk-G763GDO6.js";
12
+ import "./chunk-R5PDRHEF.js";
13
+ import "./chunk-WFVXF3OM.js";
16
14
  import {
17
15
  init_esbuild_shims
18
16
  } from "./chunk-A4BMJM77.js";
@@ -76,7 +76,30 @@ var de_default = {
76
76
  // ============================================================================
77
77
  "Analyzes the project and creates a tailored QWEN.md file.": "Analysiert das Projekt und erstellt eine ma\xDFgeschneiderte QWEN.md-Datei.",
78
78
  "List available Qwen Code tools. Usage: /tools [desc]": "Verf\xFCgbare Qwen Code Werkzeuge auflisten. Verwendung: /tools [desc]",
79
- "List available skills.": "Verf\xFCgbare Skills auflisten.",
79
+ "Open the skills panel (browse, search, toggle, pick).": "Skills-Panel \xF6ffnen (durchsuchen, suchen, ein/aus, ausw\xE4hlen).",
80
+ "Manage Skills": "Skills verwalten",
81
+ "Skills configuration saved.": "Skills-Konfiguration gespeichert.",
82
+ "Skills configuration saved, but refresh failed: {{error}}. Restart to ensure the new state is applied.": "Skills-Konfiguration gespeichert, aber Aktualisierung fehlgeschlagen: {{error}}. Bitte neu starten, um den neuen Zustand zu \xFCbernehmen.",
83
+ "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.": "Arbeitsbereich ist nicht vertrauensw\xFCrdig; Arbeitsbereichseinstellungen werden in der zusammengef\xFChrten Konfiguration ignoriert. F\xFChre zuerst /trust aus oder bearbeite ~/.qwen/settings.json direkt, um Skills auf Benutzerebene zu verwalten.",
84
+ "SkillManager not available.": "SkillManager nicht verf\xFCgbar.",
85
+ "Loading skills\u2026": "Skills werden geladen\u2026",
86
+ "Failed to load skills: {{error}}": "Skills konnten nicht geladen werden: {{error}}",
87
+ "Failed to save skills configuration: {{error}}": "Speichern der Skill-Konfiguration fehlgeschlagen: {{error}}",
88
+ "All available skills are disabled. Edit ~/.qwen/settings.json or .qwen/settings.json (skills.disabled) to re-enable.": "Alle verf\xFCgbaren Skills sind deaktiviert. Bearbeite ~/.qwen/settings.json oder .qwen/settings.json (skills.disabled), um sie wieder zu aktivieren.",
89
+ "Press esc to close.": "Esc dr\xFCcken, um zu schlie\xDFen.",
90
+ "{{count}} skills \xB7 ": "{{count}} Skills \xB7 ",
91
+ "{{matched}} / {{total}} skills \xB7 ": "{{matched}} / {{total}} Skills \xB7 ",
92
+ "Space toggle \xB7 Enter pick (fill input) \xB7 Esc save & exit \xB7 workspace scope": "Leertaste umschalten \xB7 Enter ausw\xE4hlen (in Eingabe) \xB7 Esc speichern & beenden \xB7 Arbeitsbereich",
93
+ "Search:": "Suche:",
94
+ "type to filter\u2026": "Tippen zum Filtern\u2026",
95
+ "No skills are currently available.": "Derzeit sind keine Skills verf\xFCgbar.",
96
+ "All available skills are locked at a higher scope (see below).": "Alle verf\xFCgbaren Skills sind in einer h\xF6heren Ebene gesperrt (siehe unten).",
97
+ "No skills match the search.": "Keine Skills passen zur Suche.",
98
+ "Locked by higher-scope settings (cannot toggle here):": "Gesperrt durch Einstellungen einer h\xF6heren Ebene (kann hier nicht umgeschaltet werden):",
99
+ "higher scope": "h\xF6here Ebene",
100
+ " {{name}} {{description}} [locked: {{scope}}]": " {{name}} {{description}} [gesperrt: {{scope}}]",
101
+ "\u2191/\u2193 navigate \xB7 backspace edits search": "\u2191/\u2193 navigieren \xB7 R\xFCcktaste bearbeitet Suche",
102
+ Bundled: "Mitgeliefert",
80
103
  "Available Qwen Code CLI tools:": "Verf\xFCgbare Qwen Code CLI-Werkzeuge:",
81
104
  "No tools available": "Keine Werkzeuge verf\xFCgbar",
82
105
  "View or change the approval mode for tool usage": "Genehmigungsmodus f\xFCr Werkzeugnutzung anzeigen oder \xE4ndern",
@@ -127,7 +150,7 @@ var de_default = {
127
150
  "open full Qwen Code documentation in your browser": "Vollst\xE4ndige Qwen Code Dokumentation im Browser \xF6ffnen",
128
151
  "Configuration not available.": "Konfiguration nicht verf\xFCgbar.",
129
152
  "Connect an LLM provider": "LLM-Anbieter verbinden",
130
- "Copy the last result or code snippet to clipboard": "Letztes Ergebnis oder Codeausschnitt in die Zwischenablage kopieren",
153
+ "Copy the last AI response to clipboard (/copy N for Nth-latest)": "Letzte KI-Antwort in die Zwischenablage kopieren (/copy N f\xFCr die N-letzte)",
131
154
  // ============================================================================
132
155
  // Commands - Agents
133
156
  // ============================================================================
@@ -488,6 +511,7 @@ var de_default = {
488
511
  "After tool execution fails": "Wenn die Tool-Ausf\xFChrung fehlschl\xE4gt",
489
512
  "When notifications are sent": "Wenn Benachrichtigungen gesendet werden",
490
513
  "When the user submits a prompt": "Wenn der Benutzer einen Prompt absendet",
514
+ "When a slash command expands into a prompt": "Wenn ein Slash-Befehl zu einem Prompt erweitert wird",
491
515
  "When a new session is started": "Wenn eine neue Sitzung gestartet wird",
492
516
  "Right before Qwen Code concludes its response": "Direkt bevor Qwen Code seine Antwort abschlie\xDFt",
493
517
  "When a subagent (Agent tool call) is started": "Wenn ein Subagent (Agent-Tool-Aufruf) gestartet wird",
@@ -503,6 +527,7 @@ var de_default = {
503
527
  "Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.": "Die Eingabe an den Befehl ist JSON mit tool_name, tool_input, tool_use_id, error, error_type, is_interrupt und is_timeout.",
504
528
  "Input to command is JSON with notification message and type.": "Die Eingabe an den Befehl ist JSON mit Benachrichtigungsnachricht und -typ.",
505
529
  "Input to command is JSON with original user prompt text.": "Die Eingabe an den Befehl ist JSON mit dem urspr\xFCnglichen Benutzer-Prompt-Text.",
530
+ "Input to command is JSON with command_name, command_args, and expanded prompt text.": "Die Eingabe an den Befehl ist JSON mit command_name, command_args und erweitertem Prompt-Text.",
506
531
  "Input to command is JSON with session start source.": "Die Eingabe an den Befehl ist JSON mit der Sitzungsstart-Quelle.",
507
532
  "Input to command is JSON with session end reason.": "Die Eingabe an den Befehl ist JSON mit dem Sitzungsende-Grund.",
508
533
  "Input to command is JSON with agent_id and agent_type.": "Die Eingabe an den Befehl ist JSON mit agent_id und agent_type.",
@@ -519,6 +544,7 @@ var de_default = {
519
544
  "show stderr to model immediately": "stderr sofort dem Modell anzeigen",
520
545
  "show stderr to user only but continue with tool call": "stderr nur dem Benutzer anzeigen, aber mit Tool-Aufruf fortfahren",
521
546
  "block processing, erase original prompt, and show stderr to user only": "Verarbeitung blockieren, urspr\xFCnglichen Prompt l\xF6schen und stderr nur dem Benutzer anzeigen",
547
+ "block expanded prompt submission and show stderr to user only": "Einreichen des erweiterten Prompts blockieren und stderr nur dem Benutzer anzeigen",
522
548
  "stdout shown to Qwen": "stdout dem Qwen anzeigen",
523
549
  "show stderr to user only (blocking errors ignored)": "stderr nur dem Benutzer anzeigen (Blockierungsfehler ignoriert)",
524
550
  "command completes successfully": "Befehl erfolgreich abgeschlossen",
@@ -552,6 +578,15 @@ var de_default = {
552
578
  // ============================================================================
553
579
  "Resume a previous session": "Eine vorherige Sitzung fortsetzen",
554
580
  "Fork the current conversation into a new session": "Die aktuelle Unterhaltung in eine neue Sitzung verzweigen",
581
+ "Spawn a background agent that inherits the full conversation": "Einen Hintergrund-Agenten starten, der die gesamte Unterhaltung \xFCbernimmt",
582
+ "Please provide a directive. Usage: /fork <directive>": "Bitte geben Sie eine Anweisung an. Verwendung: /fork <Anweisung>",
583
+ "Cannot fork while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.": "W\xE4hrend eine Antwort oder ein Tool-Aufruf l\xE4uft, kann kein Hintergrund-Fork erstellt werden. Warten Sie, bis der Vorgang abgeschlossen ist, oder bearbeiten Sie den ausstehenden Tool-Aufruf.",
584
+ "Cannot fork before the first conversation turn.": "Vor der ersten Gespr\xE4chsrunde kann kein Fork erstellt werden.",
585
+ "The /fork command requires the fork feature gate. Set QWEN_CODE_ENABLE_FORK_SUBAGENT=1 to enable it.": "Der Befehl /fork erfordert das Fork-Feature-Gate. Setzen Sie QWEN_CODE_ENABLE_FORK_SUBAGENT=1, um es zu aktivieren.",
586
+ "The agent tool is unavailable; cannot fork.": "Das Agent-Tool ist nicht verf\xFCgbar; Fork kann nicht gestartet werden.",
587
+ "Failed to launch fork: {{error}}": "Fork konnte nicht gestartet werden: {{error}}",
588
+ "User launched a background fork via /fork: {{directive}}": "Benutzer hat \xFCber /fork einen Hintergrund-Fork gestartet: {{directive}}",
589
+ "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.": "In einen Hintergrund-Agenten verzweigt. Er \xFCbernimmt diese Unterhaltung und l\xE4uft ohne zu blockieren \u2014 verfolgen Sie ihn im Hintergrundaufgaben-Panel; er meldet sich nach Abschluss zur\xFCck.",
555
590
  "Cannot branch while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.": "W\xE4hrend eine Antwort oder ein Tool-Aufruf l\xE4uft, kann keine Verzweigung erstellt werden. Warten Sie, bis der Vorgang abgeschlossen ist, oder bearbeiten Sie den ausstehenden Tool-Aufruf.",
556
591
  "No conversation to branch.": "Keine Unterhaltung zum Verzweigen vorhanden.",
557
592
  "Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "Einen Tool-Aufruf wiederherstellen. Dadurch werden Konversations- und Dateiverlauf auf den Zustand zur\xFCckgesetzt, in dem der Tool-Aufruf vorgeschlagen wurde",
@@ -584,10 +619,10 @@ var de_default = {
584
619
  // Commands - Approval Mode
585
620
  // ============================================================================
586
621
  "Tool Approval Mode": "Werkzeug-Genehmigungsmodus",
587
- "{{mode}} mode": "{{mode}}-Modus",
588
622
  "Analyze only, do not modify files or execute commands": "Nur analysieren, keine Dateien \xE4ndern oder Befehle ausf\xFChren",
589
623
  "Require approval for file edits or shell commands": "Genehmigung f\xFCr Dateibearbeitungen oder Shell-Befehle erforderlich",
590
624
  "Automatically approve file edits": "Dateibearbeitungen automatisch genehmigen",
625
+ "Use classifier to automatically approve safe tool calls": "Klassifikator verwenden, um sichere Werkzeugaufrufe automatisch zu genehmigen",
591
626
  "Automatically approve all tools": "Alle Werkzeuge automatisch genehmigen",
592
627
  "Workspace approval mode exists and takes priority. User-level change will have no effect.": "Arbeitsbereich-Genehmigungsmodus existiert und hat Vorrang. Benutzerebene-\xC4nderung hat keine Wirkung.",
593
628
  "Apply To": "Anwenden auf",
@@ -6,10 +6,9 @@ import {
6
6
  } from "./chunk-KQIKOTQJ.js";
7
7
  import {
8
8
  ChannelBase
9
- } from "./chunk-NP3ICQCN.js";
10
- import "./chunk-33RDTIU6.js";
11
- import "./chunk-24YKA2DA.js";
12
- import "./chunk-AKBFRR6J.js";
9
+ } from "./chunk-USE2VQ5P.js";
10
+ import "./chunk-UFC57OYT.js";
11
+ import "./chunk-K5PGHDBN.js";
13
12
  import {
14
13
  require_dist
15
14
  } from "./chunk-ZERZSAZL.js";
@@ -11,13 +11,12 @@ import {
11
11
  sendMessage,
12
12
  sendTyping,
13
13
  uploadToCdn
14
- } from "./chunk-3BJBCG2K.js";
14
+ } from "./chunk-C6WMLUNB.js";
15
15
  import {
16
16
  ChannelBase
17
- } from "./chunk-NP3ICQCN.js";
18
- import "./chunk-33RDTIU6.js";
19
- import "./chunk-24YKA2DA.js";
20
- import "./chunk-AKBFRR6J.js";
17
+ } from "./chunk-USE2VQ5P.js";
18
+ import "./chunk-UFC57OYT.js";
19
+ import "./chunk-K5PGHDBN.js";
21
20
  import {
22
21
  init_esbuild_shims
23
22
  } from "./chunk-A4BMJM77.js";
@@ -11,10 +11,9 @@ import {
11
11
  import "./chunk-7RYW5LQV.js";
12
12
  import {
13
13
  ChannelBase
14
- } from "./chunk-NP3ICQCN.js";
15
- import "./chunk-33RDTIU6.js";
16
- import "./chunk-24YKA2DA.js";
17
- import "./chunk-AKBFRR6J.js";
14
+ } from "./chunk-USE2VQ5P.js";
15
+ import "./chunk-UFC57OYT.js";
16
+ import "./chunk-K5PGHDBN.js";
18
17
  import {
19
18
  require_minimal2 as require_minimal
20
19
  } from "./chunk-3PJXIDKI.js";
@@ -8,10 +8,9 @@ import {
8
8
  import "./chunk-7RYW5LQV.js";
9
9
  import {
10
10
  ChannelBase
11
- } from "./chunk-NP3ICQCN.js";
12
- import "./chunk-33RDTIU6.js";
13
- import "./chunk-24YKA2DA.js";
14
- import "./chunk-AKBFRR6J.js";
11
+ } from "./chunk-USE2VQ5P.js";
12
+ import "./chunk-UFC57OYT.js";
13
+ import "./chunk-K5PGHDBN.js";
15
14
  import "./chunk-UWCTAVOD.js";
16
15
  import {
17
16
  wrapper_default
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  StructuredToolError,
5
5
  checkPriorRead
6
- } from "./chunk-GJHMAWS7.js";
6
+ } from "./chunk-SHUT5MQY.js";
7
7
  import {
8
8
  CommitAttributionService,
9
9
  DEFAULT_DIFF_OPTIONS,
@@ -13,18 +13,16 @@ import {
13
13
  getDiffStat,
14
14
  needsUtf8Bom,
15
15
  safeLiteralReplace
16
- } from "./chunk-2KEXT6RB.js";
17
- import "./chunk-24YKA2DA.js";
16
+ } from "./chunk-BUOJN3MM.js";
17
+ import "./chunk-K5PGHDBN.js";
18
18
  import "./chunk-O4PICXES.js";
19
19
  import "./chunk-TW522KN6.js";
20
- import "./chunk-7TQVELRB.js";
21
- import "./chunk-AKBFRR6J.js";
22
20
  import "./chunk-MLZQVCF3.js";
23
- import "./chunk-6O244QKR.js";
24
- import "./chunk-EY6BDW7Y.js";
25
- import "./chunk-RQW7WUJR.js";
21
+ import "./chunk-SCHRFI7O.js";
22
+ import "./chunk-PLYZAP4W.js";
23
+ import "./chunk-UABFCMPA.js";
26
24
  import "./chunk-77WXWU44.js";
27
- import "./chunk-GVWPJCXU.js";
25
+ import "./chunk-6VFG3EUJ.js";
28
26
  import {
29
27
  FileOperationEvent,
30
28
  ReadFileTool,
@@ -32,28 +30,25 @@ import {
32
30
  getLanguageFromFilePath,
33
31
  getSpecificMimeType,
34
32
  logFileOperation
35
- } from "./chunk-C5CUHYSM.js";
33
+ } from "./chunk-3H7ENG2Q.js";
36
34
  import "./chunk-3PJXIDKI.js";
37
35
  import "./chunk-UWCTAVOD.js";
38
- import "./chunk-W57YDFU5.js";
39
36
  import "./chunk-OFEVLU4C.js";
40
37
  import {
41
- isAutoMemPath
42
- } from "./chunk-NQ3E7YLD.js";
43
- import "./chunk-OJFMTECH.js";
44
- import "./chunk-SOGUPKP6.js";
38
+ isAnyAutoMemPath
39
+ } from "./chunk-AVLOK27J.js";
40
+ import "./chunk-JSYEZAYV.js";
41
+ import "./chunk-5RNZ2QKF.js";
45
42
  import {
43
+ BaseDeclarativeTool,
46
44
  ToolDisplayNames,
47
45
  ToolNames
48
- } from "./chunk-6RQTH7UQ.js";
49
- import {
50
- BaseDeclarativeTool
51
- } from "./chunk-JKUAX6UT.js";
52
- import "./chunk-G4K6P5KN.js";
53
- import "./chunk-OIL7KDWV.js";
54
- import "./chunk-HX3JRTWL.js";
55
- import "./chunk-QVJ33ZBG.js";
56
- import "./chunk-TDZCEIK6.js";
46
+ } from "./chunk-G763GDO6.js";
47
+ import "./chunk-JMLIPZUU.js";
48
+ import "./chunk-GBEPNWYB.js";
49
+ import "./chunk-F5ORN4YO.js";
50
+ import "./chunk-MVX64PNU.js";
51
+ import "./chunk-D46KOV3C.js";
57
52
  import "./chunk-BNESGOSJ.js";
58
53
  import "./chunk-SZOEIL6S.js";
59
54
  import "./chunk-5IFG2VC4.js";
@@ -63,11 +58,11 @@ import {
63
58
  makeRelative,
64
59
  shortenPath,
65
60
  unescapePath
66
- } from "./chunk-ACBGEKB7.js";
61
+ } from "./chunk-R5PDRHEF.js";
67
62
  import "./chunk-ZERZSAZL.js";
68
63
  import "./chunk-QN5NZ3UQ.js";
69
64
  import "./chunk-BR4QREVK.js";
70
- import "./chunk-QWSRH265.js";
65
+ import "./chunk-WFVXF3OM.js";
71
66
  import {
72
67
  init_esbuild_shims
73
68
  } from "./chunk-A4BMJM77.js";
@@ -575,7 +570,7 @@ var EditToolInvocation = class {
575
570
  */
576
571
  async getDefaultPermission() {
577
572
  const projectRoot = this.config.getProjectRoot();
578
- if (isAutoMemPath(path.resolve(this.params.file_path), projectRoot)) {
573
+ if (isAnyAutoMemPath(path.resolve(this.params.file_path), projectRoot)) {
579
574
  return "allow";
580
575
  }
581
576
  return "ask";
@@ -98,7 +98,31 @@ var en_default = {
98
98
  // ============================================================================
99
99
  "Analyzes the project and creates a tailored QWEN.md file.": "Analyzes the project and creates a tailored QWEN.md file.",
100
100
  "List available Qwen Code tools. Usage: /tools [desc]": "List available Qwen Code tools. Usage: /tools [desc]",
101
- "List available skills.": "List available skills.",
101
+ "Open the skills panel (browse, search, toggle, pick).": "Open the skills panel (browse, search, toggle, pick).",
102
+ // SkillsManagerDialog (the panel `/skills` opens)
103
+ "Manage Skills": "Manage Skills",
104
+ "Skills configuration saved.": "Skills configuration saved.",
105
+ "Skills configuration saved, but refresh failed: {{error}}. Restart to ensure the new state is applied.": "Skills configuration saved, but refresh failed: {{error}}. Restart to ensure the new state is applied.",
106
+ "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.": "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.",
107
+ "SkillManager not available.": "SkillManager not available.",
108
+ "Loading skills\u2026": "Loading skills\u2026",
109
+ "Failed to load skills: {{error}}": "Failed to load skills: {{error}}",
110
+ "Failed to save skills configuration: {{error}}": "Failed to save skills configuration: {{error}}",
111
+ "All available skills are disabled. Edit ~/.qwen/settings.json or .qwen/settings.json (skills.disabled) to re-enable.": "All available skills are disabled. Edit ~/.qwen/settings.json or .qwen/settings.json (skills.disabled) to re-enable.",
112
+ "Press esc to close.": "Press esc to close.",
113
+ "{{count}} skills \xB7 ": "{{count}} skills \xB7 ",
114
+ "{{matched}} / {{total}} skills \xB7 ": "{{matched}} / {{total}} skills \xB7 ",
115
+ "Space toggle \xB7 Enter pick (fill input) \xB7 Esc save & exit \xB7 workspace scope": "Space toggle \xB7 Enter pick (fill input) \xB7 Esc save & exit \xB7 workspace scope",
116
+ "Search:": "Search:",
117
+ "type to filter\u2026": "type to filter\u2026",
118
+ "No skills are currently available.": "No skills are currently available.",
119
+ "All available skills are locked at a higher scope (see below).": "All available skills are locked at a higher scope (see below).",
120
+ "No skills match the search.": "No skills match the search.",
121
+ "Locked by higher-scope settings (cannot toggle here):": "Locked by higher-scope settings (cannot toggle here):",
122
+ "higher scope": "higher scope",
123
+ " {{name}} {{description}} [locked: {{scope}}]": " {{name}} {{description}} [locked: {{scope}}]",
124
+ "\u2191/\u2193 navigate \xB7 backspace edits search": "\u2191/\u2193 navigate \xB7 backspace edits search",
125
+ Bundled: "Bundled",
102
126
  "Available Qwen Code CLI tools:": "Available Qwen Code CLI tools:",
103
127
  "No tools available": "No tools available",
104
128
  "View or change the approval mode for tool usage": "View or change the approval mode for tool usage",
@@ -151,7 +175,7 @@ var en_default = {
151
175
  "open full Qwen Code documentation in your browser": "open full Qwen Code documentation in your browser",
152
176
  "Configuration not available.": "Configuration not available.",
153
177
  "Connect an LLM provider": "Connect an LLM provider",
154
- "Copy the last result or code snippet to clipboard": "Copy the last result or code snippet to clipboard",
178
+ "Copy the last AI response to clipboard (/copy N for Nth-latest)": "Copy the last AI response to clipboard (/copy N for Nth-latest)",
155
179
  "Show working-tree change stats versus HEAD": "Show working-tree change stats versus HEAD",
156
180
  "Could not determine current working directory.": "Could not determine current working directory.",
157
181
  "Failed to compute git diff stats": "Failed to compute git diff stats",
@@ -581,6 +605,7 @@ var en_default = {
581
605
  "After tool execution fails": "After tool execution fails",
582
606
  "When notifications are sent": "When notifications are sent",
583
607
  "When the user submits a prompt": "When the user submits a prompt",
608
+ "When a slash command expands into a prompt": "When a slash command expands into a prompt",
584
609
  "When a new session is started": "When a new session is started",
585
610
  "Right before Qwen Code concludes its response": "Right before Qwen Code concludes its response",
586
611
  "When a subagent (Agent tool call) is started": "When a subagent (Agent tool call) is started",
@@ -596,6 +621,7 @@ var en_default = {
596
621
  "Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.": "Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.",
597
622
  "Input to command is JSON with notification message and type.": "Input to command is JSON with notification message and type.",
598
623
  "Input to command is JSON with original user prompt text.": "Input to command is JSON with original user prompt text.",
624
+ "Input to command is JSON with command_name, command_args, and expanded prompt text.": "Input to command is JSON with command_name, command_args, and expanded prompt text.",
599
625
  "Input to command is JSON with session start source.": "Input to command is JSON with session start source.",
600
626
  "Input to command is JSON with session end reason.": "Input to command is JSON with session end reason.",
601
627
  "Input to command is JSON with agent_id and agent_type.": "Input to command is JSON with agent_id and agent_type.",
@@ -612,6 +638,7 @@ var en_default = {
612
638
  "show stderr to model immediately": "show stderr to model immediately",
613
639
  "show stderr to user only but continue with tool call": "show stderr to user only but continue with tool call",
614
640
  "block processing, erase original prompt, and show stderr to user only": "block processing, erase original prompt, and show stderr to user only",
641
+ "block expanded prompt submission and show stderr to user only": "block expanded prompt submission and show stderr to user only",
615
642
  "stdout shown to Qwen": "stdout shown to Qwen",
616
643
  "show stderr to user only (blocking errors ignored)": "show stderr to user only (blocking errors ignored)",
617
644
  "command completes successfully": "command completes successfully",
@@ -645,6 +672,16 @@ var en_default = {
645
672
  // ============================================================================
646
673
  "Resume a previous session": "Resume a previous session",
647
674
  "Fork the current conversation into a new session": "Fork the current conversation into a new session",
675
+ "Spawn a background agent that inherits the full conversation": "Spawn a background agent that inherits the full conversation",
676
+ "Please provide a directive. Usage: /fork <directive>": "Please provide a directive. Usage: /fork <directive>",
677
+ "Cannot fork while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.": "Cannot fork while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.",
678
+ "Cannot fork before the first conversation turn.": "Cannot fork before the first conversation turn.",
679
+ "The /fork command requires the fork feature gate. Set QWEN_CODE_ENABLE_FORK_SUBAGENT=1 to enable it.": "The /fork command requires the fork feature gate. Set QWEN_CODE_ENABLE_FORK_SUBAGENT=1 to enable it.",
680
+ "The agent tool is unavailable; cannot fork.": "The agent tool is unavailable; cannot fork.",
681
+ "Failed to launch fork: {{error}}": "Failed to launch fork: {{error}}",
682
+ "the background agent could not be started.": "the background agent could not be started.",
683
+ "User launched a background fork via /fork: {{directive}}": "User launched a background fork via /fork: {{directive}}",
684
+ "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.": "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.",
648
685
  "Cannot branch while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.": "Cannot branch while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.",
649
686
  "No conversation to branch.": "No conversation to branch.",
650
687
  "Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested",
@@ -677,10 +714,10 @@ var en_default = {
677
714
  // Commands - Approval Mode
678
715
  // ============================================================================
679
716
  "Tool Approval Mode": "Tool Approval Mode",
680
- "{{mode}} mode": "{{mode}} mode",
681
717
  "Analyze only, do not modify files or execute commands": "Analyze only, do not modify files or execute commands",
682
718
  "Require approval for file edits or shell commands": "Require approval for file edits or shell commands",
683
719
  "Automatically approve file edits": "Automatically approve file edits",
720
+ "Use classifier to automatically approve safe tool calls": "Use classifier to automatically approve safe tool calls",
684
721
  "Automatically approve all tools": "Automatically approve all tools",
685
722
  "Workspace approval mode exists and takes priority. User-level change will have no effect.": "Workspace approval mode exists and takes priority. User-level change will have no effect.",
686
723
  "Apply To": "Apply To",
@@ -1461,6 +1498,12 @@ var en_default = {
1461
1498
  "Open the memory manager.": "Open the memory manager.",
1462
1499
  "Show current process memory diagnostics": "Show current process memory diagnostics",
1463
1500
  "Record a CPU profile for Chrome DevTools analysis": "Record a CPU profile for Chrome DevTools analysis",
1501
+ "Roll back a standalone update to the previous version": "Roll back a standalone update to the previous version",
1502
+ "Rollback is not available in ACP mode.": "Rollback is not available in ACP mode.",
1503
+ "Rollback is only available for standalone installations.": "Rollback is only available for standalone installations.",
1504
+ "Rollback successful. Restart your terminal to use the previous version.": "Rollback successful. Restart your terminal to use the previous version.",
1505
+ "Rollback failed:": "Rollback failed:",
1506
+ "Rollback on Windows requires manual intervention. Rename qwen-code.old to qwen-code in your installation directory.": "Rollback on Windows requires manual intervention. Rename qwen-code.old to qwen-code in your installation directory.",
1464
1507
  "Save a durable memory to the memory system.": "Save a durable memory to the memory system.",
1465
1508
  "Ask a quick side question without affecting the main conversation": "Ask a quick side question without affecting the main conversation",
1466
1509
  "Manage Arena sessions": "Manage Arena sessions",