@rdmind/rdmind 0.2.8-alpha.0 → 0.2.8-alpha.2
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 +190 -17
- package/package.json +2 -2
package/cli.js
CHANGED
|
@@ -147834,6 +147834,7 @@ var init_vertexAnthropicContentGenerator = __esm({
|
|
|
147834
147834
|
"use strict";
|
|
147835
147835
|
init_esbuild_shims();
|
|
147836
147836
|
init_node();
|
|
147837
|
+
init_modalityDefaults();
|
|
147837
147838
|
init_errorHandler();
|
|
147838
147839
|
init_loggers();
|
|
147839
147840
|
init_types();
|
|
@@ -147907,6 +147908,7 @@ var init_vertexAnthropicContentGenerator = __esm({
|
|
|
147907
147908
|
apiKey;
|
|
147908
147909
|
samplingParams;
|
|
147909
147910
|
reasoning;
|
|
147911
|
+
modalities;
|
|
147910
147912
|
cliConfig;
|
|
147911
147913
|
telemetryService;
|
|
147912
147914
|
errorHandler;
|
|
@@ -147915,6 +147917,7 @@ var init_vertexAnthropicContentGenerator = __esm({
|
|
|
147915
147917
|
this.apiKey = config2.apiKey || "";
|
|
147916
147918
|
this.samplingParams = config2.samplingParams;
|
|
147917
147919
|
this.reasoning = config2.reasoning;
|
|
147920
|
+
this.modalities = config2.modalities ?? defaultModalities(config2.model);
|
|
147918
147921
|
this.cliConfig = cliConfig;
|
|
147919
147922
|
if (!this.apiKey) {
|
|
147920
147923
|
throw new Error("API key is required for Vertex Anthropic");
|
|
@@ -148093,7 +148096,14 @@ var init_vertexAnthropicContentGenerator = __esm({
|
|
|
148093
148096
|
}
|
|
148094
148097
|
if (part.inlineData?.mimeType && part.inlineData?.data) {
|
|
148095
148098
|
const mimeType = part.inlineData.mimeType;
|
|
148099
|
+
const displayName = part.inlineData.displayName || mimeType;
|
|
148096
148100
|
if (this.isSupportedImageMimeType(mimeType)) {
|
|
148101
|
+
if (!this.modalities.image) {
|
|
148102
|
+
return {
|
|
148103
|
+
type: "text",
|
|
148104
|
+
text: this.unsupportedModalityHint("image", displayName)
|
|
148105
|
+
};
|
|
148106
|
+
}
|
|
148097
148107
|
return {
|
|
148098
148108
|
type: "image",
|
|
148099
148109
|
source: {
|
|
@@ -148104,6 +148114,12 @@ var init_vertexAnthropicContentGenerator = __esm({
|
|
|
148104
148114
|
};
|
|
148105
148115
|
}
|
|
148106
148116
|
if (mimeType === "application/pdf") {
|
|
148117
|
+
if (!this.modalities.pdf) {
|
|
148118
|
+
return {
|
|
148119
|
+
type: "text",
|
|
148120
|
+
text: this.unsupportedModalityHint("pdf", displayName)
|
|
148121
|
+
};
|
|
148122
|
+
}
|
|
148107
148123
|
return {
|
|
148108
148124
|
type: "document",
|
|
148109
148125
|
source: {
|
|
@@ -148113,13 +148129,54 @@ var init_vertexAnthropicContentGenerator = __esm({
|
|
|
148113
148129
|
}
|
|
148114
148130
|
};
|
|
148115
148131
|
}
|
|
148116
|
-
|
|
148132
|
+
if (mimeType.startsWith("audio/")) {
|
|
148133
|
+
if (!this.modalities.audio) {
|
|
148134
|
+
return {
|
|
148135
|
+
type: "text",
|
|
148136
|
+
text: this.unsupportedModalityHint("audio", displayName)
|
|
148137
|
+
};
|
|
148138
|
+
}
|
|
148139
|
+
}
|
|
148140
|
+
if (mimeType.startsWith("video/")) {
|
|
148141
|
+
if (!this.modalities.video) {
|
|
148142
|
+
return {
|
|
148143
|
+
type: "text",
|
|
148144
|
+
text: this.unsupportedModalityHint("video", displayName)
|
|
148145
|
+
};
|
|
148146
|
+
}
|
|
148147
|
+
}
|
|
148117
148148
|
return {
|
|
148118
148149
|
type: "text",
|
|
148119
|
-
text: `[Unsupported media type: ${mimeType}${displayName}]`
|
|
148150
|
+
text: `[Unsupported media type: ${mimeType} (${displayName})]`
|
|
148120
148151
|
};
|
|
148121
148152
|
}
|
|
148122
148153
|
if (part.fileData?.mimeType && part.fileData?.fileUri) {
|
|
148154
|
+
const fileDisplayName = part.fileData.displayName || part.fileData.fileUri;
|
|
148155
|
+
const fileMimeType = part.fileData.mimeType;
|
|
148156
|
+
if (fileMimeType.startsWith("image/") && !this.modalities.image) {
|
|
148157
|
+
return {
|
|
148158
|
+
type: "text",
|
|
148159
|
+
text: this.unsupportedModalityHint("image", fileDisplayName)
|
|
148160
|
+
};
|
|
148161
|
+
}
|
|
148162
|
+
if (fileMimeType === "application/pdf" && !this.modalities.pdf) {
|
|
148163
|
+
return {
|
|
148164
|
+
type: "text",
|
|
148165
|
+
text: this.unsupportedModalityHint("pdf", fileDisplayName)
|
|
148166
|
+
};
|
|
148167
|
+
}
|
|
148168
|
+
if (fileMimeType.startsWith("audio/") && !this.modalities.audio) {
|
|
148169
|
+
return {
|
|
148170
|
+
type: "text",
|
|
148171
|
+
text: this.unsupportedModalityHint("audio", fileDisplayName)
|
|
148172
|
+
};
|
|
148173
|
+
}
|
|
148174
|
+
if (fileMimeType.startsWith("video/") && !this.modalities.video) {
|
|
148175
|
+
return {
|
|
148176
|
+
type: "text",
|
|
148177
|
+
text: this.unsupportedModalityHint("video", fileDisplayName)
|
|
148178
|
+
};
|
|
148179
|
+
}
|
|
148123
148180
|
return {
|
|
148124
148181
|
type: "text",
|
|
148125
148182
|
text: `[External file reference: ${part.fileData.fileUri}]`
|
|
@@ -148155,6 +148212,13 @@ var init_vertexAnthropicContentGenerator = __esm({
|
|
|
148155
148212
|
isSupportedImageMimeType(mimeType) {
|
|
148156
148213
|
return mimeType === "image/jpeg" || mimeType === "image/png" || mimeType === "image/gif" || mimeType === "image/webp";
|
|
148157
148214
|
}
|
|
148215
|
+
unsupportedModalityHint(modality, displayName) {
|
|
148216
|
+
if (modality === "pdf") {
|
|
148217
|
+
return `[Unsupported pdf file: "${displayName}". 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:
|
|
148218
|
+
/extensions install https://github.com/anthropics/skills:document-skills]`;
|
|
148219
|
+
}
|
|
148220
|
+
return `[Unsupported ${modality} file: "${displayName}". 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.]`;
|
|
148221
|
+
}
|
|
148158
148222
|
/**
|
|
148159
148223
|
* 将 Gemini 工具定义转换为 Anthropic 格式
|
|
148160
148224
|
* 参考 AnthropicContentConverter.convertGeminiToolsToAnthropic
|
|
@@ -148678,7 +148742,7 @@ function extractReasoningEffort(model) {
|
|
|
148678
148742
|
}
|
|
148679
148743
|
return void 0;
|
|
148680
148744
|
}
|
|
148681
|
-
function buildCodexInput(contents, systemInstruction) {
|
|
148745
|
+
function buildCodexInput(contents, systemInstruction, modalities) {
|
|
148682
148746
|
const messages = [];
|
|
148683
148747
|
if (systemInstruction) {
|
|
148684
148748
|
const text = extractTextFromContent(systemInstruction);
|
|
@@ -148688,7 +148752,7 @@ function buildCodexInput(contents, systemInstruction) {
|
|
|
148688
148752
|
}
|
|
148689
148753
|
const contentsArray = Array.isArray(contents) ? contents : [contents];
|
|
148690
148754
|
for (const content of contentsArray) {
|
|
148691
|
-
const codexMessages = convertContentToCodexMessages(content);
|
|
148755
|
+
const codexMessages = convertContentToCodexMessages(content, modalities);
|
|
148692
148756
|
messages.push(...codexMessages);
|
|
148693
148757
|
}
|
|
148694
148758
|
if (messages.length === 1 && messages[0].role === "user") {
|
|
@@ -148699,7 +148763,7 @@ function buildCodexInput(contents, systemInstruction) {
|
|
|
148699
148763
|
}
|
|
148700
148764
|
return messages;
|
|
148701
148765
|
}
|
|
148702
|
-
function convertContentToCodexMessages(content) {
|
|
148766
|
+
function convertContentToCodexMessages(content, modalities) {
|
|
148703
148767
|
const messages = [];
|
|
148704
148768
|
if (!content) return messages;
|
|
148705
148769
|
if (typeof content === "string") {
|
|
@@ -148742,14 +148806,14 @@ function convertContentToCodexMessages(content) {
|
|
|
148742
148806
|
}
|
|
148743
148807
|
if ("inlineData" in partObj && partObj["inlineData"]) {
|
|
148744
148808
|
const inlineData = partObj["inlineData"];
|
|
148745
|
-
const mediaMsg = convertInlineDataToCodexMessage(inlineData);
|
|
148809
|
+
const mediaMsg = convertInlineDataToCodexMessage(inlineData, modalities);
|
|
148746
148810
|
if (mediaMsg) {
|
|
148747
148811
|
messages.push(mediaMsg);
|
|
148748
148812
|
}
|
|
148749
148813
|
}
|
|
148750
148814
|
if ("fileData" in partObj && partObj["fileData"]) {
|
|
148751
148815
|
const fileData = partObj["fileData"];
|
|
148752
|
-
const mediaMsg = convertFileDataToCodexMessage(fileData);
|
|
148816
|
+
const mediaMsg = convertFileDataToCodexMessage(fileData, modalities);
|
|
148753
148817
|
if (mediaMsg) {
|
|
148754
148818
|
messages.push(mediaMsg);
|
|
148755
148819
|
}
|
|
@@ -148758,10 +148822,18 @@ function convertContentToCodexMessages(content) {
|
|
|
148758
148822
|
}
|
|
148759
148823
|
return messages;
|
|
148760
148824
|
}
|
|
148761
|
-
function convertInlineDataToCodexMessage(inlineData) {
|
|
148825
|
+
function convertInlineDataToCodexMessage(inlineData, modalities) {
|
|
148762
148826
|
const mimeType = inlineData.mimeType;
|
|
148763
148827
|
const dataUrl = `data:${mimeType};base64,${inlineData.data}`;
|
|
148828
|
+
const displayName = inlineData.displayName || mimeType;
|
|
148764
148829
|
if (mimeType.startsWith("image/")) {
|
|
148830
|
+
if (!modalities.image) {
|
|
148831
|
+
return {
|
|
148832
|
+
role: "user",
|
|
148833
|
+
type: "message",
|
|
148834
|
+
content: unsupportedModalityHint("image", displayName)
|
|
148835
|
+
};
|
|
148836
|
+
}
|
|
148765
148837
|
return {
|
|
148766
148838
|
role: "user",
|
|
148767
148839
|
type: "message",
|
|
@@ -148769,6 +148841,13 @@ function convertInlineDataToCodexMessage(inlineData) {
|
|
|
148769
148841
|
};
|
|
148770
148842
|
}
|
|
148771
148843
|
if (mimeType === "application/pdf") {
|
|
148844
|
+
if (!modalities.pdf) {
|
|
148845
|
+
return {
|
|
148846
|
+
role: "user",
|
|
148847
|
+
type: "message",
|
|
148848
|
+
content: unsupportedModalityHint("pdf", displayName)
|
|
148849
|
+
};
|
|
148850
|
+
}
|
|
148772
148851
|
return {
|
|
148773
148852
|
role: "user",
|
|
148774
148853
|
type: "message",
|
|
@@ -148776,22 +148855,53 @@ function convertInlineDataToCodexMessage(inlineData) {
|
|
|
148776
148855
|
};
|
|
148777
148856
|
}
|
|
148778
148857
|
if (mimeType.startsWith("audio/")) {
|
|
148858
|
+
if (!modalities.audio) {
|
|
148859
|
+
return {
|
|
148860
|
+
role: "user",
|
|
148861
|
+
type: "message",
|
|
148862
|
+
content: unsupportedModalityHint("audio", displayName)
|
|
148863
|
+
};
|
|
148864
|
+
}
|
|
148779
148865
|
return {
|
|
148780
148866
|
role: "user",
|
|
148781
148867
|
type: "message",
|
|
148782
148868
|
content: `[Audio file: ${inlineData.displayName || "audio"} (${mimeType})]`
|
|
148783
148869
|
};
|
|
148784
148870
|
}
|
|
148871
|
+
if (mimeType.startsWith("video/")) {
|
|
148872
|
+
if (!modalities.video) {
|
|
148873
|
+
return {
|
|
148874
|
+
role: "user",
|
|
148875
|
+
type: "message",
|
|
148876
|
+
content: unsupportedModalityHint("video", displayName)
|
|
148877
|
+
};
|
|
148878
|
+
}
|
|
148879
|
+
}
|
|
148785
148880
|
return {
|
|
148786
148881
|
role: "user",
|
|
148787
148882
|
type: "message",
|
|
148788
148883
|
content: `[Unsupported file: ${mimeType}${inlineData.displayName ? ` (${inlineData.displayName})` : ""}]`
|
|
148789
148884
|
};
|
|
148790
148885
|
}
|
|
148791
|
-
function
|
|
148886
|
+
function unsupportedModalityHint(modality, displayName) {
|
|
148887
|
+
if (modality === "pdf") {
|
|
148888
|
+
return `[Unsupported pdf file: "${displayName}". 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:
|
|
148889
|
+
/extensions install https://github.com/anthropics/skills:document-skills]`;
|
|
148890
|
+
}
|
|
148891
|
+
return `[Unsupported ${modality} file: "${displayName}". 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.]`;
|
|
148892
|
+
}
|
|
148893
|
+
function convertFileDataToCodexMessage(fileData, modalities) {
|
|
148792
148894
|
const mimeType = fileData.mimeType;
|
|
148793
148895
|
const fileUri = fileData.fileUri;
|
|
148896
|
+
const displayName = fileData.displayName || mimeType;
|
|
148794
148897
|
if (mimeType.startsWith("image/")) {
|
|
148898
|
+
if (!modalities.image) {
|
|
148899
|
+
return {
|
|
148900
|
+
role: "user",
|
|
148901
|
+
type: "message",
|
|
148902
|
+
content: unsupportedModalityHint("image", displayName)
|
|
148903
|
+
};
|
|
148904
|
+
}
|
|
148795
148905
|
return {
|
|
148796
148906
|
role: "user",
|
|
148797
148907
|
type: "message",
|
|
@@ -148799,6 +148909,13 @@ function convertFileDataToCodexMessage(fileData) {
|
|
|
148799
148909
|
};
|
|
148800
148910
|
}
|
|
148801
148911
|
if (mimeType === "application/pdf") {
|
|
148912
|
+
if (!modalities.pdf) {
|
|
148913
|
+
return {
|
|
148914
|
+
role: "user",
|
|
148915
|
+
type: "message",
|
|
148916
|
+
content: unsupportedModalityHint("pdf", displayName)
|
|
148917
|
+
};
|
|
148918
|
+
}
|
|
148802
148919
|
return {
|
|
148803
148920
|
role: "user",
|
|
148804
148921
|
type: "message",
|
|
@@ -148806,12 +148923,28 @@ function convertFileDataToCodexMessage(fileData) {
|
|
|
148806
148923
|
};
|
|
148807
148924
|
}
|
|
148808
148925
|
if (mimeType.startsWith("audio/")) {
|
|
148926
|
+
if (!modalities.audio) {
|
|
148927
|
+
return {
|
|
148928
|
+
role: "user",
|
|
148929
|
+
type: "message",
|
|
148930
|
+
content: unsupportedModalityHint("audio", displayName)
|
|
148931
|
+
};
|
|
148932
|
+
}
|
|
148809
148933
|
return {
|
|
148810
148934
|
role: "user",
|
|
148811
148935
|
type: "message",
|
|
148812
148936
|
content: `[Audio file: ${fileData.displayName || "audio"} (${mimeType})]`
|
|
148813
148937
|
};
|
|
148814
148938
|
}
|
|
148939
|
+
if (mimeType.startsWith("video/")) {
|
|
148940
|
+
if (!modalities.video) {
|
|
148941
|
+
return {
|
|
148942
|
+
role: "user",
|
|
148943
|
+
type: "message",
|
|
148944
|
+
content: unsupportedModalityHint("video", displayName)
|
|
148945
|
+
};
|
|
148946
|
+
}
|
|
148947
|
+
}
|
|
148815
148948
|
return {
|
|
148816
148949
|
role: "user",
|
|
148817
148950
|
type: "message",
|
|
@@ -148954,6 +149087,7 @@ var init_codexContentGenerator = __esm({
|
|
|
148954
149087
|
"use strict";
|
|
148955
149088
|
init_esbuild_shims();
|
|
148956
149089
|
init_node();
|
|
149090
|
+
init_modalityDefaults();
|
|
148957
149091
|
init_errorHandler();
|
|
148958
149092
|
init_loggers();
|
|
148959
149093
|
init_types();
|
|
@@ -148966,6 +149100,7 @@ var init_codexContentGenerator = __esm({
|
|
|
148966
149100
|
apiKey;
|
|
148967
149101
|
samplingParams;
|
|
148968
149102
|
reasoning;
|
|
149103
|
+
modalities;
|
|
148969
149104
|
cliConfig;
|
|
148970
149105
|
errorHandler;
|
|
148971
149106
|
logger;
|
|
@@ -148974,6 +149109,7 @@ var init_codexContentGenerator = __esm({
|
|
|
148974
149109
|
this.apiKey = config2.apiKey || "";
|
|
148975
149110
|
this.samplingParams = config2.samplingParams;
|
|
148976
149111
|
this.reasoning = config2.reasoning;
|
|
149112
|
+
this.modalities = config2.modalities ?? defaultModalities(config2.model);
|
|
148977
149113
|
this.cliConfig = cliConfig;
|
|
148978
149114
|
if (!this.apiKey) {
|
|
148979
149115
|
throw new Error("API key is required for Codex");
|
|
@@ -149064,7 +149200,8 @@ var init_codexContentGenerator = __esm({
|
|
|
149064
149200
|
const reasoningEffort = extractReasoningEffort(request4.model) || (typeof this.reasoning === "object" ? this.reasoning?.effort : "medium");
|
|
149065
149201
|
const input = buildCodexInput(
|
|
149066
149202
|
request4.contents,
|
|
149067
|
-
request4.config?.systemInstruction
|
|
149203
|
+
request4.config?.systemInstruction,
|
|
149204
|
+
this.modalities
|
|
149068
149205
|
);
|
|
149069
149206
|
const codexRequest = {
|
|
149070
149207
|
model,
|
|
@@ -149249,6 +149386,7 @@ var init_codexContentGenerator = __esm({
|
|
|
149249
149386
|
__name(buildCodexInput, "buildCodexInput");
|
|
149250
149387
|
__name(convertContentToCodexMessages, "convertContentToCodexMessages");
|
|
149251
149388
|
__name(convertInlineDataToCodexMessage, "convertInlineDataToCodexMessage");
|
|
149389
|
+
__name(unsupportedModalityHint, "unsupportedModalityHint");
|
|
149252
149390
|
__name(convertFileDataToCodexMessage, "convertFileDataToCodexMessage");
|
|
149253
149391
|
__name(extractTextFromContent, "extractTextFromContent");
|
|
149254
149392
|
__name(convertTools, "convertTools");
|
|
@@ -160844,7 +160982,7 @@ __export(geminiContentGenerator_exports2, {
|
|
|
160844
160982
|
createGeminiContentGenerator: () => createGeminiContentGenerator
|
|
160845
160983
|
});
|
|
160846
160984
|
function createGeminiContentGenerator(config2, gcConfig) {
|
|
160847
|
-
const version2 = "0.2.8-alpha.
|
|
160985
|
+
const version2 = "0.2.8-alpha.2";
|
|
160848
160986
|
const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
|
|
160849
160987
|
const baseHeaders = {
|
|
160850
160988
|
"User-Agent": userAgent2
|
|
@@ -164241,9 +164379,36 @@ function getCoreSystemPrompt(userMemory, model) {
|
|
|
164241
164379
|
}
|
|
164242
164380
|
}
|
|
164243
164381
|
const isGemini3 = model?.toLowerCase().includes("gemini-3-pro-preview") || model?.toLowerCase().includes("gemini-3.1-pro-preview") || model?.toLowerCase().includes("gemini-3-flash-preview");
|
|
164382
|
+
const isGpt53Codex = model?.toLowerCase().includes("gpt-5.3-codex");
|
|
164244
164383
|
const mandatesVariant = isGemini3 ? `
|
|
164245
164384
|
|
|
164246
164385
|
- **Do not call tools in silence:** You must provide to the user very short and concise natural explanation (one sentence) before calling tools.` : ``;
|
|
164386
|
+
const codexFinalAnswerInstructionsVariant = isGpt53Codex ? `
|
|
164387
|
+
|
|
164388
|
+
## Final answer instructions
|
|
164389
|
+
- Balance conciseness to not overwhelm the user with appropriate detail for the request. Do not narrate abstractly; explain what you are doing and why.
|
|
164390
|
+
- Do not begin responses with conversational interjections or meta commentary. Avoid openers such as acknowledgements (\u201CDone \u2014\u201D, \u201CGot it\u201D, \u201CGreat question, \u201D) or framing phrases.
|
|
164391
|
+
- The user does not see command execution outputs. When asked to show the output of a command (e.g. \`git show\`), relay the important details in your answer or summarize the key lines so the user understands the result.
|
|
164392
|
+
- Never tell the user to "save/copy this file", the user is on the same machine and has access to the same files as you have.
|
|
164393
|
+
- If the user asks for a code explanation, structure your answer with code references.
|
|
164394
|
+
- When given a simple task, just provide the outcome in a short answer without strong formatting.
|
|
164395
|
+
- When you make big or complex changes, state the solution first, then walk the user through what you did and why.
|
|
164396
|
+
- For casual chit-chat, just chat.
|
|
164397
|
+
- If you weren't able to do something, for example run tests, tell the user.
|
|
164398
|
+
- If there are natural next steps the user may want to take, suggest them at the end of your response. Do not make suggestions if there are no natural next steps. When suggesting multiple options, use numeric lists for the suggestions so the user can quickly respond with a single number.` : ``;
|
|
164399
|
+
const codexIntermediaryUpdatesVariant = isGpt53Codex ? `
|
|
164400
|
+
|
|
164401
|
+
## Intermediary updates
|
|
164402
|
+
- User updates are short updates while you are working, they are NOT final answers.
|
|
164403
|
+
- You use 1-2 sentence user updates to communicated progress and new information to the user as you are doing work.
|
|
164404
|
+
- Do not begin responses with conversational interjections or meta commentary. Avoid openers such as acknowledgements (\u201CDone \u2014\u201D, \u201CGot it\u201D, \u201CGreat question, \u201D) or framing phrases.
|
|
164405
|
+
- You provide user updates frequently, every 20s.
|
|
164406
|
+
- Before exploring or doing substantial work, you start with a user update acknowledging the request and explaining your first step. You should include your understanding of the user request and explain what you will do. Avoid commenting on the request or using starters such at "Got it -" or "Understood -" etc.
|
|
164407
|
+
- When exploring, e.g. searching, reading files you provide user updates as you go, every 20s, explaining what context you are gathering and what you've learned. Vary your sentence structure when providing these updates to avoid sounding repetitive - in particular, don't start each sentence the same way.
|
|
164408
|
+
- After you have sufficient context, and the work is substantial you provide a longer plan (this is the only user update that may be longer than 2 sentences and can contain formatting).
|
|
164409
|
+
- Before performing file edits of any kind, you provide updates explaining what edits you are making.
|
|
164410
|
+
- As you are thinking, you very frequently provide updates even if not taking any actions, informing the user of your progress. You interrupt your thinking and send multiple updates in a row if thinking for more than 100 words.
|
|
164411
|
+
- Tone of your updates MUST match your personality.` : ``;
|
|
164247
164412
|
const basePrompt = systemMdEnabled ? fs23.readFileSync(systemMdPath, "utf8") : `
|
|
164248
164413
|
You are RDMind, an interactive CLI agent, specializing in software engineering tasks. Your primary goal is to help users safely and efficiently, adhering strictly to the following instructions and utilizing your available tools.
|
|
164249
164414
|
|
|
@@ -164379,6 +164544,9 @@ IMPORTANT: Always use the ${ToolNames.TODO_WRITE} tool to plan and track tasks t
|
|
|
164379
164544
|
- **Help Command:** The user can use '/help' to display help information.
|
|
164380
164545
|
- **Feedback:** To report a bug or provide feedback, please use the /bug command.
|
|
164381
164546
|
|
|
164547
|
+
${codexFinalAnswerInstructionsVariant}
|
|
164548
|
+
${codexIntermediaryUpdatesVariant}
|
|
164549
|
+
|
|
164382
164550
|
${function() {
|
|
164383
164551
|
const isSandboxExec = process9.env["SANDBOX"] === "sandbox-exec";
|
|
164384
164552
|
const isGenericSandbox = !!process9.env["SANDBOX"];
|
|
@@ -251093,7 +251261,7 @@ function resolveModelConfig(input) {
|
|
|
251093
251261
|
settings?.generationConfig,
|
|
251094
251262
|
modelProvider?.generationConfig,
|
|
251095
251263
|
authType,
|
|
251096
|
-
modelProvider?.id,
|
|
251264
|
+
modelProvider?.id ?? modelResult.value,
|
|
251097
251265
|
sources
|
|
251098
251266
|
);
|
|
251099
251267
|
const config2 = {
|
|
@@ -251212,6 +251380,10 @@ function resolveGenerationConfig(settingsConfig, modelProviderConfig, authType,
|
|
|
251212
251380
|
sources[field] = settingsSource(`model.generationConfig.${field}`);
|
|
251213
251381
|
}
|
|
251214
251382
|
}
|
|
251383
|
+
if (result.modalities === void 0 && modelId) {
|
|
251384
|
+
result.modalities = defaultModalities(modelId);
|
|
251385
|
+
sources["modalities"] = computedSource("auto-detected from model");
|
|
251386
|
+
}
|
|
251215
251387
|
return result;
|
|
251216
251388
|
}
|
|
251217
251389
|
var init_modelConfigResolver = __esm({
|
|
@@ -251223,6 +251395,7 @@ var init_modelConfigResolver = __esm({
|
|
|
251223
251395
|
init_apiKeyEncryption();
|
|
251224
251396
|
init_configResolver();
|
|
251225
251397
|
init_constants3();
|
|
251398
|
+
init_modalityDefaults();
|
|
251226
251399
|
init_contentGenerator();
|
|
251227
251400
|
__name(resolveModelConfig, "resolveModelConfig");
|
|
251228
251401
|
__name(resolveQwenOAuthConfig, "resolveQwenOAuthConfig");
|
|
@@ -361620,7 +361793,7 @@ __name(getPackageJson, "getPackageJson");
|
|
|
361620
361793
|
// packages/cli/src/utils/version.ts
|
|
361621
361794
|
async function getCliVersion() {
|
|
361622
361795
|
const pkgJson = await getPackageJson();
|
|
361623
|
-
return "0.2.8-alpha.
|
|
361796
|
+
return "0.2.8-alpha.2";
|
|
361624
361797
|
}
|
|
361625
361798
|
__name(getCliVersion, "getCliVersion");
|
|
361626
361799
|
|
|
@@ -369369,7 +369542,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
|
|
|
369369
369542
|
|
|
369370
369543
|
// packages/cli/src/generated/git-commit.ts
|
|
369371
369544
|
init_esbuild_shims();
|
|
369372
|
-
var GIT_COMMIT_INFO = "
|
|
369545
|
+
var GIT_COMMIT_INFO = "e33c3c8f2";
|
|
369373
369546
|
|
|
369374
369547
|
// packages/cli/src/utils/systemInfo.ts
|
|
369375
369548
|
async function getNpmVersion() {
|
|
@@ -402424,7 +402597,7 @@ function useTextBuffer({
|
|
|
402424
402597
|
const openInExternalEditor = (0, import_react46.useCallback)(
|
|
402425
402598
|
async (opts = {}) => {
|
|
402426
402599
|
const editor = opts.editor ?? process.env["VISUAL"] ?? process.env["EDITOR"] ?? (process.platform === "win32" ? "notepad" : "vi");
|
|
402427
|
-
const tmpDir = fs100.mkdtempSync(pathMod.join(os38.tmpdir(), "
|
|
402600
|
+
const tmpDir = fs100.mkdtempSync(pathMod.join(os38.tmpdir(), "rdmind-edit-"));
|
|
402428
402601
|
const filePath = pathMod.join(tmpDir, "buffer.txt");
|
|
402429
402602
|
fs100.writeFileSync(filePath, text, "utf8");
|
|
402430
402603
|
dispatch({ type: "create_undo_snapshot" });
|
|
@@ -407680,7 +407853,7 @@ function getAuthDisplayType(authType, baseUrl, apiKeyEnvKey) {
|
|
|
407680
407853
|
}
|
|
407681
407854
|
switch (authType) {
|
|
407682
407855
|
case "xhs-sso" /* XHS_SSO */:
|
|
407683
|
-
return "
|
|
407856
|
+
return "xhs-sso" /* XHS_SSO */;
|
|
407684
407857
|
case "qwen-oauth" /* QWEN_OAUTH */:
|
|
407685
407858
|
return "Qwen OAuth" /* QWEN_OAUTH */;
|
|
407686
407859
|
default:
|
|
@@ -429288,7 +429461,7 @@ var GeminiAgent = class {
|
|
|
429288
429461
|
name: APPROVAL_MODE_INFO[mode].name,
|
|
429289
429462
|
description: APPROVAL_MODE_INFO[mode].description
|
|
429290
429463
|
}));
|
|
429291
|
-
const version2 = "0.2.8-alpha.
|
|
429464
|
+
const version2 = "0.2.8-alpha.2";
|
|
429292
429465
|
return {
|
|
429293
429466
|
protocolVersion: PROTOCOL_VERSION,
|
|
429294
429467
|
agentInfo: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rdmind/rdmind",
|
|
3
|
-
"version": "0.2.8-alpha.
|
|
3
|
+
"version": "0.2.8-alpha.2",
|
|
4
4
|
"description": "RDMind - AI-powered coding assistant",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "cli.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"locales"
|
|
20
20
|
],
|
|
21
21
|
"config": {
|
|
22
|
-
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.2.8-alpha.
|
|
22
|
+
"sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.2.8-alpha.2"
|
|
23
23
|
},
|
|
24
24
|
"publishConfig": {
|
|
25
25
|
"access": "public"
|