libero-mcp 0.2.0 → 0.2.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.
- package/README.md +48 -12
- package/dist/data/db.js +8 -3
- package/dist/mcp/server.js +8 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,21 +1,57 @@
|
|
|
1
|
-
# libero
|
|
1
|
+
# libero
|
|
2
2
|
|
|
3
|
-
AI
|
|
3
|
+
AI 辅助的精力管理教练:观察实绩 → 发现问题 → 对齐方案 → AI 辅助达成。
|
|
4
4
|
|
|
5
|
-
2.0 = 一组 Skills(脑)+ 一层 MCP 工具(手)+ 一个数据后端(记忆),骑
|
|
5
|
+
> 2.0 = 一组 Skills(脑)+ 一层 MCP 工具(手)+ 一个数据后端(记忆),骑 Hermes / OpenClaw,本地优先。
|
|
6
6
|
|
|
7
7
|
## 快速开始
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
```bash
|
|
10
|
+
npm i -g libero-mcp@latest
|
|
11
|
+
```
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
装完后,在你的 agent 入口(Hermes / OpenClaw)里直接说一句:
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
- `mcp/` — 手(确定性 MCP 工具)
|
|
15
|
-
- `data/` — 本地 DB schema + migrations
|
|
16
|
-
- `eval/` — Skill 评估与压力测试
|
|
17
|
-
- `docs/` — spec / plan / 决策记录
|
|
15
|
+
> 帮我记一下从现在开始写代码
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
libero 会自动建库、建用户、开始计时。下次想看时间花哪儿了,就问:
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
> 这周时间都花哪儿了?帮我复盘一下
|
|
20
|
+
|
|
21
|
+
## 能说什么
|
|
22
|
+
|
|
23
|
+
libero 是个教练,不是表格工具——所有功能都通过自然语言触发:
|
|
24
|
+
|
|
25
|
+
| 想做的事 | 这样说 |
|
|
26
|
+
|---|---|
|
|
27
|
+
| 开始一段专注 | "开始计时写代码" / "开个 25 分钟番茄钟读书" |
|
|
28
|
+
| 停下来 | "停一下" / "看看今天计了多久" |
|
|
29
|
+
| 安排日程 | "明天 9 点到 11 点写报告" / "下周二下午开会" |
|
|
30
|
+
| 看时间分布 | "这周时间都花哪儿了" / "看看今天的四象限" |
|
|
31
|
+
| 复盘 | "复盘一下这周" / "帮我分析最近的时间使用" |
|
|
32
|
+
| 拆任务 | "这个任务太大,帮我拆一下" |
|
|
33
|
+
| 安排提醒 | "明天 8 点提醒我打卡" |
|
|
34
|
+
|
|
35
|
+
## 数据存在哪
|
|
36
|
+
|
|
37
|
+
默认在 `~/.libero/libero.db`(SQLite)。想换位置:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
DB_PATH=/your/path.db libero-mcp
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 升级
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm update -g libero-mcp
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
DB schema 升级在启动时自动跑,不用手工干预。
|
|
50
|
+
|
|
51
|
+
## 给开发者
|
|
52
|
+
|
|
53
|
+
- 协作宪法:[AGENTS.md](AGENTS.md)
|
|
54
|
+
- 部署细节 / 故障排查:[docs/operations/deploy-to-hermes.md](docs/operations/deploy-to-hermes.md)
|
|
55
|
+
- MCP 工具清单(41 个):见同上文档「仅排查时参考」段
|
|
56
|
+
- Skills 源在 `skills/`(libero-coach / libero-record / libero-onboarding / libero-decompose)
|
|
57
|
+
- 仓库结构 / spec / 决策记录:见 `docs/`
|
package/dist/data/db.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Database from "better-sqlite3";
|
|
2
|
-
import { readFileSync, readdirSync } from "node:fs";
|
|
3
|
-
import {
|
|
2
|
+
import { mkdirSync, readFileSync, readdirSync } from "node:fs";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
4
5
|
import { fileURLToPath } from "node:url";
|
|
5
6
|
let instance = null;
|
|
6
7
|
function runMigrations(db) {
|
|
@@ -33,6 +34,9 @@ export function initDb(dbPath) {
|
|
|
33
34
|
instance.close();
|
|
34
35
|
instance = null;
|
|
35
36
|
}
|
|
37
|
+
// 父目录不存在时自动创建(recursive),避免 SQLITE_CANTOPEN
|
|
38
|
+
// 2026-07-17:hermes 装机后默认 cwd 无 ./data/ → 用户看到"缺少数据库目录"
|
|
39
|
+
mkdirSync(dirname(dbPath), { recursive: true });
|
|
36
40
|
const db = new Database(dbPath);
|
|
37
41
|
db.pragma("journal_mode = WAL");
|
|
38
42
|
db.pragma("foreign_keys = ON");
|
|
@@ -54,7 +58,8 @@ export function closeDb() {
|
|
|
54
58
|
}
|
|
55
59
|
const entry = process.argv[1];
|
|
56
60
|
if (entry && fileURLToPath(import.meta.url) === entry) {
|
|
57
|
-
|
|
61
|
+
// CLI 模式:默认 ~/.libero/libero.db(与 server.ts 保持一致)
|
|
62
|
+
const dbPath = process.env.DB_PATH ?? join(homedir(), ".libero", "libero.db");
|
|
58
63
|
initDb(dbPath);
|
|
59
64
|
console.log(`DB initialized at ${dbPath}`);
|
|
60
65
|
closeDb();
|
package/dist/mcp/server.js
CHANGED
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
* libero MCP server — stdio transport entry point (S10 §3.3).
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
|
-
*
|
|
7
|
-
* DB_PATH=/path/to/libero.db
|
|
8
|
-
* libero-mcp (if package.json bin + tsx is configured)
|
|
6
|
+
* libero-mcp # 默认 DB 在 ~/.libero/libero.db
|
|
7
|
+
* DB_PATH=/path/to/libero.db libero-mcp # 自定义 DB 路径
|
|
9
8
|
*/
|
|
10
9
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
|
+
import { homedir } from "node:os";
|
|
11
|
+
import { join } from "node:path";
|
|
11
12
|
import { initDb, closeDb } from "../data/db.js";
|
|
12
13
|
import { buildServer } from "./server-core.js";
|
|
13
|
-
|
|
14
|
+
// 默认 DB 在用户家目录的 ~/.libero/libero.db(跨平台、不污染 cwd、符合 XDG-ish 约定)
|
|
15
|
+
// 2026-07-17:原默认 "./data/libero.db" 是相对路径,hermes 启动 libero-mcp 时 cwd 无 ./data/
|
|
16
|
+
// → better-sqlite3 抛 SQLITE_CANTOPEN → 用户看到"缺少数据库目录"。改绝对路径根治。
|
|
17
|
+
const DB_PATH = process.env.DB_PATH ?? join(homedir(), ".libero", "libero.db");
|
|
14
18
|
if (!DB_PATH) {
|
|
15
19
|
console.error("FATAL: DB_PATH environment variable not set.");
|
|
16
20
|
process.exit(1);
|