@antaif3ng/til-work 0.4.0 → 0.5.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 +29 -3
- package/dist/core/skills.d.ts +2 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +38 -0
- package/dist/core/skills.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ TIL work 是一个基于大语言模型的命令行 Agent 工具。它可以直
|
|
|
17
17
|
| **网页搜索** | 实时搜索互联网获取最新信息 |
|
|
18
18
|
| **MCP 扩展** | 通过 MCP 协议接入外部工具服务(stdio / HTTP) |
|
|
19
19
|
| **记忆系统** | 跨对话记住上下文(MEMORY.md + AGENTS.md) |
|
|
20
|
-
| **技能系统** |
|
|
20
|
+
| **技能系统** | 内置技能 + 自定义 SKILL.md + 工作区包自动发现 |
|
|
21
21
|
| **会话持久化** | 退出后可恢复上次对话(`--resume` / `--continue`) |
|
|
22
22
|
| **Context 压缩** | 长对话自动摘要压缩,防止 token 溢出 |
|
|
23
23
|
| **安全拦截** | 自动检测并拦截 `rm -rf`、`sudo` 等危险命令 |
|
|
@@ -377,16 +377,42 @@ TIL 内置 8 个实用技能,安装即用:
|
|
|
377
377
|
|
|
378
378
|
### 自定义技能
|
|
379
379
|
|
|
380
|
-
将 `SKILL.md`
|
|
380
|
+
将 `SKILL.md` 放入以下目录即可自动加载(按优先级排列):
|
|
381
381
|
|
|
382
382
|
| 路径 | 作用 |
|
|
383
383
|
|------|------|
|
|
384
384
|
| `~/.til/skills/<name>/SKILL.md` | 全局技能 |
|
|
385
385
|
| `.til/skills/<name>/SKILL.md` | 项目级技能 |
|
|
386
|
+
| `<cwd>/<pkg>/skills/<name>/SKILL.md` | 工作区包技能(自动发现) |
|
|
386
387
|
| `--skill <path>` | CLI 指定 |
|
|
387
388
|
|
|
388
389
|
同名的用户技能会覆盖内置技能。
|
|
389
390
|
|
|
391
|
+
#### 工作区包自动发现
|
|
392
|
+
|
|
393
|
+
TIL 会自动扫描当前工作目录下的一级子目录,如果子目录中包含 `skills/` 文件夹,其中的技能会被自动加载。这意味着你可以将 agent 技能包直接放在项目中,无需额外配置:
|
|
394
|
+
|
|
395
|
+
```
|
|
396
|
+
my-project/
|
|
397
|
+
├── vdf-stability-smart-server/ # agent 技能包
|
|
398
|
+
│ ├── agent.yaml
|
|
399
|
+
│ └── skills/
|
|
400
|
+
│ ├── cfr-info-query/
|
|
401
|
+
│ │ └── SKILL.md
|
|
402
|
+
│ ├── dlt-log-parser/
|
|
403
|
+
│ │ └── SKILL.md
|
|
404
|
+
│ └── ...
|
|
405
|
+
├── another-agent-pack/ # 另一个技能包
|
|
406
|
+
│ └── skills/
|
|
407
|
+
│ └── ...
|
|
408
|
+
└── .til/
|
|
409
|
+
└── config.json
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
以上目录结构中 `vdf-stability-smart-server/skills/` 和 `another-agent-pack/skills/` 下的技能都会被自动发现和加载,会话重启(`--continue` / `--resume`)后依然生效。
|
|
413
|
+
|
|
414
|
+
自动发现会跳过 `node_modules`、`.git`、`dist`、`build`、`coverage` 等常见无关目录。
|
|
415
|
+
|
|
390
416
|
技能文件格式:
|
|
391
417
|
|
|
392
418
|
```markdown
|
|
@@ -542,7 +568,7 @@ til-cli/
|
|
|
542
568
|
│ │ ├── tool-permissions.ts # 危险命令拦截
|
|
543
569
|
│ │ ├── markdown.ts # 终端 Markdown 渲染
|
|
544
570
|
│ │ ├── memory.ts # 记忆系统
|
|
545
|
-
│ │ ├── skills.ts # 技能系统(内置 + 用户 +
|
|
571
|
+
│ │ ├── skills.ts # 技能系统(内置 + 用户 + 项目 + 工作区包)
|
|
546
572
|
│ │ └── system-prompt.ts # 系统提示词组装
|
|
547
573
|
│ ├── modes/
|
|
548
574
|
│ │ ├── interactive.ts # 交互 REPL 模式
|
package/dist/core/skills.d.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* <package>/skills/ — bundled skills (shipped with the package)
|
|
11
11
|
* ~/.til/skills/ — user-global skills
|
|
12
12
|
* .til/skills/ — project-local skills
|
|
13
|
+
* <cwd>/<pkg>/skills/ - workspace package skills (auto-discovered)
|
|
13
14
|
* CLI --skill <path> — explicit paths
|
|
14
15
|
*
|
|
15
16
|
* Layout inside a skills directory:
|
|
@@ -27,7 +28,7 @@ export interface Skill {
|
|
|
27
28
|
description: string;
|
|
28
29
|
filePath: string;
|
|
29
30
|
baseDir: string;
|
|
30
|
-
source: "builtin" | "user" | "project" | "path";
|
|
31
|
+
source: "builtin" | "user" | "project" | "workspace" | "path";
|
|
31
32
|
disableModelInvocation: boolean;
|
|
32
33
|
}
|
|
33
34
|
export interface LoadSkillsResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,MAAM,WAAW,gBAAgB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,KAAK;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;IAC9D,sBAAsB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACb;AAiID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAExF;AA4CD,MAAM,WAAW,iBAAiB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B;AASD,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAqE5E;AAaD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAsB7D"}
|
package/dist/core/skills.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* <package>/skills/ — bundled skills (shipped with the package)
|
|
11
11
|
* ~/.til/skills/ — user-global skills
|
|
12
12
|
* .til/skills/ — project-local skills
|
|
13
|
+
* <cwd>/<pkg>/skills/ - workspace package skills (auto-discovered)
|
|
13
14
|
* CLI --skill <path> — explicit paths
|
|
14
15
|
*
|
|
15
16
|
* Layout inside a skills directory:
|
|
@@ -137,6 +138,39 @@ function getBundledSkillsDir() {
|
|
|
137
138
|
// Compiled: dist/core/skills.js → package root is ../../
|
|
138
139
|
return join(dirname(thisFile), "..", "..", "skills");
|
|
139
140
|
}
|
|
141
|
+
// ── Workspace package discovery ──
|
|
142
|
+
const WORKSPACE_SKIP = new Set(["node_modules", ".git", ".til", "dist", "build", "coverage"]);
|
|
143
|
+
/**
|
|
144
|
+
* Scan immediate subdirectories of `cwd` for a `skills/` folder.
|
|
145
|
+
* Returns the absolute paths of discovered `skills/` directories.
|
|
146
|
+
*/
|
|
147
|
+
function discoverWorkspaceSkillDirs(cwd) {
|
|
148
|
+
const dirs = [];
|
|
149
|
+
const root = resolve(cwd);
|
|
150
|
+
try {
|
|
151
|
+
for (const entry of readdirSync(root, { withFileTypes: true })) {
|
|
152
|
+
if (entry.name.startsWith(".") || WORKSPACE_SKIP.has(entry.name))
|
|
153
|
+
continue;
|
|
154
|
+
let isDir = entry.isDirectory();
|
|
155
|
+
if (entry.isSymbolicLink()) {
|
|
156
|
+
try {
|
|
157
|
+
isDir = statSync(join(root, entry.name)).isDirectory();
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (!isDir)
|
|
164
|
+
continue;
|
|
165
|
+
const skillsDir = join(root, entry.name, "skills");
|
|
166
|
+
if (existsSync(skillsDir) && statSync(skillsDir).isDirectory()) {
|
|
167
|
+
dirs.push(skillsDir);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
catch { /* cwd unreadable */ }
|
|
172
|
+
return dirs;
|
|
173
|
+
}
|
|
140
174
|
function normalizePath(input) {
|
|
141
175
|
const trimmed = input.trim();
|
|
142
176
|
if (trimmed === "~")
|
|
@@ -179,6 +213,10 @@ export function loadSkills(options = {}) {
|
|
|
179
213
|
addSkills(loadSkillsFromDirInternal(getBundledSkillsDir(), "builtin", true));
|
|
180
214
|
addSkills(loadSkillsFromDirInternal(join(homedir(), ".til", "skills"), "user", true));
|
|
181
215
|
addSkills(loadSkillsFromDirInternal(resolve(cwd, ".til", "skills"), "project", true));
|
|
216
|
+
// Auto-discover workspace package skills: <cwd>/*/skills/
|
|
217
|
+
for (const skillsDir of discoverWorkspaceSkillDirs(cwd)) {
|
|
218
|
+
addSkills(loadSkillsFromDirInternal(skillsDir, "workspace", true));
|
|
219
|
+
}
|
|
182
220
|
}
|
|
183
221
|
for (const rawPath of skillPaths) {
|
|
184
222
|
const resolvedPath = isAbsolute(normalizePath(rawPath))
|
package/dist/core/skills.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"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"}
|