opcode-pg-memory 2.3.3 → 2.4.1

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/README.md +86 -0
  2. package/dist/mcp-server.js +257 -24099
  3. package/dist/src/hooks/message-part-updated.js +1 -1
  4. package/dist/src/hooks/message-updated.d.ts.map +1 -1
  5. package/dist/src/hooks/message-updated.js +102 -93
  6. package/dist/src/hooks/message-updated.js.map +1 -1
  7. package/dist/src/hooks/session-compacting.js +9 -9
  8. package/dist/src/hooks/session-compacting.js.map +1 -1
  9. package/dist/src/hooks/session-completed.d.ts.map +1 -1
  10. package/dist/src/hooks/session-completed.js +8 -7
  11. package/dist/src/hooks/session-completed.js.map +1 -1
  12. package/dist/src/hooks/session-created.js +4 -4
  13. package/dist/src/hooks/session-created.js.map +1 -1
  14. package/dist/src/hooks/tool-execute.d.ts.map +1 -1
  15. package/dist/src/hooks/tool-execute.js +51 -14
  16. package/dist/src/hooks/tool-execute.js.map +1 -1
  17. package/dist/src/index.d.ts.map +1 -1
  18. package/dist/src/index.js +39 -0
  19. package/dist/src/index.js.map +1 -1
  20. package/dist/src/mcp/backfill-embeddings.d.ts +18 -0
  21. package/dist/src/mcp/backfill-embeddings.d.ts.map +1 -0
  22. package/dist/src/mcp/backfill-embeddings.js +54 -0
  23. package/dist/src/mcp/backfill-embeddings.js.map +1 -0
  24. package/dist/src/mcp/recall-memory.d.ts +24 -0
  25. package/dist/src/mcp/recall-memory.d.ts.map +1 -1
  26. package/dist/src/mcp/recall-memory.js +144 -23
  27. package/dist/src/mcp/recall-memory.js.map +1 -1
  28. package/dist/src/mcp/sync-health.d.ts +23 -0
  29. package/dist/src/mcp/sync-health.d.ts.map +1 -0
  30. package/dist/src/mcp/sync-health.js +74 -0
  31. package/dist/src/mcp/sync-health.js.map +1 -0
  32. package/dist/src/services/async-embedder.d.ts +31 -0
  33. package/dist/src/services/async-embedder.d.ts.map +1 -0
  34. package/dist/src/services/async-embedder.js +106 -0
  35. package/dist/src/services/async-embedder.js.map +1 -0
  36. package/dist/src/services/db-polling.d.ts +5 -0
  37. package/dist/src/services/db-polling.d.ts.map +1 -1
  38. package/dist/src/services/db-polling.js +35 -27
  39. package/dist/src/services/db-polling.js.map +1 -1
  40. package/dist/src/services/event-synchronizer.d.ts +3 -0
  41. package/dist/src/services/event-synchronizer.d.ts.map +1 -1
  42. package/dist/src/services/event-synchronizer.js +69 -50
  43. package/dist/src/services/event-synchronizer.js.map +1 -1
  44. package/dist/src/services/opencode-schema-adapter.d.ts +14 -0
  45. package/dist/src/services/opencode-schema-adapter.d.ts.map +1 -1
  46. package/dist/src/services/opencode-schema-adapter.js +71 -0
  47. package/dist/src/services/opencode-schema-adapter.js.map +1 -1
  48. package/package.json +1 -1
package/README.md CHANGED
@@ -73,11 +73,18 @@ git clone https://github.com/Vbs313/opcode-pg-memory.git && cd opcode-pg-memory
73
73
  recall_memory({
74
74
  "query": "数据库连接池配置",
75
75
  "caller_context": { "type": "omo_agent", "current_goal": "性能调优" },
76
+ "scope": "task",
77
+ "aggregate_similar": true,
76
78
  "retrieval_strategies": ["semantic", "graph"],
77
79
  "filters": { "tier": "project" }
78
80
  })
79
81
  ```
80
82
 
83
+ | 参数 | 类型 | 默认 | 说明 |
84
+ |------|------|------|------|
85
+ | `scope` | `session` / `task` / `project` | `session` | 检索范围:当前会话 / 同任务所有会话 / 同项目所有会话 |
86
+ | `aggregate_similar` | `boolean` | `false` | 合并连续同名工具调用(如 `read ×47 最近读取了...`),仅在查询层聚合,不丢失明细 |
87
+
81
88
  ### hindsight_reflect
82
89
 
83
90
  ```json
@@ -85,6 +92,37 @@ recall_memory({
85
92
  hindsight_reflect({ "omo_task_id": "task_123", "aggregate": true })
86
93
  ```
87
94
 
95
+ ### sync_health
96
+
97
+ ```json
98
+ // 检查同步健康状态(无参数)
99
+ sync_health()
100
+
101
+ // 返回示例
102
+ {
103
+ "status": "healthy",
104
+ "observations": { "total": 9922, "with_embedding": 9922, "embedding_pct": 100, "sessions_with_obs": 272 },
105
+ "embedder": { "queue_length": 0, "cooldown_remaining_s": null },
106
+ "warnings": []
107
+ }
108
+ ```
109
+
110
+ Agent 自愈模式:`sync_health` 发现 coverage < 95% → `backfill_embeddings` → `sync_health` 确认恢复。
111
+
112
+ ### backfill_embeddings
113
+
114
+ ```json
115
+ // 回填缺失的 embedding
116
+ backfill_embeddings({ "limit": 100 })
117
+ backfill_embeddings({}) // 全量
118
+ ```
119
+
120
+ | 参数 | 类型 | 默认 | 说明 |
121
+ |------|------|------|------|
122
+ | `limit` | `number` | `0`(全量) | 限制处理条数 |
123
+
124
+ 使用 AsyncEmbedder 队列执行,支持 Ollama 不可用时 5 分钟冷却自动续传。已覆盖的 observation(`embedding IS NOT NULL`)不会重复处理。
125
+
88
126
  ## 架构
89
127
 
90
128
  ```
@@ -111,6 +149,54 @@ src/
111
149
  mcp-server.ts # MCP 服务入口
112
150
  ```
113
151
 
152
+ ## 运维
153
+
154
+ ### 同步对账
155
+
156
+ ```bash
157
+ # 查看同步健康度
158
+ node scripts/verify-sync.js
159
+
160
+ # JSON 输出(用于自动化/监控)
161
+ node scripts/verify-sync.js --json
162
+ ```
163
+
164
+ 健康状态标志:
165
+
166
+ | 指标 | 健康 | 告警 |
167
+ |------|------|------|
168
+ | 同步率 | ≥ 99.5% | < 99% |
169
+ | tool_status = 'failed' 占比 | < 5% | > 10% |
170
+ | 缺失会话数 | 0 | > 0 |
171
+ | 含 tool_call_id 比例 | 100% | < 99% |
172
+ | embedding 覆盖度 | ≥ 95% | < 95% |
173
+
174
+ 首次部署后执行一次全量同步:
175
+
176
+ ```bash
177
+ node scripts/verify-sync.js
178
+ # 确认同步率 >= 99.5%
179
+ ```
180
+
181
+ `verify-sync.js` 是只读脚本,不修改数据库。同步由 EventSynchronizer 自动通过 OpenCode 事件总线或 SQLite 轮询完成。
182
+
183
+ Agent 可直接调用 `sync_health()` 获取相同信息(`status`、`embedding_pct`、`warnings`)。
184
+
185
+ ### 批量 embedding 回填
186
+
187
+ 首次部署或新增 embedding 模型后,对历史观察生成向量:
188
+
189
+ ```bash
190
+ # 查看待回填数量
191
+ node scripts/backfill-embeddings.js --dry-run
192
+
193
+ # 全量回填(按 created_at 顺序,支持断点续传)
194
+ node scripts/backfill-embeddings.js
195
+
196
+ # 限制处理条数(快速验证)
197
+ node scripts/backfill-embeddings.js --limit 100
198
+ ```
199
+
114
200
  ## 文档
115
201
 
116
202
  | 文档 | 内容 |