@vibecheckai/cli 3.2.3 → 3.2.5
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/bin/.generated +25 -25
- package/bin/dev/run-v2-torture.js +30 -30
- package/bin/runners/ENHANCEMENT_GUIDE.md +121 -121
- package/bin/runners/lib/__tests__/entitlements-v2.test.js +295 -295
- package/bin/runners/lib/agent-firewall/ai/false-positive-analyzer.js +474 -0
- package/bin/runners/lib/agent-firewall/claims/extractor.js +117 -28
- package/bin/runners/lib/agent-firewall/evidence/env-evidence.js +23 -14
- package/bin/runners/lib/agent-firewall/evidence/route-evidence.js +72 -1
- package/bin/runners/lib/agent-firewall/interceptor/base.js +2 -2
- package/bin/runners/lib/agent-firewall/policy/default-policy.json +6 -0
- package/bin/runners/lib/agent-firewall/policy/engine.js +34 -3
- package/bin/runners/lib/agent-firewall/policy/rules/fake-success.js +29 -4
- package/bin/runners/lib/agent-firewall/policy/rules/ghost-route.js +12 -0
- package/bin/runners/lib/agent-firewall/truthpack/loader.js +21 -0
- package/bin/runners/lib/agent-firewall/utils/ignore-checker.js +118 -0
- package/bin/runners/lib/analyzers.js +606 -325
- package/bin/runners/lib/auth-truth.js +193 -193
- package/bin/runners/lib/backup.js +62 -62
- package/bin/runners/lib/billing.js +107 -107
- package/bin/runners/lib/claims.js +118 -118
- package/bin/runners/lib/cli-ui.js +540 -540
- package/bin/runners/lib/contracts/auth-contract.js +202 -202
- package/bin/runners/lib/contracts/env-contract.js +181 -181
- package/bin/runners/lib/contracts/external-contract.js +206 -206
- package/bin/runners/lib/contracts/guard.js +168 -168
- package/bin/runners/lib/contracts/index.js +89 -89
- package/bin/runners/lib/contracts/plan-validator.js +311 -311
- package/bin/runners/lib/contracts/route-contract.js +199 -199
- package/bin/runners/lib/contracts.js +804 -804
- package/bin/runners/lib/detect.js +89 -89
- package/bin/runners/lib/doctor/autofix.js +254 -254
- package/bin/runners/lib/doctor/index.js +37 -37
- package/bin/runners/lib/doctor/modules/dependencies.js +325 -325
- package/bin/runners/lib/doctor/modules/index.js +46 -46
- package/bin/runners/lib/doctor/modules/network.js +250 -250
- package/bin/runners/lib/doctor/modules/project.js +312 -312
- package/bin/runners/lib/doctor/modules/runtime.js +224 -224
- package/bin/runners/lib/doctor/modules/security.js +348 -348
- package/bin/runners/lib/doctor/modules/system.js +213 -213
- package/bin/runners/lib/doctor/modules/vibecheck.js +394 -394
- package/bin/runners/lib/doctor/reporter.js +262 -262
- package/bin/runners/lib/doctor/service.js +262 -262
- package/bin/runners/lib/doctor/types.js +113 -113
- package/bin/runners/lib/doctor/ui.js +263 -263
- package/bin/runners/lib/doctor-v2.js +608 -608
- package/bin/runners/lib/drift.js +425 -425
- package/bin/runners/lib/enforcement.js +72 -72
- package/bin/runners/lib/engines/accessibility-engine.js +190 -0
- package/bin/runners/lib/engines/api-consistency-engine.js +162 -0
- package/bin/runners/lib/engines/ast-cache.js +99 -0
- package/bin/runners/lib/engines/code-quality-engine.js +255 -0
- package/bin/runners/lib/engines/console-logs-engine.js +115 -0
- package/bin/runners/lib/engines/cross-file-analysis-engine.js +268 -0
- package/bin/runners/lib/engines/dead-code-engine.js +198 -0
- package/bin/runners/lib/engines/deprecated-api-engine.js +226 -0
- package/bin/runners/lib/engines/empty-catch-engine.js +150 -0
- package/bin/runners/lib/engines/file-filter.js +131 -0
- package/bin/runners/lib/engines/hardcoded-secrets-engine.js +251 -0
- package/bin/runners/lib/engines/mock-data-engine.js +272 -0
- package/bin/runners/lib/engines/parallel-processor.js +71 -0
- package/bin/runners/lib/engines/performance-issues-engine.js +265 -0
- package/bin/runners/lib/engines/security-vulnerabilities-engine.js +243 -0
- package/bin/runners/lib/engines/todo-fixme-engine.js +115 -0
- package/bin/runners/lib/engines/type-aware-engine.js +152 -0
- package/bin/runners/lib/engines/unsafe-regex-engine.js +225 -0
- package/bin/runners/lib/engines/vibecheck-engines/README.md +53 -0
- package/bin/runners/lib/engines/vibecheck-engines/index.js +15 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/ast-cache.js +164 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/code-quality-engine.js +291 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/console-logs-engine.js +83 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/dead-code-engine.js +198 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/deprecated-api-engine.js +275 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/empty-catch-engine.js +167 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/file-filter.js +217 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/hardcoded-secrets-engine.js +139 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/mock-data-engine.js +140 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/parallel-processor.js +164 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/performance-issues-engine.js +234 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/type-aware-engine.js +217 -0
- package/bin/runners/lib/engines/vibecheck-engines/lib/unsafe-regex-engine.js +78 -0
- package/bin/runners/lib/engines/vibecheck-engines/package.json +13 -0
- package/bin/runners/lib/enterprise-detect.js +603 -603
- package/bin/runners/lib/enterprise-init.js +942 -942
- package/bin/runners/lib/env-resolver.js +417 -417
- package/bin/runners/lib/env-template.js +66 -66
- package/bin/runners/lib/env.js +189 -189
- package/bin/runners/lib/extractors/client-calls.js +990 -990
- package/bin/runners/lib/extractors/fastify-route-dump.js +573 -573
- package/bin/runners/lib/extractors/fastify-routes.js +426 -426
- package/bin/runners/lib/extractors/index.js +363 -363
- package/bin/runners/lib/extractors/next-routes.js +524 -524
- package/bin/runners/lib/extractors/proof-graph.js +431 -431
- package/bin/runners/lib/extractors/route-matcher.js +451 -451
- package/bin/runners/lib/extractors/truthpack-v2.js +377 -377
- package/bin/runners/lib/extractors/ui-bindings.js +547 -547
- package/bin/runners/lib/findings-schema.js +281 -281
- package/bin/runners/lib/firewall-prompt.js +50 -50
- package/bin/runners/lib/global-flags.js +213 -213
- package/bin/runners/lib/graph/graph-builder.js +265 -265
- package/bin/runners/lib/graph/html-renderer.js +413 -413
- package/bin/runners/lib/graph/index.js +32 -32
- package/bin/runners/lib/graph/runtime-collector.js +215 -215
- package/bin/runners/lib/graph/static-extractor.js +518 -518
- package/bin/runners/lib/html-report.js +650 -650
- package/bin/runners/lib/interactive-menu.js +1496 -1496
- package/bin/runners/lib/llm.js +75 -75
- package/bin/runners/lib/meter.js +61 -61
- package/bin/runners/lib/missions/evidence.js +126 -126
- package/bin/runners/lib/patch.js +40 -40
- package/bin/runners/lib/permissions/auth-model.js +213 -213
- package/bin/runners/lib/permissions/idor-prover.js +205 -205
- package/bin/runners/lib/permissions/index.js +45 -45
- package/bin/runners/lib/permissions/matrix-builder.js +198 -198
- package/bin/runners/lib/pkgjson.js +28 -28
- package/bin/runners/lib/policy.js +295 -295
- package/bin/runners/lib/preflight.js +142 -142
- package/bin/runners/lib/reality/correlation-detectors.js +359 -359
- package/bin/runners/lib/reality/index.js +318 -318
- package/bin/runners/lib/reality/request-hashing.js +416 -416
- package/bin/runners/lib/reality/request-mapper.js +453 -453
- package/bin/runners/lib/reality/safety-rails.js +463 -463
- package/bin/runners/lib/reality/semantic-snapshot.js +408 -408
- package/bin/runners/lib/reality/toast-detector.js +393 -393
- package/bin/runners/lib/reality-findings.js +84 -84
- package/bin/runners/lib/receipts.js +179 -179
- package/bin/runners/lib/redact.js +29 -29
- package/bin/runners/lib/replay/capsule-manager.js +154 -154
- package/bin/runners/lib/replay/index.js +263 -263
- package/bin/runners/lib/replay/player.js +348 -348
- package/bin/runners/lib/replay/recorder.js +331 -331
- package/bin/runners/lib/report-output.js +187 -187
- package/bin/runners/lib/report.js +135 -135
- package/bin/runners/lib/route-detection.js +1140 -1140
- package/bin/runners/lib/sandbox/index.js +59 -59
- package/bin/runners/lib/sandbox/proof-chain.js +399 -399
- package/bin/runners/lib/sandbox/sandbox-runner.js +205 -205
- package/bin/runners/lib/sandbox/worktree.js +174 -174
- package/bin/runners/lib/scan-output.js +525 -190
- package/bin/runners/lib/schema-validator.js +350 -350
- package/bin/runners/lib/schemas/contracts.schema.json +160 -160
- package/bin/runners/lib/schemas/finding.schema.json +100 -100
- package/bin/runners/lib/schemas/mission-pack.schema.json +206 -206
- package/bin/runners/lib/schemas/proof-graph.schema.json +176 -176
- package/bin/runners/lib/schemas/reality-report.schema.json +162 -162
- package/bin/runners/lib/schemas/share-pack.schema.json +180 -180
- package/bin/runners/lib/schemas/ship-report.schema.json +117 -117
- package/bin/runners/lib/schemas/truthpack-v2.schema.json +303 -303
- package/bin/runners/lib/schemas/validator.js +438 -438
- package/bin/runners/lib/score-history.js +282 -282
- package/bin/runners/lib/share-pack.js +239 -239
- package/bin/runners/lib/snippets.js +67 -67
- package/bin/runners/lib/status-output.js +253 -253
- package/bin/runners/lib/terminal-ui.js +350 -350
- package/bin/runners/lib/upsell.js +510 -510
- package/bin/runners/lib/usage.js +153 -153
- package/bin/runners/lib/validate-patch.js +156 -156
- package/bin/runners/lib/verdict-engine.js +628 -628
- package/bin/runners/reality/engine.js +917 -917
- package/bin/runners/reality/flows.js +122 -122
- package/bin/runners/reality/report.js +378 -378
- package/bin/runners/reality/session.js +193 -193
- package/bin/runners/runGuard.js +168 -168
- package/bin/runners/runProof.zip +0 -0
- package/bin/runners/runProve.js +8 -0
- package/bin/runners/runReality.js +14 -0
- package/bin/runners/runScan.js +17 -1
- package/bin/runners/runTruth.js +15 -3
- package/bin/vibecheck.js +45 -20
- package/mcp-server/package.json +1 -1
- package/mcp-server/tier-auth.js +71 -16
- package/mcp-server/tools/index.js +72 -72
- package/mcp-server/vibecheck-mcp-server-3.2.0.tgz +0 -0
- package/package.json +1 -1
package/mcp-server/tier-auth.js
CHANGED
|
@@ -169,8 +169,8 @@ async function loadUserConfig() {
|
|
|
169
169
|
* Determine tier from API key
|
|
170
170
|
* Matches CLI entitlements-v2.js logic
|
|
171
171
|
*/
|
|
172
|
-
function getTierFromApiKey(apiKey) {
|
|
173
|
-
if (!apiKey) return
|
|
172
|
+
async function getTierFromApiKey(apiKey) {
|
|
173
|
+
if (!apiKey) return null; // No API key = no access
|
|
174
174
|
|
|
175
175
|
// Check API key prefix patterns (matches CLI)
|
|
176
176
|
if (apiKey.startsWith('gr_starter_')) return 'starter';
|
|
@@ -178,16 +178,43 @@ function getTierFromApiKey(apiKey) {
|
|
|
178
178
|
if (apiKey.startsWith('gr_compliance_') || apiKey.startsWith('gr_ent_')) return 'compliance';
|
|
179
179
|
if (apiKey.startsWith('gr_free_')) return 'free';
|
|
180
180
|
|
|
181
|
-
// Try to
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
181
|
+
// Try to validate with API
|
|
182
|
+
try {
|
|
183
|
+
const response = await fetch('https://api.vibecheckai.dev/whoami', {
|
|
184
|
+
headers: {
|
|
185
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
186
|
+
'Content-Type': 'application/json',
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
if (!response.ok) {
|
|
191
|
+
return null; // Invalid API key
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
const data = await response.json();
|
|
195
|
+
|
|
196
|
+
// Map API response to tier
|
|
197
|
+
switch (data.plan?.toLowerCase()) {
|
|
198
|
+
case 'starter':
|
|
199
|
+
return 'starter';
|
|
200
|
+
case 'pro':
|
|
201
|
+
return 'pro';
|
|
202
|
+
case 'compliance':
|
|
203
|
+
return 'compliance';
|
|
204
|
+
default:
|
|
205
|
+
return 'free';
|
|
206
|
+
}
|
|
207
|
+
} catch (error) {
|
|
208
|
+
console.error('API validation failed:', error);
|
|
209
|
+
return null; // On error, deny access
|
|
210
|
+
}
|
|
211
|
+
} // default for unknown keys
|
|
185
212
|
|
|
186
213
|
/**
|
|
187
214
|
* Check if user has access to a specific feature
|
|
188
215
|
* Matches CLI entitlements-v2.js logic
|
|
189
216
|
*/
|
|
190
|
-
export async function
|
|
217
|
+
export async function getFeatureAccessStatus(featureName, providedApiKey = null) {
|
|
191
218
|
// Try to load user config
|
|
192
219
|
const userConfig = await loadUserConfig();
|
|
193
220
|
const apiKey = providedApiKey || userConfig?.apiKey;
|
|
@@ -195,13 +222,22 @@ export async function checkFeatureAccess(featureName, providedApiKey = null) {
|
|
|
195
222
|
if (!apiKey) {
|
|
196
223
|
return {
|
|
197
224
|
hasAccess: false,
|
|
198
|
-
tier:
|
|
199
|
-
reason: 'No API key provided.
|
|
200
|
-
upgradeUrl: 'https://vibecheckai.dev
|
|
225
|
+
tier: null,
|
|
226
|
+
reason: 'No API key provided. Please set your API key with `vibecheck login`.',
|
|
227
|
+
upgradeUrl: 'https://vibecheckai.dev'
|
|
201
228
|
};
|
|
202
229
|
}
|
|
203
230
|
|
|
204
|
-
const currentTier = getTierFromApiKey(apiKey);
|
|
231
|
+
const currentTier = await getTierFromApiKey(apiKey);
|
|
232
|
+
|
|
233
|
+
if (!currentTier) {
|
|
234
|
+
return {
|
|
235
|
+
hasAccess: false,
|
|
236
|
+
tier: null,
|
|
237
|
+
reason: 'Invalid API key. Please check your API key or get a new one at https://vibecheckai.dev',
|
|
238
|
+
upgradeUrl: 'https://vibecheckai.dev'
|
|
239
|
+
};
|
|
240
|
+
}
|
|
205
241
|
const currentTierConfig = TIERS[currentTier];
|
|
206
242
|
|
|
207
243
|
// Find which tier has this feature
|
|
@@ -222,7 +258,7 @@ export async function checkFeatureAccess(featureName, providedApiKey = null) {
|
|
|
222
258
|
hasAccess: false,
|
|
223
259
|
tier: currentTier,
|
|
224
260
|
reason: `${featureName} is not available in any tier`,
|
|
225
|
-
upgradeUrl: 'https://vibecheckai.dev
|
|
261
|
+
upgradeUrl: 'https://vibecheckai.dev'
|
|
226
262
|
};
|
|
227
263
|
}
|
|
228
264
|
|
|
@@ -235,7 +271,7 @@ export async function checkFeatureAccess(featureName, providedApiKey = null) {
|
|
|
235
271
|
tier: currentTier,
|
|
236
272
|
requiredTier,
|
|
237
273
|
reason: `${featureName} requires ${requiredTierConfig.name} tier ($${requiredTierConfig.price}/mo) or higher. Current tier: ${currentTierConfig.name}`,
|
|
238
|
-
upgradeUrl: 'https://vibecheckai.dev
|
|
274
|
+
upgradeUrl: 'https://vibecheckai.dev'
|
|
239
275
|
};
|
|
240
276
|
}
|
|
241
277
|
|
|
@@ -273,11 +309,30 @@ export function withTierCheck(featureName, handler) {
|
|
|
273
309
|
* Check if user has access to a specific MCP tool
|
|
274
310
|
* MCP tools have specific tier requirements separate from CLI features
|
|
275
311
|
*/
|
|
276
|
-
export async function
|
|
312
|
+
export async function getMcpToolAccess(toolName, providedApiKey = null) {
|
|
277
313
|
const userConfig = await loadUserConfig();
|
|
278
314
|
const apiKey = providedApiKey || userConfig?.apiKey;
|
|
279
315
|
|
|
280
|
-
|
|
316
|
+
if (!apiKey) {
|
|
317
|
+
return {
|
|
318
|
+
hasAccess: false,
|
|
319
|
+
tier: null,
|
|
320
|
+
reason: 'No API key provided. Please set your API key with `vibecheck login`.',
|
|
321
|
+
upgradeUrl: 'https://vibecheckai.dev'
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
const currentTier = await getTierFromApiKey(apiKey);
|
|
326
|
+
|
|
327
|
+
if (!currentTier) {
|
|
328
|
+
return {
|
|
329
|
+
hasAccess: false,
|
|
330
|
+
tier: null,
|
|
331
|
+
reason: 'Invalid API key. Please check your API key or get a new one at https://vibecheckai.dev',
|
|
332
|
+
upgradeUrl: 'https://vibecheckai.dev'
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
|
|
281
336
|
const currentTierConfig = TIERS[currentTier];
|
|
282
337
|
|
|
283
338
|
// Check if tool is allowed for current tier
|
|
@@ -322,7 +377,7 @@ export async function checkMcpToolAccess(toolName, providedApiKey = null) {
|
|
|
322
377
|
reason: requiredTierConfig
|
|
323
378
|
? `${toolName} requires ${requiredTierConfig.name} tier ($${requiredTierConfig.price}/mo). Current: ${currentTierConfig.name}`
|
|
324
379
|
: `${toolName} is not available`,
|
|
325
|
-
upgradeUrl: 'https://vibecheckai.dev
|
|
380
|
+
upgradeUrl: 'https://vibecheckai.dev'
|
|
326
381
|
};
|
|
327
382
|
}
|
|
328
383
|
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Tools Index - Single Entry Point for All Tools
|
|
3
|
-
*
|
|
4
|
-
* This module exports all MCP tools in a unified structure.
|
|
5
|
-
* Internal modules are organized by category but presented as one toolset.
|
|
6
|
-
*
|
|
7
|
-
* Tool Categories:
|
|
8
|
-
* - Core: scan, ship, reality, fix, prove, report
|
|
9
|
-
* - Truth: ctx, guard, validate_claim, compile_context
|
|
10
|
-
* - AI: checkpoint, architect, intelligence
|
|
11
|
-
*
|
|
12
|
-
* Usage:
|
|
13
|
-
* import { ALL_TOOLS, handleTool } from './tools/index.js';
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
// Re-export consolidated tools as the primary interface
|
|
17
|
-
export { CONSOLIDATED_TOOLS, handleConsolidatedTool } from '../consolidated-tools.js';
|
|
18
|
-
|
|
19
|
-
// Re-export truth firewall (hallucination stopper)
|
|
20
|
-
export { TRUTH_FIREWALL_TOOLS, handleTruthFirewallTool } from '../truth-firewall-tools.js';
|
|
21
|
-
|
|
22
|
-
// Re-export truth context
|
|
23
|
-
export { TRUTH_CONTEXT_TOOLS, handleTruthContextTool } from '../truth-context.js';
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Get all recommended tools (consolidated + truth firewall)
|
|
27
|
-
*/
|
|
28
|
-
export function getRecommendedTools() {
|
|
29
|
-
const { CONSOLIDATED_TOOLS } = require('../consolidated-tools.js');
|
|
30
|
-
const { TRUTH_FIREWALL_TOOLS } = require('../truth-firewall-tools.js');
|
|
31
|
-
return [...CONSOLIDATED_TOOLS, ...TRUTH_FIREWALL_TOOLS];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Handle any tool call by routing to the appropriate handler
|
|
36
|
-
*/
|
|
37
|
-
export async function handleToolCall(toolName, args) {
|
|
38
|
-
// Route to consolidated handler first
|
|
39
|
-
const { handleConsolidatedTool, CONSOLIDATED_TOOLS } = await import('../consolidated-tools.js');
|
|
40
|
-
const consolidatedNames = CONSOLIDATED_TOOLS.map(t => t.name);
|
|
41
|
-
|
|
42
|
-
if (consolidatedNames.includes(toolName)) {
|
|
43
|
-
return handleConsolidatedTool(toolName, args);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Route to truth firewall
|
|
47
|
-
const { handleTruthFirewallTool, TRUTH_FIREWALL_TOOLS } = await import('../truth-firewall-tools.js');
|
|
48
|
-
const firewallNames = TRUTH_FIREWALL_TOOLS.map(t => t.name);
|
|
49
|
-
|
|
50
|
-
if (firewallNames.includes(toolName)) {
|
|
51
|
-
return handleTruthFirewallTool(toolName, args);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Route to truth context
|
|
55
|
-
const { handleTruthContextTool, TRUTH_CONTEXT_TOOLS } = await import('../truth-context.js');
|
|
56
|
-
const contextNames = TRUTH_CONTEXT_TOOLS.map(t => t.name);
|
|
57
|
-
|
|
58
|
-
if (contextNames.includes(toolName)) {
|
|
59
|
-
return handleTruthContextTool(toolName, args);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
throw new Error(`Unknown tool: ${toolName}`);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Tool categories for documentation
|
|
67
|
-
*/
|
|
68
|
-
export const TOOL_CATEGORIES = {
|
|
69
|
-
core: ['vibecheck.scan', 'vibecheck.ship', 'vibecheck.reality', 'vibecheck.fix', 'vibecheck.prove', 'vibecheck.report'],
|
|
70
|
-
truth: ['vibecheck.ctx', 'vibecheck.get_truthpack', 'vibecheck.validate_claim', 'vibecheck.compile_context'],
|
|
71
|
-
guard: ['vibecheck.guard', 'vibecheck.check_route', 'vibecheck.check_env', 'vibecheck.check_auth'],
|
|
72
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools Index - Single Entry Point for All Tools
|
|
3
|
+
*
|
|
4
|
+
* This module exports all MCP tools in a unified structure.
|
|
5
|
+
* Internal modules are organized by category but presented as one toolset.
|
|
6
|
+
*
|
|
7
|
+
* Tool Categories:
|
|
8
|
+
* - Core: scan, ship, reality, fix, prove, report
|
|
9
|
+
* - Truth: ctx, guard, validate_claim, compile_context
|
|
10
|
+
* - AI: checkpoint, architect, intelligence
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* import { ALL_TOOLS, handleTool } from './tools/index.js';
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
// Re-export consolidated tools as the primary interface
|
|
17
|
+
export { CONSOLIDATED_TOOLS, handleConsolidatedTool } from '../consolidated-tools.js';
|
|
18
|
+
|
|
19
|
+
// Re-export truth firewall (hallucination stopper)
|
|
20
|
+
export { TRUTH_FIREWALL_TOOLS, handleTruthFirewallTool } from '../truth-firewall-tools.js';
|
|
21
|
+
|
|
22
|
+
// Re-export truth context
|
|
23
|
+
export { TRUTH_CONTEXT_TOOLS, handleTruthContextTool } from '../truth-context.js';
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Get all recommended tools (consolidated + truth firewall)
|
|
27
|
+
*/
|
|
28
|
+
export function getRecommendedTools() {
|
|
29
|
+
const { CONSOLIDATED_TOOLS } = require('../consolidated-tools.js');
|
|
30
|
+
const { TRUTH_FIREWALL_TOOLS } = require('../truth-firewall-tools.js');
|
|
31
|
+
return [...CONSOLIDATED_TOOLS, ...TRUTH_FIREWALL_TOOLS];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Handle any tool call by routing to the appropriate handler
|
|
36
|
+
*/
|
|
37
|
+
export async function handleToolCall(toolName, args) {
|
|
38
|
+
// Route to consolidated handler first
|
|
39
|
+
const { handleConsolidatedTool, CONSOLIDATED_TOOLS } = await import('../consolidated-tools.js');
|
|
40
|
+
const consolidatedNames = CONSOLIDATED_TOOLS.map(t => t.name);
|
|
41
|
+
|
|
42
|
+
if (consolidatedNames.includes(toolName)) {
|
|
43
|
+
return handleConsolidatedTool(toolName, args);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Route to truth firewall
|
|
47
|
+
const { handleTruthFirewallTool, TRUTH_FIREWALL_TOOLS } = await import('../truth-firewall-tools.js');
|
|
48
|
+
const firewallNames = TRUTH_FIREWALL_TOOLS.map(t => t.name);
|
|
49
|
+
|
|
50
|
+
if (firewallNames.includes(toolName)) {
|
|
51
|
+
return handleTruthFirewallTool(toolName, args);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Route to truth context
|
|
55
|
+
const { handleTruthContextTool, TRUTH_CONTEXT_TOOLS } = await import('../truth-context.js');
|
|
56
|
+
const contextNames = TRUTH_CONTEXT_TOOLS.map(t => t.name);
|
|
57
|
+
|
|
58
|
+
if (contextNames.includes(toolName)) {
|
|
59
|
+
return handleTruthContextTool(toolName, args);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
throw new Error(`Unknown tool: ${toolName}`);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Tool categories for documentation
|
|
67
|
+
*/
|
|
68
|
+
export const TOOL_CATEGORIES = {
|
|
69
|
+
core: ['vibecheck.scan', 'vibecheck.ship', 'vibecheck.reality', 'vibecheck.fix', 'vibecheck.prove', 'vibecheck.report'],
|
|
70
|
+
truth: ['vibecheck.ctx', 'vibecheck.get_truthpack', 'vibecheck.validate_claim', 'vibecheck.compile_context'],
|
|
71
|
+
guard: ['vibecheck.guard', 'vibecheck.check_route', 'vibecheck.check_env', 'vibecheck.check_auth'],
|
|
72
|
+
};
|
|
Binary file
|