@skillctl/cli 0.3.1 → 0.4.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 CHANGED
@@ -1,5 +1,5 @@
1
- # @skillctl/cli
2
-
3
- See the [root README](../../README.md) for full documentation.
4
-
5
- This is the CLI package for skillctl.
1
+ # @skillctl/cli
2
+
3
+ See the [root README](../../README.md) and [docs site](https://xfurti.github.io/skillctl/) for full documentation.
4
+
5
+ Universal package manager for [Agent Skills](https://agentskills.io). v0.4.0 — meta-skill, Grok adapter, `skill validate`, `init --with-skill`.
@@ -1,3 +1,4 @@
1
1
  import type { Command } from 'commander';
2
- export declare function registerInit(program: Command): void;
2
+ import { RegistryManager } from '@skillctl/registry';
3
+ export declare function registerInit(program: Command, mgr?: RegistryManager): void;
3
4
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2CnD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA6BrD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,IAAI,CAiE1E"}
@@ -1,28 +1,79 @@
1
+ import { stat } from 'node:fs/promises';
2
+ import { join } from 'node:path';
1
3
  import { loadManifest, createDefaultManifest, saveManifest } from '@skillctl/manifest';
4
+ import { loadLockfile, createEmptyLockfile } from '@skillctl/lockfile';
2
5
  import { discoverProjectSkills, executeImport } from '@skillctl/import';
6
+ import { lockToSkillTargets } from '@skillctl/core';
7
+ import { RegistryManager } from '@skillctl/registry';
8
+ import { syncSkillsToAgents } from '@skillctl/adapters';
3
9
  import { confirm } from '../lib/prompt.js';
4
- export function registerInit(program) {
10
+ const META_SKILL_REMOTE = 'github:xFurti/skillctl#skills/skillctl';
11
+ const META_SKILL_LOCAL = 'file:./skills/skillctl';
12
+ async function resolveMetaSkillSpecifier(cwd) {
13
+ try {
14
+ await stat(join(cwd, 'skills', 'skillctl', 'SKILL.md'));
15
+ return META_SKILL_LOCAL;
16
+ }
17
+ catch {
18
+ return META_SKILL_REMOTE;
19
+ }
20
+ }
21
+ async function addMetaSkill(cwd, registry, sync) {
22
+ const spec = await resolveMetaSkillSpecifier(cwd);
23
+ console.log(`Adding skillctl meta-skill from ${spec}...`);
24
+ await registry.add(spec, { cwd, updateManifest: true });
25
+ if (sync) {
26
+ const lock = (await loadLockfile(cwd)) || createEmptyLockfile();
27
+ const skills = await lockToSkillTargets(lock);
28
+ const res = await syncSkillsToAgents(skills);
29
+ console.log(`Synced ${res.synced} agent target(s).`);
30
+ if (res.notes.length)
31
+ console.log('Notes:', res.notes.join('; '));
32
+ }
33
+ }
34
+ export function registerInit(program, mgr) {
5
35
  program
6
36
  .command('init')
7
37
  .description('Initialize agent-skills.json in current project')
8
38
  .option('--no-prompt', 'skip post-init import wizard')
39
+ .option('--with-skill', 'add the skillctl meta-skill and sync to agents')
9
40
  .action(async (options) => {
10
- const existing = await loadManifest();
41
+ const cwd = process.cwd();
42
+ const existing = await loadManifest(cwd);
11
43
  if (existing) {
12
44
  console.log('agent-skills.json already exists');
13
45
  return;
14
46
  }
15
47
  const sample = createDefaultManifest('demo-project');
16
- await saveManifest(sample);
48
+ await saveManifest(sample, cwd);
17
49
  console.log('Created agent-skills.json');
50
+ const registry = mgr || new RegistryManager();
51
+ if (options.withSkill) {
52
+ const shouldAdd = options.noPrompt
53
+ ? true
54
+ : await confirm('Add the skillctl meta-skill to this project?', true);
55
+ if (shouldAdd) {
56
+ try {
57
+ await addMetaSkill(cwd, registry, true);
58
+ }
59
+ catch (err) {
60
+ console.error(`Meta-skill add failed: ${err.message}`);
61
+ console.log('You can retry with: skillctl add github:xFurti/skillctl#skills/skillctl');
62
+ }
63
+ }
64
+ }
18
65
  if (options.noPrompt) {
19
- console.log('Run `skillctl add <spec>` or `skillctl import from-project` to populate, then `install` or `sync`.');
66
+ if (!options.withSkill) {
67
+ console.log('Run `skillctl add <spec>` or `skillctl import from-project` to populate, then `install` or `sync`.');
68
+ }
20
69
  return;
21
70
  }
22
- const { deduped, sources } = await discoverProjectSkills();
71
+ const { deduped, sources } = await discoverProjectSkills({ cwd });
23
72
  const unmanaged = deduped.length;
24
73
  if (!unmanaged || !sources.length) {
25
- console.log('Run `skillctl add <spec>` to populate, then `install` or `sync`.');
74
+ if (!options.withSkill) {
75
+ console.log('Run `skillctl add <spec>` to populate, then `install` or `sync`.');
76
+ }
26
77
  return;
27
78
  }
28
79
  console.log(`Found ${unmanaged} existing skill(s) in agent directories (${sources.map((s) => s.projectPath).join(', ')}).`);
@@ -31,7 +82,7 @@ export function registerInit(program) {
31
82
  console.log('Run `skillctl import from-project` when ready.');
32
83
  return;
33
84
  }
34
- const result = await executeImport({ source: 'project', sync: true });
85
+ const result = await executeImport({ source: 'project', cwd, sync: true });
35
86
  console.log(`Imported: ${result.imported.join(', ') || '(none)'}`);
36
87
  if (result.errors.length) {
37
88
  console.error('Import errors:', result.errors.join('; '));
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,UAAU,YAAY,CAAC,OAAgB;IAC3C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,aAAa,EAAE,8BAA8B,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;QACrD,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAEzC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,oGAAoG,CAAC,CAAC;YAClH,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,SAAS,SAAS,4CAA4C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5H,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerSkill(program: Command): void;
3
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+BpD"}
@@ -0,0 +1,34 @@
1
+ import { resolve } from 'node:path';
2
+ import { validateSkillDir, auditExitCode } from '@skillctl/security';
3
+ import { handleCommandError } from '../lib/errors.js';
4
+ export function registerSkill(program) {
5
+ const skillCmd = program.command('skill').description('Utilities for Agent Skill directories');
6
+ skillCmd
7
+ .command('validate [path]')
8
+ .description('Validate a SKILL.md directory (frontmatter, scripts, size)')
9
+ .option('--json', 'machine-readable output')
10
+ .option('--strict', 'treat warnings as errors (exit 2)')
11
+ .action(async (pathArg, options) => {
12
+ try {
13
+ const skillPath = resolve(process.cwd(), pathArg || 'skills/skillctl');
14
+ const report = await validateSkillDir(skillPath);
15
+ if (options.json) {
16
+ console.log(JSON.stringify({ ...report, path: skillPath }, null, 2));
17
+ process.exitCode = auditExitCode(report, options.strict);
18
+ return;
19
+ }
20
+ console.log(`skillctl skill validate — ${skillPath}`);
21
+ console.log(`Status: ${report.status} (scanned ${report.scanned})`);
22
+ for (const f of report.findings) {
23
+ console.log(` [${f.severity}] ${f.rule}: ${f.message}`);
24
+ }
25
+ if (report.findings.length === 0)
26
+ console.log(' No issues found.');
27
+ process.exitCode = auditExitCode(report, options.strict);
28
+ }
29
+ catch (err) {
30
+ handleCommandError(err, 'skill validate');
31
+ }
32
+ });
33
+ }
34
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,uCAAuC,CAAC,CAAC;IAE/F,QAAQ;SACL,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,UAAU,EAAE,mCAAmC,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,IAAI,iBAAiB,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEjD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YACpE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAEpE,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,oBAAoB,CAAC;AA0B5B,QAAA,MAAM,OAAO,SAAgB,CAAC;AAqB9B,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAGvD;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,oBAAoB,CAAC;AA2B5B,QAAA,MAAM,OAAO,SAAgB,CAAC;AAsB9B,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAGvD;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@ import { registerImport } from './commands/import-cmd.js';
16
16
  import { registerAudit } from './commands/audit.js';
17
17
  import { registerUpdate } from './commands/update.js';
18
18
  import { registerPlugin } from './commands/plugin.js';
19
+ import { registerSkill } from './commands/skill.js';
19
20
  const __filename = fileURLToPath(import.meta.url);
20
21
  const __dirname = dirname(__filename);
21
22
  const pkgPath = join(__dirname, '..', 'package.json');
@@ -45,6 +46,7 @@ registerImport(program);
45
46
  registerAudit(program);
46
47
  registerUpdate(program, registryManager);
47
48
  registerPlugin(program);
49
+ registerSkill(program);
48
50
  export async function prepareProgram() {
49
51
  await loadPlugins(program, registryManager);
50
52
  return program;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACtD,IAAI,OAAO,GAAG,OAAO,CAAC;AACtB,IAAI,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;AACnC,CAAC;AAAC,MAAM,CAAC;IACP,WAAW;AACb,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAE9C,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC;KAC/D,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;AAExD,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACtC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC1C,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACzC,cAAc,CAAC,OAAO,CAAC,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,WAAW,CAAC,OAA0D,EAAE,eAAe,CAAC,CAAC;IAC/F,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACtD,IAAI,OAAO,GAAG,OAAO,CAAC;AACtB,IAAI,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;AACnC,CAAC;AAAC,MAAM,CAAC;IACP,WAAW;AACb,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAE9C,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC;KAC/D,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;AAExD,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACtC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAC1C,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AACzC,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,aAAa,CAAC,OAAO,CAAC,CAAC;AAEvB,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,WAAW,CAAC,OAA0D,EAAE,eAAe,CAAC,CAAC;IAC/F,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillctl/cli",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "skillctl CLI - universal manager for Agent Skills",
5
5
  "license": "MIT",
6
6
  "author": "xFurti & Gabry848",
@@ -23,15 +23,15 @@
23
23
  ],
24
24
  "dependencies": {
25
25
  "commander": "^12.1.0",
26
- "@skillctl/core": "0.3.1",
27
- "@skillctl/registry": "0.3.1",
28
- "@skillctl/manifest": "0.3.1",
29
- "@skillctl/adapters": "0.3.1",
30
- "@skillctl/link-manager": "0.3.1",
31
- "@skillctl/lockfile": "0.3.1",
32
- "@skillctl/security": "0.3.1",
33
- "@skillctl/import": "0.3.1",
34
- "@skillctl/plugin-system": "0.3.1"
26
+ "@skillctl/core": "0.4.0",
27
+ "@skillctl/registry": "0.4.0",
28
+ "@skillctl/lockfile": "0.4.0",
29
+ "@skillctl/adapters": "0.4.0",
30
+ "@skillctl/manifest": "0.4.0",
31
+ "@skillctl/import": "0.4.0",
32
+ "@skillctl/security": "0.4.0",
33
+ "@skillctl/link-manager": "0.4.0",
34
+ "@skillctl/plugin-system": "0.4.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "^20.14.0",