@qwen-code/qwen-code 0.17.0 → 0.17.1
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.
- package/bundled/qc-helper/docs/configuration/_meta.ts +0 -3
- package/bundled/qc-helper/docs/configuration/settings.md +13 -12
- package/bundled/qc-helper/docs/configuration/themes.md +39 -0
- package/bundled/qc-helper/docs/features/approval-mode.md +26 -22
- package/bundled/qc-helper/docs/features/commands.md +68 -12
- package/bundled/qc-helper/docs/features/status-line.md +168 -32
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +16 -0
- package/bundled/simplify/SKILL.md +123 -0
- package/chunks/{agent-KVXFGIOU.js → agent-ZJHHICAC.js} +14 -13
- package/chunks/{anthropicContentGenerator-L4HWAOIV.js → anthropicContentGenerator-M45RXZVS.js} +48 -5
- package/chunks/{askUserQuestion-DC6OWQIL.js → askUserQuestion-TGRD7FNQ.js} +1 -1
- package/chunks/{ca-NMZFEGAU.js → ca-6RSCDYUS.js} +2 -1
- package/chunks/{chunk-7EHPK6TK.js → chunk-2KEXT6RB.js} +4007 -2390
- package/chunks/{chunk-J5VCSWPA.js → chunk-3PJXIDKI.js} +1153 -103
- package/chunks/{chunk-7NNBQRV7.js → chunk-5JBZM7FZ.js} +4 -4
- package/chunks/{chunk-EMVEDSVZ.js → chunk-6O244QKR.js} +43 -3
- package/chunks/chunk-7TQVELRB.js +10412 -0
- package/chunks/{chunk-HCSJIOLR.js → chunk-BNESGOSJ.js} +7450 -3516
- package/chunks/{chunk-MEN6IEKX.js → chunk-C5CUHYSM.js} +456 -1225
- package/chunks/{chunk-7YJIR2FX.js → chunk-G4K6P5KN.js} +8 -15
- package/chunks/chunk-HX3JRTWL.js +393 -0
- package/chunks/{chunk-V7LMZR76.js → chunk-JBSYXHJF.js} +1 -1
- package/chunks/{chunk-R2B65CAN.js → chunk-JKUAX6UT.js} +0 -1
- package/chunks/chunk-MRO43B25.js +30 -0
- package/chunks/{chunk-JI7FDD65.js → chunk-NJJER6E2.js} +9 -6
- package/chunks/{chunk-ODPVJ6JJ.js → chunk-OJFMTECH.js} +6 -1
- package/chunks/{chunk-QEXSIXLX.js → chunk-PLYRQYKC.js} +10 -10
- package/chunks/{chunk-U2K6HDUJ.js → chunk-QVJ33ZBG.js} +23 -13
- package/chunks/{chunk-HAQCNXSG.js → chunk-RQW7WUJR.js} +15 -0
- package/chunks/{chunk-UQRYJQBE.js → chunk-SOGUPKP6.js} +1 -1
- package/chunks/{chunk-6NUSWV4M.js → chunk-TDZCEIK6.js} +2 -0
- package/chunks/{chunk-4O2TWJK4.js → chunk-X2474BTT.js} +183 -40
- package/chunks/{computer-use-2J5ZXEER.js → computer-use-NAHQPV2L.js} +24 -6
- package/chunks/{contextCommand-52NTEMCT.js → contextCommand-7KJT3UJS.js} +16 -15
- package/chunks/{cron-create-FXRORK2U.js → cron-create-V3UK2SJN.js} +1 -1
- package/chunks/{cron-delete-D24IN6CA.js → cron-delete-MANALPCP.js} +1 -1
- package/chunks/{cron-list-SMOX26SL.js → cron-list-UDIYK3B3.js} +1 -1
- package/chunks/{de-OIMT3OMI.js → de-APURNJ3I.js} +2 -1
- package/chunks/{dist-GRQVFL3G.js → dist-ATAKC63R.js} +1 -1
- package/chunks/{edit-RLFUTT5F.js → edit-JWXCQ4KK.js} +14 -13
- package/chunks/{en-2IFZ5THF.js → en-FYO57HJW.js} +3 -1
- package/chunks/{enter-worktree-CYRAPQKJ.js → enter-worktree-G4CJXPT4.js} +14 -13
- package/chunks/{exit-worktree-WQZM72QD.js → exit-worktree-MYZ2FGU2.js} +14 -13
- package/chunks/{exitPlanMode-STFEBQZE.js → exitPlanMode-ELJ6FSMU.js} +14 -13
- package/chunks/{fr-PVELSHTV.js → fr-32YHQZIS.js} +2 -1
- package/chunks/{geminiContentGenerator-DIV32SKO.js → geminiContentGenerator-3LR7MKCQ.js} +4 -3
- package/chunks/{glob-N3XO4RVI.js → glob-CANUAUTC.js} +14 -13
- package/chunks/{grep-AK5MP7P3.js → grep-WZWNJRDX.js} +14 -13
- package/chunks/{ja-P5TK5GNN.js → ja-PEUXN4XT.js} +2 -1
- package/chunks/{ls-7FYQHPWF.js → ls-T4SVZWR6.js} +1 -1
- package/chunks/{lsp-DKG34USR.js → lsp-U4ZQLNIS.js} +1 -1
- package/chunks/{monitor-IVBWJZEZ.js → monitor-CCKNOUFG.js} +17 -14
- package/chunks/{multipart-parser-IXGBIOIN.js → multipart-parser-AJ4WASWR.js} +2 -2
- package/chunks/{notebook-edit-PM46AXFS.js → notebook-edit-XDUY5Q4I.js} +14 -13
- package/chunks/{openaiContentGenerator-4QXCH7L2.js → openaiContentGenerator-N3O3MYIT.js} +11 -10
- package/chunks/{pt-A5GHG66T.js → pt-2INS7YVC.js} +2 -1
- package/chunks/{qwenContentGenerator-BLXQIIMX.js → qwenContentGenerator-DEOIWKVH.js} +16 -15
- package/chunks/{qwenOAuth2-BAN2EGSH.js → qwenOAuth2-LKXG7XVO.js} +2 -1
- package/chunks/{read-file-IEQAS3EZ.js → read-file-BRNXGILN.js} +8 -7
- package/chunks/{ripGrep-HQO7IE4C.js → ripGrep-ZRY5PKUZ.js} +14 -13
- package/chunks/{ru-66XKB4QX.js → ru-6CQ5HNHB.js} +2 -1
- package/chunks/scheduler-SSFABMN5.js +306 -0
- package/chunks/{send-message-ZL7CDM7K.js → send-message-GFYV7WLL.js} +1 -1
- package/chunks/{serve-CYRAK4UM.js → serve-B5O72CRN.js} +43 -30
- package/chunks/{shell-UZBGNO2Q.js → shell-SGYNBVMK.js} +14 -13
- package/chunks/{skill-JVC34QYN.js → skill-V7Y6DOFB.js} +9 -8
- package/chunks/{src-TMOD5X6F.js → src-7XL4G4DC.js} +88 -46
- package/chunks/{src-FOODLH7B.js → src-OKFFQGXB.js} +41 -15
- package/chunks/{syntheticOutput-U3YJ3GOO.js → syntheticOutput-DM43O6TY.js} +2 -2
- package/chunks/{task-stop-NPUI3YBA.js → task-stop-WKP5OB3V.js} +1 -1
- package/chunks/{todoWrite-Y6F7YEIM.js → todoWrite-GHL6DCLP.js} +14 -3
- package/chunks/{tool-search-P7PRPOW3.js → tool-search-7MHT3HGM.js} +8 -7
- package/chunks/{web-fetch-XWEK4TFX.js → web-fetch-SZIV74ZX.js} +2 -2
- package/chunks/{write-file-SIIEUON5.js → write-file-ARS2Z6BJ.js} +16 -15
- package/chunks/{zh-TW-3ND6DQRX.js → zh-TW-SSL3ATVZ.js} +3 -1
- package/chunks/{zh-OB5P2ZDO.js → zh-ZHZCMIRG.js} +3 -1
- package/cli.js +38665 -53791
- package/locales/ca.js +2 -1
- package/locales/de.js +2 -1
- package/locales/en.js +4 -1
- package/locales/fr.js +2 -1
- package/locales/ja.js +2 -1
- package/locales/pt.js +2 -1
- package/locales/ru.js +2 -1
- package/locales/zh-TW.js +4 -1
- package/locales/zh.js +4 -1
- package/package.json +2 -2
- package/chunks/chunk-EM6ETG2K.js +0 -60
- package/chunks/chunk-TI4GXJKO.js +0 -4277
- package/chunks/multipart-parser-3QWGTLK3.js +0 -384
- package/chunks/src-IPWIHNMI.js +0 -1406
|
@@ -9,16 +9,16 @@ import {
|
|
|
9
9
|
createPatch,
|
|
10
10
|
detectLineEnding,
|
|
11
11
|
getDiffStat
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2KEXT6RB.js";
|
|
13
13
|
import "./chunk-24YKA2DA.js";
|
|
14
14
|
import "./chunk-O4PICXES.js";
|
|
15
15
|
import "./chunk-TW522KN6.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-7TQVELRB.js";
|
|
17
17
|
import "./chunk-AKBFRR6J.js";
|
|
18
18
|
import "./chunk-MLZQVCF3.js";
|
|
19
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-6O244QKR.js";
|
|
20
20
|
import "./chunk-EY6BDW7Y.js";
|
|
21
|
-
import "./chunk-
|
|
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-
|
|
42
|
-
import "./chunk-
|
|
41
|
+
} from "./chunk-C5CUHYSM.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-
|
|
48
|
-
import "./chunk-
|
|
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-
|
|
57
|
-
import "./chunk-
|
|
56
|
+
} from "./chunk-JKUAX6UT.js";
|
|
57
|
+
import "./chunk-G4K6P5KN.js";
|
|
58
58
|
import "./chunk-OIL7KDWV.js";
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-
|
|
61
|
-
import "./chunk-
|
|
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-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-NJJER6E2.js";
|
|
16
|
+
import "./chunk-JBSYXHJF.js";
|
|
17
17
|
import {
|
|
18
18
|
OpenAIContentConverter
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-C5CUHYSM.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-
|
|
26
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-OJFMTECH.js";
|
|
26
|
+
import "./chunk-SOGUPKP6.js";
|
|
27
27
|
import "./chunk-6RQTH7UQ.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
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
|
-
|
|
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-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-NJJER6E2.js";
|
|
7
|
+
import "./chunk-JBSYXHJF.js";
|
|
8
|
+
import "./chunk-2KEXT6RB.js";
|
|
9
9
|
import "./chunk-24YKA2DA.js";
|
|
10
10
|
import "./chunk-O4PICXES.js";
|
|
11
11
|
import "./chunk-TW522KN6.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-7TQVELRB.js";
|
|
13
13
|
import "./chunk-AKBFRR6J.js";
|
|
14
14
|
import "./chunk-MLZQVCF3.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-6O244QKR.js";
|
|
16
16
|
import "./chunk-EY6BDW7Y.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-RQW7WUJR.js";
|
|
18
18
|
import "./chunk-77WXWU44.js";
|
|
19
19
|
import "./chunk-GVWPJCXU.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-C5CUHYSM.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-
|
|
27
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-OJFMTECH.js";
|
|
27
|
+
import "./chunk-SOGUPKP6.js";
|
|
28
28
|
import "./chunk-6RQTH7UQ.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-JKUAX6UT.js";
|
|
30
30
|
import {
|
|
31
31
|
SharedTokenManager
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-G4K6P5KN.js";
|
|
33
33
|
import "./chunk-OIL7KDWV.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-HX3JRTWL.js";
|
|
35
|
+
import "./chunk-QVJ33ZBG.js";
|
|
35
36
|
import {
|
|
36
37
|
DEFAULT_DASHSCOPE_BASE_URL
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import "./chunk-
|
|
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-
|
|
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-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-C5CUHYSM.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-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-OJFMTECH.js";
|
|
12
|
+
import "./chunk-SOGUPKP6.js";
|
|
13
13
|
import "./chunk-6RQTH7UQ.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
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-
|
|
6
|
+
} from "./chunk-2KEXT6RB.js";
|
|
7
7
|
import "./chunk-24YKA2DA.js";
|
|
8
8
|
import "./chunk-O4PICXES.js";
|
|
9
9
|
import "./chunk-TW522KN6.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-7TQVELRB.js";
|
|
11
11
|
import "./chunk-AKBFRR6J.js";
|
|
12
12
|
import "./chunk-MLZQVCF3.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-6O244QKR.js";
|
|
14
14
|
import "./chunk-EY6BDW7Y.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-RQW7WUJR.js";
|
|
16
16
|
import "./chunk-77WXWU44.js";
|
|
17
17
|
import "./chunk-GVWPJCXU.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-C5CUHYSM.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-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-OJFMTECH.js";
|
|
25
|
+
import "./chunk-SOGUPKP6.js";
|
|
26
26
|
import "./chunk-6RQTH7UQ.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-JKUAX6UT.js";
|
|
28
|
+
import "./chunk-G4K6P5KN.js";
|
|
29
29
|
import "./chunk-OIL7KDWV.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
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
|
-
|
|
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-2KEXT6RB.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-C5CUHYSM.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
|
+
*/
|