repoburg 1.0.54 → 1.0.55
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/backend/.env +2 -1
- package/backend/dist/context-generation/context-generation.service.d.ts +1 -1
- package/backend/dist/context-generation/context-generation.service.js.map +1 -1
- package/backend/dist/session-inputs/session-input-context.service.js +8 -3
- package/backend/dist/session-inputs/session-input-context.service.js.map +1 -1
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/backend/dist/utils/fuzzy-search.d.ts +1 -0
- package/backend/dist/utils/fuzzy-search.js +45 -0
- package/backend/dist/utils/fuzzy-search.js.map +1 -0
- package/backend/dist/utils/index.d.ts +1 -0
- package/backend/dist/utils/index.js +18 -0
- package/backend/dist/utils/index.js.map +1 -0
- package/backend/dist/workspace/workspace.service.d.ts +1 -1
- package/backend/dist/workspace/workspace.service.js +42 -85
- package/backend/dist/workspace/workspace.service.js.map +1 -1
- package/backend/package.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function fuzzySearch(query: string, items: string[]): string[];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fuzzySearch = fuzzySearch;
|
|
4
|
+
function fuzzySearch(query, items) {
|
|
5
|
+
if (!query) {
|
|
6
|
+
return items;
|
|
7
|
+
}
|
|
8
|
+
const lowerCaseQuery = query.toLowerCase();
|
|
9
|
+
const rankedItems = items
|
|
10
|
+
.map((item) => {
|
|
11
|
+
const lowerCaseItem = item.toLowerCase();
|
|
12
|
+
let score = 0;
|
|
13
|
+
let consecutiveMatches = 0;
|
|
14
|
+
let lastMatchIndex = -1;
|
|
15
|
+
for (let i = 0; i < lowerCaseQuery.length; i++) {
|
|
16
|
+
const char = lowerCaseQuery[i];
|
|
17
|
+
const foundIndex = lowerCaseItem.indexOf(char, lastMatchIndex + 1);
|
|
18
|
+
if (foundIndex === -1) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
if (foundIndex === 0 ||
|
|
22
|
+
['/', '\\', '_', '-', '.'].includes(lowerCaseItem[foundIndex - 1])) {
|
|
23
|
+
score += 15;
|
|
24
|
+
}
|
|
25
|
+
if (item[foundIndex] === query[i]) {
|
|
26
|
+
score += 5;
|
|
27
|
+
}
|
|
28
|
+
if (lastMatchIndex === foundIndex - 1) {
|
|
29
|
+
consecutiveMatches++;
|
|
30
|
+
score += 20 * consecutiveMatches;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
consecutiveMatches = 0;
|
|
34
|
+
}
|
|
35
|
+
score -= foundIndex - (lastMatchIndex + 1);
|
|
36
|
+
lastMatchIndex = foundIndex;
|
|
37
|
+
}
|
|
38
|
+
score -= item.length * 0.1;
|
|
39
|
+
return { item, score };
|
|
40
|
+
})
|
|
41
|
+
.filter((result) => result !== null);
|
|
42
|
+
rankedItems.sort((a, b) => b.score - a.score);
|
|
43
|
+
return rankedItems.map((result) => result.item);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=fuzzy-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fuzzy-search.js","sourceRoot":"","sources":["../../src/utils/fuzzy-search.ts"],"names":[],"mappings":";;AAAA,kCA8DC;AA9DD,SAAgB,WAAW,CAAC,KAAa,EAAE,KAAe;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAE3C,MAAM,WAAW,GAAG,KAAK;SACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;YAEnE,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YAGD,IACE,UAAU,KAAK,CAAC;gBAChB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAClE,CAAC;gBACD,KAAK,IAAI,EAAE,CAAC;YACd,CAAC;YAGD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClC,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;YAGD,IAAI,cAAc,KAAK,UAAU,GAAG,CAAC,EAAE,CAAC;gBACtC,kBAAkB,EAAE,CAAC;gBACrB,KAAK,IAAI,EAAE,GAAG,kBAAkB,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,kBAAkB,GAAG,CAAC,CAAC;YACzB,CAAC;YAGD,KAAK,IAAI,UAAU,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;YAE3C,cAAc,GAAG,UAAU,CAAC;QAC9B,CAAC;QAGD,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAE3B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC,CAAC;SACD,MAAM,CACL,CAAC,MAAM,EAA6C,EAAE,CAAC,MAAM,KAAK,IAAI,CACvE,CAAC;IAGJ,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAE9C,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fuzzy-search';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./fuzzy-search"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
|
|
@@ -12,7 +12,7 @@ export declare class WorkspaceService {
|
|
|
12
12
|
private fileTreeCacheTimestamp;
|
|
13
13
|
private readonly CACHE_TTL_MS;
|
|
14
14
|
constructor(contextGenerationService: ContextGenerationService);
|
|
15
|
-
private
|
|
15
|
+
private getFilesFromRg;
|
|
16
16
|
private resolveAndValidatePath;
|
|
17
17
|
validatePaths(paths: {
|
|
18
18
|
files?: string[];
|
|
@@ -12,10 +12,13 @@ var WorkspaceService_1;
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.WorkspaceService = void 0;
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
|
-
const glob_1 = require("glob");
|
|
16
15
|
const context_generation_service_1 = require("../context-generation/context-generation.service");
|
|
17
16
|
const fs = require("fs/promises");
|
|
18
17
|
const path = require("path");
|
|
18
|
+
const utils_1 = require("../utils");
|
|
19
|
+
const child_process_1 = require("child_process");
|
|
20
|
+
const util_1 = require("util");
|
|
21
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
19
22
|
let WorkspaceService = WorkspaceService_1 = class WorkspaceService {
|
|
20
23
|
constructor(contextGenerationService) {
|
|
21
24
|
this.contextGenerationService = contextGenerationService;
|
|
@@ -25,52 +28,26 @@ let WorkspaceService = WorkspaceService_1 = class WorkspaceService {
|
|
|
25
28
|
this.fileTreeCacheTimestamp = null;
|
|
26
29
|
this.CACHE_TTL_MS = 5 * 60 * 1000;
|
|
27
30
|
}
|
|
28
|
-
async
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
'**/.git/**',
|
|
32
|
-
'**/dist/**',
|
|
33
|
-
'**/coverage/**',
|
|
34
|
-
'**/.next/**',
|
|
35
|
-
'**/data.json',
|
|
36
|
-
'**/.DS_Store',
|
|
37
|
-
];
|
|
38
|
-
let gitignorePatterns = [];
|
|
31
|
+
async getFilesFromRg() {
|
|
32
|
+
const rgCommand = await this.contextGenerationService.getCommandPath('rg');
|
|
33
|
+
const command = `${rgCommand} --files --hidden --glob '!.git'`;
|
|
39
34
|
try {
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return [];
|
|
46
|
-
}
|
|
47
|
-
let pattern = trimmed;
|
|
48
|
-
const isDir = pattern.endsWith('/');
|
|
49
|
-
if (isDir) {
|
|
50
|
-
pattern = pattern.slice(0, -1);
|
|
51
|
-
}
|
|
52
|
-
if (pattern.startsWith('/')) {
|
|
53
|
-
pattern = pattern.substring(1);
|
|
54
|
-
}
|
|
55
|
-
else if (!pattern.includes('/')) {
|
|
56
|
-
pattern = `**/${pattern}`;
|
|
57
|
-
}
|
|
58
|
-
if (isDir || !path.extname(pattern)) {
|
|
59
|
-
return [pattern, `${pattern}/**`];
|
|
60
|
-
}
|
|
61
|
-
return [pattern];
|
|
35
|
+
this.logger.log(`Executing for file list: ${command}`);
|
|
36
|
+
const { stdout } = await execAsync(command, {
|
|
37
|
+
cwd: this.projectRoot,
|
|
38
|
+
maxBuffer: 256 * 1024 * 1024,
|
|
39
|
+
timeout: 10000,
|
|
62
40
|
});
|
|
63
|
-
|
|
41
|
+
return stdout.trim().split('\n').filter(Boolean);
|
|
64
42
|
}
|
|
65
43
|
catch (error) {
|
|
66
|
-
if (error.code === '
|
|
67
|
-
this.logger.log('
|
|
68
|
-
|
|
69
|
-
else {
|
|
70
|
-
this.logger.warn(`Error reading .gitignore: ${error.message}`);
|
|
44
|
+
if (error.code === 1 && error.stdout === '' && error.stderr === '') {
|
|
45
|
+
this.logger.log('rg --files returned no files.');
|
|
46
|
+
return [];
|
|
71
47
|
}
|
|
48
|
+
this.logger.error(`Failed to get file list from rg: ${error.message}`, error.stack);
|
|
49
|
+
throw new Error(`Could not retrieve file list from RipGrep. Is 'rg' installed and in your PATH?`);
|
|
72
50
|
}
|
|
73
|
-
return [...baseIgnorePatterns, ...gitignorePatterns];
|
|
74
51
|
}
|
|
75
52
|
resolveAndValidatePath(unsafePath) {
|
|
76
53
|
const normalizedPath = path.normalize(unsafePath);
|
|
@@ -109,21 +86,17 @@ let WorkspaceService = WorkspaceService_1 = class WorkspaceService {
|
|
|
109
86
|
this.logger.log('Returning file tree from cache.');
|
|
110
87
|
return this.fileTreeCache;
|
|
111
88
|
}
|
|
112
|
-
this.logger.log(`Scanning project root for file tree: ${this.projectRoot}`);
|
|
89
|
+
this.logger.log(`Scanning project root for file tree with rg: ${this.projectRoot}`);
|
|
113
90
|
try {
|
|
114
|
-
const
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
const allDirs = await (0, glob_1.glob)('**/', {
|
|
122
|
-
cwd: this.projectRoot,
|
|
123
|
-
ignore: ignorePatterns,
|
|
124
|
-
dot: true,
|
|
91
|
+
const files = await this.getFilesFromRg();
|
|
92
|
+
const folderSet = new Set();
|
|
93
|
+
files.forEach((file) => {
|
|
94
|
+
const parts = file.split(path.sep);
|
|
95
|
+
for (let i = 1; i < parts.length; i++) {
|
|
96
|
+
folderSet.add(parts.slice(0, i).join(path.sep));
|
|
97
|
+
}
|
|
125
98
|
});
|
|
126
|
-
const folders =
|
|
99
|
+
const folders = Array.from(folderSet);
|
|
127
100
|
this.logger.log(`Found ${files.length} files and ${folders.length} folders.`);
|
|
128
101
|
this.fileTreeCache = { files, folders };
|
|
129
102
|
this.fileTreeCacheTimestamp = now;
|
|
@@ -141,47 +114,31 @@ let WorkspaceService = WorkspaceService_1 = class WorkspaceService {
|
|
|
141
114
|
}
|
|
142
115
|
async search(query, type, page, limit) {
|
|
143
116
|
this.logger.log(`Searching for "${query}" (type: ${type})`);
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
cwd: this.projectRoot,
|
|
147
|
-
ignore: ignorePatterns,
|
|
148
|
-
dot: true,
|
|
149
|
-
};
|
|
150
|
-
const globPattern = `**/*${query}*`;
|
|
151
|
-
const allMatches = await (0, glob_1.glob)(globPattern, {
|
|
152
|
-
...globOptions,
|
|
153
|
-
mark: true,
|
|
154
|
-
nocase: true,
|
|
155
|
-
});
|
|
156
|
-
let results = [];
|
|
117
|
+
const { files, folders } = await this.getFileTree();
|
|
118
|
+
let searchPool = [];
|
|
157
119
|
if (type === 'all') {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
120
|
+
searchPool = [
|
|
121
|
+
...files.map((p) => ({ path: p, type: 'file' })),
|
|
122
|
+
...folders.map((p) => ({ path: p, type: 'folder' })),
|
|
123
|
+
];
|
|
162
124
|
}
|
|
163
125
|
else if (type === 'files') {
|
|
164
|
-
|
|
165
|
-
.filter((p) => !p.endsWith('/'))
|
|
166
|
-
.map((p) => ({ type: 'file', path: p }));
|
|
126
|
+
searchPool = files.map((p) => ({ path: p, type: 'file' }));
|
|
167
127
|
}
|
|
168
128
|
else if (type === 'folders') {
|
|
169
|
-
|
|
170
|
-
.filter((p) => p.endsWith('/'))
|
|
171
|
-
.map((p) => ({ type: 'folder', path: p.slice(0, -1) }));
|
|
129
|
+
searchPool = folders.map((p) => ({ path: p, type: 'folder' }));
|
|
172
130
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
});
|
|
131
|
+
const searchPoolStrings = searchPool.map((item) => item.path);
|
|
132
|
+
const matchedPaths = (0, utils_1.fuzzySearch)(query, searchPoolStrings);
|
|
133
|
+
const matchedPathSet = new Set(matchedPaths);
|
|
134
|
+
const results = searchPool
|
|
135
|
+
.filter((item) => matchedPathSet.has(item.path))
|
|
136
|
+
.sort((a, b) => matchedPaths.indexOf(a.path) - matchedPaths.indexOf(b.path));
|
|
180
137
|
const total = results.length;
|
|
181
138
|
const startIndex = (page - 1) * limit;
|
|
182
139
|
const endIndex = page * limit;
|
|
183
140
|
const paginatedResults = results.slice(startIndex, endIndex);
|
|
184
|
-
this.logger.log(`Search for "${query}" (type: ${type})
|
|
141
|
+
this.logger.log(`Search for "${query}" (type: ${type}) found ${total} total results. Returning page ${page} with ${paginatedResults.length} items.`);
|
|
185
142
|
return {
|
|
186
143
|
results: paginatedResults,
|
|
187
144
|
total,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.service.js","sourceRoot":"","sources":["../../src/workspace/workspace.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAyE;AACzE
|
|
1
|
+
{"version":3,"file":"workspace.service.js","sourceRoot":"","sources":["../../src/workspace/workspace.service.ts"],"names":[],"mappings":"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"}
|
package/backend/package.json
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"build": "nest build",
|
|
10
10
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
11
11
|
"start": "nest start",
|
|
12
|
+
"start2": "NODE_ENV=production nest start",
|
|
12
13
|
"start:dev": "nest start --watch",
|
|
13
14
|
"start:debug": "nest start --debug --watch",
|
|
14
15
|
"start:prod": "NODE_ENV=production node dist/main",
|
|
@@ -29,7 +30,6 @@
|
|
|
29
30
|
"@nestjs/schematics": "^10.0.0",
|
|
30
31
|
"@nestjs/testing": "^10.0.0",
|
|
31
32
|
"@types/express": "^4.17.17",
|
|
32
|
-
"@types/glob": "^8.1.0",
|
|
33
33
|
"@types/jest": "^29.5.2",
|
|
34
34
|
"@types/multer": "^1.4.11",
|
|
35
35
|
"@types/node": "^20.3.1",
|