@skyramp/mcp 0.4.4-rc.1 → 0.4.4

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 (148) hide show
  1. package/build/index.js +239 -210
  2. package/build/playwright/PlaywrightTraceService.d.ts +1 -1
  3. package/build/playwright/blueprintDigestStore.d.ts +1 -1
  4. package/build/playwright/registerPlaywrightTools.d.ts +1 -1
  5. package/build/playwright/traceRecordingPrompt.d.ts +1 -1
  6. package/build/playwright/traceRecordingPrompt.js +2 -2
  7. package/build/prompts/local-dev/local-dev-prompts.d.ts +1 -1
  8. package/build/prompts/local-dev/local-dev-prompts.js +2 -2
  9. package/build/prompts/startTraceCollectionPrompts.d.ts +1 -1
  10. package/build/prompts/startTraceCollectionPrompts.js +2 -3
  11. package/build/prompts/test-recommendation/registerRecommendTestsPrompt.d.ts +1 -1
  12. package/build/prompts/test-recommendation/registerRecommendTestsPrompt.js +2 -2
  13. package/build/prompts/testbot/testbot-prompts.d.ts +1 -1
  14. package/build/prompts/testbot/testbot-prompts.js +4 -7
  15. package/build/recommendation/answers.d.ts +17 -52
  16. package/build/recommendation/answers.js +29 -99
  17. package/build/recommendation/pullRequestText.d.ts +0 -2
  18. package/build/recommendation/pullRequestText.js +0 -16
  19. package/build/recommendation/registerPlan.d.ts +4 -7
  20. package/build/recommendation/registerPlan.js +11 -37
  21. package/build/recommendation/types.d.ts +4 -21
  22. package/build/recommendation/verifierContracts.d.ts +4 -4
  23. package/build/recommendation/verifierContracts.js +4 -4
  24. package/build/recommendation/verifiers/citedPath.d.ts +2 -2
  25. package/build/recommendation/verifiers/citedPath.js +2 -2
  26. package/build/recommendation/verifiers/issueTraceability.d.ts +5 -1
  27. package/build/recommendation/verifiers/issueTraceability.js +35 -4
  28. package/build/resources/analysisResources.d.ts +1 -1
  29. package/build/resources/analysisResources.js +1 -1
  30. package/build/resources/progressResource.d.ts +1 -1
  31. package/build/resources/sutSetupResource.d.ts +1 -1
  32. package/build/resources/sutSetupResource.js +1 -1
  33. package/build/resources/testbotResource.d.ts +1 -1
  34. package/build/resources/testbotResource.js +1 -1
  35. package/build/services/AnalyticsService.d.ts +1 -1
  36. package/build/services/FleetExecutionService.d.ts +130 -0
  37. package/build/services/FleetExecutionService.js +391 -0
  38. package/build/services/ModularizationService.d.ts +1 -1
  39. package/build/services/TestExecutionService.d.ts +7 -0
  40. package/build/services/TestExecutionService.js +21 -0
  41. package/build/services/TestGenerationService.d.ts +1 -1
  42. package/build/tool-phases.js +2 -0
  43. package/build/tools/auth/loginTool.d.ts +1 -1
  44. package/build/tools/auth/loginTool.js +2 -2
  45. package/build/tools/auth/logoutTool.d.ts +1 -1
  46. package/build/tools/auth/logoutTool.js +2 -2
  47. package/build/tools/code-refactor/alignAssertionsTool.d.ts +1 -1
  48. package/build/tools/code-refactor/alignAssertionsTool.js +1 -1
  49. package/build/tools/code-refactor/assertionSkillTools.d.ts +1 -1
  50. package/build/tools/code-refactor/assertionSkillTools.js +2 -2
  51. package/build/tools/code-refactor/codeReuseTool.d.ts +1 -1
  52. package/build/tools/code-refactor/codeReuseTool.js +2 -2
  53. package/build/tools/code-refactor/enhanceAssertionsTool.d.ts +1 -1
  54. package/build/tools/code-refactor/enhanceAssertionsTool.js +1 -1
  55. package/build/tools/code-refactor/modularizationTool.d.ts +1 -1
  56. package/build/tools/code-refactor/modularizationTool.js +2 -2
  57. package/build/tools/enrichTestWithMocksTool.d.ts +1 -1
  58. package/build/tools/enrichTestWithMocksTool.js +2 -2
  59. package/build/tools/executeFleetTool.d.ts +28 -0
  60. package/build/tools/executeFleetTool.js +107 -0
  61. package/build/tools/executeSkyrampTestTool.d.ts +8 -5
  62. package/build/tools/executeSkyrampTestTool.js +5 -5
  63. package/build/tools/fixErrorTool.d.ts +1 -1
  64. package/build/tools/fixErrorTool.js +1 -1
  65. package/build/tools/generate-tests/batchMockGenerationTool.d.ts +6 -57
  66. package/build/tools/generate-tests/batchMockGenerationTool.js +3 -3
  67. package/build/tools/generate-tests/generateBatchScenarioRestTool.d.ts +9 -45
  68. package/build/tools/generate-tests/generateBatchScenarioRestTool.js +29 -11
  69. package/build/tools/generate-tests/generateContractRestTool.d.ts +1 -2
  70. package/build/tools/generate-tests/generateContractRestTool.js +1 -1
  71. package/build/tools/generate-tests/generateE2ERestTool.d.ts +1 -2
  72. package/build/tools/generate-tests/generateE2ERestTool.js +1 -1
  73. package/build/tools/generate-tests/generateFuzzRestTool.d.ts +1 -1
  74. package/build/tools/generate-tests/generateFuzzRestTool.js +1 -1
  75. package/build/tools/generate-tests/generateIntegrationRestTool.d.ts +1 -2
  76. package/build/tools/generate-tests/generateIntegrationRestTool.js +1 -1
  77. package/build/tools/generate-tests/generateLoadRestTool.d.ts +1 -2
  78. package/build/tools/generate-tests/generateLoadRestTool.js +2 -1
  79. package/build/tools/generate-tests/generateMockRestTool.d.ts +1 -2
  80. package/build/tools/generate-tests/generateMockRestTool.js +3 -3
  81. package/build/tools/generate-tests/generateSmokeRestTool.d.ts +1 -1
  82. package/build/tools/generate-tests/generateSmokeRestTool.js +1 -1
  83. package/build/tools/generate-tests/generateUILoadRestTool.d.ts +64 -0
  84. package/build/tools/generate-tests/generateUILoadRestTool.js +512 -0
  85. package/build/tools/generate-tests/generateUIRestTool.d.ts +6 -7
  86. package/build/tools/generate-tests/generateUIRestTool.js +1 -1
  87. package/build/tools/generate-tests/loadTestSchema.d.ts +15 -15
  88. package/build/tools/generate-tests/trace-reuse-guard.d.ts +1 -1
  89. package/build/tools/generateEnrichedIntegrationTestTool.d.ts +1 -2
  90. package/build/tools/generateEnrichedIntegrationTestTool.js +1 -1
  91. package/build/tools/localDevWorkerComposeTool.d.ts +1 -1
  92. package/build/tools/localDevWorkerComposeTool.js +2 -2
  93. package/build/tools/one-click/oneClickTool.d.ts +1 -1
  94. package/build/tools/one-click/oneClickTool.js +1 -1
  95. package/build/tools/preflightMockCheckTool.d.ts +1 -1
  96. package/build/tools/preflightMockCheckTool.js +3 -3
  97. package/build/tools/queryProxyMocksTool.d.ts +1 -1
  98. package/build/tools/queryProxyMocksTool.js +3 -3
  99. package/build/tools/submitReportTool.d.ts +111 -414
  100. package/build/tools/submitReportTool.js +154 -138
  101. package/build/tools/test-management/actionsTool.d.ts +1 -1
  102. package/build/tools/test-management/actionsTool.js +7 -7
  103. package/build/tools/test-management/analyzeChangesTool.d.ts +22 -118
  104. package/build/tools/test-management/analyzeChangesTool.js +4 -4
  105. package/build/tools/test-management/analyzeTestHealthTool.d.ts +1 -1
  106. package/build/tools/test-management/analyzeTestHealthTool.js +4 -4
  107. package/build/tools/test-management/registerTestPlanTool.d.ts +111 -743
  108. package/build/tools/test-management/registerTestPlanTool.js +20 -36
  109. package/build/tools/test-management/resolveScreenTool.d.ts +1 -1
  110. package/build/tools/test-management/resolveScreenTool.js +6 -2
  111. package/build/tools/trace/startTraceCollectionTool.d.ts +1 -1
  112. package/build/tools/trace/startTraceCollectionTool.js +4 -4
  113. package/build/tools/trace/stopTraceCollectionTool.d.ts +1 -1
  114. package/build/tools/trace/stopTraceCollectionTool.js +2 -2
  115. package/build/tools/verifyTestDependenciesTool.d.ts +1 -1
  116. package/build/tools/verifyTestDependenciesTool.js +1 -1
  117. package/build/tools/workspace/initScanWorkspaceTool.d.ts +1 -1
  118. package/build/tools/workspace/initScanWorkspaceTool.js +1 -1
  119. package/build/tools/workspace/initializeWorkspaceTool.d.ts +1 -1
  120. package/build/tools/workspace/initializeWorkspaceTool.js +1 -1
  121. package/build/types/RepositoryAnalysis.d.ts +164 -1170
  122. package/build/types/RepositoryAnalysis.js +12 -10
  123. package/build/types/StepMethod.d.ts +24 -1
  124. package/build/types/StepMethod.js +1 -1
  125. package/build/types/TestTypes.d.ts +34 -133
  126. package/build/types/TestTypes.js +3 -3
  127. package/build/types/TestbotReport.d.ts +37 -0
  128. package/build/types/TestbotReport.js +22 -0
  129. package/build/types/index.d.ts +1 -1
  130. package/build/types/index.js +1 -1
  131. package/build/utils/docker.d.ts +29 -7
  132. package/build/utils/docker.js +83 -27
  133. package/build/utils/initAgent.d.ts +3 -3
  134. package/build/utils/initAgent.js +58 -26
  135. package/build/utils/progress.d.ts +3 -4
  136. package/build/utils/progress.js +4 -4
  137. package/build/utils/utils.d.ts +1 -1
  138. package/build/utils/versions.d.ts +3 -3
  139. package/build/utils/versions.js +1 -1
  140. package/build/workspace/workspace.d.ts +117 -538
  141. package/build/workspace/workspace.js +2 -2
  142. package/package.json +6 -5
  143. package/plugin/prompts/testbot-task1.md +1 -1
  144. package/plugin/skills/repair-staged-files/SKILL.md +17 -0
  145. package/build/recommendation/blockerProbes.d.ts +0 -13
  146. package/build/recommendation/blockerProbes.js +0 -91
  147. package/build/recommendation/blockers.d.ts +0 -65
  148. package/build/recommendation/blockers.js +0 -135
@@ -1,8 +1,7 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
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, "many">>>;
21
- exclude: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
22
- uniqueUIFormInputs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
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.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, string | undefined>;
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.ZodNativeEnum<typeof import("../../types/TestTypes.js").ProgrammingLanguage>;
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.ZodEffects<z.ZodString, string, string>;
2
+ export declare const numericString: (description: string) => z.ZodString;
3
3
  export declare const loadTestSchema: {
4
- loadCount: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
5
- loadDuration: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
6
- loadNumThreads: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
7
- loadRampupDuration: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
8
- loadRampupInterval: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
9
- loadTargetRPS: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
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, "many">>;
12
- exclude: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
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.ZodEffects<z.ZodNativeEnum<typeof import("../../types/TestTypes.js").RuntimeEnvironment>, import("../../types/TestTypes.js").RuntimeEnvironment, unknown>>;
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.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, string | undefined>;
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.ZodNativeEnum<typeof import("../../types/TestTypes.js").ProgrammingLanguage>;
30
+ language: z.ZodEnum<typeof import("../../types/TestTypes.js").ProgrammingLanguage>;
31
31
  framework: z.ZodString;
32
- method: z.ZodDefault<z.ZodUnion<[z.ZodNativeEnum<typeof import("../../types/TestTypes.js").HttpMethod>, z.ZodLiteral<"">]>>;
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.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>;
38
- responseStatusCode: z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>;
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/sdk/server/mcp.js";
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
  });
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  export interface WorkerComposeResult {
3
3
  baseComposeFile: string;
4
4
  overrideFile: string;
@@ -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
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  export declare enum CallingAgentIde {
3
3
  Cursor = "cursor",
4
4
  Claude = "claude"
@@ -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.shape,
298
+ inputSchema: oneClickSchema,
299
299
  }, async (params) => {
300
300
  let errorResult;
301
301
  try {
@@ -1,2 +1,2 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
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.nativeEnum(MockProtocol).describe("The protocol of the mock"),
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;
@@ -1,4 +1,4 @@
1
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
1
+ import { McpServer } from "@modelcontextprotocol/server";
2
2
  import { MockProtocol } from "../types/TestTypes.js";
3
3
  interface RestOrGrpcSampleMetadata {
4
4
  destination?: string;
@@ -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.nativeEnum(MockProtocol),
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,