@vibgrate/cli 2026.819.2 → 2026.824.3
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/dist/{agent-ZJRWCMR6.js → agent-6SJVWFPV.js} +12 -12
- package/dist/{agent-ZJRWCMR6.js.map → agent-6SJVWFPV.js.map} +1 -1
- package/dist/{approvals-YTUXBZWQ.js → approvals-5UBLBNJF.js} +5 -5
- package/dist/{approvals-YTUXBZWQ.js.map → approvals-5UBLBNJF.js.map} +1 -1
- package/dist/{attach-WOA25VNH.js → attach-PSGCCJMA.js} +3 -3
- package/dist/{attach-WOA25VNH.js.map → attach-PSGCCJMA.js.map} +1 -1
- package/dist/baseline-HPXACNFU.js +9 -0
- package/dist/{baseline-TVRRUZGA.js.map → baseline-HPXACNFU.js.map} +1 -1
- package/dist/{chunk-24HKTTFV.js → chunk-2IY24TTR.js} +3 -3
- package/dist/{chunk-24HKTTFV.js.map → chunk-2IY24TTR.js.map} +1 -1
- package/dist/{chunk-7BSUPHX6.js → chunk-3PNAQUZM.js} +3 -3
- package/dist/{chunk-7BSUPHX6.js.map → chunk-3PNAQUZM.js.map} +1 -1
- package/dist/{chunk-W6ASIMG5.js → chunk-4PDWV4AE.js} +10 -12
- package/dist/chunk-4PDWV4AE.js.map +1 -0
- package/dist/{chunk-2ZBLZ2S3.js → chunk-5QO2GFAE.js} +27 -23
- package/dist/chunk-5QO2GFAE.js.map +1 -0
- package/dist/{chunk-GBXOAO5V.js → chunk-5UG4UHKU.js} +40 -10
- package/dist/chunk-5UG4UHKU.js.map +1 -0
- package/dist/chunk-AGOKTI77.js +6 -0
- package/dist/{chunk-ZUZHYAJK.js.map → chunk-AGOKTI77.js.map} +1 -1
- package/dist/{chunk-C2EZIAA3.js → chunk-B5GOCQFB.js} +9 -9
- package/dist/{chunk-C2EZIAA3.js.map → chunk-B5GOCQFB.js.map} +1 -1
- package/dist/{chunk-MMJFHEZ4.js → chunk-CJ2R3LVX.js} +4 -4
- package/dist/{chunk-MMJFHEZ4.js.map → chunk-CJ2R3LVX.js.map} +1 -1
- package/dist/{chunk-2C4QT5D7.js → chunk-III7S75O.js} +53 -463
- package/dist/chunk-III7S75O.js.map +1 -0
- package/dist/{chunk-IMI2VHHZ.js → chunk-IKB5U3AH.js} +3 -3
- package/dist/{chunk-IMI2VHHZ.js.map → chunk-IKB5U3AH.js.map} +1 -1
- package/dist/{chunk-AP3JN33O.js → chunk-JL66EPZ4.js} +221 -10
- package/dist/chunk-JL66EPZ4.js.map +1 -0
- package/dist/{chunk-QE6F62FR.js → chunk-KBLKNR3V.js} +3 -3
- package/dist/{chunk-QE6F62FR.js.map → chunk-KBLKNR3V.js.map} +1 -1
- package/dist/{chunk-JPOYXG7Z.js → chunk-KRE7SXSA.js} +12 -13
- package/dist/chunk-KRE7SXSA.js.map +1 -0
- package/dist/{chunk-XW2XQM3C.js → chunk-LA4CETXN.js} +3 -3
- package/dist/{chunk-XW2XQM3C.js.map → chunk-LA4CETXN.js.map} +1 -1
- package/dist/{chunk-OGFOJG4H.js → chunk-LMHKIQA5.js} +3 -3
- package/dist/{chunk-OGFOJG4H.js.map → chunk-LMHKIQA5.js.map} +1 -1
- package/dist/{chunk-FCMWHSQ6.js → chunk-M5QSBXA6.js} +17 -4
- package/dist/chunk-M5QSBXA6.js.map +1 -0
- package/dist/{chunk-R5TQBIR6.js → chunk-QLNJ3VWO.js} +3 -3
- package/dist/{chunk-R5TQBIR6.js.map → chunk-QLNJ3VWO.js.map} +1 -1
- package/dist/{chunk-XLQ4YHS3.js → chunk-QP3P4V4I.js} +10 -8
- package/dist/chunk-QP3P4V4I.js.map +1 -0
- package/dist/{chunk-BQ6NTRRK.js → chunk-RAEHWCN6.js} +6 -6
- package/dist/{chunk-BQ6NTRRK.js.map → chunk-RAEHWCN6.js.map} +1 -1
- package/dist/{chunk-USPMMVNH.js → chunk-SGIFJIII.js} +3 -3
- package/dist/{chunk-USPMMVNH.js.map → chunk-SGIFJIII.js.map} +1 -1
- package/dist/{chunk-CBL3VY7J.js → chunk-TWWVTKA7.js} +35 -14
- package/dist/chunk-TWWVTKA7.js.map +1 -0
- package/dist/chunk-USW5WHUG.js +605 -0
- package/dist/chunk-USW5WHUG.js.map +1 -0
- package/dist/{chunk-NKKOGJ63.js → chunk-UUNEUEPQ.js} +71 -9
- package/dist/chunk-UUNEUEPQ.js.map +1 -0
- package/dist/{chunk-WPLOEFZU.js → chunk-WATYIYWP.js} +3 -3
- package/dist/{chunk-WPLOEFZU.js.map → chunk-WATYIYWP.js.map} +1 -1
- package/dist/{chunk-PJRPSYFQ.js → chunk-XHIWQGRE.js} +5 -5
- package/dist/{chunk-PJRPSYFQ.js.map → chunk-XHIWQGRE.js.map} +1 -1
- package/dist/{chunk-AQZYDFEK.js → chunk-YJ23GGAJ.js} +3 -3
- package/dist/{chunk-AQZYDFEK.js.map → chunk-YJ23GGAJ.js.map} +1 -1
- package/dist/cli.js +379 -544
- package/dist/cli.js.map +1 -1
- package/dist/{daemon-YKOEP3XA.js → daemon-AEL5N4SJ.js} +9 -9
- package/dist/{daemon-YKOEP3XA.js.map → daemon-AEL5N4SJ.js.map} +1 -1
- package/dist/embed-worker-main.js +3 -3
- package/dist/{ensure-map-BLRJDO2Y.js → ensure-map-YL5NR6UH.js} +15 -15
- package/dist/{ensure-map-BLRJDO2Y.js.map → ensure-map-YL5NR6UH.js.map} +1 -1
- package/dist/{graph-backend-NTYONTWW.js → graph-backend-LEPXFPXQ.js} +7 -7
- package/dist/{graph-backend-NTYONTWW.js.map → graph-backend-LEPXFPXQ.js.map} +1 -1
- package/dist/index.d.ts +72 -130
- package/dist/index.js +15 -15
- package/dist/{interactive-B3WTC7LB.js → interactive-YJ37ZWTA.js} +27 -26
- package/dist/interactive-YJ37ZWTA.js.map +1 -0
- package/dist/load-LT6R73IZ.js +11 -0
- package/dist/{load-AJROS77R.js.map → load-LT6R73IZ.js.map} +1 -1
- package/dist/parse-worker.js +3 -2
- package/dist/parse-worker.js.map +1 -1
- package/dist/{run-outcome-SBBSTSH3.js → run-outcome-YQBPYNEY.js} +5 -5
- package/dist/{run-outcome-SBBSTSH3.js.map → run-outcome-YQBPYNEY.js.map} +1 -1
- package/dist/{runtime-session-JYYKQVDX.js → runtime-session-JSH5UL7Z.js} +9 -9
- package/dist/{runtime-session-JYYKQVDX.js.map → runtime-session-JSH5UL7Z.js.map} +1 -1
- package/dist/{session-2ZMHZ2O6.js → session-3FLVZRMM.js} +8 -8
- package/dist/{session-2ZMHZ2O6.js.map → session-3FLVZRMM.js.map} +1 -1
- package/dist/{stream-json-ZWGB4C47.js → stream-json-VJ2O52CR.js} +12 -12
- package/dist/{stream-json-ZWGB4C47.js.map → stream-json-VJ2O52CR.js.map} +1 -1
- package/dist/version-VUTM46C5.js +4 -0
- package/dist/{version-5QIEUXU6.js.map → version-VUTM46C5.js.map} +1 -1
- package/dist/{vg-mcp-bridge-4FETMJ6M.js → vg-mcp-bridge-UUMEOJSO.js} +9 -9
- package/dist/{vg-mcp-bridge-4FETMJ6M.js.map → vg-mcp-bridge-UUMEOJSO.js.map} +1 -1
- package/dist/{vgd-R524P5BJ.js → vgd-XFT574U6.js} +8 -8
- package/dist/vgd-XFT574U6.js.map +1 -0
- package/package.json +2 -1
- package/dist/baseline-TVRRUZGA.js +0 -9
- package/dist/chunk-2C4QT5D7.js.map +0 -1
- package/dist/chunk-2ZBLZ2S3.js.map +0 -1
- package/dist/chunk-AP3JN33O.js.map +0 -1
- package/dist/chunk-CA4YQBA7.js +0 -699
- package/dist/chunk-CA4YQBA7.js.map +0 -1
- package/dist/chunk-CBL3VY7J.js.map +0 -1
- package/dist/chunk-FCMWHSQ6.js.map +0 -1
- package/dist/chunk-GBXOAO5V.js.map +0 -1
- package/dist/chunk-JPOYXG7Z.js.map +0 -1
- package/dist/chunk-NKKOGJ63.js.map +0 -1
- package/dist/chunk-W6ASIMG5.js.map +0 -1
- package/dist/chunk-XLQ4YHS3.js.map +0 -1
- package/dist/chunk-ZUZHYAJK.js +0 -6
- package/dist/interactive-B3WTC7LB.js.map +0 -1
- package/dist/load-AJROS77R.js +0 -11
- package/dist/version-5QIEUXU6.js +0 -4
- package/dist/vgd-R524P5BJ.js.map +0 -1
|
@@ -12474,7 +12474,10 @@ function isToolingConfigFile(filePath) {
|
|
|
12474
12474
|
}
|
|
12475
12475
|
function isTestFilePath(filePath) {
|
|
12476
12476
|
const n = `/${normalizeRelPath(filePath).toLowerCase()}`;
|
|
12477
|
-
return /\/(__tests__|__mocks__|tests?|spec|fixtures)\//.test(n) || /\.(tests?|spec)\.[^./]+$/.test(n) || /_(test|spec)\.[^./]+$/.test(n) || /\/(conftest|test_[^/]*)\.py$/.test(n);
|
|
12477
|
+
return /\/(__tests__|__mocks__|tests?|spec|fixtures)\//.test(n) || /\.(tests?|spec)\.[^./]+$/.test(n) || /_(test|spec)\.[^./]+$/.test(n) || /\/(conftest|test_[^/]*)\.py$/.test(n) || isTestProjectDir(n);
|
|
12478
|
+
}
|
|
12479
|
+
function isTestProjectDir(loweredPath) {
|
|
12480
|
+
return /\/[^/]*\.tests?\//.test(loweredPath) || /\/[^/]*(?:e2e|unit|integration|functional|acceptance|smoke|component)tests?\//.test(loweredPath);
|
|
12478
12481
|
}
|
|
12479
12482
|
function folderLooksLikeTests(dir) {
|
|
12480
12483
|
const n = `/${normalizeRelPath(dir).toLowerCase()}/`;
|
|
@@ -12962,6 +12965,9 @@ var PATH_RULES = [
|
|
|
12962
12965
|
// Directory rules above already cover Controllers/, Services/, Models/,
|
|
12963
12966
|
// Views/, Migrations/, Middleware/ … because matching is case-insensitive.
|
|
12964
12967
|
{ pattern: /\.tests?\//, layer: "testing", confidence: 0.9, signal: "*.Tests project directory" },
|
|
12968
|
+
// Compound test-project names without the dot: `FooE2ETests/`, `unittests/`.
|
|
12969
|
+
// Closed keyword list so `latest/` / `contest/` never match.
|
|
12970
|
+
{ pattern: /\/[^/]*(?:e2e|unit|integration|functional|acceptance|smoke|component)tests?\//, layer: "testing", confidence: 0.9, signal: "test project directory" },
|
|
12965
12971
|
// Layer-named project directories (`Company.Product.Domain/`,
|
|
12966
12972
|
// `Company.Product.Database/`) — the dotted segment carries the layer.
|
|
12967
12973
|
{ pattern: /\.domain\//, layer: "domain", confidence: 0.85, signal: "*.Domain project" },
|
|
@@ -13078,14 +13084,17 @@ var PASCAL_SUFFIX_RULES = [
|
|
|
13078
13084
|
{ suffix: "Configuration", layer: "config", confidence: 0.85, signal: "Configuration class" },
|
|
13079
13085
|
{ suffix: "Config", layer: "config", confidence: 0.8, signal: "Config class" },
|
|
13080
13086
|
{ suffix: "Interceptor", layer: "middleware", confidence: 0.85, signal: "Interceptor class" },
|
|
13081
|
-
|
|
13082
|
-
|
|
13087
|
+
// Mobile suffixes are platform conventions, not universal — scoped to their
|
|
13088
|
+
// languages so a .NET `ProjectApproverSqlFragment.cs` never lands in
|
|
13089
|
+
// presentation on the strength of an Android naming rule.
|
|
13090
|
+
{ suffix: "Activity", layer: "presentation", confidence: 0.85, signal: "Android Activity", extensions: [".java", ".kt", ".kts"] },
|
|
13091
|
+
{ suffix: "Fragment", layer: "presentation", confidence: 0.85, signal: "Android Fragment", extensions: [".java", ".kt", ".kts"] },
|
|
13083
13092
|
// Swift / iOS — higher confidence than the generic Controller→routing rule
|
|
13084
13093
|
// so FooViewController lands in presentation, not routing.
|
|
13085
|
-
{ suffix: "ViewController", layer: "presentation", confidence: 0.95, signal: "UIKit ViewController" },
|
|
13094
|
+
{ suffix: "ViewController", layer: "presentation", confidence: 0.95, signal: "UIKit ViewController", extensions: [".swift", ".m", ".mm", ".h"] },
|
|
13086
13095
|
// Flutter
|
|
13087
|
-
{ suffix: "Screen", layer: "presentation", confidence: 0.85, signal: "Screen widget" },
|
|
13088
|
-
{ suffix: "Widget", layer: "presentation", confidence: 0.75, signal: "Widget class" }
|
|
13096
|
+
{ suffix: "Screen", layer: "presentation", confidence: 0.85, signal: "Screen widget", extensions: [".dart"] },
|
|
13097
|
+
{ suffix: "Widget", layer: "presentation", confidence: 0.75, signal: "Widget class", extensions: [".dart"] }
|
|
13089
13098
|
];
|
|
13090
13099
|
var UI_SOURCE_EXTENSIONS = /* @__PURE__ */ new Set([".tsx", ".jsx", ".vue", ".svelte"]);
|
|
13091
13100
|
var META_WEBAPP_ARCHETYPES = /* @__PURE__ */ new Set([
|
|
@@ -13162,8 +13171,10 @@ function classifyOne(filePath, archetype, opts) {
|
|
|
13162
13171
|
bestMatch = considerRule(bestMatch, rule.layer, rule.confidence, rule.signal);
|
|
13163
13172
|
}
|
|
13164
13173
|
}
|
|
13174
|
+
const fileExt = path31.extname(filePath).toLowerCase();
|
|
13165
13175
|
for (const rule of PASCAL_SUFFIX_RULES) {
|
|
13166
13176
|
if (spa && SPA_SKIP_PASCAL.has(rule.suffix)) continue;
|
|
13177
|
+
if (rule.extensions && !rule.extensions.includes(fileExt)) continue;
|
|
13167
13178
|
if (cleanBase.endsWith(rule.suffix)) {
|
|
13168
13179
|
bestMatch = considerRule(bestMatch, rule.layer, rule.confidence, rule.signal);
|
|
13169
13180
|
}
|
|
@@ -13193,13 +13204,31 @@ function classifyOne(filePath, archetype, opts) {
|
|
|
13193
13204
|
}
|
|
13194
13205
|
var LAYER_HINT_SEGMENT = /(?:^|\/)(application|domain|infrastructure|persistence|entities)(?:\/|$)/i;
|
|
13195
13206
|
function prefixHasLayerHint(repoRelative, localPath) {
|
|
13207
|
+
const prefix = strippedPrefix(repoRelative, localPath);
|
|
13208
|
+
return prefix !== null && LAYER_HINT_SEGMENT.test(`/${prefix}/`);
|
|
13209
|
+
}
|
|
13210
|
+
function strippedPrefix(repoRelative, localPath) {
|
|
13196
13211
|
const repo = repoRelative.replace(/\\/g, "/").replace(/^\/+/, "");
|
|
13197
13212
|
const local = localPath.replace(/\\/g, "/").replace(/^\/+/, "");
|
|
13198
|
-
if (!repo.endsWith(local)) return
|
|
13213
|
+
if (!repo.endsWith(local)) return null;
|
|
13199
13214
|
const prefix = repo.slice(0, repo.length - local.length).replace(/\/+$/, "");
|
|
13200
|
-
return prefix.length > 0
|
|
13215
|
+
return prefix.length > 0 ? prefix : null;
|
|
13216
|
+
}
|
|
13217
|
+
var TEST_PREFIX_SEGMENT = /\/(__tests__|__mocks__|tests?|spec|testing|e2e)\/|\/[^/]*\.tests?\/|\/[^/]*(?:e2e|unit|integration|functional|acceptance|smoke|component)tests?\//;
|
|
13218
|
+
function prefixLooksLikeTests(repoRelative, localPath) {
|
|
13219
|
+
const prefix = strippedPrefix(repoRelative, localPath);
|
|
13220
|
+
return prefix !== null && TEST_PREFIX_SEGMENT.test(`/${prefix.toLowerCase()}/`);
|
|
13201
13221
|
}
|
|
13202
13222
|
function classifyFile(filePath, archetype, opts) {
|
|
13223
|
+
const repoPathForTests = opts?.repoRelative?.replace(/\\/g, "/");
|
|
13224
|
+
if (repoPathForTests && repoPathForTests !== filePath.replace(/\\/g, "/") && prefixLooksLikeTests(repoPathForTests, filePath)) {
|
|
13225
|
+
return {
|
|
13226
|
+
filePath,
|
|
13227
|
+
layer: "testing",
|
|
13228
|
+
confidence: 0.9,
|
|
13229
|
+
signals: ["test project prefix"]
|
|
13230
|
+
};
|
|
13231
|
+
}
|
|
13203
13232
|
const local = classifyOne(filePath, archetype, opts);
|
|
13204
13233
|
const repoPath = opts?.repoRelative?.replace(/\\/g, "/");
|
|
13205
13234
|
const repo = repoPath && repoPath !== filePath.replace(/\\/g, "/") && prefixHasLayerHint(repoPath, filePath) ? classifyOne(repoPath, archetype, opts) : null;
|
|
@@ -13693,6 +13722,7 @@ function collectBoundaryViolations(result, graph, profile, projectPath, projects
|
|
|
13693
13722
|
if (!fromFile || !toFile || fromFile === toFile) continue;
|
|
13694
13723
|
if (!fileInScope(fromFile, projectPath) || !fileInScope(toFile, projectPath)) continue;
|
|
13695
13724
|
if (!sameOwningProject(fromFile, toFile, projectPath, projects)) continue;
|
|
13725
|
+
if (isTestFilePath(fromFile) || isTestFilePath(toFile)) continue;
|
|
13696
13726
|
const fromState = states.get(fromFile);
|
|
13697
13727
|
const toState = states.get(toFile);
|
|
13698
13728
|
if (!fromState?.layer || !toState?.layer) continue;
|
|
@@ -15924,5 +15954,5 @@ async function computeTreeMetadataHash(rootDir, options) {
|
|
|
15924
15954
|
}
|
|
15925
15955
|
|
|
15926
15956
|
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 };
|
|
15927
|
-
//# sourceMappingURL=chunk-
|
|
15928
|
-
//# sourceMappingURL=chunk-
|
|
15957
|
+
//# sourceMappingURL=chunk-5UG4UHKU.js.map
|
|
15958
|
+
//# sourceMappingURL=chunk-5UG4UHKU.js.map
|