@skyramp/mcp 0.4.4-rc.1 → 0.4.4-rc.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/build/index.js +239 -210
- package/build/playwright/PlaywrightTraceService.d.ts +1 -1
- package/build/playwright/blueprintDigestStore.d.ts +1 -1
- package/build/playwright/registerPlaywrightTools.d.ts +1 -1
- package/build/playwright/traceRecordingPrompt.d.ts +1 -1
- package/build/playwright/traceRecordingPrompt.js +2 -2
- package/build/prompts/local-dev/local-dev-prompts.d.ts +1 -1
- package/build/prompts/local-dev/local-dev-prompts.js +2 -2
- package/build/prompts/startTraceCollectionPrompts.d.ts +1 -1
- package/build/prompts/startTraceCollectionPrompts.js +2 -3
- package/build/prompts/test-recommendation/registerRecommendTestsPrompt.d.ts +1 -1
- package/build/prompts/test-recommendation/registerRecommendTestsPrompt.js +2 -2
- package/build/prompts/testbot/testbot-prompts.d.ts +1 -1
- package/build/prompts/testbot/testbot-prompts.js +4 -7
- package/build/recommendation/answers.d.ts +17 -52
- package/build/recommendation/answers.js +29 -99
- package/build/recommendation/pullRequestText.d.ts +0 -2
- package/build/recommendation/pullRequestText.js +0 -16
- package/build/recommendation/registerPlan.d.ts +4 -7
- package/build/recommendation/registerPlan.js +11 -37
- package/build/recommendation/types.d.ts +4 -21
- package/build/recommendation/verifierContracts.d.ts +4 -4
- package/build/recommendation/verifierContracts.js +4 -4
- package/build/recommendation/verifiers/citedPath.d.ts +2 -2
- package/build/recommendation/verifiers/citedPath.js +2 -2
- package/build/recommendation/verifiers/issueTraceability.d.ts +5 -1
- package/build/recommendation/verifiers/issueTraceability.js +35 -4
- package/build/resources/analysisResources.d.ts +1 -1
- package/build/resources/analysisResources.js +1 -1
- package/build/resources/progressResource.d.ts +1 -1
- package/build/resources/sutSetupResource.d.ts +1 -1
- package/build/resources/sutSetupResource.js +1 -1
- package/build/resources/testbotResource.d.ts +1 -1
- package/build/resources/testbotResource.js +1 -1
- package/build/services/AnalyticsService.d.ts +1 -1
- package/build/services/FleetExecutionService.d.ts +130 -0
- package/build/services/FleetExecutionService.js +391 -0
- package/build/services/ModularizationService.d.ts +1 -1
- package/build/services/TestExecutionService.d.ts +7 -0
- package/build/services/TestExecutionService.js +21 -0
- package/build/services/TestGenerationService.d.ts +1 -1
- package/build/tool-phases.js +2 -0
- package/build/tools/auth/loginTool.d.ts +1 -1
- package/build/tools/auth/loginTool.js +2 -2
- package/build/tools/auth/logoutTool.d.ts +1 -1
- package/build/tools/auth/logoutTool.js +2 -2
- package/build/tools/code-refactor/alignAssertionsTool.d.ts +1 -1
- package/build/tools/code-refactor/alignAssertionsTool.js +1 -1
- package/build/tools/code-refactor/assertionSkillTools.d.ts +1 -1
- package/build/tools/code-refactor/assertionSkillTools.js +2 -2
- package/build/tools/code-refactor/codeReuseTool.d.ts +1 -1
- package/build/tools/code-refactor/codeReuseTool.js +2 -2
- package/build/tools/code-refactor/enhanceAssertionsTool.d.ts +1 -1
- package/build/tools/code-refactor/enhanceAssertionsTool.js +1 -1
- package/build/tools/code-refactor/modularizationTool.d.ts +1 -1
- package/build/tools/code-refactor/modularizationTool.js +2 -2
- package/build/tools/enrichTestWithMocksTool.d.ts +1 -1
- package/build/tools/enrichTestWithMocksTool.js +2 -2
- package/build/tools/executeFleetTool.d.ts +28 -0
- package/build/tools/executeFleetTool.js +107 -0
- package/build/tools/executeSkyrampTestTool.d.ts +8 -5
- package/build/tools/executeSkyrampTestTool.js +5 -5
- package/build/tools/fixErrorTool.d.ts +1 -1
- package/build/tools/fixErrorTool.js +1 -1
- package/build/tools/generate-tests/batchMockGenerationTool.d.ts +6 -57
- package/build/tools/generate-tests/batchMockGenerationTool.js +3 -3
- package/build/tools/generate-tests/generateBatchScenarioRestTool.d.ts +9 -45
- package/build/tools/generate-tests/generateBatchScenarioRestTool.js +29 -11
- package/build/tools/generate-tests/generateContractRestTool.d.ts +1 -2
- package/build/tools/generate-tests/generateContractRestTool.js +1 -1
- package/build/tools/generate-tests/generateE2ERestTool.d.ts +1 -2
- package/build/tools/generate-tests/generateE2ERestTool.js +1 -1
- package/build/tools/generate-tests/generateFuzzRestTool.d.ts +1 -1
- package/build/tools/generate-tests/generateFuzzRestTool.js +1 -1
- package/build/tools/generate-tests/generateIntegrationRestTool.d.ts +1 -2
- package/build/tools/generate-tests/generateIntegrationRestTool.js +1 -1
- package/build/tools/generate-tests/generateLoadRestTool.d.ts +1 -2
- package/build/tools/generate-tests/generateLoadRestTool.js +2 -1
- package/build/tools/generate-tests/generateMockRestTool.d.ts +1 -2
- package/build/tools/generate-tests/generateMockRestTool.js +3 -3
- package/build/tools/generate-tests/generateSmokeRestTool.d.ts +1 -1
- package/build/tools/generate-tests/generateSmokeRestTool.js +1 -1
- package/build/tools/generate-tests/generateUILoadRestTool.d.ts +64 -0
- package/build/tools/generate-tests/generateUILoadRestTool.js +512 -0
- package/build/tools/generate-tests/generateUIRestTool.d.ts +6 -7
- package/build/tools/generate-tests/generateUIRestTool.js +1 -1
- package/build/tools/generate-tests/loadTestSchema.d.ts +15 -15
- package/build/tools/generate-tests/trace-reuse-guard.d.ts +1 -1
- package/build/tools/generateEnrichedIntegrationTestTool.d.ts +1 -2
- package/build/tools/generateEnrichedIntegrationTestTool.js +1 -1
- package/build/tools/localDevWorkerComposeTool.d.ts +1 -1
- package/build/tools/localDevWorkerComposeTool.js +2 -2
- package/build/tools/one-click/oneClickTool.d.ts +1 -1
- package/build/tools/one-click/oneClickTool.js +1 -1
- package/build/tools/preflightMockCheckTool.d.ts +1 -1
- package/build/tools/preflightMockCheckTool.js +3 -3
- package/build/tools/queryProxyMocksTool.d.ts +1 -1
- package/build/tools/queryProxyMocksTool.js +3 -3
- package/build/tools/submitReportTool.d.ts +111 -414
- package/build/tools/submitReportTool.js +32 -134
- package/build/tools/test-management/actionsTool.d.ts +1 -1
- package/build/tools/test-management/actionsTool.js +7 -7
- package/build/tools/test-management/analyzeChangesTool.d.ts +22 -118
- package/build/tools/test-management/analyzeChangesTool.js +4 -4
- package/build/tools/test-management/analyzeTestHealthTool.d.ts +1 -1
- package/build/tools/test-management/analyzeTestHealthTool.js +4 -4
- package/build/tools/test-management/registerTestPlanTool.d.ts +111 -743
- package/build/tools/test-management/registerTestPlanTool.js +20 -36
- package/build/tools/test-management/resolveScreenTool.d.ts +1 -1
- package/build/tools/test-management/resolveScreenTool.js +6 -2
- package/build/tools/trace/startTraceCollectionTool.d.ts +1 -1
- package/build/tools/trace/startTraceCollectionTool.js +4 -4
- package/build/tools/trace/stopTraceCollectionTool.d.ts +1 -1
- package/build/tools/trace/stopTraceCollectionTool.js +2 -2
- package/build/tools/verifyTestDependenciesTool.d.ts +1 -1
- package/build/tools/verifyTestDependenciesTool.js +1 -1
- package/build/tools/workspace/initScanWorkspaceTool.d.ts +1 -1
- package/build/tools/workspace/initScanWorkspaceTool.js +1 -1
- package/build/tools/workspace/initializeWorkspaceTool.d.ts +1 -1
- package/build/tools/workspace/initializeWorkspaceTool.js +1 -1
- package/build/types/RepositoryAnalysis.d.ts +164 -1170
- package/build/types/RepositoryAnalysis.js +12 -10
- package/build/types/StepMethod.d.ts +24 -1
- package/build/types/StepMethod.js +1 -1
- package/build/types/TestTypes.d.ts +34 -133
- package/build/types/TestTypes.js +3 -3
- package/build/utils/docker.d.ts +29 -7
- package/build/utils/docker.js +83 -27
- package/build/utils/initAgent.d.ts +3 -3
- package/build/utils/initAgent.js +58 -26
- package/build/utils/progress.d.ts +3 -4
- package/build/utils/progress.js +4 -4
- package/build/utils/utils.d.ts +1 -1
- package/build/utils/versions.d.ts +3 -3
- package/build/utils/versions.js +1 -1
- package/build/workspace/workspace.d.ts +117 -538
- package/build/workspace/workspace.js +2 -2
- package/package.json +6 -5
- package/plugin/skills/repair-staged-files/SKILL.md +17 -0
- package/build/recommendation/blockerProbes.d.ts +0 -13
- package/build/recommendation/blockerProbes.js +0 -91
- package/build/recommendation/blockers.d.ts +0 -65
- package/build/recommendation/blockers.js +0 -135
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { McpServer } from "@modelcontextprotocol/
|
|
1
|
+
import { McpServer, CallToolResult } from "@modelcontextprotocol/server";
|
|
2
2
|
import { TestType } from "../../types/TestTypes.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { BaseTestParams, TestGenerationService } from "../../services/TestGenerationService.js";
|
|
5
|
-
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
6
5
|
export declare class UITestService extends TestGenerationService {
|
|
7
6
|
protected getTestType(): TestType;
|
|
8
7
|
protected buildGenerationOptions(params: BaseTestParams & {
|
|
@@ -17,17 +16,17 @@ export declare class UITestService extends TestGenerationService {
|
|
|
17
16
|
export declare const uiTestSchema: {
|
|
18
17
|
enhanceAssertions: z.ZodDefault<z.ZodBoolean>;
|
|
19
18
|
playwrightInput: z.ZodString;
|
|
20
|
-
include: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString
|
|
21
|
-
exclude: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString
|
|
22
|
-
uniqueUIFormInputs: z.ZodOptional<z.ZodArray<z.ZodString
|
|
19
|
+
include: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
20
|
+
exclude: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
|
|
21
|
+
uniqueUIFormInputs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
22
|
testName: z.ZodOptional<z.ZodString>;
|
|
24
|
-
output: z.
|
|
23
|
+
output: z.ZodOptional<z.ZodString>;
|
|
25
24
|
outputDir: z.ZodString;
|
|
26
25
|
force: z.ZodDefault<z.ZodBoolean>;
|
|
27
26
|
codeReuse: z.ZodDefault<z.ZodBoolean>;
|
|
28
27
|
modularizeCode: z.ZodDefault<z.ZodDefault<z.ZodBoolean>>;
|
|
29
28
|
allowTraceReuse: z.ZodDefault<z.ZodBoolean>;
|
|
30
|
-
language: z.
|
|
29
|
+
language: z.ZodEnum<typeof import("../../types/TestTypes.js").ProgrammingLanguage>;
|
|
31
30
|
framework: z.ZodString;
|
|
32
31
|
};
|
|
33
32
|
export declare function registerUITestTool(server: McpServer): void;
|
|
@@ -134,7 +134,7 @@ This tells you exactly which frontend files changed so you record traces for the
|
|
|
134
134
|
**DOM Analyzer tools for blueprint-aware recording:** alongside the basic \`browser_*\` interaction tools, the Skyramp MCP exposes \`browser_blueprint\` (canonical PageBlueprint capture). This enables semantic target selection and delta-derived assertions: capture a blueprint before each meaningful action, perform the action, then capture again — the delta between the two grounds your assertions in observable state changes rather than author guesses about what "success" looks like.
|
|
135
135
|
|
|
136
136
|
**CRITICAL: Do NOT use skyramp_start_trace_collection/skyramp_stop_trace_collection for UI test recording — use browser_* tools + skyramp_export_zip instead.**`,
|
|
137
|
-
inputSchema: uiTestSchema,
|
|
137
|
+
inputSchema: z.object(uiTestSchema),
|
|
138
138
|
_meta: {
|
|
139
139
|
keywords: ["ui test", "playwright"],
|
|
140
140
|
},
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const numericString: (description: string) => z.
|
|
2
|
+
export declare const numericString: (description: string) => z.ZodString;
|
|
3
3
|
export declare const loadTestSchema: {
|
|
4
|
-
loadCount: z.ZodDefault<z.
|
|
5
|
-
loadDuration: z.ZodDefault<z.
|
|
6
|
-
loadNumThreads: z.ZodDefault<z.
|
|
7
|
-
loadRampupDuration: z.ZodDefault<z.
|
|
8
|
-
loadRampupInterval: z.ZodDefault<z.
|
|
9
|
-
loadTargetRPS: z.ZodDefault<z.
|
|
4
|
+
loadCount: z.ZodDefault<z.ZodString>;
|
|
5
|
+
loadDuration: z.ZodDefault<z.ZodString>;
|
|
6
|
+
loadNumThreads: z.ZodDefault<z.ZodString>;
|
|
7
|
+
loadRampupDuration: z.ZodDefault<z.ZodString>;
|
|
8
|
+
loadRampupInterval: z.ZodDefault<z.ZodString>;
|
|
9
|
+
loadTargetRPS: z.ZodDefault<z.ZodString>;
|
|
10
10
|
trace: z.ZodDefault<z.ZodString>;
|
|
11
|
-
include: z.ZodDefault<z.ZodArray<z.ZodString
|
|
12
|
-
exclude: z.ZodDefault<z.ZodArray<z.ZodString
|
|
11
|
+
include: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
12
|
+
exclude: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
13
13
|
endpointURL: z.ZodDefault<z.ZodString>;
|
|
14
14
|
deployDashboard: z.ZodDefault<z.ZodBoolean>;
|
|
15
|
-
runtime: z.ZodDefault<z.
|
|
15
|
+
runtime: z.ZodDefault<z.ZodPreprocess<z.ZodEnum<typeof import("../../types/TestTypes.js").RuntimeEnvironment>, unknown>>;
|
|
16
16
|
dockerNetwork: z.ZodDefault<z.ZodString>;
|
|
17
17
|
dockerWorkerPort: z.ZodDefault<z.ZodNumber>;
|
|
18
18
|
k8sNamespace: z.ZodDefault<z.ZodString>;
|
|
@@ -21,19 +21,19 @@ export declare const loadTestSchema: {
|
|
|
21
21
|
authHeader: z.ZodDefault<z.ZodString>;
|
|
22
22
|
authScheme: z.ZodDefault<z.ZodString>;
|
|
23
23
|
insecure: z.ZodDefault<z.ZodBoolean>;
|
|
24
|
-
output: z.
|
|
24
|
+
output: z.ZodOptional<z.ZodString>;
|
|
25
25
|
outputDir: z.ZodString;
|
|
26
26
|
force: z.ZodDefault<z.ZodBoolean>;
|
|
27
27
|
mockPort: z.ZodDefault<z.ZodNumber>;
|
|
28
28
|
optionalFields: z.ZodDefault<z.ZodBoolean>;
|
|
29
29
|
prompt: z.ZodString;
|
|
30
|
-
language: z.
|
|
30
|
+
language: z.ZodEnum<typeof import("../../types/TestTypes.js").ProgrammingLanguage>;
|
|
31
31
|
framework: z.ZodString;
|
|
32
|
-
method: z.ZodDefault<z.ZodUnion<[z.
|
|
32
|
+
method: z.ZodDefault<z.ZodUnion<readonly [z.ZodEnum<typeof import("../../types/TestTypes.js").HttpMethod>, z.ZodLiteral<"">]>>;
|
|
33
33
|
apiSchema: z.ZodDefault<z.ZodString>;
|
|
34
34
|
pathParams: z.ZodDefault<z.ZodString>;
|
|
35
35
|
queryParams: z.ZodDefault<z.ZodString>;
|
|
36
36
|
formParams: z.ZodDefault<z.ZodString>;
|
|
37
|
-
requestData: z.
|
|
38
|
-
responseStatusCode: z.
|
|
37
|
+
requestData: z.ZodDefault<z.ZodString>;
|
|
38
|
+
responseStatusCode: z.ZodDefault<z.ZodString>;
|
|
39
39
|
};
|
|
@@ -15,6 +15,6 @@ export interface TraceReuseCheck {
|
|
|
15
15
|
* generation succeeds. Fails open (empty result) when the zip is unreadable —
|
|
16
16
|
* generation will surface its own error for that.
|
|
17
17
|
*/
|
|
18
|
-
export declare function checkTraceReuse(playwrightInput: string | undefined, output: string | undefined, outputDir: string | undefined, allowTraceReuse: boolean, scope: "ui" | "e2e"): Promise<TraceReuseCheck>;
|
|
18
|
+
export declare function checkTraceReuse(playwrightInput: string | undefined, output: string | undefined, outputDir: string | undefined, allowTraceReuse: boolean, scope: "ui" | "e2e" | "ui-load"): Promise<TraceReuseCheck>;
|
|
19
19
|
/** Register a generated output for its trace. Call ONLY after generation succeeded. */
|
|
20
20
|
export declare function recordTraceOutput(key: string, identity: string): void;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { McpServer } from "@modelcontextprotocol/
|
|
2
|
-
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
1
|
+
import { McpServer, CallToolResult } from "@modelcontextprotocol/server";
|
|
3
2
|
/**
|
|
4
3
|
* skyramp_generate_enriched_integration_test
|
|
5
4
|
*
|
|
@@ -75,7 +75,7 @@ export function registerGenerateEnrichedIntegrationTestTool(server) {
|
|
|
75
75
|
description: "Generate an integration test from a scenario file AND enrich it with mock imports in one step. " +
|
|
76
76
|
"Combines skyramp_integration_test_generation + mock enrichment into a single call. " +
|
|
77
77
|
"Use this after skyramp_batch_scenario_test_generation and skyramp_batch_mock_generation when the target test language is Python, TypeScript, JavaScript, or Java.",
|
|
78
|
-
inputSchema: enrichedIntegrationTestSchema,
|
|
78
|
+
inputSchema: z.object(enrichedIntegrationTestSchema),
|
|
79
79
|
}, async (params) => {
|
|
80
80
|
return executeGenerateEnrichedIntegrationTest(params);
|
|
81
81
|
});
|
|
@@ -214,7 +214,7 @@ Use the returned values like this:
|
|
|
214
214
|
- Bring up: \`docker compose <composeFilePrefix> up -d --build <sut-service> <real-deps...> skyramp\` (stop mocked-service containers first).
|
|
215
215
|
- Tear down: \`docker compose <composeFilePrefix> down -v\`.
|
|
216
216
|
- Pass \`dockerNetwork\` (and \`dockerWorkerPort\`=workerPort) to every test generation call so the generated client — emitted with runtime="docker", docker_network, docker_skyramp_port — connects to this worker.`,
|
|
217
|
-
inputSchema: {
|
|
217
|
+
inputSchema: z.object({
|
|
218
218
|
repositoryPath: z
|
|
219
219
|
.string()
|
|
220
220
|
.refine((value) => path.isAbsolute(value), {
|
|
@@ -231,7 +231,7 @@ Use the returned values like this:
|
|
|
231
231
|
.describe("Third-party FQDNs to intercept on the Docker network (e.g., ['www.google.com', 'api.stripe.com']). " +
|
|
232
232
|
"The worker is given Docker network aliases for these hostnames so DNS resolves them to the worker container, " +
|
|
233
233
|
"allowing mocks to intercept traffic to external services that are not part of the compose stack."),
|
|
234
|
-
},
|
|
234
|
+
}),
|
|
235
235
|
}, async (args) => {
|
|
236
236
|
try {
|
|
237
237
|
const normalizedHosts = args.thirdPartyHosts
|
|
@@ -295,7 +295,7 @@ export function registerOneClickTool(server) {
|
|
|
295
295
|
const oneClickSchema = buildOneClickSchema();
|
|
296
296
|
server.registerTool(TOOL_NAME, {
|
|
297
297
|
description: buildToolDescription(),
|
|
298
|
-
inputSchema: oneClickSchema
|
|
298
|
+
inputSchema: oneClickSchema,
|
|
299
299
|
}, async (params) => {
|
|
300
300
|
let errorResult;
|
|
301
301
|
try {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { McpServer } from "@modelcontextprotocol/
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/server";
|
|
2
2
|
export declare function registerPreflightMockCheckTool(server: McpServer): void;
|
|
@@ -26,7 +26,7 @@ const preflightOutputSchema = {
|
|
|
26
26
|
};
|
|
27
27
|
const TOOL_NAME = "skyramp_preflight_mock_check";
|
|
28
28
|
const mockSpecSchema = z.object({
|
|
29
|
-
protocol: z.
|
|
29
|
+
protocol: z.enum(MockProtocol).describe("The protocol of the mock"),
|
|
30
30
|
endpointURL: z.string().describe("The endpoint URL for the mock"),
|
|
31
31
|
method: z.string().optional().describe("HTTP method (for REST mocks)"),
|
|
32
32
|
grpcServiceName: z
|
|
@@ -62,8 +62,8 @@ export function registerPreflightMockCheckTool(server) {
|
|
|
62
62
|
"issues: advisory warnings (mocks are deployable but may exhibit runtime issues) and " +
|
|
63
63
|
"blocking warnings (mocks cannot intercept traffic and must not be generated or deployed). " +
|
|
64
64
|
"Check hasBlockers in the result and the blocking flag on each warning before proceeding.",
|
|
65
|
-
inputSchema,
|
|
66
|
-
outputSchema: preflightOutputSchema,
|
|
65
|
+
inputSchema: z.object(inputSchema),
|
|
66
|
+
outputSchema: z.object(preflightOutputSchema),
|
|
67
67
|
}, async (params) => {
|
|
68
68
|
const mocks = params.mocks;
|
|
69
69
|
const dockerLocalDev = params.dockerLocalDev !== false;
|
|
@@ -355,7 +355,7 @@ const inputSchema = {
|
|
|
355
355
|
.describe("Page size per samples request (default 50). Total is capped internally."),
|
|
356
356
|
};
|
|
357
357
|
const mockSpecOutputSchema = z.object({
|
|
358
|
-
protocol: z.
|
|
358
|
+
protocol: z.enum(MockProtocol),
|
|
359
359
|
endpointURL: z.string(),
|
|
360
360
|
method: z.string().optional(),
|
|
361
361
|
responseData: z.string().optional(),
|
|
@@ -416,8 +416,8 @@ export function registerQueryProxyMocksTool(server) {
|
|
|
416
416
|
"route) OR kubeconfig+namespace (the tool runs kubectl port-forward and always tears it down). If the " +
|
|
417
417
|
"proxy is unreachable, proxyReachable is false and you should fall back to inference — the workflow is not " +
|
|
418
418
|
"aborted.",
|
|
419
|
-
inputSchema,
|
|
420
|
-
outputSchema,
|
|
419
|
+
inputSchema: z.object(inputSchema),
|
|
420
|
+
outputSchema: z.object(outputSchema),
|
|
421
421
|
}, async (params) => {
|
|
422
422
|
const protocols = params.protocols ?? [
|
|
423
423
|
...PROTOCOLS,
|