@rdmind/rdmind 0.0.15-alpha.0 → 0.0.15-alpha.1

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/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rdmind/rdmind",
3
- "version": "0.0.15-alpha.0",
3
+ "version": "0.0.15-alpha.1",
4
4
  "description": "RDMind",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -27,12 +27,12 @@
27
27
  "access": "public"
28
28
  },
29
29
  "config": {
30
- "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.15-alpha.0"
30
+ "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.0.15-alpha.1"
31
31
  },
32
32
  "dependencies": {
33
33
  "@google/genai": "1.9.0",
34
34
  "@iarna/toml": "^2.2.5",
35
- "@rdmind/rdmind-core": "^0.0.15-alpha.0",
35
+ "@rdmind/rdmind-core": "^0.0.15-alpha.1",
36
36
  "@modelcontextprotocol/sdk": "^1.15.1",
37
37
  "@types/update-notifier": "^6.0.8",
38
38
  "command-exists": "^1.2.9",
@@ -3,5 +3,5 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const GIT_COMMIT_INFO = "31bdca0c";
7
- export declare const CLI_VERSION = "0.0.15-alpha.0";
6
+ export declare const GIT_COMMIT_INFO = "c3006dfb";
7
+ export declare const CLI_VERSION = "0.0.15-alpha.1";
@@ -5,6 +5,6 @@
5
5
  */
6
6
  // This file is auto-generated by the build script (scripts/generate-git-commit-info.js)
7
7
  // Do not edit this file manually.
8
- export const GIT_COMMIT_INFO = '31bdca0c';
9
- export const CLI_VERSION = '0.0.15-alpha.0';
8
+ export const GIT_COMMIT_INFO = 'c3006dfb';
9
+ export const CLI_VERSION = '0.0.15-alpha.1';
10
10
  //# sourceMappingURL=git-commit.js.map
@@ -6,3 +6,4 @@
6
6
  import type { SlashCommand } from './types.js';
7
7
  export declare function expandHomeDir(p: string): string;
8
8
  export declare const directoryCommand: SlashCommand;
9
+ export declare function resolveCompletionPaths(partialPath: string, baseDir: string): Promise<string[]>;
@@ -7,6 +7,7 @@ import { CommandKind } from './types.js';
7
7
  import { MessageType } from '../types.js';
8
8
  import * as os from 'node:os';
9
9
  import * as path from 'node:path';
10
+ import * as fs from 'node:fs/promises';
10
11
  import { loadServerHierarchicalMemory } from '@rdmind/rdmind-core';
11
12
  export function expandHomeDir(p) {
12
13
  if (!p) {
@@ -84,22 +85,109 @@ export const directoryCommand = {
84
85
  config.setGeminiMdFileCount(fileCount);
85
86
  context.ui.setGeminiMdFileCount(fileCount);
86
87
  }
88
+ // addItem(
89
+ // {
90
+ // type: MessageType.INFO,
91
+ // text: `Successfully added GEMINI.md files from the following directories if there are:\n- ${added.join('\n- ')}`,
92
+ // },
93
+ // Date.now(),
94
+ // );
95
+ }
96
+ catch (error) {
97
+ errors.push(`Error refreshing memory: ${error.message}`);
98
+ }
99
+ if (added.length > 0) {
100
+ const gemini = config.getGeminiClient();
101
+ if (gemini) {
102
+ await gemini.addDirectoryContext();
103
+ }
87
104
  addItem({
88
105
  type: MessageType.INFO,
89
- text: `Successfully added GEMINI.md files from the following directories if there are:\n- ${added.join('\n- ')}`,
106
+ text: `Successfully added directories:\n- ${added.join('\n- ')}`,
90
107
  }, Date.now());
91
108
  }
109
+ if (errors.length > 0) {
110
+ addItem({ type: MessageType.ERROR, text: errors.join('\n') }, Date.now());
111
+ }
112
+ return;
113
+ },
114
+ completion: async (_context, partialArg) => {
115
+ const partialPath = partialArg.split(',').pop().trim(); // 支持多路径,取最后一个做补全
116
+ try {
117
+ return await resolveCompletionPaths(partialPath, process.cwd());
118
+ }
119
+ catch {
120
+ return [];
121
+ }
122
+ },
123
+ },
124
+ {
125
+ name: 'remove',
126
+ description: '从工作区移除目录,使用逗号分隔路径',
127
+ kind: CommandKind.BUILT_IN,
128
+ action: async (context, args) => {
129
+ const { ui: { addItem }, services: { config }, } = context;
130
+ const [...rest] = args.split(' ');
131
+ if (!config) {
132
+ addItem({
133
+ type: MessageType.ERROR,
134
+ text: 'Configuration is not available.',
135
+ }, Date.now());
136
+ return;
137
+ }
138
+ const workspaceContext = config.getWorkspaceContext();
139
+ const pathsToRemove = rest
140
+ .join(' ')
141
+ .split(',')
142
+ .map((p) => p.trim())
143
+ .filter((p) => p);
144
+ if (pathsToRemove.length === 0) {
145
+ addItem({
146
+ type: MessageType.ERROR,
147
+ text: 'Please provide at least one path to remove.',
148
+ }, Date.now());
149
+ return;
150
+ }
151
+ if (config.isRestrictiveSandbox()) {
152
+ return {
153
+ type: 'message',
154
+ messageType: 'error',
155
+ content: 'The /directory remove command is not supported in restrictive sandbox profiles. Please use --include-directories when starting the session instead.',
156
+ };
157
+ }
158
+ const removed = [];
159
+ const errors = [];
160
+ for (const pathToRemove of pathsToRemove) {
161
+ const fullPath = expandHomeDir(pathToRemove);
162
+ try {
163
+ workspaceContext.removeDirectory(fullPath);
164
+ removed.push(pathToRemove);
165
+ }
166
+ catch (e) {
167
+ const error = e;
168
+ errors.push(`Error removing '${pathToRemove}': ${error.message}`);
169
+ }
170
+ }
171
+ try {
172
+ if (config.shouldLoadMemoryFromIncludeDirectories()) {
173
+ const { memoryContent, fileCount } = await loadServerHierarchicalMemory(config.getWorkingDir(), config.getWorkspaceContext().getDirectories(), config.getDebugMode(), config.getFileService(), config.getExtensionContextFilePaths(), context.services.settings.merged.context?.importFormat ||
174
+ 'tree', config.getFileFilteringOptions(), context.services.settings.merged.context?.discoveryMaxDirs);
175
+ config.setUserMemory(memoryContent);
176
+ config.setGeminiMdFileCount(fileCount);
177
+ context.ui.setGeminiMdFileCount(fileCount);
178
+ }
179
+ }
92
180
  catch (error) {
93
181
  errors.push(`Error refreshing memory: ${error.message}`);
94
182
  }
95
- if (added.length > 0) {
183
+ if (removed.length > 0) {
96
184
  const gemini = config.getGeminiClient();
97
185
  if (gemini) {
98
186
  await gemini.addDirectoryContext();
99
187
  }
100
188
  addItem({
101
189
  type: MessageType.INFO,
102
- text: `Successfully added directories:\n- ${added.join('\n- ')}`,
190
+ text: `Successfully removed directories:\n- ${removed.join('\n- ')}`,
103
191
  }, Date.now());
104
192
  }
105
193
  if (errors.length > 0) {
@@ -107,6 +195,14 @@ export const directoryCommand = {
107
195
  }
108
196
  return;
109
197
  },
198
+ completion: async (context) => {
199
+ const { services: { config }, } = context;
200
+ if (!config) {
201
+ return [];
202
+ }
203
+ const workspaceContext = config.getWorkspaceContext();
204
+ return workspaceContext.getRemovableDirectories();
205
+ },
110
206
  },
111
207
  {
112
208
  name: 'show',
@@ -132,4 +228,60 @@ export const directoryCommand = {
132
228
  },
133
229
  ],
134
230
  };
231
+ export async function resolveCompletionPaths(partialPath, baseDir) {
232
+ let resolvedPath;
233
+ let displayPrefix = partialPath;
234
+ if (!partialPath || partialPath.trim() === '') {
235
+ resolvedPath = baseDir;
236
+ displayPrefix = '';
237
+ }
238
+ else if (partialPath.startsWith('~')) {
239
+ resolvedPath = path.join(os.homedir(), partialPath.slice(1));
240
+ }
241
+ else {
242
+ resolvedPath = path.isAbsolute(partialPath)
243
+ ? path.resolve(partialPath || '/')
244
+ : path.resolve(baseDir, partialPath || '.');
245
+ }
246
+ let targetDir = resolvedPath;
247
+ let filterPrefix = '';
248
+ // 基于所给的部分目录名称进行过滤,例如输入/src/comp,则filterPrefix=comp, 需要去除/src/ ./ . 等场景
249
+ if (partialPath &&
250
+ !partialPath.endsWith('/') &&
251
+ !/^\.\/?$/.test(partialPath)) {
252
+ targetDir = path.dirname(resolvedPath);
253
+ filterPrefix = path.basename(resolvedPath);
254
+ }
255
+ const entries = await fs.readdir(targetDir, { withFileTypes: true });
256
+ return entries
257
+ .filter((entry) => entry.isDirectory())
258
+ .filter((entry) => !filterPrefix || entry.name.startsWith(filterPrefix))
259
+ .map((entry) => {
260
+ // 构造补全路径,保持用户输入风格的前缀,避免直接给绝对路径
261
+ let completionPath;
262
+ if (partialPath.endsWith('/')) {
263
+ completionPath = path.posix.join(displayPrefix, entry.name) + '/';
264
+ }
265
+ else {
266
+ // 去掉可能重复的部分
267
+ const prefixDir = displayPrefix.includes('/')
268
+ ? path.posix.dirname(displayPrefix)
269
+ : '';
270
+ if (prefixDir && prefixDir !== '.') {
271
+ completionPath = path.posix.join(prefixDir, entry.name) + '/';
272
+ }
273
+ else {
274
+ completionPath = entry.name + '/';
275
+ if (displayPrefix &&
276
+ displayPrefix !== '.' &&
277
+ !displayPrefix.includes('/')) {
278
+ completionPath =
279
+ displayPrefix.replace(filterPrefix, entry.name) + '/';
280
+ }
281
+ }
282
+ }
283
+ // 规范化成 posix 格式,避免 Windows 下反斜线
284
+ return completionPath.replace(/\\/g, '/');
285
+ });
286
+ }
135
287
  //# sourceMappingURL=directoryCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directoryCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/directoryCommand.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directoryCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/directoryCommand.tsx"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ export async function saveClipboardImage(targetDir) {
38
38
  // Create a temporary directory for clipboard images within the target directory
39
39
  // This avoids security restrictions on paths outside the target directory
40
40
  const baseDir = targetDir || process.cwd();
41
- const tempDir = path.join(baseDir, '.gemini-clipboard');
41
+ const tempDir = path.join(baseDir, '.rdmind-clipboard');
42
42
  await fs.mkdir(tempDir, { recursive: true });
43
43
  // Generate a unique filename with timestamp
44
44
  const timestamp = new Date().getTime();
@@ -103,7 +103,7 @@ export async function saveClipboardImage(targetDir) {
103
103
  export async function cleanupOldClipboardImages(targetDir) {
104
104
  try {
105
105
  const baseDir = targetDir || process.cwd();
106
- const tempDir = path.join(baseDir, '.gemini-clipboard');
106
+ const tempDir = path.join(baseDir, '.rdmind-clipboard');
107
107
  const files = await fs.readdir(tempDir);
108
108
  const oneHourAgo = Date.now() - 60 * 60 * 1000;
109
109
  for (const file of files) {