@roarpeng/graphflow 0.6.5
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/AGENTS.md +58 -0
- package/CHANGELOG.md +205 -0
- package/CLAUDE.md +39 -0
- package/LICENSE +17 -0
- package/README.md +434 -0
- package/dist/agents/brainstormer.d.ts +5 -0
- package/dist/agents/brainstormer.d.ts.map +1 -0
- package/dist/agents/brainstormer.js +61 -0
- package/dist/agents/brainstormer.js.map +1 -0
- package/dist/agents/planner.d.ts +14 -0
- package/dist/agents/planner.d.ts.map +1 -0
- package/dist/agents/planner.js +166 -0
- package/dist/agents/planner.js.map +1 -0
- package/dist/agents/validator.d.ts +6 -0
- package/dist/agents/validator.d.ts.map +1 -0
- package/dist/agents/validator.js +133 -0
- package/dist/agents/validator.js.map +1 -0
- package/dist/agents/worker.d.ts +18 -0
- package/dist/agents/worker.d.ts.map +1 -0
- package/dist/agents/worker.js +34 -0
- package/dist/agents/worker.js.map +1 -0
- package/dist/config/defaults.d.ts +16 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +85 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/embedding-factory.d.ts +4 -0
- package/dist/config/embedding-factory.d.ts.map +1 -0
- package/dist/config/embedding-factory.js +37 -0
- package/dist/config/embedding-factory.js.map +1 -0
- package/dist/config/loader.d.ts +4 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +194 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/merge.d.ts +6 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/merge.js +130 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/paths.d.ts +6 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +32 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/resolve.d.ts +4 -0
- package/dist/config/resolve.d.ts.map +1 -0
- package/dist/config/resolve.js +45 -0
- package/dist/config/resolve.js.map +1 -0
- package/dist/config/scaffold.d.ts +11 -0
- package/dist/config/scaffold.d.ts.map +1 -0
- package/dist/config/scaffold.js +42 -0
- package/dist/config/scaffold.js.map +1 -0
- package/dist/config/schema.d.ts +102 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +3 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/secrets.d.ts +9 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +55 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/core/dag-engine.d.ts +14 -0
- package/dist/core/dag-engine.d.ts.map +1 -0
- package/dist/core/dag-engine.js +97 -0
- package/dist/core/dag-engine.js.map +1 -0
- package/dist/core/errors.d.ts +15 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +29 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/orchestrator.d.ts +31 -0
- package/dist/core/orchestrator.d.ts.map +1 -0
- package/dist/core/orchestrator.js +321 -0
- package/dist/core/orchestrator.js.map +1 -0
- package/dist/core/state-machine.d.ts +14 -0
- package/dist/core/state-machine.d.ts.map +1 -0
- package/dist/core/state-machine.js +77 -0
- package/dist/core/state-machine.js.map +1 -0
- package/dist/core/triage.d.ts +6 -0
- package/dist/core/triage.d.ts.map +1 -0
- package/dist/core/triage.js +58 -0
- package/dist/core/triage.js.map +1 -0
- package/dist/core/types.d.ts +61 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/graph/client-factory.d.ts +22 -0
- package/dist/graph/client-factory.d.ts.map +1 -0
- package/dist/graph/client-factory.js +60 -0
- package/dist/graph/client-factory.js.map +1 -0
- package/dist/graph/context-slicer.d.ts +47 -0
- package/dist/graph/context-slicer.d.ts.map +1 -0
- package/dist/graph/context-slicer.js +246 -0
- package/dist/graph/context-slicer.js.map +1 -0
- package/dist/graph/file-indexer.d.ts +15 -0
- package/dist/graph/file-indexer.d.ts.map +1 -0
- package/dist/graph/file-indexer.js +343 -0
- package/dist/graph/file-indexer.js.map +1 -0
- package/dist/graph/graph-indexer.d.ts +7 -0
- package/dist/graph/graph-indexer.d.ts.map +1 -0
- package/dist/graph/graph-indexer.js +32 -0
- package/dist/graph/graph-indexer.js.map +1 -0
- package/dist/graph/graphify-client.d.ts +30 -0
- package/dist/graph/graphify-client.d.ts.map +1 -0
- package/dist/graph/graphify-client.js +186 -0
- package/dist/graph/graphify-client.js.map +1 -0
- package/dist/graph/graphify-file-client.d.ts +26 -0
- package/dist/graph/graphify-file-client.d.ts.map +1 -0
- package/dist/graph/graphify-file-client.js +140 -0
- package/dist/graph/graphify-file-client.js.map +1 -0
- package/dist/graph/graphify-mcp-client.d.ts +18 -0
- package/dist/graph/graphify-mcp-client.d.ts.map +1 -0
- package/dist/graph/graphify-mcp-client.js +73 -0
- package/dist/graph/graphify-mcp-client.js.map +1 -0
- package/dist/graph/language-indexers/c-cpp.d.ts +3 -0
- package/dist/graph/language-indexers/c-cpp.d.ts.map +1 -0
- package/dist/graph/language-indexers/c-cpp.js +121 -0
- package/dist/graph/language-indexers/c-cpp.js.map +1 -0
- package/dist/graph/language-indexers/go.d.ts +3 -0
- package/dist/graph/language-indexers/go.d.ts.map +1 -0
- package/dist/graph/language-indexers/go.js +97 -0
- package/dist/graph/language-indexers/go.js.map +1 -0
- package/dist/graph/language-indexers/index.d.ts +29 -0
- package/dist/graph/language-indexers/index.d.ts.map +1 -0
- package/dist/graph/language-indexers/index.js +27 -0
- package/dist/graph/language-indexers/index.js.map +1 -0
- package/dist/graph/language-indexers/python.d.ts +3 -0
- package/dist/graph/language-indexers/python.d.ts.map +1 -0
- package/dist/graph/language-indexers/python.js +91 -0
- package/dist/graph/language-indexers/python.js.map +1 -0
- package/dist/graph/language-indexers/rust.d.ts +3 -0
- package/dist/graph/language-indexers/rust.d.ts.map +1 -0
- package/dist/graph/language-indexers/rust.js +99 -0
- package/dist/graph/language-indexers/rust.js.map +1 -0
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts +18 -0
- package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -0
- package/dist/graph/language-indexers/tree-sitter-loader.js +34 -0
- package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -0
- package/dist/graph/language-indexers/typescript.d.ts +3 -0
- package/dist/graph/language-indexers/typescript.d.ts.map +1 -0
- package/dist/graph/language-indexers/typescript.js +194 -0
- package/dist/graph/language-indexers/typescript.js.map +1 -0
- package/dist/graph/semantic-enricher.d.ts +17 -0
- package/dist/graph/semantic-enricher.d.ts.map +1 -0
- package/dist/graph/semantic-enricher.js +97 -0
- package/dist/graph/semantic-enricher.js.map +1 -0
- package/dist/graph/sqlite-client.d.ts +24 -0
- package/dist/graph/sqlite-client.d.ts.map +1 -0
- package/dist/graph/sqlite-client.js +215 -0
- package/dist/graph/sqlite-client.js.map +1 -0
- package/dist/hooks/post-run-sync.d.ts +7 -0
- package/dist/hooks/post-run-sync.d.ts.map +1 -0
- package/dist/hooks/post-run-sync.js +26 -0
- package/dist/hooks/post-run-sync.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/agent-mcp-installer.d.ts +50 -0
- package/dist/integrations/agent-mcp-installer.d.ts.map +1 -0
- package/dist/integrations/agent-mcp-installer.js +414 -0
- package/dist/integrations/agent-mcp-installer.js.map +1 -0
- package/dist/learning/canary-gate.d.ts +6 -0
- package/dist/learning/canary-gate.d.ts.map +1 -0
- package/dist/learning/canary-gate.js +13 -0
- package/dist/learning/canary-gate.js.map +1 -0
- package/dist/learning/embeddings.d.ts +19 -0
- package/dist/learning/embeddings.d.ts.map +1 -0
- package/dist/learning/embeddings.js +160 -0
- package/dist/learning/embeddings.js.map +1 -0
- package/dist/learning/episodic-memory.d.ts +36 -0
- package/dist/learning/episodic-memory.d.ts.map +1 -0
- package/dist/learning/episodic-memory.js +228 -0
- package/dist/learning/episodic-memory.js.map +1 -0
- package/dist/learning/exporter.d.ts +10 -0
- package/dist/learning/exporter.d.ts.map +1 -0
- package/dist/learning/exporter.js +25 -0
- package/dist/learning/exporter.js.map +1 -0
- package/dist/learning/feedback-collector.d.ts +12 -0
- package/dist/learning/feedback-collector.d.ts.map +1 -0
- package/dist/learning/feedback-collector.js +14 -0
- package/dist/learning/feedback-collector.js.map +1 -0
- package/dist/learning/learning-events.d.ts +4 -0
- package/dist/learning/learning-events.d.ts.map +1 -0
- package/dist/learning/learning-events.js +35 -0
- package/dist/learning/learning-events.js.map +1 -0
- package/dist/learning/local-embedding.d.ts +3 -0
- package/dist/learning/local-embedding.d.ts.map +1 -0
- package/dist/learning/local-embedding.js +21 -0
- package/dist/learning/local-embedding.js.map +1 -0
- package/dist/learning/nightly-trainer.d.ts +14 -0
- package/dist/learning/nightly-trainer.d.ts.map +1 -0
- package/dist/learning/nightly-trainer.js +56 -0
- package/dist/learning/nightly-trainer.js.map +1 -0
- package/dist/learning/reflector.d.ts +19 -0
- package/dist/learning/reflector.d.ts.map +1 -0
- package/dist/learning/reflector.js +130 -0
- package/dist/learning/reflector.js.map +1 -0
- package/dist/learning/sample-builder.d.ts +7 -0
- package/dist/learning/sample-builder.d.ts.map +1 -0
- package/dist/learning/sample-builder.js +10 -0
- package/dist/learning/sample-builder.js.map +1 -0
- package/dist/learning/skill-flywheel.d.ts +52 -0
- package/dist/learning/skill-flywheel.d.ts.map +1 -0
- package/dist/learning/skill-flywheel.js +533 -0
- package/dist/learning/skill-flywheel.js.map +1 -0
- package/dist/learning/vector-store.d.ts +18 -0
- package/dist/learning/vector-store.d.ts.map +1 -0
- package/dist/learning/vector-store.js +73 -0
- package/dist/learning/vector-store.js.map +1 -0
- package/dist/routing/model-router.d.ts +13 -0
- package/dist/routing/model-router.d.ts.map +1 -0
- package/dist/routing/model-router.js +113 -0
- package/dist/routing/model-router.js.map +1 -0
- package/dist/routing/provider-adapters/anthropic.d.ts +3 -0
- package/dist/routing/provider-adapters/anthropic.d.ts.map +1 -0
- package/dist/routing/provider-adapters/anthropic.js +57 -0
- package/dist/routing/provider-adapters/anthropic.js.map +1 -0
- package/dist/routing/provider-adapters/bailian.d.ts +3 -0
- package/dist/routing/provider-adapters/bailian.d.ts.map +1 -0
- package/dist/routing/provider-adapters/bailian.js +56 -0
- package/dist/routing/provider-adapters/bailian.js.map +1 -0
- package/dist/routing/provider-adapters/doubao.d.ts +3 -0
- package/dist/routing/provider-adapters/doubao.d.ts.map +1 -0
- package/dist/routing/provider-adapters/doubao.js +56 -0
- package/dist/routing/provider-adapters/doubao.js.map +1 -0
- package/dist/routing/provider-adapters/openai.d.ts +6 -0
- package/dist/routing/provider-adapters/openai.d.ts.map +1 -0
- package/dist/routing/provider-adapters/openai.js +80 -0
- package/dist/routing/provider-adapters/openai.js.map +1 -0
- package/dist/routing/provider-adapters/openbmb.d.ts +16 -0
- package/dist/routing/provider-adapters/openbmb.d.ts.map +1 -0
- package/dist/routing/provider-adapters/openbmb.js +368 -0
- package/dist/routing/provider-adapters/openbmb.js.map +1 -0
- package/dist/routing/provider-executor.d.ts +21 -0
- package/dist/routing/provider-executor.d.ts.map +1 -0
- package/dist/routing/provider-executor.js +260 -0
- package/dist/routing/provider-executor.js.map +1 -0
- package/dist/routing/provider-health.d.ts +9 -0
- package/dist/routing/provider-health.d.ts.map +1 -0
- package/dist/routing/provider-health.js +66 -0
- package/dist/routing/provider-health.js.map +1 -0
- package/dist/surfaces/cli/index.d.ts +3 -0
- package/dist/surfaces/cli/index.d.ts.map +1 -0
- package/dist/surfaces/cli/index.js +200 -0
- package/dist/surfaces/cli/index.js.map +1 -0
- package/dist/surfaces/cli/init.d.ts +2 -0
- package/dist/surfaces/cli/init.d.ts.map +1 -0
- package/dist/surfaces/cli/init.js +121 -0
- package/dist/surfaces/cli/init.js.map +1 -0
- package/dist/surfaces/cli/output.d.ts +16 -0
- package/dist/surfaces/cli/output.d.ts.map +1 -0
- package/dist/surfaces/cli/output.js +74 -0
- package/dist/surfaces/cli/output.js.map +1 -0
- package/dist/surfaces/cli/runtime.d.ts +218 -0
- package/dist/surfaces/cli/runtime.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime.js +1130 -0
- package/dist/surfaces/cli/runtime.js.map +1 -0
- package/dist/surfaces/mcp/server.d.ts +60 -0
- package/dist/surfaces/mcp/server.d.ts.map +1 -0
- package/dist/surfaces/mcp/server.js +425 -0
- package/dist/surfaces/mcp/server.js.map +1 -0
- package/dist/surfaces/vscode/extension.d.ts +17 -0
- package/dist/surfaces/vscode/extension.d.ts.map +1 -0
- package/dist/surfaces/vscode/extension.js +35 -0
- package/dist/surfaces/vscode/extension.js.map +1 -0
- package/dist/utils/file-lock.d.ts +9 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +90 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +36 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +89 -0
- package/scripts/safe-postinstall.cjs +14 -0
package/AGENTS.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# GraphFlow Agent Playbook
|
|
2
|
+
|
|
3
|
+
GraphFlow exposes both a CLI and an MCP server so external coding agents can call planning, orchestration, graph inspection, and context compression directly.
|
|
4
|
+
|
|
5
|
+
## Preferred entrypoints
|
|
6
|
+
|
|
7
|
+
1. Use MCP when your client supports it.
|
|
8
|
+
2. Fall back to CLI with `--json` when MCP is unavailable.
|
|
9
|
+
|
|
10
|
+
## MCP startup
|
|
11
|
+
|
|
12
|
+
Installed package:
|
|
13
|
+
|
|
14
|
+
```json
|
|
15
|
+
{
|
|
16
|
+
"mcpServers": {
|
|
17
|
+
"graphflow": {
|
|
18
|
+
"command": "npx",
|
|
19
|
+
"args": ["-y", "--package=@roarpeng/graphflow", "graphflow-mcp"]
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
From this repository:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"mcpServers": {
|
|
30
|
+
"graphflow": {
|
|
31
|
+
"command": "npm",
|
|
32
|
+
"args": ["run", "start:mcp"],
|
|
33
|
+
"cwd": "."
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Tool selection
|
|
40
|
+
|
|
41
|
+
- Use `graphflow_plan` before multi-step edits.
|
|
42
|
+
- Use `graphflow_preview_context` before large refactors or codebase-wide questions.
|
|
43
|
+
- Use `graphflow_run` when you want GraphFlow to execute its own orchestration loop.
|
|
44
|
+
- Use `graphflow_index` after workspace changes if graph freshness matters.
|
|
45
|
+
- Use `graphflow_inspect_graph` and `graphflow_skill_insights` for observability.
|
|
46
|
+
- Use `graphflow_diagnose` when model/provider routing looks wrong.
|
|
47
|
+
|
|
48
|
+
## CLI fallback
|
|
49
|
+
|
|
50
|
+
Examples:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx @roarpeng/graphflow plan "refactor planner and add tests" --json
|
|
54
|
+
npx @roarpeng/graphflow context preview "orchestrator" --json
|
|
55
|
+
npx @roarpeng/graphflow route diagnose --json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Always pass `--json` when another agent or script is parsing the output.
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.6.5] - 2026-06-11
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Settings 面板:图谱状态(节点/边数、上次索引时间)、配置覆盖层 diff、一键路由诊断。
|
|
12
|
+
- `graphPolicy.autoIndexOnSave`:保存文件后 debounce 增量索引(Extension 可选开关)。
|
|
13
|
+
- `getSettingsPanelStatus` / `listConfigOverlayKeys`:Settings 与 CLI 共用状态 API。
|
|
14
|
+
- Husky pre-push:`lint-staged` 在推送前自动跑 ESLint。
|
|
15
|
+
- CI:`validate.yml` 可复用工作流;PR 与 main 发布分离;`v*` tag 触发 Build / npm publish。
|
|
16
|
+
- `postinstall` 完成后轻量 bootstrap `indexGraph`(非 CI 环境)。
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- Settings 面板 HTML 模板中反引号导致 ESLint 解析失败,阻断 0.6.5 GitHub Actions 与 Release。
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
|
|
24
|
+
- 收紧多处 `any` 类型;提交 `vitest.config.ts` 排除 extension 测试。
|
|
25
|
+
- README 更新至 v0.6.5,补充 Release 与本地 `npm run ci` 说明。
|
|
26
|
+
|
|
27
|
+
## [0.6.4] - 2026-06-10
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- `graphPolicy.semanticEnrichment.backend`: `inherit` | `network` | `local`,明确区分网络模型与本地 OpenBMB。
|
|
32
|
+
- 语义提取可单独配置网络 API Key / Base URL(`semanticEnrichment.apiKey` / `baseUrl`)。
|
|
33
|
+
- Settings 面板「语义提取后端」:继承 Economy(网络)/ 自定义网络模型 / 本地 OpenBMB。
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- 语义富化运行时注入独立网络凭证(`applyEnrichmentProviderEnv`);任务编排后增量富化同步应用。
|
|
38
|
+
- MCP `graphflow_enrich_graph` 描述更新为支持云端或本地后端。
|
|
39
|
+
|
|
40
|
+
## [0.6.3] - 2026-06-10
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
44
|
+
- `src/config/secrets.ts`: API Key 支持环境变量名、`${VAR}` 占位符、或直接 `sk-...` 明文;运行时按类型自动解析。
|
|
45
|
+
- Settings 面板新增 **Graph Semantic Enrichment**(知识图谱语义提取):可单独配置 provider/model,或留空继承 Economy 层。
|
|
46
|
+
- `graphPolicy.semanticEnrichment.provider` 可选字段,允许语义提取使用与 Worker 不同的 provider。
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- Smart / Economy 模型改为可选;未配置时由 `model-router` 默认表按 provider 回退。
|
|
51
|
+
- 语义提取模型不再默认 `minicpm5-1b`;可配置 DeepSeek(`openai` + `baseUrl` + 模型名)或其它云端/本地模型,也可留空。
|
|
52
|
+
- OpenBMB 设置与语义提取解耦;OpenBMB 区块仅用于本地 MiniCPM。
|
|
53
|
+
- `formatModelConfigGuide` 与初始化文档补充 API Key 规则与图谱更新说明。
|
|
54
|
+
|
|
55
|
+
## [0.6.2] - 2026-06-10
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
|
|
59
|
+
- MCP install on Windows now uses `mcp-launcher.cmd` / `mcp-launcher.cjs` so `server.js` is never the MCP `command` (fixes Cursor opening the file as an editor tab).
|
|
60
|
+
- Vendor bundle skips Linux-only `onnxruntime-node`; GitHub Release VSIX is built on `windows-latest`.
|
|
61
|
+
- CI: Ubuntu runs full tests; Windows job only packages the VSIX. SQLite tests skip when optional `better-sqlite3` is unavailable.
|
|
62
|
+
|
|
63
|
+
## [0.6.1] - 2026-06-10
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
|
|
67
|
+
- MCP auto-install now uses system `node` (or Cursor/Electron with `ELECTRON_RUN_AS_NODE`) instead of writing `process.execPath` from the extension host, which broke MCP stdio on other machines.
|
|
68
|
+
- MCP server logs are redirected to stderr so JSON-RPC on stdout is not corrupted.
|
|
69
|
+
- Bundled MCP `cwd` points at the extension vendor runtime root for reliable module resolution.
|
|
70
|
+
- Extension first-install now scaffolds `~/.graphflow.config.json` (global) and workspace `.graphflow/config.json` when a folder is open.
|
|
71
|
+
|
|
72
|
+
## [0.6.0] - 2026-06-09
|
|
73
|
+
|
|
74
|
+
### Added
|
|
75
|
+
|
|
76
|
+
- Agent MCP auto-installer: sniffs Cursor, VS Code, Trae, Claude Code, and Windsurf; writes GraphFlow MCP to user and workspace config (creates missing files).
|
|
77
|
+
- VS Code extension auto-installs bundled MCP on first install/upgrade (`onStartupFinished`).
|
|
78
|
+
- New extension commands: `GraphFlow: Install MCP to Agents`, `GraphFlow: Model Setup Guide`.
|
|
79
|
+
- Post-install model configuration guide in Output panel and `.graphflow/README.md`.
|
|
80
|
+
|
|
81
|
+
## [0.4.2] - 2026-06-01
|
|
82
|
+
|
|
83
|
+
### Fixed
|
|
84
|
+
|
|
85
|
+
- VS Code extension host `Cannot find module 'typescript'`: `typescriptIndexer` now loads `typescript` via `createRequire` lazily and falls back to the regex extractor when unavailable.
|
|
86
|
+
- `sync-runtime.mjs` now bundles `typescript` and `gpt-tokenizer` into `vendor/graphflow/node_modules/` so the extension runtime can resolve them; `.vscodeignore` explicitly whitelists `vendor/**`.
|
|
87
|
+
|
|
88
|
+
## [0.4.1] - 2026-06-01
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
|
|
92
|
+
- VS Code extension host `Cannot find module 'better-sqlite3'`: `sqlite-client` switched to dynamic `createRequire`; `client-factory` catches the load failure and degrades the `sqlite` transport to `GraphifyFileClient` with a single warning instead of crashing.
|
|
93
|
+
- Moved `better-sqlite3` from `dependencies` to `optionalDependencies` so installs without native build tooling still succeed.
|
|
94
|
+
|
|
95
|
+
## [0.4.0] - 2026-05-31
|
|
96
|
+
|
|
97
|
+
### Added
|
|
98
|
+
|
|
99
|
+
- StdIO MCP server entrypoint (`graphflow-mcp`) for Cursor, Claude Code, and other MCP-capable agents.
|
|
100
|
+
- JSON CLI mode for all primary commands via `--json`.
|
|
101
|
+
- Agent guidance files: `AGENTS.md`, `CLAUDE.md`, and `.cursor/rules/graphflow.mdc`.
|
|
102
|
+
- Integration config samples under `docs/integrations/`.
|
|
103
|
+
- CLI help/version entrypoints (`--help`, `--version`).
|
|
104
|
+
- AST-based workspace indexer (TypeScript Compiler API) emitting real Symbol nodes (function/class/interface/type/enum/variable/method) and cross-file `references` edges, with regex fallback on parse errors.
|
|
105
|
+
- LLM-driven agent variants: `planTasksLlm`, `brainstormTaskLlm`, `validateTaskResultLlm`, each with deterministic JSON fallback.
|
|
106
|
+
- Orchestrator options `enableLlmAgents`, `enableDriftReplan`, `maxReplanRounds` — failed DAG triggers a planner re-plan loop with `previousPlan` + `failureFeedback` before HUMAN_REVIEW.
|
|
107
|
+
- Skill fusion: composite Skill nodes synthesized when `coOccurCount >= 2 && successCount >= 2`; `prerequisite` edges A→C and B→C; `suggestSkillHints` prioritizes composite skills when both parents match.
|
|
108
|
+
- Prompt context injection: `executeRolePrompt` accepts `PromptContext`; orchestrator option `enableGraphContextInPrompt` threads `summaryChannel` + `skillHints` into planner / brainstormer / worker / validator prompts; `TaskRunResult.promptContextLines` records actual injected lines.
|
|
109
|
+
- Node content compression: Symbol content is a signature line (`function planTasks (exported) @src/agents/planner.ts:14`), File content adds `# exports: ...` suffix, raw JSON moved to optional `GraphNode.metadata` (~1.76× byte reduction per Symbol).
|
|
110
|
+
- Real tokenizer (`gpt-tokenizer` / o200k_base, lazy-loaded with graceful fallback) replaces `length/4` token estimate.
|
|
111
|
+
- Inverted-index keyword lookup + adjacency lists on memory and file graph clients; new `getNodesByIds` and `getNeighbors` (optional on MCP client).
|
|
112
|
+
- `expandSubgraph` BFS along `references / imports / depends_on / prerequisite` edges; `buildLayeredContextPackage` pulls 1-hop neighbors of top hits into the same token budget (opt-out via `LayeredPackageOptions.enableEdgeExpansion=false`).
|
|
113
|
+
- SQLite + FTS5 graph backend (`transport: "sqlite"`) via `better-sqlite3`: WAL mode, idempotent CREATE schema, FTS5 sync triggers, edges PK + from/to/relation indexes; implements `getNodesByIds` and `getNeighbors`.
|
|
114
|
+
- Vector recall with reciprocal-rank fusion: `src/learning/embeddings.ts` provides deterministic `hashEmbedding` + `createOpenAiEmbeddingProvider` + `reciprocalRankFusion`; `buildLayeredContextPackage` accepts `enableVectorRecall` / `embeddingProvider` / `vectorTopK` / `vectorMinSimilarity` for semantic+keyword fusion.
|
|
115
|
+
- Episodic Memory + Reflection: `src/learning/episodic-memory.ts` persists Episode nodes per task run; `src/learning/reflector.ts` clusters similar episodes and synthesizes Lesson nodes with `improves` edges; orchestrator `enableEpisodicMemory` injects past keyDecisions into PromptContext.extraInstructions; nightly-trainer optionally runs reflection when given a graph client.
|
|
116
|
+
- Cross-language workspace indexer: TypeScript / JavaScript (AST via TS Compiler API) + Python / Rust / Go / C / C++ (regex-based) via dispatch in `src/graph/language-indexers/`; uniform Symbol / Module / defines / imports / references output across all languages.
|
|
117
|
+
- Tests: m16 agent integrations, m17 release readiness, m18 AST indexer, m19 LLM agents + drift, m20 skill fusion, m21 prompt context injection, m22 node compression, m23 graph retrieval, m24 SQLite backend, m25 vector recall, m26 episodic memory, m27 multi-language indexer.
|
|
118
|
+
|
|
119
|
+
### Changed
|
|
120
|
+
|
|
121
|
+
- Root package metadata now matches Apache-2.0 and publishes `graphflow` / `graphflow-mcp` binaries.
|
|
122
|
+
- Default router and example config models now use `gpt-4.1` and `gpt-4.1-mini`.
|
|
123
|
+
- Config loader now resolves `${ENV_VAR}` placeholders from the process environment.
|
|
124
|
+
- Failed `runTask` executions now append negative feedback events for the learning flywheel.
|
|
125
|
+
- File indexer skips symbolic links while crawling a workspace.
|
|
126
|
+
- `GraphClient` interface extended with optional `getNodesByIds` / `getNeighbors`; MCP client degrades to `[]` on unsupported endpoints.
|
|
127
|
+
- `graphPolicy.transport` accepts `"sqlite"` in addition to `"memory" | "file" | "mcp-http"`.
|
|
128
|
+
|
|
129
|
+
### Verified
|
|
130
|
+
|
|
131
|
+
- `npm run ci`
|
|
132
|
+
- `npx vitest run` — 25 test files / 95 tests passing
|
|
133
|
+
|
|
134
|
+
## [0.3.0] - 2026-05-28
|
|
135
|
+
|
|
136
|
+
GraphFlow 在 `0.3.0` 完成了从“可跑的多智能体原型”到“可安装、可观测、可分发产品版”的收敛:
|
|
137
|
+
- CLI、VS Code 命令面板、`@graphflow` chat 三个入口全部打通
|
|
138
|
+
- 图谱存储切到本地持久化默认路径,支持观测与复用
|
|
139
|
+
- 学习飞轮、动态路由、夜跑训练、扩展打包与 CI 已形成闭环
|
|
140
|
+
- 正式使用测试已沉淀到 `docs/testing/2026-05-28-formal-usage-test-report.md`
|
|
141
|
+
|
|
142
|
+
### Added
|
|
143
|
+
|
|
144
|
+
- Core orchestration pipeline with simple/complex routing and DAG execution.
|
|
145
|
+
- Validator retry loop with human review fallback state.
|
|
146
|
+
- Criteria-based validation with matched/missing requirement reporting.
|
|
147
|
+
- Model tier routing and provider fallback path (OpenAI, Anthropic, 百炼, 豆包).
|
|
148
|
+
- Graph client factory with file, memory and Graphify MCP HTTP transports.
|
|
149
|
+
- Automatic graph sync after successful run.
|
|
150
|
+
- Near-lossless context packaging:
|
|
151
|
+
- summary + anchor dual channel
|
|
152
|
+
- L1/L2/L3 quotas
|
|
153
|
+
- dynamic refill manager with de-dup anchors
|
|
154
|
+
- Workspace file indexer for File/Symbol graph nodes.
|
|
155
|
+
- CLI commands:
|
|
156
|
+
- `run`
|
|
157
|
+
- `plan`
|
|
158
|
+
- `context preview`
|
|
159
|
+
- `graph index`
|
|
160
|
+
- `graph inspect`
|
|
161
|
+
- `skill insights`
|
|
162
|
+
- Learning flywheel baseline:
|
|
163
|
+
- feedback collector
|
|
164
|
+
- sample builder
|
|
165
|
+
- learning dataset exporter
|
|
166
|
+
- canary gate
|
|
167
|
+
- VS Code extension scaffold integrated with GraphFlow runtime.
|
|
168
|
+
- VS Code extension command added: `GraphFlow: Plan & Brainstorm`.
|
|
169
|
+
- VS Code chat participant added: `@graphflow` with `/run`, `/plan`, `/history`.
|
|
170
|
+
- Dynamic routing health evaluation and configurable provider priority (`routingPolicy`).
|
|
171
|
+
- GitHub Actions CI workflow for lint/build/test/extension-build.
|
|
172
|
+
- CLI routing diagnostics command: `graphflow route diagnose`.
|
|
173
|
+
- CLI nightly learning command: `graphflow learn nightly`.
|
|
174
|
+
- Learning event persistence and nightly summary generation.
|
|
175
|
+
- File indexer now captures `Module` nodes and `imports/defines` graph edges.
|
|
176
|
+
- Skill flywheel module with skill extraction, skill scoring, and skill co-occurrence graph updates.
|
|
177
|
+
- Orchestrator integration for learned skill hints in planning and execution feedback.
|
|
178
|
+
- New chat slash commands: `@graphflow /diagnose` and `@graphflow /learn`.
|
|
179
|
+
- New chat slash commands: `@graphflow /graph` and `@graphflow /skills`.
|
|
180
|
+
- VS Code extension now bundles GraphFlow runtime, removing dependency on workspace `npm run start`.
|
|
181
|
+
- VS Code extension interactive observability panels:
|
|
182
|
+
- Graph Snapshot with search, type filter, node focus, relation highlight
|
|
183
|
+
- Skill Insights with search, outcome filter, and score/uses/time sorting
|
|
184
|
+
- Config template: `graphflow.config.example.json`.
|
|
185
|
+
- Formal usage test plan and final pass report under `docs/testing/`.
|
|
186
|
+
|
|
187
|
+
### Changed
|
|
188
|
+
|
|
189
|
+
- README updated to match implemented features and runnable commands.
|
|
190
|
+
- Release notes updated to reflect bundled runtime, observability panels, and formal validation artifacts.
|
|
191
|
+
- Config schema expanded with graph and near-lossless controls.
|
|
192
|
+
- Default graph transport updated to `file` for persistent local usage testing.
|
|
193
|
+
- Config schema expanded with `skillPolicy` controls.
|
|
194
|
+
|
|
195
|
+
### Verified
|
|
196
|
+
|
|
197
|
+
- `npm run lint`
|
|
198
|
+
- `npm run build`
|
|
199
|
+
- `npm test` (40 tests passing)
|
|
200
|
+
- CLI smoke checks for `graph index` and `context preview`
|
|
201
|
+
- CLI smoke check for `plan`
|
|
202
|
+
- CLI smoke checks for `route diagnose` and `learn nightly`
|
|
203
|
+
- CLI smoke checks for `graph inspect` and `skill insights`
|
|
204
|
+
- VS Code extension build
|
|
205
|
+
- VS Code extension package (`artifacts/graphflow-vscode-0.3.0.vsix`)
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# GraphFlow for Claude Code
|
|
2
|
+
|
|
3
|
+
Use GraphFlow as a local orchestration and context service.
|
|
4
|
+
|
|
5
|
+
## Recommended setup
|
|
6
|
+
|
|
7
|
+
Add a local MCP server entry that launches GraphFlow over stdio:
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"mcpServers": {
|
|
12
|
+
"graphflow": {
|
|
13
|
+
"command": "npx",
|
|
14
|
+
"args": ["-y", "--package=@roarpeng/graphflow", "graphflow-mcp"]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
During repository development you can also point Claude Code at this checkout:
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"mcpServers": {
|
|
25
|
+
"graphflow": {
|
|
26
|
+
"command": "npm",
|
|
27
|
+
"args": ["run", "start:mcp"],
|
|
28
|
+
"cwd": "."
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Usage guidance
|
|
35
|
+
|
|
36
|
+
- Ask GraphFlow to plan before broad changes: `graphflow_plan`.
|
|
37
|
+
- Ask GraphFlow to compress and anchor code context: `graphflow_preview_context`.
|
|
38
|
+
- Ask GraphFlow to inspect graph state or skill learnings when the repo history matters.
|
|
39
|
+
- Fall back to `graphflow ... --json` only if MCP is not available.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
Copyright 2026 Roarpeng
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|