flowseeker 0.1.7 → 0.1.9
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 +143 -108
- package/README.md +288 -221
- package/dist/chat/nativeChatParticipant.js +1 -1
- package/dist/cli/flowCommand.js +175 -0
- package/dist/cli/main.js +1810 -0
- package/dist/cli/mcpServer.js +7 -1
- package/dist/cli/runEvaluation.js +281 -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/eval/accuracyV2.js +483 -0
- package/dist/eval/goldenTask.js +192 -0
- package/dist/extension.js +23 -0
- package/dist/framework/laravel.js +177 -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/semanticChunkIndex.js +388 -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 +901 -26
- package/dist/mcp/mcpTools.js +1678 -2
- package/dist/pipeline/contextBlueprint.js +15 -2
- 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 +209 -12
- package/dist/pipeline/fusionTrace.js +149 -0
- package/dist/pipeline/llmReranker.js +151 -0
- package/dist/pipeline/nodeScan.js +102 -12
- package/dist/pipeline/ranker.js +875 -16
- package/dist/pipeline/retrievalFusion.js +41 -0
- package/dist/pipeline/roleRefinement.js +62 -0
- package/dist/pipeline/runHeadless.js +60 -5
- package/dist/pipeline/runPipeline.js +2 -2
- package/dist/pipeline/solvePacket.js +656 -43
- package/dist/pipeline/subsystem.js +21 -0
- package/dist/pipeline/taskUnderstanding.js +2 -2
- package/dist/ui/chatViewProvider.js +1 -1
- 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
|
@@ -217,8 +217,29 @@ function subsystemAlignmentScore(unit, profile) {
|
|
|
217
217
|
if (matches.length > 0) {
|
|
218
218
|
return 4 + Math.min(10, matches.length * 4);
|
|
219
219
|
}
|
|
220
|
+
// Penalize files whose subsystem terms are clearly unrelated to the task
|
|
221
|
+
const hasClearDomainMismatch = unitTerms.length > 0 && taskTerms.length > 0 &&
|
|
222
|
+
!unitTerms.some((ut) => taskTerms.some((tt) => overlap3(ut, tt)));
|
|
223
|
+
if (hasClearDomainMismatch) {
|
|
224
|
+
return -16;
|
|
225
|
+
}
|
|
220
226
|
return 0;
|
|
221
227
|
}
|
|
228
|
+
function overlap3(a, b) {
|
|
229
|
+
if (a === b)
|
|
230
|
+
return true;
|
|
231
|
+
if (a.length < 3 || b.length < 3)
|
|
232
|
+
return false;
|
|
233
|
+
for (let i = 0; i <= a.length - 3; i++) {
|
|
234
|
+
if (b.includes(a.slice(i, i + 3)))
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
for (let i = 0; i <= b.length - 3; i++) {
|
|
238
|
+
if (a.includes(b.slice(i, i + 3)))
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
222
243
|
function primarySubsystemFromUnits(units) {
|
|
223
244
|
const counts = new Map();
|
|
224
245
|
for (const unit of units) {
|
|
@@ -106,7 +106,7 @@ const lowSignalInstructionTerms = new Set([
|
|
|
106
106
|
"function",
|
|
107
107
|
"functionality"
|
|
108
108
|
]);
|
|
109
|
-
function understandTask(task, config) {
|
|
109
|
+
async function understandTask(task, config, workspaceRoot) {
|
|
110
110
|
const normalizedTask = (0, text_1.normalizeText)(task);
|
|
111
111
|
const rawTokens = (0, text_1.splitIdentifier)(task);
|
|
112
112
|
const literalCodeTerms = detectLiteralCodeTerms(task);
|
|
@@ -118,7 +118,7 @@ function understandTask(task, config) {
|
|
|
118
118
|
const keywords = (0, text_1.uniq)([...literalCodeTerms, ...concepts, ...synonymTerms, ...actionTerms]).filter((term) => term.length > 1);
|
|
119
119
|
const intent = detectIntent(normalizedTask);
|
|
120
120
|
const negativeTerms = detectNegativeTerms(normalizedTask);
|
|
121
|
-
const blueprint = (0, contextBlueprint_1.buildTaskBlueprint)({ intent: intent.intent, normalizedTask, concepts, actions, keywords, negativeTerms, confidence: intent.confidence });
|
|
121
|
+
const blueprint = await (0, contextBlueprint_1.buildTaskBlueprint)({ intent: intent.intent, normalizedTask, concepts, actions, keywords, negativeTerms, confidence: intent.confidence, workspaceRoot });
|
|
122
122
|
const retrieval = (0, retrievalPlan_1.createRetrievalPlan)({ rawTask: task, normalizedTask, concepts, actions, keywords, blueprint }, config);
|
|
123
123
|
return {
|
|
124
124
|
rawTask: task,
|
|
@@ -1102,7 +1102,7 @@ class ChatViewProvider {
|
|
|
1102
1102
|
}
|
|
1103
1103
|
renderHtml(webview) {
|
|
1104
1104
|
const nonce = getNonce();
|
|
1105
|
-
const logoUri = webview.asWebviewUri(vscode.Uri.joinPath(this.context.extensionUri, "resources", "flowseeker-logo
|
|
1105
|
+
const logoUri = webview.asWebviewUri(vscode.Uri.joinPath(this.context.extensionUri, "resources", "flowseeker-logo.png"));
|
|
1106
1106
|
const providerOptions = aiProviders_1.AI_PROVIDER_DEFINITIONS.map((provider) => `<option value="${provider.id}">${escapeHtml(provider.label)}</option>`).join("");
|
|
1107
1107
|
const providerMeta = JSON.stringify(Object.fromEntries(aiProviders_1.AI_PROVIDER_DEFINITIONS.map((provider) => [
|
|
1108
1108
|
provider.id,
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# FlowSeeker Demo And Screenshot Checklist
|
|
2
|
+
|
|
3
|
+
Use this checklist before refreshing landing-page, Marketplace, OpenVSX, npm,
|
|
4
|
+
or README screenshots. It is intentionally conservative: screenshots should show
|
|
5
|
+
current FlowSeeker output, not future-state features.
|
|
6
|
+
|
|
7
|
+
## Source Of Truth
|
|
8
|
+
|
|
9
|
+
- Public proof audit: `.flowseeker/reports/phase08-8a-public-proof.json`
|
|
10
|
+
- Solve Packet proof: `.flowseeker/reports/phase07-7f-final-packet-gates.json`
|
|
11
|
+
- Performance proof: `.flowseeker/reports/phase06-6g-warm-query-performance.json`
|
|
12
|
+
- README: `README.md`
|
|
13
|
+
- MCP onboarding: `docs/mcp-onboarding.md`
|
|
14
|
+
|
|
15
|
+
## Required Demo Scenes
|
|
16
|
+
|
|
17
|
+
1. **VS Code retrieval flow**
|
|
18
|
+
- Show `@flowseeker /guide <task>`.
|
|
19
|
+
- Show focused context or Solve Packet output.
|
|
20
|
+
- Do not imply automatic code edits.
|
|
21
|
+
|
|
22
|
+
2. **Solve Packet 3.0 structure**
|
|
23
|
+
- Show the role-separated sections:
|
|
24
|
+
Primary Edit Candidates, Read-Only Context, Tests/Verification,
|
|
25
|
+
Noise Risk, Missing Links.
|
|
26
|
+
- Include visible evidence reasons where possible.
|
|
27
|
+
|
|
28
|
+
3. **MCP setup**
|
|
29
|
+
- Show one copy-pasteable config from `docs/mcp-onboarding.md`.
|
|
30
|
+
- Prefer Cursor or VS Code/Copilot because both are common MCP entry points.
|
|
31
|
+
|
|
32
|
+
4. **Evidence-backed proof**
|
|
33
|
+
- Show the reproducible command block from README.
|
|
34
|
+
- Include report paths, not broad marketing claims.
|
|
35
|
+
|
|
36
|
+
## Assets To Review
|
|
37
|
+
|
|
38
|
+
Current assets found under `landing/`:
|
|
39
|
+
|
|
40
|
+
- `landing/hero.png`
|
|
41
|
+
- `landing/dark.png`
|
|
42
|
+
- `landing/bench.png`
|
|
43
|
+
- `landing/compare.png`
|
|
44
|
+
- `landing/mobile.png`
|
|
45
|
+
|
|
46
|
+
Before public publishing, verify each image still matches current product output.
|
|
47
|
+
If an asset shows older UI, future-state graph expansion, default semantic search,
|
|
48
|
+
or unsupported parser claims, replace or remove it.
|
|
49
|
+
|
|
50
|
+
## Claims Allowed In Captions
|
|
51
|
+
|
|
52
|
+
- "Focused codebase context before AI reasoning"
|
|
53
|
+
- "Solve Packet with edit candidates, read-only context, verification targets,
|
|
54
|
+
noise risk, and missing links"
|
|
55
|
+
- "Structured-regex parser for 13 languages"
|
|
56
|
+
- "MCP stdio support through `flowseeker-mcp`"
|
|
57
|
+
- "Cold scan under 2s medium / under 5s large for the benchmarked workspaces"
|
|
58
|
+
only when the Phase 06 report path is visible nearby
|
|
59
|
+
|
|
60
|
+
## Claims To Avoid
|
|
61
|
+
|
|
62
|
+
- "AI-powered search" as a default behavior
|
|
63
|
+
- "Sub-second cold scan"
|
|
64
|
+
- "Semantic search by default"
|
|
65
|
+
- "Tree-sitter production accuracy"
|
|
66
|
+
- "Graph expansion in production"
|
|
67
|
+
- "Monorepo support"
|
|
68
|
+
- "Git history integration"
|
|
69
|
+
- "LSP integration"
|
|
70
|
+
|
|
71
|
+
## Verification Commands
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npm.cmd run compile --silent
|
|
75
|
+
npm.cmd run test:manifest
|
|
76
|
+
node scripts/analyze-phase08-public-proof.js --out-md .flowseeker/reports/phase08-8a-public-proof.md --out-json .flowseeker/reports/phase08-8a-public-proof.json
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Public Publishing Gate
|
|
80
|
+
|
|
81
|
+
Public screenshots are ready only when:
|
|
82
|
+
|
|
83
|
+
- screenshots show current FlowSeeker output,
|
|
84
|
+
- every visible claim maps to the public proof audit,
|
|
85
|
+
- no blocked claim appears as a product capability,
|
|
86
|
+
- the README and marketplace copy use the same wording boundaries.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# FlowSeeker Marketplace Copy
|
|
2
|
+
|
|
3
|
+
This file is the evidence-backed copy source for VS Code Marketplace, OpenVSX,
|
|
4
|
+
and npm descriptions. Keep it aligned with `README.md` and the Phase 08 public
|
|
5
|
+
proof report.
|
|
6
|
+
|
|
7
|
+
## One-Line Description
|
|
8
|
+
|
|
9
|
+
FlowSeeker prepares focused codebase context for AI coding agents before they
|
|
10
|
+
start reasoning.
|
|
11
|
+
|
|
12
|
+
## Short Description
|
|
13
|
+
|
|
14
|
+
FlowSeeker scans your workspace, ranks relevant files with evidence reasons, and
|
|
15
|
+
returns a compact Solve Packet instead of sending the whole repository to an AI
|
|
16
|
+
agent.
|
|
17
|
+
|
|
18
|
+
## Marketplace Summary
|
|
19
|
+
|
|
20
|
+
FlowSeeker helps AI coding agents start with the right codebase context. You
|
|
21
|
+
describe a task, and FlowSeeker prepares a focused Solve Packet with edit
|
|
22
|
+
candidates, read-only context, verification targets, noise risk warnings, and
|
|
23
|
+
missing link alerts.
|
|
24
|
+
|
|
25
|
+
It works as a VS Code extension, an MCP stdio server through `flowseeker-mcp`,
|
|
26
|
+
and a headless CLI path for reproducible evaluation.
|
|
27
|
+
|
|
28
|
+
## Evidence-Backed Capability Bullets
|
|
29
|
+
|
|
30
|
+
- Solve Packet 3.0 with role-separated sections for edit candidates, read-only
|
|
31
|
+
context, tests/verification, noise risk, and missing links.
|
|
32
|
+
- Candidate Flow with numbered execution steps and task-aware purpose labels.
|
|
33
|
+
- Actionable Missing Links with slot-specific search hints.
|
|
34
|
+
- Runnable verification commands with separate evidence, reason, and confidence
|
|
35
|
+
metadata.
|
|
36
|
+
- Structured-regex parser for 13 languages.
|
|
37
|
+
- Optional MCP stdio setup for Cursor, Antigravity, Windsurf, Claude Desktop,
|
|
38
|
+
and VS Code/Copilot.
|
|
39
|
+
- 9 smoke tests passing on clean compile.
|
|
40
|
+
- Benchmark proof available under `.flowseeker/reports/`.
|
|
41
|
+
|
|
42
|
+
## Honest Limitations
|
|
43
|
+
|
|
44
|
+
- FlowSeeker does not guarantee sub-second cold scan.
|
|
45
|
+
- FlowSeeker does not use AI/LLM-based ranking by default.
|
|
46
|
+
- Semantic search is optional and disabled by default.
|
|
47
|
+
- Tree-sitter parser support is available but disabled by default in public
|
|
48
|
+
benchmark claims.
|
|
49
|
+
- Graph expansion is disabled in production.
|
|
50
|
+
- Monorepo, git-history, and LSP integration are not public guarantees.
|
|
51
|
+
|
|
52
|
+
## Reproducible Proof Commands
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm.cmd run compile --silent
|
|
56
|
+
npm.cmd run test:manifest
|
|
57
|
+
node scripts/analyze-phase08-public-proof.js --out-md .flowseeker/reports/phase08-8a-public-proof.md --out-json .flowseeker/reports/phase08-8a-public-proof.json
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Copy Notes By Surface
|
|
61
|
+
|
|
62
|
+
### VS Code Marketplace
|
|
63
|
+
|
|
64
|
+
Use the one-line description plus the marketplace summary. Mention Native VS
|
|
65
|
+
Code Chat and the FlowSeeker sidebar only as user surfaces. Keep the blocked
|
|
66
|
+
claims out of feature bullets.
|
|
67
|
+
|
|
68
|
+
### OpenVSX
|
|
69
|
+
|
|
70
|
+
Use the same copy as VS Code Marketplace. Add that the extension can be used by
|
|
71
|
+
VS Code-compatible editors where the extension host supports the required APIs.
|
|
72
|
+
|
|
73
|
+
### npm
|
|
74
|
+
|
|
75
|
+
Lead with MCP:
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
npx -p flowseeker flowseeker-mcp --workspace <path-to-repo>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Then link to `docs/mcp-onboarding.md` for client-specific JSON snippets.
|
|
82
|
+
|
|
83
|
+
## Do Not Use
|
|
84
|
+
|
|
85
|
+
- "AI-powered code search"
|
|
86
|
+
- "Sub-second search"
|
|
87
|
+
- "Production-ready tree-sitter accuracy"
|
|
88
|
+
- "Semantic search by default"
|
|
89
|
+
- "Understands your whole repo"
|
|
90
|
+
- "Monorepo-ready"
|
|
91
|
+
- "Uses git history"
|
|
92
|
+
- "Uses LSP"
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# FlowSeeker MCP Onboarding
|
|
2
|
+
|
|
3
|
+
FlowSeeker provides a standalone MCP (Model Context Protocol) server. Your IDE or AI client sends a task description; FlowSeeker scans your project, ranks relevant files, and returns a compact **Solve Packet** -- not the entire repository.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- Node.js 18 or later
|
|
8
|
+
- FlowSeeker npm package (installed or via `npx`)
|
|
9
|
+
- A workspace path (any directory with source files)
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Run without installing
|
|
15
|
+
npx -p flowseeker flowseeker-mcp --workspace /path/to/your/repo
|
|
16
|
+
|
|
17
|
+
# Or install globally
|
|
18
|
+
npm i -g flowseeker
|
|
19
|
+
flowseeker mcp --workspace /path/to/your/repo
|
|
20
|
+
flowseeker-mcp --workspace /path/to/your/repo
|
|
21
|
+
|
|
22
|
+
# Short aliases
|
|
23
|
+
fs-mcp --workspace /path/to/your/repo
|
|
24
|
+
flowseeker guide "Fix checkout webhook retry"
|
|
25
|
+
flowseeker auto "Add CSV export with tests"
|
|
26
|
+
fs-guide "Fix checkout webhook retry"
|
|
27
|
+
fs-auto "Add CSV export with tests"
|
|
28
|
+
fs-files "Find the auth middleware"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`flowseeker mcp`, `flowseeker-mcp`, and `fs-mcp` start the same MCP server. `flowseeker guide`, `flowseeker auto`, `fs-guide`, and `fs-auto` are direct CLI helpers for Claude Code/Codex style terminal workflows.
|
|
32
|
+
|
|
33
|
+
### Claude Code
|
|
34
|
+
|
|
35
|
+
From the repository you want Claude Code to work on:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm i -g flowseeker
|
|
39
|
+
claude mcp add flowseeker -- flowseeker mcp --workspace .
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Direct prompt workflow without MCP:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
flowseeker auto "Fix checkout webhook retry" --out .flowseeker/agent-prompt.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Optional Semantic Retrieval
|
|
49
|
+
|
|
50
|
+
FlowSeeker works without embeddings by default. To enable hosted semantic retrieval:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Jina quick preset (recommended)
|
|
54
|
+
flowseeker semantic init --jina
|
|
55
|
+
|
|
56
|
+
# Generic OpenAI-compatible path
|
|
57
|
+
flowseeker semantic init --openai-compatible
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For non-Jina providers, edit `.flowseeker/config.json` after init:
|
|
61
|
+
- `semanticBaseUrl` -- your provider's endpoint
|
|
62
|
+
- `semanticModel` -- the embedding model name (must match your provider)
|
|
63
|
+
- `semanticApiKeyEnv` -- env var holding the key
|
|
64
|
+
|
|
65
|
+
The API key still belongs in `.env`. Jina is a preset/recommendation, not a requirement.
|
|
66
|
+
|
|
67
|
+
Verify setup:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
flowseeker semantic check --test
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If `flowseeker semantic check` says `incomplete_config`, configure `semanticModel` (and optionally `semanticBaseUrl`) in `.flowseeker/config.json` before testing.
|
|
74
|
+
|
|
75
|
+
If `flowseeker semantic check` says `disabled`, MCP scans will not call the embedding provider.
|
|
76
|
+
|
|
77
|
+
### Verify Installation
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npx -p flowseeker flowseeker-mcp --help
|
|
81
|
+
npx -p flowseeker flowseeker-mcp --version
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Local Development (after clone + compile)
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
npm.cmd run compile --silent
|
|
88
|
+
node dist/cli/mcpServer.js --workspace /path/to/your/repo
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## IDE Configuration
|
|
92
|
+
|
|
93
|
+
Copy the JSON snippet for your IDE into its MCP configuration file.
|
|
94
|
+
|
|
95
|
+
### Cursor
|
|
96
|
+
|
|
97
|
+
Config path: `~/.cursor/mcp.json` (macOS/Linux) or `%USERPROFILE%\.cursor\mcp.json` (Windows). Project-local: `.cursor/mcp.json`.
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"mcpServers": {
|
|
102
|
+
"flowseeker": {
|
|
103
|
+
"command": "npx",
|
|
104
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "<path-to-repo>"]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Antigravity
|
|
111
|
+
|
|
112
|
+
Config path: `~/.gemini/antigravity/mcp_config.json` (macOS) or `%USERPROFILE%\.gemini\antigravity\mcp_config.json` (Windows).
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"mcpServers": {
|
|
117
|
+
"flowseeker": {
|
|
118
|
+
"command": "npx",
|
|
119
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "<path-to-repo>"]
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Windsurf
|
|
126
|
+
|
|
127
|
+
Config path: `~/.codeium/windsurf/mcp_config.json` (macOS) or `%USERPROFILE%\.codeium\windsurf\mcp_config.json` (Windows).
|
|
128
|
+
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"mcpServers": {
|
|
132
|
+
"flowseeker": {
|
|
133
|
+
"command": "npx",
|
|
134
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "<path-to-repo>"]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Claude Desktop
|
|
141
|
+
|
|
142
|
+
Config path: `claude_desktop_config.json` (see Claude Desktop docs for OS-specific path).
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"mcpServers": {
|
|
147
|
+
"flowseeker": {
|
|
148
|
+
"command": "npx",
|
|
149
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "<path-to-repo>"]
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### VS Code / GitHub Copilot
|
|
156
|
+
|
|
157
|
+
Config path: `.vscode/mcp.json` in your project root. Uses root key `servers` (not `mcpServers`).
|
|
158
|
+
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"servers": {
|
|
162
|
+
"flowseeker": {
|
|
163
|
+
"command": "npx",
|
|
164
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "<path-to-repo>"]
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## How It Works
|
|
171
|
+
|
|
172
|
+
1. Your IDE sends `flowseeker_retrieve` with a task description.
|
|
173
|
+
2. FlowSeeker scans the workspace, ranks evidence, and builds a Solve Packet.
|
|
174
|
+
3. The Solve Packet returns to the client: edit candidates, read-only context, verification targets, noise risk, and missing links.
|
|
175
|
+
4. The client model answers in your native chat with focused context instead of searching the whole repository.
|
|
176
|
+
|
|
177
|
+
## Available Tools
|
|
178
|
+
|
|
179
|
+
| Tool | Purpose |
|
|
180
|
+
|------|---------|
|
|
181
|
+
| `flowseeker_retrieve` | Full Solve Packet with ranked evidence and focused context |
|
|
182
|
+
| `flowseeker_guide` | Agent guidance: relevant files, edit candidates, verification steps |
|
|
183
|
+
| `flowseeker_auto` | Reviewable implementation-plan prompt |
|
|
184
|
+
| `flowseeker_files` | Lightweight top-ranked file list |
|
|
185
|
+
|
|
186
|
+
## Caveats
|
|
187
|
+
|
|
188
|
+
- Config paths vary by OS and client version. Check your IDE's MCP documentation for the exact path.
|
|
189
|
+
- The host client controls autocomplete behavior and tool UI. Some clients show tools/prompts after selecting the server; others insert a server mention like `@mcp:flowseeker:`.
|
|
190
|
+
- FlowSeeker supplies context from your codebase. The client model performs reasoning over that context. FlowSeeker does not generate code, make edits, or run AI models.
|
|
191
|
+
- The structured-regex parser supports 13 languages. Semantic search is optional and disabled by default. See the [README](../README.md) for evidence-backed capabilities and known limitations.
|