@roarpeng/graphflow 1.8.0 → 1.9.0

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 (76) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +14 -4
  3. package/dist/config/defaults.d.ts.map +1 -1
  4. package/dist/config/defaults.js +3 -0
  5. package/dist/config/defaults.js.map +1 -1
  6. package/dist/config/embedding-factory.d.ts +22 -0
  7. package/dist/config/embedding-factory.d.ts.map +1 -1
  8. package/dist/config/embedding-factory.js +81 -57
  9. package/dist/config/embedding-factory.js.map +1 -1
  10. package/dist/config/graphify-endpoint.d.ts +9 -0
  11. package/dist/config/graphify-endpoint.d.ts.map +1 -0
  12. package/dist/config/graphify-endpoint.js +24 -0
  13. package/dist/config/graphify-endpoint.js.map +1 -0
  14. package/dist/config/loader.d.ts.map +1 -1
  15. package/dist/config/loader.js +20 -4
  16. package/dist/config/loader.js.map +1 -1
  17. package/dist/config/schema.d.ts +16 -0
  18. package/dist/config/schema.d.ts.map +1 -1
  19. package/dist/core/orchestrator-episode.d.ts +7 -0
  20. package/dist/core/orchestrator-episode.d.ts.map +1 -1
  21. package/dist/core/orchestrator-episode.js +18 -0
  22. package/dist/core/orchestrator-episode.js.map +1 -1
  23. package/dist/core/orchestrator.d.ts.map +1 -1
  24. package/dist/core/orchestrator.js +3 -0
  25. package/dist/core/orchestrator.js.map +1 -1
  26. package/dist/graph/client-factory.d.ts.map +1 -1
  27. package/dist/graph/client-factory.js +17 -1
  28. package/dist/graph/client-factory.js.map +1 -1
  29. package/dist/graph/graphify-mcp-client.d.ts +46 -4
  30. package/dist/graph/graphify-mcp-client.d.ts.map +1 -1
  31. package/dist/graph/graphify-mcp-client.js +99 -22
  32. package/dist/graph/graphify-mcp-client.js.map +1 -1
  33. package/dist/graph/language-indexers/plcopen-xml.d.ts.map +1 -1
  34. package/dist/graph/language-indexers/plcopen-xml.js +18 -1
  35. package/dist/graph/language-indexers/plcopen-xml.js.map +1 -1
  36. package/dist/graph/language-indexers/st-analyzer.d.ts.map +1 -1
  37. package/dist/graph/language-indexers/st-analyzer.js +4 -2
  38. package/dist/graph/language-indexers/st-analyzer.js.map +1 -1
  39. package/dist/learning/embedding-quality.d.ts.map +1 -1
  40. package/dist/learning/embedding-quality.js +2 -0
  41. package/dist/learning/embedding-quality.js.map +1 -1
  42. package/dist/learning/seed-skills.d.ts.map +1 -1
  43. package/dist/learning/seed-skills.js +8 -0
  44. package/dist/learning/seed-skills.js.map +1 -1
  45. package/dist/learning/skill-flywheel.d.ts +46 -3
  46. package/dist/learning/skill-flywheel.d.ts.map +1 -1
  47. package/dist/learning/skill-flywheel.js +225 -8
  48. package/dist/learning/skill-flywheel.js.map +1 -1
  49. package/dist/learning/skill-package.d.ts +49 -8
  50. package/dist/learning/skill-package.d.ts.map +1 -1
  51. package/dist/learning/skill-package.js +127 -20
  52. package/dist/learning/skill-package.js.map +1 -1
  53. package/dist/learning/skill-store.d.ts.map +1 -1
  54. package/dist/learning/skill-store.js +12 -0
  55. package/dist/learning/skill-store.js.map +1 -1
  56. package/dist/learning/skill-types.d.ts +29 -0
  57. package/dist/learning/skill-types.d.ts.map +1 -1
  58. package/dist/learning/skill-types.js.map +1 -1
  59. package/dist/surfaces/cli/index.js +11 -4
  60. package/dist/surfaces/cli/index.js.map +1 -1
  61. package/dist/surfaces/cli/output.js +1 -1
  62. package/dist/surfaces/cli/output.js.map +1 -1
  63. package/dist/surfaces/cli/runtime/facade.d.ts +2 -1
  64. package/dist/surfaces/cli/runtime/facade.d.ts.map +1 -1
  65. package/dist/surfaces/cli/runtime/facade.js +1 -0
  66. package/dist/surfaces/cli/runtime/facade.js.map +1 -1
  67. package/dist/surfaces/cli/runtime/graph.d.ts +29 -4
  68. package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -1
  69. package/dist/surfaces/cli/runtime/graph.js +56 -8
  70. package/dist/surfaces/cli/runtime/graph.js.map +1 -1
  71. package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -1
  72. package/dist/surfaces/cli/runtime/routing.js +27 -1
  73. package/dist/surfaces/cli/runtime/routing.js.map +1 -1
  74. package/dist/surfaces/cli/runtime/types.d.ts +2 -0
  75. package/dist/surfaces/cli/runtime/types.d.ts.map +1 -1
  76. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  All notable changes to this project are documented in this file.
4
4
 
5
+ ## [1.9.0] - 2026-08-01
6
+
7
+ 技能质量与团队化版本:飞轮从「机制完整、效果未知」走向「A/B 实证 + 质量门禁 + 团队共享」。
8
+
9
+ ### Added
10
+
11
+ - **语义 embedding 可选后端(P0)**:`graphPolicy.embeddingProvider: "fnv" | "transformers"`(默认 `fnv` 离线安全);`transformers` 时经 `@huggingface/transformers` 懒加载 all-MiniLM-L6-v2,任何失败(缓存缺失/超时/加载错误)永久降级 FNV-1a 并告警;`graphflow_diagnose` 新增 `embeddingBackend: semantic | off` 上报活动后端
12
+ - **技能结果分类(P0)**:单一分数升级为 `proven / correctable / anti-pattern / noise` 四类——noise 提取即拒、装载时清理(`cleanupNoiseSkills`);仅 anti-pattern 记负分(消灭「首次失败即 -20 下沉」);proven 需 ≥2 次使用或链接成功结局
13
+ - **检索 golden set 26 → 132(P1)**:10 域覆盖(含 PLC),12 负样本断言 + 132 Top-K 位置断言(rank 稳定性门),每域 ≥8 查询护栏
14
+ - **技能飞轮端到端 A/B 基准(P1)**:`npm run benchmark:ab` 以 golden 查询为任务集、真实学习路径跑双臂——实测飞轮开 **100.0% vs 关 61.5%**(救回 10 任务、0 受损),开销 33 tok/任务
15
+ - **CI 版本一致性门禁(P1)**:`scripts/ci-version-check.cjs` 断言 package.json / CHANGELOG 最新条目 / README 徽章三源一致;CI 新增 skill A/B 基准 job(文件存在性守卫)
16
+ - **skill sync 双向 merge(P2)**:导入改为按技能 ID 合并——同 ID 取较新 `updatedAt`、平手保本地、本地独有保留;`--force` 恢复覆盖;包 schema 1.1 新增 `goldenQueries`,团队 golden 集随包同步(合并去重写 `.graphflow/team-golden.json`)
17
+ - **VS Code 飞轮贡献面板(P2)**:新增「Flywheel · 学习飞轮贡献」区块——技能正/中/负分布、topUsed、episodes pass/fail/pending 结果条;`runtime.getFlywheelReport()` 暴露数据
18
+ - **Graphify mcp-http 团队后端试点(P2)**:`GraphifyMcpClient` 补齐完整 `GraphClient` 接口,所有操作 `withFallback` 失败降级本地 file 存储;端点校验 + 15s 超时 + `readSnapshot`/`ping`/`isDegraded`;README 试点说明
19
+ - **PLC 索引器加固(P0)**:PLCopen XML POU `returnType`(嵌套/inline 双形态)提取为 `POU.return` 符号;ST 分析器 CASE 数值分支(`1:` / `1..10:`)不再被误判为跳转标签;45 测试 + 双 fixture
20
+
21
+ ### Changed
22
+
23
+ - **测试 92 文件/489 用例 → 94 文件/646 用例**,全量 14.7s 通过
24
+ - `vitest.config.ts` 排除 `.claude/worktrees/**`,根治多 worktree 并行时测试互扫污染(m50 假失败)
25
+
26
+ ### Fixed
27
+
28
+ - skill 节点全负分(-2/fail)根因:浅层 n-gram 技能(update/readme)被提取——现按符号证据门禁拒绝
29
+
5
30
  ## [1.8.0] - 2026-07-28
6
31
 
7
32
  目标对齐(Goal Alignment)版本:让 Agent 在长时间、多步骤任务中始终记得为什么出发——治「需求理解不透」与「干着干着偏离」两大痛点。
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # GraphFlow
2
2
 
3
- [![npm version](https://img.shields.io/badge/npm-1.8.0-blue)](https://www.npmjs.com/package/@roarpeng/graphflow)
3
+ [![npm version](https://img.shields.io/badge/npm-1.9.0-blue)](https://www.npmjs.com/package/@roarpeng/graphflow)
4
4
 
5
5
  > **编码 Agent 的上下文与记忆层** — Local-first 代码知识图谱 + 上下文压缩 + 跨会话学习飞轮
6
6
 
@@ -62,7 +62,7 @@ Agent 先调 `graphflow_context` 拿压缩上下文,再用 `graphflow_plan`
62
62
  | **向量索引** | 进程内记忆化 + **磁盘持久化**(指纹校验,MCP 重启秒级恢复) |
63
63
  | **存储后端** | `file` / `memory` / `sqlite`(FTS5,**searchtext 分词增强**,camelCase 可检索)/ **`auto`(sqlite 优先自动切换)** / `mcp-http` |
64
64
  | **学习飞轮** | Episodic Memory、Reflection、Skill 节点(score ±1,bounded [-20,20])、nightly 学习、技能衰减/剪枝、**飞轮贡献报告**(`skill report` / `graphflow_diagnose`,含偏离聚合与 Goal 统计) |
65
- | **团队共享** | **`skill sync`**:技能包导出/导入到可提交的 `.graphflow/skills/team-skills.json` |
65
+ | **团队共享** | **`skill sync`**:技能包导出/导入到可提交的 `.graphflow/skills/team-skills.json`;导入为**双向 MERGE**(per-skill-id 并集,updatedAt 较新者胜、并列保留本地、本地独有技能保留;`--force` 覆盖);golden 检索基准随包往返 → `.graphflow/team-golden.json` |
66
66
  | **效果基准** | [token 节省 98.7%](benchmarks/RESULTS.md)(独立复核);[Skill A/B 基准](benchmarks/SKILL-AB-RESULTS.md)(注入率/召回率/开销,`npm run benchmark:skills`) |
67
67
  | **模型路由** | Smart / Economy 双 tier;多 provider 健康探测与 fallback(DeepSeek、OpenAI、Anthropic、百炼、豆包) |
68
68
  | **可观测性** | `graphflow_diagnose`:provider 健康 + 图统计 + token 节省 + **飞轮报告** |
@@ -99,8 +99,8 @@ graphflow plan "refactor planner" --json # 规划
99
99
  graphflow run "update readme" # 编排(Bridge)
100
100
  graphflow skill insights # 技能洞察
101
101
  graphflow skill report # 飞轮贡献报告
102
- graphflow skill sync export # 导出团队技能包(git 共享)
103
- graphflow skill sync import # 导入团队技能包
102
+ graphflow skill sync export # 导出团队技能包 + golden 查询集(git 共享)
103
+ graphflow skill sync import # 导入团队技能包(MERGE;--force 覆盖)+ golden 合并到 .graphflow/team-golden.json
104
104
  graphflow route diagnose # 路由诊断
105
105
  graphflow learn nightly # 夜间学习
106
106
  graphflow doctor # 安装自检
@@ -121,6 +121,16 @@ graphflow doctor # 安装自检
121
121
  | `embeddingPolicy.vectorStorePath` | 向量索引持久化路径(自动派生 `.hnsw`) |
122
122
  | `skillPolicy.enableSkillFlywheel` | 学习飞轮开关 |
123
123
 
124
+ ## Team backend pilot(团队后端试点)
125
+
126
+ 将 `graphPolicy.transport` 设为 `mcp-http` 即可把图谱托管到远程 Graphify 服务(团队共享),需配置 `graphPolicy.mcpEndpoint`(http(s) URL,可选 `mcpApiKey` bearer token):
127
+
128
+ ```json
129
+ { "graphPolicy": { "transport": "mcp-http", "mcpEndpoint": "http://graphify.team.internal:8080" } }
130
+ ```
131
+
132
+ Endpoint 缺失/格式非法会在配置校验时直接报错;连接失败或运行期请求失败则透明降级到本地 JSON 文件存储(`graphPolicy.graphStorePath`,默认 `graphflow-out/graphflow-graph.json`)并记录 `logger.warn`,与 sqlite→file 降级一致,不会中断 Agent 流程。试点协议暂不支持全量快照:`readSnapshot` 返回本地镜像文件(可能滞后)。
133
+
124
134
  ## 基准
125
135
 
126
136
  - **Token 节省**:[benchmarks/RESULTS.md](benchmarks/RESULTS.md) — 8 个代表性查询,230,069 → 2,893 tokens(**98.7%**),独立 gpt-tokenizer 复核,`npm run benchmark` 可复现。
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD,eAAO,MAAM,cAAc;;;;;;;;;CAGjB,CAAC;AAEX,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AACjE,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,sFAAsF;AACtF,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,wBAAgB,gBAAgB,IAAI,eAAe,CAqDlD;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,IAAI,eAAe,CAUzD"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIhD,eAAO,MAAM,cAAc;;;;;;;;;CAGjB,CAAC;AAEX,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AACjE,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,sFAAsF;AACtF,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,wBAAgB,gBAAgB,IAAI,eAAe,CAwDlD;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,IAAI,eAAe,CAUzD"}
@@ -43,6 +43,9 @@ function getDefaultConfig() {
43
43
  graphStorePath: `${exports.DEFAULT_OUTPUT_DIR}/graphflow-graph.json`,
44
44
  maxContextTokens: 1500,
45
45
  layerQuota: { l1: 6, l2: 4, l3: 3 },
46
+ // P0-1: offline-safe default — FNV-1a hash embeddings, no model download.
47
+ // Opt into semantic recall by setting embeddingProvider: "transformers".
48
+ embeddingProvider: "fnv",
46
49
  compression: {
47
50
  enableGraphCompression: true,
48
51
  enableAdaptiveBudget: true,
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,26 @@
1
1
  import type { GraphFlowConfig } from "./schema";
2
2
  import type { EmbeddingProvider } from "../learning/embeddings";
3
+ /**
4
+ * Effective embedding backend for vector recall (P0-1):
5
+ * - "fnv" offline-safe default — deterministic FNV-1a hash embeddings
6
+ * - "transformers" optional semantic backend — lazily loads all-MiniLM-L6-v2
7
+ * via @huggingface/transformers, transparently falling back
8
+ * to FNV-1a on any load/cache/timeout failure
9
+ * - "openai" legacy remote embeddings (requires an API key)
10
+ *
11
+ * Resolution precedence: legacy explicit OpenAI (key present) wins over the new
12
+ * switch so existing openai users keep working; otherwise the new
13
+ * graphPolicy.embeddingProvider decides; finally the legacy embeddingPolicy
14
+ * provider (hash → fnv) applies; the fallback default is the resilient local
15
+ * transformers path (unchanged legacy behavior for configs without defaults).
16
+ */
17
+ export declare function resolveEffectiveEmbeddingBackend(config: GraphFlowConfig): "fnv" | "transformers" | "openai";
18
+ /**
19
+ * Active semantic backend for diagnose: "semantic" when a real embedding model
20
+ * (MiniLM / OpenAI) is active, "off" when FNV-1a hash (or none). Prefers the
21
+ * settled quality-monitor backend (so a transformers→hash fallback reports
22
+ * "off"), falling back to configured intent before the first embed.
23
+ */
24
+ export declare function resolveActiveEmbeddingBackend(config: GraphFlowConfig): "semantic" | "off";
3
25
  export declare function createEmbeddingProviderFromConfig(config: GraphFlowConfig): EmbeddingProvider | undefined;
4
26
  //# sourceMappingURL=embedding-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-factory.d.ts","sourceRoot":"","sources":["../../src/config/embedding-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA+BhE,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,eAAe,GACtB,iBAAiB,GAAG,SAAS,CAuH/B"}
1
+ {"version":3,"file":"embedding-factory.d.ts","sourceRoot":"","sources":["../../src/config/embedding-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAgChE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,eAAe,GACtB,KAAK,GAAG,cAAc,GAAG,QAAQ,CAuBnC;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,eAAe,GAAG,UAAU,GAAG,KAAK,CAUzF;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,eAAe,GACtB,iBAAiB,GAAG,SAAS,CA2F/B"}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveEffectiveEmbeddingBackend = resolveEffectiveEmbeddingBackend;
4
+ exports.resolveActiveEmbeddingBackend = resolveActiveEmbeddingBackend;
3
5
  exports.createEmbeddingProviderFromConfig = createEmbeddingProviderFromConfig;
4
6
  const secrets_1 = require("./secrets");
5
7
  const embeddings_1 = require("../learning/embeddings");
@@ -18,27 +20,74 @@ function collectResolveRoots(config) {
18
20
  function resolveConfiguredModelCacheDir(config) {
19
21
  return config.embeddingPolicy?.modelCacheDir ?? config.embeddingPolicy?.transformersCachePath;
20
22
  }
23
+ /**
24
+ * Effective embedding backend for vector recall (P0-1):
25
+ * - "fnv" offline-safe default — deterministic FNV-1a hash embeddings
26
+ * - "transformers" optional semantic backend — lazily loads all-MiniLM-L6-v2
27
+ * via @huggingface/transformers, transparently falling back
28
+ * to FNV-1a on any load/cache/timeout failure
29
+ * - "openai" legacy remote embeddings (requires an API key)
30
+ *
31
+ * Resolution precedence: legacy explicit OpenAI (key present) wins over the new
32
+ * switch so existing openai users keep working; otherwise the new
33
+ * graphPolicy.embeddingProvider decides; finally the legacy embeddingPolicy
34
+ * provider (hash → fnv) applies; the fallback default is the resilient local
35
+ * transformers path (unchanged legacy behavior for configs without defaults).
36
+ */
37
+ function resolveEffectiveEmbeddingBackend(config) {
38
+ const policy = config.embeddingPolicy;
39
+ const graphEmbedding = config.graphPolicy?.embeddingProvider;
40
+ const hasOpenAiKey = Boolean((0, secrets_1.resolveConfigSecret)(policy?.apiKey) ??
41
+ (0, secrets_1.resolveConfigSecret)(config.providers.openai?.apiKey) ??
42
+ process.env.OPENAI_API_KEY);
43
+ if (policy?.provider === "openai" && hasOpenAiKey) {
44
+ return "openai";
45
+ }
46
+ if (graphEmbedding === "fnv" || graphEmbedding === "transformers") {
47
+ return graphEmbedding;
48
+ }
49
+ if (policy?.provider === "openai") {
50
+ // Requested but no API key → resilient local (existing behavior)
51
+ return "transformers";
52
+ }
53
+ if (policy?.provider === "hash") {
54
+ return "fnv";
55
+ }
56
+ // Legacy default & unknown provider → resilient local
57
+ return "transformers";
58
+ }
59
+ /**
60
+ * Active semantic backend for diagnose: "semantic" when a real embedding model
61
+ * (MiniLM / OpenAI) is active, "off" when FNV-1a hash (or none). Prefers the
62
+ * settled quality-monitor backend (so a transformers→hash fallback reports
63
+ * "off"), falling back to configured intent before the first embed.
64
+ */
65
+ function resolveActiveEmbeddingBackend(config) {
66
+ const summary = (0, embedding_quality_1.getEmbeddingQualitySummary)();
67
+ if (summary.backend === "transformers" || summary.backend === "openai") {
68
+ return "semantic";
69
+ }
70
+ if (summary.backend === "hash") {
71
+ return "off";
72
+ }
73
+ // Not settled yet → configured intent
74
+ return resolveEffectiveEmbeddingBackend(config) === "fnv" ? "off" : "semantic";
75
+ }
21
76
  function createEmbeddingProviderFromConfig(config) {
22
77
  const policy = config.embeddingPolicy;
23
78
  if (policy?.enabled === false) {
24
79
  return undefined;
25
80
  }
26
- const provider = policy?.provider ?? "transformers";
81
+ const backend = resolveEffectiveEmbeddingBackend(config);
27
82
  const modelCacheDir = resolveConfiguredModelCacheDir(config);
28
83
  let embeddingProvider;
29
84
  let model = "Xenova/all-MiniLM-L6-v2";
30
85
  let dimensions = embeddings_1.EMBEDDING_DIM;
31
86
  let resolvedProviderName = "transformers";
32
- if (provider === "hash") {
33
- model = embeddings_1.HASH_EMBEDDING_MODEL;
34
- resolvedProviderName = "hash";
35
- embeddingProvider = (0, embeddings_1.createHashEmbeddingProvider)();
36
- (0, embedding_quality_1.configureEmbeddingQualityBackend)("hash");
37
- }
38
- else if (provider === "transformers") {
87
+ const createResilientLocal = () => {
39
88
  resolvedProviderName = "transformers";
40
89
  (0, embedding_quality_1.configureEmbeddingQualityBackend)("pending");
41
- embeddingProvider = (0, embeddings_1.createResilientLocalEmbeddingProvider)({
90
+ return (0, embeddings_1.createResilientLocalEmbeddingProvider)({
42
91
  resolveRoots: collectResolveRoots(config),
43
92
  ...(modelCacheDir ? { modelCacheDir } : {}),
44
93
  onFallback: () => {
@@ -50,60 +99,35 @@ function createEmbeddingProviderFromConfig(config) {
50
99
  (0, embedding_quality_1.configureEmbeddingQualityBackend)("hash");
51
100
  },
52
101
  });
102
+ };
103
+ if (backend === "fnv") {
104
+ model = embeddings_1.HASH_EMBEDDING_MODEL;
105
+ resolvedProviderName = "hash";
106
+ embeddingProvider = (0, embeddings_1.createHashEmbeddingProvider)();
107
+ (0, embedding_quality_1.configureEmbeddingQualityBackend)("hash");
108
+ }
109
+ else if (backend === "transformers") {
110
+ embeddingProvider = createResilientLocal();
53
111
  }
54
- else if (provider === "openai") {
112
+ else {
113
+ // openai — key guaranteed present by resolveEffectiveEmbeddingBackend
55
114
  const apiKey = (0, secrets_1.resolveConfigSecret)(policy?.apiKey) ??
56
115
  (0, secrets_1.resolveConfigSecret)(config.providers.openai?.apiKey) ??
57
116
  process.env.OPENAI_API_KEY ??
58
117
  "";
59
- if (!apiKey) {
60
- resolvedProviderName = "transformers";
61
- (0, embedding_quality_1.configureEmbeddingQualityBackend)("pending");
62
- embeddingProvider = (0, embeddings_1.createResilientLocalEmbeddingProvider)({
63
- resolveRoots: collectResolveRoots(config),
64
- ...(modelCacheDir ? { modelCacheDir } : {}),
65
- onFallback: () => {
66
- (0, embedding_quality_1.configureEmbeddingQualityMeta)({
67
- provider: "hash",
68
- model: embeddings_1.HASH_EMBEDDING_MODEL,
69
- dimensions: embeddings_1.EMBEDDING_DIM,
70
- });
71
- (0, embedding_quality_1.configureEmbeddingQualityBackend)("hash");
72
- },
73
- });
74
- }
75
- else {
76
- model = policy?.model ?? "text-embedding-3-small";
77
- dimensions = 1536;
78
- resolvedProviderName = "openai";
79
- (0, embedding_quality_1.configureEmbeddingQualityBackend)("openai");
80
- const openAiOptions = {
81
- apiKey,
82
- model,
83
- };
84
- const baseUrl = policy?.baseUrl ?? config.providers.openai?.baseUrl;
85
- if (baseUrl) {
86
- openAiOptions.baseUrl = baseUrl;
87
- }
88
- embeddingProvider = (0, embeddings_1.createOpenAiEmbeddingProvider)(openAiOptions);
118
+ model = policy?.model ?? "text-embedding-3-small";
119
+ dimensions = 1536;
120
+ resolvedProviderName = "openai";
121
+ (0, embedding_quality_1.configureEmbeddingQualityBackend)("openai");
122
+ const openAiOptions = {
123
+ apiKey,
124
+ model,
125
+ };
126
+ const baseUrl = policy?.baseUrl ?? config.providers.openai?.baseUrl;
127
+ if (baseUrl) {
128
+ openAiOptions.baseUrl = baseUrl;
89
129
  }
90
- }
91
- else {
92
- // Unknown provider fallback to resilient local
93
- resolvedProviderName = "transformers";
94
- (0, embedding_quality_1.configureEmbeddingQualityBackend)("pending");
95
- embeddingProvider = (0, embeddings_1.createResilientLocalEmbeddingProvider)({
96
- resolveRoots: collectResolveRoots(config),
97
- ...(modelCacheDir ? { modelCacheDir } : {}),
98
- onFallback: () => {
99
- (0, embedding_quality_1.configureEmbeddingQualityMeta)({
100
- provider: "hash",
101
- model: embeddings_1.HASH_EMBEDDING_MODEL,
102
- dimensions: embeddings_1.EMBEDDING_DIM,
103
- });
104
- (0, embedding_quality_1.configureEmbeddingQualityBackend)("hash");
105
- },
106
- });
130
+ embeddingProvider = (0, embeddings_1.createOpenAiEmbeddingProvider)(openAiOptions);
107
131
  }
108
132
  if (embeddingProvider) {
109
133
  (0, embedding_quality_1.configureEmbeddingQualityMeta)({
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-factory.js","sourceRoot":"","sources":["../../src/config/embedding-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedding-factory.js","sourceRoot":"","sources":["../../src/config/embedding-factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Validation for the Graphify team-backend endpoint (graphPolicy.mcpEndpoint).
3
+ *
4
+ * Leaf module (no imports) so both config loading and the Graphify MCP client
5
+ * can use it without introducing dependency cycles.
6
+ */
7
+ /** Returns an error message when `endpoint` is not a usable http(s) URL, else null. */
8
+ export declare function validateGraphifyEndpoint(endpoint: string): string | null;
9
+ //# sourceMappingURL=graphify-endpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphify-endpoint.d.ts","sourceRoot":"","sources":["../../src/config/graphify-endpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uFAAuF;AACvF,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWxE"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Validation for the Graphify team-backend endpoint (graphPolicy.mcpEndpoint).
4
+ *
5
+ * Leaf module (no imports) so both config loading and the Graphify MCP client
6
+ * can use it without introducing dependency cycles.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.validateGraphifyEndpoint = validateGraphifyEndpoint;
10
+ /** Returns an error message when `endpoint` is not a usable http(s) URL, else null. */
11
+ function validateGraphifyEndpoint(endpoint) {
12
+ let parsed;
13
+ try {
14
+ parsed = new URL(endpoint);
15
+ }
16
+ catch {
17
+ return `graphPolicy.mcpEndpoint must be an http(s) URL, got "${endpoint}"`;
18
+ }
19
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
20
+ return `graphPolicy.mcpEndpoint must be an http(s) URL, got protocol "${parsed.protocol}"`;
21
+ }
22
+ return null;
23
+ }
24
+ //# sourceMappingURL=graphify-endpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphify-endpoint.js","sourceRoot":"","sources":["../../src/config/graphify-endpoint.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAGH,4DAWC;AAZD,uFAAuF;AACvF,SAAgB,wBAAwB,CAAC,QAAgB;IACvD,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,wDAAwD,QAAQ,GAAG,CAAC;IAC7E,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChE,OAAO,iEAAiE,MAAM,CAAC,QAAQ,GAAG,CAAC;IAC7F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,SAA0B,GAAG,sBAAsB,CA2F7F;AAcD,wBAAgB,UAAU,CAAC,IAAI,SAA0B,GAAG,eAAe,CAE1E;AAED,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,IAAI,SAA0B,GAAG,gBAAgB,CA8B/E;AAwBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CA8GtE"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,CAAC,IAAI,SAA0B,GAAG,sBAAsB,CAkG7F;AAcD,wBAAgB,UAAU,CAAC,IAAI,SAA0B,GAAG,eAAe,CAE1E;AAED,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,IAAI,SAA0B,GAAG,gBAAgB,CA8B/E;AAwBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAuHtE"}
@@ -7,6 +7,7 @@ exports.validateConfig = validateConfig;
7
7
  const node_fs_1 = require("node:fs");
8
8
  const node_path_1 = require("node:path");
9
9
  const secrets_1 = require("./secrets");
10
+ const graphify_endpoint_1 = require("./graphify-endpoint");
10
11
  const defaults_1 = require("./defaults");
11
12
  const include_extensions_js_1 = require("./include-extensions.js");
12
13
  const logger_1 = require("../utils/logger");
@@ -45,8 +46,16 @@ function validateConfigDetailed(path = "graphflow.config.json") {
45
46
  if (!allowedTransports.has(parsed.graphPolicy.transport)) {
46
47
  issues.push({ severity: "error", field: "graphPolicy.transport", message: `Must be one of: memory|mcp-http|file|sqlite|auto, got "${parsed.graphPolicy.transport}"` });
47
48
  }
48
- if (parsed.graphPolicy.transport === "mcp-http" && !parsed.graphPolicy.mcpEndpoint) {
49
- issues.push({ severity: "error", field: "graphPolicy.mcpEndpoint", message: "Required for mcp-http transport" });
49
+ if (parsed.graphPolicy.transport === "mcp-http") {
50
+ if (!parsed.graphPolicy.mcpEndpoint) {
51
+ issues.push({ severity: "error", field: "graphPolicy.mcpEndpoint", message: "Required for mcp-http transport" });
52
+ }
53
+ else {
54
+ const invalid = (0, graphify_endpoint_1.validateGraphifyEndpoint)(parsed.graphPolicy.mcpEndpoint);
55
+ if (invalid) {
56
+ issues.push({ severity: "error", field: "graphPolicy.mcpEndpoint", message: invalid });
57
+ }
58
+ }
50
59
  }
51
60
  if (parsed.graphPolicy.transport === "file" && !parsed.graphPolicy.graphStorePath) {
52
61
  issues.push({ severity: "warning", field: "graphPolicy.graphStorePath", message: "Not set for file transport; will use default" });
@@ -167,8 +176,15 @@ function validateConfig(input) {
167
176
  if (!input.graphPolicy) {
168
177
  throw new Error("Invalid config: graphPolicy is required.");
169
178
  }
170
- if (input.graphPolicy.transport === "mcp-http" && !input.graphPolicy.mcpEndpoint) {
171
- throw new Error("Invalid config: graphPolicy.mcpEndpoint is required for mcp-http.");
179
+ if (input.graphPolicy.transport === "mcp-http") {
180
+ if (!input.graphPolicy.mcpEndpoint) {
181
+ throw new Error("Invalid config: graphPolicy.mcpEndpoint is required for mcp-http. " +
182
+ 'Point it at a Graphify team server, e.g. "http://graphify.team.internal:8080".');
183
+ }
184
+ const invalid = (0, graphify_endpoint_1.validateGraphifyEndpoint)(input.graphPolicy.mcpEndpoint);
185
+ if (invalid) {
186
+ throw new Error(`Invalid config: ${invalid}`);
187
+ }
172
188
  }
173
189
  if (input.graphPolicy.transport === "file" && !input.graphPolicy.graphStorePath) {
174
190
  throw new Error("Invalid config: graphPolicy.graphStorePath is required for file transport.");
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,14 @@ export interface GraphFlowConfig {
36
36
  workspaceRoot?: string;
37
37
  includeExtensions?: string[];
38
38
  transport: "memory" | "mcp-http" | "file" | "sqlite" | "auto";
39
+ /**
40
+ * Graphify team-backend endpoint (transport: "mcp-http" only). Must be an
41
+ * http(s) URL, e.g. "http://graphify.team.internal:8080". When the endpoint
42
+ * is missing, malformed, or unreachable, GraphFlow logs a warning and falls
43
+ * back to the local JSON file store (graphPolicy.graphStorePath).
44
+ */
39
45
  mcpEndpoint?: string;
46
+ /** Optional bearer token sent as `Authorization: Bearer <key>` to the Graphify endpoint. */
40
47
  mcpApiKey?: string;
41
48
  graphStorePath?: string;
42
49
  maxContextTokens: number;
@@ -45,6 +52,15 @@ export interface GraphFlowConfig {
45
52
  l2: number;
46
53
  l3: number;
47
54
  };
55
+ /**
56
+ * Embedding backend for vector recall (P0-1). Default "fnv" is
57
+ * zero-config and offline-safe: deterministic FNV-1a bag-of-tokens
58
+ * embeddings, no downloads. Set "transformers" to lazily load
59
+ * all-MiniLM-L6-v2 via @huggingface/transformers (downloaded once, then
60
+ * cached) for semantic query + node embeddings; any failure (missing
61
+ * model cache, timeout, load error) transparently falls back to FNV-1a.
62
+ */
63
+ embeddingProvider?: "fnv" | "transformers";
48
64
  /**
49
65
  * Context compression model selection. Compression (cluster summarization,
50
66
  * node densification) reuses the economy tier by default ("inherit"), so
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,13 @@ import type { TaskRunResult, TaskNode, OrchestrateOptions } from "./types.js";
6
6
  * 幂等:已存在的技能节点会被跳过。失败不阻断主流程。
7
7
  */
8
8
  export declare function maybeSeedInitialSkills(options?: OrchestrateOptions): Promise<void>;
9
+ /**
10
+ * P0-2 load-time cleanup: when the skill flywheel is active, prune legacy
11
+ * pure-noise skill nodes (no symbol evidence) that older versions extracted
12
+ * from generic episode text ("update", "readme", ...). Idempotent; never
13
+ * touches curated seed skills. Failures never block orchestration.
14
+ */
15
+ export declare function maybeCleanupNoiseSkills(options?: OrchestrateOptions): Promise<void>;
9
16
  export declare function maybeFindSimilarEpisodes(task: string, options?: OrchestrateOptions): Promise<EpisodeRecord[]>;
10
17
  export declare function maybeSyncGraph(task: string, run: TaskRunResult, options?: OrchestrateOptions): Promise<void>;
11
18
  export declare function maybeSyncSkillGraph(task: string, run: TaskRunResult, options?: OrchestrateOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-episode.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator-episode.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AAKxC,OAAO,KAAK,EAAE,aAAa,EAAc,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE1F;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxF;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,aAAa,EAAE,CAAC,CAO1B;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAaf;AASD,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EAAE,EAChB,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,aAAa,EAAE,EACxB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,CAAC,EAAE,kBAAkB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAyDxB"}
1
+ {"version":3,"file":"orchestrator-episode.d.ts","sourceRoot":"","sources":["../../src/core/orchestrator-episode.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AAKxC,OAAO,KAAK,EAAE,aAAa,EAAc,QAAQ,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE1F;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxF;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CASzF;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,aAAa,EAAE,CAAC,CAO1B;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAaf;AASD,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EAAE,EAChB,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,aAAa,EAAE,EACxB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,CAAC,EAAE,kBAAkB,EAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC,CAyDxB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.maybeSeedInitialSkills = maybeSeedInitialSkills;
4
+ exports.maybeCleanupNoiseSkills = maybeCleanupNoiseSkills;
4
5
  exports.maybeFindSimilarEpisodes = maybeFindSimilarEpisodes;
5
6
  exports.maybeSyncGraph = maybeSyncGraph;
6
7
  exports.maybeSyncSkillGraph = maybeSyncSkillGraph;
@@ -28,6 +29,23 @@ async function maybeSeedInitialSkills(options) {
28
29
  logger_js_1.logger.warn({ error }, "Seed skills initialization failed");
29
30
  }
30
31
  }
32
+ /**
33
+ * P0-2 load-time cleanup: when the skill flywheel is active, prune legacy
34
+ * pure-noise skill nodes (no symbol evidence) that older versions extracted
35
+ * from generic episode text ("update", "readme", ...). Idempotent; never
36
+ * touches curated seed skills. Failures never block orchestration.
37
+ */
38
+ async function maybeCleanupNoiseSkills(options) {
39
+ if (!options?.enableSkillFlywheel || !options.graphClient) {
40
+ return;
41
+ }
42
+ try {
43
+ await (0, skill_flywheel_js_1.cleanupNoiseSkills)(options.graphClient);
44
+ }
45
+ catch (error) {
46
+ logger_js_1.logger.warn({ error }, "Skill noise cleanup failed");
47
+ }
48
+ }
31
49
  async function maybeFindSimilarEpisodes(task, options) {
32
50
  if (!options?.enableEpisodicMemory || !options.graphClient) {
33
51
  return [];