@lokalise/ragnarok-api-contracts 4.0.3 → 5.0.0
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/dist/evaluation-contracts.d.ts +117 -36
- package/dist/evaluation-contracts.js +7 -8
- package/dist/evaluation-contracts.js.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/objects.d.ts +454 -69
- package/dist/objects.js +124 -29
- package/dist/objects.js.map +1 -1
- package/package.json +5 -5
- package/dist/evaluation-contracts-v2.d.ts +0 -249
- package/dist/evaluation-contracts-v2.js +0 -33
- package/dist/evaluation-contracts-v2.js.map +0 -1
- package/dist/objects-v2.d.ts +0 -598
- package/dist/objects-v2.js +0 -144
- package/dist/objects-v2.js.map +0 -1
package/dist/objects.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { COMMON_ERROR_RESPONSE_SCHEMA } from '@lokalise/api-common';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Per-item metrics: flat per-metric scores for a single translated segment. BLEU is excluded — it is
|
|
5
|
+
* a corpus-level metric and not meaningful for individual sentence pairs.
|
|
6
|
+
*/
|
|
7
|
+
export const ITEM_METRICS_SCHEMA = z.object({
|
|
7
8
|
exactMatch: z
|
|
8
9
|
.number()
|
|
9
10
|
.optional()
|
|
@@ -12,24 +13,11 @@ export const METRICS_SCHEMA = z.object({
|
|
|
12
13
|
.number()
|
|
13
14
|
.optional()
|
|
14
15
|
.describe('TER score measuring post-editing effort relative to reference length'),
|
|
15
|
-
bleu: z
|
|
16
|
-
.number()
|
|
17
|
-
.optional()
|
|
18
|
-
.describe('BLEU score measuring n-gram overlap with reference translations'),
|
|
19
|
-
meteor: z
|
|
20
|
-
.number()
|
|
21
|
-
.optional()
|
|
22
|
-
.describe('METEOR score measuring n-gram overlap with synonym and morphological variant support'),
|
|
23
16
|
chrf: z
|
|
24
17
|
.number()
|
|
25
18
|
.optional()
|
|
26
19
|
.describe('chrF score measuring character n-gram overlap with reference translations'),
|
|
27
20
|
});
|
|
28
|
-
/**
|
|
29
|
-
* Per-item metrics: same as corpus-level Metrics but excludes BLEU,
|
|
30
|
-
* which is not meaningful for individual sentence pairs.
|
|
31
|
-
*/
|
|
32
|
-
export const ITEM_METRICS_SCHEMA = METRICS_SCHEMA.omit({ bleu: true });
|
|
33
21
|
const METRIC_DIRECTION_SCHEMA = z.object({
|
|
34
22
|
betterWhen: z
|
|
35
23
|
.enum(['higher', 'lower'])
|
|
@@ -40,7 +28,6 @@ export const METRICS_METADATA_SCHEMA = z
|
|
|
40
28
|
exactMatch: METRIC_DIRECTION_SCHEMA,
|
|
41
29
|
ter: METRIC_DIRECTION_SCHEMA,
|
|
42
30
|
bleu: METRIC_DIRECTION_SCHEMA,
|
|
43
|
-
meteor: METRIC_DIRECTION_SCHEMA,
|
|
44
31
|
chrf: METRIC_DIRECTION_SCHEMA,
|
|
45
32
|
})
|
|
46
33
|
.describe('Metadata about each metric, indicating whether a higher or lower value is better');
|
|
@@ -48,16 +35,8 @@ export const METRICS_METADATA = {
|
|
|
48
35
|
exactMatch: { betterWhen: 'higher' },
|
|
49
36
|
ter: { betterWhen: 'lower' },
|
|
50
37
|
bleu: { betterWhen: 'higher' },
|
|
51
|
-
meteor: { betterWhen: 'higher' },
|
|
52
38
|
chrf: { betterWhen: 'higher' },
|
|
53
39
|
};
|
|
54
|
-
export const LOCALE_PAIR_RESULT_SCHEMA = z
|
|
55
|
-
.object({
|
|
56
|
-
sourceLocale: z.string().describe('Source language locale'),
|
|
57
|
-
targetLocale: z.string().describe('Target language locale'),
|
|
58
|
-
metrics: METRICS_SCHEMA.describe('Metrics for this locale pair'),
|
|
59
|
-
})
|
|
60
|
-
.describe('Evaluation metrics for a single locale pair');
|
|
61
40
|
// === Evaluation Items Detail Schemas ===
|
|
62
41
|
export const TRANSLATION_EXAMPLE_SCHEMA = z.object({
|
|
63
42
|
sourceValue: z.string().describe('Source text of the example'),
|
|
@@ -88,12 +67,128 @@ export const EVALUATION_ITEM_DETAIL_SCHEMA = z.object({
|
|
|
88
67
|
.array(ITEM_TRANSLATION_BY_CONFIG_SCHEMA)
|
|
89
68
|
.describe('Translation results per run configuration'),
|
|
90
69
|
});
|
|
91
|
-
// === Aggregated
|
|
70
|
+
// === Aggregated (corpus) result schemas ===
|
|
71
|
+
//
|
|
72
|
+
// Every metric carries coverage and reliability metadata so consumers can distinguish a perfect
|
|
73
|
+
// score from one computed on a degraded segment set, and can tell an unsupported locale pair apart
|
|
74
|
+
// from an integration outage.
|
|
75
|
+
/**
|
|
76
|
+
* Reliability classification of a single computed metric:
|
|
77
|
+
* - `perfect` — computed over the full comparable segment set (`computedSegments === comparableSegments`).
|
|
78
|
+
* - `degraded` — some segments were excluded, but the surviving set still meets the reliability threshold.
|
|
79
|
+
* - `failed` — too few comparable segments to be trustworthy (below the reliability threshold).
|
|
80
|
+
*/
|
|
81
|
+
export const METRIC_STATUS_SCHEMA = z
|
|
82
|
+
.enum(['perfect', 'degraded', 'failed'])
|
|
83
|
+
.describe('Reliability classification of the computed metric');
|
|
84
|
+
/**
|
|
85
|
+
* A single metric value paired with the coverage it was computed over and a reliability status.
|
|
86
|
+
*/
|
|
87
|
+
export const METRIC_RESULT_SCHEMA = z.object({
|
|
88
|
+
value: z.number().describe('The computed metric value'),
|
|
89
|
+
computedSegments: z
|
|
90
|
+
.number()
|
|
91
|
+
.int()
|
|
92
|
+
.min(0)
|
|
93
|
+
.describe('Number of segments that successfully contributed to this metric'),
|
|
94
|
+
comparableSegments: z
|
|
95
|
+
.number()
|
|
96
|
+
.int()
|
|
97
|
+
.min(0)
|
|
98
|
+
.describe('Number of segments in the comparable set for this metric after cross-configuration exclusion. ' +
|
|
99
|
+
'`computedSegments` is measured against this denominator to derive `status`.'),
|
|
100
|
+
status: METRIC_STATUS_SCHEMA,
|
|
101
|
+
});
|
|
102
|
+
/**
|
|
103
|
+
* Per-locale-pair metrics. Each metric is optional (a metric is omitted when it does not apply,
|
|
104
|
+
* e.g. BLEU for a pair with no corpus-level computation). The whole object is `null` on the
|
|
105
|
+
* locale-pair result when no metrics could be produced (see `LOCALE_PAIR_RESULT_SCHEMA`).
|
|
106
|
+
*/
|
|
107
|
+
export const METRICS_SCHEMA = z
|
|
108
|
+
.object({
|
|
109
|
+
exactMatch: METRIC_RESULT_SCHEMA.optional().describe('Rate of translations that exactly match the reference (0–1)'),
|
|
110
|
+
ter: METRIC_RESULT_SCHEMA.optional().describe('TER score measuring post-editing effort relative to reference length'),
|
|
111
|
+
bleu: METRIC_RESULT_SCHEMA.optional().describe('BLEU score measuring n-gram overlap with reference translations'),
|
|
112
|
+
chrf: METRIC_RESULT_SCHEMA.optional().describe('chrF score measuring character n-gram overlap with reference translations'),
|
|
113
|
+
})
|
|
114
|
+
.describe('Metrics for a single locale pair, each annotated with coverage and reliability');
|
|
115
|
+
/**
|
|
116
|
+
* Outcome of translating a locale pair within a run configuration:
|
|
117
|
+
* - `success` — all in-scope segments translated.
|
|
118
|
+
* - `partial_success` — some segments translated, some failed (metrics computed on the survivors).
|
|
119
|
+
* - `unsupported_locale_pair` — the integration does not support this pair; metrics are `null`. Does
|
|
120
|
+
* NOT cause cross-configuration exclusion (other configs are unaffected).
|
|
121
|
+
* - `integration_failure` — the integration failed to translate the pair (e.g. provider outage);
|
|
122
|
+
* metrics are `null` and the pair is excluded from all configs' comparable sets.
|
|
123
|
+
*/
|
|
124
|
+
export const TRANSLATION_STATUS_SCHEMA = z
|
|
125
|
+
.enum(['success', 'partial_success', 'unsupported_locale_pair', 'integration_failure'])
|
|
126
|
+
.describe('Translation outcome for this locale pair');
|
|
127
|
+
export const LOCALE_PAIR_RESULT_SCHEMA = z
|
|
128
|
+
.object({
|
|
129
|
+
sourceLocale: z.string().describe('Source language locale'),
|
|
130
|
+
targetLocale: z.string().describe('Target language locale'),
|
|
131
|
+
totalSegments: z
|
|
132
|
+
.number()
|
|
133
|
+
.int()
|
|
134
|
+
.min(0)
|
|
135
|
+
.describe('Total number of segments in scope for this locale pair'),
|
|
136
|
+
translatedSegments: z
|
|
137
|
+
.number()
|
|
138
|
+
.int()
|
|
139
|
+
.min(0)
|
|
140
|
+
.describe('Number of segments that were successfully translated'),
|
|
141
|
+
translationStatus: TRANSLATION_STATUS_SCHEMA,
|
|
142
|
+
metrics: METRICS_SCHEMA.nullable().describe('Metrics for this locale pair, or `null` when no metrics could be computed ' +
|
|
143
|
+
'(`unsupported_locale_pair` or `integration_failure`).'),
|
|
144
|
+
})
|
|
145
|
+
.describe('Evaluation metrics for a single locale pair, with coverage and translation outcome');
|
|
146
|
+
/**
|
|
147
|
+
* A reference to a locale pair, used to list pairs excluded from a global metric aggregate.
|
|
148
|
+
* Intentionally flat (no `reason`): the per-pair `translationStatus` already carries the cause.
|
|
149
|
+
*/
|
|
150
|
+
export const LOCALE_PAIR_REF_SCHEMA = z
|
|
151
|
+
.object({
|
|
152
|
+
sourceLocale: z.string().describe('Source language locale'),
|
|
153
|
+
targetLocale: z.string().describe('Target language locale'),
|
|
154
|
+
})
|
|
155
|
+
.describe('Reference to a locale pair');
|
|
156
|
+
/**
|
|
157
|
+
* A global (cross-locale-pair) aggregate for a single metric. Weighted by comparable segments and
|
|
158
|
+
* annotated with the locale pairs that were excluded from this metric's aggregation.
|
|
159
|
+
*/
|
|
160
|
+
export const GLOBAL_METRIC_RESULT_SCHEMA = z.object({
|
|
161
|
+
value: z.number().describe('The aggregated metric value across all included locale pairs'),
|
|
162
|
+
computedSegments: z
|
|
163
|
+
.number()
|
|
164
|
+
.int()
|
|
165
|
+
.min(0)
|
|
166
|
+
.describe('Total segments that contributed to this global metric'),
|
|
167
|
+
comparableSegments: z
|
|
168
|
+
.number()
|
|
169
|
+
.int()
|
|
170
|
+
.min(0)
|
|
171
|
+
.describe('Total comparable segments across all included locale pairs for this metric'),
|
|
172
|
+
status: METRIC_STATUS_SCHEMA,
|
|
173
|
+
excludedLocalePairs: z
|
|
174
|
+
.array(LOCALE_PAIR_REF_SCHEMA)
|
|
175
|
+
.describe('Locale pairs excluded from this metric (failed or non-comparable)'),
|
|
176
|
+
});
|
|
177
|
+
export const GLOBAL_METRICS_SCHEMA = z
|
|
178
|
+
.object({
|
|
179
|
+
exactMatch: GLOBAL_METRIC_RESULT_SCHEMA.optional(),
|
|
180
|
+
ter: GLOBAL_METRIC_RESULT_SCHEMA.optional(),
|
|
181
|
+
bleu: GLOBAL_METRIC_RESULT_SCHEMA.optional(),
|
|
182
|
+
chrf: GLOBAL_METRIC_RESULT_SCHEMA.optional(),
|
|
183
|
+
})
|
|
184
|
+
.describe('Per-metric global aggregates across all locale pairs');
|
|
92
185
|
export const CONFIGURATION_RESULT_SCHEMA = z
|
|
93
186
|
.object({
|
|
94
187
|
configurationName: z.string().describe('Name of the run configuration'),
|
|
95
|
-
global:
|
|
96
|
-
resultsByLocalePair: z
|
|
188
|
+
global: GLOBAL_METRICS_SCHEMA.describe('Metrics aggregated across all locale pairs'),
|
|
189
|
+
resultsByLocalePair: z
|
|
190
|
+
.array(LOCALE_PAIR_RESULT_SCHEMA)
|
|
191
|
+
.describe('Metrics per locale pair, including failed and unsupported pairs'),
|
|
97
192
|
})
|
|
98
193
|
.describe('Evaluation metrics for a single run configuration');
|
|
99
194
|
export const EVALUATION_SCHEMA = z.object({
|
package/dist/objects.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objects.js","sourceRoot":"","sources":["../src/objects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"objects.js","sourceRoot":"","sources":["../src/objects.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lokalise/ragnarok-api-contracts",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"author": {
|
|
5
5
|
"name": "Lokalise",
|
|
6
6
|
"url": "https://lokalise.com"
|
|
@@ -28,18 +28,18 @@
|
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@biomejs/biome": "^2.
|
|
31
|
+
"@biomejs/biome": "^2.5.3",
|
|
32
32
|
"@lokalise/biome-config": "^3.1.0",
|
|
33
|
-
"@lokalise/tsconfig": "^
|
|
33
|
+
"@lokalise/tsconfig": "^5.0.0",
|
|
34
34
|
"rimraf": "^6.1.3",
|
|
35
|
-
"typescript": "
|
|
35
|
+
"typescript": "7.0.2"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"zod": "^4.4.1"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@lokalise/api-common": "^7.1.1",
|
|
42
|
-
"@lokalise/api-contracts": "^6.
|
|
42
|
+
"@lokalise/api-contracts": "^6.15.0",
|
|
43
43
|
"@lokalise/polyglot-sdk": "^24.3.1",
|
|
44
44
|
"@lokalise/supported-languages": "^3.2.0"
|
|
45
45
|
},
|
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
declare const GET_EVALUATION_V2_PARAMS_SCHEMA: z.ZodObject<{
|
|
3
|
-
evaluationId: z.ZodUUID;
|
|
4
|
-
}, z.core.$strip>;
|
|
5
|
-
export type GetEvaluationV2Params = z.infer<typeof GET_EVALUATION_V2_PARAMS_SCHEMA>;
|
|
6
|
-
export declare const getEvaluationV2Contract: {
|
|
7
|
-
readonly method: "get";
|
|
8
|
-
readonly pathResolver: ({ evaluationId }: {
|
|
9
|
-
evaluationId: string;
|
|
10
|
-
}) => string;
|
|
11
|
-
readonly description: "Retrieve evaluation by id (V2, with coverage and reliability metadata)";
|
|
12
|
-
readonly requestPathParamsSchema: z.ZodObject<{
|
|
13
|
-
evaluationId: z.ZodUUID;
|
|
14
|
-
}, z.core.$strip>;
|
|
15
|
-
readonly requestHeaderSchema: z.ZodObject<{
|
|
16
|
-
authorization: z.ZodString;
|
|
17
|
-
}, z.core.$strip>;
|
|
18
|
-
readonly responsesByStatusCode: {
|
|
19
|
-
readonly 200: z.ZodObject<{
|
|
20
|
-
id: z.ZodUUID;
|
|
21
|
-
ownerId: z.ZodString;
|
|
22
|
-
status: z.ZodEnum<{
|
|
23
|
-
completed: "completed";
|
|
24
|
-
failed: "failed";
|
|
25
|
-
pending: "pending";
|
|
26
|
-
}>;
|
|
27
|
-
metricsMetadata: z.ZodObject<{
|
|
28
|
-
exactMatch: z.ZodObject<{
|
|
29
|
-
betterWhen: z.ZodEnum<{
|
|
30
|
-
higher: "higher";
|
|
31
|
-
lower: "lower";
|
|
32
|
-
}>;
|
|
33
|
-
}, z.core.$strip>;
|
|
34
|
-
ter: z.ZodObject<{
|
|
35
|
-
betterWhen: z.ZodEnum<{
|
|
36
|
-
higher: "higher";
|
|
37
|
-
lower: "lower";
|
|
38
|
-
}>;
|
|
39
|
-
}, z.core.$strip>;
|
|
40
|
-
bleu: z.ZodObject<{
|
|
41
|
-
betterWhen: z.ZodEnum<{
|
|
42
|
-
higher: "higher";
|
|
43
|
-
lower: "lower";
|
|
44
|
-
}>;
|
|
45
|
-
}, z.core.$strip>;
|
|
46
|
-
meteor: z.ZodObject<{
|
|
47
|
-
betterWhen: z.ZodEnum<{
|
|
48
|
-
higher: "higher";
|
|
49
|
-
lower: "lower";
|
|
50
|
-
}>;
|
|
51
|
-
}, z.core.$strip>;
|
|
52
|
-
chrf: z.ZodObject<{
|
|
53
|
-
betterWhen: z.ZodEnum<{
|
|
54
|
-
higher: "higher";
|
|
55
|
-
lower: "lower";
|
|
56
|
-
}>;
|
|
57
|
-
}, z.core.$strip>;
|
|
58
|
-
}, z.core.$strip>;
|
|
59
|
-
results: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
60
|
-
configurationName: z.ZodString;
|
|
61
|
-
global: z.ZodObject<{
|
|
62
|
-
exactMatch: z.ZodOptional<z.ZodObject<{
|
|
63
|
-
value: z.ZodNumber;
|
|
64
|
-
computedSegments: z.ZodNumber;
|
|
65
|
-
comparableSegments: z.ZodNumber;
|
|
66
|
-
status: z.ZodEnum<{
|
|
67
|
-
failed: "failed";
|
|
68
|
-
perfect: "perfect";
|
|
69
|
-
degraded: "degraded";
|
|
70
|
-
}>;
|
|
71
|
-
excludedLocalePairs: z.ZodArray<z.ZodObject<{
|
|
72
|
-
sourceLocale: z.ZodString;
|
|
73
|
-
targetLocale: z.ZodString;
|
|
74
|
-
}, z.core.$strip>>;
|
|
75
|
-
}, z.core.$strip>>;
|
|
76
|
-
ter: z.ZodOptional<z.ZodObject<{
|
|
77
|
-
value: z.ZodNumber;
|
|
78
|
-
computedSegments: z.ZodNumber;
|
|
79
|
-
comparableSegments: z.ZodNumber;
|
|
80
|
-
status: z.ZodEnum<{
|
|
81
|
-
failed: "failed";
|
|
82
|
-
perfect: "perfect";
|
|
83
|
-
degraded: "degraded";
|
|
84
|
-
}>;
|
|
85
|
-
excludedLocalePairs: z.ZodArray<z.ZodObject<{
|
|
86
|
-
sourceLocale: z.ZodString;
|
|
87
|
-
targetLocale: z.ZodString;
|
|
88
|
-
}, z.core.$strip>>;
|
|
89
|
-
}, z.core.$strip>>;
|
|
90
|
-
bleu: z.ZodOptional<z.ZodObject<{
|
|
91
|
-
value: z.ZodNumber;
|
|
92
|
-
computedSegments: z.ZodNumber;
|
|
93
|
-
comparableSegments: z.ZodNumber;
|
|
94
|
-
status: z.ZodEnum<{
|
|
95
|
-
failed: "failed";
|
|
96
|
-
perfect: "perfect";
|
|
97
|
-
degraded: "degraded";
|
|
98
|
-
}>;
|
|
99
|
-
excludedLocalePairs: z.ZodArray<z.ZodObject<{
|
|
100
|
-
sourceLocale: z.ZodString;
|
|
101
|
-
targetLocale: z.ZodString;
|
|
102
|
-
}, z.core.$strip>>;
|
|
103
|
-
}, z.core.$strip>>;
|
|
104
|
-
meteor: z.ZodOptional<z.ZodObject<{
|
|
105
|
-
value: z.ZodNumber;
|
|
106
|
-
computedSegments: z.ZodNumber;
|
|
107
|
-
comparableSegments: z.ZodNumber;
|
|
108
|
-
status: z.ZodEnum<{
|
|
109
|
-
failed: "failed";
|
|
110
|
-
perfect: "perfect";
|
|
111
|
-
degraded: "degraded";
|
|
112
|
-
}>;
|
|
113
|
-
excludedLocalePairs: z.ZodArray<z.ZodObject<{
|
|
114
|
-
sourceLocale: z.ZodString;
|
|
115
|
-
targetLocale: z.ZodString;
|
|
116
|
-
}, z.core.$strip>>;
|
|
117
|
-
}, z.core.$strip>>;
|
|
118
|
-
chrf: z.ZodOptional<z.ZodObject<{
|
|
119
|
-
value: z.ZodNumber;
|
|
120
|
-
computedSegments: z.ZodNumber;
|
|
121
|
-
comparableSegments: z.ZodNumber;
|
|
122
|
-
status: z.ZodEnum<{
|
|
123
|
-
failed: "failed";
|
|
124
|
-
perfect: "perfect";
|
|
125
|
-
degraded: "degraded";
|
|
126
|
-
}>;
|
|
127
|
-
excludedLocalePairs: z.ZodArray<z.ZodObject<{
|
|
128
|
-
sourceLocale: z.ZodString;
|
|
129
|
-
targetLocale: z.ZodString;
|
|
130
|
-
}, z.core.$strip>>;
|
|
131
|
-
}, z.core.$strip>>;
|
|
132
|
-
}, z.core.$strip>;
|
|
133
|
-
resultsByLocalePair: z.ZodArray<z.ZodObject<{
|
|
134
|
-
sourceLocale: z.ZodString;
|
|
135
|
-
targetLocale: z.ZodString;
|
|
136
|
-
totalSegments: z.ZodNumber;
|
|
137
|
-
translatedSegments: z.ZodNumber;
|
|
138
|
-
translationStatus: z.ZodEnum<{
|
|
139
|
-
success: "success";
|
|
140
|
-
partial_success: "partial_success";
|
|
141
|
-
unsupported_locale_pair: "unsupported_locale_pair";
|
|
142
|
-
integration_failure: "integration_failure";
|
|
143
|
-
}>;
|
|
144
|
-
metrics: z.ZodNullable<z.ZodObject<{
|
|
145
|
-
exactMatch: z.ZodOptional<z.ZodObject<{
|
|
146
|
-
value: z.ZodNumber;
|
|
147
|
-
computedSegments: z.ZodNumber;
|
|
148
|
-
comparableSegments: z.ZodNumber;
|
|
149
|
-
status: z.ZodEnum<{
|
|
150
|
-
failed: "failed";
|
|
151
|
-
perfect: "perfect";
|
|
152
|
-
degraded: "degraded";
|
|
153
|
-
}>;
|
|
154
|
-
}, z.core.$strip>>;
|
|
155
|
-
ter: z.ZodOptional<z.ZodObject<{
|
|
156
|
-
value: z.ZodNumber;
|
|
157
|
-
computedSegments: z.ZodNumber;
|
|
158
|
-
comparableSegments: z.ZodNumber;
|
|
159
|
-
status: z.ZodEnum<{
|
|
160
|
-
failed: "failed";
|
|
161
|
-
perfect: "perfect";
|
|
162
|
-
degraded: "degraded";
|
|
163
|
-
}>;
|
|
164
|
-
}, z.core.$strip>>;
|
|
165
|
-
bleu: z.ZodOptional<z.ZodObject<{
|
|
166
|
-
value: z.ZodNumber;
|
|
167
|
-
computedSegments: z.ZodNumber;
|
|
168
|
-
comparableSegments: z.ZodNumber;
|
|
169
|
-
status: z.ZodEnum<{
|
|
170
|
-
failed: "failed";
|
|
171
|
-
perfect: "perfect";
|
|
172
|
-
degraded: "degraded";
|
|
173
|
-
}>;
|
|
174
|
-
}, z.core.$strip>>;
|
|
175
|
-
meteor: z.ZodOptional<z.ZodObject<{
|
|
176
|
-
value: z.ZodNumber;
|
|
177
|
-
computedSegments: z.ZodNumber;
|
|
178
|
-
comparableSegments: z.ZodNumber;
|
|
179
|
-
status: z.ZodEnum<{
|
|
180
|
-
failed: "failed";
|
|
181
|
-
perfect: "perfect";
|
|
182
|
-
degraded: "degraded";
|
|
183
|
-
}>;
|
|
184
|
-
}, z.core.$strip>>;
|
|
185
|
-
chrf: z.ZodOptional<z.ZodObject<{
|
|
186
|
-
value: z.ZodNumber;
|
|
187
|
-
computedSegments: z.ZodNumber;
|
|
188
|
-
comparableSegments: z.ZodNumber;
|
|
189
|
-
status: z.ZodEnum<{
|
|
190
|
-
failed: "failed";
|
|
191
|
-
perfect: "perfect";
|
|
192
|
-
degraded: "degraded";
|
|
193
|
-
}>;
|
|
194
|
-
}, z.core.$strip>>;
|
|
195
|
-
}, z.core.$strip>>;
|
|
196
|
-
}, z.core.$strip>>;
|
|
197
|
-
}, z.core.$strip>>>;
|
|
198
|
-
metadata: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
199
|
-
}, z.core.$strip>;
|
|
200
|
-
};
|
|
201
|
-
};
|
|
202
|
-
/**
|
|
203
|
-
* V2 scheduling shares the V1 request body; the version only changes the shape of the results
|
|
204
|
-
* delivered by the `evaluation.completed` webhook and returned by `GET /v2/evaluations/{id}`.
|
|
205
|
-
*/
|
|
206
|
-
export declare const postScheduleEvaluationV2Contract: {
|
|
207
|
-
readonly method: "post";
|
|
208
|
-
readonly pathResolver: () => string;
|
|
209
|
-
readonly description: "Schedule evaluation (V2 result shape)";
|
|
210
|
-
readonly requestHeaderSchema: z.ZodObject<{
|
|
211
|
-
authorization: z.ZodString;
|
|
212
|
-
'idempotency-key': z.ZodOptional<z.ZodString>;
|
|
213
|
-
}, z.core.$strip>;
|
|
214
|
-
readonly requestBodySchema: z.ZodObject<{
|
|
215
|
-
ownerId: z.ZodString;
|
|
216
|
-
datasets: z.ZodArray<z.ZodObject<{
|
|
217
|
-
fileUrl: z.ZodURL;
|
|
218
|
-
}, z.core.$strip>>;
|
|
219
|
-
webhook: z.ZodObject<{
|
|
220
|
-
url: z.ZodURL;
|
|
221
|
-
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
222
|
-
}, z.core.$strip>;
|
|
223
|
-
runConfigurations: z.ZodArray<z.ZodObject<{
|
|
224
|
-
name: z.ZodString;
|
|
225
|
-
integration: z.ZodOptional<z.ZodObject<{
|
|
226
|
-
engine: z.ZodOptional<z.ZodEnum<{
|
|
227
|
-
readonly CLAUDE: "Claude";
|
|
228
|
-
readonly CLAUDE_BEDROCK: "Claude-Bedrock";
|
|
229
|
-
readonly GPT: "GPT";
|
|
230
|
-
readonly GEMINI: "Gemini";
|
|
231
|
-
readonly DEEPL: "DeepL";
|
|
232
|
-
readonly GOOGLE_TRANSLATE: "GoogleTranslate";
|
|
233
|
-
}>>;
|
|
234
|
-
isForced: z.ZodDefault<z.ZodBoolean>;
|
|
235
|
-
}, z.core.$strip>>;
|
|
236
|
-
useExamples: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
237
|
-
useStyleguide: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
238
|
-
useGlossary: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
239
|
-
useDescriptions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
240
|
-
}, z.core.$strip>>;
|
|
241
|
-
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
242
|
-
}, z.core.$strip>;
|
|
243
|
-
readonly responsesByStatusCode: {
|
|
244
|
-
readonly 202: z.ZodObject<{
|
|
245
|
-
evaluationId: z.ZodUUID;
|
|
246
|
-
}, z.core.$strip>;
|
|
247
|
-
};
|
|
248
|
-
};
|
|
249
|
-
export {};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { defineApiContract } from '@lokalise/api-contracts';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import { AUTH_HEADERS } from "./common.js";
|
|
4
|
-
import { SCHEDULE_EVALUATION_BODY_SCHEMA, SCHEDULE_EVALUATION_HEADERS, SCHEDULE_EVALUATION_RESPONSE_SCHEMA, } from "./evaluation-contracts.js";
|
|
5
|
-
import { EVALUATION_V2_SCHEMA } from "./objects-v2.js";
|
|
6
|
-
const GET_EVALUATION_V2_PARAMS_SCHEMA = z.object({
|
|
7
|
-
evaluationId: z.uuid().describe('The unique identifier of the evaluation to retrieve.'),
|
|
8
|
-
});
|
|
9
|
-
export const getEvaluationV2Contract = defineApiContract({
|
|
10
|
-
method: 'get',
|
|
11
|
-
pathResolver: ({ evaluationId }) => `/v2/evaluations/${evaluationId}`,
|
|
12
|
-
description: 'Retrieve evaluation by id (V2, with coverage and reliability metadata)',
|
|
13
|
-
requestPathParamsSchema: GET_EVALUATION_V2_PARAMS_SCHEMA,
|
|
14
|
-
requestHeaderSchema: AUTH_HEADERS,
|
|
15
|
-
responsesByStatusCode: {
|
|
16
|
-
200: EVALUATION_V2_SCHEMA,
|
|
17
|
-
},
|
|
18
|
-
});
|
|
19
|
-
/**
|
|
20
|
-
* V2 scheduling shares the V1 request body; the version only changes the shape of the results
|
|
21
|
-
* delivered by the `evaluation.completed` webhook and returned by `GET /v2/evaluations/{id}`.
|
|
22
|
-
*/
|
|
23
|
-
export const postScheduleEvaluationV2Contract = defineApiContract({
|
|
24
|
-
method: 'post',
|
|
25
|
-
pathResolver: () => '/v2/evaluations',
|
|
26
|
-
description: 'Schedule evaluation (V2 result shape)',
|
|
27
|
-
requestHeaderSchema: SCHEDULE_EVALUATION_HEADERS,
|
|
28
|
-
requestBodySchema: SCHEDULE_EVALUATION_BODY_SCHEMA,
|
|
29
|
-
responsesByStatusCode: {
|
|
30
|
-
202: SCHEDULE_EVALUATION_RESPONSE_SCHEMA,
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
//# sourceMappingURL=evaluation-contracts-v2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-contracts-v2.js","sourceRoot":"","sources":["../src/evaluation-contracts-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,mCAAmC,GACpC,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;CACxF,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;IACvD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,mBAAmB,YAAY,EAAE;IACrE,WAAW,EAAE,wEAAwE;IACrF,uBAAuB,EAAE,+BAA+B;IACxD,mBAAmB,EAAE,YAAY;IACjC,qBAAqB,EAAE;QACrB,GAAG,EAAE,oBAAoB;KAC1B;CACF,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC;IAChE,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB;IACrC,WAAW,EAAE,uCAAuC;IACpD,mBAAmB,EAAE,2BAA2B;IAChD,iBAAiB,EAAE,+BAA+B;IAClD,qBAAqB,EAAE;QACrB,GAAG,EAAE,mCAAmC;KACzC;CACF,CAAC,CAAA"}
|