@memo-code/memo 0.7.2 → 0.8.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.
package/README.md CHANGED
@@ -5,18 +5,22 @@
5
5
  </div>
6
6
 
7
7
  <p align="center">
8
- <a href="README.zh.md">Chinese Documentation</a>
8
+ <a href="https://github.com/minorcell/memo-code/actions/workflows/ci.yml">
9
+ <img src="https://github.com/minorcell/memo-code/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI">
10
+ </a>
11
+ <a href="https://codecov.io/gh/minorcell/memo-code">
12
+ <img src="https://codecov.io/gh/minorcell/memo-code/graph/badge.svg" alt="Coverage">
13
+ </a>
14
+ <a href="https://www.npmjs.com/package/@memo-code/memo">
15
+ <img src="https://img.shields.io/npm/v/%40memo-code%2Fmemo" alt="npm version">
16
+ </a>
9
17
  </p>
10
18
 
11
19
  <p align="center">
12
- <a href="public/memo-code-cli-show-01.mp4">
13
- <img src="https://img.shields.io/badge/📹-Watch%20Demo%20Video-1a1a1a?style=for-the-badge" alt="Demo Video">
14
- </a>
20
+ <a href="README.zh.md">Chinese Documentation</a>
15
21
  </p>
16
22
 
17
- ---
18
-
19
- <video src="public/memo-code-cli-show-01.mp4" width="100%"></video>
23
+ <img src="public/demo.png" width="100%" alt="Memo Code demo">
20
24
 
21
25
  Built with Node.js + TypeScript. DeepSeek is the default provider, and OpenAI-compatible APIs are supported.
22
26
 
@@ -56,6 +60,7 @@ memo
56
60
  - Dangerous mode: `memo --dangerous` or `memo -d` (skip tool approvals; use carefully).
57
61
  - Version: `memo --version` or `memo -v`.
58
62
  - Startup project guidance: if `AGENTS.md` exists in the startup root, Memo appends it to the system prompt automatically.
63
+ - Skills: Memo auto-discovers `SKILL.md` files and appends an available-skills section into the system prompt.
59
64
  - MCP activation selection: when MCP servers are configured, startup shows a multi-select to activate servers for this run.
60
65
  - Session titles: Memo generates a short title from the first user prompt and uses it in history/resume lists.
61
66
 
@@ -77,6 +82,24 @@ base_url = "https://api.deepseek.com"
77
82
 
78
83
  You can configure multiple providers and switch with `current_provider`.
79
84
 
85
+ Optional: override model capability profiles (local capability gating) without code changes:
86
+
87
+ ```toml
88
+ [model_profiles.gpt-5]
89
+ supports_parallel_tool_calls = true
90
+ supports_reasoning_content = true
91
+ context_window = 272000
92
+
93
+ [model_profiles."openai:gpt-5"]
94
+ supports_parallel_tool_calls = false # provider-specific override
95
+ ```
96
+
97
+ Context window policy:
98
+
99
+ - priority 1: `model_profiles."provider:model".context_window`
100
+ - priority 2: `model_profiles."<model>".context_window`
101
+ - fallback: `120000`
102
+
80
103
  ### MCP Tool Configuration
81
104
 
82
105
  Both local and remote MCP servers are supported:
@@ -115,6 +138,33 @@ memo mcp get remote
115
138
  memo mcp remove remote
116
139
  ```
117
140
 
141
+ ## Skills
142
+
143
+ Memo supports Agent Skills and auto-discovers `SKILL.md` files at startup.
144
+
145
+ ### Discovery Paths
146
+
147
+ - Project scope: project root `.<agent>/skills` directories (for example: `.agents/skills`, `.claude/skills`, `.codex/skills`)
148
+ - User scope: `$MEMO_HOME/skills` (or `~/.memo/skills`)
149
+ - Not scanned: `~/.xxx/skills` hidden directories outside Memo home
150
+
151
+ ### Minimal Skill File
152
+
153
+ ```md
154
+ ---
155
+ name: doc-writing
156
+ description: Generate and update technical documentation.
157
+ ---
158
+
159
+ # Doc Writing
160
+ ```
161
+
162
+ Memo reads `name` and `description` from frontmatter and injects each skill as metadata:
163
+
164
+ - `- <name>: <description> (file: <absolute-path-to-SKILL.md>)`
165
+
166
+ In prompts, users can explicitly mention a skill with `$skill-name` (for example, `$doc-writing`).
167
+
118
168
  ## Built-in Tools
119
169
 
120
170
  - `exec_command` / `write_stdin`: execute shell commands (default shell family)
@@ -143,15 +193,13 @@ Memo includes a tool-approval mechanism to reduce risky operations:
143
193
 
144
194
  ## Session History
145
195
 
146
- All sessions are saved to `~/.memo/sessions/`, grouped by date:
196
+ All sessions are saved to `~/.memo/sessions/`, grouped by project absolute path:
147
197
 
148
198
  ```text
149
199
  ~/.memo/sessions/
150
- └── 2026/
151
- └── 02/
152
- └── 08/
153
- ├── rollout-2026-02-08T02-21-18-abc123.jsonl
154
- └── rollout-2026-02-08T02-42-09-def456.jsonl
200
+ └── -Users-mcell-Desktop-workspace-memo-code/
201
+ ├── 2026-02-08T02-21-18-abc123.jsonl
202
+ └── 2026-02-08T02-42-09-def456.jsonl
155
203
  ```
156
204
 
157
205
  JSONL format is useful for analysis and debugging.
@@ -175,6 +223,7 @@ pnpm run build # generates dist/index.js
175
223
 
176
224
  ```bash
177
225
  pnpm test # all tests
226
+ pnpm run test:coverage # all tests with coverage (threshold: >=70%)
178
227
  pnpm run test:core # core package
179
228
  pnpm run test:tools # tools package
180
229
  pnpm run test:tui # tui package
@@ -203,7 +252,7 @@ memo-cli/
203
252
 
204
253
  - `/help`: show help and shortcut guide.
205
254
  - `/models`: list available Provider/Model entries and switch with Enter; also supports direct selection like `/models deepseek`.
206
- - `/context`: open 80k/120k/150k/200k options and apply immediately.
255
+ - `/review <prNumber>`: run GitHub PR review and publish review comments (uses active GitHub MCP server first, then falls back to `gh` CLI).
207
256
  - `/mcp`: show configured MCP servers in current session.
208
257
  - `resume` history: type `resume` to list and load past sessions for current directory.
209
258
  - Exit and clear: `exit` / `/exit`, `Ctrl+L` for new session, `Esc Esc` to cancel current run or clear input.
package/README.zh.md CHANGED
@@ -5,14 +5,18 @@
5
5
  </div>
6
6
 
7
7
  <p align="center">
8
- <a href="public/memo-code-cli-show-01.mp4">
9
- <img src="https://img.shields.io/badge/📹-观看演示视频-1a1a1a?style=for-the-badge" alt="Demo Video">
8
+ <a href="https://github.com/minorcell/memo-code/actions/workflows/ci.yml">
9
+ <img src="https://github.com/minorcell/memo-code/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI">
10
+ </a>
11
+ <a href="https://codecov.io/gh/minorcell/memo-code">
12
+ <img src="https://codecov.io/gh/minorcell/memo-code/graph/badge.svg" alt="Coverage">
13
+ </a>
14
+ <a href="https://www.npmjs.com/package/@memo-code/memo">
15
+ <img src="https://img.shields.io/npm/v/%40memo-code%2Fmemo" alt="npm version">
10
16
  </a>
11
17
  </p>
12
18
 
13
- ---
14
-
15
- <video src="public/memo-code-cli-show-01.mp4" width="100%"></video>
19
+ <img src="public/demo.png" width="100%" alt="Memo Code 演示图">
16
20
 
17
21
  基于 Node.js + TypeScript,默认对接 DeepSeek,兼容 OpenAI API。
18
22
 
@@ -52,6 +56,7 @@ memo
52
56
  - 危险模式:`memo --dangerous` 或 `memo -d`(跳过工具审批,谨慎使用)。
53
57
  - 查看版本:`memo --version` 或 `memo -v`。
54
58
  - 启动目录约定:若启动根目录存在 `AGENTS.md`,Memo 会自动将其拼接进系统提示词。
59
+ - Skills:Memo 会自动发现 `SKILL.md` 并把可用 skills 列表拼接进系统提示词。
55
60
  - MCP 启动选择:当配置了 MCP server 时,启动会弹出多选以决定本次会话激活哪些 server。
56
61
  - 会话标题:Memo 会基于首条用户输入生成简短标题,并在历史/恢复列表中展示。
57
62
 
@@ -111,6 +116,33 @@ memo mcp get remote
111
116
  memo mcp remove remote
112
117
  ```
113
118
 
119
+ ## Skills
120
+
121
+ Memo 支持 Agent Skills,并会在启动时自动发现 `SKILL.md`。
122
+
123
+ ### 发现路径
124
+
125
+ - 项目级:项目根目录下 `.<agent>/skills`(例如:`.agents/skills`、`.claude/skills`、`.codex/skills`)
126
+ - 用户级:`$MEMO_HOME/skills`(或 `~/.memo/skills`)
127
+ - 不扫描:Memo Home 之外的 `~/.xxx/skills` 隐藏目录
128
+
129
+ ### 最小 Skill 文件示例
130
+
131
+ ```md
132
+ ---
133
+ name: doc-writing
134
+ description: Generate and update technical documentation.
135
+ ---
136
+
137
+ # Doc Writing
138
+ ```
139
+
140
+ Memo 会读取 frontmatter 的 `name` 和 `description`,并以元数据形式注入:
141
+
142
+ - `- <name>: <description> (file: <absolute-path-to-SKILL.md>)`
143
+
144
+ 在对话里可通过 `$skill-name` 显式提及某个 skill(例如 `$doc-writing`)。
145
+
114
146
  ## 内置工具
115
147
 
116
148
  - `exec_command` / `write_stdin`:执行命令(默认执行工具族)
@@ -139,15 +171,13 @@ memo mcp remove remote
139
171
 
140
172
  ## 会话历史
141
173
 
142
- 所有会话自动保存到 `~/.memo/sessions/`,按日期分层组织:
174
+ 所有会话自动保存到 `~/.memo/sessions/`,按项目绝对路径分层组织:
143
175
 
144
176
  ```
145
177
  ~/.memo/sessions/
146
- └── 2026/
147
- └── 02/
148
- └── 08/
149
- ├── rollout-2026-02-08T02-21-18-abc123.jsonl
150
- └── rollout-2026-02-08T02-42-09-def456.jsonl
178
+ └── -Users-mcell-Desktop-workspace-memo-code/
179
+ ├── 2026-02-08T02-21-18-abc123.jsonl
180
+ └── 2026-02-08T02-42-09-def456.jsonl
151
181
  ```
152
182
 
153
183
  JSONL 格式便于分析和调试。
@@ -171,6 +201,7 @@ pnpm run build # 生成 dist/index.js
171
201
 
172
202
  ```bash
173
203
  pnpm test # 全量测试
204
+ pnpm run test:coverage # 带覆盖率测试(阈值:>=70%)
174
205
  pnpm run test:core # 测试 core 包
175
206
  pnpm run test:tools # 测试 tools 包
176
207
  pnpm run test:tui # 测试 tui 包
@@ -200,6 +231,7 @@ memo-cli/
200
231
  - `/help`:显示帮助与快捷键说明。
201
232
  - `/models`:列出现有 Provider/Model,回车切换;支持直接 `/models deepseek` 精确选择。
202
233
  - `/context`:弹出 80k/120k/150k/200k 选项并立即设置上限。
234
+ - `/review <prNumber>`:执行 GitHub PR 审查并直接发布评论(优先使用已激活的 GitHub MCP,失败时回退 `gh` CLI)。
203
235
  - `/mcp`:查看当前会话加载的 MCP 服务器配置。
204
236
  - `resume` 历史:输入 `resume` 查看并加载本目录的历史会话。
205
237
  - 退出与清屏:`exit` / `/exit`,`Ctrl+L` 新会话,`Esc Esc` 取消运行或清空输入。