@vibecheck-ai/mcp 25.0.0 → 26.0.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.
@@ -0,0 +1,80 @@
1
+ import { createRequire } from 'module';
2
+ import { fileURLToPath } from 'url';
3
+ import * as path from 'path';
4
+ import { dirname } from 'path';
5
+ import './chunk-YWUMPN4Z.js';
6
+ import * as fs from 'fs';
7
+ import * as os from 'os';
8
+
9
+ createRequire(import.meta.url);
10
+ const __filename$1 = fileURLToPath(import.meta.url);
11
+ dirname(__filename$1);
12
+ var API_BASE = process.env.VIBECHECK_API_URL || "https://api.vibecheckai.dev";
13
+ var CACHE_TTL_MS = 6 * 60 * 60 * 1e3;
14
+ var CACHE_PATH = path.join(os.homedir(), ".vibecheck", "min-versions.json");
15
+ function parseSemver(v) {
16
+ const cleaned = v.replace(/^v/, "").split("-")[0] ?? "0.0.0";
17
+ const parts = cleaned.split(".").map((p) => parseInt(p, 10));
18
+ return [parts[0] || 0, parts[1] || 0, parts[2] || 0];
19
+ }
20
+ function isBelow(current, min) {
21
+ const [a1, a2, a3] = parseSemver(current);
22
+ const [b1, b2, b3] = parseSemver(min);
23
+ if (a1 !== b1) return a1 < b1;
24
+ if (a2 !== b2) return a2 < b2;
25
+ return a3 < b3;
26
+ }
27
+ function loadCache() {
28
+ try {
29
+ const raw = fs.readFileSync(CACHE_PATH, "utf-8");
30
+ const parsed = JSON.parse(raw);
31
+ if (typeof parsed.fetchedAt !== "number") return null;
32
+ if (Date.now() - parsed.fetchedAt > CACHE_TTL_MS) return null;
33
+ return parsed;
34
+ } catch {
35
+ return null;
36
+ }
37
+ }
38
+ function saveCache(versions) {
39
+ try {
40
+ fs.mkdirSync(path.dirname(CACHE_PATH), { recursive: true });
41
+ fs.writeFileSync(
42
+ CACHE_PATH,
43
+ JSON.stringify({ versions, fetchedAt: Date.now() }),
44
+ "utf-8"
45
+ );
46
+ } catch {
47
+ }
48
+ }
49
+ async function fetchMinVersions() {
50
+ const cached = loadCache();
51
+ if (cached) return cached.versions;
52
+ try {
53
+ const controller = new AbortController();
54
+ const timer = setTimeout(() => controller.abort(), 3e3);
55
+ const res = await fetch(`${API_BASE}/api/v1/min-versions`, {
56
+ signal: controller.signal,
57
+ headers: { Accept: "application/json" }
58
+ });
59
+ clearTimeout(timer);
60
+ if (!res.ok) return null;
61
+ const data = await res.json();
62
+ saveCache(data);
63
+ return data;
64
+ } catch {
65
+ return null;
66
+ }
67
+ }
68
+ async function isMcpBelowMinimum(currentVersion) {
69
+ if (process.env.VIBECHECK_SKIP_VERSION_GATE === "1" || process.env.VIBECHECK_SKIP_VERSION_GATE === "true") {
70
+ return { belowMin: false };
71
+ }
72
+ const versions = await fetchMinVersions();
73
+ if (!versions?.mcp) return { belowMin: false };
74
+ return {
75
+ belowMin: isBelow(currentVersion, versions.mcp),
76
+ minVersion: versions.mcp
77
+ };
78
+ }
79
+
80
+ export { isMcpBelowMinimum };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibecheck-ai/mcp",
3
- "version": "25.0.0",
3
+ "version": "26.0.1",
4
4
  "description": "VibeCheck MCP — the code intelligence layer for AI-built software, wired into your agent. Truth-grounded, runtime-aware, multi-agent. 16+ verification engines, runtime probes, and live truthpack context for Cursor, Claude, Windsurf, and any MCP-compatible client.",
5
5
  "mcpName": "io.github.guardiavault-oss/vibecheck-mcp",
6
6
  "type": "module",
@@ -60,21 +60,32 @@
60
60
  "postpublish": "node scripts/postpublish.cjs"
61
61
  },
62
62
  "dependencies": {
63
+ "@isl-lang/pipeline": "workspace:*",
63
64
  "@modelcontextprotocol/sdk": "^1.0.0",
64
- "@repo/shared": "^0.1.0",
65
- "@repo/shared-types": "^1.1.0",
66
- "@repo/subscriptions": "^1.0.0",
67
- "@vibecheck-ai/cli": "^26.0.0",
68
- "@vibecheck/engines": "^2.0.0-beta.1",
69
- "@vibecheck/roast": "^1.0.0",
70
- "@vibecheck/x402-gate": "^0.1.0",
65
+ "@repo/shared": "workspace:*",
66
+ "@repo/shared-types": "workspace:*",
67
+ "@repo/subscriptions": "workspace:*",
68
+ "@vibecheck-ai/cli": "workspace:*",
69
+ "@vibecheck/engines": "workspace:*",
70
+ "@vibecheck/roast": "workspace:*",
71
+ "@vibecheck/x402-gate": "workspace:*",
72
+ "posthog-node": "^4.2.0",
71
73
  "zod": "^3.25.76"
72
74
  },
73
75
  "optionalDependencies": {
74
76
  "better-sqlite3": "^11.7.0"
75
77
  },
76
78
  "devDependencies": {
79
+ "@repo/eslint-config": "workspace:*",
80
+ "@repo/context-engine": "workspace:*",
81
+ "@repo/context-evolution": "workspace:*",
77
82
  "@types/node": "^20.0.0",
83
+ "@vibecheck/codegraph": "workspace:*",
84
+ "@vibecheck/core": "workspace:*",
85
+ "@vibecheck/engines": "workspace:*",
86
+ "@vibecheck/nexus-orchestrator": "workspace:*",
87
+ "@vibecheck/nexus-sentinel": "workspace:*",
88
+ "@vibecheck/truthpack": "workspace:*",
78
89
  "eslint": "^9.28.0",
79
90
  "tsup": "^8.0.0",
80
91
  "typescript": "^5.8.0",