@vibecheckai/cli 3.5.0 → 3.5.2
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/registry.js +214 -237
- package/bin/runners/cli-utils.js +33 -2
- package/bin/runners/context/analyzer.js +52 -1
- package/bin/runners/context/generators/cursor.js +2 -49
- package/bin/runners/context/git-context.js +3 -1
- package/bin/runners/context/team-conventions.js +33 -7
- package/bin/runners/lib/analysis-core.js +25 -5
- package/bin/runners/lib/analyzers.js +431 -481
- package/bin/runners/lib/default-config.js +127 -0
- package/bin/runners/lib/doctor/modules/security.js +3 -1
- package/bin/runners/lib/engine/ast-cache.js +210 -0
- package/bin/runners/lib/engine/auth-extractor.js +211 -0
- package/bin/runners/lib/engine/billing-extractor.js +112 -0
- package/bin/runners/lib/engine/enforcement-extractor.js +100 -0
- package/bin/runners/lib/engine/env-extractor.js +207 -0
- package/bin/runners/lib/engine/express-extractor.js +208 -0
- package/bin/runners/lib/engine/extractors.js +849 -0
- package/bin/runners/lib/engine/index.js +207 -0
- package/bin/runners/lib/engine/repo-index.js +514 -0
- package/bin/runners/lib/engine/types.js +124 -0
- package/bin/runners/lib/engines/accessibility-engine.js +18 -218
- package/bin/runners/lib/engines/api-consistency-engine.js +30 -335
- package/bin/runners/lib/engines/cross-file-analysis-engine.js +27 -292
- package/bin/runners/lib/engines/empty-catch-engine.js +17 -127
- package/bin/runners/lib/engines/mock-data-engine.js +10 -53
- package/bin/runners/lib/engines/performance-issues-engine.js +36 -176
- package/bin/runners/lib/engines/security-vulnerabilities-engine.js +54 -382
- package/bin/runners/lib/engines/type-aware-engine.js +39 -263
- package/bin/runners/lib/engines/vibecheck-engines/index.js +13 -122
- 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 +73 -373
- 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/entitlements-v2.js +73 -97
- package/bin/runners/lib/error-handler.js +44 -3
- package/bin/runners/lib/error-messages.js +289 -0
- package/bin/runners/lib/evidence-pack.js +7 -1
- package/bin/runners/lib/finding-id.js +69 -0
- package/bin/runners/lib/finding-sorter.js +89 -0
- package/bin/runners/lib/html-proof-report.js +700 -350
- package/bin/runners/lib/missions/plan.js +6 -46
- package/bin/runners/lib/missions/templates.js +0 -232
- package/bin/runners/lib/next-action.js +560 -0
- package/bin/runners/lib/prerequisites.js +149 -0
- package/bin/runners/lib/route-detection.js +137 -68
- package/bin/runners/lib/scan-output.js +91 -76
- package/bin/runners/lib/scan-runner.js +135 -0
- package/bin/runners/lib/schemas/ajv-validator.js +464 -0
- package/bin/runners/lib/schemas/error-envelope.schema.json +105 -0
- package/bin/runners/lib/schemas/finding-v3.schema.json +151 -0
- package/bin/runners/lib/schemas/report-artifact.schema.json +120 -0
- package/bin/runners/lib/schemas/run-request.schema.json +108 -0
- package/bin/runners/lib/schemas/validator.js +27 -0
- package/bin/runners/lib/schemas/verdict.schema.json +140 -0
- package/bin/runners/lib/ship-output-enterprise.js +23 -23
- package/bin/runners/lib/ship-output.js +75 -31
- package/bin/runners/lib/terminal-ui.js +6 -113
- package/bin/runners/lib/truth.js +351 -10
- package/bin/runners/lib/unified-cli-output.js +430 -603
- package/bin/runners/lib/unified-output.js +13 -9
- package/bin/runners/runAIAgent.js +10 -5
- package/bin/runners/runAgent.js +0 -3
- package/bin/runners/runAllowlist.js +389 -0
- package/bin/runners/runApprove.js +0 -33
- package/bin/runners/runAuth.js +73 -45
- package/bin/runners/runCheckpoint.js +51 -11
- package/bin/runners/runClassify.js +85 -21
- package/bin/runners/runContext.js +0 -3
- package/bin/runners/runDoctor.js +41 -28
- package/bin/runners/runEvidencePack.js +362 -0
- package/bin/runners/runFirewall.js +0 -3
- package/bin/runners/runFirewallHook.js +0 -3
- package/bin/runners/runFix.js +66 -76
- package/bin/runners/runGuard.js +18 -411
- package/bin/runners/runInit.js +113 -30
- package/bin/runners/runLabs.js +424 -0
- package/bin/runners/runMcp.js +19 -25
- package/bin/runners/runPolish.js +64 -240
- package/bin/runners/runPromptFirewall.js +12 -5
- package/bin/runners/runProve.js +57 -22
- package/bin/runners/runQuickstart.js +531 -0
- package/bin/runners/runReality.js +59 -68
- package/bin/runners/runReport.js +38 -33
- package/bin/runners/runRuntime.js +8 -5
- package/bin/runners/runScan.js +1413 -190
- package/bin/runners/runShip.js +113 -719
- package/bin/runners/runTruth.js +0 -3
- package/bin/runners/runValidate.js +13 -9
- package/bin/runners/runWatch.js +23 -14
- package/bin/scan.js +6 -1
- package/bin/vibecheck.js +204 -185
- package/mcp-server/deprecation-middleware.js +282 -0
- package/mcp-server/handlers/index.ts +15 -0
- package/mcp-server/handlers/tool-handler.ts +554 -0
- package/mcp-server/index-v1.js +698 -0
- package/mcp-server/index.js +210 -238
- package/mcp-server/lib/cache-wrapper.cjs +383 -0
- package/mcp-server/lib/error-envelope.js +138 -0
- package/mcp-server/lib/executor.ts +499 -0
- package/mcp-server/lib/index.ts +19 -0
- package/mcp-server/lib/rate-limiter.js +166 -0
- package/mcp-server/lib/sandbox.test.ts +519 -0
- package/mcp-server/lib/sandbox.ts +395 -0
- package/mcp-server/lib/types.ts +267 -0
- package/mcp-server/package.json +12 -3
- package/mcp-server/registry/tool-registry.js +794 -0
- package/mcp-server/registry/tools.json +605 -0
- package/mcp-server/registry.test.ts +334 -0
- package/mcp-server/tests/tier-gating.test.js +297 -0
- package/mcp-server/tier-auth.js +378 -45
- package/mcp-server/tools-v3.js +353 -442
- package/mcp-server/tsconfig.json +37 -0
- package/mcp-server/vibecheck-2.0-tools.js +14 -1
- package/package.json +1 -1
- package/bin/runners/lib/agent-firewall/learning/learning-engine.js +0 -849
- package/bin/runners/lib/audit-logger.js +0 -532
- package/bin/runners/lib/authority/authorities/architecture.js +0 -364
- package/bin/runners/lib/authority/authorities/compliance.js +0 -341
- package/bin/runners/lib/authority/authorities/human.js +0 -343
- package/bin/runners/lib/authority/authorities/quality.js +0 -420
- package/bin/runners/lib/authority/authorities/security.js +0 -228
- package/bin/runners/lib/authority/index.js +0 -293
- package/bin/runners/lib/bundle/bundle-intelligence.js +0 -846
- package/bin/runners/lib/cli-charts.js +0 -368
- package/bin/runners/lib/cli-config-display.js +0 -405
- package/bin/runners/lib/cli-demo.js +0 -275
- package/bin/runners/lib/cli-errors.js +0 -438
- package/bin/runners/lib/cli-help-formatter.js +0 -439
- package/bin/runners/lib/cli-interactive-menu.js +0 -509
- package/bin/runners/lib/cli-prompts.js +0 -441
- package/bin/runners/lib/cli-scan-cards.js +0 -362
- package/bin/runners/lib/compliance-reporter.js +0 -710
- package/bin/runners/lib/conductor/index.js +0 -671
- package/bin/runners/lib/easy/README.md +0 -123
- package/bin/runners/lib/easy/index.js +0 -140
- package/bin/runners/lib/easy/interactive-wizard.js +0 -788
- package/bin/runners/lib/easy/one-click-firewall.js +0 -564
- package/bin/runners/lib/easy/zero-config-reality.js +0 -714
- package/bin/runners/lib/engines/async-patterns-engine.js +0 -444
- package/bin/runners/lib/engines/bundle-size-engine.js +0 -433
- package/bin/runners/lib/engines/confidence-scoring.js +0 -276
- package/bin/runners/lib/engines/context-detection.js +0 -264
- package/bin/runners/lib/engines/database-patterns-engine.js +0 -429
- package/bin/runners/lib/engines/duplicate-code-engine.js +0 -354
- package/bin/runners/lib/engines/env-variables-engine.js +0 -458
- package/bin/runners/lib/engines/error-handling-engine.js +0 -437
- package/bin/runners/lib/engines/false-positive-prevention.js +0 -630
- package/bin/runners/lib/engines/framework-adapters/index.js +0 -607
- package/bin/runners/lib/engines/framework-detection.js +0 -508
- package/bin/runners/lib/engines/import-order-engine.js +0 -429
- package/bin/runners/lib/engines/naming-conventions-engine.js +0 -544
- package/bin/runners/lib/engines/noise-reduction-engine.js +0 -452
- package/bin/runners/lib/engines/orchestrator.js +0 -334
- package/bin/runners/lib/engines/react-patterns-engine.js +0 -457
- package/bin/runners/lib/engines/vibecheck-engines/lib/ai-hallucination-engine.js +0 -806
- package/bin/runners/lib/engines/vibecheck-engines/lib/smart-fix-engine.js +0 -577
- package/bin/runners/lib/engines/vibecheck-engines/lib/vibe-score-engine.js +0 -543
- package/bin/runners/lib/engines/vibecheck-engines.js +0 -514
- package/bin/runners/lib/enhanced-features/index.js +0 -305
- package/bin/runners/lib/enhanced-output.js +0 -631
- package/bin/runners/lib/enterprise.js +0 -300
- package/bin/runners/lib/firewall/command-validator.js +0 -351
- package/bin/runners/lib/firewall/config.js +0 -341
- package/bin/runners/lib/firewall/content-validator.js +0 -519
- package/bin/runners/lib/firewall/index.js +0 -101
- package/bin/runners/lib/firewall/path-validator.js +0 -256
- package/bin/runners/lib/intelligence/cross-repo-intelligence.js +0 -817
- package/bin/runners/lib/mcp-utils.js +0 -425
- package/bin/runners/lib/output/index.js +0 -1022
- package/bin/runners/lib/policy-engine.js +0 -652
- package/bin/runners/lib/polish/autofix/accessibility-fixes.js +0 -333
- package/bin/runners/lib/polish/autofix/async-handlers.js +0 -273
- package/bin/runners/lib/polish/autofix/dead-code.js +0 -280
- package/bin/runners/lib/polish/autofix/imports-optimizer.js +0 -344
- package/bin/runners/lib/polish/autofix/index.js +0 -200
- package/bin/runners/lib/polish/autofix/remove-consoles.js +0 -209
- package/bin/runners/lib/polish/autofix/strengthen-types.js +0 -245
- package/bin/runners/lib/polish/backend-checks.js +0 -148
- package/bin/runners/lib/polish/documentation-checks.js +0 -111
- package/bin/runners/lib/polish/frontend-checks.js +0 -168
- package/bin/runners/lib/polish/index.js +0 -71
- package/bin/runners/lib/polish/infrastructure-checks.js +0 -131
- package/bin/runners/lib/polish/library-detection.js +0 -175
- package/bin/runners/lib/polish/performance-checks.js +0 -100
- package/bin/runners/lib/polish/security-checks.js +0 -148
- package/bin/runners/lib/polish/utils.js +0 -203
- package/bin/runners/lib/prompt-builder.js +0 -540
- package/bin/runners/lib/proof-certificate.js +0 -634
- package/bin/runners/lib/reality/accessibility-audit.js +0 -946
- package/bin/runners/lib/reality/api-contract-validator.js +0 -1012
- package/bin/runners/lib/reality/chaos-engineering.js +0 -1084
- package/bin/runners/lib/reality/performance-tracker.js +0 -1077
- package/bin/runners/lib/reality/scenario-generator.js +0 -1404
- package/bin/runners/lib/reality/visual-regression.js +0 -852
- package/bin/runners/lib/reality-profiler.js +0 -717
- package/bin/runners/lib/replay/flight-recorder-viewer.js +0 -1160
- package/bin/runners/lib/review/ai-code-review.js +0 -832
- package/bin/runners/lib/rules/custom-rule-engine.js +0 -985
- package/bin/runners/lib/sbom-generator.js +0 -641
- package/bin/runners/lib/scan-output-enhanced.js +0 -512
- package/bin/runners/lib/security/owasp-scanner.js +0 -939
- package/bin/runners/lib/validators/contract-validator.js +0 -283
- package/bin/runners/lib/validators/dead-export-detector.js +0 -279
- package/bin/runners/lib/validators/dep-audit.js +0 -245
- package/bin/runners/lib/validators/env-validator.js +0 -319
- package/bin/runners/lib/validators/index.js +0 -120
- package/bin/runners/lib/validators/license-checker.js +0 -252
- package/bin/runners/lib/validators/route-validator.js +0 -290
- package/bin/runners/runAuthority.js +0 -528
- package/bin/runners/runConductor.js +0 -772
- package/bin/runners/runContainer.js +0 -366
- package/bin/runners/runEasy.js +0 -410
- package/bin/runners/runIaC.js +0 -372
- package/bin/runners/runVibe.js +0 -791
- package/mcp-server/tools.js +0 -495
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Deprecation Middleware
|
|
3
|
+
*
|
|
4
|
+
* Resolves deprecated tool names to their new equivalents while emitting warnings.
|
|
5
|
+
* Old names work for one version cycle, then are removed.
|
|
6
|
+
*
|
|
7
|
+
* Warning format: { code: "DEPRECATED_TOOL", message: "use vibecheck.ctx" }
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import fs from 'fs';
|
|
11
|
+
import path from 'path';
|
|
12
|
+
import { fileURLToPath } from 'url';
|
|
13
|
+
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = path.dirname(__filename);
|
|
16
|
+
|
|
17
|
+
// Load registry
|
|
18
|
+
let registry = null;
|
|
19
|
+
|
|
20
|
+
function loadRegistry() {
|
|
21
|
+
if (registry) return registry;
|
|
22
|
+
|
|
23
|
+
const registryPath = path.join(__dirname, '..', 'registry', 'tools.json');
|
|
24
|
+
try {
|
|
25
|
+
registry = JSON.parse(fs.readFileSync(registryPath, 'utf-8'));
|
|
26
|
+
return registry;
|
|
27
|
+
} catch (err) {
|
|
28
|
+
console.error(`[deprecation-middleware] Failed to load registry: ${err.message}`);
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Build deprecation map from registry
|
|
34
|
+
function buildDeprecationMap() {
|
|
35
|
+
const reg = loadRegistry();
|
|
36
|
+
if (!reg?.deprecated?.tools) return new Map();
|
|
37
|
+
|
|
38
|
+
const map = new Map();
|
|
39
|
+
for (const entry of reg.deprecated.tools) {
|
|
40
|
+
map.set(entry.oldName, {
|
|
41
|
+
newName: entry.newName,
|
|
42
|
+
deprecatedIn: entry.deprecatedIn,
|
|
43
|
+
removedIn: entry.removedIn,
|
|
44
|
+
message: entry.message,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return map;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Lazily build the map
|
|
51
|
+
let deprecationMap = null;
|
|
52
|
+
|
|
53
|
+
function getDeprecationMap() {
|
|
54
|
+
if (!deprecationMap) {
|
|
55
|
+
deprecationMap = buildDeprecationMap();
|
|
56
|
+
}
|
|
57
|
+
return deprecationMap;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Warning codes
|
|
61
|
+
const WARNING_CODES = {
|
|
62
|
+
DEPRECATED_TOOL: 'DEPRECATED_TOOL',
|
|
63
|
+
TOOL_REMOVED: 'TOOL_REMOVED',
|
|
64
|
+
UNKNOWN_TOOL: 'UNKNOWN_TOOL',
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Create a deprecation warning object
|
|
69
|
+
*/
|
|
70
|
+
function createWarning(code, message, meta = {}) {
|
|
71
|
+
return {
|
|
72
|
+
code,
|
|
73
|
+
message,
|
|
74
|
+
...meta,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Resolve a tool name, handling deprecation
|
|
80
|
+
*
|
|
81
|
+
* @param {string} toolName - The requested tool name
|
|
82
|
+
* @param {string} [currentVersion] - Current version for removal checking
|
|
83
|
+
* @returns {{ resolvedName: string, warnings: Array<{code: string, message: string}>, isBlocked: boolean }}
|
|
84
|
+
*/
|
|
85
|
+
function resolveToolName(toolName, currentVersion = '4.0.0') {
|
|
86
|
+
const warnings = [];
|
|
87
|
+
const map = getDeprecationMap();
|
|
88
|
+
|
|
89
|
+
// Check if this is a deprecated tool
|
|
90
|
+
const deprecation = map.get(toolName);
|
|
91
|
+
|
|
92
|
+
if (deprecation) {
|
|
93
|
+
// Check if it's been removed
|
|
94
|
+
if (currentVersion >= deprecation.removedIn) {
|
|
95
|
+
warnings.push(createWarning(
|
|
96
|
+
WARNING_CODES.TOOL_REMOVED,
|
|
97
|
+
`Tool '${toolName}' was removed in v${deprecation.removedIn}. ${deprecation.message}`,
|
|
98
|
+
{
|
|
99
|
+
oldName: toolName,
|
|
100
|
+
newName: deprecation.newName,
|
|
101
|
+
removedIn: deprecation.removedIn,
|
|
102
|
+
}
|
|
103
|
+
));
|
|
104
|
+
return {
|
|
105
|
+
resolvedName: null,
|
|
106
|
+
warnings,
|
|
107
|
+
isBlocked: true,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Emit deprecation warning
|
|
112
|
+
warnings.push(createWarning(
|
|
113
|
+
WARNING_CODES.DEPRECATED_TOOL,
|
|
114
|
+
`Tool '${toolName}' is deprecated. ${deprecation.message}`,
|
|
115
|
+
{
|
|
116
|
+
oldName: toolName,
|
|
117
|
+
newName: deprecation.newName,
|
|
118
|
+
deprecatedIn: deprecation.deprecatedIn,
|
|
119
|
+
removedIn: deprecation.removedIn,
|
|
120
|
+
}
|
|
121
|
+
));
|
|
122
|
+
|
|
123
|
+
return {
|
|
124
|
+
resolvedName: deprecation.newName,
|
|
125
|
+
warnings,
|
|
126
|
+
isBlocked: false,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Not deprecated, return as-is
|
|
131
|
+
return {
|
|
132
|
+
resolvedName: toolName,
|
|
133
|
+
warnings,
|
|
134
|
+
isBlocked: false,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Transform arguments for deprecated tool migrations
|
|
140
|
+
* Some tools need argument transformation when migrating
|
|
141
|
+
*/
|
|
142
|
+
function transformArgs(oldName, newName, args) {
|
|
143
|
+
const transformations = {
|
|
144
|
+
// conductor tools consolidation
|
|
145
|
+
'vibecheck_conductor_register': (a) => ({ ...a, operation: 'register' }),
|
|
146
|
+
'vibecheck_conductor_acquire_lock': (a) => ({ ...a, operation: 'acquire_lock' }),
|
|
147
|
+
'vibecheck_conductor_release_lock': (a) => ({ ...a, operation: 'release_lock' }),
|
|
148
|
+
'vibecheck_conductor_propose': (a) => ({ ...a, operation: 'propose' }),
|
|
149
|
+
'vibecheck_conductor_terminate': (a) => ({ ...a, operation: 'terminate' }),
|
|
150
|
+
|
|
151
|
+
// set_strictness to firewall
|
|
152
|
+
'set_strictness': (a) => ({
|
|
153
|
+
action: 'config',
|
|
154
|
+
strictness: a.level,
|
|
155
|
+
projectPath: a.projectPath,
|
|
156
|
+
}),
|
|
157
|
+
|
|
158
|
+
// ai_test to reality with agent mode
|
|
159
|
+
'vibecheck.ai_test': (a) => ({
|
|
160
|
+
url: a.url,
|
|
161
|
+
agentMode: true,
|
|
162
|
+
goal: a.goal,
|
|
163
|
+
maxPages: a.maxActions || 50,
|
|
164
|
+
}),
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
const transform = transformations[oldName];
|
|
168
|
+
if (transform) {
|
|
169
|
+
return transform(args);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return args;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Middleware wrapper for tool handlers
|
|
177
|
+
* Intercepts calls, resolves deprecation, transforms args, and injects warnings
|
|
178
|
+
*
|
|
179
|
+
* @param {Function} handler - The original tool handler
|
|
180
|
+
* @param {Object} options - Middleware options
|
|
181
|
+
* @returns {Function} - Wrapped handler
|
|
182
|
+
*/
|
|
183
|
+
function withDeprecationMiddleware(handler, options = {}) {
|
|
184
|
+
const { currentVersion = '4.0.0' } = options;
|
|
185
|
+
|
|
186
|
+
return async function deprecationMiddlewareHandler(toolName, args, context = {}) {
|
|
187
|
+
// Resolve the tool name
|
|
188
|
+
const { resolvedName, warnings, isBlocked } = resolveToolName(toolName, currentVersion);
|
|
189
|
+
|
|
190
|
+
// If blocked (removed), return error with warnings
|
|
191
|
+
if (isBlocked) {
|
|
192
|
+
return {
|
|
193
|
+
isError: true,
|
|
194
|
+
content: [{
|
|
195
|
+
type: 'text',
|
|
196
|
+
text: JSON.stringify({
|
|
197
|
+
error: `Tool '${toolName}' has been removed`,
|
|
198
|
+
warnings,
|
|
199
|
+
migration: warnings[0]?.newName
|
|
200
|
+
? `Use '${warnings[0].newName}' instead`
|
|
201
|
+
: 'See documentation for migration guide',
|
|
202
|
+
}, null, 2),
|
|
203
|
+
}],
|
|
204
|
+
warnings,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Transform args if needed
|
|
209
|
+
const transformedArgs = transformArgs(toolName, resolvedName, args);
|
|
210
|
+
|
|
211
|
+
// Call the actual handler
|
|
212
|
+
const result = await handler(resolvedName, transformedArgs, context);
|
|
213
|
+
|
|
214
|
+
// Inject warnings into result if any
|
|
215
|
+
if (warnings.length > 0) {
|
|
216
|
+
return {
|
|
217
|
+
...result,
|
|
218
|
+
warnings,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return result;
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Get all deprecated tools info for documentation
|
|
228
|
+
*/
|
|
229
|
+
function getDeprecationInfo() {
|
|
230
|
+
const reg = loadRegistry();
|
|
231
|
+
if (!reg?.deprecated?.tools) return [];
|
|
232
|
+
|
|
233
|
+
return reg.deprecated.tools.map(entry => ({
|
|
234
|
+
oldName: entry.oldName,
|
|
235
|
+
newName: entry.newName,
|
|
236
|
+
deprecatedIn: entry.deprecatedIn,
|
|
237
|
+
removedIn: entry.removedIn,
|
|
238
|
+
message: entry.message,
|
|
239
|
+
status: entry.removedIn <= '4.0.0' ? 'removed' : 'deprecated',
|
|
240
|
+
}));
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Check if a tool name is deprecated
|
|
245
|
+
*/
|
|
246
|
+
function isDeprecated(toolName) {
|
|
247
|
+
const map = getDeprecationMap();
|
|
248
|
+
return map.has(toolName);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Get the canonical tool name (resolves aliases and deprecations)
|
|
253
|
+
*/
|
|
254
|
+
function getCanonicalName(toolName) {
|
|
255
|
+
const { resolvedName } = resolveToolName(toolName);
|
|
256
|
+
return resolvedName;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// ES Module exports
|
|
260
|
+
export {
|
|
261
|
+
resolveToolName,
|
|
262
|
+
transformArgs,
|
|
263
|
+
withDeprecationMiddleware,
|
|
264
|
+
getDeprecationInfo,
|
|
265
|
+
isDeprecated,
|
|
266
|
+
getCanonicalName,
|
|
267
|
+
WARNING_CODES,
|
|
268
|
+
// For testing
|
|
269
|
+
buildDeprecationMap,
|
|
270
|
+
createWarning,
|
|
271
|
+
getDeprecationMap,
|
|
272
|
+
};
|
|
273
|
+
|
|
274
|
+
export default {
|
|
275
|
+
resolveToolName,
|
|
276
|
+
transformArgs,
|
|
277
|
+
withDeprecationMiddleware,
|
|
278
|
+
getDeprecationInfo,
|
|
279
|
+
isDeprecated,
|
|
280
|
+
getCanonicalName,
|
|
281
|
+
WARNING_CODES,
|
|
282
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Handlers Exports
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export {
|
|
6
|
+
handleToolRequest,
|
|
7
|
+
getAllTools,
|
|
8
|
+
getToolByName,
|
|
9
|
+
listToolNames,
|
|
10
|
+
getToolsByTier,
|
|
11
|
+
getToolsByCategory,
|
|
12
|
+
validateRegistry,
|
|
13
|
+
} from "./tool-handler";
|
|
14
|
+
|
|
15
|
+
export { default as ToolHandler } from "./tool-handler";
|