@qwen-code/qwen-code 0.15.12-preview.2 → 0.16.0-nightly.20260522.48b0a8bfc

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 (97) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +69 -71
  2. package/bundled/qc-helper/docs/features/_meta.ts +2 -0
  3. package/bundled/qc-helper/docs/features/approval-mode.md +119 -2
  4. package/bundled/qc-helper/docs/features/auto-mode.md +263 -0
  5. package/bundled/qc-helper/docs/features/commands.md +11 -10
  6. package/bundled/qc-helper/docs/features/lsp.md +87 -10
  7. package/bundled/qc-helper/docs/features/skills.md +3 -0
  8. package/bundled/qc-helper/docs/features/structured-output.md +309 -0
  9. package/bundled/qc-helper/docs/features/sub-agents.md +47 -5
  10. package/bundled/qc-helper/docs/qwen-serve.md +179 -24
  11. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +11 -11
  12. package/bundled/review/SKILL.md +12 -3
  13. package/bundled/stuck/SKILL.md +124 -0
  14. package/chunks/{agent-UQY6A6OS.js → agent-GRCSD6XI.js} +15 -17
  15. package/chunks/{anthropicContentGenerator-4QE6LTVV.js → anthropicContentGenerator-RQJNXJIY.js} +7 -4
  16. package/chunks/{askUserQuestion-QFSCBTUO.js → askUserQuestion-PQPMPNM3.js} +2 -2
  17. package/chunks/{ca-VQSV6JHA.js → ca-UZ7BANMN.js} +29 -3
  18. package/chunks/{chunk-B7ZL7HUA.js → chunk-4AOCVI6J.js} +2 -1
  19. package/chunks/{chunk-PCL3EJGY.js → chunk-4U3O4VDA.js} +4722 -3823
  20. package/chunks/{chunk-AEJ2DKLP.js → chunk-C6WMLUNB.js} +1 -1
  21. package/chunks/{chunk-FSYKVGER.js → chunk-C7PY32RJ.js} +115 -23
  22. package/chunks/{chunk-JMZQICAL.js → chunk-CAVZVZX6.js} +2 -2
  23. package/chunks/{chunk-CAWKL3UC.js → chunk-CSWBPY3P.js} +2 -2
  24. package/chunks/{chunk-G27O2LD2.js → chunk-D5NTAHYL.js} +1 -1
  25. package/chunks/{chunk-BXNCPI75.js → chunk-DMIMF3CG.js} +2 -2
  26. package/chunks/{chunk-OCC4MZRS.js → chunk-F23NCRJ2.js} +1 -1
  27. package/chunks/{chunk-SOIEFHIK.js → chunk-G7YTSRES.js} +1 -100
  28. package/chunks/{chunk-SQNQIOD5.js → chunk-GGNTZ2NH.js} +92 -21
  29. package/chunks/{chunk-FKVKVE6N.js → chunk-KXZ4TJB4.js} +1 -1
  30. package/chunks/{chunk-CBVB66WY.js → chunk-L5E26RN6.js} +2 -2
  31. package/chunks/{chunk-UXW7MYAW.js → chunk-MAY32HXD.js} +376 -1
  32. package/chunks/{chunk-2WFU3IUH.js → chunk-OZO6R4KI.js} +11796 -4086
  33. package/chunks/{chunk-CM2IESUE.js → chunk-PR4T27R7.js} +1 -1
  34. package/chunks/{chunk-FYMSCRHM.js → chunk-PVVL5Q3W.js} +32 -1
  35. package/chunks/{chunk-MXBWOU2L.js → chunk-TM4RMEYN.js} +17 -349
  36. package/chunks/{chunk-YHEAJFCI.js → chunk-USE2VQ5P.js} +3 -0
  37. package/chunks/chunk-UY2AYRZF.js +19126 -0
  38. package/chunks/{chunk-GJXIKCKL.js → chunk-XP27SJMH.js} +76 -5
  39. package/chunks/chunk-XTYIPAUG.js +379 -0
  40. package/chunks/{chunk-TPGOGCWM.js → chunk-YJLGXDQJ.js} +1 -1
  41. package/chunks/{contextCommand-MQRG6RMG.js → contextCommand-O2OLCMOG.js} +17 -19
  42. package/chunks/{cron-create-WUTD5ZTH.js → cron-create-IGYXQVG4.js} +28 -2
  43. package/chunks/{cron-delete-N3UQYCRA.js → cron-delete-ETKIZCWT.js} +2 -2
  44. package/chunks/{cron-list-Z6RJJ4YH.js → cron-list-BVCUSWRU.js} +2 -2
  45. package/chunks/{de-M2IPQRBS.js → de-V4IE2OOZ.js} +29 -3
  46. package/chunks/{dist-RRYNPBOE.js → dist-4L54HRX2.js} +2 -2
  47. package/chunks/{dist-WP4AH3VK.js → dist-BXDUQ2QY.js} +1 -1
  48. package/chunks/{dist-M6GFCZ7S.js → dist-MN2PDDPR.js} +1 -1
  49. package/chunks/{edit-3KCBTA25.js → edit-NRL5ZYWP.js} +32 -18
  50. package/chunks/{en-N5GMPCVT.js → en-HGJ2SPLM.js} +32 -3
  51. package/chunks/{enter-worktree-VWS5QZTU.js → enter-worktree-TLT6EXVN.js} +41 -17
  52. package/chunks/{exit-worktree-RVXFWAPD.js → exit-worktree-PE7RZMLE.js} +41 -17
  53. package/chunks/{exitPlanMode-UL5DILDG.js → exitPlanMode-JYMKAHYD.js} +15 -17
  54. package/chunks/{fr-BTHRYEXO.js → fr-CJULI7ZX.js} +29 -3
  55. package/chunks/{geminiContentGenerator-O2OPGHJG.js → geminiContentGenerator-GYIOVT4A.js} +3 -3
  56. package/chunks/{glob-57BSREPN.js → glob-T7KIVIWT.js} +15 -17
  57. package/chunks/{grep-XO5JOC7T.js → grep-4KI7ZJR5.js} +15 -17
  58. package/chunks/{ja-D63TAEBO.js → ja-L7CHRQEW.js} +29 -3
  59. package/chunks/{keychain-token-storage-DMFP5IJM.js → keychain-token-storage-335UOLJ6.js} +2 -2
  60. package/chunks/{ls-SUILOZZB.js → ls-7HD6XG3V.js} +3 -3
  61. package/chunks/{lsp-6TQBWVMZ.js → lsp-ZZSFCIWD.js} +2 -2
  62. package/chunks/{monitor-BECPGO3K.js → monitor-L5YPPGVO.js} +45 -26
  63. package/chunks/notebook-edit-HYXLIC3D.js +756 -0
  64. package/chunks/{openaiContentGenerator-KEZQHIRM.js → openaiContentGenerator-XRP5JM6P.js} +12 -11
  65. package/chunks/{pt-XUV7FSKC.js → pt-M6JULLEQ.js} +29 -3
  66. package/chunks/{qwenContentGenerator-RPMRXTNH.js → qwenContentGenerator-EOX3HZXX.js} +17 -19
  67. package/chunks/{qwenOAuth2-JSQ7EPR3.js → qwenOAuth2-EEJGROP7.js} +9 -3
  68. package/chunks/{read-file-LGHEIQNH.js → read-file-3XOYPTIB.js} +7 -8
  69. package/chunks/{ripGrep-6SFSXZ2G.js → ripGrep-5QUURWGU.js} +15 -17
  70. package/chunks/{ru-7KHWMN3A.js → ru-QILM4HBC.js} +29 -3
  71. package/chunks/{send-message-Q2JRAC3J.js → send-message-ULK4MQXJ.js} +23 -2
  72. package/chunks/{serve-27O2AFE3.js → serve-AZ44ZNWF.js} +8864 -1351
  73. package/chunks/{shell-J7K5KYCH.js → shell-O6OTTSIP.js} +15 -17
  74. package/chunks/{skill-2R7P4ATS.js → skill-MUGS3H4M.js} +23 -10
  75. package/chunks/{src-CGEDVW67.js → src-YCQBAYCP.js} +292 -28
  76. package/chunks/{syntheticOutput-S4DRGMQM.js → syntheticOutput-IS2X5OZ2.js} +3 -3
  77. package/chunks/{task-stop-7THHVAQS.js → task-stop-7QSJGSSP.js} +2 -2
  78. package/chunks/{todoWrite-WKUGUTPX.js → todoWrite-7CVACFUX.js} +3 -3
  79. package/chunks/{tool-search-XOH3ZWVS.js → tool-search-UFDQJOXT.js} +7 -8
  80. package/chunks/{web-fetch-OZE6ZQUF.js → web-fetch-ENQ2I5JA.js} +7 -4
  81. package/chunks/{write-file-74NQ27Q2.js → write-file-GBLDDYQT.js} +29 -18
  82. package/chunks/{zh-VGHU6XBB.js → zh-PWL2NKY3.js} +32 -3
  83. package/chunks/{zh-TW-O36Q4V7E.js → zh-TW-S3YGWICZ.js} +32 -3
  84. package/cli.js +61338 -76795
  85. package/locales/ca.js +44 -5
  86. package/locales/de.js +44 -5
  87. package/locales/en.js +49 -5
  88. package/locales/fr.js +45 -5
  89. package/locales/ja.js +43 -5
  90. package/locales/pt.js +43 -5
  91. package/locales/ru.js +43 -5
  92. package/locales/zh-TW.js +46 -4
  93. package/locales/zh.js +46 -4
  94. package/package.json +2 -2
  95. package/chunks/chunk-5P5XGNYH.js +0 -93
  96. package/chunks/chunk-SYCJMSIJ.js +0 -82
  97. package/chunks/chunk-Y6Z2O3WR.js +0 -33
@@ -11,10 +11,10 @@ import {
11
11
  sendMessage,
12
12
  sendTyping,
13
13
  uploadToCdn
14
- } from "./chunk-AEJ2DKLP.js";
14
+ } from "./chunk-C6WMLUNB.js";
15
15
  import {
16
16
  ChannelBase
17
- } from "./chunk-YHEAJFCI.js";
17
+ } from "./chunk-USE2VQ5P.js";
18
18
  import "./chunk-UFC57OYT.js";
19
19
  import "./chunk-K5PGHDBN.js";
20
20
  import {
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-KQIKOTQJ.js";
7
7
  import {
8
8
  ChannelBase
9
- } from "./chunk-YHEAJFCI.js";
9
+ } from "./chunk-USE2VQ5P.js";
10
10
  import "./chunk-UFC57OYT.js";
11
11
  import "./chunk-K5PGHDBN.js";
12
12
  import {
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-7RYW5LQV.js";
9
9
  import {
10
10
  ChannelBase
11
- } from "./chunk-YHEAJFCI.js";
11
+ } from "./chunk-USE2VQ5P.js";
12
12
  import "./chunk-UFC57OYT.js";
13
13
  import "./chunk-K5PGHDBN.js";
14
14
  import {
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  StructuredToolError,
5
5
  checkPriorRead
6
- } from "./chunk-CBVB66WY.js";
6
+ } from "./chunk-L5E26RN6.js";
7
7
  import {
8
8
  CommitAttributionService,
9
9
  DEFAULT_DIFF_OPTIONS,
@@ -13,18 +13,17 @@ import {
13
13
  getDiffStat,
14
14
  needsUtf8Bom,
15
15
  safeLiteralReplace
16
- } from "./chunk-2WFU3IUH.js";
17
- import "./chunk-5P5XGNYH.js";
16
+ } from "./chunk-OZO6R4KI.js";
18
17
  import "./chunk-K5PGHDBN.js";
19
18
  import "./chunk-O4PICXES.js";
20
19
  import "./chunk-TW522KN6.js";
21
20
  import "./chunk-MLZQVCF3.js";
22
- import "./chunk-JMZQICAL.js";
23
- import "./chunk-SOIEFHIK.js";
24
- import "./chunk-B7ZL7HUA.js";
21
+ import "./chunk-CAVZVZX6.js";
22
+ import "./chunk-G7YTSRES.js";
23
+ import "./chunk-4AOCVI6J.js";
25
24
  import "./chunk-77WXWU44.js";
26
- import "./chunk-OCC4MZRS.js";
27
- import "./chunk-CAWKL3UC.js";
25
+ import "./chunk-F23NCRJ2.js";
26
+ import "./chunk-CSWBPY3P.js";
28
27
  import {
29
28
  FileOperationEvent,
30
29
  ReadFileTool,
@@ -32,32 +31,31 @@ import {
32
31
  getLanguageFromFilePath,
33
32
  getSpecificMimeType,
34
33
  logFileOperation
35
- } from "./chunk-PCL3EJGY.js";
36
- import "./chunk-SYCJMSIJ.js";
34
+ } from "./chunk-4U3O4VDA.js";
37
35
  import "./chunk-UWCTAVOD.js";
38
36
  import "./chunk-OFEVLU4C.js";
39
37
  import {
40
38
  isAutoMemPath
41
- } from "./chunk-CM2IESUE.js";
42
- import "./chunk-UXW7MYAW.js";
43
- import "./chunk-G27O2LD2.js";
39
+ } from "./chunk-PR4T27R7.js";
40
+ import "./chunk-MAY32HXD.js";
41
+ import "./chunk-D5NTAHYL.js";
44
42
  import "./chunk-T4VD6OJ4.js";
45
43
  import "./chunk-RDYWTWEM.js";
46
- import "./chunk-TPGOGCWM.js";
44
+ import "./chunk-YJLGXDQJ.js";
47
45
  import {
48
46
  BaseDeclarativeTool,
49
47
  ToolDisplayNames,
50
48
  ToolNames
51
- } from "./chunk-FYMSCRHM.js";
52
- import "./chunk-SQNQIOD5.js";
53
- import "./chunk-FKVKVE6N.js";
49
+ } from "./chunk-PVVL5Q3W.js";
50
+ import "./chunk-GGNTZ2NH.js";
51
+ import "./chunk-KXZ4TJB4.js";
54
52
  import {
55
53
  createDebugLogger,
56
54
  isNodeError,
57
55
  makeRelative,
58
56
  shortenPath,
59
57
  unescapePath
60
- } from "./chunk-GJXIKCKL.js";
58
+ } from "./chunk-XP27SJMH.js";
61
59
  import "./chunk-E7E2MFYM.js";
62
60
  import "./chunk-ZERZSAZL.js";
63
61
  import "./chunk-QN5NZ3UQ.js";
@@ -666,6 +664,10 @@ var EditToolInvocation = class {
666
664
  };
667
665
  }
668
666
  try {
667
+ try {
668
+ await this.config.getFileHistoryService().trackEdit(this.params.file_path);
669
+ } catch {
670
+ }
669
671
  if (!this.config.getFileReadCacheDisabled()) {
670
672
  const writeDecision = await checkPriorRead(
671
673
  this.config.getFileReadCache(),
@@ -880,6 +882,18 @@ Expectation for required parameters:
880
882
  createInvocation(params) {
881
883
  return new EditToolInvocation(this.config, params);
882
884
  }
885
+ toAutoClassifierInput(params) {
886
+ const oldStr = params.old_string ?? "";
887
+ const newStr = params.new_string ?? "";
888
+ return {
889
+ file_path: params.file_path,
890
+ old_string_preview: oldStr.slice(0, 300),
891
+ new_string_preview: newStr.slice(0, 300),
892
+ old_string_truncated: oldStr.length > 300,
893
+ new_string_truncated: newStr.length > 300,
894
+ lines_changed: (newStr.match(/\n/g)?.length ?? 0) - (oldStr.match(/\n/g)?.length ?? 0)
895
+ };
896
+ }
883
897
  getModifyContext(_) {
884
898
  return {
885
899
  getFilePath: /* @__PURE__ */ __name((params) => params.file_path, "getFilePath"),
@@ -74,6 +74,7 @@ var en_default = {
74
74
  "docs/keyboard-shortcuts.md": "docs/keyboard-shortcuts.md",
75
75
  "for help on Qwen Code": "for help on Qwen Code",
76
76
  "show version info": "show version info",
77
+ "show paths for current session files and logs": "show paths for current session files and logs",
77
78
  "submit a bug report": "submit a bug report",
78
79
  Status: "Status",
79
80
  // ============================================================================
@@ -110,6 +111,32 @@ var en_default = {
110
111
  "Generate a one-line session recap now": "Generate a one-line session recap now",
111
112
  "Rename the current conversation. --auto lets the fast model pick a title.": "Rename the current conversation. --auto lets the fast model pick a title.",
112
113
  "Rewind conversation to a previous turn": "Rewind conversation to a previous turn",
114
+ "Rewind Conversation": "Rewind Conversation",
115
+ "No user turns to rewind to.": "No user turns to rewind to.",
116
+ "Rewind to: ": "Rewind to: ",
117
+ "Restore code and conversation": "Restore code and conversation",
118
+ "Restore conversation only": "Restore conversation only",
119
+ "Restore code only": "Restore code only",
120
+ "Never mind": "Never mind",
121
+ "Computing file changes...": "Computing file changes...",
122
+ "Restoring...": "Restoring...",
123
+ "Restored {{count}} file(s).": "Restored {{count}} file(s).",
124
+ "Failed to restore files: {{error}}": "Failed to restore files: {{error}}",
125
+ "Rewind failed: {{error}}": "Rewind failed: {{error}}",
126
+ "Cannot rewind conversation: no active model client.": "Cannot rewind conversation: no active model client.",
127
+ "Code restored, but conversation could not be rewound (no active client).": "Code restored, but conversation could not be rewound (no active client).",
128
+ "Conversation rewound. Edit your prompt and press Enter to continue.": "Conversation rewound. Edit your prompt and press Enter to continue.",
129
+ "Rewinding does not affect files edited manually or via shell commands.": "Rewinding does not affect files edited manually or via shell commands.",
130
+ "Cannot rewind to a turn that was compressed. Try a more recent turn.": "Cannot rewind to a turn that was compressed. Try a more recent turn.",
131
+ "File restore is unavailable for this turn (no captured file changes, or this turn predates the current session).": "File restore is unavailable for this turn (no captured file changes, or this turn predates the current session).",
132
+ "(+{{insertions}} -{{deletions}} in {{count}} file)": "(+{{insertions}} -{{deletions}} in {{count}} file)",
133
+ "(+{{insertions}} -{{deletions}} in {{count}} files)": "(+{{insertions}} -{{deletions}} in {{count}} files)",
134
+ "Failed to restore {{count}} file(s): {{files}}": "Failed to restore {{count}} file(s): {{files}}",
135
+ "Cannot restore files: this turn was created before file checkpointing was enabled.": "Cannot restore files: this turn was created before file checkpointing was enabled.",
136
+ "No files needed to be restored.": "No files needed to be restored.",
137
+ "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to go back": "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to go back",
138
+ "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to cancel": "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to cancel",
139
+ "Enter/Y to confirm \xB7 Esc/N to go back": "Enter/Y to confirm \xB7 Esc/N to go back",
113
140
  "change the theme": "change the theme",
114
141
  "Select Theme": "Select Theme",
115
142
  Preview: "Preview",
@@ -122,7 +149,7 @@ var en_default = {
122
149
  "Compresses the context by replacing it with a summary.": "Compresses the context by replacing it with a summary.",
123
150
  "open full Qwen Code documentation in your browser": "open full Qwen Code documentation in your browser",
124
151
  "Configuration not available.": "Configuration not available.",
125
- "Configure authentication information for login": "Configure authentication information for login",
152
+ "Connect an LLM provider": "Connect an LLM provider",
126
153
  "Copy the last result or code snippet to clipboard": "Copy the last result or code snippet to clipboard",
127
154
  "Show working-tree change stats versus HEAD": "Show working-tree change stats versus HEAD",
128
155
  "Could not determine current working directory.": "Could not determine current working directory.",
@@ -850,8 +877,8 @@ var en_default = {
850
877
  "Continue previous conversation": "Continue previous conversation",
851
878
  "\u{1F44B} Welcome back! (Last updated: {{timeAgo}})": "\u{1F44B} Welcome back! (Last updated: {{timeAgo}})",
852
879
  "\u{1F3AF} Overall Goal:": "\u{1F3AF} Overall Goal:",
853
- "Select Authentication Method": "Select Authentication Method",
854
- "You must select an auth method to proceed. Press Ctrl+C again to exit.": "You must select an auth method to proceed. Press Ctrl+C again to exit.",
880
+ "Connect a Provider": "Connect a Provider",
881
+ "You must connect a provider to proceed. Press Ctrl+C again to exit.": "You must connect a provider to proceed. Press Ctrl+C again to exit.",
855
882
  "Terms of Services and Privacy Notice": "Terms of Services and Privacy Notice",
856
883
  "Qwen OAuth": "Qwen OAuth",
857
884
  "Discontinued \u2014 switch to Coding Plan or API Key": "Discontinued \u2014 switch to Coding Plan or API Key",
@@ -1422,6 +1449,7 @@ var en_default = {
1422
1449
  "Hide tool output and thinking for a cleaner view (toggle with Ctrl+O).": "Hide tool output and thinking for a cleaner view (toggle with Ctrl+O).",
1423
1450
  "Press Ctrl+O to show full tool output": "Press Ctrl+O to show full tool output",
1424
1451
  "Switch to plan mode or exit plan mode": "Switch to plan mode or exit plan mode",
1452
+ "Set a goal \u2014 keep working until the condition is met": "Set a goal \u2014 keep working until the condition is met",
1425
1453
  "Exited plan mode. Previous approval mode restored.": "Exited plan mode. Previous approval mode restored.",
1426
1454
  "Enabled plan mode. The agent will analyze and plan without executing tools.": "Enabled plan mode. The agent will analyze and plan without executing tools.",
1427
1455
  'Already in plan mode. Use "/plan exit" to exit plan mode.': 'Already in plan mode. Use "/plan exit" to exit plan mode.',
@@ -1429,6 +1457,7 @@ var en_default = {
1429
1457
  "Set up Qwen Code's status line UI": "Set up Qwen Code's status line UI",
1430
1458
  // === Core: added from PR #3328 ===
1431
1459
  "Open the memory manager.": "Open the memory manager.",
1460
+ "Show current process memory diagnostics": "Show current process memory diagnostics",
1432
1461
  "Save a durable memory to the memory system.": "Save a durable memory to the memory system.",
1433
1462
  "Ask a quick side question without affecting the main conversation": "Ask a quick side question without affecting the main conversation",
1434
1463
  "Manage Arena sessions": "Manage Arena sessions",
@@ -2,40 +2,39 @@
2
2
  "use strict";
3
3
  import {
4
4
  GitWorktreeService,
5
+ writeWorktreeSession,
5
6
  writeWorktreeSessionMarker
6
- } from "./chunk-2WFU3IUH.js";
7
- import "./chunk-5P5XGNYH.js";
7
+ } from "./chunk-OZO6R4KI.js";
8
8
  import "./chunk-K5PGHDBN.js";
9
9
  import "./chunk-O4PICXES.js";
10
10
  import "./chunk-TW522KN6.js";
11
11
  import "./chunk-MLZQVCF3.js";
12
- import "./chunk-JMZQICAL.js";
13
- import "./chunk-SOIEFHIK.js";
14
- import "./chunk-B7ZL7HUA.js";
12
+ import "./chunk-CAVZVZX6.js";
13
+ import "./chunk-G7YTSRES.js";
14
+ import "./chunk-4AOCVI6J.js";
15
15
  import "./chunk-77WXWU44.js";
16
- import "./chunk-OCC4MZRS.js";
17
- import "./chunk-CAWKL3UC.js";
18
- import "./chunk-PCL3EJGY.js";
19
- import "./chunk-SYCJMSIJ.js";
16
+ import "./chunk-F23NCRJ2.js";
17
+ import "./chunk-CSWBPY3P.js";
18
+ import "./chunk-4U3O4VDA.js";
20
19
  import "./chunk-UWCTAVOD.js";
21
20
  import "./chunk-OFEVLU4C.js";
22
- import "./chunk-CM2IESUE.js";
23
- import "./chunk-UXW7MYAW.js";
24
- import "./chunk-G27O2LD2.js";
21
+ import "./chunk-PR4T27R7.js";
22
+ import "./chunk-MAY32HXD.js";
23
+ import "./chunk-D5NTAHYL.js";
25
24
  import "./chunk-T4VD6OJ4.js";
26
25
  import "./chunk-RDYWTWEM.js";
27
- import "./chunk-TPGOGCWM.js";
26
+ import "./chunk-YJLGXDQJ.js";
28
27
  import {
29
28
  BaseDeclarativeTool,
30
29
  BaseToolInvocation,
31
30
  ToolDisplayNames,
32
31
  ToolNames
33
- } from "./chunk-FYMSCRHM.js";
34
- import "./chunk-SQNQIOD5.js";
35
- import "./chunk-FKVKVE6N.js";
32
+ } from "./chunk-PVVL5Q3W.js";
33
+ import "./chunk-GGNTZ2NH.js";
34
+ import "./chunk-KXZ4TJB4.js";
36
35
  import {
37
36
  createDebugLogger
38
- } from "./chunk-GJXIKCKL.js";
37
+ } from "./chunk-XP27SJMH.js";
39
38
  import "./chunk-E7E2MFYM.js";
40
39
  import "./chunk-ZERZSAZL.js";
41
40
  import "./chunk-QN5NZ3UQ.js";
@@ -116,6 +115,14 @@ var EnterWorktreeInvocation = class extends BaseToolInvocation {
116
115
  `enter_worktree: getCurrentBranch failed at ${projectRoot}: ${error}`
117
116
  );
118
117
  }
118
+ let originalHeadCommit = "";
119
+ try {
120
+ originalHeadCommit = await service.getCurrentCommitHash();
121
+ } catch (error) {
122
+ debugLogger.warn(
123
+ `enter_worktree: getCurrentCommitHash failed at ${projectRoot}: ${error}`
124
+ );
125
+ }
119
126
  const result = await service.createUserWorktree(slug, baseBranch);
120
127
  if (!result.success || !result.worktree) {
121
128
  const reason = result.error ?? "Failed to create worktree.";
@@ -132,6 +139,23 @@ var EnterWorktreeInvocation = class extends BaseToolInvocation {
132
139
  `enter_worktree: failed to write session marker at ${result.worktree.path}: ${error}`
133
140
  );
134
141
  }
142
+ try {
143
+ await writeWorktreeSession(
144
+ this.config.getSessionService().getWorktreeSessionPath(this.config.getSessionId()),
145
+ {
146
+ slug,
147
+ worktreePath: result.worktree.path,
148
+ worktreeBranch: result.worktree.branch,
149
+ originalCwd: projectRoot,
150
+ originalBranch: baseBranch ?? "HEAD",
151
+ originalHeadCommit
152
+ }
153
+ );
154
+ } catch (error) {
155
+ debugLogger.warn(
156
+ `enter_worktree: failed to write WorktreeSession sidecar: ${error}`
157
+ );
158
+ }
135
159
  const output = {
136
160
  worktreePath: result.worktree.path,
137
161
  worktreeBranch: result.worktree.branch,
@@ -2,42 +2,42 @@
2
2
  "use strict";
3
3
  import {
4
4
  GitWorktreeService,
5
+ clearWorktreeSession,
6
+ readWorktreeSession,
5
7
  readWorktreeSessionMarker,
6
8
  worktreeBranchForSlug
7
- } from "./chunk-2WFU3IUH.js";
8
- import "./chunk-5P5XGNYH.js";
9
+ } from "./chunk-OZO6R4KI.js";
9
10
  import "./chunk-K5PGHDBN.js";
10
11
  import "./chunk-O4PICXES.js";
11
12
  import "./chunk-TW522KN6.js";
12
13
  import "./chunk-MLZQVCF3.js";
13
- import "./chunk-JMZQICAL.js";
14
- import "./chunk-SOIEFHIK.js";
15
- import "./chunk-B7ZL7HUA.js";
14
+ import "./chunk-CAVZVZX6.js";
15
+ import "./chunk-G7YTSRES.js";
16
+ import "./chunk-4AOCVI6J.js";
16
17
  import "./chunk-77WXWU44.js";
17
- import "./chunk-OCC4MZRS.js";
18
- import "./chunk-CAWKL3UC.js";
19
- import "./chunk-PCL3EJGY.js";
20
- import "./chunk-SYCJMSIJ.js";
18
+ import "./chunk-F23NCRJ2.js";
19
+ import "./chunk-CSWBPY3P.js";
20
+ import "./chunk-4U3O4VDA.js";
21
21
  import "./chunk-UWCTAVOD.js";
22
22
  import "./chunk-OFEVLU4C.js";
23
- import "./chunk-CM2IESUE.js";
24
- import "./chunk-UXW7MYAW.js";
25
- import "./chunk-G27O2LD2.js";
23
+ import "./chunk-PR4T27R7.js";
24
+ import "./chunk-MAY32HXD.js";
25
+ import "./chunk-D5NTAHYL.js";
26
26
  import "./chunk-T4VD6OJ4.js";
27
27
  import "./chunk-RDYWTWEM.js";
28
- import "./chunk-TPGOGCWM.js";
28
+ import "./chunk-YJLGXDQJ.js";
29
29
  import {
30
30
  BaseDeclarativeTool,
31
31
  BaseToolInvocation,
32
32
  ToolDisplayNames,
33
33
  ToolNames
34
- } from "./chunk-FYMSCRHM.js";
35
- import "./chunk-SQNQIOD5.js";
36
- import "./chunk-FKVKVE6N.js";
34
+ } from "./chunk-PVVL5Q3W.js";
35
+ import "./chunk-GGNTZ2NH.js";
36
+ import "./chunk-KXZ4TJB4.js";
37
37
  import {
38
38
  createDebugLogger,
39
39
  isNodeError
40
- } from "./chunk-GJXIKCKL.js";
40
+ } from "./chunk-XP27SJMH.js";
41
41
  import "./chunk-E7E2MFYM.js";
42
42
  import "./chunk-ZERZSAZL.js";
43
43
  import "./chunk-QN5NZ3UQ.js";
@@ -206,6 +206,7 @@ var ExitWorktreeInvocation = class extends BaseToolInvocation {
206
206
  return errorResult(result.error ?? "Failed to remove worktree.");
207
207
  }
208
208
  if (result.branchPreserved) {
209
+ await this.maybeClearWorktreeSession();
209
210
  const output2 = {
210
211
  action: "remove",
211
212
  worktreePath,
@@ -220,6 +221,7 @@ var ExitWorktreeInvocation = class extends BaseToolInvocation {
220
221
  debugLogger.debug(
221
222
  `Removed user worktree: ${worktreePath} (branch=${branch})`
222
223
  );
224
+ await this.maybeClearWorktreeSession();
223
225
  const output = {
224
226
  action: "remove",
225
227
  worktreePath,
@@ -231,6 +233,28 @@ var ExitWorktreeInvocation = class extends BaseToolInvocation {
231
233
  returnDisplay: `Removed worktree **${this.params.name}** (branch \`${branch}\`)`
232
234
  };
233
235
  }
236
+ /**
237
+ * Clears the WorktreeSession sidecar file iff its `slug` matches the
238
+ * worktree being exited. We skip the clear when the sidecar names a
239
+ * different slug because the user might have multiple worktrees on
240
+ * disk while the sidecar tracks only one — wiping it on every exit
241
+ * would orphan the currently-tracked worktree from the CLI's view.
242
+ *
243
+ * Best-effort: failures are logged, never raised.
244
+ */
245
+ async maybeClearWorktreeSession() {
246
+ try {
247
+ const sessionPath = this.config.getSessionService().getWorktreeSessionPath(this.config.getSessionId());
248
+ const existing = await readWorktreeSession(sessionPath);
249
+ if (existing && existing.slug === this.params.name) {
250
+ await clearWorktreeSession(sessionPath);
251
+ }
252
+ } catch (error) {
253
+ debugLogger.warn(
254
+ `exit_worktree: failed to clear WorktreeSession sidecar: ${error}`
255
+ );
256
+ }
257
+ }
234
258
  };
235
259
  function errorResult(message) {
236
260
  return {
@@ -1,38 +1,36 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import "./chunk-2WFU3IUH.js";
4
- import "./chunk-5P5XGNYH.js";
3
+ import "./chunk-OZO6R4KI.js";
5
4
  import "./chunk-K5PGHDBN.js";
6
5
  import "./chunk-O4PICXES.js";
7
6
  import "./chunk-TW522KN6.js";
8
7
  import "./chunk-MLZQVCF3.js";
9
- import "./chunk-JMZQICAL.js";
10
- import "./chunk-SOIEFHIK.js";
11
- import "./chunk-B7ZL7HUA.js";
8
+ import "./chunk-CAVZVZX6.js";
9
+ import "./chunk-G7YTSRES.js";
10
+ import "./chunk-4AOCVI6J.js";
12
11
  import "./chunk-77WXWU44.js";
13
- import "./chunk-OCC4MZRS.js";
14
- import "./chunk-CAWKL3UC.js";
15
- import "./chunk-PCL3EJGY.js";
16
- import "./chunk-SYCJMSIJ.js";
12
+ import "./chunk-F23NCRJ2.js";
13
+ import "./chunk-CSWBPY3P.js";
14
+ import "./chunk-4U3O4VDA.js";
17
15
  import "./chunk-UWCTAVOD.js";
18
16
  import "./chunk-OFEVLU4C.js";
19
- import "./chunk-CM2IESUE.js";
20
- import "./chunk-UXW7MYAW.js";
21
- import "./chunk-G27O2LD2.js";
17
+ import "./chunk-PR4T27R7.js";
18
+ import "./chunk-MAY32HXD.js";
19
+ import "./chunk-D5NTAHYL.js";
22
20
  import "./chunk-T4VD6OJ4.js";
23
21
  import "./chunk-RDYWTWEM.js";
24
- import "./chunk-TPGOGCWM.js";
22
+ import "./chunk-YJLGXDQJ.js";
25
23
  import {
26
24
  BaseDeclarativeTool,
27
25
  BaseToolInvocation,
28
26
  ToolDisplayNames,
29
27
  ToolNames
30
- } from "./chunk-FYMSCRHM.js";
31
- import "./chunk-SQNQIOD5.js";
32
- import "./chunk-FKVKVE6N.js";
28
+ } from "./chunk-PVVL5Q3W.js";
29
+ import "./chunk-GGNTZ2NH.js";
30
+ import "./chunk-KXZ4TJB4.js";
33
31
  import {
34
32
  createDebugLogger
35
- } from "./chunk-GJXIKCKL.js";
33
+ } from "./chunk-XP27SJMH.js";
36
34
  import "./chunk-E7E2MFYM.js";
37
35
  import "./chunk-ZERZSAZL.js";
38
36
  import "./chunk-QN5NZ3UQ.js";
@@ -106,6 +106,32 @@ var fr_default = {
106
106
  "Generate a one-line session recap now": "G\xE9n\xE9rer maintenant un r\xE9capitulatif de session en une ligne",
107
107
  "Rename the current conversation. --auto lets the fast model pick a title.": "Renommer la conversation en cours. --auto laisse le mod\xE8le rapide choisir un titre.",
108
108
  "Rewind conversation to a previous turn": "Revenir \xE0 un tour pr\xE9c\xE9dent de la conversation",
109
+ "Rewind Conversation": "Rembobiner la conversation",
110
+ "No user turns to rewind to.": "Aucun tour utilisateur vers lequel rembobiner.",
111
+ "Rewind to: ": "Rembobiner vers : ",
112
+ "Restore code and conversation": "Restaurer le code et la conversation",
113
+ "Restore conversation only": "Restaurer la conversation uniquement",
114
+ "Restore code only": "Restaurer le code uniquement",
115
+ "Never mind": "Annuler",
116
+ "Computing file changes...": "Calcul des modifications de fichiers...",
117
+ "Restoring...": "Restauration en cours...",
118
+ "Restored {{count}} file(s).": "{{count}} fichier(s) restaur\xE9(s).",
119
+ "Failed to restore files: {{error}}": "\xC9chec de la restauration des fichiers : {{error}}",
120
+ "Rewind failed: {{error}}": "\xC9chec du retour en arri\xE8re : {{error}}",
121
+ "Cannot rewind conversation: no active model client.": "Impossible de revenir en arri\xE8re sur la conversation : aucun client de mod\xE8le actif.",
122
+ "Code restored, but conversation could not be rewound (no active client).": "Code restaur\xE9, mais la conversation n\u2019a pas pu \xEAtre ramen\xE9e en arri\xE8re (aucun client actif).",
123
+ "Conversation rewound. Edit your prompt and press Enter to continue.": "Conversation ramen\xE9e en arri\xE8re. Modifiez votre invite et appuyez sur Entr\xE9e pour continuer.",
124
+ "Rewinding does not affect files edited manually or via shell commands.": "Le retour en arri\xE8re n\u2019affecte pas les fichiers \xE9dit\xE9s manuellement ou via des commandes shell.",
125
+ "Cannot rewind to a turn that was compressed. Try a more recent turn.": "Impossible de revenir \xE0 un tour qui a \xE9t\xE9 compress\xE9. Essayez un tour plus r\xE9cent.",
126
+ "File restore is unavailable for this turn (no captured file changes, or this turn predates the current session).": "La restauration des fichiers est indisponible pour ce tour (aucune modification captur\xE9e, ou ce tour est ant\xE9rieur \xE0 la session actuelle).",
127
+ "(+{{insertions}} -{{deletions}} in {{count}} file)": "(+{{insertions}} -{{deletions}} dans {{count}} fichier)",
128
+ "(+{{insertions}} -{{deletions}} in {{count}} files)": "(+{{insertions}} -{{deletions}} dans {{count}} fichiers)",
129
+ "Failed to restore {{count}} file(s): {{files}}": "\xC9chec de la restauration de {{count}} fichier(s) : {{files}}",
130
+ "Cannot restore files: this turn was created before file checkpointing was enabled.": "Impossible de restaurer les fichiers : ce tour a \xE9t\xE9 cr\xE9\xE9 avant l'activation des points de contr\xF4le de fichiers.",
131
+ "No files needed to be restored.": "Aucun fichier n'a eu besoin d'\xEAtre restaur\xE9.",
132
+ "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to go back": "\u2191\u2193 naviguer \xB7 Enter s\xE9lectionner \xB7 Esc retour",
133
+ "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to cancel": "\u2191\u2193 naviguer \xB7 Enter s\xE9lectionner \xB7 Esc annuler",
134
+ "Enter/Y to confirm \xB7 Esc/N to go back": "Enter/Y confirmer \xB7 Esc/N retour",
109
135
  "change the theme": "changer le th\xE8me",
110
136
  "Select Theme": "S\xE9lectionner un th\xE8me",
111
137
  Preview: "Aper\xE7u",
@@ -118,7 +144,7 @@ var fr_default = {
118
144
  "Compresses the context by replacing it with a summary.": "Compresse le contexte en le rempla\xE7ant par un r\xE9sum\xE9.",
119
145
  "open full Qwen Code documentation in your browser": "ouvrir la documentation compl\xE8te de Qwen Code dans votre navigateur",
120
146
  "Configuration not available.": "Configuration non disponible.",
121
- "Configure authentication information for login": "Configurer les informations d'authentification pour la connexion",
147
+ "Connect an LLM provider": "Se connecter \xE0 un fournisseur LLM",
122
148
  "Copy the last result or code snippet to clipboard": "Copier le dernier r\xE9sultat ou extrait de code dans le presse-papiers",
123
149
  // ============================================================================
124
150
  // Commandes - Agents
@@ -792,8 +818,8 @@ var fr_default = {
792
818
  "Continue previous conversation": "Continuer la conversation pr\xE9c\xE9dente",
793
819
  "\u{1F44B} Welcome back! (Last updated: {{timeAgo}})": "\u{1F44B} Bon retour ! (Derni\xE8re mise \xE0 jour : {{timeAgo}})",
794
820
  "\u{1F3AF} Overall Goal:": "\u{1F3AF} Objectif global :",
795
- "Select Authentication Method": "S\xE9lectionner la m\xE9thode d'authentification",
796
- "You must select an auth method to proceed. Press Ctrl+C again to exit.": "Vous devez s\xE9lectionner une m\xE9thode d'authentification pour continuer. Appuyez \xE0 nouveau sur Ctrl+C pour quitter.",
821
+ "Connect a Provider": "Connecter un fournisseur",
822
+ "You must connect a provider to proceed. Press Ctrl+C again to exit.": "Vous devez connecter un fournisseur pour continuer. Appuyez \xE0 nouveau sur Ctrl+C pour quitter.",
797
823
  "Terms of Services and Privacy Notice": "Conditions d'utilisation et avis de confidentialit\xE9",
798
824
  "Qwen OAuth": "Qwen OAuth",
799
825
  "Discontinued \u2014 switch to Coding Plan or API Key": "Abandonn\xE9 \u2014 passez \xE0 Coding Plan ou API Key",
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  InstallationManager
5
- } from "./chunk-G27O2LD2.js";
5
+ } from "./chunk-D5NTAHYL.js";
6
6
  import {
7
7
  GoogleGenAI
8
8
  } from "./chunk-T4VD6OJ4.js";
9
9
  import "./chunk-RDYWTWEM.js";
10
- import "./chunk-GJXIKCKL.js";
10
+ import "./chunk-XP27SJMH.js";
11
11
  import "./chunk-QWSRH265.js";
12
12
  import {
13
13
  init_esbuild_shims
@@ -210,7 +210,7 @@ var GeminiContentGenerator = class {
210
210
 
211
211
  // packages/core/src/core/geminiContentGenerator/index.ts
212
212
  function createGeminiContentGenerator(config, gcConfig) {
213
- const version = "0.15.12-preview.2";
213
+ const version = "0.16.0-nightly.20260522.48b0a8bfc";
214
214
  const userAgent = config.userAgent || `QwenCode/${version} (${process.platform}; ${process.arch})`;
215
215
  const baseHeaders = {
216
216
  "User-Agent": userAgent
@@ -3,47 +3,45 @@
3
3
  import {
4
4
  escape,
5
5
  glob
6
- } from "./chunk-2WFU3IUH.js";
7
- import "./chunk-5P5XGNYH.js";
6
+ } from "./chunk-OZO6R4KI.js";
8
7
  import "./chunk-K5PGHDBN.js";
9
8
  import "./chunk-O4PICXES.js";
10
9
  import "./chunk-TW522KN6.js";
11
10
  import "./chunk-MLZQVCF3.js";
12
- import "./chunk-JMZQICAL.js";
13
- import "./chunk-SOIEFHIK.js";
14
- import "./chunk-B7ZL7HUA.js";
11
+ import "./chunk-CAVZVZX6.js";
12
+ import "./chunk-G7YTSRES.js";
13
+ import "./chunk-4AOCVI6J.js";
15
14
  import {
16
15
  DEFAULT_FILE_FILTERING_OPTIONS
17
16
  } from "./chunk-77WXWU44.js";
18
- import "./chunk-OCC4MZRS.js";
19
- import "./chunk-CAWKL3UC.js";
20
- import "./chunk-PCL3EJGY.js";
21
- import "./chunk-SYCJMSIJ.js";
17
+ import "./chunk-F23NCRJ2.js";
18
+ import "./chunk-CSWBPY3P.js";
19
+ import "./chunk-4U3O4VDA.js";
22
20
  import "./chunk-UWCTAVOD.js";
23
21
  import "./chunk-OFEVLU4C.js";
24
22
  import {
25
23
  getMemoryBaseDir
26
- } from "./chunk-CM2IESUE.js";
27
- import "./chunk-UXW7MYAW.js";
28
- import "./chunk-G27O2LD2.js";
24
+ } from "./chunk-PR4T27R7.js";
25
+ import "./chunk-MAY32HXD.js";
26
+ import "./chunk-D5NTAHYL.js";
29
27
  import "./chunk-T4VD6OJ4.js";
30
28
  import "./chunk-RDYWTWEM.js";
31
- import "./chunk-TPGOGCWM.js";
29
+ import "./chunk-YJLGXDQJ.js";
32
30
  import {
33
31
  BaseDeclarativeTool,
34
32
  BaseToolInvocation,
35
33
  ToolDisplayNames,
36
34
  ToolNames
37
- } from "./chunk-FYMSCRHM.js";
38
- import "./chunk-SQNQIOD5.js";
39
- import "./chunk-FKVKVE6N.js";
35
+ } from "./chunk-PVVL5Q3W.js";
36
+ import "./chunk-GGNTZ2NH.js";
37
+ import "./chunk-KXZ4TJB4.js";
40
38
  import {
41
39
  createDebugLogger,
42
40
  getErrorMessage,
43
41
  isSubpath,
44
42
  resolveAndValidatePath,
45
43
  unescapePath
46
- } from "./chunk-GJXIKCKL.js";
44
+ } from "./chunk-XP27SJMH.js";
47
45
  import "./chunk-E7E2MFYM.js";
48
46
  import "./chunk-ZERZSAZL.js";
49
47
  import "./chunk-QN5NZ3UQ.js";