@softerist/heuristic-mcp 3.2.3 → 3.2.4

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.
Files changed (46) hide show
  1. package/README.md +387 -376
  2. package/config.jsonc +800 -800
  3. package/features/ann-config.js +102 -110
  4. package/features/clear-cache.js +81 -84
  5. package/features/find-similar-code.js +265 -286
  6. package/features/hybrid-search.js +487 -536
  7. package/features/index-codebase.js +3139 -3270
  8. package/features/lifecycle.js +1011 -1063
  9. package/features/package-version.js +277 -291
  10. package/features/register.js +351 -370
  11. package/features/resources.js +115 -130
  12. package/features/set-workspace.js +214 -240
  13. package/index.js +693 -758
  14. package/lib/cache-ops.js +22 -22
  15. package/lib/cache-utils.js +465 -519
  16. package/lib/cache.js +1749 -1849
  17. package/lib/call-graph.js +396 -396
  18. package/lib/cli.js +232 -226
  19. package/lib/config.js +1483 -1495
  20. package/lib/constants.js +511 -493
  21. package/lib/embed-query-process.js +206 -212
  22. package/lib/embedding-process.js +434 -451
  23. package/lib/embedding-worker.js +862 -934
  24. package/lib/ignore-patterns.js +276 -316
  25. package/lib/json-worker.js +14 -14
  26. package/lib/json-writer.js +302 -310
  27. package/lib/logging.js +116 -127
  28. package/lib/memory-logger.js +13 -13
  29. package/lib/onnx-backend.js +188 -193
  30. package/lib/path-utils.js +18 -23
  31. package/lib/project-detector.js +82 -84
  32. package/lib/server-lifecycle.js +133 -145
  33. package/lib/settings-editor.js +738 -739
  34. package/lib/slice-normalize.js +25 -31
  35. package/lib/tokenizer.js +168 -203
  36. package/lib/utils.js +364 -409
  37. package/lib/vector-store-binary.js +973 -991
  38. package/lib/vector-store-sqlite.js +377 -414
  39. package/lib/workspace-env.js +32 -34
  40. package/mcp_config.json +9 -9
  41. package/package.json +86 -86
  42. package/scripts/clear-cache.js +20 -20
  43. package/scripts/download-model.js +43 -43
  44. package/scripts/mcp-launcher.js +49 -49
  45. package/scripts/postinstall.js +12 -12
  46. package/search-configs.js +36 -36
@@ -1,316 +1,276 @@
1
-
2
-
3
-
4
- export const IGNORE_PATTERNS = {
5
-
6
- javascript: [
7
- '**/node_modules/**',
8
- '**/.next/**',
9
- '**/dist/**',
10
- '**/build/**',
11
- '**/.nuxt/**',
12
- '**/.output/**',
13
- '**/.vercel/**',
14
- '**/.netlify/**',
15
- '**/out/**',
16
- '**/coverage/**',
17
- '**/.nyc_output/**',
18
- '**/npm-debug.log*',
19
- '**/yarn-debug.log*',
20
- '**/yarn-error.log*',
21
- '**/.pnpm-store/**',
22
- '**/.turbo/**',
23
- '**/package-lock.json',
24
- '**/pnpm-lock.yaml',
25
- '**/bun.lockb',
26
- '**/yarn.lock',
27
- ],
28
-
29
-
30
- python: [
31
- '**/__pycache__/**',
32
- '**/*.pyc',
33
- '**/*.pyd',
34
- '**/.Python',
35
- '**/build/**',
36
- '**/develop-eggs/**',
37
- '**/dist/**',
38
- '**/downloads/**',
39
- '**/eggs/**',
40
- '**/.eggs/**',
41
- '**/lib/**',
42
- '**/lib64/**',
43
- '**/parts/**',
44
- '**/sdist/**',
45
- '**/var/**',
46
- '**/*.egg-info/**',
47
- '**/.installed.cfg',
48
- '**/*.egg',
49
- '**/.venv/**',
50
- '**/venv/**',
51
- '**/env/**',
52
- '**/ENV/**',
53
- '**/.pytest_cache/**',
54
- '**/htmlcov/**',
55
- '**/.tox/**',
56
- '**/.coverage',
57
- '**/.hypothesis/**',
58
- '**/.mypy_cache/**',
59
- '**/.ruff_cache/**',
60
- ],
61
-
62
-
63
- java: [
64
- '**/target/**',
65
- '**/.gradle/**',
66
- '**/build/**',
67
- '**/.idea/**',
68
- '**/*.iml',
69
- '**/out/**',
70
- '**/gen/**',
71
- '**/classes/**',
72
- '**/.classpath',
73
- '**/.project',
74
- '**/.settings/**',
75
- '**/.m2/**',
76
- '**/*.class',
77
- '**/*.jar',
78
- '**/*.war',
79
- '**/*.ear',
80
- ],
81
-
82
-
83
- android: [
84
- '**/.gradle/**',
85
- '**/build/**',
86
- '**/.idea/**',
87
- '**/*.iml',
88
- '**/local.properties',
89
- '**/captures/**',
90
- '**/.externalNativeBuild/**',
91
- '**/.cxx/**',
92
- '**/*.apk',
93
- '**/*.aar',
94
- '**/*.ap_',
95
- '**/*.dex',
96
- '**/google-services.json',
97
- '**/gradle-app.setting',
98
- '**/.navigation/**',
99
- ],
100
-
101
-
102
- ios: [
103
- '**/Pods/**',
104
- '**/DerivedData/**',
105
- '**/xcuserdata/**',
106
- '**/*.xcarchive',
107
- '**/build/**',
108
- '**/.build/**',
109
- '**/Packages/**',
110
- '**/.swiftpm/**',
111
- '**/Carthage/Build/**',
112
- '**/fastlane/report.xml',
113
- '**/fastlane/Preview.html',
114
- '**/fastlane/screenshots/**',
115
- '**/fastlane/test_output/**',
116
- '**/*.moved-aside',
117
- '**/*.xcuserstate',
118
- '**/*.hmap',
119
- '**/*.ipa',
120
- ],
121
-
122
-
123
- go: ['**/vendor/**', '**/bin/**', '**/pkg/**', '**/*.exe', '**/*.test', '**/*.prof'],
124
-
125
-
126
- php: ['**/vendor/**', '**/composer.phar', '**/composer.lock', '**/.phpunit.result.cache'],
127
-
128
-
129
- rust: ['**/target/**', '**/Cargo.lock', '**/*.rs.bk'],
130
-
131
-
132
- ruby: ['**/vendor/bundle/**', '**/.bundle/**', '**/Gemfile.lock', '**/.byebug_history'],
133
-
134
-
135
- dotnet: [
136
- '**/bin/**',
137
- '**/obj/**',
138
- '**/packages/**',
139
- '**/*.user',
140
- '**/*.suo',
141
- '**/.vs/**',
142
- '**/node_modules/**',
143
- ],
144
-
145
-
146
- common: [
147
-
148
- '**/.git/**',
149
- '**/.svn/**',
150
- '**/.hg/**',
151
- '**/.bzr/**',
152
-
153
-
154
- '**/.DS_Store',
155
- '**/Thumbs.db',
156
- '**/desktop.ini',
157
- '**/$RECYCLE.BIN/**',
158
-
159
-
160
- '**/*.bak',
161
- '**/*.backup',
162
- '**/*~',
163
- '**/*.swp',
164
- '**/*.swo',
165
- '**/*.swn',
166
- '**/#*#',
167
- '**/.#*',
168
-
169
-
170
- '**/*.lock',
171
- '**/.~lock*',
172
-
173
-
174
- '**/*.log',
175
- '**/logs/**',
176
- '**/*.log.*',
177
-
178
-
179
- '**/.vscode/**',
180
- '**/.idea/**',
181
- '**/.sublime-project',
182
- '**/.sublime-workspace',
183
- '**/nbproject/**',
184
- '**/.settings/**',
185
- '**/.metadata/**',
186
- '**/.classpath',
187
- '**/.project',
188
- '**/.c9/**',
189
- '**/*.launch',
190
- '**/*.tmproj',
191
- '**/*.tmproject',
192
- '**/tmtags',
193
-
194
-
195
- '**/*~',
196
- '**/*.swp',
197
- '**/*.swo',
198
- '**/.*.sw?',
199
- '**/Session.vim',
200
-
201
-
202
- '**/*~',
203
- '**/#*#',
204
- '**/.#*',
205
-
206
-
207
- '**/.env',
208
- '**/.env.local',
209
- '**/.env.*.local',
210
- '**/.env.production',
211
- '**/.env.development',
212
- '**/.env.test',
213
- '**/secrets.json',
214
- '**/secrets.yaml',
215
- '**/secrets.yml',
216
- '**/*.key',
217
- '**/*.pem',
218
- '**/*.crt',
219
- '**/*.cer',
220
- '**/*.p12',
221
- '**/*.pfx',
222
-
223
-
224
- '**/tmp/**',
225
- '**/temp/**',
226
- '**/*.tmp',
227
- '**/*.temp',
228
- '**/.cache/**',
229
-
230
-
231
- '**/.sass-cache/**',
232
- '**/connect.lock',
233
- '**/*.pid',
234
- '**/*.seed',
235
- '**/*.pid.lock',
236
-
237
-
238
- '**/coverage/**',
239
- '**/.nyc_output/**',
240
- '**/test-results/**',
241
- '**/*.cover',
242
- '**/*.coverage',
243
- '**/htmlcov/**',
244
-
245
-
246
- '**/docs/_build/**',
247
- '**/site/**',
248
-
249
-
250
- '**/*.orig',
251
- '**/core',
252
- '**/*.core',
253
- ],
254
- };
255
-
256
-
257
- export const FILE_TYPE_MAP = {
258
-
259
- 'package.json': 'javascript',
260
- 'package-lock.json': 'javascript',
261
- 'yarn.lock': 'javascript',
262
- 'pnpm-lock.yaml': 'javascript',
263
-
264
-
265
- 'requirements.txt': 'python',
266
- Pipfile: 'python',
267
- 'pyproject.toml': 'python',
268
- 'setup.py': 'python',
269
-
270
-
271
- 'build.gradle': 'android',
272
- 'build.gradle.kts': 'android',
273
- 'settings.gradle': 'android',
274
-
275
-
276
- 'pom.xml': 'java',
277
-
278
-
279
- Podfile: 'ios',
280
- 'Package.swift': 'ios',
281
-
282
-
283
- 'go.mod': 'go',
284
-
285
-
286
- 'composer.json': 'php',
287
-
288
-
289
- 'Cargo.toml': 'rust',
290
-
291
-
292
- Gemfile: 'ruby',
293
-
294
-
295
- '*.csproj': 'dotnet',
296
- '*.sln': 'dotnet',
297
- };
298
-
299
-
300
- export const SKIP_DIRECTORIES = [
301
- 'node_modules',
302
- 'dist',
303
- 'build',
304
- 'target',
305
- 'vendor',
306
- 'coverage',
307
- 'htmlcov',
308
- 'typings',
309
- 'nltk_data',
310
- 'secrets',
311
- 'venv',
312
- 'env',
313
- '__pycache__',
314
- 'eggs',
315
- '.eggs',
316
- ];
1
+ export const IGNORE_PATTERNS = {
2
+ javascript: [
3
+ '**/node_modules/**',
4
+ '**/.next/**',
5
+ '**/dist/**',
6
+ '**/build/**',
7
+ '**/.nuxt/**',
8
+ '**/.output/**',
9
+ '**/.vercel/**',
10
+ '**/.netlify/**',
11
+ '**/out/**',
12
+ '**/coverage/**',
13
+ '**/.nyc_output/**',
14
+ '**/npm-debug.log*',
15
+ '**/yarn-debug.log*',
16
+ '**/yarn-error.log*',
17
+ '**/.pnpm-store/**',
18
+ '**/.turbo/**',
19
+ '**/package-lock.json',
20
+ '**/pnpm-lock.yaml',
21
+ '**/bun.lockb',
22
+ '**/yarn.lock',
23
+ ],
24
+
25
+ python: [
26
+ '**/__pycache__/**',
27
+ '**/*.pyc',
28
+ '**/*.pyd',
29
+ '**/.Python',
30
+ '**/build/**',
31
+ '**/develop-eggs/**',
32
+ '**/dist/**',
33
+ '**/downloads/**',
34
+ '**/eggs/**',
35
+ '**/.eggs/**',
36
+ '**/lib/**',
37
+ '**/lib64/**',
38
+ '**/parts/**',
39
+ '**/sdist/**',
40
+ '**/var/**',
41
+ '**/*.egg-info/**',
42
+ '**/.installed.cfg',
43
+ '**/*.egg',
44
+ '**/.venv/**',
45
+ '**/venv/**',
46
+ '**/env/**',
47
+ '**/ENV/**',
48
+ '**/.pytest_cache/**',
49
+ '**/htmlcov/**',
50
+ '**/.tox/**',
51
+ '**/.coverage',
52
+ '**/.hypothesis/**',
53
+ '**/.mypy_cache/**',
54
+ '**/.ruff_cache/**',
55
+ ],
56
+
57
+ java: [
58
+ '**/target/**',
59
+ '**/.gradle/**',
60
+ '**/build/**',
61
+ '**/.idea/**',
62
+ '**/*.iml',
63
+ '**/out/**',
64
+ '**/gen/**',
65
+ '**/classes/**',
66
+ '**/.classpath',
67
+ '**/.project',
68
+ '**/.settings/**',
69
+ '**/.m2/**',
70
+ '**/*.class',
71
+ '**/*.jar',
72
+ '**/*.war',
73
+ '**/*.ear',
74
+ ],
75
+
76
+ android: [
77
+ '**/.gradle/**',
78
+ '**/build/**',
79
+ '**/.idea/**',
80
+ '**/*.iml',
81
+ '**/local.properties',
82
+ '**/captures/**',
83
+ '**/.externalNativeBuild/**',
84
+ '**/.cxx/**',
85
+ '**/*.apk',
86
+ '**/*.aar',
87
+ '**/*.ap_',
88
+ '**/*.dex',
89
+ '**/google-services.json',
90
+ '**/gradle-app.setting',
91
+ '**/.navigation/**',
92
+ ],
93
+
94
+ ios: [
95
+ '**/Pods/**',
96
+ '**/DerivedData/**',
97
+ '**/xcuserdata/**',
98
+ '**/*.xcarchive',
99
+ '**/build/**',
100
+ '**/.build/**',
101
+ '**/Packages/**',
102
+ '**/.swiftpm/**',
103
+ '**/Carthage/Build/**',
104
+ '**/fastlane/report.xml',
105
+ '**/fastlane/Preview.html',
106
+ '**/fastlane/screenshots/**',
107
+ '**/fastlane/test_output/**',
108
+ '**/*.moved-aside',
109
+ '**/*.xcuserstate',
110
+ '**/*.hmap',
111
+ '**/*.ipa',
112
+ ],
113
+
114
+ go: ['**/vendor/**', '**/bin/**', '**/pkg/**', '**/*.exe', '**/*.test', '**/*.prof'],
115
+
116
+ php: ['**/vendor/**', '**/composer.phar', '**/composer.lock', '**/.phpunit.result.cache'],
117
+
118
+ rust: ['**/target/**', '**/Cargo.lock', '**/*.rs.bk'],
119
+
120
+ ruby: ['**/vendor/bundle/**', '**/.bundle/**', '**/Gemfile.lock', '**/.byebug_history'],
121
+
122
+ dotnet: [
123
+ '**/bin/**',
124
+ '**/obj/**',
125
+ '**/packages/**',
126
+ '**/*.user',
127
+ '**/*.suo',
128
+ '**/.vs/**',
129
+ '**/node_modules/**',
130
+ ],
131
+
132
+ common: [
133
+ '**/.git/**',
134
+ '**/.svn/**',
135
+ '**/.hg/**',
136
+ '**/.bzr/**',
137
+
138
+ '**/.DS_Store',
139
+ '**/Thumbs.db',
140
+ '**/desktop.ini',
141
+ '**/$RECYCLE.BIN/**',
142
+
143
+ '**/*.bak',
144
+ '**/*.backup',
145
+ '**/*~',
146
+ '**/*.swp',
147
+ '**/*.swo',
148
+ '**/*.swn',
149
+ '**/#*#',
150
+ '**/.#*',
151
+
152
+ '**/*.lock',
153
+ '**/.~lock*',
154
+
155
+ '**/*.log',
156
+ '**/logs/**',
157
+ '**/*.log.*',
158
+
159
+ '**/.vscode/**',
160
+ '**/.idea/**',
161
+ '**/.sublime-project',
162
+ '**/.sublime-workspace',
163
+ '**/nbproject/**',
164
+ '**/.settings/**',
165
+ '**/.metadata/**',
166
+ '**/.classpath',
167
+ '**/.project',
168
+ '**/.c9/**',
169
+ '**/*.launch',
170
+ '**/*.tmproj',
171
+ '**/*.tmproject',
172
+ '**/tmtags',
173
+
174
+ '**/*~',
175
+ '**/*.swp',
176
+ '**/*.swo',
177
+ '**/.*.sw?',
178
+ '**/Session.vim',
179
+
180
+ '**/*~',
181
+ '**/#*#',
182
+ '**/.#*',
183
+
184
+ '**/.env',
185
+ '**/.env.local',
186
+ '**/.env.*.local',
187
+ '**/.env.production',
188
+ '**/.env.development',
189
+ '**/.env.test',
190
+ '**/secrets.json',
191
+ '**/secrets.yaml',
192
+ '**/secrets.yml',
193
+ '**/*.key',
194
+ '**/*.pem',
195
+ '**/*.crt',
196
+ '**/*.cer',
197
+ '**/*.p12',
198
+ '**/*.pfx',
199
+
200
+ '**/tmp/**',
201
+ '**/temp/**',
202
+ '**/*.tmp',
203
+ '**/*.temp',
204
+ '**/.cache/**',
205
+
206
+ '**/.sass-cache/**',
207
+ '**/connect.lock',
208
+ '**/*.pid',
209
+ '**/*.seed',
210
+ '**/*.pid.lock',
211
+
212
+ '**/coverage/**',
213
+ '**/.nyc_output/**',
214
+ '**/test-results/**',
215
+ '**/*.cover',
216
+ '**/*.coverage',
217
+ '**/htmlcov/**',
218
+
219
+ '**/docs/_build/**',
220
+ '**/site/**',
221
+
222
+ '**/*.orig',
223
+ '**/core',
224
+ '**/*.core',
225
+ ],
226
+ };
227
+
228
+ export const FILE_TYPE_MAP = {
229
+ 'package.json': 'javascript',
230
+ 'package-lock.json': 'javascript',
231
+ 'yarn.lock': 'javascript',
232
+ 'pnpm-lock.yaml': 'javascript',
233
+
234
+ 'requirements.txt': 'python',
235
+ Pipfile: 'python',
236
+ 'pyproject.toml': 'python',
237
+ 'setup.py': 'python',
238
+
239
+ 'build.gradle': 'android',
240
+ 'build.gradle.kts': 'android',
241
+ 'settings.gradle': 'android',
242
+
243
+ 'pom.xml': 'java',
244
+
245
+ Podfile: 'ios',
246
+ 'Package.swift': 'ios',
247
+
248
+ 'go.mod': 'go',
249
+
250
+ 'composer.json': 'php',
251
+
252
+ 'Cargo.toml': 'rust',
253
+
254
+ Gemfile: 'ruby',
255
+
256
+ '*.csproj': 'dotnet',
257
+ '*.sln': 'dotnet',
258
+ };
259
+
260
+ export const SKIP_DIRECTORIES = [
261
+ 'node_modules',
262
+ 'dist',
263
+ 'build',
264
+ 'target',
265
+ 'vendor',
266
+ 'coverage',
267
+ 'htmlcov',
268
+ 'typings',
269
+ 'nltk_data',
270
+ 'secrets',
271
+ 'venv',
272
+ 'env',
273
+ '__pycache__',
274
+ 'eggs',
275
+ '.eggs',
276
+ ];
@@ -1,14 +1,14 @@
1
- import fs from 'fs/promises';
2
- import { parentPort, workerData } from 'worker_threads';
3
-
4
- async function loadJson() {
5
- try {
6
- const data = await fs.readFile(workerData.filePath, 'utf-8');
7
- const parsed = JSON.parse(data);
8
- parentPort?.postMessage({ ok: true, data: parsed });
9
- } catch (error) {
10
- parentPort?.postMessage({ ok: false, error: error.message });
11
- }
12
- }
13
-
14
- void loadJson();
1
+ import fs from 'fs/promises';
2
+ import { parentPort, workerData } from 'worker_threads';
3
+
4
+ async function loadJson() {
5
+ try {
6
+ const data = await fs.readFile(workerData.filePath, 'utf-8');
7
+ const parsed = JSON.parse(data);
8
+ parentPort?.postMessage({ ok: true, data: parsed });
9
+ } catch (error) {
10
+ parentPort?.postMessage({ ok: false, error: error.message });
11
+ }
12
+ }
13
+
14
+ void loadJson();