skilldex-cli 0.1.0 → 1.0.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 +147 -5
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +115 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/install-action.d.ts.map +1 -1
- package/dist/cli/commands/install-action.js +71 -0
- package/dist/cli/commands/install-action.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +4 -1
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/list-action.d.ts.map +1 -1
- package/dist/cli/commands/list-action.js +5 -1
- package/dist/cli/commands/list-action.js.map +1 -1
- package/dist/cli/commands/publish.d.ts.map +1 -1
- package/dist/cli/commands/publish.js +118 -4
- package/dist/cli/commands/publish.js.map +1 -1
- package/dist/cli/commands/search-action.d.ts +7 -0
- package/dist/cli/commands/search-action.d.ts.map +1 -0
- package/dist/cli/commands/search-action.js +61 -0
- package/dist/cli/commands/search-action.js.map +1 -0
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +14 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/skillset-init-action.d.ts +2 -0
- package/dist/cli/commands/skillset-init-action.d.ts.map +1 -0
- package/dist/cli/commands/skillset-init-action.js +65 -0
- package/dist/cli/commands/skillset-init-action.js.map +1 -0
- package/dist/cli/commands/skillset-install-action.d.ts +7 -0
- package/dist/cli/commands/skillset-install-action.d.ts.map +1 -0
- package/dist/cli/commands/skillset-install-action.js +174 -0
- package/dist/cli/commands/skillset-install-action.js.map +1 -0
- package/dist/cli/commands/skillset-list-action.d.ts +6 -0
- package/dist/cli/commands/skillset-list-action.d.ts.map +1 -0
- package/dist/cli/commands/skillset-list-action.js +46 -0
- package/dist/cli/commands/skillset-list-action.js.map +1 -0
- package/dist/cli/commands/skillset-publish-action.d.ts +7 -0
- package/dist/cli/commands/skillset-publish-action.d.ts.map +1 -0
- package/dist/cli/commands/skillset-publish-action.js +113 -0
- package/dist/cli/commands/skillset-publish-action.js.map +1 -0
- package/dist/cli/commands/skillset-uninstall-action.d.ts +6 -0
- package/dist/cli/commands/skillset-uninstall-action.d.ts.map +1 -0
- package/dist/cli/commands/skillset-uninstall-action.js +24 -0
- package/dist/cli/commands/skillset-uninstall-action.js.map +1 -0
- package/dist/cli/commands/skillset-update-action.d.ts +7 -0
- package/dist/cli/commands/skillset-update-action.d.ts.map +1 -0
- package/dist/cli/commands/skillset-update-action.js +84 -0
- package/dist/cli/commands/skillset-update-action.js.map +1 -0
- package/dist/cli/commands/skillset-validate-action.d.ts +4 -0
- package/dist/cli/commands/skillset-validate-action.d.ts.map +1 -0
- package/dist/cli/commands/skillset-validate-action.js +49 -0
- package/dist/cli/commands/skillset-validate-action.js.map +1 -0
- package/dist/cli/commands/skillset.d.ts +3 -0
- package/dist/cli/commands/skillset.d.ts.map +1 -0
- package/dist/cli/commands/skillset.js +70 -0
- package/dist/cli/commands/skillset.js.map +1 -0
- package/dist/cli/commands/update-action.d.ts +7 -0
- package/dist/cli/commands/update-action.d.ts.map +1 -0
- package/dist/cli/commands/update-action.js +65 -0
- package/dist/cli/commands/update-action.js.map +1 -0
- package/dist/cli/commands/update.d.ts +3 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +13 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +9 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/config.d.ts +18 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +42 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/installer.d.ts +2 -0
- package/dist/core/installer.d.ts.map +1 -1
- package/dist/core/installer.js.map +1 -1
- package/dist/core/manifest.d.ts +3 -1
- package/dist/core/manifest.d.ts.map +1 -1
- package/dist/core/manifest.js +27 -0
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/resolver.d.ts.map +1 -1
- package/dist/core/resolver.js +2 -0
- package/dist/core/resolver.js.map +1 -1
- package/dist/core/skillset-installer.d.ts +21 -0
- package/dist/core/skillset-installer.d.ts.map +1 -0
- package/dist/core/skillset-installer.js +116 -0
- package/dist/core/skillset-installer.js.map +1 -0
- package/dist/core/skillset-validator.d.ts +4 -0
- package/dist/core/skillset-validator.d.ts.map +1 -0
- package/dist/core/skillset-validator.js +272 -0
- package/dist/core/skillset-validator.js.map +1 -0
- package/dist/core/suggest-agent.d.ts.map +1 -1
- package/dist/core/suggest-agent.js +23 -22
- package/dist/core/suggest-agent.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +111 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/registry/index.d.ts +2 -0
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/sources/github.d.ts.map +1 -1
- package/dist/registry/sources/github.js +11 -3
- package/dist/registry/sources/github.js.map +1 -1
- package/dist/registry/sources/registry.d.ts +108 -0
- package/dist/registry/sources/registry.d.ts.map +1 -0
- package/dist/registry/sources/registry.js +124 -0
- package/dist/registry/sources/registry.js.map +1 -0
- package/dist/types/manifest.d.ts +13 -0
- package/dist/types/manifest.d.ts.map +1 -1
- package/dist/types/scope.d.ts +1 -0
- package/dist/types/scope.d.ts.map +1 -1
- package/dist/types/skillset.d.ts +26 -0
- package/dist/types/skillset.d.ts.map +1 -0
- package/dist/types/skillset.js +2 -0
- package/dist/types/skillset.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-action.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/search-action.ts"],"names":[],"mappings":"AA+BA,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACrE,OAAO,CAAC,IAAI,CAAC,CAkCf"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { searchRegistry } from '../../registry/sources/registry.js';
|
|
4
|
+
import { printJson, printError, printInfo } from '../ui/output.js';
|
|
5
|
+
function tierBadge(tier) {
|
|
6
|
+
return tier === 'verified'
|
|
7
|
+
? chalk.blue('[verified]')
|
|
8
|
+
: chalk.dim('[community]');
|
|
9
|
+
}
|
|
10
|
+
function scoreLabel(score) {
|
|
11
|
+
if (score === null)
|
|
12
|
+
return chalk.dim('no score');
|
|
13
|
+
if (score >= 80)
|
|
14
|
+
return chalk.green(`${score}/100`);
|
|
15
|
+
if (score >= 50)
|
|
16
|
+
return chalk.yellow(`${score}/100`);
|
|
17
|
+
return chalk.red(`${score}/100`);
|
|
18
|
+
}
|
|
19
|
+
function renderSkillCard(skill, index) {
|
|
20
|
+
console.log(`\n${chalk.bold(skill.name)} ${tierBadge(skill.trust_tier)}`);
|
|
21
|
+
console.log(` ${skill.description}`);
|
|
22
|
+
console.log(` Score: ${scoreLabel(skill.score)} · Installs: ${skill.install_count} · Spec: v${skill.spec_version}`);
|
|
23
|
+
if (skill.tags.length > 0) {
|
|
24
|
+
console.log(` Tags: ${skill.tags.map(t => chalk.cyan(t)).join(', ')}`);
|
|
25
|
+
}
|
|
26
|
+
console.log(` ${chalk.dim(`skillpm install ${skill.name}`)}`);
|
|
27
|
+
}
|
|
28
|
+
export async function runSearch(query, options) {
|
|
29
|
+
const limit = Math.min(parseInt(options.limit, 10) || 10, 50);
|
|
30
|
+
const spinner = options.json ? null : ora(`Searching registry for "${query}"...`).start();
|
|
31
|
+
try {
|
|
32
|
+
const result = await searchRegistry({
|
|
33
|
+
q: query,
|
|
34
|
+
tier: options.tier,
|
|
35
|
+
sort: options.sort,
|
|
36
|
+
limit,
|
|
37
|
+
});
|
|
38
|
+
if (spinner)
|
|
39
|
+
spinner.stop();
|
|
40
|
+
if (options.json) {
|
|
41
|
+
printJson(result);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (result.skills.length === 0) {
|
|
45
|
+
printInfo(`No skills found for "${query}"`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
console.log(chalk.bold(`\nFound ${result.total} skill${result.total === 1 ? '' : 's'} for "${query}" (showing ${result.skills.length})`));
|
|
49
|
+
for (const skill of result.skills) {
|
|
50
|
+
renderSkillCard(skill, 0);
|
|
51
|
+
}
|
|
52
|
+
console.log('');
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
if (spinner)
|
|
56
|
+
spinner.fail();
|
|
57
|
+
printError(e instanceof Error ? e.message : String(e));
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=search-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-action.js","sourceRoot":"","sources":["../../../src/cli/commands/search-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGlE,SAAS,SAAS,CAAC,IAAiC;IAClD,OAAO,IAAI,KAAK,UAAU;QACxB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QAC1B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,UAAU,CAAC,KAAoB;IACtC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAChD,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,CAAA;IACnD,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,CAAA;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,MAAM,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,eAAe,CAAC,KAAoB,EAAE,KAAa;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IACzE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;IACrC,OAAO,CAAC,GAAG,CACT,YAAY,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,aAAa,eAAe,KAAK,CAAC,YAAY,EAAE,CAC5G,CAAA;IACD,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAa,EACb,OAAsE;IAEtE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,2BAA2B,KAAK,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;IAEzF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;YAClC,CAAC,EAAE,KAAK;YACR,IAAI,EAAE,OAAO,CAAC,IAA+C;YAC7D,IAAI,EAAE,OAAO,CAAC,IAAgD;YAC9D,KAAK;SACN,CAAC,CAAA;QAEF,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,EAAE,CAAA;QAE3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,MAAM,CAAC,CAAA;YACjB,OAAM;QACR,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAA;YAC3C,OAAM;QACR,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACzI,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,EAAE,CAAA;QAC3B,UAAU,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAYrD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function registerSearch(program) {
|
|
2
|
+
program
|
|
3
|
+
.command('search <query>')
|
|
4
|
+
.description('Search the Skilldex registry for skills')
|
|
5
|
+
.option('--tier <tier>', 'Filter by trust tier: verified or community')
|
|
6
|
+
.option('--sort <sort>', 'Sort by: installs, score, recent, name', 'installs')
|
|
7
|
+
.option('--limit <n>', 'Number of results (max 50)', '10')
|
|
8
|
+
.option('--json', 'Output as JSON')
|
|
9
|
+
.action(async (query, options) => {
|
|
10
|
+
const { runSearch } = await import('./search-action.js');
|
|
11
|
+
await runSearch(query, options);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/cli/commands/search.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,6CAA6C,CAAC;SACtE,MAAM,CAAC,eAAe,EAAE,wCAAwC,EAAE,UAAU,CAAC;SAC7E,MAAM,CAAC,aAAa,EAAE,4BAA4B,EAAE,IAAI,CAAC;SACzD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAsE,EAAE,EAAE;QACtG,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAA;QACxD,MAAM,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillset-init-action.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skillset-init-action.ts"],"names":[],"mappings":"AA0BA,wBAAsB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyClE"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { mkdir, writeFile, stat } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { printError, printSuccess, printInfo } from '../ui/output.js';
|
|
4
|
+
const TEMPLATE = (name) => `---
|
|
5
|
+
name: ${name}
|
|
6
|
+
description: "Describe what this skillset does and which agent use-case it targets. Aim for 30+ words to pass validation."
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
tags: []
|
|
9
|
+
author: ""
|
|
10
|
+
spec_version: "1.0"
|
|
11
|
+
# List remote skills that are not embedded in this directory:
|
|
12
|
+
# skills:
|
|
13
|
+
# - name: some-remote-skill
|
|
14
|
+
# source_url: https://github.com/user/some-remote-skill
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# ${name}
|
|
18
|
+
|
|
19
|
+
Add a description of this skillset and the agent it is designed for.
|
|
20
|
+
|
|
21
|
+
## Skills included
|
|
22
|
+
|
|
23
|
+
List what each embedded skill does and how they work together.
|
|
24
|
+
`;
|
|
25
|
+
export async function runSkillsetInit(name) {
|
|
26
|
+
const skillsetName = name ?? path.basename(process.cwd());
|
|
27
|
+
const targetDir = name ? path.join(process.cwd(), skillsetName) : process.cwd();
|
|
28
|
+
try {
|
|
29
|
+
if (name) {
|
|
30
|
+
try {
|
|
31
|
+
await stat(targetDir);
|
|
32
|
+
printError(`Directory "${skillsetName}" already exists`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
await mkdir(targetDir, { recursive: true });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const skillsetMdPath = path.join(targetDir, 'SKILLSET.md');
|
|
40
|
+
try {
|
|
41
|
+
await stat(skillsetMdPath);
|
|
42
|
+
printError('SKILLSET.md already exists in this directory');
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// good — doesn't exist yet
|
|
47
|
+
}
|
|
48
|
+
await writeFile(skillsetMdPath, TEMPLATE(skillsetName), 'utf8');
|
|
49
|
+
await mkdir(path.join(targetDir, 'assets'), { recursive: true });
|
|
50
|
+
printSuccess(`Skillset "${skillsetName}" initialized`);
|
|
51
|
+
printInfo(` ${path.relative(process.cwd(), skillsetMdPath)}`);
|
|
52
|
+
printInfo(` ${path.relative(process.cwd(), path.join(targetDir, 'assets'))}/`);
|
|
53
|
+
printInfo('');
|
|
54
|
+
printInfo('Next steps:');
|
|
55
|
+
printInfo(' 1. Edit SKILLSET.md with your description and remote skill references');
|
|
56
|
+
printInfo(' 2. Add embedded skills as subdirectories (each with their own SKILL.md)');
|
|
57
|
+
printInfo(' 3. Run "skillpm skillset validate" to check your skillset');
|
|
58
|
+
printInfo(' 4. Run "skillpm skillset publish" to publish to the registry');
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
printError(e instanceof Error ? e.message : String(e));
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=skillset-init-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillset-init-action.js","sourceRoot":"","sources":["../../../src/cli/commands/skillset-init-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAErE,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC;QAC3B,IAAI;;;;;;;;;;;;IAYR,IAAI;;;;;;;CAOP,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAa;IACjD,MAAM,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAEzD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;IAE/E,IAAI,CAAC;QACH,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,CAAC,CAAA;gBACrB,UAAU,CAAC,cAAc,YAAY,kBAAkB,CAAC,CAAA;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC1D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,cAAc,CAAC,CAAA;YAC1B,UAAU,CAAC,8CAA8C,CAAC,CAAA;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;QAED,MAAM,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAA;QAC/D,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAEhE,YAAY,CAAC,aAAa,YAAY,eAAe,CAAC,CAAA;QACtD,SAAS,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,CAAA;QAC9D,SAAS,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;QAC/E,SAAS,CAAC,EAAE,CAAC,CAAA;QACb,SAAS,CAAC,aAAa,CAAC,CAAA;QACxB,SAAS,CAAC,yEAAyE,CAAC,CAAA;QACpF,SAAS,CAAC,2EAA2E,CAAC,CAAA;QACtF,SAAS,CAAC,6DAA6D,CAAC,CAAA;QACxE,SAAS,CAAC,gEAAgE,CAAC,CAAA;IAC7E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,UAAU,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillset-install-action.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skillset-install-action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAetD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC5D,OAAO,CAAC,IAAI,CAAC,CAkDf"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
import { installSkillsetFromPath } from '../../core/skillset-installer.js';
|
|
3
|
+
import { printJson, printError, printSuccess, printInfo } from '../ui/output.js';
|
|
4
|
+
function isRegistryName(source) {
|
|
5
|
+
return (!source.startsWith('git+') &&
|
|
6
|
+
!source.startsWith('/') &&
|
|
7
|
+
!source.startsWith('./') &&
|
|
8
|
+
!source.startsWith('../') &&
|
|
9
|
+
!source.includes('://') &&
|
|
10
|
+
!source.endsWith('.md'));
|
|
11
|
+
}
|
|
12
|
+
export async function runSkillsetInstall(source, options) {
|
|
13
|
+
const isGitUrl = source.startsWith('git+');
|
|
14
|
+
if (!isGitUrl && isRegistryName(source)) {
|
|
15
|
+
await runRegistrySkillsetInstall(source, options);
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
if (isGitUrl) {
|
|
19
|
+
await runGitSkillsetInstall(source, options);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const spinner = options.json ? null : ora(`Validating ${source}...`).start();
|
|
23
|
+
try {
|
|
24
|
+
if (spinner)
|
|
25
|
+
spinner.text = `Installing skillset from ${source}...`;
|
|
26
|
+
const result = await installSkillsetFromPath(source, {
|
|
27
|
+
scope: options.scope,
|
|
28
|
+
force: options.force,
|
|
29
|
+
});
|
|
30
|
+
if (spinner)
|
|
31
|
+
spinner.succeed(`Installed skillset "${result.skillsetName}" at ${result.scope} scope`);
|
|
32
|
+
if (options.json) {
|
|
33
|
+
printJson({
|
|
34
|
+
installed: true,
|
|
35
|
+
skillsetName: result.skillsetName,
|
|
36
|
+
scope: result.scope,
|
|
37
|
+
score: result.validation.score,
|
|
38
|
+
embeddedSkills: result.embeddedResults.map((r) => r.skillName),
|
|
39
|
+
remoteSkills: result.remoteResults.map((r) => r.skillName),
|
|
40
|
+
diagnostics: result.validation.diagnostics,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
printSuccess(`Score: ${result.validation.score}/100`);
|
|
45
|
+
const allSkills = [
|
|
46
|
+
...result.embeddedResults.map((r) => r.skillName),
|
|
47
|
+
...result.remoteResults.map((r) => r.skillName),
|
|
48
|
+
];
|
|
49
|
+
if (allSkills.length > 0) {
|
|
50
|
+
printInfo(` Skills installed: ${allSkills.join(', ')}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
if (spinner)
|
|
56
|
+
spinner.fail();
|
|
57
|
+
printError(e instanceof Error ? e.message : String(e));
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async function runRegistrySkillsetInstall(name, options) {
|
|
62
|
+
const { mkdtemp, rm } = await import('node:fs/promises');
|
|
63
|
+
const path = await import('node:path');
|
|
64
|
+
const os = await import('node:os');
|
|
65
|
+
const { simpleGit } = await import('simple-git');
|
|
66
|
+
const { parseGitUrl } = await import('../../registry/sources/github.js');
|
|
67
|
+
const { getSkillsetInstallInfo } = await import('../../registry/sources/registry.js');
|
|
68
|
+
const spinner = options.json ? null : ora(`Looking up skillset "${name}" in registry...`).start();
|
|
69
|
+
const tmpDir = await mkdtemp(path.join(os.tmpdir(), 'skilldex-skillset-'));
|
|
70
|
+
try {
|
|
71
|
+
const info = await getSkillsetInstallInfo(name);
|
|
72
|
+
if (spinner)
|
|
73
|
+
spinner.text = `Cloning skillset "${name}" from ${info.source_url}...`;
|
|
74
|
+
const parsed = parseGitUrl(`git+${info.source_url}`);
|
|
75
|
+
const git = simpleGit();
|
|
76
|
+
const cloneOptions = parsed.branch ? ['--branch', parsed.branch, '--depth', '1'] : ['--depth', '1'];
|
|
77
|
+
await git.clone(parsed.repoUrl, tmpDir, cloneOptions);
|
|
78
|
+
const searchRoot = parsed.subPath ? path.join(tmpDir, parsed.subPath) : tmpDir;
|
|
79
|
+
if (spinner)
|
|
80
|
+
spinner.text = `Installing skillset "${name}"...`;
|
|
81
|
+
const result = await installSkillsetFromPath(searchRoot, {
|
|
82
|
+
scope: options.scope,
|
|
83
|
+
force: options.force,
|
|
84
|
+
sourceUrl: info.source_url,
|
|
85
|
+
});
|
|
86
|
+
if (spinner)
|
|
87
|
+
spinner.succeed(`Installed skillset "${name}" at ${options.scope} scope`);
|
|
88
|
+
if (options.json) {
|
|
89
|
+
printJson({
|
|
90
|
+
installed: true,
|
|
91
|
+
skillsetName: result.skillsetName,
|
|
92
|
+
scope: result.scope,
|
|
93
|
+
score: result.validation.score,
|
|
94
|
+
embeddedSkills: result.embeddedResults.map((r) => r.skillName),
|
|
95
|
+
remoteSkills: result.remoteResults.map((r) => r.skillName),
|
|
96
|
+
trust_tier: info.trust_tier,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
printSuccess(`Score: ${result.validation.score}/100 · Trust: ${info.trust_tier}`);
|
|
101
|
+
const allSkills = [
|
|
102
|
+
...result.embeddedResults.map((r) => r.skillName),
|
|
103
|
+
...result.remoteResults.map((r) => r.skillName),
|
|
104
|
+
];
|
|
105
|
+
if (allSkills.length > 0) {
|
|
106
|
+
printInfo(` Skills installed: ${allSkills.join(', ')}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
if (spinner)
|
|
112
|
+
spinner.fail();
|
|
113
|
+
printError(e instanceof Error ? e.message : String(e));
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
await rm(tmpDir, { recursive: true, force: true });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async function runGitSkillsetInstall(gitUrl, options) {
|
|
121
|
+
const { mkdtemp, rm } = await import('node:fs/promises');
|
|
122
|
+
const path = await import('node:path');
|
|
123
|
+
const os = await import('node:os');
|
|
124
|
+
const { simpleGit } = await import('simple-git');
|
|
125
|
+
const { parseGitUrl } = await import('../../registry/sources/github.js');
|
|
126
|
+
const spinner = options.json ? null : ora(`Cloning ${gitUrl}...`).start();
|
|
127
|
+
const tmpDir = await mkdtemp(path.join(os.tmpdir(), 'skilldex-skillset-'));
|
|
128
|
+
try {
|
|
129
|
+
const parsed = parseGitUrl(gitUrl);
|
|
130
|
+
const git = simpleGit();
|
|
131
|
+
const cloneOptions = parsed.branch ? ['--branch', parsed.branch, '--depth', '1'] : ['--depth', '1'];
|
|
132
|
+
await git.clone(parsed.repoUrl, tmpDir, cloneOptions);
|
|
133
|
+
const searchRoot = parsed.subPath ? path.join(tmpDir, parsed.subPath) : tmpDir;
|
|
134
|
+
if (spinner)
|
|
135
|
+
spinner.text = `Installing skillset from ${gitUrl}...`;
|
|
136
|
+
const result = await installSkillsetFromPath(searchRoot, {
|
|
137
|
+
scope: options.scope,
|
|
138
|
+
force: options.force,
|
|
139
|
+
sourceUrl: gitUrl,
|
|
140
|
+
});
|
|
141
|
+
if (spinner)
|
|
142
|
+
spinner.succeed(`Installed skillset "${result.skillsetName}" at ${result.scope} scope`);
|
|
143
|
+
if (options.json) {
|
|
144
|
+
printJson({
|
|
145
|
+
installed: true,
|
|
146
|
+
skillsetName: result.skillsetName,
|
|
147
|
+
scope: result.scope,
|
|
148
|
+
score: result.validation.score,
|
|
149
|
+
embeddedSkills: result.embeddedResults.map((r) => r.skillName),
|
|
150
|
+
remoteSkills: result.remoteResults.map((r) => r.skillName),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
printSuccess(`Score: ${result.validation.score}/100`);
|
|
155
|
+
const allSkills = [
|
|
156
|
+
...result.embeddedResults.map((r) => r.skillName),
|
|
157
|
+
...result.remoteResults.map((r) => r.skillName),
|
|
158
|
+
];
|
|
159
|
+
if (allSkills.length > 0) {
|
|
160
|
+
printInfo(` Skills installed: ${allSkills.join(', ')}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch (e) {
|
|
165
|
+
if (spinner)
|
|
166
|
+
spinner.fail();
|
|
167
|
+
printError(e instanceof Error ? e.message : String(e));
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
finally {
|
|
171
|
+
await rm(tmpDir, { recursive: true, force: true });
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=skillset-install-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillset-install-action.js","sourceRoot":"","sources":["../../../src/cli/commands/skillset-install-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillset-list-action.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skillset-list-action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAKtD,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CnG"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { resolveAllScopes, resolveScope } from '../../core/resolver.js';
|
|
3
|
+
import { readManifest } from '../../core/manifest.js';
|
|
4
|
+
import { printJson, printError } from '../ui/output.js';
|
|
5
|
+
export async function runSkillsetList(options) {
|
|
6
|
+
try {
|
|
7
|
+
const scopeConfigs = options.scope
|
|
8
|
+
? [await resolveScope(options.scope)]
|
|
9
|
+
: await resolveAllScopes();
|
|
10
|
+
const results = [];
|
|
11
|
+
for (const sc of scopeConfigs) {
|
|
12
|
+
const manifest = await readManifest(sc);
|
|
13
|
+
results.push({ level: sc.level, skillsets: Object.values(manifest.skillsets) });
|
|
14
|
+
}
|
|
15
|
+
if (options.json) {
|
|
16
|
+
printJson(results);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
let total = 0;
|
|
20
|
+
for (const { level, skillsets } of results) {
|
|
21
|
+
total += skillsets.length;
|
|
22
|
+
console.log(chalk.bold(`\n${level} scope`));
|
|
23
|
+
if (skillsets.length === 0) {
|
|
24
|
+
console.log(chalk.dim(' (no skillsets installed)'));
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
for (const skillset of skillsets) {
|
|
28
|
+
const score = skillset.score >= 80
|
|
29
|
+
? chalk.green(`${skillset.score}`)
|
|
30
|
+
: skillset.score >= 50
|
|
31
|
+
? chalk.yellow(`${skillset.score}`)
|
|
32
|
+
: chalk.red(`${skillset.score}`);
|
|
33
|
+
const skillCount = skillset.embeddedSkills.length + skillset.remoteSkills.length;
|
|
34
|
+
console.log(` ${chalk.cyan(skillset.name.padEnd(30))} score: ${score}/100 skills: ${skillCount} source: ${chalk.dim(skillset.source)}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
console.log('');
|
|
39
|
+
console.log(chalk.dim(`${total} skillset(s) installed across ${results.length} scope(s)`));
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
printError(e instanceof Error ? e.message : String(e));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=skillset-list-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillset-list-action.js","sourceRoot":"","sources":["../../../src/cli/commands/skillset-list-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillset-publish-action.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skillset-publish-action.ts"],"names":[],"mappings":"AAoCA,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;CACd,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EhB"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { parse as parseYaml } from 'yaml';
|
|
5
|
+
import { simpleGit } from 'simple-git';
|
|
6
|
+
import { publishSkillset, updateSkillset } from '../../registry/sources/registry.js';
|
|
7
|
+
import { printJson, printError, printSuccess, printWarning, printInfo } from '../ui/output.js';
|
|
8
|
+
async function detectSourceUrl(skillsetPath) {
|
|
9
|
+
try {
|
|
10
|
+
const git = simpleGit(skillsetPath);
|
|
11
|
+
const remotes = await git.getRemotes(true);
|
|
12
|
+
const origin = remotes.find((r) => r.name === 'origin');
|
|
13
|
+
if (!origin?.refs?.fetch)
|
|
14
|
+
return null;
|
|
15
|
+
let url = origin.refs.fetch;
|
|
16
|
+
url = url.replace(/^git@github\.com:/, 'https://github.com/');
|
|
17
|
+
url = url.replace(/\.git$/, '');
|
|
18
|
+
return url;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async function readSkillsetName(skillsetPath) {
|
|
25
|
+
try {
|
|
26
|
+
const content = await readFile(join(skillsetPath, 'SKILLSET.md'), 'utf-8');
|
|
27
|
+
const match = content.match(/^---\n([\s\S]*?)\n---/);
|
|
28
|
+
if (!match)
|
|
29
|
+
return null;
|
|
30
|
+
const fm = parseYaml(match[1]);
|
|
31
|
+
return typeof fm['name'] === 'string' ? fm['name'] : null;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export async function runSkillsetPublish(options) {
|
|
38
|
+
const { getConfigValue } = await import('../../core/config.js');
|
|
39
|
+
const token = await getConfigValue('token');
|
|
40
|
+
if (!token) {
|
|
41
|
+
printError('No auth token found. Get your token from https://registry.skilldex.dev/auth/github, then run: skillpm config set token <token>');
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
const skillsetPath = process.cwd();
|
|
45
|
+
const spinner = options.json ? null : ora('Reading skillset...').start();
|
|
46
|
+
try {
|
|
47
|
+
const skillsetName = await readSkillsetName(skillsetPath);
|
|
48
|
+
if (!skillsetName) {
|
|
49
|
+
if (spinner)
|
|
50
|
+
spinner.fail();
|
|
51
|
+
printError('Could not read skillset name from SKILLSET.md frontmatter. Make sure you are in a skillset folder.');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (options.update) {
|
|
56
|
+
if (spinner)
|
|
57
|
+
spinner.text = `Re-fetching and re-scoring "${skillsetName}"...`;
|
|
58
|
+
const result = await updateSkillset(token, skillsetName);
|
|
59
|
+
if (spinner)
|
|
60
|
+
spinner.succeed(`Updated "${skillsetName}"`);
|
|
61
|
+
if (options.json) {
|
|
62
|
+
printJson(result);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
printSuccess(`Score: ${result.skillset.score ?? 'n/a'}/100`);
|
|
66
|
+
for (const d of result.diagnostics) {
|
|
67
|
+
const loc = d.line !== undefined ? `line ${d.line}: ` : '';
|
|
68
|
+
if (d.level === 'error')
|
|
69
|
+
printError(`${loc}${d.message}`);
|
|
70
|
+
else
|
|
71
|
+
printWarning(`${loc}${d.message}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const detectedUrl = options.sourceUrl ?? (await detectSourceUrl(skillsetPath));
|
|
77
|
+
if (!detectedUrl) {
|
|
78
|
+
if (spinner)
|
|
79
|
+
spinner.fail();
|
|
80
|
+
printError('Could not detect GitHub URL from git remote. Pass --source-url <url> explicitly.');
|
|
81
|
+
process.exit(1);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const tags = options.tags ? options.tags.split(',').map((t) => t.trim()).filter(Boolean) : [];
|
|
85
|
+
if (spinner)
|
|
86
|
+
spinner.text = `Publishing skillset "${skillsetName}" to registry...`;
|
|
87
|
+
const result = await publishSkillset(token, { name: skillsetName, source_url: detectedUrl, tags });
|
|
88
|
+
if (spinner)
|
|
89
|
+
spinner.succeed(`Published "${skillsetName}"`);
|
|
90
|
+
if (options.json) {
|
|
91
|
+
printJson(result);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
printInfo(`Source: ${detectedUrl}`);
|
|
95
|
+
printSuccess(`Score: ${result.skillset.score ?? 'n/a'}/100`);
|
|
96
|
+
for (const d of result.diagnostics) {
|
|
97
|
+
const loc = d.line !== undefined ? `line ${d.line}: ` : '';
|
|
98
|
+
if (d.level === 'error')
|
|
99
|
+
printError(`${loc}${d.message}`);
|
|
100
|
+
else
|
|
101
|
+
printWarning(`${loc}${d.message}`);
|
|
102
|
+
}
|
|
103
|
+
printInfo(`Install with: skillpm skillset install ${skillsetName}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
if (spinner)
|
|
108
|
+
spinner.fail();
|
|
109
|
+
printError(e instanceof Error ? e.message : String(e));
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=skillset-publish-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillset-publish-action.js","sourceRoot":"","sources":["../../../src/cli/commands/skillset-publish-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillset-uninstall-action.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skillset-uninstall-action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAItD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|