openclaw-sc 5.38.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 (48) hide show
  1. package/.env.example +13 -0
  2. package/INSTALL.md +13 -0
  3. package/LICENSE +233 -0
  4. package/README.md +123 -0
  5. package/SECURITY.md +27 -0
  6. package/index.js +3479 -0
  7. package/lib/code-review-shared.js +164 -0
  8. package/lib/config.js +164 -0
  9. package/lib/constants.js +438 -0
  10. package/lib/decomposer.js +896 -0
  11. package/lib/dialog-recall.js +389 -0
  12. package/lib/env.js +59 -0
  13. package/lib/level-rules.js +72 -0
  14. package/lib/log-manager.js +258 -0
  15. package/lib/preemption.js +278 -0
  16. package/lib/priority-calc.js +134 -0
  17. package/lib/prompt-injection.js +748 -0
  18. package/lib/route-evidence.js +701 -0
  19. package/lib/shared-fs.js +244 -0
  20. package/lib/steward-rules.js +648 -0
  21. package/lib/task-center.js +602 -0
  22. package/lib/task-chain.js +713 -0
  23. package/lib/task-checker.js +317 -0
  24. package/lib/task-profiles.js +255 -0
  25. package/lib/tcell.js +411 -0
  26. package/lib/tool-auto-discover.js +522 -0
  27. package/lib/tool-enrich-subagent.js +375 -0
  28. package/lib/tool-handlers.js +178 -0
  29. package/lib/tool-selector.js +459 -0
  30. package/openclaw.plugin.json +55 -0
  31. package/package.json +63 -0
  32. package/security.js +141 -0
  33. package/tools/bridge.js +3288 -0
  34. package/tools/dashboard/tk-dashboard.py +262 -0
  35. package/tools/hippocampus-multi-search.js +1038 -0
  36. package/tools/hippocampus-sqlite.js +738 -0
  37. package/tools/hippocampus-store.js +262 -0
  38. package/tools/mcp-tools.config.json +653 -0
  39. package/tools/pipeline-engine.js +667 -0
  40. package/tools/sidecar/_check_tools.py +34 -0
  41. package/tools/sidecar/sidecar-server.cjs +1360 -0
  42. package/tools/sidecar/subagent-runner.cjs +1471 -0
  43. package/tools/system-tools.js +619 -0
  44. package/vector/README.md +100 -0
  45. package/vector/usearch-bridge.js +639 -0
  46. package/vector/usearch-http.js +74 -0
  47. package/vector/usearch-serve.js +156 -0
  48. package/workers/worker.js +1419 -0
@@ -0,0 +1,100 @@
1
+ # 向量检索 · USearch HNSW
2
+
3
+ ## 架构
4
+
5
+ ```
6
+ bridge.js → usearch-bridge.js → Python(embed-serve.py, GPU) + USearch(C++ HNSW, 本地)
7
+ ```
8
+
9
+ - **嵌入层**: `scripts/embed-serve.py` — Python `sentence-transformers` GPU 推理,stdin/stdout 通信
10
+ - **检索层**: USearch — 内嵌 C++ HNSW 索引,0ms 网络开销,0.3ms 搜索
11
+ - **元数据**: `memory/hippocampus/usearch_meta.jsonl` — key→{text,source} 映射,启动时加载到 Map
12
+
13
+ ## 依赖
14
+
15
+ | 依赖 | 版本 | 用途 |
16
+ |------|------|------|
17
+ | Python | 3.12+ | 嵌入推理 |
18
+ | sentence-transformers | latest | BGE-M3 文本嵌入 |
19
+ | numpy | latest | 向量运算 |
20
+ | Node.js | 24+ | 运行时 |
21
+ | usearch (npm) | 2.25+ | C++ HNSW 索引(需编译) |
22
+ | Visual Studio BuildTools | 2022 | usearch npm 编译(C++ 桌面开发工作负载) |
23
+
24
+ ## 模型
25
+
26
+ | 项目 | 值 |
27
+ |------|-----|
28
+ | 模型 | `nomic-ai/nomic-embed-text-v1.5` |
29
+ | 维度 | 768 |
30
+ | 距离 | Cosine |
31
+ | 推理设备 | CUDA GPU |
32
+ | 镜像源 | `HF_ENDPOINT=https://hf-mirror.com` |
33
+
34
+ ## 索引参数
35
+
36
+ | 参数 | 值 | 说明 |
37
+ |------|-----|------|
38
+ | metric | cos | 余弦相似度 |
39
+ | dtype | f32 | 32位浮点 |
40
+ | connectivity (M) | 16 | HNSW 图层连接数 |
41
+ | expansion_add | 128 | 插入时的搜索宽度 |
42
+ | expansion_search | 64 | 查询时的搜索宽度 |
43
+
44
+ ## 性能
45
+
46
+ | 指标 | 冷启动 | 热查询 |
47
+ |------|--------|--------|
48
+ | 嵌入 | ~300ms (CUDA warmup) | ~6ms |
49
+ | 搜索 (USearch) | <1ms | ~0.3ms |
50
+ | 元数据查询 | ~2s (加载1M条目) | ~1ms (Map) |
51
+ | **总耗时** | ~15s | **~7ms** |
52
+
53
+ ## 文件
54
+
55
+ | 文件 | 说明 |
56
+ |------|------|
57
+ | `scripts/embed-serve.py` | 嵌入服务(stdin/stdout,GPU) |
58
+ | `scripts/migrate_to_usearch.py` | Qdrant → USearch 迁移脚本 |
59
+ | `scripts/qdrant-serve.py` | Qdrant 完整服务(BUILD增量编译用,待迁移到 USearch) |
60
+ | `vector/usearch-bridge.js` | Node.js 桥接(USearch + Metadata + 嵌入进程管理) |
61
+ | `memory/hippocampus/usearch_vectors.index` | USearch HNSW 索引文件(~1GB) |
62
+ | `memory/hippocampus/usearch_meta.jsonl` | 元数据文件(text + source, ~200MB) |
63
+
64
+ ## 数据流
65
+
66
+ ```
67
+ 用户搜索 "关键词"
68
+ → core_memorySearch(semantic_search)
69
+ → bridge.js: qdrantSearch()
70
+ → usearch-bridge.js: qdrantQuery()
71
+ 1. loadIndex() — Index.view() 从 NVMe 映射索引
72
+ 2. loadMeta() — 读 meta.jsonl → Map
73
+ 3. embedText() → Python embed-serve.py(stdin) → 768维向量
74
+ 4. idx.search(vec, topK) → USearch C++ HNSW → keys + distances
75
+ 5. 查 Map 获取 text/source
76
+ → 返回 { results, total_in_index, elapsed_ms }
77
+ ```
78
+
79
+ ## 迁移
80
+
81
+ ```powershell
82
+ # 从 Qdrant 迁移到 USearch(103万条,约10分钟)
83
+ py -3.12 scripts/migrate_to_usearch.py
84
+ ```
85
+
86
+ ## 已知问题
87
+
88
+ 1. **冷启动慢**: 首次搜索需 ~15s(模型加载 + CUDA warmup + 元数据加载)。后续热查询 ~7ms
89
+ 2. **VS BuildTools 必须**: `npm install usearch` 需要 C++ 桌面开发工作负载
90
+ 3. **增量编译**: 当前 BUILD 仍走 Qdrant Python 脚本,需迁移到 USearch 本地增量
91
+ 4. **元数据内存**: 1M 条目约 200MB,1亿条约 20GB——届时需换 SQLite/lmdb
92
+
93
+ ## 历史
94
+
95
+ | 版本 | 引擎 | 搜索耗时 | 网络层 | 增量 |
96
+ |------|------|---------|--------|------|
97
+ | v1 | FAISS GPU | 2-4ms | Python HTTP | ❌ 需加锁 |
98
+ | v2 | LanceDB | 2s→40ms | Python HTTP | ✅ MVCC |
99
+ | v3 | Qdrant gRPC | 3-16ms | gRPC/HTTP | ✅ 并发 |
100
+ | v4 | USearch HNSW | 0.3ms | 无 | ✅ HNSW动态 |