flowseeker 0.1.7
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/CHANGELOG.md +111 -0
- package/COMPATIBILITY.md +281 -0
- package/LICENSE +21 -0
- package/README.md +375 -0
- package/dist/adapters/frameworkEdges.js +586 -0
- package/dist/agent/approvalPolicy.js +81 -0
- package/dist/agent/commandRunner.js +166 -0
- package/dist/agent/flowCommandRunner.js +124 -0
- package/dist/agent/mcpToolRunner.js +167 -0
- package/dist/auth/githubAuth.js +71 -0
- package/dist/auth/modelList.js +127 -0
- package/dist/auth/oauthHandler.js +377 -0
- package/dist/chat/nativeChatParticipant.js +616 -0
- package/dist/cli/mcpServer.js +383 -0
- package/dist/cli/runEvaluation.js +789 -0
- package/dist/cli/runReplay.js +481 -0
- package/dist/commands/checkHostCompatibility.js +149 -0
- package/dist/commands/copyAgentPrompt.js +52 -0
- package/dist/commands/copyContext.js +54 -0
- package/dist/commands/explainSelectionRelevance.js +57 -0
- package/dist/commands/findRelevantContext.js +127 -0
- package/dist/commands/openEvidence.js +49 -0
- package/dist/commands/openMcpConfig.js +81 -0
- package/dist/commands/openRelatedTests.js +54 -0
- package/dist/commands/rebuildIndex.js +45 -0
- package/dist/commands/runEvaluationSuite.js +323 -0
- package/dist/commands/runReplaySuite.js +228 -0
- package/dist/config/defaultConfig.js +72 -0
- package/dist/config/loadConfig.js +84 -0
- package/dist/config/loadConfigFromPath.js +60 -0
- package/dist/extension.js +513 -0
- package/dist/gateway/agentPrompts.js +176 -0
- package/dist/gateway/aiGateway.js +1255 -0
- package/dist/gateway/aiProviders.js +901 -0
- package/dist/gateway/contextExpansion.js +331 -0
- package/dist/gateway/editProposalStore.js +238 -0
- package/dist/gateway/planProposalStore.js +28 -0
- package/dist/index/cacheStore.js +51 -0
- package/dist/index/chunker.js +45 -0
- package/dist/index/dependencyExtractor.js +107 -0
- package/dist/index/fileDiscovery.js +177 -0
- package/dist/index/structuredExtractor.js +256 -0
- package/dist/index/workspaceIndex.js +518 -0
- package/dist/mcp/mcpConfig.js +154 -0
- package/dist/mcp/mcpProvider.js +109 -0
- package/dist/mcp/mcpTools.js +215 -0
- package/dist/pipeline/agentPrompt.js +79 -0
- package/dist/pipeline/agentPromptHeadless.js +85 -0
- package/dist/pipeline/contextBlueprint.js +346 -0
- package/dist/pipeline/contextPack.js +80 -0
- package/dist/pipeline/diffPreview.js +79 -0
- package/dist/pipeline/evaluationMetrics.js +154 -0
- package/dist/pipeline/evidenceGraph.js +389 -0
- package/dist/pipeline/feedback.js +215 -0
- package/dist/pipeline/fileGroups.js +84 -0
- package/dist/pipeline/fileScanner.js +866 -0
- package/dist/pipeline/nodeScan.js +219 -0
- package/dist/pipeline/ranker.js +563 -0
- package/dist/pipeline/responseLanguage.js +39 -0
- package/dist/pipeline/retrievalPlan.js +163 -0
- package/dist/pipeline/runHeadless.js +54 -0
- package/dist/pipeline/runPipeline.js +114 -0
- package/dist/pipeline/solvePacket.js +382 -0
- package/dist/pipeline/subsystem.js +257 -0
- package/dist/pipeline/taskUnderstanding.js +453 -0
- package/dist/pipeline/tokenSavings.js +146 -0
- package/dist/pipeline/universalScan.js +216 -0
- package/dist/pipeline/verifyAfterApply.js +233 -0
- package/dist/runtime/capabilities.js +71 -0
- package/dist/runtime/hostDetect.js +98 -0
- package/dist/runtime/hostTier.js +68 -0
- package/dist/runtime/statusBar.js +80 -0
- package/dist/skills/skillRegistry.js +208 -0
- package/dist/types.js +3 -0
- package/dist/ui/chatViewProvider.js +3899 -0
- package/dist/ui/resultTreeProvider.js +174 -0
- package/dist/usage/quotaTracker.js +358 -0
- package/dist/utils/async.js +30 -0
- package/dist/utils/logger.js +64 -0
- package/dist/utils/text.js +364 -0
- package/dist/utils/updateChecker.js +140 -0
- package/package.json +561 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# FlowSeeker Changelog
|
|
2
|
+
|
|
3
|
+
## 0.1.7 - Update Notice and Deterministic Accuracy
|
|
4
|
+
|
|
5
|
+
- **Update notice:** Extension checks npm for newer FlowSeeker versions at most once per day, shows a non-modal update notice, supports dismissing a specific version, and fails silently when offline.
|
|
6
|
+
- **MCP CLI version checks:** `flowseeker-mcp --version` prints the package version, and `flowseeker-mcp --check-updates` checks npm explicitly without running the MCP stdio server.
|
|
7
|
+
- **MCP protocol safety:** Normal MCP server startup does not perform passive network update checks and keeps stdout reserved for JSON-RPC only.
|
|
8
|
+
- **Caller/callee candidate expansion:** Workspace index now records extracted call names and uses symbol/call relationships to expand candidate files beyond imports.
|
|
9
|
+
- **Generated/noise downranking:** Generated folders, snapshots, mocks, protobuf/gRPC outputs, bundles, framework build folders, and similar noise paths are downranked without being excluded.
|
|
10
|
+
- **High-precision task terms:** Quoted literals and route-like paths are preserved as literal retrieval terms before broad keyword matching.
|
|
11
|
+
|
|
12
|
+
### 0.1.7 Files changed
|
|
13
|
+
`src/utils/updateChecker.ts` (new), `src/extension.ts`, `src/cli/mcpServer.ts`, `src/index/workspaceIndex.ts`, `src/pipeline/taskUnderstanding.ts`, `package.json`, `package-lock.json`, `CHANGELOG.md`, `README.md`, `COMPATIBILITY.md`
|
|
14
|
+
|
|
15
|
+
## 0.1.6 - Accuracy, MCP Native Chat, and Package Readiness
|
|
16
|
+
|
|
17
|
+
- **Quality Score:** Added single composite metric `computeQualityScore()` combining hit@10, context coverage, avoid-hit rate, MRR, and token reduction into one comparable number (Quality = 0.35·Hit@10 + 0.25·Coverage + 0.20·(1−AvoidHitRate) + 0.10·MRR + 0.10·TokenReduction). Printed in every headless evaluation summary line.
|
|
18
|
+
- **Benchmark expansion:** Wired up 22 fixture repos with 697 labeled cases (including 2 negative cases for AvoidHitRate) via `.flowseeker/eval-benchmark-mega.json`. Added `scripts/validate-eval-paths.js` — deterministic ground-truth checker that mirrors runtime path matching, with `--fix` mode to prune dead paths. Recorded baseline Quality Score at 0.741.
|
|
19
|
+
- **Negative term utilization:** Extended `detectNegativeTerms()` with `except` and `ngoại trừ` (Vietnamese exclusion) cues. Existing ranker penalty (-24 score + contrastContext) already wired via `applyTaskMetadata()`. Tested against the full benchmark; zero regression at the conservative pattern set.
|
|
20
|
+
- **Active file context boost:** Ranker now accepts optional `editorContext` (active file, directory siblings, recently opened tabs) and applies small score boosts (+15 active file, +5 sibling dir, +8 recent tabs). Editor context is purely optional — headless evaluation is completely unaffected.
|
|
21
|
+
- **Deterministic eval validator:** New `scripts/validate-eval-paths.js` validates every expected/avoid/group path resolves to a real fixture file. Mirrors runtime `pathMatches()` semantics (exact, suffix, substring). `--fix` mode prunes dead paths and drops unmeasurable cases.
|
|
22
|
+
- **MCP prompt discovery:** Standalone MCP server now advertises `prompts` capability and supports `prompts/list` + `prompts/get` for `retrieve`, `guide`, and `files`. These prompts map to the stable tools `flowseeker_retrieve`, `flowseeker_guide`, and `flowseeker_files` so Native Chat hosts can show short suggestions when their UI supports MCP prompt/tool autocomplete.
|
|
23
|
+
- **MCP metadata polish:** Tightened tool descriptions and input schema wording for truncated IDE suggestion UIs while keeping the stable tool names unchanged.
|
|
24
|
+
- **Cross-IDE config correctness:** Fixed MCP help/docs to use `mcpServers` for Cursor, Antigravity, Windsurf, Claude Desktop, and `servers` only for VS Code/Copilot `.vscode/mcp.json`.
|
|
25
|
+
- **Antigravity Native Chat note:** Documented current Antigravity behavior: selecting FlowSeeker may insert `@mcp:flowseeker:` without showing second-level command suggestions. FlowSeeker still works through natural language or direct tool names; autocomplete visibility is host-controlled.
|
|
26
|
+
- **npm MCP readiness:** Verified `flowseeker-mcp` builds from `dist/cli/mcpServer.js`, responds to `tools/list` and `prompts/list`, and is included by `npm pack --dry-run` for users who want MCP-only integration without installing the extension.
|
|
27
|
+
|
|
28
|
+
### 0.1.6 Files changed (vs 0.1.5 baseline)
|
|
29
|
+
`src/pipeline/evaluationMetrics.ts`, `src/cli/runEvaluation.ts`, `scripts/validate-eval-paths.js` (new), `scripts/render-icon.js` (new), `TODO-0.1.6.md` (new), `src/pipeline/taskUnderstanding.ts`, `src/pipeline/ranker.ts`, `src/pipeline/runPipeline.ts`, `src/cli/mcpServer.ts`, `src/mcp/mcpTools.ts`, `notes/Req5.txt`, `notes/mcp-config-paths.md`, `.gitignore`, `.vscodeignore`, `.npmignore` (new), `README.md`, `ARCHITECTURE.md`, `COMPATIBILITY.md`, `MARKETPLACE_DEMO.md`, `UPDATE_GUIDE.md`, `plan.md`
|
|
30
|
+
|
|
31
|
+
## 0.1.5 - Agent UX Stability, Cross-Host Compatibility, and MCP Server
|
|
32
|
+
|
|
33
|
+
- **MCP Server:** Added standalone MCP server (`flowseeker-mcp`) exposing FlowSeeker retrieval as MCP tools. Works with Cursor, Antigravity, Windsurf, Claude Desktop, and any MCP-compliant AI client.
|
|
34
|
+
- **MCP tools:** `flowseeker_retrieve` (full Solve Packet), `flowseeker_guide` (agent prompt), `flowseeker_files` (lightweight file list).
|
|
35
|
+
- **Cross-IDE notification:** FlowSeeker now detects Cursor, Antigravity, and Windsurf hosts at startup and shows a one-time guidance notification pointing users to the sidebar chat or MCP setup.
|
|
36
|
+
- **Headless agent prompt:** Added `agentPromptHeadless.ts` — agent solve prompt generator without VS Code dependency, used by MCP server and CLI.
|
|
37
|
+
- **Standalone CLI binary:** `flowseeker-mcp` bin for running the FlowSeeker MCP server outside of any IDE.
|
|
38
|
+
- **Host detection:** FlowSeeker now identifies the editor host at startup (VS Code, Cursor, Antigravity, Windsurf, VSCodium, Theia) and logs the identity + capabilities to the Output channel.
|
|
39
|
+
- **Runtime probing:** Beyond `typeof` checks, FlowSeeker now calls `vscode.lm.selectChatModels()` to count actual available models and vendors — a reliable signal of whether the host exposes usable AI models.
|
|
40
|
+
- **Tier table:** Single source of truth for host capabilities — `native-full` (VS Code/Insiders), `native-unverified` (Cursor, Antigravity, Windsurf — API exists but not confirmed to render), `sidebar-primary` (VSCodium, Theia — no API).
|
|
41
|
+
- **Shared command runner:** Core retrieve→ask flow extracted into `flowCommandRunner.ts` so both native chat and sidebar use the same logic.
|
|
42
|
+
- **Enhanced compatibility check:** `FlowSeeker: Check Host Compatibility` now shows host identity, tier, live model probe results, and offers human-in-the-loop verification for unverified hosts.
|
|
43
|
+
- **Status bar indicator:** Shows current tier mode (`FlowSeeker` for native, `FlowSeeker: Sidebar` for sidebar-only) with tooltip explaining why. Click opens compatibility report.
|
|
44
|
+
- **JSON prompt hardening:** Edit generation instruction moved to END of prompt (after context pack), strengthened wording, added `response_format: { type: "json_object" }` for OpenAI-compatible providers, improved JSON extraction from prose responses.
|
|
45
|
+
- **Per-file apply status:** Edits applied file-by-file with individual success/failure reporting including file name and reason.
|
|
46
|
+
- **Graded provider diagnosis:** `testProvider` classifies errors (401/403 credentials, 429 quota vs rate-limit, 5xx server, network, missing CLI) with actionable fix steps.
|
|
47
|
+
- **MCP server visibility:** Agent policy tooltip shows each MCP server name, type, and status (configured/disabled/misconfigured).
|
|
48
|
+
- **Feedback hardening:** Save confirmation includes file path and replay hint. CLI replay shows original top files for drift detection.
|
|
49
|
+
- Added `COMPATIBILITY.md` with detailed host compatibility matrix and model sharing explanation.
|
|
50
|
+
|
|
51
|
+
### 0.1.5 Files changed
|
|
52
|
+
`src/runtime/hostDetect.ts` (new), `src/runtime/hostTier.ts` (new), `src/runtime/statusBar.ts` (new), `src/agent/flowCommandRunner.ts` (new), `src/mcp/mcpTools.ts` (new), `src/pipeline/agentPromptHeadless.ts` (new), `src/cli/mcpServer.ts` (new), `src/commands/checkHostCompatibility.ts`, `src/extension.ts`, `src/ui/chatViewProvider.ts`, `src/gateway/aiGateway.ts`, `src/gateway/aiProviders.ts`, `src/gateway/agentPrompts.ts`, `src/gateway/editProposalStore.ts`, `src/cli/runReplay.ts`, `src/pipeline/tokenSavings.ts`, `package.json`, `COMPATIBILITY.md` (new)
|
|
53
|
+
|
|
54
|
+
## 0.1.4 - Token Proof Panel and Feedback Hardening
|
|
55
|
+
|
|
56
|
+
- Added sidebar proof panel showing token proof status (complete/partial/unavailable) with differentiated visual states per retrieval card.
|
|
57
|
+
- Added context coverage display in the proof panel showing found/missing required slots.
|
|
58
|
+
- Added proof warnings in the metric card for partial scans, capped evidence, and missing slots.
|
|
59
|
+
- Added one-click "Copy token proof" action that copies a formatted token savings summary including proof status, coverage, and warnings.
|
|
60
|
+
- Feedback save confirmation now includes the saved file path and a replay hint.
|
|
61
|
+
- CLI replay reports now show original top files from feedback snapshots alongside current top files for drift visibility.
|
|
62
|
+
|
|
63
|
+
## 0.1.3 - Token Savings Proof
|
|
64
|
+
|
|
65
|
+
- Added measured token savings to FlowSeeker results, comparing Solve Packet tokens against indexed workspace text tokens.
|
|
66
|
+
- Uses local BPE token counting with `cl100k_base` for headless, sidebar, and report metrics, with heuristic fallback only when tokenization fails.
|
|
67
|
+
- Counts the actual prompt through VS Code `LanguageModelChat.countTokens()` when the selected native chat model exposes token counting.
|
|
68
|
+
- Added generic Context Blueprint coverage so FlowSeeker checks required flow slots for each task shape instead of ranking only by keyword score.
|
|
69
|
+
- Updated Solve Packet generation to preserve required context slots, report missing links, and mark likely noise.
|
|
70
|
+
- Improved plan approval safety: responses that only ask to read more files are no longer treated as approvable plans.
|
|
71
|
+
- Added bounded context expansion and retry when the AI explains that the first Solve Packet is insufficient.
|
|
72
|
+
- Added structured-edit handling with diff preview, scope lock, apply actions, and verification command proposals.
|
|
73
|
+
- Added sidebar chat history, provider profiles, model switching, provider model fetch, and compact quota/usage status.
|
|
74
|
+
- Added agent controls for workspace edit approval, safe command proposals, MCP/tool proposals, and user-defined prompt rules.
|
|
75
|
+
- Added host compatibility reporting for Native Chat, Language Model, and MCP support across VS Code-compatible editors.
|
|
76
|
+
- Added sidebar feedback capture and real-world replay support so retrieval misses can become regression cases.
|
|
77
|
+
- Normalized feedback kinds from the sidebar and legacy records so replay metrics classify missing context consistently.
|
|
78
|
+
- Shows compact token reduction in native VS Code Chat after retrieval.
|
|
79
|
+
- Added a sidebar chat fallback for VS Code-compatible editors that do not expose the native VS Code Chat participant API.
|
|
80
|
+
- Added token savings and context coverage metrics to headless and VS Code evaluation reports alongside hit@K, MRR, and scan duration.
|
|
81
|
+
- Keeps token reduction wording technical, with retrieval quality measured separately.
|
|
82
|
+
|
|
83
|
+
## 0.1.2 - Scan UX and Logo Polish
|
|
84
|
+
|
|
85
|
+
- Refined the FlowSeeker logo assets for extension icon, activity bar, and native chat usage.
|
|
86
|
+
- Kept chat scan progress compact by updating status lines instead of flooding the conversation.
|
|
87
|
+
- Improved AI plan language behavior so generated plans follow the user's request language when set to auto.
|
|
88
|
+
- Tightened package excludes so Marketplace builds do not ship local caches, source maps, or reference raster assets.
|
|
89
|
+
|
|
90
|
+
## 0.1.1 - Large Repo Stabilization
|
|
91
|
+
|
|
92
|
+
- Added persistent workspace indexing and dependency expansion to reduce full-codebase scans.
|
|
93
|
+
- Added scan budgets for max files, bytes, duration, raw evidence, and indexed candidates.
|
|
94
|
+
- Improved Solve Packet output with clearer trace, context buckets, uncertainty notes, and agent guidance.
|
|
95
|
+
- Added headless evaluation support for repeatable retrieval tests across sample workspaces.
|
|
96
|
+
|
|
97
|
+
## 0.1.0 - Initial Release
|
|
98
|
+
|
|
99
|
+
- **Core retrieval pipeline**: task understanding, workspace indexing, universal text scan, evidence ranking, evidence graph with framework edges
|
|
100
|
+
- **Solve Packet v1**: structured reasoning context with flow buckets (entry/handler/service/schema/tests), problem hypothesis, noise risk detection, missing link identification, agent instructions
|
|
101
|
+
- **Native VS Code Chat participant**: `@flowseeker /guide`, `/auto`, `/apply` commands with plan-first editing guardrail
|
|
102
|
+
- **Framework adapters**: Laravel (PHP), NestJS (TypeScript), Express (JavaScript/TypeScript) - route->controller, event->listener, controller->service, view rendering, DI injection edges
|
|
103
|
+
- **Structured extraction**: regex-based code structure extraction for 11 languages (TS, JS, Python, PHP, Java, Go, C#, Ruby, Rust, Kotlin) - declarations, calls, string literals, comments
|
|
104
|
+
- **Scope lock**: edits are validated against approved plan scope before applying
|
|
105
|
+
- **Diff preview**: file-level change preview before applying structured edits
|
|
106
|
+
- **Verification loop**: auto-detection of test/lint/typecheck commands after edits, with pass/fail reporting
|
|
107
|
+
- **Headless evaluation**: repeatable retrieval benchmarking with hit@K, MRR, expected-path coverage
|
|
108
|
+
- **VS Code Language Model API integration**: works with the selected VS Code Chat model; AI Gateway fallback
|
|
109
|
+
- **Result sidebar**: ranked evidence tree with checkbox selection, context pack copy, agent prompt copy
|
|
110
|
+
- **Configuration**: `.flowseeker/config.json` workspace config + VS Code settings overrides
|
|
111
|
+
- **Scan budget safety**: max files, max bytes, max time limits prevent runaway scans on large repos
|
package/COMPATIBILITY.md
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# FlowSeeker Host Compatibility
|
|
2
|
+
|
|
3
|
+
FlowSeeker detects host capabilities at runtime via `src/runtime/capabilities.ts`. Every feature that is available on the host **will** be used; features that are missing will gracefully fall back to the sidebar + direct provider path.
|
|
4
|
+
|
|
5
|
+
Run `FlowSeeker: Check Host Compatibility` for a live report on your current host.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## How Model Sharing Works
|
|
10
|
+
|
|
11
|
+
FlowSeeker uses a **three-tier AI backend** (in priority order):
|
|
12
|
+
|
|
13
|
+
| Tier | Mechanism | Requires |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| 1. Direct Provider | API key (OpenAI, Anthropic, Gemini, Ollama, OpenRouter, etc.) | Nothing — works on all hosts |
|
|
16
|
+
| 2. Host Language Model | `vscode.lm.selectChatModels` — uses the model the host already has selected | Host must expose VS Code Language Model API |
|
|
17
|
+
| 3. Custom Gateway | OpenAI-compatible `/v1/chat/completions` endpoint | Nothing — works on all hosts |
|
|
18
|
+
|
|
19
|
+
When you type `@flowseeker /guide` in **Native Chat**, FlowSeeker tries Tier 1 first (your configured provider key). If no key is configured, it falls back to Tier 2 (the host's own model). If neither is available, it shows actionable buttons to configure a provider.
|
|
20
|
+
|
|
21
|
+
When you use the **Sidebar Chat**, FlowSeeker uses Tier 1 (direct provider) by default, or Tier 3 (custom gateway).
|
|
22
|
+
|
|
23
|
+
**Bottom line:** On Cursor, FlowSeeker can use Cursor's models. On any host without Language Model API, you can still connect your own API key.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Compatibility Matrix
|
|
28
|
+
|
|
29
|
+
| Feature | VS Code | Cursor | VSCodium | Antigravity | Theia / OpenVSX |
|
|
30
|
+
|---|---|---|---|---|---|
|
|
31
|
+
| Sidebar Chat | Yes | Yes | Yes | Yes | Yes |
|
|
32
|
+
| Direct Provider API | Yes | Yes | Yes | Yes | Yes |
|
|
33
|
+
| Native Chat (`@flowseeker`) | Yes | Yes | No | Runtime-detected | No |
|
|
34
|
+
| Host Language Model API | Yes | Yes | No | Runtime-detected | No |
|
|
35
|
+
| MCP Server Provider | Yes | Yes | No | Runtime-detected | No |
|
|
36
|
+
| MCP Tool Invocation | Yes | Yes | No | Runtime-detected | No |
|
|
37
|
+
| Copy Agent Prompt | Yes | Yes | Yes | Yes | Yes |
|
|
38
|
+
| Provider Profiles | Yes | Yes | Yes | Yes | Yes |
|
|
39
|
+
|
|
40
|
+
- **Yes** = Feature is available and tested on this host.
|
|
41
|
+
- **No** = Host does not expose this API. FlowSeeker degrades to sidebar + direct provider.
|
|
42
|
+
- **Runtime-detected** = Depends on the specific build. Run `FlowSeeker: Check Host Compatibility` to confirm.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## How Runtime Detection Works
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// src/runtime/capabilities.ts
|
|
50
|
+
hasNativeChat: typeof vscode.chat?.createChatParticipant === "function"
|
|
51
|
+
hasLanguageModels: typeof vscode.lm?.selectChatModels === "function"
|
|
52
|
+
hasMcp: typeof vscode.lm?.registerMcpServerDefinitionProvider === "function"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
FlowSeeker checks the actual VS Code API surface at startup. There is no hardcoded host list. If a host ships these APIs, FlowSeeker uses them.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Per-Host Details
|
|
60
|
+
|
|
61
|
+
### VS Code (Stable / Insiders)
|
|
62
|
+
Toàn bộ tính năng hoạt động. Đây là mục tiêu phát triển chính.
|
|
63
|
+
- Native Chat: `@flowseeker /guide`, `/auto`, `/apply`
|
|
64
|
+
- Language Model API: dùng model đã chọn trong VS Code nếu không có provider key
|
|
65
|
+
- MCP: đầy đủ
|
|
66
|
+
|
|
67
|
+
### Cursor
|
|
68
|
+
Hoạt động tương đương VS Code. FlowSeeker có thể dùng:
|
|
69
|
+
- Native Chat với `@flowseeker`
|
|
70
|
+
- Model của Cursor thông qua Language Model API (nếu không cấu hình direct provider key)
|
|
71
|
+
- MCP tools
|
|
72
|
+
|
|
73
|
+
**Lưu ý:** Nếu bạn đã cấu hình API key trong FlowSeeker, nó sẽ dùng key đó trước. Để dùng model của Cursor, để trống phần provider key.
|
|
74
|
+
|
|
75
|
+
### VSCodium
|
|
76
|
+
Không có Native Chat và Language Model API (đây là các API độc quyền của Microsoft).
|
|
77
|
+
- Sidebar chat + direct provider key hoạt động đầy đủ
|
|
78
|
+
- Copy Agent Prompt cho phép paste context vào bất kỳ AI tool nào
|
|
79
|
+
- MCP không khả dụng
|
|
80
|
+
|
|
81
|
+
### Antigravity
|
|
82
|
+
Tùy thuộc vào build. Một số build của Antigravity có thể include VS Code Chat API và Language Model API.
|
|
83
|
+
- Chạy `FlowSeeker: Check Host Compatibility` để xem chính xác API nào có sẵn
|
|
84
|
+
- Sidebar + direct provider luôn hoạt động khi extension host hỗ trợ webview/sidebar
|
|
85
|
+
- **MCP config:** `~/.gemini/antigravity/mcp_config.json` (macOS) / `%USERPROFILE%\.gemini\antigravity\mcp_config.json` (Windows)
|
|
86
|
+
- Dùng `npx -p flowseeker flowseeker-mcp --workspace .` hoặc local build `node dist/cli/mcpServer.js --workspace .` để add FlowSeeker MCP server
|
|
87
|
+
- Native Chat hiện có thể chèn `@mcp:flowseeker:` nhưng không hiện gợi ý tool/prompt tiếp theo; dùng natural language hoặc gọi tool name trực tiếp
|
|
88
|
+
|
|
89
|
+
### Theia / OpenVSX-compatible
|
|
90
|
+
Thường không có Native Chat và Language Model API.
|
|
91
|
+
- Sidebar chat và direct provider là primary workflow
|
|
92
|
+
- Copy Agent Prompt rất hữu ích trên các host này
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Graceful Degradation
|
|
97
|
+
|
|
98
|
+
Khi host thiếu một API, FlowSeeker tự động fallback:
|
|
99
|
+
|
|
100
|
+
1. **Không có Native Chat** → Sidebar chat làm primary interface. Copy Agent Prompt để paste context vào tool AI bất kỳ. Hoặc dùng **MCP Server** để integrate FlowSeeker vào native chat của IDE.
|
|
101
|
+
2. **Không có Language Model API** → Dùng direct provider key đã cấu hình. Token counting dùng local BPE (cl100k_base).
|
|
102
|
+
3. **Không có MCP APIs** → MCP-related UI elements bị ẩn hoặc hiển thị thông báo "not available on this host".
|
|
103
|
+
4. **Không có Secrets Storage** → API key nhập per-session trong provider configuration.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Update Notices
|
|
108
|
+
|
|
109
|
+
FlowSeeker 0.1.7 and newer checks the npm registry at most once per day from the extension host. If a newer version is available, it shows a non-modal notice with actions to view npm or dismiss that version. Offline/proxy failures are silent.
|
|
110
|
+
|
|
111
|
+
The standalone MCP server does not perform passive network checks during normal stdio startup. Use explicit CLI checks instead:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
flowseeker-mcp --version
|
|
115
|
+
flowseeker-mcp --check-updates
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## MCP Server (Cross-IDE Integration)
|
|
121
|
+
|
|
122
|
+
FlowSeeker cung cấp một **standalone MCP server** cho phép tích hợp retrieval pipeline vào native chat của **bất kỳ IDE nào** hỗ trợ MCP: Cursor, Antigravity, Windsurf, Claude Desktop, v.v.
|
|
123
|
+
|
|
124
|
+
### Khởi động MCP Server
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Chạy trực tiếp
|
|
128
|
+
node dist/cli/mcpServer.js --workspace /path/to/repo
|
|
129
|
+
|
|
130
|
+
# Hoặc qua npx (sau khi publish) — package tên `flowseeker`, bin là `flowseeker-mcp`
|
|
131
|
+
npx -p flowseeker flowseeker-mcp --workspace /path/to/repo
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Cấu hình trong IDE
|
|
135
|
+
|
|
136
|
+
#### Cursor
|
|
137
|
+
|
|
138
|
+
Global config:
|
|
139
|
+
|
|
140
|
+
- macOS: `~/.cursor/mcp.json`
|
|
141
|
+
- Windows: `%USERPROFILE%\.cursor\mcp.json`
|
|
142
|
+
|
|
143
|
+
Project config:
|
|
144
|
+
|
|
145
|
+
- `.cursor/mcp.json` trong project root
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"mcpServers": {
|
|
150
|
+
"flowseeker": {
|
|
151
|
+
"command": "npx",
|
|
152
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "."]
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
#### Antigravity
|
|
159
|
+
|
|
160
|
+
Config file:
|
|
161
|
+
|
|
162
|
+
- macOS: `~/.gemini/antigravity/mcp_config.json`
|
|
163
|
+
- Windows: `%USERPROFILE%\.gemini\antigravity\mcp_config.json`
|
|
164
|
+
|
|
165
|
+
```json
|
|
166
|
+
{
|
|
167
|
+
"mcpServers": {
|
|
168
|
+
"flowseeker": {
|
|
169
|
+
"command": "npx",
|
|
170
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "."]
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
If testing before npm publish, point Antigravity to the local build:
|
|
177
|
+
|
|
178
|
+
```json
|
|
179
|
+
{
|
|
180
|
+
"mcpServers": {
|
|
181
|
+
"flowseeker": {
|
|
182
|
+
"command": "node",
|
|
183
|
+
"args": [
|
|
184
|
+
"D:\\Developing\\FlowSeeker\\dist\\cli\\mcpServer.js",
|
|
185
|
+
"--workspace",
|
|
186
|
+
"D:\\Developing\\FlowSeeker"
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
#### Windsurf
|
|
194
|
+
|
|
195
|
+
Config file:
|
|
196
|
+
|
|
197
|
+
- macOS: `~/.codeium/windsurf/mcp_config.json`
|
|
198
|
+
- Windows: `%USERPROFILE%\.codeium\windsurf\mcp_config.json`
|
|
199
|
+
|
|
200
|
+
```json
|
|
201
|
+
{
|
|
202
|
+
"mcpServers": {
|
|
203
|
+
"flowseeker": {
|
|
204
|
+
"command": "npx",
|
|
205
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "."]
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
#### VS Code / GitHub Copilot
|
|
212
|
+
|
|
213
|
+
VS Code uses `.vscode/mcp.json` and root key `servers`:
|
|
214
|
+
|
|
215
|
+
```json
|
|
216
|
+
{
|
|
217
|
+
"servers": {
|
|
218
|
+
"flowseeker": {
|
|
219
|
+
"command": "npx",
|
|
220
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "."]
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
> Cursor, Antigravity, Windsurf, Claude Desktop, and Claude Code use `mcpServers`. VS Code/Copilot uses `servers`.
|
|
227
|
+
|
|
228
|
+
#### Claude Desktop
|
|
229
|
+
|
|
230
|
+
Thêm vào `claude_desktop_config.json`:
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"mcpServers": {
|
|
235
|
+
"flowseeker": {
|
|
236
|
+
"command": "npx",
|
|
237
|
+
"args": ["-p", "flowseeker", "flowseeker-mcp", "--workspace", "/path/to/repo"]
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
> **Dev / local build:** Nếu đã clone repo và build từ source, dùng:
|
|
244
|
+
>
|
|
245
|
+
> ```json
|
|
246
|
+
> {
|
|
247
|
+
> "mcpServers": {
|
|
248
|
+
> "flowseeker": {
|
|
249
|
+
> "command": "node",
|
|
250
|
+
> "args": ["/absolute/path/to/flowseeker/dist/cli/mcpServer.js", "--workspace", "/path/to/repo"]
|
|
251
|
+
> }
|
|
252
|
+
> }
|
|
253
|
+
> }
|
|
254
|
+
> ```
|
|
255
|
+
|
|
256
|
+
### Available MCP Tools and Prompts
|
|
257
|
+
|
|
258
|
+
| Tool | Description |
|
|
259
|
+
|---|---|
|
|
260
|
+
| `flowseeker_retrieve` | Run full retrieval pipeline, return Solve Packet with ranked evidence, coverage, token savings |
|
|
261
|
+
| `flowseeker_guide` | Retrieve + return agent solve prompt for guidance |
|
|
262
|
+
| `flowseeker_files` | Retrieve + return only top ranked file list (lightweight) |
|
|
263
|
+
|
|
264
|
+
FlowSeeker also exposes MCP prompts for hosts that surface prompt suggestions:
|
|
265
|
+
|
|
266
|
+
| Prompt | Maps to |
|
|
267
|
+
|---|---|
|
|
268
|
+
| `retrieve` | `flowseeker_retrieve` |
|
|
269
|
+
| `guide` | `flowseeker_guide` |
|
|
270
|
+
| `files` | `flowseeker_files` |
|
|
271
|
+
|
|
272
|
+
Autocomplete UI is host-controlled. Antigravity currently may insert `@mcp:flowseeker:` and stop there; use natural language or direct tool names when no second-level suggestions appear.
|
|
273
|
+
|
|
274
|
+
### Cách hoạt động
|
|
275
|
+
|
|
276
|
+
1. IDE gửi tool call tới FlowSeeker MCP server
|
|
277
|
+
2. FlowSeeker chạy headless pipeline (scan workspace → rank evidence → build solve packet)
|
|
278
|
+
3. Kết quả trả về cho IDE's AI model tự động
|
|
279
|
+
4. AI model reason over context và trả lời user trong native chat
|
|
280
|
+
|
|
281
|
+
Ưu điểm: **dùng luôn model có sẵn của IDE** (Cursor dùng Claude/GPT tích hợp, Antigravity dùng model đã chọn). Không cần thêm API key riêng cho FlowSeeker.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 FlowSeeker
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|