codesyncer 3.3.0 → 3.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/README.ko.md CHANGED
@@ -125,6 +125,7 @@ codesyncer update # 템플릿 업데이트
125
125
  codesyncer validate # 설정 검증
126
126
  codesyncer watch # 실시간 모니터링
127
127
  codesyncer add-repo # 워크스페이스에 레포 추가
128
+ codesyncer skills # skills.sh 리더보드 보기
128
129
  ```
129
130
 
130
131
  ---
package/README.md CHANGED
@@ -125,6 +125,7 @@ codesyncer update # Update templates
125
125
  codesyncer validate # Check setup
126
126
  codesyncer watch # Real-time monitoring
127
127
  codesyncer add-repo # Add repo to workspace
128
+ codesyncer skills # Browse skills.sh leaderboard
128
129
  ```
129
130
 
130
131
  ---
@@ -0,0 +1,15 @@
1
+ /**
2
+ * CodeSyncer Skills Command
3
+ *
4
+ * Integration with skills.sh for skill discovery and installation.
5
+ *
6
+ * @codesyncer-context skills.sh API: https://skills.sh/api/skills
7
+ * @codesyncer-decision [2026-01-23] skills.sh 연동으로 생태계 확장
8
+ */
9
+ export interface SkillsOptions {
10
+ }
11
+ /**
12
+ * Main skills command
13
+ */
14
+ export declare function skillsCommand(subcommand?: string, skillName?: string): Promise<void>;
15
+ //# sourceMappingURL=skills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6JH,MAAM,WAAW,aAAa;CAE7B;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE1F"}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ /**
3
+ * CodeSyncer Skills Command
4
+ *
5
+ * Integration with skills.sh for skill discovery and installation.
6
+ *
7
+ * @codesyncer-context skills.sh API: https://skills.sh/api/skills
8
+ * @codesyncer-decision [2026-01-23] skills.sh 연동으로 생태계 확장
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.skillsCommand = skillsCommand;
15
+ const chalk_1 = __importDefault(require("chalk"));
16
+ const ora_1 = __importDefault(require("ora"));
17
+ const child_process_1 = require("child_process");
18
+ const SKILLS_API_URL = 'https://skills.sh/api/skills';
19
+ /**
20
+ * Fetch skills from skills.sh API
21
+ */
22
+ async function fetchSkills() {
23
+ try {
24
+ const response = await fetch(SKILLS_API_URL);
25
+ if (!response.ok) {
26
+ throw new Error(`HTTP ${response.status}`);
27
+ }
28
+ const data = await response.json();
29
+ return data.skills || [];
30
+ }
31
+ catch (error) {
32
+ throw new Error(`Failed to fetch skills: ${error instanceof Error ? error.message : 'Unknown error'}`);
33
+ }
34
+ }
35
+ /**
36
+ * Display skills leaderboard
37
+ */
38
+ function displayLeaderboard(skills, isKo) {
39
+ console.log();
40
+ console.log(chalk_1.default.bold.cyan(isKo ? '🏆 Skills.sh 리더보드' : '🏆 Skills.sh Leaderboard'));
41
+ console.log(chalk_1.default.gray('─'.repeat(60)));
42
+ console.log();
43
+ // Sort by installs (descending)
44
+ const sorted = [...skills].sort((a, b) => b.installs - a.installs);
45
+ // Find codesyncer position
46
+ const codesyncerIndex = sorted.findIndex(s => s.name.toLowerCase() === 'codesyncer' ||
47
+ s.topSource.includes('bitjaru/codesyncer'));
48
+ // Display top 10
49
+ const top10 = sorted.slice(0, 10);
50
+ console.log(chalk_1.default.gray(` ${isKo ? '순위' : 'Rank'} ${(isKo ? '이름' : 'Name').padEnd(25)} ${(isKo ? '설치수' : 'Installs').padStart(10)}`));
51
+ console.log(chalk_1.default.gray(' ' + '─'.repeat(45)));
52
+ top10.forEach((skill, index) => {
53
+ const rank = index + 1;
54
+ const isCodesyncer = skill.name.toLowerCase() === 'codesyncer' ||
55
+ skill.topSource.includes('bitjaru/codesyncer');
56
+ const rankStr = rank <= 3
57
+ ? ['🥇', '🥈', '🥉'][rank - 1]
58
+ : `${rank}.`.padStart(3);
59
+ const nameStr = skill.name.padEnd(25);
60
+ const installsStr = skill.installs.toLocaleString().padStart(10);
61
+ if (isCodesyncer) {
62
+ console.log(chalk_1.default.bold.green(` ${rankStr} ${nameStr} ${installsStr} ← You are here!`));
63
+ }
64
+ else {
65
+ console.log(chalk_1.default.white(` ${rankStr} ${nameStr} ${installsStr}`));
66
+ }
67
+ });
68
+ // If codesyncer is not in top 10, show its position
69
+ if (codesyncerIndex >= 10) {
70
+ const codesyncer = sorted[codesyncerIndex];
71
+ console.log(chalk_1.default.gray(' ...'));
72
+ console.log(chalk_1.default.bold.yellow(` ${(codesyncerIndex + 1).toString().padStart(3)}. ${codesyncer.name.padEnd(25)} ${codesyncer.installs.toLocaleString().padStart(10)}`));
73
+ }
74
+ console.log();
75
+ console.log(chalk_1.default.gray('─'.repeat(60)));
76
+ console.log(chalk_1.default.gray(isKo
77
+ ? ` 총 ${skills.length}개 스킬 | 데이터: skills.sh`
78
+ : ` Total ${skills.length} skills | Data: skills.sh`));
79
+ console.log();
80
+ // Installation guide
81
+ console.log(chalk_1.default.bold(isKo ? '📦 스킬 설치하기' : '📦 Install a Skill'));
82
+ console.log(chalk_1.default.gray(isKo
83
+ ? ' npx skills add <owner/repo>'
84
+ : ' npx skills add <owner/repo>'));
85
+ console.log();
86
+ console.log(chalk_1.default.cyan(' npx skills add bitjaru/codesyncer'));
87
+ console.log();
88
+ }
89
+ /**
90
+ * Install a skill using npx skills add
91
+ */
92
+ async function installSkill(skillName, isKo) {
93
+ const spinner = (0, ora_1.default)(isKo
94
+ ? `${skillName} 설치 중...`
95
+ : `Installing ${skillName}...`).start();
96
+ return new Promise((resolve, reject) => {
97
+ const child = (0, child_process_1.spawn)('npx', ['skills', 'add', skillName], {
98
+ stdio: 'inherit',
99
+ shell: true,
100
+ });
101
+ spinner.stop();
102
+ child.on('close', (code) => {
103
+ if (code === 0) {
104
+ console.log();
105
+ console.log(chalk_1.default.green(isKo
106
+ ? `✅ ${skillName} 설치 완료!`
107
+ : `✅ ${skillName} installed successfully!`));
108
+ resolve();
109
+ }
110
+ else {
111
+ reject(new Error(isKo
112
+ ? `설치 실패 (exit code: ${code})`
113
+ : `Installation failed (exit code: ${code})`));
114
+ }
115
+ });
116
+ child.on('error', (error) => {
117
+ spinner.fail(isKo
118
+ ? '설치 실패'
119
+ : 'Installation failed');
120
+ reject(error);
121
+ });
122
+ });
123
+ }
124
+ /**
125
+ * Main skills command
126
+ */
127
+ async function skillsCommand(subcommand, skillName) {
128
+ // Detect language from environment or default to English
129
+ const isKo = process.env.LANG?.startsWith('ko') || false;
130
+ console.log(chalk_1.default.bold.cyan('\n🎯 CodeSyncer - Skills\n'));
131
+ // Handle subcommands
132
+ if (subcommand === 'add') {
133
+ if (!skillName) {
134
+ console.log(chalk_1.default.red(isKo
135
+ ? '❌ 스킬 이름을 지정해주세요'
136
+ : '❌ Please specify a skill name'));
137
+ console.log();
138
+ console.log(chalk_1.default.gray(isKo ? '사용법:' : 'Usage:'));
139
+ console.log(chalk_1.default.cyan(' codesyncer skills add <owner/repo>'));
140
+ console.log(chalk_1.default.cyan(' codesyncer skills add bitjaru/codesyncer'));
141
+ return;
142
+ }
143
+ try {
144
+ await installSkill(skillName, isKo);
145
+ }
146
+ catch (error) {
147
+ console.log(chalk_1.default.red(isKo
148
+ ? `❌ 설치 실패: ${error instanceof Error ? error.message : 'Unknown error'}`
149
+ : `❌ Installation failed: ${error instanceof Error ? error.message : 'Unknown error'}`));
150
+ }
151
+ return;
152
+ }
153
+ // Default: show leaderboard
154
+ const spinner = (0, ora_1.default)(isKo
155
+ ? 'skills.sh에서 데이터 가져오는 중...'
156
+ : 'Fetching data from skills.sh...').start();
157
+ try {
158
+ const skills = await fetchSkills();
159
+ spinner.succeed(isKo
160
+ ? '데이터 로드 완료'
161
+ : 'Data loaded');
162
+ displayLeaderboard(skills, isKo);
163
+ }
164
+ catch (error) {
165
+ spinner.fail(isKo
166
+ ? 'skills.sh 연결 실패'
167
+ : 'Failed to connect to skills.sh');
168
+ console.log();
169
+ console.log(chalk_1.default.red(error instanceof Error ? error.message : 'Unknown error'));
170
+ console.log();
171
+ console.log(chalk_1.default.gray(isKo
172
+ ? '인터넷 연결을 확인하거나, 나중에 다시 시도해주세요.'
173
+ : 'Check your internet connection or try again later.'));
174
+ }
175
+ }
176
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -44,6 +44,7 @@ const update_1 = require("./commands/update");
44
44
  const add_repo_1 = require("./commands/add-repo");
45
45
  const watch_1 = require("./commands/watch");
46
46
  const validate_1 = require("./commands/validate");
47
+ const skills_1 = require("./commands/skills");
47
48
  const version_1 = require("./utils/version");
48
49
  const os = __importStar(require("os"));
49
50
  /**
@@ -88,6 +89,8 @@ ${chalk_1.default.bold('Examples:')}
88
89
  $ codesyncer watch ${chalk_1.default.gray('# Real-time file monitoring')}
89
90
  $ codesyncer validate ${chalk_1.default.gray('# Validate setup and report issues')}
90
91
  $ codesyncer add-repo ${chalk_1.default.gray('# Add new repository to workspace')}
92
+ $ codesyncer skills ${chalk_1.default.gray('# Browse skills.sh leaderboard')}
93
+ $ codesyncer skills add <repo> ${chalk_1.default.gray('# Install a skill')}
91
94
  `);
92
95
  program
93
96
  .command('init')
@@ -118,5 +121,9 @@ program
118
121
  .description('Validate CodeSyncer setup and report issues')
119
122
  .option('--verbose', 'Show detailed output including file paths')
120
123
  .action(validate_1.validateCommand);
124
+ program
125
+ .command('skills [subcommand] [name]')
126
+ .description('Browse skills.sh leaderboard or install skills')
127
+ .action(skills_1.skillsCommand);
121
128
  program.parse(process.argv);
122
129
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codesyncer",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "Claude forgets everything when the session ends. CodeSyncer makes it remember.",
5
5
  "keywords": [
6
6
  "ai-collaboration",