skillstore 0.0.1 → 0.1.1
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 +199 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +21 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/install.d.ts +35 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +272 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/plugin/index.d.ts +3 -0
- package/dist/commands/plugin/index.d.ts.map +1 -0
- package/dist/commands/plugin/index.js +13 -0
- package/dist/commands/plugin/index.js.map +1 -0
- package/dist/commands/plugin/info.d.ts +9 -0
- package/dist/commands/plugin/info.d.ts.map +1 -0
- package/dist/commands/plugin/info.js +75 -0
- package/dist/commands/plugin/info.js.map +1 -0
- package/dist/commands/plugin/install.d.ts +29 -0
- package/dist/commands/plugin/install.d.ts.map +1 -0
- package/dist/commands/plugin/install.js +140 -0
- package/dist/commands/plugin/install.js.map +1 -0
- package/dist/commands/plugin/list.d.ts +22 -0
- package/dist/commands/plugin/list.d.ts.map +1 -0
- package/dist/commands/plugin/list.js +76 -0
- package/dist/commands/plugin/list.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/plugin-api.d.ts +155 -0
- package/dist/lib/plugin-api.d.ts.map +1 -0
- package/dist/lib/plugin-api.js +173 -0
- package/dist/lib/plugin-api.js.map +1 -0
- package/dist/lib/plugin-config.d.ts +56 -0
- package/dist/lib/plugin-config.d.ts.map +1 -0
- package/dist/lib/plugin-config.js +64 -0
- package/dist/lib/plugin-config.js.map +1 -0
- package/dist/lib/plugin-download.d.ts +36 -0
- package/dist/lib/plugin-download.d.ts.map +1 -0
- package/dist/lib/plugin-download.js +134 -0
- package/dist/lib/plugin-download.js.map +1 -0
- package/dist/lib/plugin-logger.d.ts +79 -0
- package/dist/lib/plugin-logger.d.ts.map +1 -0
- package/dist/lib/plugin-logger.js +173 -0
- package/dist/lib/plugin-logger.js.map +1 -0
- package/dist/lib/plugin-verify.d.ts +35 -0
- package/dist/lib/plugin-verify.d.ts.map +1 -0
- package/dist/lib/plugin-verify.js +97 -0
- package/dist/lib/plugin-verify.js.map +1 -0
- package/dist/lib/skill-api.d.ts +33 -0
- package/dist/lib/skill-api.d.ts.map +1 -0
- package/dist/lib/skill-api.js +64 -0
- package/dist/lib/skill-api.js.map +1 -0
- package/package.json +56 -17
- package/src/index.js +0 -16
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/commands/plugin/info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
declare const _default: import("citty").CommandDef<{
|
|
2
|
+
slug: {
|
|
3
|
+
type: "positional";
|
|
4
|
+
description: string;
|
|
5
|
+
required: true;
|
|
6
|
+
};
|
|
7
|
+
dir: {
|
|
8
|
+
type: "string";
|
|
9
|
+
description: string;
|
|
10
|
+
default: string;
|
|
11
|
+
};
|
|
12
|
+
'skip-verify': {
|
|
13
|
+
type: "boolean";
|
|
14
|
+
description: string;
|
|
15
|
+
default: false;
|
|
16
|
+
};
|
|
17
|
+
'dry-run': {
|
|
18
|
+
type: "boolean";
|
|
19
|
+
description: string;
|
|
20
|
+
default: false;
|
|
21
|
+
};
|
|
22
|
+
overwrite: {
|
|
23
|
+
type: "boolean";
|
|
24
|
+
description: string;
|
|
25
|
+
default: false;
|
|
26
|
+
};
|
|
27
|
+
}>;
|
|
28
|
+
export default _default;
|
|
29
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/install.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wBAwIG"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { defineCommand } from 'citty';
|
|
2
|
+
import { getPluginConfig } from '../../lib/plugin-config.js';
|
|
3
|
+
import { fetchManifest, reportInstallation, PluginApiError } from '../../lib/plugin-api.js';
|
|
4
|
+
import { verifyManifest } from '../../lib/plugin-verify.js';
|
|
5
|
+
import { downloadAllSkills, printDownloadSummary } from '../../lib/plugin-download.js';
|
|
6
|
+
import { logger } from '../../lib/plugin-logger.js';
|
|
7
|
+
export default defineCommand({
|
|
8
|
+
meta: {
|
|
9
|
+
name: 'install',
|
|
10
|
+
description: 'Install a plugin (collection of skills) to your project',
|
|
11
|
+
},
|
|
12
|
+
args: {
|
|
13
|
+
slug: {
|
|
14
|
+
type: 'positional',
|
|
15
|
+
description: 'Plugin slug to install',
|
|
16
|
+
required: true,
|
|
17
|
+
},
|
|
18
|
+
dir: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
description: 'Installation directory (default: .claude/skills)',
|
|
21
|
+
default: '.claude/skills',
|
|
22
|
+
},
|
|
23
|
+
'skip-verify': {
|
|
24
|
+
type: 'boolean',
|
|
25
|
+
description: 'Skip manifest signature verification',
|
|
26
|
+
default: false,
|
|
27
|
+
},
|
|
28
|
+
'dry-run': {
|
|
29
|
+
type: 'boolean',
|
|
30
|
+
description: 'Show what would be installed without actually installing',
|
|
31
|
+
default: false,
|
|
32
|
+
},
|
|
33
|
+
overwrite: {
|
|
34
|
+
type: 'boolean',
|
|
35
|
+
description: 'Overwrite existing skill files',
|
|
36
|
+
default: false,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
async run({ args }) {
|
|
40
|
+
const { slug, dir, 'skip-verify': skipVerify, 'dry-run': dryRun, overwrite } = args;
|
|
41
|
+
// Build config from args
|
|
42
|
+
const config = getPluginConfig({
|
|
43
|
+
installDir: dir,
|
|
44
|
+
skipVerify,
|
|
45
|
+
dryRun,
|
|
46
|
+
});
|
|
47
|
+
logger.info(`Installing plugin: ${slug}`);
|
|
48
|
+
logger.info(`Target directory: ${config.installDir}`);
|
|
49
|
+
if (dryRun) {
|
|
50
|
+
logger.warn('Dry run mode - no files will be written');
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
// Step 1: Fetch manifest
|
|
54
|
+
logger.startSpinner('Fetching plugin manifest...');
|
|
55
|
+
const manifest = await fetchManifest(config, slug);
|
|
56
|
+
logger.spinnerSuccess(`Fetched manifest for "${manifest.plugin.name}"`);
|
|
57
|
+
// Step 2: Verify manifest
|
|
58
|
+
if (!skipVerify) {
|
|
59
|
+
logger.startSpinner('Verifying manifest signature...');
|
|
60
|
+
const verifyResult = await verifyManifest(manifest, { skipSignature: skipVerify });
|
|
61
|
+
if (!verifyResult.valid) {
|
|
62
|
+
logger.spinnerError('Manifest verification failed');
|
|
63
|
+
logger.error(verifyResult.error || 'Unknown verification error');
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
if (verifyResult.error) {
|
|
67
|
+
// Warning but continue
|
|
68
|
+
logger.spinnerSuccess('Manifest structure valid');
|
|
69
|
+
logger.warn(verifyResult.error);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
logger.spinnerSuccess('Manifest verified');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
logger.warn('Skipping manifest signature verification');
|
|
77
|
+
}
|
|
78
|
+
// Step 3: Show plugin info
|
|
79
|
+
logger.box(`Plugin: ${manifest.plugin.name}`, [
|
|
80
|
+
`Version: ${manifest.plugin.version}`,
|
|
81
|
+
`Skills: ${manifest.skills.length}`,
|
|
82
|
+
`Generated: ${new Date(manifest.generatedAt).toLocaleDateString()}`,
|
|
83
|
+
]);
|
|
84
|
+
// Step 4: Download skills
|
|
85
|
+
logger.info('');
|
|
86
|
+
const downloadResult = await downloadAllSkills(config, manifest.skills, {
|
|
87
|
+
overwrite,
|
|
88
|
+
verifyHash: !skipVerify,
|
|
89
|
+
});
|
|
90
|
+
// Step 5: Print summary
|
|
91
|
+
printDownloadSummary(downloadResult);
|
|
92
|
+
// Step 6: Report installation (non-blocking)
|
|
93
|
+
if (!dryRun && downloadResult.success > 0) {
|
|
94
|
+
try {
|
|
95
|
+
const reportResult = await reportInstallation(config, slug, 'cli');
|
|
96
|
+
if (reportResult.duplicate) {
|
|
97
|
+
logger.debug('Installation already recorded');
|
|
98
|
+
}
|
|
99
|
+
else if (reportResult.success) {
|
|
100
|
+
logger.debug('Installation reported successfully');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// Don't fail on report error
|
|
105
|
+
logger.debug('Failed to report installation (non-critical)');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Final status
|
|
109
|
+
if (downloadResult.failed > 0) {
|
|
110
|
+
logger.warn(`Installation completed with ${downloadResult.failed} failures`);
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
else if (dryRun) {
|
|
114
|
+
logger.success('Dry run complete - no files were written');
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
logger.success(`Plugin "${manifest.plugin.name}" installed successfully!`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
logger.stopSpinner();
|
|
122
|
+
if (err instanceof PluginApiError) {
|
|
123
|
+
if (err.statusCode === 404) {
|
|
124
|
+
logger.error(`Plugin "${slug}" not found`);
|
|
125
|
+
}
|
|
126
|
+
else if (err.statusCode === 403) {
|
|
127
|
+
logger.error('Access denied - plugin may be private or require purchase');
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
logger.error(`API error: ${err.message}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
logger.error('Installation failed', err instanceof Error ? err : undefined);
|
|
135
|
+
}
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/plugin/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare const _default: import("citty").CommandDef<{
|
|
2
|
+
type: {
|
|
3
|
+
type: "string";
|
|
4
|
+
description: string;
|
|
5
|
+
};
|
|
6
|
+
pricing: {
|
|
7
|
+
type: "string";
|
|
8
|
+
description: string;
|
|
9
|
+
};
|
|
10
|
+
limit: {
|
|
11
|
+
type: "string";
|
|
12
|
+
description: string;
|
|
13
|
+
default: string;
|
|
14
|
+
};
|
|
15
|
+
page: {
|
|
16
|
+
type: "string";
|
|
17
|
+
description: string;
|
|
18
|
+
default: string;
|
|
19
|
+
};
|
|
20
|
+
}>;
|
|
21
|
+
export default _default;
|
|
22
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/plugin/list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAKA,wBA8EG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { defineCommand } from 'citty';
|
|
2
|
+
import { getPluginConfig } from '../../lib/plugin-config.js';
|
|
3
|
+
import { fetchPluginList, PluginApiError } from '../../lib/plugin-api.js';
|
|
4
|
+
import { logger } from '../../lib/plugin-logger.js';
|
|
5
|
+
export default defineCommand({
|
|
6
|
+
meta: {
|
|
7
|
+
name: 'list',
|
|
8
|
+
description: 'List available plugins from skillstore.io',
|
|
9
|
+
},
|
|
10
|
+
args: {
|
|
11
|
+
type: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
description: 'Filter by type: curated, scenario, or user',
|
|
14
|
+
},
|
|
15
|
+
pricing: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
description: 'Filter by pricing: free or paid',
|
|
18
|
+
},
|
|
19
|
+
limit: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'Number of plugins to show',
|
|
22
|
+
default: '10',
|
|
23
|
+
},
|
|
24
|
+
page: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
description: 'Page number for pagination',
|
|
27
|
+
default: '1',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
async run({ args }) {
|
|
31
|
+
const { type, pricing, limit, page } = args;
|
|
32
|
+
const config = getPluginConfig();
|
|
33
|
+
logger.startSpinner('Fetching plugins...');
|
|
34
|
+
try {
|
|
35
|
+
const response = await fetchPluginList(config, {
|
|
36
|
+
type: type,
|
|
37
|
+
pricing: pricing,
|
|
38
|
+
limit: parseInt(limit, 10),
|
|
39
|
+
page: parseInt(page, 10),
|
|
40
|
+
});
|
|
41
|
+
logger.stopSpinner();
|
|
42
|
+
if (response.data.length === 0) {
|
|
43
|
+
logger.warn('No plugins found');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
console.log('');
|
|
47
|
+
console.log(`Showing ${response.data.length} of ${response.pagination.total} plugins (page ${response.pagination.page}/${response.pagination.totalPages})`);
|
|
48
|
+
console.log('');
|
|
49
|
+
for (const plugin of response.data) {
|
|
50
|
+
const pricingBadge = plugin.pricing === 'paid' ? ' [PAID]' : '';
|
|
51
|
+
const typeBadge = `[${plugin.pluginType.toUpperCase()}]`;
|
|
52
|
+
console.log(` ${plugin.name} ${typeBadge}${pricingBadge}`);
|
|
53
|
+
console.log(` Slug: ${plugin.slug}`);
|
|
54
|
+
console.log(` Skills: ${plugin.skillCount} | Installs: ${plugin.installCount}`);
|
|
55
|
+
if (plugin.description) {
|
|
56
|
+
console.log(` ${plugin.description.substring(0, 80)}${plugin.description.length > 80 ? '...' : ''}`);
|
|
57
|
+
}
|
|
58
|
+
console.log('');
|
|
59
|
+
}
|
|
60
|
+
if (response.pagination.page < response.pagination.totalPages) {
|
|
61
|
+
console.log(`Use --page ${response.pagination.page + 1} to see more`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
logger.stopSpinner();
|
|
66
|
+
if (err instanceof PluginApiError) {
|
|
67
|
+
logger.error(`API error: ${err.message}`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
logger.error('Failed to fetch plugin list', err instanceof Error ? err : undefined);
|
|
71
|
+
}
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/plugin/list.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skillstore SDK
|
|
3
|
+
*
|
|
4
|
+
* AI Skills marketplace for Claude Code
|
|
5
|
+
*/
|
|
6
|
+
export { fetchManifest, fetchPluginInfo, fetchPluginList, downloadSkill, reportInstallation, PluginApiError, type PluginManifest, type ManifestSkill, type PluginInfo, type PluginListItem, type PluginListResponse, type InstallReportResponse, } from './lib/plugin-api.js';
|
|
7
|
+
export { fetchSkillInfo, downloadSkillZip, SkillApiError, type SkillInfo, } from './lib/skill-api.js';
|
|
8
|
+
export { getPluginConfig, type PluginConfig, DEFAULT_INSTALL_DIR, API_BASE_URL, } from './lib/plugin-config.js';
|
|
9
|
+
export { verifyManifest, verifyContentHash, type VerifyResult, } from './lib/plugin-verify.js';
|
|
10
|
+
export { downloadAllSkills, printDownloadSummary, type SkillDownloadResult, type DownloadSummary, } from './lib/plugin-download.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACN,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC1B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,KAAK,SAAS,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACN,eAAe,EACf,KAAK,YAAY,EACjB,mBAAmB,EACnB,YAAY,GACZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,KAAK,YAAY,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACpB,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skillstore SDK
|
|
3
|
+
*
|
|
4
|
+
* AI Skills marketplace for Claude Code
|
|
5
|
+
*/
|
|
6
|
+
// Re-export plugin API for programmatic usage
|
|
7
|
+
export { fetchManifest, fetchPluginInfo, fetchPluginList, downloadSkill, reportInstallation, PluginApiError, } from './lib/plugin-api.js';
|
|
8
|
+
// Re-export skill API for programmatic usage
|
|
9
|
+
export { fetchSkillInfo, downloadSkillZip, SkillApiError, } from './lib/skill-api.js';
|
|
10
|
+
export { getPluginConfig, DEFAULT_INSTALL_DIR, API_BASE_URL, } from './lib/plugin-config.js';
|
|
11
|
+
export { verifyManifest, verifyContentHash, } from './lib/plugin-verify.js';
|
|
12
|
+
export { downloadAllSkills, printDownloadSummary, } from './lib/plugin-download.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8CAA8C;AAC9C,OAAO,EACN,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,GAOd,MAAM,qBAAqB,CAAC;AAE7B,6CAA6C;AAC7C,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,aAAa,GAEb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACN,eAAe,EAEf,mBAAmB,EACnB,YAAY,GACZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,cAAc,EACd,iBAAiB,GAEjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,iBAAiB,EACjB,oBAAoB,GAGpB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { PluginConfig } from './plugin-config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Plugin API Client
|
|
4
|
+
*
|
|
5
|
+
* Handles all HTTP requests to the Skillstore API for plugin operations.
|
|
6
|
+
*/
|
|
7
|
+
/** Manifest skill entry */
|
|
8
|
+
export interface ManifestSkill {
|
|
9
|
+
slug: string;
|
|
10
|
+
name: string;
|
|
11
|
+
contentHash: string;
|
|
12
|
+
downloadUrl: string;
|
|
13
|
+
}
|
|
14
|
+
/** Plugin manifest response */
|
|
15
|
+
export interface PluginManifest {
|
|
16
|
+
version: '1.0';
|
|
17
|
+
plugin: {
|
|
18
|
+
slug: string;
|
|
19
|
+
name: string;
|
|
20
|
+
version: string;
|
|
21
|
+
};
|
|
22
|
+
skills: ManifestSkill[];
|
|
23
|
+
signature: string;
|
|
24
|
+
generatedAt: string;
|
|
25
|
+
}
|
|
26
|
+
/** Plugin info response */
|
|
27
|
+
export interface PluginInfo {
|
|
28
|
+
id: string;
|
|
29
|
+
slug: string;
|
|
30
|
+
name: string;
|
|
31
|
+
description: string | null;
|
|
32
|
+
pluginType: 'curated' | 'scenario' | 'user';
|
|
33
|
+
visibility: 'public' | 'private';
|
|
34
|
+
pricing: 'free' | 'paid';
|
|
35
|
+
skillCount: number;
|
|
36
|
+
installCount: number;
|
|
37
|
+
priceCents: number;
|
|
38
|
+
currency: string;
|
|
39
|
+
scenarioTags: string[] | null;
|
|
40
|
+
skills: Array<{
|
|
41
|
+
slug: string;
|
|
42
|
+
name: string;
|
|
43
|
+
description: string | null;
|
|
44
|
+
category: string | null;
|
|
45
|
+
riskLevel: string | null;
|
|
46
|
+
qualityScore: number | null;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
/** Plugin list item */
|
|
50
|
+
export interface PluginListItem {
|
|
51
|
+
id: string;
|
|
52
|
+
slug: string;
|
|
53
|
+
name: string;
|
|
54
|
+
description: string | null;
|
|
55
|
+
pluginType: 'curated' | 'scenario' | 'user';
|
|
56
|
+
visibility: 'public' | 'private';
|
|
57
|
+
pricing: 'free' | 'paid';
|
|
58
|
+
skillCount: number;
|
|
59
|
+
installCount: number;
|
|
60
|
+
score: number | null;
|
|
61
|
+
}
|
|
62
|
+
/** Plugin list response */
|
|
63
|
+
export interface PluginListResponse {
|
|
64
|
+
data: PluginListItem[];
|
|
65
|
+
pagination: {
|
|
66
|
+
page: number;
|
|
67
|
+
limit: number;
|
|
68
|
+
total: number;
|
|
69
|
+
totalPages: number;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/** Install response */
|
|
73
|
+
export interface InstallReportResponse {
|
|
74
|
+
success: boolean;
|
|
75
|
+
installationId?: string;
|
|
76
|
+
message?: string;
|
|
77
|
+
duplicate?: boolean;
|
|
78
|
+
error?: string;
|
|
79
|
+
}
|
|
80
|
+
/** API Error */
|
|
81
|
+
export declare class PluginApiError extends Error {
|
|
82
|
+
statusCode: number;
|
|
83
|
+
code?: string | undefined;
|
|
84
|
+
constructor(message: string, statusCode: number, code?: string | undefined);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Fetch plugin manifest for installation
|
|
88
|
+
*/
|
|
89
|
+
export declare function fetchManifest(config: PluginConfig, pluginSlug: string): Promise<PluginManifest>;
|
|
90
|
+
/**
|
|
91
|
+
* Fetch plugin info/details
|
|
92
|
+
*/
|
|
93
|
+
export declare function fetchPluginInfo(config: PluginConfig, pluginSlug: string): Promise<PluginInfo>;
|
|
94
|
+
/**
|
|
95
|
+
* Fetch plugin list
|
|
96
|
+
*/
|
|
97
|
+
export declare function fetchPluginList(config: PluginConfig, options?: {
|
|
98
|
+
type?: 'curated' | 'scenario' | 'user';
|
|
99
|
+
pricing?: 'free' | 'paid';
|
|
100
|
+
limit?: number;
|
|
101
|
+
page?: number;
|
|
102
|
+
}): Promise<PluginListResponse>;
|
|
103
|
+
/**
|
|
104
|
+
* Report installation to the API
|
|
105
|
+
*/
|
|
106
|
+
export declare function reportInstallation(config: PluginConfig, pluginSlug: string, method?: 'npm' | 'manual' | 'cli'): Promise<InstallReportResponse>;
|
|
107
|
+
/**
|
|
108
|
+
* Download skill content from the API
|
|
109
|
+
*/
|
|
110
|
+
export declare function downloadSkill(config: PluginConfig, downloadUrl: string): Promise<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Telemetry event types for effectiveness tracking
|
|
113
|
+
*/
|
|
114
|
+
export type TelemetryEventType = 'invocation' | 'completion' | 'error' | 'feedback';
|
|
115
|
+
/**
|
|
116
|
+
* Telemetry event payload
|
|
117
|
+
*/
|
|
118
|
+
export interface TelemetryEvent {
|
|
119
|
+
skill_slug: string;
|
|
120
|
+
event_type: TelemetryEventType;
|
|
121
|
+
session_id?: string;
|
|
122
|
+
client_id?: string;
|
|
123
|
+
success?: boolean;
|
|
124
|
+
iteration_count?: number;
|
|
125
|
+
duration_ms?: number;
|
|
126
|
+
error_type?: string;
|
|
127
|
+
error_message?: string;
|
|
128
|
+
user_rating?: number;
|
|
129
|
+
feedback_type?: 'thumbs_up' | 'thumbs_down' | 'star_rating';
|
|
130
|
+
tool_name?: 'claude_code' | 'codex' | 'claude' | 'other';
|
|
131
|
+
tool_version?: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Telemetry response
|
|
135
|
+
*/
|
|
136
|
+
export interface TelemetryResponse {
|
|
137
|
+
success: boolean;
|
|
138
|
+
event_id?: string;
|
|
139
|
+
message?: string;
|
|
140
|
+
error?: string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Report skill telemetry event (effectiveness tracking)
|
|
144
|
+
*
|
|
145
|
+
* Used to track skill usage for quality scoring.
|
|
146
|
+
* Non-blocking - failures don't interrupt normal operation.
|
|
147
|
+
*/
|
|
148
|
+
export declare function reportSkillTelemetry(config: PluginConfig, event: TelemetryEvent): Promise<TelemetryResponse>;
|
|
149
|
+
/**
|
|
150
|
+
* Report skill installation event
|
|
151
|
+
*
|
|
152
|
+
* Tracks when a skill is installed via CLI.
|
|
153
|
+
*/
|
|
154
|
+
export declare function reportSkillInstall(config: PluginConfig, skillSlug: string, toolName?: 'claude_code' | 'codex' | 'claude' | 'other'): Promise<TelemetryResponse>;
|
|
155
|
+
//# sourceMappingURL=plugin-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-api.d.ts","sourceRoot":"","sources":["../../src/lib/plugin-api.ts"],"names":[],"mappings":"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"}
|