flowseeker 0.1.7 → 0.1.8
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/.env.example +7 -0
- package/CHANGELOG.md +131 -108
- package/README.md +288 -221
- package/dist/cli/flowCommand.js +175 -0
- package/dist/cli/main.js +1794 -0
- package/dist/cli/mcpServer.js +7 -1
- package/dist/cli/runEvaluation.js +178 -2
- package/dist/config/defaultConfig.js +11 -1
- package/dist/config/env.js +118 -0
- package/dist/config/loadConfig.js +18 -1
- package/dist/config/loadConfigFromPath.js +3 -1
- package/dist/extension.js +23 -0
- package/dist/gateway/embeddingProviders.js +852 -0
- package/dist/index/cacheStore.js +43 -0
- package/dist/index/configRouteDiscoveryProbe.js +288 -0
- package/dist/index/embeddingIndex.js +193 -0
- package/dist/index/graphIndex.js +460 -0
- package/dist/index/indexWatcher.js +86 -0
- package/dist/index/structuredExtractor.js +303 -12
- package/dist/index/treeSitterExtractor.js +264 -0
- package/dist/index/vectorStore.js +41 -0
- package/dist/index/workspaceIndex.js +591 -26
- package/dist/mcp/mcpTools.js +51 -0
- package/dist/pipeline/contextPack.js +3 -3
- package/dist/pipeline/deterministicReranker.js +358 -0
- package/dist/pipeline/evaluationMetrics.js +14 -2
- package/dist/pipeline/fileGroups.js +7 -1
- package/dist/pipeline/fileScanner.js +93 -11
- package/dist/pipeline/llmReranker.js +151 -0
- package/dist/pipeline/nodeScan.js +91 -12
- package/dist/pipeline/ranker.js +875 -16
- package/dist/pipeline/retrievalFusion.js +41 -0
- package/dist/pipeline/runHeadless.js +35 -0
- package/dist/pipeline/solvePacket.js +549 -42
- package/dist/pipeline/subsystem.js +21 -0
- package/docs/demo-screenshot-checklist.md +86 -0
- package/docs/marketplace-copy.md +92 -0
- package/docs/mcp-onboarding.md +191 -0
- package/package.json +633 -561
package/package.json
CHANGED
|
@@ -1,561 +1,633 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "flowseeker",
|
|
3
|
-
"displayName": "FlowSeeker",
|
|
4
|
-
"description": "Find relevant codebase context for large-project tasks without loading the whole repo into AI. Measures Solve Packet token savings alongside retrieval quality.",
|
|
5
|
-
"version": "0.1.
|
|
6
|
-
"publisher": "everestt2806",
|
|
7
|
-
"license": "MIT",
|
|
8
|
-
"icon": "resources/flowseeker.png",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/everestt2806/FlowSeeker.git"
|
|
12
|
-
},
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/everestt2806/FlowSeeker/issues"
|
|
15
|
-
},
|
|
16
|
-
"homepage": "https://github.com/everestt2806/FlowSeeker#readme",
|
|
17
|
-
"keywords": [
|
|
18
|
-
"ai",
|
|
19
|
-
"context",
|
|
20
|
-
"codebase",
|
|
21
|
-
"retrieval",
|
|
22
|
-
"search",
|
|
23
|
-
"ranking",
|
|
24
|
-
"llm",
|
|
25
|
-
"agent",
|
|
26
|
-
"multi-language"
|
|
27
|
-
],
|
|
28
|
-
"bin": {
|
|
29
|
-
"flowseeker
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"onCommand:flowseeker.
|
|
51
|
-
"onCommand:flowseeker.
|
|
52
|
-
"onCommand:flowseeker.
|
|
53
|
-
"onCommand:flowseeker.
|
|
54
|
-
"onCommand:flowseeker.
|
|
55
|
-
"onCommand:flowseeker.
|
|
56
|
-
"onCommand:flowseeker.
|
|
57
|
-
"onCommand:flowseeker.
|
|
58
|
-
"onCommand:flowseeker.
|
|
59
|
-
"onCommand:flowseeker.
|
|
60
|
-
"onCommand:flowseeker.
|
|
61
|
-
"onCommand:flowseeker.
|
|
62
|
-
"onCommand:flowseeker.
|
|
63
|
-
"onCommand:flowseeker.
|
|
64
|
-
"onCommand:flowseeker.
|
|
65
|
-
"onCommand:flowseeker.
|
|
66
|
-
"onCommand:flowseeker.
|
|
67
|
-
"onCommand:flowseeker.
|
|
68
|
-
"onCommand:flowseeker.
|
|
69
|
-
"onCommand:flowseeker.
|
|
70
|
-
"onCommand:flowseeker.
|
|
71
|
-
"onCommand:flowseeker.
|
|
72
|
-
"onCommand:flowseeker.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
"
|
|
135
|
-
"
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
"
|
|
140
|
-
"
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
"
|
|
145
|
-
"
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
"
|
|
160
|
-
"
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
"
|
|
165
|
-
"
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
"
|
|
175
|
-
"
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
"
|
|
180
|
-
"
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
"
|
|
185
|
-
"
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
"
|
|
190
|
-
"
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
"
|
|
195
|
-
"
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
"
|
|
201
|
-
"
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
],
|
|
227
|
-
"
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
"
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
"
|
|
259
|
-
"
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
"
|
|
264
|
-
"
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
"
|
|
269
|
-
"
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
"
|
|
274
|
-
"
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
"
|
|
279
|
-
"
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
"
|
|
284
|
-
"
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
"
|
|
289
|
-
"
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
"
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
"
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
"
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
"
|
|
319
|
-
"
|
|
320
|
-
"
|
|
321
|
-
"
|
|
322
|
-
"
|
|
323
|
-
".
|
|
324
|
-
"
|
|
325
|
-
".
|
|
326
|
-
"
|
|
327
|
-
"
|
|
328
|
-
".
|
|
329
|
-
".
|
|
330
|
-
".
|
|
331
|
-
".
|
|
332
|
-
"
|
|
333
|
-
"
|
|
334
|
-
".
|
|
335
|
-
".
|
|
336
|
-
"
|
|
337
|
-
"
|
|
338
|
-
"
|
|
339
|
-
"
|
|
340
|
-
"
|
|
341
|
-
"
|
|
342
|
-
"
|
|
343
|
-
"
|
|
344
|
-
"
|
|
345
|
-
"
|
|
346
|
-
"
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
"
|
|
358
|
-
"
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
"
|
|
363
|
-
"
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
"
|
|
368
|
-
"
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
"
|
|
373
|
-
"
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
"
|
|
378
|
-
"
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
"
|
|
383
|
-
"
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
"
|
|
388
|
-
"
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
"
|
|
393
|
-
"
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
"
|
|
398
|
-
"
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
"
|
|
403
|
-
"
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
"
|
|
408
|
-
"
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
"
|
|
413
|
-
"
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
"
|
|
418
|
-
"
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
"
|
|
423
|
-
"
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
"
|
|
428
|
-
"
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
"
|
|
433
|
-
"
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
"
|
|
438
|
-
"
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
"
|
|
443
|
-
"
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
"
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
"
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
"
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
"
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
"
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
"
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
"
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
"
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
"
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
"
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "flowseeker",
|
|
3
|
+
"displayName": "FlowSeeker",
|
|
4
|
+
"description": "Find relevant codebase context for large-project tasks without loading the whole repo into AI. Measures Solve Packet token savings alongside retrieval quality.",
|
|
5
|
+
"version": "0.1.8",
|
|
6
|
+
"publisher": "everestt2806",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"icon": "resources/flowseeker.png",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/everestt2806/FlowSeeker.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/everestt2806/FlowSeeker/issues"
|
|
15
|
+
},
|
|
16
|
+
"homepage": "https://github.com/everestt2806/FlowSeeker#readme",
|
|
17
|
+
"keywords": [
|
|
18
|
+
"ai",
|
|
19
|
+
"context",
|
|
20
|
+
"codebase",
|
|
21
|
+
"retrieval",
|
|
22
|
+
"search",
|
|
23
|
+
"ranking",
|
|
24
|
+
"llm",
|
|
25
|
+
"agent",
|
|
26
|
+
"multi-language"
|
|
27
|
+
],
|
|
28
|
+
"bin": {
|
|
29
|
+
"flowseeker": "dist/cli/main.js",
|
|
30
|
+
"flowseeker-mcp": "dist/cli/mcpServer.js",
|
|
31
|
+
"fs-mcp": "dist/cli/mcpServer.js",
|
|
32
|
+
"fs-guide": "dist/cli/flowCommand.js",
|
|
33
|
+
"fs-auto": "dist/cli/flowCommand.js",
|
|
34
|
+
"fs-files": "dist/cli/flowCommand.js",
|
|
35
|
+
"fs-retrieve": "dist/cli/flowCommand.js"
|
|
36
|
+
},
|
|
37
|
+
"categories": [
|
|
38
|
+
"Chat",
|
|
39
|
+
"Programming Languages",
|
|
40
|
+
"Other"
|
|
41
|
+
],
|
|
42
|
+
"engines": {
|
|
43
|
+
"vscode": "^1.90.0"
|
|
44
|
+
},
|
|
45
|
+
"activationEvents": [
|
|
46
|
+
"onUri",
|
|
47
|
+
"onChatParticipant:flowseeker.participant",
|
|
48
|
+
"onView:flowseeker.chatView",
|
|
49
|
+
"onView:flowseeker.results",
|
|
50
|
+
"onCommand:flowseeker.findRelevantContext",
|
|
51
|
+
"onCommand:flowseeker.rebuildIndex",
|
|
52
|
+
"onCommand:flowseeker.copyContext",
|
|
53
|
+
"onCommand:flowseeker.copyAgentPrompt",
|
|
54
|
+
"onCommand:flowseeker.runEvaluationSuite",
|
|
55
|
+
"onCommand:flowseeker.runReplaySuite",
|
|
56
|
+
"onCommand:flowseeker.checkHostCompatibility",
|
|
57
|
+
"onCommand:flowseeker.openChat",
|
|
58
|
+
"onCommand:flowseeker.connectGateway",
|
|
59
|
+
"onCommand:flowseeker.disconnectGateway",
|
|
60
|
+
"onCommand:flowseeker.startOAuth",
|
|
61
|
+
"onCommand:flowseeker.oauthComplete",
|
|
62
|
+
"onCommand:flowseeker.approvePlan",
|
|
63
|
+
"onCommand:flowseeker.applyGatewayEdits",
|
|
64
|
+
"onCommand:flowseeker.openGatewayDiff",
|
|
65
|
+
"onCommand:flowseeker.runAgentCommand",
|
|
66
|
+
"onCommand:flowseeker.runMcpTool",
|
|
67
|
+
"onCommand:flowseeker.openMcpConfig",
|
|
68
|
+
"onCommand:flowseeker.explainSelectionRelevance",
|
|
69
|
+
"onCommand:flowseeker.openRelatedTests",
|
|
70
|
+
"onCommand:flowseeker.openEvidence",
|
|
71
|
+
"onCommand:flowseeker.verifyAfterEdits",
|
|
72
|
+
"onCommand:flowseeker.runSkill",
|
|
73
|
+
"onCommand:flowseeker.pickSkill",
|
|
74
|
+
"onCommand:flowseeker.reloadSkills",
|
|
75
|
+
"onCommand:flowseeker.showLog",
|
|
76
|
+
"onCommand:flowseeker.showUsage",
|
|
77
|
+
"onCommand:flowseeker.setBudget",
|
|
78
|
+
"onCommand:flowseeker.clearUsage"
|
|
79
|
+
],
|
|
80
|
+
"main": "./dist/extension.js",
|
|
81
|
+
"contributes": {
|
|
82
|
+
"commands": [
|
|
83
|
+
{
|
|
84
|
+
"command": "flowseeker.findRelevantContext",
|
|
85
|
+
"title": "Find Relevant Context",
|
|
86
|
+
"category": "FlowSeeker"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"command": "flowseeker.openChat",
|
|
90
|
+
"title": "Open Chat",
|
|
91
|
+
"category": "FlowSeeker"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"command": "flowseeker.connectGateway",
|
|
95
|
+
"title": "Configure AI Provider",
|
|
96
|
+
"category": "FlowSeeker"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"command": "flowseeker.disconnectGateway",
|
|
100
|
+
"title": "Disconnect AI Provider",
|
|
101
|
+
"category": "FlowSeeker"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"command": "flowseeker.rebuildIndex",
|
|
105
|
+
"title": "Rebuild Index",
|
|
106
|
+
"category": "FlowSeeker"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"command": "flowseeker.copyContext",
|
|
110
|
+
"title": "Copy Context Pack",
|
|
111
|
+
"category": "FlowSeeker"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"command": "flowseeker.copyAgentPrompt",
|
|
115
|
+
"title": "Copy Agent Solve Prompt",
|
|
116
|
+
"category": "FlowSeeker"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"command": "flowseeker.pickSkill",
|
|
120
|
+
"title": "Run Skill",
|
|
121
|
+
"category": "FlowSeeker"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"command": "flowseeker.reloadSkills",
|
|
125
|
+
"title": "Reload Skills",
|
|
126
|
+
"category": "FlowSeeker"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"command": "flowseeker.runEvaluationSuite",
|
|
130
|
+
"title": "Run Evaluation Suite",
|
|
131
|
+
"category": "FlowSeeker"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"command": "flowseeker.runReplaySuite",
|
|
135
|
+
"title": "Run Real-World Replay",
|
|
136
|
+
"category": "FlowSeeker"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"command": "flowseeker.checkHostCompatibility",
|
|
140
|
+
"title": "Check Host Compatibility",
|
|
141
|
+
"category": "FlowSeeker"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"command": "flowseeker.explainSelectionRelevance",
|
|
145
|
+
"title": "Explain Selection Relevance",
|
|
146
|
+
"category": "FlowSeeker"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"command": "flowseeker.openRelatedTests",
|
|
150
|
+
"title": "Open Related Tests",
|
|
151
|
+
"category": "FlowSeeker"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"command": "flowseeker.verifyAfterEdits",
|
|
155
|
+
"title": "Verify After Edits",
|
|
156
|
+
"category": "FlowSeeker"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"command": "flowseeker.applyGatewayEdits",
|
|
160
|
+
"title": "Apply Proposed Edits",
|
|
161
|
+
"category": "FlowSeeker"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"command": "flowseeker.openGatewayDiff",
|
|
165
|
+
"title": "Open Proposed Diff",
|
|
166
|
+
"category": "FlowSeeker"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"command": "flowseeker.runAgentCommand",
|
|
170
|
+
"title": "Run Agent Command",
|
|
171
|
+
"category": "FlowSeeker"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"command": "flowseeker.runMcpTool",
|
|
175
|
+
"title": "Run MCP Tool",
|
|
176
|
+
"category": "FlowSeeker"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"command": "flowseeker.openMcpConfig",
|
|
180
|
+
"title": "Open MCP Config",
|
|
181
|
+
"category": "FlowSeeker"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"command": "flowseeker.showLog",
|
|
185
|
+
"title": "Show Log",
|
|
186
|
+
"category": "FlowSeeker"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"command": "flowseeker.showUsage",
|
|
190
|
+
"title": "Show Usage",
|
|
191
|
+
"category": "FlowSeeker"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"command": "flowseeker.setBudget",
|
|
195
|
+
"title": "Set Usage Budget",
|
|
196
|
+
"category": "FlowSeeker"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"command": "flowseeker.clearUsage",
|
|
200
|
+
"title": "Clear Usage History",
|
|
201
|
+
"category": "FlowSeeker"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"chatParticipants": [
|
|
205
|
+
{
|
|
206
|
+
"id": "flowseeker.participant",
|
|
207
|
+
"name": "flowseeker",
|
|
208
|
+
"fullName": "FlowSeeker",
|
|
209
|
+
"description": "Find the relevant codebase context first, then guide or propose fixes.",
|
|
210
|
+
"isSticky": true,
|
|
211
|
+
"commands": [
|
|
212
|
+
{
|
|
213
|
+
"name": "guide",
|
|
214
|
+
"description": "Retrieve relevant codebase context and explain where to edit."
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"name": "auto",
|
|
218
|
+
"description": "Retrieve relevant context and ask the model for a reviewable plan before edits."
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"name": "apply",
|
|
222
|
+
"description": "Generate structured edits from a user-approved FlowSeeker plan."
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
"mcpServerDefinitionProviders": [
|
|
228
|
+
{
|
|
229
|
+
"id": "flowseeker",
|
|
230
|
+
"label": "FlowSeeker MCP Servers"
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"viewsContainers": {
|
|
234
|
+
"activitybar": [
|
|
235
|
+
{
|
|
236
|
+
"id": "flowseeker",
|
|
237
|
+
"title": "FlowSeeker",
|
|
238
|
+
"icon": "resources/flowseeker-sidebar-outline.svg"
|
|
239
|
+
}
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
"views": {
|
|
243
|
+
"flowseeker": [
|
|
244
|
+
{
|
|
245
|
+
"id": "flowseeker.chatView",
|
|
246
|
+
"name": "Chat",
|
|
247
|
+
"type": "webview"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"id": "flowseeker.results",
|
|
251
|
+
"name": "Results"
|
|
252
|
+
}
|
|
253
|
+
]
|
|
254
|
+
},
|
|
255
|
+
"menus": {
|
|
256
|
+
"view/title": [
|
|
257
|
+
{
|
|
258
|
+
"command": "flowseeker.openChat",
|
|
259
|
+
"when": "view == flowseeker.results",
|
|
260
|
+
"group": "navigation"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"command": "flowseeker.findRelevantContext",
|
|
264
|
+
"when": "view == flowseeker.results",
|
|
265
|
+
"group": "navigation"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"command": "flowseeker.copyContext",
|
|
269
|
+
"when": "view == flowseeker.results",
|
|
270
|
+
"group": "navigation"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"command": "flowseeker.copyAgentPrompt",
|
|
274
|
+
"when": "view == flowseeker.results",
|
|
275
|
+
"group": "navigation"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"command": "flowseeker.runEvaluationSuite",
|
|
279
|
+
"when": "view == flowseeker.results",
|
|
280
|
+
"group": "navigation"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"command": "flowseeker.runReplaySuite",
|
|
284
|
+
"when": "view == flowseeker.results",
|
|
285
|
+
"group": "navigation"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"command": "flowseeker.checkHostCompatibility",
|
|
289
|
+
"when": "view == flowseeker.results",
|
|
290
|
+
"group": "navigation"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"command": "flowseeker.showLog",
|
|
294
|
+
"when": "view == flowseeker.results",
|
|
295
|
+
"group": "navigation"
|
|
296
|
+
}
|
|
297
|
+
]
|
|
298
|
+
},
|
|
299
|
+
"configuration": {
|
|
300
|
+
"title": "FlowSeeker",
|
|
301
|
+
"properties": {
|
|
302
|
+
"flowseeker.project.include": {
|
|
303
|
+
"type": "array",
|
|
304
|
+
"items": {
|
|
305
|
+
"type": "string"
|
|
306
|
+
},
|
|
307
|
+
"default": [
|
|
308
|
+
"**/*"
|
|
309
|
+
],
|
|
310
|
+
"description": "Workspace folders or glob patterns FlowSeeker scans."
|
|
311
|
+
},
|
|
312
|
+
"flowseeker.project.exclude": {
|
|
313
|
+
"type": "array",
|
|
314
|
+
"items": {
|
|
315
|
+
"type": "string"
|
|
316
|
+
},
|
|
317
|
+
"default": [
|
|
318
|
+
"node_modules",
|
|
319
|
+
"vendor",
|
|
320
|
+
"dist",
|
|
321
|
+
"build",
|
|
322
|
+
"out",
|
|
323
|
+
".git",
|
|
324
|
+
"coverage",
|
|
325
|
+
".next",
|
|
326
|
+
"target",
|
|
327
|
+
".vscode-test",
|
|
328
|
+
".turbo",
|
|
329
|
+
".gradle",
|
|
330
|
+
".dart_tool",
|
|
331
|
+
".venv",
|
|
332
|
+
"venv",
|
|
333
|
+
"__pycache__",
|
|
334
|
+
".mypy_cache",
|
|
335
|
+
".pytest_cache",
|
|
336
|
+
".flowseeker",
|
|
337
|
+
".flowseeker/cache",
|
|
338
|
+
".flowseeker/reports",
|
|
339
|
+
".flowseeker/feedback",
|
|
340
|
+
".flowseeker/evals",
|
|
341
|
+
".flowseeker/eval*.json",
|
|
342
|
+
"logs",
|
|
343
|
+
"tmp",
|
|
344
|
+
"temp",
|
|
345
|
+
"drizzle/meta",
|
|
346
|
+
"storage/framework",
|
|
347
|
+
"bootstrap/cache",
|
|
348
|
+
"**/_gen*.py",
|
|
349
|
+
"**/_gen*.sh",
|
|
350
|
+
"**/_bulk_write.js",
|
|
351
|
+
"**/*.snap",
|
|
352
|
+
"**/*snapshot*.json"
|
|
353
|
+
],
|
|
354
|
+
"description": "Folders or glob patterns FlowSeeker excludes."
|
|
355
|
+
},
|
|
356
|
+
"flowseeker.project.maxFileSizeKb": {
|
|
357
|
+
"type": "number",
|
|
358
|
+
"default": 800,
|
|
359
|
+
"description": "Maximum text file size to scan. Larger files are skipped."
|
|
360
|
+
},
|
|
361
|
+
"flowseeker.index.enableWorkspaceIndex": {
|
|
362
|
+
"type": "boolean",
|
|
363
|
+
"default": true,
|
|
364
|
+
"description": "Use a persistent workspace token index to preselect candidate files before detailed scanning."
|
|
365
|
+
},
|
|
366
|
+
"flowseeker.index.enableTreeSitter": {
|
|
367
|
+
"type": "boolean",
|
|
368
|
+
"default": true,
|
|
369
|
+
"description": "Enable structured code extraction. Uses tree-sitter parser for TypeScript/JavaScript; structured-regex for Python, PHP, Java, Go, C#, Ruby, Rust, Kotlin."
|
|
370
|
+
},
|
|
371
|
+
"flowseeker.pipeline.maxCandidates": {
|
|
372
|
+
"type": "number",
|
|
373
|
+
"default": 40,
|
|
374
|
+
"description": "Maximum ranked evidence units to keep."
|
|
375
|
+
},
|
|
376
|
+
"flowseeker.pipeline.maxContextTokens": {
|
|
377
|
+
"type": "number",
|
|
378
|
+
"default": 4000,
|
|
379
|
+
"description": "Approximate context pack token budget."
|
|
380
|
+
},
|
|
381
|
+
"flowseeker.pipeline.graphDepth": {
|
|
382
|
+
"type": "number",
|
|
383
|
+
"default": 2,
|
|
384
|
+
"description": "Reserved for graph expansion depth."
|
|
385
|
+
},
|
|
386
|
+
"flowseeker.pipeline.minConfidence": {
|
|
387
|
+
"type": "number",
|
|
388
|
+
"default": 0.45,
|
|
389
|
+
"description": "Evidence below this confidence is shown as uncertain."
|
|
390
|
+
},
|
|
391
|
+
"flowseeker.pipeline.maxFiles": {
|
|
392
|
+
"type": "number",
|
|
393
|
+
"default": 5000,
|
|
394
|
+
"description": "Maximum number of discovered files to scan before returning partial results."
|
|
395
|
+
},
|
|
396
|
+
"flowseeker.pipeline.maxTotalBytesMb": {
|
|
397
|
+
"type": "number",
|
|
398
|
+
"default": 120,
|
|
399
|
+
"description": "Maximum total file bytes to read during one scan before returning partial results."
|
|
400
|
+
},
|
|
401
|
+
"flowseeker.pipeline.maxScanMs": {
|
|
402
|
+
"type": "number",
|
|
403
|
+
"default": 30000,
|
|
404
|
+
"description": "Maximum scan duration in milliseconds before returning partial results."
|
|
405
|
+
},
|
|
406
|
+
"flowseeker.pipeline.maxRawEvidence": {
|
|
407
|
+
"type": "number",
|
|
408
|
+
"default": 1000,
|
|
409
|
+
"description": "Maximum raw evidence units to collect before ranking and returning partial results."
|
|
410
|
+
},
|
|
411
|
+
"flowseeker.index.chunkSizeLines": {
|
|
412
|
+
"type": "number",
|
|
413
|
+
"default": 80,
|
|
414
|
+
"description": "Line count per fallback text chunk."
|
|
415
|
+
},
|
|
416
|
+
"flowseeker.index.chunkOverlapLines": {
|
|
417
|
+
"type": "number",
|
|
418
|
+
"default": 12,
|
|
419
|
+
"description": "Overlapping lines between fallback chunks."
|
|
420
|
+
},
|
|
421
|
+
"flowseeker.index.enableDependencyExpansion": {
|
|
422
|
+
"type": "boolean",
|
|
423
|
+
"default": true,
|
|
424
|
+
"description": "Expand indexed candidate files through import/include relations after seed retrieval."
|
|
425
|
+
},
|
|
426
|
+
"flowseeker.index.maxSeedCandidateFiles": {
|
|
427
|
+
"type": "number",
|
|
428
|
+
"default": 250,
|
|
429
|
+
"description": "Maximum direct keyword/semantic seed files used before dependency expansion."
|
|
430
|
+
},
|
|
431
|
+
"flowseeker.index.maxDependencyExpansionFiles": {
|
|
432
|
+
"type": "number",
|
|
433
|
+
"default": 400,
|
|
434
|
+
"description": "Maximum related files added through dependency expansion."
|
|
435
|
+
},
|
|
436
|
+
"flowseeker.index.maxIndexedCandidateFiles": {
|
|
437
|
+
"type": "number",
|
|
438
|
+
"default": 800,
|
|
439
|
+
"description": "Maximum candidate files selected from the workspace index for detailed scanning."
|
|
440
|
+
},
|
|
441
|
+
"flowseeker.index.semanticEnabled": {
|
|
442
|
+
"type": "boolean",
|
|
443
|
+
"default": false,
|
|
444
|
+
"description": "Enable optional file-level semantic retrieval. Deterministic retrieval remains available without this."
|
|
445
|
+
},
|
|
446
|
+
"flowseeker.index.semanticProvider": {
|
|
447
|
+
"type": "string",
|
|
448
|
+
"default": "openaiCompatible",
|
|
449
|
+
"enum": [
|
|
450
|
+
"openaiCompatible"
|
|
451
|
+
],
|
|
452
|
+
"description": "Embedding provider used for optional semantic retrieval."
|
|
453
|
+
},
|
|
454
|
+
"flowseeker.index.semanticModel": {
|
|
455
|
+
"type": "string",
|
|
456
|
+
"default": "text-embedding-3-small",
|
|
457
|
+
"description": "Embedding model for optional semantic retrieval."
|
|
458
|
+
},
|
|
459
|
+
"flowseeker.index.semanticBaseUrl": {
|
|
460
|
+
"type": "string",
|
|
461
|
+
"default": "",
|
|
462
|
+
"description": "OpenAI-compatible embeddings base URL. Empty uses provider default."
|
|
463
|
+
},
|
|
464
|
+
"flowseeker.index.semanticApiKeyEnv": {
|
|
465
|
+
"type": "string",
|
|
466
|
+
"default": "FLOWSEEKER_EMBEDDING_API_KEY",
|
|
467
|
+
"description": "Environment variable that contains the semantic embedding API key."
|
|
468
|
+
},
|
|
469
|
+
"flowseeker.index.semanticCache": {
|
|
470
|
+
"type": "boolean",
|
|
471
|
+
"default": true,
|
|
472
|
+
"description": "Cache file-level embeddings under .flowseeker/cache/embeddings."
|
|
473
|
+
},
|
|
474
|
+
"flowseeker.index.semanticMaxFilesPerRun": {
|
|
475
|
+
"type": "number",
|
|
476
|
+
"default": 800,
|
|
477
|
+
"description": "Maximum indexed files to embed/search during one semantic retrieval run."
|
|
478
|
+
},
|
|
479
|
+
"flowseeker.index.semanticTimeoutMs": {
|
|
480
|
+
"type": "number",
|
|
481
|
+
"default": 15000,
|
|
482
|
+
"description": "Timeout for semantic embedding provider requests."
|
|
483
|
+
},
|
|
484
|
+
"flowseeker.index.semanticMinSimilarity": {
|
|
485
|
+
"type": "number",
|
|
486
|
+
"default": 0.5,
|
|
487
|
+
"description": "Minimum cosine similarity (0-1) required for a semantic file hit to produce evidence when no lexical evidence exists. Semantic results below this threshold are excluded from evidence creation."
|
|
488
|
+
},
|
|
489
|
+
"flowseeker.index.semanticEvidenceMaxRank": {
|
|
490
|
+
"type": "number",
|
|
491
|
+
"default": 20,
|
|
492
|
+
"description": "Maximum rank (1-based) of a semantic file hit that can produce evidence when no lexical evidence exists. Higher ranks (lower-ranked results) require lexical support."
|
|
493
|
+
},
|
|
494
|
+
"flowseeker.ai.enabled": {
|
|
495
|
+
"type": "boolean",
|
|
496
|
+
"default": false,
|
|
497
|
+
"description": "Reserved for optional AI reranking. Deterministic search works without it."
|
|
498
|
+
},
|
|
499
|
+
"flowseeker.ai.useDirectProvider": {
|
|
500
|
+
"type": "boolean",
|
|
501
|
+
"default": false,
|
|
502
|
+
"description": "Use flowseeker.ai.provider/model/baseUrl settings as the active AI provider. Provider keys are still stored with FlowSeeker: Configure AI Provider."
|
|
503
|
+
},
|
|
504
|
+
"flowseeker.ai.provider": {
|
|
505
|
+
"type": "string",
|
|
506
|
+
"default": "openai",
|
|
507
|
+
"enum": [
|
|
508
|
+
"openai",
|
|
509
|
+
"anthropic",
|
|
510
|
+
"gemini",
|
|
511
|
+
"ollama",
|
|
512
|
+
"openrouter",
|
|
513
|
+
"mistral",
|
|
514
|
+
"groq",
|
|
515
|
+
"xai",
|
|
516
|
+
"deepseek",
|
|
517
|
+
"codexCli",
|
|
518
|
+
"claudeCode",
|
|
519
|
+
"customGateway",
|
|
520
|
+
"customAnthropic",
|
|
521
|
+
"githubModels"
|
|
522
|
+
],
|
|
523
|
+
"description": "AI provider used when direct provider mode is enabled or configured through the FlowSeeker sidebar."
|
|
524
|
+
},
|
|
525
|
+
"flowseeker.ai.model": {
|
|
526
|
+
"type": "string",
|
|
527
|
+
"default": "",
|
|
528
|
+
"description": "Model name for the configured AI provider."
|
|
529
|
+
},
|
|
530
|
+
"flowseeker.ai.baseUrl": {
|
|
531
|
+
"type": "string",
|
|
532
|
+
"default": "",
|
|
533
|
+
"description": "Optional provider base URL override. Leave empty to use the provider default."
|
|
534
|
+
},
|
|
535
|
+
"flowseeker.ai.outputLanguage": {
|
|
536
|
+
"type": "string",
|
|
537
|
+
"default": "auto",
|
|
538
|
+
"enum": [
|
|
539
|
+
"auto",
|
|
540
|
+
"en",
|
|
541
|
+
"vi"
|
|
542
|
+
],
|
|
543
|
+
"enumDescriptions": [
|
|
544
|
+
"Let the AI choose the language based on the task language",
|
|
545
|
+
"English",
|
|
546
|
+
"Vietnamese"
|
|
547
|
+
],
|
|
548
|
+
"description": "Language the AI should use when producing plans and guidance."
|
|
549
|
+
},
|
|
550
|
+
"flowseeker.agent.autoApprove.readWorkspace": {
|
|
551
|
+
"type": "boolean",
|
|
552
|
+
"default": true,
|
|
553
|
+
"description": "Allow FlowSeeker agent sessions to read/search workspace files without asking."
|
|
554
|
+
},
|
|
555
|
+
"flowseeker.agent.autoApprove.editWorkspace": {
|
|
556
|
+
"type": "boolean",
|
|
557
|
+
"default": false,
|
|
558
|
+
"description": "Allow FlowSeeker agent sessions to apply workspace edits without a per-change approval prompt."
|
|
559
|
+
},
|
|
560
|
+
"flowseeker.agent.autoApprove.safeCommands": {
|
|
561
|
+
"type": "boolean",
|
|
562
|
+
"default": false,
|
|
563
|
+
"description": "Allow FlowSeeker agent sessions to run commands classified as read-only, build, lint, test, or status commands."
|
|
564
|
+
},
|
|
565
|
+
"flowseeker.agent.autoApprove.allCommands": {
|
|
566
|
+
"type": "boolean",
|
|
567
|
+
"default": false,
|
|
568
|
+
"description": "Allow FlowSeeker agent sessions to run any command. Destructive commands still require explicit approval."
|
|
569
|
+
},
|
|
570
|
+
"flowseeker.agent.autoApprove.mcpTools": {
|
|
571
|
+
"type": "boolean",
|
|
572
|
+
"default": false,
|
|
573
|
+
"description": "Allow FlowSeeker agent sessions to use configured MCP tools without asking."
|
|
574
|
+
},
|
|
575
|
+
"flowseeker.agent.rules": {
|
|
576
|
+
"type": "array",
|
|
577
|
+
"items": {
|
|
578
|
+
"type": "string"
|
|
579
|
+
},
|
|
580
|
+
"default": [],
|
|
581
|
+
"description": "Global FlowSeeker agent rules appended to plan/edit prompts."
|
|
582
|
+
},
|
|
583
|
+
"flowseeker.mcp.servers": {
|
|
584
|
+
"type": "array",
|
|
585
|
+
"default": [],
|
|
586
|
+
"description": "Optional FlowSeeker-managed MCP server definitions. Workspace .vscode/mcp.json is also detected."
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
},
|
|
591
|
+
"scripts": {
|
|
592
|
+
"compile": "tsc -p ./",
|
|
593
|
+
"mcp:server": "npm run compile --silent && node dist/cli/mcpServer.js",
|
|
594
|
+
"eval": "npm run compile --silent && node dist/cli/runEvaluation.js",
|
|
595
|
+
"eval:runner": "node dist/cli/runEvaluation.js",
|
|
596
|
+
"seek": "npm run compile --silent && node dist/cli/runEvaluation.js",
|
|
597
|
+
"replay": "npm run compile --silent && node dist/cli/runReplay.js",
|
|
598
|
+
"replay:runner": "node dist/cli/runReplay.js",
|
|
599
|
+
"test:context-expansion": "npm run compile --silent && node scripts/smoke-context-expansion.js",
|
|
600
|
+
"test:agent-response": "npm run compile --silent && node scripts/smoke-agent-response.js",
|
|
601
|
+
"test:model-list": "npm run compile --silent && node scripts/smoke-model-list.js",
|
|
602
|
+
"test:quota": "npm run compile --silent && node scripts/smoke-quota-tracker.js",
|
|
603
|
+
"test:feedback": "npm run compile --silent && node scripts/smoke-feedback.js",
|
|
604
|
+
"test:structured": "npm run compile --silent && node scripts/smoke-structured-extractor.js",
|
|
605
|
+
"test:graph": "npm run compile --silent && node scripts/smoke-graph-expansion.js",
|
|
606
|
+
"test:semantic": "npm run compile --silent && node scripts/smoke-semantic-disabled.js",
|
|
607
|
+
"smoke:embedding": "node scripts/smoke-embedding-provider.js",
|
|
608
|
+
"smoke:semantic": "npm run compile --silent && npm run eval -- --manifest .flowseeker/eval-benchmark-semantic-smoke-gemini.json --report .flowseeker/reports/semantic-smoke-gemini.md",
|
|
609
|
+
"smoke:semantic:active": "npm run compile --silent && node scripts/smoke-semantic-active.js",
|
|
610
|
+
"test:manifest": "node scripts/smoke-manifest.js",
|
|
611
|
+
"test:smoke": "npm run compile --silent && node scripts/smoke-manifest.js && node scripts/smoke-context-expansion.js && node scripts/smoke-agent-response.js && node scripts/smoke-model-list.js && node scripts/smoke-quota-tracker.js && node scripts/smoke-feedback.js && node scripts/smoke-structured-extractor.js && node scripts/smoke-graph-expansion.js && node scripts/smoke-semantic-disabled.js && node scripts/smoke-local-embedding-readiness.js && node scripts/smoke-mcp-setup-ux.js",
|
|
612
|
+
"watch": "tsc -watch -p ./",
|
|
613
|
+
"vscode:prepublish": "npm run compile",
|
|
614
|
+
"icon:render": "node scripts/render-icon.js",
|
|
615
|
+
"release:check": "node scripts/release-check.js",
|
|
616
|
+
"package": "vsce package",
|
|
617
|
+
"publish:marketplace": "vsce publish",
|
|
618
|
+
"publish:openvsx": "npx ovsx publish",
|
|
619
|
+
"openvsx:create-namespace": "npx ovsx create-namespace"
|
|
620
|
+
},
|
|
621
|
+
"devDependencies": {
|
|
622
|
+
"@types/node": "^20.14.10",
|
|
623
|
+
"@types/vscode": "^1.90.0",
|
|
624
|
+
"@vscode/vsce": "^3.9.2",
|
|
625
|
+
"sharp": "^0.35.0",
|
|
626
|
+
"typescript": "^5.5.4"
|
|
627
|
+
},
|
|
628
|
+
"dependencies": {
|
|
629
|
+
"js-tiktoken": "^1.0.21",
|
|
630
|
+
"tree-sitter": "^0.21.1",
|
|
631
|
+
"tree-sitter-typescript": "^0.23.2"
|
|
632
|
+
}
|
|
633
|
+
}
|