@vibecheck-ai/mcp 24.5.8 → 24.5.9

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/index.js CHANGED
@@ -219066,27 +219066,29 @@ var require_has_flag = __commonJS({
219066
219066
  }
219067
219067
  });
219068
219068
 
219069
- // ../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js
219069
+ // ../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js
219070
219070
  var require_supports_color = __commonJS({
219071
- "../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js"(exports2, module2) {
219071
+ "../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js"(exports2, module2) {
219072
219072
  "use strict";
219073
219073
  var os2 = __require("os");
219074
219074
  var tty = __require("tty");
219075
219075
  var hasFlag = require_has_flag();
219076
219076
  var { env: env3 } = process;
219077
- var forceColor;
219077
+ var flagForceColor;
219078
219078
  if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
219079
- forceColor = 0;
219079
+ flagForceColor = 0;
219080
219080
  } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
219081
- forceColor = 1;
219081
+ flagForceColor = 1;
219082
219082
  }
219083
- if ("FORCE_COLOR" in env3) {
219084
- if (env3.FORCE_COLOR === "true") {
219085
- forceColor = 1;
219086
- } else if (env3.FORCE_COLOR === "false") {
219087
- forceColor = 0;
219088
- } else {
219089
- forceColor = env3.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env3.FORCE_COLOR, 10), 3);
219083
+ function envForceColor() {
219084
+ if ("FORCE_COLOR" in env3) {
219085
+ if (env3.FORCE_COLOR === "true") {
219086
+ return 1;
219087
+ }
219088
+ if (env3.FORCE_COLOR === "false") {
219089
+ return 0;
219090
+ }
219091
+ return env3.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env3.FORCE_COLOR, 10), 3);
219090
219092
  }
219091
219093
  }
219092
219094
  function translateLevel(level) {
@@ -219100,15 +219102,22 @@ var require_supports_color = __commonJS({
219100
219102
  has16m: level >= 3
219101
219103
  };
219102
219104
  }
219103
- function supportsColor(haveStream, streamIsTTY) {
219105
+ function supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
219106
+ const noFlagForceColor = envForceColor();
219107
+ if (noFlagForceColor !== void 0) {
219108
+ flagForceColor = noFlagForceColor;
219109
+ }
219110
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
219104
219111
  if (forceColor === 0) {
219105
219112
  return 0;
219106
219113
  }
219107
- if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
219108
- return 3;
219109
- }
219110
- if (hasFlag("color=256")) {
219111
- return 2;
219114
+ if (sniffFlags) {
219115
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
219116
+ return 3;
219117
+ }
219118
+ if (hasFlag("color=256")) {
219119
+ return 2;
219120
+ }
219112
219121
  }
219113
219122
  if (haveStream && !streamIsTTY && forceColor === void 0) {
219114
219123
  return 0;
@@ -219125,7 +219134,7 @@ var require_supports_color = __commonJS({
219125
219134
  return 1;
219126
219135
  }
219127
219136
  if ("CI" in env3) {
219128
- if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env3) || env3.CI_NAME === "codeship") {
219137
+ if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE", "DRONE"].some((sign) => sign in env3) || env3.CI_NAME === "codeship") {
219129
219138
  return 1;
219130
219139
  }
219131
219140
  return min2;
@@ -219137,7 +219146,7 @@ var require_supports_color = __commonJS({
219137
219146
  return 3;
219138
219147
  }
219139
219148
  if ("TERM_PROGRAM" in env3) {
219140
- const version3 = parseInt((env3.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
219149
+ const version3 = Number.parseInt((env3.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
219141
219150
  switch (env3.TERM_PROGRAM) {
219142
219151
  case "iTerm.app":
219143
219152
  return version3 >= 3 ? 3 : 2;
@@ -219156,14 +219165,17 @@ var require_supports_color = __commonJS({
219156
219165
  }
219157
219166
  return min2;
219158
219167
  }
219159
- function getSupportLevel(stream) {
219160
- const level = supportsColor(stream, stream && stream.isTTY);
219168
+ function getSupportLevel(stream, options = {}) {
219169
+ const level = supportsColor(stream, {
219170
+ streamIsTTY: stream && stream.isTTY,
219171
+ ...options
219172
+ });
219161
219173
  return translateLevel(level);
219162
219174
  }
219163
219175
  module2.exports = {
219164
219176
  supportsColor: getSupportLevel,
219165
- stdout: translateLevel(supportsColor(true, tty.isatty(1))),
219166
- stderr: translateLevel(supportsColor(true, tty.isatty(2)))
219177
+ stdout: getSupportLevel({ isTTY: tty.isatty(1) }),
219178
+ stderr: getSupportLevel({ isTTY: tty.isatty(2) })
219167
219179
  };
219168
219180
  }
219169
219181
  });
@@ -219676,7 +219688,7 @@ var require_wrappers = __commonJS({
219676
219688
  exports2.prepare = function prepare(sql) {
219677
219689
  return this[cppdb].prepare(sql, this, false);
219678
219690
  };
219679
- exports2.exec = function exec2(sql) {
219691
+ exports2.exec = function exec(sql) {
219680
219692
  this[cppdb].exec(sql);
219681
219693
  return this;
219682
219694
  };
@@ -278734,7 +278746,7 @@ import { pathToFileURL } from "url";
278734
278746
  // src/server.ts
278735
278747
  import * as path9 from "path";
278736
278748
  import * as fs6 from "fs";
278737
- import { exec } from "child_process";
278749
+ import { execFile } from "child_process";
278738
278750
  import { promisify } from "util";
278739
278751
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
278740
278752
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -291813,7 +291825,7 @@ var ContextEngine = class {
291813
291825
  // src/server.ts
291814
291826
  init_dist();
291815
291827
 
291816
- // ../subscriptions/dist/chunk-EQ52N5FM.js
291828
+ // ../subscriptions/dist/chunk-IRYOMNQT.js
291817
291829
  var PLAN_IDS = ["free", "pro", "team", "enterprise"];
291818
291830
  var PLAN_RANK = Object.fromEntries(
291819
291831
  PLAN_IDS.map((id, index2) => [id, index2])
@@ -291898,9 +291910,9 @@ var PLAN_DEFINITIONS = {
291898
291910
  },
291899
291911
  pro: {
291900
291912
  displayName: "Pro",
291901
- tagline: "$9.99/mo or $99.99/yr (save 17%).",
291902
- monthlyPriceUsd: 9.99,
291903
- priceLabel: "$9.99/mo",
291913
+ tagline: "$19.00/mo or $189.99/yr (save 17%).",
291914
+ monthlyPriceUsd: 19,
291915
+ priceLabel: "$19.00/mo",
291904
291916
  billingInterval: "month",
291905
291917
  badgeToken: "tier-pro",
291906
291918
  highlights: [
@@ -293661,9 +293673,6 @@ var InputValidator = class {
293661
293673
  errors.push("Path traversal detected");
293662
293674
  logger.warn("Path traversal attempt blocked", { input, normalized });
293663
293675
  }
293664
- if (path7.isAbsolute(input)) {
293665
- errors.push("Absolute paths not allowed");
293666
- }
293667
293676
  if (input.includes("\0")) {
293668
293677
  errors.push("Null byte detected in path");
293669
293678
  logger.warn("Null byte injection attempt blocked", { input });
@@ -294461,12 +294470,12 @@ function createScanIdempotencyKey(prefix) {
294461
294470
  // src/mcp-scan-meter-client.ts
294462
294471
  var MCP_SCAN_METER_CLIENT = {
294463
294472
  type: "mcp",
294464
- version: "24.5.8"
294473
+ version: "24.5.9"
294465
294474
  };
294466
294475
 
294467
294476
  // src/server.ts
294468
294477
  import { uploadScanToApi } from "@repo/shared/sync/upload-scan";
294469
- var execAsync = promisify(exec);
294478
+ var execFileAsync = promisify(execFile);
294470
294479
  async function executeScan(targetPath, engineToggles = null) {
294471
294480
  const resolved = path9.resolve(targetPath);
294472
294481
  const stat4 = fs6.statSync(resolved);
@@ -295218,10 +295227,16 @@ This change is synced across all surfaces.`
295218
295227
  case "vibecheck_explain_file":
295219
295228
  case "vibecheck_review": {
295220
295229
  const cmdName = name2.replace("vibecheck_", "");
295221
- const cliArgs = Object.entries(args2).filter(([k]) => k !== "path").map(([k, v]) => `--${k}="${String(v)}"`).join(" ");
295230
+ const cliArgv = [cmdName];
295231
+ for (const [k, v] of Object.entries(args2)) {
295232
+ if (k === "path") continue;
295233
+ cliArgv.push(`--${k}`, String(v));
295234
+ }
295222
295235
  const workDir = targetPath || workspaceRoot;
295236
+ const vibecheckBin = new URL("../node_modules/.bin/vibecheck", import.meta.url).pathname;
295237
+ const binPath = fs6.existsSync(vibecheckBin) ? vibecheckBin : "vibecheck";
295223
295238
  try {
295224
- const { stdout, stderr } = await execAsync(`npx vibecheck ${cmdName} ${cliArgs}`, { cwd: workDir });
295239
+ const { stdout, stderr } = await execFileAsync(binPath, cliArgv, { cwd: workDir });
295225
295240
  return {
295226
295241
  content: [
295227
295242
  {
@@ -295231,7 +295246,8 @@ This change is synced across all surfaces.`
295231
295246
  ]
295232
295247
  };
295233
295248
  } catch (error) {
295234
- return buildErrorResponse(`CLI Execution Error: ${error.message || error.stdout || error.stderr || String(error)}`);
295249
+ const err2 = error;
295250
+ return buildErrorResponse(`CLI Execution Error: ${err2.message ?? err2.stdout ?? err2.stderr ?? String(error)}`);
295235
295251
  }
295236
295252
  }
295237
295253
  default:
@@ -295247,7 +295263,7 @@ function createMcpServer(runtimeOverrides = {}) {
295247
295263
  const server2 = new Server(
295248
295264
  {
295249
295265
  name: "vibecheck-mcp",
295250
- version: "2.0.0-alpha"
295266
+ version: "24.5.9"
295251
295267
  },
295252
295268
  {
295253
295269
  capabilities: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibecheck-ai/mcp",
3
- "version": "24.5.8",
3
+ "version": "24.5.9",
4
4
  "description": "The trust layer for AI-generated software. Catches phantom dependencies, ghost API routes, fake SDK methods, and hardcoded secrets — before they ship.",
5
5
  "mcpName": "io.github.guardiavault-oss/vibecheck-mcp",
6
6
  "type": "module",
@@ -8,6 +8,12 @@
8
8
  "access": "public"
9
9
  },
10
10
  "main": "./dist/index.js",
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "types": "./dist/index.d.ts"
15
+ }
16
+ },
11
17
  "keywords": [
12
18
  "vibecheck",
13
19
  "mcp",
@@ -29,7 +35,10 @@
29
35
  "url": "https://github.com/vibecheck-oss/vibecheck/issues"
30
36
  },
31
37
  "files": [
32
- "dist/index.js"
38
+ "dist/index.js",
39
+ "dist/index.d.ts",
40
+ "dist/index.d.ts.map",
41
+ "dist/*.node"
33
42
  ],
34
43
  "bin": {
35
44
  "vibecheck-mcp": "./dist/index.js"