@memo-code/memo 0.7.3 → 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)
@@ -173,6 +223,7 @@ pnpm run build # generates dist/index.js
173
223
 
174
224
  ```bash
175
225
  pnpm test # all tests
226
+ pnpm run test:coverage # all tests with coverage (threshold: >=70%)
176
227
  pnpm run test:core # core package
177
228
  pnpm run test:tools # tools package
178
229
  pnpm run test:tui # tui package
@@ -201,7 +252,7 @@ memo-cli/
201
252
 
202
253
  - `/help`: show help and shortcut guide.
203
254
  - `/models`: list available Provider/Model entries and switch with Enter; also supports direct selection like `/models deepseek`.
204
- - `/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).
205
256
  - `/mcp`: show configured MCP servers in current session.
206
257
  - `resume` history: type `resume` to list and load past sessions for current directory.
207
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`:执行命令(默认执行工具族)
@@ -169,6 +201,7 @@ pnpm run build # 生成 dist/index.js
169
201
 
170
202
  ```bash
171
203
  pnpm test # 全量测试
204
+ pnpm run test:coverage # 带覆盖率测试(阈值:>=70%)
172
205
  pnpm run test:core # 测试 core 包
173
206
  pnpm run test:tools # 测试 tools 包
174
207
  pnpm run test:tui # 测试 tui 包
@@ -198,6 +231,7 @@ memo-cli/
198
231
  - `/help`:显示帮助与快捷键说明。
199
232
  - `/models`:列出现有 Provider/Model,回车切换;支持直接 `/models deepseek` 精确选择。
200
233
  - `/context`:弹出 80k/120k/150k/200k 选项并立即设置上限。
234
+ - `/review <prNumber>`:执行 GitHub PR 审查并直接发布评论(优先使用已激活的 GitHub MCP,失败时回退 `gh` CLI)。
201
235
  - `/mcp`:查看当前会话加载的 MCP 服务器配置。
202
236
  - `resume` 历史:输入 `resume` 查看并加载本目录的历史会话。
203
237
  - 退出与清屏:`exit` / `/exit`,`Ctrl+L` 新会话,`Esc Esc` 取消运行或清空输入。