@protolabsai/proto 0.26.3 → 0.26.5
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 +301 -251
- package/locales/en.js +216 -192
- package/package.json +2 -2
package/cli.js
CHANGED
|
@@ -35181,6 +35181,9 @@ var init_retry = __esm({
|
|
|
35181
35181
|
});
|
|
35182
35182
|
|
|
35183
35183
|
// packages/core/dist/src/utils/partUtils.js
|
|
35184
|
+
function isInternalPart(part) {
|
|
35185
|
+
return typeof part === "object" && part !== null && part.protoInternal === true;
|
|
35186
|
+
}
|
|
35184
35187
|
function partToString(value, options2) {
|
|
35185
35188
|
if (!value) {
|
|
35186
35189
|
return "";
|
|
@@ -35224,7 +35227,7 @@ function getResponseText(response) {
|
|
|
35224
35227
|
if (response.candidates && response.candidates.length > 0) {
|
|
35225
35228
|
const candidate = response.candidates[0];
|
|
35226
35229
|
if (candidate.content && candidate.content.parts && candidate.content.parts.length > 0) {
|
|
35227
|
-
return candidate.content.parts.filter((part) => part.text && !part.thought).map((part) => part.text).join("");
|
|
35230
|
+
return candidate.content.parts.filter((part) => part.text && !part.thought && !isInternalPart(part)).map((part) => part.text).join("");
|
|
35228
35231
|
}
|
|
35229
35232
|
}
|
|
35230
35233
|
return null;
|
|
@@ -35273,6 +35276,7 @@ var init_partUtils = __esm({
|
|
|
35273
35276
|
"packages/core/dist/src/utils/partUtils.js"() {
|
|
35274
35277
|
"use strict";
|
|
35275
35278
|
init_esbuild_shims();
|
|
35279
|
+
__name(isInternalPart, "isInternalPart");
|
|
35276
35280
|
__name(partToString, "partToString");
|
|
35277
35281
|
__name(getResponseText, "getResponseText");
|
|
35278
35282
|
__name(flatMapTextParts, "flatMapTextParts");
|
|
@@ -144459,8 +144463,8 @@ ${result.llmContent}`;
|
|
|
144459
144463
|
return "Limit must be a positive number";
|
|
144460
144464
|
}
|
|
144461
144465
|
const fileService = this.config.getFileService();
|
|
144462
|
-
if (fileService.
|
|
144463
|
-
return `File path '${filePath}' is ignored by .
|
|
144466
|
+
if (fileService.shouldProtoIgnoreFile(params.file_path)) {
|
|
144467
|
+
return `File path '${filePath}' is ignored by .protoignore pattern(s).`;
|
|
144464
144468
|
}
|
|
144465
144469
|
return null;
|
|
144466
144470
|
}
|
|
@@ -147854,7 +147858,8 @@ var init_converter = __esm({
|
|
|
147854
147858
|
continue;
|
|
147855
147859
|
if (toolCall.malformed) {
|
|
147856
147860
|
parts2.push({
|
|
147857
|
-
text: `[tool_call dropped: upstream streamed malformed JSON arguments for \`${toolCall.name}\`. Retry the call with properly-formed arguments.]
|
|
147861
|
+
text: `[tool_call dropped: upstream streamed malformed JSON arguments for \`${toolCall.name}\`. Retry the call with properly-formed arguments.]`,
|
|
147862
|
+
protoInternal: true
|
|
147858
147863
|
});
|
|
147859
147864
|
continue;
|
|
147860
147865
|
}
|
|
@@ -171109,7 +171114,7 @@ __export(geminiContentGenerator_exports, {
|
|
|
171109
171114
|
createGeminiContentGenerator: () => createGeminiContentGenerator
|
|
171110
171115
|
});
|
|
171111
171116
|
function createGeminiContentGenerator(config2, gcConfig) {
|
|
171112
|
-
const version2 = "0.26.
|
|
171117
|
+
const version2 = "0.26.5";
|
|
171113
171118
|
const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
|
|
171114
171119
|
const baseHeaders = {
|
|
171115
171120
|
"User-Agent": userAgent2
|
|
@@ -173735,7 +173740,7 @@ function getThoughtText(response) {
|
|
|
173735
173740
|
if (response.candidates && response.candidates.length > 0) {
|
|
173736
173741
|
const candidate = response.candidates[0];
|
|
173737
173742
|
if (candidate.content && candidate.content.parts && candidate.content.parts.length > 0) {
|
|
173738
|
-
return candidate.content.parts.filter((part) => part.thought).map((part) => part.text ?? "").join("");
|
|
173743
|
+
return candidate.content.parts.filter((part) => part.thought && !isInternalPart(part)).map((part) => part.text ?? "").join("");
|
|
173739
173744
|
}
|
|
173740
173745
|
}
|
|
173741
173746
|
return null;
|
|
@@ -173745,6 +173750,7 @@ var init_thoughtUtils = __esm({
|
|
|
173745
173750
|
"packages/core/dist/src/utils/thoughtUtils.js"() {
|
|
173746
173751
|
"use strict";
|
|
173747
173752
|
init_esbuild_shims();
|
|
173753
|
+
init_partUtils();
|
|
173748
173754
|
START_DELIMITER = "**";
|
|
173749
173755
|
END_DELIMITER = "**";
|
|
173750
173756
|
__name(parseThought, "parseThought");
|
|
@@ -189505,11 +189511,11 @@ var init_constants4 = __esm({
|
|
|
189505
189511
|
init_esbuild_shims();
|
|
189506
189512
|
DEFAULT_MEMORY_FILE_FILTERING_OPTIONS = {
|
|
189507
189513
|
respectGitIgnore: false,
|
|
189508
|
-
|
|
189514
|
+
respectProtoIgnore: true
|
|
189509
189515
|
};
|
|
189510
189516
|
DEFAULT_FILE_FILTERING_OPTIONS = {
|
|
189511
189517
|
respectGitIgnore: true,
|
|
189512
|
-
|
|
189518
|
+
respectProtoIgnore: true
|
|
189513
189519
|
};
|
|
189514
189520
|
}
|
|
189515
189521
|
});
|
|
@@ -189566,7 +189572,7 @@ async function readFullStructure(rootPath, options2) {
|
|
|
189566
189572
|
const fileName = entry.name;
|
|
189567
189573
|
const filePath = path29.join(currentPath, fileName);
|
|
189568
189574
|
if (options2.fileService) {
|
|
189569
|
-
const shouldIgnore = options2.fileFilteringOptions.respectGitIgnore && options2.fileService.shouldGitIgnoreFile(filePath) || options2.fileFilteringOptions.
|
|
189575
|
+
const shouldIgnore = options2.fileFilteringOptions.respectGitIgnore && options2.fileService.shouldGitIgnoreFile(filePath) || options2.fileFilteringOptions.respectProtoIgnore && options2.fileService.shouldProtoIgnoreFile(filePath);
|
|
189570
189576
|
if (shouldIgnore) {
|
|
189571
189577
|
continue;
|
|
189572
189578
|
}
|
|
@@ -189590,7 +189596,7 @@ async function readFullStructure(rootPath, options2) {
|
|
|
189590
189596
|
const subFolderPath = path29.join(currentPath, subFolderName);
|
|
189591
189597
|
let isIgnored = false;
|
|
189592
189598
|
if (options2.fileService) {
|
|
189593
|
-
isIgnored = options2.fileFilteringOptions.respectGitIgnore && options2.fileService.shouldGitIgnoreFile(subFolderPath) || options2.fileFilteringOptions.
|
|
189599
|
+
isIgnored = options2.fileFilteringOptions.respectGitIgnore && options2.fileService.shouldGitIgnoreFile(subFolderPath) || options2.fileFilteringOptions.respectProtoIgnore && options2.fileService.shouldProtoIgnoreFile(subFolderPath);
|
|
189594
189600
|
}
|
|
189595
189601
|
if (options2.ignoredFolders.has(subFolderName) || isIgnored) {
|
|
189596
189602
|
const ignoredSubFolder = {
|
|
@@ -199629,18 +199635,18 @@ var init_gitIgnoreParser = __esm({
|
|
|
199629
199635
|
}
|
|
199630
199636
|
});
|
|
199631
199637
|
|
|
199632
|
-
// packages/core/dist/src/utils/
|
|
199638
|
+
// packages/core/dist/src/utils/protoIgnoreParser.js
|
|
199633
199639
|
import * as fs32 from "node:fs";
|
|
199634
199640
|
import * as path35 from "node:path";
|
|
199635
|
-
var import_ignore2,
|
|
199636
|
-
var
|
|
199637
|
-
"packages/core/dist/src/utils/
|
|
199641
|
+
var import_ignore2, ProtoIgnoreParser;
|
|
199642
|
+
var init_protoIgnoreParser = __esm({
|
|
199643
|
+
"packages/core/dist/src/utils/protoIgnoreParser.js"() {
|
|
199638
199644
|
"use strict";
|
|
199639
199645
|
init_esbuild_shims();
|
|
199640
199646
|
import_ignore2 = __toESM(require_ignore(), 1);
|
|
199641
|
-
|
|
199647
|
+
ProtoIgnoreParser = class {
|
|
199642
199648
|
static {
|
|
199643
|
-
__name(this, "
|
|
199649
|
+
__name(this, "ProtoIgnoreParser");
|
|
199644
199650
|
}
|
|
199645
199651
|
projectRoot;
|
|
199646
199652
|
patterns = [];
|
|
@@ -199650,14 +199656,23 @@ var init_qwenIgnoreParser = __esm({
|
|
|
199650
199656
|
this.loadPatterns();
|
|
199651
199657
|
}
|
|
199652
199658
|
loadPatterns() {
|
|
199653
|
-
const
|
|
199654
|
-
|
|
199655
|
-
|
|
199656
|
-
|
|
199657
|
-
|
|
199659
|
+
const sources = [".claudeignore", ".protoignore"];
|
|
199660
|
+
const merged = [];
|
|
199661
|
+
for (const filename of sources) {
|
|
199662
|
+
const patternsFilePath = path35.join(this.projectRoot, filename);
|
|
199663
|
+
let content;
|
|
199664
|
+
try {
|
|
199665
|
+
content = fs32.readFileSync(patternsFilePath, "utf-8");
|
|
199666
|
+
} catch (_error) {
|
|
199667
|
+
continue;
|
|
199668
|
+
}
|
|
199669
|
+
const lines = (content ?? "").split("\n").map((p2) => p2.trim()).filter((p2) => p2 !== "" && !p2.startsWith("#"));
|
|
199670
|
+
merged.push(...lines);
|
|
199671
|
+
}
|
|
199672
|
+
if (merged.length === 0) {
|
|
199658
199673
|
return;
|
|
199659
199674
|
}
|
|
199660
|
-
this.patterns =
|
|
199675
|
+
this.patterns = merged;
|
|
199661
199676
|
this.ig.add(this.patterns);
|
|
199662
199677
|
}
|
|
199663
199678
|
isIgnored(filePath) {
|
|
@@ -199696,34 +199711,34 @@ var init_fileDiscoveryService = __esm({
|
|
|
199696
199711
|
"use strict";
|
|
199697
199712
|
init_esbuild_shims();
|
|
199698
199713
|
init_gitIgnoreParser();
|
|
199699
|
-
|
|
199714
|
+
init_protoIgnoreParser();
|
|
199700
199715
|
init_gitUtils();
|
|
199701
199716
|
FileDiscoveryService = class {
|
|
199702
199717
|
static {
|
|
199703
199718
|
__name(this, "FileDiscoveryService");
|
|
199704
199719
|
}
|
|
199705
199720
|
gitIgnoreFilter = null;
|
|
199706
|
-
|
|
199721
|
+
protoIgnoreFilter = null;
|
|
199707
199722
|
projectRoot;
|
|
199708
199723
|
constructor(projectRoot) {
|
|
199709
199724
|
this.projectRoot = path36.resolve(projectRoot);
|
|
199710
199725
|
if (isGitRepository(this.projectRoot)) {
|
|
199711
199726
|
this.gitIgnoreFilter = new GitIgnoreParser(this.projectRoot);
|
|
199712
199727
|
}
|
|
199713
|
-
this.
|
|
199728
|
+
this.protoIgnoreFilter = new ProtoIgnoreParser(this.projectRoot);
|
|
199714
199729
|
}
|
|
199715
199730
|
/**
|
|
199716
199731
|
* Filters a list of file paths based on git ignore rules
|
|
199717
199732
|
*/
|
|
199718
199733
|
filterFiles(filePaths, options2 = {
|
|
199719
199734
|
respectGitIgnore: true,
|
|
199720
|
-
|
|
199735
|
+
respectProtoIgnore: true
|
|
199721
199736
|
}) {
|
|
199722
199737
|
return filePaths.filter((filePath) => {
|
|
199723
199738
|
if (options2.respectGitIgnore && this.shouldGitIgnoreFile(filePath)) {
|
|
199724
199739
|
return false;
|
|
199725
199740
|
}
|
|
199726
|
-
if (options2.
|
|
199741
|
+
if (options2.respectProtoIgnore && this.shouldProtoIgnoreFile(filePath)) {
|
|
199727
199742
|
return false;
|
|
199728
199743
|
}
|
|
199729
199744
|
return true;
|
|
@@ -199735,18 +199750,18 @@ var init_fileDiscoveryService = __esm({
|
|
|
199735
199750
|
*/
|
|
199736
199751
|
filterFilesWithReport(filePaths, opts = {
|
|
199737
199752
|
respectGitIgnore: true,
|
|
199738
|
-
|
|
199753
|
+
respectProtoIgnore: true
|
|
199739
199754
|
}) {
|
|
199740
199755
|
const filteredPaths = [];
|
|
199741
199756
|
let gitIgnoredCount = 0;
|
|
199742
|
-
let
|
|
199757
|
+
let protoIgnoredCount = 0;
|
|
199743
199758
|
for (const filePath of filePaths) {
|
|
199744
199759
|
if (opts.respectGitIgnore && this.shouldGitIgnoreFile(filePath)) {
|
|
199745
199760
|
gitIgnoredCount++;
|
|
199746
199761
|
continue;
|
|
199747
199762
|
}
|
|
199748
|
-
if (opts.
|
|
199749
|
-
|
|
199763
|
+
if (opts.respectProtoIgnore && this.shouldProtoIgnoreFile(filePath)) {
|
|
199764
|
+
protoIgnoredCount++;
|
|
199750
199765
|
continue;
|
|
199751
199766
|
}
|
|
199752
199767
|
filteredPaths.push(filePath);
|
|
@@ -199754,7 +199769,7 @@ var init_fileDiscoveryService = __esm({
|
|
|
199754
199769
|
return {
|
|
199755
199770
|
filteredPaths,
|
|
199756
199771
|
gitIgnoredCount,
|
|
199757
|
-
|
|
199772
|
+
protoIgnoredCount
|
|
199758
199773
|
};
|
|
199759
199774
|
}
|
|
199760
199775
|
/**
|
|
@@ -199767,11 +199782,11 @@ var init_fileDiscoveryService = __esm({
|
|
|
199767
199782
|
return false;
|
|
199768
199783
|
}
|
|
199769
199784
|
/**
|
|
199770
|
-
* Checks if a single file should be
|
|
199785
|
+
* Checks if a single file should be proto-ignored
|
|
199771
199786
|
*/
|
|
199772
|
-
|
|
199773
|
-
if (this.
|
|
199774
|
-
return this.
|
|
199787
|
+
shouldProtoIgnoreFile(filePath) {
|
|
199788
|
+
if (this.protoIgnoreFilter) {
|
|
199789
|
+
return this.protoIgnoreFilter.isIgnored(filePath);
|
|
199775
199790
|
}
|
|
199776
199791
|
return false;
|
|
199777
199792
|
}
|
|
@@ -199779,20 +199794,20 @@ var init_fileDiscoveryService = __esm({
|
|
|
199779
199794
|
* Unified method to check if a file should be ignored based on filtering options
|
|
199780
199795
|
*/
|
|
199781
199796
|
shouldIgnoreFile(filePath, options2 = {}) {
|
|
199782
|
-
const { respectGitIgnore = true,
|
|
199797
|
+
const { respectGitIgnore = true, respectProtoIgnore = true } = options2;
|
|
199783
199798
|
if (respectGitIgnore && this.shouldGitIgnoreFile(filePath)) {
|
|
199784
199799
|
return true;
|
|
199785
199800
|
}
|
|
199786
|
-
if (
|
|
199801
|
+
if (respectProtoIgnore && this.shouldProtoIgnoreFile(filePath)) {
|
|
199787
199802
|
return true;
|
|
199788
199803
|
}
|
|
199789
199804
|
return false;
|
|
199790
199805
|
}
|
|
199791
199806
|
/**
|
|
199792
|
-
* Returns loaded patterns from .
|
|
199807
|
+
* Returns loaded patterns from .protoignore
|
|
199793
199808
|
*/
|
|
199794
|
-
|
|
199795
|
-
return this.
|
|
199809
|
+
getProtoIgnorePatterns() {
|
|
199810
|
+
return this.protoIgnoreFilter?.getPatterns() ?? [];
|
|
199796
199811
|
}
|
|
199797
199812
|
};
|
|
199798
199813
|
}
|
|
@@ -232721,7 +232736,7 @@ ${fileListDescription}`;
|
|
|
232721
232736
|
const options2 = this.config.getFileFilteringOptions?.();
|
|
232722
232737
|
return {
|
|
232723
232738
|
respectGitIgnore: options2?.respectGitIgnore ?? DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore,
|
|
232724
|
-
|
|
232739
|
+
respectProtoIgnore: options2?.respectProtoIgnore ?? DEFAULT_FILE_FILTERING_OPTIONS.respectProtoIgnore
|
|
232725
232740
|
};
|
|
232726
232741
|
}
|
|
232727
232742
|
};
|
|
@@ -233317,9 +233332,9 @@ var init_ls = __esm({
|
|
|
233317
233332
|
}
|
|
233318
233333
|
const relativePaths = files.map((file2) => path48.relative(this.config.getTargetDir(), path48.join(this.params.path, file2)));
|
|
233319
233334
|
const fileDiscovery = this.config.getFileService();
|
|
233320
|
-
const { filteredPaths, gitIgnoredCount,
|
|
233335
|
+
const { filteredPaths, gitIgnoredCount, protoIgnoredCount } = fileDiscovery.filterFilesWithReport(relativePaths, {
|
|
233321
233336
|
respectGitIgnore: this.params.file_filtering_options?.respect_git_ignore ?? this.config.getFileFilteringOptions().respectGitIgnore ?? DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore,
|
|
233322
|
-
|
|
233337
|
+
respectProtoIgnore: this.params.file_filtering_options?.respect_qwen_ignore ?? this.config.getFileFilteringOptions().respectProtoIgnore ?? DEFAULT_FILE_FILTERING_OPTIONS.respectProtoIgnore
|
|
233323
233338
|
});
|
|
233324
233339
|
const entries = [];
|
|
233325
233340
|
for (const relativePath of filteredPaths) {
|
|
@@ -233367,8 +233382,8 @@ ${directoryContent}`;
|
|
|
233367
233382
|
if (gitIgnoredCount > 0) {
|
|
233368
233383
|
ignoredMessages.push(`${gitIgnoredCount} git-ignored`);
|
|
233369
233384
|
}
|
|
233370
|
-
if (
|
|
233371
|
-
ignoredMessages.push(`${
|
|
233385
|
+
if (protoIgnoredCount > 0) {
|
|
233386
|
+
ignoredMessages.push(`${protoIgnoredCount} proto-ignored`);
|
|
233372
233387
|
}
|
|
233373
233388
|
if (ignoredMessages.length > 0) {
|
|
233374
233389
|
resultMessage += `
|
|
@@ -233413,7 +233428,7 @@ ${directoryContent}`;
|
|
|
233413
233428
|
type: "array"
|
|
233414
233429
|
},
|
|
233415
233430
|
file_filtering_options: {
|
|
233416
|
-
description: "Optional: Whether to respect ignore patterns from .gitignore or .
|
|
233431
|
+
description: "Optional: Whether to respect ignore patterns from .gitignore or .protoignore",
|
|
233417
233432
|
type: "object",
|
|
233418
233433
|
properties: {
|
|
233419
233434
|
respect_git_ignore: {
|
|
@@ -233421,7 +233436,7 @@ ${directoryContent}`;
|
|
|
233421
233436
|
type: "boolean"
|
|
233422
233437
|
},
|
|
233423
233438
|
respect_qwen_ignore: {
|
|
233424
|
-
description: "Optional: Whether to respect .
|
|
233439
|
+
description: "Optional: Whether to respect .protoignore patterns when listing files. Defaults to true.",
|
|
233425
233440
|
type: "boolean"
|
|
233426
233441
|
}
|
|
233427
233442
|
}
|
|
@@ -233777,14 +233792,14 @@ var init_ripGrep = __esm({
|
|
|
233777
233792
|
if (!filteringOptions.respectGitIgnore) {
|
|
233778
233793
|
rgArgs.push("--no-ignore-vcs");
|
|
233779
233794
|
}
|
|
233780
|
-
if (filteringOptions.
|
|
233795
|
+
if (filteringOptions.respectProtoIgnore) {
|
|
233781
233796
|
const seenIgnoreFiles = /* @__PURE__ */ new Set();
|
|
233782
233797
|
for (const searchPath of paths) {
|
|
233783
233798
|
const dir = fs42.existsSync(searchPath) && fs42.statSync(searchPath).isDirectory() ? searchPath : path50.dirname(searchPath);
|
|
233784
|
-
const
|
|
233785
|
-
if (!seenIgnoreFiles.has(
|
|
233786
|
-
rgArgs.push("--ignore-file",
|
|
233787
|
-
seenIgnoreFiles.add(
|
|
233799
|
+
const protoIgnorePath = path50.join(dir, ".protoignore");
|
|
233800
|
+
if (!seenIgnoreFiles.has(protoIgnorePath) && fs42.existsSync(protoIgnorePath)) {
|
|
233801
|
+
rgArgs.push("--ignore-file", protoIgnorePath);
|
|
233802
|
+
seenIgnoreFiles.add(protoIgnorePath);
|
|
233788
233803
|
}
|
|
233789
233804
|
}
|
|
233790
233805
|
}
|
|
@@ -233803,7 +233818,7 @@ var init_ripGrep = __esm({
|
|
|
233803
233818
|
const options2 = this.config.getFileFilteringOptions?.();
|
|
233804
233819
|
return {
|
|
233805
233820
|
respectGitIgnore: options2?.respectGitIgnore ?? DEFAULT_FILE_FILTERING_OPTIONS.respectGitIgnore,
|
|
233806
|
-
|
|
233821
|
+
respectProtoIgnore: options2?.respectProtoIgnore ?? DEFAULT_FILE_FILTERING_OPTIONS.respectProtoIgnore
|
|
233807
233822
|
};
|
|
233808
233823
|
}
|
|
233809
233824
|
/**
|
|
@@ -275883,7 +275898,7 @@ var init_config3 = __esm({
|
|
|
275883
275898
|
this.outputLanguageFilePath = params.outputLanguageFilePath;
|
|
275884
275899
|
this.fileFiltering = {
|
|
275885
275900
|
respectGitIgnore: params.fileFiltering?.respectGitIgnore ?? true,
|
|
275886
|
-
|
|
275901
|
+
respectProtoIgnore: params.fileFiltering?.respectProtoIgnore ?? true,
|
|
275887
275902
|
enableRecursiveFileSearch: params.fileFiltering?.enableRecursiveFileSearch ?? true,
|
|
275888
275903
|
enableFuzzySearch: params.fileFiltering?.enableFuzzySearch ?? true
|
|
275889
275904
|
};
|
|
@@ -276631,13 +276646,13 @@ var init_config3 = __esm({
|
|
|
276631
276646
|
getFileFilteringRespectGitIgnore() {
|
|
276632
276647
|
return this.fileFiltering.respectGitIgnore;
|
|
276633
276648
|
}
|
|
276634
|
-
|
|
276635
|
-
return this.fileFiltering.
|
|
276649
|
+
getFileFilteringRespectProtoIgnore() {
|
|
276650
|
+
return this.fileFiltering.respectProtoIgnore;
|
|
276636
276651
|
}
|
|
276637
276652
|
getFileFilteringOptions() {
|
|
276638
276653
|
return {
|
|
276639
276654
|
respectGitIgnore: this.fileFiltering.respectGitIgnore,
|
|
276640
|
-
|
|
276655
|
+
respectProtoIgnore: this.fileFiltering.respectProtoIgnore
|
|
276641
276656
|
};
|
|
276642
276657
|
}
|
|
276643
276658
|
/**
|
|
@@ -286370,9 +286385,9 @@ function loadIgnoreRules(options2) {
|
|
|
286370
286385
|
}
|
|
286371
286386
|
}
|
|
286372
286387
|
if (options2.useQwenignore) {
|
|
286373
|
-
const
|
|
286374
|
-
if (fs87.existsSync(
|
|
286375
|
-
ignorer.add(fs87.readFileSync(
|
|
286388
|
+
const protoignorePath = path97.join(options2.projectRoot, ".protoignore");
|
|
286389
|
+
if (fs87.existsSync(protoignorePath)) {
|
|
286390
|
+
ignorer.add(fs87.readFileSync(protoignorePath, "utf8"));
|
|
286376
286391
|
}
|
|
286377
286392
|
}
|
|
286378
286393
|
const ignoreDirs = [".git", ...options2.ignoreDirs];
|
|
@@ -288671,7 +288686,7 @@ async function readPathFromWorkspace(pathStr, config2) {
|
|
|
288671
288686
|
const relativeFiles = files.map((p2) => path100.relative(config2.getTargetDir(), p2));
|
|
288672
288687
|
const filteredFiles = fileService.filterFiles(relativeFiles, {
|
|
288673
288688
|
respectGitIgnore: true,
|
|
288674
|
-
|
|
288689
|
+
respectProtoIgnore: true
|
|
288675
288690
|
});
|
|
288676
288691
|
const finalFiles = filteredFiles.map((p2) => path100.resolve(config2.getTargetDir(), p2));
|
|
288677
288692
|
for (const filePath of finalFiles) {
|
|
@@ -288688,7 +288703,7 @@ async function readPathFromWorkspace(pathStr, config2) {
|
|
|
288688
288703
|
const relativePath = path100.relative(config2.getTargetDir(), absolutePath);
|
|
288689
288704
|
const filtered = fileService.filterFiles([relativePath], {
|
|
288690
288705
|
respectGitIgnore: true,
|
|
288691
|
-
|
|
288706
|
+
respectProtoIgnore: true
|
|
288692
288707
|
});
|
|
288693
288708
|
if (filtered.length === 0) {
|
|
288694
288709
|
return [];
|
|
@@ -289864,6 +289879,7 @@ __export(dist_exports, {
|
|
|
289864
289879
|
isExtractionInProgress: () => isExtractionInProgress,
|
|
289865
289880
|
isGenericQuotaExceededError: () => isGenericQuotaExceededError,
|
|
289866
289881
|
isGitRepository: () => isGitRepository,
|
|
289882
|
+
isInternalPart: () => isInternalPart,
|
|
289867
289883
|
isInvalidArgumentError: () => isInvalidArgumentError,
|
|
289868
289884
|
isNodeError: () => isNodeError,
|
|
289869
289885
|
isPathWithinRoot: () => isPathWithinRoot,
|
|
@@ -328820,7 +328836,7 @@ var init_en3 = __esm({
|
|
|
328820
328836
|
// ============================================================================
|
|
328821
328837
|
// Commands - General
|
|
328822
328838
|
// ============================================================================
|
|
328823
|
-
"Analyzes the project and creates a tailored
|
|
328839
|
+
"Analyzes the project and creates a tailored PROTO.md file.": "Analyzes the project and creates a tailored PROTO.md file.",
|
|
328824
328840
|
"List available proto tools. Usage: /tools [desc]": "List available proto tools. Usage: /tools [desc]",
|
|
328825
328841
|
"List available skills.": "List available skills.",
|
|
328826
328842
|
"Available proto CLI tools:": "Available proto CLI tools:",
|
|
@@ -328894,8 +328910,8 @@ var init_en3 = __esm({
|
|
|
328894
328910
|
// ============================================================================
|
|
328895
328911
|
// Agents - Creation Wizard
|
|
328896
328912
|
// ============================================================================
|
|
328897
|
-
"Project Level (.
|
|
328898
|
-
"User Level (~/.
|
|
328913
|
+
"Project Level (.proto/agents/)": "Project Level (.proto/agents/)",
|
|
328914
|
+
"User Level (~/.proto/agents/)": "User Level (~/.proto/agents/)",
|
|
328899
328915
|
"\u2705 Subagent Created Successfully!": "\u2705 Subagent Created Successfully!",
|
|
328900
328916
|
'Subagent "{{name}}" has been saved to {{level}} level.': 'Subagent "{{name}}" has been saved to {{level}} level.',
|
|
328901
328917
|
"Name: ": "Name: ",
|
|
@@ -329041,7 +329057,7 @@ var init_en3 = __esm({
|
|
|
329041
329057
|
"Custom Witty Phrases": "Custom Witty Phrases",
|
|
329042
329058
|
"Show Welcome Back Dialog": "Show Welcome Back Dialog",
|
|
329043
329059
|
"Enable User Feedback": "Enable User Feedback",
|
|
329044
|
-
"How is
|
|
329060
|
+
"How is Proto doing this session? (optional)": "How is Proto doing this session? (optional)",
|
|
329045
329061
|
Bad: "Bad",
|
|
329046
329062
|
Fine: "Fine",
|
|
329047
329063
|
Good: "Good",
|
|
@@ -329063,7 +329079,7 @@ var init_en3 = __esm({
|
|
|
329063
329079
|
"Memory Discovery Max Dirs": "Memory Discovery Max Dirs",
|
|
329064
329080
|
"Load Memory From Include Directories": "Load Memory From Include Directories",
|
|
329065
329081
|
"Respect .gitignore": "Respect .gitignore",
|
|
329066
|
-
"Respect .
|
|
329082
|
+
"Respect .protoignore": "Respect .protoignore",
|
|
329067
329083
|
"Enable Recursive File Search": "Enable Recursive File Search",
|
|
329068
329084
|
"Disable Fuzzy Search": "Disable Fuzzy Search",
|
|
329069
329085
|
"Interactive Shell (PTY)": "Interactive Shell (PTY)",
|
|
@@ -329132,7 +329148,7 @@ var init_en3 = __esm({
|
|
|
329132
329148
|
local: "local",
|
|
329133
329149
|
remote: "remote",
|
|
329134
329150
|
"This extension will add the following commands: {{commands}}.": "This extension will add the following commands: {{commands}}.",
|
|
329135
|
-
"This extension will append info to your
|
|
329151
|
+
"This extension will append info to your PROTO.md context using {{fileName}}": "This extension will append info to your PROTO.md context using {{fileName}}",
|
|
329136
329152
|
"This extension will exclude the following core tools: {{tools}}": "This extension will exclude the following core tools: {{tools}}",
|
|
329137
329153
|
"This extension will install the following skills:": "This extension will install the following skills:",
|
|
329138
329154
|
"This extension will install the following subagents:": "This extension will install the following subagents:",
|
|
@@ -329255,7 +329271,7 @@ var init_en3 = __esm({
|
|
|
329255
329271
|
"Exit codes:": "Exit codes:",
|
|
329256
329272
|
"Configured hooks:": "Configured hooks:",
|
|
329257
329273
|
"No hooks configured for this event.": "No hooks configured for this event.",
|
|
329258
|
-
"To add hooks, edit settings.json directly or ask
|
|
329274
|
+
"To add hooks, edit settings.json directly or ask Proto.": "To add hooks, edit settings.json directly or ask Proto.",
|
|
329259
329275
|
"Enter to select \xB7 Esc to go back": "Enter to select \xB7 Esc to go back",
|
|
329260
329276
|
// Hooks - Config Detail Step
|
|
329261
329277
|
"Hook details": "Hook details",
|
|
@@ -329263,7 +329279,7 @@ var init_en3 = __esm({
|
|
|
329263
329279
|
"Extension:": "Extension:",
|
|
329264
329280
|
"Desc:": "Desc:",
|
|
329265
329281
|
"No hook config selected": "No hook config selected",
|
|
329266
|
-
"To modify or remove this hook, edit settings.json directly or ask
|
|
329282
|
+
"To modify or remove this hook, edit settings.json directly or ask Proto to help.": "To modify or remove this hook, edit settings.json directly or ask Proto to help.",
|
|
329267
329283
|
// Hooks - Disabled Step
|
|
329268
329284
|
"Hook Configuration - Disabled": "Hook Configuration - Disabled",
|
|
329269
329285
|
"All hooks are currently disabled. You have {{count}} that are not running.": "All hooks are currently disabled. You have {{count}} that are not running.",
|
|
@@ -329273,7 +329289,7 @@ var init_en3 = __esm({
|
|
|
329273
329289
|
"No hook commands will execute": "No hook commands will execute",
|
|
329274
329290
|
"StatusLine will not be displayed": "StatusLine will not be displayed",
|
|
329275
329291
|
"Tool operations will proceed without hook validation": "Tool operations will proceed without hook validation",
|
|
329276
|
-
'To re-enable hooks, remove "disableAllHooks" from settings.json or ask
|
|
329292
|
+
'To re-enable hooks, remove "disableAllHooks" from settings.json or ask Proto Code.': 'To re-enable hooks, remove "disableAllHooks" from settings.json or ask Proto Code.',
|
|
329277
329293
|
// Hooks - Source
|
|
329278
329294
|
Project: "Project",
|
|
329279
329295
|
User: "User",
|
|
@@ -329319,7 +329335,7 @@ var init_en3 = __esm({
|
|
|
329319
329335
|
"show stderr to model immediately": "show stderr to model immediately",
|
|
329320
329336
|
"show stderr to user only but continue with tool call": "show stderr to user only but continue with tool call",
|
|
329321
329337
|
"block processing, erase original prompt, and show stderr to user only": "block processing, erase original prompt, and show stderr to user only",
|
|
329322
|
-
"stdout shown to
|
|
329338
|
+
"stdout shown to Proto": "stdout shown to Proto",
|
|
329323
329339
|
"show stderr to user only (blocking errors ignored)": "show stderr to user only (blocking errors ignored)",
|
|
329324
329340
|
"command completes successfully": "command completes successfully",
|
|
329325
329341
|
"stdout shown to subagent": "stdout shown to subagent",
|
|
@@ -329499,7 +329515,7 @@ var init_en3 = __esm({
|
|
|
329499
329515
|
server: "server",
|
|
329500
329516
|
servers: "servers",
|
|
329501
329517
|
"Add MCP servers to your settings to get started.": "Add MCP servers to your settings to get started.",
|
|
329502
|
-
"Run
|
|
329518
|
+
"Run proto --debug to see error logs": "Run proto --debug to see error logs",
|
|
329503
329519
|
// MCP OAuth Authentication
|
|
329504
329520
|
"OAuth Authentication": "OAuth Authentication",
|
|
329505
329521
|
"Press Enter to start authentication, Esc to go back": "Press Enter to start authentication, Esc to go back",
|
|
@@ -329567,7 +329583,7 @@ var init_en3 = __esm({
|
|
|
329567
329583
|
// ============================================================================
|
|
329568
329584
|
// Commands - Summary
|
|
329569
329585
|
// ============================================================================
|
|
329570
|
-
"Generate a project summary and save it to .
|
|
329586
|
+
"Generate a project summary and save it to .proto/PROJECT_SUMMARY.md": "Generate a project summary and save it to .proto/PROJECT_SUMMARY.md",
|
|
329571
329587
|
"No chat client available to generate summary.": "No chat client available to generate summary.",
|
|
329572
329588
|
"Already generating summary, wait for previous request to complete": "Already generating summary, wait for previous request to complete",
|
|
329573
329589
|
"No conversation found to summarize.": "No conversation found to summarize.",
|
|
@@ -329608,7 +329624,7 @@ var init_en3 = __esm({
|
|
|
329608
329624
|
"Please provide at least one path to add.": "Please provide at least one path to add.",
|
|
329609
329625
|
"The /directory add command is not supported in restrictive sandbox profiles. Please use --include-directories when starting the session instead.": "The /directory add command is not supported in restrictive sandbox profiles. Please use --include-directories when starting the session instead.",
|
|
329610
329626
|
"Error adding '{{path}}': {{error}}": "Error adding '{{path}}': {{error}}",
|
|
329611
|
-
"Successfully added
|
|
329627
|
+
"Successfully added PROTO.md files from the following directories if there are:\n- {{directories}}": "Successfully added PROTO.md files from the following directories if there are:\n- {{directories}}",
|
|
329612
329628
|
"Error refreshing memory: {{error}}": "Error refreshing memory: {{error}}",
|
|
329613
329629
|
"Successfully added directories:\n- {{directories}}": "Successfully added directories:\n- {{directories}}",
|
|
329614
329630
|
"Current workspace directories:\n{{directories}}": "Current workspace directories:\n{{directories}}",
|
|
@@ -329680,8 +329696,8 @@ var init_en3 = __esm({
|
|
|
329680
329696
|
"OpenAI API key is required to use OpenAI authentication.": "OpenAI API key is required to use OpenAI authentication.",
|
|
329681
329697
|
"You must select an auth method to proceed. Press Ctrl+C again to exit.": "You must select an auth method to proceed. Press Ctrl+C again to exit.",
|
|
329682
329698
|
"Terms of Services and Privacy Notice": "Terms of Services and Privacy Notice",
|
|
329683
|
-
"
|
|
329684
|
-
"Free \xB7 Up to 1,000 requests/day \xB7
|
|
329699
|
+
"Proto OAuth": "Proto OAuth",
|
|
329700
|
+
"Free \xB7 Up to 1,000 requests/day \xB7 Proto latest models": "Free \xB7 Up to 1,000 requests/day \xB7 Proto latest models",
|
|
329685
329701
|
"Login with QwenChat account to use daily free quota.": "Login with QwenChat account to use daily free quota.",
|
|
329686
329702
|
"Paid \xB7 Up to 6,000 requests/5 hrs \xB7 All Alibaba Cloud Coding Plan Models": "Paid \xB7 Up to 6,000 requests/5 hrs \xB7 All Alibaba Cloud Coding Plan Models",
|
|
329687
329703
|
"Alibaba Cloud Coding Plan": "Alibaba Cloud Coding Plan",
|
|
@@ -329691,20 +329707,20 @@ var init_en3 = __esm({
|
|
|
329691
329707
|
OpenAI: "OpenAI",
|
|
329692
329708
|
"Failed to login. Message: {{message}}": "Failed to login. Message: {{message}}",
|
|
329693
329709
|
"Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.": "Authentication is enforced to be {{enforcedType}}, but you are currently using {{currentType}}.",
|
|
329694
|
-
"
|
|
329695
|
-
"
|
|
329696
|
-
"
|
|
329710
|
+
"Proto OAuth authentication timed out. Please try again.": "Proto OAuth authentication timed out. Please try again.",
|
|
329711
|
+
"Proto OAuth authentication cancelled.": "Proto OAuth authentication cancelled.",
|
|
329712
|
+
"Proto OAuth Authentication": "Proto OAuth Authentication",
|
|
329697
329713
|
"Please visit this URL to authorize:": "Please visit this URL to authorize:",
|
|
329698
329714
|
"Or scan the QR code below:": "Or scan the QR code below:",
|
|
329699
329715
|
"Waiting for authorization": "Waiting for authorization",
|
|
329700
329716
|
"Time remaining:": "Time remaining:",
|
|
329701
329717
|
"(Press ESC or CTRL+C to cancel)": "(Press ESC or CTRL+C to cancel)",
|
|
329702
|
-
"
|
|
329718
|
+
"Proto OAuth Authentication Timeout": "Proto OAuth Authentication Timeout",
|
|
329703
329719
|
"OAuth token expired (over {{seconds}} seconds). Please select authentication method again.": "OAuth token expired (over {{seconds}} seconds). Please select authentication method again.",
|
|
329704
329720
|
"Press any key to return to authentication type selection.": "Press any key to return to authentication type selection.",
|
|
329705
|
-
"Waiting for
|
|
329706
|
-
"Note: Your existing API key in settings.json will not be cleared when using
|
|
329707
|
-
"Note: Your existing API key will not be cleared when using
|
|
329721
|
+
"Waiting for Proto OAuth authentication...": "Waiting for Proto OAuth authentication...",
|
|
329722
|
+
"Note: Your existing API key in settings.json will not be cleared when using Proto OAuth. You can switch back to OpenAI authentication later if needed.": "Note: Your existing API key in settings.json will not be cleared when using Proto OAuth. You can switch back to OpenAI authentication later if needed.",
|
|
329723
|
+
"Note: Your existing API key will not be cleared when using Proto OAuth.": "Note: Your existing API key will not be cleared when using Proto OAuth.",
|
|
329708
329724
|
"Authentication timed out. Please try again.": "Authentication timed out. Please try again.",
|
|
329709
329725
|
"Waiting for auth... (Press ESC or CTRL+C to cancel)": "Waiting for auth... (Press ESC or CTRL+C to cancel)",
|
|
329710
329726
|
"Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.": "Missing API key for OpenAI-compatible auth. Set settings.security.auth.apiKey, or set the {{envKeyHint}} environment variable.",
|
|
@@ -329748,8 +329764,8 @@ var init_en3 = __esm({
|
|
|
329748
329764
|
none: "none",
|
|
329749
329765
|
unknown: "unknown",
|
|
329750
329766
|
"Failed to switch model to '{{modelId}}'.\n\n{{error}}": "Failed to switch model to '{{modelId}}'.\n\n{{error}}",
|
|
329751
|
-
"
|
|
329752
|
-
"The latest
|
|
329767
|
+
"Proto 3.5 Plus \u2014 efficient hybrid model with leading coding performance": "Proto 3.5 Plus \u2014 efficient hybrid model with leading coding performance",
|
|
329768
|
+
"The latest Proto Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)": "The latest Proto Vision model from Alibaba Cloud ModelStudio (version: qwen3-vl-plus-2025-09-23)",
|
|
329753
329769
|
// ============================================================================
|
|
329754
329770
|
// Dialogs - Permissions
|
|
329755
329771
|
// ============================================================================
|
|
@@ -329769,11 +329785,11 @@ var init_en3 = __esm({
|
|
|
329769
329785
|
"From project settings": "From project settings",
|
|
329770
329786
|
"From session": "From session",
|
|
329771
329787
|
"Project settings (local)": "Project settings (local)",
|
|
329772
|
-
"Saved in .
|
|
329788
|
+
"Saved in .proto/settings.local.json": "Saved in .proto/settings.local.json",
|
|
329773
329789
|
"Project settings": "Project settings",
|
|
329774
|
-
"Checked in at .
|
|
329790
|
+
"Checked in at .proto/settings.json": "Checked in at .proto/settings.json",
|
|
329775
329791
|
"User settings": "User settings",
|
|
329776
|
-
"Saved in at ~/.
|
|
329792
|
+
"Saved in at ~/.proto/settings.json": "Saved in at ~/.proto/settings.json",
|
|
329777
329793
|
"Add a new rule\u2026": "Add a new rule\u2026",
|
|
329778
329794
|
"Add {{type}} permission rule": "Add {{type}} permission rule",
|
|
329779
329795
|
"Permission rules are a tool name, optionally followed by a specifier in parentheses.": "Permission rules are a tool name, optionally followed by a specifier in parentheses.",
|
|
@@ -329867,7 +329883,7 @@ var init_en3 = __esm({
|
|
|
329867
329883
|
"Switch auth type quickly with /auth.": "Switch auth type quickly with /auth.",
|
|
329868
329884
|
"You can run any shell commands from proto using ! (e.g. !ls).": "You can run any shell commands from proto using ! (e.g. !ls).",
|
|
329869
329885
|
"Type / to open the command popup; Tab autocompletes slash commands and saved prompts.": "Type / to open the command popup; Tab autocompletes slash commands and saved prompts.",
|
|
329870
|
-
"You can resume a previous conversation by running
|
|
329886
|
+
"You can resume a previous conversation by running proto --continue or proto --resume.": "You can resume a previous conversation by running proto --continue or proto --resume.",
|
|
329871
329887
|
"You can switch permission mode quickly with Shift+Tab or /approval-mode.": "You can switch permission mode quickly with Shift+Tab or /approval-mode.",
|
|
329872
329888
|
"You can switch permission mode quickly with Tab or /approval-mode.": "You can switch permission mode quickly with Tab or /approval-mode.",
|
|
329873
329889
|
"Try /insight to generate personalized insights from your chat history.": "Try /insight to generate personalized insights from your chat history.",
|
|
@@ -329941,133 +329957,156 @@ var init_en3 = __esm({
|
|
|
329941
329957
|
// Loading Phrases
|
|
329942
329958
|
// ============================================================================
|
|
329943
329959
|
WITTY_LOADING_PHRASES: [
|
|
329944
|
-
"
|
|
329945
|
-
"
|
|
329946
|
-
"
|
|
329947
|
-
"
|
|
329948
|
-
"
|
|
329949
|
-
"
|
|
329950
|
-
"
|
|
329951
|
-
"
|
|
329952
|
-
"
|
|
329953
|
-
"
|
|
329954
|
-
"
|
|
329955
|
-
"
|
|
329956
|
-
"
|
|
329957
|
-
"
|
|
329958
|
-
"
|
|
329959
|
-
"
|
|
329960
|
-
"
|
|
329961
|
-
"
|
|
329962
|
-
"
|
|
329963
|
-
"
|
|
329964
|
-
"
|
|
329965
|
-
"
|
|
329966
|
-
"
|
|
329967
|
-
"
|
|
329968
|
-
"
|
|
329969
|
-
"
|
|
329970
|
-
"
|
|
329971
|
-
"
|
|
329972
|
-
"
|
|
329973
|
-
"
|
|
329974
|
-
"
|
|
329975
|
-
"
|
|
329976
|
-
"
|
|
329977
|
-
"
|
|
329978
|
-
"
|
|
329979
|
-
"
|
|
329980
|
-
"
|
|
329981
|
-
"
|
|
329982
|
-
"
|
|
329983
|
-
"
|
|
329984
|
-
"
|
|
329985
|
-
"
|
|
329986
|
-
"
|
|
329987
|
-
"
|
|
329988
|
-
"
|
|
329989
|
-
"
|
|
329990
|
-
"
|
|
329991
|
-
"
|
|
329992
|
-
"
|
|
329993
|
-
"
|
|
329994
|
-
"
|
|
329995
|
-
"
|
|
329996
|
-
"
|
|
329997
|
-
"
|
|
329998
|
-
"
|
|
329999
|
-
"
|
|
330000
|
-
"
|
|
330001
|
-
"
|
|
330002
|
-
"
|
|
330003
|
-
"The
|
|
330004
|
-
"
|
|
330005
|
-
"
|
|
330006
|
-
"
|
|
330007
|
-
"
|
|
330008
|
-
"The
|
|
330009
|
-
"
|
|
330010
|
-
"
|
|
330011
|
-
"
|
|
330012
|
-
"
|
|
330013
|
-
"
|
|
330014
|
-
"
|
|
330015
|
-
"
|
|
330016
|
-
"
|
|
330017
|
-
"
|
|
330018
|
-
"
|
|
330019
|
-
"
|
|
330020
|
-
"
|
|
330021
|
-
"
|
|
330022
|
-
"
|
|
330023
|
-
"
|
|
330024
|
-
"
|
|
330025
|
-
"
|
|
330026
|
-
"
|
|
330027
|
-
"
|
|
330028
|
-
"
|
|
330029
|
-
"
|
|
330030
|
-
"
|
|
330031
|
-
"
|
|
330032
|
-
"
|
|
330033
|
-
"
|
|
330034
|
-
"
|
|
330035
|
-
"
|
|
330036
|
-
"
|
|
330037
|
-
"
|
|
330038
|
-
"
|
|
330039
|
-
"
|
|
330040
|
-
"
|
|
330041
|
-
"
|
|
330042
|
-
"
|
|
330043
|
-
"
|
|
330044
|
-
"
|
|
330045
|
-
"
|
|
330046
|
-
"
|
|
330047
|
-
"
|
|
330048
|
-
"
|
|
330049
|
-
"
|
|
330050
|
-
"
|
|
330051
|
-
"
|
|
330052
|
-
"
|
|
330053
|
-
"
|
|
330054
|
-
"
|
|
330055
|
-
"
|
|
330056
|
-
"
|
|
330057
|
-
"
|
|
330058
|
-
"
|
|
330059
|
-
"
|
|
330060
|
-
"
|
|
330061
|
-
"
|
|
330062
|
-
"
|
|
330063
|
-
"
|
|
330064
|
-
"
|
|
330065
|
-
"
|
|
330066
|
-
"
|
|
330067
|
-
"
|
|
330068
|
-
"
|
|
330069
|
-
"
|
|
330070
|
-
"
|
|
329960
|
+
"The server is checking its reflection",
|
|
329961
|
+
"Waiting for the database to finish its thought",
|
|
329962
|
+
"The code is looking for its other sock",
|
|
329963
|
+
"The API went to the bathroom",
|
|
329964
|
+
"The server is pretending to be asleep",
|
|
329965
|
+
"Asking the cache if it's lying",
|
|
329966
|
+
"The function is stalling for time",
|
|
329967
|
+
"The database is avoiding eye contact",
|
|
329968
|
+
"Waiting for the loop to get to the point",
|
|
329969
|
+
"The server is checking its phone",
|
|
329970
|
+
"The code is second-guessing everything",
|
|
329971
|
+
"The API is making excuses",
|
|
329972
|
+
"The server forgot what it was doing",
|
|
329973
|
+
"The function is clearing its throat",
|
|
329974
|
+
"Waiting for the process to stop rambling",
|
|
329975
|
+
"The database is choosing its words carefully",
|
|
329976
|
+
"The server is pretending to be busy",
|
|
329977
|
+
"The code is checking if you're still watching",
|
|
329978
|
+
"The API is running late, as usual",
|
|
329979
|
+
"The server is looking for a pen that works",
|
|
329980
|
+
"The function is trying to remember where it left off",
|
|
329981
|
+
"The database is having an existential moment",
|
|
329982
|
+
"Waiting for the code to get its story straight",
|
|
329983
|
+
"The server is looking for its glasses",
|
|
329984
|
+
"The API is stuck on hold",
|
|
329985
|
+
"The function is checking the weather first",
|
|
329986
|
+
"The database is reorganizing before it can start",
|
|
329987
|
+
"The server is waiting for someone else to go first",
|
|
329988
|
+
"The code is making sure it locked the door",
|
|
329989
|
+
"The API is just... one more minute",
|
|
329990
|
+
"Asking the server if it's mad at me",
|
|
329991
|
+
"Waiting for the database to finish its cigarette",
|
|
329992
|
+
"The pixels are discussing amongst themselves",
|
|
329993
|
+
"Giving the code a minute to collect its thoughts",
|
|
329994
|
+
"Letting the algorithm finish chewing",
|
|
329995
|
+
"The server is finding its reading glasses",
|
|
329996
|
+
"Asking the cache what it remembers",
|
|
329997
|
+
"The API is looking for its car keys",
|
|
329998
|
+
"Waiting for the function to get off the phone",
|
|
329999
|
+
"The data is stuck in traffic",
|
|
330000
|
+
"Checking if the server left a note",
|
|
330001
|
+
"The code is rereading the same paragraph",
|
|
330002
|
+
"Asking the database to repeat itself",
|
|
330003
|
+
"The server is deciding what to wear",
|
|
330004
|
+
"Waiting for the loop to get the point",
|
|
330005
|
+
"The request got distracted",
|
|
330006
|
+
"The server is pretending it didn't hear you",
|
|
330007
|
+
"Checking the back of the warehouse",
|
|
330008
|
+
"The code is having second thoughts",
|
|
330009
|
+
"Waiting for the process to finish its story",
|
|
330010
|
+
"The API went to get milk",
|
|
330011
|
+
"The server is double-checking its work",
|
|
330012
|
+
"Loading the thing behind the thing",
|
|
330013
|
+
"The database is reorganizing its junk drawer",
|
|
330014
|
+
"Asking the cache if it's sure",
|
|
330015
|
+
"The code is trying to remember your name",
|
|
330016
|
+
"Waiting for the server to put its pants on",
|
|
330017
|
+
"The function is gathering evidence",
|
|
330018
|
+
"The API is reading the instructions",
|
|
330019
|
+
"The server is looking for the light switch",
|
|
330020
|
+
"The server is rewinding the VHS tape",
|
|
330021
|
+
"Waiting for the modem to finish screaming",
|
|
330022
|
+
"The database is paging someone",
|
|
330023
|
+
"Blowing on the cartridge and trying again",
|
|
330024
|
+
"The API is waiting for dial-up to connect",
|
|
330025
|
+
"The server left its Tamagotchi at home",
|
|
330026
|
+
"Checking if the cord is plugged into the phone jack",
|
|
330027
|
+
"The code is recording over someone's wedding",
|
|
330028
|
+
"Waiting for the CD to stop skipping",
|
|
330029
|
+
"The function burned itself onto a CD-R",
|
|
330030
|
+
"The database is fast-forwarding through the commercials",
|
|
330031
|
+
"The server is adjusting the rabbit ears",
|
|
330032
|
+
"The API is stuck in the credits",
|
|
330033
|
+
"Tracking down which disc the file is on",
|
|
330034
|
+
"The code is in a chat room somewhere",
|
|
330035
|
+
"The server is setting the VCR timer",
|
|
330036
|
+
"Waiting for the floppy disk to stop grinding",
|
|
330037
|
+
"The database is selecting its AIM away message",
|
|
330038
|
+
"The function is asking Jeeves",
|
|
330039
|
+
"The server is reading the liner notes",
|
|
330040
|
+
"The API pressed B too many times",
|
|
330041
|
+
"The code is trying to remember its ICQ number",
|
|
330042
|
+
"Waiting for the answering machine to beep",
|
|
330043
|
+
"The database is untangling its landline cord",
|
|
330044
|
+
"The server is loading the next track",
|
|
330045
|
+
"The function is stuck in a Portal of Time",
|
|
330046
|
+
"The API is checking its pager",
|
|
330047
|
+
"The code is looking for the right jewel case",
|
|
330048
|
+
"The server is making a mix tape first",
|
|
330049
|
+
"Waiting for Y2K to sort itself out",
|
|
330050
|
+
"The server will be back",
|
|
330051
|
+
"Show me the data",
|
|
330052
|
+
"The code can't handle the truth",
|
|
330053
|
+
"The API is in the pipe, five by five",
|
|
330054
|
+
"You're gonna need a bigger server",
|
|
330055
|
+
"The function has a bad feeling about this",
|
|
330056
|
+
"The database doesn't remember asking you a damn thing",
|
|
330057
|
+
"Waiting for the server to say hello to my little friend",
|
|
330058
|
+
"The code is going to make you an offer you can't refuse",
|
|
330059
|
+
"The API is too old for this shit",
|
|
330060
|
+
"The server is walking here",
|
|
330061
|
+
"The function is on a mission from God",
|
|
330062
|
+
"Just when the code thought it was out",
|
|
330063
|
+
"The database can do this all day",
|
|
330064
|
+
"The server is in a world of pain",
|
|
330065
|
+
"The API sleeps with the fishes",
|
|
330066
|
+
"The code is Keyser S\xF6ze",
|
|
330067
|
+
"Waiting for the function to get busy living",
|
|
330068
|
+
"The database is not a smart man, but it knows what love is",
|
|
330069
|
+
"The server sees dead processes",
|
|
330070
|
+
"The API is going to need you to go ahead and come in on Saturday",
|
|
330071
|
+
"The code is on a boat",
|
|
330072
|
+
"The function is shocked, shocked",
|
|
330073
|
+
"The database is making fetch happen",
|
|
330074
|
+
"The server is so fetch",
|
|
330075
|
+
"The API is streets ahead",
|
|
330076
|
+
"The code is the one who knocks",
|
|
330077
|
+
"Waiting for the function to phone home",
|
|
330078
|
+
"The database is big, it's heavy, it's wood",
|
|
330079
|
+
"The server forgot about Dre",
|
|
330080
|
+
"The server is never gonna give you up",
|
|
330081
|
+
"The API is living on a prayer",
|
|
330082
|
+
"The code wants to know what love is",
|
|
330083
|
+
"The database is walking on sunshine",
|
|
330084
|
+
"The function is a Material Girl",
|
|
330085
|
+
"The server just called to say I love you",
|
|
330086
|
+
"The API is waiting for tonight",
|
|
330087
|
+
"The code is gonna party like it's 1999",
|
|
330088
|
+
"The database hit me baby one more time",
|
|
330089
|
+
"The server says bye bye bye",
|
|
330090
|
+
"The function is too sexy for this code",
|
|
330091
|
+
"The API is thinking about you and me and you and me",
|
|
330092
|
+
"The code is trapped under ice cream",
|
|
330093
|
+
"The database is turning Japanese",
|
|
330094
|
+
"The server is walking like an Egyptian",
|
|
330095
|
+
"The function is addicted to love",
|
|
330096
|
+
"The API wants you to know what it's like",
|
|
330097
|
+
"The code is running down a dream",
|
|
330098
|
+
"The database is living la vida loca",
|
|
330099
|
+
"The server is smooth like butter",
|
|
330100
|
+
"The function believes it can fly",
|
|
330101
|
+
"The API is gonna be the one that saves you",
|
|
330102
|
+
"The code is not your stepping stone",
|
|
330103
|
+
"The database is hungry like the wolf",
|
|
330104
|
+
"The server is livin' on the edge",
|
|
330105
|
+
"The function can't feel its face",
|
|
330106
|
+
"The API doesn't want no scrubs",
|
|
330107
|
+
"The code is floating down the Liffey",
|
|
330108
|
+
"The database is losing its religion",
|
|
330109
|
+
"The server is under pressure"
|
|
330071
330110
|
],
|
|
330072
330111
|
// ============================================================================
|
|
330073
330112
|
// Extension Settings Input
|
|
@@ -330190,16 +330229,16 @@ var init_en3 = __esm({
|
|
|
330190
330229
|
// ============================================================================
|
|
330191
330230
|
// Commands - Auth
|
|
330192
330231
|
// ============================================================================
|
|
330193
|
-
"Configure
|
|
330194
|
-
"Authenticate using
|
|
330232
|
+
"Configure Proto authentication information with Proto-OAuth or Alibaba Cloud Coding Plan": "Configure Proto authentication information with Proto-OAuth or Alibaba Cloud Coding Plan",
|
|
330233
|
+
"Authenticate using Proto OAuth": "Authenticate using Proto OAuth",
|
|
330195
330234
|
"Authenticate using Alibaba Cloud Coding Plan": "Authenticate using Alibaba Cloud Coding Plan",
|
|
330196
330235
|
"Region for Coding Plan (china/global)": "Region for Coding Plan (china/global)",
|
|
330197
330236
|
"API key for Coding Plan": "API key for Coding Plan",
|
|
330198
330237
|
"Show current authentication status": "Show current authentication status",
|
|
330199
330238
|
"Authentication completed successfully.": "Authentication completed successfully.",
|
|
330200
|
-
"Starting
|
|
330201
|
-
"Successfully authenticated with
|
|
330202
|
-
"Failed to authenticate with
|
|
330239
|
+
"Starting Proto OAuth authentication...": "Starting Proto OAuth authentication...",
|
|
330240
|
+
"Successfully authenticated with Proto OAuth.": "Successfully authenticated with Proto OAuth.",
|
|
330241
|
+
"Failed to authenticate with Proto OAuth: {{error}}": "Failed to authenticate with Proto OAuth: {{error}}",
|
|
330203
330242
|
"Processing Alibaba Cloud Coding Plan authentication...": "Processing Alibaba Cloud Coding Plan authentication...",
|
|
330204
330243
|
"Successfully authenticated with Alibaba Cloud Coding Plan.": "Successfully authenticated with Alibaba Cloud Coding Plan.",
|
|
330205
330244
|
"Failed to authenticate with Coding Plan: {{error}}": "Failed to authenticate with Coding Plan: {{error}}",
|
|
@@ -330213,14 +330252,14 @@ var init_en3 = __esm({
|
|
|
330213
330252
|
"\n=== Authentication Status ===\n": "\n=== Authentication Status ===\n",
|
|
330214
330253
|
"\u26A0\uFE0F No authentication method configured.\n": "\u26A0\uFE0F No authentication method configured.\n",
|
|
330215
330254
|
"Run one of the following commands to get started:\n": "Run one of the following commands to get started:\n",
|
|
330216
|
-
"
|
|
330217
|
-
"
|
|
330255
|
+
" proto auth proto-oauth - Authenticate with Proto OAuth (free tier)": " proto auth proto-oauth - Authenticate with Proto OAuth (free tier)",
|
|
330256
|
+
" proto auth coding-plan - Authenticate with Alibaba Cloud Coding Plan\n": " proto auth coding-plan - Authenticate with Alibaba Cloud Coding Plan\n",
|
|
330218
330257
|
"Or simply run:": "Or simply run:",
|
|
330219
|
-
"
|
|
330220
|
-
"\u2713 Authentication Method:
|
|
330258
|
+
" proto auth - Interactive authentication setup\n": " proto auth - Interactive authentication setup\n",
|
|
330259
|
+
"\u2713 Authentication Method: Proto OAuth": "\u2713 Authentication Method: Proto OAuth",
|
|
330221
330260
|
" Type: Free tier": " Type: Free tier",
|
|
330222
330261
|
" Limit: Up to 1,000 requests/day": " Limit: Up to 1,000 requests/day",
|
|
330223
|
-
" Models:
|
|
330262
|
+
" Models: Proto latest models\n": " Models: Proto latest models\n",
|
|
330224
330263
|
"\u2713 Authentication Method: Alibaba Cloud Coding Plan": "\u2713 Authentication Method: Alibaba Cloud Coding Plan",
|
|
330225
330264
|
"\u4E2D\u56FD (China) - \u963F\u91CC\u4E91\u767E\u70BC": "\u4E2D\u56FD (China) - \u963F\u91CC\u4E91\u767E\u70BC",
|
|
330226
330265
|
"Global - Alibaba Cloud": "Global - Alibaba Cloud",
|
|
@@ -330230,7 +330269,7 @@ var init_en3 = __esm({
|
|
|
330230
330269
|
" Status: API key configured\n": " Status: API key configured\n",
|
|
330231
330270
|
"\u26A0\uFE0F Authentication Method: Alibaba Cloud Coding Plan (Incomplete)": "\u26A0\uFE0F Authentication Method: Alibaba Cloud Coding Plan (Incomplete)",
|
|
330232
330271
|
" Issue: API key not found in environment or settings\n": " Issue: API key not found in environment or settings\n",
|
|
330233
|
-
" Run `
|
|
330272
|
+
" Run `proto auth coding-plan` to re-configure.\n": " Run `proto auth coding-plan` to re-configure.\n",
|
|
330234
330273
|
"\u2713 Authentication Method: {{type}}": "\u2713 Authentication Method: {{type}}",
|
|
330235
330274
|
" Status: Configured\n": " Status: Configured\n",
|
|
330236
330275
|
"Failed to check authentication status: {{error}}": "Failed to check authentication status: {{error}}",
|
|
@@ -405606,13 +405645,13 @@ var SETTINGS_SCHEMA = {
|
|
|
405606
405645
|
description: "Respect .gitignore files when searching",
|
|
405607
405646
|
showInDialog: true
|
|
405608
405647
|
},
|
|
405609
|
-
|
|
405648
|
+
respectProtoIgnore: {
|
|
405610
405649
|
type: "boolean",
|
|
405611
|
-
label: "Respect .
|
|
405650
|
+
label: "Respect .protoignore",
|
|
405612
405651
|
category: "Context",
|
|
405613
405652
|
requiresRestart: true,
|
|
405614
405653
|
default: true,
|
|
405615
|
-
description: "Respect .
|
|
405654
|
+
description: "Respect .protoignore files when searching",
|
|
405616
405655
|
showInDialog: true
|
|
405617
405656
|
},
|
|
405618
405657
|
enableRecursiveFileSearch: {
|
|
@@ -406839,7 +406878,7 @@ var SETTINGS_DIALOG_ORDER = [
|
|
|
406839
406878
|
"general.gitCoAuthor",
|
|
406840
406879
|
// File Filtering
|
|
406841
406880
|
"context.fileFiltering.respectGitIgnore",
|
|
406842
|
-
"context.fileFiltering.
|
|
406881
|
+
"context.fileFiltering.respectProtoIgnore",
|
|
406843
406882
|
// System Settings - rarely changed
|
|
406844
406883
|
"general.disableAutoUpdate",
|
|
406845
406884
|
// Privacy
|
|
@@ -416089,7 +416128,7 @@ __name(getPackageJson, "getPackageJson");
|
|
|
416089
416128
|
// packages/cli/src/utils/version.ts
|
|
416090
416129
|
async function getCliVersion() {
|
|
416091
416130
|
const pkgJson = await getPackageJson();
|
|
416092
|
-
return "0.26.
|
|
416131
|
+
return "0.26.5";
|
|
416093
416132
|
}
|
|
416094
416133
|
__name(getCliVersion, "getCliVersion");
|
|
416095
416134
|
|
|
@@ -423861,7 +423900,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
|
|
|
423861
423900
|
|
|
423862
423901
|
// packages/cli/src/generated/git-commit.ts
|
|
423863
423902
|
init_esbuild_shims();
|
|
423864
|
-
var GIT_COMMIT_INFO = "
|
|
423903
|
+
var GIT_COMMIT_INFO = "3cea3ab78";
|
|
423865
423904
|
|
|
423866
423905
|
// packages/cli/src/utils/systemInfo.ts
|
|
423867
423906
|
async function getNpmVersion() {
|
|
@@ -426122,6 +426161,7 @@ import { randomUUID as randomUUID7 } from "node:crypto";
|
|
|
426122
426161
|
|
|
426123
426162
|
// packages/cli/src/acp-integration/session/HistoryReplayer.ts
|
|
426124
426163
|
init_esbuild_shims();
|
|
426164
|
+
init_dist4();
|
|
426125
426165
|
|
|
426126
426166
|
// packages/cli/src/acp-integration/session/emitters/MessageEmitter.ts
|
|
426127
426167
|
init_esbuild_shims();
|
|
@@ -426623,6 +426663,7 @@ var HistoryReplayer = class {
|
|
|
426623
426663
|
async replayContent(content, role, timestamp) {
|
|
426624
426664
|
for (const part of content.parts ?? []) {
|
|
426625
426665
|
if ("text" in part && part.text) {
|
|
426666
|
+
if (isInternalPart(part)) continue;
|
|
426626
426667
|
const isThought = part.thought ?? false;
|
|
426627
426668
|
await this.messageEmitter.emitMessage(
|
|
426628
426669
|
part.text,
|
|
@@ -433039,7 +433080,7 @@ var AtFileProcessor = class {
|
|
|
433039
433080
|
try {
|
|
433040
433081
|
const fileContentParts = await readPathFromWorkspace(pathStr, config2);
|
|
433041
433082
|
if (fileContentParts.length === 0) {
|
|
433042
|
-
const uiMessage = `File '@{${pathStr}}' was ignored by .gitignore or .
|
|
433083
|
+
const uiMessage = `File '@{${pathStr}}' was ignored by .gitignore or .protoignore and was not included in the prompt.`;
|
|
433043
433084
|
context2.ui.addItem(
|
|
433044
433085
|
{ type: "info" /* INFO */, text: uiMessage },
|
|
433045
433086
|
Date.now()
|
|
@@ -434682,6 +434723,7 @@ function partsToContentBlock(parts2) {
|
|
|
434682
434723
|
const blocks = [];
|
|
434683
434724
|
let currentTextBlock = null;
|
|
434684
434725
|
for (const part of parts2) {
|
|
434726
|
+
if (isInternalPart(part)) continue;
|
|
434685
434727
|
let textContent2 = null;
|
|
434686
434728
|
if ("text" in part && typeof part.text === "string") {
|
|
434687
434729
|
textContent2 = part.text;
|
|
@@ -435114,7 +435156,7 @@ async function handleAtCommand({
|
|
|
435114
435156
|
const contentLabelsForDisplay = [];
|
|
435115
435157
|
const ignoredByReason = {
|
|
435116
435158
|
git: [],
|
|
435117
|
-
|
|
435159
|
+
proto: [],
|
|
435118
435160
|
both: []
|
|
435119
435161
|
};
|
|
435120
435162
|
for (const atPathPart of atPathCommandParts) {
|
|
@@ -435137,16 +435179,16 @@ async function handleAtCommand({
|
|
|
435137
435179
|
}
|
|
435138
435180
|
const gitIgnored = respectFileIgnore.respectGitIgnore && fileDiscovery.shouldIgnoreFile(pathName, {
|
|
435139
435181
|
respectGitIgnore: true,
|
|
435140
|
-
|
|
435182
|
+
respectProtoIgnore: false
|
|
435141
435183
|
});
|
|
435142
|
-
const
|
|
435184
|
+
const protoIgnored = respectFileIgnore.respectProtoIgnore && fileDiscovery.shouldIgnoreFile(pathName, {
|
|
435143
435185
|
respectGitIgnore: false,
|
|
435144
|
-
|
|
435186
|
+
respectProtoIgnore: true
|
|
435145
435187
|
});
|
|
435146
|
-
if (gitIgnored ||
|
|
435147
|
-
const reason = gitIgnored &&
|
|
435188
|
+
if (gitIgnored || protoIgnored) {
|
|
435189
|
+
const reason = gitIgnored && protoIgnored ? "both" : gitIgnored ? "git" : "proto";
|
|
435148
435190
|
ignoredByReason[reason].push(pathName);
|
|
435149
|
-
const reasonText = reason === "both" ? "ignored by both git and
|
|
435191
|
+
const reasonText = reason === "both" ? "ignored by both git and proto" : reason === "git" ? "git-ignored" : "proto-ignored";
|
|
435150
435192
|
onDebugMessage(`Path ${pathName} is ${reasonText} and will be skipped.`);
|
|
435151
435193
|
continue;
|
|
435152
435194
|
}
|
|
@@ -435211,14 +435253,14 @@ async function handleAtCommand({
|
|
|
435211
435253
|
}
|
|
435212
435254
|
}
|
|
435213
435255
|
initialQueryText = initialQueryText.trim();
|
|
435214
|
-
const totalIgnored = ignoredByReason["git"].length + ignoredByReason["
|
|
435256
|
+
const totalIgnored = ignoredByReason["git"].length + ignoredByReason["proto"].length + ignoredByReason["both"].length;
|
|
435215
435257
|
if (totalIgnored > 0) {
|
|
435216
435258
|
const messages = [];
|
|
435217
435259
|
if (ignoredByReason["git"].length) {
|
|
435218
435260
|
messages.push(`Git-ignored: ${ignoredByReason["git"].join(", ")}`);
|
|
435219
435261
|
}
|
|
435220
|
-
if (ignoredByReason["
|
|
435221
|
-
messages.push(`
|
|
435262
|
+
if (ignoredByReason["proto"].length) {
|
|
435263
|
+
messages.push(`Proto-ignored: ${ignoredByReason["proto"].join(", ")}`);
|
|
435222
435264
|
}
|
|
435223
435265
|
if (ignoredByReason["both"].length) {
|
|
435224
435266
|
messages.push(`Ignored by both: ${ignoredByReason["both"].join(", ")}`);
|
|
@@ -472835,7 +472877,7 @@ function useAtCompletion(props) {
|
|
|
472835
472877
|
projectRoot: cwd6,
|
|
472836
472878
|
ignoreDirs: [],
|
|
472837
472879
|
useGitignore: config2?.getFileFilteringOptions()?.respectGitIgnore ?? true,
|
|
472838
|
-
useQwenignore: config2?.getFileFilteringOptions()?.
|
|
472880
|
+
useQwenignore: config2?.getFileFilteringOptions()?.respectProtoIgnore ?? true,
|
|
472839
472881
|
cache: true,
|
|
472840
472882
|
cacheTtl: 30,
|
|
472841
472883
|
// 30 seconds
|
|
@@ -477349,12 +477391,14 @@ init_dist4();
|
|
|
477349
477391
|
|
|
477350
477392
|
// packages/cli/src/ui/utils/resumeHistoryUtils.ts
|
|
477351
477393
|
init_esbuild_shims();
|
|
477394
|
+
init_dist4();
|
|
477352
477395
|
import * as path135 from "node:path";
|
|
477353
477396
|
function extractTextFromParts(parts2) {
|
|
477354
477397
|
if (!parts2) return "";
|
|
477355
477398
|
const textParts = [];
|
|
477356
477399
|
for (const part of parts2) {
|
|
477357
477400
|
if ("text" in part && part.text) {
|
|
477401
|
+
if (isInternalPart(part)) continue;
|
|
477358
477402
|
if (!("thought" in part && part.thought)) {
|
|
477359
477403
|
textParts.push(part.text);
|
|
477360
477404
|
}
|
|
@@ -477368,6 +477412,7 @@ function extractThoughtTextFromParts(parts2) {
|
|
|
477368
477412
|
const thoughtParts = [];
|
|
477369
477413
|
for (const part of parts2) {
|
|
477370
477414
|
if ("text" in part && part.text && "thought" in part && part.thought) {
|
|
477415
|
+
if (isInternalPart(part)) continue;
|
|
477371
477416
|
thoughtParts.push(part.text);
|
|
477372
477417
|
}
|
|
477373
477418
|
}
|
|
@@ -482004,7 +482049,7 @@ import { basename as basename31 } from "node:path";
|
|
|
482004
482049
|
// packages/cli/src/utils/windowTitle.ts
|
|
482005
482050
|
init_esbuild_shims();
|
|
482006
482051
|
function computeWindowTitle(folderName) {
|
|
482007
|
-
const title = process.env["CLI_TITLE"] || `
|
|
482052
|
+
const title = process.env["CLI_TITLE"] || `protoCLI - ${folderName}`;
|
|
482008
482053
|
return title.replace(
|
|
482009
482054
|
// eslint-disable-next-line no-control-regex
|
|
482010
482055
|
/[\x00-\x1F\x7F]/g,
|
|
@@ -490707,7 +490752,7 @@ var Session3 = class {
|
|
|
490707
490752
|
if (resp.type === StreamEventType.CHUNK && resp.value.candidates && resp.value.candidates.length > 0) {
|
|
490708
490753
|
const candidate = resp.value.candidates[0];
|
|
490709
490754
|
for (const part of candidate.content?.parts ?? []) {
|
|
490710
|
-
if (!part.text) {
|
|
490755
|
+
if (!part.text || isInternalPart(part)) {
|
|
490711
490756
|
continue;
|
|
490712
490757
|
}
|
|
490713
490758
|
this.messageEmitter.emitMessage(
|
|
@@ -490849,7 +490894,7 @@ var Session3 = class {
|
|
|
490849
490894
|
if (resp.type === StreamEventType.CHUNK && resp.value.candidates && resp.value.candidates.length > 0) {
|
|
490850
490895
|
const candidate = resp.value.candidates[0];
|
|
490851
490896
|
for (const part of candidate.content?.parts ?? []) {
|
|
490852
|
-
if (!part.text) continue;
|
|
490897
|
+
if (!part.text || isInternalPart(part)) continue;
|
|
490853
490898
|
this.messageEmitter.emitMessage(
|
|
490854
490899
|
part.text,
|
|
490855
490900
|
"assistant",
|
|
@@ -491531,7 +491576,7 @@ var QwenAgent = class {
|
|
|
491531
491576
|
async initialize(args2) {
|
|
491532
491577
|
this.clientCapabilities = args2.clientCapabilities;
|
|
491533
491578
|
const authMethods = buildAuthMethods();
|
|
491534
|
-
const version2 = "0.26.
|
|
491579
|
+
const version2 = "0.26.5";
|
|
491535
491580
|
return {
|
|
491536
491581
|
protocolVersion: PROTOCOL_VERSION,
|
|
491537
491582
|
agentInfo: {
|
|
@@ -492454,6 +492499,11 @@ main().catch((error40) => {
|
|
|
492454
492499
|
*
|
|
492455
492500
|
* Exports for the prompt suggestion feature.
|
|
492456
492501
|
*/
|
|
492502
|
+
/**
|
|
492503
|
+
* @license
|
|
492504
|
+
* Copyright 2025 Proto
|
|
492505
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
492506
|
+
*/
|
|
492457
492507
|
/**
|
|
492458
492508
|
* @license
|
|
492459
492509
|
* Copyright 2026 Google LLC
|