claudeos-core 1.6.2 → 1.7.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.
@@ -1,65 +1,65 @@
1
- /**
2
- * ClaudeOS-Core — Structure Scanner (Orchestrator)
3
- *
4
- * Scans project directory structure to discover domains (backend + frontend).
5
- * Delegates to language-specific scanners in ./scanners/.
6
- *
7
- * Supported scanners:
8
- * - scan-java.js — Java (5 patterns: A/B/C/D/E + fallback)
9
- * - scan-kotlin.js — Kotlin (multi-module + CQRS + single fallback)
10
- * - scan-node.js — Node.js (Express/NestJS/Fastify)
11
- * - scan-python.js — Python (Django/FastAPI/Flask)
12
- * - scan-frontend.js — Angular, Next.js, React, Vue (+ 4-stage fallback + stats)
13
- */
14
-
15
- const { scanJavaDomains } = require("./scanners/scan-java");
16
- const { scanKotlinDomains, resolveSharedQueryDomains } = require("./scanners/scan-kotlin");
17
- const { scanNodeDomains } = require("./scanners/scan-node");
18
- const { scanPythonDomains } = require("./scanners/scan-python");
19
- const { scanFrontendDomains, countFrontendStats } = require("./scanners/scan-frontend");
20
-
21
- async function scanStructure(stack, ROOT) {
22
- let backendDomains = [];
23
- let frontendDomains = [];
24
- let rootPackage = null;
25
-
26
- // ── Backend scanners ──
27
- if (stack.language === "java") {
28
- const r = await scanJavaDomains(stack, ROOT);
29
- backendDomains.push(...r.backendDomains);
30
- if (r.rootPackage) rootPackage = r.rootPackage;
31
- }
32
-
33
- if (stack.language === "kotlin") {
34
- const r = await scanKotlinDomains(stack, ROOT);
35
- backendDomains.push(...r.backendDomains);
36
- if (r.rootPackage) rootPackage = r.rootPackage;
37
- }
38
-
39
- if ((stack.language === "typescript" || stack.language === "javascript") && stack.framework) {
40
- const r = await scanNodeDomains(stack, ROOT);
41
- backendDomains.push(...r.backendDomains);
42
- }
43
-
44
- if (stack.language === "python") {
45
- const r = await scanPythonDomains(stack, ROOT);
46
- backendDomains.push(...r.backendDomains);
47
- }
48
-
49
- // ── Frontend scanner ──
50
- const fe = await scanFrontendDomains(stack, ROOT);
51
- frontendDomains.push(...fe.frontendDomains);
52
-
53
- // ── Frontend stats ──
54
- const frontend = await countFrontendStats(stack, ROOT);
55
-
56
- // ── Aggregate ──
57
- const allDomains = [
58
- ...backendDomains.sort((a, b) => b.totalFiles - a.totalFiles),
59
- ...frontendDomains.sort((a, b) => b.totalFiles - a.totalFiles),
60
- ];
61
-
62
- return { domains: allDomains, backendDomains, frontendDomains, rootPackage, frontend };
63
- }
64
-
65
- module.exports = { scanStructure, resolveSharedQueryDomains };
1
+ /**
2
+ * ClaudeOS-Core — Structure Scanner (Orchestrator)
3
+ *
4
+ * Scans project directory structure to discover domains (backend + frontend).
5
+ * Delegates to language-specific scanners in ./scanners/.
6
+ *
7
+ * Supported scanners:
8
+ * - scan-java.js — Java (5 patterns: A/B/C/D/E + fallback)
9
+ * - scan-kotlin.js — Kotlin (multi-module + CQRS + single fallback)
10
+ * - scan-node.js — Node.js (Express/NestJS/Fastify)
11
+ * - scan-python.js — Python (Django/FastAPI/Flask)
12
+ * - scan-frontend.js — Angular, Next.js, React, Vue (+ 4-stage fallback + stats)
13
+ */
14
+
15
+ const { scanJavaDomains } = require("./scanners/scan-java");
16
+ const { scanKotlinDomains, resolveSharedQueryDomains } = require("./scanners/scan-kotlin");
17
+ const { scanNodeDomains } = require("./scanners/scan-node");
18
+ const { scanPythonDomains } = require("./scanners/scan-python");
19
+ const { scanFrontendDomains, countFrontendStats } = require("./scanners/scan-frontend");
20
+
21
+ async function scanStructure(stack, ROOT) {
22
+ let backendDomains = [];
23
+ let frontendDomains = [];
24
+ let rootPackage = null;
25
+
26
+ // ── Backend scanners ──
27
+ if (stack.language === "java") {
28
+ const r = await scanJavaDomains(stack, ROOT);
29
+ backendDomains.push(...r.backendDomains);
30
+ if (r.rootPackage) rootPackage = r.rootPackage;
31
+ }
32
+
33
+ if (stack.language === "kotlin") {
34
+ const r = await scanKotlinDomains(stack, ROOT);
35
+ backendDomains.push(...r.backendDomains);
36
+ if (r.rootPackage) rootPackage = r.rootPackage;
37
+ }
38
+
39
+ if ((stack.language === "typescript" || stack.language === "javascript") && stack.framework && stack.framework !== "vite") {
40
+ const r = await scanNodeDomains(stack, ROOT);
41
+ backendDomains.push(...r.backendDomains);
42
+ }
43
+
44
+ if (stack.language === "python") {
45
+ const r = await scanPythonDomains(stack, ROOT);
46
+ backendDomains.push(...r.backendDomains);
47
+ }
48
+
49
+ // ── Frontend scanner ──
50
+ const fe = await scanFrontendDomains(stack, ROOT);
51
+ frontendDomains.push(...fe.frontendDomains);
52
+
53
+ // ── Frontend stats ──
54
+ const frontend = await countFrontendStats(stack, ROOT);
55
+
56
+ // ── Aggregate ──
57
+ const allDomains = [
58
+ ...backendDomains.sort((a, b) => b.totalFiles - a.totalFiles),
59
+ ...frontendDomains.sort((a, b) => b.totalFiles - a.totalFiles),
60
+ ];
61
+
62
+ return { domains: allDomains, backendDomains, frontendDomains, rootPackage, frontend };
63
+ }
64
+
65
+ module.exports = { scanStructure, resolveSharedQueryDomains };