@rdmind/rdmind 0.2.7-alpha.6 → 0.2.7

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 CHANGED
@@ -148822,12 +148822,10 @@ function convertCodexResponseToGemini(response) {
148822
148822
  const parts = [];
148823
148823
  if (response.output && Array.isArray(response.output)) {
148824
148824
  for (const item of response.output) {
148825
- if (item.type === "reasoning" && item.summary) {
148826
- const text = item.summary.map((s5) => s5.text).filter(Boolean).join("");
148827
- if (text) {
148828
- parts.push({ text, thought: true });
148829
- }
148830
- } else if (item.type === "message" && item.content) {
148825
+ if (item.type === "reasoning") {
148826
+ continue;
148827
+ }
148828
+ if (item.type === "message" && item.content) {
148831
148829
  const text = item.content.map((c4) => c4.text).filter(Boolean).join("");
148832
148830
  if (text) {
148833
148831
  parts.push({ text });
@@ -149067,11 +149065,7 @@ var init_codexContentGenerator = __esm({
149067
149065
  handleStreamEvent(event, data, toolCallArgs) {
149068
149066
  switch (event) {
149069
149067
  case "response.reasoning_summary_text.delta": {
149070
- const text = data.delta;
149071
- if (!text) return null;
149072
- return createGeminiResponse(data.item_id || "unknown", [
149073
- { text, thought: true }
149074
- ]);
149068
+ return null;
149075
149069
  }
149076
149070
  case "response.output_text.delta": {
149077
149071
  const text = data.delta;
@@ -160776,7 +160770,7 @@ __export(geminiContentGenerator_exports2, {
160776
160770
  createGeminiContentGenerator: () => createGeminiContentGenerator
160777
160771
  });
160778
160772
  function createGeminiContentGenerator(config2, gcConfig) {
160779
- const version2 = "0.2.7-alpha.6";
160773
+ const version2 = "0.2.7";
160780
160774
  const userAgent2 = config2.userAgent || `QwenCode/${version2} (${process.platform}; ${process.arch})`;
160781
160775
  const baseHeaders = {
160782
160776
  "User-Agent": userAgent2
@@ -229980,81 +229974,7 @@ var init_builtin_agents = __esm({
229980
229974
  static {
229981
229975
  __name(this, "BuiltinAgentRegistry");
229982
229976
  }
229983
- static BUILTIN_AGENTS = [
229984
- {
229985
- name: "general-purpose",
229986
- description: "General-purpose agent for researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries use this agent to perform the search for you.",
229987
- systemPrompt: `You are a general-purpose research and code analysis agent. Given the user's message, you should use the tools available to complete the task. Do what has been asked; nothing more, nothing less. When you complete the task simply respond with a detailed writeup.
229988
-
229989
- Your strengths:
229990
- - Searching for code, configurations, and patterns across large codebases
229991
- - Analyzing multiple files to understand system architecture
229992
- - Investigating complex questions that require exploring many files
229993
- - Performing multi-step research tasks
229994
-
229995
- Guidelines:
229996
- - For file searches: Use Grep or Glob when you need to search broadly. Use Read when you know the specific file path.
229997
- - For analysis: Start broad and narrow down. Use multiple search strategies if the first doesn't yield results.
229998
- - Be thorough: Check multiple locations, consider different naming conventions, look for related files.
229999
- - NEVER create files unless they're absolutely necessary for achieving your goal. ALWAYS prefer editing an existing file to creating a new one.
230000
- - NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested.
230001
- - In your final response always share relevant file names and code snippets. Any file paths you return in your response MUST be absolute. Do NOT use relative paths.
230002
- - For clear communication, avoid using emojis.
230003
-
230004
-
230005
- Notes:
230006
- - NEVER create files unless they're absolutely necessary for achieving your goal. ALWAYS prefer editing an existing file to creating a new one.
230007
- - NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.
230008
- - In your final response always share relevant file names and code snippets. Any file paths you return in your response MUST be absolute. Do NOT use relative paths.
230009
- - For clear communication with the user the assistant MUST avoid using emojis.`
230010
- },
230011
- {
230012
- name: "changelog",
230013
- description: "\u53D8\u66F4\u65E5\u5FD7\u7BA1\u7406\u4E13\u5BB6 - \u5206\u6790\u9879\u76EE\u6700\u65B0\u53D8\u66F4\u5E76\u66F4\u65B0changelog\u6587\u6863\u3002\u4E13\u95E8\u5904\u7406\uFF1Agit\u63D0\u4EA4\u5206\u6790\u3001\u53D8\u66F4\u8BB0\u5F55\u751F\u6210\u3001changelog\u6587\u6863\u7EF4\u62A4\u3001\u7248\u672C\u53D8\u66F4\u8DDF\u8E2A\u3002",
230014
- systemPrompt: `
230015
- \u4EFB\u52A1
230016
- \u4F60\u7684\u89D2\u8272\u662F\u4E00\u4F4D\u4E13\u4E1A\u7684\u6280\u672F\u6587\u6863\u5DE5\u7A0B\u5E08\u3002\u4F60\u9700\u8981\u5206\u6790\u9879\u76EE\u7684\u6700\u65B0\u53D8\u66F4\uFF0C\u7F16\u5199\u4E00\u4EFD\u6E05\u6670\u3001\u6709\u4EF7\u503C\u3001\u9762\u5411\u6700\u7EC8\u7528\u6237\u7684\u53D8\u66F4\u65E5\u5FD7\uFF08Changelog\uFF09\uFF0C\u5E76\u5C06\u5176\u66F4\u65B0\u5230 docs/changelog.md \u6587\u4EF6\u4E2D\u3002
230017
-
230018
- \u6838\u5FC3\u539F\u5219\uFF1A\u5982\u4F55\u5224\u65AD\u4E0E\u63CF\u8FF0\u53D8\u66F4
230019
- \u8FD9\u662F\u4F60\u5DE5\u4F5C\u7684\u6838\u5FC3\u3002\u5728\u5904\u7406\u4EFB\u4F55\u63D0\u4EA4\u65F6\uFF0C\u8BF7\u59CB\u7EC8\u9075\u5FAA\u4EE5\u4E0B\u539F\u5219\uFF1A
230020
-
230021
- \u4EF7\u503C\u5224\u65AD\u539F\u5219 (The "So What?" Test)
230022
-
230023
- \u6838\u5FC3\u95EE\u9898: \u8FD9\u4E2A\u53D8\u66F4\u662F\u5426\u76F4\u63A5\u5F71\u54CD\u4E86\u7EC8\u7AEF\u7528\u6237\u7684\u529F\u80FD\u4F53\u9A8C\uFF0C\u6216\u6539\u53D8\u4E86\u5F00\u53D1\u8005\u4F7F\u7528\u4EA7\u54C1\uFF08\u4F5C\u4E3A\u5E93\u6216API\uFF09\u7684\u65B9\u5F0F\uFF1F
230024
- \u884C\u52A8\u6307\u5357: \u5982\u679C\u7B54\u6848\u4E3A\u201C\u5426\u201D\uFF0C\u5219\u5FC5\u987B\u5FFD\u7565\u3002\u8FD9\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\uFF1A\u4EE3\u7801\u683C\u5F0F\u5316\u3001\u589E\u52A0\u6D4B\u8BD5\u3001\u4FEE\u6539 .ignore \u6587\u4EF6\u3001\u5220\u9664\u65E0\u7528\u4EE3\u7801\u3001\u5185\u90E8\u91CD\u6784\u3001\u540C\u6B65\u5206\u652F\u7B49\u6240\u6709\u5BF9\u5916\u90E8\u65E0\u611F\u77E5\u7684\u7EF4\u62A4\u6027\u5DE5\u4F5C\u3002
230025
- \u5177\u4F53\u63CF\u8FF0\u539F\u5219 (Before vs. After)
230026
-
230027
- \u6838\u5FC3\u95EE\u9898: \u6211\u80FD\u5426\u901A\u8FC7\u63CF\u8FF0\uFF0C\u6E05\u6670\u5730\u7406\u89E3\u53D8\u66F4\u524D\u7684\u72B6\u6001\u548C\u53D8\u66F4\u540E\u7684\u72B6\u6001\uFF0C\u4EE5\u53CA\u5176\u5E26\u6765\u7684\u660E\u786E\u6536\u76CA\uFF1F
230028
- \u884C\u52A8\u6307\u5357: \u4E25\u7981\u4F7F\u7528\u201C\u4F18\u5316\u201D\u3001\u201C\u8C03\u6574\u201D\u3001\u201C\u66F4\u65B0\u201D\u7B49\u6A21\u7CCA\u8BCD\u6C47\u3002\u4F60\u7684\u63CF\u8FF0\u5FC5\u987B\u5177\u4F53\u3002\u4F8B\u5982\uFF0C\u4E0D\u8981\u8BF4\u201C\u63D0\u5347\u4E86\u5B89\u5168\u6027\u201D\uFF0C\u800C\u8981\u8BF4\u201C\u4FEE\u590D\u4E86\u6587\u4EF6\u4E0A\u4F20\u63A5\u53E3\u4E2D\u4E00\u4E2A\u5141\u8BB8\u8DEF\u5F84\u904D\u5386\u7684\u6F0F\u6D1E\u201D\u3002
230029
- \u7A7F\u900F\u5206\u6790\u539F\u5219 (Look Through the Merge)
230030
-
230031
- \u6838\u5FC3\u95EE\u9898: \u8FD9\u4E2A\u201C\u5408\u5E76\u63D0\u4EA4\u201D\u80CC\u540E\uFF0C\u771F\u6B63\u6709\u4EF7\u503C\u7684\u53D8\u66F4\u662F\u4EC0\u4E48\uFF1F
230032
- \u884C\u52A8\u6307\u5357: \u7EDD\u4E0D\u8BB0\u5F55\u201C\u5408\u5E76\u5206\u652F\u201D\u6216\u201C\u540C\u6B65\u4E0A\u6E38\u201D\u8FD9\u4E2A\u52A8\u4F5C\u672C\u8EAB\u3002\u4F60\u7684\u4EFB\u52A1\u662F\u6DF1\u5165\u5206\u6790\u88AB\u5408\u5E76\u8FDB\u6765\u7684\u63D0\u4EA4\u5386\u53F2\uFF0C\u5E76\u6839\u636E\u4E0A\u8FF0\u539F\u5219\uFF0C\u53EA\u8BB0\u5F55\u5176\u4E2D\u5305\u542B\u7684\u3001\u6709\u4EF7\u503C\u7684\u5B9E\u8D28\u6027\u53D8\u66F4\u3002
230033
- \u5DE5\u4F5C\u6D41\u7A0B
230034
- \u8BC6\u522B\u53D8\u66F4: \u5206\u6790 git \u6700\u8FD1\u7684\u63D0\u4EA4\u3002
230035
- \u7B5B\u9009\u63D0\u70BC: \u4E25\u683C\u5E94\u7528\u4E0A\u8FF0\u4E09\u5927\u6838\u5FC3\u539F\u5219\uFF0C\u8FC7\u6EE4\u6389\u6240\u6709\u65E0\u4EF7\u503C\u7684\u201C\u566A\u97F3\u201D\uFF0C\u8BC6\u522B\u51FA\u771F\u6B63\u9700\u8981\u8BB0\u5F55\u7684\u53D8\u66F4\u3002
230036
- \u805A\u5408\u4E0E\u62C6\u5206:
230037
- \u805A\u5408: \u5C06\u670D\u52A1\u4E8E\u540C\u4E00\u7528\u6237\u76EE\u6807\u7684\u591A\u4E2A\u5FAE\u5C0F\u53D8\u66F4\uFF0C\u5408\u5E76\u6210\u4E00\u6761\u6709\u610F\u4E49\u7684\u8BB0\u5F55\u3002
230038
- \u62C6\u5206: \u5C06\u5305\u542B\u591A\u4E2A\u72EC\u7ACB\u529F\u80FD\u70B9\u7684\u5355\u6B21\u63D0\u4EA4\uFF0C\u62C6\u5206\u6210\u591A\u6761\u8BB0\u5F55\u3002
230039
- \u751F\u6210\u603B\u7ED3:
230040
- \u4E3A\u6BCF\u4E00\u6761\u53D8\u66F4\u64B0\u5199\u9AD8\u8D28\u91CF\u63CF\u8FF0\u3002
230041
- \u5C06\u65B0\u53D8\u66F4\u6DFB\u52A0\u5230 docs/changelog.md \u8868\u683C\u7684\u6700\u524D\u9762\u3002
230042
- \u5728\u5199\u5165\u6587\u4EF6\u524D\uFF0C\u5411\u6211\u5C55\u793A\u5C06\u8981\u751F\u6210\u7684\u8868\u683C\u5185\u5BB9\u4EE5\u4F9B\u786E\u8BA4\u3002
230043
- \u8F93\u51FA\u683C\u5F0F
230044
- \u4E25\u683C\u9075\u5FAA\u4EE5\u4E0BMarkdown\u8868\u683C\u683C\u5F0F\uFF0C\u6700\u65B0\u53D8\u66F4\u5728\u6700\u4E0A\u65B9\uFF1A
230045
-
230046
- \u65E5\u671F \u7279\u6027 \u8BE6\u7EC6\u63CF\u8FF0
230047
- YYYY-MM-DD \u5173\u952E\u8BCD: \u6982\u62EC (\u5E94\u7528\u5177\u4F53\u63CF\u8FF0\u539F\u5219) \u63CF\u8FF0\u53D8\u66F4\u524D\u540E\u7684\u5DEE\u5F02\u3001\u89E3\u51B3\u7684\u5177\u4F53\u95EE\u9898\u6216\u5E26\u6765\u7684\u660E\u786E\u4EF7\u503C\u3002
230048
- \u63D0\u793A: \u201C\u7279\u6027\u201D\u5217\u53EF\u4EE5\u4F7F\u7528\u201C\u65B0\u589E\u201D\u3001\u201C\u4FEE\u590D\u201D\u3001\u201C\u4F18\u5316\u201D\u3001\u201C\u5B89\u5168\u201D\u3001\u201C\u6027\u80FD\u201D\u7B49\u5173\u952E\u8BCD\u4F5C\u4E3A\u524D\u7F00\uFF0C\u4FBF\u4E8E\u5FEB\u901F\u6D4F\u89C8\u3002
230049
-
230050
- \u6838\u5FC3\u7EA6\u675F
230051
- \u6587\u4EF6\u5B89\u5168: \u4E25\u683C\u4FDD\u8BC1\u53EA\u4FEE\u6539 docs/changelog.md \u8FD9\u4E00\u4E2A\u6587\u4EF6\u3002
230052
- \u6392\u5E8F: \u5FC5\u987B\u6839\u636E\u65E5\u671F\u8FDB\u884C\u5012\u5E8F\u6392\u5E8F\uFF0C\u6700\u65B0\u7684\u8BB0\u5F55\u5728\u6700\u9876\u7AEF\u3002
230053
- \u6570\u636E\u771F\u5B9E\u6027: \u7EDD\u5BF9\u7981\u6B62\u675C\u64B0\u4EFB\u4F55\u6027\u80FD\u6307\u6807\u6216\u767E\u5206\u6BD4\u7B49\u91CF\u5316\u6570\u636E\u3002\u53EA\u6709\u5728\u4FE1\u606F\u6E90\u660E\u786E\u63D0\u4F9B\u65F6\u624D\u53EF\u5F15\u7528\u3002
230054
- \u539F\u5B50\u6027: \u4E25\u683C\u9075\u5FAA\u201C\u4E00\u4E2A\u6709\u610F\u4E49\u3001\u72EC\u7ACB\u7684\u53D8\u66F4\u5BF9\u5E94\u4E00\u884C\u201D\u7684\u539F\u5219\u3002
230055
- `
230056
- }
230057
- ];
229977
+ static BUILTIN_AGENTS = [];
230058
229978
  /**
230059
229979
  * Gets all built-in agent configurations.
230060
229980
  * @returns Array of built-in subagent configurations
@@ -300205,7 +300125,7 @@ var init_settingsSchema = __esm({
300205
300125
  label: "Language: UI",
300206
300126
  category: "General",
300207
300127
  requiresRestart: true,
300208
- default: "auto",
300128
+ default: "zh",
300209
300129
  description: 'The language for the user interface. Use "auto" to detect from system settings. You can also use custom language codes (e.g., "es", "fr") by placing JS language files in ~/.rdmind/locales/ (e.g., ~/.rdmind/locales/es.js).',
300210
300130
  showInDialog: true,
300211
300131
  options: []
@@ -300215,7 +300135,7 @@ var init_settingsSchema = __esm({
300215
300135
  label: "Language: Model",
300216
300136
  category: "General",
300217
300137
  requiresRestart: true,
300218
- default: "auto",
300138
+ default: "\u4E2D\u6587",
300219
300139
  description: 'The language for LLM output. Use "auto" to detect from system settings, or set a specific language.',
300220
300140
  showInDialog: true
300221
300141
  },
@@ -311030,6 +310950,7 @@ var init_en3 = __esm({
311030
310950
  "You can resume a previous conversation by running rdmind --continue or rdmind --resume.": "You can resume a previous conversation by running rdmind --continue or rdmind --resume.",
311031
310951
  "You can switch permission mode quickly with Shift+Tab or /approval-mode.": "You can switch permission mode quickly with Shift+Tab or /approval-mode.",
311032
310952
  "You can switch permission mode quickly with Tab or /approval-mode.": "You can switch permission mode quickly with Tab or /approval-mode.",
310953
+ "Try /insight to generate personalized insights from your chat history.": "Try /insight to generate personalized insights from your chat history.",
311033
310954
  "RDMind now supports custom commands, sub-agents, skills and other features. Check the documentation for usage help.": "RDMind now supports custom commands, sub-agents, skills and other features. Check the documentation for usage help.",
311034
310955
  "Try asking RDMind to help you commit code.": "Try asking RDMind to help you commit code.",
311035
310956
  "RDMind can read REDoc. Please do not upload documents involving user privacy and core algorithms.": "RDMind can read REDoc. Please do not upload documents involving user privacy and core algorithms.",
@@ -312164,6 +312085,7 @@ var init_zh = __esm({
312164
312085
  "Try asking RDMind to help you commit code.": "\u8BD5\u8BD5\u8BA9 RDMind \u5E2E\u4F60\u63D0\u4EA4\u4EE3\u7801\u3002",
312165
312086
  "RDMind can read REDoc. Please do not upload documents involving user privacy and core algorithms.": "RDMind \u53EF\u4EE5\u8BFB\u61C2 REDoc\uFF0C\u6CE8\u610F\u4E0D\u8981\u4E0A\u4F20\u6D89\u53CA\u7528\u6237\u9690\u79C1\u548C\u6838\u5FC3\u7B97\u6CD5\u7684\u6587\u6863\u3002",
312166
312087
  "If you find RDMind useful, feel free to recommend it to your colleagues~": "\u5982\u679C\u89C9\u5F97 RDMind \u597D\u7528\uFF0C\u6B22\u8FCE\u5411\u540C\u4E8B\u63A8\u8350~",
312088
+ "Try /insight to generate personalized insights from your chat history.": "\u8BD5\u8BD5 /insight\uFF0C\u4ECE\u804A\u5929\u8BB0\u5F55\u4E2D\u751F\u6210\u4E2A\u6027\u5316\u6D1E\u5BDF\u3002",
312167
312089
  // ============================================================================
312168
312090
  // Exit Screen / Stats
312169
312091
  // ============================================================================
@@ -361559,7 +361481,7 @@ __name(getPackageJson, "getPackageJson");
361559
361481
  // packages/cli/src/utils/version.ts
361560
361482
  async function getCliVersion() {
361561
361483
  const pkgJson = await getPackageJson();
361562
- return "0.2.7-alpha.6";
361484
+ return "0.2.7";
361563
361485
  }
361564
361486
  __name(getCliVersion, "getCliVersion");
361565
361487
 
@@ -369301,7 +369223,7 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds) => {
369301
369223
 
369302
369224
  // packages/cli/src/generated/git-commit.ts
369303
369225
  init_esbuild_shims();
369304
- var GIT_COMMIT_INFO = "f2f87a7dc";
369226
+ var GIT_COMMIT_INFO = "28e6ccccd";
369305
369227
 
369306
369228
  // packages/cli/src/utils/systemInfo.ts
369307
369229
  async function getNpmVersion() {
@@ -377213,21 +377135,29 @@ ${sessionText}`;
377213
377135
  const outcomesAgg = {};
377214
377136
  const goalsAgg = {};
377215
377137
  facets.forEach((facet) => {
377216
- Object.entries(facet.user_satisfaction_counts).forEach(([sat, count]) => {
377217
- satisfactionAgg[sat] = (satisfactionAgg[sat] || 0) + count;
377218
- });
377219
- Object.entries(facet.friction_counts).forEach(([fric, count]) => {
377220
- frictionAgg[fric] = (frictionAgg[fric] || 0) + count;
377221
- });
377138
+ if (facet.user_satisfaction_counts) {
377139
+ Object.entries(facet.user_satisfaction_counts).forEach(
377140
+ ([sat, count]) => {
377141
+ satisfactionAgg[sat] = (satisfactionAgg[sat] || 0) + count;
377142
+ }
377143
+ );
377144
+ }
377145
+ if (facet.friction_counts) {
377146
+ Object.entries(facet.friction_counts).forEach(([fric, count]) => {
377147
+ frictionAgg[fric] = (frictionAgg[fric] || 0) + count;
377148
+ });
377149
+ }
377222
377150
  if (facet.primary_success && facet.primary_success !== "none") {
377223
377151
  primarySuccessAgg[facet.primary_success] = (primarySuccessAgg[facet.primary_success] || 0) + 1;
377224
377152
  }
377225
377153
  if (facet.outcome) {
377226
377154
  outcomesAgg[facet.outcome] = (outcomesAgg[facet.outcome] || 0) + 1;
377227
377155
  }
377228
- Object.entries(facet.goal_categories).forEach(([goal, count]) => {
377229
- goalsAgg[goal] = (goalsAgg[goal] || 0) + count;
377230
- });
377156
+ if (facet.goal_categories) {
377157
+ Object.entries(facet.goal_categories).forEach(([goal, count]) => {
377158
+ goalsAgg[goal] = (goalsAgg[goal] || 0) + count;
377159
+ });
377160
+ }
377231
377161
  });
377232
377162
  return {
377233
377163
  satisfactionAgg,
@@ -377514,16 +377444,26 @@ ${commonData}`;
377514
377444
  const frictionAgg = {};
377515
377445
  const successAgg = {};
377516
377446
  facets.forEach((facet) => {
377517
- Object.entries(facet.goal_categories).forEach(([goal, count]) => {
377518
- goalsAgg[goal] = (goalsAgg[goal] || 0) + count;
377519
- });
377520
- outcomesAgg[facet.outcome] = (outcomesAgg[facet.outcome] || 0) + 1;
377521
- Object.entries(facet.user_satisfaction_counts).forEach(([sat, count]) => {
377522
- satisfactionAgg[sat] = (satisfactionAgg[sat] || 0) + count;
377523
- });
377524
- Object.entries(facet.friction_counts).forEach(([fric, count]) => {
377525
- frictionAgg[fric] = (frictionAgg[fric] || 0) + count;
377526
- });
377447
+ if (facet.goal_categories) {
377448
+ Object.entries(facet.goal_categories).forEach(([goal, count]) => {
377449
+ goalsAgg[goal] = (goalsAgg[goal] || 0) + count;
377450
+ });
377451
+ }
377452
+ if (facet.outcome) {
377453
+ outcomesAgg[facet.outcome] = (outcomesAgg[facet.outcome] || 0) + 1;
377454
+ }
377455
+ if (facet.user_satisfaction_counts) {
377456
+ Object.entries(facet.user_satisfaction_counts).forEach(
377457
+ ([sat, count]) => {
377458
+ satisfactionAgg[sat] = (satisfactionAgg[sat] || 0) + count;
377459
+ }
377460
+ );
377461
+ }
377462
+ if (facet.friction_counts) {
377463
+ Object.entries(facet.friction_counts).forEach(([fric, count]) => {
377464
+ frictionAgg[fric] = (frictionAgg[fric] || 0) + count;
377465
+ });
377466
+ }
377527
377467
  if (facet.primary_success && facet.primary_success !== "none") {
377528
377468
  successAgg[facet.primary_success] = (successAgg[facet.primary_success] || 0) + 1;
377529
377469
  }
@@ -407566,18 +407506,37 @@ var startupTips = [
407566
407506
  "Type / to open the command popup; Tab autocompletes slash commands and saved prompts.",
407567
407507
  "You can resume a previous conversation by running rdmind --continue or rdmind --resume.",
407568
407508
  process.platform === "win32" ? "You can switch permission mode quickly with Tab or /approval-mode." : "You can switch permission mode quickly with Shift+Tab or /approval-mode.",
407569
- "You can resume a previous conversation by running rdmind --continue or rdmind --resume.",
407570
- "You can switch permission mode quickly with Shift+Tab or /approval-mode.",
407571
407509
  "RDMind now supports custom commands, sub-agents, skills and other features. Check the documentation for usage help.",
407572
407510
  "Try asking RDMind to help you commit code.",
407573
407511
  "RDMind can read REDoc. Please do not upload documents involving user privacy and core algorithms.",
407574
- "If you find RDMind useful, feel free to recommend it to your colleagues~"
407512
+ "If you find RDMind useful, feel free to recommend it to your colleagues~",
407513
+ {
407514
+ text: "Try /insight to generate personalized insights from your chat history.",
407515
+ weight: 3
407516
+ }
407575
407517
  ];
407518
+ function tipText(tip) {
407519
+ return typeof tip === "string" ? tip : tip.text;
407520
+ }
407521
+ __name(tipText, "tipText");
407522
+ function tipWeight(tip) {
407523
+ return typeof tip === "string" ? 1 : tip.weight;
407524
+ }
407525
+ __name(tipWeight, "tipWeight");
407526
+ function selectWeightedTip(tips) {
407527
+ const totalWeight = tips.reduce((sum, tip) => sum + tipWeight(tip), 0);
407528
+ let random2 = Math.random() * totalWeight;
407529
+ for (const tip of tips) {
407530
+ random2 -= tipWeight(tip);
407531
+ if (random2 <= 0) {
407532
+ return tipText(tip);
407533
+ }
407534
+ }
407535
+ return tipText(tips[tips.length - 1]);
407536
+ }
407537
+ __name(selectWeightedTip, "selectWeightedTip");
407576
407538
  var Tips = /* @__PURE__ */ __name(() => {
407577
- const selectedTip = (0, import_react70.useMemo)(() => {
407578
- const randomIndex = Math.floor(Math.random() * startupTips.length);
407579
- return startupTips[randomIndex];
407580
- }, []);
407539
+ const selectedTip = (0, import_react70.useMemo)(() => selectWeightedTip(startupTips), []);
407581
407540
  return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Text3, { color: theme.text.secondary, children: [
407582
407541
  t4("Tips: "),
407583
407542
  t4(selectedTip)
@@ -410894,61 +410853,47 @@ var import_react86 = __toESM(require_react(), 1);
410894
410853
  // packages/cli/src/config/xhsSsoProviders.ts
410895
410854
  init_esbuild_shims();
410896
410855
  var XHS_SSO_MODELS = [
410897
- {
410898
- id: "qwen3-coder-plus",
410899
- displayName: "qwen3-coder-plus",
410900
- baseUrl: "https://runway.devops.xiaohongshu.com/openai/qwen/v1",
410901
- contextWindow: "1M",
410902
- description: "\u57FA\u4E8E Qwen3 \u7684\u95ED\u6E90\u4EE3\u7801\u751F\u6210\u6A21\u578B"
410903
- },
410904
- {
410905
- id: "qwen3-coder-480b-a35b-instruct",
410906
- displayName: "qwen3-coder-480b-a35b-instruct",
410907
- baseUrl: "https://maas.devops.xiaohongshu.com/v1",
410908
- contextWindow: "256k",
410909
- description: "QuickSilver \u5E73\u53F0\u90E8\u7F72\u7248\u672C"
410910
- },
410911
410856
  {
410912
410857
  id: "gemini-3-pro-preview(low)",
410913
410858
  displayName: "gemini-3-pro-preview(low)",
410914
410859
  baseUrl: "https://runway.devops.rednote.life/openai/google/v1",
410915
410860
  contextWindow: "1M",
410916
- description: "Google \u8FC4\u4ECA\u4E3A\u6B62\u6700\u667A\u80FD\u7684\u6A21\u578B(\u601D\u8003\u65F6\u95F4\u77ED)"
410861
+ description: "Google \u8FC4\u4ECA\u4E3A\u6B62\u6700\u667A\u80FD\u7684\u6A21\u578B (\u63A8\u7406\u5F3A\u5EA6\u4F4E)"
410917
410862
  },
410918
410863
  {
410919
410864
  id: "gemini-3-pro-preview(high)",
410920
410865
  displayName: "gemini-3-pro-preview(high)",
410921
410866
  baseUrl: "https://runway.devops.rednote.life/openai/google/v1",
410922
410867
  contextWindow: "1M",
410923
- description: "Google \u8FC4\u4ECA\u4E3A\u6B62\u6700\u667A\u80FD\u7684\u6A21\u578B(\u601D\u8003\u65F6\u95F4\u957F)"
410868
+ description: "Google \u8FC4\u4ECA\u4E3A\u6B62\u6700\u667A\u80FD\u7684\u6A21\u578B (\u63A8\u7406\u5F3A\u5EA6\u9AD8)"
410924
410869
  },
410925
410870
  {
410926
410871
  id: "gemini-3.1-pro-preview(low)",
410927
410872
  displayName: "gemini-3.1-pro-preview(low)",
410928
410873
  baseUrl: "https://runway.devops.rednote.life/openai/google/v1",
410929
410874
  contextWindow: "1M",
410930
- description: "3 Pro \u7CFB\u5217\u5728\u6027\u80FD\u3001\u884C\u4E3A\u548C\u667A\u80FD\u65B9\u9762\u7684\u4E0B\u4E00\u4EE3\u6539\u8FDB\u7248\u672C(\u601D\u8003\u65F6\u95F4\u77ED)"
410875
+ description: "3 Pro \u7CFB\u5217\u5728\u6027\u80FD\u3001\u884C\u4E3A\u548C\u667A\u80FD\u65B9\u9762\u7684\u4E0B\u4E00\u4EE3\u6539\u8FDB\u7248\u672C (\u63A8\u7406\u5F3A\u5EA6\u4F4E)"
410931
410876
  },
410932
410877
  {
410933
410878
  id: "gemini-3.1-pro-preview(high)",
410934
410879
  displayName: "gemini-3.1-pro-preview(high)",
410935
410880
  baseUrl: "https://runway.devops.rednote.life/openai/google/v1",
410936
410881
  contextWindow: "1M",
410937
- description: "3 Pro \u7CFB\u5217\u5728\u6027\u80FD\u3001\u884C\u4E3A\u548C\u667A\u80FD\u65B9\u9762\u7684\u4E0B\u4E00\u4EE3\u6539\u8FDB\u7248\u672C(\u601D\u8003\u65F6\u95F4\u957F)"
410882
+ description: "3 Pro \u7CFB\u5217\u5728\u6027\u80FD\u3001\u884C\u4E3A\u548C\u667A\u80FD\u65B9\u9762\u7684\u4E0B\u4E00\u4EE3\u6539\u8FDB\u7248\u672C (\u63A8\u7406\u5F3A\u5EA6\u9AD8)"
410938
410883
  },
410939
410884
  {
410940
410885
  id: "gemini-3-flash-preview(low)",
410941
410886
  displayName: "gemini-3-flash-preview(low)",
410942
410887
  baseUrl: "https://runway.devops.rednote.life/openai/google/v1",
410943
410888
  contextWindow: "1M",
410944
- description: "Google \u9AD8\u901F\u667A\u80FD\u6A21\u578B(\u601D\u8003\u65F6\u95F4\u77ED)"
410889
+ description: "Google \u9AD8\u901F\u667A\u80FD\u6A21\u578B (\u63A8\u7406\u5F3A\u5EA6\u4F4E)"
410945
410890
  },
410946
410891
  {
410947
410892
  id: "gemini-3-flash-preview(high)",
410948
410893
  displayName: "gemini-3-flash-preview(high)",
410949
410894
  baseUrl: "https://runway.devops.rednote.life/openai/google/v1",
410950
410895
  contextWindow: "1M",
410951
- description: "Google \u9AD8\u901F\u667A\u80FD\u6A21\u578B(\u601D\u8003\u65F6\u95F4\u957F)"
410896
+ description: "Google \u9AD8\u901F\u667A\u80FD\u6A21\u578B (\u63A8\u7406\u5F3A\u5EA6\u9AD8)"
410952
410897
  },
410953
410898
  {
410954
410899
  id: "glm-5",
@@ -410965,25 +410910,32 @@ var XHS_SSO_MODELS = [
410965
410910
  description: "\u5728 Agent\u3001\u4EE3\u7801\u3001\u89C6\u89C9\u7406\u89E3\u53CA\u4E00\u7CFB\u5217\u901A\u7528\u667A\u80FD\u4EFB\u52A1\u4E0A\u53D6\u5F97\u5F00\u6E90 SoTA \u8868\u73B0"
410966
410911
  },
410967
410912
  {
410968
- id: "gpt-5.3-codex(low)",
410969
- displayName: "GPT-5.3-Codex(low)",
410913
+ id: "gpt-5.3-codex(medium)",
410914
+ displayName: "gpt-5.3-codex(medium)",
410970
410915
  baseUrl: "https://runway.devops.rednote.life/openai/v1/responses?api-version=v1",
410971
410916
  contextWindow: "272K",
410972
- description: "GPT-5.3 \u7684\u4E00\u4E2A\u7248\u672C\uFF0C\u4E13\u4E3A Codex \u4E2D\u7684\u667A\u80FD\u4F53\u7F16\u7A0B\u800C\u4F18\u5316 (\u63A8\u7406\u5F3A\u5EA6\u4F4E)"
410917
+ description: "OpenAI \u8FC4\u4ECA\u4E3A\u6B62\u6700\u5F3A\u5927\u7684\u4EE3\u7406\u5F0F\u7F16\u7801\u6A21\u578B (\u63A8\u7406\u5F3A\u5EA6\u4E2D)"
410973
410918
  },
410974
410919
  {
410975
410920
  id: "gpt-5.3-codex(high)",
410976
- displayName: "GPT-5.3-Codex(high)",
410921
+ displayName: "gpt-5.3-codex(high)",
410977
410922
  baseUrl: "https://runway.devops.rednote.life/openai/v1/responses?api-version=v1",
410978
410923
  contextWindow: "272K",
410979
- description: "GPT-5.3 \u7684\u4E00\u4E2A\u7248\u672C\uFF0C\u4E13\u4E3A Codex \u4E2D\u7684\u667A\u80FD\u4F53\u7F16\u7A0B\u800C\u4F18\u5316 (\u63A8\u7406\u5F3A\u5EA6\u9AD8)"
410924
+ description: "OpenAI \u8FC4\u4ECA\u4E3A\u6B62\u6700\u5F3A\u5927\u7684\u4EE3\u7406\u5F0F\u7F16\u7801\u6A21\u578B (\u63A8\u7406\u5F3A\u5EA6\u9AD8)"
410980
410925
  },
410926
+ // {
410927
+ // id: 'claude-opus-4-5@20251101',
410928
+ // displayName: 'Claude Opus 4.5',
410929
+ // baseUrl: 'https://runway.devops.rednote.life/openai/google/anthropic/v1',
410930
+ // contextWindow: '200K',
410931
+ // description: 'Anthropic 最强大的模型,擅长复杂推理和代码生成',
410932
+ // },
410981
410933
  {
410982
- id: "claude-opus-4-5@20251101",
410983
- displayName: "Claude Opus 4.5",
410984
- baseUrl: "https://runway.devops.rednote.life/openai/google/anthropic/v1",
410985
- contextWindow: "200K",
410986
- description: "Anthropic \u6700\u5F3A\u5927\u7684\u6A21\u578B\uFF0C\u64C5\u957F\u590D\u6742\u63A8\u7406\u548C\u4EE3\u7801\u751F\u6210"
410934
+ id: "qwen3-coder-480b-a35b-instruct",
410935
+ displayName: "qwen3-coder-480b-a35b-instruct",
410936
+ baseUrl: "https://maas.devops.xiaohongshu.com/v1",
410937
+ contextWindow: "256k",
410938
+ description: "QuickSilver \u5E73\u53F0\u90E8\u7F72\u7248\u672C"
410987
410939
  }
410988
410940
  ];
410989
410941
 
@@ -429094,7 +429046,7 @@ var GeminiAgent = class {
429094
429046
  name: APPROVAL_MODE_INFO[mode].name,
429095
429047
  description: APPROVAL_MODE_INFO[mode].description
429096
429048
  }));
429097
- const version2 = "0.2.7-alpha.6";
429049
+ const version2 = "0.2.7";
429098
429050
  return {
429099
429051
  protocolVersion: PROTOCOL_VERSION,
429100
429052
  agentInfo: {
package/locales/en.js CHANGED
@@ -1155,6 +1155,8 @@ export default {
1155
1155
  'You can switch permission mode quickly with Shift+Tab or /approval-mode.',
1156
1156
  'You can switch permission mode quickly with Tab or /approval-mode.':
1157
1157
  'You can switch permission mode quickly with Tab or /approval-mode.',
1158
+ 'Try /insight to generate personalized insights from your chat history.':
1159
+ 'Try /insight to generate personalized insights from your chat history.',
1158
1160
  'RDMind now supports custom commands, sub-agents, skills and other features. Check the documentation for usage help.':
1159
1161
  'RDMind now supports custom commands, sub-agents, skills and other features. Check the documentation for usage help.',
1160
1162
  'Try asking RDMind to help you commit code.':
package/locales/zh.js CHANGED
@@ -1095,6 +1095,8 @@ export default {
1095
1095
  'RDMind 可以读懂 REDoc,注意不要上传涉及用户隐私和核心算法的文档。',
1096
1096
  'If you find RDMind useful, feel free to recommend it to your colleagues~':
1097
1097
  '如果觉得 RDMind 好用,欢迎向同事推荐~',
1098
+ 'Try /insight to generate personalized insights from your chat history.':
1099
+ '试试 /insight,从聊天记录中生成个性化洞察。',
1098
1100
 
1099
1101
  // ============================================================================
1100
1102
  // Exit Screen / Stats
@@ -1237,7 +1239,7 @@ export default {
1237
1239
  '正在制作值得您耐心等待的回复...',
1238
1240
  '正在整理思绪...',
1239
1241
  '正在组织语言...',
1240
- '让我理一理思路...'
1242
+ '让我理一理思路...',
1241
1243
  ],
1242
1244
 
1243
1245
  // ============================================================================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rdmind/rdmind",
3
- "version": "0.2.7-alpha.6",
3
+ "version": "0.2.7",
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.7-alpha.6"
22
+ "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.2.7"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public"