@synth-coder/memhub 0.2.2 → 0.2.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.
- package/.factory/commands/opsx-apply.md +150 -0
- package/.factory/commands/opsx-archive.md +155 -0
- package/.factory/commands/opsx-explore.md +171 -0
- package/.factory/commands/opsx-propose.md +104 -0
- package/.factory/skills/openspec-apply-change/SKILL.md +156 -0
- package/.factory/skills/openspec-archive-change/SKILL.md +114 -0
- package/.factory/skills/openspec-explore/SKILL.md +288 -0
- package/.factory/skills/openspec-propose/SKILL.md +110 -0
- package/.github/workflows/ci.yml +48 -12
- package/.github/workflows/release.yml +67 -0
- package/AGENTS.md +158 -17
- package/README.md +147 -66
- package/README.zh-CN.md +75 -23
- package/dist/src/cli/agents/claude-code.d.ts +5 -0
- package/dist/src/cli/agents/claude-code.d.ts.map +1 -0
- package/dist/src/cli/agents/claude-code.js +14 -0
- package/dist/src/cli/agents/claude-code.js.map +1 -0
- package/dist/src/cli/agents/cline.d.ts +5 -0
- package/dist/src/cli/agents/cline.d.ts.map +1 -0
- package/dist/src/cli/agents/cline.js +14 -0
- package/dist/src/cli/agents/cline.js.map +1 -0
- package/dist/src/cli/agents/codex.d.ts +5 -0
- package/dist/src/cli/agents/codex.d.ts.map +1 -0
- package/dist/src/cli/agents/codex.js +14 -0
- package/dist/src/cli/agents/codex.js.map +1 -0
- package/dist/src/cli/agents/cursor.d.ts +5 -0
- package/dist/src/cli/agents/cursor.d.ts.map +1 -0
- package/dist/src/cli/agents/cursor.js +14 -0
- package/dist/src/cli/agents/cursor.js.map +1 -0
- package/dist/src/cli/agents/factory-droid.d.ts +5 -0
- package/dist/src/cli/agents/factory-droid.d.ts.map +1 -0
- package/dist/src/cli/agents/factory-droid.js +14 -0
- package/dist/src/cli/agents/factory-droid.js.map +1 -0
- package/dist/src/cli/agents/gemini-cli.d.ts +5 -0
- package/dist/src/cli/agents/gemini-cli.d.ts.map +1 -0
- package/dist/src/cli/agents/gemini-cli.js +14 -0
- package/dist/src/cli/agents/gemini-cli.js.map +1 -0
- package/dist/src/cli/agents/index.d.ts +14 -0
- package/dist/src/cli/agents/index.d.ts.map +1 -0
- package/dist/src/cli/agents/index.js +30 -0
- package/dist/src/cli/agents/index.js.map +1 -0
- package/dist/src/cli/agents/windsurf.d.ts +5 -0
- package/dist/src/cli/agents/windsurf.d.ts.map +1 -0
- package/dist/src/cli/agents/windsurf.js +14 -0
- package/dist/src/cli/agents/windsurf.js.map +1 -0
- package/dist/src/cli/index.d.ts +8 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +168 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/init.d.ts +34 -0
- package/dist/src/cli/init.d.ts.map +1 -0
- package/dist/src/cli/init.js +160 -0
- package/dist/src/cli/init.js.map +1 -0
- package/dist/src/cli/instructions.d.ts +29 -0
- package/dist/src/cli/instructions.d.ts.map +1 -0
- package/dist/src/cli/instructions.js +141 -0
- package/dist/src/cli/instructions.js.map +1 -0
- package/dist/src/cli/types.d.ts +22 -0
- package/dist/src/cli/types.d.ts.map +1 -0
- package/dist/src/cli/types.js +86 -0
- package/dist/src/cli/types.js.map +1 -0
- package/dist/src/contracts/schemas.js.map +1 -1
- package/dist/src/server/mcp-server.d.ts +8 -0
- package/dist/src/server/mcp-server.d.ts.map +1 -1
- package/dist/src/server/mcp-server.js +30 -16
- package/dist/src/server/mcp-server.js.map +1 -1
- package/dist/src/services/embedding-service.d.ts.map +1 -1
- package/dist/src/services/embedding-service.js +1 -1
- package/dist/src/services/embedding-service.js.map +1 -1
- package/dist/src/services/memory-service.d.ts +1 -0
- package/dist/src/services/memory-service.d.ts.map +1 -1
- package/dist/src/services/memory-service.js +125 -82
- package/dist/src/services/memory-service.js.map +1 -1
- package/dist/src/storage/markdown-storage.d.ts.map +1 -1
- package/dist/src/storage/markdown-storage.js +1 -1
- package/dist/src/storage/markdown-storage.js.map +1 -1
- package/dist/src/storage/vector-index.d.ts.map +1 -1
- package/dist/src/storage/vector-index.js +4 -5
- package/dist/src/storage/vector-index.js.map +1 -1
- package/docs/README.md +21 -0
- package/docs/mcp-tools.md +136 -0
- package/docs/user-guide.md +182 -0
- package/package.json +22 -19
- package/src/cli/agents/claude-code.ts +14 -0
- package/src/cli/agents/cline.ts +14 -0
- package/src/cli/agents/codex.ts +14 -0
- package/src/cli/agents/cursor.ts +14 -0
- package/src/cli/agents/factory-droid.ts +14 -0
- package/src/cli/agents/gemini-cli.ts +14 -0
- package/src/cli/agents/index.ts +36 -0
- package/src/cli/agents/windsurf.ts +14 -0
- package/src/cli/index.ts +192 -0
- package/src/cli/init.ts +218 -0
- package/src/cli/instructions.ts +156 -0
- package/src/cli/types.ts +112 -0
- package/src/contracts/mcp.ts +1 -1
- package/src/contracts/schemas.ts +4 -4
- package/src/contracts/types.ts +4 -4
- package/src/server/mcp-server.ts +36 -29
- package/src/services/embedding-service.ts +80 -80
- package/src/services/memory-service.ts +142 -107
- package/src/storage/markdown-storage.ts +1 -9
- package/src/storage/vector-index.ts +117 -118
- package/test/cli/init.test.ts +380 -0
- package/test/server/mcp-server.test.ts +45 -3
- package/test/services/memory-service.test.ts +16 -4
- package/test/storage/frontmatter-parser.test.ts +1 -1
- package/test/storage/markdown-storage.test.ts +19 -10
- package/test/storage/vector-index.test.ts +129 -133
- package/test/utils/slugify.test.ts +5 -1
- package/docs/architecture.md +0 -349
- package/docs/contracts.md +0 -119
- package/docs/prompt-template.md +0 -79
- package/docs/proposals/mcp-typescript-sdk-refactor.md +0 -568
- package/docs/proposals/proposal-close-gates.md +0 -58
- package/docs/tool-calling-policy.md +0 -107
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# Tool Calling Policy (STM-first)
|
|
2
|
-
|
|
3
|
-
> 目标:让模型在每轮任务中稳定形成「先加载短期记忆,再产出,再回写记忆」的闭环。
|
|
4
|
-
|
|
5
|
-
## 一、调用时序(强约束)
|
|
6
|
-
|
|
7
|
-
1. **首轮调用 `memory_load`**(在响应用户前)
|
|
8
|
-
- 用于加载当前会话/任务相关短期记忆(STM)
|
|
9
|
-
- 若无命中,继续任务,不阻塞
|
|
10
|
-
|
|
11
|
-
2. **末轮调用 `memory_update`**(在本轮输出结束前)
|
|
12
|
-
- 将本轮新增的关键上下文写回
|
|
13
|
-
- 重点写入:决策、约束变更、待办变化、关键结论
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## 二、STM 判据(3 轮复用原则)
|
|
18
|
-
|
|
19
|
-
若信息在未来 **3 轮** 内很可能被再次引用,则纳入 STM:
|
|
20
|
-
|
|
21
|
-
- 当前任务目标/范围
|
|
22
|
-
- 新确认的约束条件
|
|
23
|
-
- 待办项与状态变化(pending / done)
|
|
24
|
-
- 临时变量、参数、文件路径、报错栈
|
|
25
|
-
- 用户明确修正/改口(需求切换)
|
|
26
|
-
|
|
27
|
-
不满足则不强行写入,避免噪音。
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## 三、建议工具定义(简化版)
|
|
32
|
-
|
|
33
|
-
## `memory_load`
|
|
34
|
-
**作用**:统一“看记忆”,用于当前轮开头加载上下文。
|
|
35
|
-
|
|
36
|
-
**建议入参**:
|
|
37
|
-
- `session_id`(可选,推荐)
|
|
38
|
-
- `date`(可选,默认今天)
|
|
39
|
-
- `limit`(可选,默认 20)
|
|
40
|
-
- `tags`(可选)
|
|
41
|
-
- `category`(可选)
|
|
42
|
-
- `query`(可选)
|
|
43
|
-
- `scope`(可选:`stm|all`,默认 `stm`)
|
|
44
|
-
|
|
45
|
-
**建议返回**:
|
|
46
|
-
- `items[]`(记忆条目)
|
|
47
|
-
- `summary`(可选摘要)
|
|
48
|
-
- `pending[]` / `done[]`(若可提取)
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## `memory_update`
|
|
53
|
-
**作用**:统一“写记忆”,用于当前轮末尾回写。
|
|
54
|
-
|
|
55
|
-
**建议入参**:
|
|
56
|
-
- `session_id`(可选;无则自动生成并返回)
|
|
57
|
-
- `date`(可选,默认今天)
|
|
58
|
-
- `mode`:`append|upsert`(默认 `append`)
|
|
59
|
-
- `entry_type`:`decision|preference|knowledge|todo|state_change`
|
|
60
|
-
- `title`
|
|
61
|
-
- `content`
|
|
62
|
-
- `tags[]`
|
|
63
|
-
- `category`
|
|
64
|
-
- `importance`(1-5)
|
|
65
|
-
|
|
66
|
-
**建议返回**:
|
|
67
|
-
- `id`
|
|
68
|
-
- `session_id`
|
|
69
|
-
- `file_path`
|
|
70
|
-
- `created|updated`
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## 四、并发与目录规范
|
|
75
|
-
|
|
76
|
-
为支持多个 CLI 同时写入,建议目录如下:
|
|
77
|
-
|
|
78
|
-
```text
|
|
79
|
-
memories/
|
|
80
|
-
YYYY-MM-DD/
|
|
81
|
-
<session_uuid>/
|
|
82
|
-
2026-03-03T16-41-23.123Z-<slug>.md
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
说明:
|
|
86
|
-
- 同一天按 `session_uuid` 分桶,避免并发冲突
|
|
87
|
-
- 每条记录仍保留 YAML + Markdown 正文
|
|
88
|
-
- `session_uuid` 可来自调用方;缺省由服务端生成
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## 五、触发更新条件
|
|
93
|
-
|
|
94
|
-
在以下事件发生时,优先触发 `memory_update`:
|
|
95
|
-
|
|
96
|
-
- 用户显式改需求(如“换个方案”)
|
|
97
|
-
- 任务状态切换(分析 → 实现 / 实现 → 验证)
|
|
98
|
-
- 新信息与既有 STM 冲突
|
|
99
|
-
- 本轮产出形成可复用结论
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## 六、设计原则
|
|
104
|
-
|
|
105
|
-
- **STM 保留细节,不做过度抽象**
|
|
106
|
-
- **LTM 另层抽取,不与 STM 混存**
|
|
107
|
-
- **先 load,后 update,形成闭环**
|