@cereworker/skills 0.1.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/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +5 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +124 -0
- package/dist/loader.js.map +1 -0
- package/dist/registry.d.ts +11 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +31 -0
- package/dist/registry.js.map +1 -0
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +32 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/loader.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SkillEntry } from './types.js';
|
|
2
|
+
export declare function loadSkillsFromDirectory(dir: string): SkillEntry[];
|
|
3
|
+
export declare function loadSkills(directories: string[]): SkillEntry[];
|
|
4
|
+
export declare function filterEligibleSkills(skills: SkillEntry[]): SkillEntry[];
|
|
5
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,YAAY,CAAC;AA+E5D,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CA8BjE;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAgB9D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAWvE"}
|
package/dist/loader.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { readFileSync, readdirSync, existsSync } from 'node:fs';
|
|
2
|
+
import { join, resolve } from 'node:path';
|
|
3
|
+
import { execFileSync } from 'node:child_process';
|
|
4
|
+
function parseFrontmatter(raw) {
|
|
5
|
+
const match = raw.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
6
|
+
if (!match) {
|
|
7
|
+
return { data: {}, content: raw };
|
|
8
|
+
}
|
|
9
|
+
// Simple YAML-like parser for frontmatter (avoids gray-matter dep for now)
|
|
10
|
+
const yamlStr = match[1];
|
|
11
|
+
const content = match[2];
|
|
12
|
+
try {
|
|
13
|
+
// Use dynamic import for yaml since we already have it via config
|
|
14
|
+
const data = parseSimpleYaml(yamlStr);
|
|
15
|
+
return { data, content };
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return { data: {}, content: raw };
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function parseSimpleYaml(yamlStr) {
|
|
22
|
+
// Minimal YAML parser for skill frontmatter
|
|
23
|
+
// Only handles top-level key: value pairs and nested objects
|
|
24
|
+
const result = {};
|
|
25
|
+
const lines = yamlStr.split('\n');
|
|
26
|
+
let currentKey = '';
|
|
27
|
+
let currentIndent = 0;
|
|
28
|
+
for (const line of lines) {
|
|
29
|
+
const trimmed = line.trimEnd();
|
|
30
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
31
|
+
continue;
|
|
32
|
+
const match = trimmed.match(/^(\s*)(\w+):\s*(.*)/);
|
|
33
|
+
if (match) {
|
|
34
|
+
const indent = match[1].length;
|
|
35
|
+
const key = match[2];
|
|
36
|
+
const value = match[3].trim();
|
|
37
|
+
if (indent === 0) {
|
|
38
|
+
currentKey = key;
|
|
39
|
+
currentIndent = 0;
|
|
40
|
+
if (value && !value.startsWith('"') || value === '') {
|
|
41
|
+
result[key] = value || undefined;
|
|
42
|
+
}
|
|
43
|
+
else if (value.startsWith('"')) {
|
|
44
|
+
result[key] = value.replace(/^"|"$/g, '');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// For complex frontmatter, fall back to JSON if embedded
|
|
50
|
+
try {
|
|
51
|
+
const jsonMatch = yamlStr.match(/metadata:\s*\n\s*(\{[\s\S]*\})/);
|
|
52
|
+
if (jsonMatch) {
|
|
53
|
+
result.metadata = JSON.parse(jsonMatch[1]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// ignore
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
function hasBinary(name) {
|
|
62
|
+
try {
|
|
63
|
+
execFileSync('which', [name], { stdio: 'pipe' });
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export function loadSkillsFromDirectory(dir) {
|
|
71
|
+
if (!existsSync(dir))
|
|
72
|
+
return [];
|
|
73
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
74
|
+
const skills = [];
|
|
75
|
+
for (const entry of entries) {
|
|
76
|
+
if (!entry.isDirectory())
|
|
77
|
+
continue;
|
|
78
|
+
const skillFile = join(dir, entry.name, 'SKILL.md');
|
|
79
|
+
if (!existsSync(skillFile))
|
|
80
|
+
continue;
|
|
81
|
+
try {
|
|
82
|
+
const raw = readFileSync(skillFile, 'utf-8');
|
|
83
|
+
const { data, content } = parseFrontmatter(raw);
|
|
84
|
+
const skill = {
|
|
85
|
+
name: data.name ?? entry.name,
|
|
86
|
+
description: data.description ?? '',
|
|
87
|
+
content,
|
|
88
|
+
metadata: data.metadata,
|
|
89
|
+
};
|
|
90
|
+
skills.push(skill);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// Skip malformed skills
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return skills;
|
|
97
|
+
}
|
|
98
|
+
export function loadSkills(directories) {
|
|
99
|
+
const allSkills = [];
|
|
100
|
+
const seen = new Set();
|
|
101
|
+
for (const dir of directories) {
|
|
102
|
+
const resolved = resolve(dir);
|
|
103
|
+
const skills = loadSkillsFromDirectory(resolved);
|
|
104
|
+
for (const skill of skills) {
|
|
105
|
+
if (!seen.has(skill.name)) {
|
|
106
|
+
seen.add(skill.name);
|
|
107
|
+
allSkills.push(skill);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return allSkills;
|
|
112
|
+
}
|
|
113
|
+
export function filterEligibleSkills(skills) {
|
|
114
|
+
return skills.filter((skill) => {
|
|
115
|
+
const requires = skill.metadata?.cereworker?.requires;
|
|
116
|
+
if (!requires)
|
|
117
|
+
return true;
|
|
118
|
+
if (requires.bins) {
|
|
119
|
+
return requires.bins.every(hasBinary);
|
|
120
|
+
}
|
|
121
|
+
return true;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SkillEntry } from './types.js';
|
|
2
|
+
export declare class SkillRegistry {
|
|
3
|
+
private skills;
|
|
4
|
+
register(skill: SkillEntry): void;
|
|
5
|
+
registerAll(skills: SkillEntry[]): void;
|
|
6
|
+
get(name: string): SkillEntry | undefined;
|
|
7
|
+
list(): SkillEntry[];
|
|
8
|
+
buildPrompt(): string;
|
|
9
|
+
clear(): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiC;IAE/C,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIjC,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAMvC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIzC,IAAI,IAAI,UAAU,EAAE;IAIpB,WAAW,IAAI,MAAM;IAYrB,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/registry.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export class SkillRegistry {
|
|
2
|
+
skills = new Map();
|
|
3
|
+
register(skill) {
|
|
4
|
+
this.skills.set(skill.name, skill);
|
|
5
|
+
}
|
|
6
|
+
registerAll(skills) {
|
|
7
|
+
for (const skill of skills) {
|
|
8
|
+
this.register(skill);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
get(name) {
|
|
12
|
+
return this.skills.get(name);
|
|
13
|
+
}
|
|
14
|
+
list() {
|
|
15
|
+
return Array.from(this.skills.values());
|
|
16
|
+
}
|
|
17
|
+
buildPrompt() {
|
|
18
|
+
const skills = this.list();
|
|
19
|
+
if (skills.length === 0)
|
|
20
|
+
return '';
|
|
21
|
+
const sections = skills.map((skill) => {
|
|
22
|
+
const emoji = skill.metadata?.cereworker?.emoji ?? '';
|
|
23
|
+
return `## ${emoji} ${skill.name}\n${skill.description}\n\n${skill.content}`;
|
|
24
|
+
});
|
|
25
|
+
return `# Available Skills\n\n${sections.join('\n\n---\n\n')}`;
|
|
26
|
+
}
|
|
27
|
+
clear() {
|
|
28
|
+
this.skills.clear();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IAChB,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE/C,QAAQ,CAAC,KAAiB;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,WAAW,CAAC,MAAoB;QAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEnC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;YACtD,OAAO,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/E,CAAC,CAAC,CAAC;QAEH,OAAO,yBAAyB,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface SkillMetadata {
|
|
2
|
+
cereworker?: {
|
|
3
|
+
emoji?: string;
|
|
4
|
+
requires?: {
|
|
5
|
+
bins?: string[];
|
|
6
|
+
env?: string[];
|
|
7
|
+
};
|
|
8
|
+
install?: SkillInstallSpec[];
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface SkillInstallSpec {
|
|
12
|
+
kind: 'brew' | 'apt' | 'npm' | 'go';
|
|
13
|
+
formula?: string;
|
|
14
|
+
package?: string;
|
|
15
|
+
bins?: string[];
|
|
16
|
+
label?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface SkillInvocationPolicy {
|
|
19
|
+
userInvocable: boolean;
|
|
20
|
+
disableModelInvocation: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface SkillEntry {
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
content: string;
|
|
26
|
+
metadata?: SkillMetadata;
|
|
27
|
+
invocation?: SkillInvocationPolicy;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE;YACT,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;SAChB,CAAC;QACF,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,qBAAqB,CAAC;CACpC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cereworker/skills",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/Producible/CereWorker.git",
|
|
16
|
+
"directory": "packages/skills"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"gray-matter": "^4.0.3",
|
|
20
|
+
"@cereworker/core": "0.1.0",
|
|
21
|
+
"@cereworker/config": "0.1.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"typescript": "^5.7.3"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc",
|
|
28
|
+
"typecheck": "tsc --noEmit",
|
|
29
|
+
"lint": "eslint src/",
|
|
30
|
+
"clean": "rm -rf dist"
|
|
31
|
+
}
|
|
32
|
+
}
|