cc-recommender 0.2.2 → 0.3.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/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.0](https://github.com/yuji0809/cc-recommender/compare/v0.2.2...v0.3.0) (2026-01-30)
9
+
10
+
11
+ ### Features
12
+
13
+ * enhance scoring system and add bonus recommendations ([16646df](https://github.com/yuji0809/cc-recommender/commit/16646df64860d939a6302e33193678ee603d375c))
14
+
8
15
  ## [0.2.2](https://github.com/yuji0809/cc-recommender/compare/v0.2.1...v0.2.2) (2026-01-30)
9
16
 
10
17
 
package/README.ja.md CHANGED
@@ -44,11 +44,13 @@ pnpm run build
44
44
 
45
45
  ## Claude Codeで使う
46
46
 
47
+ **Cursorユーザーの方へ:** `~/.claude/settings.json`の代わりに`~/.cursor/mcp.json`を使用してください
48
+
47
49
  ### 方法1: npx経由(推奨)
48
50
 
49
51
  インストール不要。常に最新版を使用。
50
52
 
51
- `~/.claude/settings.json` に追加:
53
+ `~/.claude/settings.json`(Cursorの場合は`~/.cursor/mcp.json`)に追加:
52
54
 
53
55
  ```json
54
56
  {
package/README.md CHANGED
@@ -44,11 +44,13 @@ pnpm run build
44
44
 
45
45
  ## Usage with Claude Code
46
46
 
47
+ **For Cursor users:** Use `~/.cursor/mcp.json` instead of `~/.claude/settings.json`
48
+
47
49
  ### Option 1: Using npx (Recommended)
48
50
 
49
51
  No installation required. Always uses the latest version.
50
52
 
51
- Add to `~/.claude/settings.json`:
53
+ Add to `~/.claude/settings.json` (or `~/.cursor/mcp.json` for Cursor):
52
54
 
53
55
  ```json
54
56
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "0.1.0",
3
- "lastUpdated": "2026-01-30T12:20:06.930Z",
3
+ "lastUpdated": "2026-01-30T15:29:40.779Z",
4
4
  "items": [
5
5
  {
6
6
  "id": "mcp-1mcp-app-agent",
package/data/plugins.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "0.1.0",
3
- "lastUpdated": "2026-01-30T12:20:06.930Z",
3
+ "lastUpdated": "2026-01-30T15:29:40.779Z",
4
4
  "items": [
5
5
  {
6
6
  "id": "plugin-typescript-lsp",
package/data/skills.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "0.1.0",
3
- "lastUpdated": "2026-01-30T12:20:06.930Z",
3
+ "lastUpdated": "2026-01-30T15:29:40.779Z",
4
4
  "items": [
5
5
  {
6
6
  "id": "skill-ai-agent-ai-spy",
@@ -25,6 +25,31 @@
25
25
  "method": "manual"
26
26
  }
27
27
  },
28
+ {
29
+ "id": "skill-cc-devops-skills",
30
+ "name": "cc-devops-skills",
31
+ "type": "skill",
32
+ "url": "https://github.com/akin-ozer/cc-devops-skills",
33
+ "description": "Immensely detailed set of skills for DevOps Engineers (or anyone who has to deploy code, really). Works with validations, generators, shell scripts and CLI tools to create high quality IaC code for about any platform you've ever struggled painfully to work with. Worth downloading even just as a source of documentation.",
34
+ "author": {
35
+ "name": "akin-ozer",
36
+ "url": "https://github.com/akin-ozer"
37
+ },
38
+ "category": "Agent Skills",
39
+ "tags": ["agent skills", "skill", "apache-2.0"],
40
+ "detection": {
41
+ "keywords": ["devops", "ai"]
42
+ },
43
+ "metrics": {
44
+ "source": "awesome-list",
45
+ "isOfficial": false,
46
+ "securityScore": 100
47
+ },
48
+ "install": {
49
+ "method": "manual",
50
+ "command": "git clone https://github.com/akin-ozer/cc-devops-skills"
51
+ }
52
+ },
28
53
  {
29
54
  "id": "skill-claude-codex-settings",
30
55
  "name": "Claude Codex Settings",
@@ -23,5 +23,7 @@ export declare const SCORING_THRESHOLDS: {
23
23
  readonly maxResults: 20;
24
24
  readonly highSecurityThreshold: 80;
25
25
  readonly lowSecurityThreshold: 50;
26
+ /** Expected maximum raw score for normalization (empirical value) */
27
+ readonly maxRawScore: 50;
26
28
  };
27
29
  //# sourceMappingURL=scoring-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoring-config.d.ts","sourceRoot":"","sources":["../../src/config/scoring-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8CAA8C;AAC9C,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,yBAAyB;AACzB,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC"}
1
+ {"version":3,"file":"scoring-config.d.ts","sourceRoot":"","sources":["../../src/config/scoring-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8CAA8C;AAC9C,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AAEX,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAEX,yBAAyB;AACzB,eAAO,MAAM,kBAAkB;;;;;IAK7B,qEAAqE;;CAE7D,CAAC"}
@@ -23,5 +23,7 @@ export const SCORING_THRESHOLDS = {
23
23
  maxResults: 20,
24
24
  highSecurityThreshold: 80,
25
25
  lowSecurityThreshold: 50,
26
+ /** Expected maximum raw score for normalization (empirical value) */
27
+ maxRawScore: 50,
26
28
  };
27
29
  //# sourceMappingURL=scoring-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoring-config.js","sourceRoot":"","sources":["../../src/config/scoring-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,CAAC,EAAE,mCAAmC;IAChD,SAAS,EAAE,CAAC,EAAE,+BAA+B;IAC7C,UAAU,EAAE,CAAC,EAAE,0BAA0B;IACzC,IAAI,EAAE,CAAC,EAAE,qBAAqB;IAC9B,OAAO,EAAE,CAAC,EAAE,oBAAoB;CACxB,CAAC;AAEX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,GAAG,EAAE,6BAA6B;IAC5C,YAAY,EAAE,GAAG,EAAE,sBAAsB;IACzC,WAAW,EAAE,GAAG,EAAE,sBAAsB;CAChC,CAAC;AAEX,yBAAyB;AACzB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,EAAE;IACd,qBAAqB,EAAE,EAAE;IACzB,oBAAoB,EAAE,EAAE;CAChB,CAAC"}
1
+ {"version":3,"file":"scoring-config.js","sourceRoot":"","sources":["../../src/config/scoring-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8CAA8C;AAC9C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,CAAC,EAAE,mCAAmC;IAChD,SAAS,EAAE,CAAC,EAAE,+BAA+B;IAC7C,UAAU,EAAE,CAAC,EAAE,0BAA0B;IACzC,IAAI,EAAE,CAAC,EAAE,qBAAqB;IAC9B,OAAO,EAAE,CAAC,EAAE,oBAAoB;CACxB,CAAC;AAEX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,GAAG,EAAE,6BAA6B;IAC5C,YAAY,EAAE,GAAG,EAAE,sBAAsB;IACzC,WAAW,EAAE,GAAG,EAAE,sBAAsB;CAChC,CAAC;AAEX,yBAAyB;AACzB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,EAAE;IACd,qBAAqB,EAAE,EAAE;IACzB,oBAAoB,EAAE,EAAE;IACxB,qEAAqE;IACrE,WAAW,EAAE,EAAE;CACP,CAAC"}
@@ -16,7 +16,8 @@ export declare function groupByType(recommendations: ScoredRecommendation[]): Ma
16
16
  * Format recommendations for display
17
17
  *
18
18
  * @param recommendations - List of scored recommendations
19
+ * @param allRecommendations - All available recommendations for bonus section
19
20
  * @returns Formatted string for display
20
21
  */
21
- export declare function formatRecommendations(recommendations: ScoredRecommendation[]): string;
22
+ export declare function formatRecommendations(recommendations: ScoredRecommendation[], allRecommendations?: ScoredRecommendation[]): string;
22
23
  //# sourceMappingURL=formatters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../src/services/recommender/formatters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIzE;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,eAAe,EAAE,oBAAoB,EAAE,GACtC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAYrD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAuErF"}
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../../src/services/recommender/formatters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAiBzE;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,eAAe,EAAE,oBAAoB,EAAE,GACtC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAYrD;AA2ED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,oBAAoB,EAAE,EACvC,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,GAC1C,MAAM,CA8GR"}
@@ -5,6 +5,21 @@
5
5
  */
6
6
  import { getSecurityBadge } from "../security-scanner.service.js";
7
7
  import { getScoreIndicator } from "./scoring/scorer.js";
8
+ /**
9
+ * Get score explanation
10
+ *
11
+ * @param score - The calculated score
12
+ * @returns Brief explanation of the score
13
+ */
14
+ function getScoreExplanation(score) {
15
+ if (score >= 10)
16
+ return "プロジェクトに強く推薦";
17
+ if (score >= 5)
18
+ return "プロジェクトに適合";
19
+ if (score >= 2)
20
+ return "参考として有用";
21
+ return "低い適合度";
22
+ }
8
23
  /**
9
24
  * Group recommendations by type
10
25
  *
@@ -22,13 +37,76 @@ export function groupByType(recommendations) {
22
37
  }
23
38
  return groups;
24
39
  }
40
+ /**
41
+ * Select bonus recommendations (popular/trending items)
42
+ *
43
+ * @param recommendations - List of all recommendations
44
+ * @param displayedIds - Set of IDs already displayed
45
+ * @returns 1-2 bonus recommendations
46
+ */
47
+ function selectBonusRecommendations(recommendations, displayedIds) {
48
+ // Filter out already displayed items
49
+ const candidates = recommendations.filter((rec) => !displayedIds.has(rec.item.id));
50
+ if (candidates.length === 0)
51
+ return [];
52
+ // Score each candidate for "bonus worthiness"
53
+ const scored = candidates.map((rec) => {
54
+ let bonusScore = 0;
55
+ // Official items get priority
56
+ if (rec.item.metrics.isOfficial)
57
+ bonusScore += 100;
58
+ // High star count indicates popularity
59
+ if (rec.item.metrics.stars) {
60
+ bonusScore += Math.min(rec.item.metrics.stars / 10, 50); // Cap at 50 points
61
+ }
62
+ // High security score indicates quality
63
+ if (rec.item.metrics.securityScore && rec.item.metrics.securityScore >= 80) {
64
+ bonusScore += 30;
65
+ }
66
+ // Recently updated items (within last 6 months)
67
+ if (rec.item.metrics.lastUpdated) {
68
+ const sixMonthsAgo = new Date();
69
+ sixMonthsAgo.setMonth(sixMonthsAgo.getMonth() - 6);
70
+ const lastUpdated = new Date(rec.item.metrics.lastUpdated);
71
+ if (lastUpdated > sixMonthsAgo) {
72
+ bonusScore += 20;
73
+ }
74
+ }
75
+ return { rec, bonusScore };
76
+ });
77
+ // Sort by bonus score
78
+ scored.sort((a, b) => b.bonusScore - a.bonusScore);
79
+ // Return top 1-2 items
80
+ return scored.slice(0, 2).map((s) => s.rec);
81
+ }
82
+ /**
83
+ * Get bonus recommendation label
84
+ *
85
+ * @param item - The recommendation item
86
+ * @returns Label explaining why it's recommended
87
+ */
88
+ function getBonusLabel(item) {
89
+ if (item.metrics.isOfficial)
90
+ return "公式推奨";
91
+ if (item.metrics.stars && item.metrics.stars >= 100)
92
+ return "人気のツール";
93
+ if (item.metrics.securityScore && item.metrics.securityScore >= 80)
94
+ return "高品質";
95
+ const sixMonthsAgo = new Date();
96
+ sixMonthsAgo.setMonth(sixMonthsAgo.getMonth() - 6);
97
+ if (item.metrics.lastUpdated && new Date(item.metrics.lastUpdated) > sixMonthsAgo) {
98
+ return "最近話題";
99
+ }
100
+ return "おすすめ";
101
+ }
25
102
  /**
26
103
  * Format recommendations for display
27
104
  *
28
105
  * @param recommendations - List of scored recommendations
106
+ * @param allRecommendations - All available recommendations for bonus section
29
107
  * @returns Formatted string for display
30
108
  */
31
- export function formatRecommendations(recommendations) {
109
+ export function formatRecommendations(recommendations, allRecommendations) {
32
110
  if (recommendations.length === 0) {
33
111
  return "プロジェクトに適した推薦が見つかりませんでした。";
34
112
  }
@@ -54,6 +132,8 @@ export function formatRecommendations(recommendations) {
54
132
  "command",
55
133
  "agent",
56
134
  ];
135
+ // Track displayed IDs
136
+ const displayedIds = new Set();
57
137
  for (const type of typeOrder) {
58
138
  const items = grouped.get(type);
59
139
  if (!items || items.length === 0)
@@ -62,16 +142,19 @@ export function formatRecommendations(recommendations) {
62
142
  lines.push("━".repeat(40));
63
143
  for (let i = 0; i < Math.min(items.length, 5); i++) {
64
144
  const { item, score, reasons } = items[i];
145
+ displayedIds.add(item.id);
65
146
  lines.push(`${i + 1}. ${item.name}${item.metrics.isOfficial ? " (公式)" : ""}`);
66
147
  lines.push(` ├─ 用途: ${item.description.slice(0, 60)}${item.description.length > 60 ? "..." : ""}`);
67
- lines.push(` ├─ スコア: ${score}${getScoreIndicator(score)}`);
148
+ // スコア表示(説明付き)
149
+ const scoreExplanation = getScoreExplanation(score);
150
+ lines.push(` ├─ スコア: ${score}${getScoreIndicator(score)} - ${scoreExplanation}`);
68
151
  // セキュリティスコア表示
69
152
  if (item.metrics.securityScore !== undefined) {
70
153
  const securityBadge = getSecurityBadge(item.metrics.securityScore);
71
154
  lines.push(` ├─ セキュリティ: ${securityBadge} (${item.metrics.securityScore}/100)`);
72
155
  }
73
156
  if (reasons.length > 0) {
74
- lines.push(` ├─ 推薦理由: ${reasons.join(", ")}`);
157
+ lines.push(` ├─ マッチ内容: ${reasons.join(", ")}`);
75
158
  }
76
159
  if (item.install.command) {
77
160
  lines.push(` └─ インストール: ${item.install.command}`);
@@ -85,6 +168,30 @@ export function formatRecommendations(recommendations) {
85
168
  lines.push(` ... 他 ${items.length - 5} 件`);
86
169
  }
87
170
  }
171
+ // Add bonus recommendations section
172
+ if (allRecommendations && allRecommendations.length > 0) {
173
+ const bonusItems = selectBonusRecommendations(allRecommendations, displayedIds);
174
+ if (bonusItems.length > 0) {
175
+ lines.push("\n🔥 人気・トレンド");
176
+ lines.push("━".repeat(40));
177
+ for (let i = 0; i < bonusItems.length; i++) {
178
+ const { item } = bonusItems[i];
179
+ const bonusLabel = getBonusLabel(item);
180
+ lines.push(`${i + 1}. ${item.name} (${bonusLabel})`);
181
+ lines.push(` ├─ 用途: ${item.description.slice(0, 60)}${item.description.length > 60 ? "..." : ""}`);
182
+ if (item.metrics.stars) {
183
+ lines.push(` ├─ GitHub Stars: ⭐ ${item.metrics.stars}`);
184
+ }
185
+ if (item.install.command) {
186
+ lines.push(` └─ インストール: ${item.install.command}`);
187
+ }
188
+ else {
189
+ lines.push(` └─ URL: ${item.url}`);
190
+ }
191
+ lines.push("");
192
+ }
193
+ }
194
+ }
88
195
  return lines.join("\n");
89
196
  }
90
197
  //# sourceMappingURL=formatters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../src/services/recommender/formatters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../../src/services/recommender/formatters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,aAAa,CAAC;IACtC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,eAAuC;IAEvC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkD,CAAC;IAEzE,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,0BAA0B,CACjC,eAAuC,EACvC,YAAyB;IAEzB,qCAAqC;IACrC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,8CAA8C;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACpC,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,8BAA8B;QAC9B,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;YAAE,UAAU,IAAI,GAAG,CAAC;QAEnD,uCAAuC;QACvC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3B,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB;QAC9E,CAAC;QAED,wCAAwC;QACxC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;YAC3E,UAAU,IAAI,EAAE,CAAC;QACnB,CAAC;QAED,gDAAgD;QAChD,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;YAChC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;gBAC/B,UAAU,IAAI,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAEnD,uBAAuB;IACvB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,IAAoB;IACzC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC;IACrE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IAEjF,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;IAChC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,YAAY,EAAE,CAAC;QAClF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,eAAuC,EACvC,kBAA2C;IAE3C,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,cAAc;IACd,MAAM,UAAU,GAA2C;QACzD,MAAM,EAAE,UAAU;QAClB,GAAG,EAAE,YAAY;QACjB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,WAAW;KACnB,CAAC;IAEF,4BAA4B;IAC5B,MAAM,SAAS,GAA6B;QAC1C,QAAQ;QACR,KAAK;QACL,OAAO;QACP,UAAU;QACV,MAAM;QACN,SAAS;QACT,OAAO;KACR,CAAC;IAEF,sBAAsB;IACtB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAE3C,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9E,KAAK,CAAC,IAAI,CACR,aAAa,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACzF,CAAC;YAEF,cAAc;YACd,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;YAEnF,cAAc;YACd,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,iBAAiB,aAAa,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,OAAO,CAAC,CAAC;YACnF,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzB,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACvC,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,0BAA0B,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;QAEhF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC/B,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBAEvC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,UAAU,GAAG,CAAC,CAAC;gBACrD,KAAK,CAAC,IAAI,CACR,aAAa,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACzF,CAAC;gBAEF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACvB,KAAK,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5D,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACzB,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -20,7 +20,7 @@ export declare function calculateScore(item: Recommendation, project: ProjectInf
20
20
  /**
21
21
  * Get score indicator emoji and text
22
22
  *
23
- * @param score - The calculated score
23
+ * @param score - The calculated score (1-100)
24
24
  * @returns Indicator string with emoji
25
25
  */
26
26
  export declare function getScoreIndicator(score: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../../../src/services/recommender/scoring/scorer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuFtC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvD"}
1
+ {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../../../src/services/recommender/scoring/scorer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,WAAW,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA0FtC;AAkBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvD"}
@@ -80,20 +80,36 @@ export function calculateScore(item, project, userQuery) {
80
80
  score *= SCORING_MULTIPLIERS.lowSecurity;
81
81
  }
82
82
  }
83
- return { score: Math.round(score * 100) / 100, reasons };
83
+ // Normalize score to 1-100 range
84
+ const normalizedScore = normalizeScore(score);
85
+ return { score: normalizedScore, reasons };
86
+ }
87
+ /**
88
+ * Normalize raw score to 1-100 range
89
+ *
90
+ * @param rawScore - The raw calculated score
91
+ * @returns Normalized score between 1 and 100
92
+ */
93
+ function normalizeScore(rawScore) {
94
+ if (rawScore <= 0)
95
+ return 1;
96
+ // Convert to 1-100 scale based on expected max raw score
97
+ const normalized = (rawScore / SCORING_THRESHOLDS.maxRawScore) * 100;
98
+ // Clamp to 1-100 range
99
+ return Math.round(Math.min(100, Math.max(1, normalized)));
84
100
  }
85
101
  /**
86
102
  * Get score indicator emoji and text
87
103
  *
88
- * @param score - The calculated score
104
+ * @param score - The calculated score (1-100)
89
105
  * @returns Indicator string with emoji
90
106
  */
91
107
  export function getScoreIndicator(score) {
92
- if (score >= 10)
108
+ if (score >= 80)
93
109
  return " ✅ 高適合";
94
- if (score >= 5)
110
+ if (score >= 50)
95
111
  return " 👍 適合";
96
- if (score >= 2)
112
+ if (score >= 20)
97
113
  return " 📝 参考";
98
114
  return "";
99
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../../../src/services/recommender/scoring/scorer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../../../src/services/recommender/scoring/scorer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recommend-skills.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/recommend-skills.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAI1E,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,eAAe,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACnC,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC,CAiChC"}
1
+ {"version":3,"file":"recommend-skills.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/recommend-skills.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAI1E,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,eAAe,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACnC,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC,CAwChC"}
@@ -17,8 +17,14 @@ export async function recommendSkills(input, database) {
17
17
  maxResults: input.max_results,
18
18
  types: input.types,
19
19
  });
20
+ // Get all recommendations (for bonus section)
21
+ const allRecommendations = recommend(database, projectInfo, input.description, {
22
+ maxResults: 100, // Get more items for bonus selection
23
+ minScore: 0, // Include all items even with score 0
24
+ types: input.types,
25
+ });
20
26
  // Format for display
21
- const formatted = formatRecommendations(recommendations);
27
+ const formatted = formatRecommendations(recommendations, allRecommendations);
22
28
  return {
23
29
  project: {
24
30
  path: projectInfo.path,
@@ -1 +1 @@
1
- {"version":3,"file":"recommend-skills.tool.js","sourceRoot":"","sources":["../../../src/tools/handlers/recommend-skills.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,sDAAsD,CAAC;AAwBjF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAA2B,EAC3B,QAAgC;IAEhC,sBAAsB;IACtB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAE7D,sBAAsB;IACtB,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;QAC1E,UAAU,EAAE,KAAK,CAAC,WAAW;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAEzD,OAAO;QACL,OAAO,EAAE;YACP,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,eAAe,EAAE,WAAW,CAAC,YAAY,CAAC,MAAM;SACjD;QACD,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;YAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;YACf,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO;YACvB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;SACtC,CAAC,CAAC;QACH,SAAS;QACT,UAAU,EAAE,eAAe,CAAC,MAAM;KACnC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"recommend-skills.tool.js","sourceRoot":"","sources":["../../../src/tools/handlers/recommend-skills.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,sDAAsD,CAAC;AAwBjF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAA2B,EAC3B,QAAgC;IAEhC,sBAAsB;IACtB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAE7D,sBAAsB;IACtB,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;QAC1E,UAAU,EAAE,KAAK,CAAC,WAAW;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IAEH,8CAA8C;IAC9C,MAAM,kBAAkB,GAAG,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;QAC7E,UAAU,EAAE,GAAG,EAAE,qCAAqC;QACtD,QAAQ,EAAE,CAAC,EAAE,sCAAsC;QACnD,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAE7E,OAAO;QACL,OAAO,EAAE;YACP,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,eAAe,EAAE,WAAW,CAAC,YAAY,CAAC,MAAM;SACjD;QACD,eAAe,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;YAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;YACf,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO;YACvB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;SACtC,CAAC,CAAC;QACH,SAAS;QACT,UAAU,EAAE,eAAe,CAAC,MAAM;KACnC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-recommender",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "MCP server for recommending Claude Code skills, plugins, and MCP servers",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",