@vibecheckai/cli 3.9.1 → 4.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.
Files changed (86) hide show
  1. package/README.md +1 -1
  2. package/bin/runners/context/generators/cursor-enhanced.js +99 -13
  3. package/mcp-server/.eslintrc.json +24 -0
  4. package/mcp-server/README.md +425 -135
  5. package/mcp-server/SPEC.md +583 -0
  6. package/mcp-server/configs/README.md +172 -0
  7. package/mcp-server/configs/claude-desktop-pro.json +31 -0
  8. package/mcp-server/configs/claude-desktop-with-workspace.json +25 -0
  9. package/mcp-server/configs/claude-desktop.json +19 -0
  10. package/mcp-server/configs/cursor-mcp.json +21 -0
  11. package/mcp-server/configs/windsurf-mcp.json +17 -0
  12. package/mcp-server/mcp-config.example.json +9 -0
  13. package/mcp-server/package-lock.json +1631 -0
  14. package/mcp-server/package.json +49 -34
  15. package/mcp-server/src/cli.ts +185 -0
  16. package/mcp-server/src/index.ts +85 -0
  17. package/mcp-server/src/server.ts +1933 -0
  18. package/mcp-server/src/services/cache-service.ts +466 -0
  19. package/mcp-server/src/services/cli-service.ts +345 -0
  20. package/mcp-server/src/services/context-manager.ts +717 -0
  21. package/mcp-server/src/services/firewall-service.ts +662 -0
  22. package/mcp-server/src/services/git-service.ts +671 -0
  23. package/mcp-server/src/services/index.ts +52 -0
  24. package/mcp-server/src/services/prompt-builder-service.ts +1031 -0
  25. package/mcp-server/src/services/session-service.ts +550 -0
  26. package/mcp-server/src/services/tier-service.ts +470 -0
  27. package/mcp-server/src/types.ts +351 -0
  28. package/mcp-server/tsconfig.json +16 -27
  29. package/package.json +6 -6
  30. package/mcp-server/.guardrail/audit/audit.log.jsonl +0 -2
  31. package/mcp-server/.specs/architecture.mdc +0 -90
  32. package/mcp-server/.specs/security.mdc +0 -30
  33. package/mcp-server/HARDENING_SUMMARY.md +0 -299
  34. package/mcp-server/agent-checkpoint.js +0 -364
  35. package/mcp-server/agent-firewall-interceptor.js +0 -500
  36. package/mcp-server/architect-tools.js +0 -707
  37. package/mcp-server/audit-mcp.js +0 -206
  38. package/mcp-server/authority-tools.js +0 -569
  39. package/mcp-server/codebase-architect-tools.js +0 -838
  40. package/mcp-server/conductor/conflict-resolver.js +0 -588
  41. package/mcp-server/conductor/execution-planner.js +0 -544
  42. package/mcp-server/conductor/index.js +0 -377
  43. package/mcp-server/conductor/lock-manager.js +0 -615
  44. package/mcp-server/conductor/request-queue.js +0 -550
  45. package/mcp-server/conductor/session-manager.js +0 -500
  46. package/mcp-server/conductor/tools.js +0 -510
  47. package/mcp-server/consolidated-tools.js +0 -1170
  48. package/mcp-server/deprecation-middleware.js +0 -282
  49. package/mcp-server/handlers/index.ts +0 -15
  50. package/mcp-server/handlers/tool-handler.ts +0 -593
  51. package/mcp-server/hygiene-tools.js +0 -428
  52. package/mcp-server/index-v1.js +0 -698
  53. package/mcp-server/index.js +0 -2940
  54. package/mcp-server/intelligence-tools.js +0 -664
  55. package/mcp-server/intent-drift-tools.js +0 -873
  56. package/mcp-server/intent-firewall-interceptor.js +0 -529
  57. package/mcp-server/lib/api-client.cjs +0 -13
  58. package/mcp-server/lib/cache-wrapper.cjs +0 -383
  59. package/mcp-server/lib/error-envelope.js +0 -138
  60. package/mcp-server/lib/executor.ts +0 -499
  61. package/mcp-server/lib/index.ts +0 -29
  62. package/mcp-server/lib/logger.cjs +0 -30
  63. package/mcp-server/lib/rate-limiter.js +0 -166
  64. package/mcp-server/lib/sandbox.test.ts +0 -519
  65. package/mcp-server/lib/sandbox.ts +0 -395
  66. package/mcp-server/lib/types.ts +0 -267
  67. package/mcp-server/logger.js +0 -173
  68. package/mcp-server/manifest.json +0 -473
  69. package/mcp-server/mdc-generator.js +0 -298
  70. package/mcp-server/premium-tools.js +0 -1275
  71. package/mcp-server/proof-tools.js +0 -571
  72. package/mcp-server/registry/tool-registry.js +0 -586
  73. package/mcp-server/registry/tools.json +0 -619
  74. package/mcp-server/registry.test.ts +0 -340
  75. package/mcp-server/test-mcp.js +0 -108
  76. package/mcp-server/test-tools.js +0 -36
  77. package/mcp-server/tests/tier-gating.test.js +0 -297
  78. package/mcp-server/tier-auth.js +0 -767
  79. package/mcp-server/tools/index.js +0 -72
  80. package/mcp-server/tools-reorganized.ts +0 -244
  81. package/mcp-server/tools-v3.js +0 -1004
  82. package/mcp-server/truth-context.js +0 -622
  83. package/mcp-server/truth-firewall-tools.js +0 -2183
  84. package/mcp-server/vibecheck-2.0-tools.js +0 -761
  85. package/mcp-server/vibecheck-mcp-server-3.2.0.tgz +0 -0
  86. package/mcp-server/vibecheck-tools.js +0 -1075
@@ -1,173 +0,0 @@
1
- /**
2
- * VibeCheck MCP Server Logger
3
- *
4
- * Centralized logging utility for all MCP server modules.
5
- * Avoids console.log/warn/error in production code.
6
- */
7
-
8
- "use strict";
9
-
10
- /**
11
- * Log levels
12
- */
13
- export const LOG_LEVELS = {
14
- DEBUG: 0,
15
- INFO: 1,
16
- WARN: 2,
17
- ERROR: 3,
18
- SILENT: 4,
19
- };
20
-
21
- /**
22
- * Current log level (can be set via environment)
23
- */
24
- let currentLevel = LOG_LEVELS.INFO;
25
-
26
- // Set from environment
27
- if (process.env.VIBECHECK_LOG_LEVEL) {
28
- const envLevel = process.env.VIBECHECK_LOG_LEVEL.toUpperCase();
29
- if (LOG_LEVELS[envLevel] !== undefined) {
30
- currentLevel = LOG_LEVELS[envLevel];
31
- }
32
- }
33
-
34
- /**
35
- * Log buffer for testing/inspection
36
- */
37
- const logBuffer = [];
38
- const MAX_BUFFER_SIZE = 1000;
39
-
40
- /**
41
- * Format a log message
42
- * @param {string} level - Log level
43
- * @param {string} module - Module name
44
- * @param {string} message - Log message
45
- * @returns {string} Formatted message
46
- */
47
- function formatMessage(level, module, message) {
48
- const timestamp = new Date().toISOString();
49
- return `[${timestamp}] [${level}] [${module}] ${message}`;
50
- }
51
-
52
- /**
53
- * Write a log entry
54
- * @param {number} level - Log level number
55
- * @param {string} levelName - Level name
56
- * @param {string} module - Module name
57
- * @param {string} message - Message
58
- * @param {Error} [error] - Optional error object
59
- */
60
- function writeLog(level, levelName, module, message, error = null) {
61
- if (level < currentLevel) return;
62
-
63
- const formatted = formatMessage(levelName, module, message);
64
-
65
- // Add to buffer
66
- logBuffer.push({
67
- timestamp: new Date(),
68
- level: levelName,
69
- module,
70
- message,
71
- error: error ? { message: error.message, stack: error.stack } : null,
72
- });
73
-
74
- // Trim buffer
75
- if (logBuffer.length > MAX_BUFFER_SIZE) {
76
- logBuffer.shift();
77
- }
78
-
79
- // Write to stderr (MCP servers should write logs to stderr, stdout is for JSON-RPC)
80
- if (level >= LOG_LEVELS.WARN) {
81
- process.stderr.write(formatted + '\n');
82
- } else if (process.env.VIBECHECK_DEBUG || currentLevel === LOG_LEVELS.DEBUG) {
83
- process.stderr.write(formatted + '\n');
84
- }
85
- }
86
-
87
- /**
88
- * Create a logger for a specific module
89
- * @param {string} moduleName - Module name
90
- * @returns {Object} Logger instance
91
- */
92
- export function createLogger(moduleName) {
93
- return {
94
- debug: (message) => writeLog(LOG_LEVELS.DEBUG, 'DEBUG', moduleName, message),
95
- info: (message) => writeLog(LOG_LEVELS.INFO, 'INFO', moduleName, message),
96
- warn: (message, error = null) => writeLog(LOG_LEVELS.WARN, 'WARN', moduleName, message, error),
97
- error: (message, error = null) => writeLog(LOG_LEVELS.ERROR, 'ERROR', moduleName, message, error),
98
- };
99
- }
100
-
101
- /**
102
- * Set the global log level
103
- * @param {string|number} level - Level name or number
104
- */
105
- export function setLogLevel(level) {
106
- if (typeof level === 'string') {
107
- const upperLevel = level.toUpperCase();
108
- if (LOG_LEVELS[upperLevel] !== undefined) {
109
- currentLevel = LOG_LEVELS[upperLevel];
110
- }
111
- } else if (typeof level === 'number') {
112
- currentLevel = level;
113
- }
114
- }
115
-
116
- /**
117
- * Get current log level
118
- * @returns {number} Current level
119
- */
120
- export function getLogLevel() {
121
- return currentLevel;
122
- }
123
-
124
- /**
125
- * Get recent log entries
126
- * @param {number} count - Number of entries
127
- * @returns {Object[]} Log entries
128
- */
129
- export function getRecentLogs(count = 100) {
130
- return logBuffer.slice(-count);
131
- }
132
-
133
- /**
134
- * Clear log buffer
135
- */
136
- export function clearLogs() {
137
- logBuffer.length = 0;
138
- }
139
-
140
- /**
141
- * Get error message safely from any error type
142
- * @param {unknown} error - Error object
143
- * @returns {string} Error message
144
- */
145
- export function getErrorMessage(error) {
146
- if (error instanceof Error) {
147
- return error.message;
148
- }
149
- if (typeof error === 'string') {
150
- return error;
151
- }
152
- if (error && typeof error === 'object' && 'message' in error) {
153
- return String(error.message);
154
- }
155
- return String(error);
156
- }
157
-
158
- // Pre-created loggers for common modules
159
- export const conductorLogger = createLogger('Conductor');
160
- export const lawbookLogger = createLogger('Lawbook');
161
- export const timeMachineLogger = createLogger('TimeMachine');
162
- export const clearanceLogger = createLogger('Clearance');
163
- export const firewallLogger = createLogger('Firewall');
164
-
165
- export default {
166
- createLogger,
167
- setLogLevel,
168
- getLogLevel,
169
- getRecentLogs,
170
- clearLogs,
171
- getErrorMessage,
172
- LOG_LEVELS,
173
- };
@@ -1,473 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "name": "vibecheck-mcp",
4
- "version": "4.0.0",
5
- "description": "VibeCheck MCP Server - AI-powered code verification and trust enforcement for IDEs",
6
- "homepage": "https://vibecheckai.dev",
7
- "repository": "https://github.com/vibecheckai/vibecheck",
8
- "license": "MIT",
9
-
10
- "capabilities": {
11
- "tools": true,
12
- "resources": true,
13
- "prompts": false
14
- },
15
-
16
- "connection": {
17
- "transport": "stdio",
18
- "protocol": "jsonrpc",
19
- "version": "2024-11-05"
20
- },
21
-
22
- "categories": {
23
- "setup": {
24
- "name": "Setup",
25
- "icon": "🔧",
26
- "description": "Project initialization and health"
27
- },
28
- "analysis": {
29
- "name": "Analysis",
30
- "icon": "🔍",
31
- "description": "Code analysis and auditing"
32
- },
33
- "truth": {
34
- "name": "Truth",
35
- "icon": "📜",
36
- "description": "Ground truth and context generation"
37
- },
38
- "enforcement": {
39
- "name": "Enforcement",
40
- "icon": "🛡️",
41
- "description": "Agent firewall and intent tracking"
42
- },
43
- "proof": {
44
- "name": "Proof",
45
- "icon": "✅",
46
- "description": "Verification and evidence"
47
- },
48
- "automation": {
49
- "name": "Automation",
50
- "icon": "🤖",
51
- "description": "CI/CD and deployment"
52
- },
53
- "output": {
54
- "name": "Output",
55
- "icon": "📦",
56
- "description": "Reports and artifacts"
57
- },
58
- "config": {
59
- "name": "Config",
60
- "icon": "⚙️",
61
- "description": "Configuration management"
62
- },
63
- "account": {
64
- "name": "Account",
65
- "icon": "👤",
66
- "description": "Authentication and billing"
67
- }
68
- },
69
-
70
- "tools": [
71
- {
72
- "name": "vibecheck.link",
73
- "cli": "link",
74
- "category": "setup",
75
- "tier": "free",
76
- "description": "One-time project setup: config, contracts, scripts",
77
- "inputSchema": {
78
- "type": "object",
79
- "properties": {
80
- "projectPath": { "type": "string", "default": "." },
81
- "force": { "type": "boolean", "default": false }
82
- }
83
- }
84
- },
85
- {
86
- "name": "vibecheck.kickoff",
87
- "cli": "kickoff",
88
- "category": "setup",
89
- "tier": "free",
90
- "description": "Interactive guided onboarding experience",
91
- "inputSchema": {
92
- "type": "object",
93
- "properties": {
94
- "projectPath": { "type": "string", "default": "." }
95
- }
96
- }
97
- },
98
- {
99
- "name": "vibecheck.doctor",
100
- "cli": "doctor",
101
- "category": "setup",
102
- "tier": "free",
103
- "description": "Environment, dependency, and configuration health check",
104
- "inputSchema": {
105
- "type": "object",
106
- "properties": {
107
- "projectPath": { "type": "string", "default": "." },
108
- "fix": { "type": "boolean", "default": false },
109
- "verbose": { "type": "boolean", "default": false }
110
- }
111
- }
112
- },
113
- {
114
- "name": "vibecheck.audit",
115
- "cli": "audit",
116
- "category": "analysis",
117
- "tier": "free",
118
- "description": "Analyze codebase for issues (routes, env, auth, security, dead code)",
119
- "inputSchema": {
120
- "type": "object",
121
- "properties": {
122
- "projectPath": { "type": "string", "default": "." },
123
- "categories": {
124
- "type": "array",
125
- "items": { "type": "string" },
126
- "description": "Categories: routes, env, auth, billing, security, dead-code"
127
- },
128
- "profile": {
129
- "type": "string",
130
- "enum": ["quick", "standard", "full"],
131
- "default": "standard"
132
- }
133
- }
134
- }
135
- },
136
- {
137
- "name": "vibecheck.forge",
138
- "cli": "forge",
139
- "category": "truth",
140
- "tier": "free",
141
- "description": "Generate IDE rules and AI context (.cursorrules, MDC, Copilot)",
142
- "inputSchema": {
143
- "type": "object",
144
- "properties": {
145
- "projectPath": { "type": "string", "default": "." },
146
- "format": {
147
- "type": "string",
148
- "enum": ["cursor", "copilot", "windsurf", "all"],
149
- "default": "all"
150
- }
151
- }
152
- }
153
- },
154
- {
155
- "name": "vibecheck.shield",
156
- "cli": "shield",
157
- "category": "enforcement",
158
- "tier": "free",
159
- "description": "Agent Firewall - intercept, validate, enforce AI actions",
160
- "proOptions": ["enforce", "lock", "install", "check"],
161
- "inputSchema": {
162
- "type": "object",
163
- "properties": {
164
- "action": {
165
- "type": "string",
166
- "enum": ["status", "verify", "enforce", "observe", "lock", "unlock", "install", "stats", "check"],
167
- "default": "status"
168
- },
169
- "code": { "type": "string", "description": "Code to verify" },
170
- "file": { "type": "string", "description": "File path" },
171
- "projectPath": { "type": "string", "default": "." }
172
- }
173
- }
174
- },
175
- {
176
- "name": "vibecheck.intent",
177
- "cli": "intent",
178
- "category": "enforcement",
179
- "tier": "free",
180
- "description": "Declare and manage AI session intent for enforcement",
181
- "inputSchema": {
182
- "type": "object",
183
- "properties": {
184
- "action": {
185
- "type": "string",
186
- "enum": ["set", "show", "clear", "history"],
187
- "default": "show"
188
- },
189
- "summary": { "type": "string", "description": "Intent summary (for set action)" },
190
- "constraints": { "type": "array", "items": { "type": "string" } },
191
- "projectPath": { "type": "string", "default": "." }
192
- }
193
- }
194
- },
195
- {
196
- "name": "vibecheck.ship",
197
- "cli": "ship",
198
- "category": "proof",
199
- "tier": "pro",
200
- "description": "Verdict engine - SHIP/WARN/BLOCK with evidence-backed decision",
201
- "inputSchema": {
202
- "type": "object",
203
- "properties": {
204
- "projectPath": { "type": "string", "default": "." },
205
- "strict": { "type": "boolean", "default": false },
206
- "badge": { "type": "boolean", "default": false }
207
- }
208
- }
209
- },
210
- {
211
- "name": "vibecheck.fix",
212
- "cli": "fix",
213
- "category": "proof",
214
- "tier": "pro",
215
- "description": "AI-powered auto-fix for detected findings",
216
- "inputSchema": {
217
- "type": "object",
218
- "properties": {
219
- "projectPath": { "type": "string", "default": "." },
220
- "mode": {
221
- "type": "string",
222
- "enum": ["plan", "apply", "loop"],
223
- "default": "plan"
224
- },
225
- "findingIds": { "type": "array", "items": { "type": "string" } },
226
- "dryRun": { "type": "boolean", "default": false }
227
- }
228
- }
229
- },
230
- {
231
- "name": "vibecheck.prove",
232
- "cli": "prove",
233
- "category": "proof",
234
- "tier": "pro",
235
- "description": "Full proof loop with runtime verification",
236
- "inputSchema": {
237
- "type": "object",
238
- "properties": {
239
- "projectPath": { "type": "string", "default": "." },
240
- "url": { "type": "string" },
241
- "maxIterations": { "type": "number", "default": 5 },
242
- "recordVideo": { "type": "boolean", "default": true }
243
- }
244
- }
245
- },
246
- {
247
- "name": "vibecheck.reality",
248
- "cli": "reality",
249
- "category": "proof",
250
- "tier": "pro",
251
- "description": "Browser-based runtime verification with auth boundary testing",
252
- "inputSchema": {
253
- "type": "object",
254
- "properties": {
255
- "url": { "type": "string" },
256
- "auth": { "type": "string" },
257
- "headed": { "type": "boolean", "default": false },
258
- "maxPages": { "type": "number", "default": 20 }
259
- },
260
- "required": ["url"]
261
- }
262
- },
263
- {
264
- "name": "vibecheck.checkpoint",
265
- "cli": "checkpoint",
266
- "category": "proof",
267
- "tier": "pro",
268
- "description": "Compare baseline vs current state",
269
- "inputSchema": {
270
- "type": "object",
271
- "properties": {
272
- "projectPath": { "type": "string", "default": "." },
273
- "baseline": { "type": "string" }
274
- }
275
- }
276
- },
277
- {
278
- "name": "vibecheck.launch",
279
- "cli": "launch",
280
- "category": "automation",
281
- "tier": "pro",
282
- "description": "CI/CD enforcement - preflight checks and deploy gates",
283
- "inputSchema": {
284
- "type": "object",
285
- "properties": {
286
- "projectPath": { "type": "string", "default": "." },
287
- "action": {
288
- "type": "string",
289
- "enum": ["preflight", "prelaunch", "check"],
290
- "default": "preflight"
291
- },
292
- "strict": { "type": "boolean", "default": false }
293
- }
294
- }
295
- },
296
- {
297
- "name": "vibecheck.packs",
298
- "cli": "packs",
299
- "category": "output",
300
- "tier": "free",
301
- "description": "Generate shareable artifact packs: reports, evidence, proof graphs",
302
- "inputSchema": {
303
- "type": "object",
304
- "properties": {
305
- "action": {
306
- "type": "string",
307
- "enum": ["evidence", "report", "graph", "permissions", "manifest"],
308
- "default": "evidence"
309
- },
310
- "projectPath": { "type": "string", "default": "." },
311
- "format": {
312
- "type": "string",
313
- "enum": ["html", "md", "sarif", "json", "csv", "pdf", "dot", "mermaid"],
314
- "default": "html"
315
- },
316
- "output": { "type": "string" }
317
- }
318
- }
319
- },
320
- {
321
- "name": "vibecheck.seal",
322
- "cli": "seal",
323
- "category": "output",
324
- "tier": "pro",
325
- "description": "Generate verification seal/badge with cryptographic attestation",
326
- "inputSchema": {
327
- "type": "object",
328
- "properties": {
329
- "projectPath": { "type": "string", "default": "." },
330
- "format": {
331
- "type": "string",
332
- "enum": ["svg", "png", "json"],
333
- "default": "svg"
334
- },
335
- "output": { "type": "string" },
336
- "attest": { "type": "boolean", "default": false }
337
- }
338
- }
339
- },
340
- {
341
- "name": "vibecheck.safelist",
342
- "cli": "safelist",
343
- "category": "config",
344
- "tier": "free",
345
- "description": "Manage finding safelist for false positives",
346
- "inputSchema": {
347
- "type": "object",
348
- "properties": {
349
- "projectPath": { "type": "string", "default": "." },
350
- "action": {
351
- "type": "string",
352
- "enum": ["list", "add", "remove"],
353
- "default": "list"
354
- },
355
- "id": { "type": "string" },
356
- "pattern": { "type": "string" },
357
- "reason": { "type": "string" }
358
- }
359
- }
360
- },
361
- {
362
- "name": "vibecheck.auth",
363
- "cli": "auth",
364
- "category": "account",
365
- "tier": "free",
366
- "description": "Authentication management: login, logout, whoami",
367
- "inputSchema": {
368
- "type": "object",
369
- "properties": {
370
- "action": {
371
- "type": "string",
372
- "enum": ["login", "logout", "whoami", "status"],
373
- "default": "whoami"
374
- },
375
- "apiKey": { "type": "string" }
376
- }
377
- }
378
- },
379
- {
380
- "name": "vibecheck.approve",
381
- "cli": "approve",
382
- "category": "proof",
383
- "tier": "pro",
384
- "description": "Authority verdicts - PROCEED/STOP/DEFER with proofs",
385
- "inputSchema": {
386
- "type": "object",
387
- "properties": {
388
- "authority": { "type": "string" },
389
- "projectPath": { "type": "string", "default": "." },
390
- "dryRun": { "type": "boolean", "default": false }
391
- },
392
- "required": ["authority"]
393
- }
394
- },
395
- {
396
- "name": "vibecheck.polish",
397
- "cli": "polish",
398
- "category": "proof",
399
- "tier": "pro",
400
- "description": "Code polish and cleanup",
401
- "inputSchema": {
402
- "type": "object",
403
- "properties": {
404
- "projectPath": { "type": "string", "default": "." },
405
- "scope": {
406
- "type": "string",
407
- "enum": ["all", "lint", "format", "imports"],
408
- "default": "all"
409
- }
410
- }
411
- }
412
- },
413
- {
414
- "name": "vibecheck.labs",
415
- "cli": "labs",
416
- "category": "setup",
417
- "tier": "free",
418
- "description": "Access experimental features",
419
- "inputSchema": {
420
- "type": "object",
421
- "properties": {
422
- "feature": { "type": "string" },
423
- "projectPath": { "type": "string", "default": "." }
424
- }
425
- }
426
- },
427
- {
428
- "name": "vibecheck.health",
429
- "cli": "health",
430
- "category": "setup",
431
- "tier": "free",
432
- "description": "MCP server health check - returns server status and diagnostics",
433
- "inputSchema": {
434
- "type": "object",
435
- "properties": {}
436
- }
437
- }
438
- ],
439
-
440
- "tiers": {
441
- "free": {
442
- "name": "Free",
443
- "price": "$0",
444
- "description": "Full visibility - all analysis and enforcement tools"
445
- },
446
- "pro": {
447
- "name": "Pro",
448
- "price": "$49/mo",
449
- "description": "Full automation - autofix, prove, reality, CI/CD gates"
450
- }
451
- },
452
-
453
- "quickStart": {
454
- "steps": [
455
- {
456
- "title": "Install",
457
- "command": "npm install -g @vibecheckai/cli"
458
- },
459
- {
460
- "title": "Configure IDE",
461
- "command": "vibecheck mcp config --ide cursor --write"
462
- },
463
- {
464
- "title": "Start Server",
465
- "command": "vibecheck mcp serve"
466
- },
467
- {
468
- "title": "Test",
469
- "prompt": "Ask your AI: 'What vibecheck tools are available?'"
470
- }
471
- ]
472
- }
473
- }