@meetkai/mka1 0.54.72 → 0.54.74

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 (170) hide show
  1. package/README.md +307 -304
  2. package/bin/mcp-server.js +1682 -1477
  3. package/bin/mcp-server.js.map +21 -16
  4. package/dist/commonjs/funcs/llmEvalsMeasureSuiteTokens.d.ts +20 -0
  5. package/dist/commonjs/funcs/llmEvalsMeasureSuiteTokens.d.ts.map +1 -0
  6. package/dist/commonjs/funcs/llmEvalsMeasureSuiteTokens.js +137 -0
  7. package/dist/commonjs/funcs/llmEvalsMeasureSuiteTokens.js.map +1 -0
  8. package/dist/commonjs/lib/config.d.ts +2 -2
  9. package/dist/commonjs/lib/config.js +2 -2
  10. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  11. package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
  12. package/dist/commonjs/mcp-server/server.js +3 -1
  13. package/dist/commonjs/mcp-server/server.js.map +1 -1
  14. package/dist/commonjs/mcp-server/tools/llmEvalsMeasureSuiteTokens.d.ts +8 -0
  15. package/dist/commonjs/mcp-server/tools/llmEvalsMeasureSuiteTokens.d.ts.map +1 -0
  16. package/dist/commonjs/mcp-server/tools/llmEvalsMeasureSuiteTokens.js +64 -0
  17. package/dist/commonjs/mcp-server/tools/llmEvalsMeasureSuiteTokens.js.map +1 -0
  18. package/dist/commonjs/models/components/declaration.d.ts +3 -12
  19. package/dist/commonjs/models/components/declaration.d.ts.map +1 -1
  20. package/dist/commonjs/models/components/declaration.js.map +1 -1
  21. package/dist/commonjs/models/components/evalsampleobject.d.ts +5 -0
  22. package/dist/commonjs/models/components/evalsampleobject.d.ts.map +1 -1
  23. package/dist/commonjs/models/components/evalsampleobject.js +4 -0
  24. package/dist/commonjs/models/components/evalsampleobject.js.map +1 -1
  25. package/dist/commonjs/models/components/evalsuitetokenmeasurement.d.ts +34 -0
  26. package/dist/commonjs/models/components/evalsuitetokenmeasurement.d.ts.map +1 -0
  27. package/dist/commonjs/models/components/evalsuitetokenmeasurement.js +81 -0
  28. package/dist/commonjs/models/components/evalsuitetokenmeasurement.js.map +1 -0
  29. package/dist/commonjs/models/components/generation.d.ts +3 -4
  30. package/dist/commonjs/models/components/generation.d.ts.map +1 -1
  31. package/dist/commonjs/models/components/generation.js.map +1 -1
  32. package/dist/commonjs/models/components/generationcreated.d.ts +3 -4
  33. package/dist/commonjs/models/components/generationcreated.d.ts.map +1 -1
  34. package/dist/commonjs/models/components/generationcreated.js.map +1 -1
  35. package/dist/commonjs/models/components/generatordetail.d.ts +3 -4
  36. package/dist/commonjs/models/components/generatordetail.d.ts.map +1 -1
  37. package/dist/commonjs/models/components/generatordetail.js.map +1 -1
  38. package/dist/commonjs/models/components/index.d.ts +2 -0
  39. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  40. package/dist/commonjs/models/components/index.js +2 -0
  41. package/dist/commonjs/models/components/index.js.map +1 -1
  42. package/dist/commonjs/models/components/limits.d.ts +10 -6
  43. package/dist/commonjs/models/components/limits.d.ts.map +1 -1
  44. package/dist/commonjs/models/components/limits.js +2 -2
  45. package/dist/commonjs/models/components/limits.js.map +1 -1
  46. package/dist/commonjs/models/components/limitsrequest.d.ts +5 -0
  47. package/dist/commonjs/models/components/limitsrequest.d.ts.map +1 -1
  48. package/dist/commonjs/models/components/limitsrequest.js.map +1 -1
  49. package/dist/commonjs/models/components/measureevalsuitetokensbody.d.ts +20 -0
  50. package/dist/commonjs/models/components/measureevalsuitetokensbody.d.ts.map +1 -0
  51. package/dist/commonjs/models/components/measureevalsuitetokensbody.js +58 -0
  52. package/dist/commonjs/models/components/measureevalsuitetokensbody.js.map +1 -0
  53. package/dist/commonjs/models/components/quoteresponse.d.ts +3 -4
  54. package/dist/commonjs/models/components/quoteresponse.d.ts.map +1 -1
  55. package/dist/commonjs/models/components/quoteresponse.js.map +1 -1
  56. package/dist/commonjs/models/operations/index.d.ts +1 -0
  57. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  58. package/dist/commonjs/models/operations/index.js +1 -0
  59. package/dist/commonjs/models/operations/index.js.map +1 -1
  60. package/dist/commonjs/models/operations/measureevalsuitetokens.d.ts +25 -0
  61. package/dist/commonjs/models/operations/measureevalsuitetokens.d.ts.map +1 -0
  62. package/dist/commonjs/models/operations/measureevalsuitetokens.js +76 -0
  63. package/dist/commonjs/models/operations/measureevalsuitetokens.js.map +1 -0
  64. package/dist/commonjs/react-query/index.d.ts +1 -0
  65. package/dist/commonjs/react-query/index.d.ts.map +1 -1
  66. package/dist/commonjs/react-query/index.js +1 -0
  67. package/dist/commonjs/react-query/index.js.map +1 -1
  68. package/dist/commonjs/react-query/llmEvalsMeasureSuiteTokens.d.ts +29 -0
  69. package/dist/commonjs/react-query/llmEvalsMeasureSuiteTokens.d.ts.map +1 -0
  70. package/dist/commonjs/react-query/llmEvalsMeasureSuiteTokens.js +47 -0
  71. package/dist/commonjs/react-query/llmEvalsMeasureSuiteTokens.js.map +1 -0
  72. package/dist/commonjs/sdk/evals.d.ts +7 -0
  73. package/dist/commonjs/sdk/evals.d.ts.map +1 -1
  74. package/dist/commonjs/sdk/evals.js +10 -0
  75. package/dist/commonjs/sdk/evals.js.map +1 -1
  76. package/dist/esm/funcs/llmEvalsMeasureSuiteTokens.d.ts +20 -0
  77. package/dist/esm/funcs/llmEvalsMeasureSuiteTokens.d.ts.map +1 -0
  78. package/dist/esm/funcs/llmEvalsMeasureSuiteTokens.js +101 -0
  79. package/dist/esm/funcs/llmEvalsMeasureSuiteTokens.js.map +1 -0
  80. package/dist/esm/lib/config.d.ts +2 -2
  81. package/dist/esm/lib/config.js +2 -2
  82. package/dist/esm/mcp-server/mcp-server.js +1 -1
  83. package/dist/esm/mcp-server/server.d.ts.map +1 -1
  84. package/dist/esm/mcp-server/server.js +3 -1
  85. package/dist/esm/mcp-server/server.js.map +1 -1
  86. package/dist/esm/mcp-server/tools/llmEvalsMeasureSuiteTokens.d.ts +8 -0
  87. package/dist/esm/mcp-server/tools/llmEvalsMeasureSuiteTokens.d.ts.map +1 -0
  88. package/dist/esm/mcp-server/tools/llmEvalsMeasureSuiteTokens.js +28 -0
  89. package/dist/esm/mcp-server/tools/llmEvalsMeasureSuiteTokens.js.map +1 -0
  90. package/dist/esm/models/components/declaration.d.ts +3 -12
  91. package/dist/esm/models/components/declaration.d.ts.map +1 -1
  92. package/dist/esm/models/components/declaration.js.map +1 -1
  93. package/dist/esm/models/components/evalsampleobject.d.ts +5 -0
  94. package/dist/esm/models/components/evalsampleobject.d.ts.map +1 -1
  95. package/dist/esm/models/components/evalsampleobject.js +4 -0
  96. package/dist/esm/models/components/evalsampleobject.js.map +1 -1
  97. package/dist/esm/models/components/evalsuitetokenmeasurement.d.ts +34 -0
  98. package/dist/esm/models/components/evalsuitetokenmeasurement.d.ts.map +1 -0
  99. package/dist/esm/models/components/evalsuitetokenmeasurement.js +43 -0
  100. package/dist/esm/models/components/evalsuitetokenmeasurement.js.map +1 -0
  101. package/dist/esm/models/components/generation.d.ts +3 -4
  102. package/dist/esm/models/components/generation.d.ts.map +1 -1
  103. package/dist/esm/models/components/generation.js.map +1 -1
  104. package/dist/esm/models/components/generationcreated.d.ts +3 -4
  105. package/dist/esm/models/components/generationcreated.d.ts.map +1 -1
  106. package/dist/esm/models/components/generationcreated.js.map +1 -1
  107. package/dist/esm/models/components/generatordetail.d.ts +3 -4
  108. package/dist/esm/models/components/generatordetail.d.ts.map +1 -1
  109. package/dist/esm/models/components/generatordetail.js.map +1 -1
  110. package/dist/esm/models/components/index.d.ts +2 -0
  111. package/dist/esm/models/components/index.d.ts.map +1 -1
  112. package/dist/esm/models/components/index.js +2 -0
  113. package/dist/esm/models/components/index.js.map +1 -1
  114. package/dist/esm/models/components/limits.d.ts +10 -6
  115. package/dist/esm/models/components/limits.d.ts.map +1 -1
  116. package/dist/esm/models/components/limits.js +2 -2
  117. package/dist/esm/models/components/limits.js.map +1 -1
  118. package/dist/esm/models/components/limitsrequest.d.ts +5 -0
  119. package/dist/esm/models/components/limitsrequest.d.ts.map +1 -1
  120. package/dist/esm/models/components/limitsrequest.js.map +1 -1
  121. package/dist/esm/models/components/measureevalsuitetokensbody.d.ts +20 -0
  122. package/dist/esm/models/components/measureevalsuitetokensbody.d.ts.map +1 -0
  123. package/dist/esm/models/components/measureevalsuitetokensbody.js +20 -0
  124. package/dist/esm/models/components/measureevalsuitetokensbody.js.map +1 -0
  125. package/dist/esm/models/components/quoteresponse.d.ts +3 -4
  126. package/dist/esm/models/components/quoteresponse.d.ts.map +1 -1
  127. package/dist/esm/models/components/quoteresponse.js.map +1 -1
  128. package/dist/esm/models/operations/index.d.ts +1 -0
  129. package/dist/esm/models/operations/index.d.ts.map +1 -1
  130. package/dist/esm/models/operations/index.js +1 -0
  131. package/dist/esm/models/operations/index.js.map +1 -1
  132. package/dist/esm/models/operations/measureevalsuitetokens.d.ts +25 -0
  133. package/dist/esm/models/operations/measureevalsuitetokens.d.ts.map +1 -0
  134. package/dist/esm/models/operations/measureevalsuitetokens.js +38 -0
  135. package/dist/esm/models/operations/measureevalsuitetokens.js.map +1 -0
  136. package/dist/esm/react-query/index.d.ts +1 -0
  137. package/dist/esm/react-query/index.d.ts.map +1 -1
  138. package/dist/esm/react-query/index.js +1 -0
  139. package/dist/esm/react-query/index.js.map +1 -1
  140. package/dist/esm/react-query/llmEvalsMeasureSuiteTokens.d.ts +29 -0
  141. package/dist/esm/react-query/llmEvalsMeasureSuiteTokens.d.ts.map +1 -0
  142. package/dist/esm/react-query/llmEvalsMeasureSuiteTokens.js +42 -0
  143. package/dist/esm/react-query/llmEvalsMeasureSuiteTokens.js.map +1 -0
  144. package/dist/esm/sdk/evals.d.ts +7 -0
  145. package/dist/esm/sdk/evals.d.ts.map +1 -1
  146. package/dist/esm/sdk/evals.js +10 -0
  147. package/dist/esm/sdk/evals.js.map +1 -1
  148. package/jsr.json +1 -1
  149. package/package.json +1 -1
  150. package/src/funcs/llmEvalsMeasureSuiteTokens.ts +191 -0
  151. package/src/lib/config.ts +2 -2
  152. package/src/mcp-server/mcp-server.ts +1 -1
  153. package/src/mcp-server/server.ts +3 -1
  154. package/src/mcp-server/tools/llmEvalsMeasureSuiteTokens.ts +37 -0
  155. package/src/models/components/declaration.ts +3 -12
  156. package/src/models/components/evalsampleobject.ts +9 -0
  157. package/src/models/components/evalsuitetokenmeasurement.ts +91 -0
  158. package/src/models/components/generation.ts +3 -4
  159. package/src/models/components/generationcreated.ts +3 -4
  160. package/src/models/components/generatordetail.ts +3 -4
  161. package/src/models/components/index.ts +2 -0
  162. package/src/models/components/limits.ts +12 -8
  163. package/src/models/components/limitsrequest.ts +5 -0
  164. package/src/models/components/measureevalsuitetokensbody.ts +54 -0
  165. package/src/models/components/quoteresponse.ts +3 -4
  166. package/src/models/operations/index.ts +1 -0
  167. package/src/models/operations/measureevalsuitetokens.ts +80 -0
  168. package/src/react-query/index.ts +1 -0
  169. package/src/react-query/llmEvalsMeasureSuiteTokens.ts +110 -0
  170. package/src/sdk/evals.ts +18 -0
@@ -0,0 +1,80 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { remap as remap$ } from "../../lib/primitives.js";
7
+ import { safeParse } from "../../lib/schemas.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import * as components from "../components/index.js";
10
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
11
+
12
+ export type MeasureEvalSuiteTokensRequest = {
13
+ suiteId: string;
14
+ /**
15
+ * Optional external end-user identifier forwarded by the API gateway.
16
+ */
17
+ xOnBehalfOf?: string | undefined;
18
+ measureEvalSuiteTokensBody: components.MeasureEvalSuiteTokensBody;
19
+ };
20
+
21
+ /** @internal */
22
+ export const MeasureEvalSuiteTokensRequest$inboundSchema: z.ZodType<
23
+ MeasureEvalSuiteTokensRequest,
24
+ z.ZodTypeDef,
25
+ unknown
26
+ > = z.object({
27
+ suite_id: z.string(),
28
+ "X-On-Behalf-Of": z.string().optional(),
29
+ MeasureEvalSuiteTokensBody:
30
+ components.MeasureEvalSuiteTokensBody$inboundSchema,
31
+ }).transform((v) => {
32
+ return remap$(v, {
33
+ "suite_id": "suiteId",
34
+ "X-On-Behalf-Of": "xOnBehalfOf",
35
+ "MeasureEvalSuiteTokensBody": "measureEvalSuiteTokensBody",
36
+ });
37
+ });
38
+ /** @internal */
39
+ export type MeasureEvalSuiteTokensRequest$Outbound = {
40
+ suite_id: string;
41
+ "X-On-Behalf-Of"?: string | undefined;
42
+ MeasureEvalSuiteTokensBody: components.MeasureEvalSuiteTokensBody$Outbound;
43
+ };
44
+
45
+ /** @internal */
46
+ export const MeasureEvalSuiteTokensRequest$outboundSchema: z.ZodType<
47
+ MeasureEvalSuiteTokensRequest$Outbound,
48
+ z.ZodTypeDef,
49
+ MeasureEvalSuiteTokensRequest
50
+ > = z.object({
51
+ suiteId: z.string(),
52
+ xOnBehalfOf: z.string().optional(),
53
+ measureEvalSuiteTokensBody:
54
+ components.MeasureEvalSuiteTokensBody$outboundSchema,
55
+ }).transform((v) => {
56
+ return remap$(v, {
57
+ suiteId: "suite_id",
58
+ xOnBehalfOf: "X-On-Behalf-Of",
59
+ measureEvalSuiteTokensBody: "MeasureEvalSuiteTokensBody",
60
+ });
61
+ });
62
+
63
+ export function measureEvalSuiteTokensRequestToJSON(
64
+ measureEvalSuiteTokensRequest: MeasureEvalSuiteTokensRequest,
65
+ ): string {
66
+ return JSON.stringify(
67
+ MeasureEvalSuiteTokensRequest$outboundSchema.parse(
68
+ measureEvalSuiteTokensRequest,
69
+ ),
70
+ );
71
+ }
72
+ export function measureEvalSuiteTokensRequestFromJSON(
73
+ jsonString: string,
74
+ ): SafeParseResult<MeasureEvalSuiteTokensRequest, SDKValidationError> {
75
+ return safeParse(
76
+ jsonString,
77
+ (x) => MeasureEvalSuiteTokensRequest$inboundSchema.parse(JSON.parse(x)),
78
+ `Failed to parse 'MeasureEvalSuiteTokensRequest' from JSON`,
79
+ );
80
+ }
@@ -245,6 +245,7 @@ export * from "./llmEvalsListSchedules.js";
245
245
  export * from "./llmEvalsListSuiteLeaderboardRuns.js";
246
246
  export * from "./llmEvalsListSuites.js";
247
247
  export * from "./llmEvalsListSuiteVersions.js";
248
+ export * from "./llmEvalsMeasureSuiteTokens.js";
248
249
  export * from "./llmEvalsRerunFailedSamples.js";
249
250
  export * from "./llmEvalsRetryFailedRun.js";
250
251
  export * from "./llmEvalsTriggerSchedule.js";
@@ -0,0 +1,110 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import {
6
+ MutationKey,
7
+ useMutation,
8
+ UseMutationResult,
9
+ } from "@tanstack/react-query";
10
+ import { SDKCore } from "../core.js";
11
+ import { llmEvalsMeasureSuiteTokens } from "../funcs/llmEvalsMeasureSuiteTokens.js";
12
+ import { combineSignals } from "../lib/primitives.js";
13
+ import { RequestOptions } from "../lib/sdks.js";
14
+ import * as components from "../models/components/index.js";
15
+ import {
16
+ ConnectionError,
17
+ InvalidRequestError,
18
+ RequestAbortedError,
19
+ RequestTimeoutError,
20
+ UnexpectedClientError,
21
+ } from "../models/errors/httpclienterrors.js";
22
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
23
+ import { SDKError } from "../models/errors/sdkerror.js";
24
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
25
+ import * as operations from "../models/operations/index.js";
26
+ import { unwrapAsync } from "../types/fp.js";
27
+ import { useSDKContext } from "./_context.js";
28
+ import { MutationHookOptions } from "./_types.js";
29
+
30
+ export type LlmEvalsMeasureSuiteTokensMutationVariables = {
31
+ request: operations.MeasureEvalSuiteTokensRequest;
32
+ options?: RequestOptions;
33
+ };
34
+
35
+ export type LlmEvalsMeasureSuiteTokensMutationData =
36
+ components.EvalSuiteTokenMeasurement;
37
+
38
+ export type LlmEvalsMeasureSuiteTokensMutationError =
39
+ | SDKError
40
+ | ResponseValidationError
41
+ | ConnectionError
42
+ | RequestAbortedError
43
+ | RequestTimeoutError
44
+ | InvalidRequestError
45
+ | UnexpectedClientError
46
+ | SDKValidationError;
47
+
48
+ /**
49
+ * Count tokens from stored text for a suite's unmeasured samples
50
+ *
51
+ * @remarks
52
+ * Backfill for rows written before the gateway recorded usage. For samples of the suite's completed runs that have answer or reasoning text but no token figure, counts prompt, reasoning and answer tokens from the stored text (tiktoken o200k_base, one ruler for every model), marks them `tokens_estimated`, and refreshes each run's per-task `tokens` and run totals so the leaderboard's efficiency figures appear. Processes `limit` runs per call, oldest run id first; call again until `remaining_runs` is 0. Samples the provider or the import already measured are left alone, and a sample with no text stays unmeasured. New rows get the same figures at generation or import time, so this is a no-op on a suite with nothing to measure.
53
+ */
54
+ export function useLlmEvalsMeasureSuiteTokensMutation(
55
+ options?: MutationHookOptions<
56
+ LlmEvalsMeasureSuiteTokensMutationData,
57
+ LlmEvalsMeasureSuiteTokensMutationError,
58
+ LlmEvalsMeasureSuiteTokensMutationVariables
59
+ >,
60
+ ): UseMutationResult<
61
+ LlmEvalsMeasureSuiteTokensMutationData,
62
+ LlmEvalsMeasureSuiteTokensMutationError,
63
+ LlmEvalsMeasureSuiteTokensMutationVariables
64
+ > {
65
+ const client = useSDKContext();
66
+ return useMutation({
67
+ ...buildLlmEvalsMeasureSuiteTokensMutation(client, options),
68
+ ...options,
69
+ });
70
+ }
71
+
72
+ export function mutationKeyLlmEvalsMeasureSuiteTokens(): MutationKey {
73
+ return ["@meetkai/mka1", "evals", "measureSuiteTokens"];
74
+ }
75
+
76
+ export function buildLlmEvalsMeasureSuiteTokensMutation(
77
+ client$: SDKCore,
78
+ hookOptions?: RequestOptions,
79
+ ): {
80
+ mutationKey: MutationKey;
81
+ mutationFn: (
82
+ variables: LlmEvalsMeasureSuiteTokensMutationVariables,
83
+ ) => Promise<LlmEvalsMeasureSuiteTokensMutationData>;
84
+ } {
85
+ return {
86
+ mutationKey: mutationKeyLlmEvalsMeasureSuiteTokens(),
87
+ mutationFn: function llmEvalsMeasureSuiteTokensMutationFn({
88
+ request,
89
+ options,
90
+ }): Promise<LlmEvalsMeasureSuiteTokensMutationData> {
91
+ const mergedOptions = {
92
+ ...hookOptions,
93
+ ...options,
94
+ fetchOptions: {
95
+ ...hookOptions?.fetchOptions,
96
+ ...options?.fetchOptions,
97
+ signal: combineSignals(
98
+ hookOptions?.fetchOptions?.signal,
99
+ options?.fetchOptions?.signal,
100
+ ),
101
+ },
102
+ };
103
+ return unwrapAsync(llmEvalsMeasureSuiteTokens(
104
+ client$,
105
+ request,
106
+ mergedOptions,
107
+ ));
108
+ },
109
+ };
110
+ }
package/src/sdk/evals.ts CHANGED
@@ -29,6 +29,7 @@ import { llmEvalsListSchedules } from "../funcs/llmEvalsListSchedules.js";
29
29
  import { llmEvalsListSuiteLeaderboardRuns } from "../funcs/llmEvalsListSuiteLeaderboardRuns.js";
30
30
  import { llmEvalsListSuites } from "../funcs/llmEvalsListSuites.js";
31
31
  import { llmEvalsListSuiteVersions } from "../funcs/llmEvalsListSuiteVersions.js";
32
+ import { llmEvalsMeasureSuiteTokens } from "../funcs/llmEvalsMeasureSuiteTokens.js";
32
33
  import { llmEvalsRerunFailedSamples } from "../funcs/llmEvalsRerunFailedSamples.js";
33
34
  import { llmEvalsRetryFailedRun } from "../funcs/llmEvalsRetryFailedRun.js";
34
35
  import { llmEvalsTriggerSchedule } from "../funcs/llmEvalsTriggerSchedule.js";
@@ -193,6 +194,23 @@ export class Evals extends ClientSDK {
193
194
  ));
194
195
  }
195
196
 
197
+ /**
198
+ * Count tokens from stored text for a suite's unmeasured samples
199
+ *
200
+ * @remarks
201
+ * Backfill for rows written before the gateway recorded usage. For samples of the suite's completed runs that have answer or reasoning text but no token figure, counts prompt, reasoning and answer tokens from the stored text (tiktoken o200k_base, one ruler for every model), marks them `tokens_estimated`, and refreshes each run's per-task `tokens` and run totals so the leaderboard's efficiency figures appear. Processes `limit` runs per call, oldest run id first; call again until `remaining_runs` is 0. Samples the provider or the import already measured are left alone, and a sample with no text stays unmeasured. New rows get the same figures at generation or import time, so this is a no-op on a suite with nothing to measure.
202
+ */
203
+ async measureSuiteTokens(
204
+ request: operations.MeasureEvalSuiteTokensRequest,
205
+ options?: RequestOptions,
206
+ ): Promise<components.EvalSuiteTokenMeasurement> {
207
+ return unwrapAsync(llmEvalsMeasureSuiteTokens(
208
+ this,
209
+ request,
210
+ options,
211
+ ));
212
+ }
213
+
196
214
  /**
197
215
  * Create an eval run
198
216
  *