clawdhub 0.0.1 → 0.0.3

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.
Files changed (50) hide show
  1. package/dist/cli/commands/auth.js +1 -1
  2. package/dist/cli/commands/auth.js.map +1 -1
  3. package/dist/cli/commands/delete.d.ts +11 -0
  4. package/dist/cli/commands/delete.js +65 -0
  5. package/dist/cli/commands/delete.js.map +1 -0
  6. package/dist/cli/commands/delete.test.d.ts +1 -0
  7. package/dist/cli/commands/delete.test.js +51 -0
  8. package/dist/cli/commands/delete.test.js.map +1 -0
  9. package/dist/cli/commands/publish.js +1 -5
  10. package/dist/cli/commands/publish.js.map +1 -1
  11. package/dist/cli/commands/publish.test.js +22 -4
  12. package/dist/cli/commands/publish.test.js.map +1 -1
  13. package/dist/cli/commands/skills.js +1 -1
  14. package/dist/cli/commands/skills.js.map +1 -1
  15. package/dist/cli/commands/sync.d.ts +1 -0
  16. package/dist/cli/commands/sync.js +268 -107
  17. package/dist/cli/commands/sync.js.map +1 -1
  18. package/dist/cli/commands/sync.test.js +125 -21
  19. package/dist/cli/commands/sync.test.js.map +1 -1
  20. package/dist/cli.js +26 -1
  21. package/dist/cli.js.map +1 -1
  22. package/dist/config.d.ts +1 -1
  23. package/dist/config.js +1 -1
  24. package/dist/config.js.map +1 -1
  25. package/dist/discovery.js +1 -1
  26. package/dist/discovery.js.map +1 -1
  27. package/dist/http.d.ts +1 -1
  28. package/dist/http.js +1 -1
  29. package/dist/http.js.map +1 -1
  30. package/dist/http.test.js +1 -1
  31. package/dist/http.test.js.map +1 -1
  32. package/dist/schema/ark.d.ts +4 -0
  33. package/dist/schema/ark.js +26 -0
  34. package/dist/schema/ark.js.map +1 -0
  35. package/dist/schema/index.d.ts +5 -0
  36. package/dist/schema/index.js +5 -0
  37. package/dist/schema/index.js.map +1 -0
  38. package/dist/schema/routes.d.ts +11 -0
  39. package/dist/schema/routes.js +12 -0
  40. package/dist/schema/routes.js.map +1 -0
  41. package/dist/schema/schemas.d.ts +137 -0
  42. package/dist/schema/schemas.js +105 -0
  43. package/dist/schema/schemas.js.map +1 -0
  44. package/dist/schema/textFiles.d.ts +5 -0
  45. package/dist/schema/textFiles.js +66 -0
  46. package/dist/schema/textFiles.js.map +1 -0
  47. package/dist/skills.d.ts +1 -1
  48. package/dist/skills.js +1 -1
  49. package/dist/skills.js.map +1 -1
  50. package/package.json +2 -2
@@ -1,10 +1,11 @@
1
+ import { realpath } from 'node:fs/promises';
1
2
  import { homedir } from 'node:os';
2
3
  import { resolve } from 'node:path';
3
4
  import { intro, isCancel, multiselect, note, outro, text } from '@clack/prompts';
4
- import { ApiCliWhoamiResponseSchema, ApiRoutes, ApiSkillMetaResponseSchema, ApiSkillResolveResponseSchema, } from 'clawdhub-schema';
5
5
  import semver from 'semver';
6
6
  import { readGlobalConfig } from '../../config.js';
7
7
  import { apiRequest, downloadZip } from '../../http.js';
8
+ import { ApiCliWhoamiResponseSchema, ApiRoutes, ApiSkillMetaResponseSchema, ApiSkillResolveResponseSchema, } from '../../schema/index.js';
8
9
  import { hashSkillFiles, hashSkillZip, listTextFiles } from '../../skills.js';
9
10
  import { getRegistry } from '../registry.js';
10
11
  import { findSkillFolders, getFallbackSkillRoots } from '../scanSkills.js';
@@ -19,6 +20,7 @@ export async function cmdSync(opts, options, inputAllowed) {
19
20
  fail('Not logged in. Run: clawdhub login');
20
21
  const registry = await getRegistryWithAuth(opts, token);
21
22
  const selectedRoots = buildScanRoots(opts, options.root);
23
+ const concurrency = normalizeConcurrency(options.concurrency);
22
24
  const spinner = createSpinner('Scanning for local skills');
23
25
  let scan = await scanRoots(selectedRoots);
24
26
  if (scan.skills.length === 0) {
@@ -27,78 +29,55 @@ export async function cmdSync(opts, options, inputAllowed) {
27
29
  spinner.stop();
28
30
  if (scan.skills.length === 0)
29
31
  fail('No skills found (checked workdir and known Clawdis/Clawd locations)');
30
- note(`No skills in workdir. Found ${scan.skills.length} in legacy locations.`, formatList(scan.rootsWithSkills, 10));
32
+ note(`No skills in workdir. Found ${scan.skills.length} in fallback locations.`, wrapNoteBody(formatList(scan.rootsWithSkills, 10)));
31
33
  }
32
34
  else {
33
35
  spinner.stop();
34
36
  }
35
- let skills = scan.skills;
36
- skills = await maybeSelectLocalSkills(skills, {
37
- allowPrompt,
38
- all: Boolean(options.all),
39
- });
40
- if (skills.length === 0) {
41
- outro('Nothing selected.');
42
- return;
37
+ const deduped = dedupeSkillsBySlug(scan.skills);
38
+ const skills = deduped.skills;
39
+ if (deduped.duplicates.length > 0) {
40
+ note('Skipped duplicate slugs', wrapNoteBody(formatCommaList(deduped.duplicates, 16)));
43
41
  }
44
- const candidatesSpinner = createSpinner('Checking registry sync state');
45
- const candidates = [];
46
- let supportsResolve = null;
42
+ const parsingSpinner = createSpinner('Parsing local skills');
43
+ const locals = [];
47
44
  try {
48
- for (const skill of skills) {
45
+ let done = 0;
46
+ const parsed = await mapWithConcurrency(skills, Math.min(concurrency, 12), async (skill) => {
49
47
  const filesOnDisk = await listTextFiles(skill.folder);
50
48
  const hashed = hashSkillFiles(filesOnDisk);
51
- const fingerprint = hashed.fingerprint;
52
- const meta = await apiRequest(registry, { method: 'GET', path: `${ApiRoutes.skill}?slug=${encodeURIComponent(skill.slug)}` }, ApiSkillMetaResponseSchema).catch(() => null);
53
- const latestVersion = meta?.latestVersion?.version ?? null;
54
- if (!latestVersion) {
55
- candidates.push({
56
- ...skill,
57
- fingerprint,
58
- fileCount: filesOnDisk.length,
59
- status: 'new',
60
- matchVersion: null,
61
- latestVersion: null,
62
- });
63
- continue;
64
- }
65
- let matchVersion = null;
66
- if (supportsResolve !== false) {
67
- try {
68
- const resolved = await apiRequest(registry, {
69
- method: 'GET',
70
- path: `${ApiRoutes.skillResolve}?slug=${encodeURIComponent(skill.slug)}&hash=${encodeURIComponent(fingerprint)}`,
71
- }, ApiSkillResolveResponseSchema);
72
- supportsResolve = true;
73
- matchVersion = resolved.match?.version ?? null;
74
- }
75
- catch (error) {
76
- const message = formatError(error);
77
- if (/skill not found/i.test(message)) {
78
- matchVersion = null;
79
- }
80
- else if (/no matching routes found/i.test(message) || /not found/i.test(message)) {
81
- supportsResolve = false;
82
- }
83
- else {
84
- throw error;
85
- }
86
- }
87
- }
88
- if (supportsResolve === false) {
89
- const zip = await downloadZip(registry, { slug: skill.slug, version: latestVersion });
90
- const remote = hashSkillZip(zip).fingerprint;
91
- matchVersion = remote === fingerprint ? latestVersion : null;
92
- }
93
- candidates.push({
49
+ done += 1;
50
+ parsingSpinner.text = `Parsing local skills ${done}/${skills.length}`;
51
+ return {
94
52
  ...skill,
95
- fingerprint,
53
+ fingerprint: hashed.fingerprint,
96
54
  fileCount: filesOnDisk.length,
97
- status: matchVersion ? 'synced' : 'update',
98
- matchVersion,
99
- latestVersion,
100
- });
101
- }
55
+ };
56
+ });
57
+ locals.push(...parsed);
58
+ }
59
+ catch (error) {
60
+ parsingSpinner.fail(formatError(error));
61
+ throw error;
62
+ }
63
+ finally {
64
+ parsingSpinner.stop();
65
+ }
66
+ const candidatesSpinner = createSpinner('Checking registry sync state');
67
+ const candidates = [];
68
+ const resolveSupport = { value: null };
69
+ try {
70
+ let done = 0;
71
+ const resolved = await mapWithConcurrency(locals, Math.min(concurrency, 16), async (skill) => {
72
+ try {
73
+ return await checkRegistrySyncState(registry, skill, resolveSupport);
74
+ }
75
+ finally {
76
+ done += 1;
77
+ candidatesSpinner.text = `Checking registry sync state ${done}/${locals.length}`;
78
+ }
79
+ });
80
+ candidates.push(...resolved);
102
81
  }
103
82
  catch (error) {
104
83
  candidatesSpinner.fail(formatError(error));
@@ -108,21 +87,23 @@ export async function cmdSync(opts, options, inputAllowed) {
108
87
  candidatesSpinner.stop();
109
88
  }
110
89
  const synced = candidates.filter((candidate) => candidate.status === 'synced');
111
- if (synced.length > 0) {
112
- const lines = synced
113
- .map((candidate) => `${candidate.slug} synced (${candidate.matchVersion ?? 'unknown'})`)
114
- .join('\n');
115
- note('Already synced', lines);
116
- }
117
90
  const actionable = candidates.filter((candidate) => candidate.status !== 'synced');
91
+ const bump = options.bump ?? 'patch';
118
92
  if (actionable.length === 0) {
119
- outro('Everything is already synced.');
93
+ if (synced.length > 0) {
94
+ note('Already synced', wrapNoteBody(formatCommaList(synced.map(formatSyncedSummary), 16)));
95
+ }
96
+ outro('Nothing to sync.');
120
97
  return;
121
98
  }
99
+ note('To sync', wrapNoteBody(formatBulletList(actionable.map((candidate) => formatActionableLine(candidate, bump)), 20)));
100
+ if (synced.length > 0) {
101
+ note('Already synced', wrapNoteBody(formatSyncedDisplay(synced)));
102
+ }
122
103
  const selected = await selectToUpload(actionable, {
123
104
  allowPrompt,
124
105
  all: Boolean(options.all),
125
- bump: options.bump ?? 'patch',
106
+ bump,
126
107
  });
127
108
  if (selected.length === 0) {
128
109
  outro('Nothing selected.');
@@ -132,7 +113,6 @@ export async function cmdSync(opts, options, inputAllowed) {
132
113
  outro(`Dry run: would upload ${selected.length} skill(s).`);
133
114
  return;
134
115
  }
135
- const bump = options.bump ?? 'patch';
136
116
  const tags = options.tags ?? 'latest';
137
117
  for (const skill of selected) {
138
118
  const { publishVersion, changelog } = await resolvePublishMeta(skill, {
@@ -154,10 +134,96 @@ function buildScanRoots(opts, extraRoots) {
154
134
  const roots = [opts.workdir, opts.dir, ...(extraRoots ?? [])];
155
135
  return Array.from(new Set(roots.map((root) => resolve(root))));
156
136
  }
137
+ function normalizeConcurrency(value) {
138
+ const raw = typeof value === 'number' ? value : 4;
139
+ const rounded = Number.isFinite(raw) ? Math.round(raw) : 4;
140
+ return Math.min(32, Math.max(1, rounded));
141
+ }
142
+ async function mapWithConcurrency(items, limit, fn) {
143
+ const results = Array.from({ length: items.length });
144
+ let nextIndex = 0;
145
+ const workerCount = Math.min(Math.max(1, limit), items.length || 1);
146
+ async function worker() {
147
+ while (true) {
148
+ const index = nextIndex;
149
+ nextIndex += 1;
150
+ if (index >= items.length)
151
+ return;
152
+ results[index] = await fn(items[index]);
153
+ }
154
+ }
155
+ await Promise.all(Array.from({ length: workerCount }, () => worker()));
156
+ return results;
157
+ }
158
+ async function checkRegistrySyncState(registry, skill, resolveSupport) {
159
+ if (resolveSupport.value !== false) {
160
+ try {
161
+ const resolved = await apiRequest(registry, {
162
+ method: 'GET',
163
+ path: `${ApiRoutes.skillResolve}?slug=${encodeURIComponent(skill.slug)}&hash=${encodeURIComponent(skill.fingerprint)}`,
164
+ }, ApiSkillResolveResponseSchema);
165
+ resolveSupport.value = true;
166
+ const latestVersion = resolved.latestVersion?.version ?? null;
167
+ const matchVersion = resolved.match?.version ?? null;
168
+ if (!latestVersion) {
169
+ return {
170
+ ...skill,
171
+ status: 'new',
172
+ matchVersion: null,
173
+ latestVersion: null,
174
+ };
175
+ }
176
+ return {
177
+ ...skill,
178
+ status: matchVersion ? 'synced' : 'update',
179
+ matchVersion,
180
+ latestVersion,
181
+ };
182
+ }
183
+ catch (error) {
184
+ const message = formatError(error);
185
+ if (/skill not found/i.test(message) || /HTTP 404/i.test(message)) {
186
+ resolveSupport.value = true;
187
+ return {
188
+ ...skill,
189
+ status: 'new',
190
+ matchVersion: null,
191
+ latestVersion: null,
192
+ };
193
+ }
194
+ if (/no matching routes found/i.test(message)) {
195
+ resolveSupport.value = false;
196
+ }
197
+ else {
198
+ throw error;
199
+ }
200
+ }
201
+ }
202
+ const meta = await apiRequest(registry, { method: 'GET', path: `${ApiRoutes.skill}?slug=${encodeURIComponent(skill.slug)}` }, ApiSkillMetaResponseSchema).catch(() => null);
203
+ const latestVersion = meta?.latestVersion?.version ?? null;
204
+ if (!latestVersion) {
205
+ return {
206
+ ...skill,
207
+ status: 'new',
208
+ matchVersion: null,
209
+ latestVersion: null,
210
+ };
211
+ }
212
+ const zip = await downloadZip(registry, { slug: skill.slug, version: latestVersion });
213
+ const remote = hashSkillZip(zip).fingerprint;
214
+ const matchVersion = remote === skill.fingerprint ? latestVersion : null;
215
+ return {
216
+ ...skill,
217
+ status: matchVersion ? 'synced' : 'update',
218
+ matchVersion,
219
+ latestVersion,
220
+ };
221
+ }
157
222
  async function scanRoots(roots) {
158
223
  const all = [];
159
224
  const rootsWithSkills = [];
160
- for (const root of roots) {
225
+ const uniqueRoots = await dedupeRoots(roots);
226
+ for (const root of uniqueRoots) {
161
227
  const found = await findSkillFolders(root);
162
228
  if (found.length > 0)
163
229
  rootsWithSkills.push(root);
@@ -169,30 +235,19 @@ async function scanRoots(roots) {
169
235
  }
170
236
  return { skills: Array.from(byFolder.values()), rootsWithSkills };
171
237
  }
172
- async function maybeSelectLocalSkills(skills, params) {
173
- if (params.all || !params.allowPrompt)
174
- return skills;
175
- if (skills.length <= 30)
176
- return skills;
177
- const valueByKey = new Map();
178
- const choices = skills.map((skill) => {
179
- const key = skill.folder;
180
- valueByKey.set(key, skill);
181
- return {
182
- value: key,
183
- label: skill.slug,
184
- hint: abbreviatePath(skill.folder),
185
- };
186
- });
187
- const picked = await multiselect({
188
- message: `Found ${skills.length} local skills — select what to sync`,
189
- options: choices,
190
- initialValues: [],
191
- required: false,
192
- });
193
- if (isCancel(picked))
194
- fail('Canceled');
195
- return picked.map((key) => valueByKey.get(String(key))).filter(Boolean);
238
+ async function dedupeRoots(roots) {
239
+ const seen = new Set();
240
+ const unique = [];
241
+ for (const root of roots) {
242
+ const resolved = resolve(root);
243
+ const canonical = await realpath(resolved).catch(() => null);
244
+ const key = canonical ?? resolved;
245
+ if (seen.has(key))
246
+ continue;
247
+ seen.add(key);
248
+ unique.push(key);
249
+ }
250
+ return unique;
196
251
  }
197
252
  async function selectToUpload(candidates, params) {
198
253
  if (params.all || !params.allowPrompt)
@@ -201,19 +256,16 @@ async function selectToUpload(candidates, params) {
201
256
  const choices = candidates.map((candidate) => {
202
257
  const key = candidate.folder;
203
258
  valueByKey.set(key, candidate);
204
- const latest = candidate.latestVersion;
205
- const next = latest ? semver.inc(latest, params.bump) : null;
206
- const status = candidate.status === 'new' ? 'NEW' : latest && next ? `UPDATE ${latest} → ${next}` : 'UPDATE';
207
259
  return {
208
260
  value: key,
209
- label: `${candidate.slug} ${status}`,
210
- hint: candidate.folder,
261
+ label: `${candidate.slug} ${formatActionableStatus(candidate, params.bump)}`,
262
+ hint: `${abbreviatePath(candidate.folder)} | ${candidate.fileCount} files`,
211
263
  };
212
264
  });
213
265
  const picked = await multiselect({
214
266
  message: 'Select skills to upload',
215
267
  options: choices,
216
- initialValues: candidates.length <= 10 ? choices.map((choice) => choice.value) : [],
268
+ initialValues: choices.map((choice) => choice.value),
217
269
  required: false,
218
270
  });
219
271
  if (isCancel(picked))
@@ -238,15 +290,13 @@ async function resolvePublishMeta(skill, params) {
238
290
  return { publishVersion, changelog: 'Sync update' };
239
291
  }
240
292
  const entered = await text({
241
- message: `Changelog for ${skill.slug}@${publishVersion}`,
293
+ message: `Changelog (optional) for ${skill.slug}@${publishVersion}`,
242
294
  placeholder: 'What changed?',
243
- defaultValue: 'Sync update',
295
+ defaultValue: '',
244
296
  });
245
297
  if (isCancel(entered))
246
298
  fail('Canceled');
247
299
  const changelog = String(entered ?? '').trim();
248
- if (!changelog)
249
- fail('--changelog required for updates');
250
300
  return { publishVersion, changelog };
251
301
  }
252
302
  async function getRegistryWithAuth(opts, token) {
@@ -270,4 +320,115 @@ function abbreviatePath(value) {
270
320
  return `~${value.slice(home.length)}`;
271
321
  return value;
272
322
  }
323
+ function dedupeSkillsBySlug(skills) {
324
+ const bySlug = new Map();
325
+ for (const skill of skills) {
326
+ const existing = bySlug.get(skill.slug);
327
+ if (existing)
328
+ existing.push(skill);
329
+ else
330
+ bySlug.set(skill.slug, [skill]);
331
+ }
332
+ const unique = [];
333
+ const duplicates = [];
334
+ for (const [slug, entries] of bySlug.entries()) {
335
+ unique.push(entries[0]);
336
+ if (entries.length > 1)
337
+ duplicates.push(`${slug} (${entries.length})`);
338
+ }
339
+ return { skills: unique, duplicates };
340
+ }
341
+ function formatActionableStatus(candidate, bump) {
342
+ if (candidate.status === 'new')
343
+ return 'NEW';
344
+ const latest = candidate.latestVersion;
345
+ const next = latest ? semver.inc(latest, bump) : null;
346
+ if (latest && next)
347
+ return `UPDATE ${latest} → ${next}`;
348
+ return 'UPDATE';
349
+ }
350
+ function formatActionableLine(candidate, bump) {
351
+ return `${candidate.slug} ${formatActionableStatus(candidate, bump)} (${candidate.fileCount} files)`;
352
+ }
353
+ function formatSyncedLine(candidate) {
354
+ const version = candidate.matchVersion ?? candidate.latestVersion ?? 'unknown';
355
+ return `${candidate.slug} synced (${version})`;
356
+ }
357
+ function formatSyncedSummary(candidate) {
358
+ const version = candidate.matchVersion ?? candidate.latestVersion;
359
+ return version ? `${candidate.slug}@${version}` : candidate.slug;
360
+ }
361
+ function formatBulletList(lines, max) {
362
+ if (lines.length <= max)
363
+ return lines.map((line) => `- ${line}`).join('\n');
364
+ const head = lines.slice(0, max);
365
+ const rest = lines.length - head.length;
366
+ return [...head, `... +${rest} more`].map((line) => `- ${line}`).join('\n');
367
+ }
368
+ function formatSyncedDisplay(synced) {
369
+ const lines = synced.map(formatSyncedLine);
370
+ if (lines.length <= 12)
371
+ return formatBulletList(lines, 12);
372
+ return formatCommaList(synced.map(formatSyncedSummary), 24);
373
+ }
374
+ function wrapNoteBody(text) {
375
+ const width = noteWrapWidth();
376
+ return text
377
+ .split('\n')
378
+ .map((line) => wrapLine(line, width))
379
+ .join('\n');
380
+ }
381
+ function noteWrapWidth() {
382
+ const columns = process.stdout.columns ?? 80;
383
+ return Math.min(80, Math.max(20, columns - 4));
384
+ }
385
+ function wrapLine(line, width) {
386
+ if (line.length <= width)
387
+ return line;
388
+ if (line.startsWith('- ')) {
389
+ return wrapWords(line.slice(2), width - 2, '- ', ' ');
390
+ }
391
+ return wrapWords(line, width, '', '');
392
+ }
393
+ function wrapWords(text, width, firstPrefix, nextPrefix) {
394
+ const words = text.trim().split(/\s+/).filter(Boolean);
395
+ if (words.length === 0)
396
+ return firstPrefix.trimEnd();
397
+ const lines = [];
398
+ let current = '';
399
+ for (const word of words) {
400
+ if (word.length > width) {
401
+ if (current) {
402
+ lines.push(current);
403
+ current = '';
404
+ }
405
+ for (let i = 0; i < word.length; i += width) {
406
+ lines.push(word.slice(i, i + width));
407
+ }
408
+ continue;
409
+ }
410
+ if (!current) {
411
+ current = word;
412
+ continue;
413
+ }
414
+ if (current.length + 1 + word.length <= width) {
415
+ current = `${current} ${word}`;
416
+ continue;
417
+ }
418
+ lines.push(current);
419
+ current = word;
420
+ }
421
+ if (current)
422
+ lines.push(current);
423
+ return lines.map((line, index) => `${index === 0 ? firstPrefix : nextPrefix}${line}`).join('\n');
424
+ }
425
+ function formatCommaList(values, max) {
426
+ if (values.length === 0)
427
+ return '';
428
+ if (values.length <= max)
429
+ return values.join(', ');
430
+ const head = values.slice(0, Math.max(1, max - 1));
431
+ const rest = values.length - head.length;
432
+ return `${head.join(', ')}, ... +${rest} more`;
433
+ }
273
434
  //# sourceMappingURL=sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/cli/commands/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/cli/commands/sync.ts"],"names":[],"mappings":"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"}