@sanity/ailf 3.5.1 → 3.7.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.
@@ -32,15 +32,14 @@ export type CuratedAssertionType = (typeof CURATED_ASSERTION_TYPES)[number];
32
32
  export declare const RUBRIC_TEMPLATE_NAMES: readonly ["task-completion", "code-correctness", "doc-coverage", "mcp-input-validation", "mcp-output-correctness", "mcp-error-handling", "mcp-security", "factual-correctness", "completeness", "currency", "process-quality", "agent-output", "agent-tool-usage"];
33
33
  export type RubricTemplateName = (typeof RUBRIC_TEMPLATE_NAMES)[number];
34
34
  /**
35
- * Zod schema for a single task definition using canonical field names.
35
+ * Zod schema for a single task definition a mode-discriminated union
36
+ * mirroring `GeneralizedTaskDefinition`.
36
37
  *
37
- * Uses .passthrough() to allow mode-specific fields (serverConfig, sandbox,
38
- * handler, etc.) without listing every possible field. Mode-specific
39
- * validation is deferred to the pipeline's mode handlers.
38
+ * Unknown keys are rejected on each variant. Invalid modes are rejected
39
+ * by the discriminator itself.
40
40
  */
41
- export declare const CanonicalTaskSchema: z.ZodObject<{
41
+ export declare const CanonicalTaskSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
42
42
  id: z.ZodString;
43
- mode: z.ZodDefault<z.ZodString>;
44
43
  title: z.ZodString;
45
44
  description: z.ZodOptional<z.ZodString>;
46
45
  area: z.ZodOptional<z.ZodString>;
@@ -49,19 +48,980 @@ export declare const CanonicalTaskSchema: z.ZodObject<{
49
48
  intermediate: "intermediate";
50
49
  advanced: "advanced";
51
50
  }>>;
51
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
52
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
53
+ active: "active";
54
+ draft: "draft";
55
+ paused: "paused";
56
+ archived: "archived";
57
+ }>>>;
58
+ assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
59
+ type: z.ZodLiteral<"llm-rubric">;
60
+ template: z.ZodEnum<{
61
+ "task-completion": "task-completion";
62
+ "code-correctness": "code-correctness";
63
+ "doc-coverage": "doc-coverage";
64
+ "mcp-input-validation": "mcp-input-validation";
65
+ "mcp-output-correctness": "mcp-output-correctness";
66
+ "mcp-error-handling": "mcp-error-handling";
67
+ "mcp-security": "mcp-security";
68
+ "factual-correctness": "factual-correctness";
69
+ completeness: "completeness";
70
+ currency: "currency";
71
+ "process-quality": "process-quality";
72
+ "agent-output": "agent-output";
73
+ "agent-tool-usage": "agent-tool-usage";
74
+ }>;
75
+ criteria: z.ZodArray<z.ZodString>;
76
+ weight: z.ZodOptional<z.ZodNumber>;
77
+ }, z.core.$strip>, z.ZodObject<{
78
+ type: z.ZodEnum<{
79
+ "llm-rubric": "llm-rubric";
80
+ contains: "contains";
81
+ "contains-any": "contains-any";
82
+ "contains-all": "contains-all";
83
+ "not-contains": "not-contains";
84
+ icontains: "icontains";
85
+ "icontains-any": "icontains-any";
86
+ regex: "regex";
87
+ javascript: "javascript";
88
+ similar: "similar";
89
+ cost: "cost";
90
+ latency: "latency";
91
+ "file-exists": "file-exists";
92
+ "file-contains": "file-contains";
93
+ "command-succeeds": "command-succeeds";
94
+ "diff-matches": "diff-matches";
95
+ }>;
96
+ value: z.ZodOptional<z.ZodUnknown>;
97
+ threshold: z.ZodOptional<z.ZodNumber>;
98
+ weight: z.ZodOptional<z.ZodNumber>;
99
+ }, z.core.$loose>]>>>;
100
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
101
+ ref: z.ZodString;
102
+ }, z.core.$strip>, z.ZodObject<{
103
+ inline: z.ZodString;
104
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
105
+ key: z.ZodString;
106
+ weight: z.ZodNumber;
107
+ }, z.core.$strip>>>;
108
+ }, z.core.$strip>]>>;
109
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
110
+ id: z.ZodString;
111
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
112
+ }, z.core.$strip>>>;
113
+ options: z.ZodOptional<z.ZodObject<{
114
+ timeout: z.ZodOptional<z.ZodNumber>;
115
+ cache: z.ZodOptional<z.ZodBoolean>;
116
+ transformOutput: z.ZodOptional<z.ZodString>;
117
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
118
+ }, z.core.$strip>>;
119
+ prompt: z.ZodOptional<z.ZodObject<{
120
+ template: z.ZodOptional<z.ZodString>;
121
+ text: z.ZodOptional<z.ZodString>;
122
+ systemMessage: z.ZodOptional<z.ZodString>;
123
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
124
+ }, z.core.$strip>>;
125
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
126
+ mode: z.ZodLiteral<"literacy">;
127
+ context: z.ZodOptional<z.ZodObject<{
128
+ docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
129
+ id: z.ZodString;
130
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
131
+ slug: z.ZodOptional<z.ZodString>;
132
+ path: z.ZodOptional<z.ZodString>;
133
+ }, z.core.$strip>, z.ZodObject<{
134
+ slug: z.ZodString;
135
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
136
+ }, z.core.$strip>, z.ZodObject<{
137
+ path: z.ZodString;
138
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
139
+ }, z.core.$strip>, z.ZodObject<{
140
+ perspective: z.ZodString;
141
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
142
+ }, z.core.$strip>]>>>;
143
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
144
+ }, z.core.$strip>>;
145
+ referenceSolution: z.ZodOptional<z.ZodString>;
146
+ docCoverage: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
147
+ baseline: z.ZodOptional<z.ZodObject<{
148
+ enabled: z.ZodOptional<z.ZodBoolean>;
149
+ rubric: z.ZodOptional<z.ZodEnum<{
150
+ full: "full";
151
+ abbreviated: "abbreviated";
152
+ none: "none";
153
+ }>>;
154
+ }, z.core.$strip>>;
155
+ }, z.core.$strict>, z.ZodObject<{
156
+ id: z.ZodString;
157
+ title: z.ZodString;
158
+ description: z.ZodOptional<z.ZodString>;
159
+ area: z.ZodOptional<z.ZodString>;
160
+ difficulty: z.ZodOptional<z.ZodEnum<{
161
+ basic: "basic";
162
+ intermediate: "intermediate";
163
+ advanced: "advanced";
164
+ }>>;
165
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
166
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
167
+ active: "active";
168
+ draft: "draft";
169
+ paused: "paused";
170
+ archived: "archived";
171
+ }>>>;
172
+ assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
173
+ type: z.ZodLiteral<"llm-rubric">;
174
+ template: z.ZodEnum<{
175
+ "task-completion": "task-completion";
176
+ "code-correctness": "code-correctness";
177
+ "doc-coverage": "doc-coverage";
178
+ "mcp-input-validation": "mcp-input-validation";
179
+ "mcp-output-correctness": "mcp-output-correctness";
180
+ "mcp-error-handling": "mcp-error-handling";
181
+ "mcp-security": "mcp-security";
182
+ "factual-correctness": "factual-correctness";
183
+ completeness: "completeness";
184
+ currency: "currency";
185
+ "process-quality": "process-quality";
186
+ "agent-output": "agent-output";
187
+ "agent-tool-usage": "agent-tool-usage";
188
+ }>;
189
+ criteria: z.ZodArray<z.ZodString>;
190
+ weight: z.ZodOptional<z.ZodNumber>;
191
+ }, z.core.$strip>, z.ZodObject<{
192
+ type: z.ZodEnum<{
193
+ "llm-rubric": "llm-rubric";
194
+ contains: "contains";
195
+ "contains-any": "contains-any";
196
+ "contains-all": "contains-all";
197
+ "not-contains": "not-contains";
198
+ icontains: "icontains";
199
+ "icontains-any": "icontains-any";
200
+ regex: "regex";
201
+ javascript: "javascript";
202
+ similar: "similar";
203
+ cost: "cost";
204
+ latency: "latency";
205
+ "file-exists": "file-exists";
206
+ "file-contains": "file-contains";
207
+ "command-succeeds": "command-succeeds";
208
+ "diff-matches": "diff-matches";
209
+ }>;
210
+ value: z.ZodOptional<z.ZodUnknown>;
211
+ threshold: z.ZodOptional<z.ZodNumber>;
212
+ weight: z.ZodOptional<z.ZodNumber>;
213
+ }, z.core.$loose>]>>>;
214
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
215
+ ref: z.ZodString;
216
+ }, z.core.$strip>, z.ZodObject<{
217
+ inline: z.ZodString;
218
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
219
+ key: z.ZodString;
220
+ weight: z.ZodNumber;
221
+ }, z.core.$strip>>>;
222
+ }, z.core.$strip>]>>;
223
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
224
+ id: z.ZodString;
225
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
226
+ }, z.core.$strip>>>;
227
+ options: z.ZodOptional<z.ZodObject<{
228
+ timeout: z.ZodOptional<z.ZodNumber>;
229
+ cache: z.ZodOptional<z.ZodBoolean>;
230
+ transformOutput: z.ZodOptional<z.ZodString>;
231
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
232
+ }, z.core.$strip>>;
233
+ prompt: z.ZodOptional<z.ZodObject<{
234
+ template: z.ZodOptional<z.ZodString>;
235
+ text: z.ZodOptional<z.ZodString>;
236
+ systemMessage: z.ZodOptional<z.ZodString>;
237
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
238
+ }, z.core.$strip>>;
239
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
240
+ mode: z.ZodLiteral<"mcp-server">;
241
+ serverConfig: z.ZodOptional<z.ZodObject<{
242
+ transport: z.ZodEnum<{
243
+ stdio: "stdio";
244
+ sse: "sse";
245
+ "streamable-http": "streamable-http";
246
+ }>;
247
+ command: z.ZodOptional<z.ZodString>;
248
+ url: z.ZodOptional<z.ZodString>;
249
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
250
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
251
+ startupTimeoutMs: z.ZodOptional<z.ZodNumber>;
252
+ auth: z.ZodOptional<z.ZodObject<{
253
+ type: z.ZodEnum<{
254
+ bearer: "bearer";
255
+ basic: "basic";
256
+ api_key: "api_key";
257
+ oauth: "oauth";
258
+ }>;
259
+ token: z.ZodOptional<z.ZodString>;
260
+ username: z.ZodOptional<z.ZodString>;
261
+ password: z.ZodOptional<z.ZodString>;
262
+ value: z.ZodOptional<z.ZodString>;
263
+ keyName: z.ZodOptional<z.ZodString>;
264
+ placement: z.ZodOptional<z.ZodEnum<{
265
+ header: "header";
266
+ query: "query";
267
+ }>>;
268
+ grantType: z.ZodOptional<z.ZodEnum<{
269
+ password: "password";
270
+ client_credentials: "client_credentials";
271
+ }>>;
272
+ tokenUrl: z.ZodOptional<z.ZodString>;
273
+ clientId: z.ZodOptional<z.ZodString>;
274
+ clientSecret: z.ZodOptional<z.ZodString>;
275
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
276
+ }, z.core.$strip>>;
277
+ }, z.core.$strip>>;
278
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
279
+ context: z.ZodOptional<z.ZodObject<{
280
+ docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
281
+ id: z.ZodString;
282
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
283
+ slug: z.ZodOptional<z.ZodString>;
284
+ path: z.ZodOptional<z.ZodString>;
285
+ }, z.core.$strip>, z.ZodObject<{
286
+ slug: z.ZodString;
287
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
288
+ }, z.core.$strip>, z.ZodObject<{
289
+ path: z.ZodString;
290
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
291
+ }, z.core.$strip>, z.ZodObject<{
292
+ perspective: z.ZodString;
293
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
294
+ }, z.core.$strip>]>>>;
295
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
296
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
297
+ }, z.core.$strip>>;
298
+ multiTurn: z.ZodOptional<z.ZodObject<{
299
+ turns: z.ZodArray<z.ZodObject<{
300
+ role: z.ZodEnum<{
301
+ user: "user";
302
+ assistant: "assistant";
303
+ }>;
304
+ content: z.ZodString;
305
+ }, z.core.$strip>>;
306
+ }, z.core.$strip>>;
307
+ models: z.ZodOptional<z.ZodArray<z.ZodString>>;
308
+ maxToolRounds: z.ZodOptional<z.ZodNumber>;
309
+ }, z.core.$strict>, z.ZodObject<{
310
+ id: z.ZodString;
311
+ title: z.ZodString;
312
+ description: z.ZodOptional<z.ZodString>;
313
+ area: z.ZodOptional<z.ZodString>;
314
+ difficulty: z.ZodOptional<z.ZodEnum<{
315
+ basic: "basic";
316
+ intermediate: "intermediate";
317
+ advanced: "advanced";
318
+ }>>;
319
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
320
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
321
+ active: "active";
322
+ draft: "draft";
323
+ paused: "paused";
324
+ archived: "archived";
325
+ }>>>;
326
+ assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
327
+ type: z.ZodLiteral<"llm-rubric">;
328
+ template: z.ZodEnum<{
329
+ "task-completion": "task-completion";
330
+ "code-correctness": "code-correctness";
331
+ "doc-coverage": "doc-coverage";
332
+ "mcp-input-validation": "mcp-input-validation";
333
+ "mcp-output-correctness": "mcp-output-correctness";
334
+ "mcp-error-handling": "mcp-error-handling";
335
+ "mcp-security": "mcp-security";
336
+ "factual-correctness": "factual-correctness";
337
+ completeness: "completeness";
338
+ currency: "currency";
339
+ "process-quality": "process-quality";
340
+ "agent-output": "agent-output";
341
+ "agent-tool-usage": "agent-tool-usage";
342
+ }>;
343
+ criteria: z.ZodArray<z.ZodString>;
344
+ weight: z.ZodOptional<z.ZodNumber>;
345
+ }, z.core.$strip>, z.ZodObject<{
346
+ type: z.ZodEnum<{
347
+ "llm-rubric": "llm-rubric";
348
+ contains: "contains";
349
+ "contains-any": "contains-any";
350
+ "contains-all": "contains-all";
351
+ "not-contains": "not-contains";
352
+ icontains: "icontains";
353
+ "icontains-any": "icontains-any";
354
+ regex: "regex";
355
+ javascript: "javascript";
356
+ similar: "similar";
357
+ cost: "cost";
358
+ latency: "latency";
359
+ "file-exists": "file-exists";
360
+ "file-contains": "file-contains";
361
+ "command-succeeds": "command-succeeds";
362
+ "diff-matches": "diff-matches";
363
+ }>;
364
+ value: z.ZodOptional<z.ZodUnknown>;
365
+ threshold: z.ZodOptional<z.ZodNumber>;
366
+ weight: z.ZodOptional<z.ZodNumber>;
367
+ }, z.core.$loose>]>>>;
368
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
369
+ ref: z.ZodString;
370
+ }, z.core.$strip>, z.ZodObject<{
371
+ inline: z.ZodString;
372
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
373
+ key: z.ZodString;
374
+ weight: z.ZodNumber;
375
+ }, z.core.$strip>>>;
376
+ }, z.core.$strip>]>>;
377
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
378
+ id: z.ZodString;
379
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
380
+ }, z.core.$strip>>>;
381
+ options: z.ZodOptional<z.ZodObject<{
382
+ timeout: z.ZodOptional<z.ZodNumber>;
383
+ cache: z.ZodOptional<z.ZodBoolean>;
384
+ transformOutput: z.ZodOptional<z.ZodString>;
385
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
386
+ }, z.core.$strip>>;
387
+ prompt: z.ZodOptional<z.ZodObject<{
388
+ template: z.ZodOptional<z.ZodString>;
389
+ text: z.ZodOptional<z.ZodString>;
390
+ systemMessage: z.ZodOptional<z.ZodString>;
391
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
392
+ }, z.core.$strip>>;
393
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
394
+ mode: z.ZodLiteral<"agent-harness">;
395
+ sandbox: z.ZodOptional<z.ZodObject<{
396
+ type: z.ZodEnum<{
397
+ none: "none";
398
+ docker: "docker";
399
+ "git-worktree": "git-worktree";
400
+ nsjail: "nsjail";
401
+ tempdir: "tempdir";
402
+ }>;
403
+ image: z.ZodOptional<z.ZodString>;
404
+ limits: z.ZodOptional<z.ZodObject<{
405
+ cpus: z.ZodOptional<z.ZodNumber>;
406
+ memoryBytes: z.ZodOptional<z.ZodNumber>;
407
+ diskBytes: z.ZodOptional<z.ZodNumber>;
408
+ networkAccess: z.ZodOptional<z.ZodBoolean>;
409
+ }, z.core.$strip>>;
410
+ }, z.core.$strip>>;
411
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
412
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
413
+ context: z.ZodOptional<z.ZodObject<{
414
+ docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
415
+ id: z.ZodString;
416
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
417
+ slug: z.ZodOptional<z.ZodString>;
418
+ path: z.ZodOptional<z.ZodString>;
419
+ }, z.core.$strip>, z.ZodObject<{
420
+ slug: z.ZodString;
421
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
422
+ }, z.core.$strip>, z.ZodObject<{
423
+ path: z.ZodString;
424
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
425
+ }, z.core.$strip>, z.ZodObject<{
426
+ perspective: z.ZodString;
427
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
428
+ }, z.core.$strip>]>>>;
429
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
430
+ }, z.core.$strip>>;
431
+ multiTurn: z.ZodOptional<z.ZodObject<{
432
+ turns: z.ZodArray<z.ZodObject<{
433
+ role: z.ZodEnum<{
434
+ user: "user";
435
+ assistant: "assistant";
436
+ }>;
437
+ content: z.ZodString;
438
+ }, z.core.$strip>>;
439
+ }, z.core.$strip>>;
440
+ }, z.core.$strict>, z.ZodObject<{
441
+ id: z.ZodString;
442
+ title: z.ZodString;
443
+ description: z.ZodOptional<z.ZodString>;
444
+ area: z.ZodOptional<z.ZodString>;
445
+ difficulty: z.ZodOptional<z.ZodEnum<{
446
+ basic: "basic";
447
+ intermediate: "intermediate";
448
+ advanced: "advanced";
449
+ }>>;
450
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
451
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
452
+ active: "active";
453
+ draft: "draft";
454
+ paused: "paused";
455
+ archived: "archived";
456
+ }>>>;
457
+ assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
458
+ type: z.ZodLiteral<"llm-rubric">;
459
+ template: z.ZodEnum<{
460
+ "task-completion": "task-completion";
461
+ "code-correctness": "code-correctness";
462
+ "doc-coverage": "doc-coverage";
463
+ "mcp-input-validation": "mcp-input-validation";
464
+ "mcp-output-correctness": "mcp-output-correctness";
465
+ "mcp-error-handling": "mcp-error-handling";
466
+ "mcp-security": "mcp-security";
467
+ "factual-correctness": "factual-correctness";
468
+ completeness: "completeness";
469
+ currency: "currency";
470
+ "process-quality": "process-quality";
471
+ "agent-output": "agent-output";
472
+ "agent-tool-usage": "agent-tool-usage";
473
+ }>;
474
+ criteria: z.ZodArray<z.ZodString>;
475
+ weight: z.ZodOptional<z.ZodNumber>;
476
+ }, z.core.$strip>, z.ZodObject<{
477
+ type: z.ZodEnum<{
478
+ "llm-rubric": "llm-rubric";
479
+ contains: "contains";
480
+ "contains-any": "contains-any";
481
+ "contains-all": "contains-all";
482
+ "not-contains": "not-contains";
483
+ icontains: "icontains";
484
+ "icontains-any": "icontains-any";
485
+ regex: "regex";
486
+ javascript: "javascript";
487
+ similar: "similar";
488
+ cost: "cost";
489
+ latency: "latency";
490
+ "file-exists": "file-exists";
491
+ "file-contains": "file-contains";
492
+ "command-succeeds": "command-succeeds";
493
+ "diff-matches": "diff-matches";
494
+ }>;
495
+ value: z.ZodOptional<z.ZodUnknown>;
496
+ threshold: z.ZodOptional<z.ZodNumber>;
497
+ weight: z.ZodOptional<z.ZodNumber>;
498
+ }, z.core.$loose>]>>>;
499
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
500
+ ref: z.ZodString;
501
+ }, z.core.$strip>, z.ZodObject<{
502
+ inline: z.ZodString;
503
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
504
+ key: z.ZodString;
505
+ weight: z.ZodNumber;
506
+ }, z.core.$strip>>>;
507
+ }, z.core.$strip>]>>;
508
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
509
+ id: z.ZodString;
510
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
511
+ }, z.core.$strip>>>;
512
+ options: z.ZodOptional<z.ZodObject<{
513
+ timeout: z.ZodOptional<z.ZodNumber>;
514
+ cache: z.ZodOptional<z.ZodBoolean>;
515
+ transformOutput: z.ZodOptional<z.ZodString>;
516
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
517
+ }, z.core.$strip>>;
518
+ prompt: z.ZodOptional<z.ZodObject<{
519
+ template: z.ZodOptional<z.ZodString>;
520
+ text: z.ZodOptional<z.ZodString>;
521
+ systemMessage: z.ZodOptional<z.ZodString>;
522
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
523
+ }, z.core.$strip>>;
524
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
525
+ mode: z.ZodLiteral<"knowledge-probe">;
526
+ probeStrategy: z.ZodOptional<z.ZodEnum<{
527
+ "breadth-first": "breadth-first";
528
+ "depth-first": "depth-first";
529
+ "random-sample": "random-sample";
530
+ "coverage-guided": "coverage-guided";
531
+ }>>;
532
+ knowledgeBase: z.ZodOptional<z.ZodObject<{
533
+ type: z.ZodEnum<{
534
+ "sanity-dataset": "sanity-dataset";
535
+ "embeddings-index": "embeddings-index";
536
+ "file-corpus": "file-corpus";
537
+ }>;
538
+ name: z.ZodString;
539
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
540
+ }, z.core.$strip>>;
541
+ context: z.ZodOptional<z.ZodObject<{
542
+ docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
543
+ id: z.ZodString;
544
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
545
+ slug: z.ZodOptional<z.ZodString>;
546
+ path: z.ZodOptional<z.ZodString>;
547
+ }, z.core.$strip>, z.ZodObject<{
548
+ slug: z.ZodString;
549
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
550
+ }, z.core.$strip>, z.ZodObject<{
551
+ path: z.ZodString;
552
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
553
+ }, z.core.$strip>, z.ZodObject<{
554
+ perspective: z.ZodString;
555
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
556
+ }, z.core.$strip>]>>>;
557
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
558
+ }, z.core.$strip>>;
559
+ }, z.core.$strict>, z.ZodObject<{
560
+ id: z.ZodString;
561
+ title: z.ZodString;
562
+ description: z.ZodOptional<z.ZodString>;
563
+ area: z.ZodOptional<z.ZodString>;
564
+ difficulty: z.ZodOptional<z.ZodEnum<{
565
+ basic: "basic";
566
+ intermediate: "intermediate";
567
+ advanced: "advanced";
568
+ }>>;
569
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
570
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
571
+ active: "active";
572
+ draft: "draft";
573
+ paused: "paused";
574
+ archived: "archived";
575
+ }>>>;
576
+ assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
577
+ type: z.ZodLiteral<"llm-rubric">;
578
+ template: z.ZodEnum<{
579
+ "task-completion": "task-completion";
580
+ "code-correctness": "code-correctness";
581
+ "doc-coverage": "doc-coverage";
582
+ "mcp-input-validation": "mcp-input-validation";
583
+ "mcp-output-correctness": "mcp-output-correctness";
584
+ "mcp-error-handling": "mcp-error-handling";
585
+ "mcp-security": "mcp-security";
586
+ "factual-correctness": "factual-correctness";
587
+ completeness: "completeness";
588
+ currency: "currency";
589
+ "process-quality": "process-quality";
590
+ "agent-output": "agent-output";
591
+ "agent-tool-usage": "agent-tool-usage";
592
+ }>;
593
+ criteria: z.ZodArray<z.ZodString>;
594
+ weight: z.ZodOptional<z.ZodNumber>;
595
+ }, z.core.$strip>, z.ZodObject<{
596
+ type: z.ZodEnum<{
597
+ "llm-rubric": "llm-rubric";
598
+ contains: "contains";
599
+ "contains-any": "contains-any";
600
+ "contains-all": "contains-all";
601
+ "not-contains": "not-contains";
602
+ icontains: "icontains";
603
+ "icontains-any": "icontains-any";
604
+ regex: "regex";
605
+ javascript: "javascript";
606
+ similar: "similar";
607
+ cost: "cost";
608
+ latency: "latency";
609
+ "file-exists": "file-exists";
610
+ "file-contains": "file-contains";
611
+ "command-succeeds": "command-succeeds";
612
+ "diff-matches": "diff-matches";
613
+ }>;
614
+ value: z.ZodOptional<z.ZodUnknown>;
615
+ threshold: z.ZodOptional<z.ZodNumber>;
616
+ weight: z.ZodOptional<z.ZodNumber>;
617
+ }, z.core.$loose>]>>>;
618
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
619
+ ref: z.ZodString;
620
+ }, z.core.$strip>, z.ZodObject<{
621
+ inline: z.ZodString;
622
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
623
+ key: z.ZodString;
624
+ weight: z.ZodNumber;
625
+ }, z.core.$strip>>>;
626
+ }, z.core.$strip>]>>;
627
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
628
+ id: z.ZodString;
629
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
630
+ }, z.core.$strip>>>;
631
+ options: z.ZodOptional<z.ZodObject<{
632
+ timeout: z.ZodOptional<z.ZodNumber>;
633
+ cache: z.ZodOptional<z.ZodBoolean>;
634
+ transformOutput: z.ZodOptional<z.ZodString>;
635
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
636
+ }, z.core.$strip>>;
637
+ prompt: z.ZodOptional<z.ZodObject<{
638
+ template: z.ZodOptional<z.ZodString>;
639
+ text: z.ZodOptional<z.ZodString>;
640
+ systemMessage: z.ZodOptional<z.ZodString>;
641
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
642
+ }, z.core.$strip>>;
643
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
644
+ mode: z.ZodLiteral<"custom">;
645
+ handler: z.ZodString;
646
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
647
+ context: z.ZodOptional<z.ZodObject<{
648
+ docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
649
+ id: z.ZodString;
650
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
651
+ slug: z.ZodOptional<z.ZodString>;
652
+ path: z.ZodOptional<z.ZodString>;
653
+ }, z.core.$strip>, z.ZodObject<{
654
+ slug: z.ZodString;
655
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
656
+ }, z.core.$strip>, z.ZodObject<{
657
+ path: z.ZodString;
658
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
659
+ }, z.core.$strip>, z.ZodObject<{
660
+ perspective: z.ZodString;
661
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
662
+ }, z.core.$strip>]>>>;
663
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
664
+ }, z.core.$strip>>;
665
+ }, z.core.$strict>], "mode">;
666
+ export type CanonicalTask = z.infer<typeof CanonicalTaskSchema>;
667
+ export declare const ContentLakeAuthorableTaskSchema: z.ZodObject<{
668
+ id: z.ZodString;
669
+ title: z.ZodString;
670
+ description: z.ZodOptional<z.ZodString>;
671
+ area: z.ZodOptional<z.ZodString>;
672
+ difficulty: z.ZodOptional<z.ZodEnum<{
673
+ basic: "basic";
674
+ intermediate: "intermediate";
675
+ advanced: "advanced";
676
+ }>>;
677
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
678
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
679
+ active: "active";
680
+ draft: "draft";
681
+ paused: "paused";
682
+ archived: "archived";
683
+ }>>>;
684
+ assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
685
+ type: z.ZodLiteral<"llm-rubric">;
686
+ template: z.ZodEnum<{
687
+ "task-completion": "task-completion";
688
+ "code-correctness": "code-correctness";
689
+ "doc-coverage": "doc-coverage";
690
+ "mcp-input-validation": "mcp-input-validation";
691
+ "mcp-output-correctness": "mcp-output-correctness";
692
+ "mcp-error-handling": "mcp-error-handling";
693
+ "mcp-security": "mcp-security";
694
+ "factual-correctness": "factual-correctness";
695
+ completeness: "completeness";
696
+ currency: "currency";
697
+ "process-quality": "process-quality";
698
+ "agent-output": "agent-output";
699
+ "agent-tool-usage": "agent-tool-usage";
700
+ }>;
701
+ criteria: z.ZodArray<z.ZodString>;
702
+ weight: z.ZodOptional<z.ZodNumber>;
703
+ }, z.core.$strip>, z.ZodObject<{
704
+ type: z.ZodEnum<{
705
+ "llm-rubric": "llm-rubric";
706
+ contains: "contains";
707
+ "contains-any": "contains-any";
708
+ "contains-all": "contains-all";
709
+ "not-contains": "not-contains";
710
+ icontains: "icontains";
711
+ "icontains-any": "icontains-any";
712
+ regex: "regex";
713
+ javascript: "javascript";
714
+ similar: "similar";
715
+ cost: "cost";
716
+ latency: "latency";
717
+ "file-exists": "file-exists";
718
+ "file-contains": "file-contains";
719
+ "command-succeeds": "command-succeeds";
720
+ "diff-matches": "diff-matches";
721
+ }>;
722
+ value: z.ZodOptional<z.ZodUnknown>;
723
+ threshold: z.ZodOptional<z.ZodNumber>;
724
+ weight: z.ZodOptional<z.ZodNumber>;
725
+ }, z.core.$loose>]>>>;
726
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
727
+ ref: z.ZodString;
728
+ }, z.core.$strip>, z.ZodObject<{
729
+ inline: z.ZodString;
730
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
731
+ key: z.ZodString;
732
+ weight: z.ZodNumber;
733
+ }, z.core.$strip>>>;
734
+ }, z.core.$strip>]>>;
735
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
736
+ id: z.ZodString;
737
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
738
+ }, z.core.$strip>>>;
739
+ options: z.ZodOptional<z.ZodObject<{
740
+ timeout: z.ZodOptional<z.ZodNumber>;
741
+ cache: z.ZodOptional<z.ZodBoolean>;
742
+ transformOutput: z.ZodOptional<z.ZodString>;
743
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
744
+ }, z.core.$strip>>;
745
+ prompt: z.ZodOptional<z.ZodObject<{
746
+ template: z.ZodOptional<z.ZodString>;
747
+ text: z.ZodOptional<z.ZodString>;
748
+ systemMessage: z.ZodOptional<z.ZodString>;
749
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
750
+ }, z.core.$strip>>;
751
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
752
+ mode: z.ZodLiteral<"literacy">;
753
+ context: z.ZodOptional<z.ZodObject<{
754
+ docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
755
+ id: z.ZodString;
756
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
757
+ slug: z.ZodOptional<z.ZodString>;
758
+ path: z.ZodOptional<z.ZodString>;
759
+ }, z.core.$strip>, z.ZodObject<{
760
+ slug: z.ZodString;
761
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
762
+ }, z.core.$strip>, z.ZodObject<{
763
+ path: z.ZodString;
764
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
765
+ }, z.core.$strip>, z.ZodObject<{
766
+ perspective: z.ZodString;
767
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
768
+ }, z.core.$strip>]>>>;
769
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
770
+ }, z.core.$strip>>;
771
+ referenceSolution: z.ZodOptional<z.ZodString>;
772
+ docCoverage: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
773
+ baseline: z.ZodOptional<z.ZodObject<{
774
+ enabled: z.ZodOptional<z.ZodBoolean>;
775
+ rubric: z.ZodOptional<z.ZodEnum<{
776
+ full: "full";
777
+ abbreviated: "abbreviated";
778
+ none: "none";
779
+ }>>;
780
+ }, z.core.$strip>>;
781
+ }, z.core.$strict>;
782
+ export type ContentLakeAuthorableTaskParsed = z.infer<typeof ContentLakeAuthorableTaskSchema>;
783
+ /**
784
+ * Schema for an array of canonical tasks — what a single .ailf/tasks/*.yaml
785
+ * file contains. Each file must define at least one task.
786
+ */
787
+ export declare const CanonicalTaskFileSchema: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
788
+ id: z.ZodString;
789
+ title: z.ZodString;
790
+ description: z.ZodOptional<z.ZodString>;
791
+ area: z.ZodOptional<z.ZodString>;
792
+ difficulty: z.ZodOptional<z.ZodEnum<{
793
+ basic: "basic";
794
+ intermediate: "intermediate";
795
+ advanced: "advanced";
796
+ }>>;
797
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
798
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
799
+ active: "active";
800
+ draft: "draft";
801
+ paused: "paused";
802
+ archived: "archived";
803
+ }>>>;
804
+ assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
805
+ type: z.ZodLiteral<"llm-rubric">;
806
+ template: z.ZodEnum<{
807
+ "task-completion": "task-completion";
808
+ "code-correctness": "code-correctness";
809
+ "doc-coverage": "doc-coverage";
810
+ "mcp-input-validation": "mcp-input-validation";
811
+ "mcp-output-correctness": "mcp-output-correctness";
812
+ "mcp-error-handling": "mcp-error-handling";
813
+ "mcp-security": "mcp-security";
814
+ "factual-correctness": "factual-correctness";
815
+ completeness: "completeness";
816
+ currency: "currency";
817
+ "process-quality": "process-quality";
818
+ "agent-output": "agent-output";
819
+ "agent-tool-usage": "agent-tool-usage";
820
+ }>;
821
+ criteria: z.ZodArray<z.ZodString>;
822
+ weight: z.ZodOptional<z.ZodNumber>;
823
+ }, z.core.$strip>, z.ZodObject<{
824
+ type: z.ZodEnum<{
825
+ "llm-rubric": "llm-rubric";
826
+ contains: "contains";
827
+ "contains-any": "contains-any";
828
+ "contains-all": "contains-all";
829
+ "not-contains": "not-contains";
830
+ icontains: "icontains";
831
+ "icontains-any": "icontains-any";
832
+ regex: "regex";
833
+ javascript: "javascript";
834
+ similar: "similar";
835
+ cost: "cost";
836
+ latency: "latency";
837
+ "file-exists": "file-exists";
838
+ "file-contains": "file-contains";
839
+ "command-succeeds": "command-succeeds";
840
+ "diff-matches": "diff-matches";
841
+ }>;
842
+ value: z.ZodOptional<z.ZodUnknown>;
843
+ threshold: z.ZodOptional<z.ZodNumber>;
844
+ weight: z.ZodOptional<z.ZodNumber>;
845
+ }, z.core.$loose>]>>>;
846
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
847
+ ref: z.ZodString;
848
+ }, z.core.$strip>, z.ZodObject<{
849
+ inline: z.ZodString;
850
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
851
+ key: z.ZodString;
852
+ weight: z.ZodNumber;
853
+ }, z.core.$strip>>>;
854
+ }, z.core.$strip>]>>;
855
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
856
+ id: z.ZodString;
857
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
858
+ }, z.core.$strip>>>;
859
+ options: z.ZodOptional<z.ZodObject<{
860
+ timeout: z.ZodOptional<z.ZodNumber>;
861
+ cache: z.ZodOptional<z.ZodBoolean>;
862
+ transformOutput: z.ZodOptional<z.ZodString>;
863
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
864
+ }, z.core.$strip>>;
865
+ prompt: z.ZodOptional<z.ZodObject<{
866
+ template: z.ZodOptional<z.ZodString>;
867
+ text: z.ZodOptional<z.ZodString>;
868
+ systemMessage: z.ZodOptional<z.ZodString>;
869
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
870
+ }, z.core.$strip>>;
871
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
872
+ mode: z.ZodLiteral<"literacy">;
873
+ context: z.ZodOptional<z.ZodObject<{
874
+ docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
875
+ id: z.ZodString;
876
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
877
+ slug: z.ZodOptional<z.ZodString>;
878
+ path: z.ZodOptional<z.ZodString>;
879
+ }, z.core.$strip>, z.ZodObject<{
880
+ slug: z.ZodString;
881
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
882
+ }, z.core.$strip>, z.ZodObject<{
883
+ path: z.ZodString;
884
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
885
+ }, z.core.$strip>, z.ZodObject<{
886
+ perspective: z.ZodString;
887
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
888
+ }, z.core.$strip>]>>>;
889
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
890
+ }, z.core.$strip>>;
891
+ referenceSolution: z.ZodOptional<z.ZodString>;
892
+ docCoverage: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
893
+ baseline: z.ZodOptional<z.ZodObject<{
894
+ enabled: z.ZodOptional<z.ZodBoolean>;
895
+ rubric: z.ZodOptional<z.ZodEnum<{
896
+ full: "full";
897
+ abbreviated: "abbreviated";
898
+ none: "none";
899
+ }>>;
900
+ }, z.core.$strip>>;
901
+ }, z.core.$strict>, z.ZodObject<{
902
+ id: z.ZodString;
903
+ title: z.ZodString;
904
+ description: z.ZodOptional<z.ZodString>;
905
+ area: z.ZodOptional<z.ZodString>;
906
+ difficulty: z.ZodOptional<z.ZodEnum<{
907
+ basic: "basic";
908
+ intermediate: "intermediate";
909
+ advanced: "advanced";
910
+ }>>;
911
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
52
912
  status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
53
913
  active: "active";
54
914
  draft: "draft";
55
915
  paused: "paused";
56
916
  archived: "archived";
57
917
  }>>>;
58
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
918
+ assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
919
+ type: z.ZodLiteral<"llm-rubric">;
920
+ template: z.ZodEnum<{
921
+ "task-completion": "task-completion";
922
+ "code-correctness": "code-correctness";
923
+ "doc-coverage": "doc-coverage";
924
+ "mcp-input-validation": "mcp-input-validation";
925
+ "mcp-output-correctness": "mcp-output-correctness";
926
+ "mcp-error-handling": "mcp-error-handling";
927
+ "mcp-security": "mcp-security";
928
+ "factual-correctness": "factual-correctness";
929
+ completeness: "completeness";
930
+ currency: "currency";
931
+ "process-quality": "process-quality";
932
+ "agent-output": "agent-output";
933
+ "agent-tool-usage": "agent-tool-usage";
934
+ }>;
935
+ criteria: z.ZodArray<z.ZodString>;
936
+ weight: z.ZodOptional<z.ZodNumber>;
937
+ }, z.core.$strip>, z.ZodObject<{
938
+ type: z.ZodEnum<{
939
+ "llm-rubric": "llm-rubric";
940
+ contains: "contains";
941
+ "contains-any": "contains-any";
942
+ "contains-all": "contains-all";
943
+ "not-contains": "not-contains";
944
+ icontains: "icontains";
945
+ "icontains-any": "icontains-any";
946
+ regex: "regex";
947
+ javascript: "javascript";
948
+ similar: "similar";
949
+ cost: "cost";
950
+ latency: "latency";
951
+ "file-exists": "file-exists";
952
+ "file-contains": "file-contains";
953
+ "command-succeeds": "command-succeeds";
954
+ "diff-matches": "diff-matches";
955
+ }>;
956
+ value: z.ZodOptional<z.ZodUnknown>;
957
+ threshold: z.ZodOptional<z.ZodNumber>;
958
+ weight: z.ZodOptional<z.ZodNumber>;
959
+ }, z.core.$loose>]>>>;
960
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
961
+ ref: z.ZodString;
962
+ }, z.core.$strip>, z.ZodObject<{
963
+ inline: z.ZodString;
964
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
965
+ key: z.ZodString;
966
+ weight: z.ZodNumber;
967
+ }, z.core.$strip>>>;
968
+ }, z.core.$strip>]>>;
969
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
970
+ id: z.ZodString;
971
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
972
+ }, z.core.$strip>>>;
973
+ options: z.ZodOptional<z.ZodObject<{
974
+ timeout: z.ZodOptional<z.ZodNumber>;
975
+ cache: z.ZodOptional<z.ZodBoolean>;
976
+ transformOutput: z.ZodOptional<z.ZodString>;
977
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
978
+ }, z.core.$strip>>;
59
979
  prompt: z.ZodOptional<z.ZodObject<{
60
980
  template: z.ZodOptional<z.ZodString>;
61
981
  text: z.ZodOptional<z.ZodString>;
62
982
  systemMessage: z.ZodOptional<z.ZodString>;
63
983
  vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
64
984
  }, z.core.$strip>>;
985
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
986
+ mode: z.ZodLiteral<"mcp-server">;
987
+ serverConfig: z.ZodOptional<z.ZodObject<{
988
+ transport: z.ZodEnum<{
989
+ stdio: "stdio";
990
+ sse: "sse";
991
+ "streamable-http": "streamable-http";
992
+ }>;
993
+ command: z.ZodOptional<z.ZodString>;
994
+ url: z.ZodOptional<z.ZodString>;
995
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
996
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
997
+ startupTimeoutMs: z.ZodOptional<z.ZodNumber>;
998
+ auth: z.ZodOptional<z.ZodObject<{
999
+ type: z.ZodEnum<{
1000
+ bearer: "bearer";
1001
+ basic: "basic";
1002
+ api_key: "api_key";
1003
+ oauth: "oauth";
1004
+ }>;
1005
+ token: z.ZodOptional<z.ZodString>;
1006
+ username: z.ZodOptional<z.ZodString>;
1007
+ password: z.ZodOptional<z.ZodString>;
1008
+ value: z.ZodOptional<z.ZodString>;
1009
+ keyName: z.ZodOptional<z.ZodString>;
1010
+ placement: z.ZodOptional<z.ZodEnum<{
1011
+ header: "header";
1012
+ query: "query";
1013
+ }>>;
1014
+ grantType: z.ZodOptional<z.ZodEnum<{
1015
+ password: "password";
1016
+ client_credentials: "client_credentials";
1017
+ }>>;
1018
+ tokenUrl: z.ZodOptional<z.ZodString>;
1019
+ clientId: z.ZodOptional<z.ZodString>;
1020
+ clientSecret: z.ZodOptional<z.ZodString>;
1021
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
1022
+ }, z.core.$strip>>;
1023
+ }, z.core.$strip>>;
1024
+ capabilities: z.ZodOptional<z.ZodArray<z.ZodString>>;
65
1025
  context: z.ZodOptional<z.ZodObject<{
66
1026
  docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
67
1027
  id: z.ZodString;
@@ -79,7 +1039,36 @@ export declare const CanonicalTaskSchema: z.ZodObject<{
79
1039
  reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
80
1040
  }, z.core.$strip>]>>>;
81
1041
  fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
1042
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
1043
+ }, z.core.$strip>>;
1044
+ multiTurn: z.ZodOptional<z.ZodObject<{
1045
+ turns: z.ZodArray<z.ZodObject<{
1046
+ role: z.ZodEnum<{
1047
+ user: "user";
1048
+ assistant: "assistant";
1049
+ }>;
1050
+ content: z.ZodString;
1051
+ }, z.core.$strip>>;
82
1052
  }, z.core.$strip>>;
1053
+ models: z.ZodOptional<z.ZodArray<z.ZodString>>;
1054
+ maxToolRounds: z.ZodOptional<z.ZodNumber>;
1055
+ }, z.core.$strict>, z.ZodObject<{
1056
+ id: z.ZodString;
1057
+ title: z.ZodString;
1058
+ description: z.ZodOptional<z.ZodString>;
1059
+ area: z.ZodOptional<z.ZodString>;
1060
+ difficulty: z.ZodOptional<z.ZodEnum<{
1061
+ basic: "basic";
1062
+ intermediate: "intermediate";
1063
+ advanced: "advanced";
1064
+ }>>;
1065
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1066
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
1067
+ active: "active";
1068
+ draft: "draft";
1069
+ paused: "paused";
1070
+ archived: "archived";
1071
+ }>>>;
83
1072
  assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
84
1073
  type: z.ZodLiteral<"llm-rubric">;
85
1074
  template: z.ZodEnum<{
@@ -122,29 +1111,80 @@ export declare const CanonicalTaskSchema: z.ZodObject<{
122
1111
  threshold: z.ZodOptional<z.ZodNumber>;
123
1112
  weight: z.ZodOptional<z.ZodNumber>;
124
1113
  }, z.core.$loose>]>>>;
125
- referenceSolution: z.ZodOptional<z.ZodString>;
126
- docCoverage: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
127
- baseline: z.ZodOptional<z.ZodObject<{
128
- enabled: z.ZodOptional<z.ZodBoolean>;
129
- rubric: z.ZodOptional<z.ZodEnum<{
130
- full: "full";
131
- abbreviated: "abbreviated";
132
- none: "none";
133
- }>>;
1114
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1115
+ ref: z.ZodString;
1116
+ }, z.core.$strip>, z.ZodObject<{
1117
+ inline: z.ZodString;
1118
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1119
+ key: z.ZodString;
1120
+ weight: z.ZodNumber;
1121
+ }, z.core.$strip>>>;
1122
+ }, z.core.$strip>]>>;
1123
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
1124
+ id: z.ZodString;
1125
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1126
+ }, z.core.$strip>>>;
1127
+ options: z.ZodOptional<z.ZodObject<{
1128
+ timeout: z.ZodOptional<z.ZodNumber>;
1129
+ cache: z.ZodOptional<z.ZodBoolean>;
1130
+ transformOutput: z.ZodOptional<z.ZodString>;
1131
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1132
+ }, z.core.$strip>>;
1133
+ prompt: z.ZodOptional<z.ZodObject<{
1134
+ template: z.ZodOptional<z.ZodString>;
1135
+ text: z.ZodOptional<z.ZodString>;
1136
+ systemMessage: z.ZodOptional<z.ZodString>;
1137
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
134
1138
  }, z.core.$strip>>;
135
- rubric: z.ZodOptional<z.ZodUnknown>;
136
- providers: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
137
- options: z.ZodOptional<z.ZodUnknown>;
138
1139
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
139
- }, z.core.$loose>;
140
- export type CanonicalTask = z.infer<typeof CanonicalTaskSchema>;
141
- /**
142
- * Schema for an array of canonical tasks — what a single .ailf/tasks/*.yaml
143
- * file contains. Each file must define at least one task.
144
- */
145
- export declare const CanonicalTaskFileSchema: z.ZodArray<z.ZodObject<{
1140
+ mode: z.ZodLiteral<"agent-harness">;
1141
+ sandbox: z.ZodOptional<z.ZodObject<{
1142
+ type: z.ZodEnum<{
1143
+ none: "none";
1144
+ docker: "docker";
1145
+ "git-worktree": "git-worktree";
1146
+ nsjail: "nsjail";
1147
+ tempdir: "tempdir";
1148
+ }>;
1149
+ image: z.ZodOptional<z.ZodString>;
1150
+ limits: z.ZodOptional<z.ZodObject<{
1151
+ cpus: z.ZodOptional<z.ZodNumber>;
1152
+ memoryBytes: z.ZodOptional<z.ZodNumber>;
1153
+ diskBytes: z.ZodOptional<z.ZodNumber>;
1154
+ networkAccess: z.ZodOptional<z.ZodBoolean>;
1155
+ }, z.core.$strip>>;
1156
+ }, z.core.$strip>>;
1157
+ tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
1158
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
1159
+ context: z.ZodOptional<z.ZodObject<{
1160
+ docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1161
+ id: z.ZodString;
1162
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1163
+ slug: z.ZodOptional<z.ZodString>;
1164
+ path: z.ZodOptional<z.ZodString>;
1165
+ }, z.core.$strip>, z.ZodObject<{
1166
+ slug: z.ZodString;
1167
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1168
+ }, z.core.$strip>, z.ZodObject<{
1169
+ path: z.ZodString;
1170
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1171
+ }, z.core.$strip>, z.ZodObject<{
1172
+ perspective: z.ZodString;
1173
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1174
+ }, z.core.$strip>]>>>;
1175
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
1176
+ }, z.core.$strip>>;
1177
+ multiTurn: z.ZodOptional<z.ZodObject<{
1178
+ turns: z.ZodArray<z.ZodObject<{
1179
+ role: z.ZodEnum<{
1180
+ user: "user";
1181
+ assistant: "assistant";
1182
+ }>;
1183
+ content: z.ZodString;
1184
+ }, z.core.$strip>>;
1185
+ }, z.core.$strip>>;
1186
+ }, z.core.$strict>, z.ZodObject<{
146
1187
  id: z.ZodString;
147
- mode: z.ZodDefault<z.ZodString>;
148
1188
  title: z.ZodString;
149
1189
  description: z.ZodOptional<z.ZodString>;
150
1190
  area: z.ZodOptional<z.ZodString>;
@@ -153,19 +1193,97 @@ export declare const CanonicalTaskFileSchema: z.ZodArray<z.ZodObject<{
153
1193
  intermediate: "intermediate";
154
1194
  advanced: "advanced";
155
1195
  }>>;
1196
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
156
1197
  status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
157
1198
  active: "active";
158
1199
  draft: "draft";
159
1200
  paused: "paused";
160
1201
  archived: "archived";
161
1202
  }>>>;
162
- tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1203
+ assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1204
+ type: z.ZodLiteral<"llm-rubric">;
1205
+ template: z.ZodEnum<{
1206
+ "task-completion": "task-completion";
1207
+ "code-correctness": "code-correctness";
1208
+ "doc-coverage": "doc-coverage";
1209
+ "mcp-input-validation": "mcp-input-validation";
1210
+ "mcp-output-correctness": "mcp-output-correctness";
1211
+ "mcp-error-handling": "mcp-error-handling";
1212
+ "mcp-security": "mcp-security";
1213
+ "factual-correctness": "factual-correctness";
1214
+ completeness: "completeness";
1215
+ currency: "currency";
1216
+ "process-quality": "process-quality";
1217
+ "agent-output": "agent-output";
1218
+ "agent-tool-usage": "agent-tool-usage";
1219
+ }>;
1220
+ criteria: z.ZodArray<z.ZodString>;
1221
+ weight: z.ZodOptional<z.ZodNumber>;
1222
+ }, z.core.$strip>, z.ZodObject<{
1223
+ type: z.ZodEnum<{
1224
+ "llm-rubric": "llm-rubric";
1225
+ contains: "contains";
1226
+ "contains-any": "contains-any";
1227
+ "contains-all": "contains-all";
1228
+ "not-contains": "not-contains";
1229
+ icontains: "icontains";
1230
+ "icontains-any": "icontains-any";
1231
+ regex: "regex";
1232
+ javascript: "javascript";
1233
+ similar: "similar";
1234
+ cost: "cost";
1235
+ latency: "latency";
1236
+ "file-exists": "file-exists";
1237
+ "file-contains": "file-contains";
1238
+ "command-succeeds": "command-succeeds";
1239
+ "diff-matches": "diff-matches";
1240
+ }>;
1241
+ value: z.ZodOptional<z.ZodUnknown>;
1242
+ threshold: z.ZodOptional<z.ZodNumber>;
1243
+ weight: z.ZodOptional<z.ZodNumber>;
1244
+ }, z.core.$loose>]>>>;
1245
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1246
+ ref: z.ZodString;
1247
+ }, z.core.$strip>, z.ZodObject<{
1248
+ inline: z.ZodString;
1249
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1250
+ key: z.ZodString;
1251
+ weight: z.ZodNumber;
1252
+ }, z.core.$strip>>>;
1253
+ }, z.core.$strip>]>>;
1254
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
1255
+ id: z.ZodString;
1256
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1257
+ }, z.core.$strip>>>;
1258
+ options: z.ZodOptional<z.ZodObject<{
1259
+ timeout: z.ZodOptional<z.ZodNumber>;
1260
+ cache: z.ZodOptional<z.ZodBoolean>;
1261
+ transformOutput: z.ZodOptional<z.ZodString>;
1262
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1263
+ }, z.core.$strip>>;
163
1264
  prompt: z.ZodOptional<z.ZodObject<{
164
1265
  template: z.ZodOptional<z.ZodString>;
165
1266
  text: z.ZodOptional<z.ZodString>;
166
1267
  systemMessage: z.ZodOptional<z.ZodString>;
167
1268
  vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
168
1269
  }, z.core.$strip>>;
1270
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1271
+ mode: z.ZodLiteral<"knowledge-probe">;
1272
+ probeStrategy: z.ZodOptional<z.ZodEnum<{
1273
+ "breadth-first": "breadth-first";
1274
+ "depth-first": "depth-first";
1275
+ "random-sample": "random-sample";
1276
+ "coverage-guided": "coverage-guided";
1277
+ }>>;
1278
+ knowledgeBase: z.ZodOptional<z.ZodObject<{
1279
+ type: z.ZodEnum<{
1280
+ "sanity-dataset": "sanity-dataset";
1281
+ "embeddings-index": "embeddings-index";
1282
+ "file-corpus": "file-corpus";
1283
+ }>;
1284
+ name: z.ZodString;
1285
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1286
+ }, z.core.$strip>>;
169
1287
  context: z.ZodOptional<z.ZodObject<{
170
1288
  docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
171
1289
  id: z.ZodString;
@@ -184,6 +1302,23 @@ export declare const CanonicalTaskFileSchema: z.ZodArray<z.ZodObject<{
184
1302
  }, z.core.$strip>]>>>;
185
1303
  fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
186
1304
  }, z.core.$strip>>;
1305
+ }, z.core.$strict>, z.ZodObject<{
1306
+ id: z.ZodString;
1307
+ title: z.ZodString;
1308
+ description: z.ZodOptional<z.ZodString>;
1309
+ area: z.ZodOptional<z.ZodString>;
1310
+ difficulty: z.ZodOptional<z.ZodEnum<{
1311
+ basic: "basic";
1312
+ intermediate: "intermediate";
1313
+ advanced: "advanced";
1314
+ }>>;
1315
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
1316
+ status: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
1317
+ active: "active";
1318
+ draft: "draft";
1319
+ paused: "paused";
1320
+ archived: "archived";
1321
+ }>>>;
187
1322
  assertions: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
188
1323
  type: z.ZodLiteral<"llm-rubric">;
189
1324
  template: z.ZodEnum<{
@@ -226,21 +1361,54 @@ export declare const CanonicalTaskFileSchema: z.ZodArray<z.ZodObject<{
226
1361
  threshold: z.ZodOptional<z.ZodNumber>;
227
1362
  weight: z.ZodOptional<z.ZodNumber>;
228
1363
  }, z.core.$loose>]>>>;
229
- referenceSolution: z.ZodOptional<z.ZodString>;
230
- docCoverage: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
231
- baseline: z.ZodOptional<z.ZodObject<{
232
- enabled: z.ZodOptional<z.ZodBoolean>;
233
- rubric: z.ZodOptional<z.ZodEnum<{
234
- full: "full";
235
- abbreviated: "abbreviated";
236
- none: "none";
237
- }>>;
1364
+ rubric: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1365
+ ref: z.ZodString;
1366
+ }, z.core.$strip>, z.ZodObject<{
1367
+ inline: z.ZodString;
1368
+ dimensions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1369
+ key: z.ZodString;
1370
+ weight: z.ZodNumber;
1371
+ }, z.core.$strip>>>;
1372
+ }, z.core.$strip>]>>;
1373
+ providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
1374
+ id: z.ZodString;
1375
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1376
+ }, z.core.$strip>>>;
1377
+ options: z.ZodOptional<z.ZodObject<{
1378
+ timeout: z.ZodOptional<z.ZodNumber>;
1379
+ cache: z.ZodOptional<z.ZodBoolean>;
1380
+ transformOutput: z.ZodOptional<z.ZodString>;
1381
+ promptfooOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1382
+ }, z.core.$strip>>;
1383
+ prompt: z.ZodOptional<z.ZodObject<{
1384
+ template: z.ZodOptional<z.ZodString>;
1385
+ text: z.ZodOptional<z.ZodString>;
1386
+ systemMessage: z.ZodOptional<z.ZodString>;
1387
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
238
1388
  }, z.core.$strip>>;
239
- rubric: z.ZodOptional<z.ZodUnknown>;
240
- providers: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
241
- options: z.ZodOptional<z.ZodUnknown>;
242
1389
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
243
- }, z.core.$loose>>;
1390
+ mode: z.ZodLiteral<"custom">;
1391
+ handler: z.ZodString;
1392
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1393
+ context: z.ZodOptional<z.ZodObject<{
1394
+ docs: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1395
+ id: z.ZodString;
1396
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1397
+ slug: z.ZodOptional<z.ZodString>;
1398
+ path: z.ZodOptional<z.ZodString>;
1399
+ }, z.core.$strip>, z.ZodObject<{
1400
+ slug: z.ZodString;
1401
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1402
+ }, z.core.$strip>, z.ZodObject<{
1403
+ path: z.ZodString;
1404
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1405
+ }, z.core.$strip>, z.ZodObject<{
1406
+ perspective: z.ZodString;
1407
+ reason: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1408
+ }, z.core.$strip>]>>>;
1409
+ fixtures: z.ZodOptional<z.ZodArray<z.ZodString>>;
1410
+ }, z.core.$strip>>;
1411
+ }, z.core.$strict>], "mode">>;
244
1412
  /**
245
1413
  * Parse and validate a task file's content against the canonical schema.
246
1414
  * Returns typed tasks or throws with a user-friendly Zod error message.