@roarpeng/graphflow 1.0.0 → 1.0.4

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.
Files changed (137) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +96 -38
  3. package/dist/agents/insight.d.ts +83 -0
  4. package/dist/agents/insight.d.ts.map +1 -0
  5. package/dist/agents/insight.js +381 -0
  6. package/dist/agents/insight.js.map +1 -0
  7. package/dist/config/defaults.js +1 -1
  8. package/dist/config/defaults.js.map +1 -1
  9. package/dist/config/discover-workspace.d.ts +16 -0
  10. package/dist/config/discover-workspace.d.ts.map +1 -0
  11. package/dist/config/discover-workspace.js +112 -0
  12. package/dist/config/discover-workspace.js.map +1 -0
  13. package/dist/config/resolve.d.ts.map +1 -1
  14. package/dist/config/resolve.js +22 -8
  15. package/dist/config/resolve.js.map +1 -1
  16. package/dist/config/scaffold.d.ts.map +1 -1
  17. package/dist/config/scaffold.js +2 -1
  18. package/dist/config/scaffold.js.map +1 -1
  19. package/dist/config/workspace-root.d.ts +24 -0
  20. package/dist/config/workspace-root.d.ts.map +1 -0
  21. package/dist/config/workspace-root.js +59 -0
  22. package/dist/config/workspace-root.js.map +1 -0
  23. package/dist/core/orchestrator.js +10 -1
  24. package/dist/core/orchestrator.js.map +1 -1
  25. package/dist/core/state-machine.js +1 -1
  26. package/dist/core/state-machine.js.map +1 -1
  27. package/dist/core/types.d.ts +2 -2
  28. package/dist/core/types.d.ts.map +1 -1
  29. package/dist/graph/artifact-manager.d.ts +72 -0
  30. package/dist/graph/artifact-manager.d.ts.map +1 -0
  31. package/dist/graph/artifact-manager.js +215 -0
  32. package/dist/graph/artifact-manager.js.map +1 -0
  33. package/dist/graph/context-slicer.d.ts.map +1 -1
  34. package/dist/graph/context-slicer.js +3 -2
  35. package/dist/graph/context-slicer.js.map +1 -1
  36. package/dist/graph/file-indexer.d.ts +31 -0
  37. package/dist/graph/file-indexer.d.ts.map +1 -1
  38. package/dist/graph/file-indexer.js +332 -3
  39. package/dist/graph/file-indexer.js.map +1 -1
  40. package/dist/graph/graph-compression.d.ts.map +1 -1
  41. package/dist/graph/graph-compression.js +2 -0
  42. package/dist/graph/graph-compression.js.map +1 -1
  43. package/dist/graph/graph-utils.d.ts +4 -1
  44. package/dist/graph/graph-utils.d.ts.map +1 -1
  45. package/dist/graph/graph-utils.js +62 -0
  46. package/dist/graph/graph-utils.js.map +1 -1
  47. package/dist/graph/graphify-file-client.d.ts.map +1 -1
  48. package/dist/graph/graphify-file-client.js +30 -8
  49. package/dist/graph/graphify-file-client.js.map +1 -1
  50. package/dist/graph/language-indexers/c-cpp.d.ts +9 -1
  51. package/dist/graph/language-indexers/c-cpp.d.ts.map +1 -1
  52. package/dist/graph/language-indexers/c-cpp.js +328 -103
  53. package/dist/graph/language-indexers/c-cpp.js.map +1 -1
  54. package/dist/graph/language-indexers/index.d.ts +20 -0
  55. package/dist/graph/language-indexers/index.d.ts.map +1 -1
  56. package/dist/graph/language-indexers/index.js +4 -0
  57. package/dist/graph/language-indexers/index.js.map +1 -1
  58. package/dist/graph/language-indexers/java.d.ts +12 -0
  59. package/dist/graph/language-indexers/java.d.ts.map +1 -0
  60. package/dist/graph/language-indexers/java.js +273 -0
  61. package/dist/graph/language-indexers/java.js.map +1 -0
  62. package/dist/graph/language-indexers/python.d.ts.map +1 -1
  63. package/dist/graph/language-indexers/python.js +47 -4
  64. package/dist/graph/language-indexers/python.js.map +1 -1
  65. package/dist/graph/language-indexers/ruby.d.ts +14 -0
  66. package/dist/graph/language-indexers/ruby.d.ts.map +1 -0
  67. package/dist/graph/language-indexers/ruby.js +245 -0
  68. package/dist/graph/language-indexers/ruby.js.map +1 -0
  69. package/dist/graph/language-indexers/rust.d.ts +10 -1
  70. package/dist/graph/language-indexers/rust.d.ts.map +1 -1
  71. package/dist/graph/language-indexers/rust.js +254 -80
  72. package/dist/graph/language-indexers/rust.js.map +1 -1
  73. package/dist/graph/language-indexers/tree-sitter-loader.d.ts +8 -1
  74. package/dist/graph/language-indexers/tree-sitter-loader.d.ts.map +1 -1
  75. package/dist/graph/language-indexers/tree-sitter-loader.js +64 -13
  76. package/dist/graph/language-indexers/tree-sitter-loader.js.map +1 -1
  77. package/dist/graph/language-indexers/typescript.d.ts.map +1 -1
  78. package/dist/graph/language-indexers/typescript.js +72 -8
  79. package/dist/graph/language-indexers/typescript.js.map +1 -1
  80. package/dist/graph/metrics.d.ts +33 -0
  81. package/dist/graph/metrics.d.ts.map +1 -0
  82. package/dist/graph/metrics.js +117 -0
  83. package/dist/graph/metrics.js.map +1 -0
  84. package/dist/graph/token-savings.d.ts +52 -0
  85. package/dist/graph/token-savings.d.ts.map +1 -0
  86. package/dist/graph/token-savings.js +113 -0
  87. package/dist/graph/token-savings.js.map +1 -0
  88. package/dist/index.d.ts +2 -1
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +7 -1
  91. package/dist/index.js.map +1 -1
  92. package/dist/integrations/agent-mcp-installer.d.ts +2 -0
  93. package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
  94. package/dist/integrations/agent-mcp-installer.js +115 -23
  95. package/dist/integrations/agent-mcp-installer.js.map +1 -1
  96. package/dist/learning/episodic-memory.d.ts +8 -1
  97. package/dist/learning/episodic-memory.d.ts.map +1 -1
  98. package/dist/learning/episodic-memory.js +33 -0
  99. package/dist/learning/episodic-memory.js.map +1 -1
  100. package/dist/skills/index.d.ts +157 -0
  101. package/dist/skills/index.d.ts.map +1 -0
  102. package/dist/skills/index.js +157 -0
  103. package/dist/skills/index.js.map +1 -0
  104. package/dist/surfaces/cli/index.js +119 -0
  105. package/dist/surfaces/cli/index.js.map +1 -1
  106. package/dist/surfaces/cli/output.d.ts.map +1 -1
  107. package/dist/surfaces/cli/output.js +7 -0
  108. package/dist/surfaces/cli/output.js.map +1 -1
  109. package/dist/surfaces/cli/runtime/graph.d.ts +77 -3
  110. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
  111. package/dist/surfaces/cli/runtime/graph.js +140 -9
  112. package/dist/surfaces/cli/runtime/graph.js.map +1 -1
  113. package/dist/surfaces/cli/runtime/routing.d.ts +24 -1
  114. package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
  115. package/dist/surfaces/cli/runtime/routing.js +57 -0
  116. package/dist/surfaces/cli/runtime/routing.js.map +1 -1
  117. package/dist/surfaces/cli/runtime/settings.d.ts.map +1 -1
  118. package/dist/surfaces/cli/runtime/settings.js +4 -1
  119. package/dist/surfaces/cli/runtime/settings.js.map +1 -1
  120. package/dist/surfaces/cli/runtime/types.d.ts +16 -0
  121. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
  122. package/dist/surfaces/cli/runtime.d.ts +2 -2
  123. package/dist/surfaces/cli/runtime.d.ts.map +1 -1
  124. package/dist/surfaces/cli/runtime.js +11 -1
  125. package/dist/surfaces/cli/runtime.js.map +1 -1
  126. package/dist/surfaces/mcp/server.d.ts.map +1 -1
  127. package/dist/surfaces/mcp/server.js +143 -2
  128. package/dist/surfaces/mcp/server.js.map +1 -1
  129. package/package.json +5 -2
  130. package/scripts/safe-postinstall.cjs +167 -12
  131. package/src/surfaces/trae-skill/graphflow/SKILL.md +535 -0
  132. package/wasm/tree-sitter-c.wasm +0 -0
  133. package/wasm/tree-sitter-go.wasm +0 -0
  134. package/wasm/tree-sitter-java.wasm +0 -0
  135. package/wasm/tree-sitter-python.wasm +0 -0
  136. package/wasm/tree-sitter-ruby.wasm +0 -0
  137. package/wasm/tree-sitter-rust.wasm +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,32 @@ All notable changes to this project are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [1.0.3] - 2026-06-24
8
+
9
+ ### Fixed
10
+
11
+ - **CI**:`m17` 测试不再硬编码 `/usr/bin/node`,兼容 GitHub Actions hosted Node 路径。
12
+ - **图谱存储**:`graphify-file-client` 原子写入(temp + rename);损坏 JSON 时优雅降级为空 store 并提示 rebuild。
13
+ - **上下文检索**:`rankNodesForContextQuery` 降低 `.cursor/mcp.json`、`docs/integrations` 等配置噪声,优先 `src/` 与 Symbol 节点。
14
+ - **MCP metrics**:`graphflow_metrics` 支持 `rootDir` 并绑定工作区。
15
+
16
+ ## [1.0.2] - 2026-06-24
17
+
18
+ ### Fixed
19
+
20
+ - **MCP ENOENT(fnm 临时路径)**:安装 MCP 时不再写入 fnm multishell 临时 `node` 绝对路径;优先使用 IDE 自带 Electron(`ELECTRON_RUN_AS_NODE`),否则回退稳定 `node`。
21
+ - **Trae CN 支持**:安装器识别 `~/.trae-cn` 并写入 `~/.config/Trae CN/User/mcp.json`。
22
+
23
+ ## [1.0.1] - 2026-06-24
24
+
25
+ ### Fixed
26
+
27
+ - **多项目工作区隔离**:MCP / 扩展 / npm 包不再把图谱绑定到 vendor 目录或全局配置里的陈旧 `workspaceRoot`。
28
+ - **自动发现工作区**:新增 `discover-workspace`,从 cwd 向上查找项目根;仅在 runtime 目录(vendor、extensions)时回退到 IDE 环境变量。
29
+ - **MCP launcher**:子进程 `cwd` 与 `GRAPHFLOW_WORKSPACE_ROOT` 指向用户打开的项目,不再固定在扩展 vendor。
30
+ - **MCP 安装器**:默认写入 `GRAPHFLOW_WORKSPACE_ROOT: "${workspaceFolder}"`,merge 已有 env,扩展有工作区时同时写用户级与项目级配置。
31
+ - **MCP 工具**:`preview_context`、`inspect_graph`、`skill_insights`、`stats` 支持可选 `rootDir` 覆盖。
32
+
7
33
  ## [1.0.0] - 2026-06-19
8
34
 
9
35
  首个正式版本。在 0.6.x 基础上完成「诚实执行语义」收敛与「上下文压缩」体系,所有新增能力均端到端接线到 CLI / MCP / orchestrator。
package/README.md CHANGED
@@ -4,54 +4,70 @@ A Context-Aware Multi-Agent Orchestration Engine.
4
4
 
5
5
  GraphFlow 是一个基于 TypeScript/Node.js 的多智能体编排引擎,将 **Graphify 式知识图谱** 与 **Superpowers 式任务编排** 整合为可本地运行的上下文层:自动建图、压缩检索、规划执行、经验沉淀,并通过 CLI、MCP 与 VS Code 扩展对外暴露。
6
6
 
7
- ## 当前能力总览(v1.0.0
7
+ ## 当前能力总览(v1.0.0+)
8
8
 
9
9
  | 能力域 | 说明 |
10
10
  | --- | --- |
11
- | **任务规划与移交** | 按任务复杂度分流 simple / complex;DAG 规划;默认 **bridge 模式**输出结构化任务描述符交给外部 coding agent 执行 |
11
+ | **任务规划与移交** | 按任务复杂度分流 simple / complex;DAG 规划;`graphflow_plan_insight` 六顶思考帽 + 5-Why 深度分析;默认 **bridge 模式**输出结构化任务描述符交给外部 coding agent 执行 |
12
12
  | **模型路由** | Smart / Economy 双 tier;多 provider 健康探测与 fallback(OpenAI、Anthropic、百炼、豆包、OpenBMB) |
13
- | **知识图谱** | 工作区 AST 索引(TS/JS/Python/Rust/Go/C/C++);File / Module / Symbol 节点 + 依赖/引用/定义边 |
13
+ | **知识图谱** | 工作区 AST 索引(TS/JS/Python/Rust/Go/C/C++/Java/Ruby);File / Module / Symbol 节点 + 依赖/引用/定义边;图谱 artifact 导入/导出 |
14
14
  | **上下文压缩** | L1/L2/L3 分层锚点;近无损打包;图结构压缩(边权重+PageRank,零成本默认开启);可选语义压缩(minicpm/economy LLM 聚类合并);向量召回 + RRF + HNSW;RepoMap 概览;自适应预算 |
15
- | **持续建图** | 默认 `autoIndexOnSave`;preview / run 前按需增量索引(`hasPendingGraphIndexWork`) |
15
+ | **持续建图** | 默认 `autoIndexOnSave`;preview / run 前按需增量索引(`hasPendingGraphIndexWork`);MCP `graphflow_index_file` 单文件增量 |
16
16
  | **语义增强** | 可选 post-index LLM 语义 enrich;OpenBMB 本地 embedded 模式 |
17
17
  | **学习飞轮** | Episodic Memory、Reflection、Skill 节点、nightly 学习、技能提示注入规划 |
18
- | **Agent 接入** | CLI `--json`;MCP stdio(9 工具);Cursor / Claude Code 规则与示例配置 |
19
- | **VS Code 扩展** | Settings、建图、路由测试、Context Preview、**知识图谱可视化**、Skill Insights、Chat Agent |
18
+ | **可观测性** | `graphflow_stats` 累计 token 节省;`graphflow_metrics` Prometheus 指标;VS Code 知识图谱 Snapshot |
19
+ | **Agent 接入** | CLI `--json`;MCP stdio(**16 工具**);Cursor / Claude Code 规则与示例配置 |
20
+ | **VS Code 扩展** | Settings、建图、路由测试、Context Preview、**知识图谱可视化**、Skill Insights、Chat Agent、一键安装 MCP |
20
21
  | **存储后端** | `file`(JSON)/ `memory` / `sqlite`(FTS5)/ `mcp-http`(Graphify) |
21
- | **工程质量** | TypeScript strict;**45 测试文件 / 200+ tests**;`npm run ci` 含扩展 esbuild 打包与 bundled runtime smoke |
22
+ | **多项目隔离** | 全局配置共享 LLM/路由;**图谱路径按当前工作区解析**,不再串读其它项目的 `graphflow-out` |
23
+ | **工程质量** | TypeScript strict;**49 测试文件 / 200+ tests**;`npm run ci` 含扩展 esbuild 打包与 bundled runtime smoke |
22
24
 
23
25
  ### 一句话总结
24
26
 
25
27
  > 从 task 描述出发,自动规划 → 路由模型 → 压缩图谱上下文(含向量召回)→ **输出结构化执行描述符交给外部 coding agent**,并把经验沉淀回知识图谱;定位为 **上下文与规划服务(context service)**,而非独立执行器。
26
28
 
27
- ### v0.6.7 – v0.6.13 近期演进
29
+ ### v1.0.0 核心(2026-06)
28
30
 
29
- 1. **知识图谱可视化(v0.6.12–0.6.13)**
30
- - 可读标签(文件名、符号名、目录组)、代码层 / 学习层 Tab
31
- - 暗色面板、目录聚类着色、关系线型、缩放/平移
32
- - 双击节点或「打开源文件」跳转源码行
33
- - 布局归一化修复大图谱「只剩角落小点」问题
31
+ - **诚实执行语义(bridge 模式)**:`graphflow_run` 规划 + 压缩上下文后输出 `executionDescriptor`,交给 Cursor / Claude Code 等外部 agent 执行,不再伪造 `COMPLETED`。
32
+ - **三层渐进压缩**:图结构压缩(默认零成本)→ 向量召回 + HNSW → 可选语义压缩(economy / minicpm)。
33
+ - **混合压缩模型**:`compressor` 角色默认继承 economy tier;纯离线时首次按需下载 minicpm GGUF。
34
34
 
35
- 2. **持续静默建图(v0.6.11)**
36
- - `autoIndexOnSave` 默认开启;保存文件后 debounce 增量索引
37
- - 旧配置 `maxContextTokens: 400` 自动升级到 1500
35
+ ### 最新更新(v1.0.x / main)
38
36
 
39
- 3. **Runtime 模块化与扩展打包(v0.6.10)**
40
- - `runtime/` 子模块 + `GraphFlowRuntimeModule` 类型校验
41
- - VS Code 扩展 esbuild 单文件 bundle
37
+ 1. **多项目图谱隔离**
38
+ - 全局配置(`~/.graphflow.config.json`)只保存 LLM、路由等**机器级**设置,**不再持久化 `workspaceRoot`**
39
+ - 运行时按 `process.cwd()` `GRAPHFLOW_WORKSPACE_ROOT` 解析 `graphflow-out/graphflow-graph.json`
40
+ - 修复:切换项目后 Snapshot / MCP 仍显示旧项目图谱的问题
42
41
 
43
- 4. **配置与健壮性(v0.6.7–0.6.9)**
44
- - 全局配置优先(`~/.graphflow.config.json`)
45
- - 损坏 JSON 容错;postinstall 需显式 `GRAPHFLOW_ENABLE_POSTINSTALL=1`
46
- - 无工作区也可打开 Settings;CI 可复现 `npm ci`
42
+ 2. **索引与语言扩展**
43
+ - 新增 **Java**(`.java`)、**Ruby**(`.rb`)tree-sitter 索引器
44
+ - C/C++、Rust 索引器增强;WASM 语法包可随 npm 包离线分发(`npm run wasm:download`)
45
+ - MCP 新增 `graphflow_index_file` 单文件增量索引
47
46
 
48
- 5. **无 LLM 也能建图(v0.6.6 起)**
47
+ 3. **MCP 工具扩展(9 16)**
48
+ - `graphflow_plan_insight`:六顶思考帽 + 5-Why 深度规划
49
+ - `graphflow_export_artifact` / `graphflow_import_artifact`:图谱压缩包导入导出
50
+ - `graphflow_stats`:累计 token 节省统计
51
+ - `graphflow_metrics`:Prometheus 格式可观测性指标
52
+
53
+ 4. **知识图谱可视化(延续 v0.6.12+)**
54
+ - 可读标签、代码层/学习层 Tab、目录聚类、缩放平移、跳转源码
55
+ - Snapshot 为**采样视图**(默认约 120 节点 / 200 边),顶栏显示全库真实规模
56
+
57
+ 5. **配置与工程**
58
+ - 全局配置优先;损坏 JSON 容错;CI 全链路 validate + VSIX 打包
49
59
  - Settings「建立图谱(无需 LLM)」或 `graph index` 即可生成结构图谱
50
- - 可选「测试路由并建立图谱」在 LLM 连通后触发语义 enrich
60
+
61
+ ### 历史演进(v0.6.7 – v0.6.13 摘要)
62
+
63
+ - v0.6.12–0.6.13:知识图谱面板、布局归一化、Snapshot 可读标签
64
+ - v0.6.11:`autoIndexOnSave` 默认开启;`maxContextTokens` 400 → 1500 自动升级
65
+ - v0.6.10:runtime 模块化、VS Code esbuild bundle
66
+ - v0.6.7–0.6.9:全局配置脚手架、无工作区也可打开 Settings
51
67
 
52
68
  ### 发布信息
53
69
 
54
- - 最新版本:**v1.0.0**(root + vscode-extension);npm:`@roarpeng/graphflow@1.0.0`
70
+ - 最新版本:**v1.0.4**(root + vscode-extension);npm:`@roarpeng/graphflow@1.0.4`
55
71
  - **GitHub Release**:push 到 `main` 且 CI 通过后自动发布 VSIX(见 [Actions](https://github.com/Roarpeng/GraphFlow/actions))
56
72
  - 变更日志:`CHANGELOG.md`
57
73
 
@@ -83,19 +99,32 @@ GraphFlow 支持两种对外接入方式:
83
99
  npm run start:mcp
84
100
  ```
85
101
 
86
- ### MCP 工具一览
102
+ ### MCP 工具一览(16 个)
87
103
 
88
104
  | 工具 | 用途 |
89
105
  | --- | --- |
90
- | `graphflow_preview_context` | 压缩任务相关上下文(优先调用) |
91
- | `graphflow_plan` | 多步任务分解 |
92
- | `graphflow_run` | 执行编排循环 |
93
- | `graphflow_index` / `graphflow_rebuild` | 增量 / 全量建图 |
94
- | `graphflow_inspect_graph` | 图谱快照与统计 |
95
- | `graphflow_enrich_graph` | 语义增强 |
106
+ | `graphflow_preview_context` | 压缩任务相关上下文(**优先调用**) |
107
+ | `graphflow_plan` | 多步任务分解与 DAG 规划 |
108
+ | `graphflow_plan_insight` | 六顶思考帽 + 5-Why 深度分析后规划(复杂任务) |
109
+ | `graphflow_run` | 规划 + 压缩上下文,输出 bridge 执行描述符 |
110
+ | `graphflow_index` | 全工作区增量建图 |
111
+ | `graphflow_index_file` | 单文件增量建图(适合 onSave / watcher) |
112
+ | `graphflow_rebuild` | 清空缓存后全量重建 |
113
+ | `graphflow_inspect_graph` | 图谱快照统计与样本节点 |
114
+ | `graphflow_enrich_graph` | 符号节点语义增强 |
96
115
  | `graphflow_skill_insights` | 技能学习洞察 |
97
- | `graphflow_diagnose` | 路由健康诊断 |
98
- | `graphflow_model_download` | OpenBMB 模型下载 |
116
+ | `graphflow_diagnose` | 路由与压缩模型健康诊断 |
117
+ | `graphflow_model_download` | OpenBMB / minicpm 模型下载 |
118
+ | `graphflow_export_artifact` | 导出压缩图谱 artifact |
119
+ | `graphflow_import_artifact` | 导入图谱 artifact |
120
+ | `graphflow_stats` | 累计 token 节省 ROI 统计 |
121
+ | `graphflow_metrics` | Prometheus 格式运行指标 |
122
+
123
+ **MCP 建图提示**:用户级 MCP 进程的 `cwd` 不一定是当前项目。请任选其一:
124
+
125
+ - 调用 `graphflow_index` 时传入 `rootDir`(项目绝对路径)
126
+ - 在 MCP 配置中设置 `GRAPHFLOW_WORKSPACE_ROOT` 环境变量
127
+ - 使用 VS Code 扩展「建立图谱」或项目级 `.cursor/mcp.json`
99
128
 
100
129
  CLI 示例:
101
130
 
@@ -237,8 +266,10 @@ const run = await orchestrate(
237
266
  | Rust | `.rs` |
238
267
  | Go | `.go` |
239
268
  | C / C++ | `.c .h .cc .cpp .cxx .hpp .hxx` |
269
+ | Java | `.java` |
270
+ | Ruby | `.rb` |
240
271
 
241
- 通过 `graphPolicy.includeExtensions` 限制扫描范围。
272
+ 通过 `graphPolicy.includeExtensions` 限制扫描范围。tree-sitter WASM 语法包随 npm 包分发;开发/发布前可执行 `npm run wasm:download` 预下载到 `wasm/`。
242
273
 
243
274
  ## 配置文件
244
275
 
@@ -248,12 +279,26 @@ const run = await orchestrate(
248
279
  cp graphflow.config.example.json graphflow.config.json
249
280
  ```
250
281
 
282
+ ### 全局 vs 项目配置
283
+
284
+ | 层级 | 路径 | 适合存放 |
285
+ | --- | --- | --- |
286
+ | 全局 | `~/.graphflow.config.json` | Provider、API Key、Smart/Economy 模型、路由策略 |
287
+ | 项目根 | `graphflow.config.json` | 项目专属覆盖(可选) |
288
+ | 项目覆盖 | `.graphflow/config.json` | 工作区局部覆盖(`graphflow init` 生成) |
289
+
290
+ **多项目重要约定**:
291
+
292
+ - 图谱文件默认写在**当前工作区**下的 `graphflow-out/graphflow-graph.json`
293
+ - 全局配置**不应**包含固定的 `workspaceRoot`(旧版本若已写入,请删除该字段)
294
+ - MCP / 脚本可通过环境变量指定工作区:`GRAPHFLOW_WORKSPACE_ROOT=/path/to/project`
295
+
251
296
  关键项:
252
297
 
253
298
  | 配置 | 说明 |
254
299
  | --- | --- |
255
300
  | `graphPolicy.transport` | `file` / `memory` / `sqlite` / `mcp-http` |
256
- | `graphPolicy.graphStorePath` | JSON 或 `.sqlite` 路径 |
301
+ | `graphPolicy.graphStorePath` | 相对当前工作区的 JSON 或 `.sqlite` 路径 |
257
302
  | `graphPolicy.maxContextTokens` | 压缩上下文预算(默认 **1500**) |
258
303
  | `graphPolicy.autoIndexOnSave` | 保存后增量索引(默认 **true**) |
259
304
  | `graphPolicy.autoIndexOnPreview` / `autoIndexOnRun` | preview / run 前自动索引 |
@@ -317,6 +362,18 @@ code --install-extension artifacts/graphflow-vscode-*.vsix
317
362
 
318
363
  ## 常见问题
319
364
 
365
+ **切换项目后 Snapshot 显示别的仓库的图谱**
366
+
367
+ - 检查 `~/.graphflow.config.json` 是否含有旧的 `workspaceRoot`,**删除该字段**后重载窗口
368
+ - 在当前项目重新「建立图谱」,确认顶栏 `store` 路径指向本项目的 `graphflow-out/`
369
+ - 使用 v1.0.x 最新版(已修复全局 `workspaceRoot` 串项目问题)
370
+
371
+ **MCP 建图失败或索引到错误目录**
372
+
373
+ - `graphflow_index` 传入 `rootDir: "/你的项目绝对路径"`
374
+ - 或在 MCP 配置中加 `"env": { "GRAPHFLOW_WORKSPACE_ROOT": "/你的项目绝对路径" }`
375
+ - 离线环境首次索引多语言项目时,确保 `wasm/` 语法包存在或网络可访问 unpkg
376
+
320
377
  **`context preview` 返回 0 anchors**
321
378
 
322
379
  - 先执行 `graph index` 或 Settings 建图
@@ -326,6 +383,7 @@ code --install-extension artifacts/graphflow-vscode-*.vsix
326
383
 
327
384
  - 升级到 **v1.0.0+** 并重载窗口
328
385
  - 点击画布工具栏 **「适应」**
386
+ - 注意:画布展示的是**采样子图**(约 120 节点),全库规模请看顶栏统计
329
387
 
330
388
  **API Key 未配置**
331
389
 
@@ -347,7 +405,7 @@ GraphFlow/
347
405
  │ └── surfaces/
348
406
  │ ├── cli/ # CLI + runtime 子模块
349
407
  │ └── mcp/ # MCP server
350
- ├── tests/ # 45 文件 / 200+ tests
408
+ ├── tests/ # 49 文件 / 200+ tests
351
409
  ├── vscode-extension/ # VS Code 面板与命令
352
410
  ├── docs/
353
411
  └── CHANGELOG.md
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Six Thinking Hats + Five Whys Insight Engine.
3
+ *
4
+ * Borrowed from Edward de Bono's "Six Thinking Hats" framework —
5
+ * before planning a task, analyze it through 6 distinct perspectives,
6
+ * and auto-apply 5-level Why chains to key observations that fall
7
+ * below a confidence threshold.
8
+ *
9
+ * The 5 Why triggers are automatic: whenever a hat produces an
10
+ * observation with low certainty (< 0.6), the chain is applied to
11
+ * drill toward root cause.
12
+ */
13
+ import type { TaskNode } from "../core/types";
14
+ import type { ModelSelection } from "../routing/model-router";
15
+ import { type PromptContext } from "../routing/provider-executor";
16
+ /** === Hat Definitions === */
17
+ export interface HatDefinition {
18
+ name: string;
19
+ color: "white" | "red" | "black" | "yellow" | "green" | "blue";
20
+ role: string;
21
+ focus: string;
22
+ question: string;
23
+ whyFocus: string;
24
+ whyRootFocus: string;
25
+ }
26
+ export declare const SIX_HATS: HatDefinition[];
27
+ /** === Five Whys Chain === */
28
+ export interface WhyStep {
29
+ level: 1 | 2 | 3 | 4 | 5;
30
+ question: string;
31
+ answer: string;
32
+ certainty: number;
33
+ }
34
+ export interface FiveWhyResult {
35
+ initialObservation: string;
36
+ certainty: number;
37
+ steps: WhyStep[];
38
+ rootCause: string;
39
+ }
40
+ export interface WhyChainSection {
41
+ hat: HatDefinition;
42
+ /** Key observation produced by this hat */
43
+ observation: string;
44
+ certainty: number;
45
+ /** 5-level why chain (only non-trivial ones are expanded) */
46
+ whyChain: FiveWhyResult | null;
47
+ /** Critical findings that should influence the plan */
48
+ criticalInsight: string;
49
+ }
50
+ /** === Six Hats Analysis Result === */
51
+ export interface SixHatsInsight {
52
+ task: string;
53
+ hats: WhyChainSection[];
54
+ blueHatSynthesis: string;
55
+ rootCauses: string[];
56
+ criticalRisks: string[];
57
+ coreValue: string;
58
+ refinedTaskStatement: string;
59
+ }
60
+ /** === Main Entry Points === */
61
+ export interface PlanInsightOptions {
62
+ selection: ModelSelection;
63
+ context?: PromptContext;
64
+ }
65
+ /**
66
+ * Run the full Six Thinking Hats + Five Whys analysis on a task,
67
+ * then generate a DAG-style plan that incorporates the insights.
68
+ *
69
+ * @param task The task to analyze
70
+ * @param options Model selection and context options
71
+ */
72
+ export declare function planInsight(task: string, options: PlanInsightOptions): Promise<{
73
+ insight: SixHatsInsight;
74
+ plan: TaskNode[];
75
+ }>;
76
+ /**
77
+ * Run the Six Thinking Hats analysis with automatic 5 Why triggers.
78
+ *
79
+ * Each hat produces an observation. If the observation's certainty
80
+ * is below THRESHOLD (0.6), a 5 Why chain is automatically applied.
81
+ */
82
+ export declare function analyzeWithSixHats(task: string, options: PlanInsightOptions): Promise<SixHatsInsight>;
83
+ //# sourceMappingURL=insight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insight.d.ts","sourceRoot":"","sources":["../../src/agents/insight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGrF,8BAA8B;AAE9B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,EAAE,aAAa,EAuDnC,CAAC;AAEF,8BAA8B;AAE9B,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,aAAa,CAAC;IACnB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/B,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,uCAAuC;AAEvC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,gCAAgC;AAEhC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC;IACT,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB,CAAC,CAID;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAkCzB"}