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":"index.d.ts","sourceRoot":"","sources":["../../../src/services/analyzer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/analyzer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go.mod Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Go go.mod files for dependencies
|
|
5
|
+
*/
|
|
6
|
+
import type { ProjectInfo } from "../../../types/service-types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Parse go.mod and extract dependencies
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseGoMod(projectPath: string, info: ProjectInfo): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=go-mod.parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-mod.parser.d.ts","sourceRoot":"","sources":["../../../../src/services/analyzer/parsers/go-mod.parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Go.mod Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Go go.mod files for dependencies
|
|
5
|
+
*/
|
|
6
|
+
import { readFile } from "node:fs/promises";
|
|
7
|
+
import { join } from "node:path";
|
|
8
|
+
/**
|
|
9
|
+
* Parse go.mod and extract dependencies
|
|
10
|
+
*/
|
|
11
|
+
export async function parseGoMod(projectPath, info) {
|
|
12
|
+
try {
|
|
13
|
+
const goModPath = join(projectPath, "go.mod");
|
|
14
|
+
const content = await readFile(goModPath, "utf-8");
|
|
15
|
+
// Extract require statements
|
|
16
|
+
const requireMatch = content.match(/require\s*\(([\s\S]*?)\)/);
|
|
17
|
+
if (requireMatch) {
|
|
18
|
+
const deps = requireMatch[1]
|
|
19
|
+
.split("\n")
|
|
20
|
+
.map((line) => line.trim())
|
|
21
|
+
.filter((line) => line && !line.startsWith("//"))
|
|
22
|
+
.map((line) => {
|
|
23
|
+
const match = line.match(/^([^\s]+)/);
|
|
24
|
+
return match ? match[1] : null;
|
|
25
|
+
})
|
|
26
|
+
.filter((dep) => dep !== null);
|
|
27
|
+
info.dependencies.push(...deps);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// No go.mod
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=go-mod.parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go-mod.parser.js","sourceRoot":"","sources":["../../../../src/services/analyzer/parsers/go-mod.parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAmB,EAAE,IAAiB;IACrE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEnD,6BAA6B;QAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC/D,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC;iBACzB,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBAChD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACjC,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YAEhD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser Exports
|
|
3
|
+
*
|
|
4
|
+
* Central export point for all dependency parsers
|
|
5
|
+
*/
|
|
6
|
+
export { parseGoMod } from "./go-mod.parser.js";
|
|
7
|
+
export { parsePackageJson } from "./package-json.parser.js";
|
|
8
|
+
export { parseRequirementsTxt } from "./requirements-txt.parser.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/analyzer/parsers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser Exports
|
|
3
|
+
*
|
|
4
|
+
* Central export point for all dependency parsers
|
|
5
|
+
*/
|
|
6
|
+
export { parseGoMod } from "./go-mod.parser.js";
|
|
7
|
+
export { parsePackageJson } from "./package-json.parser.js";
|
|
8
|
+
export { parseRequirementsTxt } from "./requirements-txt.parser.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/analyzer/parsers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package.json Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Node.js package.json files for dependencies and frameworks
|
|
5
|
+
*/
|
|
6
|
+
import type { ProjectInfo } from "../../../types/service-types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Parse package.json and extract dependencies and frameworks
|
|
9
|
+
*/
|
|
10
|
+
export declare function parsePackageJson(projectPath: string, info: ProjectInfo): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=package-json.parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json.parser.d.ts","sourceRoot":"","sources":["../../../../src/services/analyzer/parsers/package-json.parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AA0BnE;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B5F"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package.json Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Node.js package.json files for dependencies and frameworks
|
|
5
|
+
*/
|
|
6
|
+
import { readFile } from "node:fs/promises";
|
|
7
|
+
import { join } from "node:path";
|
|
8
|
+
/** Framework detection mappings for Node.js dependencies */
|
|
9
|
+
const FRAMEWORK_MAPPINGS = {
|
|
10
|
+
next: "nextjs",
|
|
11
|
+
react: "react",
|
|
12
|
+
vue: "vue",
|
|
13
|
+
"@angular/core": "angular",
|
|
14
|
+
svelte: "svelte",
|
|
15
|
+
"@remix-run/react": "remix",
|
|
16
|
+
astro: "astro",
|
|
17
|
+
express: "express",
|
|
18
|
+
fastify: "fastify",
|
|
19
|
+
koa: "koa",
|
|
20
|
+
nestjs: "nestjs",
|
|
21
|
+
"@nestjs/core": "nestjs",
|
|
22
|
+
prisma: "prisma",
|
|
23
|
+
"@prisma/client": "prisma",
|
|
24
|
+
"drizzle-orm": "drizzle",
|
|
25
|
+
typeorm: "typeorm",
|
|
26
|
+
mongoose: "mongoose",
|
|
27
|
+
tailwindcss: "tailwind",
|
|
28
|
+
"@supabase/supabase-js": "supabase",
|
|
29
|
+
firebase: "firebase",
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Parse package.json and extract dependencies and frameworks
|
|
33
|
+
*/
|
|
34
|
+
export async function parsePackageJson(projectPath, info) {
|
|
35
|
+
try {
|
|
36
|
+
const packageJsonPath = join(projectPath, "package.json");
|
|
37
|
+
const content = await readFile(packageJsonPath, "utf-8");
|
|
38
|
+
const pkg = JSON.parse(content);
|
|
39
|
+
// Add name/description
|
|
40
|
+
if (pkg.description) {
|
|
41
|
+
info.description = pkg.description;
|
|
42
|
+
}
|
|
43
|
+
// Collect dependencies
|
|
44
|
+
const allDeps = [
|
|
45
|
+
...Object.keys(pkg.dependencies || {}),
|
|
46
|
+
...Object.keys(pkg.devDependencies || {}),
|
|
47
|
+
...Object.keys(pkg.peerDependencies || {}),
|
|
48
|
+
];
|
|
49
|
+
info.dependencies.push(...allDeps);
|
|
50
|
+
// Detect frameworks from dependencies
|
|
51
|
+
for (const [dep, framework] of Object.entries(FRAMEWORK_MAPPINGS)) {
|
|
52
|
+
if (allDeps.includes(dep)) {
|
|
53
|
+
info.frameworks.push(framework);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// No package.json or parse error
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=package-json.parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-json.parser.js","sourceRoot":"","sources":["../../../../src/services/analyzer/parsers/package-json.parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,4DAA4D;AAC5D,MAAM,kBAAkB,GAA2B;IACjD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;IACV,eAAe,EAAE,SAAS;IAC1B,MAAM,EAAE,QAAQ;IAChB,kBAAkB,EAAE,OAAO;IAC3B,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,QAAQ;IACxB,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,QAAQ;IAC1B,aAAa,EAAE,SAAS;IACxB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,UAAU;IACvB,uBAAuB,EAAE,UAAU;IACnC,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB,EAAE,IAAiB;IAC3E,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhC,uBAAuB;QACvB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;QACrC,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG;YACd,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;YACtC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;YACzC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;SAC3C,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAEnC,sCAAsC;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Requirements.txt Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Python requirements.txt files for dependencies and frameworks
|
|
5
|
+
*/
|
|
6
|
+
import type { ProjectInfo } from "../../../types/service-types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Parse requirements.txt and extract dependencies and frameworks
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseRequirementsTxt(projectPath: string, info: ProjectInfo): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=requirements-txt.parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirements-txt.parser.d.ts","sourceRoot":"","sources":["../../../../src/services/analyzer/parsers/requirements-txt.parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAenE;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BhG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Requirements.txt Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses Python requirements.txt files for dependencies and frameworks
|
|
5
|
+
*/
|
|
6
|
+
import { readFile } from "node:fs/promises";
|
|
7
|
+
import { join } from "node:path";
|
|
8
|
+
/** Framework detection mappings for Python dependencies */
|
|
9
|
+
const FRAMEWORK_MAPPINGS = {
|
|
10
|
+
django: "django",
|
|
11
|
+
flask: "flask",
|
|
12
|
+
fastapi: "fastapi",
|
|
13
|
+
pytorch: "pytorch",
|
|
14
|
+
torch: "pytorch",
|
|
15
|
+
tensorflow: "tensorflow",
|
|
16
|
+
pandas: "pandas",
|
|
17
|
+
numpy: "numpy",
|
|
18
|
+
"scikit-learn": "sklearn",
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Parse requirements.txt and extract dependencies and frameworks
|
|
22
|
+
*/
|
|
23
|
+
export async function parseRequirementsTxt(projectPath, info) {
|
|
24
|
+
try {
|
|
25
|
+
const reqPath = join(projectPath, "requirements.txt");
|
|
26
|
+
const content = await readFile(reqPath, "utf-8");
|
|
27
|
+
const deps = content
|
|
28
|
+
.split("\n")
|
|
29
|
+
.map((line) => line.trim())
|
|
30
|
+
.filter((line) => line && !line.startsWith("#"))
|
|
31
|
+
.map((line) => {
|
|
32
|
+
// Remove version specifiers
|
|
33
|
+
const match = line.match(/^([a-zA-Z0-9_-]+)/);
|
|
34
|
+
return match ? match[1].toLowerCase() : null;
|
|
35
|
+
})
|
|
36
|
+
.filter((dep) => dep !== null);
|
|
37
|
+
info.dependencies.push(...deps);
|
|
38
|
+
// Detect Python frameworks
|
|
39
|
+
for (const [dep, framework] of Object.entries(FRAMEWORK_MAPPINGS)) {
|
|
40
|
+
if (deps.includes(dep)) {
|
|
41
|
+
info.frameworks.push(framework);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// No requirements.txt
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=requirements-txt.parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirements-txt.parser.js","sourceRoot":"","sources":["../../../../src/services/analyzer/parsers/requirements-txt.parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,2DAA2D;AAC3D,MAAM,kBAAkB,GAA2B;IACjD,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,cAAc,EAAE,SAAS;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB,EAAE,IAAiB;IAC/E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEjD,MAAM,IAAI,GAAG,OAAO;aACjB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,4BAA4B;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/C,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAEhC,2BAA2B;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sBAAsB;IACxB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Analyzer Service
|
|
3
|
+
*
|
|
4
|
+
* Main service for analyzing project structure and extracting information
|
|
5
|
+
*/
|
|
6
|
+
import type { ProjectInfo } from "../../types/service-types.js";
|
|
7
|
+
/**
|
|
8
|
+
* Analyze a project directory and extract information
|
|
9
|
+
*/
|
|
10
|
+
export declare function analyzeProject(projectPath: string): Promise<ProjectInfo>;
|
|
11
|
+
//# sourceMappingURL=project-analyzer.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-analyzer.service.d.ts","sourceRoot":"","sources":["../../../src/services/analyzer/project-analyzer.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAKhE;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA2B9E"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Analyzer Service
|
|
3
|
+
*
|
|
4
|
+
* Main service for analyzing project structure and extracting information
|
|
5
|
+
*/
|
|
6
|
+
import { readdir } from "node:fs/promises";
|
|
7
|
+
import { extname, join } from "node:path";
|
|
8
|
+
import { FILE_SCAN_CONFIG, SKIP_DIRECTORIES } from "../../config/constants.js";
|
|
9
|
+
import { CONFIG_FILE_MAPPINGS, EXTENSION_TO_LANGUAGE } from "../../config/file-mappings.js";
|
|
10
|
+
import { parseGoMod } from "./parsers/go-mod.parser.js";
|
|
11
|
+
import { parsePackageJson } from "./parsers/package-json.parser.js";
|
|
12
|
+
import { parseRequirementsTxt } from "./parsers/requirements-txt.parser.js";
|
|
13
|
+
/**
|
|
14
|
+
* Analyze a project directory and extract information
|
|
15
|
+
*/
|
|
16
|
+
export async function analyzeProject(projectPath) {
|
|
17
|
+
const info = {
|
|
18
|
+
path: projectPath,
|
|
19
|
+
languages: [],
|
|
20
|
+
dependencies: [],
|
|
21
|
+
files: [],
|
|
22
|
+
frameworks: [],
|
|
23
|
+
};
|
|
24
|
+
try {
|
|
25
|
+
// Scan files
|
|
26
|
+
await scanDirectory(projectPath, info, 0);
|
|
27
|
+
// Parse dependency files
|
|
28
|
+
await parsePackageJson(projectPath, info);
|
|
29
|
+
await parseRequirementsTxt(projectPath, info);
|
|
30
|
+
await parseGoMod(projectPath, info);
|
|
31
|
+
// Deduplicate
|
|
32
|
+
info.languages = [...new Set(info.languages)];
|
|
33
|
+
info.dependencies = [...new Set(info.dependencies)];
|
|
34
|
+
info.frameworks = [...new Set(info.frameworks)];
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.error("Error analyzing project:", error);
|
|
38
|
+
}
|
|
39
|
+
return info;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Recursively scan directory for files and detect languages/frameworks
|
|
43
|
+
*/
|
|
44
|
+
async function scanDirectory(dirPath, info, depth) {
|
|
45
|
+
// Limit recursion depth
|
|
46
|
+
if (depth > FILE_SCAN_CONFIG.maxDepth)
|
|
47
|
+
return;
|
|
48
|
+
try {
|
|
49
|
+
const entries = await readdir(dirPath, { withFileTypes: true });
|
|
50
|
+
for (const entry of entries) {
|
|
51
|
+
const fullPath = join(dirPath, entry.name);
|
|
52
|
+
const relativePath = fullPath.replace(`${info.path}/`, "");
|
|
53
|
+
// Skip common ignored directories
|
|
54
|
+
if (shouldSkipDirectory(entry.name))
|
|
55
|
+
continue;
|
|
56
|
+
if (entry.isDirectory()) {
|
|
57
|
+
// Check for config directories
|
|
58
|
+
const mapping = CONFIG_FILE_MAPPINGS[entry.name];
|
|
59
|
+
if (mapping) {
|
|
60
|
+
if (mapping.framework)
|
|
61
|
+
info.frameworks.push(mapping.framework);
|
|
62
|
+
if (mapping.language)
|
|
63
|
+
info.languages.push(mapping.language);
|
|
64
|
+
}
|
|
65
|
+
// Recurse
|
|
66
|
+
await scanDirectory(fullPath, info, depth + 1);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// Add file to list (limit to max files)
|
|
70
|
+
if (info.files.length < FILE_SCAN_CONFIG.maxFiles) {
|
|
71
|
+
info.files.push(relativePath);
|
|
72
|
+
}
|
|
73
|
+
// Check config files
|
|
74
|
+
const configKey = Object.keys(CONFIG_FILE_MAPPINGS).find((key) => relativePath === key || relativePath.endsWith(`/${key}`));
|
|
75
|
+
if (configKey) {
|
|
76
|
+
const mapping = CONFIG_FILE_MAPPINGS[configKey];
|
|
77
|
+
if (mapping.framework)
|
|
78
|
+
info.frameworks.push(mapping.framework);
|
|
79
|
+
if (mapping.language)
|
|
80
|
+
info.languages.push(mapping.language);
|
|
81
|
+
}
|
|
82
|
+
// Detect language from extension
|
|
83
|
+
const ext = extname(entry.name).toLowerCase();
|
|
84
|
+
const lang = EXTENSION_TO_LANGUAGE[ext];
|
|
85
|
+
if (lang) {
|
|
86
|
+
info.languages.push(lang);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// Directory might not be readable
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Check if directory should be skipped during scanning
|
|
97
|
+
*/
|
|
98
|
+
function shouldSkipDirectory(name) {
|
|
99
|
+
return SKIP_DIRECTORIES.includes(name) || name.startsWith(".");
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=project-analyzer.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-analyzer.service.js","sourceRoot":"","sources":["../../../src/services/analyzer/project-analyzer.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Analyzer (Legacy Export)
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from the new analyzer directory structure
|
|
5
|
+
* This file maintains backwards compatibility
|
|
6
|
+
*/
|
|
7
|
+
export { analyzeProject } from "./analyzer/project-analyzer.service.js";
|
|
8
|
+
//# sourceMappingURL=analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/services/analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Analyzer (Legacy Export)
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from the new analyzer directory structure
|
|
5
|
+
* This file maintains backwards compatibility
|
|
6
|
+
*/
|
|
7
|
+
export { analyzeProject } from "./analyzer/project-analyzer.service.js";
|
|
8
|
+
//# sourceMappingURL=analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/services/analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Fetcher
|
|
3
|
+
*
|
|
4
|
+
* Fetches MCP servers from awesome-mcp-servers repository
|
|
5
|
+
* Source: https://github.com/punkpeye/awesome-mcp-servers
|
|
6
|
+
*/
|
|
7
|
+
import type { Recommendation } from "../types/domain-types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Fetch MCP servers from awesome-mcp-servers
|
|
10
|
+
*/
|
|
11
|
+
export declare function fetchMCPServers(): Promise<Recommendation[]>;
|
|
12
|
+
//# sourceMappingURL=mcp-fetcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-fetcher.d.ts","sourceRoot":"","sources":["../../src/services/mcp-fetcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AA+D/D;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAqBjE"}
|