yeknal 1.1.6 → 1.1.7

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 (2) hide show
  1. package/bin/yeknal.js +13 -2
  2. package/package.json +1 -1
package/bin/yeknal.js CHANGED
@@ -267,7 +267,11 @@ async function discoverLocalSkillFolders(sourceRoot) {
267
267
  }
268
268
 
269
269
  async function downloadSkillsFromGit(tempRoot, skillFolders, repoTree) {
270
- for (const folder of skillFolders) {
270
+ const total = skillFolders.length;
271
+ for (let i = 0; i < skillFolders.length; i++) {
272
+ const folder = skillFolders[i];
273
+ process.stdout.write(`\r Downloading skills... (${i + 1}/${total}) ${folder.padEnd(32)}`);
274
+
271
275
  const localFolder = path.join(tempRoot, folder);
272
276
  const folderFiles = listFilesForFolder(repoTree, folder);
273
277
 
@@ -278,6 +282,7 @@ async function downloadSkillsFromGit(tempRoot, skillFolders, repoTree) {
278
282
  await downloadUrlToFile(buildRawFileUrl(repoPath), destinationPath);
279
283
  }
280
284
  }
285
+ process.stdout.write(`\r Downloaded ${total} skill folder(s).${" ".repeat(32)}\n`);
281
286
  }
282
287
 
283
288
  async function stageSkillsFromGitClone(tempRoot) {
@@ -376,12 +381,16 @@ async function runSkillsCommand() {
376
381
  let sourceLabel = "GitHub API + raw file download";
377
382
 
378
383
  try {
384
+ process.stdout.write(" Fetching repository file list from GitHub API...");
379
385
  const repoTree = await fetchRepoTree();
386
+ process.stdout.write(" done.\n");
387
+
380
388
  skillFolders = discoverSkillFolders(repoTree);
381
389
  if (skillFolders.length === 0) {
382
390
  throw new Error("No skill folders were discovered from the GitHub repository.");
383
391
  }
384
392
 
393
+ console.log(` Found ${skillFolders.length} skill folder(s). Starting download...\n`);
385
394
  await downloadSkillsFromGit(tempRoot, skillFolders, repoTree);
386
395
  } catch (error) {
387
396
  const message = error && error.message ? error.message : String(error);
@@ -389,8 +398,10 @@ async function runSkillsCommand() {
389
398
  throw error;
390
399
  }
391
400
 
392
- console.log("\nGitHub API rate-limited. Falling back to git clone source download...");
401
+ console.log("\n GitHub API rate-limited. Falling back to git clone...");
402
+ console.log(" Cloning repository (this may take a moment)...");
393
403
  skillFolders = await stageSkillsFromGitClone(tempRoot);
404
+ console.log(` Clone complete. Found ${skillFolders.length} skill folder(s).`);
394
405
  sourceLabel = "git clone fallback";
395
406
  }
396
407
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yeknal",
3
- "version": "1.1.6",
3
+ "version": "1.1.7",
4
4
  "description": "CLI to fetch markdown templates and sync AI agent skills",
5
5
  "main": "bin/yeknal.js",
6
6
  "bin": {