@zentodo/cli 0.1.0 → 0.1.2
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/dist/bin.cjs +7929 -0
- package/dist/bin.js +7831 -6
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +7 -2
- package/dist/commands/skill.js.map +1 -1
- package/dist/skills/zentodo/SKILL.md +239 -0
- package/dist/skills/zentodo/examples/plan-my-day.md +12 -0
- package/dist/skills/zentodo/examples/sync.md +9 -0
- package/dist/skills/zentodo/references/commands.md +1413 -0
- package/dist/skills/zentodo/references/error-codes.md +62 -0
- package/dist/skills/zentodo/references/mapping.md +115 -0
- package/dist/skills/zentodo/references/tools.json +4008 -0
- package/dist/skills/zentodo/references/tools.md +1346 -0
- package/dist/skills/zentodo/skill.json +15 -0
- package/package.json +8 -11
- package/scripts/postinstall.mjs +48 -26
- package/skills/zentodo/SKILL.md +15 -7
- package/skills/zentodo/skill.json +8 -8
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "zentodo",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"entry": "SKILL.md",
|
|
5
|
+
"files": [
|
|
6
|
+
"/examples/plan-my-day.md",
|
|
7
|
+
"/examples/sync.md",
|
|
8
|
+
"/references/commands.md",
|
|
9
|
+
"/references/error-codes.md",
|
|
10
|
+
"/references/mapping.md",
|
|
11
|
+
"/references/tools.json",
|
|
12
|
+
"/references/tools.md",
|
|
13
|
+
"/SKILL.md"
|
|
14
|
+
]
|
|
15
|
+
}
|
package/package.json
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zentodo/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "ZenTodo 命令行工具 — 为 AI Agent 和开发者设计,覆盖任务、项目、番茄钟、日记、同步等全部能力。安装后自动配置 Claude Agent Skill。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"zentodo": "./dist/bin.
|
|
7
|
+
"zentodo": "./dist/bin.cjs"
|
|
8
8
|
},
|
|
9
|
-
"main": "./dist/index.js",
|
|
10
|
-
"types": "./dist/index.d.ts",
|
|
11
9
|
"files": [
|
|
12
10
|
"dist/",
|
|
13
11
|
"skills/",
|
|
14
|
-
"scripts/postinstall.mjs"
|
|
15
|
-
"README.md"
|
|
12
|
+
"scripts/postinstall.mjs"
|
|
16
13
|
],
|
|
17
14
|
"scripts": {
|
|
18
|
-
"build": "
|
|
15
|
+
"build": "node build.mjs",
|
|
19
16
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
20
17
|
"test": "vitest run",
|
|
21
18
|
"clean": "rimraf dist *.tsbuildinfo skills/",
|
|
@@ -33,12 +30,12 @@
|
|
|
33
30
|
"skill",
|
|
34
31
|
"claude"
|
|
35
32
|
],
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"@zentodo/core": "*",
|
|
38
|
-
"commander": "^12.1.0"
|
|
39
|
-
},
|
|
33
|
+
"dependencies": {},
|
|
40
34
|
"devDependencies": {
|
|
35
|
+
"@zentodo/core": "*",
|
|
41
36
|
"@types/node": "^22.5.0",
|
|
37
|
+
"commander": "^12.1.0",
|
|
38
|
+
"esbuild": "^0.24.0",
|
|
42
39
|
"rimraf": "^5.0.10",
|
|
43
40
|
"typescript": "^5.5.4",
|
|
44
41
|
"vitest": "^2.0.5"
|
package/scripts/postinstall.mjs
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* npm install -g @zentodo/cli 之后自动运行。
|
|
4
4
|
*
|
|
5
|
-
* 把打包在 npm 包里的 skills/zentodo/
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* 把打包在 npm 包里的 skills/zentodo/ 目录复制到各 AI 工具的 skills 目录:
|
|
6
|
+
*
|
|
7
|
+
* ~/.claude/skills/zentodo/ Claude Code / Claude Desktop
|
|
8
|
+
* ~/.agents/skills/zentodo/ WorkBuddy / Cursor / Trae / OpenCode 等
|
|
8
9
|
*
|
|
9
10
|
* 如果复制失败(权限问题、目录不存在等),只打印警告,不中断安装。
|
|
10
11
|
*/
|
|
@@ -18,7 +19,12 @@ const PKG_DIR = dirname(fileURLToPath(import.meta.url));
|
|
|
18
19
|
// scripts/postinstall.mjs -> scripts -> cli package root
|
|
19
20
|
const CLI_ROOT = join(PKG_DIR, '..');
|
|
20
21
|
const SKILL_SRC = join(CLI_ROOT, 'skills', 'zentodo');
|
|
21
|
-
|
|
22
|
+
|
|
23
|
+
// 支持的 AI 工具 skills 目录
|
|
24
|
+
const TARGETS = [
|
|
25
|
+
{ name: 'Claude Code / Claude Desktop', path: join(homedir(), '.claude', 'skills', 'zentodo') },
|
|
26
|
+
{ name: 'WorkBuddy / Cursor / Trae 等', path: join(homedir(), '.agents', 'skills', 'zentodo') },
|
|
27
|
+
];
|
|
22
28
|
|
|
23
29
|
function run() {
|
|
24
30
|
if (!existsSync(SKILL_SRC)) {
|
|
@@ -26,31 +32,47 @@ function run() {
|
|
|
26
32
|
return;
|
|
27
33
|
}
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
35
|
+
const installed = [];
|
|
36
|
+
const failed = [];
|
|
37
|
+
|
|
38
|
+
for (const target of TARGETS) {
|
|
39
|
+
try {
|
|
40
|
+
if (existsSync(target.path)) {
|
|
41
|
+
rmSync(target.path, { recursive: true, force: true });
|
|
42
|
+
}
|
|
43
|
+
mkdirSync(target.path, { recursive: true });
|
|
44
|
+
cpSync(SKILL_SRC, target.path, { recursive: true });
|
|
45
|
+
installed.push(target);
|
|
46
|
+
} catch (err) {
|
|
47
|
+
failed.push({ ...target, error: err.message });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
console.log('');
|
|
52
|
+
if (installed.length > 0) {
|
|
53
|
+
console.log('✅ ZenTodo Skill 已安装到:');
|
|
54
|
+
for (const t of installed) {
|
|
55
|
+
console.log(` ${t.name}`);
|
|
56
|
+
console.log(` → ${t.path}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (failed.length > 0) {
|
|
60
|
+
console.warn('⚠️ 以下目录安装失败(不影响 CLI 使用):');
|
|
61
|
+
for (const t of failed) {
|
|
62
|
+
console.warn(` ${t.name}: ${t.error}`);
|
|
32
63
|
}
|
|
33
|
-
mkdirSync(SKILL_DEST, { recursive: true });
|
|
34
|
-
cpSync(SKILL_SRC, SKILL_DEST, { recursive: true });
|
|
35
|
-
|
|
36
|
-
console.log('');
|
|
37
|
-
console.log('✅ ZenTodo Skill 已安装到:', SKILL_DEST);
|
|
38
|
-
console.log('');
|
|
39
|
-
console.log('下一步:');
|
|
40
|
-
console.log(' 1. 登录 ZenTodo:');
|
|
41
|
-
console.log(' zentodo auth login-password --email 你的邮箱 --password 你的密码');
|
|
42
|
-
console.log('');
|
|
43
|
-
console.log(' 2. 重启 Claude Code / Claude Desktop');
|
|
44
|
-
console.log('');
|
|
45
|
-
console.log(' 3. 在 Claude 里说: "帮我看看 ZenTodo 今天的 MIT 任务"');
|
|
46
|
-
console.log('');
|
|
47
|
-
} catch (err) {
|
|
48
|
-
// 不中断安装,只警告
|
|
49
|
-
console.warn('');
|
|
50
|
-
console.warn('⚠️ ZenTodo Skill 自动安装失败:', err.message);
|
|
51
64
|
console.warn(' 手动安装: zentodo skill install claude-code');
|
|
52
|
-
console.warn('');
|
|
53
65
|
}
|
|
66
|
+
|
|
67
|
+
console.log('');
|
|
68
|
+
console.log('下一步:');
|
|
69
|
+
console.log(' 1. 登录 ZenTodo:');
|
|
70
|
+
console.log(' zentodo auth login-password --email 你的邮箱 --password 你的密码');
|
|
71
|
+
console.log('');
|
|
72
|
+
console.log(' 2. 重启 AI 工具(WorkBuddy / Claude Code / Cursor 等)');
|
|
73
|
+
console.log('');
|
|
74
|
+
console.log(' 3. 在 AI 里说: "帮我看看 ZenTodo 今天的 MIT 任务"');
|
|
75
|
+
console.log('');
|
|
54
76
|
}
|
|
55
77
|
|
|
56
78
|
run();
|
package/skills/zentodo/SKILL.md
CHANGED
|
@@ -19,19 +19,27 @@ description: Manage the user's ZenTodo productivity workspace — tasks, subtask
|
|
|
19
19
|
|
|
20
20
|
1. **安装 `zentodo` CLI**(一次性,安装时自动配置 Skill):
|
|
21
21
|
|
|
22
|
+
**国内用户(推荐,速度快):**
|
|
22
23
|
```bash
|
|
24
|
+
npm install -g @zentodo/cli --registry https://registry.npmmirror.com
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**或者永久切换到国内镜像再安装:**
|
|
28
|
+
```bash
|
|
29
|
+
npm config set registry https://registry.npmmirror.com
|
|
23
30
|
npm install -g @zentodo/cli
|
|
24
31
|
```
|
|
25
32
|
|
|
26
|
-
|
|
33
|
+
**海外用户:**
|
|
34
|
+
```bash
|
|
35
|
+
npm install -g @zentodo/cli
|
|
36
|
+
```
|
|
27
37
|
|
|
28
|
-
|
|
38
|
+
安装完成后会自动把 Skill 文件复制到 `~/.claude/skills/zentodo/` 和 `~/.agents/skills/zentodo/`,**无需额外操作**。
|
|
29
39
|
|
|
40
|
+
验证安装:
|
|
30
41
|
```bash
|
|
31
|
-
|
|
32
|
-
cd ZenTodoProject && npm install && npm run build
|
|
33
|
-
# 然后手动安装 Skill:
|
|
34
|
-
node packages/cli/dist/bin.js skill install claude-code
|
|
42
|
+
zentodo --version
|
|
35
43
|
```
|
|
36
44
|
|
|
37
45
|
2. **登录 ZenTodo**(一次性):
|
|
@@ -42,7 +50,7 @@ description: Manage the user's ZenTodo productivity workspace — tasks, subtask
|
|
|
42
50
|
|
|
43
51
|
登录成功后 `usrKey` 写入 `~/.zentodo/config.json`,之后无需再提供密码。
|
|
44
52
|
|
|
45
|
-
3. **重启 Claude Code / Claude Desktop
|
|
53
|
+
3. **重启 AI 工具**(Claude Code / Claude Desktop / WorkBuddy / Cursor / Trae 等),让它加载新安装的 Skill。
|
|
46
54
|
|
|
47
55
|
4. **验证**:
|
|
48
56
|
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"version": "0.1.0",
|
|
4
4
|
"entry": "SKILL.md",
|
|
5
5
|
"files": [
|
|
6
|
-
"examples/plan-my-day.md",
|
|
7
|
-
"examples/sync.md",
|
|
8
|
-
"references/commands.md",
|
|
9
|
-
"references/error-codes.md",
|
|
10
|
-
"references/mapping.md",
|
|
11
|
-
"references/tools.json",
|
|
12
|
-
"references/tools.md",
|
|
13
|
-
"SKILL.md"
|
|
6
|
+
"/examples/plan-my-day.md",
|
|
7
|
+
"/examples/sync.md",
|
|
8
|
+
"/references/commands.md",
|
|
9
|
+
"/references/error-codes.md",
|
|
10
|
+
"/references/mapping.md",
|
|
11
|
+
"/references/tools.json",
|
|
12
|
+
"/references/tools.md",
|
|
13
|
+
"/SKILL.md"
|
|
14
14
|
]
|
|
15
15
|
}
|