@qwen-code/qwen-code 0.15.12-preview.2 → 0.16.0-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/configuration/settings.md +30 -34
- package/bundled/qc-helper/docs/features/lsp.md +87 -10
- package/bundled/qc-helper/docs/qwen-serve.md +74 -24
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +11 -11
- package/bundled/stuck/SKILL.md +124 -0
- package/chunks/{agent-UQY6A6OS.js → agent-ZNQPH67I.js} +15 -15
- package/chunks/{anthropicContentGenerator-4QE6LTVV.js → anthropicContentGenerator-ICBDZ6R2.js} +4 -4
- package/chunks/{askUserQuestion-QFSCBTUO.js → askUserQuestion-WQILGUSQ.js} +2 -2
- package/chunks/{ca-VQSV6JHA.js → ca-S3XJMT6P.js} +26 -0
- package/chunks/{chunk-SQNQIOD5.js → chunk-2B7UBDY5.js} +2 -2
- package/chunks/chunk-3MBY4GKN.js +350 -0
- package/chunks/{chunk-FSYKVGER.js → chunk-7QXHXMC6.js} +23 -7
- package/chunks/{chunk-PCL3EJGY.js → chunk-C3LHPHN2.js} +3924 -3683
- package/chunks/{chunk-UXW7MYAW.js → chunk-CW44BRRA.js} +1 -1
- package/chunks/{chunk-G27O2LD2.js → chunk-D5NTAHYL.js} +1 -1
- package/chunks/{chunk-CBVB66WY.js → chunk-EDYSNFEM.js} +1 -1
- package/chunks/{chunk-OCC4MZRS.js → chunk-F23NCRJ2.js} +1 -1
- package/chunks/{chunk-FYMSCRHM.js → chunk-FZIUV27X.js} +1 -1
- package/chunks/{chunk-SOIEFHIK.js → chunk-G7YTSRES.js} +1 -100
- package/chunks/{chunk-MXBWOU2L.js → chunk-JHMX4QTD.js} +15 -15
- package/chunks/{chunk-TPGOGCWM.js → chunk-JYQUJ5DS.js} +1 -1
- package/chunks/{chunk-FKVKVE6N.js → chunk-KXZ4TJB4.js} +1 -1
- package/chunks/{chunk-2WFU3IUH.js → chunk-MNPZ2WO6.js} +4864 -2303
- package/chunks/{chunk-BXNCPI75.js → chunk-NAID3ZWF.js} +2 -2
- package/chunks/{chunk-JMZQICAL.js → chunk-PPHYLJSS.js} +1 -1
- package/chunks/{chunk-CM2IESUE.js → chunk-PR4T27R7.js} +1 -1
- package/chunks/{chunk-CAWKL3UC.js → chunk-VTPOO6GV.js} +1 -1
- package/chunks/{chunk-GJXIKCKL.js → chunk-XP27SJMH.js} +76 -5
- package/chunks/{chunk-B7ZL7HUA.js → chunk-XVHR7ATJ.js} +1 -1
- package/chunks/{contextCommand-MQRG6RMG.js → contextCommand-IGBCEXI4.js} +16 -16
- package/chunks/{cron-create-WUTD5ZTH.js → cron-create-AVI3Q267.js} +2 -2
- package/chunks/{cron-delete-N3UQYCRA.js → cron-delete-ZCEGDXXV.js} +2 -2
- package/chunks/{cron-list-Z6RJJ4YH.js → cron-list-VN653OK5.js} +2 -2
- package/chunks/{de-M2IPQRBS.js → de-MNR4SMAI.js} +26 -0
- package/chunks/{edit-3KCBTA25.js → edit-74Q4AFHQ.js} +20 -16
- package/chunks/{en-N5GMPCVT.js → en-FIUWJSZR.js} +28 -0
- package/chunks/{enter-worktree-VWS5QZTU.js → enter-worktree-H72HXC7D.js} +15 -15
- package/chunks/{exit-worktree-RVXFWAPD.js → exit-worktree-FGIQO3S3.js} +15 -15
- package/chunks/{exitPlanMode-UL5DILDG.js → exitPlanMode-NBR2PK2D.js} +15 -15
- package/chunks/{fr-BTHRYEXO.js → fr-OFJFHLCR.js} +26 -0
- package/chunks/{geminiContentGenerator-O2OPGHJG.js → geminiContentGenerator-33RP4WKD.js} +3 -3
- package/chunks/{glob-57BSREPN.js → glob-WEE3CJL6.js} +15 -15
- package/chunks/{grep-XO5JOC7T.js → grep-DZKSBFZK.js} +15 -15
- package/chunks/{ja-D63TAEBO.js → ja-V6OQ6VL7.js} +26 -0
- package/chunks/{keychain-token-storage-DMFP5IJM.js → keychain-token-storage-335UOLJ6.js} +2 -2
- package/chunks/{ls-SUILOZZB.js → ls-6F3VSP6S.js} +3 -3
- package/chunks/{lsp-6TQBWVMZ.js → lsp-67Y7DJN5.js} +2 -2
- package/chunks/{monitor-BECPGO3K.js → monitor-EDZWEZVS.js} +33 -24
- package/chunks/{openaiContentGenerator-KEZQHIRM.js → openaiContentGenerator-5NQG3W64.js} +10 -10
- package/chunks/{pt-XUV7FSKC.js → pt-ZLE6SA4A.js} +26 -0
- package/chunks/{qwenContentGenerator-RPMRXTNH.js → qwenContentGenerator-4DPUUS6R.js} +17 -17
- package/chunks/{qwenOAuth2-JSQ7EPR3.js → qwenOAuth2-JE7H47TE.js} +3 -3
- package/chunks/{read-file-LGHEIQNH.js → read-file-CQOF7BQ2.js} +7 -7
- package/chunks/{ripGrep-6SFSXZ2G.js → ripGrep-KR5LKGTI.js} +15 -15
- package/chunks/{ru-7KHWMN3A.js → ru-A4OHIUNN.js} +26 -0
- package/chunks/{send-message-Q2JRAC3J.js → send-message-GB4AQZNC.js} +2 -2
- package/chunks/{serve-27O2AFE3.js → serve-GAD2PEST.js} +1299 -408
- package/chunks/{shell-J7K5KYCH.js → shell-E2HMCBGR.js} +15 -15
- package/chunks/{skill-2R7P4ATS.js → skill-KDZH6UZ6.js} +9 -9
- package/chunks/{src-CGEDVW67.js → src-LY4RU5AI.js} +96 -24
- package/chunks/{syntheticOutput-S4DRGMQM.js → syntheticOutput-HFL3DE7R.js} +3 -3
- package/chunks/{task-stop-7THHVAQS.js → task-stop-ZQF26RXS.js} +2 -2
- package/chunks/{todoWrite-WKUGUTPX.js → todoWrite-U4SC643O.js} +3 -3
- package/chunks/{tool-search-XOH3ZWVS.js → tool-search-U4XQVLFU.js} +7 -7
- package/chunks/{web-fetch-OZE6ZQUF.js → web-fetch-BRWZ4WSE.js} +4 -4
- package/chunks/{write-file-74NQ27Q2.js → write-file-NBLRMNGB.js} +20 -16
- package/chunks/{zh-TW-O36Q4V7E.js → zh-TW-552S24LR.js} +28 -0
- package/chunks/{zh-VGHU6XBB.js → zh-V32QONGV.js} +28 -0
- package/cli.js +8027 -5104
- package/locales/ca.js +40 -0
- package/locales/de.js +40 -0
- package/locales/en.js +43 -0
- package/locales/fr.js +41 -0
- package/locales/ja.js +39 -0
- package/locales/pt.js +39 -0
- package/locales/ru.js +39 -0
- package/locales/zh-TW.js +41 -0
- package/locales/zh.js +41 -0
- package/package.json +2 -2
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import {
|
|
4
4
|
TextTokenizer,
|
|
5
5
|
isSupportedImageMimeType
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VTPOO6GV.js";
|
|
7
7
|
import {
|
|
8
8
|
createDebugLogger
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XP27SJMH.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esbuild_shims
|
|
12
12
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -336,8 +336,8 @@ __name(sanitizeCwd, "sanitizeCwd");
|
|
|
336
336
|
function isSubpath(parentPath, childPath) {
|
|
337
337
|
const isWindows = os.platform() === "win32";
|
|
338
338
|
const pathModule = isWindows ? path.win32 : path;
|
|
339
|
-
const
|
|
340
|
-
return !
|
|
339
|
+
const relative2 = pathModule.relative(parentPath, childPath);
|
|
340
|
+
return !relative2.startsWith(`..${pathModule.sep}`) && relative2 !== ".." && !pathModule.isAbsolute(relative2);
|
|
341
341
|
}
|
|
342
342
|
__name(isSubpath, "isSubpath");
|
|
343
343
|
function isSubpaths(parentPath, childPath) {
|
|
@@ -443,6 +443,17 @@ var Storage = class _Storage {
|
|
|
443
443
|
}
|
|
444
444
|
return resolved;
|
|
445
445
|
}
|
|
446
|
+
/**
|
|
447
|
+
* Sanitizes a session id for use as a plan filename.
|
|
448
|
+
*
|
|
449
|
+
* Plan files are keyed by session id, but the raw id is public SDK input.
|
|
450
|
+
* Strip directory separators and Windows-invalid filename characters so a
|
|
451
|
+
* hostile value cannot escape the plans directory.
|
|
452
|
+
*/
|
|
453
|
+
static sanitizePlanSessionId(sessionId) {
|
|
454
|
+
const safeName = path2.basename(sessionId.replace(/\\/g, "/")).replace(/^\.+/g, "_").replace(/[<>:"|?*\x00-\x1F]/g, "_");
|
|
455
|
+
return safeName || "_";
|
|
456
|
+
}
|
|
446
457
|
static resolveRuntimeBaseDir(dir, cwd) {
|
|
447
458
|
if (!dir) {
|
|
448
459
|
return null;
|
|
@@ -531,11 +542,71 @@ var Storage = class _Storage {
|
|
|
531
542
|
static getGlobalIdeDir() {
|
|
532
543
|
return path2.join(_Storage.getGlobalQwenDir(), IDE_DIR_NAME);
|
|
533
544
|
}
|
|
534
|
-
|
|
545
|
+
/**
|
|
546
|
+
* Resolves pathToResolve by realpathing its deepest existing ancestor and
|
|
547
|
+
* appending the not-yet-created remainder.
|
|
548
|
+
*/
|
|
549
|
+
static resolvePathThroughExistingAncestor(pathToResolve) {
|
|
550
|
+
let candidate = pathToResolve;
|
|
551
|
+
while (true) {
|
|
552
|
+
try {
|
|
553
|
+
const realCandidate = fs2.realpathSync(candidate);
|
|
554
|
+
const remainder = path2.relative(candidate, pathToResolve);
|
|
555
|
+
return path2.join(realCandidate, remainder);
|
|
556
|
+
} catch (err) {
|
|
557
|
+
if (err.code !== "ENOENT") {
|
|
558
|
+
throw err;
|
|
559
|
+
}
|
|
560
|
+
const parent = path2.dirname(candidate);
|
|
561
|
+
if (parent === candidate) {
|
|
562
|
+
return pathToResolve;
|
|
563
|
+
}
|
|
564
|
+
candidate = parent;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
/**
|
|
569
|
+
* Checks whether {@link childPath} resides within {@link parentPath},
|
|
570
|
+
* resolving symbolic links to prevent traversal bypass attacks.
|
|
571
|
+
*/
|
|
572
|
+
static isPathWithinDirectory(childPath, parentPath) {
|
|
573
|
+
const realParent = _Storage.resolvePathThroughExistingAncestor(parentPath);
|
|
574
|
+
const realChild = _Storage.resolvePathThroughExistingAncestor(childPath);
|
|
575
|
+
const relativePath = path2.relative(realParent, realChild);
|
|
576
|
+
return relativePath === "" || !relativePath.startsWith("..") && !path2.isAbsolute(relativePath);
|
|
577
|
+
}
|
|
578
|
+
static assertPathWithinDirectory(childPath, parentPath, errorMessage) {
|
|
579
|
+
if (!_Storage.isPathWithinDirectory(childPath, parentPath)) {
|
|
580
|
+
throw new FatalConfigError(errorMessage);
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
static getPlansDir(projectRoot, plansDirectory) {
|
|
584
|
+
const configuredPlansDirectory = plansDirectory?.trim();
|
|
585
|
+
if (configuredPlansDirectory) {
|
|
586
|
+
if (!projectRoot) {
|
|
587
|
+
throw new FatalConfigError(
|
|
588
|
+
"projectRoot is required when plansDirectory is configured."
|
|
589
|
+
);
|
|
590
|
+
}
|
|
591
|
+
const resolvedProjectRoot = path2.resolve(projectRoot);
|
|
592
|
+
const resolvedPlansDirectory = _Storage.resolvePath(
|
|
593
|
+
configuredPlansDirectory,
|
|
594
|
+
resolvedProjectRoot
|
|
595
|
+
);
|
|
596
|
+
_Storage.assertPathWithinDirectory(
|
|
597
|
+
resolvedPlansDirectory,
|
|
598
|
+
resolvedProjectRoot,
|
|
599
|
+
`plansDirectory must resolve within the project root.`
|
|
600
|
+
);
|
|
601
|
+
return resolvedPlansDirectory;
|
|
602
|
+
}
|
|
535
603
|
return path2.join(_Storage.getGlobalQwenDir(), PLANS_DIR_NAME);
|
|
536
604
|
}
|
|
537
|
-
static getPlanFilePath(sessionId) {
|
|
538
|
-
return path2.join(
|
|
605
|
+
static getPlanFilePath(sessionId, projectRoot, plansDirectory) {
|
|
606
|
+
return path2.join(
|
|
607
|
+
_Storage.getPlansDir(projectRoot, plansDirectory),
|
|
608
|
+
`${_Storage.sanitizePlanSessionId(sessionId)}.md`
|
|
609
|
+
);
|
|
539
610
|
}
|
|
540
611
|
static getGlobalBinDir() {
|
|
541
612
|
return path2.join(_Storage.getGlobalQwenDir(), BIN_DIR_NAME);
|
|
@@ -4,34 +4,34 @@ import {
|
|
|
4
4
|
collectContextData,
|
|
5
5
|
contextCommand,
|
|
6
6
|
formatContextUsageText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JHMX4QTD.js";
|
|
8
8
|
import "./chunk-Y6Z2O3WR.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-MNPZ2WO6.js";
|
|
10
10
|
import "./chunk-5P5XGNYH.js";
|
|
11
11
|
import "./chunk-K5PGHDBN.js";
|
|
12
12
|
import "./chunk-O4PICXES.js";
|
|
13
13
|
import "./chunk-TW522KN6.js";
|
|
14
14
|
import "./chunk-MLZQVCF3.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-PPHYLJSS.js";
|
|
16
|
+
import "./chunk-G7YTSRES.js";
|
|
17
|
+
import "./chunk-XVHR7ATJ.js";
|
|
18
18
|
import "./chunk-77WXWU44.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-F23NCRJ2.js";
|
|
20
|
+
import "./chunk-VTPOO6GV.js";
|
|
21
|
+
import "./chunk-C3LHPHN2.js";
|
|
22
22
|
import "./chunk-SYCJMSIJ.js";
|
|
23
23
|
import "./chunk-UWCTAVOD.js";
|
|
24
24
|
import "./chunk-OFEVLU4C.js";
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-PR4T27R7.js";
|
|
26
|
+
import "./chunk-CW44BRRA.js";
|
|
27
|
+
import "./chunk-D5NTAHYL.js";
|
|
28
28
|
import "./chunk-T4VD6OJ4.js";
|
|
29
29
|
import "./chunk-RDYWTWEM.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-JYQUJ5DS.js";
|
|
31
|
+
import "./chunk-FZIUV27X.js";
|
|
32
|
+
import "./chunk-2B7UBDY5.js";
|
|
33
|
+
import "./chunk-KXZ4TJB4.js";
|
|
34
|
+
import "./chunk-XP27SJMH.js";
|
|
35
35
|
import "./chunk-E7E2MFYM.js";
|
|
36
36
|
import "./chunk-ZERZSAZL.js";
|
|
37
37
|
import "./chunk-QN5NZ3UQ.js";
|
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
BaseToolInvocation,
|
|
12
12
|
ToolDisplayNames,
|
|
13
13
|
ToolNames
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-FZIUV27X.js";
|
|
15
|
+
import "./chunk-XP27SJMH.js";
|
|
16
16
|
import "./chunk-QWSRH265.js";
|
|
17
17
|
import {
|
|
18
18
|
init_esbuild_shims
|
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
BaseToolInvocation,
|
|
9
9
|
ToolDisplayNames,
|
|
10
10
|
ToolNames
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-FZIUV27X.js";
|
|
12
|
+
import "./chunk-XP27SJMH.js";
|
|
13
13
|
import "./chunk-QWSRH265.js";
|
|
14
14
|
import {
|
|
15
15
|
init_esbuild_shims
|
|
@@ -87,6 +87,32 @@ var de_default = {
|
|
|
87
87
|
"Generate a one-line session recap now": "Jetzt eine einzeilige Sitzungszusammenfassung erstellen",
|
|
88
88
|
"Rename the current conversation. --auto lets the fast model pick a title.": "Die aktuelle Unterhaltung umbenennen. Mit --auto l\xE4sst du das schnelle Modell einen Titel w\xE4hlen.",
|
|
89
89
|
"Rewind conversation to a previous turn": "Die Unterhaltung auf einen fr\xFCheren Gespr\xE4chsschritt zur\xFCcksetzen",
|
|
90
|
+
"Rewind Conversation": "Unterhaltung zur\xFCckspulen",
|
|
91
|
+
"No user turns to rewind to.": "Keine Benutzerrunden zum Zur\xFCckspulen.",
|
|
92
|
+
"Rewind to: ": "Zur\xFCckspulen zu: ",
|
|
93
|
+
"Restore code and conversation": "Code und Unterhaltung wiederherstellen",
|
|
94
|
+
"Restore conversation only": "Nur Unterhaltung wiederherstellen",
|
|
95
|
+
"Restore code only": "Nur Code wiederherstellen",
|
|
96
|
+
"Never mind": "Egal",
|
|
97
|
+
"Computing file changes...": "Datei\xE4nderungen werden berechnet...",
|
|
98
|
+
"Restoring...": "Wiederherstellung l\xE4uft...",
|
|
99
|
+
"Restored {{count}} file(s).": "{{count}} Datei(en) wiederhergestellt.",
|
|
100
|
+
"Failed to restore files: {{error}}": "Fehler beim Wiederherstellen der Dateien: {{error}}",
|
|
101
|
+
"Rewind failed: {{error}}": "Zur\xFCckspulen fehlgeschlagen: {{error}}",
|
|
102
|
+
"Cannot rewind conversation: no active model client.": "Konversation kann nicht zur\xFCckgespult werden: kein aktiver Modell-Client.",
|
|
103
|
+
"Code restored, but conversation could not be rewound (no active client).": "Code wiederhergestellt, aber Konversation konnte nicht zur\xFCckgespult werden (kein aktiver Client).",
|
|
104
|
+
"Conversation rewound. Edit your prompt and press Enter to continue.": "Konversation zur\xFCckgespult. Bearbeite deinen Prompt und dr\xFCcke Enter, um fortzufahren.",
|
|
105
|
+
"Rewinding does not affect files edited manually or via shell commands.": "Das Zur\xFCckspulen wirkt sich nicht auf Dateien aus, die manuell oder per Shell-Befehl ge\xE4ndert wurden.",
|
|
106
|
+
"Cannot rewind to a turn that was compressed. Try a more recent turn.": "Zu einem komprimierten Turn kann nicht zur\xFCckgespult werden. Bitte einen aktuelleren Turn versuchen.",
|
|
107
|
+
"File restore is unavailable for this turn (no captured file changes, or this turn predates the current session).": "Datei-Wiederherstellung ist f\xFCr diesen Turn nicht verf\xFCgbar (keine erfassten Datei\xE4nderungen, oder dieser Turn liegt vor der aktuellen Sitzung).",
|
|
108
|
+
"(+{{insertions}} -{{deletions}} in {{count}} file)": "(+{{insertions}} -{{deletions}} in {{count}} Datei)",
|
|
109
|
+
"(+{{insertions}} -{{deletions}} in {{count}} files)": "(+{{insertions}} -{{deletions}} in {{count}} Dateien)",
|
|
110
|
+
"Failed to restore {{count}} file(s): {{files}}": "{{count}} Datei(en) konnten nicht wiederhergestellt werden: {{files}}",
|
|
111
|
+
"Cannot restore files: this turn was created before file checkpointing was enabled.": "Dateien k\xF6nnen nicht wiederhergestellt werden: Dieser Turn wurde erstellt, bevor Datei-Checkpointing aktiviert war.",
|
|
112
|
+
"No files needed to be restored.": "Keine Dateien mussten wiederhergestellt werden.",
|
|
113
|
+
"\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to go back": "\u2191\u2193 navigieren \xB7 Enter ausw\xE4hlen \xB7 Esc zur\xFCck",
|
|
114
|
+
"\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to cancel": "\u2191\u2193 navigieren \xB7 Enter ausw\xE4hlen \xB7 Esc abbrechen",
|
|
115
|
+
"Enter/Y to confirm \xB7 Esc/N to go back": "Enter/Y best\xE4tigen \xB7 Esc/N zur\xFCck",
|
|
90
116
|
"change the theme": "Design \xE4ndern",
|
|
91
117
|
"Select Theme": "Design ausw\xE4hlen",
|
|
92
118
|
Preview: "Vorschau",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import {
|
|
4
4
|
StructuredToolError,
|
|
5
5
|
checkPriorRead
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-EDYSNFEM.js";
|
|
7
7
|
import {
|
|
8
8
|
CommitAttributionService,
|
|
9
9
|
DEFAULT_DIFF_OPTIONS,
|
|
@@ -13,18 +13,18 @@ import {
|
|
|
13
13
|
getDiffStat,
|
|
14
14
|
needsUtf8Bom,
|
|
15
15
|
safeLiteralReplace
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-MNPZ2WO6.js";
|
|
17
17
|
import "./chunk-5P5XGNYH.js";
|
|
18
18
|
import "./chunk-K5PGHDBN.js";
|
|
19
19
|
import "./chunk-O4PICXES.js";
|
|
20
20
|
import "./chunk-TW522KN6.js";
|
|
21
21
|
import "./chunk-MLZQVCF3.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-PPHYLJSS.js";
|
|
23
|
+
import "./chunk-G7YTSRES.js";
|
|
24
|
+
import "./chunk-XVHR7ATJ.js";
|
|
25
25
|
import "./chunk-77WXWU44.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-F23NCRJ2.js";
|
|
27
|
+
import "./chunk-VTPOO6GV.js";
|
|
28
28
|
import {
|
|
29
29
|
FileOperationEvent,
|
|
30
30
|
ReadFileTool,
|
|
@@ -32,32 +32,32 @@ import {
|
|
|
32
32
|
getLanguageFromFilePath,
|
|
33
33
|
getSpecificMimeType,
|
|
34
34
|
logFileOperation
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-C3LHPHN2.js";
|
|
36
36
|
import "./chunk-SYCJMSIJ.js";
|
|
37
37
|
import "./chunk-UWCTAVOD.js";
|
|
38
38
|
import "./chunk-OFEVLU4C.js";
|
|
39
39
|
import {
|
|
40
40
|
isAutoMemPath
|
|
41
|
-
} from "./chunk-
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
41
|
+
} from "./chunk-PR4T27R7.js";
|
|
42
|
+
import "./chunk-CW44BRRA.js";
|
|
43
|
+
import "./chunk-D5NTAHYL.js";
|
|
44
44
|
import "./chunk-T4VD6OJ4.js";
|
|
45
45
|
import "./chunk-RDYWTWEM.js";
|
|
46
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-JYQUJ5DS.js";
|
|
47
47
|
import {
|
|
48
48
|
BaseDeclarativeTool,
|
|
49
49
|
ToolDisplayNames,
|
|
50
50
|
ToolNames
|
|
51
|
-
} from "./chunk-
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-
|
|
51
|
+
} from "./chunk-FZIUV27X.js";
|
|
52
|
+
import "./chunk-2B7UBDY5.js";
|
|
53
|
+
import "./chunk-KXZ4TJB4.js";
|
|
54
54
|
import {
|
|
55
55
|
createDebugLogger,
|
|
56
56
|
isNodeError,
|
|
57
57
|
makeRelative,
|
|
58
58
|
shortenPath,
|
|
59
59
|
unescapePath
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-XP27SJMH.js";
|
|
61
61
|
import "./chunk-E7E2MFYM.js";
|
|
62
62
|
import "./chunk-ZERZSAZL.js";
|
|
63
63
|
import "./chunk-QN5NZ3UQ.js";
|
|
@@ -666,6 +666,10 @@ var EditToolInvocation = class {
|
|
|
666
666
|
};
|
|
667
667
|
}
|
|
668
668
|
try {
|
|
669
|
+
try {
|
|
670
|
+
await this.config.getFileHistoryService().trackEdit(this.params.file_path);
|
|
671
|
+
} catch {
|
|
672
|
+
}
|
|
669
673
|
if (!this.config.getFileReadCacheDisabled()) {
|
|
670
674
|
const writeDecision = await checkPriorRead(
|
|
671
675
|
this.config.getFileReadCache(),
|
|
@@ -110,6 +110,32 @@ var en_default = {
|
|
|
110
110
|
"Generate a one-line session recap now": "Generate a one-line session recap now",
|
|
111
111
|
"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
112
|
"Rewind conversation to a previous turn": "Rewind conversation to a previous turn",
|
|
113
|
+
"Rewind Conversation": "Rewind Conversation",
|
|
114
|
+
"No user turns to rewind to.": "No user turns to rewind to.",
|
|
115
|
+
"Rewind to: ": "Rewind to: ",
|
|
116
|
+
"Restore code and conversation": "Restore code and conversation",
|
|
117
|
+
"Restore conversation only": "Restore conversation only",
|
|
118
|
+
"Restore code only": "Restore code only",
|
|
119
|
+
"Never mind": "Never mind",
|
|
120
|
+
"Computing file changes...": "Computing file changes...",
|
|
121
|
+
"Restoring...": "Restoring...",
|
|
122
|
+
"Restored {{count}} file(s).": "Restored {{count}} file(s).",
|
|
123
|
+
"Failed to restore files: {{error}}": "Failed to restore files: {{error}}",
|
|
124
|
+
"Rewind failed: {{error}}": "Rewind failed: {{error}}",
|
|
125
|
+
"Cannot rewind conversation: no active model client.": "Cannot rewind conversation: no active model client.",
|
|
126
|
+
"Code restored, but conversation could not be rewound (no active client).": "Code restored, but conversation could not be rewound (no active client).",
|
|
127
|
+
"Conversation rewound. Edit your prompt and press Enter to continue.": "Conversation rewound. Edit your prompt and press Enter to continue.",
|
|
128
|
+
"Rewinding does not affect files edited manually or via shell commands.": "Rewinding does not affect files edited manually or via shell commands.",
|
|
129
|
+
"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.",
|
|
130
|
+
"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).",
|
|
131
|
+
"(+{{insertions}} -{{deletions}} in {{count}} file)": "(+{{insertions}} -{{deletions}} in {{count}} file)",
|
|
132
|
+
"(+{{insertions}} -{{deletions}} in {{count}} files)": "(+{{insertions}} -{{deletions}} in {{count}} files)",
|
|
133
|
+
"Failed to restore {{count}} file(s): {{files}}": "Failed to restore {{count}} file(s): {{files}}",
|
|
134
|
+
"Cannot restore files: this turn was created before file checkpointing was enabled.": "Cannot restore files: this turn was created before file checkpointing was enabled.",
|
|
135
|
+
"No files needed to be restored.": "No files needed to be restored.",
|
|
136
|
+
"\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",
|
|
137
|
+
"\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to cancel": "\u2191\u2193 to navigate \xB7 Enter to select \xB7 Esc to cancel",
|
|
138
|
+
"Enter/Y to confirm \xB7 Esc/N to go back": "Enter/Y to confirm \xB7 Esc/N to go back",
|
|
113
139
|
"change the theme": "change the theme",
|
|
114
140
|
"Select Theme": "Select Theme",
|
|
115
141
|
Preview: "Preview",
|
|
@@ -1422,6 +1448,7 @@ var en_default = {
|
|
|
1422
1448
|
"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
1449
|
"Press Ctrl+O to show full tool output": "Press Ctrl+O to show full tool output",
|
|
1424
1450
|
"Switch to plan mode or exit plan mode": "Switch to plan mode or exit plan mode",
|
|
1451
|
+
"Set a goal \u2014 keep working until the condition is met": "Set a goal \u2014 keep working until the condition is met",
|
|
1425
1452
|
"Exited plan mode. Previous approval mode restored.": "Exited plan mode. Previous approval mode restored.",
|
|
1426
1453
|
"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
1454
|
'Already in plan mode. Use "/plan exit" to exit plan mode.': 'Already in plan mode. Use "/plan exit" to exit plan mode.',
|
|
@@ -1429,6 +1456,7 @@ var en_default = {
|
|
|
1429
1456
|
"Set up Qwen Code's status line UI": "Set up Qwen Code's status line UI",
|
|
1430
1457
|
// === Core: added from PR #3328 ===
|
|
1431
1458
|
"Open the memory manager.": "Open the memory manager.",
|
|
1459
|
+
"Show current process memory diagnostics": "Show current process memory diagnostics",
|
|
1432
1460
|
"Save a durable memory to the memory system.": "Save a durable memory to the memory system.",
|
|
1433
1461
|
"Ask a quick side question without affecting the main conversation": "Ask a quick side question without affecting the main conversation",
|
|
1434
1462
|
"Manage Arena sessions": "Manage Arena sessions",
|
|
@@ -3,39 +3,39 @@
|
|
|
3
3
|
import {
|
|
4
4
|
GitWorktreeService,
|
|
5
5
|
writeWorktreeSessionMarker
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MNPZ2WO6.js";
|
|
7
7
|
import "./chunk-5P5XGNYH.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-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-PPHYLJSS.js";
|
|
13
|
+
import "./chunk-G7YTSRES.js";
|
|
14
|
+
import "./chunk-XVHR7ATJ.js";
|
|
15
15
|
import "./chunk-77WXWU44.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-F23NCRJ2.js";
|
|
17
|
+
import "./chunk-VTPOO6GV.js";
|
|
18
|
+
import "./chunk-C3LHPHN2.js";
|
|
19
19
|
import "./chunk-SYCJMSIJ.js";
|
|
20
20
|
import "./chunk-UWCTAVOD.js";
|
|
21
21
|
import "./chunk-OFEVLU4C.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-PR4T27R7.js";
|
|
23
|
+
import "./chunk-CW44BRRA.js";
|
|
24
|
+
import "./chunk-D5NTAHYL.js";
|
|
25
25
|
import "./chunk-T4VD6OJ4.js";
|
|
26
26
|
import "./chunk-RDYWTWEM.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-JYQUJ5DS.js";
|
|
28
28
|
import {
|
|
29
29
|
BaseDeclarativeTool,
|
|
30
30
|
BaseToolInvocation,
|
|
31
31
|
ToolDisplayNames,
|
|
32
32
|
ToolNames
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
33
|
+
} from "./chunk-FZIUV27X.js";
|
|
34
|
+
import "./chunk-2B7UBDY5.js";
|
|
35
|
+
import "./chunk-KXZ4TJB4.js";
|
|
36
36
|
import {
|
|
37
37
|
createDebugLogger
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-XP27SJMH.js";
|
|
39
39
|
import "./chunk-E7E2MFYM.js";
|
|
40
40
|
import "./chunk-ZERZSAZL.js";
|
|
41
41
|
import "./chunk-QN5NZ3UQ.js";
|
|
@@ -4,40 +4,40 @@ import {
|
|
|
4
4
|
GitWorktreeService,
|
|
5
5
|
readWorktreeSessionMarker,
|
|
6
6
|
worktreeBranchForSlug
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MNPZ2WO6.js";
|
|
8
8
|
import "./chunk-5P5XGNYH.js";
|
|
9
9
|
import "./chunk-K5PGHDBN.js";
|
|
10
10
|
import "./chunk-O4PICXES.js";
|
|
11
11
|
import "./chunk-TW522KN6.js";
|
|
12
12
|
import "./chunk-MLZQVCF3.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-PPHYLJSS.js";
|
|
14
|
+
import "./chunk-G7YTSRES.js";
|
|
15
|
+
import "./chunk-XVHR7ATJ.js";
|
|
16
16
|
import "./chunk-77WXWU44.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-F23NCRJ2.js";
|
|
18
|
+
import "./chunk-VTPOO6GV.js";
|
|
19
|
+
import "./chunk-C3LHPHN2.js";
|
|
20
20
|
import "./chunk-SYCJMSIJ.js";
|
|
21
21
|
import "./chunk-UWCTAVOD.js";
|
|
22
22
|
import "./chunk-OFEVLU4C.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-PR4T27R7.js";
|
|
24
|
+
import "./chunk-CW44BRRA.js";
|
|
25
|
+
import "./chunk-D5NTAHYL.js";
|
|
26
26
|
import "./chunk-T4VD6OJ4.js";
|
|
27
27
|
import "./chunk-RDYWTWEM.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-JYQUJ5DS.js";
|
|
29
29
|
import {
|
|
30
30
|
BaseDeclarativeTool,
|
|
31
31
|
BaseToolInvocation,
|
|
32
32
|
ToolDisplayNames,
|
|
33
33
|
ToolNames
|
|
34
|
-
} from "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
34
|
+
} from "./chunk-FZIUV27X.js";
|
|
35
|
+
import "./chunk-2B7UBDY5.js";
|
|
36
|
+
import "./chunk-KXZ4TJB4.js";
|
|
37
37
|
import {
|
|
38
38
|
createDebugLogger,
|
|
39
39
|
isNodeError
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-XP27SJMH.js";
|
|
41
41
|
import "./chunk-E7E2MFYM.js";
|
|
42
42
|
import "./chunk-ZERZSAZL.js";
|
|
43
43
|
import "./chunk-QN5NZ3UQ.js";
|
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import "./chunk-
|
|
3
|
+
import "./chunk-MNPZ2WO6.js";
|
|
4
4
|
import "./chunk-5P5XGNYH.js";
|
|
5
5
|
import "./chunk-K5PGHDBN.js";
|
|
6
6
|
import "./chunk-O4PICXES.js";
|
|
7
7
|
import "./chunk-TW522KN6.js";
|
|
8
8
|
import "./chunk-MLZQVCF3.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-PPHYLJSS.js";
|
|
10
|
+
import "./chunk-G7YTSRES.js";
|
|
11
|
+
import "./chunk-XVHR7ATJ.js";
|
|
12
12
|
import "./chunk-77WXWU44.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-F23NCRJ2.js";
|
|
14
|
+
import "./chunk-VTPOO6GV.js";
|
|
15
|
+
import "./chunk-C3LHPHN2.js";
|
|
16
16
|
import "./chunk-SYCJMSIJ.js";
|
|
17
17
|
import "./chunk-UWCTAVOD.js";
|
|
18
18
|
import "./chunk-OFEVLU4C.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-PR4T27R7.js";
|
|
20
|
+
import "./chunk-CW44BRRA.js";
|
|
21
|
+
import "./chunk-D5NTAHYL.js";
|
|
22
22
|
import "./chunk-T4VD6OJ4.js";
|
|
23
23
|
import "./chunk-RDYWTWEM.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-JYQUJ5DS.js";
|
|
25
25
|
import {
|
|
26
26
|
BaseDeclarativeTool,
|
|
27
27
|
BaseToolInvocation,
|
|
28
28
|
ToolDisplayNames,
|
|
29
29
|
ToolNames
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
30
|
+
} from "./chunk-FZIUV27X.js";
|
|
31
|
+
import "./chunk-2B7UBDY5.js";
|
|
32
|
+
import "./chunk-KXZ4TJB4.js";
|
|
33
33
|
import {
|
|
34
34
|
createDebugLogger
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-XP27SJMH.js";
|
|
36
36
|
import "./chunk-E7E2MFYM.js";
|
|
37
37
|
import "./chunk-ZERZSAZL.js";
|
|
38
38
|
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",
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
InstallationManager
|
|
5
|
-
} from "./chunk-
|
|
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-
|
|
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.
|
|
213
|
+
const version = "0.16.0-preview.0";
|
|
214
214
|
const userAgent = config.userAgent || `QwenCode/${version} (${process.platform}; ${process.arch})`;
|
|
215
215
|
const baseHeaders = {
|
|
216
216
|
"User-Agent": userAgent
|