@qwen-code/qwen-code 0.12.3 → 0.12.4-nightly.20260316.110fcd7b7
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/cli.js +641 -294
- package/locales/de.js +34 -0
- package/locales/en.js +33 -0
- package/locales/ja.js +34 -0
- package/locales/pt.js +34 -0
- package/locales/ru.js +34 -0
- package/locales/zh.js +33 -0
- package/package.json +2 -2
- package/sandbox-macos-permissive-open.sb +3 -1
package/cli.js
CHANGED
|
@@ -31045,9 +31045,9 @@ var require_logging_utils = __commonJS({
|
|
|
31045
31045
|
this.debugPkg = pkg2;
|
|
31046
31046
|
}
|
|
31047
31047
|
makeLogger(namespace) {
|
|
31048
|
-
const
|
|
31048
|
+
const debugLogger138 = this.debugPkg(namespace);
|
|
31049
31049
|
return (fields, ...args) => {
|
|
31050
|
-
|
|
31050
|
+
debugLogger138(args[0], ...args.slice(1));
|
|
31051
31051
|
};
|
|
31052
31052
|
}
|
|
31053
31053
|
setFilters() {
|
|
@@ -31071,7 +31071,7 @@ var require_logging_utils = __commonJS({
|
|
|
31071
31071
|
}
|
|
31072
31072
|
makeLogger(namespace) {
|
|
31073
31073
|
var _a7;
|
|
31074
|
-
const
|
|
31074
|
+
const debugLogger138 = (_a7 = this.upstream) === null || _a7 === void 0 ? void 0 : _a7.makeLogger(namespace);
|
|
31075
31075
|
return (fields, ...args) => {
|
|
31076
31076
|
var _a8;
|
|
31077
31077
|
const severity = (_a8 = fields.severity) !== null && _a8 !== void 0 ? _a8 : LogSeverity.INFO;
|
|
@@ -31080,8 +31080,8 @@ var require_logging_utils = __commonJS({
|
|
|
31080
31080
|
message: util3.format(...args)
|
|
31081
31081
|
}, fields);
|
|
31082
31082
|
const jsonString = JSON.stringify(json3);
|
|
31083
|
-
if (
|
|
31084
|
-
|
|
31083
|
+
if (debugLogger138) {
|
|
31084
|
+
debugLogger138(fields, jsonString);
|
|
31085
31085
|
} else {
|
|
31086
31086
|
console.log("%s", jsonString);
|
|
31087
31087
|
}
|
|
@@ -126040,7 +126040,7 @@ var require_import_in_the_middle = __commonJS({
|
|
|
126040
126040
|
init_esbuild_shims();
|
|
126041
126041
|
var path128 = __require("path");
|
|
126042
126042
|
var parse14 = require_module_details_from_path();
|
|
126043
|
-
var { fileURLToPath:
|
|
126043
|
+
var { fileURLToPath: fileURLToPath18 } = __require("url");
|
|
126044
126044
|
var { MessageChannel: MessageChannel2 } = __require("worker_threads");
|
|
126045
126045
|
var {
|
|
126046
126046
|
importHooks,
|
|
@@ -126124,7 +126124,7 @@ var require_import_in_the_middle = __commonJS({
|
|
|
126124
126124
|
} else {
|
|
126125
126125
|
if (name3.startsWith("file://")) {
|
|
126126
126126
|
try {
|
|
126127
|
-
name3 =
|
|
126127
|
+
name3 = fileURLToPath18(name3);
|
|
126128
126128
|
} catch (e4) {
|
|
126129
126129
|
}
|
|
126130
126130
|
}
|
|
@@ -126139,7 +126139,7 @@ var require_import_in_the_middle = __commonJS({
|
|
|
126139
126139
|
if (moduleName2 === name3) {
|
|
126140
126140
|
if (baseDir) {
|
|
126141
126141
|
if (internals) {
|
|
126142
|
-
name3 = name3 + path128.sep + path128.relative(baseDir,
|
|
126142
|
+
name3 = name3 + path128.sep + path128.relative(baseDir, fileURLToPath18(filename));
|
|
126143
126143
|
} else {
|
|
126144
126144
|
if (!getExperimentalPatchInternals() && !baseDir.endsWith(specifiers.get(filename))) continue;
|
|
126145
126145
|
}
|
|
@@ -130045,7 +130045,7 @@ function initializeTelemetry(config2) {
|
|
|
130045
130045
|
if (telemetryInitialized || !config2.getTelemetryEnabled()) {
|
|
130046
130046
|
return;
|
|
130047
130047
|
}
|
|
130048
|
-
const
|
|
130048
|
+
const debugLogger138 = createDebugLogger("OTEL");
|
|
130049
130049
|
const resource = (0, import_resources.resourceFromAttributes)({
|
|
130050
130050
|
[SemanticResourceAttributes.SERVICE_NAME]: SERVICE_NAME,
|
|
130051
130051
|
[SemanticResourceAttributes.SERVICE_VERSION]: process.version,
|
|
@@ -130114,11 +130114,11 @@ function initializeTelemetry(config2) {
|
|
|
130114
130114
|
});
|
|
130115
130115
|
try {
|
|
130116
130116
|
sdk.start();
|
|
130117
|
-
|
|
130117
|
+
debugLogger138.debug("OpenTelemetry SDK started successfully.");
|
|
130118
130118
|
telemetryInitialized = true;
|
|
130119
130119
|
initializeMetrics(config2);
|
|
130120
130120
|
} catch (error40) {
|
|
130121
|
-
|
|
130121
|
+
debugLogger138.error("Error starting OpenTelemetry SDK:", error40);
|
|
130122
130122
|
}
|
|
130123
130123
|
process.on("SIGTERM", () => {
|
|
130124
130124
|
shutdownTelemetry();
|
|
@@ -130134,12 +130134,12 @@ async function shutdownTelemetry() {
|
|
|
130134
130134
|
if (!telemetryInitialized || !sdk) {
|
|
130135
130135
|
return;
|
|
130136
130136
|
}
|
|
130137
|
-
const
|
|
130137
|
+
const debugLogger138 = createDebugLogger("OTEL");
|
|
130138
130138
|
try {
|
|
130139
130139
|
await sdk.shutdown();
|
|
130140
|
-
|
|
130140
|
+
debugLogger138.debug("OpenTelemetry SDK shut down successfully.");
|
|
130141
130141
|
} catch (error40) {
|
|
130142
|
-
|
|
130142
|
+
debugLogger138.error("Error shutting down SDK:", error40);
|
|
130143
130143
|
} finally {
|
|
130144
130144
|
telemetryInitialized = false;
|
|
130145
130145
|
}
|
|
@@ -132797,46 +132797,50 @@ var init_converter = __esm({
|
|
|
132797
132797
|
* Convert OpenAI response to Gemini format
|
|
132798
132798
|
*/
|
|
132799
132799
|
convertOpenAIResponseToGemini(openaiResponse) {
|
|
132800
|
-
const choice2 = openaiResponse.choices[0];
|
|
132800
|
+
const choice2 = openaiResponse.choices?.[0];
|
|
132801
132801
|
const response = new GenerateContentResponse();
|
|
132802
|
-
|
|
132803
|
-
|
|
132804
|
-
|
|
132805
|
-
|
|
132806
|
-
|
|
132807
|
-
|
|
132808
|
-
|
|
132809
|
-
|
|
132810
|
-
|
|
132811
|
-
|
|
132812
|
-
|
|
132813
|
-
|
|
132814
|
-
|
|
132815
|
-
|
|
132816
|
-
|
|
132817
|
-
parts.push({
|
|
132818
|
-
functionCall: {
|
|
132819
|
-
id: toolCall.id,
|
|
132820
|
-
name: toolCall.function.name,
|
|
132821
|
-
args
|
|
132802
|
+
if (choice2) {
|
|
132803
|
+
const parts = [];
|
|
132804
|
+
const reasoningText = choice2.message.reasoning_content ?? choice2.message.reasoning;
|
|
132805
|
+
if (reasoningText) {
|
|
132806
|
+
parts.push({ text: reasoningText, thought: true });
|
|
132807
|
+
}
|
|
132808
|
+
if (choice2.message.content) {
|
|
132809
|
+
parts.push({ text: choice2.message.content });
|
|
132810
|
+
}
|
|
132811
|
+
if (choice2.message.tool_calls) {
|
|
132812
|
+
for (const toolCall of choice2.message.tool_calls) {
|
|
132813
|
+
if (toolCall.function) {
|
|
132814
|
+
let args = {};
|
|
132815
|
+
if (toolCall.function.arguments) {
|
|
132816
|
+
args = safeJsonParse(toolCall.function.arguments, {});
|
|
132822
132817
|
}
|
|
132823
|
-
|
|
132818
|
+
parts.push({
|
|
132819
|
+
functionCall: {
|
|
132820
|
+
id: toolCall.id,
|
|
132821
|
+
name: toolCall.function.name,
|
|
132822
|
+
args
|
|
132823
|
+
}
|
|
132824
|
+
});
|
|
132825
|
+
}
|
|
132824
132826
|
}
|
|
132825
132827
|
}
|
|
132828
|
+
response.candidates = [
|
|
132829
|
+
{
|
|
132830
|
+
content: {
|
|
132831
|
+
parts,
|
|
132832
|
+
role: "model"
|
|
132833
|
+
},
|
|
132834
|
+
finishReason: this.mapOpenAIFinishReasonToGemini(choice2.finish_reason || "stop"),
|
|
132835
|
+
index: 0,
|
|
132836
|
+
safetyRatings: []
|
|
132837
|
+
}
|
|
132838
|
+
];
|
|
132839
|
+
} else {
|
|
132840
|
+
response.candidates = [];
|
|
132826
132841
|
}
|
|
132827
132842
|
response.responseId = openaiResponse.id;
|
|
132828
132843
|
response.createTime = openaiResponse.created ? openaiResponse.created.toString() : (/* @__PURE__ */ new Date()).getTime().toString();
|
|
132829
|
-
response.candidates = [
|
|
132830
|
-
{
|
|
132831
|
-
content: {
|
|
132832
|
-
parts,
|
|
132833
|
-
role: "model"
|
|
132834
|
-
},
|
|
132835
|
-
finishReason: this.mapOpenAIFinishReasonToGemini(choice2.finish_reason || "stop"),
|
|
132836
|
-
index: 0,
|
|
132837
|
-
safetyRatings: []
|
|
132838
|
-
}
|
|
132839
|
-
];
|
|
132840
132844
|
response.modelVersion = this.model;
|
|
132841
132845
|
response.promptFeedback = { safetyRatings: [] };
|
|
132842
132846
|
if (openaiResponse.usage) {
|
|
@@ -133871,6 +133875,7 @@ var init_tokenLimits = __esm({
|
|
|
133871
133875
|
[/^qwen3-max/, LIMITS["64k"]],
|
|
133872
133876
|
// DeepSeek
|
|
133873
133877
|
[/^deepseek-reasoner/, LIMITS["64k"]],
|
|
133878
|
+
[/^deepseek-r1/, LIMITS["64k"]],
|
|
133874
133879
|
[/^deepseek-chat/, LIMITS["8k"]],
|
|
133875
133880
|
// Zhipu GLM
|
|
133876
133881
|
[/^glm-5/, LIMITS["128k"]],
|
|
@@ -157714,7 +157719,7 @@ __export(geminiContentGenerator_exports, {
|
|
|
157714
157719
|
createGeminiContentGenerator: () => createGeminiContentGenerator
|
|
157715
157720
|
});
|
|
157716
157721
|
function createGeminiContentGenerator(config2, gcConfig) {
|
|
157717
|
-
const version2 = "0.12.
|
|
157722
|
+
const version2 = "0.12.4-nightly.20260316.110fcd7b7";
|
|
157718
157723
|
const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
|
|
157719
157724
|
const baseHeaders = {
|
|
157720
157725
|
"User-Agent": userAgent2
|
|
@@ -174759,6 +174764,13 @@ var init_coreToolScheduler = __esm({
|
|
|
174759
174764
|
originalContent: waitingCall.confirmationDetails.originalContent,
|
|
174760
174765
|
newContent: waitingCall.confirmationDetails.newContent
|
|
174761
174766
|
};
|
|
174767
|
+
} else if (waitingCall.confirmationDetails.type === "plan") {
|
|
174768
|
+
resultDisplay = {
|
|
174769
|
+
type: "plan_summary",
|
|
174770
|
+
message: "Plan was rejected. Remaining in plan mode.",
|
|
174771
|
+
plan: waitingCall.confirmationDetails.plan,
|
|
174772
|
+
rejected: true
|
|
174773
|
+
};
|
|
174762
174774
|
}
|
|
174763
174775
|
} else if (currentCall.status === "executing") {
|
|
174764
174776
|
const executingCall = currentCall;
|
|
@@ -194772,6 +194784,21 @@ async function detectFileType(filePath) {
|
|
|
194772
194784
|
}
|
|
194773
194785
|
return "text";
|
|
194774
194786
|
}
|
|
194787
|
+
function mediaModalityKey(fileType) {
|
|
194788
|
+
if (fileType === "image" || fileType === "pdf" || fileType === "audio" || fileType === "video") {
|
|
194789
|
+
return fileType;
|
|
194790
|
+
}
|
|
194791
|
+
return void 0;
|
|
194792
|
+
}
|
|
194793
|
+
function unsupportedModalityMessage(modality, displayName) {
|
|
194794
|
+
let hint;
|
|
194795
|
+
if (modality === "pdf") {
|
|
194796
|
+
hint = "This model does not support PDF input directly. The read_file tool cannot extract PDF content either. To extract text from the PDF file, try using skills if applicable, or guide user to install pdf skill by running this slash command:\n/extensions install https://github.com/anthropics/skills:document-skills";
|
|
194797
|
+
} else {
|
|
194798
|
+
hint = `This model does not support ${modality} input. The read_file tool cannot process this type of file either. To handle this file, try using skills if applicable, or any tools installed at system wide, or let the user know you cannot process this type of file.`;
|
|
194799
|
+
}
|
|
194800
|
+
return `[Unsupported ${modality} file: "${displayName}". ${hint}]`;
|
|
194801
|
+
}
|
|
194775
194802
|
async function processSingleFileContent(filePath, config2, offset, limit2) {
|
|
194776
194803
|
const rootDirectory = config2.getTargetDir();
|
|
194777
194804
|
try {
|
|
@@ -194804,6 +194831,18 @@ async function processSingleFileContent(filePath, config2, offset, limit2) {
|
|
|
194804
194831
|
const fileType = await detectFileType(filePath);
|
|
194805
194832
|
const relativePathForDisplay = path28.relative(rootDirectory, filePath).replace(/\\/g, "/");
|
|
194806
194833
|
const displayName = path28.basename(filePath);
|
|
194834
|
+
const modality = mediaModalityKey(fileType);
|
|
194835
|
+
if (modality) {
|
|
194836
|
+
const modalities = config2.getContentGeneratorConfig()?.modalities ?? {};
|
|
194837
|
+
if (!modalities[modality]) {
|
|
194838
|
+
const message = unsupportedModalityMessage(modality, displayName);
|
|
194839
|
+
debugLogger33.warn(`Model '${config2.getModel()}' does not support ${modality} input. Skipping file: ${relativePathForDisplay}`);
|
|
194840
|
+
return {
|
|
194841
|
+
llmContent: message,
|
|
194842
|
+
returnDisplay: `Skipped ${fileType} file: ${relativePathForDisplay} (model doesn't support ${modality} input)`
|
|
194843
|
+
};
|
|
194844
|
+
}
|
|
194845
|
+
}
|
|
194807
194846
|
switch (fileType) {
|
|
194808
194847
|
case "binary": {
|
|
194809
194848
|
return {
|
|
@@ -194958,6 +194997,8 @@ var init_fileUtils = __esm({
|
|
|
194958
194997
|
__name(isWithinRoot, "isWithinRoot");
|
|
194959
194998
|
__name(isBinaryFile, "isBinaryFile");
|
|
194960
194999
|
__name(detectFileType, "detectFileType");
|
|
195000
|
+
__name(mediaModalityKey, "mediaModalityKey");
|
|
195001
|
+
__name(unsupportedModalityMessage, "unsupportedModalityMessage");
|
|
194961
195002
|
__name(processSingleFileContent, "processSingleFileContent");
|
|
194962
195003
|
__name(fileExists, "fileExists");
|
|
194963
195004
|
}
|
|
@@ -233931,9 +233972,9 @@ var init_handler = __esm({
|
|
|
233931
233972
|
if (this.fsw.closed) {
|
|
233932
233973
|
return;
|
|
233933
233974
|
}
|
|
233934
|
-
const
|
|
233975
|
+
const dirname28 = sysPath.dirname(file2);
|
|
233935
233976
|
const basename26 = sysPath.basename(file2);
|
|
233936
|
-
const parent = this.fsw._getWatchedDir(
|
|
233977
|
+
const parent = this.fsw._getWatchedDir(dirname28);
|
|
233937
233978
|
let prevStats = stats;
|
|
233938
233979
|
if (parent.has(basename26))
|
|
233939
233980
|
return;
|
|
@@ -233960,7 +234001,7 @@ var init_handler = __esm({
|
|
|
233960
234001
|
prevStats = newStats2;
|
|
233961
234002
|
}
|
|
233962
234003
|
} catch (error40) {
|
|
233963
|
-
this.fsw._remove(
|
|
234004
|
+
this.fsw._remove(dirname28, basename26);
|
|
233964
234005
|
}
|
|
233965
234006
|
} else if (parent.has(basename26)) {
|
|
233966
234007
|
const at2 = newStats.atimeMs;
|
|
@@ -235211,6 +235252,7 @@ import * as fs45 from "fs/promises";
|
|
|
235211
235252
|
import * as fsSync2 from "fs";
|
|
235212
235253
|
import * as path49 from "path";
|
|
235213
235254
|
import * as os18 from "os";
|
|
235255
|
+
import { fileURLToPath as fileURLToPath7 } from "url";
|
|
235214
235256
|
var debugLogger59, QWEN_CONFIG_DIR2, SKILLS_CONFIG_DIR, SKILL_MANIFEST_FILE2, SkillManager;
|
|
235215
235257
|
var init_skill_manager = __esm({
|
|
235216
235258
|
"packages/core/dist/src/skills/skill-manager.js"() {
|
|
@@ -235237,8 +235279,10 @@ var init_skill_manager = __esm({
|
|
|
235237
235279
|
watchers = /* @__PURE__ */ new Map();
|
|
235238
235280
|
watchStarted = false;
|
|
235239
235281
|
refreshTimer = null;
|
|
235282
|
+
bundledSkillsDir;
|
|
235240
235283
|
constructor(config2) {
|
|
235241
235284
|
this.config = config2;
|
|
235285
|
+
this.bundledSkillsDir = path49.join(path49.dirname(fileURLToPath7(import.meta.url)), "bundled");
|
|
235242
235286
|
}
|
|
235243
235287
|
/**
|
|
235244
235288
|
* Adds a listener that will be called when skills change.
|
|
@@ -235279,7 +235323,7 @@ var init_skill_manager = __esm({
|
|
|
235279
235323
|
debugLogger59.debug(`Listing skills${options2.level ? ` at level: ${options2.level}` : ""}${options2.force ? " (forced refresh)" : ""}`);
|
|
235280
235324
|
const skills = [];
|
|
235281
235325
|
const seenNames = /* @__PURE__ */ new Set();
|
|
235282
|
-
const levelsToCheck = options2.level ? [options2.level] : ["project", "user", "extension"];
|
|
235326
|
+
const levelsToCheck = options2.level ? [options2.level] : ["project", "user", "extension", "bundled"];
|
|
235283
235327
|
const shouldUseCache = !options2.force && this.skillsCache !== null;
|
|
235284
235328
|
if (!shouldUseCache) {
|
|
235285
235329
|
debugLogger59.debug("Cache miss or force refresh, reloading skills");
|
|
@@ -235306,7 +235350,7 @@ var init_skill_manager = __esm({
|
|
|
235306
235350
|
/**
|
|
235307
235351
|
* Loads a skill configuration by name.
|
|
235308
235352
|
* If level is specified, only searches that level.
|
|
235309
|
-
* If level is omitted, searches project
|
|
235353
|
+
* If level is omitted, searches in precedence order: project > user > extension > bundled.
|
|
235310
235354
|
*
|
|
235311
235355
|
* @param name - Name of the skill to load
|
|
235312
235356
|
* @param level - Optional level to limit search to
|
|
@@ -235336,10 +235380,15 @@ var init_skill_manager = __esm({
|
|
|
235336
235380
|
const extensionSkill = await this.findSkillByNameAtLevel(name3, "extension");
|
|
235337
235381
|
if (extensionSkill) {
|
|
235338
235382
|
debugLogger59.debug(`Found skill ${name3} at extension level`);
|
|
235383
|
+
return extensionSkill;
|
|
235384
|
+
}
|
|
235385
|
+
const bundledSkill = await this.findSkillByNameAtLevel(name3, "bundled");
|
|
235386
|
+
if (bundledSkill) {
|
|
235387
|
+
debugLogger59.debug(`Found skill ${name3} at bundled level`);
|
|
235339
235388
|
} else {
|
|
235340
|
-
debugLogger59.debug(`Skill ${name3} not found at any level`);
|
|
235389
|
+
debugLogger59.debug(`Skill ${name3} not found at any level (checked: project, user, extension, bundled)`);
|
|
235341
235390
|
}
|
|
235342
|
-
return
|
|
235391
|
+
return bundledSkill;
|
|
235343
235392
|
}
|
|
235344
235393
|
/**
|
|
235345
235394
|
* Loads a skill with its full content, ready for runtime use.
|
|
@@ -235375,7 +235424,7 @@ var init_skill_manager = __esm({
|
|
|
235375
235424
|
debugLogger59.info("Refreshing skills cache...");
|
|
235376
235425
|
const skillsCache = /* @__PURE__ */ new Map();
|
|
235377
235426
|
this.parseErrors.clear();
|
|
235378
|
-
const levels = ["project", "user", "extension"];
|
|
235427
|
+
const levels = ["project", "user", "extension", "bundled"];
|
|
235379
235428
|
let totalSkills = 0;
|
|
235380
235429
|
for (const level of levels) {
|
|
235381
235430
|
const levelSkills = await this.listSkillsAtLevel(level);
|
|
@@ -235512,8 +235561,18 @@ var init_skill_manager = __esm({
|
|
|
235512
235561
|
* @returns Absolute directory path
|
|
235513
235562
|
*/
|
|
235514
235563
|
getSkillsBaseDir(level) {
|
|
235515
|
-
|
|
235516
|
-
|
|
235564
|
+
switch (level) {
|
|
235565
|
+
case "project":
|
|
235566
|
+
return path49.join(this.config.getProjectRoot(), QWEN_CONFIG_DIR2, SKILLS_CONFIG_DIR);
|
|
235567
|
+
case "user":
|
|
235568
|
+
return path49.join(os18.homedir(), QWEN_CONFIG_DIR2, SKILLS_CONFIG_DIR);
|
|
235569
|
+
case "bundled":
|
|
235570
|
+
return this.bundledSkillsDir;
|
|
235571
|
+
case "extension":
|
|
235572
|
+
throw new Error("Extension skills do not have a base directory; they are loaded from active extensions.");
|
|
235573
|
+
default:
|
|
235574
|
+
throw new Error(`Unknown skill level: ${level}`);
|
|
235575
|
+
}
|
|
235517
235576
|
}
|
|
235518
235577
|
/**
|
|
235519
235578
|
* Lists skills at a specific level.
|
|
@@ -235540,6 +235599,17 @@ var init_skill_manager = __esm({
|
|
|
235540
235599
|
debugLogger59.debug(`Loaded ${skills2.length} extension-level skills from ${extensions.length} extensions`);
|
|
235541
235600
|
return skills2;
|
|
235542
235601
|
}
|
|
235602
|
+
if (level === "bundled") {
|
|
235603
|
+
const bundledDir = this.bundledSkillsDir;
|
|
235604
|
+
if (!fsSync2.existsSync(bundledDir)) {
|
|
235605
|
+
debugLogger59.warn(`Bundled skills directory not found: ${bundledDir}. This may indicate an incomplete installation.`);
|
|
235606
|
+
return [];
|
|
235607
|
+
}
|
|
235608
|
+
debugLogger59.debug(`Loading bundled skills from: ${bundledDir}`);
|
|
235609
|
+
const skills2 = await this.loadSkillsFromDir(bundledDir, "bundled");
|
|
235610
|
+
debugLogger59.debug(`Loaded ${skills2.length} bundled skills`);
|
|
235611
|
+
return skills2;
|
|
235612
|
+
}
|
|
235543
235613
|
const baseDir = this.getSkillsBaseDir(level);
|
|
235544
235614
|
debugLogger59.debug(`Loading ${level} level skills from: ${baseDir}`);
|
|
235545
235615
|
const skills = await this.loadSkillsFromDir(baseDir, level);
|
|
@@ -235617,6 +235687,9 @@ var init_skill_manager = __esm({
|
|
|
235617
235687
|
this.skillsCache.set(level, levelSkills);
|
|
235618
235688
|
}
|
|
235619
235689
|
}
|
|
235690
|
+
// Only watch project and user skill directories for changes.
|
|
235691
|
+
// Bundled skills are immutable (shipped with the package) and extension
|
|
235692
|
+
// skills are managed by the extension system, so neither needs watching.
|
|
235620
235693
|
updateWatchersFromCache() {
|
|
235621
235694
|
const watchTargets = new Set(["project", "user"].map((level) => this.getSkillsBaseDir(level)).filter((baseDir) => fsSync2.existsSync(baseDir)));
|
|
235622
235695
|
for (const existingPath of this.watchers.keys()) {
|
|
@@ -235692,8 +235765,8 @@ var init_validation = __esm({
|
|
|
235692
235765
|
}
|
|
235693
235766
|
if (!config2.description || config2.description.trim().length === 0) {
|
|
235694
235767
|
errors.push("Description is required and cannot be empty");
|
|
235695
|
-
} else if (config2.description.length >
|
|
235696
|
-
warnings.push("Description is quite long (>
|
|
235768
|
+
} else if (config2.description.length > 1e3) {
|
|
235769
|
+
warnings.push("Description is quite long (>1,000 chars), consider shortening for better readability");
|
|
235697
235770
|
}
|
|
235698
235771
|
const promptValidation = this.validateSystemPrompt(config2.systemPrompt);
|
|
235699
235772
|
if (!promptValidation.isValid) {
|
|
@@ -235800,9 +235873,7 @@ var init_validation = __esm({
|
|
|
235800
235873
|
errors.push("System prompt must be at least 10 characters long");
|
|
235801
235874
|
}
|
|
235802
235875
|
if (trimmedPrompt.length > 1e4) {
|
|
235803
|
-
|
|
235804
|
-
} else if (trimmedPrompt.length > 5e3) {
|
|
235805
|
-
warnings.push("System prompt is quite long (>5,000 characters), consider shortening");
|
|
235876
|
+
warnings.push("System prompt is quite long (>10,000 characters), consider shortening");
|
|
235806
235877
|
}
|
|
235807
235878
|
return {
|
|
235808
235879
|
isValid: errors.length === 0,
|
|
@@ -238899,7 +238970,7 @@ var init_strip_trailing_slashes = __esm({
|
|
|
238899
238970
|
|
|
238900
238971
|
// node_modules/tar/dist/esm/list.js
|
|
238901
238972
|
import fs48 from "node:fs";
|
|
238902
|
-
import { dirname as
|
|
238973
|
+
import { dirname as dirname14, parse as parse8 } from "path";
|
|
238903
238974
|
var onReadEntryFunction, filesFilter, listFileSync, listFile, list;
|
|
238904
238975
|
var init_list = __esm({
|
|
238905
238976
|
"node_modules/tar/dist/esm/list.js"() {
|
|
@@ -238928,7 +238999,7 @@ var init_list = __esm({
|
|
|
238928
238999
|
if (m3 !== void 0) {
|
|
238929
239000
|
ret = m3;
|
|
238930
239001
|
} else {
|
|
238931
|
-
ret = mapHas(
|
|
239002
|
+
ret = mapHas(dirname14(file2), root);
|
|
238932
239003
|
}
|
|
238933
239004
|
}
|
|
238934
239005
|
map3.set(file2, ret);
|
|
@@ -243854,9 +243925,10 @@ async function cloneFromGit(installMetadata, destination) {
|
|
|
243854
243925
|
} catch {
|
|
243855
243926
|
}
|
|
243856
243927
|
}
|
|
243928
|
+
const symlinkValue = os20.platform() === "win32" ? "false" : "true";
|
|
243857
243929
|
await git.clone(sourceUrl, "./", [
|
|
243858
243930
|
"-c",
|
|
243859
|
-
|
|
243931
|
+
`core.symlinks=${symlinkValue}`,
|
|
243860
243932
|
"--depth",
|
|
243861
243933
|
"1"
|
|
243862
243934
|
]);
|
|
@@ -261559,7 +261631,7 @@ var init_NativeLspClient = __esm({
|
|
|
261559
261631
|
|
|
261560
261632
|
// packages/core/dist/src/lsp/NativeLspService.js
|
|
261561
261633
|
import * as path75 from "path";
|
|
261562
|
-
import { fileURLToPath as
|
|
261634
|
+
import { fileURLToPath as fileURLToPath8 } from "url";
|
|
261563
261635
|
import * as fs72 from "node:fs";
|
|
261564
261636
|
var debugLogger77, NativeLspService;
|
|
261565
261637
|
var init_NativeLspService = __esm({
|
|
@@ -262083,7 +262155,7 @@ var init_NativeLspService = __esm({
|
|
|
262083
262155
|
* Apply text edits to a file
|
|
262084
262156
|
*/
|
|
262085
262157
|
async applyTextEdits(uri, edits) {
|
|
262086
|
-
let filePath = uri.startsWith("file://") ?
|
|
262158
|
+
let filePath = uri.startsWith("file://") ? fileURLToPath8(uri) : uri;
|
|
262087
262159
|
if (!path75.isAbsolute(filePath)) {
|
|
262088
262160
|
filePath = path75.resolve(this.workspaceRoot, filePath);
|
|
262089
262161
|
}
|
|
@@ -303954,6 +304026,7 @@ var init_de2 = __esm({
|
|
|
303954
304026
|
// ============================================================================
|
|
303955
304027
|
"Analyzes the project and creates a tailored QWEN.md file.": "Analysiert das Projekt und erstellt eine ma\xDFgeschneiderte QWEN.md-Datei.",
|
|
303956
304028
|
"List available Qwen Code tools. Usage: /tools [desc]": "Verf\xFCgbare Qwen Code Werkzeuge auflisten. Verwendung: /tools [desc]",
|
|
304029
|
+
"List available skills.": "Verf\xFCgbare Skills auflisten.",
|
|
303957
304030
|
"Available Qwen Code CLI tools:": "Verf\xFCgbare Qwen Code CLI-Werkzeuge:",
|
|
303958
304031
|
"No tools available": "Keine Werkzeuge verf\xFCgbar",
|
|
303959
304032
|
"View or change the approval mode for tool usage": "Genehmigungsmodus f\xFCr Werkzeugnutzung anzeigen oder \xE4ndern",
|
|
@@ -304172,6 +304245,7 @@ var init_de2 = __esm({
|
|
|
304172
304245
|
"These editors are currently supported. Please note that some editors cannot be used in sandbox mode.": "Diese Editoren werden derzeit unterst\xFCtzt. Bitte beachten Sie, dass einige Editoren nicht im Sandbox-Modus verwendet werden k\xF6nnen.",
|
|
304173
304246
|
"Your preferred editor is:": "Ihr bevorzugter Editor ist:",
|
|
304174
304247
|
"Manage extensions": "Erweiterungen verwalten",
|
|
304248
|
+
"Manage installed extensions": "Installierte Erweiterungen verwalten",
|
|
304175
304249
|
"List active extensions": "Aktive Erweiterungen auflisten",
|
|
304176
304250
|
"Update extensions. Usage: update <extension-names>|--all": "Erweiterungen aktualisieren. Verwendung: update <Erweiterungsnamen>|--all",
|
|
304177
304251
|
"Disable an extension": "Erweiterung deaktivieren",
|
|
@@ -304302,6 +304376,30 @@ var init_de2 = __esm({
|
|
|
304302
304376
|
"{{terminalName}} keybindings already configured.": "{{terminalName}}-Tastenbelegungen bereits konfiguriert.",
|
|
304303
304377
|
"Failed to configure {{terminalName}}.": "Fehler beim Konfigurieren von {{terminalName}}.",
|
|
304304
304378
|
"Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).": "Ihr Terminal ist bereits f\xFCr optimale Erfahrung mit mehrzeiliger Eingabe konfiguriert (Umschalt+Enter und Strg+Enter).",
|
|
304379
|
+
// ============================================================================
|
|
304380
|
+
// Commands - Hooks
|
|
304381
|
+
// ============================================================================
|
|
304382
|
+
"Manage Qwen Code hooks": "Qwen Code-Hooks verwalten",
|
|
304383
|
+
"List all configured hooks": "Alle konfigurierten Hooks auflisten",
|
|
304384
|
+
"Enable a disabled hook": "Einen deaktivierten Hook aktivieren",
|
|
304385
|
+
"Disable an active hook": "Einen aktiven Hook deaktivieren",
|
|
304386
|
+
// ============================================================================
|
|
304387
|
+
// Commands - Session Export
|
|
304388
|
+
// ============================================================================
|
|
304389
|
+
"Export current session message history to a file": "Den Nachrichtenverlauf der aktuellen Sitzung in eine Datei exportieren",
|
|
304390
|
+
"Export session to HTML format": "Sitzung in das HTML-Format exportieren",
|
|
304391
|
+
"Export session to JSON format": "Sitzung in das JSON-Format exportieren",
|
|
304392
|
+
"Export session to JSONL format (one message per line)": "Sitzung in das JSONL-Format exportieren (eine Nachricht pro Zeile)",
|
|
304393
|
+
"Export session to markdown format": "Sitzung in das Markdown-Format exportieren",
|
|
304394
|
+
// ============================================================================
|
|
304395
|
+
// Commands - Insights
|
|
304396
|
+
// ============================================================================
|
|
304397
|
+
"generate personalized programming insights from your chat history": "Personalisierte Programmier-Einblicke aus Ihrem Chatverlauf generieren",
|
|
304398
|
+
// ============================================================================
|
|
304399
|
+
// Commands - Session History
|
|
304400
|
+
// ============================================================================
|
|
304401
|
+
"Resume a previous session": "Eine vorherige Sitzung fortsetzen",
|
|
304402
|
+
"Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "Einen Tool-Aufruf wiederherstellen. Dadurch werden Konversations- und Dateiverlauf auf den Zustand zur\xFCckgesetzt, in dem der Tool-Aufruf vorgeschlagen wurde",
|
|
304305
304403
|
"Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, and Trae.": "Terminal-Typ konnte nicht erkannt werden. Unterst\xFCtzte Terminals: VS Code, Cursor, Windsurf und Trae.",
|
|
304306
304404
|
'Terminal "{{terminal}}" is not supported yet.': 'Terminal "{{terminal}}" wird noch nicht unterst\xFCtzt.',
|
|
304307
304405
|
// ============================================================================
|
|
@@ -305167,6 +305265,7 @@ var init_en3 = __esm({
|
|
|
305167
305265
|
// ============================================================================
|
|
305168
305266
|
"Analyzes the project and creates a tailored QWEN.md file.": "Analyzes the project and creates a tailored QWEN.md file.",
|
|
305169
305267
|
"List available Qwen Code tools. Usage: /tools [desc]": "List available Qwen Code tools. Usage: /tools [desc]",
|
|
305268
|
+
"List available skills.": "List available skills.",
|
|
305170
305269
|
"Available Qwen Code CLI tools:": "Available Qwen Code CLI tools:",
|
|
305171
305270
|
"No tools available": "No tools available",
|
|
305172
305271
|
"View or change the approval mode for tool usage": "View or change the approval mode for tool usage",
|
|
@@ -305445,6 +305544,7 @@ var init_en3 = __esm({
|
|
|
305445
305544
|
"These editors are currently supported. Please note that some editors cannot be used in sandbox mode.": "These editors are currently supported. Please note that some editors cannot be used in sandbox mode.",
|
|
305446
305545
|
"Your preferred editor is:": "Your preferred editor is:",
|
|
305447
305546
|
"Manage extensions": "Manage extensions",
|
|
305547
|
+
"Manage installed extensions": "Manage installed extensions",
|
|
305448
305548
|
"List active extensions": "List active extensions",
|
|
305449
305549
|
"Update extensions. Usage: update <extension-names>|--all": "Update extensions. Usage: update <extension-names>|--all",
|
|
305450
305550
|
"Disable an extension": "Disable an extension",
|
|
@@ -305575,6 +305675,30 @@ var init_en3 = __esm({
|
|
|
305575
305675
|
"{{terminalName}} keybindings already configured.": "{{terminalName}} keybindings already configured.",
|
|
305576
305676
|
"Failed to configure {{terminalName}}.": "Failed to configure {{terminalName}}.",
|
|
305577
305677
|
"Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).": "Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).",
|
|
305678
|
+
// ============================================================================
|
|
305679
|
+
// Commands - Hooks
|
|
305680
|
+
// ============================================================================
|
|
305681
|
+
"Manage Qwen Code hooks": "Manage Qwen Code hooks",
|
|
305682
|
+
"List all configured hooks": "List all configured hooks",
|
|
305683
|
+
"Enable a disabled hook": "Enable a disabled hook",
|
|
305684
|
+
"Disable an active hook": "Disable an active hook",
|
|
305685
|
+
// ============================================================================
|
|
305686
|
+
// Commands - Session Export
|
|
305687
|
+
// ============================================================================
|
|
305688
|
+
"Export current session message history to a file": "Export current session message history to a file",
|
|
305689
|
+
"Export session to HTML format": "Export session to HTML format",
|
|
305690
|
+
"Export session to JSON format": "Export session to JSON format",
|
|
305691
|
+
"Export session to JSONL format (one message per line)": "Export session to JSONL format (one message per line)",
|
|
305692
|
+
"Export session to markdown format": "Export session to markdown format",
|
|
305693
|
+
// ============================================================================
|
|
305694
|
+
// Commands - Insights
|
|
305695
|
+
// ============================================================================
|
|
305696
|
+
"generate personalized programming insights from your chat history": "generate personalized programming insights from your chat history",
|
|
305697
|
+
// ============================================================================
|
|
305698
|
+
// Commands - Session History
|
|
305699
|
+
// ============================================================================
|
|
305700
|
+
"Resume a previous session": "Resume a previous session",
|
|
305701
|
+
"Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested",
|
|
305578
305702
|
"Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, and Trae.": "Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, and Trae.",
|
|
305579
305703
|
'Terminal "{{terminal}}" is not supported yet.': 'Terminal "{{terminal}}" is not supported yet.',
|
|
305580
305704
|
// ============================================================================
|
|
@@ -306414,6 +306538,7 @@ var init_ja2 = __esm({
|
|
|
306414
306538
|
// ============================================================================
|
|
306415
306539
|
"Analyzes the project and creates a tailored QWEN.md file.": "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u5206\u6790\u3057\u3001\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u3055\u308C\u305F QWEN.md \u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210",
|
|
306416
306540
|
"List available Qwen Code tools. Usage: /tools [desc]": "\u5229\u7528\u53EF\u80FD\u306A Qwen Code \u30C4\u30FC\u30EB\u3092\u4E00\u89A7\u8868\u793A\u3002\u4F7F\u3044\u65B9: /tools [desc]",
|
|
306541
|
+
"List available skills.": "\u5229\u7528\u53EF\u80FD\u306A\u30B9\u30AD\u30EB\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\u3002",
|
|
306417
306542
|
"Available Qwen Code CLI tools:": "\u5229\u7528\u53EF\u80FD\u306A Qwen Code CLI \u30C4\u30FC\u30EB:",
|
|
306418
306543
|
"No tools available": "\u5229\u7528\u53EF\u80FD\u306A\u30C4\u30FC\u30EB\u306F\u3042\u308A\u307E\u305B\u3093",
|
|
306419
306544
|
"View or change the approval mode for tool usage": "\u30C4\u30FC\u30EB\u4F7F\u7528\u306E\u627F\u8A8D\u30E2\u30FC\u30C9\u3092\u8868\u793A\u307E\u305F\u306F\u5909\u66F4",
|
|
@@ -306609,6 +306734,7 @@ var init_ja2 = __esm({
|
|
|
306609
306734
|
"Show all directories in the workspace": "\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u5185\u306E\u3059\u3079\u3066\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u8868\u793A",
|
|
306610
306735
|
"set external editor preference": "\u5916\u90E8\u30A8\u30C7\u30A3\u30BF\u306E\u8A2D\u5B9A",
|
|
306611
306736
|
"Manage extensions": "\u62E1\u5F35\u6A5F\u80FD\u3092\u7BA1\u7406",
|
|
306737
|
+
"Manage installed extensions": "\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F\u306E\u62E1\u5F35\u6A5F\u80FD\u3092\u7BA1\u7406\u3059\u308B",
|
|
306612
306738
|
"List active extensions": "\u6709\u52B9\u306A\u62E1\u5F35\u6A5F\u80FD\u3092\u4E00\u89A7\u8868\u793A",
|
|
306613
306739
|
"Update extensions. Usage: update <extension-names>|--all": "\u62E1\u5F35\u6A5F\u80FD\u3092\u66F4\u65B0\u3002\u4F7F\u3044\u65B9: update <\u62E1\u5F35\u6A5F\u80FD\u540D>|--all",
|
|
306614
306740
|
"You are installing an extension from {{originSource}}. Some features may not work perfectly with Qwen Code.": "{{originSource}} \u304B\u3089\u62E1\u5F35\u6A5F\u80FD\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u3044\u307E\u3059\u3002\u4E00\u90E8\u306E\u6A5F\u80FD\u306F Qwen Code \u3067\u5B8C\u5168\u306B\u52D5\u4F5C\u3057\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",
|
|
@@ -306636,6 +306762,30 @@ var init_ja2 = __esm({
|
|
|
306636
306762
|
"{{terminalName}} keybindings already configured.": "{{terminalName}} \u306E\u30AD\u30FC\u30D0\u30A4\u30F3\u30C9\u306F\u65E2\u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059",
|
|
306637
306763
|
"Failed to configure {{terminalName}}.": "{{terminalName}} \u306E\u8A2D\u5B9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
306638
306764
|
"Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).": "\u30BF\u30FC\u30DF\u30CA\u30EB\u306F\u8907\u6570\u884C\u5165\u529B(Shift+Enter \u3068 Ctrl+Enter)\u306B\u6700\u9069\u5316\u3055\u308C\u3066\u3044\u307E\u3059",
|
|
306765
|
+
// ============================================================================
|
|
306766
|
+
// Commands - Hooks
|
|
306767
|
+
// ============================================================================
|
|
306768
|
+
"Manage Qwen Code hooks": "Qwen Code \u306E\u30D5\u30C3\u30AF\u3092\u7BA1\u7406\u3059\u308B",
|
|
306769
|
+
"List all configured hooks": "\u8A2D\u5B9A\u6E08\u307F\u306E\u30D5\u30C3\u30AF\u3092\u3059\u3079\u3066\u8868\u793A\u3059\u308B",
|
|
306770
|
+
"Enable a disabled hook": "\u7121\u52B9\u306A\u30D5\u30C3\u30AF\u3092\u6709\u52B9\u306B\u3059\u308B",
|
|
306771
|
+
"Disable an active hook": "\u6709\u52B9\u306A\u30D5\u30C3\u30AF\u3092\u7121\u52B9\u306B\u3059\u308B",
|
|
306772
|
+
// ============================================================================
|
|
306773
|
+
// Commands - Session Export
|
|
306774
|
+
// ============================================================================
|
|
306775
|
+
"Export current session message history to a file": "\u73FE\u5728\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u5C65\u6B74\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B",
|
|
306776
|
+
"Export session to HTML format": "\u30BB\u30C3\u30B7\u30E7\u30F3\u3092 HTML \u5F62\u5F0F\u3067\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B",
|
|
306777
|
+
"Export session to JSON format": "\u30BB\u30C3\u30B7\u30E7\u30F3\u3092 JSON \u5F62\u5F0F\u3067\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B",
|
|
306778
|
+
"Export session to JSONL format (one message per line)": "\u30BB\u30C3\u30B7\u30E7\u30F3\u3092 JSONL \u5F62\u5F0F\u3067\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\uFF081 \u884C\u306B 1 \u30E1\u30C3\u30BB\u30FC\u30B8\uFF09",
|
|
306779
|
+
"Export session to markdown format": "\u30BB\u30C3\u30B7\u30E7\u30F3\u3092 Markdown \u5F62\u5F0F\u3067\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B",
|
|
306780
|
+
// ============================================================================
|
|
306781
|
+
// Commands - Insights
|
|
306782
|
+
// ============================================================================
|
|
306783
|
+
"generate personalized programming insights from your chat history": "\u30C1\u30E3\u30C3\u30C8\u5C65\u6B74\u304B\u3089\u30D1\u30FC\u30BD\u30CA\u30E9\u30A4\u30BA\u3055\u308C\u305F\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u30A4\u30F3\u30B5\u30A4\u30C8\u3092\u751F\u6210\u3059\u308B",
|
|
306784
|
+
// ============================================================================
|
|
306785
|
+
// Commands - Session History
|
|
306786
|
+
// ============================================================================
|
|
306787
|
+
"Resume a previous session": "\u524D\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3092\u518D\u958B\u3059\u308B",
|
|
306788
|
+
"Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u3092\u5FA9\u5143\u3057\u307E\u3059\u3002\u3053\u308C\u306B\u3088\u308A\u3001\u4F1A\u8A71\u3068\u30D5\u30A1\u30A4\u30EB\u306E\u5C65\u6B74\u306F\u305D\u306E\u30C4\u30FC\u30EB\u547C\u3073\u51FA\u3057\u304C\u63D0\u6848\u3055\u308C\u305F\u6642\u70B9\u306E\u72B6\u614B\u306B\u623B\u308A\u307E\u3059",
|
|
306639
306789
|
"Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, and Trae.": "\u30BF\u30FC\u30DF\u30CA\u30EB\u306E\u7A2E\u985E\u3092\u691C\u51FA\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30BF\u30FC\u30DF\u30CA\u30EB: VS Code\u3001Cursor\u3001Windsurf\u3001Trae",
|
|
306640
306790
|
'Terminal "{{terminal}}" is not supported yet.': '\u30BF\u30FC\u30DF\u30CA\u30EB "{{terminal}}" \u306F\u307E\u3060\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093',
|
|
306641
306791
|
// Commands - Language
|
|
@@ -307301,6 +307451,7 @@ var init_pt2 = __esm({
|
|
|
307301
307451
|
// ============================================================================
|
|
307302
307452
|
"Analyzes the project and creates a tailored QWEN.md file.": "Analisa o projeto e cria um arquivo QWEN.md personalizado.",
|
|
307303
307453
|
"List available Qwen Code tools. Usage: /tools [desc]": "Listar ferramentas Qwen Code dispon\xEDveis. Uso: /tools [desc]",
|
|
307454
|
+
"List available skills.": "Listar habilidades dispon\xEDveis.",
|
|
307304
307455
|
"Available Qwen Code CLI tools:": "Ferramentas CLI do Qwen Code dispon\xEDveis:",
|
|
307305
307456
|
"No tools available": "Nenhuma ferramenta dispon\xEDvel",
|
|
307306
307457
|
"View or change the approval mode for tool usage": "Ver ou alterar o modo de aprova\xE7\xE3o para uso de ferramentas",
|
|
@@ -307527,6 +307678,7 @@ var init_pt2 = __esm({
|
|
|
307527
307678
|
"These editors are currently supported. Please note that some editors cannot be used in sandbox mode.": "Estes editores s\xE3o suportados atualmente. Note que alguns editores n\xE3o podem ser usados no modo sandbox.",
|
|
307528
307679
|
"Your preferred editor is:": "Seu editor preferido \xE9:",
|
|
307529
307680
|
"Manage extensions": "Gerenciar extens\xF5es",
|
|
307681
|
+
"Manage installed extensions": "Gerenciar extens\xF5es instaladas",
|
|
307530
307682
|
"List active extensions": "Listar extens\xF5es ativas",
|
|
307531
307683
|
"Update extensions. Usage: update <extension-names>|--all": "Atualizar extens\xF5es. Uso: update <nomes-das-extensoes>|--all",
|
|
307532
307684
|
"Disable an extension": "Desativar uma extens\xE3o",
|
|
@@ -307646,6 +307798,30 @@ var init_pt2 = __esm({
|
|
|
307646
307798
|
"{{terminalName}} keybindings already configured.": "Atalhos de {{terminalName}} j\xE1 configurados.",
|
|
307647
307799
|
"Failed to configure {{terminalName}}.": "Falha ao configurar {{terminalName}}.",
|
|
307648
307800
|
"Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).": "Seu terminal j\xE1 est\xE1 configurado para uma experi\xEAncia ideal com entrada multilinhas (Shift+Enter e Ctrl+Enter).",
|
|
307801
|
+
// ============================================================================
|
|
307802
|
+
// Commands - Hooks
|
|
307803
|
+
// ============================================================================
|
|
307804
|
+
"Manage Qwen Code hooks": "Gerenciar hooks do Qwen Code",
|
|
307805
|
+
"List all configured hooks": "Listar todos os hooks configurados",
|
|
307806
|
+
"Enable a disabled hook": "Ativar um hook desativado",
|
|
307807
|
+
"Disable an active hook": "Desativar um hook ativo",
|
|
307808
|
+
// ============================================================================
|
|
307809
|
+
// Commands - Session Export
|
|
307810
|
+
// ============================================================================
|
|
307811
|
+
"Export current session message history to a file": "Exportar o hist\xF3rico de mensagens da sess\xE3o atual para um arquivo",
|
|
307812
|
+
"Export session to HTML format": "Exportar a sess\xE3o para o formato HTML",
|
|
307813
|
+
"Export session to JSON format": "Exportar a sess\xE3o para o formato JSON",
|
|
307814
|
+
"Export session to JSONL format (one message per line)": "Exportar a sess\xE3o para o formato JSONL (uma mensagem por linha)",
|
|
307815
|
+
"Export session to markdown format": "Exportar a sess\xE3o para o formato Markdown",
|
|
307816
|
+
// ============================================================================
|
|
307817
|
+
// Commands - Insights
|
|
307818
|
+
// ============================================================================
|
|
307819
|
+
"generate personalized programming insights from your chat history": "Gerar insights personalizados de programa\xE7\xE3o a partir do seu hist\xF3rico de chat",
|
|
307820
|
+
// ============================================================================
|
|
307821
|
+
// Commands - Session History
|
|
307822
|
+
// ============================================================================
|
|
307823
|
+
"Resume a previous session": "Retomar uma sess\xE3o anterior",
|
|
307824
|
+
"Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "Restaurar uma chamada de ferramenta. Isso redefinir\xE1 o hist\xF3rico da conversa e dos arquivos para o estado em que a chamada da ferramenta foi sugerida",
|
|
307649
307825
|
"Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, and Trae.": "N\xE3o foi poss\xEDvel detectar o tipo de terminal. Terminais suportados: VS Code, Cursor, Windsurf e Trae.",
|
|
307650
307826
|
'Terminal "{{terminal}}" is not supported yet.': 'O terminal "{{terminal}}" ainda n\xE3o \xE9 suportado.',
|
|
307651
307827
|
// ============================================================================
|
|
@@ -308504,6 +308680,7 @@ var init_ru2 = __esm({
|
|
|
308504
308680
|
// ============================================================================
|
|
308505
308681
|
"Analyzes the project and creates a tailored QWEN.md file.": "\u0410\u043D\u0430\u043B\u0438\u0437 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u0438 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0430\u0434\u0430\u043F\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u0444\u0430\u0439\u043B\u0430 QWEN.md",
|
|
308506
308682
|
"List available Qwen Code tools. Usage: /tools [desc]": "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 Qwen Code. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: /tools [desc]",
|
|
308683
|
+
"List available skills.": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438.",
|
|
308507
308684
|
"Available Qwen Code CLI tools:": "\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B Qwen Code CLI:",
|
|
308508
308685
|
"No tools available": "\u041D\u0435\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
|
|
308509
308686
|
"View or change the approval mode for tool usage": "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0438\u043B\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0440\u0435\u0436\u0438\u043C\u0430 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u0434\u043B\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
|
|
@@ -308724,6 +308901,7 @@ var init_ru2 = __esm({
|
|
|
308724
308901
|
"These editors are currently supported. Please note that some editors cannot be used in sandbox mode.": "\u0412 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u0432\u0440\u0435\u043C\u044F \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u044B. \u041E\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0442\u043E \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u044B \u043D\u0435\u043B\u044C\u0437\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0432 \u0440\u0435\u0436\u0438\u043C\u0435 \u043F\u0435\u0441\u043E\u0447\u043D\u0438\u0446\u044B.",
|
|
308725
308902
|
"Your preferred editor is:": "\u0412\u0430\u0448 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u0435\u043C\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440:",
|
|
308726
308903
|
"Manage extensions": "\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043C\u0438",
|
|
308904
|
+
"Manage installed extensions": "\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B\u043C\u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043C\u0438",
|
|
308727
308905
|
"List active extensions": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F",
|
|
308728
308906
|
"Update extensions. Usage: update <extension-names>|--all": "\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435: update <extension-names>|--all",
|
|
308729
308907
|
"Disable an extension": "\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435",
|
|
@@ -308854,6 +309032,30 @@ var init_ru2 = __esm({
|
|
|
308854
309032
|
"{{terminalName}} keybindings already configured.": "\u041F\u0440\u0438\u0432\u044F\u0437\u043A\u0438 \u043A\u043B\u0430\u0432\u0438\u0448 {{terminalName}} \u0443\u0436\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u044B.",
|
|
308855
309033
|
"Failed to configure {{terminalName}}.": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C {{terminalName}}.",
|
|
308856
309034
|
"Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).": "\u0412\u0430\u0448 \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B \u0443\u0436\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D \u0434\u043B\u044F \u043E\u043F\u0442\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0439 \u0440\u0430\u0431\u043E\u0442\u044B \u0441 \u043C\u043D\u043E\u0433\u043E\u0441\u0442\u0440\u043E\u0447\u043D\u044B\u043C \u0432\u0432\u043E\u0434\u043E\u043C (Shift+Enter \u0438 Ctrl+Enter).",
|
|
309035
|
+
// ============================================================================
|
|
309036
|
+
// Commands - Hooks
|
|
309037
|
+
// ============================================================================
|
|
309038
|
+
"Manage Qwen Code hooks": "\u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0445\u0443\u043A\u0430\u043C\u0438 Qwen Code",
|
|
309039
|
+
"List all configured hooks": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0441\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435 \u0445\u0443\u043A\u0438",
|
|
309040
|
+
"Enable a disabled hook": "\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0439 \u0445\u0443\u043A",
|
|
309041
|
+
"Disable an active hook": "\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0445\u0443\u043A",
|
|
309042
|
+
// ============================================================================
|
|
309043
|
+
// Commands - Session Export
|
|
309044
|
+
// ============================================================================
|
|
309045
|
+
"Export current session message history to a file": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u0442\u0435\u043A\u0443\u0449\u0435\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0432 \u0444\u0430\u0439\u043B",
|
|
309046
|
+
"Export session to HTML format": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E \u0432 \u0444\u043E\u0440\u043C\u0430\u0442 HTML",
|
|
309047
|
+
"Export session to JSON format": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E \u0432 \u0444\u043E\u0440\u043C\u0430\u0442 JSON",
|
|
309048
|
+
"Export session to JSONL format (one message per line)": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E \u0432 \u0444\u043E\u0440\u043C\u0430\u0442 JSONL (\u043E\u0434\u043D\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043D\u0430 \u0441\u0442\u0440\u043E\u043A\u0443)",
|
|
309049
|
+
"Export session to markdown format": "\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u0435\u0441\u0441\u0438\u044E \u0432 \u0444\u043E\u0440\u043C\u0430\u0442 Markdown",
|
|
309050
|
+
// ============================================================================
|
|
309051
|
+
// Commands - Insights
|
|
309052
|
+
// ============================================================================
|
|
309053
|
+
"generate personalized programming insights from your chat history": "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0438\u043D\u0441\u0430\u0439\u0442\u044B \u043F\u043E \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044E \u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0435 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u0447\u0430\u0442\u0430",
|
|
309054
|
+
// ============================================================================
|
|
309055
|
+
// Commands - Session History
|
|
309056
|
+
// ============================================================================
|
|
309057
|
+
"Resume a previous session": "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u043F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0443\u044E \u0441\u0435\u0441\u0441\u0438\u044E",
|
|
309058
|
+
"Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "\u0412\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430. \u042D\u0442\u043E \u0432\u0435\u0440\u043D\u0435\u0442 \u0438\u0441\u0442\u043E\u0440\u0438\u044E \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430 \u0438 \u0444\u0430\u0439\u043B\u043E\u0432 \u043A \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044E \u043D\u0430 \u043C\u043E\u043C\u0435\u043D\u0442, \u043A\u043E\u0433\u0434\u0430 \u0431\u044B\u043B \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D \u044D\u0442\u043E\u0442 \u0432\u044B\u0437\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430",
|
|
308857
309059
|
"Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, and Trae.": "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0442\u0438\u043F \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u0430. \u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043C\u044B\u0435 \u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B\u044B: VS Code, Cursor, Windsurf \u0438 Trae.",
|
|
308858
309060
|
'Terminal "{{terminal}}" is not supported yet.': '\u0422\u0435\u0440\u043C\u0438\u043D\u0430\u043B "{{terminal}}" \u0435\u0449\u0435 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F.',
|
|
308859
309061
|
// ============================================================================
|
|
@@ -309723,6 +309925,7 @@ var init_zh = __esm({
|
|
|
309723
309925
|
// ============================================================================
|
|
309724
309926
|
"Analyzes the project and creates a tailored QWEN.md file.": "\u5206\u6790\u9879\u76EE\u5E76\u521B\u5EFA\u5B9A\u5236\u7684 QWEN.md \u6587\u4EF6",
|
|
309725
309927
|
"List available Qwen Code tools. Usage: /tools [desc]": "\u5217\u51FA\u53EF\u7528\u7684 Qwen Code \u5DE5\u5177\u3002\u7528\u6CD5\uFF1A/tools [desc]",
|
|
309928
|
+
"List available skills.": "\u5217\u51FA\u53EF\u7528\u6280\u80FD\u3002",
|
|
309726
309929
|
"Available Qwen Code CLI tools:": "\u53EF\u7528\u7684 Qwen Code CLI \u5DE5\u5177\uFF1A",
|
|
309727
309930
|
"No tools available": "\u6CA1\u6709\u53EF\u7528\u5DE5\u5177",
|
|
309728
309931
|
"View or change the approval mode for tool usage": "\u67E5\u770B\u6216\u66F4\u6539\u5DE5\u5177\u4F7F\u7528\u7684\u5BA1\u6279\u6A21\u5F0F",
|
|
@@ -310000,6 +310203,7 @@ var init_zh = __esm({
|
|
|
310000
310203
|
"These editors are currently supported. Please note that some editors cannot be used in sandbox mode.": "\u5F53\u524D\u652F\u6301\u4EE5\u4E0B\u7F16\u8F91\u5668\u3002\u8BF7\u6CE8\u610F\uFF0C\u67D0\u4E9B\u7F16\u8F91\u5668\u65E0\u6CD5\u5728\u6C99\u7BB1\u6A21\u5F0F\u4E0B\u4F7F\u7528\u3002",
|
|
310001
310204
|
"Your preferred editor is:": "\u60A8\u7684\u9996\u9009\u7F16\u8F91\u5668\u662F\uFF1A",
|
|
310002
310205
|
"Manage extensions": "\u7BA1\u7406\u6269\u5C55",
|
|
310206
|
+
"Manage installed extensions": "\u7BA1\u7406\u5DF2\u5B89\u88C5\u7684\u6269\u5C55",
|
|
310003
310207
|
"List active extensions": "\u5217\u51FA\u6D3B\u52A8\u6269\u5C55",
|
|
310004
310208
|
"Update extensions. Usage: update <extension-names>|--all": "\u66F4\u65B0\u6269\u5C55\u3002\u7528\u6CD5\uFF1Aupdate <extension-names>|--all",
|
|
310005
310209
|
"Disable an extension": "\u7981\u7528\u6269\u5C55",
|
|
@@ -310130,6 +310334,30 @@ var init_zh = __esm({
|
|
|
310130
310334
|
"{{terminalName}} keybindings already configured.": "{{terminalName}} \u6309\u952E\u7ED1\u5B9A\u5DF2\u914D\u7F6E\u3002",
|
|
310131
310335
|
"Failed to configure {{terminalName}}.": "\u914D\u7F6E {{terminalName}} \u5931\u8D25\u3002",
|
|
310132
310336
|
"Your terminal is already configured for an optimal experience with multiline input (Shift+Enter and Ctrl+Enter).": "\u60A8\u7684\u7EC8\u7AEF\u5DF2\u914D\u7F6E\u4E3A\u652F\u6301\u591A\u884C\u8F93\u5165\uFF08Shift+Enter \u548C Ctrl+Enter\uFF09\u7684\u6700\u4F73\u4F53\u9A8C\u3002",
|
|
310337
|
+
// ============================================================================
|
|
310338
|
+
// Commands - Hooks
|
|
310339
|
+
// ============================================================================
|
|
310340
|
+
"Manage Qwen Code hooks": "\u7BA1\u7406 Qwen Code Hook",
|
|
310341
|
+
"List all configured hooks": "\u5217\u51FA\u6240\u6709\u5DF2\u914D\u7F6E\u7684 Hook",
|
|
310342
|
+
"Enable a disabled hook": "\u542F\u7528\u5DF2\u7981\u7528\u7684 Hook",
|
|
310343
|
+
"Disable an active hook": "\u7981\u7528\u5DF2\u542F\u7528\u7684 Hook",
|
|
310344
|
+
// ============================================================================
|
|
310345
|
+
// Commands - Session Export
|
|
310346
|
+
// ============================================================================
|
|
310347
|
+
"Export current session message history to a file": "\u5C06\u5F53\u524D\u4F1A\u8BDD\u7684\u6D88\u606F\u8BB0\u5F55\u5BFC\u51FA\u5230\u6587\u4EF6",
|
|
310348
|
+
"Export session to HTML format": "\u5C06\u4F1A\u8BDD\u5BFC\u51FA\u4E3A HTML \u6587\u4EF6",
|
|
310349
|
+
"Export session to JSON format": "\u5C06\u4F1A\u8BDD\u5BFC\u51FA\u4E3A JSON \u6587\u4EF6",
|
|
310350
|
+
"Export session to JSONL format (one message per line)": "\u5C06\u4F1A\u8BDD\u5BFC\u51FA\u4E3A JSONL \u6587\u4EF6\uFF08\u6BCF\u884C\u4E00\u6761\u6D88\u606F\uFF09",
|
|
310351
|
+
"Export session to markdown format": "\u5C06\u4F1A\u8BDD\u5BFC\u51FA\u4E3A Markdown \u6587\u4EF6",
|
|
310352
|
+
// ============================================================================
|
|
310353
|
+
// Commands - Insights
|
|
310354
|
+
// ============================================================================
|
|
310355
|
+
"generate personalized programming insights from your chat history": "\u6839\u636E\u4F60\u7684\u804A\u5929\u8BB0\u5F55\u751F\u6210\u4E2A\u6027\u5316\u7F16\u7A0B\u6D1E\u5BDF",
|
|
310356
|
+
// ============================================================================
|
|
310357
|
+
// Commands - Session History
|
|
310358
|
+
// ============================================================================
|
|
310359
|
+
"Resume a previous session": "\u6062\u590D\u5148\u524D\u4F1A\u8BDD",
|
|
310360
|
+
"Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested": "\u6062\u590D\u67D0\u6B21\u5DE5\u5177\u8C03\u7528\u3002\u8FD9\u5C06\u628A\u5BF9\u8BDD\u4E0E\u6587\u4EF6\u5386\u53F2\u91CD\u7F6E\u5230\u63D0\u51FA\u8BE5\u5DE5\u5177\u8C03\u7528\u5EFA\u8BAE\u65F6\u7684\u72B6\u6001",
|
|
310133
310361
|
"Could not detect terminal type. Supported terminals: VS Code, Cursor, Windsurf, and Trae.": "\u65E0\u6CD5\u68C0\u6D4B\u7EC8\u7AEF\u7C7B\u578B\u3002\u652F\u6301\u7684\u7EC8\u7AEF\uFF1AVS Code\u3001Cursor\u3001Windsurf \u548C Trae\u3002",
|
|
310134
310362
|
'Terminal "{{terminal}}" is not supported yet.': '\u7EC8\u7AEF "{{terminal}}" \u5C1A\u672A\u652F\u6301\u3002',
|
|
310135
310363
|
// ============================================================================
|
|
@@ -325447,9 +325675,9 @@ var require_command_exists = __commonJS({
|
|
|
325447
325675
|
cleanInput = /* @__PURE__ */ __name(function(s5) {
|
|
325448
325676
|
var isPathName = /[\\]/.test(s5);
|
|
325449
325677
|
if (isPathName) {
|
|
325450
|
-
var
|
|
325678
|
+
var dirname28 = '"' + path128.dirname(s5) + '"';
|
|
325451
325679
|
var basename26 = '"' + path128.basename(s5) + '"';
|
|
325452
|
-
return
|
|
325680
|
+
return dirname28 + ":" + basename26;
|
|
325453
325681
|
}
|
|
325454
325682
|
return '"' + s5 + '"';
|
|
325455
325683
|
}, "cleanInput");
|
|
@@ -359851,9 +360079,9 @@ var require_logging_utils2 = __commonJS({
|
|
|
359851
360079
|
this.debugPkg = pkg2;
|
|
359852
360080
|
}
|
|
359853
360081
|
makeLogger(namespace) {
|
|
359854
|
-
const
|
|
360082
|
+
const debugLogger138 = this.debugPkg(namespace);
|
|
359855
360083
|
return (fields, ...args) => {
|
|
359856
|
-
|
|
360084
|
+
debugLogger138(args[0], ...args.slice(1));
|
|
359857
360085
|
};
|
|
359858
360086
|
}
|
|
359859
360087
|
setFilters() {
|
|
@@ -359877,7 +360105,7 @@ var require_logging_utils2 = __commonJS({
|
|
|
359877
360105
|
}
|
|
359878
360106
|
makeLogger(namespace) {
|
|
359879
360107
|
var _a7;
|
|
359880
|
-
const
|
|
360108
|
+
const debugLogger138 = (_a7 = this.upstream) === null || _a7 === void 0 ? void 0 : _a7.makeLogger(namespace);
|
|
359881
360109
|
return (fields, ...args) => {
|
|
359882
360110
|
var _a8;
|
|
359883
360111
|
const severity = (_a8 = fields.severity) !== null && _a8 !== void 0 ? _a8 : LogSeverity.INFO;
|
|
@@ -359886,8 +360114,8 @@ var require_logging_utils2 = __commonJS({
|
|
|
359886
360114
|
message: util3.format(...args)
|
|
359887
360115
|
}, fields);
|
|
359888
360116
|
const jsonString = JSON.stringify(json3);
|
|
359889
|
-
if (
|
|
359890
|
-
|
|
360117
|
+
if (debugLogger138) {
|
|
360118
|
+
debugLogger138(fields, jsonString);
|
|
359891
360119
|
} else {
|
|
359892
360120
|
console.log("%s", jsonString);
|
|
359893
360121
|
}
|
|
@@ -369879,11 +370107,11 @@ var require_util32 = __commonJS({
|
|
|
369879
370107
|
if (files.includes("node_modules") || files.includes("package.json") || files.includes("package.json5") || files.includes("package.yaml") || files.includes("pnpm-workspace.yaml")) {
|
|
369880
370108
|
return name4;
|
|
369881
370109
|
}
|
|
369882
|
-
const
|
|
369883
|
-
if (
|
|
370110
|
+
const dirname28 = path128.dirname(name4);
|
|
370111
|
+
if (dirname28 === name4) {
|
|
369884
370112
|
return original;
|
|
369885
370113
|
}
|
|
369886
|
-
return find(
|
|
370114
|
+
return find(dirname28, original);
|
|
369887
370115
|
} catch (error40) {
|
|
369888
370116
|
if (name4 === original) {
|
|
369889
370117
|
if (error40.code === "ENOENT") {
|
|
@@ -379988,6 +380216,59 @@ var TOGGLE_TYPES = /* @__PURE__ */ new Set([
|
|
|
379988
380216
|
"boolean",
|
|
379989
380217
|
"enum"
|
|
379990
380218
|
]);
|
|
380219
|
+
var HOOK_DEFINITION_ITEMS = {
|
|
380220
|
+
type: "object",
|
|
380221
|
+
description: "A hook definition with an optional matcher and a list of hook configurations.",
|
|
380222
|
+
properties: {
|
|
380223
|
+
matcher: {
|
|
380224
|
+
type: "string",
|
|
380225
|
+
description: "An optional matcher pattern to filter when this hook definition applies."
|
|
380226
|
+
},
|
|
380227
|
+
sequential: {
|
|
380228
|
+
type: "boolean",
|
|
380229
|
+
description: "Whether the hooks should be executed sequentially instead of in parallel."
|
|
380230
|
+
},
|
|
380231
|
+
hooks: {
|
|
380232
|
+
type: "array",
|
|
380233
|
+
description: "The list of hook configurations to execute.",
|
|
380234
|
+
required: true,
|
|
380235
|
+
items: {
|
|
380236
|
+
type: "object",
|
|
380237
|
+
description: "A hook configuration entry that defines a command to execute.",
|
|
380238
|
+
properties: {
|
|
380239
|
+
type: {
|
|
380240
|
+
type: "string",
|
|
380241
|
+
description: "The type of hook.",
|
|
380242
|
+
enum: ["command"],
|
|
380243
|
+
required: true
|
|
380244
|
+
},
|
|
380245
|
+
command: {
|
|
380246
|
+
type: "string",
|
|
380247
|
+
description: "The command to execute when the hook is triggered.",
|
|
380248
|
+
required: true
|
|
380249
|
+
},
|
|
380250
|
+
name: {
|
|
380251
|
+
type: "string",
|
|
380252
|
+
description: "An optional name for the hook."
|
|
380253
|
+
},
|
|
380254
|
+
description: {
|
|
380255
|
+
type: "string",
|
|
380256
|
+
description: "An optional description of what the hook does."
|
|
380257
|
+
},
|
|
380258
|
+
timeout: {
|
|
380259
|
+
type: "number",
|
|
380260
|
+
description: "Timeout in milliseconds for the hook execution."
|
|
380261
|
+
},
|
|
380262
|
+
env: {
|
|
380263
|
+
type: "object",
|
|
380264
|
+
description: "Environment variables to set when executing the hook command.",
|
|
380265
|
+
additionalProperties: { type: "string" }
|
|
380266
|
+
}
|
|
380267
|
+
}
|
|
380268
|
+
}
|
|
380269
|
+
}
|
|
380270
|
+
}
|
|
380271
|
+
};
|
|
379991
380272
|
var SETTINGS_SCHEMA = {
|
|
379992
380273
|
// Maintained for compatibility/criticality
|
|
379993
380274
|
mcpServers: {
|
|
@@ -381064,7 +381345,8 @@ var SETTINGS_SCHEMA = {
|
|
|
381064
381345
|
default: [],
|
|
381065
381346
|
description: "Hooks that execute before agent processing. Can modify prompts or inject context.",
|
|
381066
381347
|
showInDialog: false,
|
|
381067
|
-
mergeStrategy: "concat" /* CONCAT
|
|
381348
|
+
mergeStrategy: "concat" /* CONCAT */,
|
|
381349
|
+
items: HOOK_DEFINITION_ITEMS
|
|
381068
381350
|
},
|
|
381069
381351
|
Stop: {
|
|
381070
381352
|
type: "array",
|
|
@@ -381074,7 +381356,8 @@ var SETTINGS_SCHEMA = {
|
|
|
381074
381356
|
default: [],
|
|
381075
381357
|
description: "Hooks that execute after agent processing. Can post-process responses or log interactions.",
|
|
381076
381358
|
showInDialog: false,
|
|
381077
|
-
mergeStrategy: "concat" /* CONCAT
|
|
381359
|
+
mergeStrategy: "concat" /* CONCAT */,
|
|
381360
|
+
items: HOOK_DEFINITION_ITEMS
|
|
381078
381361
|
}
|
|
381079
381362
|
}
|
|
381080
381363
|
}
|
|
@@ -381156,7 +381439,7 @@ import * as fs82 from "node:fs";
|
|
|
381156
381439
|
init_esbuild_shims();
|
|
381157
381440
|
import * as fs80 from "node:fs";
|
|
381158
381441
|
import * as path84 from "node:path";
|
|
381159
|
-
import { fileURLToPath as
|
|
381442
|
+
import { fileURLToPath as fileURLToPath9, pathToFileURL as pathToFileURL5 } from "node:url";
|
|
381160
381443
|
import { homedir as homedir15 } from "node:os";
|
|
381161
381444
|
|
|
381162
381445
|
// import("./locales/**/*.js") in packages/cli/src/i18n/index.ts
|
|
@@ -381175,7 +381458,7 @@ var translations = {};
|
|
|
381175
381458
|
var translationCache = {};
|
|
381176
381459
|
var loadingPromises = {};
|
|
381177
381460
|
var getBuiltinLocalesDir = /* @__PURE__ */ __name(() => {
|
|
381178
|
-
const __filename5 =
|
|
381461
|
+
const __filename5 = fileURLToPath9(import.meta.url);
|
|
381179
381462
|
return path84.join(path84.dirname(__filename5), "locales");
|
|
381180
381463
|
}, "getBuiltinLocalesDir");
|
|
381181
381464
|
var getUserLocalesDir = /* @__PURE__ */ __name(() => path84.join(homedir15(), ".qwen", "locales"), "getUserLocalesDir");
|
|
@@ -384080,18 +384363,18 @@ __name(ui, "ui");
|
|
|
384080
384363
|
|
|
384081
384364
|
// node_modules/escalade/sync/index.mjs
|
|
384082
384365
|
init_esbuild_shims();
|
|
384083
|
-
import { dirname as
|
|
384366
|
+
import { dirname as dirname23, resolve as resolve23 } from "path";
|
|
384084
384367
|
import { readdirSync as readdirSync4, statSync as statSync9 } from "fs";
|
|
384085
384368
|
function sync_default(start, callback) {
|
|
384086
384369
|
let dir = resolve23(".", start);
|
|
384087
384370
|
let tmp, stats = statSync9(dir);
|
|
384088
384371
|
if (!stats.isDirectory()) {
|
|
384089
|
-
dir =
|
|
384372
|
+
dir = dirname23(dir);
|
|
384090
384373
|
}
|
|
384091
384374
|
while (true) {
|
|
384092
384375
|
tmp = callback(dir, readdirSync4(dir));
|
|
384093
384376
|
if (tmp) return resolve23(dir, tmp);
|
|
384094
|
-
dir =
|
|
384377
|
+
dir = dirname23(tmp = dir);
|
|
384095
384378
|
if (tmp === dir) break;
|
|
384096
384379
|
}
|
|
384097
384380
|
}
|
|
@@ -384100,7 +384383,7 @@ __name(sync_default, "default");
|
|
|
384100
384383
|
// node_modules/yargs/lib/platform-shims/esm.mjs
|
|
384101
384384
|
import { inspect as inspect2 } from "util";
|
|
384102
384385
|
import { readFileSync as readFileSync19 } from "fs";
|
|
384103
|
-
import { fileURLToPath as
|
|
384386
|
+
import { fileURLToPath as fileURLToPath10 } from "url";
|
|
384104
384387
|
|
|
384105
384388
|
// node_modules/yargs-parser/build/lib/index.js
|
|
384106
384389
|
init_esbuild_shims();
|
|
@@ -385134,7 +385417,7 @@ yargsParser.looksLikeNumber = looksLikeNumber;
|
|
|
385134
385417
|
var lib_default = yargsParser;
|
|
385135
385418
|
|
|
385136
385419
|
// node_modules/yargs/lib/platform-shims/esm.mjs
|
|
385137
|
-
import { basename as basename18, dirname as
|
|
385420
|
+
import { basename as basename18, dirname as dirname24, extname as extname5, relative as relative9, resolve as resolve26 } from "path";
|
|
385138
385421
|
|
|
385139
385422
|
// node_modules/yargs/build/lib/utils/process-argv.js
|
|
385140
385423
|
init_esbuild_shims();
|
|
@@ -385377,7 +385660,7 @@ var REQUIRE_ERROR = "require is not supported by ESM";
|
|
|
385377
385660
|
var REQUIRE_DIRECTORY_ERROR = "loading a directory of commands is not supported yet for ESM";
|
|
385378
385661
|
var __dirname4;
|
|
385379
385662
|
try {
|
|
385380
|
-
__dirname4 =
|
|
385663
|
+
__dirname4 = fileURLToPath10(import.meta.url);
|
|
385381
385664
|
} catch (e4) {
|
|
385382
385665
|
__dirname4 = process.cwd();
|
|
385383
385666
|
}
|
|
@@ -385401,7 +385684,7 @@ var esm_default3 = {
|
|
|
385401
385684
|
Parser: lib_default,
|
|
385402
385685
|
path: {
|
|
385403
385686
|
basename: basename18,
|
|
385404
|
-
dirname:
|
|
385687
|
+
dirname: dirname24,
|
|
385405
385688
|
extname: extname5,
|
|
385406
385689
|
relative: relative9,
|
|
385407
385690
|
resolve: resolve26
|
|
@@ -388949,10 +389232,10 @@ var linkCommand = {
|
|
|
388949
389232
|
// packages/cli/src/commands/extensions/new.ts
|
|
388950
389233
|
init_esbuild_shims();
|
|
388951
389234
|
import { access as access7, cp as cp2, mkdir as mkdir7, readdir as readdir9, writeFile as writeFile9 } from "node:fs/promises";
|
|
388952
|
-
import { join as join39, dirname as
|
|
388953
|
-
import { fileURLToPath as
|
|
388954
|
-
var __filename3 =
|
|
388955
|
-
var __dirname5 =
|
|
389235
|
+
import { join as join39, dirname as dirname25, basename as basename19 } from "node:path";
|
|
389236
|
+
import { fileURLToPath as fileURLToPath11 } from "node:url";
|
|
389237
|
+
var __filename3 = fileURLToPath11(import.meta.url);
|
|
389238
|
+
var __dirname5 = dirname25(__filename3);
|
|
388956
389239
|
var EXAMPLES_PATH = join39(__dirname5, "examples");
|
|
388957
389240
|
async function pathExists(path128) {
|
|
388958
389241
|
try {
|
|
@@ -389366,9 +389649,9 @@ import path90 from "node:path";
|
|
|
389366
389649
|
init_esbuild_shims();
|
|
389367
389650
|
import process28 from "node:process";
|
|
389368
389651
|
import fsPromises3 from "node:fs/promises";
|
|
389369
|
-
import { fileURLToPath as
|
|
389652
|
+
import { fileURLToPath as fileURLToPath12 } from "node:url";
|
|
389370
389653
|
import path88 from "node:path";
|
|
389371
|
-
var toPath = /* @__PURE__ */ __name((urlOrPath) => urlOrPath instanceof URL ?
|
|
389654
|
+
var toPath = /* @__PURE__ */ __name((urlOrPath) => urlOrPath instanceof URL ? fileURLToPath12(urlOrPath) : urlOrPath, "toPath");
|
|
389372
389655
|
async function findUp(name3, {
|
|
389373
389656
|
cwd: cwd7 = process28.cwd(),
|
|
389374
389657
|
type = "file",
|
|
@@ -389530,9 +389813,9 @@ var import_normalize_package_data = __toESM(require_normalize2(), 1);
|
|
|
389530
389813
|
|
|
389531
389814
|
// node_modules/unicorn-magic/node.js
|
|
389532
389815
|
init_esbuild_shims();
|
|
389533
|
-
import { fileURLToPath as
|
|
389816
|
+
import { fileURLToPath as fileURLToPath13 } from "node:url";
|
|
389534
389817
|
function toPath2(urlOrPath) {
|
|
389535
|
-
return urlOrPath instanceof URL ?
|
|
389818
|
+
return urlOrPath instanceof URL ? fileURLToPath13(urlOrPath) : urlOrPath;
|
|
389536
389819
|
}
|
|
389537
389820
|
__name(toPath2, "toPath");
|
|
389538
389821
|
|
|
@@ -389565,9 +389848,9 @@ async function readPackageUp(options2) {
|
|
|
389565
389848
|
__name(readPackageUp, "readPackageUp");
|
|
389566
389849
|
|
|
389567
389850
|
// packages/cli/src/utils/package.ts
|
|
389568
|
-
import { fileURLToPath as
|
|
389851
|
+
import { fileURLToPath as fileURLToPath14 } from "node:url";
|
|
389569
389852
|
import path91 from "node:path";
|
|
389570
|
-
var __filename4 =
|
|
389853
|
+
var __filename4 = fileURLToPath14(import.meta.url);
|
|
389571
389854
|
var __dirname6 = path91.dirname(__filename4);
|
|
389572
389855
|
var packageJson;
|
|
389573
389856
|
async function getPackageJson() {
|
|
@@ -389586,7 +389869,7 @@ __name(getPackageJson, "getPackageJson");
|
|
|
389586
389869
|
// packages/cli/src/utils/version.ts
|
|
389587
389870
|
async function getCliVersion() {
|
|
389588
389871
|
const pkgJson = await getPackageJson();
|
|
389589
|
-
return "0.12.
|
|
389872
|
+
return "0.12.4-nightly.20260316.110fcd7b7";
|
|
389590
389873
|
}
|
|
389591
389874
|
__name(getCliVersion, "getCliVersion");
|
|
389592
389875
|
|
|
@@ -397149,7 +397432,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
|
|
|
397149
397432
|
|
|
397150
397433
|
// packages/cli/src/generated/git-commit.ts
|
|
397151
397434
|
init_esbuild_shims();
|
|
397152
|
-
var GIT_COMMIT_INFO = "
|
|
397435
|
+
var GIT_COMMIT_INFO = "6620ce73e";
|
|
397153
397436
|
|
|
397154
397437
|
// packages/cli/src/utils/systemInfo.ts
|
|
397155
397438
|
async function getNpmVersion() {
|
|
@@ -399744,30 +400027,40 @@ async function exportJsonlAction(context2) {
|
|
|
399744
400027
|
__name(exportJsonlAction, "exportJsonlAction");
|
|
399745
400028
|
var exportCommand = {
|
|
399746
400029
|
name: "export",
|
|
399747
|
-
description
|
|
400030
|
+
get description() {
|
|
400031
|
+
return t4("Export current session message history to a file");
|
|
400032
|
+
},
|
|
399748
400033
|
kind: "built-in" /* BUILT_IN */,
|
|
399749
400034
|
subCommands: [
|
|
399750
400035
|
{
|
|
399751
400036
|
name: "html",
|
|
399752
|
-
description
|
|
400037
|
+
get description() {
|
|
400038
|
+
return t4("Export session to HTML format");
|
|
400039
|
+
},
|
|
399753
400040
|
kind: "built-in" /* BUILT_IN */,
|
|
399754
400041
|
action: exportHtmlAction
|
|
399755
400042
|
},
|
|
399756
400043
|
{
|
|
399757
400044
|
name: "md",
|
|
399758
|
-
description
|
|
400045
|
+
get description() {
|
|
400046
|
+
return t4("Export session to markdown format");
|
|
400047
|
+
},
|
|
399759
400048
|
kind: "built-in" /* BUILT_IN */,
|
|
399760
400049
|
action: exportMarkdownAction
|
|
399761
400050
|
},
|
|
399762
400051
|
{
|
|
399763
400052
|
name: "json",
|
|
399764
|
-
description
|
|
400053
|
+
get description() {
|
|
400054
|
+
return t4("Export session to JSON format");
|
|
400055
|
+
},
|
|
399765
400056
|
kind: "built-in" /* BUILT_IN */,
|
|
399766
400057
|
action: exportJsonAction
|
|
399767
400058
|
},
|
|
399768
400059
|
{
|
|
399769
400060
|
name: "jsonl",
|
|
399770
|
-
description
|
|
400061
|
+
get description() {
|
|
400062
|
+
return t4("Export session to JSONL format (one message per line)");
|
|
400063
|
+
},
|
|
399771
400064
|
kind: "built-in" /* BUILT_IN */,
|
|
399772
400065
|
action: exportJsonlAction
|
|
399773
400066
|
}
|
|
@@ -401381,7 +401674,11 @@ var restoreCommand = /* @__PURE__ */ __name((config2) => {
|
|
|
401381
401674
|
}
|
|
401382
401675
|
return {
|
|
401383
401676
|
name: "restore",
|
|
401384
|
-
description
|
|
401677
|
+
get description() {
|
|
401678
|
+
return t4(
|
|
401679
|
+
"Restore a tool call. This will reset the conversation and file history to the state it was in when the tool call was suggested"
|
|
401680
|
+
);
|
|
401681
|
+
},
|
|
401385
401682
|
kind: "built-in" /* BUILT_IN */,
|
|
401386
401683
|
action: restoreAction,
|
|
401387
401684
|
completion: completion2
|
|
@@ -403031,7 +403328,7 @@ ${commonData}`;
|
|
|
403031
403328
|
return result;
|
|
403032
403329
|
} catch (error40) {
|
|
403033
403330
|
logger3.error("Failed to generate insight:", error40);
|
|
403034
|
-
|
|
403331
|
+
return void 0;
|
|
403035
403332
|
}
|
|
403036
403333
|
}, "generate");
|
|
403037
403334
|
const schemaImpressiveWorkflows = {
|
|
@@ -403854,6 +404151,49 @@ var BuiltinCommandLoader = class {
|
|
|
403854
404151
|
}
|
|
403855
404152
|
};
|
|
403856
404153
|
|
|
404154
|
+
// packages/cli/src/services/BundledSkillLoader.ts
|
|
404155
|
+
init_esbuild_shims();
|
|
404156
|
+
var debugLogger94 = createDebugLogger("BUNDLED_SKILL_LOADER");
|
|
404157
|
+
var BundledSkillLoader = class {
|
|
404158
|
+
constructor(config2) {
|
|
404159
|
+
this.config = config2;
|
|
404160
|
+
}
|
|
404161
|
+
static {
|
|
404162
|
+
__name(this, "BundledSkillLoader");
|
|
404163
|
+
}
|
|
404164
|
+
async loadCommands(_signal) {
|
|
404165
|
+
const skillManager = this.config?.getSkillManager();
|
|
404166
|
+
if (!skillManager) {
|
|
404167
|
+
debugLogger94.debug("SkillManager not available, skipping bundled skills");
|
|
404168
|
+
return [];
|
|
404169
|
+
}
|
|
404170
|
+
try {
|
|
404171
|
+
const skills = await skillManager.listSkills({ level: "bundled" });
|
|
404172
|
+
debugLogger94.debug(
|
|
404173
|
+
`Loaded ${skills.length} bundled skill(s) as slash commands`
|
|
404174
|
+
);
|
|
404175
|
+
return skills.map((skill) => ({
|
|
404176
|
+
name: skill.name,
|
|
404177
|
+
description: skill.description,
|
|
404178
|
+
kind: "skill" /* SKILL */,
|
|
404179
|
+
action: /* @__PURE__ */ __name(async (context2, _args) => {
|
|
404180
|
+
const content = context2.invocation?.args ? appendToLastTextPart(
|
|
404181
|
+
[{ text: skill.body }],
|
|
404182
|
+
context2.invocation.raw
|
|
404183
|
+
) : [{ text: skill.body }];
|
|
404184
|
+
return {
|
|
404185
|
+
type: "submit_prompt",
|
|
404186
|
+
content
|
|
404187
|
+
};
|
|
404188
|
+
}, "action")
|
|
404189
|
+
}));
|
|
404190
|
+
} catch (error40) {
|
|
404191
|
+
debugLogger94.error("Failed to load bundled skills:", error40);
|
|
404192
|
+
return [];
|
|
404193
|
+
}
|
|
404194
|
+
}
|
|
404195
|
+
};
|
|
404196
|
+
|
|
403857
404197
|
// packages/cli/src/services/FileCommandLoader.ts
|
|
403858
404198
|
init_esbuild_shims();
|
|
403859
404199
|
var import_toml2 = __toESM(require_toml(), 1);
|
|
@@ -404130,7 +404470,7 @@ var ShellProcessor = class {
|
|
|
404130
404470
|
|
|
404131
404471
|
// packages/cli/src/services/prompt-processors/atFileProcessor.ts
|
|
404132
404472
|
init_esbuild_shims();
|
|
404133
|
-
var
|
|
404473
|
+
var debugLogger95 = createDebugLogger("AT_FILE_PROCESSOR");
|
|
404134
404474
|
var AtFileProcessor = class {
|
|
404135
404475
|
constructor(commandName) {
|
|
404136
404476
|
this.commandName = commandName;
|
|
@@ -404176,7 +404516,7 @@ var AtFileProcessor = class {
|
|
|
404176
404516
|
} catch (error40) {
|
|
404177
404517
|
const message = error40 instanceof Error ? error40.message : String(error40);
|
|
404178
404518
|
const uiMessage = `Failed to inject content for '@{${pathStr}}': ${message}`;
|
|
404179
|
-
|
|
404519
|
+
debugLogger95.error(
|
|
404180
404520
|
`[AtFileProcessor] ${uiMessage}. Leaving placeholder in prompt.`
|
|
404181
404521
|
);
|
|
404182
404522
|
context2.ui.addItem(
|
|
@@ -404201,7 +404541,7 @@ var AtFileProcessor = class {
|
|
|
404201
404541
|
};
|
|
404202
404542
|
|
|
404203
404543
|
// packages/cli/src/services/command-factory.ts
|
|
404204
|
-
var
|
|
404544
|
+
var debugLogger96 = createDebugLogger("COMMAND_FACTORY");
|
|
404205
404545
|
function createSlashCommandFromDefinition(filePath, baseDir, definition, extensionName, fileExtension) {
|
|
404206
404546
|
const relativePathWithExt = path105.relative(baseDir, filePath);
|
|
404207
404547
|
const relativePath = relativePathWithExt.substring(
|
|
@@ -404238,7 +404578,7 @@ function createSlashCommandFromDefinition(filePath, baseDir, definition, extensi
|
|
|
404238
404578
|
extensionName,
|
|
404239
404579
|
action: /* @__PURE__ */ __name(async (context2, _args) => {
|
|
404240
404580
|
if (!context2.invocation) {
|
|
404241
|
-
|
|
404581
|
+
debugLogger96.error(
|
|
404242
404582
|
`[FileCommandLoader] Critical error: Command '${baseCommandName}' was executed without invocation context.`
|
|
404243
404583
|
);
|
|
404244
404584
|
return {
|
|
@@ -404276,7 +404616,7 @@ function createSlashCommandFromDefinition(filePath, baseDir, definition, extensi
|
|
|
404276
404616
|
__name(createSlashCommandFromDefinition, "createSlashCommandFromDefinition");
|
|
404277
404617
|
|
|
404278
404618
|
// packages/cli/src/services/FileCommandLoader.ts
|
|
404279
|
-
var
|
|
404619
|
+
var debugLogger97 = createDebugLogger("FILE_COMMAND_LOADER");
|
|
404280
404620
|
var TomlCommandDefSchema = external_exports.object({
|
|
404281
404621
|
prompt: external_exports.string({
|
|
404282
404622
|
required_error: "The 'prompt' field is required.",
|
|
@@ -404350,7 +404690,7 @@ var FileCommandLoader = class {
|
|
|
404350
404690
|
const isEnoent = error40.code === "ENOENT";
|
|
404351
404691
|
const isAbortError3 = error40 instanceof Error && error40.name === "AbortError";
|
|
404352
404692
|
if (!isEnoent && !isAbortError3) {
|
|
404353
|
-
|
|
404693
|
+
debugLogger97.error(
|
|
404354
404694
|
`[FileCommandLoader] Error loading commands from ${dirInfo.path}:`,
|
|
404355
404695
|
error40
|
|
404356
404696
|
);
|
|
@@ -404407,7 +404747,7 @@ var FileCommandLoader = class {
|
|
|
404407
404747
|
}
|
|
404408
404748
|
}
|
|
404409
404749
|
} catch (error40) {
|
|
404410
|
-
|
|
404750
|
+
debugLogger97.warn(
|
|
404411
404751
|
`Failed to read extension config for ${ext2.name}:`,
|
|
404412
404752
|
error40
|
|
404413
404753
|
);
|
|
@@ -404433,7 +404773,7 @@ var FileCommandLoader = class {
|
|
|
404433
404773
|
try {
|
|
404434
404774
|
fileContent = await fs96.readFile(filePath, "utf-8");
|
|
404435
404775
|
} catch (error40) {
|
|
404436
|
-
|
|
404776
|
+
debugLogger97.error(
|
|
404437
404777
|
`[FileCommandLoader] Failed to read file ${filePath}:`,
|
|
404438
404778
|
error40 instanceof Error ? error40.message : String(error40)
|
|
404439
404779
|
);
|
|
@@ -404443,7 +404783,7 @@ var FileCommandLoader = class {
|
|
|
404443
404783
|
try {
|
|
404444
404784
|
parsed = import_toml2.default.parse(fileContent);
|
|
404445
404785
|
} catch (error40) {
|
|
404446
|
-
|
|
404786
|
+
debugLogger97.error(
|
|
404447
404787
|
`[FileCommandLoader] Failed to parse TOML file ${filePath}:`,
|
|
404448
404788
|
error40 instanceof Error ? error40.message : String(error40)
|
|
404449
404789
|
);
|
|
@@ -404451,7 +404791,7 @@ var FileCommandLoader = class {
|
|
|
404451
404791
|
}
|
|
404452
404792
|
const validationResult = TomlCommandDefSchema.safeParse(parsed);
|
|
404453
404793
|
if (!validationResult.success) {
|
|
404454
|
-
|
|
404794
|
+
debugLogger97.error(
|
|
404455
404795
|
`[FileCommandLoader] Skipping invalid command file: ${filePath}. Validation errors:`,
|
|
404456
404796
|
validationResult.error.flatten()
|
|
404457
404797
|
);
|
|
@@ -404478,7 +404818,7 @@ var FileCommandLoader = class {
|
|
|
404478
404818
|
try {
|
|
404479
404819
|
fileContent = await fs96.readFile(filePath, "utf-8");
|
|
404480
404820
|
} catch (error40) {
|
|
404481
|
-
|
|
404821
|
+
debugLogger97.error(
|
|
404482
404822
|
`[FileCommandLoader] Failed to read file ${filePath}:`,
|
|
404483
404823
|
error40 instanceof Error ? error40.message : String(error40)
|
|
404484
404824
|
);
|
|
@@ -404488,7 +404828,7 @@ var FileCommandLoader = class {
|
|
|
404488
404828
|
try {
|
|
404489
404829
|
parsed = parseMarkdownCommand(fileContent);
|
|
404490
404830
|
} catch (error40) {
|
|
404491
|
-
|
|
404831
|
+
debugLogger97.error(
|
|
404492
404832
|
`[FileCommandLoader] Failed to parse Markdown file ${filePath}:`,
|
|
404493
404833
|
error40 instanceof Error ? error40.message : String(error40)
|
|
404494
404834
|
);
|
|
@@ -404496,7 +404836,7 @@ var FileCommandLoader = class {
|
|
|
404496
404836
|
}
|
|
404497
404837
|
const validationResult = MarkdownCommandDefSchema.safeParse(parsed);
|
|
404498
404838
|
if (!validationResult.success) {
|
|
404499
|
-
|
|
404839
|
+
debugLogger97.error(
|
|
404500
404840
|
`[FileCommandLoader] Skipping invalid command file: ${filePath}. Validation errors:`,
|
|
404501
404841
|
validationResult.error.flatten()
|
|
404502
404842
|
);
|
|
@@ -404546,7 +404886,7 @@ function createNonInteractiveUI() {
|
|
|
404546
404886
|
__name(createNonInteractiveUI, "createNonInteractiveUI");
|
|
404547
404887
|
|
|
404548
404888
|
// packages/cli/src/nonInteractiveCliCommands.ts
|
|
404549
|
-
var
|
|
404889
|
+
var debugLogger98 = createDebugLogger("NON_INTERACTIVE_COMMANDS");
|
|
404550
404890
|
var ALLOWED_BUILTIN_COMMANDS_NON_INTERACTIVE = [
|
|
404551
404891
|
"init",
|
|
404552
404892
|
"summary",
|
|
@@ -404625,7 +404965,7 @@ function handleCommandResult(result) {
|
|
|
404625
404965
|
__name(handleCommandResult, "handleCommandResult");
|
|
404626
404966
|
function filterCommandsForNonInteractive(commands, allowedBuiltinCommandNames) {
|
|
404627
404967
|
return commands.filter((cmd) => {
|
|
404628
|
-
if (cmd.kind === "file" /* FILE */) {
|
|
404968
|
+
if (cmd.kind === "file" /* FILE */ || cmd.kind === "skill" /* SKILL */) {
|
|
404629
404969
|
return true;
|
|
404630
404970
|
}
|
|
404631
404971
|
if (cmd.kind === "built-in" /* BUILT_IN */) {
|
|
@@ -404648,6 +404988,7 @@ var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController
|
|
|
404648
404988
|
const allowedBuiltinSet = new Set(allowedBuiltinCommandNames ?? []);
|
|
404649
404989
|
const allLoaders = [
|
|
404650
404990
|
new BuiltinCommandLoader(config2),
|
|
404991
|
+
new BundledSkillLoader(config2),
|
|
404651
404992
|
new FileCommandLoader(config2)
|
|
404652
404993
|
];
|
|
404653
404994
|
const commandService = await CommandService.create(
|
|
@@ -404725,7 +405066,11 @@ var getAvailableCommands = /* @__PURE__ */ __name(async (config2, abortSignal, a
|
|
|
404725
405066
|
]) => {
|
|
404726
405067
|
try {
|
|
404727
405068
|
const allowedBuiltinSet = new Set(allowedBuiltinCommandNames ?? []);
|
|
404728
|
-
const loaders = allowedBuiltinSet.size > 0 ? [
|
|
405069
|
+
const loaders = allowedBuiltinSet.size > 0 ? [
|
|
405070
|
+
new BuiltinCommandLoader(config2),
|
|
405071
|
+
new BundledSkillLoader(config2),
|
|
405072
|
+
new FileCommandLoader(config2)
|
|
405073
|
+
] : [new BundledSkillLoader(config2), new FileCommandLoader(config2)];
|
|
404729
405074
|
const commandService = await CommandService.create(loaders, abortSignal);
|
|
404730
405075
|
const commands = commandService.getCommands();
|
|
404731
405076
|
const filteredCommands = filterCommandsForNonInteractive(
|
|
@@ -404734,13 +405079,13 @@ var getAvailableCommands = /* @__PURE__ */ __name(async (config2, abortSignal, a
|
|
|
404734
405079
|
);
|
|
404735
405080
|
return filteredCommands.filter((cmd) => !cmd.hidden);
|
|
404736
405081
|
} catch (error40) {
|
|
404737
|
-
|
|
405082
|
+
debugLogger98.error("Error loading available commands:", error40);
|
|
404738
405083
|
return [];
|
|
404739
405084
|
}
|
|
404740
405085
|
}, "getAvailableCommands");
|
|
404741
405086
|
|
|
404742
405087
|
// packages/cli/src/utils/nonInteractiveHelpers.ts
|
|
404743
|
-
var
|
|
405088
|
+
var debugLogger99 = createDebugLogger("NON_INTERACTIVE");
|
|
404744
405089
|
function normalizePartList(parts) {
|
|
404745
405090
|
if (!parts) {
|
|
404746
405091
|
return [];
|
|
@@ -404813,7 +405158,7 @@ async function loadSlashCommandNames(config2, allowedBuiltinCommandNames) {
|
|
|
404813
405158
|
);
|
|
404814
405159
|
return commands.map((cmd) => cmd.name).sort();
|
|
404815
405160
|
} catch (error40) {
|
|
404816
|
-
|
|
405161
|
+
debugLogger99.error(
|
|
404817
405162
|
"[buildSystemMessage] Failed to load slash commands:",
|
|
404818
405163
|
error40
|
|
404819
405164
|
);
|
|
@@ -404841,7 +405186,7 @@ async function buildSystemMessage(config2, sessionId, permissionMode, allowedBui
|
|
|
404841
405186
|
const subagents = await subagentManager.listSubagents();
|
|
404842
405187
|
agentNames = subagents.map((subagent) => subagent.name);
|
|
404843
405188
|
} catch (error40) {
|
|
404844
|
-
|
|
405189
|
+
debugLogger99.error("[buildSystemMessage] Failed to load subagents:", error40);
|
|
404845
405190
|
}
|
|
404846
405191
|
const systemMessage = {
|
|
404847
405192
|
type: "system",
|
|
@@ -406424,7 +406769,7 @@ ${messages.join("\n")}`;
|
|
|
406424
406769
|
__name(handleAtCommand, "handleAtCommand");
|
|
406425
406770
|
|
|
406426
406771
|
// packages/cli/src/nonInteractiveCli.ts
|
|
406427
|
-
var
|
|
406772
|
+
var debugLogger100 = createDebugLogger("NON_INTERACTIVE_CLI");
|
|
406428
406773
|
async function emitNonInteractiveFinalMessage(params) {
|
|
406429
406774
|
const { message, isError, adapter, config: config2 } = params;
|
|
406430
406775
|
adapter.startAssistantMessage();
|
|
@@ -406477,7 +406822,7 @@ async function runNonInteractive(config2, settings, input, prompt_id, options2 =
|
|
|
406477
406822
|
const geminiClient = config2.getGeminiClient();
|
|
406478
406823
|
const abortController = options2.abortController ?? new AbortController();
|
|
406479
406824
|
const shutdownHandler = /* @__PURE__ */ __name(() => {
|
|
406480
|
-
|
|
406825
|
+
debugLogger100.debug("[runNonInteractive] Shutdown signal received");
|
|
406481
406826
|
abortController.abort();
|
|
406482
406827
|
}, "shutdownHandler");
|
|
406483
406828
|
try {
|
|
@@ -406903,7 +407248,7 @@ var BaseController = class {
|
|
|
406903
407248
|
};
|
|
406904
407249
|
|
|
406905
407250
|
// packages/cli/src/nonInteractive/control/controllers/systemController.ts
|
|
406906
|
-
var
|
|
407251
|
+
var debugLogger101 = createDebugLogger("SYSTEM_CONTROLLER");
|
|
406907
407252
|
var SystemController = class extends BaseController {
|
|
406908
407253
|
static {
|
|
406909
407254
|
__name(this, "SystemController");
|
|
@@ -406997,11 +407342,11 @@ var SystemController = class extends BaseController {
|
|
|
406997
407342
|
if (sdkServerCount > 0) {
|
|
406998
407343
|
try {
|
|
406999
407344
|
this.context.config.addMcpServers(sdkServers);
|
|
407000
|
-
|
|
407345
|
+
debugLogger101.debug(
|
|
407001
407346
|
`[SystemController] Added ${sdkServerCount} SDK MCP servers to config`
|
|
407002
407347
|
);
|
|
407003
407348
|
} catch (error40) {
|
|
407004
|
-
|
|
407349
|
+
debugLogger101.error(
|
|
407005
407350
|
"[SystemController] Failed to add SDK MCP servers:",
|
|
407006
407351
|
error40
|
|
407007
407352
|
);
|
|
@@ -407023,11 +407368,11 @@ var SystemController = class extends BaseController {
|
|
|
407023
407368
|
if (externalCount > 0) {
|
|
407024
407369
|
try {
|
|
407025
407370
|
this.context.config.addMcpServers(externalServers);
|
|
407026
|
-
|
|
407371
|
+
debugLogger101.debug(
|
|
407027
407372
|
`[SystemController] Added ${externalCount} external MCP servers to config`
|
|
407028
407373
|
);
|
|
407029
407374
|
} catch (error40) {
|
|
407030
|
-
|
|
407375
|
+
debugLogger101.error(
|
|
407031
407376
|
"[SystemController] Failed to add external MCP servers:",
|
|
407032
407377
|
error40
|
|
407033
407378
|
);
|
|
@@ -407037,18 +407382,18 @@ var SystemController = class extends BaseController {
|
|
|
407037
407382
|
if (payload.agents && Array.isArray(payload.agents)) {
|
|
407038
407383
|
try {
|
|
407039
407384
|
this.context.config.setSessionSubagents(payload.agents);
|
|
407040
|
-
|
|
407385
|
+
debugLogger101.debug(
|
|
407041
407386
|
`[SystemController] Added ${payload.agents.length} session subagents to config`
|
|
407042
407387
|
);
|
|
407043
407388
|
} catch (error40) {
|
|
407044
|
-
|
|
407389
|
+
debugLogger101.error(
|
|
407045
407390
|
"[SystemController] Failed to add session subagents:",
|
|
407046
407391
|
error40
|
|
407047
407392
|
);
|
|
407048
407393
|
}
|
|
407049
407394
|
}
|
|
407050
407395
|
const capabilities = this.buildControlCapabilities();
|
|
407051
|
-
|
|
407396
|
+
debugLogger101.debug(
|
|
407052
407397
|
`[SystemController] Initialized with ${this.context.sdkMcpServers.size} SDK MCP servers`
|
|
407053
407398
|
);
|
|
407054
407399
|
return {
|
|
@@ -407077,7 +407422,7 @@ var SystemController = class extends BaseController {
|
|
|
407077
407422
|
}
|
|
407078
407423
|
normalizeMcpServerConfig(serverName, config2) {
|
|
407079
407424
|
if (!config2 || typeof config2 !== "object") {
|
|
407080
|
-
|
|
407425
|
+
debugLogger101.warn(
|
|
407081
407426
|
`[SystemController] Ignoring invalid MCP server config for '${serverName}'`
|
|
407082
407427
|
);
|
|
407083
407428
|
return null;
|
|
@@ -407117,7 +407462,7 @@ var SystemController = class extends BaseController {
|
|
|
407117
407462
|
case AuthProviderType.SERVICE_ACCOUNT_IMPERSONATION:
|
|
407118
407463
|
return value;
|
|
407119
407464
|
default:
|
|
407120
|
-
|
|
407465
|
+
debugLogger101.warn(
|
|
407121
407466
|
`[SystemController] Unsupported authProviderType '${value}', skipping`
|
|
407122
407467
|
);
|
|
407123
407468
|
return void 0;
|
|
@@ -407150,9 +407495,9 @@ var SystemController = class extends BaseController {
|
|
|
407150
407495
|
this.context.onInterrupt();
|
|
407151
407496
|
}
|
|
407152
407497
|
if (this.context.abortSignal && !this.context.abortSignal.aborted) {
|
|
407153
|
-
|
|
407498
|
+
debugLogger101.debug("[SystemController] Interrupt signal triggered");
|
|
407154
407499
|
}
|
|
407155
|
-
|
|
407500
|
+
debugLogger101.debug("[SystemController] Interrupt handled");
|
|
407156
407501
|
return { subtype: "interrupt" };
|
|
407157
407502
|
}
|
|
407158
407503
|
/**
|
|
@@ -407170,14 +407515,14 @@ var SystemController = class extends BaseController {
|
|
|
407170
407515
|
}
|
|
407171
407516
|
try {
|
|
407172
407517
|
await this.context.config.setModel(model);
|
|
407173
|
-
|
|
407518
|
+
debugLogger101.info(`[SystemController] Model switched to: ${model}`);
|
|
407174
407519
|
return {
|
|
407175
407520
|
subtype: "set_model",
|
|
407176
407521
|
model
|
|
407177
407522
|
};
|
|
407178
407523
|
} catch (error40) {
|
|
407179
407524
|
const errorMessage = error40 instanceof Error ? error40.message : "Failed to set model";
|
|
407180
|
-
|
|
407525
|
+
debugLogger101.error(
|
|
407181
407526
|
`[SystemController] Failed to set model ${model}:`,
|
|
407182
407527
|
error40
|
|
407183
407528
|
);
|
|
@@ -407219,7 +407564,7 @@ var SystemController = class extends BaseController {
|
|
|
407219
407564
|
if (signal.aborted) {
|
|
407220
407565
|
return [];
|
|
407221
407566
|
}
|
|
407222
|
-
|
|
407567
|
+
debugLogger101.error(
|
|
407223
407568
|
"[SystemController] Failed to load slash commands:",
|
|
407224
407569
|
error40
|
|
407225
407570
|
);
|
|
@@ -407672,7 +408017,7 @@ var SdkMcpController = class extends BaseController {
|
|
|
407672
408017
|
};
|
|
407673
408018
|
|
|
407674
408019
|
// packages/cli/src/nonInteractive/control/ControlDispatcher.ts
|
|
407675
|
-
var
|
|
408020
|
+
var debugLogger102 = createDebugLogger("CONTROL_DISPATCHER");
|
|
407676
408021
|
var ControlDispatcher = class {
|
|
407677
408022
|
static {
|
|
407678
408023
|
__name(this, "ControlDispatcher");
|
|
@@ -407731,7 +408076,7 @@ var ControlDispatcher = class {
|
|
|
407731
408076
|
const requestId = responsePayload.request_id;
|
|
407732
408077
|
const pending = this.pendingOutgoingRequests.get(requestId);
|
|
407733
408078
|
if (!pending) {
|
|
407734
|
-
|
|
408079
|
+
debugLogger102.debug(
|
|
407735
408080
|
`[ControlDispatcher] No pending outgoing request for: ${requestId}`
|
|
407736
408081
|
);
|
|
407737
408082
|
return;
|
|
@@ -407760,7 +408105,7 @@ var ControlDispatcher = class {
|
|
|
407760
408105
|
pending.abortController.abort();
|
|
407761
408106
|
this.deregisterIncomingRequest(requestId);
|
|
407762
408107
|
this.sendErrorResponse(requestId, "Request cancelled");
|
|
407763
|
-
|
|
408108
|
+
debugLogger102.debug(
|
|
407764
408109
|
`[ControlDispatcher] Cancelled incoming request: ${requestId}`
|
|
407765
408110
|
);
|
|
407766
408111
|
}
|
|
@@ -407774,7 +408119,7 @@ var ControlDispatcher = class {
|
|
|
407774
408119
|
this.sendErrorResponse(id, "All requests cancelled");
|
|
407775
408120
|
}
|
|
407776
408121
|
}
|
|
407777
|
-
|
|
408122
|
+
debugLogger102.debug(
|
|
407778
408123
|
`[ControlDispatcher] Cancelled all ${requestIds.length} pending incoming requests`
|
|
407779
408124
|
);
|
|
407780
408125
|
}
|
|
@@ -407791,7 +408136,7 @@ var ControlDispatcher = class {
|
|
|
407791
408136
|
this.context.inputClosed = true;
|
|
407792
408137
|
const requestIds = Array.from(this.pendingOutgoingRequests.keys());
|
|
407793
408138
|
if (this.context.debugMode) {
|
|
407794
|
-
|
|
408139
|
+
debugLogger102.debug(
|
|
407795
408140
|
`[ControlDispatcher] Input closed, rejecting ${requestIds.length} pending outgoing requests`
|
|
407796
408141
|
);
|
|
407797
408142
|
}
|
|
@@ -407807,7 +408152,7 @@ var ControlDispatcher = class {
|
|
|
407807
408152
|
* Stops all pending requests and cleans up all controllers
|
|
407808
408153
|
*/
|
|
407809
408154
|
shutdown() {
|
|
407810
|
-
|
|
408155
|
+
debugLogger102.debug("[ControlDispatcher] Shutting down");
|
|
407811
408156
|
if (this.abortHandler) {
|
|
407812
408157
|
this.context.abortSignal.removeEventListener("abort", this.abortHandler);
|
|
407813
408158
|
this.abortHandler = null;
|
|
@@ -407894,7 +408239,7 @@ var ControlDispatcher = class {
|
|
|
407894
408239
|
const startTime = Date.now();
|
|
407895
408240
|
while (this.pendingIncomingRequests.size > 0) {
|
|
407896
408241
|
if (Date.now() - startTime > timeoutMs) {
|
|
407897
|
-
|
|
408242
|
+
debugLogger102.warn(
|
|
407898
408243
|
`[ControlDispatcher] Timeout waiting for ${this.pendingIncomingRequests.size} pending incoming requests`
|
|
407899
408244
|
);
|
|
407900
408245
|
break;
|
|
@@ -407902,7 +408247,7 @@ var ControlDispatcher = class {
|
|
|
407902
408247
|
await new Promise((resolve30) => setTimeout(resolve30, pollIntervalMs));
|
|
407903
408248
|
}
|
|
407904
408249
|
if (this.pendingIncomingRequests.size === 0) {
|
|
407905
|
-
|
|
408250
|
+
debugLogger102.debug("[ControlDispatcher] All incoming requests completed");
|
|
407906
408251
|
}
|
|
407907
408252
|
}
|
|
407908
408253
|
/**
|
|
@@ -408123,7 +408468,7 @@ function isControlCancel(msg) {
|
|
|
408123
408468
|
__name(isControlCancel, "isControlCancel");
|
|
408124
408469
|
|
|
408125
408470
|
// packages/cli/src/nonInteractive/session.ts
|
|
408126
|
-
var
|
|
408471
|
+
var debugLogger103 = createDebugLogger("NON_INTERACTIVE_SESSION");
|
|
408127
408472
|
var Session2 = class {
|
|
408128
408473
|
static {
|
|
408129
408474
|
__name(this, "Session");
|
|
@@ -408186,12 +408531,12 @@ var Session2 = class {
|
|
|
408186
408531
|
if (this.configInitialized) {
|
|
408187
408532
|
return;
|
|
408188
408533
|
}
|
|
408189
|
-
|
|
408534
|
+
debugLogger103.debug("[Session] Initializing config");
|
|
408190
408535
|
try {
|
|
408191
408536
|
await this.config.initialize(options2);
|
|
408192
408537
|
this.configInitialized = true;
|
|
408193
408538
|
} catch (error40) {
|
|
408194
|
-
|
|
408539
|
+
debugLogger103.error("[Session] Failed to initialize config:", error40);
|
|
408195
408540
|
throw error40;
|
|
408196
408541
|
}
|
|
408197
408542
|
}
|
|
@@ -408200,7 +408545,7 @@ var Session2 = class {
|
|
|
408200
408545
|
*/
|
|
408201
408546
|
completeInitialization() {
|
|
408202
408547
|
if (this.initializationResolve) {
|
|
408203
|
-
|
|
408548
|
+
debugLogger103.debug("[Session] Initialization complete");
|
|
408204
408549
|
this.initializationResolve();
|
|
408205
408550
|
this.initializationResolve = null;
|
|
408206
408551
|
this.initializationReject = null;
|
|
@@ -408211,7 +408556,7 @@ var Session2 = class {
|
|
|
408211
408556
|
*/
|
|
408212
408557
|
failInitialization(error40) {
|
|
408213
408558
|
if (this.initializationReject) {
|
|
408214
|
-
|
|
408559
|
+
debugLogger103.error("[Session] Initialization failed:", error40);
|
|
408215
408560
|
this.initializationReject(error40);
|
|
408216
408561
|
this.initializationResolve = null;
|
|
408217
408562
|
this.initializationReject = null;
|
|
@@ -408270,7 +408615,7 @@ var Session2 = class {
|
|
|
408270
408615
|
void this.initializeSdkMode(request4);
|
|
408271
408616
|
return;
|
|
408272
408617
|
}
|
|
408273
|
-
|
|
408618
|
+
debugLogger103.debug(
|
|
408274
408619
|
"[Session] Ignoring non-initialize control request during initialization"
|
|
408275
408620
|
);
|
|
408276
408621
|
return;
|
|
@@ -408294,7 +408639,7 @@ var Session2 = class {
|
|
|
408294
408639
|
await this.ensureConfigInitialized({ sendSdkMcpMessage });
|
|
408295
408640
|
this.completeInitialization();
|
|
408296
408641
|
} catch (error40) {
|
|
408297
|
-
|
|
408642
|
+
debugLogger103.error("[Session] SDK mode initialization failed:", error40);
|
|
408298
408643
|
this.failInitialization(
|
|
408299
408644
|
error40 instanceof Error ? error40 : new Error(String(error40))
|
|
408300
408645
|
);
|
|
@@ -408311,7 +408656,7 @@ var Session2 = class {
|
|
|
408311
408656
|
this.completeInitialization();
|
|
408312
408657
|
this.enqueueUserMessage(userMessage);
|
|
408313
408658
|
} catch (error40) {
|
|
408314
|
-
|
|
408659
|
+
debugLogger103.error("[Session] Direct mode initialization failed:", error40);
|
|
408315
408660
|
this.failInitialization(
|
|
408316
408661
|
error40 instanceof Error ? error40 : new Error(String(error40))
|
|
408317
408662
|
);
|
|
@@ -408324,11 +408669,11 @@ var Session2 = class {
|
|
|
408324
408669
|
handleControlRequestAsync(request4) {
|
|
408325
408670
|
const dispatcher = this.getDispatcher();
|
|
408326
408671
|
if (!dispatcher) {
|
|
408327
|
-
|
|
408672
|
+
debugLogger103.warn("[Session] Control system not enabled");
|
|
408328
408673
|
return;
|
|
408329
408674
|
}
|
|
408330
408675
|
void dispatcher.dispatch(request4).catch((error40) => {
|
|
408331
|
-
|
|
408676
|
+
debugLogger103.error("[Session] Control request dispatch error:", error40);
|
|
408332
408677
|
});
|
|
408333
408678
|
}
|
|
408334
408679
|
/**
|
|
@@ -408352,7 +408697,7 @@ var Session2 = class {
|
|
|
408352
408697
|
async processUserMessage(userMessage) {
|
|
408353
408698
|
const input = extractUserMessageText(userMessage);
|
|
408354
408699
|
if (!input) {
|
|
408355
|
-
|
|
408700
|
+
debugLogger103.debug("[Session] No text content in user message");
|
|
408356
408701
|
return;
|
|
408357
408702
|
}
|
|
408358
408703
|
await this.waitForInitialization();
|
|
@@ -408370,7 +408715,7 @@ var Session2 = class {
|
|
|
408370
408715
|
}
|
|
408371
408716
|
);
|
|
408372
408717
|
} catch (error40) {
|
|
408373
|
-
|
|
408718
|
+
debugLogger103.error("[Session] Query execution error:", error40);
|
|
408374
408719
|
}
|
|
408375
408720
|
}
|
|
408376
408721
|
async processUserMessageQueue() {
|
|
@@ -408382,7 +408727,7 @@ var Session2 = class {
|
|
|
408382
408727
|
try {
|
|
408383
408728
|
await this.processUserMessage(userMessage);
|
|
408384
408729
|
} catch (error40) {
|
|
408385
|
-
|
|
408730
|
+
debugLogger103.error("[Session] Error processing user message:", error40);
|
|
408386
408731
|
this.emitErrorResult(error40);
|
|
408387
408732
|
}
|
|
408388
408733
|
}
|
|
@@ -408414,12 +408759,12 @@ var Session2 = class {
|
|
|
408414
408759
|
});
|
|
408415
408760
|
}
|
|
408416
408761
|
handleInterrupt() {
|
|
408417
|
-
|
|
408762
|
+
debugLogger103.info("[Session] Interrupt requested");
|
|
408418
408763
|
this.abortController.abort();
|
|
408419
408764
|
}
|
|
408420
408765
|
setupSignalHandlers() {
|
|
408421
408766
|
this.shutdownHandler = () => {
|
|
408422
|
-
|
|
408767
|
+
debugLogger103.info("[Session] Shutdown signal received");
|
|
408423
408768
|
this.isShuttingDown = true;
|
|
408424
408769
|
this.abortController.abort();
|
|
408425
408770
|
};
|
|
@@ -408433,7 +408778,7 @@ var Session2 = class {
|
|
|
408433
408778
|
try {
|
|
408434
408779
|
await this.waitForInitialization();
|
|
408435
408780
|
} catch (error40) {
|
|
408436
|
-
|
|
408781
|
+
debugLogger103.error(
|
|
408437
408782
|
"[Session] Initialization error during shutdown:",
|
|
408438
408783
|
error40
|
|
408439
408784
|
);
|
|
@@ -408441,23 +408786,23 @@ var Session2 = class {
|
|
|
408441
408786
|
if (this.dispatcher) {
|
|
408442
408787
|
const pendingCount = this.dispatcher.getPendingIncomingRequestCount();
|
|
408443
408788
|
if (pendingCount > 0) {
|
|
408444
|
-
|
|
408789
|
+
debugLogger103.debug(
|
|
408445
408790
|
`[Session] Waiting for ${pendingCount} pending control request handlers`
|
|
408446
408791
|
);
|
|
408447
408792
|
}
|
|
408448
408793
|
await this.dispatcher.waitForPendingIncomingRequests();
|
|
408449
408794
|
}
|
|
408450
408795
|
while (this.processingPromise) {
|
|
408451
|
-
|
|
408796
|
+
debugLogger103.debug("[Session] Waiting for user message processing");
|
|
408452
408797
|
try {
|
|
408453
408798
|
await this.processingPromise;
|
|
408454
408799
|
} catch (error40) {
|
|
408455
|
-
|
|
408800
|
+
debugLogger103.error("[Session] Error in user message processing:", error40);
|
|
408456
408801
|
}
|
|
408457
408802
|
}
|
|
408458
408803
|
}
|
|
408459
408804
|
async shutdown() {
|
|
408460
|
-
|
|
408805
|
+
debugLogger103.debug("[Session] Shutting down");
|
|
408461
408806
|
this.isShuttingDown = true;
|
|
408462
408807
|
await this.waitForAllPendingWork();
|
|
408463
408808
|
this.dispatcher?.shutdown();
|
|
@@ -408487,7 +408832,7 @@ var Session2 = class {
|
|
|
408487
408832
|
*/
|
|
408488
408833
|
async run() {
|
|
408489
408834
|
try {
|
|
408490
|
-
|
|
408835
|
+
debugLogger103.info("[Session] Starting session", this.sessionId);
|
|
408491
408836
|
if (this.initialPrompt !== null) {
|
|
408492
408837
|
this.handleFirstMessage(this.initialPrompt);
|
|
408493
408838
|
}
|
|
@@ -408511,7 +408856,7 @@ var Session2 = class {
|
|
|
408511
408856
|
} else if (isCLIUserMessage(message)) {
|
|
408512
408857
|
this.enqueueUserMessage(message);
|
|
408513
408858
|
} else if (!isCLIAssistantMessage(message) && !isCLISystemMessage(message) && !isCLIResultMessage(message) && !isCLIPartialAssistantMessage(message)) {
|
|
408514
|
-
|
|
408859
|
+
debugLogger103.warn(
|
|
408515
408860
|
"[Session] Unknown message type:",
|
|
408516
408861
|
JSON.stringify(message, null, 2)
|
|
408517
408862
|
);
|
|
@@ -408521,7 +408866,7 @@ var Session2 = class {
|
|
|
408521
408866
|
}
|
|
408522
408867
|
}
|
|
408523
408868
|
} catch (streamError) {
|
|
408524
|
-
|
|
408869
|
+
debugLogger103.error("[Session] Stream reading error:", streamError);
|
|
408525
408870
|
throw streamError;
|
|
408526
408871
|
}
|
|
408527
408872
|
if (this.dispatcher) {
|
|
@@ -408530,7 +408875,7 @@ var Session2 = class {
|
|
|
408530
408875
|
await this.waitForAllPendingWork();
|
|
408531
408876
|
await this.shutdown();
|
|
408532
408877
|
} catch (error40) {
|
|
408533
|
-
|
|
408878
|
+
debugLogger103.error("[Session] Error:", error40);
|
|
408534
408879
|
await this.shutdown();
|
|
408535
408880
|
throw error40;
|
|
408536
408881
|
} finally {
|
|
@@ -422795,7 +423140,7 @@ var OverflowProvider = /* @__PURE__ */ __name(({
|
|
|
422795
423140
|
// packages/cli/src/ui/components/shared/MaxSizedBox.tsx
|
|
422796
423141
|
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
|
|
422797
423142
|
var enableDebugLog = false;
|
|
422798
|
-
var
|
|
423143
|
+
var debugLogger104 = createDebugLogger("MAX_SIZED_BOX");
|
|
422799
423144
|
var MINIMUM_MAX_HEIGHT = 2;
|
|
422800
423145
|
function setMaxSizedBoxDebugging(value) {
|
|
422801
423146
|
enableDebugLog = value;
|
|
@@ -422804,7 +423149,7 @@ __name(setMaxSizedBoxDebugging, "setMaxSizedBoxDebugging");
|
|
|
422804
423149
|
function debugReportError(message, element) {
|
|
422805
423150
|
if (!enableDebugLog) return;
|
|
422806
423151
|
if (!import_react35.default.isValidElement(element)) {
|
|
422807
|
-
|
|
423152
|
+
debugLogger104.error(
|
|
422808
423153
|
message,
|
|
422809
423154
|
`Invalid element: '${String(element)}' typeof=${typeof element}`
|
|
422810
423155
|
);
|
|
@@ -422817,9 +423162,9 @@ function debugReportError(message, element) {
|
|
|
422817
423162
|
const lineNumber = elementWithSource._source?.lineNumber;
|
|
422818
423163
|
sourceMessage = fileName ? `${fileName}:${lineNumber}` : "<Unknown file>";
|
|
422819
423164
|
} catch (error40) {
|
|
422820
|
-
|
|
423165
|
+
debugLogger104.error("Error while trying to get file name:", error40);
|
|
422821
423166
|
}
|
|
422822
|
-
|
|
423167
|
+
debugLogger104.error(
|
|
422823
423168
|
message,
|
|
422824
423169
|
`${String(element.type)}. Source: ${sourceMessage}`
|
|
422825
423170
|
);
|
|
@@ -423172,7 +423517,7 @@ __name(layoutInkElementAsStyledText, "layoutInkElementAsStyledText");
|
|
|
423172
423517
|
// packages/cli/src/ui/utils/CodeColorizer.tsx
|
|
423173
423518
|
var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
|
|
423174
423519
|
var lowlight = createLowlight(grammars);
|
|
423175
|
-
var
|
|
423520
|
+
var debugLogger105 = createDebugLogger("CODE_COLORIZER");
|
|
423176
423521
|
function renderHastNode(node, theme2, inheritedColor) {
|
|
423177
423522
|
if (node.type === "text") {
|
|
423178
423523
|
const color = inheritedColor || theme2.defaultColor;
|
|
@@ -423258,7 +423603,7 @@ function colorizeCode(code2, language, availableHeight, maxWidth, theme2, settin
|
|
|
423258
423603
|
}
|
|
423259
423604
|
);
|
|
423260
423605
|
} catch (error40) {
|
|
423261
|
-
|
|
423606
|
+
debugLogger105.error(
|
|
423262
423607
|
`[colorizeCode] Error highlighting code for language "${language}":`,
|
|
423263
423608
|
error40
|
|
423264
423609
|
);
|
|
@@ -423294,7 +423639,7 @@ var STRIKETHROUGH_MARKER_LENGTH = 2;
|
|
|
423294
423639
|
var INLINE_CODE_MARKER_LENGTH = 1;
|
|
423295
423640
|
var UNDERLINE_TAG_START_LENGTH = 3;
|
|
423296
423641
|
var UNDERLINE_TAG_END_LENGTH = 4;
|
|
423297
|
-
var
|
|
423642
|
+
var debugLogger106 = createDebugLogger("INLINE_MARKDOWN");
|
|
423298
423643
|
var RenderInlineInternal = /* @__PURE__ */ __name(({
|
|
423299
423644
|
text,
|
|
423300
423645
|
textColor = theme.text.primary
|
|
@@ -423357,7 +423702,7 @@ var RenderInlineInternal = /* @__PURE__ */ __name(({
|
|
|
423357
423702
|
renderedNode = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Text3, { color: theme.text.link, children: fullMatch }, key);
|
|
423358
423703
|
}
|
|
423359
423704
|
} catch (e4) {
|
|
423360
|
-
|
|
423705
|
+
debugLogger106.error("Error parsing inline markdown part:", fullMatch, e4);
|
|
423361
423706
|
renderedNode = null;
|
|
423362
423707
|
}
|
|
423363
423708
|
nodes.push(renderedNode ?? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Text3, { children: fullMatch }, key));
|
|
@@ -424699,7 +425044,7 @@ import { PassThrough as PassThrough5 } from "node:stream";
|
|
|
424699
425044
|
init_esbuild_shims();
|
|
424700
425045
|
import * as fs98 from "node:fs/promises";
|
|
424701
425046
|
import * as path108 from "node:path";
|
|
424702
|
-
var
|
|
425047
|
+
var debugLogger107 = createDebugLogger("CLIPBOARD_UTILS");
|
|
424703
425048
|
var cachedClipboardModule = null;
|
|
424704
425049
|
var clipboardLoadAttempted = false;
|
|
424705
425050
|
async function getClipboardModule() {
|
|
@@ -424710,7 +425055,7 @@ async function getClipboardModule() {
|
|
|
424710
425055
|
cachedClipboardModule = await import(modName);
|
|
424711
425056
|
return cachedClipboardModule;
|
|
424712
425057
|
} catch (_e2) {
|
|
424713
|
-
|
|
425058
|
+
debugLogger107.error(
|
|
424714
425059
|
"Failed to load @teddyzhu/clipboard native module. Clipboard image features will be unavailable."
|
|
424715
425060
|
);
|
|
424716
425061
|
return null;
|
|
@@ -424724,7 +425069,7 @@ async function clipboardHasImage() {
|
|
|
424724
425069
|
const clipboard = new mod2.ClipboardManager();
|
|
424725
425070
|
return clipboard.hasFormat("image");
|
|
424726
425071
|
} catch (error40) {
|
|
424727
|
-
|
|
425072
|
+
debugLogger107.error("Error checking clipboard for image:", error40);
|
|
424728
425073
|
return false;
|
|
424729
425074
|
}
|
|
424730
425075
|
}
|
|
@@ -424750,7 +425095,7 @@ async function saveClipboardImage(targetDir) {
|
|
|
424750
425095
|
await fs98.writeFile(tempFilePath, buffer);
|
|
424751
425096
|
return tempFilePath;
|
|
424752
425097
|
} catch (error40) {
|
|
424753
|
-
|
|
425098
|
+
debugLogger107.error("Error saving clipboard image:", error40);
|
|
424754
425099
|
return null;
|
|
424755
425100
|
}
|
|
424756
425101
|
}
|
|
@@ -424873,7 +425218,7 @@ var KITTY_KEYPAD_FUNCTIONAL_KEYCODE_TO_NAME = {
|
|
|
424873
425218
|
var KeypressContext = (0, import_react42.createContext)(
|
|
424874
425219
|
void 0
|
|
424875
425220
|
);
|
|
424876
|
-
var
|
|
425221
|
+
var debugLogger108 = createDebugLogger("KEYPRESS");
|
|
424877
425222
|
function useKeypressContext() {
|
|
424878
425223
|
const context2 = (0, import_react42.useContext)(KeypressContext);
|
|
424879
425224
|
if (!context2) {
|
|
@@ -425278,7 +425623,7 @@ function KeypressProvider({
|
|
|
425278
425623
|
}
|
|
425279
425624
|
if (key.ctrl && key.name === "c" || key.sequence === `${ESC2}${KITTY_CTRL_C}`) {
|
|
425280
425625
|
if (kittySequenceBuffer && debugKeystrokeLogging) {
|
|
425281
|
-
|
|
425626
|
+
debugLogger108.debug(
|
|
425282
425627
|
"[DEBUG] Kitty buffer cleared on Ctrl+C:",
|
|
425283
425628
|
kittySequenceBuffer
|
|
425284
425629
|
);
|
|
@@ -425303,7 +425648,7 @@ function KeypressProvider({
|
|
|
425303
425648
|
if (kittySequenceBuffer || key.sequence.startsWith(`${ESC2}[`) && !key.sequence.startsWith(PASTE_MODE_PREFIX) && !key.sequence.startsWith(PASTE_MODE_SUFFIX) && !key.sequence.startsWith(FOCUS_IN) && !key.sequence.startsWith(FOCUS_OUT)) {
|
|
425304
425649
|
kittySequenceBuffer += key.sequence;
|
|
425305
425650
|
if (debugKeystrokeLogging) {
|
|
425306
|
-
|
|
425651
|
+
debugLogger108.debug(
|
|
425307
425652
|
"[DEBUG] Kitty buffer accumulating:",
|
|
425308
425653
|
kittySequenceBuffer
|
|
425309
425654
|
);
|
|
@@ -425315,7 +425660,7 @@ function KeypressProvider({
|
|
|
425315
425660
|
const nextStart = kittySequenceBuffer.indexOf(`${ESC2}[`, 1);
|
|
425316
425661
|
if (nextStart > 0) {
|
|
425317
425662
|
if (debugKeystrokeLogging) {
|
|
425318
|
-
|
|
425663
|
+
debugLogger108.debug(
|
|
425319
425664
|
"[DEBUG] Skipping incomplete/invalid CSI prefix:",
|
|
425320
425665
|
kittySequenceBuffer.slice(0, nextStart)
|
|
425321
425666
|
);
|
|
@@ -425331,12 +425676,12 @@ function KeypressProvider({
|
|
|
425331
425676
|
parsed.length
|
|
425332
425677
|
);
|
|
425333
425678
|
if (kittySequenceBuffer.length > parsed.length) {
|
|
425334
|
-
|
|
425679
|
+
debugLogger108.debug(
|
|
425335
425680
|
"[DEBUG] Kitty sequence parsed successfully (prefix):",
|
|
425336
425681
|
parsedSequence
|
|
425337
425682
|
);
|
|
425338
425683
|
} else {
|
|
425339
|
-
|
|
425684
|
+
debugLogger108.debug(
|
|
425340
425685
|
"[DEBUG] Kitty sequence parsed successfully:",
|
|
425341
425686
|
parsedSequence
|
|
425342
425687
|
);
|
|
@@ -425351,11 +425696,11 @@ function KeypressProvider({
|
|
|
425351
425696
|
const codes = Array.from(kittySequenceBuffer).map(
|
|
425352
425697
|
(ch) => ch.charCodeAt(0)
|
|
425353
425698
|
);
|
|
425354
|
-
|
|
425699
|
+
debugLogger108.warn("Kitty sequence buffer has char codes:", codes);
|
|
425355
425700
|
}
|
|
425356
425701
|
if (kittySequenceBuffer.length > MAX_KITTY_SEQUENCE_LENGTH) {
|
|
425357
425702
|
if (debugKeystrokeLogging) {
|
|
425358
|
-
|
|
425703
|
+
debugLogger108.debug(
|
|
425359
425704
|
"[DEBUG] Kitty buffer overflow, clearing:",
|
|
425360
425705
|
kittySequenceBuffer
|
|
425361
425706
|
);
|
|
@@ -425552,7 +425897,7 @@ function useKeypress(onKeypress, { isActive }) {
|
|
|
425552
425897
|
__name(useKeypress, "useKeypress");
|
|
425553
425898
|
|
|
425554
425899
|
// packages/cli/src/ui/hooks/useSelectionList.ts
|
|
425555
|
-
var
|
|
425900
|
+
var debugLogger109 = createDebugLogger("SELECTION_LIST");
|
|
425556
425901
|
var NUMBER_INPUT_TIMEOUT_MS = 1e3;
|
|
425557
425902
|
var findNextValidIndex = /* @__PURE__ */ __name((currentIndex, direction, items) => {
|
|
425558
425903
|
const len = items.length;
|
|
@@ -425642,7 +425987,7 @@ function selectionListReducer(state, action) {
|
|
|
425642
425987
|
}
|
|
425643
425988
|
default: {
|
|
425644
425989
|
const exhaustiveCheck = action;
|
|
425645
|
-
|
|
425990
|
+
debugLogger109.error(`Unknown selection list action: ${exhaustiveCheck}`);
|
|
425646
425991
|
return state;
|
|
425647
425992
|
}
|
|
425648
425993
|
}
|
|
@@ -426810,7 +427155,7 @@ function handleVimAction(state, action) {
|
|
|
426810
427155
|
__name(handleVimAction, "handleVimAction");
|
|
426811
427156
|
|
|
426812
427157
|
// packages/cli/src/ui/components/shared/text-buffer.ts
|
|
426813
|
-
var
|
|
427158
|
+
var debugLogger110 = createDebugLogger("TEXT_BUFFER");
|
|
426814
427159
|
function isWordChar(ch) {
|
|
426815
427160
|
if (ch === void 0) {
|
|
426816
427161
|
return false;
|
|
@@ -427437,7 +427782,7 @@ function textBufferReducerLogic(state, action) {
|
|
|
427437
427782
|
break;
|
|
427438
427783
|
default: {
|
|
427439
427784
|
const exhaustiveCheck = dir;
|
|
427440
|
-
|
|
427785
|
+
debugLogger110.error(
|
|
427441
427786
|
`Unknown visual movement direction: ${exhaustiveCheck}`
|
|
427442
427787
|
);
|
|
427443
427788
|
return state;
|
|
@@ -427744,7 +428089,7 @@ function textBufferReducerLogic(state, action) {
|
|
|
427744
428089
|
return handleVimAction(state, action);
|
|
427745
428090
|
default: {
|
|
427746
428091
|
const exhaustiveCheck = action;
|
|
427747
|
-
|
|
428092
|
+
debugLogger110.error(`Unknown action encountered: ${exhaustiveCheck}`);
|
|
427748
428093
|
return state;
|
|
427749
428094
|
}
|
|
427750
428095
|
}
|
|
@@ -428028,7 +428373,7 @@ function useTextBuffer({
|
|
|
428028
428373
|
newText = newText.replace(/\r\n?/g, "\n");
|
|
428029
428374
|
dispatch({ type: "set_text", payload: newText, pushToUndo: false });
|
|
428030
428375
|
} catch (err) {
|
|
428031
|
-
|
|
428376
|
+
debugLogger110.error("[useTextBuffer] external editor error", err);
|
|
428032
428377
|
} finally {
|
|
428033
428378
|
if (wasRaw) setRawMode?.(true);
|
|
428034
428379
|
try {
|
|
@@ -428801,7 +429146,7 @@ __name(useLaunchEditor, "useLaunchEditor");
|
|
|
428801
429146
|
|
|
428802
429147
|
// packages/cli/src/ui/components/subagents/create/CreationSummary.tsx
|
|
428803
429148
|
var import_jsx_runtime21 = __toESM(require_jsx_runtime(), 1);
|
|
428804
|
-
var
|
|
429149
|
+
var debugLogger111 = createDebugLogger("SUBAGENT_CREATION_SUMMARY");
|
|
428805
429150
|
function CreationSummary({
|
|
428806
429151
|
state,
|
|
428807
429152
|
onPrevious: _onPrevious,
|
|
@@ -428857,9 +429202,9 @@ function CreationSummary({
|
|
|
428857
429202
|
}
|
|
428858
429203
|
}
|
|
428859
429204
|
} catch (error40) {
|
|
428860
|
-
|
|
429205
|
+
debugLogger111.warn("Error checking subagent name availability:", error40);
|
|
428861
429206
|
}
|
|
428862
|
-
if (state.generatedDescription.length >
|
|
429207
|
+
if (state.generatedDescription.length > 1e3) {
|
|
428863
429208
|
allWarnings.push(
|
|
428864
429209
|
t4("Description is over {{length}} characters", {
|
|
428865
429210
|
length: state.generatedDescription.length.toString()
|
|
@@ -429763,7 +430108,7 @@ __name(EditOptionsStep, "EditOptionsStep");
|
|
|
429763
430108
|
// packages/cli/src/ui/components/subagents/manage/AgentDeleteStep.tsx
|
|
429764
430109
|
init_esbuild_shims();
|
|
429765
430110
|
var import_jsx_runtime28 = __toESM(require_jsx_runtime(), 1);
|
|
429766
|
-
var
|
|
430111
|
+
var debugLogger112 = createDebugLogger("AGENT_DELETE_STEP");
|
|
429767
430112
|
function AgentDeleteStep({
|
|
429768
430113
|
selectedAgent,
|
|
429769
430114
|
onDelete,
|
|
@@ -429776,7 +430121,7 @@ function AgentDeleteStep({
|
|
|
429776
430121
|
try {
|
|
429777
430122
|
await onDelete(selectedAgent);
|
|
429778
430123
|
} catch (error40) {
|
|
429779
|
-
|
|
430124
|
+
debugLogger112.error("Failed to delete agent:", error40);
|
|
429780
430125
|
}
|
|
429781
430126
|
} else if (key.name === "n") {
|
|
429782
430127
|
onNavigateBack();
|
|
@@ -429795,7 +430140,7 @@ __name(AgentDeleteStep, "AgentDeleteStep");
|
|
|
429795
430140
|
|
|
429796
430141
|
// packages/cli/src/ui/components/subagents/manage/AgentsManagerDialog.tsx
|
|
429797
430142
|
var import_jsx_runtime29 = __toESM(require_jsx_runtime(), 1);
|
|
429798
|
-
var
|
|
430143
|
+
var debugLogger113 = createDebugLogger("AGENTS_MANAGER_DIALOG");
|
|
429799
430144
|
function AgentsManagerDialog({
|
|
429800
430145
|
onClose,
|
|
429801
430146
|
config: config2
|
|
@@ -429851,7 +430196,7 @@ function AgentsManagerDialog({
|
|
|
429851
430196
|
setNavigationStack([MANAGEMENT_STEPS.AGENT_SELECTION]);
|
|
429852
430197
|
setSelectedAgentIndex(-1);
|
|
429853
430198
|
} catch (error40) {
|
|
429854
|
-
|
|
430199
|
+
debugLogger113.error("Failed to delete agent:", error40);
|
|
429855
430200
|
throw error40;
|
|
429856
430201
|
}
|
|
429857
430202
|
},
|
|
@@ -429957,7 +430302,7 @@ function AgentsManagerDialog({
|
|
|
429957
430302
|
await loadAgents();
|
|
429958
430303
|
handleNavigateBack();
|
|
429959
430304
|
} catch (error40) {
|
|
429960
|
-
|
|
430305
|
+
debugLogger113.error("Failed to save agent changes:", error40);
|
|
429961
430306
|
}
|
|
429962
430307
|
}
|
|
429963
430308
|
},
|
|
@@ -429982,7 +430327,7 @@ function AgentsManagerDialog({
|
|
|
429982
430327
|
await loadAgents();
|
|
429983
430328
|
handleNavigateBack();
|
|
429984
430329
|
} catch (error40) {
|
|
429985
|
-
|
|
430330
|
+
debugLogger113.error("Failed to save color changes:", error40);
|
|
429986
430331
|
}
|
|
429987
430332
|
}
|
|
429988
430333
|
}
|
|
@@ -431086,9 +431431,10 @@ var PlanSummaryDisplay = /* @__PURE__ */ __name(({
|
|
|
431086
431431
|
availableHeight,
|
|
431087
431432
|
childWidth
|
|
431088
431433
|
}) => {
|
|
431089
|
-
const { message, plan } = data;
|
|
431434
|
+
const { message, plan, rejected } = data;
|
|
431435
|
+
const messageColor = rejected ? Colors.AccentYellow : Colors.AccentGreen;
|
|
431090
431436
|
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
431091
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text3, { color:
|
|
431437
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Text3, { color: messageColor, wrap: "wrap", children: message }) }),
|
|
431092
431438
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
431093
431439
|
MarkdownDisplay,
|
|
431094
431440
|
{
|
|
@@ -432698,7 +433044,7 @@ __name(formatCommandLabel, "formatCommandLabel");
|
|
|
432698
433044
|
// packages/cli/src/ui/components/views/ExtensionsList.tsx
|
|
432699
433045
|
init_esbuild_shims();
|
|
432700
433046
|
var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
|
|
432701
|
-
var
|
|
433047
|
+
var debugLogger114 = createDebugLogger("EXTENSIONS_LIST");
|
|
432702
433048
|
var ExtensionsList = /* @__PURE__ */ __name(() => {
|
|
432703
433049
|
const { extensionsUpdateState, commandContext } = useUIState();
|
|
432704
433050
|
const extensions = commandContext.services.config?.getExtensions() || [];
|
|
@@ -432732,7 +433078,7 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
|
|
|
432732
433078
|
stateColor = "green";
|
|
432733
433079
|
break;
|
|
432734
433080
|
default:
|
|
432735
|
-
|
|
433081
|
+
debugLogger114.error(`Unhandled ExtensionUpdateState ${state}`);
|
|
432736
433082
|
break;
|
|
432737
433083
|
}
|
|
432738
433084
|
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Box_default, { flexDirection: "column", marginBottom: 1, children: [
|
|
@@ -434608,7 +434954,7 @@ var useVimMode = /* @__PURE__ */ __name(() => {
|
|
|
434608
434954
|
// packages/cli/src/ui/components/SettingsDialog.tsx
|
|
434609
434955
|
var import_chalk8 = __toESM(require_source(), 1);
|
|
434610
434956
|
var import_jsx_runtime72 = __toESM(require_jsx_runtime(), 1);
|
|
434611
|
-
var
|
|
434957
|
+
var debugLogger115 = createDebugLogger("SETTINGS_DIALOG");
|
|
434612
434958
|
var maxItemsToShow = 8;
|
|
434613
434959
|
function SettingsDialog({
|
|
434614
434960
|
settings,
|
|
@@ -434691,7 +435037,7 @@ function SettingsDialog({
|
|
|
434691
435037
|
newValue,
|
|
434692
435038
|
{}
|
|
434693
435039
|
);
|
|
434694
|
-
|
|
435040
|
+
debugLogger115.debug(
|
|
434695
435041
|
`[DEBUG SettingsDialog] Saving ${key} immediately with value:`,
|
|
434696
435042
|
newValue
|
|
434697
435043
|
);
|
|
@@ -434703,14 +435049,14 @@ function SettingsDialog({
|
|
|
434703
435049
|
);
|
|
434704
435050
|
if (key === "general.vimMode" && newValue !== vimEnabled) {
|
|
434705
435051
|
toggleVimEnabled().catch((error40) => {
|
|
434706
|
-
|
|
435052
|
+
debugLogger115.error("Failed to toggle vim mode:", error40);
|
|
434707
435053
|
});
|
|
434708
435054
|
}
|
|
434709
435055
|
if (key === "tools.approvalMode" && settings.merged.tools?.approvalMode) {
|
|
434710
435056
|
try {
|
|
434711
435057
|
config2?.setApprovalMode(settings.merged.tools.approvalMode);
|
|
434712
435058
|
} catch (error40) {
|
|
434713
|
-
|
|
435059
|
+
debugLogger115.error(
|
|
434714
435060
|
"Failed to apply approval mode to current session:",
|
|
434715
435061
|
error40
|
|
434716
435062
|
);
|
|
@@ -435063,7 +435409,7 @@ function SettingsDialog({
|
|
|
435063
435409
|
try {
|
|
435064
435410
|
config2?.setApprovalMode(settings.merged.tools.approvalMode);
|
|
435065
435411
|
} catch (error40) {
|
|
435066
|
-
|
|
435412
|
+
debugLogger115.error(
|
|
435067
435413
|
"Failed to apply approval mode to current session:",
|
|
435068
435414
|
error40
|
|
435069
435415
|
);
|
|
@@ -435968,7 +436314,7 @@ var editorSettingsManager = new EditorSettingsManager();
|
|
|
435968
436314
|
|
|
435969
436315
|
// packages/cli/src/ui/components/EditorSettingsDialog.tsx
|
|
435970
436316
|
var import_jsx_runtime77 = __toESM(require_jsx_runtime(), 1);
|
|
435971
|
-
var
|
|
436317
|
+
var debugLogger116 = createDebugLogger("EDITOR_SETTINGS_DIALOG");
|
|
435972
436318
|
function EditorSettingsDialog({
|
|
435973
436319
|
onSelect,
|
|
435974
436320
|
settings,
|
|
@@ -435995,7 +436341,7 @@ function EditorSettingsDialog({
|
|
|
435995
436341
|
(item) => item.type === currentPreference
|
|
435996
436342
|
) : 0;
|
|
435997
436343
|
if (editorIndex === -1) {
|
|
435998
|
-
|
|
436344
|
+
debugLogger116.error(`Editor is not supported: ${currentPreference}`);
|
|
435999
436345
|
editorIndex = 0;
|
|
436000
436346
|
}
|
|
436001
436347
|
const handleEditorSelect = /* @__PURE__ */ __name((editorType) => {
|
|
@@ -436739,7 +437085,7 @@ import process35 from "node:process";
|
|
|
436739
437085
|
// packages/cli/src/ui/components/IdeTrustChangeDialog.tsx
|
|
436740
437086
|
init_esbuild_shims();
|
|
436741
437087
|
var import_jsx_runtime81 = __toESM(require_jsx_runtime(), 1);
|
|
436742
|
-
var
|
|
437088
|
+
var debugLogger117 = createDebugLogger("IDE_TRUST_DIALOG");
|
|
436743
437089
|
var IdeTrustChangeDialog = /* @__PURE__ */ __name(({ reason }) => {
|
|
436744
437090
|
useKeypress(
|
|
436745
437091
|
(key) => {
|
|
@@ -436751,7 +437097,7 @@ var IdeTrustChangeDialog = /* @__PURE__ */ __name(({ reason }) => {
|
|
|
436751
437097
|
);
|
|
436752
437098
|
let message = "Workspace trust has changed.";
|
|
436753
437099
|
if (reason === "NONE") {
|
|
436754
|
-
|
|
437100
|
+
debugLogger117.error(
|
|
436755
437101
|
'IdeTrustChangeDialog rendered with unexpected reason "NONE"'
|
|
436756
437102
|
);
|
|
436757
437103
|
} else if (reason === "CONNECTION_CHANGE") {
|
|
@@ -437140,7 +437486,7 @@ var ActionSelectionStep2 = /* @__PURE__ */ __name(({
|
|
|
437140
437486
|
// packages/cli/src/ui/components/extensions/steps/UninstallConfirmStep.tsx
|
|
437141
437487
|
init_esbuild_shims();
|
|
437142
437488
|
var import_jsx_runtime86 = __toESM(require_jsx_runtime(), 1);
|
|
437143
|
-
var
|
|
437489
|
+
var debugLogger118 = createDebugLogger("EXTENSION_UNINSTALL_STEP");
|
|
437144
437490
|
function UninstallConfirmStep({
|
|
437145
437491
|
selectedExtension,
|
|
437146
437492
|
onConfirm,
|
|
@@ -437153,7 +437499,7 @@ function UninstallConfirmStep({
|
|
|
437153
437499
|
try {
|
|
437154
437500
|
await onConfirm(selectedExtension);
|
|
437155
437501
|
} catch (error40) {
|
|
437156
|
-
|
|
437502
|
+
debugLogger118.error("Failed to uninstall extension:", error40);
|
|
437157
437503
|
}
|
|
437158
437504
|
} else if (key.name === "n" || key.name === "escape") {
|
|
437159
437505
|
onNavigateBack();
|
|
@@ -437220,7 +437566,7 @@ __name(ScopeSelectStep, "ScopeSelectStep");
|
|
|
437220
437566
|
|
|
437221
437567
|
// packages/cli/src/ui/components/extensions/ExtensionsManagerDialog.tsx
|
|
437222
437568
|
var import_jsx_runtime88 = __toESM(require_jsx_runtime(), 1);
|
|
437223
|
-
var
|
|
437569
|
+
var debugLogger119 = createDebugLogger("EXTENSIONS_MANAGER_DIALOG");
|
|
437224
437570
|
function ExtensionsManagerDialog({
|
|
437225
437571
|
onClose,
|
|
437226
437572
|
config: config2
|
|
@@ -437241,7 +437587,7 @@ function ExtensionsManagerDialog({
|
|
|
437241
437587
|
if (!config2) return;
|
|
437242
437588
|
const extensionManager = config2.getExtensionManager();
|
|
437243
437589
|
if (!extensionManager) {
|
|
437244
|
-
|
|
437590
|
+
debugLogger119.error("ExtensionManager not available");
|
|
437245
437591
|
return;
|
|
437246
437592
|
}
|
|
437247
437593
|
try {
|
|
@@ -437249,7 +437595,7 @@ function ExtensionsManagerDialog({
|
|
|
437249
437595
|
const loadedExtensions = extensionManager.getLoadedExtensions();
|
|
437250
437596
|
setExtensions(loadedExtensions);
|
|
437251
437597
|
} catch (error40) {
|
|
437252
|
-
|
|
437598
|
+
debugLogger119.error("Failed to load extensions:", error40);
|
|
437253
437599
|
}
|
|
437254
437600
|
}, [config2]);
|
|
437255
437601
|
(0, import_react90.useEffect)(() => {
|
|
@@ -437303,12 +437649,12 @@ function ExtensionsManagerDialog({
|
|
|
437303
437649
|
selectedExtension,
|
|
437304
437650
|
"update available" /* UPDATE_AVAILABLE */,
|
|
437305
437651
|
(name3, newState) => {
|
|
437306
|
-
|
|
437652
|
+
debugLogger119.debug(`Update state for ${name3}:`, newState);
|
|
437307
437653
|
}
|
|
437308
437654
|
);
|
|
437309
437655
|
await loadExtensions();
|
|
437310
437656
|
await extensionManager.checkForAllExtensionUpdates((name3, newState) => {
|
|
437311
|
-
|
|
437657
|
+
debugLogger119.debug(`Recheck update state for ${name3}:`, newState);
|
|
437312
437658
|
});
|
|
437313
437659
|
setSuccessMessage(
|
|
437314
437660
|
t4('Extension "{{name}}" updated successfully.', {
|
|
@@ -437317,7 +437663,7 @@ function ExtensionsManagerDialog({
|
|
|
437317
437663
|
);
|
|
437318
437664
|
handleNavigateBack();
|
|
437319
437665
|
} catch (error40) {
|
|
437320
|
-
|
|
437666
|
+
debugLogger119.error("Failed to update extension:", error40);
|
|
437321
437667
|
setUpdateError(
|
|
437322
437668
|
error40 instanceof Error ? error40.message : "Unknown error occurred"
|
|
437323
437669
|
);
|
|
@@ -437390,7 +437736,7 @@ function ExtensionsManagerDialog({
|
|
|
437390
437736
|
setErrorMessage(null);
|
|
437391
437737
|
setNavigationStack([MANAGEMENT_STEPS2.EXTENSION_LIST]);
|
|
437392
437738
|
} catch (error40) {
|
|
437393
|
-
|
|
437739
|
+
debugLogger119.error(
|
|
437394
437740
|
`Failed to ${newState ? "enable" : "disable"} extension:`,
|
|
437395
437741
|
error40
|
|
437396
437742
|
);
|
|
@@ -437431,7 +437777,7 @@ function ExtensionsManagerDialog({
|
|
|
437431
437777
|
setNavigationStack([MANAGEMENT_STEPS2.EXTENSION_LIST]);
|
|
437432
437778
|
setSelectedExtensionIndex(-1);
|
|
437433
437779
|
} catch (error40) {
|
|
437434
|
-
|
|
437780
|
+
debugLogger119.error("Failed to uninstall extension:", error40);
|
|
437435
437781
|
throw error40;
|
|
437436
437782
|
}
|
|
437437
437783
|
},
|
|
@@ -438336,7 +438682,7 @@ var AuthenticateStep = /* @__PURE__ */ __name(({
|
|
|
438336
438682
|
|
|
438337
438683
|
// packages/cli/src/ui/components/mcp/MCPManagementDialog.tsx
|
|
438338
438684
|
var import_jsx_runtime95 = __toESM(require_jsx_runtime(), 1);
|
|
438339
|
-
var
|
|
438685
|
+
var debugLogger120 = createDebugLogger("MCP_DIALOG");
|
|
438340
438686
|
var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
438341
438687
|
onClose
|
|
438342
438688
|
}) => {
|
|
@@ -438413,7 +438759,7 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
438413
438759
|
const serverInfos = await fetchServerData();
|
|
438414
438760
|
setServers(serverInfos);
|
|
438415
438761
|
} catch (error40) {
|
|
438416
|
-
|
|
438762
|
+
debugLogger120.error("Error loading MCP servers:", error40);
|
|
438417
438763
|
} finally {
|
|
438418
438764
|
setIsLoading(false);
|
|
438419
438765
|
}
|
|
@@ -438494,7 +438840,7 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
438494
438840
|
const serverInfos = await fetchServerData();
|
|
438495
438841
|
setServers(serverInfos);
|
|
438496
438842
|
} catch (error40) {
|
|
438497
|
-
|
|
438843
|
+
debugLogger120.error("Error reloading MCP servers:", error40);
|
|
438498
438844
|
} finally {
|
|
438499
438845
|
setIsLoading(false);
|
|
438500
438846
|
}
|
|
@@ -438505,7 +438851,7 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
438505
438851
|
setIsLoading(true);
|
|
438506
438852
|
const tokenStorage = new MCPOAuthTokenStorage();
|
|
438507
438853
|
await tokenStorage.deleteCredentials(selectedServer.name);
|
|
438508
|
-
|
|
438854
|
+
debugLogger120.info(
|
|
438509
438855
|
`Cleared OAuth tokens for server '${selectedServer.name}'`
|
|
438510
438856
|
);
|
|
438511
438857
|
const toolRegistry = config2.getToolRegistry();
|
|
@@ -438514,7 +438860,7 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
438514
438860
|
}
|
|
438515
438861
|
await reloadServers();
|
|
438516
438862
|
} catch (error40) {
|
|
438517
|
-
|
|
438863
|
+
debugLogger120.error(
|
|
438518
438864
|
`Error clearing OAuth tokens for server '${selectedServer.name}':`,
|
|
438519
438865
|
error40
|
|
438520
438866
|
);
|
|
@@ -438532,7 +438878,7 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
438532
438878
|
}
|
|
438533
438879
|
await reloadServers();
|
|
438534
438880
|
} catch (error40) {
|
|
438535
|
-
|
|
438881
|
+
debugLogger120.error(
|
|
438536
438882
|
`Error reconnecting to server '${selectedServer.name}':`,
|
|
438537
438883
|
error40
|
|
438538
438884
|
);
|
|
@@ -438567,7 +438913,7 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
438567
438913
|
}
|
|
438568
438914
|
await reloadServers();
|
|
438569
438915
|
} catch (error40) {
|
|
438570
|
-
|
|
438916
|
+
debugLogger120.error(
|
|
438571
438917
|
`Error enabling server '${selectedServer.name}':`,
|
|
438572
438918
|
error40
|
|
438573
438919
|
);
|
|
@@ -438586,7 +438932,7 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
438586
438932
|
const settings = loadSettings();
|
|
438587
438933
|
let targetScope = "user";
|
|
438588
438934
|
if (server.source === "extension") {
|
|
438589
|
-
|
|
438935
|
+
debugLogger120.warn(
|
|
438590
438936
|
`Cannot disable extension MCP server '${server.name}'`
|
|
438591
438937
|
);
|
|
438592
438938
|
setIsLoading(false);
|
|
@@ -438612,7 +438958,7 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
438612
438958
|
}
|
|
438613
438959
|
await reloadServers();
|
|
438614
438960
|
} catch (error40) {
|
|
438615
|
-
|
|
438961
|
+
debugLogger120.error(
|
|
438616
438962
|
`Error disabling server '${selectedServer.name}':`,
|
|
438617
438963
|
error40
|
|
438618
438964
|
);
|
|
@@ -438647,7 +438993,7 @@ var MCPManagementDialog = /* @__PURE__ */ __name(({
|
|
|
438647
438993
|
await reloadServers();
|
|
438648
438994
|
handleNavigateBack();
|
|
438649
438995
|
} catch (error40) {
|
|
438650
|
-
|
|
438996
|
+
debugLogger120.error(
|
|
438651
438997
|
`Error disabling server '${selectedServer.name}':`,
|
|
438652
438998
|
error40
|
|
438653
438999
|
);
|
|
@@ -439771,7 +440117,7 @@ var import_react100 = __toESM(require_react(), 1);
|
|
|
439771
440117
|
import * as fs101 from "node:fs/promises";
|
|
439772
440118
|
import * as path110 from "node:path";
|
|
439773
440119
|
var MAX_HISTORY_LENGTH2 = 100;
|
|
439774
|
-
var
|
|
440120
|
+
var debugLogger121 = createDebugLogger("SHELL_HISTORY");
|
|
439775
440121
|
async function getHistoryFilePath(projectRoot, configStorage) {
|
|
439776
440122
|
const storage = configStorage ?? new Storage(projectRoot);
|
|
439777
440123
|
return storage.getHistoryFilePath();
|
|
@@ -439797,7 +440143,7 @@ async function readHistoryFile(filePath) {
|
|
|
439797
440143
|
return result;
|
|
439798
440144
|
} catch (err) {
|
|
439799
440145
|
if (isNodeError(err) && err.code === "ENOENT") return [];
|
|
439800
|
-
|
|
440146
|
+
debugLogger121.error("Error reading history:", err);
|
|
439801
440147
|
return [];
|
|
439802
440148
|
}
|
|
439803
440149
|
}
|
|
@@ -439807,7 +440153,7 @@ async function writeHistoryFile(filePath, history) {
|
|
|
439807
440153
|
await fs101.mkdir(path110.dirname(filePath), { recursive: true });
|
|
439808
440154
|
await fs101.writeFile(filePath, history.join("\n"));
|
|
439809
440155
|
} catch (error40) {
|
|
439810
|
-
|
|
440156
|
+
debugLogger121.error("Error writing shell history:", error40);
|
|
439811
440157
|
}
|
|
439812
440158
|
}
|
|
439813
440159
|
__name(writeHistoryFile, "writeHistoryFile");
|
|
@@ -440225,12 +440571,12 @@ __name(useAtCompletion, "useAtCompletion");
|
|
|
440225
440571
|
init_esbuild_shims();
|
|
440226
440572
|
var import_react104 = __toESM(require_react(), 1);
|
|
440227
440573
|
init_fzf_es();
|
|
440228
|
-
var
|
|
440574
|
+
var debugLogger122 = createDebugLogger("SLASH_COMPLETION");
|
|
440229
440575
|
function logErrorSafely(error40, context2) {
|
|
440230
440576
|
if (error40 instanceof Error) {
|
|
440231
|
-
|
|
440577
|
+
debugLogger122.error(`[${context2}]`, error40);
|
|
440232
440578
|
} else {
|
|
440233
|
-
|
|
440579
|
+
debugLogger122.error(`[${context2}] Non-error thrown:`, error40);
|
|
440234
440580
|
}
|
|
440235
440581
|
}
|
|
440236
440582
|
__name(logErrorSafely, "logErrorSafely");
|
|
@@ -440325,7 +440671,7 @@ function useCommandSuggestions(parserResult, commandContext, getFzfForCommands,
|
|
|
440325
440671
|
const fetchAndSetSuggestions = /* @__PURE__ */ __name(async () => {
|
|
440326
440672
|
if (signal.aborted) return;
|
|
440327
440673
|
if (!leafCommand?.completion) {
|
|
440328
|
-
|
|
440674
|
+
debugLogger122.warn(
|
|
440329
440675
|
"Attempted argument completion without completion function"
|
|
440330
440676
|
);
|
|
440331
440677
|
return;
|
|
@@ -440930,7 +441276,7 @@ var FeedbackDialog = /* @__PURE__ */ __name(() => {
|
|
|
440930
441276
|
|
|
440931
441277
|
// packages/cli/src/ui/components/InputPrompt.tsx
|
|
440932
441278
|
var import_jsx_runtime102 = __toESM(require_jsx_runtime(), 1);
|
|
440933
|
-
var
|
|
441279
|
+
var debugLogger123 = createDebugLogger("INPUT_PROMPT");
|
|
440934
441280
|
var calculatePromptWidths = /* @__PURE__ */ __name((terminalWidth) => {
|
|
440935
441281
|
const widthFraction = 0.9;
|
|
440936
441282
|
const FRAME_PADDING_AND_BORDER = 4;
|
|
@@ -441185,7 +441531,7 @@ ${finalValue.trim()}`;
|
|
|
441185
441531
|
}
|
|
441186
441532
|
}
|
|
441187
441533
|
} catch (error40) {
|
|
441188
|
-
|
|
441534
|
+
debugLogger123.error("Error handling clipboard image:", error40);
|
|
441189
441535
|
}
|
|
441190
441536
|
}, []);
|
|
441191
441537
|
const handleAttachmentDelete = (0, import_react107.useCallback)((index) => {
|
|
@@ -442589,7 +442935,7 @@ var FEEDBACK_SHOW_PROBABILITY = 0.25;
|
|
|
442589
442935
|
var MIN_TOOL_CALLS = 10;
|
|
442590
442936
|
var MIN_USER_MESSAGES = 5;
|
|
442591
442937
|
var FEEDBACK_COOLDOWN_HOURS = 24;
|
|
442592
|
-
var
|
|
442938
|
+
var debugLogger124 = createDebugLogger("FEEDBACK_DIALOG");
|
|
442593
442939
|
var lastMessageIsAIResponse = /* @__PURE__ */ __name((history) => history.length > 0 && history[history.length - 1].type === "gemini" /* GEMINI */, "lastMessageIsAIResponse");
|
|
442594
442940
|
var getFeedbackLastShownTimestampFromFile = /* @__PURE__ */ __name(() => {
|
|
442595
442941
|
try {
|
|
@@ -442600,7 +442946,7 @@ var getFeedbackLastShownTimestampFromFile = /* @__PURE__ */ __name(() => {
|
|
|
442600
442946
|
}
|
|
442601
442947
|
} catch (error40) {
|
|
442602
442948
|
if (isNodeError(error40) && error40.code !== "ENOENT") {
|
|
442603
|
-
|
|
442949
|
+
debugLogger124.warn(
|
|
442604
442950
|
"Failed to read feedbackLastShownTimestamp from settings file:",
|
|
442605
442951
|
error40
|
|
442606
442952
|
);
|
|
@@ -443923,7 +444269,7 @@ var McpPromptLoader = class {
|
|
|
443923
444269
|
};
|
|
443924
444270
|
|
|
443925
444271
|
// packages/cli/src/ui/hooks/slashCommandProcessor.ts
|
|
443926
|
-
var
|
|
444272
|
+
var debugLogger125 = createDebugLogger("SLASH_COMMAND_PROCESSOR");
|
|
443927
444273
|
function serializeHistoryItemForRecording(item) {
|
|
443928
444274
|
const clone4 = { ...item };
|
|
443929
444275
|
if ("timestamp" in clone4 && clone4["timestamp"] instanceof Date) {
|
|
@@ -444125,6 +444471,7 @@ var useSlashCommandProcessor = /* @__PURE__ */ __name((config2, settings, addIte
|
|
|
444125
444471
|
const loaders = [
|
|
444126
444472
|
new McpPromptLoader(config2),
|
|
444127
444473
|
new BuiltinCommandLoader(config2),
|
|
444474
|
+
new BundledSkillLoader(config2),
|
|
444128
444475
|
new FileCommandLoader(config2)
|
|
444129
444476
|
];
|
|
444130
444477
|
const commandService = await CommandService.create(
|
|
@@ -444421,7 +444768,7 @@ ${commandToExecute.subCommands.map((sc) => ` - ${sc.name}: ${sc.description ||
|
|
|
444421
444768
|
});
|
|
444422
444769
|
}
|
|
444423
444770
|
} catch (recordError) {
|
|
444424
|
-
|
|
444771
|
+
debugLogger125.error(
|
|
444425
444772
|
"[slashCommand] Failed to record slash command:",
|
|
444426
444773
|
recordError
|
|
444427
444774
|
);
|
|
@@ -444508,7 +444855,7 @@ import os36 from "node:os";
|
|
|
444508
444855
|
import fs103 from "node:fs";
|
|
444509
444856
|
var OUTPUT_UPDATE_INTERVAL_MS2 = 1e3;
|
|
444510
444857
|
var MAX_OUTPUT_LENGTH2 = 1e4;
|
|
444511
|
-
var
|
|
444858
|
+
var debugLogger126 = createDebugLogger("SHELL_COMMAND_PROCESSOR");
|
|
444512
444859
|
function addShellCommandToGeminiHistory(geminiClient, rawQuery, resultText) {
|
|
444513
444860
|
const modelContent = resultText.length > MAX_OUTPUT_LENGTH2 ? resultText.substring(0, MAX_OUTPUT_LENGTH2) + "\n... (truncated)" : resultText;
|
|
444514
444861
|
geminiClient.addHistory({
|
|
@@ -444650,7 +444997,7 @@ var useShellCommandProcessor = /* @__PURE__ */ __name((addItemToHistory, setPend
|
|
|
444650
444997
|
config2.getShouldUseNodePtyShell(),
|
|
444651
444998
|
shellExecutionConfig
|
|
444652
444999
|
);
|
|
444653
|
-
|
|
445000
|
+
debugLogger126.debug(terminalHeight, terminalWidth);
|
|
444654
445001
|
executionPid = pid;
|
|
444655
445002
|
if (pid) {
|
|
444656
445003
|
setActiveShellPtyId(pid);
|
|
@@ -444861,7 +445208,7 @@ var useStateAndRef = /* @__PURE__ */ __name((initialValue) => {
|
|
|
444861
445208
|
// packages/cli/src/ui/hooks/useReactToolScheduler.ts
|
|
444862
445209
|
init_esbuild_shims();
|
|
444863
445210
|
var import_react124 = __toESM(require_react(), 1);
|
|
444864
|
-
var
|
|
445211
|
+
var debugLogger127 = createDebugLogger("REACT_TOOL_SCHEDULER");
|
|
444865
445212
|
function useReactToolScheduler(onComplete, config2, getPreferredEditor, onEditorClose) {
|
|
444866
445213
|
const [toolCallsForDisplay, setToolCallsForDisplay] = (0, import_react124.useState)([]);
|
|
444867
445214
|
const outputUpdateHandler = (0, import_react124.useCallback)(
|
|
@@ -444967,7 +445314,7 @@ function mapCoreStatusToDisplayStatus(coreStatus) {
|
|
|
444967
445314
|
return "Pending" /* Pending */;
|
|
444968
445315
|
default: {
|
|
444969
445316
|
const exhaustiveCheck = coreStatus;
|
|
444970
|
-
|
|
445317
|
+
debugLogger127.warn(`Unknown core status encountered: ${exhaustiveCheck}`);
|
|
444971
445318
|
return "Error" /* Error */;
|
|
444972
445319
|
}
|
|
444973
445320
|
}
|
|
@@ -445066,7 +445413,7 @@ __name(mapToDisplay, "mapToDisplay");
|
|
|
445066
445413
|
// packages/cli/src/ui/hooks/useGeminiStream.ts
|
|
445067
445414
|
import { promises as fs104 } from "node:fs";
|
|
445068
445415
|
import path114 from "node:path";
|
|
445069
|
-
var
|
|
445416
|
+
var debugLogger128 = createDebugLogger("GEMINI_STREAM");
|
|
445070
445417
|
function checkImageFormatsSupport(parts) {
|
|
445071
445418
|
const unsupportedMimeTypes = [];
|
|
445072
445419
|
let hasImages = false;
|
|
@@ -445987,7 +446334,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
445987
446334
|
ToolConfirmationOutcome.ProceedOnce
|
|
445988
446335
|
);
|
|
445989
446336
|
} catch (error40) {
|
|
445990
|
-
|
|
446337
|
+
debugLogger128.error(
|
|
445991
446338
|
`Failed to auto-approve tool call ${call.request.callId}:`,
|
|
445992
446339
|
error40
|
|
445993
446340
|
);
|
|
@@ -446221,7 +446568,7 @@ var import_react126 = __toESM(require_react(), 1);
|
|
|
446221
446568
|
var DIGIT_MULTIPLIER = 10;
|
|
446222
446569
|
var DEFAULT_COUNT = 1;
|
|
446223
446570
|
var DIGIT_1_TO_9 = /^[1-9]$/;
|
|
446224
|
-
var
|
|
446571
|
+
var debugLogger129 = createDebugLogger("VIM_MODE");
|
|
446225
446572
|
var CMD_TYPES = {
|
|
446226
446573
|
DELETE_WORD_FORWARD: "dw",
|
|
446227
446574
|
DELETE_WORD_BACKWARD: "db",
|
|
@@ -446471,7 +446818,7 @@ function useVim(buffer, onSubmit) {
|
|
|
446471
446818
|
try {
|
|
446472
446819
|
normalizedKey = normalizeKey(key);
|
|
446473
446820
|
} catch (error40) {
|
|
446474
|
-
|
|
446821
|
+
debugLogger129.warn("Malformed key input in vim mode:", key, error40);
|
|
446475
446822
|
return false;
|
|
446476
446823
|
}
|
|
446477
446824
|
if (state.mode === "INSERT") {
|
|
@@ -447082,7 +447429,7 @@ init_esbuild_shims();
|
|
|
447082
447429
|
init_esbuild_shims();
|
|
447083
447430
|
import process47 from "node:process";
|
|
447084
447431
|
import { spawn as spawn10 } from "node:child_process";
|
|
447085
|
-
import { fileURLToPath as
|
|
447432
|
+
import { fileURLToPath as fileURLToPath16 } from "node:url";
|
|
447086
447433
|
import path123 from "node:path";
|
|
447087
447434
|
import { format as format3 } from "node:util";
|
|
447088
447435
|
|
|
@@ -449128,7 +449475,7 @@ var isNpmOrYarn = isNpm || isYarn;
|
|
|
449128
449475
|
init_esbuild_shims();
|
|
449129
449476
|
import fs109 from "node:fs";
|
|
449130
449477
|
import path122 from "node:path";
|
|
449131
|
-
import { fileURLToPath as
|
|
449478
|
+
import { fileURLToPath as fileURLToPath15 } from "node:url";
|
|
449132
449479
|
|
|
449133
449480
|
// node_modules/global-directory/index.js
|
|
449134
449481
|
init_esbuild_shims();
|
|
@@ -449235,7 +449582,7 @@ function isPathInside(childPath, parentPath) {
|
|
|
449235
449582
|
__name(isPathInside, "isPathInside");
|
|
449236
449583
|
|
|
449237
449584
|
// node_modules/is-installed-globally/index.js
|
|
449238
|
-
var __dirname7 = path122.dirname(
|
|
449585
|
+
var __dirname7 = path122.dirname(fileURLToPath15(import.meta.url));
|
|
449239
449586
|
var isInstalledGlobally = (() => {
|
|
449240
449587
|
try {
|
|
449241
449588
|
return isPathInside(__dirname7, global_directory_default.yarn.packages) || isPathInside(__dirname7, fs109.realpathSync(global_directory_default.npm.packages));
|
|
@@ -449733,7 +450080,7 @@ function pupa(template, data, { ignoreMissing = false, transform: transform2 = /
|
|
|
449733
450080
|
__name(pupa, "pupa");
|
|
449734
450081
|
|
|
449735
450082
|
// node_modules/update-notifier/update-notifier.js
|
|
449736
|
-
var __dirname8 = path123.dirname(
|
|
450083
|
+
var __dirname8 = path123.dirname(fileURLToPath16(import.meta.url));
|
|
449737
450084
|
var ONE_DAY = 1e3 * 60 * 60 * 24;
|
|
449738
450085
|
var UpdateNotifier = class {
|
|
449739
450086
|
static {
|
|
@@ -449859,7 +450206,7 @@ __name(updateNotifier, "updateNotifier");
|
|
|
449859
450206
|
|
|
449860
450207
|
// packages/cli/src/ui/utils/updateCheck.ts
|
|
449861
450208
|
var import_semver3 = __toESM(require_semver3(), 1);
|
|
449862
|
-
var
|
|
450209
|
+
var debugLogger130 = createDebugLogger("UPDATE_CHECK");
|
|
449863
450210
|
function getBestAvailableUpdate(nightly, stable) {
|
|
449864
450211
|
if (!nightly) return stable || null;
|
|
449865
450212
|
if (!stable) return nightly || null;
|
|
@@ -449919,7 +450266,7 @@ async function checkForUpdates() {
|
|
|
449919
450266
|
}
|
|
449920
450267
|
return null;
|
|
449921
450268
|
} catch (e4) {
|
|
449922
|
-
|
|
450269
|
+
debugLogger130.warn("Failed to check for updates: " + e4);
|
|
449923
450270
|
return null;
|
|
449924
450271
|
}
|
|
449925
450272
|
}
|
|
@@ -449933,7 +450280,7 @@ init_esbuild_shims();
|
|
|
449933
450280
|
import * as fs110 from "node:fs";
|
|
449934
450281
|
import * as path124 from "node:path";
|
|
449935
450282
|
import * as childProcess2 from "node:child_process";
|
|
449936
|
-
var
|
|
450283
|
+
var debugLogger131 = createDebugLogger("INSTALLATION_INFO");
|
|
449937
450284
|
function getInstallationInfo(projectRoot, isAutoUpdateEnabled) {
|
|
449938
450285
|
const cliPath = process.argv[1];
|
|
449939
450286
|
if (!cliPath) {
|
|
@@ -450035,7 +450382,7 @@ function getInstallationInfo(projectRoot, isAutoUpdateEnabled) {
|
|
|
450035
450382
|
updateMessage: isAutoUpdateEnabled ? "Installed with npm. Attempting to automatically update now..." : `Please run ${updateCommand2} to update`
|
|
450036
450383
|
};
|
|
450037
450384
|
} catch (error40) {
|
|
450038
|
-
|
|
450385
|
+
debugLogger131.error("Failed to detect installation info:", error40);
|
|
450039
450386
|
return { packageManager: "unknown" /* UNKNOWN */, isGlobal: false };
|
|
450040
450387
|
}
|
|
450041
450388
|
}
|
|
@@ -450767,7 +451114,7 @@ var import_react144 = __toESM(require_react(), 1);
|
|
|
450767
451114
|
init_esbuild_shims();
|
|
450768
451115
|
import process48 from "node:process";
|
|
450769
451116
|
var TERMINAL_BELL = "\x07";
|
|
450770
|
-
var
|
|
451117
|
+
var debugLogger132 = createDebugLogger("ATTENTION_NOTIFICATION");
|
|
450771
451118
|
function notifyTerminalAttention(_reason, options2 = {}) {
|
|
450772
451119
|
if (options2.enabled === false) {
|
|
450773
451120
|
return false;
|
|
@@ -450780,7 +451127,7 @@ function notifyTerminalAttention(_reason, options2 = {}) {
|
|
|
450780
451127
|
stream2.write(TERMINAL_BELL);
|
|
450781
451128
|
return true;
|
|
450782
451129
|
} catch (error40) {
|
|
450783
|
-
|
|
451130
|
+
debugLogger132.warn("Failed to send terminal bell:", error40);
|
|
450784
451131
|
return false;
|
|
450785
451132
|
}
|
|
450786
451133
|
}
|
|
@@ -450829,7 +451176,7 @@ var useAttentionNotifications = /* @__PURE__ */ __name(({
|
|
|
450829
451176
|
// packages/cli/src/ui/AppContainer.tsx
|
|
450830
451177
|
var import_jsx_runtime115 = __toESM(require_jsx_runtime(), 1);
|
|
450831
451178
|
var CTRL_EXIT_PROMPT_DURATION_MS = 1e3;
|
|
450832
|
-
var
|
|
451179
|
+
var debugLogger133 = createDebugLogger("APP_CONTAINER");
|
|
450833
451180
|
function isToolExecuting(pendingHistoryItems) {
|
|
450834
451181
|
return pendingHistoryItems.some((item) => {
|
|
450835
451182
|
if (item && item.type === "tool_group") {
|
|
@@ -451215,7 +451562,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
451215
451562
|
},
|
|
451216
451563
|
Date.now()
|
|
451217
451564
|
);
|
|
451218
|
-
|
|
451565
|
+
debugLogger133.debug(
|
|
451219
451566
|
`[DEBUG] Refreshed memory content in config: ${memoryContent.substring(
|
|
451220
451567
|
0,
|
|
451221
451568
|
200
|
|
@@ -451230,7 +451577,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
451230
451577
|
},
|
|
451231
451578
|
Date.now()
|
|
451232
451579
|
);
|
|
451233
|
-
|
|
451580
|
+
debugLogger133.error("Error refreshing memory:", error40);
|
|
451234
451581
|
}
|
|
451235
451582
|
}, [config2, historyManager, settings.merged]);
|
|
451236
451583
|
const cancelHandlerRef = (0, import_react145.useRef)(() => {
|
|
@@ -451597,7 +451944,7 @@ ${migrationResult.failedFiles.map((f5) => ` \u2022 ${f5.file}: ${f5.error}`).jo
|
|
|
451597
451944
|
const handleGlobalKeypress = (0, import_react145.useCallback)(
|
|
451598
451945
|
(key) => {
|
|
451599
451946
|
if (settings.merged.general?.debugKeystrokeLogging) {
|
|
451600
|
-
|
|
451947
|
+
debugLogger133.debug("[DEBUG] Keystroke:", JSON.stringify(key));
|
|
451601
451948
|
}
|
|
451602
451949
|
if (keyMatchers["quit" /* QUIT */](key)) {
|
|
451603
451950
|
if (isAuthenticating) {
|
|
@@ -452169,7 +452516,7 @@ import { exec as exec4, execSync as execSync8, spawn as spawn13 } from "node:chi
|
|
|
452169
452516
|
import os43 from "node:os";
|
|
452170
452517
|
import path126 from "node:path";
|
|
452171
452518
|
import fs113 from "node:fs";
|
|
452172
|
-
import { fileURLToPath as
|
|
452519
|
+
import { fileURLToPath as fileURLToPath17 } from "node:url";
|
|
452173
452520
|
import { promisify as promisify12 } from "node:util";
|
|
452174
452521
|
import { randomBytes as randomBytes5 } from "node:crypto";
|
|
452175
452522
|
var execAsync3 = promisify12(exec4);
|
|
@@ -452285,7 +452632,7 @@ async function start_sandbox(config2, nodeArgs = [], cliConfig, cliArgs = []) {
|
|
|
452285
452632
|
);
|
|
452286
452633
|
}
|
|
452287
452634
|
const profile = process.env["SEATBELT_PROFILE"] ??= "permissive-open";
|
|
452288
|
-
let profileFile =
|
|
452635
|
+
let profileFile = fileURLToPath17(
|
|
452289
452636
|
new URL(`sandbox-macos-${profile}.sb`, import.meta.url)
|
|
452290
452637
|
);
|
|
452291
452638
|
if (!BUILTIN_SEATBELT_PROFILES.includes(profile)) {
|
|
@@ -454724,7 +455071,7 @@ __name(parseAcpModelOption, "parseAcpModelOption");
|
|
|
454724
455071
|
// packages/cli/src/acp-integration/session/SubAgentTracker.ts
|
|
454725
455072
|
init_esbuild_shims();
|
|
454726
455073
|
init_zod();
|
|
454727
|
-
var
|
|
455074
|
+
var debugLogger134 = createDebugLogger("ACP_SUBAGENT_TRACKER");
|
|
454728
455075
|
var basicPermissionOptions = [
|
|
454729
455076
|
{
|
|
454730
455077
|
optionId: ToolConfirmationOutcome.ProceedOnce,
|
|
@@ -454804,7 +455151,7 @@ var SubAgentTracker = class {
|
|
|
454804
455151
|
try {
|
|
454805
455152
|
invocation = tool.build(event.args);
|
|
454806
455153
|
} catch (e4) {
|
|
454807
|
-
|
|
455154
|
+
debugLogger134.warn(`Failed to build subagent tool ${event.name}:`, e4);
|
|
454808
455155
|
}
|
|
454809
455156
|
}
|
|
454810
455157
|
this.toolStates.set(event.callId, {
|
|
@@ -454882,7 +455229,7 @@ var SubAgentTracker = class {
|
|
|
454882
455229
|
const outcome = output.outcome.outcome === "cancelled" ? ToolConfirmationOutcome.Cancel : external_exports.nativeEnum(ToolConfirmationOutcome).parse(output.outcome.optionId);
|
|
454883
455230
|
await event.respond(outcome);
|
|
454884
455231
|
} catch (error40) {
|
|
454885
|
-
|
|
455232
|
+
debugLogger134.error(
|
|
454886
455233
|
`Permission request failed for subagent tool ${event.name}:`,
|
|
454887
455234
|
error40
|
|
454888
455235
|
);
|
|
@@ -454983,7 +455330,7 @@ var SubAgentTracker = class {
|
|
|
454983
455330
|
};
|
|
454984
455331
|
|
|
454985
455332
|
// packages/cli/src/acp-integration/session/Session.ts
|
|
454986
|
-
var
|
|
455333
|
+
var debugLogger135 = createDebugLogger("SESSION");
|
|
454987
455334
|
var Session3 = class {
|
|
454988
455335
|
constructor(id, chat, config2, client, settings) {
|
|
454989
455336
|
this.chat = chat;
|
|
@@ -455163,7 +455510,7 @@ var Session3 = class {
|
|
|
455163
455510
|
};
|
|
455164
455511
|
await this.sendUpdate(update2);
|
|
455165
455512
|
} catch (error40) {
|
|
455166
|
-
|
|
455513
|
+
debugLogger135.error("Error sending available commands update:", error40);
|
|
455167
455514
|
}
|
|
455168
455515
|
}
|
|
455169
455516
|
/**
|
|
@@ -455607,7 +455954,7 @@ ${contextPart.text}`
|
|
|
455607
455954
|
}
|
|
455608
455955
|
debug(msg) {
|
|
455609
455956
|
if (this.config.getDebugMode()) {
|
|
455610
|
-
|
|
455957
|
+
debugLogger135.warn(msg);
|
|
455611
455958
|
}
|
|
455612
455959
|
}
|
|
455613
455960
|
};
|
|
@@ -455706,7 +456053,7 @@ function toPermissionOptions(confirmation) {
|
|
|
455706
456053
|
__name(toPermissionOptions, "toPermissionOptions");
|
|
455707
456054
|
|
|
455708
456055
|
// packages/cli/src/acp-integration/acpAgent.ts
|
|
455709
|
-
var
|
|
456056
|
+
var debugLogger136 = createDebugLogger("ACP_AGENT");
|
|
455710
456057
|
async function runAcpAgent(config2, settings, argv) {
|
|
455711
456058
|
const stdout = Writable2.toWeb(process.stdout);
|
|
455712
456059
|
const stdin = Readable5.toWeb(process.stdin);
|
|
@@ -455743,7 +456090,7 @@ var QwenAgent = class {
|
|
|
455743
456090
|
async initialize(args) {
|
|
455744
456091
|
this.clientCapabilities = args.clientCapabilities;
|
|
455745
456092
|
const authMethods = buildAuthMethods();
|
|
455746
|
-
const version2 = "0.12.
|
|
456093
|
+
const version2 = "0.12.4-nightly.20260316.110fcd7b7";
|
|
455747
456094
|
return {
|
|
455748
456095
|
protocolVersion: PROTOCOL_VERSION,
|
|
455749
456096
|
agentInfo: {
|
|
@@ -455970,7 +456317,7 @@ var QwenAgent = class {
|
|
|
455970
456317
|
try {
|
|
455971
456318
|
await config2.refreshAuth(selectedType, true);
|
|
455972
456319
|
} catch (e4) {
|
|
455973
|
-
|
|
456320
|
+
debugLogger136.error(`Authentication failed: ${e4}`);
|
|
455974
456321
|
throw RequestError.authRequired(
|
|
455975
456322
|
{
|
|
455976
456323
|
authMethods: this.pickAuthMethodsForAuthRequired(selectedType, e4)
|
|
@@ -456123,7 +456470,7 @@ var QwenAgent = class {
|
|
|
456123
456470
|
|
|
456124
456471
|
// packages/cli/src/gemini.tsx
|
|
456125
456472
|
var import_jsx_runtime117 = __toESM(require_jsx_runtime(), 1);
|
|
456126
|
-
var
|
|
456473
|
+
var debugLogger137 = createDebugLogger("STARTUP");
|
|
456127
456474
|
function validateDnsResolutionOrder(order) {
|
|
456128
456475
|
const defaultValue = "ipv4first";
|
|
456129
456476
|
if (order === void 0) {
|
|
@@ -456219,7 +456566,7 @@ async function startInteractiveUI(config2, settings, startupWarnings, workspaceR
|
|
|
456219
456566
|
checkForUpdates().then((info) => {
|
|
456220
456567
|
handleAutoUpdate(info, settings, config2.getProjectRoot());
|
|
456221
456568
|
}).catch((err) => {
|
|
456222
|
-
|
|
456569
|
+
debugLogger137.warn(`Update check failed: ${err}`);
|
|
456223
456570
|
});
|
|
456224
456571
|
}
|
|
456225
456572
|
registerCleanup(() => instance.unmount());
|
|
@@ -456412,7 +456759,7 @@ ${input}`;
|
|
|
456412
456759
|
auth_type: config2.getContentGeneratorConfig()?.authType,
|
|
456413
456760
|
prompt_length: input.length
|
|
456414
456761
|
});
|
|
456415
|
-
|
|
456762
|
+
debugLogger137.debug(`Session ID: ${config2.getSessionId()}`);
|
|
456416
456763
|
await runNonInteractive(nonInteractiveConfig, settings, input, prompt_id);
|
|
456417
456764
|
await runExitCleanup();
|
|
456418
456765
|
process.exit(0);
|