@crewx/skill 0.1.4 → 0.1.5

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/SKILL.md CHANGED
@@ -1,7 +1,9 @@
1
1
  ---
2
- name: skill
2
+ name: crewx/skill
3
3
  description: Unified skill runner for CrewX agents. List, execute, and read skill documentation.
4
- version: 0.1.0
4
+ metadata:
5
+ version: 0.1.0
6
+ built-in: true
5
7
  ---
6
8
 
7
9
  # Skill
package/dist/cli.js CHANGED
@@ -47,19 +47,13 @@ try {
47
47
  PKG_VERSION = String(_pkg.version);
48
48
  }
49
49
  catch { }
50
- function loadTracer() {
51
- const candidates = [
52
- path.join(__dirname, '../../../../skills/lib/skill-tracer.js'),
53
- path.join(__dirname, '../../../skills/lib/skill-tracer.js'),
54
- ];
55
- for (const p of candidates) {
56
- try {
57
- if (fs.existsSync(p))
58
- return require(p);
59
- }
60
- catch { }
50
+ async function loadTracer() {
51
+ try {
52
+ return await Promise.resolve().then(() => __importStar(require('@crewx/shared/skill-tracer')));
53
+ }
54
+ catch {
55
+ return null;
61
56
  }
62
- return null;
63
57
  }
64
58
  function showDetailedUsage() {
65
59
  const skillMd = path.join(__dirname, '..', 'SKILL.md');
@@ -84,7 +78,15 @@ function findProjectRoot() {
84
78
  return process.cwd();
85
79
  }
86
80
  const projectRoot = findProjectRoot();
87
- const engine = new engine_1.SkillEngine(projectRoot);
81
+ function getAdditionalPaths() {
82
+ const paths = [];
83
+ const nmDir = path.join(projectRoot, 'node_modules');
84
+ if (fs.existsSync(nmDir)) {
85
+ paths.push(nmDir);
86
+ }
87
+ return paths;
88
+ }
89
+ const engine = new engine_1.SkillEngine(projectRoot, getAdditionalPaths());
88
90
  function printUsage() {
89
91
  console.log(`
90
92
  @crewx/skill@${PKG_VERSION} - Unified skill runner for CrewX
@@ -119,31 +121,55 @@ function printList() {
119
121
  }
120
122
  const maxName = Math.max(...skills.map(s => s.name.length), 4);
121
123
  const maxType = 4;
122
- console.log(`${'NAME'.padEnd(maxName)} ${'TYPE'.padEnd(maxType)} DESCRIPTION`);
123
- console.log(`${'─'.repeat(maxName)} ${'─'.repeat(maxType)} ${'─'.repeat(40)}`);
124
+ console.log(`${'NAME'.padEnd(maxName)} ${'TYPE'.padEnd(maxType)} ${'VERSION'.padEnd(7)} DESCRIPTION`);
125
+ console.log(`${'─'.repeat(maxName)} ${'─'.repeat(maxType)} ${'─'.repeat(7)} ${'─'.repeat(40)}`);
124
126
  for (const s of skills) {
125
- console.log(`${s.name.padEnd(maxName)} ${s.type.padEnd(maxType)} ${s.description}`);
127
+ console.log(`${s.name.padEnd(maxName)} ${s.type.padEnd(maxType)} ${(s.version ?? '-').padEnd(7)} ${s.description}`);
126
128
  }
127
129
  }
128
130
  async function main() {
131
+ const tracer = await loadTracer();
132
+ const argv = args.join(' ');
133
+ const traceSkillSelf = () => {
134
+ const ownVersion = tracer ? tracer.getOwnSkillVersion(__dirname) : null;
135
+ const opts = { tracesDb: true };
136
+ if (ownVersion)
137
+ opts.skillVersion = ownVersion;
138
+ return tracer ? tracer.trace('crewx/skill', argv, opts) : null;
139
+ };
129
140
  if (command === '--version') {
141
+ const t = traceSkillSelf();
130
142
  console.log(PKG_VERSION);
143
+ if (t && !t._skipped)
144
+ t.ok(null);
131
145
  process.exit(0);
132
146
  }
133
147
  if (!command || command === '--help' || command === '-h') {
148
+ const t = traceSkillSelf();
134
149
  printUsage();
150
+ if (t && !t._skipped)
151
+ t.ok(null);
135
152
  process.exit(0);
136
153
  }
137
154
  if (command === 'usage') {
155
+ const t = traceSkillSelf();
138
156
  showDetailedUsage();
157
+ if (t && !t._skipped)
158
+ t.ok(null);
139
159
  process.exit(0);
140
160
  }
141
161
  if (command === 'help') {
162
+ const t = traceSkillSelf();
142
163
  printUsage();
164
+ if (t && !t._skipped)
165
+ t.ok(null);
143
166
  process.exit(0);
144
167
  }
145
168
  if (command === 'list') {
169
+ const t = traceSkillSelf();
146
170
  printList();
171
+ if (t && !t._skipped)
172
+ t.ok(null);
147
173
  process.exit(0);
148
174
  }
149
175
  const skillName = command;
@@ -153,44 +179,77 @@ async function main() {
153
179
  skill = engine.resolve(skillName);
154
180
  }
155
181
  catch (err) {
182
+ const t = traceSkillSelf();
156
183
  console.error(`Error: ${err.message}`);
184
+ if (t && !t._skipped)
185
+ t.fail(err.message);
157
186
  process.exit(1);
158
187
  }
159
188
  if (skillArgs.length === 0) {
189
+ const opts = { tracesDb: true };
190
+ if (skill.version)
191
+ opts.skillVersion = skill.version;
192
+ const spanName = skill.name;
193
+ const t = tracer ? tracer.trace(spanName, argv, opts) : null;
160
194
  const doc = engine.readDoc(skill);
161
195
  process.stdout.write(doc);
162
196
  engine.log(skill, skillArgs, 0);
197
+ if (t && !t._skipped)
198
+ t.ok(doc);
163
199
  process.exit(0);
164
200
  }
165
201
  if (skill.type === 'exec' && skill.entrypoint) {
166
- const exitCode = await engine.execute(skill, skillArgs);
167
- engine.log(skill, skillArgs, exitCode);
168
- process.exit(exitCode);
202
+ const commandStr = skillArgs.join(' ');
203
+ const opts = { tracesDb: true };
204
+ if (skill.version)
205
+ opts.skillVersion = skill.version;
206
+ const spanName = skill.name;
207
+ const t = tracer
208
+ ? tracer.trace(spanName, commandStr, opts)
209
+ : null;
210
+ try {
211
+ const result = await engine.execute(skill, skillArgs);
212
+ engine.log(skill, skillArgs, result.exitCode);
213
+ if (result.exitCode === 0) {
214
+ if (t && !t._skipped)
215
+ t.ok(result.stdout, { stderr: result.stderr });
216
+ }
217
+ else {
218
+ if (t && !t._skipped)
219
+ t.fail('exit ' + result.exitCode, { stderr: result.stderr });
220
+ }
221
+ process.exit(result.exitCode);
222
+ }
223
+ catch (e) {
224
+ if (t && !t._skipped)
225
+ t.fail(e.message || String(e));
226
+ engine.log(skill, skillArgs, 1);
227
+ process.exit(1);
228
+ }
169
229
  }
170
230
  const subDoc = skillArgs[0];
231
+ const opts = { tracesDb: true };
232
+ if (skill.version)
233
+ opts.skillVersion = skill.version;
234
+ const spanName = skill.name;
235
+ const t = tracer ? tracer.trace(spanName, argv, opts) : null;
171
236
  try {
172
237
  const doc = engine.readDoc(skill, subDoc);
173
238
  process.stdout.write(doc);
174
239
  engine.log(skill, skillArgs, 0);
240
+ if (t && !t._skipped)
241
+ t.ok(doc);
175
242
  process.exit(0);
176
243
  }
177
244
  catch (err) {
178
- console.error(`Error: ${err.message}`);
245
+ if (t && !t._skipped)
246
+ t.fail(err.message);
179
247
  engine.log(skill, skillArgs, 1);
180
248
  process.exit(1);
181
249
  }
182
250
  }
183
- const tracer = loadTracer();
184
- if (tracer) {
185
- tracer.run('crewx/skill', main).catch((err) => {
186
- console.error(`Error: ${err.message}`);
187
- process.exit(1);
188
- });
189
- }
190
- else {
191
- main().catch(err => {
192
- console.error(`Error: ${err.message}`);
193
- process.exit(1);
194
- });
195
- }
251
+ main().catch((err) => {
252
+ console.error(`Error: ${err.message}`);
253
+ process.exit(1);
254
+ });
196
255
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,17 @@ import { SkillInfo } from './types';
2
2
  export declare class SkillEngine {
3
3
  private skillsDir;
4
4
  private projectRoot;
5
- constructor(projectRoot: string);
5
+ private additionalPaths;
6
+ constructor(projectRoot: string, additionalPaths?: string[]);
7
+ private getSearchDirs;
6
8
  discover(): SkillInfo[];
7
9
  resolve(name: string): SkillInfo;
8
- execute(skill: SkillInfo, args: string[]): Promise<number>;
10
+ private tryResolveDir;
11
+ execute(skill: SkillInfo, args: string[]): Promise<{
12
+ exitCode: number;
13
+ stdout: string;
14
+ stderr: string;
15
+ }>;
9
16
  readDoc(skill: SkillInfo, subDoc?: string): string;
10
17
  log(skill: SkillInfo, args: string[], exitCode: number): void;
11
18
  private parseFrontmatter;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAA8C,MAAM,SAAS,CAAC;AAMhF,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM;IAQ/B,QAAQ,IAAI,SAAS,EAAE;IA+BvB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IA4BhC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B1D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAkBlD,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAmB7D,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;CAoCvB;AAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAA8C,MAAM,SAAS,CAAC;AAMhF,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAW;gBAEtB,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE;IAS3D,OAAO,CAAC,aAAa;IAQrB,QAAQ,IAAI,SAAS,EAAE;IA+EvB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IA6BhC,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA+CxG,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAmBlD,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAmB7D,OAAO,CAAC,gBAAgB;IAmCxB,OAAO,CAAC,cAAc;CAoCvB;AAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -32,63 +32,145 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
39
  exports.SkillEngine = void 0;
37
40
  const fs = __importStar(require("fs"));
38
41
  const path = __importStar(require("path"));
39
42
  const child_process_1 = require("child_process");
43
+ const gray_matter_1 = __importDefault(require("gray-matter"));
40
44
  const SKILL_MD = 'SKILL.md';
41
45
  const ENTRY_CANDIDATES = ['index.js', 'main.js'];
42
46
  const LOG_FILE = '.crewx/.skill-log.jsonl';
43
47
  class SkillEngine {
44
- constructor(projectRoot) {
48
+ constructor(projectRoot, additionalPaths) {
45
49
  this.projectRoot = projectRoot;
46
50
  this.skillsDir = path.join(projectRoot, 'skills');
51
+ this.additionalPaths = additionalPaths ?? [];
52
+ }
53
+ getSearchDirs() {
54
+ return [this.skillsDir, ...this.additionalPaths];
47
55
  }
48
56
  discover() {
49
- if (!fs.existsSync(this.skillsDir))
50
- return [];
51
- const entries = fs.readdirSync(this.skillsDir, { withFileTypes: true });
52
57
  const skills = [];
53
- for (const entry of entries) {
54
- if (!entry.isDirectory())
58
+ const seen = new Set();
59
+ for (const searchDir of this.getSearchDirs()) {
60
+ if (!fs.existsSync(searchDir))
55
61
  continue;
56
- const dir = path.join(this.skillsDir, entry.name);
57
- const skillMd = path.join(dir, SKILL_MD);
62
+ const entries = fs.readdirSync(searchDir, { withFileTypes: true });
63
+ for (const entry of entries) {
64
+ if (!entry.isDirectory() && !entry.isSymbolicLink())
65
+ continue;
66
+ if (entry.name.startsWith('@')) {
67
+ const scopeDir = path.join(searchDir, entry.name);
68
+ try {
69
+ const scopeEntries = fs.readdirSync(scopeDir, { withFileTypes: true });
70
+ for (const scopeEntry of scopeEntries) {
71
+ if (!scopeEntry.isDirectory() && !scopeEntry.isSymbolicLink())
72
+ continue;
73
+ const pkgDir = path.join(scopeDir, scopeEntry.name);
74
+ const candidates = [
75
+ path.join(pkgDir, SKILL_MD),
76
+ path.join(pkgDir, 'skill', SKILL_MD),
77
+ ];
78
+ for (const skillMd of candidates) {
79
+ if (!fs.existsSync(skillMd))
80
+ continue;
81
+ const fm = this.parseFrontmatter(skillMd);
82
+ const skillName = fm.name || scopeEntry.name;
83
+ if (seen.has(skillName))
84
+ break;
85
+ seen.add(skillName);
86
+ const entrypoint = this.findEntrypoint(pkgDir, scopeEntry.name);
87
+ skills.push({
88
+ name: skillName,
89
+ type: entrypoint ? 'exec' : 'doc',
90
+ description: fm.description || '',
91
+ version: fm.version,
92
+ dir: pkgDir,
93
+ entrypoint,
94
+ skillMdPath: skillMd,
95
+ });
96
+ break;
97
+ }
98
+ }
99
+ }
100
+ catch {
101
+ }
102
+ continue;
103
+ }
104
+ const dir = path.join(searchDir, entry.name);
105
+ const skillMd = path.join(dir, SKILL_MD);
106
+ if (!fs.existsSync(skillMd))
107
+ continue;
108
+ const fm = this.parseFrontmatter(skillMd);
109
+ const skillName = fm.name || entry.name;
110
+ if (seen.has(skillName))
111
+ continue;
112
+ seen.add(skillName);
113
+ const entrypoint = this.findEntrypoint(dir, entry.name);
114
+ skills.push({
115
+ name: skillName,
116
+ type: entrypoint ? 'exec' : 'doc',
117
+ description: fm.description || '',
118
+ version: fm.version,
119
+ dir,
120
+ entrypoint,
121
+ skillMdPath: skillMd,
122
+ });
123
+ }
124
+ }
125
+ return skills.sort((a, b) => a.name.localeCompare(b.name));
126
+ }
127
+ resolve(name) {
128
+ for (const searchDir of this.getSearchDirs()) {
129
+ const flatDir = path.join(searchDir, name);
130
+ const flatResult = this.tryResolveDir(flatDir, name);
131
+ if (flatResult)
132
+ return flatResult;
133
+ if (fs.existsSync(searchDir)) {
134
+ try {
135
+ const entries = fs.readdirSync(searchDir, { withFileTypes: true });
136
+ for (const entry of entries) {
137
+ if ((!entry.isDirectory() && !entry.isSymbolicLink()) || !entry.name.startsWith('@'))
138
+ continue;
139
+ const scopedDir = path.join(searchDir, entry.name, name);
140
+ const scopedResult = this.tryResolveDir(scopedDir, name);
141
+ if (scopedResult)
142
+ return scopedResult;
143
+ }
144
+ }
145
+ catch {
146
+ }
147
+ }
148
+ }
149
+ throw new Error(`Skill not found: ${name}`);
150
+ }
151
+ tryResolveDir(dir, name) {
152
+ if (!fs.existsSync(dir) || !fs.statSync(dir).isDirectory())
153
+ return null;
154
+ const candidates = [
155
+ path.join(dir, SKILL_MD),
156
+ path.join(dir, 'skill', SKILL_MD),
157
+ ];
158
+ for (const skillMd of candidates) {
58
159
  if (!fs.existsSync(skillMd))
59
160
  continue;
60
161
  const fm = this.parseFrontmatter(skillMd);
61
- const entrypoint = this.findEntrypoint(dir, entry.name);
62
- skills.push({
63
- name: fm.name || entry.name,
162
+ const entrypoint = this.findEntrypoint(dir, name);
163
+ return {
164
+ name: fm.name || name,
64
165
  type: entrypoint ? 'exec' : 'doc',
65
166
  description: fm.description || '',
66
167
  version: fm.version,
67
168
  dir,
68
169
  entrypoint,
69
- });
70
- }
71
- return skills.sort((a, b) => a.name.localeCompare(b.name));
72
- }
73
- resolve(name) {
74
- const dir = path.join(this.skillsDir, name);
75
- if (!fs.existsSync(dir) || !fs.statSync(dir).isDirectory()) {
76
- throw new Error(`Skill not found: ${name}`);
77
- }
78
- const skillMd = path.join(dir, SKILL_MD);
79
- if (!fs.existsSync(skillMd)) {
80
- throw new Error(`Not a skill (no SKILL.md): ${name}`);
170
+ skillMdPath: skillMd,
171
+ };
81
172
  }
82
- const fm = this.parseFrontmatter(skillMd);
83
- const entrypoint = this.findEntrypoint(dir, name);
84
- return {
85
- name: fm.name || name,
86
- type: entrypoint ? 'exec' : 'doc',
87
- description: fm.description || '',
88
- version: fm.version,
89
- dir,
90
- entrypoint,
91
- };
173
+ return null;
92
174
  }
93
175
  execute(skill, args) {
94
176
  if (!skill.entrypoint) {
@@ -97,15 +179,33 @@ class SkillEngine {
97
179
  return new Promise((resolve) => {
98
180
  const child = (0, child_process_1.spawn)('node', [skill.entrypoint, ...args], {
99
181
  cwd: this.projectRoot,
100
- stdio: 'inherit',
182
+ stdio: ['inherit', 'pipe', 'pipe'],
101
183
  env: process.env,
102
184
  });
185
+ const stdoutChunks = [];
186
+ const stderrChunks = [];
187
+ child.stdout?.on('data', (chunk) => {
188
+ stdoutChunks.push(chunk);
189
+ process.stdout.write(chunk);
190
+ });
191
+ child.stderr?.on('data', (chunk) => {
192
+ stderrChunks.push(chunk);
193
+ process.stderr.write(chunk);
194
+ });
103
195
  child.on('error', (err) => {
104
196
  console.error(`Error spawning skill '${skill.name}': ${err.message}`);
105
- resolve(1);
197
+ resolve({
198
+ exitCode: 1,
199
+ stdout: Buffer.concat(stdoutChunks).toString('utf-8'),
200
+ stderr: Buffer.concat(stderrChunks).toString('utf-8'),
201
+ });
106
202
  });
107
203
  child.on('close', (code) => {
108
- resolve(code ?? 1);
204
+ resolve({
205
+ exitCode: code ?? 1,
206
+ stdout: Buffer.concat(stdoutChunks).toString('utf-8'),
207
+ stderr: Buffer.concat(stderrChunks).toString('utf-8'),
208
+ });
109
209
  });
110
210
  });
111
211
  }
@@ -118,7 +218,7 @@ class SkillEngine {
118
218
  }
119
219
  }
120
220
  else {
121
- filePath = path.join(skill.dir, SKILL_MD);
221
+ filePath = skill.skillMdPath ?? path.join(skill.dir, SKILL_MD);
122
222
  }
123
223
  return fs.readFileSync(filePath, 'utf-8');
124
224
  }
@@ -139,21 +239,31 @@ class SkillEngine {
139
239
  fs.appendFileSync(logPath, JSON.stringify(entry) + '\n');
140
240
  }
141
241
  parseFrontmatter(filePath) {
142
- const content = fs.readFileSync(filePath, 'utf-8');
143
242
  try {
144
- const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
145
- if (match === null)
243
+ const content = fs.readFileSync(filePath, 'utf-8');
244
+ const parsed = (0, gray_matter_1.default)(content);
245
+ const data = parsed.data;
246
+ if (!data || typeof data !== 'object')
146
247
  return {};
147
- const block = match[1] ?? '';
148
248
  const result = {};
149
- for (const line of block.split('\n')) {
150
- const colonIdx = line.indexOf(':');
151
- if (colonIdx === -1)
152
- continue;
153
- const key = line.slice(0, colonIdx).trim();
154
- const val = line.slice(colonIdx + 1).trim();
155
- if (key)
156
- result[key] = val;
249
+ if (typeof data.name === 'string')
250
+ result.name = data.name;
251
+ if (typeof data.description === 'string')
252
+ result.description = data.description;
253
+ if (typeof data.version === 'string') {
254
+ result.version = data.version;
255
+ }
256
+ const metadata = data.metadata;
257
+ if (metadata && typeof metadata === 'object') {
258
+ if (typeof metadata.version === 'string') {
259
+ result.version = metadata.version;
260
+ }
261
+ if (typeof metadata.author === 'string') {
262
+ result.author = metadata.author;
263
+ }
264
+ if (Array.isArray(metadata.tags)) {
265
+ result.tags = metadata.tags;
266
+ }
157
267
  }
158
268
  return result;
159
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export interface SkillInfo {
6
6
  version?: string;
7
7
  dir: string;
8
8
  entrypoint?: string;
9
+ skillMdPath?: string;
9
10
  }
10
11
  export interface SkillLogEntry {
11
12
  ts: string;
@@ -19,6 +20,8 @@ export interface SkillFrontmatter {
19
20
  name?: string;
20
21
  description?: string;
21
22
  version?: string;
23
+ author?: string;
24
+ tags?: string[];
22
25
  [key: string]: unknown;
23
26
  }
24
27
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewx/skill",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Unified skill runner for CrewX - exec and doc skills via npx skill",
5
5
  "type": "commonjs",
6
6
  "main": "dist/src/engine.js",
@@ -8,6 +8,8 @@
8
8
  "exports": {
9
9
  ".": {
10
10
  "require": "./dist/src/engine.js",
11
+ "import": "./dist/src/engine.js",
12
+ "default": "./dist/src/engine.js",
11
13
  "types": "./dist/src/engine.d.ts"
12
14
  }
13
15
  },
@@ -16,6 +18,7 @@
16
18
  },
17
19
  "files": ["dist", "SKILL.md"],
18
20
  "scripts": {
21
+ "prepare": "npm run build",
19
22
  "build": "tsc",
20
23
  "dev": "ts-node cli.ts",
21
24
  "clean": "rm -rf dist"