@vibgrate/cli 2026.818.2 → 2026.819.2
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/DOCS.md +3 -3
- package/dist/agent-ZJRWCMR6.js +30 -0
- package/dist/{agent-X6VYCE63.js.map → agent-ZJRWCMR6.js.map} +1 -1
- package/dist/{approvals-TPQFQSWG.js → approvals-YTUXBZWQ.js} +7 -7
- package/dist/{approvals-TPQFQSWG.js.map → approvals-YTUXBZWQ.js.map} +1 -1
- package/dist/attach-WOA25VNH.js +10 -0
- package/dist/{attach-G5JUIWIT.js.map → attach-WOA25VNH.js.map} +1 -1
- package/dist/baseline-TVRRUZGA.js +9 -0
- package/dist/{baseline-DXI64VLW.js.map → baseline-TVRRUZGA.js.map} +1 -1
- package/dist/{chunk-V6WONSIK.js → chunk-24HKTTFV.js} +5 -5
- package/dist/{chunk-V6WONSIK.js.map → chunk-24HKTTFV.js.map} +1 -1
- package/dist/{chunk-VMAIDM4K.js → chunk-2C4QT5D7.js} +5 -5
- package/dist/{chunk-VMAIDM4K.js.map → chunk-2C4QT5D7.js.map} +1 -1
- package/dist/{chunk-JGA63RGF.js → chunk-2ZBLZ2S3.js} +13 -13
- package/dist/{chunk-JGA63RGF.js.map → chunk-2ZBLZ2S3.js.map} +1 -1
- package/dist/{chunk-OV4KGXPD.js → chunk-57ZRSCHY.js} +3 -3
- package/dist/{chunk-OV4KGXPD.js.map → chunk-57ZRSCHY.js.map} +1 -1
- package/dist/{chunk-NDNNOAS6.js → chunk-6H2QV5DR.js} +3 -3
- package/dist/{chunk-NDNNOAS6.js.map → chunk-6H2QV5DR.js.map} +1 -1
- package/dist/{chunk-2C33WR5O.js → chunk-7BSUPHX6.js} +3 -3
- package/dist/{chunk-2C33WR5O.js.map → chunk-7BSUPHX6.js.map} +1 -1
- package/dist/{chunk-LJSJX6U4.js → chunk-A3WWRW7U.js} +3 -3
- package/dist/{chunk-LJSJX6U4.js.map → chunk-A3WWRW7U.js.map} +1 -1
- package/dist/{chunk-X2MQ7UFL.js → chunk-AP3JN33O.js} +12 -12
- package/dist/{chunk-X2MQ7UFL.js.map → chunk-AP3JN33O.js.map} +1 -1
- package/dist/{chunk-O5IJDMTB.js → chunk-AQZYDFEK.js} +4 -4
- package/dist/{chunk-O5IJDMTB.js.map → chunk-AQZYDFEK.js.map} +1 -1
- package/dist/{chunk-VQ5KMHW6.js → chunk-BQ6NTRRK.js} +44 -15
- package/dist/chunk-BQ6NTRRK.js.map +1 -0
- package/dist/{chunk-HF6R73UC.js → chunk-C2EZIAA3.js} +27 -13
- package/dist/chunk-C2EZIAA3.js.map +1 -0
- package/dist/{chunk-MRZHNUN7.js → chunk-CA4YQBA7.js} +4 -4
- package/dist/{chunk-MRZHNUN7.js.map → chunk-CA4YQBA7.js.map} +1 -1
- package/dist/{chunk-YF54UMOU.js → chunk-CBL3VY7J.js} +3 -3
- package/dist/{chunk-YF54UMOU.js.map → chunk-CBL3VY7J.js.map} +1 -1
- package/dist/{chunk-PRHH4DVO.js → chunk-FCMWHSQ6.js} +3 -3
- package/dist/{chunk-PRHH4DVO.js.map → chunk-FCMWHSQ6.js.map} +1 -1
- package/dist/{chunk-V2UGRUTL.js → chunk-GBXOAO5V.js} +176 -37
- package/dist/chunk-GBXOAO5V.js.map +1 -0
- package/dist/{chunk-JFE7XCAE.js → chunk-IASO2HCI.js} +3 -3
- package/dist/{chunk-JFE7XCAE.js.map → chunk-IASO2HCI.js.map} +1 -1
- package/dist/{chunk-ZUOBPKVK.js → chunk-IMI2VHHZ.js} +3 -3
- package/dist/{chunk-ZUOBPKVK.js.map → chunk-IMI2VHHZ.js.map} +1 -1
- package/dist/{chunk-NKLYDSB7.js → chunk-JPOYXG7Z.js} +10 -10
- package/dist/{chunk-NKLYDSB7.js.map → chunk-JPOYXG7Z.js.map} +1 -1
- package/dist/{chunk-L2OS4WHT.js → chunk-MMJFHEZ4.js} +4 -4
- package/dist/{chunk-L2OS4WHT.js.map → chunk-MMJFHEZ4.js.map} +1 -1
- package/dist/{chunk-E3O5UKNA.js → chunk-NKKOGJ63.js} +35 -17
- package/dist/chunk-NKKOGJ63.js.map +1 -0
- package/dist/{chunk-7AVYKZEM.js → chunk-NV7XNBX4.js} +4 -4
- package/dist/{chunk-7AVYKZEM.js.map → chunk-NV7XNBX4.js.map} +1 -1
- package/dist/{chunk-NJQZRM55.js → chunk-OGFOJG4H.js} +6 -6
- package/dist/{chunk-NJQZRM55.js.map → chunk-OGFOJG4H.js.map} +1 -1
- package/dist/{chunk-NZELMYT4.js → chunk-OLIMW4PQ.js} +8 -56
- package/dist/chunk-OLIMW4PQ.js.map +1 -0
- package/dist/{chunk-B4EXD5LK.js → chunk-PJRPSYFQ.js} +9 -7
- package/dist/chunk-PJRPSYFQ.js.map +1 -0
- package/dist/{chunk-NG4KIJW6.js → chunk-PVNALGTG.js} +10 -6
- package/dist/chunk-PVNALGTG.js.map +1 -0
- package/dist/{chunk-BMOFJIMG.js → chunk-QE6F62FR.js} +3 -3
- package/dist/{chunk-BMOFJIMG.js.map → chunk-QE6F62FR.js.map} +1 -1
- package/dist/{chunk-6ABMV74F.js → chunk-R5TQBIR6.js} +4 -4
- package/dist/{chunk-6ABMV74F.js.map → chunk-R5TQBIR6.js.map} +1 -1
- package/dist/{chunk-5I4VSBWQ.js → chunk-RTURQXQL.js} +372 -113
- package/dist/chunk-RTURQXQL.js.map +1 -0
- package/dist/{chunk-74UBGF4P.js → chunk-SHD5TCZ5.js} +3 -3
- package/dist/{chunk-74UBGF4P.js.map → chunk-SHD5TCZ5.js.map} +1 -1
- package/dist/{chunk-KU7FI5EV.js → chunk-USPMMVNH.js} +3 -3
- package/dist/{chunk-KU7FI5EV.js.map → chunk-USPMMVNH.js.map} +1 -1
- package/dist/{chunk-E53WBVUQ.js → chunk-VHRSG6CF.js} +3 -3
- package/dist/{chunk-E53WBVUQ.js.map → chunk-VHRSG6CF.js.map} +1 -1
- package/dist/{chunk-I5LP55B6.js → chunk-W44THEXF.js} +3 -3
- package/dist/{chunk-I5LP55B6.js.map → chunk-W44THEXF.js.map} +1 -1
- package/dist/{chunk-AEJYA6HZ.js → chunk-W6ASIMG5.js} +7 -7
- package/dist/{chunk-AEJYA6HZ.js.map → chunk-W6ASIMG5.js.map} +1 -1
- package/dist/{chunk-CQDUBAQY.js → chunk-WNKGRXUA.js} +3 -3
- package/dist/{chunk-CQDUBAQY.js.map → chunk-WNKGRXUA.js.map} +1 -1
- package/dist/{chunk-RHKOUPWT.js → chunk-WPLOEFZU.js} +7 -5
- package/dist/chunk-WPLOEFZU.js.map +1 -0
- package/dist/{chunk-FJG5AXKZ.js → chunk-WUFIXAEJ.js} +22 -6
- package/dist/chunk-WUFIXAEJ.js.map +1 -0
- package/dist/{chunk-6PFHDHOL.js → chunk-XLQ4YHS3.js} +16 -14
- package/dist/chunk-XLQ4YHS3.js.map +1 -0
- package/dist/{chunk-BWPBB45M.js → chunk-XP6UUCZZ.js} +3 -3
- package/dist/{chunk-BWPBB45M.js.map → chunk-XP6UUCZZ.js.map} +1 -1
- package/dist/{chunk-BPF3YX2U.js → chunk-XQNKCA2J.js} +6 -3
- package/dist/chunk-XQNKCA2J.js.map +1 -0
- package/dist/{chunk-FFXGWFAE.js → chunk-XW2XQM3C.js} +7 -7
- package/dist/{chunk-FFXGWFAE.js.map → chunk-XW2XQM3C.js.map} +1 -1
- package/dist/{chunk-7N4Y3E47.js → chunk-YJYEPYB2.js} +13 -18
- package/dist/chunk-YJYEPYB2.js.map +1 -0
- package/dist/chunk-ZUZHYAJK.js +6 -0
- package/dist/{chunk-4NTNMT6T.js.map → chunk-ZUZHYAJK.js.map} +1 -1
- package/dist/cli.js +112 -108
- package/dist/cli.js.map +1 -1
- package/dist/client-P5XSRFV4.js +8 -0
- package/dist/{client-UQIELEEZ.js.map → client-P5XSRFV4.js.map} +1 -1
- package/dist/daemon-YKOEP3XA.js +30 -0
- package/dist/{daemon-GUMWMKCA.js.map → daemon-YKOEP3XA.js.map} +1 -1
- package/dist/embed-worker-main.js +5 -5
- package/dist/ensure-map-BLRJDO2Y.js +40 -0
- package/dist/{ensure-map-FHDJTO7Y.js.map → ensure-map-BLRJDO2Y.js.map} +1 -1
- package/dist/federation-M4ZNXOPX.js +8 -0
- package/dist/{federation-MDQPO3PW.js.map → federation-M4ZNXOPX.js.map} +1 -1
- package/dist/fs-FO3NQHPT.js +4 -0
- package/dist/fs-FO3NQHPT.js.map +1 -0
- package/dist/git-ref-LMT3EXYY.js +4 -0
- package/dist/{git-ref-RSRAN4OH.js.map → git-ref-LMT3EXYY.js.map} +1 -1
- package/dist/graph-backend-NTYONTWW.js +16 -0
- package/dist/{graph-backend-W2D3HRRD.js.map → graph-backend-NTYONTWW.js.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +24 -25
- package/dist/index.js.map +1 -1
- package/dist/{interactive-2MK4TLRD.js → interactive-B3WTC7LB.js} +41 -42
- package/dist/interactive-B3WTC7LB.js.map +1 -0
- package/dist/{llm-host-XFYFOAAX.js → llm-host-QVTJJVER.js} +5 -5
- package/dist/{llm-host-XFYFOAAX.js.map → llm-host-QVTJJVER.js.map} +1 -1
- package/dist/load-AJROS77R.js +11 -0
- package/dist/{load-4R4HYMBB.js.map → load-AJROS77R.js.map} +1 -1
- package/dist/local-runtime-GA43KYS5.js +6 -0
- package/dist/{local-runtime-6SNWKSA7.js.map → local-runtime-GA43KYS5.js.map} +1 -1
- package/dist/model-manager-6H3TMZKK.js +10 -0
- package/dist/{model-manager-SXHZ5VD4.js.map → model-manager-6H3TMZKK.js.map} +1 -1
- package/dist/{model-orchestrator-LHYPJBFH.js → model-orchestrator-X3NE3Y2G.js} +6 -6
- package/dist/{model-orchestrator-LHYPJBFH.js.map → model-orchestrator-X3NE3Y2G.js.map} +1 -1
- package/dist/parse-worker.js +2 -2
- package/dist/{paths-62AKTFSR.js → paths-RVK6FKRN.js} +4 -4
- package/dist/{paths-62AKTFSR.js.map → paths-RVK6FKRN.js.map} +1 -1
- package/dist/publish-27S66NOW.js +9 -0
- package/dist/{publish-7YHRTBRA.js.map → publish-27S66NOW.js.map} +1 -1
- package/dist/resolve-gguf-WVKVDN45.js +9 -0
- package/dist/{resolve-gguf-SDIYGGI6.js.map → resolve-gguf-WVKVDN45.js.map} +1 -1
- package/dist/{run-outcome-H5GVDDZJ.js → run-outcome-SBBSTSH3.js} +7 -7
- package/dist/{run-outcome-H5GVDDZJ.js.map → run-outcome-SBBSTSH3.js.map} +1 -1
- package/dist/runtime-session-JYYKQVDX.js +26 -0
- package/dist/{runtime-session-JBIHHH5N.js.map → runtime-session-JYYKQVDX.js.map} +1 -1
- package/dist/session-2ZMHZ2O6.js +17 -0
- package/dist/{session-N5IU4K5Q.js.map → session-2ZMHZ2O6.js.map} +1 -1
- package/dist/{slot-subscription-25GOARW5.js → slot-subscription-C2ZUJED6.js} +5 -5
- package/dist/{slot-subscription-25GOARW5.js.map → slot-subscription-C2ZUJED6.js.map} +1 -1
- package/dist/{stream-json-4WLSUF6I.js → stream-json-ZWGB4C47.js} +17 -17
- package/dist/{stream-json-4WLSUF6I.js.map → stream-json-ZWGB4C47.js.map} +1 -1
- package/dist/version-5QIEUXU6.js +4 -0
- package/dist/{version-DTEU3SQD.js.map → version-5QIEUXU6.js.map} +1 -1
- package/dist/{vg-mcp-bridge-KDVYIMFX.js → vg-mcp-bridge-4FETMJ6M.js} +16 -15
- package/dist/vg-mcp-bridge-4FETMJ6M.js.map +1 -0
- package/dist/{vgd-M7UOPWLB.js → vgd-R524P5BJ.js} +13 -14
- package/dist/vgd-R524P5BJ.js.map +1 -0
- package/package.json +1 -1
- package/dist/agent-X6VYCE63.js +0 -30
- package/dist/attach-G5JUIWIT.js +0 -10
- package/dist/baseline-DXI64VLW.js +0 -9
- package/dist/chunk-4NTNMT6T.js +0 -6
- package/dist/chunk-5I4VSBWQ.js.map +0 -1
- package/dist/chunk-6PFHDHOL.js.map +0 -1
- package/dist/chunk-7N4Y3E47.js.map +0 -1
- package/dist/chunk-B4EXD5LK.js.map +0 -1
- package/dist/chunk-BPF3YX2U.js.map +0 -1
- package/dist/chunk-E3O5UKNA.js.map +0 -1
- package/dist/chunk-FJG5AXKZ.js.map +0 -1
- package/dist/chunk-HF6R73UC.js.map +0 -1
- package/dist/chunk-NG4KIJW6.js.map +0 -1
- package/dist/chunk-NZELMYT4.js.map +0 -1
- package/dist/chunk-POOL355F.js +0 -237
- package/dist/chunk-POOL355F.js.map +0 -1
- package/dist/chunk-RHKOUPWT.js.map +0 -1
- package/dist/chunk-V2UGRUTL.js.map +0 -1
- package/dist/chunk-VQ5KMHW6.js.map +0 -1
- package/dist/client-UQIELEEZ.js +0 -8
- package/dist/daemon-GUMWMKCA.js +0 -31
- package/dist/ensure-map-FHDJTO7Y.js +0 -41
- package/dist/federation-MDQPO3PW.js +0 -7
- package/dist/fs-TLPOWC2D.js +0 -4
- package/dist/fs-TLPOWC2D.js.map +0 -1
- package/dist/git-ref-RSRAN4OH.js +0 -4
- package/dist/graph-backend-W2D3HRRD.js +0 -16
- package/dist/interactive-2MK4TLRD.js.map +0 -1
- package/dist/load-4R4HYMBB.js +0 -11
- package/dist/local-runtime-6SNWKSA7.js +0 -6
- package/dist/model-manager-SXHZ5VD4.js +0 -10
- package/dist/publish-7YHRTBRA.js +0 -9
- package/dist/resolve-gguf-SDIYGGI6.js +0 -9
- package/dist/runtime-session-JBIHHH5N.js +0 -27
- package/dist/session-N5IU4K5Q.js +0 -17
- package/dist/version-DTEU3SQD.js +0 -4
- package/dist/vg-mcp-bridge-KDVYIMFX.js.map +0 -1
- package/dist/vgd-M7UOPWLB.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { pathExists, readTextFile, readJsonFile, Semaphore, FileCache, quickTreeCount, ensureDir, writeJsonFile, writeTextFile, findPackageJsonFiles, findFiles, findSolutionFiles, isSkippedDirName } from './chunk-
|
|
1
|
+
import { pathExists, readTextFile, readJsonFile, Semaphore, FileCache, quickTreeCount, ensureDir, writeJsonFile, writeTextFile, findPackageJsonFiles, findFiles, findSolutionFiles, isSkippedDirName } from './chunk-PVNALGTG.js';
|
|
2
2
|
import { redactUrlCredentials, DOTNET_AST_ROLES, JAVA_AST_ROLES, GO_AST_ROLES, SPRING_AST_ROLES, DJANGO_AST_ROLES, FASTAPI_AST_ROLES, NESTJS_AST_ROLES } from './chunk-T7RSQ5WD.js';
|
|
3
3
|
import * as path31 from 'path';
|
|
4
4
|
import { basename, dirname } from 'path';
|
|
@@ -407,7 +407,10 @@ async function npmViewJson(args, cwd) {
|
|
|
407
407
|
return new Promise((resolve9, reject) => {
|
|
408
408
|
const child = spawn(NPM_COMMAND, ["view", ...args, "--json"], {
|
|
409
409
|
cwd,
|
|
410
|
-
stdio: ["ignore", "pipe", "pipe"]
|
|
410
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
411
|
+
// Scans also run from console-less hosts (vgd background rebuilds,
|
|
412
|
+
// editor-spawned servers) — never flash a console window on Windows.
|
|
413
|
+
windowsHide: true
|
|
411
414
|
});
|
|
412
415
|
let out = "";
|
|
413
416
|
let err = "";
|
|
@@ -2380,7 +2383,7 @@ async function scanPythonProjects(rootDir, pypiCache, cache, projectScanTimeout,
|
|
|
2380
2383
|
return results;
|
|
2381
2384
|
}
|
|
2382
2385
|
async function findPythonManifests(rootDir) {
|
|
2383
|
-
const { findFiles: findFiles2 } = await import('./fs-
|
|
2386
|
+
const { findFiles: findFiles2 } = await import('./fs-FO3NQHPT.js');
|
|
2384
2387
|
return findFiles2(rootDir, (name) => PYTHON_MANIFEST_FILES.has(name) || /^requirements.*\.txt$/.test(name));
|
|
2385
2388
|
}
|
|
2386
2389
|
async function scanOnePythonProject(dir, manifestFiles, rootDir, pypiCache, cache, catalog) {
|
|
@@ -2820,7 +2823,7 @@ async function scanJavaProjects(rootDir, mavenCache, cache, projectScanTimeout,
|
|
|
2820
2823
|
return results;
|
|
2821
2824
|
}
|
|
2822
2825
|
async function findJavaManifests(rootDir) {
|
|
2823
|
-
const { findFiles: findFiles2 } = await import('./fs-
|
|
2826
|
+
const { findFiles: findFiles2 } = await import('./fs-FO3NQHPT.js');
|
|
2824
2827
|
return findFiles2(rootDir, (name) => JAVA_MANIFEST_FILES.has(name));
|
|
2825
2828
|
}
|
|
2826
2829
|
async function scanOneJavaProject(dir, manifestFiles, rootDir, mavenCache, cache, catalog) {
|
|
@@ -3225,7 +3228,7 @@ async function scanRubyProjects(rootDir, rubygemsCache, cache, projectScanTimeou
|
|
|
3225
3228
|
return results;
|
|
3226
3229
|
}
|
|
3227
3230
|
async function findRubyManifests(rootDir) {
|
|
3228
|
-
const { findFiles: findFiles2 } = await import('./fs-
|
|
3231
|
+
const { findFiles: findFiles2 } = await import('./fs-FO3NQHPT.js');
|
|
3229
3232
|
return findFiles2(rootDir, (name) => RUBY_MANIFEST_FILES.has(name) || isGemspec(name));
|
|
3230
3233
|
}
|
|
3231
3234
|
async function scanOneRubyProject(dir, manifestFiles, rootDir, rubygemsCache, cache, catalog) {
|
|
@@ -3466,7 +3469,7 @@ async function scanSwiftProjects(rootDir, swiftCache, cache, projectScanTimeout)
|
|
|
3466
3469
|
return results;
|
|
3467
3470
|
}
|
|
3468
3471
|
async function findSwiftManifests(rootDir) {
|
|
3469
|
-
const { findFiles: findFiles2 } = await import('./fs-
|
|
3472
|
+
const { findFiles: findFiles2 } = await import('./fs-FO3NQHPT.js');
|
|
3470
3473
|
return findFiles2(rootDir, (name) => SWIFT_MANIFEST_FILES.has(name));
|
|
3471
3474
|
}
|
|
3472
3475
|
async function scanOneSwiftProject(dir, manifestFile, rootDir, swiftCache, cache) {
|
|
@@ -3702,7 +3705,7 @@ async function scanGoProjects(rootDir, goCache, cache, projectScanTimeout, catal
|
|
|
3702
3705
|
return results;
|
|
3703
3706
|
}
|
|
3704
3707
|
async function findGoManifests(rootDir) {
|
|
3705
|
-
const { findFiles: findFiles2 } = await import('./fs-
|
|
3708
|
+
const { findFiles: findFiles2 } = await import('./fs-FO3NQHPT.js');
|
|
3706
3709
|
return findFiles2(rootDir, (name) => GO_MANIFEST_FILES.has(name));
|
|
3707
3710
|
}
|
|
3708
3711
|
async function scanOneGoProject(dir, manifestFile, rootDir, goCache, cache, catalog) {
|
|
@@ -3988,7 +3991,7 @@ async function scanRustProjects(rootDir, cargoCache, cache, projectScanTimeout)
|
|
|
3988
3991
|
return results;
|
|
3989
3992
|
}
|
|
3990
3993
|
async function findRustManifests(rootDir) {
|
|
3991
|
-
const { findFiles: findFiles2 } = await import('./fs-
|
|
3994
|
+
const { findFiles: findFiles2 } = await import('./fs-FO3NQHPT.js');
|
|
3992
3995
|
return findFiles2(rootDir, (name) => RUST_MANIFEST_FILES.has(name));
|
|
3993
3996
|
}
|
|
3994
3997
|
async function scanOneRustProject(dir, manifestFile, rootDir, cargoCache, cache) {
|
|
@@ -4220,7 +4223,7 @@ async function scanPhpProjects(rootDir, composerCache, cache, projectScanTimeout
|
|
|
4220
4223
|
return results;
|
|
4221
4224
|
}
|
|
4222
4225
|
async function findPhpManifests(rootDir) {
|
|
4223
|
-
const { findFiles: findFiles2 } = await import('./fs-
|
|
4226
|
+
const { findFiles: findFiles2 } = await import('./fs-FO3NQHPT.js');
|
|
4224
4227
|
return findFiles2(rootDir, (name) => PHP_MANIFEST_FILES.has(name));
|
|
4225
4228
|
}
|
|
4226
4229
|
async function scanOnePhpProject(dir, manifestFile, rootDir, composerCache, cache) {
|
|
@@ -4485,7 +4488,7 @@ async function scanDartProjects(rootDir, pubCache, cache, projectScanTimeout) {
|
|
|
4485
4488
|
return results;
|
|
4486
4489
|
}
|
|
4487
4490
|
async function findDartManifests(rootDir) {
|
|
4488
|
-
const { findFiles: findFiles2 } = await import('./fs-
|
|
4491
|
+
const { findFiles: findFiles2 } = await import('./fs-FO3NQHPT.js');
|
|
4489
4492
|
return findFiles2(rootDir, (name) => DART_MANIFEST_FILES.has(name));
|
|
4490
4493
|
}
|
|
4491
4494
|
async function scanOneDartProject(dir, manifestFile, rootDir, pubCache, cache) {
|
|
@@ -11685,6 +11688,30 @@ function contractKindFromName(filePath, basename22) {
|
|
|
11685
11688
|
function hasExt(ctx, ...exts) {
|
|
11686
11689
|
return exts.some((e) => ctx.extensions.has(e));
|
|
11687
11690
|
}
|
|
11691
|
+
function projectNameHaystack(ctx) {
|
|
11692
|
+
return `${ctx.projectPath.replace(/\\/g, "/")}/${ctx.project.name ?? ""}`;
|
|
11693
|
+
}
|
|
11694
|
+
function looksLikeWebAppName(ctx) {
|
|
11695
|
+
return /webapp|frontend|(?:^|[/._-])spa(?:[/._-]|$)/i.test(projectNameHaystack(ctx));
|
|
11696
|
+
}
|
|
11697
|
+
function looksLikeClientName(ctx) {
|
|
11698
|
+
return /(?:^|[/._-])client(?:[/._-]|$)/i.test(projectNameHaystack(ctx));
|
|
11699
|
+
}
|
|
11700
|
+
var SPA_UI_PACKAGES = [
|
|
11701
|
+
"react",
|
|
11702
|
+
"vue",
|
|
11703
|
+
"svelte",
|
|
11704
|
+
"@angular/core",
|
|
11705
|
+
"vue-router",
|
|
11706
|
+
"vuetify",
|
|
11707
|
+
"@vitejs/plugin-vue",
|
|
11708
|
+
"react-router",
|
|
11709
|
+
"react-router-dom",
|
|
11710
|
+
"@angular/router"
|
|
11711
|
+
];
|
|
11712
|
+
function hasSpaUiSignal(ctx) {
|
|
11713
|
+
return hasPackage(ctx, ...SPA_UI_PACKAGES) || hasExt(ctx, ".vue", ".svelte");
|
|
11714
|
+
}
|
|
11688
11715
|
function hasFile(ctx, ...names) {
|
|
11689
11716
|
return names.some((n) => ctx.fileNames.has(n.toLowerCase()));
|
|
11690
11717
|
}
|
|
@@ -11889,6 +11916,30 @@ var frameworkPacks = [
|
|
|
11889
11916
|
depFramework("framework/remix", "remix", ["@remix-run/react", "@remix-run/node", "@remix-run/dev"]),
|
|
11890
11917
|
depFramework("framework/sveltekit", "sveltekit", ["@sveltejs/kit"]),
|
|
11891
11918
|
depFramework("framework/nuxt", "nuxt", ["nuxt"]),
|
|
11919
|
+
{
|
|
11920
|
+
id: "framework/vue",
|
|
11921
|
+
frameworks: ["vue"],
|
|
11922
|
+
pathRules: [
|
|
11923
|
+
{ pattern: /\/api\//, layer: "infrastructure", confidence: 0.88, signal: "SPA HTTP client (api/)" },
|
|
11924
|
+
{ pattern: /\/plugins\//, layer: "config", confidence: 0.82, signal: "SPA plugin wiring" },
|
|
11925
|
+
{ pattern: /(^|\/)router\.[jt]sx?$/, layer: "routing", confidence: 0.92, signal: "client router module" },
|
|
11926
|
+
{ pattern: /(^|\/)routes\.[jt]sx?$/, layer: "routing", confidence: 0.9, signal: "client routes module" }
|
|
11927
|
+
],
|
|
11928
|
+
match(ctx) {
|
|
11929
|
+
if (hasPackage(ctx, "nuxt")) return [];
|
|
11930
|
+
const dep = hasPackage(ctx, "vue", "vue-router", "vuetify", "@vitejs/plugin-vue");
|
|
11931
|
+
const files = hasExt(ctx, ".vue");
|
|
11932
|
+
if (!dep && !files) return [];
|
|
11933
|
+
const signals = [];
|
|
11934
|
+
if (hasPackage(ctx, "vue")) signals.push("dep:vue");
|
|
11935
|
+
if (hasPackage(ctx, "vue-router")) signals.push("dep:vue-router");
|
|
11936
|
+
if (hasPackage(ctx, "vuetify")) signals.push("dep:vuetify");
|
|
11937
|
+
if (hasPackage(ctx, "@vitejs/plugin-vue")) signals.push("dep:@vitejs/plugin-vue");
|
|
11938
|
+
if (files) signals.push("vue-source");
|
|
11939
|
+
const confidence = hasPackage(ctx, "vue") ? 0.9 : files ? 0.78 : 0.82;
|
|
11940
|
+
return [evidenceOf("framework/vue", "framework", "vue", confidence, signals)];
|
|
11941
|
+
}
|
|
11942
|
+
},
|
|
11892
11943
|
depFramework("framework/fastify", "fastify", ["fastify"]),
|
|
11893
11944
|
depFramework("framework/hono", "hono", ["hono"]),
|
|
11894
11945
|
depFramework("framework/koa", "koa", ["koa"]),
|
|
@@ -12307,17 +12358,28 @@ var projectKindPacks = [
|
|
|
12307
12358
|
match(ctx) {
|
|
12308
12359
|
const metaFw = hasPackage(ctx, "next", "@next/core", "nuxt", "@remix-run/react", "@sveltejs/kit");
|
|
12309
12360
|
const uiDep = hasPackage(ctx, "react", "vue", "svelte", "@angular/core");
|
|
12361
|
+
const spaDeps = hasPackage(ctx, "vue-router", "vuetify", "@vitejs/plugin-vue", "react-router", "react-router-dom", "@angular/router");
|
|
12362
|
+
const vueFiles = hasExt(ctx, ".vue");
|
|
12310
12363
|
const pages = filePathHas(ctx, /(^|\/)(pages|app\/.*page\.)/);
|
|
12311
12364
|
const railsViews = filePathHas(ctx, /(^|\/)app\/views\//);
|
|
12312
12365
|
const libPath = /(^|\/)(packages|libs)(\/|$)/.test(ctx.projectPath.replace(/\\/g, "/"));
|
|
12313
|
-
|
|
12314
|
-
const
|
|
12366
|
+
const namedWebApp = looksLikeWebAppName(ctx);
|
|
12367
|
+
const clientWithUi = looksLikeClientName(ctx) && (uiDep || spaDeps || vueFiles || pages || railsViews || metaFw);
|
|
12368
|
+
const uiWithoutLib = uiDep && !libPath;
|
|
12369
|
+
if (!metaFw && !pages && !railsViews && !uiWithoutLib && !namedWebApp && !clientWithUi && !spaDeps && !vueFiles) {
|
|
12370
|
+
return [];
|
|
12371
|
+
}
|
|
12372
|
+
const apiOnly = !metaFw && !railsViews && !namedWebApp && !uiDep && !vueFiles && !spaDeps && filePathHas(ctx, /(^|\/)(controllers|routes)\//) && !pages;
|
|
12315
12373
|
if (apiOnly) return [];
|
|
12316
12374
|
const signals = [];
|
|
12317
12375
|
if (metaFw) signals.push("meta-framework");
|
|
12318
|
-
else if (uiDep) signals.push("ui-dependency");
|
|
12376
|
+
else if (uiDep || spaDeps) signals.push("ui-dependency");
|
|
12319
12377
|
if (pages || railsViews) signals.push("ui-layout");
|
|
12320
|
-
|
|
12378
|
+
if (namedWebApp) signals.push("webapp-path");
|
|
12379
|
+
if (clientWithUi) signals.push("client-path");
|
|
12380
|
+
if (vueFiles) signals.push("vue-source");
|
|
12381
|
+
const confidence = metaFw || namedWebApp && (uiDep || spaDeps || vueFiles) || spaDeps ? 0.88 : namedWebApp || clientWithUi ? 0.8 : 0.72;
|
|
12382
|
+
return [evidenceOf("project-kind/web-app", "projectKind", "web-app", confidence, signals)];
|
|
12321
12383
|
}
|
|
12322
12384
|
},
|
|
12323
12385
|
{
|
|
@@ -12341,7 +12403,8 @@ var projectKindPacks = [
|
|
|
12341
12403
|
ctx,
|
|
12342
12404
|
(p) => p.includes("springframework") || p.includes("spring-boot") || p.toLowerCase().includes("microsoft.aspnetcore")
|
|
12343
12405
|
);
|
|
12344
|
-
const
|
|
12406
|
+
const spaClient = hasSpaUiSignal(ctx) || looksLikeWebAppName(ctx);
|
|
12407
|
+
const layout = spaClient ? filePathHas(ctx, /(^|\/)(controllers|routes|handlers)\//) || filePathHas(ctx, /\.controller\.[jt]sx?$/) || filePathHas(ctx, /Controller\.(cs|java|kt)$/) : filePathHas(ctx, /(^|\/)(controllers|routes|handlers|api)\//) || filePathHas(ctx, /\.controller\.[jt]sx?$/) || filePathHas(ctx, /Controller\.(cs|java|kt)$/);
|
|
12345
12408
|
if (!apiDep && !layout) return [];
|
|
12346
12409
|
const signals = [];
|
|
12347
12410
|
if (apiDep) signals.push("api-dependency");
|
|
@@ -12906,7 +12969,8 @@ var PATH_RULES = [
|
|
|
12906
12969
|
{ pattern: /\.(infrastructure|infra)\//, layer: "infrastructure", confidence: 0.85, signal: "*.Infrastructure project" },
|
|
12907
12970
|
{ pattern: /\.worker\//, layer: "infrastructure", confidence: 0.8, signal: "*.Worker project" },
|
|
12908
12971
|
{ pattern: /\.(webapi|api)\//, layer: "routing", confidence: 0.8, signal: "*.WebApi project" },
|
|
12909
|
-
|
|
12972
|
+
// `*.WebApp` / `*.Client` / `*.UI` are project-kind signals, not a
|
|
12973
|
+
// blanket presentation stamp. See isSpaWebApp + project-kind/web-app.
|
|
12910
12974
|
{ pattern: /\.(services?|application)\//, layer: "services", confidence: 0.8, signal: "*.Services project" },
|
|
12911
12975
|
{ pattern: /\/wwwroot\//, layer: "presentation", confidence: 0.85, signal: "wwwroot/ static assets" },
|
|
12912
12976
|
{ pattern: /\/properties\//, layer: "config", confidence: 0.85, signal: "Properties/ directory" },
|
|
@@ -13024,40 +13088,90 @@ var PASCAL_SUFFIX_RULES = [
|
|
|
13024
13088
|
{ suffix: "Widget", layer: "presentation", confidence: 0.75, signal: "Widget class" }
|
|
13025
13089
|
];
|
|
13026
13090
|
var UI_SOURCE_EXTENSIONS = /* @__PURE__ */ new Set([".tsx", ".jsx", ".vue", ".svelte"]);
|
|
13091
|
+
var META_WEBAPP_ARCHETYPES = /* @__PURE__ */ new Set([
|
|
13092
|
+
"nextjs",
|
|
13093
|
+
"nuxt",
|
|
13094
|
+
"remix",
|
|
13095
|
+
"sveltekit",
|
|
13096
|
+
"rails"
|
|
13097
|
+
]);
|
|
13098
|
+
var SPA_SKIP_PASCAL = /* @__PURE__ */ new Set(["Service", "Handler", "Client"]);
|
|
13099
|
+
var SPA_PATH_RULES = [
|
|
13100
|
+
{ pattern: /\/api\//, layer: "infrastructure", confidence: 0.88, signal: "SPA HTTP client (api/)" },
|
|
13101
|
+
{ pattern: /\/plugins\//, layer: "config", confidence: 0.82, signal: "SPA plugin wiring" },
|
|
13102
|
+
{ pattern: /(^|\/)router\.[jt]sx?$/, layer: "routing", confidence: 0.92, signal: "client router module" },
|
|
13103
|
+
{ pattern: /(^|\/)routes\.[jt]sx?$/, layer: "routing", confidence: 0.9, signal: "client routes module" }
|
|
13104
|
+
];
|
|
13105
|
+
function isSpaWebApp(projectKind, archetype) {
|
|
13106
|
+
return projectKind === "web-app" && !META_WEBAPP_ARCHETYPES.has(archetype);
|
|
13107
|
+
}
|
|
13108
|
+
function collectPackLayerRules(packs) {
|
|
13109
|
+
const pathRules = [];
|
|
13110
|
+
const suffixRules = [];
|
|
13111
|
+
const pascalSuffixRules = [];
|
|
13112
|
+
for (const pack of packs) {
|
|
13113
|
+
if (pack.pathRules) pathRules.push(...pack.pathRules);
|
|
13114
|
+
if (pack.suffixRules) suffixRules.push(...pack.suffixRules);
|
|
13115
|
+
if (pack.pascalSuffixRules) pascalSuffixRules.push(...pack.pascalSuffixRules);
|
|
13116
|
+
}
|
|
13117
|
+
return { pathRules, suffixRules, pascalSuffixRules };
|
|
13118
|
+
}
|
|
13027
13119
|
function isDomainRepositoryPort(baseName, loweredPath) {
|
|
13028
13120
|
if (!/^I[A-Z]\w*(Repository|Repo)$/.test(baseName)) return false;
|
|
13029
13121
|
return /\/(domain|interfaces)\//.test(loweredPath);
|
|
13030
13122
|
}
|
|
13031
|
-
function
|
|
13123
|
+
function considerRule(bestMatch, layer, confidence, signal) {
|
|
13124
|
+
if (!bestMatch || confidence > bestMatch.confidence) {
|
|
13125
|
+
return { layer, confidence, signal };
|
|
13126
|
+
}
|
|
13127
|
+
return bestMatch;
|
|
13128
|
+
}
|
|
13129
|
+
function classifyOne(filePath, archetype, opts) {
|
|
13032
13130
|
const normalised = "/" + filePath.replace(/\\/g, "/").replace(/^\/+/, "");
|
|
13033
13131
|
const lowered = normalised.toLowerCase();
|
|
13132
|
+
const spa = isSpaWebApp(opts?.projectKind, archetype);
|
|
13034
13133
|
let bestMatch = null;
|
|
13035
|
-
|
|
13134
|
+
const pathRules = spa ? [...SPA_PATH_RULES, ...PATH_RULES] : PATH_RULES;
|
|
13135
|
+
for (const rule of pathRules) {
|
|
13036
13136
|
if (rule.archetypes && rule.archetypes.length > 0 && !rule.archetypes.includes(archetype)) {
|
|
13037
13137
|
continue;
|
|
13038
13138
|
}
|
|
13039
13139
|
if (rule.pattern.test(lowered)) {
|
|
13040
13140
|
const boost = rule.archetypes ? 0.05 : 0;
|
|
13041
13141
|
const adjustedConfidence = Math.min(rule.confidence + boost, 1);
|
|
13042
|
-
|
|
13043
|
-
|
|
13044
|
-
|
|
13142
|
+
bestMatch = considerRule(bestMatch, rule.layer, adjustedConfidence, rule.signal);
|
|
13143
|
+
}
|
|
13144
|
+
}
|
|
13145
|
+
for (const rule of opts?.extraPathRules ?? []) {
|
|
13146
|
+
if (rule.archetypes && rule.archetypes.length > 0 && !rule.archetypes.includes(archetype)) {
|
|
13147
|
+
continue;
|
|
13148
|
+
}
|
|
13149
|
+
if (rule.pattern.test(lowered)) {
|
|
13150
|
+
bestMatch = considerRule(bestMatch, rule.layer, rule.confidence, rule.signal);
|
|
13045
13151
|
}
|
|
13046
13152
|
}
|
|
13047
13153
|
const baseName = path31.basename(filePath, path31.extname(filePath));
|
|
13048
13154
|
const cleanBase = baseName.replace(/\.(test|spec)$/, "");
|
|
13049
13155
|
for (const rule of SUFFIX_RULES) {
|
|
13050
13156
|
if (cleanBase.endsWith(rule.suffix)) {
|
|
13051
|
-
|
|
13052
|
-
|
|
13053
|
-
|
|
13157
|
+
bestMatch = considerRule(bestMatch, rule.layer, rule.confidence, rule.signal);
|
|
13158
|
+
}
|
|
13159
|
+
}
|
|
13160
|
+
for (const rule of opts?.extraSuffixRules ?? []) {
|
|
13161
|
+
if (cleanBase.endsWith(rule.suffix)) {
|
|
13162
|
+
bestMatch = considerRule(bestMatch, rule.layer, rule.confidence, rule.signal);
|
|
13054
13163
|
}
|
|
13055
13164
|
}
|
|
13056
13165
|
for (const rule of PASCAL_SUFFIX_RULES) {
|
|
13166
|
+
if (spa && SPA_SKIP_PASCAL.has(rule.suffix)) continue;
|
|
13057
13167
|
if (cleanBase.endsWith(rule.suffix)) {
|
|
13058
|
-
|
|
13059
|
-
|
|
13060
|
-
|
|
13168
|
+
bestMatch = considerRule(bestMatch, rule.layer, rule.confidence, rule.signal);
|
|
13169
|
+
}
|
|
13170
|
+
}
|
|
13171
|
+
for (const rule of opts?.extraPascalSuffixRules ?? []) {
|
|
13172
|
+
if (spa && SPA_SKIP_PASCAL.has(rule.suffix)) continue;
|
|
13173
|
+
if (cleanBase.endsWith(rule.suffix)) {
|
|
13174
|
+
bestMatch = considerRule(bestMatch, rule.layer, rule.confidence, rule.signal);
|
|
13061
13175
|
}
|
|
13062
13176
|
}
|
|
13063
13177
|
if (isDomainRepositoryPort(cleanBase, lowered)) {
|
|
@@ -13086,9 +13200,9 @@ function prefixHasLayerHint(repoRelative, localPath) {
|
|
|
13086
13200
|
return prefix.length > 0 && LAYER_HINT_SEGMENT.test(`/${prefix}/`);
|
|
13087
13201
|
}
|
|
13088
13202
|
function classifyFile(filePath, archetype, opts) {
|
|
13089
|
-
const local = classifyOne(filePath, archetype);
|
|
13203
|
+
const local = classifyOne(filePath, archetype, opts);
|
|
13090
13204
|
const repoPath = opts?.repoRelative?.replace(/\\/g, "/");
|
|
13091
|
-
const repo = repoPath && repoPath !== filePath.replace(/\\/g, "/") && prefixHasLayerHint(repoPath, filePath) ? classifyOne(repoPath, archetype) : null;
|
|
13205
|
+
const repo = repoPath && repoPath !== filePath.replace(/\\/g, "/") && prefixHasLayerHint(repoPath, filePath) ? classifyOne(repoPath, archetype, opts) : null;
|
|
13092
13206
|
let best = local;
|
|
13093
13207
|
let usedHint = false;
|
|
13094
13208
|
if (repo && (!local || repo.confidence > local.confidence)) {
|
|
@@ -13377,6 +13491,16 @@ function inferStructure(result, projects) {
|
|
|
13377
13491
|
confidence: 0.8
|
|
13378
13492
|
};
|
|
13379
13493
|
}
|
|
13494
|
+
if (result.projectKind === "web-app") {
|
|
13495
|
+
if (evidencePrimary && !["layered", "mvc", "mvvm"].includes(evidencePrimary.value)) {
|
|
13496
|
+
return {
|
|
13497
|
+
primary: evidencePrimary.value,
|
|
13498
|
+
characteristics: [],
|
|
13499
|
+
confidence: evidencePrimary.confidence
|
|
13500
|
+
};
|
|
13501
|
+
}
|
|
13502
|
+
return void 0;
|
|
13503
|
+
}
|
|
13380
13504
|
if (evidencePrimary) {
|
|
13381
13505
|
return {
|
|
13382
13506
|
primary: evidencePrimary.value,
|
|
@@ -13391,6 +13515,10 @@ function inferStructure(result, projects) {
|
|
|
13391
13515
|
}
|
|
13392
13516
|
function selectBoundaryProfile(structure, result) {
|
|
13393
13517
|
const primary = structure?.primary;
|
|
13518
|
+
if (result.projectKind === "web-app") {
|
|
13519
|
+
if (primary && (CLEAN_PROFILES.has(primary) || primary === "vertical-slice")) return primary;
|
|
13520
|
+
return void 0;
|
|
13521
|
+
}
|
|
13394
13522
|
if (primary && CLEAN_PROFILES.has(primary)) return primary;
|
|
13395
13523
|
if (primary === "vertical-slice" || primary === "mvc" || primary === "mvvm" || primary === "layered") {
|
|
13396
13524
|
return primary;
|
|
@@ -13406,7 +13534,7 @@ function isSliceInternal(filePath) {
|
|
|
13406
13534
|
const base = normalizeRelPath3(filePath).split("/").pop() ?? "";
|
|
13407
13535
|
return !/^(index|public|api|mod)\.[^./]+$/i.test(base);
|
|
13408
13536
|
}
|
|
13409
|
-
function isIllegalEdge(profile, from, to, fromFile, toFile) {
|
|
13537
|
+
function isIllegalEdge(profile, from, to, fromFile, toFile, projectKind) {
|
|
13410
13538
|
if (profile === "vertical-slice") {
|
|
13411
13539
|
const fromSlice = sliceOf(fromFile);
|
|
13412
13540
|
const toSlice = sliceOf(toFile);
|
|
@@ -13423,6 +13551,9 @@ function isIllegalEdge(profile, from, to, fromFile, toFile) {
|
|
|
13423
13551
|
return { illegal: false, rule: "" };
|
|
13424
13552
|
}
|
|
13425
13553
|
if (profile === "layered" || profile === "mvc" || profile === "mvvm") {
|
|
13554
|
+
if (projectKind === "web-app" && to === "presentation" && (from === "routing" || from === "middleware")) {
|
|
13555
|
+
return { illegal: false, rule: "" };
|
|
13556
|
+
}
|
|
13426
13557
|
if (EXEMPT_LAYERS.has(from) || EXEMPT_LAYERS.has(to)) return { illegal: false, rule: "" };
|
|
13427
13558
|
if (to === "domain") return { illegal: false, rule: "" };
|
|
13428
13559
|
if (from === "domain" && (to === "data-access" || to === "infrastructure")) {
|
|
@@ -13565,7 +13696,7 @@ function collectBoundaryViolations(result, graph, profile, projectPath, projects
|
|
|
13565
13696
|
const fromState = states.get(fromFile);
|
|
13566
13697
|
const toState = states.get(toFile);
|
|
13567
13698
|
if (!fromState?.layer || !toState?.layer) continue;
|
|
13568
|
-
const { illegal, rule } = isIllegalEdge(profile, fromState.layer, toState.layer, fromFile, toFile);
|
|
13699
|
+
const { illegal, rule } = isIllegalEdge(profile, fromState.layer, toState.layer, fromFile, toFile, result.projectKind);
|
|
13569
13700
|
if (!illegal) continue;
|
|
13570
13701
|
const key = `${fromFile}|${toFile}|${rule}`;
|
|
13571
13702
|
if (seen.has(key)) continue;
|
|
@@ -13784,7 +13915,7 @@ function buildFileState2(filePath, result) {
|
|
|
13784
13915
|
role
|
|
13785
13916
|
};
|
|
13786
13917
|
}
|
|
13787
|
-
const pathClass = classifyFile(n, result.archetype);
|
|
13918
|
+
const pathClass = classifyFile(n, result.archetype, { projectKind: result.projectKind });
|
|
13788
13919
|
if (pathClass) {
|
|
13789
13920
|
return {
|
|
13790
13921
|
filePath: n,
|
|
@@ -14096,7 +14227,8 @@ var FRAMEWORK_TO_PROJECT_KIND = {
|
|
|
14096
14227
|
rails: "web-app",
|
|
14097
14228
|
laravel: "web-api",
|
|
14098
14229
|
phoenix: "web-api",
|
|
14099
|
-
serverless: "worker"
|
|
14230
|
+
serverless: "worker",
|
|
14231
|
+
vue: "web-app"
|
|
14100
14232
|
};
|
|
14101
14233
|
function projectKindFromFramework(framework) {
|
|
14102
14234
|
if (!framework) return void 0;
|
|
@@ -14889,19 +15021,26 @@ async function classifyTree(rootDir, projects, tooling, services, cache, scope)
|
|
|
14889
15021
|
dependencyAgeBuckets: { current: 0, oneBehind: 0, twoPlusBehind: 0, unknown: 0 }
|
|
14890
15022
|
};
|
|
14891
15023
|
const context = buildProjectContext(primary, sourceFiles);
|
|
14892
|
-
const { evidence: rawEvidence } = collectPackEvidence(ARCHITECTURE_PACKS, context);
|
|
15024
|
+
const { evidence: rawEvidence, matching } = collectPackEvidence(ARCHITECTURE_PACKS, context);
|
|
14893
15025
|
const fusion = fuseEvidence(rawEvidence);
|
|
14894
15026
|
const { archetype, confidence: archetypeConfidence } = deriveArchetype(detected, fusion);
|
|
14895
15027
|
const projectKind = fusion.winners.get("projectKind")?.value ?? projectKindFromFramework(fusion.winners.get("framework")?.value);
|
|
14896
15028
|
const artifactKind = fusion.winners.get("artifactKind")?.value;
|
|
14897
15029
|
const skipAllLayers = projectKind === "iac" || projectKind === "contract";
|
|
15030
|
+
const packRules = collectPackLayerRules(matching);
|
|
14898
15031
|
sourceFiles.sort(compareRelPath4);
|
|
14899
15032
|
const seedClassified = [];
|
|
14900
15033
|
const seedUnclassified = [];
|
|
14901
15034
|
for (const file of sourceFiles) {
|
|
14902
15035
|
if (!isLayerCandidate(file) || skipAllLayers) continue;
|
|
14903
15036
|
const storedPath = scope ? toRepoRelative(scope.projectPath, file) : file;
|
|
14904
|
-
const classification = classifyFile(file, archetype, {
|
|
15037
|
+
const classification = classifyFile(file, archetype, {
|
|
15038
|
+
repoRelative: storedPath,
|
|
15039
|
+
projectKind,
|
|
15040
|
+
extraPathRules: packRules.pathRules,
|
|
15041
|
+
extraSuffixRules: packRules.suffixRules,
|
|
15042
|
+
extraPascalSuffixRules: packRules.pascalSuffixRules
|
|
15043
|
+
});
|
|
14905
15044
|
if (classification) {
|
|
14906
15045
|
seedClassified.push({ ...classification, filePath: storedPath });
|
|
14907
15046
|
} else {
|
|
@@ -15785,5 +15924,5 @@ async function computeTreeMetadataHash(rootDir, options) {
|
|
|
15785
15924
|
}
|
|
15786
15925
|
|
|
15787
15926
|
export { PROJECT_TYPE_TO_OSV_ECOSYSTEM, aggregateSolutionArchitecture, boundaryProfileRules, brandProgressBar, buildVersionTimelines, compactUiPurpose, computeDriftScore, computeRepoFingerprint, computeUpgradeImpact, detectVcs, driftBar, fetchRiskySymbols, fetchScanPreflight, findPackageAnyEcosystem, findPackageTimeline, findVersionCrossings, getChangelogSignals, gitHistoryAvailable, loadConfig, mermaidFromArchitecture, normalizeConstraint, parseDsn, perDependencyDrift, prepareCompressedUpload, projectTypeToVulnEcosystem, refineArchitectureWithAstRoles, refineArchitectureWithGraph, resolveHead, resolveRepositoryName, runCoreScan, scanArchitectureBundle, severityRank, titleBox, versionSatisfies, workingTreeDirty, writeDefaultConfig };
|
|
15788
|
-
//# sourceMappingURL=chunk-
|
|
15789
|
-
//# sourceMappingURL=chunk-
|
|
15927
|
+
//# sourceMappingURL=chunk-GBXOAO5V.js.map
|
|
15928
|
+
//# sourceMappingURL=chunk-GBXOAO5V.js.map
|