@qwen-code/qwen-code 0.17.0 → 0.17.1-nightly.20260604.16dd99fa3

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 (91) hide show
  1. package/bundled/qc-helper/docs/configuration/_meta.ts +0 -3
  2. package/bundled/qc-helper/docs/configuration/settings.md +13 -12
  3. package/bundled/qc-helper/docs/configuration/themes.md +39 -0
  4. package/bundled/qc-helper/docs/features/approval-mode.md +26 -22
  5. package/bundled/qc-helper/docs/features/commands.md +68 -12
  6. package/bundled/qc-helper/docs/features/status-line.md +168 -32
  7. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +16 -0
  8. package/bundled/simplify/SKILL.md +123 -0
  9. package/chunks/{agent-KVXFGIOU.js → agent-GNHB6UIW.js} +14 -13
  10. package/chunks/{anthropicContentGenerator-L4HWAOIV.js → anthropicContentGenerator-M45RXZVS.js} +48 -5
  11. package/chunks/{askUserQuestion-DC6OWQIL.js → askUserQuestion-TGRD7FNQ.js} +1 -1
  12. package/chunks/{ca-NMZFEGAU.js → ca-6RSCDYUS.js} +2 -1
  13. package/chunks/{chunk-J5VCSWPA.js → chunk-3PJXIDKI.js} +1153 -103
  14. package/chunks/{chunk-EMVEDSVZ.js → chunk-6O244QKR.js} +43 -3
  15. package/chunks/chunk-7TQVELRB.js +10412 -0
  16. package/chunks/{chunk-HCSJIOLR.js → chunk-BNESGOSJ.js} +7450 -3516
  17. package/chunks/{chunk-7YJIR2FX.js → chunk-G4K6P5KN.js} +8 -15
  18. package/chunks/chunk-HX3JRTWL.js +393 -0
  19. package/chunks/{chunk-V7LMZR76.js → chunk-JBSYXHJF.js} +1 -1
  20. package/chunks/{chunk-R2B65CAN.js → chunk-JKUAX6UT.js} +0 -1
  21. package/chunks/{chunk-7EHPK6TK.js → chunk-JR346RJ5.js} +4007 -2390
  22. package/chunks/{chunk-JI7FDD65.js → chunk-K3VUDSWM.js} +9 -6
  23. package/chunks/chunk-MRO43B25.js +30 -0
  24. package/chunks/{chunk-4O2TWJK4.js → chunk-NDZEP7SA.js} +183 -40
  25. package/chunks/{chunk-7NNBQRV7.js → chunk-NJY4F5NM.js} +4 -4
  26. package/chunks/{chunk-ODPVJ6JJ.js → chunk-OJFMTECH.js} +6 -1
  27. package/chunks/{chunk-U2K6HDUJ.js → chunk-QVJ33ZBG.js} +23 -13
  28. package/chunks/{chunk-HAQCNXSG.js → chunk-RQW7WUJR.js} +15 -0
  29. package/chunks/{chunk-UQRYJQBE.js → chunk-SOGUPKP6.js} +1 -1
  30. package/chunks/{chunk-6NUSWV4M.js → chunk-TDZCEIK6.js} +2 -0
  31. package/chunks/{chunk-QEXSIXLX.js → chunk-XK4IGU5E.js} +10 -10
  32. package/chunks/{chunk-MEN6IEKX.js → chunk-YVGIQ2CS.js} +456 -1225
  33. package/chunks/{computer-use-2J5ZXEER.js → computer-use-NAHQPV2L.js} +24 -6
  34. package/chunks/{contextCommand-52NTEMCT.js → contextCommand-VKNIA257.js} +16 -15
  35. package/chunks/{cron-create-FXRORK2U.js → cron-create-V3UK2SJN.js} +1 -1
  36. package/chunks/{cron-delete-D24IN6CA.js → cron-delete-MANALPCP.js} +1 -1
  37. package/chunks/{cron-list-SMOX26SL.js → cron-list-UDIYK3B3.js} +1 -1
  38. package/chunks/{de-OIMT3OMI.js → de-APURNJ3I.js} +2 -1
  39. package/chunks/{dist-GRQVFL3G.js → dist-ATAKC63R.js} +1 -1
  40. package/chunks/{edit-RLFUTT5F.js → edit-YP22XCVA.js} +14 -13
  41. package/chunks/{en-2IFZ5THF.js → en-FYO57HJW.js} +3 -1
  42. package/chunks/{enter-worktree-CYRAPQKJ.js → enter-worktree-BD7UFMUZ.js} +14 -13
  43. package/chunks/{exit-worktree-WQZM72QD.js → exit-worktree-AVWBCQWY.js} +14 -13
  44. package/chunks/{exitPlanMode-STFEBQZE.js → exitPlanMode-2D6EGF76.js} +14 -13
  45. package/chunks/{fr-PVELSHTV.js → fr-32YHQZIS.js} +2 -1
  46. package/chunks/{geminiContentGenerator-DIV32SKO.js → geminiContentGenerator-YFVW6DXY.js} +4 -3
  47. package/chunks/{glob-N3XO4RVI.js → glob-NZWP66L5.js} +14 -13
  48. package/chunks/{grep-AK5MP7P3.js → grep-RFEZDGI4.js} +14 -13
  49. package/chunks/{ja-P5TK5GNN.js → ja-PEUXN4XT.js} +2 -1
  50. package/chunks/{ls-7FYQHPWF.js → ls-T4SVZWR6.js} +1 -1
  51. package/chunks/{lsp-DKG34USR.js → lsp-U4ZQLNIS.js} +1 -1
  52. package/chunks/{monitor-IVBWJZEZ.js → monitor-OHKCQLFQ.js} +17 -14
  53. package/chunks/{multipart-parser-IXGBIOIN.js → multipart-parser-AJ4WASWR.js} +2 -2
  54. package/chunks/{notebook-edit-PM46AXFS.js → notebook-edit-AFRICVUX.js} +14 -13
  55. package/chunks/{openaiContentGenerator-4QXCH7L2.js → openaiContentGenerator-47KB64GP.js} +11 -10
  56. package/chunks/{pt-A5GHG66T.js → pt-2INS7YVC.js} +2 -1
  57. package/chunks/{qwenContentGenerator-BLXQIIMX.js → qwenContentGenerator-7BC2OW3T.js} +16 -15
  58. package/chunks/{qwenOAuth2-BAN2EGSH.js → qwenOAuth2-LKXG7XVO.js} +2 -1
  59. package/chunks/{read-file-IEQAS3EZ.js → read-file-MXUW3RUF.js} +8 -7
  60. package/chunks/{ripGrep-HQO7IE4C.js → ripGrep-AHBINNF3.js} +14 -13
  61. package/chunks/{ru-66XKB4QX.js → ru-6CQ5HNHB.js} +2 -1
  62. package/chunks/scheduler-KBRJ3LFC.js +306 -0
  63. package/chunks/{send-message-ZL7CDM7K.js → send-message-GFYV7WLL.js} +1 -1
  64. package/chunks/{serve-CYRAK4UM.js → serve-PVFP6HD7.js} +43 -30
  65. package/chunks/{shell-UZBGNO2Q.js → shell-JOXQ5PPL.js} +14 -13
  66. package/chunks/{skill-JVC34QYN.js → skill-73RYGDJQ.js} +9 -8
  67. package/chunks/{src-TMOD5X6F.js → src-7XL4G4DC.js} +88 -46
  68. package/chunks/{src-FOODLH7B.js → src-DR3Y7J6D.js} +41 -15
  69. package/chunks/{syntheticOutput-U3YJ3GOO.js → syntheticOutput-DM43O6TY.js} +2 -2
  70. package/chunks/{task-stop-NPUI3YBA.js → task-stop-WKP5OB3V.js} +1 -1
  71. package/chunks/{todoWrite-Y6F7YEIM.js → todoWrite-GHL6DCLP.js} +14 -3
  72. package/chunks/{tool-search-P7PRPOW3.js → tool-search-DRMR34WX.js} +8 -7
  73. package/chunks/{web-fetch-XWEK4TFX.js → web-fetch-SZIV74ZX.js} +2 -2
  74. package/chunks/{write-file-SIIEUON5.js → write-file-B45ZAKUJ.js} +16 -15
  75. package/chunks/{zh-TW-3ND6DQRX.js → zh-TW-SSL3ATVZ.js} +3 -1
  76. package/chunks/{zh-OB5P2ZDO.js → zh-ZHZCMIRG.js} +3 -1
  77. package/cli.js +38665 -53791
  78. package/locales/ca.js +2 -1
  79. package/locales/de.js +2 -1
  80. package/locales/en.js +4 -1
  81. package/locales/fr.js +2 -1
  82. package/locales/ja.js +2 -1
  83. package/locales/pt.js +2 -1
  84. package/locales/ru.js +2 -1
  85. package/locales/zh-TW.js +4 -1
  86. package/locales/zh.js +4 -1
  87. package/package.json +2 -2
  88. package/chunks/chunk-EM6ETG2K.js +0 -60
  89. package/chunks/chunk-TI4GXJKO.js +0 -4277
  90. package/chunks/multipart-parser-3QWGTLK3.js +0 -384
  91. package/chunks/src-IPWIHNMI.js +0 -1406
@@ -8,31 +8,32 @@ import {
8
8
  getCurrentAgentId,
9
9
  getMonitorOutputPath,
10
10
  getShellConfiguration,
11
+ getShellContextEnvVars,
11
12
  hasUnsafeMonitorBackgroundOperator,
12
13
  isShellCommandReadOnlyAST,
13
14
  normalizeMonitorCommand,
14
15
  splitCommands,
15
16
  stripAnsi
16
- } from "./chunk-7EHPK6TK.js";
17
+ } from "./chunk-JR346RJ5.js";
17
18
  import "./chunk-24YKA2DA.js";
18
19
  import "./chunk-O4PICXES.js";
19
20
  import "./chunk-TW522KN6.js";
20
- import "./chunk-TI4GXJKO.js";
21
+ import "./chunk-7TQVELRB.js";
21
22
  import "./chunk-AKBFRR6J.js";
22
23
  import "./chunk-MLZQVCF3.js";
23
- import "./chunk-EMVEDSVZ.js";
24
+ import "./chunk-6O244QKR.js";
24
25
  import "./chunk-EY6BDW7Y.js";
25
- import "./chunk-HAQCNXSG.js";
26
+ import "./chunk-RQW7WUJR.js";
26
27
  import "./chunk-77WXWU44.js";
27
28
  import "./chunk-GVWPJCXU.js";
28
- import "./chunk-MEN6IEKX.js";
29
- import "./chunk-J5VCSWPA.js";
29
+ import "./chunk-YVGIQ2CS.js";
30
+ import "./chunk-3PJXIDKI.js";
30
31
  import "./chunk-UWCTAVOD.js";
31
32
  import "./chunk-W57YDFU5.js";
32
33
  import "./chunk-OFEVLU4C.js";
33
34
  import "./chunk-NQ3E7YLD.js";
34
- import "./chunk-ODPVJ6JJ.js";
35
- import "./chunk-UQRYJQBE.js";
35
+ import "./chunk-OJFMTECH.js";
36
+ import "./chunk-SOGUPKP6.js";
36
37
  import {
37
38
  ToolDisplayNames,
38
39
  ToolNames
@@ -40,12 +41,13 @@ import {
40
41
  import {
41
42
  BaseDeclarativeTool,
42
43
  BaseToolInvocation
43
- } from "./chunk-R2B65CAN.js";
44
- import "./chunk-7YJIR2FX.js";
44
+ } from "./chunk-JKUAX6UT.js";
45
+ import "./chunk-G4K6P5KN.js";
45
46
  import "./chunk-OIL7KDWV.js";
46
- import "./chunk-U2K6HDUJ.js";
47
- import "./chunk-6NUSWV4M.js";
48
- import "./chunk-HCSJIOLR.js";
47
+ import "./chunk-HX3JRTWL.js";
48
+ import "./chunk-QVJ33ZBG.js";
49
+ import "./chunk-TDZCEIK6.js";
50
+ import "./chunk-BNESGOSJ.js";
49
51
  import "./chunk-SZOEIL6S.js";
50
52
  import "./chunk-5IFG2VC4.js";
51
53
  import {
@@ -271,7 +273,8 @@ var MonitorToolInvocation = class extends BaseToolInvocation {
271
273
  QWEN_CODE: "1",
272
274
  TERM: "dumb",
273
275
  // no color codes for streaming
274
- PAGER: "cat"
276
+ PAGER: "cat",
277
+ ...getShellContextEnvVars()
275
278
  }
276
279
  });
277
280
  } catch (err) {
@@ -15,7 +15,7 @@ import {
15
15
  __name
16
16
  } from "./chunk-J2S4EL5Y.js";
17
17
 
18
- // packages/cli/node_modules/node-fetch/src/utils/multipart-parser.js
18
+ // node_modules/gaxios/node_modules/node-fetch/src/utils/multipart-parser.js
19
19
  function _fileName(headerValue) {
20
20
  const m = headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);
21
21
  if (!m) {
@@ -105,7 +105,7 @@ async function toFormData(Body, ct) {
105
105
  }
106
106
  var s, S, f, F, LF, CR, SPACE, HYPHEN, COLON, A, Z, lower, noop, MultipartParser;
107
107
  var init_multipart_parser = __esm({
108
- "packages/cli/node_modules/node-fetch/src/utils/multipart-parser.js"() {
108
+ "node_modules/gaxios/node_modules/node-fetch/src/utils/multipart-parser.js"() {
109
109
  init_esbuild_shims();
110
110
  init_from();
111
111
  init_esm_min();
@@ -9,16 +9,16 @@ import {
9
9
  createPatch,
10
10
  detectLineEnding,
11
11
  getDiffStat
12
- } from "./chunk-7EHPK6TK.js";
12
+ } from "./chunk-JR346RJ5.js";
13
13
  import "./chunk-24YKA2DA.js";
14
14
  import "./chunk-O4PICXES.js";
15
15
  import "./chunk-TW522KN6.js";
16
- import "./chunk-TI4GXJKO.js";
16
+ import "./chunk-7TQVELRB.js";
17
17
  import "./chunk-AKBFRR6J.js";
18
18
  import "./chunk-MLZQVCF3.js";
19
- import "./chunk-EMVEDSVZ.js";
19
+ import "./chunk-6O244QKR.js";
20
20
  import "./chunk-EY6BDW7Y.js";
21
- import "./chunk-HAQCNXSG.js";
21
+ import "./chunk-RQW7WUJR.js";
22
22
  import "./chunk-77WXWU44.js";
23
23
  import "./chunk-GVWPJCXU.js";
24
24
  import {
@@ -38,14 +38,14 @@ import {
38
38
  parseNotebook,
39
39
  serializeNotebook,
40
40
  toNotebookSource
41
- } from "./chunk-MEN6IEKX.js";
42
- import "./chunk-J5VCSWPA.js";
41
+ } from "./chunk-YVGIQ2CS.js";
42
+ import "./chunk-3PJXIDKI.js";
43
43
  import "./chunk-UWCTAVOD.js";
44
44
  import "./chunk-W57YDFU5.js";
45
45
  import "./chunk-OFEVLU4C.js";
46
46
  import "./chunk-NQ3E7YLD.js";
47
- import "./chunk-ODPVJ6JJ.js";
48
- import "./chunk-UQRYJQBE.js";
47
+ import "./chunk-OJFMTECH.js";
48
+ import "./chunk-SOGUPKP6.js";
49
49
  import {
50
50
  ToolDisplayNames,
51
51
  ToolNames
@@ -53,12 +53,13 @@ import {
53
53
  import {
54
54
  BaseDeclarativeTool,
55
55
  BaseToolInvocation
56
- } from "./chunk-R2B65CAN.js";
57
- import "./chunk-7YJIR2FX.js";
56
+ } from "./chunk-JKUAX6UT.js";
57
+ import "./chunk-G4K6P5KN.js";
58
58
  import "./chunk-OIL7KDWV.js";
59
- import "./chunk-U2K6HDUJ.js";
60
- import "./chunk-6NUSWV4M.js";
61
- import "./chunk-HCSJIOLR.js";
59
+ import "./chunk-HX3JRTWL.js";
60
+ import "./chunk-QVJ33ZBG.js";
61
+ import "./chunk-TDZCEIK6.js";
62
+ import "./chunk-BNESGOSJ.js";
62
63
  import "./chunk-SZOEIL6S.js";
63
64
  import "./chunk-5IFG2VC4.js";
64
65
  import {
@@ -12,23 +12,24 @@ import {
12
12
  OpenRouterOpenAICompatibleProvider,
13
13
  createOpenAIContentGenerator,
14
14
  determineProvider
15
- } from "./chunk-JI7FDD65.js";
16
- import "./chunk-V7LMZR76.js";
15
+ } from "./chunk-K3VUDSWM.js";
16
+ import "./chunk-JBSYXHJF.js";
17
17
  import {
18
18
  OpenAIContentConverter
19
- } from "./chunk-MEN6IEKX.js";
20
- import "./chunk-J5VCSWPA.js";
19
+ } from "./chunk-YVGIQ2CS.js";
20
+ import "./chunk-3PJXIDKI.js";
21
21
  import "./chunk-UWCTAVOD.js";
22
22
  import "./chunk-W57YDFU5.js";
23
23
  import "./chunk-OFEVLU4C.js";
24
24
  import "./chunk-NQ3E7YLD.js";
25
- import "./chunk-ODPVJ6JJ.js";
26
- import "./chunk-UQRYJQBE.js";
25
+ import "./chunk-OJFMTECH.js";
26
+ import "./chunk-SOGUPKP6.js";
27
27
  import "./chunk-6RQTH7UQ.js";
28
- import "./chunk-R2B65CAN.js";
29
- import "./chunk-U2K6HDUJ.js";
30
- import "./chunk-6NUSWV4M.js";
31
- import "./chunk-HCSJIOLR.js";
28
+ import "./chunk-JKUAX6UT.js";
29
+ import "./chunk-HX3JRTWL.js";
30
+ import "./chunk-QVJ33ZBG.js";
31
+ import "./chunk-TDZCEIK6.js";
32
+ import "./chunk-BNESGOSJ.js";
32
33
  import "./chunk-SZOEIL6S.js";
33
34
  import "./chunk-5IFG2VC4.js";
34
35
  import "./chunk-ACBGEKB7.js";
@@ -18,6 +18,7 @@ var pt_default = {
18
18
  "@src/myFile.ts": "@src/myFile.ts",
19
19
  "Shell mode": "Modo shell",
20
20
  "YOLO mode": "Modo YOLO",
21
+ "Auto mode": "Modo auto",
21
22
  "plan mode": "modo planejamento",
22
23
  "auto-accept edits": "aceitar edi\xE7\xF5es automaticamente",
23
24
  "Accepting edits": "Aceitando edi\xE7\xF5es",
@@ -319,7 +320,7 @@ var pt_default = {
319
320
  Text: "Texto",
320
321
  JSON: "JSON",
321
322
  Plan: "Planejamento",
322
- Default: "Padr\xE3o",
323
+ "Ask permissions": "Pedir permiss\xE3o",
323
324
  "Auto Edit": "Edi\xE7\xE3o Autom\xE1tica",
324
325
  YOLO: "YOLO",
325
326
  "toggle vim mode on/off": "alternar modo vim ligado/desligado",
@@ -3,39 +3,40 @@
3
3
  import {
4
4
  DashScopeOpenAICompatibleProvider,
5
5
  OpenAIContentGenerator
6
- } from "./chunk-JI7FDD65.js";
7
- import "./chunk-V7LMZR76.js";
8
- import "./chunk-7EHPK6TK.js";
6
+ } from "./chunk-K3VUDSWM.js";
7
+ import "./chunk-JBSYXHJF.js";
8
+ import "./chunk-JR346RJ5.js";
9
9
  import "./chunk-24YKA2DA.js";
10
10
  import "./chunk-O4PICXES.js";
11
11
  import "./chunk-TW522KN6.js";
12
- import "./chunk-TI4GXJKO.js";
12
+ import "./chunk-7TQVELRB.js";
13
13
  import "./chunk-AKBFRR6J.js";
14
14
  import "./chunk-MLZQVCF3.js";
15
- import "./chunk-EMVEDSVZ.js";
15
+ import "./chunk-6O244QKR.js";
16
16
  import "./chunk-EY6BDW7Y.js";
17
- import "./chunk-HAQCNXSG.js";
17
+ import "./chunk-RQW7WUJR.js";
18
18
  import "./chunk-77WXWU44.js";
19
19
  import "./chunk-GVWPJCXU.js";
20
- import "./chunk-MEN6IEKX.js";
21
- import "./chunk-J5VCSWPA.js";
20
+ import "./chunk-YVGIQ2CS.js";
21
+ import "./chunk-3PJXIDKI.js";
22
22
  import "./chunk-UWCTAVOD.js";
23
23
  import "./chunk-W57YDFU5.js";
24
24
  import "./chunk-OFEVLU4C.js";
25
25
  import "./chunk-NQ3E7YLD.js";
26
- import "./chunk-ODPVJ6JJ.js";
27
- import "./chunk-UQRYJQBE.js";
26
+ import "./chunk-OJFMTECH.js";
27
+ import "./chunk-SOGUPKP6.js";
28
28
  import "./chunk-6RQTH7UQ.js";
29
- import "./chunk-R2B65CAN.js";
29
+ import "./chunk-JKUAX6UT.js";
30
30
  import {
31
31
  SharedTokenManager
32
- } from "./chunk-7YJIR2FX.js";
32
+ } from "./chunk-G4K6P5KN.js";
33
33
  import "./chunk-OIL7KDWV.js";
34
- import "./chunk-U2K6HDUJ.js";
34
+ import "./chunk-HX3JRTWL.js";
35
+ import "./chunk-QVJ33ZBG.js";
35
36
  import {
36
37
  DEFAULT_DASHSCOPE_BASE_URL
37
- } from "./chunk-6NUSWV4M.js";
38
- import "./chunk-HCSJIOLR.js";
38
+ } from "./chunk-TDZCEIK6.js";
39
+ import "./chunk-BNESGOSJ.js";
39
40
  import "./chunk-SZOEIL6S.js";
40
41
  import "./chunk-5IFG2VC4.js";
41
42
  import {
@@ -18,8 +18,9 @@ import {
18
18
  isDeviceTokenSuccess,
19
19
  isErrorResponse,
20
20
  qwenOAuth2Events
21
- } from "./chunk-7YJIR2FX.js";
21
+ } from "./chunk-G4K6P5KN.js";
22
22
  import "./chunk-OIL7KDWV.js";
23
+ import "./chunk-HX3JRTWL.js";
23
24
  import "./chunk-ACBGEKB7.js";
24
25
  import "./chunk-QWSRH265.js";
25
26
  import "./chunk-A4BMJM77.js";
@@ -2,18 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  ReadFileTool
5
- } from "./chunk-MEN6IEKX.js";
6
- import "./chunk-J5VCSWPA.js";
5
+ } from "./chunk-YVGIQ2CS.js";
6
+ import "./chunk-3PJXIDKI.js";
7
7
  import "./chunk-UWCTAVOD.js";
8
8
  import "./chunk-W57YDFU5.js";
9
9
  import "./chunk-OFEVLU4C.js";
10
10
  import "./chunk-NQ3E7YLD.js";
11
- import "./chunk-ODPVJ6JJ.js";
12
- import "./chunk-UQRYJQBE.js";
11
+ import "./chunk-OJFMTECH.js";
12
+ import "./chunk-SOGUPKP6.js";
13
13
  import "./chunk-6RQTH7UQ.js";
14
- import "./chunk-R2B65CAN.js";
15
- import "./chunk-6NUSWV4M.js";
16
- import "./chunk-HCSJIOLR.js";
14
+ import "./chunk-JKUAX6UT.js";
15
+ import "./chunk-HX3JRTWL.js";
16
+ import "./chunk-TDZCEIK6.js";
17
+ import "./chunk-BNESGOSJ.js";
17
18
  import "./chunk-SZOEIL6S.js";
18
19
  import "./chunk-5IFG2VC4.js";
19
20
  import "./chunk-ACBGEKB7.js";
@@ -3,33 +3,34 @@
3
3
  import {
4
4
  RipGrepTool,
5
5
  _resetRipGrepCachesForTest
6
- } from "./chunk-7EHPK6TK.js";
6
+ } from "./chunk-JR346RJ5.js";
7
7
  import "./chunk-24YKA2DA.js";
8
8
  import "./chunk-O4PICXES.js";
9
9
  import "./chunk-TW522KN6.js";
10
- import "./chunk-TI4GXJKO.js";
10
+ import "./chunk-7TQVELRB.js";
11
11
  import "./chunk-AKBFRR6J.js";
12
12
  import "./chunk-MLZQVCF3.js";
13
- import "./chunk-EMVEDSVZ.js";
13
+ import "./chunk-6O244QKR.js";
14
14
  import "./chunk-EY6BDW7Y.js";
15
- import "./chunk-HAQCNXSG.js";
15
+ import "./chunk-RQW7WUJR.js";
16
16
  import "./chunk-77WXWU44.js";
17
17
  import "./chunk-GVWPJCXU.js";
18
- import "./chunk-MEN6IEKX.js";
19
- import "./chunk-J5VCSWPA.js";
18
+ import "./chunk-YVGIQ2CS.js";
19
+ import "./chunk-3PJXIDKI.js";
20
20
  import "./chunk-UWCTAVOD.js";
21
21
  import "./chunk-W57YDFU5.js";
22
22
  import "./chunk-OFEVLU4C.js";
23
23
  import "./chunk-NQ3E7YLD.js";
24
- import "./chunk-ODPVJ6JJ.js";
25
- import "./chunk-UQRYJQBE.js";
24
+ import "./chunk-OJFMTECH.js";
25
+ import "./chunk-SOGUPKP6.js";
26
26
  import "./chunk-6RQTH7UQ.js";
27
- import "./chunk-R2B65CAN.js";
28
- import "./chunk-7YJIR2FX.js";
27
+ import "./chunk-JKUAX6UT.js";
28
+ import "./chunk-G4K6P5KN.js";
29
29
  import "./chunk-OIL7KDWV.js";
30
- import "./chunk-U2K6HDUJ.js";
31
- import "./chunk-6NUSWV4M.js";
32
- import "./chunk-HCSJIOLR.js";
30
+ import "./chunk-HX3JRTWL.js";
31
+ import "./chunk-QVJ33ZBG.js";
32
+ import "./chunk-TDZCEIK6.js";
33
+ import "./chunk-BNESGOSJ.js";
33
34
  import "./chunk-SZOEIL6S.js";
34
35
  import "./chunk-5IFG2VC4.js";
35
36
  import "./chunk-ACBGEKB7.js";
@@ -22,6 +22,7 @@ var ru_default = {
22
22
  "@src/myFile.ts": "@src/myFile.ts",
23
23
  "Shell mode": "\u0420\u0435\u0436\u0438\u043C \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430",
24
24
  "YOLO mode": "\u0420\u0435\u0436\u0438\u043C YOLO",
25
+ "Auto mode": "\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0440\u0435\u0436\u0438\u043C",
25
26
  "plan mode": "\u0420\u0435\u0436\u0438\u043C \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",
26
27
  "auto-accept edits": "\u0420\u0435\u0436\u0438\u043C \u043F\u0440\u0438\u043D\u044F\u0442\u0438\u044F \u043F\u0440\u0430\u0432\u043E\u043A",
27
28
  "Accepting edits": "\u041F\u0440\u0438\u043D\u044F\u0442\u0438\u0435 \u043F\u0440\u0430\u0432\u043E\u043A",
@@ -319,7 +320,7 @@ var ru_default = {
319
320
  Text: "\u0422\u0435\u043A\u0441\u0442",
320
321
  JSON: "JSON",
321
322
  Plan: "\u041F\u043B\u0430\u043D",
322
- Default: "\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E",
323
+ "Ask permissions": "\u0417\u0430\u043F\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F",
323
324
  "Auto Edit": "\u0410\u0432\u0442\u043E\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",
324
325
  YOLO: "YOLO",
325
326
  "toggle vim mode on/off": "\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435/\u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0440\u0435\u0436\u0438\u043C\u0430 vim",
@@ -0,0 +1,306 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ msSinceLastInteraction
5
+ } from "./chunk-MRO43B25.js";
6
+ import {
7
+ FILE_HISTORY_DIR
8
+ } from "./chunk-JR346RJ5.js";
9
+ import "./chunk-24YKA2DA.js";
10
+ import "./chunk-O4PICXES.js";
11
+ import "./chunk-TW522KN6.js";
12
+ import "./chunk-7TQVELRB.js";
13
+ import "./chunk-AKBFRR6J.js";
14
+ import "./chunk-MLZQVCF3.js";
15
+ import "./chunk-6O244QKR.js";
16
+ import "./chunk-EY6BDW7Y.js";
17
+ import "./chunk-RQW7WUJR.js";
18
+ import "./chunk-77WXWU44.js";
19
+ import "./chunk-GVWPJCXU.js";
20
+ import "./chunk-YVGIQ2CS.js";
21
+ import "./chunk-3PJXIDKI.js";
22
+ import "./chunk-UWCTAVOD.js";
23
+ import "./chunk-W57YDFU5.js";
24
+ 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";
35
+ import "./chunk-BNESGOSJ.js";
36
+ import "./chunk-SZOEIL6S.js";
37
+ import "./chunk-5IFG2VC4.js";
38
+ import {
39
+ Storage,
40
+ createDebugLogger
41
+ } from "./chunk-ACBGEKB7.js";
42
+ import "./chunk-ZERZSAZL.js";
43
+ import "./chunk-QN5NZ3UQ.js";
44
+ import "./chunk-BR4QREVK.js";
45
+ import "./chunk-QWSRH265.js";
46
+ import {
47
+ init_esbuild_shims
48
+ } from "./chunk-A4BMJM77.js";
49
+ import {
50
+ __name
51
+ } from "./chunk-J2S4EL5Y.js";
52
+
53
+ // packages/cli/src/utils/housekeeping/scheduler.ts
54
+ init_esbuild_shims();
55
+ import { stat as stat3 } from "node:fs/promises";
56
+ import { join as join2 } from "node:path";
57
+
58
+ // packages/cli/src/utils/housekeeping/cleanup.ts
59
+ init_esbuild_shims();
60
+ import { readdir, stat, rm, rmdir } from "node:fs/promises";
61
+ import { join } from "node:path";
62
+ var debugLogger = createDebugLogger("HOUSEKEEPING");
63
+ var MS_PER_DAY = 24 * 60 * 60 * 1e3;
64
+ var MS_PER_HOUR = 60 * 60 * 1e3;
65
+ var SWEEP_CONCURRENCY = 20;
66
+ function getCutoffDate(cleanupPeriodDays) {
67
+ const periodMs = cleanupPeriodDays > 0 ? cleanupPeriodDays * MS_PER_DAY : MS_PER_HOUR;
68
+ return new Date(Date.now() - periodMs);
69
+ }
70
+ __name(getCutoffDate, "getCutoffDate");
71
+ async function cleanupOldFileHistoryBackups(opts) {
72
+ const result = { removed: 0, errors: 0 };
73
+ const root = join(Storage.getGlobalQwenDir(), FILE_HISTORY_DIR);
74
+ const excludes = opts.excludeSessionIds ?? /* @__PURE__ */ new Set();
75
+ let entries;
76
+ try {
77
+ entries = await readdir(root, { withFileTypes: true });
78
+ } catch (e) {
79
+ if (isENOENT(e)) return result;
80
+ debugLogger.error("readdir failed", e);
81
+ return result;
82
+ }
83
+ const sessionDirs = entries.filter((e) => e.isDirectory() && !excludes.has(e.name)).map((e) => join(root, e.name));
84
+ for (let i = 0; i < sessionDirs.length; i += SWEEP_CONCURRENCY) {
85
+ const batch = sessionDirs.slice(i, i + SWEEP_CONCURRENCY);
86
+ await Promise.all(
87
+ batch.map(async (dir) => {
88
+ try {
89
+ const s = await stat(dir);
90
+ if (s.mtime < opts.cutoffDate) {
91
+ await rm(dir, { recursive: true, force: true });
92
+ result.removed++;
93
+ }
94
+ } catch (err) {
95
+ result.errors++;
96
+ debugLogger.error(`failed to sweep ${dir}`, err);
97
+ }
98
+ })
99
+ );
100
+ }
101
+ await rmdir(root).catch(() => {
102
+ });
103
+ return result;
104
+ }
105
+ __name(cleanupOldFileHistoryBackups, "cleanupOldFileHistoryBackups");
106
+ function isENOENT(e) {
107
+ return e?.code === "ENOENT";
108
+ }
109
+ __name(isENOENT, "isENOENT");
110
+
111
+ // packages/cli/src/utils/housekeeping/throttledOnce.ts
112
+ init_esbuild_shims();
113
+ import { mkdir, open, stat as stat2, unlink, writeFile } from "node:fs/promises";
114
+ import { dirname } from "node:path";
115
+ var debugLogger2 = createDebugLogger("HOUSEKEEPING");
116
+ var ONE_DAY_MS = 24 * 60 * 60 * 1e3;
117
+ var STALE_LOCK_MS = 60 * 60 * 1e3;
118
+ async function runThrottledOnce(opts, task) {
119
+ const minIntervalMs = opts.minIntervalMs ?? ONE_DAY_MS;
120
+ const staleLockMs = opts.staleLockMs ?? STALE_LOCK_MS;
121
+ await mkdir(dirname(opts.lockPath), { recursive: true, mode: 448 }).catch(
122
+ () => {
123
+ }
124
+ );
125
+ if (await markerIsFresh(opts.markerPath, minIntervalMs, opts.name)) {
126
+ return false;
127
+ }
128
+ let acquired = await tryAcquire(opts.lockPath);
129
+ if (!acquired) {
130
+ try {
131
+ const s = await stat2(opts.lockPath);
132
+ if (Date.now() - s.mtimeMs > staleLockMs) {
133
+ await unlink(opts.lockPath).catch(() => {
134
+ });
135
+ acquired = await tryAcquire(opts.lockPath);
136
+ }
137
+ } catch {
138
+ acquired = await tryAcquire(opts.lockPath);
139
+ }
140
+ if (!acquired) {
141
+ debugLogger2.debug(`${opts.name}: skipping, lock held`);
142
+ return false;
143
+ }
144
+ }
145
+ try {
146
+ if (await markerIsFresh(opts.markerPath, minIntervalMs, opts.name)) {
147
+ return false;
148
+ }
149
+ let taskCompleted = false;
150
+ try {
151
+ await task();
152
+ taskCompleted = true;
153
+ } finally {
154
+ if (taskCompleted) {
155
+ try {
156
+ await writeFile(opts.markerPath, (/* @__PURE__ */ new Date()).toISOString());
157
+ } catch (err) {
158
+ debugLogger2.debug(
159
+ `${opts.name}: marker write failed (cleanup succeeded)`,
160
+ err
161
+ );
162
+ }
163
+ }
164
+ }
165
+ return taskCompleted;
166
+ } finally {
167
+ await unlink(opts.lockPath).catch(() => {
168
+ debugLogger2.debug(`${opts.name}: lock unlink failed (harmless)`);
169
+ });
170
+ }
171
+ }
172
+ __name(runThrottledOnce, "runThrottledOnce");
173
+ async function markerIsFresh(markerPath, minIntervalMs, name) {
174
+ try {
175
+ const s = await stat2(markerPath);
176
+ const age = Date.now() - s.mtimeMs;
177
+ if (age < minIntervalMs) {
178
+ debugLogger2.debug(`${name}: skipping, ran ${age}ms ago`);
179
+ return true;
180
+ }
181
+ } catch {
182
+ }
183
+ return false;
184
+ }
185
+ __name(markerIsFresh, "markerIsFresh");
186
+ async function tryAcquire(lockPath) {
187
+ try {
188
+ const fh = await open(lockPath, "wx");
189
+ await fh.close();
190
+ return true;
191
+ } catch (e) {
192
+ if (e?.code === "EEXIST") {
193
+ return false;
194
+ }
195
+ throw e;
196
+ }
197
+ }
198
+ __name(tryAcquire, "tryAcquire");
199
+
200
+ // packages/cli/src/utils/housekeeping/scheduler.ts
201
+ var debugLogger3 = createDebugLogger("HOUSEKEEPING");
202
+ var STARTUP_DELAY_MS = 10 * 60 * 1e3;
203
+ var RECURRING_INTERVAL_MS = 24 * 60 * 60 * 1e3;
204
+ var RECENT_INTERACTION_MS = 60 * 1e3;
205
+ var CATCHUP_THRESHOLD_MS = 7 * 24 * 60 * 60 * 1e3;
206
+ var STARTUP_DELAY_CATCHUP_MS = 60 * 1e3;
207
+ var FILE_HISTORY_MARKER = ".file-history-cleanup";
208
+ var started = false;
209
+ function startBackgroundHousekeeping(config, settings) {
210
+ if (started) return;
211
+ started = true;
212
+ void scheduleFirstPass(config, settings).catch((err) => {
213
+ started = false;
214
+ debugLogger3.error(
215
+ "scheduleFirstPass failed; chain will retry on next start",
216
+ err
217
+ );
218
+ });
219
+ }
220
+ __name(startBackgroundHousekeeping, "startBackgroundHousekeeping");
221
+ async function scheduleFirstPass(config, settings) {
222
+ const markerPath = join2(Storage.getGlobalQwenDir(), FILE_HISTORY_MARKER);
223
+ const delay = await needsCatchUp(markerPath) ? STARTUP_DELAY_CATCHUP_MS : STARTUP_DELAY_MS;
224
+ debugLogger3.debug(`first pass in ${delay / 1e3}s`);
225
+ setTimeout(() => scheduleNextPass(config, settings), delay).unref();
226
+ }
227
+ __name(scheduleFirstPass, "scheduleFirstPass");
228
+ async function needsCatchUp(markerPath) {
229
+ try {
230
+ const s = await stat3(markerPath);
231
+ return Date.now() - s.mtimeMs > CATCHUP_THRESHOLD_MS;
232
+ } catch {
233
+ return true;
234
+ }
235
+ }
236
+ __name(needsCatchUp, "needsCatchUp");
237
+ async function runPass(config, settings) {
238
+ if (msSinceLastInteraction() < RECENT_INTERACTION_MS) {
239
+ debugLogger3.debug("user active, deferring 10 min");
240
+ setTimeout(
241
+ () => scheduleNextPass(config, settings),
242
+ STARTUP_DELAY_MS
243
+ ).unref();
244
+ return;
245
+ }
246
+ try {
247
+ await runHousekeeping(config, settings);
248
+ } catch (err) {
249
+ debugLogger3.error("housekeeping pass failed; will retry next cycle", err);
250
+ }
251
+ setTimeout(
252
+ () => scheduleNextPass(config, settings),
253
+ RECURRING_INTERVAL_MS
254
+ ).unref();
255
+ }
256
+ __name(runPass, "runPass");
257
+ function scheduleNextPass(config, settings) {
258
+ void runPass(config, settings).catch((err) => {
259
+ debugLogger3.error("runPass rejected unexpectedly", err);
260
+ });
261
+ }
262
+ __name(scheduleNextPass, "scheduleNextPass");
263
+ async function runHousekeeping(config, settings) {
264
+ const days = settings.merged.general?.cleanupPeriodDays ?? 30;
265
+ const cutoff = getCutoffDate(days);
266
+ const currentSessionId = config.getSessionId();
267
+ const qwenDir = Storage.getGlobalQwenDir();
268
+ await runThrottledOnce(
269
+ {
270
+ name: "file-history-cleanup",
271
+ markerPath: join2(qwenDir, FILE_HISTORY_MARKER),
272
+ lockPath: join2(qwenDir, FILE_HISTORY_MARKER + ".lock")
273
+ },
274
+ async () => {
275
+ const r = await cleanupOldFileHistoryBackups({
276
+ cutoffDate: cutoff,
277
+ excludeSessionIds: /* @__PURE__ */ new Set([currentSessionId])
278
+ });
279
+ debugLogger3.debug(
280
+ `file-history: removed=${r.removed} errors=${r.errors}`
281
+ );
282
+ }
283
+ );
284
+ }
285
+ __name(runHousekeeping, "runHousekeeping");
286
+ function _resetForTesting() {
287
+ started = false;
288
+ }
289
+ __name(_resetForTesting, "_resetForTesting");
290
+ var _needsCatchUpForTesting = needsCatchUp;
291
+ var _runHousekeepingForTesting = runHousekeeping;
292
+ var _runPassForTesting = runPass;
293
+ var _FILE_HISTORY_MARKER_FOR_TESTING = FILE_HISTORY_MARKER;
294
+ export {
295
+ _FILE_HISTORY_MARKER_FOR_TESTING,
296
+ _needsCatchUpForTesting,
297
+ _resetForTesting,
298
+ _runHousekeepingForTesting,
299
+ _runPassForTesting,
300
+ startBackgroundHousekeeping
301
+ };
302
+ /**
303
+ * @license
304
+ * Copyright 2025 Google LLC
305
+ * SPDX-License-Identifier: Apache-2.0
306
+ */