cc-recommender 0.1.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 +41 -0
- package/LICENSE +21 -0
- package/README.ja.md +201 -0
- package/README.md +201 -0
- package/data/mcp-servers.json +34777 -0
- package/data/plugins.json +1571 -0
- package/data/skills.json +3233 -0
- package/dist/config/constants.d.ts +18 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +34 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/file-mappings.d.ts +13 -0
- package/dist/config/file-mappings.d.ts.map +1 -0
- package/dist/config/file-mappings.js +70 -0
- package/dist/config/file-mappings.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +9 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/scoring-config.d.ts +27 -0
- package/dist/config/scoring-config.d.ts.map +1 -0
- package/dist/config/scoring-config.js +27 -0
- package/dist/config/scoring-config.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories/index.d.ts +7 -0
- package/dist/repositories/index.d.ts.map +1 -0
- package/dist/repositories/index.js +7 -0
- package/dist/repositories/index.js.map +1 -0
- package/dist/repositories/recommendation.repository.d.ts +56 -0
- package/dist/repositories/recommendation.repository.d.ts.map +1 -0
- package/dist/repositories/recommendation.repository.js +142 -0
- package/dist/repositories/recommendation.repository.js.map +1 -0
- package/dist/repositories/remote-data.repository.d.ts +20 -0
- package/dist/repositories/remote-data.repository.d.ts.map +1 -0
- package/dist/repositories/remote-data.repository.js +307 -0
- package/dist/repositories/remote-data.repository.js.map +1 -0
- package/dist/schemas/index.d.ts +7 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +7 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/tool-schemas.d.ts +55 -0
- package/dist/schemas/tool-schemas.d.ts.map +1 -0
- package/dist/schemas/tool-schemas.js +36 -0
- package/dist/schemas/tool-schemas.js.map +1 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +8 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/mcp-server.d.ts +11 -0
- package/dist/server/mcp-server.d.ts.map +1 -0
- package/dist/server/mcp-server.js +27 -0
- package/dist/server/mcp-server.js.map +1 -0
- package/dist/server/tool-registry.d.ts +12 -0
- package/dist/server/tool-registry.d.ts.map +1 -0
- package/dist/server/tool-registry.js +114 -0
- package/dist/server/tool-registry.js.map +1 -0
- package/dist/services/analyzer/index.d.ts +7 -0
- package/dist/services/analyzer/index.d.ts.map +1 -0
- package/dist/services/analyzer/index.js +7 -0
- package/dist/services/analyzer/index.js.map +1 -0
- package/dist/services/analyzer/parsers/go-mod.parser.d.ts +11 -0
- package/dist/services/analyzer/parsers/go-mod.parser.d.ts.map +1 -0
- package/dist/services/analyzer/parsers/go-mod.parser.js +34 -0
- package/dist/services/analyzer/parsers/go-mod.parser.js.map +1 -0
- package/dist/services/analyzer/parsers/index.d.ts +9 -0
- package/dist/services/analyzer/parsers/index.d.ts.map +1 -0
- package/dist/services/analyzer/parsers/index.js +9 -0
- package/dist/services/analyzer/parsers/index.js.map +1 -0
- package/dist/services/analyzer/parsers/package-json.parser.d.ts +11 -0
- package/dist/services/analyzer/parsers/package-json.parser.d.ts.map +1 -0
- package/dist/services/analyzer/parsers/package-json.parser.js +61 -0
- package/dist/services/analyzer/parsers/package-json.parser.js.map +1 -0
- package/dist/services/analyzer/parsers/requirements-txt.parser.d.ts +11 -0
- package/dist/services/analyzer/parsers/requirements-txt.parser.d.ts.map +1 -0
- package/dist/services/analyzer/parsers/requirements-txt.parser.js +49 -0
- package/dist/services/analyzer/parsers/requirements-txt.parser.js.map +1 -0
- package/dist/services/analyzer/project-analyzer.service.d.ts +11 -0
- package/dist/services/analyzer/project-analyzer.service.d.ts.map +1 -0
- package/dist/services/analyzer/project-analyzer.service.js +101 -0
- package/dist/services/analyzer/project-analyzer.service.js.map +1 -0
- package/dist/services/analyzer.d.ts +8 -0
- package/dist/services/analyzer.d.ts.map +1 -0
- package/dist/services/analyzer.js +8 -0
- package/dist/services/analyzer.js.map +1 -0
- package/dist/services/mcp-fetcher.d.ts +12 -0
- package/dist/services/mcp-fetcher.d.ts.map +1 -0
- package/dist/services/mcp-fetcher.js +262 -0
- package/dist/services/mcp-fetcher.js.map +1 -0
- package/dist/services/plugin-fetcher.d.ts +12 -0
- package/dist/services/plugin-fetcher.d.ts.map +1 -0
- package/dist/services/plugin-fetcher.js +149 -0
- package/dist/services/plugin-fetcher.js.map +1 -0
- package/dist/services/recommender/formatters.d.ts +22 -0
- package/dist/services/recommender/formatters.d.ts.map +1 -0
- package/dist/services/recommender/formatters.js +90 -0
- package/dist/services/recommender/formatters.js.map +1 -0
- package/dist/services/recommender/index.d.ts +10 -0
- package/dist/services/recommender/index.d.ts.map +1 -0
- package/dist/services/recommender/index.js +10 -0
- package/dist/services/recommender/index.js.map +1 -0
- package/dist/services/recommender/recommendation.service.d.ts +27 -0
- package/dist/services/recommender/recommendation.service.d.ts.map +1 -0
- package/dist/services/recommender/recommendation.service.js +34 -0
- package/dist/services/recommender/recommendation.service.js.map +1 -0
- package/dist/services/recommender/scoring/index.d.ts +7 -0
- package/dist/services/recommender/scoring/index.d.ts.map +1 -0
- package/dist/services/recommender/scoring/index.js +7 -0
- package/dist/services/recommender/scoring/index.js.map +1 -0
- package/dist/services/recommender/scoring/scorer.d.ts +27 -0
- package/dist/services/recommender/scoring/scorer.d.ts.map +1 -0
- package/dist/services/recommender/scoring/scorer.js +100 -0
- package/dist/services/recommender/scoring/scorer.js.map +1 -0
- package/dist/services/recommender/search.service.d.ts +24 -0
- package/dist/services/recommender/search.service.d.ts.map +1 -0
- package/dist/services/recommender/search.service.js +57 -0
- package/dist/services/recommender/search.service.js.map +1 -0
- package/dist/services/recommender.d.ts +11 -0
- package/dist/services/recommender.d.ts.map +1 -0
- package/dist/services/recommender.js +11 -0
- package/dist/services/recommender.js.map +1 -0
- package/dist/services/security-scanner.service.d.ts +48 -0
- package/dist/services/security-scanner.service.d.ts.map +1 -0
- package/dist/services/security-scanner.service.js +98 -0
- package/dist/services/security-scanner.service.js.map +1 -0
- package/dist/services/skill-fetcher.d.ts +12 -0
- package/dist/services/skill-fetcher.d.ts.map +1 -0
- package/dist/services/skill-fetcher.js +307 -0
- package/dist/services/skill-fetcher.js.map +1 -0
- package/dist/tools/handlers/get-skill-details.tool.d.ts +25 -0
- package/dist/tools/handlers/get-skill-details.tool.d.ts.map +1 -0
- package/dist/tools/handlers/get-skill-details.tool.js +29 -0
- package/dist/tools/handlers/get-skill-details.tool.js.map +1 -0
- package/dist/tools/handlers/get-stats.tool.d.ts +19 -0
- package/dist/tools/handlers/get-stats.tool.d.ts.map +1 -0
- package/dist/tools/handlers/get-stats.tool.js +32 -0
- package/dist/tools/handlers/get-stats.tool.js.map +1 -0
- package/dist/tools/handlers/index.d.ts +11 -0
- package/dist/tools/handlers/index.d.ts.map +1 -0
- package/dist/tools/handlers/index.js +11 -0
- package/dist/tools/handlers/index.js.map +1 -0
- package/dist/tools/handlers/list-categories.tool.d.ts +19 -0
- package/dist/tools/handlers/list-categories.tool.d.ts.map +1 -0
- package/dist/tools/handlers/list-categories.tool.js +33 -0
- package/dist/tools/handlers/list-categories.tool.js.map +1 -0
- package/dist/tools/handlers/recommend-skills.tool.d.ts +32 -0
- package/dist/tools/handlers/recommend-skills.tool.d.ts.map +1 -0
- package/dist/tools/handlers/recommend-skills.tool.js +43 -0
- package/dist/tools/handlers/recommend-skills.tool.js.map +1 -0
- package/dist/tools/handlers/search-skills.tool.d.ts +27 -0
- package/dist/tools/handlers/search-skills.tool.d.ts.map +1 -0
- package/dist/tools/handlers/search-skills.tool.js +31 -0
- package/dist/tools/handlers/search-skills.tool.js.map +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +11 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/domain-types.d.ts +102 -0
- package/dist/types/domain-types.d.ts.map +1 -0
- package/dist/types/domain-types.js +7 -0
- package/dist/types/domain-types.js.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/raw-types.d.ts +46 -0
- package/dist/types/raw-types.d.ts.map +1 -0
- package/dist/types/raw-types.js +7 -0
- package/dist/types/raw-types.js.map +1 -0
- package/dist/types/service-types.d.ts +28 -0
- package/dist/types/service-types.d.ts.map +1 -0
- package/dist/types/service-types.js +7 -0
- package/dist/types/service-types.js.map +1 -0
- package/dist/utils/glob-matcher.d.ts +24 -0
- package/dist/utils/glob-matcher.d.ts.map +1 -0
- package/dist/utils/glob-matcher.js +34 -0
- package/dist/utils/glob-matcher.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-skills.tool.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/search-skills.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QACb,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;QACrB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAqB7B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search Skills Tool
|
|
3
|
+
*
|
|
4
|
+
* Searches for skills, plugins, and MCP servers by keyword
|
|
5
|
+
*/
|
|
6
|
+
import { search } from "../../services/recommender/search.service.js";
|
|
7
|
+
/**
|
|
8
|
+
* Search for skills by keyword
|
|
9
|
+
*/
|
|
10
|
+
export async function searchSkills(input, database) {
|
|
11
|
+
const results = search(database, input.query, {
|
|
12
|
+
maxResults: input.max_results,
|
|
13
|
+
types: input.types,
|
|
14
|
+
});
|
|
15
|
+
return {
|
|
16
|
+
query: input.query,
|
|
17
|
+
results: results.map((r) => ({
|
|
18
|
+
name: r.item.name,
|
|
19
|
+
type: r.item.type,
|
|
20
|
+
description: r.item.description,
|
|
21
|
+
score: r.score,
|
|
22
|
+
reasons: r.reasons,
|
|
23
|
+
url: r.item.url,
|
|
24
|
+
install: r.item.install,
|
|
25
|
+
isOfficial: r.item.metrics.isOfficial,
|
|
26
|
+
category: r.item.category,
|
|
27
|
+
})),
|
|
28
|
+
totalFound: results.length,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=search-skills.tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-skills.tool.js","sourceRoot":"","sources":["../../../src/tools/handlers/search-skills.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AAmBtE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAwB,EACxB,QAAgC;IAEhC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE;QAC5C,UAAU,EAAE,KAAK,CAAC,WAAW;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,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;YACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;SAC1B,CAAC,CAAC;QACH,UAAU,EAAE,OAAO,CAAC,MAAM;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools (Legacy Export)
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from the new tools directory structure
|
|
5
|
+
* This file maintains backwards compatibility
|
|
6
|
+
*/
|
|
7
|
+
export { type GetSkillDetailsInput, getSkillDetailsSchema, type RecommendSkillsInput, recommendSkillsSchema, type SearchSkillsInput, searchSkillsSchema, } from "../schemas/index.js";
|
|
8
|
+
export { type GetSkillDetailsResult, type GetStatsResult, getSkillDetails, getStats, type ListCategoriesResult, listCategories, type RecommendSkillsResult, recommendSkills, type SearchSkillsResult, searchSkills, } from "./handlers/index.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,eAAe,EACf,QAAQ,EACR,KAAK,oBAAoB,EACzB,cAAc,EACd,KAAK,qBAAqB,EAC1B,eAAe,EACf,KAAK,kBAAkB,EACvB,YAAY,GACb,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools (Legacy Export)
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from the new tools directory structure
|
|
5
|
+
* This file maintains backwards compatibility
|
|
6
|
+
*/
|
|
7
|
+
// Export schemas
|
|
8
|
+
export { getSkillDetailsSchema, recommendSkillsSchema, searchSkillsSchema, } from "../schemas/index.js";
|
|
9
|
+
// Export tool handlers and result types
|
|
10
|
+
export { getSkillDetails, getStats, listCategories, recommendSkills, searchSkills, } from "./handlers/index.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iBAAiB;AACjB,OAAO,EAEL,qBAAqB,EAErB,qBAAqB,EAErB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,wCAAwC;AACxC,OAAO,EAGL,eAAe,EACf,QAAQ,EAER,cAAc,EAEd,eAAe,EAEf,YAAY,GACb,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Types
|
|
3
|
+
*
|
|
4
|
+
* Core business domain types for recommendations
|
|
5
|
+
*/
|
|
6
|
+
/** レコメンドアイテムのタイプ */
|
|
7
|
+
export type RecommendationType = "plugin" | "mcp" | "skill" | "workflow" | "hook" | "command" | "agent";
|
|
8
|
+
/** データソースの種類 */
|
|
9
|
+
export type SourceType = "official" | "community" | "awesome-list";
|
|
10
|
+
/** インストール方法 */
|
|
11
|
+
export type InstallMethod = "plugin" | "mcp-add" | "manual";
|
|
12
|
+
/** 作者情報 */
|
|
13
|
+
export type Author = {
|
|
14
|
+
name: string;
|
|
15
|
+
url?: string;
|
|
16
|
+
email?: string;
|
|
17
|
+
};
|
|
18
|
+
/** 検出ルール */
|
|
19
|
+
export type DetectionRules = {
|
|
20
|
+
/** package.json の依存関係 */
|
|
21
|
+
dependencies?: string[];
|
|
22
|
+
/** ファイルパターン (glob) */
|
|
23
|
+
files?: string[];
|
|
24
|
+
/** 使用言語 */
|
|
25
|
+
languages?: string[];
|
|
26
|
+
/** フレームワーク */
|
|
27
|
+
frameworks?: string[];
|
|
28
|
+
/** 説明文キーワード */
|
|
29
|
+
keywords?: string[];
|
|
30
|
+
};
|
|
31
|
+
/** 品質指標 */
|
|
32
|
+
export type Metrics = {
|
|
33
|
+
/** データソース */
|
|
34
|
+
source: SourceType;
|
|
35
|
+
/** セキュリティスコア (0-100, cc-audit) */
|
|
36
|
+
securityScore?: number;
|
|
37
|
+
/** GitHub スター数 */
|
|
38
|
+
stars?: number;
|
|
39
|
+
/** 公式かどうか */
|
|
40
|
+
isOfficial?: boolean;
|
|
41
|
+
/** 最終更新日 */
|
|
42
|
+
lastUpdated?: string;
|
|
43
|
+
};
|
|
44
|
+
/** インストール情報 */
|
|
45
|
+
export type InstallInfo = {
|
|
46
|
+
/** インストール方法 */
|
|
47
|
+
method: InstallMethod;
|
|
48
|
+
/** インストールコマンド */
|
|
49
|
+
command?: string;
|
|
50
|
+
/** マーケットプレイス名 */
|
|
51
|
+
marketplace?: string;
|
|
52
|
+
};
|
|
53
|
+
/** 統一レコメンデーションアイテム */
|
|
54
|
+
export type Recommendation = {
|
|
55
|
+
/** 一意な識別子 */
|
|
56
|
+
id: string;
|
|
57
|
+
/** 表示名 */
|
|
58
|
+
name: string;
|
|
59
|
+
/** タイプ */
|
|
60
|
+
type: RecommendationType;
|
|
61
|
+
/** リポジトリ/ソースURL */
|
|
62
|
+
url: string;
|
|
63
|
+
/** 説明文 */
|
|
64
|
+
description: string;
|
|
65
|
+
/** 作者 */
|
|
66
|
+
author: Author;
|
|
67
|
+
/** カテゴリ */
|
|
68
|
+
category: string;
|
|
69
|
+
/** タグ */
|
|
70
|
+
tags: string[];
|
|
71
|
+
/** 検出ルール */
|
|
72
|
+
detection: DetectionRules;
|
|
73
|
+
/** 品質指標 */
|
|
74
|
+
metrics: Metrics;
|
|
75
|
+
/** インストール情報 */
|
|
76
|
+
install: InstallInfo;
|
|
77
|
+
};
|
|
78
|
+
/** データベース (全レコメンデーション) */
|
|
79
|
+
export type RecommendationDatabase = {
|
|
80
|
+
version: string;
|
|
81
|
+
lastUpdated: string;
|
|
82
|
+
items: Recommendation[];
|
|
83
|
+
};
|
|
84
|
+
/** プラグインデータベース */
|
|
85
|
+
export type PluginDatabase = {
|
|
86
|
+
version: string;
|
|
87
|
+
lastUpdated: string;
|
|
88
|
+
items: Recommendation[];
|
|
89
|
+
};
|
|
90
|
+
/** MCPサーバーデータベース */
|
|
91
|
+
export type MCPServerDatabase = {
|
|
92
|
+
version: string;
|
|
93
|
+
lastUpdated: string;
|
|
94
|
+
items: Recommendation[];
|
|
95
|
+
};
|
|
96
|
+
/** スキルデータベース */
|
|
97
|
+
export type SkillDatabase = {
|
|
98
|
+
version: string;
|
|
99
|
+
lastUpdated: string;
|
|
100
|
+
items: Recommendation[];
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=domain-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-types.d.ts","sourceRoot":"","sources":["../../src/types/domain-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-types.js","sourceRoot":"","sources":["../../src/types/domain-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type Definitions (Public API)
|
|
3
|
+
*
|
|
4
|
+
* 型定義の公開 API
|
|
5
|
+
*/
|
|
6
|
+
export type { Author, DetectionRules, InstallInfo, InstallMethod, MCPServerDatabase, Metrics, PluginDatabase, Recommendation, RecommendationDatabase, RecommendationType, SkillDatabase, SourceType, } from "./domain-types.js";
|
|
7
|
+
export type { RawMCPEntry, RawPluginEntry, RawSkillEntry } from "./raw-types.js";
|
|
8
|
+
export type { ProjectInfo, ScoredRecommendation } from "./service-types.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,MAAM,EACN,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEjF,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Raw Data Types
|
|
3
|
+
*
|
|
4
|
+
* Types for external data sources (marketplace, awesome lists, etc.)
|
|
5
|
+
*/
|
|
6
|
+
/** プラグインマーケットプレイスのエントリ (生データ) */
|
|
7
|
+
export type RawPluginEntry = {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
version?: string;
|
|
11
|
+
author: {
|
|
12
|
+
name: string;
|
|
13
|
+
email?: string;
|
|
14
|
+
};
|
|
15
|
+
source: string | {
|
|
16
|
+
url: string;
|
|
17
|
+
subPath?: string;
|
|
18
|
+
};
|
|
19
|
+
category: string;
|
|
20
|
+
homepage?: string;
|
|
21
|
+
tags?: string[];
|
|
22
|
+
lspServers?: Record<string, unknown>;
|
|
23
|
+
};
|
|
24
|
+
/** awesome-mcp-servers のエントリ (パース後) */
|
|
25
|
+
export type RawMCPEntry = {
|
|
26
|
+
owner: string;
|
|
27
|
+
repo: string;
|
|
28
|
+
url: string;
|
|
29
|
+
description: string;
|
|
30
|
+
language?: string;
|
|
31
|
+
scope?: "cloud" | "local";
|
|
32
|
+
platforms?: string[];
|
|
33
|
+
isOfficial?: boolean;
|
|
34
|
+
category: string;
|
|
35
|
+
};
|
|
36
|
+
/** awesome-claude-code CSV のエントリ */
|
|
37
|
+
export type RawSkillEntry = {
|
|
38
|
+
name: string;
|
|
39
|
+
url: string;
|
|
40
|
+
author: string;
|
|
41
|
+
authorUrl: string;
|
|
42
|
+
license?: string;
|
|
43
|
+
description: string;
|
|
44
|
+
category: string;
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=raw-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-types.d.ts","sourceRoot":"","sources":["../../src/types/raw-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-types.js","sourceRoot":"","sources":["../../src/types/raw-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Types
|
|
3
|
+
*
|
|
4
|
+
* Types for service layer inputs and outputs
|
|
5
|
+
*/
|
|
6
|
+
import type { Recommendation } from "./domain-types.js";
|
|
7
|
+
/** プロジェクト情報 (分析結果) */
|
|
8
|
+
export type ProjectInfo = {
|
|
9
|
+
/** プロジェクトパス */
|
|
10
|
+
path: string;
|
|
11
|
+
/** 使用言語 */
|
|
12
|
+
languages: string[];
|
|
13
|
+
/** 依存関係 (package.json, requirements.txt, etc.) */
|
|
14
|
+
dependencies: string[];
|
|
15
|
+
/** ファイル一覧 */
|
|
16
|
+
files: string[];
|
|
17
|
+
/** フレームワーク */
|
|
18
|
+
frameworks: string[];
|
|
19
|
+
/** プロジェクト説明 (README等から) */
|
|
20
|
+
description?: string;
|
|
21
|
+
};
|
|
22
|
+
/** スコア付きレコメンデーション */
|
|
23
|
+
export type ScoredRecommendation = {
|
|
24
|
+
item: Recommendation;
|
|
25
|
+
score: number;
|
|
26
|
+
reasons: string[];
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=service-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-types.d.ts","sourceRoot":"","sources":["../../src/types/service-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,sBAAsB;AACtB,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kDAAkD;IAClD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,qBAAqB;AACrB,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-types.js","sourceRoot":"","sources":["../../src/types/service-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glob Pattern Matcher
|
|
3
|
+
*
|
|
4
|
+
* Utilities for matching file paths against glob patterns
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Match a filepath against a glob pattern
|
|
8
|
+
*
|
|
9
|
+
* Supports wildcards:
|
|
10
|
+
* - `*` matches any characters except /
|
|
11
|
+
* - `**` matches any characters including /
|
|
12
|
+
* - `?` matches any single character
|
|
13
|
+
*
|
|
14
|
+
* @param filepath - The file path to test
|
|
15
|
+
* @param pattern - The glob pattern to match against
|
|
16
|
+
* @returns True if the filepath matches the pattern
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* matchGlob("src/index.ts", "src/*.ts") // true
|
|
20
|
+
* matchGlob("src/utils/helper.ts", "src/**\/*.ts") // true
|
|
21
|
+
* matchGlob("test.js", "*.ts") // false
|
|
22
|
+
*/
|
|
23
|
+
export declare function matchGlob(filepath: string, pattern: string): boolean;
|
|
24
|
+
//# sourceMappingURL=glob-matcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob-matcher.d.ts","sourceRoot":"","sources":["../../src/utils/glob-matcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAWpE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Glob Pattern Matcher
|
|
3
|
+
*
|
|
4
|
+
* Utilities for matching file paths against glob patterns
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Match a filepath against a glob pattern
|
|
8
|
+
*
|
|
9
|
+
* Supports wildcards:
|
|
10
|
+
* - `*` matches any characters except /
|
|
11
|
+
* - `**` matches any characters including /
|
|
12
|
+
* - `?` matches any single character
|
|
13
|
+
*
|
|
14
|
+
* @param filepath - The file path to test
|
|
15
|
+
* @param pattern - The glob pattern to match against
|
|
16
|
+
* @returns True if the filepath matches the pattern
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* matchGlob("src/index.ts", "src/*.ts") // true
|
|
20
|
+
* matchGlob("src/utils/helper.ts", "src/**\/*.ts") // true
|
|
21
|
+
* matchGlob("test.js", "*.ts") // false
|
|
22
|
+
*/
|
|
23
|
+
export function matchGlob(filepath, pattern) {
|
|
24
|
+
// Convert glob pattern to regex
|
|
25
|
+
const regexPattern = pattern
|
|
26
|
+
.replace(/\./g, "\\.")
|
|
27
|
+
.replace(/\*\*/g, "{{GLOBSTAR}}")
|
|
28
|
+
.replace(/\*/g, "[^/]*")
|
|
29
|
+
.replace(/{{GLOBSTAR}}/g, ".*")
|
|
30
|
+
.replace(/\?/g, ".");
|
|
31
|
+
const regex = new RegExp(`^${regexPattern}$`, "i");
|
|
32
|
+
return regex.test(filepath);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=glob-matcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob-matcher.js","sourceRoot":"","sources":["../../src/utils/glob-matcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IACzD,gCAAgC;IAChC,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;SAChC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;SACvB,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC;SAC9B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEvB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cc-recommender",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP server for recommending Claude Code skills, plugins, and MCP servers",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"cc-recommender": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [
|
|
11
|
+
"mcp",
|
|
12
|
+
"claude-code",
|
|
13
|
+
"skills",
|
|
14
|
+
"plugins",
|
|
15
|
+
"recommendations"
|
|
16
|
+
],
|
|
17
|
+
"author": "Yuji",
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/yuji0809/cc-recommender.git"
|
|
22
|
+
},
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://github.com/yuji0809/cc-recommender/issues"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://github.com/yuji0809/cc-recommender#readme",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
29
|
+
"zod": "^3.23.0"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@biomejs/biome": "^2.3.13",
|
|
33
|
+
"@cc-audit/cc-audit": "^3.2.7",
|
|
34
|
+
"@types/node": "^22.0.0",
|
|
35
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
36
|
+
"husky": "^9.1.7",
|
|
37
|
+
"lint-staged": "^16.2.7",
|
|
38
|
+
"tsx": "^4.0.0",
|
|
39
|
+
"typescript": "^5.5.0",
|
|
40
|
+
"vitest": "^4.0.18"
|
|
41
|
+
},
|
|
42
|
+
"lint-staged": {
|
|
43
|
+
"*.{js,ts,json}": [
|
|
44
|
+
"biome check --write --no-errors-on-unmatched"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=22.0.0"
|
|
49
|
+
},
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public"
|
|
52
|
+
},
|
|
53
|
+
"files": [
|
|
54
|
+
"dist",
|
|
55
|
+
"data",
|
|
56
|
+
"README.md",
|
|
57
|
+
"LICENSE",
|
|
58
|
+
"CHANGELOG.md"
|
|
59
|
+
],
|
|
60
|
+
"scripts": {
|
|
61
|
+
"build": "tsc",
|
|
62
|
+
"dev": "tsc --watch",
|
|
63
|
+
"start": "node dist/index.js",
|
|
64
|
+
"fetch-data": "pnpm exec tsx scripts/fetch-data.ts",
|
|
65
|
+
"fetch-data:quick": "SKIP_SECURITY_SCAN=true pnpm exec tsx scripts/fetch-data.ts",
|
|
66
|
+
"fetch-data:full": "SKIP_SECURITY_SCAN=false pnpm exec tsx scripts/fetch-data.ts",
|
|
67
|
+
"test": "vitest run",
|
|
68
|
+
"test:watch": "vitest",
|
|
69
|
+
"test:coverage": "vitest run --coverage",
|
|
70
|
+
"lint": "biome check .",
|
|
71
|
+
"lint:fix": "biome check --write .",
|
|
72
|
+
"format": "biome format --write .",
|
|
73
|
+
"typecheck": "tsc --noEmit",
|
|
74
|
+
"audit": "npx @cc-audit/cc-audit check .",
|
|
75
|
+
"audit:baseline": "npx @cc-audit/cc-audit check . --save-baseline .cc-audit-baseline.json",
|
|
76
|
+
"audit:drift": "npx @cc-audit/cc-audit check . --check-drift .cc-audit-baseline.json",
|
|
77
|
+
"audit:watch": "npx @cc-audit/cc-audit check . --watch",
|
|
78
|
+
"license:check": "npx license-checker --summary --excludePrivatePackages --onlyAllow 'MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;0BSD;CC0-1.0;Unlicense'",
|
|
79
|
+
"license:full": "npx license-checker --excludePrivatePackages",
|
|
80
|
+
"check": "pnpm run typecheck && pnpm run lint && pnpm run audit && pnpm run license:check"
|
|
81
|
+
}
|
|
82
|
+
}
|