prelude-context 1.6.0 → 1.8.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.md +63 -4
- package/dist/bin/prelude.js +2 -0
- package/dist/bin/prelude.js.map +1 -1
- package/dist/src/commands/export.d.ts.map +1 -1
- package/dist/src/commands/export.js +5 -3
- package/dist/src/commands/export.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +151 -0
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/update.js +70 -8
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/validate.d.ts +3 -0
- package/dist/src/commands/validate.d.ts.map +1 -0
- package/dist/src/commands/validate.js +203 -0
- package/dist/src/commands/validate.js.map +1 -0
- package/dist/src/constants.d.ts +1 -1
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +4 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/core/claude-md-parser.d.ts +33 -0
- package/dist/src/core/claude-md-parser.d.ts.map +1 -0
- package/dist/src/core/claude-md-parser.js +410 -0
- package/dist/src/core/claude-md-parser.js.map +1 -0
- package/dist/src/core/exporter.d.ts +2 -1
- package/dist/src/core/exporter.d.ts.map +1 -1
- package/dist/src/core/exporter.js +159 -1
- package/dist/src/core/exporter.js.map +1 -1
- package/dist/src/core/infer.d.ts.map +1 -1
- package/dist/src/core/infer.js +403 -21
- package/dist/src/core/infer.js.map +1 -1
- package/dist/src/core/merger.d.ts.map +1 -1
- package/dist/src/core/merger.js +76 -9
- package/dist/src/core/merger.js.map +1 -1
- package/dist/src/core/source-scanner.d.ts.map +1 -1
- package/dist/src/core/source-scanner.js +58 -1
- package/dist/src/core/source-scanner.js.map +1 -1
- package/dist/src/utils/fs.d.ts.map +1 -1
- package/dist/src/utils/fs.js +2 -1
- package/dist/src/utils/fs.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../../src/core/exporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../../src/core/exporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../../src/core/infer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAwPpF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../../src/core/infer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAwPpF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwI5E;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAopBhE;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA+Y9E;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAyP5E"}
|
package/dist/src/core/infer.js
CHANGED
|
@@ -277,6 +277,49 @@ export async function inferProjectMetadata(rootDir) {
|
|
|
277
277
|
}
|
|
278
278
|
catch { }
|
|
279
279
|
}
|
|
280
|
+
// Try Cargo.toml for Rust projects
|
|
281
|
+
const cargoProjectPath = join(rootDir, 'Cargo.toml');
|
|
282
|
+
if (await fileExists(cargoProjectPath)) {
|
|
283
|
+
try {
|
|
284
|
+
const cargoContent = await readFile(cargoProjectPath, 'utf-8');
|
|
285
|
+
const cargo = parsePyprojectToml(cargoContent);
|
|
286
|
+
const pkg = cargo?.package || {};
|
|
287
|
+
if (!name && pkg.name)
|
|
288
|
+
name = pkg.name;
|
|
289
|
+
if (!description && pkg.description)
|
|
290
|
+
description = pkg.description;
|
|
291
|
+
if (!projectVersion && pkg.version)
|
|
292
|
+
projectVersion = pkg.version;
|
|
293
|
+
if (!license && pkg.license)
|
|
294
|
+
license = pkg.license;
|
|
295
|
+
if (!repository && pkg.repository)
|
|
296
|
+
repository = pkg.repository;
|
|
297
|
+
if (!homepage && pkg.homepage)
|
|
298
|
+
homepage = pkg.homepage;
|
|
299
|
+
if (team.length === 0 && Array.isArray(pkg.authors)) {
|
|
300
|
+
for (const author of pkg.authors) {
|
|
301
|
+
if (typeof author === 'string') {
|
|
302
|
+
team.push({ name: author.replace(/<.*>/, '').trim() });
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch { }
|
|
308
|
+
}
|
|
309
|
+
// Try go.mod for Go projects (module name only)
|
|
310
|
+
const goModProjectPath = join(rootDir, 'go.mod');
|
|
311
|
+
if (await fileExists(goModProjectPath) && !name) {
|
|
312
|
+
try {
|
|
313
|
+
const goModContent = await readFile(goModProjectPath, 'utf-8');
|
|
314
|
+
const moduleMatch = goModContent.match(/^module\s+(\S+)/m);
|
|
315
|
+
if (moduleMatch) {
|
|
316
|
+
// Use the last segment of the module path as name
|
|
317
|
+
const parts = moduleMatch[1].split('/');
|
|
318
|
+
name = parts[parts.length - 1];
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
catch { }
|
|
322
|
+
}
|
|
280
323
|
// Fall back to directory name for name
|
|
281
324
|
if (!name)
|
|
282
325
|
name = basename(rootDir);
|
|
@@ -893,12 +936,255 @@ export async function inferStack(rootDir) {
|
|
|
893
936
|
if (await fileExists(cargoPath)) {
|
|
894
937
|
stack.language = 'Rust';
|
|
895
938
|
stack.packageManager = 'cargo';
|
|
939
|
+
try {
|
|
940
|
+
const cargoContent = await readFile(cargoPath, 'utf-8');
|
|
941
|
+
const cargo = parsePyprojectToml(cargoContent); // TOML parser works for Cargo.toml too
|
|
942
|
+
// Rust edition as runtime
|
|
943
|
+
const edition = cargo?.package?.edition;
|
|
944
|
+
if (edition) {
|
|
945
|
+
stack.runtime = `Rust Edition ${edition}`;
|
|
946
|
+
}
|
|
947
|
+
// Collect all deps
|
|
948
|
+
const cargoDeps = cargo?.dependencies || {};
|
|
949
|
+
const cargoDevDeps = cargo?.['dev-dependencies'] || {};
|
|
950
|
+
const cargoBuildDeps = cargo?.['build-dependencies'] || {};
|
|
951
|
+
const allCrateDeps = new Set([
|
|
952
|
+
...Object.keys(cargoDeps).map((s) => s.toLowerCase()),
|
|
953
|
+
...Object.keys(cargoDevDeps).map((s) => s.toLowerCase()),
|
|
954
|
+
...Object.keys(cargoBuildDeps).map((s) => s.toLowerCase()),
|
|
955
|
+
]);
|
|
956
|
+
// Store deps
|
|
957
|
+
const rustDepsRecord = {};
|
|
958
|
+
for (const [name, spec] of Object.entries(cargoDeps)) {
|
|
959
|
+
rustDepsRecord[name] = typeof spec === 'string' ? spec : '*';
|
|
960
|
+
}
|
|
961
|
+
if (Object.keys(rustDepsRecord).length > 0)
|
|
962
|
+
stack.dependencies = rustDepsRecord;
|
|
963
|
+
const rustDevDepsRecord = {};
|
|
964
|
+
for (const [name, spec] of Object.entries(cargoDevDeps)) {
|
|
965
|
+
rustDevDepsRecord[name] = typeof spec === 'string' ? spec : '*';
|
|
966
|
+
}
|
|
967
|
+
if (Object.keys(rustDevDepsRecord).length > 0)
|
|
968
|
+
stack.devDependencies = rustDevDepsRecord;
|
|
969
|
+
// === FRAMEWORKS ===
|
|
970
|
+
const rustFrameworks = [];
|
|
971
|
+
// Web frameworks
|
|
972
|
+
if (allCrateDeps.has('actix-web'))
|
|
973
|
+
rustFrameworks.push('Actix Web');
|
|
974
|
+
if (allCrateDeps.has('axum'))
|
|
975
|
+
rustFrameworks.push('Axum');
|
|
976
|
+
if (allCrateDeps.has('rocket'))
|
|
977
|
+
rustFrameworks.push('Rocket');
|
|
978
|
+
if (allCrateDeps.has('warp'))
|
|
979
|
+
rustFrameworks.push('Warp');
|
|
980
|
+
if (allCrateDeps.has('tide'))
|
|
981
|
+
rustFrameworks.push('Tide');
|
|
982
|
+
// Async runtime
|
|
983
|
+
if (allCrateDeps.has('tokio'))
|
|
984
|
+
rustFrameworks.push('Tokio');
|
|
985
|
+
if (allCrateDeps.has('async-std'))
|
|
986
|
+
rustFrameworks.push('async-std');
|
|
987
|
+
// CLI
|
|
988
|
+
if (allCrateDeps.has('clap'))
|
|
989
|
+
rustFrameworks.push('Clap');
|
|
990
|
+
if (allCrateDeps.has('structopt'))
|
|
991
|
+
rustFrameworks.push('StructOpt');
|
|
992
|
+
// Serialization
|
|
993
|
+
if (allCrateDeps.has('serde'))
|
|
994
|
+
rustFrameworks.push('Serde');
|
|
995
|
+
// GUI
|
|
996
|
+
if (allCrateDeps.has('tauri'))
|
|
997
|
+
rustFrameworks.push('Tauri');
|
|
998
|
+
if (allCrateDeps.has('egui'))
|
|
999
|
+
rustFrameworks.push('egui');
|
|
1000
|
+
if (allCrateDeps.has('iced'))
|
|
1001
|
+
rustFrameworks.push('Iced');
|
|
1002
|
+
if (rustFrameworks.length > 0) {
|
|
1003
|
+
stack.frameworks = rustFrameworks;
|
|
1004
|
+
stack.framework = rustFrameworks[0];
|
|
1005
|
+
}
|
|
1006
|
+
// === TESTING ===
|
|
1007
|
+
const rustTesting = [];
|
|
1008
|
+
if (allCrateDeps.has('criterion'))
|
|
1009
|
+
rustTesting.push('Criterion (benchmarks)');
|
|
1010
|
+
if (allCrateDeps.has('proptest'))
|
|
1011
|
+
rustTesting.push('proptest');
|
|
1012
|
+
if (allCrateDeps.has('quickcheck'))
|
|
1013
|
+
rustTesting.push('quickcheck');
|
|
1014
|
+
if (allCrateDeps.has('mockall'))
|
|
1015
|
+
rustTesting.push('mockall');
|
|
1016
|
+
if (allCrateDeps.has('rstest'))
|
|
1017
|
+
rustTesting.push('rstest');
|
|
1018
|
+
// Rust has built-in testing
|
|
1019
|
+
rustTesting.unshift('cargo test (built-in)');
|
|
1020
|
+
stack.testingFrameworks = rustTesting;
|
|
1021
|
+
// === ORM/DATABASE ===
|
|
1022
|
+
if (allCrateDeps.has('diesel'))
|
|
1023
|
+
stack.orm = 'Diesel';
|
|
1024
|
+
else if (allCrateDeps.has('sea-orm') || allCrateDeps.has('sea_orm'))
|
|
1025
|
+
stack.orm = 'SeaORM';
|
|
1026
|
+
else if (allCrateDeps.has('sqlx'))
|
|
1027
|
+
stack.orm = 'SQLx';
|
|
1028
|
+
const rustDatabases = [];
|
|
1029
|
+
if (allCrateDeps.has('tokio-postgres') || allCrateDeps.has('sqlx') || allCrateDeps.has('diesel'))
|
|
1030
|
+
rustDatabases.push('PostgreSQL');
|
|
1031
|
+
if (allCrateDeps.has('mongodb'))
|
|
1032
|
+
rustDatabases.push('MongoDB');
|
|
1033
|
+
if (allCrateDeps.has('redis'))
|
|
1034
|
+
rustDatabases.push('Redis');
|
|
1035
|
+
if (allCrateDeps.has('rusqlite'))
|
|
1036
|
+
rustDatabases.push('SQLite');
|
|
1037
|
+
if (rustDatabases.length > 0)
|
|
1038
|
+
stack.database = rustDatabases.join(', ');
|
|
1039
|
+
// === BUILD TOOLS ===
|
|
1040
|
+
const rustBuildTools = [];
|
|
1041
|
+
if (allCrateDeps.has('maturin'))
|
|
1042
|
+
rustBuildTools.push('Maturin');
|
|
1043
|
+
if (allCrateDeps.has('wasm-bindgen'))
|
|
1044
|
+
rustBuildTools.push('wasm-bindgen');
|
|
1045
|
+
if (allCrateDeps.has('napi') || allCrateDeps.has('napi-derive'))
|
|
1046
|
+
rustBuildTools.push('napi-rs');
|
|
1047
|
+
if (rustBuildTools.length > 0)
|
|
1048
|
+
stack.buildTools = rustBuildTools;
|
|
1049
|
+
// === DEPLOYMENT ===
|
|
1050
|
+
if (!stack.deployment) {
|
|
1051
|
+
if (await fileExists(join(rootDir, 'Dockerfile')))
|
|
1052
|
+
stack.deployment = 'Docker';
|
|
1053
|
+
else if (await fileExists(join(rootDir, 'fly.toml')))
|
|
1054
|
+
stack.deployment = 'Fly.io';
|
|
1055
|
+
else if (await fileExists(join(rootDir, 'shuttle.toml')) || allCrateDeps.has('shuttle-runtime'))
|
|
1056
|
+
stack.deployment = 'Shuttle';
|
|
1057
|
+
}
|
|
1058
|
+
// === CI/CD ===
|
|
1059
|
+
if (!stack.cicd || stack.cicd.length === 0) {
|
|
1060
|
+
const cicd = [];
|
|
1061
|
+
if (await fileExists(join(rootDir, '.github/workflows')))
|
|
1062
|
+
cicd.push('GitHub Actions');
|
|
1063
|
+
if (await fileExists(join(rootDir, '.gitlab-ci.yml')))
|
|
1064
|
+
cicd.push('GitLab CI');
|
|
1065
|
+
stack.cicd = cicd;
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
catch { }
|
|
896
1069
|
}
|
|
897
1070
|
// Check for Go project
|
|
898
1071
|
const goModPath = join(rootDir, 'go.mod');
|
|
899
1072
|
if (await fileExists(goModPath)) {
|
|
900
1073
|
stack.language = 'Go';
|
|
901
1074
|
stack.packageManager = 'go';
|
|
1075
|
+
try {
|
|
1076
|
+
const goModContent = await readFile(goModPath, 'utf-8');
|
|
1077
|
+
// Parse Go version
|
|
1078
|
+
const goVersionMatch = goModContent.match(/^go\s+(\S+)/m);
|
|
1079
|
+
if (goVersionMatch) {
|
|
1080
|
+
stack.runtime = `Go ${goVersionMatch[1]}`;
|
|
1081
|
+
}
|
|
1082
|
+
// Parse module path
|
|
1083
|
+
const moduleMatch = goModContent.match(/^module\s+(\S+)/m);
|
|
1084
|
+
const modulePath = moduleMatch?.[1] || '';
|
|
1085
|
+
// Parse require block
|
|
1086
|
+
const allGoMods = new Set();
|
|
1087
|
+
const depsRecord = {};
|
|
1088
|
+
// Single-line requires: require github.com/foo/bar v1.2.3
|
|
1089
|
+
const singleReqs = goModContent.matchAll(/^require\s+(\S+)\s+(\S+)/gm);
|
|
1090
|
+
for (const m of singleReqs) {
|
|
1091
|
+
const modName = m[1].toLowerCase();
|
|
1092
|
+
allGoMods.add(modName);
|
|
1093
|
+
depsRecord[m[1]] = m[2];
|
|
1094
|
+
}
|
|
1095
|
+
// Block requires
|
|
1096
|
+
const requireBlocks = goModContent.matchAll(/require\s*\(([\s\S]*?)\)/g);
|
|
1097
|
+
for (const block of requireBlocks) {
|
|
1098
|
+
const lines = block[1].split('\n');
|
|
1099
|
+
for (const line of lines) {
|
|
1100
|
+
const depMatch = line.trim().match(/^(\S+)\s+(\S+)/);
|
|
1101
|
+
if (depMatch && !depMatch[1].startsWith('//')) {
|
|
1102
|
+
allGoMods.add(depMatch[1].toLowerCase());
|
|
1103
|
+
depsRecord[depMatch[1]] = depMatch[2];
|
|
1104
|
+
}
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
if (Object.keys(depsRecord).length > 0)
|
|
1108
|
+
stack.dependencies = depsRecord;
|
|
1109
|
+
// Helper: check if any go module path contains a substring
|
|
1110
|
+
const hasGoMod = (name) => [...allGoMods].some(m => m.includes(name));
|
|
1111
|
+
// === FRAMEWORKS ===
|
|
1112
|
+
const goFrameworks = [];
|
|
1113
|
+
if (hasGoMod('gin-gonic/gin'))
|
|
1114
|
+
goFrameworks.push('Gin');
|
|
1115
|
+
if (hasGoMod('labstack/echo'))
|
|
1116
|
+
goFrameworks.push('Echo');
|
|
1117
|
+
if (hasGoMod('gofiber/fiber'))
|
|
1118
|
+
goFrameworks.push('Fiber');
|
|
1119
|
+
if (hasGoMod('go-chi/chi'))
|
|
1120
|
+
goFrameworks.push('Chi');
|
|
1121
|
+
if (hasGoMod('gorilla/mux'))
|
|
1122
|
+
goFrameworks.push('Gorilla Mux');
|
|
1123
|
+
if (hasGoMod('beego'))
|
|
1124
|
+
goFrameworks.push('Beego');
|
|
1125
|
+
if (hasGoMod('grpc'))
|
|
1126
|
+
goFrameworks.push('gRPC');
|
|
1127
|
+
// CLI
|
|
1128
|
+
if (hasGoMod('spf13/cobra'))
|
|
1129
|
+
goFrameworks.push('Cobra');
|
|
1130
|
+
if (hasGoMod('urfave/cli'))
|
|
1131
|
+
goFrameworks.push('urfave/cli');
|
|
1132
|
+
// Config
|
|
1133
|
+
if (hasGoMod('spf13/viper'))
|
|
1134
|
+
goFrameworks.push('Viper');
|
|
1135
|
+
if (goFrameworks.length > 0) {
|
|
1136
|
+
stack.frameworks = goFrameworks;
|
|
1137
|
+
stack.framework = goFrameworks[0];
|
|
1138
|
+
}
|
|
1139
|
+
// === TESTING ===
|
|
1140
|
+
const goTesting = ['go test (built-in)'];
|
|
1141
|
+
if (hasGoMod('stretchr/testify'))
|
|
1142
|
+
goTesting.push('Testify');
|
|
1143
|
+
if (hasGoMod('onsi/ginkgo'))
|
|
1144
|
+
goTesting.push('Ginkgo');
|
|
1145
|
+
if (hasGoMod('onsi/gomega'))
|
|
1146
|
+
goTesting.push('Gomega');
|
|
1147
|
+
stack.testingFrameworks = goTesting;
|
|
1148
|
+
// === ORM/DATABASE ===
|
|
1149
|
+
if (hasGoMod('gorm.io'))
|
|
1150
|
+
stack.orm = 'GORM';
|
|
1151
|
+
else if (hasGoMod('ent/ent'))
|
|
1152
|
+
stack.orm = 'Ent';
|
|
1153
|
+
else if (hasGoMod('sqlc'))
|
|
1154
|
+
stack.orm = 'sqlc';
|
|
1155
|
+
else if (hasGoMod('jmoiron/sqlx'))
|
|
1156
|
+
stack.orm = 'sqlx';
|
|
1157
|
+
const goDatabases = [];
|
|
1158
|
+
if (hasGoMod('lib/pq') || hasGoMod('jackc/pgx') || hasGoMod('pgx'))
|
|
1159
|
+
goDatabases.push('PostgreSQL');
|
|
1160
|
+
if (hasGoMod('go.mongodb.org') || hasGoMod('mongo-driver'))
|
|
1161
|
+
goDatabases.push('MongoDB');
|
|
1162
|
+
if (hasGoMod('go-redis/redis') || hasGoMod('redis/go-redis'))
|
|
1163
|
+
goDatabases.push('Redis');
|
|
1164
|
+
if (hasGoMod('mattn/go-sqlite3'))
|
|
1165
|
+
goDatabases.push('SQLite');
|
|
1166
|
+
if (hasGoMod('go-sql-driver/mysql'))
|
|
1167
|
+
goDatabases.push('MySQL');
|
|
1168
|
+
if (goDatabases.length > 0)
|
|
1169
|
+
stack.database = goDatabases.join(', ');
|
|
1170
|
+
// === DEPLOYMENT ===
|
|
1171
|
+
if (!stack.deployment) {
|
|
1172
|
+
if (await fileExists(join(rootDir, 'Dockerfile')))
|
|
1173
|
+
stack.deployment = 'Docker';
|
|
1174
|
+
else if (await fileExists(join(rootDir, 'fly.toml')))
|
|
1175
|
+
stack.deployment = 'Fly.io';
|
|
1176
|
+
}
|
|
1177
|
+
// === CI/CD ===
|
|
1178
|
+
if (!stack.cicd || stack.cicd.length === 0) {
|
|
1179
|
+
const cicd = [];
|
|
1180
|
+
if (await fileExists(join(rootDir, '.github/workflows')))
|
|
1181
|
+
cicd.push('GitHub Actions');
|
|
1182
|
+
if (await fileExists(join(rootDir, '.gitlab-ci.yml')))
|
|
1183
|
+
cicd.push('GitLab CI');
|
|
1184
|
+
stack.cicd = cicd;
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
catch { }
|
|
902
1188
|
}
|
|
903
1189
|
return stack;
|
|
904
1190
|
}
|
|
@@ -1007,29 +1293,107 @@ export async function inferArchitecture(rootDir) {
|
|
|
1007
1293
|
architecture.entryPoints = architecture.entryPoints || [];
|
|
1008
1294
|
architecture.entryPoints.push({ file: 'manage.py', purpose: 'Django management' });
|
|
1009
1295
|
}
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1296
|
+
// Rust architecture detection
|
|
1297
|
+
let hasRustBin = false;
|
|
1298
|
+
let hasRustLib = false;
|
|
1299
|
+
let hasRustWebFramework = false;
|
|
1300
|
+
let hasRustCliFramework = false;
|
|
1301
|
+
const cargoArchPath = join(rootDir, 'Cargo.toml');
|
|
1302
|
+
if (await fileExists(cargoArchPath)) {
|
|
1303
|
+
try {
|
|
1304
|
+
const cargoContent = await readFile(cargoArchPath, 'utf-8');
|
|
1305
|
+
const cargo = parsePyprojectToml(cargoContent);
|
|
1306
|
+
hasRustBin = await fileExists(join(rootDir, 'src/main.rs'));
|
|
1307
|
+
hasRustLib = await fileExists(join(rootDir, 'src/lib.rs'));
|
|
1308
|
+
const cargoDeps = Object.keys(cargo?.dependencies || {}).map(s => s.toLowerCase());
|
|
1309
|
+
hasRustWebFramework = cargoDeps.some(d => ['actix-web', 'axum', 'rocket', 'warp', 'tide'].includes(d));
|
|
1310
|
+
hasRustCliFramework = cargoDeps.some(d => ['clap', 'structopt'].includes(d));
|
|
1311
|
+
// Rust entry points
|
|
1312
|
+
if (hasRustBin) {
|
|
1313
|
+
architecture.entryPoints = architecture.entryPoints || [];
|
|
1314
|
+
architecture.entryPoints.push({ file: 'src/main.rs', purpose: 'Binary entry point' });
|
|
1315
|
+
}
|
|
1316
|
+
if (hasRustLib) {
|
|
1317
|
+
architecture.entryPoints = architecture.entryPoints || [];
|
|
1318
|
+
architecture.entryPoints.push({ file: 'src/lib.rs', purpose: 'Library entry point' });
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
catch { }
|
|
1027
1322
|
}
|
|
1028
|
-
|
|
1029
|
-
|
|
1323
|
+
// Go architecture detection
|
|
1324
|
+
let hasGoCmd = false;
|
|
1325
|
+
let hasGoWebFramework = false;
|
|
1326
|
+
let hasGoCliFramework = false;
|
|
1327
|
+
const goModArchPath = join(rootDir, 'go.mod');
|
|
1328
|
+
if (await fileExists(goModArchPath)) {
|
|
1329
|
+
try {
|
|
1330
|
+
const goModContent = await readFile(goModArchPath, 'utf-8');
|
|
1331
|
+
hasGoCmd = relativeDirs.some(d => d === 'cmd' || d.startsWith('cmd/'));
|
|
1332
|
+
const goMainExists = await fileExists(join(rootDir, 'main.go'));
|
|
1333
|
+
const goModLower = goModContent.toLowerCase();
|
|
1334
|
+
hasGoWebFramework = ['gin-gonic', 'labstack/echo', 'gofiber/fiber', 'go-chi/chi', 'gorilla/mux'].some(f => goModLower.includes(f));
|
|
1335
|
+
hasGoCliFramework = ['spf13/cobra', 'urfave/cli'].some(f => goModLower.includes(f));
|
|
1336
|
+
// Go entry points
|
|
1337
|
+
if (hasGoCmd) {
|
|
1338
|
+
architecture.entryPoints = architecture.entryPoints || [];
|
|
1339
|
+
architecture.entryPoints.push({ file: 'cmd/', purpose: 'CLI entry points' });
|
|
1340
|
+
}
|
|
1341
|
+
else if (goMainExists) {
|
|
1342
|
+
architecture.entryPoints = architecture.entryPoints || [];
|
|
1343
|
+
architecture.entryPoints.push({ file: 'main.go', purpose: 'Application entry' });
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
catch { }
|
|
1030
1347
|
}
|
|
1031
|
-
|
|
1032
|
-
|
|
1348
|
+
// === Score-based architecture type detection ===
|
|
1349
|
+
// Each signal contributes to a score for each type
|
|
1350
|
+
const typeScores = {
|
|
1351
|
+
monorepo: 0, microservices: 0, cli: 0, backend: 0,
|
|
1352
|
+
fullstack: 0, library: 0, frontend: 0
|
|
1353
|
+
};
|
|
1354
|
+
// Monorepo signals
|
|
1355
|
+
if (hasPackages || hasApps)
|
|
1356
|
+
typeScores.monorepo += 10;
|
|
1357
|
+
// Microservices signals
|
|
1358
|
+
if (hasServices)
|
|
1359
|
+
typeScores.microservices += 8;
|
|
1360
|
+
// CLI signals
|
|
1361
|
+
if (hasPythonScripts && !hasPythonWebFramework)
|
|
1362
|
+
typeScores.cli += 8;
|
|
1363
|
+
if (hasRustCliFramework && hasRustBin)
|
|
1364
|
+
typeScores.cli += 8;
|
|
1365
|
+
if (hasGoCliFramework || hasGoCmd)
|
|
1366
|
+
typeScores.cli += 8;
|
|
1367
|
+
if (await fileExists(join(rootDir, 'bin')))
|
|
1368
|
+
typeScores.cli += 5;
|
|
1369
|
+
// Backend signals
|
|
1370
|
+
if (hasPythonWebFramework)
|
|
1371
|
+
typeScores.backend += 8;
|
|
1372
|
+
if (hasRustWebFramework)
|
|
1373
|
+
typeScores.backend += 8;
|
|
1374
|
+
if (hasGoWebFramework)
|
|
1375
|
+
typeScores.backend += 8;
|
|
1376
|
+
if (relativeDirs.some(d => d.includes('api')))
|
|
1377
|
+
typeScores.backend += 2;
|
|
1378
|
+
// Fullstack signals
|
|
1379
|
+
if (hasApp && hasSrc)
|
|
1380
|
+
typeScores.fullstack += 5;
|
|
1381
|
+
if (hasPythonWebFramework && relativeDirs.some(d => d.includes('dashboard') || d.includes('frontend')))
|
|
1382
|
+
typeScores.fullstack += 7;
|
|
1383
|
+
// Library signals
|
|
1384
|
+
if (hasLib && !hasApp && !hasPages)
|
|
1385
|
+
typeScores.library += 5;
|
|
1386
|
+
if (hasRustLib && !hasRustBin)
|
|
1387
|
+
typeScores.library += 8;
|
|
1388
|
+
// Frontend signals
|
|
1389
|
+
if (hasPages || (hasApp && !hasSrc && !hasServices))
|
|
1390
|
+
typeScores.frontend += 5;
|
|
1391
|
+
// Pick highest score, with fallback
|
|
1392
|
+
const sortedTypes = Object.entries(typeScores)
|
|
1393
|
+
.filter(([, score]) => score > 0)
|
|
1394
|
+
.sort((a, b) => b[1] - a[1]);
|
|
1395
|
+
if (sortedTypes.length > 0) {
|
|
1396
|
+
architecture.type = sortedTypes[0][0];
|
|
1033
1397
|
}
|
|
1034
1398
|
else {
|
|
1035
1399
|
architecture.type = 'backend';
|
|
@@ -1153,6 +1517,24 @@ export async function inferArchitecture(rootDir) {
|
|
|
1153
1517
|
if (await fileExists(join(rootDir, 'mypy.ini')) || await fileExists(join(rootDir, '.mypy.ini'))) {
|
|
1154
1518
|
conventions.push('mypy type checking');
|
|
1155
1519
|
}
|
|
1520
|
+
// Rust conventions
|
|
1521
|
+
if (await fileExists(cargoArchPath)) {
|
|
1522
|
+
if (await fileExists(join(rootDir, 'rustfmt.toml')) || await fileExists(join(rootDir, '.rustfmt.toml'))) {
|
|
1523
|
+
conventions.push('rustfmt code formatting');
|
|
1524
|
+
}
|
|
1525
|
+
if (await fileExists(join(rootDir, 'clippy.toml')) || await fileExists(join(rootDir, '.clippy.toml'))) {
|
|
1526
|
+
conventions.push('Clippy linting');
|
|
1527
|
+
}
|
|
1528
|
+
// Rust always has these by convention
|
|
1529
|
+
conventions.push('cargo fmt / cargo clippy');
|
|
1530
|
+
}
|
|
1531
|
+
// Go conventions
|
|
1532
|
+
if (await fileExists(goModArchPath)) {
|
|
1533
|
+
if (await fileExists(join(rootDir, '.golangci.yml')) || await fileExists(join(rootDir, '.golangci.yaml'))) {
|
|
1534
|
+
conventions.push('golangci-lint');
|
|
1535
|
+
}
|
|
1536
|
+
conventions.push('gofmt / go vet');
|
|
1537
|
+
}
|
|
1156
1538
|
architecture.conventions = conventions;
|
|
1157
1539
|
// Detect entry points (preserve any already detected, e.g. from pyproject.toml)
|
|
1158
1540
|
const entryPoints = architecture.entryPoints || [];
|