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/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# FlowSeeker
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**Give AI coding agents the right files before they start guessing.**
|
|
6
6
|
|
|
7
7
|
[](https://marketplace.visualstudio.com/items?itemName=everestt2806.flowseeker)
|
|
8
8
|
[](https://open-vsx.org/extension/everestt2806/flowseeker)
|
|
@@ -11,365 +11,432 @@
|
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
14
|
-
FlowSeeker
|
|
14
|
+
FlowSeeker is a context-prep layer for AI coding workflows. Describe a task, and FlowSeeker scans the codebase, ranks the relevant files, explains why they matter, and returns a compact **Solve Packet** for Claude Code, Codex, VS Code Chat, Cursor, Windsurf, Antigravity, or any MCP-compatible client.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
## Choose Your Path
|
|
16
|
+
It does not try to replace your coding agent. It gives the agent a cleaner starting point: what to read, what may need editing, what is probably noise, what is missing, and which checks are worth running.
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
```text
|
|
19
|
+
Task: Fix grade export to Excel
|
|
20
|
+
|
|
21
|
+
FlowSeeker returns:
|
|
22
|
+
- likely edit files
|
|
23
|
+
- read-only context files
|
|
24
|
+
- routes/controllers/services/schema slots
|
|
25
|
+
- missing links if the flow is incomplete
|
|
26
|
+
- verification commands
|
|
27
|
+
- token-savings proof
|
|
28
|
+
- guardrails so the agent does not edit random files
|
|
29
|
+
```
|
|
25
30
|
|
|
26
31
|
---
|
|
27
32
|
|
|
28
|
-
##
|
|
33
|
+
## Why This Exists
|
|
29
34
|
|
|
30
|
-
|
|
35
|
+
AI coding agents are powerful, but on large repos they often spend the first part of a task doing blind exploration:
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
- reading unrelated files
|
|
38
|
+
- grepping broad keywords
|
|
39
|
+
- mixing stale context from another project
|
|
40
|
+
- filling gaps with guesses
|
|
41
|
+
- burning tokens before reaching the real edit location
|
|
33
42
|
|
|
34
|
-
|
|
35
|
-
- Explains **why** each file was selected — path match, content match, framework edge, dependency
|
|
36
|
-
- Separates **edit candidates** from **read-only context** and **verification targets**
|
|
37
|
-
- Reports **measured token savings** so you can see how much context the AI avoided loading
|
|
38
|
-
- Reports **context coverage** so token savings are judged alongside whether required flow slots were found
|
|
43
|
+
FlowSeeker handles that retrieval step first. The goal is simple: turn a vague code task into a small, evidence-backed context packet that an AI agent can act on.
|
|
39
44
|
|
|
40
45
|
---
|
|
41
46
|
|
|
42
|
-
##
|
|
47
|
+
## Use It Your Way
|
|
43
48
|
|
|
44
|
-
|
|
49
|
+
| Workflow | Best entry point |
|
|
50
|
+
|---|---|
|
|
51
|
+
| VS Code user | FlowSeeker sidebar or `@flowseeker /guide` |
|
|
52
|
+
| Claude Code / Codex CLI user | `flowseeker guide`, `flowseeker auto`, `flowseeker files` |
|
|
53
|
+
| MCP-first user | `flowseeker mcp`, `flowseeker-mcp`, or `fs-mcp` |
|
|
54
|
+
| Marketplace/OpenVSX user | Install the extension |
|
|
55
|
+
| Automation/eval user | Headless CLI and reproducible benchmark scripts |
|
|
45
56
|
|
|
46
|
-
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 30-Second Start
|
|
60
|
+
|
|
61
|
+
### VS Code Chat
|
|
47
62
|
|
|
48
63
|
```text
|
|
49
|
-
@flowseeker /guide The payment confirmation email is not
|
|
64
|
+
@flowseeker /guide The payment confirmation email is not sent after checkout
|
|
50
65
|
```
|
|
51
66
|
|
|
52
|
-
FlowSeeker
|
|
67
|
+
FlowSeeker retrieves the relevant context and returns an agent-ready Solve Packet.
|
|
53
68
|
|
|
54
69
|
```text
|
|
55
70
|
@flowseeker /auto Add SMS notification when payment fails
|
|
56
71
|
```
|
|
57
72
|
|
|
58
|
-
|
|
73
|
+
`/auto` starts from the same retrieval step, but asks the AI for a reviewable plan before edits.
|
|
59
74
|
|
|
60
|
-
###
|
|
75
|
+
### Claude Code / Codex CLI
|
|
61
76
|
|
|
62
|
-
|
|
77
|
+
Install from npm, then run FlowSeeker from the target repo:
|
|
63
78
|
|
|
64
79
|
```bash
|
|
65
|
-
|
|
66
|
-
```
|
|
80
|
+
npm i -g flowseeker
|
|
67
81
|
|
|
68
|
-
|
|
82
|
+
cd /path/to/your/repo
|
|
83
|
+
flowseeker guide "Fix checkout webhook retry"
|
|
84
|
+
flowseeker auto "Add CSV export with tests"
|
|
85
|
+
flowseeker files "Find the auth middleware"
|
|
86
|
+
flowseeker retrieve "Debug login session expiry"
|
|
87
|
+
```
|
|
69
88
|
|
|
70
|
-
|
|
89
|
+
FlowSeeker works immediately without embeddings. No API key, model, runtime, or setup is required for the default deterministic retrieval path.
|
|
71
90
|
|
|
72
|
-
|
|
91
|
+
FlowSeeker core does not bundle the local embedding runtime/model in the npm or VSIX package; install `flowseeker-local` only when you want local embeddings.
|
|
73
92
|
|
|
74
|
-
|
|
93
|
+
Optional local embeddings with no API key:
|
|
75
94
|
|
|
76
|
-
|
|
95
|
+
```bash
|
|
96
|
+
npm i -g flowseeker-local
|
|
97
|
+
flowseeker semantic init --local
|
|
98
|
+
flowseeker semantic check --test
|
|
99
|
+
```
|
|
77
100
|
|
|
78
|
-
|
|
101
|
+
If the ready local package is not available in your environment, use explicit project-level setup:
|
|
79
102
|
|
|
80
103
|
```bash
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
# Or install globally
|
|
86
|
-
npm i -g flowseeker
|
|
87
|
-
flowseeker-mcp --help
|
|
88
|
-
flowseeker-mcp --check-updates
|
|
104
|
+
flowseeker semantic local setup --yes # install @huggingface/transformers
|
|
105
|
+
flowseeker semantic local download --yes # fetch/cache model files
|
|
106
|
+
flowseeker semantic check --test
|
|
89
107
|
```
|
|
90
108
|
|
|
91
|
-
|
|
109
|
+
Offline mode (pre-cached model, no network): `flowseeker semantic local download --yes --offline`
|
|
92
110
|
|
|
93
|
-
|
|
111
|
+
Hosted embeddings are also supported through provider-neutral OpenAI-compatible config:
|
|
94
112
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
FlowSeeker also exposes short MCP prompts for clients that surface prompt suggestions:
|
|
113
|
+
```bash
|
|
114
|
+
flowseeker semantic init --openai-compatible
|
|
115
|
+
# set semanticModel / semanticBaseUrl in .flowseeker/config.json
|
|
116
|
+
# put your API key in .env as FLOWSEEKER_EMBEDDING_API_KEY
|
|
117
|
+
flowseeker semantic check --test
|
|
118
|
+
```
|
|
102
119
|
|
|
103
|
-
|
|
104
|
-
|--------|---------|
|
|
105
|
-
| `retrieve` | `flowseeker_retrieve` |
|
|
106
|
-
| `guide` | `flowseeker_guide` |
|
|
107
|
-
| `files` | `flowseeker_files` |
|
|
120
|
+
**Deterministic/no-embedding mode** works without setup and is the default. No API key, no runtime, no model - just code-structure analysis.
|
|
108
121
|
|
|
109
|
-
|
|
122
|
+
**Local evidence report:** Verify your local embedding setup produces valid vectors. The command is report-only - no install, no download, no network by default.
|
|
110
123
|
|
|
111
|
-
|
|
124
|
+
```bash
|
|
125
|
+
# Structured JSON report (preferred):
|
|
126
|
+
flowseeker semantic local evidence --json
|
|
127
|
+
flowseeker semantic local evidence --report .flowseeker/local-evidence.json
|
|
112
128
|
|
|
113
|
-
|
|
114
|
-
|
|
129
|
+
# Setup and download are explicit separate commands:
|
|
130
|
+
flowseeker semantic local setup --yes
|
|
131
|
+
flowseeker semantic local download --yes
|
|
115
132
|
```
|
|
116
133
|
|
|
117
|
-
|
|
118
|
-
|
|
134
|
+
The report includes: workspace, runtime/model status, readiness, provider, model ID, dimensions, vector count, finite check, embed latency, classification, and next action. Classifications: `runtime_missing`, `model_missing`, `model_invalid`, `pass`, `runtime_api_mismatch`, `embedding_shape_invalid`, `unknown_error`.
|
|
135
|
+
|
|
136
|
+
**Developer/manual opt-in script** (source-repo only, requires env flags):
|
|
137
|
+
```bash
|
|
138
|
+
set FLOWSEEKER_RUN_REAL_LOCAL_RUNTIME_TEST=1
|
|
139
|
+
set FLOWSEEKER_LOCAL_TEST_WORKSPACE=<path>
|
|
140
|
+
node scripts/smoke-local-real-runtime-manual.js
|
|
141
|
+
# Optional: allow install/download via FLOWSEEKER_ALLOW_RUNTIME_INSTALL=1 etc.
|
|
119
142
|
```
|
|
120
143
|
|
|
121
|
-
|
|
144
|
+
Recommended terminal flow:
|
|
122
145
|
|
|
123
|
-
```
|
|
124
|
-
|
|
146
|
+
```bash
|
|
147
|
+
flowseeker auto "Fix payment retry idempotency" --out .flowseeker/agent-prompt.md
|
|
125
148
|
```
|
|
126
149
|
|
|
127
|
-
|
|
150
|
+
Then paste the generated prompt into Claude Code, Codex CLI, or your preferred agent.
|
|
128
151
|
|
|
129
|
-
|
|
152
|
+
Short aliases are also available:
|
|
130
153
|
|
|
131
|
-
|
|
154
|
+
```bash
|
|
155
|
+
fs-guide "Fix checkout webhook retry"
|
|
156
|
+
fs-auto "Add CSV export with tests"
|
|
157
|
+
fs-files "Find the auth middleware"
|
|
158
|
+
```
|
|
132
159
|
|
|
133
|
-
|
|
160
|
+
### Claude Code MCP
|
|
134
161
|
|
|
135
|
-
-
|
|
136
|
-
- Windows: `%USERPROFILE%\.cursor\mcp.json`
|
|
162
|
+
After global install, run the one-command setup from your project:
|
|
137
163
|
|
|
138
|
-
|
|
164
|
+
```bash
|
|
165
|
+
# One-command setup (preview first, then apply):
|
|
166
|
+
flowseeker setup claude --no-exec
|
|
167
|
+
flowseeker setup claude --yes
|
|
139
168
|
|
|
140
|
-
|
|
169
|
+
# Optional: add ready local embeddings (no API key needed)
|
|
170
|
+
npm i -g flowseeker-local
|
|
141
171
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
"flowseeker": {
|
|
146
|
-
"command": "npx",
|
|
147
|
-
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "."]
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
172
|
+
# Verify everything:
|
|
173
|
+
flowseeker doctor --mcp
|
|
174
|
+
flowseeker semantic check --test
|
|
151
175
|
```
|
|
152
176
|
|
|
153
|
-
|
|
177
|
+
Also available: `flowseeker setup codex`, `flowseeker setup cursor`, `flowseeker setup vscode`. Then ask Claude Code to use FlowSeeker for the task. The MCP server exposes `flowseeker_guide`, `flowseeker_auto`, `flowseeker_retrieve`, and `flowseeker_files`.
|
|
154
178
|
|
|
155
|
-
|
|
179
|
+
### MCP Server
|
|
156
180
|
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
{
|
|
162
|
-
"mcpServers": {
|
|
163
|
-
"flowseeker": {
|
|
164
|
-
"command": "npx",
|
|
165
|
-
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "."]
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
181
|
+
```bash
|
|
182
|
+
npx -p flowseeker flowseeker-mcp --workspace /path/to/your/repo
|
|
169
183
|
```
|
|
170
184
|
|
|
171
|
-
|
|
185
|
+
Short alias after install:
|
|
172
186
|
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
"flowseeker": {
|
|
177
|
-
"command": "node",
|
|
178
|
-
"args": [
|
|
179
|
-
"D:\\Developing\\FlowSeeker\\dist\\cli\\mcpServer.js",
|
|
180
|
-
"--workspace",
|
|
181
|
-
"D:\\Developing\\FlowSeeker"
|
|
182
|
-
]
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
187
|
+
```bash
|
|
188
|
+
flowseeker mcp --workspace /path/to/your/repo
|
|
189
|
+
fs-mcp --workspace /path/to/your/repo
|
|
186
190
|
```
|
|
187
191
|
|
|
188
|
-
|
|
192
|
+
For Cursor, Antigravity, Windsurf, Claude Desktop, and VS Code/Copilot config snippets, see [docs/mcp-onboarding.md](docs/mcp-onboarding.md).
|
|
189
193
|
|
|
190
|
-
|
|
194
|
+
---
|
|
191
195
|
|
|
192
|
-
|
|
193
|
-
- Windows: `%USERPROFILE%\.codeium\windsurf\mcp_config.json`
|
|
196
|
+
## What A Solve Packet Contains
|
|
194
197
|
|
|
195
|
-
|
|
196
|
-
{
|
|
197
|
-
"mcpServers": {
|
|
198
|
-
"flowseeker": {
|
|
199
|
-
"command": "npx",
|
|
200
|
-
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "."]
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
```
|
|
198
|
+
FlowSeeker separates context by role so the agent can act without treating every file as an edit target.
|
|
205
199
|
|
|
206
|
-
|
|
200
|
+
| Section | Purpose |
|
|
201
|
+
|---|---|
|
|
202
|
+
| **Primary edit candidates** | Files most likely to need changes |
|
|
203
|
+
| **Read-only context** | Files that explain behavior but should not be edited by default |
|
|
204
|
+
| **Candidate Flow** | Route/controller/service/schema/test style flow slots |
|
|
205
|
+
| **Missing Links** | Required context that was not found, with search hints |
|
|
206
|
+
| **Noise Risk** | Files that matched keywords but may be irrelevant |
|
|
207
|
+
| **Verification** | Focused checks and test targets |
|
|
208
|
+
| **Token proof** | Solve Packet size compared with scanned/indexed workspace text |
|
|
207
209
|
|
|
208
|
-
|
|
210
|
+
This is the core idea: the agent starts with a map, not a pile of files.
|
|
209
211
|
|
|
210
|
-
|
|
211
|
-
{
|
|
212
|
-
"servers": {
|
|
213
|
-
"flowseeker": {
|
|
214
|
-
"command": "npx",
|
|
215
|
-
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "."]
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
```
|
|
212
|
+
---
|
|
220
213
|
|
|
221
|
-
|
|
214
|
+
## Features
|
|
222
215
|
|
|
223
|
-
|
|
216
|
+
- **Task-aware retrieval**: understands the task shape, extracts keywords, and checks required context slots.
|
|
217
|
+
- **Evidence-ranked files**: every selected file includes score, role, slot, confidence, and reasons.
|
|
218
|
+
- **Solve Packet 3.0**: compact markdown packet designed for AI coding agents.
|
|
219
|
+
- **CLI-first workflow**: `fs-guide`, `fs-auto`, `fs-files`, `fs-retrieve`, and `fs-mcp`.
|
|
220
|
+
- **One-command install path**: `npm i -g flowseeker`, then `flowseeker guide`, `flowseeker auto`, or `flowseeker mcp`.
|
|
221
|
+
- **MCP support**: exposes retrieval tools and prompts through a standalone stdio server.
|
|
222
|
+
- **VS Code integration**: sidebar, result tree, Native Chat participant, and bundled MCP provider where supported.
|
|
223
|
+
- **Structured extraction**: structured-regex parser for 13 languages.
|
|
224
|
+
- **Semantic retrieval setup**: optional local or hosted embeddings configured via `.flowseeker/config.json`, verified with `flowseeker semantic check --test`.
|
|
225
|
+
- **Cache safety**: atomic cache writes, corrupt-cache recovery, and delete cleanup checks.
|
|
226
|
+
- **Honest fallbacks**: if context is incomplete, FlowSeeker reports missing links instead of pretending it knows.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## MCP Tools
|
|
231
|
+
|
|
232
|
+
FlowSeeker exposes these MCP tools:
|
|
233
|
+
|
|
234
|
+
| Tool | Use |
|
|
235
|
+
|---|---|
|
|
236
|
+
| `flowseeker_retrieve` | Return the full Solve Packet |
|
|
237
|
+
| `flowseeker_guide` | Return an agent guidance prompt |
|
|
238
|
+
| `flowseeker_auto` | Return a reviewable implementation-plan prompt |
|
|
239
|
+
| `flowseeker_files` | Return top ranked files only |
|
|
240
|
+
|
|
241
|
+
Example MCP config:
|
|
224
242
|
|
|
225
243
|
```json
|
|
226
244
|
{
|
|
227
245
|
"mcpServers": {
|
|
228
246
|
"flowseeker": {
|
|
229
247
|
"command": "npx",
|
|
230
|
-
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "
|
|
248
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "."]
|
|
231
249
|
}
|
|
232
250
|
}
|
|
233
251
|
}
|
|
234
252
|
```
|
|
235
253
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
1. Your IDE sends a tool call to the FlowSeeker MCP server.
|
|
239
|
-
2. FlowSeeker runs the headless pipeline: scan workspace, rank evidence, build Solve Packet.
|
|
240
|
-
3. The compact result returns to your IDE's model.
|
|
241
|
-
4. The model answers in your native chat with focused context instead of reading the whole repository.
|
|
254
|
+
VS Code/Copilot `.vscode/mcp.json` uses `servers` instead of `mcpServers`.
|
|
242
255
|
|
|
243
256
|
---
|
|
244
257
|
|
|
245
|
-
##
|
|
258
|
+
## Evidence-Backed Capabilities
|
|
246
259
|
|
|
247
|
-
FlowSeeker
|
|
260
|
+
FlowSeeker avoids inflated claims. The public claims below are tied to reproducible local checks.
|
|
248
261
|
|
|
249
|
-
|
|
262
|
+
| Capability | Evidence |
|
|
263
|
+
|---|---|
|
|
264
|
+
| Cold scan under 2s (153 files) / 5s (149 files) for benchmarked workspaces | Generated by `scripts/smoke-phase06-warm-query-performance.js` |
|
|
265
|
+
| Warm reuse with zero churn on unchanged workspace | Phase 06 warm query report |
|
|
266
|
+
| Solve Packet 3.0 with 5 role sections | Phase 07 packet gate report |
|
|
267
|
+
| Candidate Flow with numbered execution steps | Packet gate report and Solve Packet output |
|
|
268
|
+
| Actionable Missing Links with slot-specific search hints | Packet gate report and Solve Packet output |
|
|
269
|
+
| Runnable verification commands with separate metadata | Packet gate report |
|
|
270
|
+
| Structured-regex parser for 13 languages | `src/index/structuredExtractor.ts` |
|
|
271
|
+
| Delete safety and corrupt-cache recovery | Phase 06 smoke scripts |
|
|
272
|
+
| VS Code extension, MCP stdio, and headless CLI | `src/extension.ts`, `src/mcp/mcpTools.ts`, `src/cli/*` |
|
|
273
|
+
| 9 smoke tests passing on clean compile | `npm.cmd run test:smoke` |
|
|
250
274
|
|
|
251
|
-
|
|
252
|
-
|-------|-----------|---------------|
|
|
253
|
-
| `local_bpe` / `cl100k_base` | Default headless, sidebar, and report path | Workspace text and Solve Packet text are counted with the same BPE tokenizer |
|
|
254
|
-
| VS Code model `countTokens()` | Native VS Code Chat when the selected model exposes token counting | The exact prompt sent to the selected chat model is counted by that model provider |
|
|
255
|
-
| `heuristic` / `chars_per_4` | Fallback only if local tokenization fails | Conservative compatibility fallback, marked as heuristic |
|
|
275
|
+
### Reproduce The Proof
|
|
256
276
|
|
|
257
|
-
|
|
277
|
+
```bash
|
|
278
|
+
npm.cmd run compile --silent
|
|
279
|
+
npm.cmd run test:manifest
|
|
280
|
+
npm.cmd run test:smoke
|
|
258
281
|
|
|
259
|
-
|
|
282
|
+
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
|
|
283
|
+
node scripts/smoke-phase06-warm-query-performance.js --out-md .flowseeker/reports/phase06-6g-warm-query-performance.md --out-json .flowseeker/reports/phase06-6g-warm-query-performance.json
|
|
284
|
+
```
|
|
260
285
|
|
|
261
|
-
|
|
262
|
-
|--------|---------|
|
|
263
|
-
| Solve Packet tokens | Tokens in the FlowSeeker packet prepared for the AI |
|
|
264
|
-
| Workspace tokens | Tokens in eligible workspace text files, counted during indexing |
|
|
265
|
-
| Reduction | Context reduction from workspace text to Solve Packet |
|
|
266
|
-
| Context coverage | Required slots found for the task shape, such as entry, handler, data, validation, permissions, side effects, or tests |
|
|
286
|
+
Generated reports are written under `.flowseeker/reports/`.
|
|
267
287
|
|
|
268
288
|
---
|
|
269
289
|
|
|
270
|
-
##
|
|
290
|
+
## Supported Languages
|
|
271
291
|
|
|
272
|
-
|
|
292
|
+
Structured-regex extraction currently supports:
|
|
273
293
|
|
|
274
|
-
|
|
275
|
-
|---------|--------------|
|
|
276
|
-
| `@flowseeker /guide <task>` | Retrieve context, get explanation and guidance |
|
|
277
|
-
| `@flowseeker /auto <task>` | Retrieve context, get a reviewable plan before any edits |
|
|
278
|
-
| `@flowseeker /apply <planId>` | After approving a plan, generate structured edits |
|
|
294
|
+
TypeScript, JavaScript, Python, PHP, Dart, Java, Go, Ruby, C#, Swift, Kotlin, Rust, and Scala.
|
|
279
295
|
|
|
280
|
-
|
|
296
|
+
Tree-sitter support is available for TypeScript/JavaScript but is not part of the default public benchmark claim.
|
|
281
297
|
|
|
282
|
-
|
|
298
|
+
---
|
|
283
299
|
|
|
284
|
-
|
|
285
|
-
2. Ask the AI for a reviewable plan in the user's language.
|
|
286
|
-
3. Disable approval if the AI only asks for more context instead of returning a real plan.
|
|
287
|
-
4. After approval, ask for structured JSON edits only.
|
|
288
|
-
5. Show a diff before applying edits, unless auto-apply is explicitly enabled.
|
|
289
|
-
6. Run focused verification commands when requested or allowed by your approval policy.
|
|
300
|
+
## Optional Semantic Retrieval
|
|
290
301
|
|
|
291
|
-
|
|
302
|
+
FlowSeeker works without embeddings by default. Semantic retrieval only runs when you explicitly enable it.
|
|
292
303
|
|
|
293
|
-
|
|
304
|
+
Default mode needs no setup:
|
|
294
305
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
| `FlowSeeker: Copy Context Pack` | Copy evidence as markdown for external AI tools |
|
|
299
|
-
| `FlowSeeker: Check Host Compatibility` | Inspect Native Chat, Language Model, and MCP support in the current editor |
|
|
306
|
+
```bash
|
|
307
|
+
flowseeker guide "Find the checkout retry logic"
|
|
308
|
+
```
|
|
300
309
|
|
|
301
|
-
|
|
310
|
+
Optional local embeddings with no API key:
|
|
302
311
|
|
|
303
|
-
|
|
312
|
+
```bash
|
|
313
|
+
npm i -g flowseeker-local
|
|
314
|
+
flowseeker semantic init --local
|
|
315
|
+
flowseeker semantic check --test
|
|
316
|
+
```
|
|
304
317
|
|
|
305
|
-
|
|
318
|
+
Optional hosted embeddings:
|
|
306
319
|
|
|
307
|
-
|
|
320
|
+
```bash
|
|
321
|
+
flowseeker semantic init --openai-compatible
|
|
322
|
+
# Edit .flowseeker/config.json:
|
|
323
|
+
# semanticModel = the embedding model exposed by your provider
|
|
324
|
+
# semanticBaseUrl = provider endpoint if needed
|
|
325
|
+
# Add the key to .env:
|
|
326
|
+
# FLOWSEEKER_EMBEDDING_API_KEY=your_key_here
|
|
327
|
+
flowseeker semantic check --test
|
|
328
|
+
```
|
|
308
329
|
|
|
309
|
-
|
|
330
|
+
Non-secret settings (provider, model, base URL, cache, limits) are written to `.flowseeker/config.json`. Only `FLOWSEEKER_EMBEDDING_API_KEY` goes into `.env`.
|
|
310
331
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
332
|
+
Expected result:
|
|
333
|
+
|
|
334
|
+
```text
|
|
335
|
+
Result: active
|
|
336
|
+
Provider test: passed
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
**Generic OpenAI-compatible path:**
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
flowseeker semantic init --openai-compatible
|
|
343
|
+
# edit .flowseeker/config.json to set semanticModel before --test
|
|
344
|
+
# set semanticBaseUrl if your provider needs a custom endpoint
|
|
345
|
+
# fill FLOWSEEKER_EMBEDDING_API_KEY in .env
|
|
346
|
+
flowseeker semantic check --test
|
|
322
347
|
```
|
|
323
348
|
|
|
324
|
-
|
|
349
|
+
Config keys in `.flowseeker/config.json`:
|
|
350
|
+
- `semanticProvider` (e.g. `openaiCompatible`)
|
|
351
|
+
- `semanticBaseUrl` (provider endpoint)
|
|
352
|
+
- `semanticModel` (embedding model name from your provider)
|
|
353
|
+
- `semanticApiKeyEnv` (env var name for the key)
|
|
354
|
+
|
|
355
|
+
If token usage does not change on your provider dashboard, check `flowseeker semantic check` first. Most cases mean semantic is still disabled, the key is missing from the target repo's `.env`, or cached embeddings are being reused.
|
|
356
|
+
|
|
357
|
+
**Embedding modes**: FlowSeeker works without embeddings by default.
|
|
358
|
+
|
|
359
|
+
- **Deterministic (default)**: No setup, no API key, no runtime, no model. Code-structure analysis only.
|
|
360
|
+
- **Local (no API key)**: Install the optional `flowseeker-local` package, run `flowseeker semantic init --local`, then `flowseeker semantic check --test`. If needed, use project-level `semantic local setup/download`.
|
|
361
|
+
- **Hosted**: Bring your own embedding endpoint, model, and API key. Use `flowseeker semantic init --openai-compatible`, set the model/base URL, put the key in `.env`, then run `flowseeker semantic check --test`.
|
|
362
|
+
|
|
363
|
+
Use `flowseeker semantic check` or `flowseeker doctor` to confirm your status.
|
|
364
|
+
|
|
365
|
+
**Hosted provider note**: `--openai-compatible` initializes a provider-neutral config. Before `--test`, set `semanticModel` to the embedding model exposed by your provider. Set `semanticBaseUrl` if your provider needs a custom endpoint. The API key goes in `.env`. The model must match the provider and base URL.
|
|
325
366
|
|
|
326
367
|
---
|
|
327
368
|
|
|
328
369
|
## Install
|
|
329
370
|
|
|
330
|
-
### VS Code
|
|
371
|
+
### VS Code / OpenVSX
|
|
331
372
|
|
|
332
|
-
Search **FlowSeeker** in VS Code Extensions
|
|
373
|
+
Search **FlowSeeker** in VS Code Extensions, or run:
|
|
333
374
|
|
|
334
|
-
```
|
|
375
|
+
```text
|
|
335
376
|
ext install everestt2806.flowseeker
|
|
336
377
|
```
|
|
337
378
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
```
|
|
341
|
-
open-vsx.org/extension/everestt2806/flowseeker
|
|
342
|
-
```
|
|
379
|
+
Also available on Open VSX for VSCodium and Eclipse Theia-compatible hosts.
|
|
343
380
|
|
|
344
|
-
### MCP
|
|
381
|
+
### npm / MCP / CLI
|
|
345
382
|
|
|
346
383
|
```bash
|
|
347
|
-
# Run on demand (no install needed)
|
|
348
384
|
npx -p flowseeker flowseeker-mcp --help
|
|
349
|
-
|
|
350
|
-
# Or install globally
|
|
351
385
|
npm i -g flowseeker
|
|
386
|
+
flowseeker --help
|
|
387
|
+
fs-guide --help
|
|
388
|
+
flowseeker mcp --help
|
|
389
|
+
flowseeker semantic check
|
|
352
390
|
```
|
|
353
391
|
|
|
354
392
|
---
|
|
355
393
|
|
|
356
|
-
##
|
|
394
|
+
## Current Limits
|
|
395
|
+
|
|
396
|
+
These are intentionally explicit so users know what is proven today:
|
|
357
397
|
|
|
358
|
-
-
|
|
359
|
-
-
|
|
398
|
+
- No sub-second cold-scan guarantee.
|
|
399
|
+
- AI/LLM-based reranking exists experimentally but is disabled by default.
|
|
400
|
+
- Semantic/embedding retrieval is configurable but disabled by default.
|
|
401
|
+
- Tree-sitter parser support exists, but public proof uses structured-regex extraction.
|
|
402
|
+
- Graph expansion is not a production default.
|
|
403
|
+
- Monorepo, git-history, and LSP integrations are not public guarantees yet.
|
|
360
404
|
|
|
361
405
|
---
|
|
362
406
|
|
|
363
|
-
##
|
|
407
|
+
## Roadmap
|
|
364
408
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
409
|
+
- Real-repo demo screenshots and short videos.
|
|
410
|
+
- More public benchmark fixtures across larger repo shapes.
|
|
411
|
+
- Cleaner first-run onboarding for MCP hosts.
|
|
412
|
+
- Bundled extension packaging to reduce VSIX size and startup overhead.
|
|
413
|
+
- Optional semantic retrieval profiles with provider-specific setup checks.
|
|
414
|
+
|
|
415
|
+
---
|
|
370
416
|
|
|
371
417
|
---
|
|
372
418
|
|
|
419
|
+
## Rollback / Disable Semantic Retrieval
|
|
420
|
+
|
|
421
|
+
FlowSeeker works without embeddings. To return to deterministic/no-embedding mode:
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
# Disable semantic retrieval
|
|
425
|
+
flowseeker semantic check --workspace . # confirm current status
|
|
426
|
+
# Edit .flowseeker/config.json: set "semanticEnabled": false
|
|
427
|
+
# Or remove the "index" block's semantic keys entirely
|
|
428
|
+
flowseeker benchmark # verify: deterministic_no_embedding = first_class
|
|
429
|
+
flowseeker semantic check # should show Result: disabled
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
Safe to remove from `.flowseeker/config.json`:
|
|
433
|
+
- `semanticEnabled`, `semanticProvider`, `semanticBaseUrl`, `semanticModel`, `semanticApiKeyEnv`, `semanticCache`, `semanticMaxFilesPerRun`, `semanticTimeoutMs`, `semanticLocalModelPath`, `semanticLocalModelId`, `semanticDimensions`, `semanticRuntime`
|
|
434
|
+
|
|
435
|
+
Safe to remove from `.env`:
|
|
436
|
+
- `FLOWSEEKER_EMBEDDING_API_KEY`
|
|
437
|
+
|
|
438
|
+
No models are bundled or auto-downloaded. Removing the config keys above returns FlowSeeker to its default deterministic retrieval mode. Use `flowseeker benchmark` anytime to confirm what is active.
|
|
439
|
+
|
|
373
440
|
## License
|
|
374
441
|
|
|
375
442
|
MIT
|