claudeos-core 2.4.4 → 2.5.1
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 +125 -0
- package/README.de.md +12 -10
- package/README.es.md +12 -10
- package/README.fr.md +12 -10
- package/README.hi.md +12 -10
- package/README.ja.md +12 -10
- package/README.ko.md +12 -10
- package/README.md +12 -10
- package/README.ru.md +12 -10
- package/README.vi.md +12 -10
- package/README.zh-CN.md +12 -10
- package/bin/commands/init.js +121 -24
- package/bin/commands/lint.js +2 -0
- package/bin/commands/memory.js +10 -3
- package/content-validator/index.js +82 -13
- package/lib/env-parser.js +98 -12
- package/lib/memory-scaffold.js +35 -16
- package/manifest-generator/index.js +15 -4
- package/package.json +92 -92
- package/pass-json-validator/index.js +1 -1
- package/pass-prompts/templates/angular/pass3.md +2 -1
- package/pass-prompts/templates/common/claude-md-scaffold.md +1 -1
- package/pass-prompts/templates/common/pass3a-facts.md +11 -9
- package/pass-prompts/templates/common/pass4.md +3 -3
- package/pass-prompts/templates/java-spring/pass1.md +10 -2
- package/pass-prompts/templates/java-spring/pass3.md +5 -4
- package/pass-prompts/templates/kotlin-spring/pass3.md +2 -2
- package/pass-prompts/templates/node-express/pass3.md +1 -1
- package/pass-prompts/templates/node-fastify/pass3.md +1 -0
- package/pass-prompts/templates/node-nestjs/pass3.md +1 -0
- package/pass-prompts/templates/node-nextjs/pass3.md +1 -1
- package/pass-prompts/templates/node-vite/pass3.md +1 -0
- package/pass-prompts/templates/python-django/pass3.md +1 -1
- package/pass-prompts/templates/python-fastapi/pass3.md +1 -1
- package/pass-prompts/templates/python-flask/pass3.md +1 -0
- package/pass-prompts/templates/vue-nuxt/pass3.md +1 -0
- package/plan-installer/domain-grouper.js +4 -1
- package/plan-installer/index.js +26 -7
- package/plan-installer/jvm-detect.js +562 -0
- package/plan-installer/pass3-context-builder.js +10 -0
- package/plan-installer/prompt-generator.js +18 -2
- package/plan-installer/scanners/scan-frontend.js +67 -6
- package/plan-installer/scanners/scan-java.js +214 -15
- package/plan-installer/scanners/scan-kotlin.js +68 -3
- package/plan-installer/scanners/scan-node.js +115 -0
- package/plan-installer/scanners/scan-python.js +56 -0
- package/plan-installer/source-paths.js +61 -0
- package/plan-installer/stack-detector.js +726 -51
- package/plan-installer/structure-scanner.js +15 -4
|
@@ -17,6 +17,7 @@ const { scanKotlinDomains, resolveSharedQueryDomains } = require("./scanners/sca
|
|
|
17
17
|
const { scanNodeDomains } = require("./scanners/scan-node");
|
|
18
18
|
const { scanPythonDomains } = require("./scanners/scan-python");
|
|
19
19
|
const { scanFrontendDomains, countFrontendStats } = require("./scanners/scan-frontend");
|
|
20
|
+
const path = require("path");
|
|
20
21
|
|
|
21
22
|
async function scanStructure(stack, ROOT) {
|
|
22
23
|
let backendDomains = [];
|
|
@@ -36,22 +37,32 @@ async function scanStructure(stack, ROOT) {
|
|
|
36
37
|
if (r.rootPackage) rootPackage = r.rootPackage;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
// v2.5.0 — dispatch is framework-aware for Python. A Django/FastAPI/Flask
|
|
41
|
+
// repo may carry a package.json (tailwind/postcss tooling, or a SPA in a
|
|
42
|
+
// sub-directory) that sets `language` to typescript/javascript; the backend
|
|
43
|
+
// is still Python and must be scanned by the Python scanner, never by the
|
|
44
|
+
// Node scanner.
|
|
45
|
+
const PY_FRAMEWORKS = ["django", "fastapi", "flask"];
|
|
46
|
+
const isPythonBackend = stack.language === "python" || PY_FRAMEWORKS.includes(stack.framework);
|
|
47
|
+
|
|
48
|
+
if ((stack.language === "typescript" || stack.language === "javascript") && stack.framework && stack.framework !== "vite" && !isPythonBackend) {
|
|
40
49
|
const r = await scanNodeDomains(stack, ROOT);
|
|
41
50
|
backendDomains.push(...r.backendDomains);
|
|
42
51
|
}
|
|
43
52
|
|
|
44
|
-
if (
|
|
53
|
+
if (isPythonBackend) {
|
|
45
54
|
const r = await scanPythonDomains(stack, ROOT);
|
|
46
55
|
backendDomains.push(...r.backendDomains);
|
|
47
56
|
}
|
|
48
57
|
|
|
49
58
|
// ── Frontend scanner ──
|
|
50
|
-
|
|
59
|
+
// v2.5.0: when the SPA lives in frontend/ (stack.frontendRoot), scan there.
|
|
60
|
+
const FE_ROOT = stack.frontendRoot ? path.join(ROOT, stack.frontendRoot) : ROOT;
|
|
61
|
+
const fe = await scanFrontendDomains(stack, FE_ROOT, { projectRoot: ROOT });
|
|
51
62
|
frontendDomains.push(...fe.frontendDomains);
|
|
52
63
|
|
|
53
64
|
// ── Frontend stats ──
|
|
54
|
-
const frontend = await countFrontendStats(stack,
|
|
65
|
+
const frontend = await countFrontendStats(stack, FE_ROOT);
|
|
55
66
|
|
|
56
67
|
// ── Aggregate ──
|
|
57
68
|
const allDomains = [
|