transskill 0.3.0 → 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/dist/index.js +24 -0
- package/dist/index.js.map +1 -1
- package/dist/marketplace/publish-all.d.ts +11 -0
- package/dist/marketplace/publish-all.d.ts.map +1 -0
- package/dist/marketplace/publish-all.js +130 -0
- package/dist/marketplace/publish-all.js.map +1 -0
- package/dist/marketplace/publish.d.ts +12 -6
- package/dist/marketplace/publish.d.ts.map +1 -1
- package/dist/marketplace/publish.js +135 -218
- package/dist/marketplace/publish.js.map +1 -1
- package/dist/marketplace/registry-client.d.ts +11 -2
- package/dist/marketplace/registry-client.d.ts.map +1 -1
- package/dist/marketplace/registry-client.js +137 -18
- package/dist/marketplace/registry-client.js.map +1 -1
- package/dist/marketplace/types.d.ts +24 -4
- package/dist/marketplace/types.d.ts.map +1 -1
- package/dist/marketplace/types.js +4 -1
- package/dist/marketplace/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Publish command —
|
|
2
|
+
* Publish command — v2: lightweight link submission.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 2. Parse + audit (mandatory, score >= 90 unless --force)
|
|
7
|
-
* 3. GitHub API: fork → branch → upload SKILL.md → update registry.json → PR
|
|
4
|
+
* No more file uploads. Publishing a skill just adds a link entry
|
|
5
|
+
* to registry.json pointing to the original source.
|
|
8
6
|
*/
|
|
9
|
-
import { readFileSync, existsSync,
|
|
7
|
+
import { readFileSync, existsSync, statSync } from 'node:fs';
|
|
10
8
|
import { join } from 'node:path';
|
|
11
9
|
import { intro, outro, spinner, log } from '@clack/prompts';
|
|
12
10
|
import chalk from 'chalk';
|
|
@@ -21,6 +19,16 @@ const REGISTRY_REPO = 'transskill-registry';
|
|
|
21
19
|
const REGISTRY_FULL = `${REGISTRY_OWNER}/${REGISTRY_REPO}`;
|
|
22
20
|
const GITHUB_API = 'https://api.github.com';
|
|
23
21
|
// ──────────────────────────────────────────────
|
|
22
|
+
// Error type
|
|
23
|
+
// ──────────────────────────────────────────────
|
|
24
|
+
/** Error thrown to abort publish (messages already printed via log/outro). */
|
|
25
|
+
export class PublishError extends Error {
|
|
26
|
+
constructor(msg) {
|
|
27
|
+
super(msg || 'Publish aborted');
|
|
28
|
+
this.name = 'PublishError';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// ──────────────────────────────────────────────
|
|
24
32
|
// GitHub API helpers
|
|
25
33
|
// ──────────────────────────────────────────────
|
|
26
34
|
function getToken() {
|
|
@@ -29,9 +37,9 @@ function getToken() {
|
|
|
29
37
|
console.error('');
|
|
30
38
|
log.error('GITHUB_TOKEN environment variable not set.');
|
|
31
39
|
log.info('Create a token at https://github.com/settings/tokens');
|
|
32
|
-
log.info('Then set: export GITHUB_TOKEN
|
|
40
|
+
log.info('Then set: export GITHUB_TOKEN=***');
|
|
33
41
|
console.error('');
|
|
34
|
-
|
|
42
|
+
throw new PublishError();
|
|
35
43
|
}
|
|
36
44
|
return token;
|
|
37
45
|
}
|
|
@@ -44,60 +52,44 @@ function ghHeaders(token) {
|
|
|
44
52
|
};
|
|
45
53
|
}
|
|
46
54
|
async function ghFetch(url, token, options = {}) {
|
|
47
|
-
|
|
55
|
+
return fetch(url, {
|
|
48
56
|
...options,
|
|
49
57
|
headers: {
|
|
50
58
|
...ghHeaders(token),
|
|
51
59
|
...options.headers,
|
|
52
60
|
},
|
|
53
61
|
});
|
|
54
|
-
return res;
|
|
55
62
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Get the authenticated user's GitHub login.
|
|
58
|
-
*/
|
|
59
63
|
async function getGitHubUser(token) {
|
|
60
64
|
const res = await ghFetch(`${GITHUB_API}/user`, token);
|
|
61
|
-
if (!res.ok)
|
|
62
|
-
throw new
|
|
63
|
-
}
|
|
65
|
+
if (!res.ok)
|
|
66
|
+
throw new PublishError(`Failed to authenticate: ${res.status} ${res.statusText}`);
|
|
64
67
|
const data = await res.json();
|
|
65
68
|
return data.login;
|
|
66
69
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Get the default branch of the registry repo.
|
|
69
|
-
*/
|
|
70
70
|
async function getDefaultBranch(token) {
|
|
71
71
|
const res = await ghFetch(`${GITHUB_API}/repos/${REGISTRY_FULL}`, token);
|
|
72
72
|
if (!res.ok)
|
|
73
|
-
throw new
|
|
73
|
+
throw new PublishError(`Failed to get repo info: ${res.status}`);
|
|
74
74
|
const data = await res.json();
|
|
75
75
|
const branch = data.default_branch;
|
|
76
|
-
// Get the SHA of the latest commit on the default branch
|
|
77
76
|
const refRes = await ghFetch(`${GITHUB_API}/repos/${REGISTRY_FULL}/git/ref/heads/${branch}`, token);
|
|
78
77
|
if (!refRes.ok)
|
|
79
|
-
throw new
|
|
78
|
+
throw new PublishError(`Failed to get branch ref: ${refRes.status}`);
|
|
80
79
|
const refData = await refRes.json();
|
|
81
80
|
return { name: branch, sha: refData.object.sha };
|
|
82
81
|
}
|
|
83
|
-
/**
|
|
84
|
-
* Create a fork of the registry repo (no-op if already exists).
|
|
85
|
-
*/
|
|
86
82
|
async function ensureFork(token, user) {
|
|
87
|
-
// Check if fork exists
|
|
88
83
|
const checkRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}`, token);
|
|
89
|
-
if (checkRes.ok)
|
|
90
|
-
//
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
84
|
+
if (checkRes.ok)
|
|
85
|
+
return; // fork exists
|
|
93
86
|
log.info('Creating fork of transskill-registry…');
|
|
94
87
|
const res = await ghFetch(`${GITHUB_API}/repos/${REGISTRY_FULL}/forks`, token, {
|
|
95
88
|
method: 'POST',
|
|
96
89
|
body: JSON.stringify({}),
|
|
97
90
|
});
|
|
98
91
|
if (res.status === 202) {
|
|
99
|
-
log.info('Fork creation in progress
|
|
100
|
-
// Wait for fork to be ready
|
|
92
|
+
log.info('Fork creation in progress…');
|
|
101
93
|
let ready = false;
|
|
102
94
|
let attempts = 0;
|
|
103
95
|
while (!ready && attempts < 30) {
|
|
@@ -108,46 +100,30 @@ async function ensureFork(token, user) {
|
|
|
108
100
|
attempts++;
|
|
109
101
|
}
|
|
110
102
|
if (!ready)
|
|
111
|
-
throw new
|
|
103
|
+
throw new PublishError('Timed out waiting for fork');
|
|
112
104
|
}
|
|
113
105
|
else if (!res.ok) {
|
|
114
106
|
const body = await res.json().catch(() => ({}));
|
|
115
|
-
throw new
|
|
107
|
+
throw new PublishError(`Failed to fork repo: ${res.status} ${body.message || res.statusText}`);
|
|
116
108
|
}
|
|
117
109
|
}
|
|
118
|
-
/**
|
|
119
|
-
* Create or update a file in the fork via GitHub API.
|
|
120
|
-
*/
|
|
121
110
|
async function upsertFile(token, user, branch, path, content, message) {
|
|
122
|
-
// Try to get existing file SHA
|
|
123
111
|
let existingSha;
|
|
124
112
|
const getRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/${path}?ref=${branch}`, token);
|
|
125
113
|
if (getRes.ok) {
|
|
126
114
|
const data = await getRes.json();
|
|
127
115
|
existingSha = data.sha;
|
|
128
116
|
}
|
|
129
|
-
// Base64 encode content
|
|
130
117
|
const base64 = Buffer.from(content, 'utf-8').toString('base64');
|
|
131
|
-
const body = {
|
|
132
|
-
|
|
133
|
-
content: base64,
|
|
134
|
-
branch,
|
|
135
|
-
};
|
|
136
|
-
if (existingSha) {
|
|
118
|
+
const body = { message, content: base64, branch };
|
|
119
|
+
if (existingSha)
|
|
137
120
|
body.sha = existingSha;
|
|
138
|
-
}
|
|
139
|
-
const res = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/${path}`, token, {
|
|
140
|
-
method: 'PUT',
|
|
141
|
-
body: JSON.stringify(body),
|
|
142
|
-
});
|
|
121
|
+
const res = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/${path}`, token, { method: 'PUT', body: JSON.stringify(body) });
|
|
143
122
|
if (!res.ok) {
|
|
144
123
|
const errBody = await res.json().catch(() => ({}));
|
|
145
|
-
throw new
|
|
124
|
+
throw new PublishError(`Failed to write ${path}: ${res.status} ${errBody.message || res.statusText}`);
|
|
146
125
|
}
|
|
147
126
|
}
|
|
148
|
-
/**
|
|
149
|
-
* Create a pull request.
|
|
150
|
-
*/
|
|
151
127
|
async function createPR(token, user, branch, title, body) {
|
|
152
128
|
const res = await ghFetch(`${GITHUB_API}/repos/${REGISTRY_FULL}/pulls`, token, {
|
|
153
129
|
method: 'POST',
|
|
@@ -160,231 +136,182 @@ async function createPR(token, user, branch, title, body) {
|
|
|
160
136
|
});
|
|
161
137
|
if (!res.ok) {
|
|
162
138
|
const errBody = await res.json().catch(() => ({}));
|
|
163
|
-
throw new
|
|
139
|
+
throw new PublishError(`Failed to create PR: ${res.status} ${errBody.message || res.statusText}`);
|
|
164
140
|
}
|
|
165
141
|
const data = await res.json();
|
|
166
142
|
return data.html_url;
|
|
167
143
|
}
|
|
168
144
|
/**
|
|
169
|
-
* Publish a skill
|
|
145
|
+
* Publish a skill — validate, then PR a link to the registry index.
|
|
170
146
|
*/
|
|
171
147
|
export async function publishSkill(skillPath, options) {
|
|
172
148
|
const spin = spinner();
|
|
173
|
-
intro(chalk.green('📤 TransSkill Publish'));
|
|
174
|
-
// Step 1: Resolve and validate
|
|
149
|
+
intro(chalk.green('📤 TransSkill Publish (v2 — link only)'));
|
|
150
|
+
// Step 1: Resolve and validate
|
|
175
151
|
const skillDirPath = skillPath.startsWith('/')
|
|
176
152
|
? skillPath
|
|
177
153
|
: join(process.cwd(), skillPath);
|
|
178
154
|
if (!existsSync(skillDirPath)) {
|
|
179
155
|
log.error(`Path does not exist: ${skillDirPath}`);
|
|
180
|
-
|
|
181
|
-
process.exit(1);
|
|
156
|
+
throw new PublishError();
|
|
182
157
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
log.info('Usage: transskill publish ./my-skill/');
|
|
187
|
-
outro('Publish cancelled');
|
|
188
|
-
process.exit(1);
|
|
158
|
+
if (!statSync(skillDirPath).isDirectory()) {
|
|
159
|
+
log.error(`Expected a directory, got a file`);
|
|
160
|
+
throw new PublishError();
|
|
189
161
|
}
|
|
190
|
-
// Check for SKILL.md
|
|
191
162
|
const skillMdPath = join(skillDirPath, 'SKILL.md');
|
|
192
163
|
if (!existsSync(skillMdPath)) {
|
|
193
|
-
log.error(`Directory does not contain SKILL.md
|
|
194
|
-
|
|
195
|
-
outro('Publish cancelled');
|
|
196
|
-
process.exit(1);
|
|
164
|
+
log.error(`Directory does not contain SKILL.md`);
|
|
165
|
+
throw new PublishError();
|
|
197
166
|
}
|
|
198
|
-
// Step 2: Parse
|
|
167
|
+
// Step 2: Parse + validate frontmatter
|
|
199
168
|
spin.start('Validating SKILL.md…');
|
|
200
|
-
let skill;
|
|
201
169
|
let rawContent;
|
|
202
|
-
let skillDir;
|
|
203
170
|
let frontmatter;
|
|
204
171
|
try {
|
|
205
172
|
rawContent = readFileSync(skillMdPath, 'utf-8');
|
|
206
173
|
const parsed = matter(rawContent);
|
|
207
174
|
frontmatter = parsed.data;
|
|
208
175
|
const parser = getParser('skill.md');
|
|
209
|
-
|
|
210
|
-
// Also scan directory structure
|
|
211
|
-
skillDir = parser.parseDirectory(skillDirPath);
|
|
212
|
-
// Validate required frontmatter
|
|
176
|
+
parser.parse(rawContent, skillMdPath);
|
|
213
177
|
if (!frontmatter.description || typeof frontmatter.description !== 'string') {
|
|
214
|
-
throw new Error('"description" field is required
|
|
215
|
-
}
|
|
216
|
-
if (!Array.isArray(frontmatter.tags)) {
|
|
217
|
-
throw new Error('"tags" field is required and must be an array');
|
|
218
|
-
}
|
|
219
|
-
if (frontmatter.tags.length === 0) {
|
|
220
|
-
throw new Error('"tags" array must have at least one tag');
|
|
178
|
+
throw new Error('"description" field is required');
|
|
221
179
|
}
|
|
222
180
|
spin.stop('Validated ✓');
|
|
223
|
-
console.log(` Name: ${chalk.bold(
|
|
224
|
-
console.log(` Description: ${
|
|
225
|
-
if (frontmatter.version) {
|
|
226
|
-
console.log(` Version: ${frontmatter.version}`);
|
|
227
|
-
}
|
|
228
|
-
console.log(` Tags: ${frontmatter.tags.map((t) => chalk.cyan(t)).join(', ')}`);
|
|
181
|
+
console.log(` Name: ${chalk.bold(frontmatter.name || skillMdPath)}`);
|
|
182
|
+
console.log(` Description: ${frontmatter.description}`);
|
|
229
183
|
console.log('');
|
|
230
184
|
}
|
|
231
185
|
catch (err) {
|
|
232
186
|
spin.stop('Validation failed');
|
|
233
187
|
const message = err instanceof Error ? err.message : String(err);
|
|
234
188
|
log.error(`Invalid skill: ${message}`);
|
|
235
|
-
|
|
236
|
-
process.exit(1);
|
|
189
|
+
throw new PublishError();
|
|
237
190
|
}
|
|
238
|
-
// Step 3: Security audit
|
|
191
|
+
// Step 3: Security audit
|
|
239
192
|
spin.start('Running security audit…');
|
|
240
193
|
const engine = new AuditEngine({ lang: 'en' });
|
|
241
|
-
const report = engine.auditSkill(
|
|
242
|
-
|
|
194
|
+
const report = engine.auditSkill(matter(rawContent).content, skillMdPath);
|
|
195
|
+
// Actually do proper audit
|
|
196
|
+
const parser = getParser('skill.md');
|
|
197
|
+
const skill = parser.parse(rawContent, skillMdPath);
|
|
198
|
+
const auditReport = engine.auditSkill(skill, skillMdPath);
|
|
199
|
+
const score = calculateScore(auditReport);
|
|
243
200
|
spin.stop(`Audit complete — score: ${formatScore(score)}`);
|
|
244
|
-
if (
|
|
245
|
-
console.log(engine.reportToString(
|
|
201
|
+
if (auditReport.findings.length > 0) {
|
|
202
|
+
console.log(engine.reportToString(auditReport));
|
|
246
203
|
}
|
|
247
204
|
else {
|
|
248
205
|
console.log(` ${chalk.green('✓ No security issues found')}`);
|
|
249
206
|
}
|
|
250
207
|
console.log('');
|
|
251
208
|
if (score < 90 && !options.force) {
|
|
252
|
-
log.error(`
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
209
|
+
log.error(`Score ${score}/100 is below 90. Use --force to publish anyway.`);
|
|
210
|
+
throw new PublishError();
|
|
211
|
+
}
|
|
212
|
+
// Step 4: Determine source URLs
|
|
213
|
+
const skillName = frontmatter.name || 'unnamed';
|
|
214
|
+
const skillAuthor = frontmatter.author || 'unknown';
|
|
215
|
+
const version = frontmatter.version || '1.0.0';
|
|
216
|
+
// Try to derive GitHub URLs from git remote
|
|
217
|
+
let sourceUrl = options.sourceUrl || '';
|
|
218
|
+
let downloadUrl = options.downloadUrl || '';
|
|
219
|
+
if (!sourceUrl) {
|
|
220
|
+
// Try to read git remote
|
|
221
|
+
const { execSync } = await import('node:child_process');
|
|
222
|
+
try {
|
|
223
|
+
const remote = execSync('git remote get-url origin', { cwd: skillDirPath })
|
|
224
|
+
.toString().trim()
|
|
225
|
+
.replace(/\.git$/, '');
|
|
226
|
+
if (remote.includes('github.com')) {
|
|
227
|
+
sourceUrl = remote;
|
|
228
|
+
const repoPath = remote.replace(/^https?:\/\/github\.com\//, '');
|
|
229
|
+
downloadUrl = `https://raw.githubusercontent.com/${repoPath}/main/SKILL.md`;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
// No git remote found
|
|
234
|
+
}
|
|
256
235
|
}
|
|
257
|
-
|
|
236
|
+
if (!sourceUrl) {
|
|
237
|
+
sourceUrl = `https://github.com/${skillAuthor}/skills`;
|
|
238
|
+
downloadUrl = `https://raw.githubusercontent.com/${skillAuthor}/skills/main/skills/${skillName}/SKILL.md`;
|
|
239
|
+
}
|
|
240
|
+
console.log(` ${chalk.gray('Source:')} ${sourceUrl}`);
|
|
241
|
+
console.log(` ${chalk.gray('Download:')} ${downloadUrl}`);
|
|
242
|
+
console.log('');
|
|
243
|
+
// Dry run
|
|
258
244
|
if (options.dryRun) {
|
|
259
|
-
outro(chalk.yellow('Dry run — no changes made.
|
|
245
|
+
outro(chalk.yellow('Dry run — no changes made.'));
|
|
260
246
|
return;
|
|
261
247
|
}
|
|
262
|
-
// Step
|
|
248
|
+
// Step 5: GitHub — fork → branch → update registry.json → PR
|
|
263
249
|
spin.start('Connecting to GitHub…');
|
|
264
250
|
let token;
|
|
265
251
|
let user;
|
|
266
|
-
let baseBranch;
|
|
267
252
|
let baseSha;
|
|
268
253
|
try {
|
|
269
254
|
token = getToken();
|
|
270
255
|
user = await getGitHubUser(token);
|
|
271
256
|
const base = await getDefaultBranch(token);
|
|
272
|
-
baseBranch = base.name;
|
|
273
257
|
baseSha = base.sha;
|
|
274
258
|
spin.stop(`Authenticated as ${chalk.bold(user)}`);
|
|
275
|
-
console.log(` Registry: ${chalk.cyan(REGISTRY_FULL)}`);
|
|
276
|
-
console.log('');
|
|
277
259
|
}
|
|
278
260
|
catch (err) {
|
|
279
261
|
spin.stop('GitHub connection failed');
|
|
280
262
|
const message = err instanceof Error ? err.message : String(err);
|
|
281
263
|
log.error(message);
|
|
282
|
-
|
|
283
|
-
process.exit(1);
|
|
264
|
+
throw new PublishError();
|
|
284
265
|
}
|
|
285
|
-
//
|
|
266
|
+
// Fork
|
|
286
267
|
spin.start('Setting up fork…');
|
|
287
268
|
try {
|
|
288
269
|
await ensureFork(token, user);
|
|
289
270
|
spin.stop('Fork ready ✓');
|
|
290
271
|
}
|
|
291
|
-
catch
|
|
272
|
+
catch {
|
|
292
273
|
spin.stop('Fork failed');
|
|
293
|
-
|
|
294
|
-
log.error(message);
|
|
295
|
-
outro('Publish cancelled');
|
|
296
|
-
process.exit(1);
|
|
274
|
+
throw new PublishError();
|
|
297
275
|
}
|
|
298
|
-
//
|
|
299
|
-
const branchName = `
|
|
276
|
+
// Create branch
|
|
277
|
+
const branchName = `add-${skillName.replace(/[^a-z0-9-]/gi, '-').toLowerCase()}`;
|
|
300
278
|
spin.start(`Creating branch ${chalk.cyan(branchName)}…`);
|
|
301
279
|
try {
|
|
302
280
|
const branchRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/git/refs`, token, {
|
|
303
281
|
method: 'POST',
|
|
304
|
-
body: JSON.stringify({
|
|
305
|
-
ref: `refs/heads/${branchName}`,
|
|
306
|
-
sha: baseSha,
|
|
307
|
-
}),
|
|
282
|
+
body: JSON.stringify({ ref: `refs/heads/${branchName}`, sha: baseSha }),
|
|
308
283
|
});
|
|
309
284
|
if (branchRes.status === 422) {
|
|
310
|
-
log.info(`Branch
|
|
285
|
+
log.info(`Branch already exists — updating`);
|
|
311
286
|
}
|
|
312
287
|
else if (!branchRes.ok) {
|
|
313
|
-
throw new Error(`
|
|
288
|
+
throw new Error(`HTTP ${branchRes.status}`);
|
|
314
289
|
}
|
|
315
290
|
spin.stop('Branch ready ✓');
|
|
316
291
|
}
|
|
317
|
-
catch
|
|
292
|
+
catch {
|
|
318
293
|
spin.stop('Branch creation failed');
|
|
319
|
-
|
|
320
|
-
log.error(message);
|
|
321
|
-
outro('Publish cancelled');
|
|
322
|
-
process.exit(1);
|
|
323
|
-
}
|
|
324
|
-
// Step 7: Upload files
|
|
325
|
-
const skillDirName = skill.name.replace(/[^a-zA-Z0-9_-]/g, '-').toLowerCase();
|
|
326
|
-
const skillRepoPath = `skills/${skillDirName}/SKILL.md`;
|
|
327
|
-
spin.start('Uploading SKILL.md…');
|
|
328
|
-
try {
|
|
329
|
-
await upsertFile(token, user, branchName, skillRepoPath, rawContent, `Add ${skill.name} v${frontmatter.version || '1.0.0'} skill`);
|
|
330
|
-
spin.stop('SKILL.md uploaded ✓');
|
|
331
|
-
}
|
|
332
|
-
catch (err) {
|
|
333
|
-
spin.stop('Upload failed');
|
|
334
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
335
|
-
log.error(message);
|
|
336
|
-
outro('Publish cancelled');
|
|
337
|
-
process.exit(1);
|
|
294
|
+
throw new PublishError();
|
|
338
295
|
}
|
|
339
|
-
//
|
|
340
|
-
const extraDirNames = ['scripts', 'assets', 'references'];
|
|
341
|
-
for (const dirName of extraDirNames) {
|
|
342
|
-
const dirPath = join(skillDirPath, dirName);
|
|
343
|
-
if (existsSync(dirPath) && statSync(dirPath).isDirectory()) {
|
|
344
|
-
spin.start(`Uploading ${dirName}/…`);
|
|
345
|
-
try {
|
|
346
|
-
const entries = readdirSync(dirPath);
|
|
347
|
-
for (const entry of entries) {
|
|
348
|
-
const entryPath = join(dirPath, entry);
|
|
349
|
-
if (statSync(entryPath).isFile()) {
|
|
350
|
-
const content = readFileSync(entryPath, 'utf-8');
|
|
351
|
-
const repoEntryPath = `skills/${skillDirName}/${dirName}/${entry}`;
|
|
352
|
-
await upsertFile(token, user, branchName, repoEntryPath, content, `Add ${dirName}/${entry}`);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
spin.stop(`${dirName}/ uploaded ✓`);
|
|
356
|
-
}
|
|
357
|
-
catch (err) {
|
|
358
|
-
spin.stop(`${dirName}/ upload issue`);
|
|
359
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
360
|
-
log.warn(`Failed to upload ${dirName}/: ${message}`);
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
// Step 8: Update registry.json
|
|
296
|
+
// Fetch current registry.json and update
|
|
365
297
|
spin.start('Updating registry index…');
|
|
366
298
|
try {
|
|
367
|
-
|
|
368
|
-
const currentRegRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/registry.json?ref=${branchName}`, token);
|
|
299
|
+
const regRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/registry.json?ref=${branchName}`, token);
|
|
369
300
|
let registry;
|
|
370
|
-
if (
|
|
371
|
-
const
|
|
372
|
-
|
|
373
|
-
registry = JSON.parse(decoded);
|
|
301
|
+
if (regRes.ok) {
|
|
302
|
+
const d = await regRes.json();
|
|
303
|
+
registry = JSON.parse(Buffer.from(d.content, 'base64').toString('utf-8'));
|
|
374
304
|
}
|
|
375
305
|
else {
|
|
376
|
-
// Fallback: fetch from upstream
|
|
377
306
|
const upRes = await ghFetch(`https://raw.githubusercontent.com/${REGISTRY_FULL}/main/registry.json`, token, { headers: { 'User-Agent': 'transskill-cli' } });
|
|
378
|
-
if (!upRes.ok)
|
|
379
|
-
throw new Error('Failed to fetch registry.json');
|
|
380
307
|
registry = await upRes.json();
|
|
381
308
|
}
|
|
382
|
-
//
|
|
383
|
-
const existingIdx = registry.skills.findIndex((s) => s.name ===
|
|
384
|
-
const
|
|
385
|
-
name:
|
|
386
|
-
version
|
|
387
|
-
description:
|
|
309
|
+
// Add or update entry
|
|
310
|
+
const existingIdx = registry.skills.findIndex((s) => s.name === skillName);
|
|
311
|
+
const newEntry = {
|
|
312
|
+
name: skillName,
|
|
313
|
+
version,
|
|
314
|
+
description: frontmatter.description,
|
|
388
315
|
tags: frontmatter.tags || [],
|
|
389
316
|
author: user,
|
|
390
317
|
stars: existingIdx >= 0 ? registry.skills[existingIdx].stars : 0,
|
|
@@ -392,73 +319,63 @@ export async function publishSkill(skillPath, options) {
|
|
|
392
319
|
created: existingIdx >= 0
|
|
393
320
|
? registry.skills[existingIdx].created
|
|
394
321
|
: new Date().toISOString(),
|
|
322
|
+
sourceUrl,
|
|
323
|
+
downloadUrl,
|
|
324
|
+
source: 'manual',
|
|
395
325
|
};
|
|
396
326
|
if (existingIdx >= 0) {
|
|
397
|
-
registry.skills[existingIdx] = { ...registry.skills[existingIdx], ...
|
|
327
|
+
registry.skills[existingIdx] = { ...registry.skills[existingIdx], ...newEntry };
|
|
398
328
|
}
|
|
399
329
|
else {
|
|
400
|
-
registry.skills.push(
|
|
330
|
+
registry.skills.push(newEntry);
|
|
401
331
|
}
|
|
402
332
|
registry.updated = new Date().toISOString();
|
|
403
|
-
|
|
404
|
-
await upsertFile(token, user, branchName, 'registry.json', registryJson, `Update registry index: add ${skill.name}`);
|
|
333
|
+
await upsertFile(token, user, branchName, 'registry.json', JSON.stringify(registry, null, 2), `Add ${skillName} v${version} to registry index`);
|
|
405
334
|
spin.stop('Registry index updated ✓');
|
|
406
335
|
}
|
|
407
336
|
catch (err) {
|
|
408
|
-
spin.stop('
|
|
337
|
+
spin.stop('Update failed');
|
|
409
338
|
const message = err instanceof Error ? err.message : String(err);
|
|
410
339
|
log.error(message);
|
|
411
|
-
|
|
412
|
-
process.exit(1);
|
|
340
|
+
throw new PublishError();
|
|
413
341
|
}
|
|
414
|
-
//
|
|
342
|
+
// Create PR
|
|
415
343
|
spin.start('Creating pull request…');
|
|
416
344
|
try {
|
|
417
345
|
const prBody = [
|
|
418
|
-
`## 📦 ${
|
|
346
|
+
`## 📦 ${skillName} v${version}`,
|
|
419
347
|
'',
|
|
420
|
-
`${
|
|
348
|
+
`${frontmatter.description}`,
|
|
421
349
|
'',
|
|
422
350
|
'---',
|
|
423
351
|
'',
|
|
352
|
+
'### Links',
|
|
353
|
+
'',
|
|
354
|
+
`- **Source:** ${sourceUrl}`,
|
|
355
|
+
`- **Download:** ${downloadUrl}`,
|
|
356
|
+
'',
|
|
424
357
|
'### Audit Report',
|
|
425
358
|
'',
|
|
426
|
-
`- **
|
|
359
|
+
`- **Score:** ${score}/100`,
|
|
427
360
|
`- **Author:** ${user}`,
|
|
428
|
-
...(Array.isArray(frontmatter.tags)
|
|
429
|
-
? [`- **Tags:** ${frontmatter.tags.join(', ')}`]
|
|
430
|
-
: []),
|
|
431
|
-
'',
|
|
432
|
-
'---',
|
|
433
361
|
'',
|
|
434
362
|
'> Published by [TransSkill CLI](https://github.com/ljk-777/transskill)',
|
|
435
363
|
].join('\n');
|
|
436
|
-
const prUrl = await createPR(token, user, branchName, `Add
|
|
364
|
+
const prUrl = await createPR(token, user, branchName, `Add ${skillName} v${version} to registry index`, prBody);
|
|
437
365
|
spin.stop('Pull request created ✓');
|
|
438
366
|
console.log('');
|
|
439
367
|
console.log(` ${chalk.green('→')} ${prUrl}`);
|
|
440
368
|
console.log('');
|
|
441
|
-
outro(`${chalk.bold(
|
|
369
|
+
outro(`${chalk.bold(skillName)} linked in registry! 🎉`);
|
|
442
370
|
}
|
|
443
|
-
catch
|
|
371
|
+
catch {
|
|
444
372
|
spin.stop('PR creation failed');
|
|
445
|
-
|
|
446
|
-
log.error(message);
|
|
447
|
-
outro('Publish failed — files were pushed to the branch but PR could not be created.');
|
|
448
|
-
process.exit(1);
|
|
373
|
+
throw new PublishError();
|
|
449
374
|
}
|
|
450
375
|
}
|
|
451
|
-
/**
|
|
452
|
-
* Calculate audit score from report severity counts.
|
|
453
|
-
*/
|
|
454
376
|
function calculateScore(report) {
|
|
455
377
|
const c = report.severityCounts;
|
|
456
|
-
|
|
457
|
-
score -= c.critical * 30; // -30 each
|
|
458
|
-
score -= c.high * 15; // -15 each
|
|
459
|
-
score -= c.medium * 5; // -5 each
|
|
460
|
-
score -= c.low * 2; // -2 each
|
|
461
|
-
return Math.max(0, score);
|
|
378
|
+
return Math.max(0, 100 - c.critical * 30 - c.high * 15 - c.medium * 5 - c.low * 2);
|
|
462
379
|
}
|
|
463
380
|
function formatScore(score) {
|
|
464
381
|
if (score >= 90)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/marketplace/publish.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/marketplace/publish.ts"],"names":[],"mappings":"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"}
|