@dalmia/calibrate-mcp 0.0.53 → 0.0.55

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 (59) hide show
  1. package/bin/mcp-server.js +412 -221
  2. package/bin/mcp-server.js.map +19 -16
  3. package/esm/funcs/agentTestsGetBenchmark.js +1 -0
  4. package/esm/funcs/agentTestsGetBenchmark.js.map +1 -1
  5. package/esm/funcs/agentTestsGetRun.js +1 -0
  6. package/esm/funcs/agentTestsGetRun.js.map +1 -1
  7. package/esm/funcs/agentTestsGetRunCase.d.ts +16 -0
  8. package/esm/funcs/agentTestsGetRunCase.d.ts.map +1 -0
  9. package/esm/funcs/agentTestsGetRunCase.js +100 -0
  10. package/esm/funcs/agentTestsGetRunCase.js.map +1 -0
  11. package/esm/landing-page.js +1 -1
  12. package/esm/lib/config.d.ts +2 -2
  13. package/esm/lib/config.js +2 -2
  14. package/esm/mcp-server/mcp-server.js +1 -1
  15. package/esm/mcp-server/server.d.ts.map +1 -1
  16. package/esm/mcp-server/server.js +3 -1
  17. package/esm/mcp-server/server.js.map +1 -1
  18. package/esm/mcp-server/tools/agentTestsGetRunCase.d.ts +7 -0
  19. package/esm/mcp-server/tools/agentTestsGetRunCase.d.ts.map +1 -0
  20. package/esm/mcp-server/tools/agentTestsGetRunCase.js +38 -0
  21. package/esm/mcp-server/tools/agentTestsGetRunCase.js.map +1 -0
  22. package/esm/models/getagenttestcaseresultagenttestsruntaskidresultstestuuidgetop.d.ts +13 -0
  23. package/esm/models/getagenttestcaseresultagenttestsruntaskidresultstestuuidgetop.d.ts.map +1 -0
  24. package/esm/models/getagenttestcaseresultagenttestsruntaskidresultstestuuidgetop.js +17 -0
  25. package/esm/models/getagenttestcaseresultagenttestsruntaskidresultstestuuidgetop.js.map +1 -0
  26. package/esm/models/getagenttestrunstatusagenttestsruntaskidgetop.d.ts +17 -0
  27. package/esm/models/getagenttestrunstatusagenttestsruntaskidgetop.d.ts.map +1 -1
  28. package/esm/models/getagenttestrunstatusagenttestsruntaskidgetop.js +12 -0
  29. package/esm/models/getagenttestrunstatusagenttestsruntaskidgetop.js.map +1 -1
  30. package/esm/models/getbenchmarkstatusagenttestsbenchmarktaskidgetop.d.ts +17 -0
  31. package/esm/models/getbenchmarkstatusagenttestsbenchmarktaskidgetop.d.ts.map +1 -1
  32. package/esm/models/getbenchmarkstatusagenttestsbenchmarktaskidgetop.js +13 -0
  33. package/esm/models/getbenchmarkstatusagenttestsbenchmarktaskidgetop.js.map +1 -1
  34. package/esm/models/testcaseresult.d.ts +16 -0
  35. package/esm/models/testcaseresult.d.ts.map +1 -1
  36. package/esm/models/testcaseresult.js +14 -0
  37. package/esm/models/testcaseresult.js.map +1 -1
  38. package/esm/models/testrunstatusresponse.d.ts +3 -0
  39. package/esm/models/testrunstatusresponse.d.ts.map +1 -1
  40. package/esm/models/testrunstatusresponse.js +2 -0
  41. package/esm/models/testrunstatusresponse.js.map +1 -1
  42. package/esm/tool-names.d.ts.map +1 -1
  43. package/esm/tool-names.js +4 -0
  44. package/esm/tool-names.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/funcs/agentTestsGetBenchmark.ts +1 -0
  47. package/src/funcs/agentTestsGetRun.ts +1 -0
  48. package/src/funcs/agentTestsGetRunCase.ts +167 -0
  49. package/src/landing-page.ts +1 -1
  50. package/src/lib/config.ts +2 -2
  51. package/src/mcp-server/mcp-server.ts +1 -1
  52. package/src/mcp-server/server.ts +3 -1
  53. package/src/mcp-server/tools/agentTestsGetRunCase.ts +47 -0
  54. package/src/models/getagenttestcaseresultagenttestsruntaskidresultstestuuidgetop.ts +44 -0
  55. package/src/models/getagenttestrunstatusagenttestsruntaskidgetop.ts +30 -0
  56. package/src/models/getbenchmarkstatusagenttestsbenchmarktaskidgetop.ts +29 -0
  57. package/src/models/testcaseresult.ts +24 -0
  58. package/src/models/testrunstatusresponse.ts +5 -0
  59. package/src/tool-names.ts +4 -0
@@ -20,6 +20,9 @@ export type TestRunStatusResponse = {
20
20
  [k: string]: any;
21
21
  } | null | undefined;
22
22
  evaluators?: Array<TestRunEvaluator> | null | undefined;
23
+ evaluator_summary?: Array<{
24
+ [k: string]: any;
25
+ }> | null | undefined;
23
26
  results?: Array<TestCaseResult> | null | undefined;
24
27
  unanswered_tests?: number | null | undefined;
25
28
  stopped_early?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"testrunstatusresponse.d.ts","sourceRoot":"","sources":["../../src/models/testrunstatusresponse.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,cAAc,EAA4B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,UAAU,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACxD,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAmDzE,CAAC"}
1
+ {"version":3,"file":"testrunstatusresponse.d.ts","sourceRoot":"","sources":["../../src/models/testrunstatusresponse.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,cAAc,EAA4B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,UAAU,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACxD,iBAAiB,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACnE,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAuDzE,CAAC"}
@@ -9,6 +9,8 @@ export const TestRunStatusResponse$zodSchema = z.object({
9
9
  aborted: z.boolean().default(false).describe("Whether a user stopped this run before it finished. The results collected up to that point are kept, and test cases that never ran are counted neither as passed nor as failed"),
10
10
  cost: z.record(z.string(), z.any()).nullable().optional().describe("Aggregated cost as `{mean, min, max, count}` (USD)"),
11
11
  error: z.boolean().default(false).describe("True if the run failed"),
12
+ evaluator_summary: z.array(z.record(z.string(), z.any())).nullable()
13
+ .optional().describe("Totals for each evaluator over the whole run, matching the shape a benchmark reports for each model. Only evaluators that returned a verdict appear"),
12
14
  evaluators: z.array(TestRunEvaluator$zodSchema).nullable().optional()
13
15
  .describe("The evaluators used in this run. Each verdict in `judge_results` links to one of these by `evaluator_uuid`"),
14
16
  failed: z.int().nullable().optional().describe("Number of test cases that failed"),
@@ -1 +1 @@
1
- {"version":3,"file":"testrunstatusresponse.js","sourceRoot":"","sources":["../../src/models/testrunstatusresponse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAc,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAkB,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAEL,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAuB/B,MAAM,CAAC,MAAM,+BAA+B,GAC1C,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAC1C,gLAAgL,CACjL;IACD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAChE,oDAAoD,CACrD;IACD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACpE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;SAClE,QAAQ,CACP,4GAA4G,CAC7G;IACH,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,kCAAkC,CACnC;IACD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAC5C,oCAAoC,CACrC;IACD,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACtE,0EAA0E,CAC3E;IACD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CACvB,qIAAqI,CACtI;IACD,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,kCAAkC,CACnC;IACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACvE,4BAA4B,CAC7B;IACD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpD,yCAAyC,CAC1C;IACD,MAAM,EAAE,oBAAoB;IAC5B,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAChD,yFAAyF,CAC1F;IACD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5D,kDAAkD,CACnD;IACD,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACjD,4BAA4B,CAC7B;IACD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACxE,qDAAqD,CACtD;IACD,gBAAgB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACtD,4JAA4J,CAC7J;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"testrunstatusresponse.js","sourceRoot":"","sources":["../../src/models/testrunstatusresponse.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-names.d.ts","sourceRoot":"","sources":["../src/tool-names.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAqKlE,CAAC"}
1
+ {"version":3,"file":"tool-names.d.ts","sourceRoot":"","sources":["../src/tool-names.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAyKlE,CAAC"}
package/esm/tool-names.js CHANGED
@@ -80,6 +80,10 @@ export const toolNames = [
80
80
  "name": "get-agent-test-run",
81
81
  "description": "Poll the status and results of an agent test run by task_id. Returns\nqueued, in_progress, completed, failed, or aborted status. When\ncompleted, includes per-test-case pass/fail results and evaluator\njudgments. Use the task_id from run-agent-tests or\nrun-agent-tests-batch.\n"
82
82
  },
83
+ {
84
+ "name": "get-agent-test-case-result",
85
+ "description": "Fetch the full result of one test case in a run, including the\nconversation, the agent's output and each evaluator's reasoning. Pass\nthe model query param for a benchmark, which runs every test once per\nmodel. Use with mode=summary on get-agent-test-run, which returns\nlight rows without this detail.\n"
86
+ },
83
87
  {
84
88
  "name": "run-agent-benchmark",
85
89
  "description": "Start a multi-model benchmark over an agent's linked tests as a background job. Optionally restrict to a subset of linked tests. Returns a task_id to poll with get-agent-benchmark.\n"
@@ -1 +1 @@
1
- {"version":3,"file":"tool-names.js","sourceRoot":"","sources":["../src/tool-names.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-names.js","sourceRoot":"","sources":["../src/tool-names.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dalmia/calibrate-mcp",
3
- "version": "0.0.53",
3
+ "version": "0.0.55",
4
4
  "author": "Speakeasy",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -98,6 +98,7 @@ async function $do(
98
98
  );
99
99
  const query$ = encodeFormQuery({
100
100
  "compact": payload$.compact,
101
+ "mode": payload$.mode,
101
102
  "only_failed": payload$.only_failed,
102
103
  });
103
104
 
@@ -98,6 +98,7 @@ async function $do(
98
98
  );
99
99
  const query$ = encodeFormQuery({
100
100
  "compact": payload$.compact,
101
+ "mode": payload$.mode,
101
102
  "only_failed": payload$.only_failed,
102
103
  });
103
104
 
@@ -0,0 +1,167 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { CalibrateMcpCore } from "../core.js";
6
+ import { encodeFormQuery, encodeSimple } from "../lib/encodings.js";
7
+ import { compactMap } from "../lib/primitives.js";
8
+ import { safeParse } from "../lib/schemas.js";
9
+ import { RequestOptions } from "../lib/sdks.js";
10
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
11
+ import { pathToFunc } from "../lib/url.js";
12
+ import { APIError } from "../models/errors/apierror.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
21
+ import {
22
+ GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest,
23
+ GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest$zodSchema,
24
+ } from "../models/getagenttestcaseresultagenttestsruntaskidresultstestuuidgetop.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Get test case result
30
+ *
31
+ * @remarks
32
+ * Get the full result of one test case in a run
33
+ */
34
+ export function agentTestsGetRunCase(
35
+ client$: CalibrateMcpCore,
36
+ request: GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest,
37
+ options?: RequestOptions,
38
+ ): APIPromise<
39
+ Result<
40
+ Response,
41
+ | APIError
42
+ | SDKValidationError
43
+ | UnexpectedClientError
44
+ | InvalidRequestError
45
+ | RequestAbortedError
46
+ | RequestTimeoutError
47
+ | ConnectionError
48
+ >
49
+ > {
50
+ return new APIPromise($do(
51
+ client$,
52
+ request,
53
+ options,
54
+ ));
55
+ }
56
+
57
+ async function $do(
58
+ client$: CalibrateMcpCore,
59
+ request: GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest,
60
+ options?: RequestOptions,
61
+ ): Promise<
62
+ [
63
+ Result<
64
+ Response,
65
+ | APIError
66
+ | SDKValidationError
67
+ | UnexpectedClientError
68
+ | InvalidRequestError
69
+ | RequestAbortedError
70
+ | RequestTimeoutError
71
+ | ConnectionError
72
+ >,
73
+ APICall,
74
+ ]
75
+ > {
76
+ const parsed$ = safeParse(
77
+ request,
78
+ (value$) =>
79
+ GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest$zodSchema
80
+ .parse(value$),
81
+ "Input validation failed",
82
+ );
83
+ if (!parsed$.ok) {
84
+ return [parsed$, { status: "invalid" }];
85
+ }
86
+ const payload$ = parsed$.value;
87
+ const body$ = null;
88
+
89
+ const pathParams$ = {
90
+ task_id: encodeSimple("task_id", payload$.task_id, {
91
+ explode: false,
92
+ charEncoding: "percent",
93
+ }),
94
+ test_uuid: encodeSimple("test_uuid", payload$.test_uuid, {
95
+ explode: false,
96
+ charEncoding: "percent",
97
+ }),
98
+ };
99
+ const path$ = pathToFunc("/agent-tests/run/{task_id}/results/{test_uuid}")(
100
+ pathParams$,
101
+ );
102
+ const query$ = encodeFormQuery({
103
+ "model": payload$.model,
104
+ });
105
+
106
+ const headers$ = new Headers(compactMap({
107
+ Accept: "application/json",
108
+ "X-API-Key": encodeSimple("X-API-Key", payload$.xAPIKey, {
109
+ explode: false,
110
+ charEncoding: "none",
111
+ }),
112
+ }));
113
+ const securityInput = await extractSecurity(client$._options.security);
114
+ const requestSecurity = resolveGlobalSecurity(securityInput);
115
+
116
+ const context = {
117
+ options: client$._options,
118
+ baseURL: options?.serverURL ?? client$._baseURL ?? "",
119
+ operationID:
120
+ "get_agent_test_case_result_agent_tests_run__task_id__results__test_uuid__get",
121
+ oAuth2Scopes: null,
122
+ resolvedSecurity: requestSecurity,
123
+ securitySource: client$._options.security,
124
+ retryConfig: options?.retries
125
+ || client$._options.retryConfig
126
+ || { strategy: "none" },
127
+ retryCodes: options?.retryCodes || [
128
+ "429",
129
+ "500",
130
+ "502",
131
+ "503",
132
+ "504",
133
+ ],
134
+ };
135
+
136
+ const requestRes = client$._createRequest(context, {
137
+ security: requestSecurity,
138
+ method: "GET",
139
+ baseURL: options?.serverURL,
140
+ path: path$,
141
+ headers: headers$,
142
+ query: query$,
143
+ body: body$,
144
+ userAgent: client$._options.userAgent,
145
+ timeoutMs: options?.timeoutMs || client$._options.timeoutMs
146
+ || -1,
147
+ }, options);
148
+ if (!requestRes.ok) {
149
+ return [requestRes, { status: "invalid" }];
150
+ }
151
+ const req$ = requestRes.value;
152
+
153
+ const doResult = await client$._do(req$, {
154
+ context,
155
+ errorCodes: [],
156
+ retryConfig: context.retryConfig,
157
+ retryCodes: context.retryCodes,
158
+ });
159
+ if (!doResult.ok) {
160
+ return [doResult, { status: "request-error", request: req$ }];
161
+ }
162
+ return [doResult, {
163
+ status: "complete",
164
+ "request": req$,
165
+ response: doResult.value,
166
+ }];
167
+ }
@@ -930,7 +930,7 @@ http_headers = { "api-key-auth" = "YOUR_API_KEY_AUTH" }`;
930
930
  <h1>Instructions</h1>
931
931
  <p>One-click installation for Claude Desktop users</p>
932
932
  <div class="instruction-item">
933
- <a href="https://github.com/dalmia/calibrate-mcp/releases/download/v0.0.53/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
933
+ <a href="https://github.com/dalmia/calibrate-mcp/releases/download/v0.0.55/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
934
934
  📥 Download MCP Bundle
935
935
  </a>
936
936
  </div>
package/src/lib/config.ts CHANGED
@@ -65,8 +65,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
65
65
  export const SDK_METADATA = {
66
66
  language: "typescript",
67
67
  openapiDocVersion: "0.1.0",
68
- sdkVersion: "0.0.53",
68
+ sdkVersion: "0.0.55",
69
69
  genVersion: "2.915.1",
70
70
  userAgent:
71
- "speakeasy-sdk/mcp-typescript 0.0.53 2.915.1 0.1.0 @dalmia/calibrate-mcp",
71
+ "speakeasy-sdk/mcp-typescript 0.0.55 2.915.1 0.1.0 @dalmia/calibrate-mcp",
72
72
  } as const;
@@ -21,7 +21,7 @@ const routes = buildRouteMap({
21
21
  export const app = buildApplication(routes, {
22
22
  name: "mcp",
23
23
  versionInfo: {
24
- currentVersion: "0.0.53",
24
+ currentVersion: "0.0.55",
25
25
  },
26
26
  });
27
27
 
@@ -29,6 +29,7 @@ import { tool$agentTestsBenchmark } from "./tools/agentTestsBenchmark.js";
29
29
  import { tool$agentTestsBulkUnlink } from "./tools/agentTestsBulkUnlink.js";
30
30
  import { tool$agentTestsGetBenchmark } from "./tools/agentTestsGetBenchmark.js";
31
31
  import { tool$agentTestsGetRun } from "./tools/agentTestsGetRun.js";
32
+ import { tool$agentTestsGetRunCase } from "./tools/agentTestsGetRunCase.js";
32
33
  import { tool$agentTestsLink } from "./tools/agentTestsLink.js";
33
34
  import { tool$agentTestsListForAgent } from "./tools/agentTestsListForAgent.js";
34
35
  import { tool$agentTestsListRunsForAgent } from "./tools/agentTestsListRunsForAgent.js";
@@ -72,7 +73,7 @@ export function createMCPServer(deps: {
72
73
  }) {
73
74
  const server = new McpServer({
74
75
  name: "CalibrateMcp",
75
- version: "0.0.53",
76
+ version: "0.0.55",
76
77
  });
77
78
 
78
79
  const getClient = deps.getSDK || (() =>
@@ -137,6 +138,7 @@ export function createMCPServer(deps: {
137
138
  tool(tool$agentTestsRun);
138
139
  tool(tool$agentTestsRunBatch);
139
140
  tool(tool$agentTestsGetRun);
141
+ tool(tool$agentTestsGetRunCase);
140
142
  tool(tool$agentTestsBenchmark);
141
143
  tool(tool$agentTestsGetBenchmark);
142
144
  tool(tool$evaluatorsCreate);
@@ -0,0 +1,47 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { agentTestsGetRunCase } from "../../funcs/agentTestsGetRunCase.js";
6
+ import { GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest$zodSchema } from "../../models/getagenttestcaseresultagenttestsruntaskidresultstestuuidgetop.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request:
11
+ GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest$zodSchema,
12
+ };
13
+
14
+ export const tool$agentTestsGetRunCase: ToolDefinition<typeof args> = {
15
+ name: "get-agent-test-case-result",
16
+ description: `Fetch the full result of one test case in a run, including the
17
+ conversation, the agent's output and each evaluator's reasoning. Pass
18
+ the model query param for a benchmark, which runs every test once per
19
+ model. Use with mode=summary on get-agent-test-run, which returns
20
+ light rows without this detail.
21
+ `,
22
+ scopes: ["read"],
23
+ annotations: {
24
+ "title": "Get agent test case result",
25
+ "destructiveHint": false,
26
+ "idempotentHint": false,
27
+ "openWorldHint": true,
28
+ "readOnlyHint": true,
29
+ },
30
+ args,
31
+ tool: async (client, args, ctx) => {
32
+ const [result] = await agentTestsGetRunCase(
33
+ client,
34
+ args.request,
35
+ { fetchOptions: { signal: ctx.signal } },
36
+ ).$inspect();
37
+
38
+ if (!result.ok) {
39
+ return {
40
+ content: [{ type: "text", text: result.error.message }],
41
+ isError: true,
42
+ };
43
+ }
44
+
45
+ return formatResult(result.value);
46
+ },
47
+ };
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod";
6
+ import {
7
+ HTTPValidationError,
8
+ HTTPValidationError$zodSchema,
9
+ } from "./httpvalidationerror.js";
10
+ import { TestCaseResult, TestCaseResult$zodSchema } from "./testcaseresult.js";
11
+
12
+ export type GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest =
13
+ {
14
+ task_id: string;
15
+ test_uuid: string;
16
+ model?: string | null | undefined;
17
+ xAPIKey?: string | null | undefined;
18
+ };
19
+
20
+ export const GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest$zodSchema:
21
+ z.ZodType<
22
+ GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetRequest
23
+ > = z.object({
24
+ model: z.string().describe(
25
+ "Which model's answer to read. Required for a benchmark, which runs every test once per model",
26
+ ).nullable().optional(),
27
+ task_id: z.string().describe("Test run or benchmark the case was run in"),
28
+ test_uuid: z.string().describe(
29
+ "The test whose result to read, as `test_uuid` on the case",
30
+ ),
31
+ xAPIKey: z.string().nullable().optional(),
32
+ });
33
+
34
+ export type GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetResponse =
35
+ | TestCaseResult
36
+ | HTTPValidationError;
37
+
38
+ export const GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetResponse$zodSchema:
39
+ z.ZodType<
40
+ GetAgentTestCaseResultAgentTestsRunTaskIdResultsTestUuidGetResponse
41
+ > = z.union([
42
+ TestCaseResult$zodSchema,
43
+ HTTPValidationError$zodSchema,
44
+ ]);
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  import * as z from "zod";
6
+ import { ClosedEnum } from "../types/enums.js";
6
7
  import {
7
8
  HTTPValidationError,
8
9
  HTTPValidationError$zodSchema,
@@ -12,9 +13,33 @@ import {
12
13
  TestRunStatusResponse$zodSchema,
13
14
  } from "./testrunstatusresponse.js";
14
15
 
16
+ /**
17
+ * How much of each test case to return. `full` returns every field of every case. `summary` returns one light row per case, with its ID, name, verdict and short reason, leaving out the conversation, the agent's output and the evaluator verdicts. Read those one case at a time from `GET /agent-tests/run/{task_id}/results/{test_uuid}`
18
+ */
19
+ export const GetAgentTestRunStatusAgentTestsRunTaskIdGetMode = {
20
+ Full: "full",
21
+ Summary: "summary",
22
+ } as const;
23
+ /**
24
+ * How much of each test case to return. `full` returns every field of every case. `summary` returns one light row per case, with its ID, name, verdict and short reason, leaving out the conversation, the agent's output and the evaluator verdicts. Read those one case at a time from `GET /agent-tests/run/{task_id}/results/{test_uuid}`
25
+ */
26
+ export type GetAgentTestRunStatusAgentTestsRunTaskIdGetMode = ClosedEnum<
27
+ typeof GetAgentTestRunStatusAgentTestsRunTaskIdGetMode
28
+ >;
29
+
30
+ export const GetAgentTestRunStatusAgentTestsRunTaskIdGetMode$zodSchema = z.enum(
31
+ [
32
+ "full",
33
+ "summary",
34
+ ],
35
+ ).describe(
36
+ "How much of each test case to return. `full` returns every field of every case. `summary` returns one light row per case, with its ID, name, verdict and short reason, leaving out the conversation, the agent's output and the evaluator verdicts. Read those one case at a time from `GET /agent-tests/run/{task_id}/results/{test_uuid}`",
37
+ );
38
+
15
39
  export type GetAgentTestRunStatusAgentTestsRunTaskIdGetRequest = {
16
40
  task_id: string;
17
41
  only_failed?: boolean | undefined;
42
+ mode?: GetAgentTestRunStatusAgentTestsRunTaskIdGetMode | undefined;
18
43
  compact?: boolean | undefined;
19
44
  xAPIKey?: string | null | undefined;
20
45
  };
@@ -24,6 +49,11 @@ export const GetAgentTestRunStatusAgentTestsRunTaskIdGetRequest$zodSchema:
24
49
  compact: z.boolean().default(false).describe(
25
50
  "Return a compact response that omits heavy detail fields (`results.output`, `results.test_case`, `results.judge_results`, `results.reasoning`, `evaluators.output_config`), keeping only the lightweight decision fields. Omit for full detail",
26
51
  ),
52
+ mode: GetAgentTestRunStatusAgentTestsRunTaskIdGetMode$zodSchema.default(
53
+ "full",
54
+ ).describe(
55
+ "How much of each test case to return. `full` returns every field of every case. `summary` returns one light row per case, with its ID, name, verdict and short reason, leaving out the conversation, the agent's output and the evaluator verdicts. Read those one case at a time from `GET /agent-tests/run/{task_id}/results/{test_uuid}`",
56
+ ),
27
57
  only_failed: z.boolean().default(false).describe(
28
58
  "Return only failing test cases. Omit to return every case",
29
59
  ),
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  import * as z from "zod";
6
+ import { ClosedEnum } from "../types/enums.js";
6
7
  import {
7
8
  BenchmarkStatusResponse,
8
9
  BenchmarkStatusResponse$zodSchema,
@@ -12,9 +13,32 @@ import {
12
13
  HTTPValidationError$zodSchema,
13
14
  } from "./httpvalidationerror.js";
14
15
 
16
+ /**
17
+ * How much of each test case to return. `full` returns every field of every case. `summary` returns one light row per case, with its ID, name, verdict and short reason, leaving out the conversation, the agent's output and the evaluator verdicts. Read those one case at a time from `GET /agent-tests/run/{task_id}/results/{test_uuid}`
18
+ */
19
+ export const GetBenchmarkStatusAgentTestsBenchmarkTaskIdGetMode = {
20
+ Full: "full",
21
+ Summary: "summary",
22
+ } as const;
23
+ /**
24
+ * How much of each test case to return. `full` returns every field of every case. `summary` returns one light row per case, with its ID, name, verdict and short reason, leaving out the conversation, the agent's output and the evaluator verdicts. Read those one case at a time from `GET /agent-tests/run/{task_id}/results/{test_uuid}`
25
+ */
26
+ export type GetBenchmarkStatusAgentTestsBenchmarkTaskIdGetMode = ClosedEnum<
27
+ typeof GetBenchmarkStatusAgentTestsBenchmarkTaskIdGetMode
28
+ >;
29
+
30
+ export const GetBenchmarkStatusAgentTestsBenchmarkTaskIdGetMode$zodSchema = z
31
+ .enum([
32
+ "full",
33
+ "summary",
34
+ ]).describe(
35
+ "How much of each test case to return. `full` returns every field of every case. `summary` returns one light row per case, with its ID, name, verdict and short reason, leaving out the conversation, the agent's output and the evaluator verdicts. Read those one case at a time from `GET /agent-tests/run/{task_id}/results/{test_uuid}`",
36
+ );
37
+
15
38
  export type GetBenchmarkStatusAgentTestsBenchmarkTaskIdGetRequest = {
16
39
  task_id: string;
17
40
  only_failed?: boolean | undefined;
41
+ mode?: GetBenchmarkStatusAgentTestsBenchmarkTaskIdGetMode | undefined;
18
42
  compact?: boolean | undefined;
19
43
  xAPIKey?: string | null | undefined;
20
44
  };
@@ -24,6 +48,11 @@ export const GetBenchmarkStatusAgentTestsBenchmarkTaskIdGetRequest$zodSchema:
24
48
  compact: z.boolean().default(false).describe(
25
49
  "Return a compact response that omits heavy detail fields (`model_results.test_results`, `evaluators.output_config`), keeping only the lightweight decision fields. Omit for full detail",
26
50
  ),
51
+ mode: GetBenchmarkStatusAgentTestsBenchmarkTaskIdGetMode$zodSchema.default(
52
+ "full",
53
+ ).describe(
54
+ "How much of each test case to return. `full` returns every field of every case. `summary` returns one light row per case, with its ID, name, verdict and short reason, leaving out the conversation, the agent's output and the evaluator verdicts. Read those one case at a time from `GET /agent-tests/run/{task_id}/results/{test_uuid}`",
55
+ ),
27
56
  only_failed: z.boolean().default(false).describe(
28
57
  "Return only failing test cases for each model. Omit to return every case",
29
58
  ),
@@ -3,12 +3,30 @@
3
3
  */
4
4
 
5
5
  import * as z from "zod";
6
+ import { ClosedEnum } from "../types/enums.js";
6
7
  import { JudgeResult, JudgeResult$zodSchema } from "./judgeresult.js";
7
8
  import { TestOutput, TestOutput$zodSchema } from "./testoutput.js";
8
9
 
10
+ export const TestType = {
11
+ Response: "response",
12
+ ToolCall: "tool_call",
13
+ Conversation: "conversation",
14
+ General: "general",
15
+ } as const;
16
+ export type TestType = ClosedEnum<typeof TestType>;
17
+
18
+ export const TestType$zodSchema = z.enum([
19
+ "response",
20
+ "tool_call",
21
+ "conversation",
22
+ "general",
23
+ ]);
24
+
9
25
  export type TestCaseResult = {
10
26
  test_case_id?: string | null | undefined;
11
27
  name?: string | null | undefined;
28
+ test_uuid?: string | null | undefined;
29
+ test_type?: TestType | null | undefined;
12
30
  passed?: boolean | null | undefined;
13
31
  reasoning?: string | null | undefined;
14
32
  output?: TestOutput | null | undefined;
@@ -49,6 +67,12 @@ export const TestCaseResult$zodSchema: z.ZodType<TestCaseResult> = z.object({
49
67
  test_case_id: z.string().nullable().optional().describe(
50
68
  "ID of the test case within the run",
51
69
  ),
70
+ test_type: TestType$zodSchema.nullable().optional().describe(
71
+ "What the test asks of the agent, which decides how a reader draws the case",
72
+ ),
73
+ test_uuid: z.string().nullable().optional().describe(
74
+ "ID of the test this case ran, which is what you pass to read the case on its own",
75
+ ),
52
76
  unanswered: z.boolean().default(false).describe(
53
77
  "Whether this case produced no answer because the agent or the judge could not be reached, in which case `reasoning` carries the error and `passed` is not a verdict on the agent",
54
78
  ),
@@ -22,6 +22,7 @@ export type TestRunStatusResponse = {
22
22
  cost?: { [k: string]: any } | null | undefined;
23
23
  total_tokens?: { [k: string]: any } | null | undefined;
24
24
  evaluators?: Array<TestRunEvaluator> | null | undefined;
25
+ evaluator_summary?: Array<{ [k: string]: any }> | null | undefined;
25
26
  results?: Array<TestCaseResult> | null | undefined;
26
27
  unanswered_tests?: number | null | undefined;
27
28
  stopped_early?: boolean | undefined;
@@ -40,6 +41,10 @@ export const TestRunStatusResponse$zodSchema: z.ZodType<TestRunStatusResponse> =
40
41
  "Aggregated cost as `{mean, min, max, count}` (USD)",
41
42
  ),
42
43
  error: z.boolean().default(false).describe("True if the run failed"),
44
+ evaluator_summary: z.array(z.record(z.string(), z.any())).nullable()
45
+ .optional().describe(
46
+ "Totals for each evaluator over the whole run, matching the shape a benchmark reports for each model. Only evaluators that returned a verdict appear",
47
+ ),
43
48
  evaluators: z.array(TestRunEvaluator$zodSchema).nullable().optional()
44
49
  .describe(
45
50
  "The evaluators used in this run. Each verdict in `judge_results` links to one of these by `evaluator_uuid`",
package/src/tool-names.ts CHANGED
@@ -80,6 +80,10 @@ export const toolNames: Array<{ name: string; description: string }>= [
80
80
  "name": "get-agent-test-run",
81
81
  "description": "Poll the status and results of an agent test run by task_id. Returns\nqueued, in_progress, completed, failed, or aborted status. When\ncompleted, includes per-test-case pass/fail results and evaluator\njudgments. Use the task_id from run-agent-tests or\nrun-agent-tests-batch.\n"
82
82
  },
83
+ {
84
+ "name": "get-agent-test-case-result",
85
+ "description": "Fetch the full result of one test case in a run, including the\nconversation, the agent's output and each evaluator's reasoning. Pass\nthe model query param for a benchmark, which runs every test once per\nmodel. Use with mode=summary on get-agent-test-run, which returns\nlight rows without this detail.\n"
86
+ },
83
87
  {
84
88
  "name": "run-agent-benchmark",
85
89
  "description": "Start a multi-model benchmark over an agent's linked tests as a background job. Optionally restrict to a subset of linked tests. Returns a task_id to poll with get-agent-benchmark.\n"