@felspar/sdk 0.0.0-stage → 0.1.1

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.
@@ -0,0 +1,3384 @@
1
+ import { z } from "zod";
2
+ declare const refusalSchema: z.ZodPipe<z.ZodObject<{
3
+ error: z.ZodString;
4
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
5
+ currentReleaseDigest: z.ZodOptional<z.ZodString>;
6
+ retryAfterSeconds: z.ZodOptional<z.ZodNumber>;
7
+ issues: z.ZodOptional<z.ZodArray<z.ZodObject<{
8
+ code: z.ZodString;
9
+ path: z.ZodArray<z.ZodString>;
10
+ }, z.core.$strip>>>;
11
+ }, z.core.$strip>, z.ZodTransform<{
12
+ issues?: {
13
+ code: string;
14
+ path: string[];
15
+ }[] | undefined;
16
+ fix?: string;
17
+ error: string;
18
+ path?: string[] | undefined;
19
+ currentReleaseDigest?: string | undefined;
20
+ retryAfterSeconds?: number | undefined;
21
+ }, {
22
+ error: string;
23
+ path?: string[] | undefined;
24
+ currentReleaseDigest?: string | undefined;
25
+ retryAfterSeconds?: number | undefined;
26
+ issues?: {
27
+ code: string;
28
+ path: string[];
29
+ }[] | undefined;
30
+ }>>;
31
+ export type FelsparRefusal = z.output<typeof refusalSchema>;
32
+ export declare class FelsparRequestError extends Error {
33
+ readonly status: number;
34
+ readonly refusal: FelsparRefusal | null;
35
+ constructor(options: ErrorOptions & {
36
+ status: number;
37
+ refusal: FelsparRefusal | null;
38
+ });
39
+ }
40
+ export declare function createHostedFelsparClient(configuration: {
41
+ origin: string;
42
+ session?: string;
43
+ agentKey?: string;
44
+ fetcher?: typeof fetch;
45
+ }): {
46
+ executeJob: (id: string, value: unknown) => Promise<{
47
+ status: string;
48
+ reason: string | null;
49
+ result: {
50
+ [x: string]: unknown;
51
+ executionId: string;
52
+ releaseId: string;
53
+ releaseDigest: string;
54
+ outcome: string | null;
55
+ scoring: unknown;
56
+ context: unknown;
57
+ receipt: unknown;
58
+ } | null;
59
+ }>;
60
+ resolveFacts: (id: string, value: Record<string, unknown>) => Promise<{
61
+ status: string;
62
+ reason: string | null;
63
+ result: {
64
+ [x: string]: unknown;
65
+ executionId: string;
66
+ releaseId: string;
67
+ releaseDigest: string;
68
+ outcome: string | null;
69
+ scoring: unknown;
70
+ context: unknown;
71
+ receipt: unknown;
72
+ } | null;
73
+ }>;
74
+ resolveJob: (id: string, value: unknown) => Promise<{
75
+ status: string;
76
+ reason: string | null;
77
+ result: {
78
+ [x: string]: unknown;
79
+ executionId: string;
80
+ releaseId: string;
81
+ releaseDigest: string;
82
+ outcome: string | null;
83
+ scoring: unknown;
84
+ context: unknown;
85
+ receipt: unknown;
86
+ } | null;
87
+ }>;
88
+ checkOutput: (job: string, value: unknown) => Promise<{
89
+ [x: string]: unknown;
90
+ status: "review_required" | "unavailable" | "pass" | "revise";
91
+ checkId: string;
92
+ output: string;
93
+ findings: Record<string, unknown>[];
94
+ receipt: {
95
+ [x: string]: unknown;
96
+ receiptDigest: string;
97
+ artifactDigest: string;
98
+ } | null;
99
+ decision: {
100
+ executionId: string;
101
+ receiptDigest: string;
102
+ };
103
+ actionAuthorized: false;
104
+ }>;
105
+ readOutputCheck: (job: string, checkId: string) => Promise<{
106
+ [x: string]: unknown;
107
+ status: "review_required" | "unavailable" | "pass" | "revise";
108
+ checkId: string;
109
+ output: string;
110
+ findings: Record<string, unknown>[];
111
+ receipt: {
112
+ [x: string]: unknown;
113
+ receiptDigest: string;
114
+ artifactDigest: string;
115
+ } | null;
116
+ decision: {
117
+ executionId: string;
118
+ receiptDigest: string;
119
+ };
120
+ actionAuthorized: false;
121
+ }>;
122
+ submitSource: (value: unknown) => Promise<{
123
+ id: string;
124
+ kind: "source" | "evidence" | "proposal" | "result" | "execution" | "release" | "approval";
125
+ payloadDigest: string;
126
+ objectKey: string;
127
+ parentId: string | null;
128
+ status: "revoked" | "active" | "released";
129
+ metadata: Record<string, unknown>;
130
+ }>;
131
+ submitProposal: (value: unknown) => Promise<{
132
+ id: string;
133
+ kind: "source" | "evidence" | "proposal" | "result" | "execution" | "release" | "approval";
134
+ payloadDigest: string;
135
+ objectKey: string;
136
+ parentId: string | null;
137
+ status: "revoked" | "active" | "released";
138
+ metadata: Record<string, unknown>;
139
+ }>;
140
+ approveProposal: (id: string, value: unknown) => Promise<{
141
+ id: string;
142
+ kind: "source" | "evidence" | "proposal" | "result" | "execution" | "release" | "approval";
143
+ payloadDigest: string;
144
+ objectKey: string;
145
+ parentId: string | null;
146
+ status: "revoked" | "active" | "released";
147
+ metadata: Record<string, unknown>;
148
+ }>;
149
+ releasePack: (id: string, value: unknown) => Promise<{
150
+ schema: "felspar.application-release.draft/v0";
151
+ scope: {
152
+ organizationId: string;
153
+ environmentId: string;
154
+ authorityId: string;
155
+ };
156
+ releaseId: string;
157
+ jobId: string;
158
+ trustDomain: string;
159
+ materialDigest: string;
160
+ approvalId: string;
161
+ approvedMaterialDigest: string;
162
+ releaseDigest: string;
163
+ status: "revoked" | "draft" | "released";
164
+ }>;
165
+ loadRelease: (id: string) => Promise<{
166
+ release: {
167
+ schema: "felspar.application-release.draft/v0";
168
+ scope: {
169
+ organizationId: string;
170
+ environmentId: string;
171
+ authorityId: string;
172
+ };
173
+ releaseId: string;
174
+ jobId: string;
175
+ trustDomain: string;
176
+ materialDigest: string;
177
+ approvalId: string;
178
+ approvedMaterialDigest: string;
179
+ releaseDigest: string;
180
+ status: "revoked" | "draft" | "released";
181
+ };
182
+ material: {
183
+ discovery: {
184
+ schema: "felspar.job-discovery.draft/v0";
185
+ requirements: {
186
+ schema: "felspar.requirements-request.draft/v0";
187
+ job: string;
188
+ trustDomain: string;
189
+ maxResponseBytes: number;
190
+ route: "normalized";
191
+ authority: {
192
+ catalog: {
193
+ proposal: {
194
+ candidateId: string;
195
+ source: {
196
+ sourceId: string;
197
+ revision: string;
198
+ contentDigest: string;
199
+ };
200
+ job: string;
201
+ trustDomain: string;
202
+ resolutionPolicy: "relative-date-required-types/direct-overrides/v5" | "relational-required-types/direct-overrides/v4" | "scored-required-types/mandatory-gates/v6" | "windowed-required-types/mandatory-gates/v7" | "conditional-required-types/direct-overrides/v3" | "strict-required-types/direct-overrides/v2" | "strict-required-values/direct-overrides/v1";
203
+ requirements: {
204
+ definition: {
205
+ key: string;
206
+ contentDigest: string;
207
+ sourceLocator: string;
208
+ allowedValues: string[];
209
+ } | {
210
+ key: string;
211
+ contentDigest: string;
212
+ sourceLocator: string;
213
+ valueRule: {
214
+ type: "boolean";
215
+ };
216
+ } | {
217
+ key: string;
218
+ contentDigest: string;
219
+ sourceLocator: string;
220
+ valueRule: {
221
+ type: "number";
222
+ integer: boolean;
223
+ minimum: number;
224
+ maximum: number;
225
+ };
226
+ unit: string;
227
+ } | {
228
+ key: string;
229
+ contentDigest: string;
230
+ sourceLocator: string;
231
+ valueRule: {
232
+ type: "date";
233
+ };
234
+ };
235
+ evidencePolicy: {
236
+ maxAgeMs: number;
237
+ allowedSourceClasses: string[];
238
+ trustDomain: string;
239
+ };
240
+ requiredWhen?: ({
241
+ key: string;
242
+ relativeDate: {
243
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
244
+ anchorKey: string;
245
+ offsetDays: number;
246
+ calendar: {
247
+ kind: "business_days";
248
+ id: string;
249
+ version: string;
250
+ validFrom: string;
251
+ validThrough: string;
252
+ workingWeekdays: number[];
253
+ holidays: string[];
254
+ } | {
255
+ kind: "calendar_days";
256
+ };
257
+ };
258
+ } | {
259
+ key: string;
260
+ relativeToDecision: {
261
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
262
+ offsetDays: number;
263
+ timeZone: string;
264
+ };
265
+ } | {
266
+ key: string;
267
+ equals: string | boolean;
268
+ } | {
269
+ key: string;
270
+ oneOf: string[];
271
+ } | {
272
+ key: string;
273
+ compare: {
274
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
275
+ value: number;
276
+ };
277
+ } | {
278
+ key: string;
279
+ compareFact: {
280
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
281
+ key: string;
282
+ };
283
+ } | {
284
+ key: string;
285
+ compareDate: {
286
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
287
+ value: string;
288
+ };
289
+ })[] | undefined;
290
+ }[];
291
+ allowedOutcomes: string[];
292
+ rules: {
293
+ id: string;
294
+ sourceLocator: string;
295
+ contentDigest: string;
296
+ when: ({
297
+ key: string;
298
+ relativeDate: {
299
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
300
+ anchorKey: string;
301
+ offsetDays: number;
302
+ calendar: {
303
+ kind: "business_days";
304
+ id: string;
305
+ version: string;
306
+ validFrom: string;
307
+ validThrough: string;
308
+ workingWeekdays: number[];
309
+ holidays: string[];
310
+ } | {
311
+ kind: "calendar_days";
312
+ };
313
+ };
314
+ } | {
315
+ key: string;
316
+ relativeToDecision: {
317
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
318
+ offsetDays: number;
319
+ timeZone: string;
320
+ };
321
+ } | {
322
+ key: string;
323
+ equals: string | boolean;
324
+ } | {
325
+ key: string;
326
+ oneOf: string[];
327
+ } | {
328
+ key: string;
329
+ compare: {
330
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
331
+ value: number;
332
+ };
333
+ } | {
334
+ key: string;
335
+ compareFact: {
336
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
337
+ key: string;
338
+ };
339
+ } | {
340
+ key: string;
341
+ compareDate: {
342
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
343
+ value: string;
344
+ };
345
+ })[];
346
+ outcome: string;
347
+ overrides: string[];
348
+ scoreRange?: {
349
+ minimumUnits: number;
350
+ maximumUnits: number;
351
+ } | undefined;
352
+ priority?: number | undefined;
353
+ }[];
354
+ scoring?: {
355
+ schema: "felspar.scoring.draft/v0";
356
+ scale: 1 | 100 | 10000;
357
+ missingPolicy: "withhold_total";
358
+ inactivePolicy: "exclude_without_redistribution";
359
+ criteria: {
360
+ maximumUnits: number;
361
+ otherwiseUnits: number;
362
+ cases: {
363
+ when: ({
364
+ key: string;
365
+ relativeDate: /*elided*/ any;
366
+ } | {
367
+ key: string;
368
+ relativeToDecision: /*elided*/ any;
369
+ } | {
370
+ key: string;
371
+ equals: string | boolean;
372
+ } | {
373
+ key: string;
374
+ oneOf: string[];
375
+ } | {
376
+ key: string;
377
+ compare: /*elided*/ any;
378
+ } | {
379
+ key: string;
380
+ compareFact: /*elided*/ any;
381
+ } | {
382
+ key: string;
383
+ compareDate: /*elided*/ any;
384
+ })[];
385
+ pointsUnits: number;
386
+ sourceLocator: string;
387
+ contentDigest: string;
388
+ id: string;
389
+ }[];
390
+ sourceLocator: string;
391
+ contentDigest: string;
392
+ id: string;
393
+ activeWhen?: ({
394
+ key: string;
395
+ relativeDate: {
396
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
397
+ anchorKey: string;
398
+ offsetDays: number;
399
+ calendar: /*elided*/ any | /*elided*/ any;
400
+ };
401
+ } | {
402
+ key: string;
403
+ relativeToDecision: {
404
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
405
+ offsetDays: number;
406
+ timeZone: string;
407
+ };
408
+ } | {
409
+ key: string;
410
+ equals: string | boolean;
411
+ } | {
412
+ key: string;
413
+ oneOf: string[];
414
+ } | {
415
+ key: string;
416
+ compare: {
417
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
418
+ value: number;
419
+ };
420
+ } | {
421
+ key: string;
422
+ compareFact: {
423
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
424
+ key: string;
425
+ };
426
+ } | {
427
+ key: string;
428
+ compareDate: {
429
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
430
+ value: string;
431
+ };
432
+ })[] | undefined;
433
+ }[];
434
+ } | undefined;
435
+ mandatoryGateRuleIds?: string[] | undefined;
436
+ };
437
+ bindings: {
438
+ key: string;
439
+ semanticBundleDigest: string;
440
+ evaluatorContractDigest: string;
441
+ }[];
442
+ materials: {
443
+ key: string;
444
+ semantics: {
445
+ source: {
446
+ candidate: {
447
+ schema: "felspar.pack-candidate.draft/v0";
448
+ candidateId: string;
449
+ authority: {
450
+ kind: "proposal";
451
+ job: string;
452
+ source: /*elided*/ any;
453
+ definition: /*elided*/ any;
454
+ allowedOutcomes: string[];
455
+ rules: /*elided*/ any[];
456
+ };
457
+ };
458
+ bundle: {
459
+ schema: "felspar.source-text-bundle.draft/v0";
460
+ sources: {
461
+ sourceId: string;
462
+ revision: string;
463
+ text: string;
464
+ offsetUnit: "utf16_code_units";
465
+ passages: /*elided*/ any[];
466
+ }[];
467
+ };
468
+ compositions: {
469
+ schema: "felspar.source-compositions.draft/v0";
470
+ transformContract: "felspar.ordered-source-passage-join/v1";
471
+ candidateDigest: string;
472
+ entries: {
473
+ source: /*elided*/ any;
474
+ locator: string;
475
+ parts: string[];
476
+ separator: "" | "\n" | "\n\n";
477
+ }[];
478
+ };
479
+ };
480
+ proposal: {
481
+ values: {
482
+ value: string;
483
+ definitionLocator: string;
484
+ inclusions: string[];
485
+ exclusions: string[];
486
+ examples: string[];
487
+ edgeCases: string[];
488
+ }[];
489
+ normalization: {
490
+ id: string;
491
+ version: string;
492
+ instructions: string;
493
+ };
494
+ };
495
+ };
496
+ evaluatorContract: {
497
+ schema: "felspar.evaluator-contract.draft/v0";
498
+ authority: "unapproved";
499
+ id: string;
500
+ version: string;
501
+ semanticDefinitionDigest: string;
502
+ normalizationProposalDigest: string;
503
+ evaluator: {
504
+ provider: string;
505
+ requestedModel: string;
506
+ resolvedModel: string;
507
+ };
508
+ calibration: {
509
+ id: string;
510
+ version: string;
511
+ contentDigest: string;
512
+ };
513
+ minimumSelectedProbability: number;
514
+ probabilityContract: "closed-distribution-unique-maximum/v1" | "closed-distribution-with-abstention/v1";
515
+ inputContextContract?: "job-entity-time/v1" | undefined;
516
+ };
517
+ }[];
518
+ normalizationContract?: "felspar.conditional-enum-normalization/v1" | undefined;
519
+ };
520
+ origins: {
521
+ schema: "felspar.required-origins.draft/v0";
522
+ authorityDigest: string;
523
+ entries: {
524
+ path: string;
525
+ origin: {
526
+ kind: "source_derived";
527
+ source: {
528
+ sourceId: string;
529
+ revision: string;
530
+ contentDigest: string;
531
+ };
532
+ locator: string;
533
+ passageDigest: string;
534
+ admissionRef: string;
535
+ } | {
536
+ kind: "owner_decision";
537
+ actorId: string;
538
+ decidedAt: string;
539
+ reviewRef: string;
540
+ } | {
541
+ kind: "deterministic_derivation";
542
+ transform: {
543
+ id: string;
544
+ version: string;
545
+ contentDigest: string;
546
+ };
547
+ inputs: string[];
548
+ } | {
549
+ kind: "unsupported_suggestion";
550
+ reason: string;
551
+ };
552
+ }[];
553
+ };
554
+ expectedAuthorityDigest: string;
555
+ expectedOriginsDigest: string;
556
+ bundle: {
557
+ schema: "felspar.source-text-bundle.draft/v0";
558
+ sources: {
559
+ sourceId: string;
560
+ revision: string;
561
+ text: string;
562
+ offsetUnit: "utf16_code_units";
563
+ passages: {
564
+ locator: string;
565
+ start: number;
566
+ end: number;
567
+ }[];
568
+ }[];
569
+ };
570
+ compositions: {
571
+ schema: "felspar.source-compositions.draft/v0";
572
+ transformContract: "felspar.ordered-source-passage-join/v1";
573
+ candidateDigest: string;
574
+ entries: {
575
+ source: {
576
+ sourceId: string;
577
+ revision: string;
578
+ };
579
+ locator: string;
580
+ parts: string[];
581
+ separator: "" | "\n" | "\n\n";
582
+ }[];
583
+ };
584
+ };
585
+ } | {
586
+ schema: "felspar.requirements-request.draft/v0";
587
+ job: string;
588
+ trustDomain: string;
589
+ maxResponseBytes: number;
590
+ route: "supplied";
591
+ authority: {
592
+ origins: {
593
+ schema: "felspar.required-origins.draft/v0";
594
+ authorityDigest: string;
595
+ entries: {
596
+ path: string;
597
+ origin: {
598
+ kind: "source_derived";
599
+ source: {
600
+ sourceId: string;
601
+ revision: string;
602
+ contentDigest: string;
603
+ };
604
+ locator: string;
605
+ passageDigest: string;
606
+ admissionRef: string;
607
+ } | {
608
+ kind: "owner_decision";
609
+ actorId: string;
610
+ decidedAt: string;
611
+ reviewRef: string;
612
+ } | {
613
+ kind: "deterministic_derivation";
614
+ transform: {
615
+ id: string;
616
+ version: string;
617
+ contentDigest: string;
618
+ };
619
+ inputs: string[];
620
+ } | {
621
+ kind: "unsupported_suggestion";
622
+ reason: string;
623
+ };
624
+ }[];
625
+ };
626
+ expectedAuthorityDigest: string;
627
+ expectedOriginsDigest: string;
628
+ bundle: {
629
+ schema: "felspar.source-text-bundle.draft/v0";
630
+ sources: {
631
+ sourceId: string;
632
+ revision: string;
633
+ text: string;
634
+ offsetUnit: "utf16_code_units";
635
+ passages: {
636
+ locator: string;
637
+ start: number;
638
+ end: number;
639
+ }[];
640
+ }[];
641
+ };
642
+ compositions: {
643
+ schema: "felspar.source-compositions.draft/v0";
644
+ transformContract: "felspar.ordered-source-passage-join/v1";
645
+ candidateDigest: string;
646
+ entries: {
647
+ source: {
648
+ sourceId: string;
649
+ revision: string;
650
+ };
651
+ locator: string;
652
+ parts: string[];
653
+ separator: "" | "\n" | "\n\n";
654
+ }[];
655
+ };
656
+ catalog: {
657
+ proposal: {
658
+ candidateId: string;
659
+ source: {
660
+ sourceId: string;
661
+ revision: string;
662
+ contentDigest: string;
663
+ };
664
+ job: string;
665
+ trustDomain: string;
666
+ resolutionPolicy: "relative-date-required-types/direct-overrides/v5" | "relational-required-types/direct-overrides/v4" | "scored-required-types/mandatory-gates/v6" | "windowed-required-types/mandatory-gates/v7" | "conditional-required-types/direct-overrides/v3" | "strict-required-types/direct-overrides/v2" | "strict-required-values/direct-overrides/v1";
667
+ requirements: {
668
+ definition: {
669
+ key: string;
670
+ contentDigest: string;
671
+ sourceLocator: string;
672
+ allowedValues: string[];
673
+ } | {
674
+ key: string;
675
+ contentDigest: string;
676
+ sourceLocator: string;
677
+ valueRule: {
678
+ type: "boolean";
679
+ };
680
+ } | {
681
+ key: string;
682
+ contentDigest: string;
683
+ sourceLocator: string;
684
+ valueRule: {
685
+ type: "number";
686
+ integer: boolean;
687
+ minimum: number;
688
+ maximum: number;
689
+ };
690
+ unit: string;
691
+ } | {
692
+ key: string;
693
+ contentDigest: string;
694
+ sourceLocator: string;
695
+ valueRule: {
696
+ type: "date";
697
+ };
698
+ };
699
+ evidencePolicy: {
700
+ maxAgeMs: number;
701
+ allowedSourceClasses: string[];
702
+ trustDomain: string;
703
+ };
704
+ requiredWhen?: ({
705
+ key: string;
706
+ relativeDate: {
707
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
708
+ anchorKey: string;
709
+ offsetDays: number;
710
+ calendar: {
711
+ kind: "business_days";
712
+ id: string;
713
+ version: string;
714
+ validFrom: string;
715
+ validThrough: string;
716
+ workingWeekdays: number[];
717
+ holidays: string[];
718
+ } | {
719
+ kind: "calendar_days";
720
+ };
721
+ };
722
+ } | {
723
+ key: string;
724
+ relativeToDecision: {
725
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
726
+ offsetDays: number;
727
+ timeZone: string;
728
+ };
729
+ } | {
730
+ key: string;
731
+ equals: string | boolean;
732
+ } | {
733
+ key: string;
734
+ oneOf: string[];
735
+ } | {
736
+ key: string;
737
+ compare: {
738
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
739
+ value: number;
740
+ };
741
+ } | {
742
+ key: string;
743
+ compareFact: {
744
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
745
+ key: string;
746
+ };
747
+ } | {
748
+ key: string;
749
+ compareDate: {
750
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
751
+ value: string;
752
+ };
753
+ })[] | undefined;
754
+ }[];
755
+ allowedOutcomes: string[];
756
+ rules: {
757
+ id: string;
758
+ sourceLocator: string;
759
+ contentDigest: string;
760
+ when: ({
761
+ key: string;
762
+ relativeDate: {
763
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
764
+ anchorKey: string;
765
+ offsetDays: number;
766
+ calendar: {
767
+ kind: "business_days";
768
+ id: string;
769
+ version: string;
770
+ validFrom: string;
771
+ validThrough: string;
772
+ workingWeekdays: number[];
773
+ holidays: string[];
774
+ } | {
775
+ kind: "calendar_days";
776
+ };
777
+ };
778
+ } | {
779
+ key: string;
780
+ relativeToDecision: {
781
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
782
+ offsetDays: number;
783
+ timeZone: string;
784
+ };
785
+ } | {
786
+ key: string;
787
+ equals: string | boolean;
788
+ } | {
789
+ key: string;
790
+ oneOf: string[];
791
+ } | {
792
+ key: string;
793
+ compare: {
794
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
795
+ value: number;
796
+ };
797
+ } | {
798
+ key: string;
799
+ compareFact: {
800
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
801
+ key: string;
802
+ };
803
+ } | {
804
+ key: string;
805
+ compareDate: {
806
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
807
+ value: string;
808
+ };
809
+ })[];
810
+ outcome: string;
811
+ overrides: string[];
812
+ scoreRange?: {
813
+ minimumUnits: number;
814
+ maximumUnits: number;
815
+ } | undefined;
816
+ priority?: number | undefined;
817
+ }[];
818
+ scoring?: {
819
+ schema: "felspar.scoring.draft/v0";
820
+ scale: 1 | 100 | 10000;
821
+ missingPolicy: "withhold_total";
822
+ inactivePolicy: "exclude_without_redistribution";
823
+ criteria: {
824
+ maximumUnits: number;
825
+ otherwiseUnits: number;
826
+ cases: {
827
+ when: ({
828
+ key: string;
829
+ relativeDate: /*elided*/ any;
830
+ } | {
831
+ key: string;
832
+ relativeToDecision: /*elided*/ any;
833
+ } | {
834
+ key: string;
835
+ equals: string | boolean;
836
+ } | {
837
+ key: string;
838
+ oneOf: string[];
839
+ } | {
840
+ key: string;
841
+ compare: /*elided*/ any;
842
+ } | {
843
+ key: string;
844
+ compareFact: /*elided*/ any;
845
+ } | {
846
+ key: string;
847
+ compareDate: /*elided*/ any;
848
+ })[];
849
+ pointsUnits: number;
850
+ sourceLocator: string;
851
+ contentDigest: string;
852
+ id: string;
853
+ }[];
854
+ sourceLocator: string;
855
+ contentDigest: string;
856
+ id: string;
857
+ activeWhen?: ({
858
+ key: string;
859
+ relativeDate: {
860
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
861
+ anchorKey: string;
862
+ offsetDays: number;
863
+ calendar: /*elided*/ any | /*elided*/ any;
864
+ };
865
+ } | {
866
+ key: string;
867
+ relativeToDecision: {
868
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
869
+ offsetDays: number;
870
+ timeZone: string;
871
+ };
872
+ } | {
873
+ key: string;
874
+ equals: string | boolean;
875
+ } | {
876
+ key: string;
877
+ oneOf: string[];
878
+ } | {
879
+ key: string;
880
+ compare: {
881
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
882
+ value: number;
883
+ };
884
+ } | {
885
+ key: string;
886
+ compareFact: {
887
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
888
+ key: string;
889
+ };
890
+ } | {
891
+ key: string;
892
+ compareDate: {
893
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
894
+ value: string;
895
+ };
896
+ })[] | undefined;
897
+ }[];
898
+ } | undefined;
899
+ mandatoryGateRuleIds?: string[] | undefined;
900
+ };
901
+ route: {
902
+ kind: "supplied_values";
903
+ contract: "felspar.declared-scalar-observations/v1";
904
+ };
905
+ };
906
+ };
907
+ };
908
+ compilation: {
909
+ artifact: {
910
+ format: "felspar.json-content-identity/v1";
911
+ canonicalJson: string;
912
+ contentDigest: string;
913
+ };
914
+ fixtures: ({
915
+ evidence: {
916
+ schema: "felspar.evidence-validation.draft/v0";
917
+ mode: "new_run";
918
+ job: string;
919
+ trustDomain: string;
920
+ observationChecks: {
921
+ schema: "felspar.observation-checks.draft/v0";
922
+ scope: {
923
+ schema: "felspar.evidence-scope.draft/v0";
924
+ entityId: string;
925
+ sources: {
926
+ sourceId: string;
927
+ revision: string;
928
+ locator: string;
929
+ contentDigest: string;
930
+ entityId: string;
931
+ }[];
932
+ observations: {
933
+ id: string;
934
+ evidence: {
935
+ sourceId: string;
936
+ revision: string;
937
+ locator: string;
938
+ contentDigest: string;
939
+ };
940
+ }[];
941
+ };
942
+ evaluationTime: string;
943
+ requirement: {
944
+ key: string;
945
+ definitionDigest: string;
946
+ maxAgeMs: number;
947
+ };
948
+ observations: {
949
+ id: string;
950
+ key: string;
951
+ definitionDigest: string;
952
+ observedAt: string;
953
+ }[];
954
+ };
955
+ allowedSourceClasses: string[];
956
+ valueRule: {
957
+ type: "number";
958
+ integer: boolean;
959
+ minimum: number;
960
+ maximum: number;
961
+ } | {
962
+ type: "enum";
963
+ values: string[];
964
+ } | {
965
+ type: "boolean";
966
+ } | {
967
+ type: "date";
968
+ };
969
+ collection: "error" | "observed" | "not_found" | "blocked" | "not_applicable" | "unattempted";
970
+ sources: {
971
+ reference: {
972
+ sourceId: string;
973
+ revision: string;
974
+ locator: string;
975
+ contentDigest: string;
976
+ };
977
+ sourceClass: string;
978
+ sensitivity: string;
979
+ }[];
980
+ admissions: {
981
+ reference: {
982
+ sourceId: string;
983
+ revision: string;
984
+ locator: string;
985
+ contentDigest: string;
986
+ };
987
+ purpose: string;
988
+ sensitivity: string;
989
+ trustDomain: string;
990
+ status: "approved" | "revoked";
991
+ }[];
992
+ normalization: "supplied" | "malformed" | "timeout" | "review_required";
993
+ results: {
994
+ id: string;
995
+ result: {
996
+ status: "supplied";
997
+ value: string | number | boolean;
998
+ } | {
999
+ status: "malformed" | "timeout" | "review_required";
1000
+ };
1001
+ }[];
1002
+ unit?: string | undefined;
1003
+ }[];
1004
+ id: string;
1005
+ scope: {
1006
+ entityId: string;
1007
+ evaluationTime: string;
1008
+ };
1009
+ expected: {
1010
+ status: "review_required" | "blocked" | "ready" | "gap" | "conflict" | "stale";
1011
+ outcome: string | null;
1012
+ selectedRuleIds: string[];
1013
+ scoring?: {
1014
+ status: "unresolved" | "ready";
1015
+ scale: 1 | 100 | 10000;
1016
+ maximumUnits: number;
1017
+ totalUnits: number | null;
1018
+ criteria: {
1019
+ criterionId: string;
1020
+ status: "matched" | "otherwise" | "inactive" | "unresolved";
1021
+ pointsUnits: number | null;
1022
+ matchedCaseId: string | null;
1023
+ }[];
1024
+ } | undefined;
1025
+ };
1026
+ } | {
1027
+ facts: {
1028
+ key: string;
1029
+ value: string | number | boolean;
1030
+ }[];
1031
+ id: string;
1032
+ scope: {
1033
+ entityId: string;
1034
+ evaluationTime: string;
1035
+ };
1036
+ expected: {
1037
+ status: "review_required" | "blocked" | "ready" | "gap" | "conflict" | "stale";
1038
+ outcome: string | null;
1039
+ selectedRuleIds: string[];
1040
+ scoring?: {
1041
+ status: "unresolved" | "ready";
1042
+ scale: 1 | 100 | 10000;
1043
+ maximumUnits: number;
1044
+ totalUnits: number | null;
1045
+ criteria: {
1046
+ criterionId: string;
1047
+ status: "matched" | "otherwise" | "inactive" | "unresolved";
1048
+ pointsUnits: number | null;
1049
+ matchedCaseId: string | null;
1050
+ }[];
1051
+ } | undefined;
1052
+ };
1053
+ })[];
1054
+ };
1055
+ expectedArtifactDigest: string;
1056
+ };
1057
+ expectedHandoffDigest: string;
1058
+ input: {
1059
+ invocation: {
1060
+ schema: "felspar.supplied-context.draft/v0";
1061
+ authority: {
1062
+ origins: {
1063
+ schema: "felspar.required-origins.draft/v0";
1064
+ authorityDigest: string;
1065
+ entries: {
1066
+ path: string;
1067
+ origin: {
1068
+ kind: "source_derived";
1069
+ source: {
1070
+ sourceId: string;
1071
+ revision: string;
1072
+ contentDigest: string;
1073
+ };
1074
+ locator: string;
1075
+ passageDigest: string;
1076
+ admissionRef: string;
1077
+ } | {
1078
+ kind: "owner_decision";
1079
+ actorId: string;
1080
+ decidedAt: string;
1081
+ reviewRef: string;
1082
+ } | {
1083
+ kind: "deterministic_derivation";
1084
+ transform: {
1085
+ id: string;
1086
+ version: string;
1087
+ contentDigest: string;
1088
+ };
1089
+ inputs: string[];
1090
+ } | {
1091
+ kind: "unsupported_suggestion";
1092
+ reason: string;
1093
+ };
1094
+ }[];
1095
+ };
1096
+ expectedAuthorityDigest: string;
1097
+ expectedOriginsDigest: string;
1098
+ bundle: {
1099
+ schema: "felspar.source-text-bundle.draft/v0";
1100
+ sources: {
1101
+ sourceId: string;
1102
+ revision: string;
1103
+ text: string;
1104
+ offsetUnit: "utf16_code_units";
1105
+ passages: {
1106
+ locator: string;
1107
+ start: number;
1108
+ end: number;
1109
+ }[];
1110
+ }[];
1111
+ };
1112
+ compositions: {
1113
+ schema: "felspar.source-compositions.draft/v0";
1114
+ transformContract: "felspar.ordered-source-passage-join/v1";
1115
+ candidateDigest: string;
1116
+ entries: {
1117
+ source: {
1118
+ sourceId: string;
1119
+ revision: string;
1120
+ };
1121
+ locator: string;
1122
+ parts: string[];
1123
+ separator: "" | "\n" | "\n\n";
1124
+ }[];
1125
+ };
1126
+ catalog: {
1127
+ proposal: {
1128
+ candidateId: string;
1129
+ source: {
1130
+ sourceId: string;
1131
+ revision: string;
1132
+ contentDigest: string;
1133
+ };
1134
+ job: string;
1135
+ trustDomain: string;
1136
+ resolutionPolicy: "relative-date-required-types/direct-overrides/v5" | "relational-required-types/direct-overrides/v4" | "scored-required-types/mandatory-gates/v6" | "windowed-required-types/mandatory-gates/v7" | "conditional-required-types/direct-overrides/v3" | "strict-required-types/direct-overrides/v2" | "strict-required-values/direct-overrides/v1";
1137
+ requirements: {
1138
+ definition: {
1139
+ key: string;
1140
+ contentDigest: string;
1141
+ sourceLocator: string;
1142
+ allowedValues: string[];
1143
+ } | {
1144
+ key: string;
1145
+ contentDigest: string;
1146
+ sourceLocator: string;
1147
+ valueRule: {
1148
+ type: "boolean";
1149
+ };
1150
+ } | {
1151
+ key: string;
1152
+ contentDigest: string;
1153
+ sourceLocator: string;
1154
+ valueRule: {
1155
+ type: "number";
1156
+ integer: boolean;
1157
+ minimum: number;
1158
+ maximum: number;
1159
+ };
1160
+ unit: string;
1161
+ } | {
1162
+ key: string;
1163
+ contentDigest: string;
1164
+ sourceLocator: string;
1165
+ valueRule: {
1166
+ type: "date";
1167
+ };
1168
+ };
1169
+ evidencePolicy: {
1170
+ maxAgeMs: number;
1171
+ allowedSourceClasses: string[];
1172
+ trustDomain: string;
1173
+ };
1174
+ requiredWhen?: ({
1175
+ key: string;
1176
+ relativeDate: {
1177
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1178
+ anchorKey: string;
1179
+ offsetDays: number;
1180
+ calendar: {
1181
+ kind: "business_days";
1182
+ id: string;
1183
+ version: string;
1184
+ validFrom: string;
1185
+ validThrough: string;
1186
+ workingWeekdays: number[];
1187
+ holidays: string[];
1188
+ } | {
1189
+ kind: "calendar_days";
1190
+ };
1191
+ };
1192
+ } | {
1193
+ key: string;
1194
+ relativeToDecision: {
1195
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1196
+ offsetDays: number;
1197
+ timeZone: string;
1198
+ };
1199
+ } | {
1200
+ key: string;
1201
+ equals: string | boolean;
1202
+ } | {
1203
+ key: string;
1204
+ oneOf: string[];
1205
+ } | {
1206
+ key: string;
1207
+ compare: {
1208
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1209
+ value: number;
1210
+ };
1211
+ } | {
1212
+ key: string;
1213
+ compareFact: {
1214
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1215
+ key: string;
1216
+ };
1217
+ } | {
1218
+ key: string;
1219
+ compareDate: {
1220
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1221
+ value: string;
1222
+ };
1223
+ })[] | undefined;
1224
+ }[];
1225
+ allowedOutcomes: string[];
1226
+ rules: {
1227
+ id: string;
1228
+ sourceLocator: string;
1229
+ contentDigest: string;
1230
+ when: ({
1231
+ key: string;
1232
+ relativeDate: {
1233
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1234
+ anchorKey: string;
1235
+ offsetDays: number;
1236
+ calendar: {
1237
+ kind: "business_days";
1238
+ id: string;
1239
+ version: string;
1240
+ validFrom: string;
1241
+ validThrough: string;
1242
+ workingWeekdays: number[];
1243
+ holidays: string[];
1244
+ } | {
1245
+ kind: "calendar_days";
1246
+ };
1247
+ };
1248
+ } | {
1249
+ key: string;
1250
+ relativeToDecision: {
1251
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1252
+ offsetDays: number;
1253
+ timeZone: string;
1254
+ };
1255
+ } | {
1256
+ key: string;
1257
+ equals: string | boolean;
1258
+ } | {
1259
+ key: string;
1260
+ oneOf: string[];
1261
+ } | {
1262
+ key: string;
1263
+ compare: {
1264
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1265
+ value: number;
1266
+ };
1267
+ } | {
1268
+ key: string;
1269
+ compareFact: {
1270
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1271
+ key: string;
1272
+ };
1273
+ } | {
1274
+ key: string;
1275
+ compareDate: {
1276
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1277
+ value: string;
1278
+ };
1279
+ })[];
1280
+ outcome: string;
1281
+ overrides: string[];
1282
+ scoreRange?: {
1283
+ minimumUnits: number;
1284
+ maximumUnits: number;
1285
+ } | undefined;
1286
+ priority?: number | undefined;
1287
+ }[];
1288
+ scoring?: {
1289
+ schema: "felspar.scoring.draft/v0";
1290
+ scale: 1 | 100 | 10000;
1291
+ missingPolicy: "withhold_total";
1292
+ inactivePolicy: "exclude_without_redistribution";
1293
+ criteria: {
1294
+ maximumUnits: number;
1295
+ otherwiseUnits: number;
1296
+ cases: {
1297
+ when: ({
1298
+ key: string;
1299
+ relativeDate: /*elided*/ any;
1300
+ } | {
1301
+ key: string;
1302
+ relativeToDecision: /*elided*/ any;
1303
+ } | {
1304
+ key: string;
1305
+ equals: string | boolean;
1306
+ } | {
1307
+ key: string;
1308
+ oneOf: string[];
1309
+ } | {
1310
+ key: string;
1311
+ compare: /*elided*/ any;
1312
+ } | {
1313
+ key: string;
1314
+ compareFact: /*elided*/ any;
1315
+ } | {
1316
+ key: string;
1317
+ compareDate: /*elided*/ any;
1318
+ })[];
1319
+ pointsUnits: number;
1320
+ sourceLocator: string;
1321
+ contentDigest: string;
1322
+ id: string;
1323
+ }[];
1324
+ sourceLocator: string;
1325
+ contentDigest: string;
1326
+ id: string;
1327
+ activeWhen?: ({
1328
+ key: string;
1329
+ relativeDate: {
1330
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1331
+ anchorKey: string;
1332
+ offsetDays: number;
1333
+ calendar: /*elided*/ any | /*elided*/ any;
1334
+ };
1335
+ } | {
1336
+ key: string;
1337
+ relativeToDecision: {
1338
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1339
+ offsetDays: number;
1340
+ timeZone: string;
1341
+ };
1342
+ } | {
1343
+ key: string;
1344
+ equals: string | boolean;
1345
+ } | {
1346
+ key: string;
1347
+ oneOf: string[];
1348
+ } | {
1349
+ key: string;
1350
+ compare: {
1351
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1352
+ value: number;
1353
+ };
1354
+ } | {
1355
+ key: string;
1356
+ compareFact: {
1357
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1358
+ key: string;
1359
+ };
1360
+ } | {
1361
+ key: string;
1362
+ compareDate: {
1363
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
1364
+ value: string;
1365
+ };
1366
+ })[] | undefined;
1367
+ }[];
1368
+ } | undefined;
1369
+ mandatoryGateRuleIds?: string[] | undefined;
1370
+ };
1371
+ route: {
1372
+ kind: "supplied_values";
1373
+ contract: "felspar.declared-scalar-observations/v1";
1374
+ };
1375
+ };
1376
+ };
1377
+ request: {
1378
+ job: string;
1379
+ scope: {
1380
+ entityId: string;
1381
+ evaluationTime: string;
1382
+ };
1383
+ trustDomain: string;
1384
+ expectedArtifactDigest: string;
1385
+ };
1386
+ compilation: {
1387
+ artifact: {
1388
+ format: "felspar.json-content-identity/v1";
1389
+ canonicalJson: string;
1390
+ contentDigest: string;
1391
+ };
1392
+ fixtures: ({
1393
+ evidence: {
1394
+ schema: "felspar.evidence-validation.draft/v0";
1395
+ mode: "new_run";
1396
+ job: string;
1397
+ trustDomain: string;
1398
+ observationChecks: {
1399
+ schema: "felspar.observation-checks.draft/v0";
1400
+ scope: {
1401
+ schema: "felspar.evidence-scope.draft/v0";
1402
+ entityId: string;
1403
+ sources: {
1404
+ sourceId: string;
1405
+ revision: string;
1406
+ locator: string;
1407
+ contentDigest: string;
1408
+ entityId: string;
1409
+ }[];
1410
+ observations: {
1411
+ id: string;
1412
+ evidence: {
1413
+ sourceId: string;
1414
+ revision: string;
1415
+ locator: string;
1416
+ contentDigest: string;
1417
+ };
1418
+ }[];
1419
+ };
1420
+ evaluationTime: string;
1421
+ requirement: {
1422
+ key: string;
1423
+ definitionDigest: string;
1424
+ maxAgeMs: number;
1425
+ };
1426
+ observations: {
1427
+ id: string;
1428
+ key: string;
1429
+ definitionDigest: string;
1430
+ observedAt: string;
1431
+ }[];
1432
+ };
1433
+ allowedSourceClasses: string[];
1434
+ valueRule: {
1435
+ type: "number";
1436
+ integer: boolean;
1437
+ minimum: number;
1438
+ maximum: number;
1439
+ } | {
1440
+ type: "enum";
1441
+ values: string[];
1442
+ } | {
1443
+ type: "boolean";
1444
+ } | {
1445
+ type: "date";
1446
+ };
1447
+ collection: "error" | "observed" | "not_found" | "blocked" | "not_applicable" | "unattempted";
1448
+ sources: {
1449
+ reference: {
1450
+ sourceId: string;
1451
+ revision: string;
1452
+ locator: string;
1453
+ contentDigest: string;
1454
+ };
1455
+ sourceClass: string;
1456
+ sensitivity: string;
1457
+ }[];
1458
+ admissions: {
1459
+ reference: {
1460
+ sourceId: string;
1461
+ revision: string;
1462
+ locator: string;
1463
+ contentDigest: string;
1464
+ };
1465
+ purpose: string;
1466
+ sensitivity: string;
1467
+ trustDomain: string;
1468
+ status: "approved" | "revoked";
1469
+ }[];
1470
+ normalization: "supplied" | "malformed" | "timeout" | "review_required";
1471
+ results: {
1472
+ id: string;
1473
+ result: {
1474
+ status: "supplied";
1475
+ value: string | number | boolean;
1476
+ } | {
1477
+ status: "malformed" | "timeout" | "review_required";
1478
+ };
1479
+ }[];
1480
+ unit?: string | undefined;
1481
+ }[];
1482
+ id: string;
1483
+ scope: {
1484
+ entityId: string;
1485
+ evaluationTime: string;
1486
+ };
1487
+ expected: {
1488
+ status: "review_required" | "blocked" | "ready" | "gap" | "conflict" | "stale";
1489
+ outcome: string | null;
1490
+ selectedRuleIds: string[];
1491
+ scoring?: {
1492
+ status: "unresolved" | "ready";
1493
+ scale: 1 | 100 | 10000;
1494
+ maximumUnits: number;
1495
+ totalUnits: number | null;
1496
+ criteria: {
1497
+ criterionId: string;
1498
+ status: "matched" | "otherwise" | "inactive" | "unresolved";
1499
+ pointsUnits: number | null;
1500
+ matchedCaseId: string | null;
1501
+ }[];
1502
+ } | undefined;
1503
+ };
1504
+ } | {
1505
+ facts: {
1506
+ key: string;
1507
+ value: string | number | boolean;
1508
+ }[];
1509
+ id: string;
1510
+ scope: {
1511
+ entityId: string;
1512
+ evaluationTime: string;
1513
+ };
1514
+ expected: {
1515
+ status: "review_required" | "blocked" | "ready" | "gap" | "conflict" | "stale";
1516
+ outcome: string | null;
1517
+ selectedRuleIds: string[];
1518
+ scoring?: {
1519
+ status: "unresolved" | "ready";
1520
+ scale: 1 | 100 | 10000;
1521
+ maximumUnits: number;
1522
+ totalUnits: number | null;
1523
+ criteria: {
1524
+ criterionId: string;
1525
+ status: "matched" | "otherwise" | "inactive" | "unresolved";
1526
+ pointsUnits: number | null;
1527
+ matchedCaseId: string | null;
1528
+ }[];
1529
+ } | undefined;
1530
+ };
1531
+ })[];
1532
+ };
1533
+ plan: {
1534
+ schema: "felspar.context-selection.draft/v0" | "felspar.context-selection.draft/v1" | "felspar.context-selection.draft/v2";
1535
+ authority: "unapproved";
1536
+ artifactDigest: string;
1537
+ job: string;
1538
+ trustDomain: string;
1539
+ outputSurface: string;
1540
+ entries: {
1541
+ id: string;
1542
+ primitive: "gaps" | "actors" | "decision_criteria" | "source_signals" | "needs_and_requirements" | "evidence_and_proof" | "boundaries" | "output_contracts" | "routing_jobs" | "evaluations";
1543
+ body: string;
1544
+ source: {
1545
+ sourceId: string;
1546
+ revision: string;
1547
+ locator: string;
1548
+ contentDigest: string;
1549
+ };
1550
+ dependencies: string[];
1551
+ conflictsWith: string[];
1552
+ }[];
1553
+ requiredIds: string[];
1554
+ budget: {
1555
+ maxEntries: number;
1556
+ maxBytes: number;
1557
+ };
1558
+ groups: {
1559
+ id: string;
1560
+ min: number;
1561
+ max: number;
1562
+ candidates: {
1563
+ entryId: string;
1564
+ outcomes: string[];
1565
+ when: {
1566
+ key: string;
1567
+ equals: string;
1568
+ }[];
1569
+ priority: number;
1570
+ }[];
1571
+ }[];
1572
+ evaluationValidation?: {
1573
+ contract: "felspar.required-evaluations/v1";
1574
+ recipes: {
1575
+ entryId: string;
1576
+ expectedRecipeDigest: string;
1577
+ }[];
1578
+ maxRequests: number;
1579
+ maxTotalBytes: number;
1580
+ } | undefined;
1581
+ outputValidation?: {
1582
+ contract: "felspar.structured-output-preparation/v1";
1583
+ entryId: string;
1584
+ expectedContractDigest: string;
1585
+ } | undefined;
1586
+ unresolvedGuidanceEntryId?: string | undefined;
1587
+ attempts?: {
1588
+ max: number;
1589
+ withProgress: number;
1590
+ } | undefined;
1591
+ };
1592
+ expectedPlanDigest: string;
1593
+ requestedSurface: string;
1594
+ contextOrigins: {
1595
+ bundle: {
1596
+ schema: "felspar.source-text-bundle.draft/v0";
1597
+ sources: {
1598
+ sourceId: string;
1599
+ revision: string;
1600
+ text: string;
1601
+ offsetUnit: "utf16_code_units";
1602
+ passages: {
1603
+ locator: string;
1604
+ start: number;
1605
+ end: number;
1606
+ }[];
1607
+ }[];
1608
+ };
1609
+ compositions: {
1610
+ schema: "felspar.source-compositions.draft/v0";
1611
+ transformContract: "felspar.ordered-source-passage-join/v1";
1612
+ candidateDigest: string;
1613
+ entries: {
1614
+ source: {
1615
+ sourceId: string;
1616
+ revision: string;
1617
+ };
1618
+ locator: string;
1619
+ parts: string[];
1620
+ separator: "" | "\n" | "\n\n";
1621
+ }[];
1622
+ };
1623
+ origins: {
1624
+ schema: "felspar.context-origins.draft/v0";
1625
+ planDigest: string;
1626
+ entries: {
1627
+ entryId: string;
1628
+ origin: {
1629
+ kind: "source_derived";
1630
+ source: {
1631
+ sourceId: string;
1632
+ revision: string;
1633
+ contentDigest: string;
1634
+ };
1635
+ locator: string;
1636
+ passageDigest: string;
1637
+ admissionRef: string;
1638
+ } | {
1639
+ kind: "owner_decision";
1640
+ actorId: string;
1641
+ decidedAt: string;
1642
+ reviewRef: string;
1643
+ } | {
1644
+ kind: "deterministic_derivation";
1645
+ transform: {
1646
+ id: string;
1647
+ version: string;
1648
+ contentDigest: string;
1649
+ };
1650
+ inputs: string[];
1651
+ } | {
1652
+ kind: "unsupported_suggestion";
1653
+ reason: string;
1654
+ };
1655
+ }[];
1656
+ };
1657
+ };
1658
+ };
1659
+ manifest: {
1660
+ schema: "felspar.typed-interpretation-manifest.draft/v0";
1661
+ authority: "unapproved";
1662
+ authorityDigest: string;
1663
+ recipes: ({
1664
+ kind: "scalar";
1665
+ definitionDigest: string;
1666
+ id: string;
1667
+ version: string;
1668
+ instructions: string;
1669
+ evaluator: {
1670
+ provider: string;
1671
+ requestedModel: string;
1672
+ resolvedModel: string;
1673
+ };
1674
+ calibration: {
1675
+ id: string;
1676
+ version: string;
1677
+ contentDigest: string;
1678
+ };
1679
+ confidenceContract: "candidate-selected-probability/v1" | "declared-scalar-confidence/v1";
1680
+ minimumConfidence: number;
1681
+ key: string;
1682
+ parser?: {
1683
+ version: "iso-currency-decimal/v1";
1684
+ currency: string;
1685
+ } | {
1686
+ version: "iso-calendar-date/v1";
1687
+ } | undefined;
1688
+ reader?: {
1689
+ version: "felspar.exact-number/v2";
1690
+ unit: {
1691
+ kind: "currency";
1692
+ code: string;
1693
+ } | {
1694
+ kind: "percent";
1695
+ } | {
1696
+ kind: "count";
1697
+ words: string[];
1698
+ };
1699
+ numberStyle: "1,234.56" | "1.234,56" | "1 234,56" | "1'234.56";
1700
+ } | {
1701
+ version: "felspar.exact-date/v2";
1702
+ dateOrder: "unstated" | "month-first" | "day-first";
1703
+ } | undefined;
1704
+ } | {
1705
+ kind: "enum";
1706
+ semanticBundleDigest: string;
1707
+ evaluatorContractDigest: string;
1708
+ key: string;
1709
+ })[];
1710
+ };
1711
+ expectedManifestDigest: string;
1712
+ packets: ({
1713
+ key: string;
1714
+ kind: "scalar";
1715
+ evidence: {
1716
+ schema: "felspar.evidence-validation.draft/v0";
1717
+ mode: "new_run";
1718
+ job: string;
1719
+ trustDomain: string;
1720
+ observationChecks: {
1721
+ schema: "felspar.observation-checks.draft/v0";
1722
+ scope: {
1723
+ schema: "felspar.evidence-scope.draft/v0";
1724
+ entityId: string;
1725
+ sources: {
1726
+ sourceId: string;
1727
+ revision: string;
1728
+ locator: string;
1729
+ contentDigest: string;
1730
+ entityId: string;
1731
+ }[];
1732
+ observations: {
1733
+ id: string;
1734
+ evidence: {
1735
+ sourceId: string;
1736
+ revision: string;
1737
+ locator: string;
1738
+ contentDigest: string;
1739
+ };
1740
+ }[];
1741
+ };
1742
+ evaluationTime: string;
1743
+ requirement: {
1744
+ key: string;
1745
+ definitionDigest: string;
1746
+ maxAgeMs: number;
1747
+ };
1748
+ observations: {
1749
+ id: string;
1750
+ key: string;
1751
+ definitionDigest: string;
1752
+ observedAt: string;
1753
+ }[];
1754
+ };
1755
+ allowedSourceClasses: string[];
1756
+ valueRule: {
1757
+ type: "number";
1758
+ integer: boolean;
1759
+ minimum: number;
1760
+ maximum: number;
1761
+ } | {
1762
+ type: "enum";
1763
+ values: string[];
1764
+ } | {
1765
+ type: "boolean";
1766
+ } | {
1767
+ type: "date";
1768
+ };
1769
+ collection: "error" | "observed" | "not_found" | "blocked" | "not_applicable" | "unattempted";
1770
+ sources: {
1771
+ reference: {
1772
+ sourceId: string;
1773
+ revision: string;
1774
+ locator: string;
1775
+ contentDigest: string;
1776
+ };
1777
+ sourceClass: string;
1778
+ sensitivity: string;
1779
+ }[];
1780
+ admissions: {
1781
+ reference: {
1782
+ sourceId: string;
1783
+ revision: string;
1784
+ locator: string;
1785
+ contentDigest: string;
1786
+ };
1787
+ purpose: string;
1788
+ sensitivity: string;
1789
+ trustDomain: string;
1790
+ status: "approved" | "revoked";
1791
+ }[];
1792
+ unit?: string | undefined;
1793
+ };
1794
+ } | {
1795
+ key: string;
1796
+ kind: "enum";
1797
+ input: {
1798
+ schema: "felspar.normalized-evidence.draft/v0";
1799
+ evidence: {
1800
+ schema: "felspar.evidence-validation.draft/v0";
1801
+ mode: "new_run";
1802
+ job: string;
1803
+ trustDomain: string;
1804
+ observationChecks: {
1805
+ schema: "felspar.observation-checks.draft/v0";
1806
+ scope: {
1807
+ schema: "felspar.evidence-scope.draft/v0";
1808
+ entityId: string;
1809
+ sources: {
1810
+ sourceId: string;
1811
+ revision: string;
1812
+ locator: string;
1813
+ contentDigest: string;
1814
+ entityId: string;
1815
+ }[];
1816
+ observations: {
1817
+ id: string;
1818
+ evidence: {
1819
+ sourceId: string;
1820
+ revision: string;
1821
+ locator: string;
1822
+ contentDigest: string;
1823
+ };
1824
+ }[];
1825
+ };
1826
+ evaluationTime: string;
1827
+ requirement: {
1828
+ key: string;
1829
+ definitionDigest: string;
1830
+ maxAgeMs: number;
1831
+ };
1832
+ observations: {
1833
+ id: string;
1834
+ key: string;
1835
+ definitionDigest: string;
1836
+ observedAt: string;
1837
+ }[];
1838
+ };
1839
+ allowedSourceClasses: string[];
1840
+ collection: "error" | "observed" | "not_found" | "blocked" | "not_applicable" | "unattempted";
1841
+ sources: {
1842
+ reference: {
1843
+ sourceId: string;
1844
+ revision: string;
1845
+ locator: string;
1846
+ contentDigest: string;
1847
+ };
1848
+ sourceClass: string;
1849
+ sensitivity: string;
1850
+ }[];
1851
+ admissions: {
1852
+ reference: {
1853
+ sourceId: string;
1854
+ revision: string;
1855
+ locator: string;
1856
+ contentDigest: string;
1857
+ };
1858
+ purpose: string;
1859
+ sensitivity: string;
1860
+ trustDomain: string;
1861
+ status: "approved" | "revoked";
1862
+ }[];
1863
+ };
1864
+ proposal: {
1865
+ candidate: {
1866
+ schema: "felspar.pack-candidate.draft/v0";
1867
+ candidateId: string;
1868
+ authority: {
1869
+ kind: "proposal";
1870
+ job: string;
1871
+ source: {
1872
+ sourceId: string;
1873
+ revision: string;
1874
+ contentDigest: string;
1875
+ };
1876
+ definition: {
1877
+ key: string;
1878
+ contentDigest: string;
1879
+ sourceLocator: string;
1880
+ allowedValues: string[];
1881
+ };
1882
+ allowedOutcomes: string[];
1883
+ rules: {
1884
+ id: string;
1885
+ sourceLocator: string;
1886
+ contentDigest: string;
1887
+ when: {
1888
+ key: string;
1889
+ equals: string;
1890
+ };
1891
+ outcome: string;
1892
+ }[];
1893
+ };
1894
+ };
1895
+ evidencePolicy: {
1896
+ maxAgeMs: number;
1897
+ allowedSourceClasses: string[];
1898
+ trustDomain: string;
1899
+ };
1900
+ resolutionPolicy: "strict-single-value/v1";
1901
+ };
1902
+ semantics: {
1903
+ source: {
1904
+ candidate: {
1905
+ schema: "felspar.pack-candidate.draft/v0";
1906
+ candidateId: string;
1907
+ authority: {
1908
+ kind: "proposal";
1909
+ job: string;
1910
+ source: {
1911
+ sourceId: string;
1912
+ revision: string;
1913
+ contentDigest: string;
1914
+ };
1915
+ definition: {
1916
+ key: string;
1917
+ contentDigest: string;
1918
+ sourceLocator: string;
1919
+ allowedValues: string[];
1920
+ };
1921
+ allowedOutcomes: string[];
1922
+ rules: {
1923
+ id: string;
1924
+ sourceLocator: string;
1925
+ contentDigest: string;
1926
+ when: {
1927
+ key: string;
1928
+ equals: string;
1929
+ };
1930
+ outcome: string;
1931
+ }[];
1932
+ };
1933
+ };
1934
+ bundle: {
1935
+ schema: "felspar.source-text-bundle.draft/v0";
1936
+ sources: {
1937
+ sourceId: string;
1938
+ revision: string;
1939
+ text: string;
1940
+ offsetUnit: "utf16_code_units";
1941
+ passages: {
1942
+ locator: string;
1943
+ start: number;
1944
+ end: number;
1945
+ }[];
1946
+ }[];
1947
+ };
1948
+ compositions: {
1949
+ schema: "felspar.source-compositions.draft/v0";
1950
+ transformContract: "felspar.ordered-source-passage-join/v1";
1951
+ candidateDigest: string;
1952
+ entries: {
1953
+ source: {
1954
+ sourceId: string;
1955
+ revision: string;
1956
+ };
1957
+ locator: string;
1958
+ parts: string[];
1959
+ separator: "" | "\n" | "\n\n";
1960
+ }[];
1961
+ };
1962
+ };
1963
+ proposal: {
1964
+ values: {
1965
+ value: string;
1966
+ definitionLocator: string;
1967
+ inclusions: string[];
1968
+ exclusions: string[];
1969
+ examples: string[];
1970
+ edgeCases: string[];
1971
+ }[];
1972
+ normalization: {
1973
+ id: string;
1974
+ version: string;
1975
+ instructions: string;
1976
+ };
1977
+ };
1978
+ };
1979
+ expectedSemanticBundleDigest: string;
1980
+ evaluatorContract: {
1981
+ schema: "felspar.evaluator-contract.draft/v0";
1982
+ authority: "unapproved";
1983
+ id: string;
1984
+ version: string;
1985
+ semanticDefinitionDigest: string;
1986
+ normalizationProposalDigest: string;
1987
+ evaluator: {
1988
+ provider: string;
1989
+ requestedModel: string;
1990
+ resolvedModel: string;
1991
+ };
1992
+ calibration: {
1993
+ id: string;
1994
+ version: string;
1995
+ contentDigest: string;
1996
+ };
1997
+ minimumSelectedProbability: number;
1998
+ probabilityContract: "closed-distribution-unique-maximum/v1" | "closed-distribution-with-abstention/v1";
1999
+ inputContextContract?: "job-entity-time/v1" | undefined;
2000
+ };
2001
+ expectedEvaluatorContractDigest: string;
2002
+ answerType?: "boolean" | undefined;
2003
+ };
2004
+ })[];
2005
+ passages: {
2006
+ reference: {
2007
+ sourceId: string;
2008
+ revision: string;
2009
+ locator: string;
2010
+ contentDigest: string;
2011
+ };
2012
+ text: string;
2013
+ }[];
2014
+ schema: "felspar.evaluation-requests.draft/v1";
2015
+ limits: {
2016
+ maxQuestions: number;
2017
+ maxRequestBytes: number;
2018
+ maxResponseBytes: number;
2019
+ maxRounds: number;
2020
+ maxTotalQuestions: number;
2021
+ maxTotalRequestBytes: number;
2022
+ maxTotalResponseBytes: number;
2023
+ };
2024
+ };
2025
+ } | {
2026
+ schema: "felspar.application-job-material.draft/v2";
2027
+ discovery: {
2028
+ schema: "felspar.job-discovery-reference.draft/v1";
2029
+ route: "supplied" | "normalized";
2030
+ job: string;
2031
+ trustDomain: string;
2032
+ maxResponseBytes: number;
2033
+ expectedArtifactDigest: string;
2034
+ };
2035
+ expectedHandoffDigest: string;
2036
+ input: {
2037
+ invocation: {
2038
+ schema: "felspar.supplied-context.draft/v0";
2039
+ authority: {
2040
+ origins: {
2041
+ schema: "felspar.required-origins.draft/v0";
2042
+ authorityDigest: string;
2043
+ entries: {
2044
+ path: string;
2045
+ origin: {
2046
+ kind: "source_derived";
2047
+ source: {
2048
+ sourceId: string;
2049
+ revision: string;
2050
+ contentDigest: string;
2051
+ };
2052
+ locator: string;
2053
+ passageDigest: string;
2054
+ admissionRef: string;
2055
+ } | {
2056
+ kind: "owner_decision";
2057
+ actorId: string;
2058
+ decidedAt: string;
2059
+ reviewRef: string;
2060
+ } | {
2061
+ kind: "deterministic_derivation";
2062
+ transform: {
2063
+ id: string;
2064
+ version: string;
2065
+ contentDigest: string;
2066
+ };
2067
+ inputs: string[];
2068
+ } | {
2069
+ kind: "unsupported_suggestion";
2070
+ reason: string;
2071
+ };
2072
+ }[];
2073
+ };
2074
+ expectedAuthorityDigest: string;
2075
+ expectedOriginsDigest: string;
2076
+ bundle: {
2077
+ schema: "felspar.source-text-bundle.draft/v0";
2078
+ sources: {
2079
+ sourceId: string;
2080
+ revision: string;
2081
+ text: string;
2082
+ offsetUnit: "utf16_code_units";
2083
+ passages: {
2084
+ locator: string;
2085
+ start: number;
2086
+ end: number;
2087
+ }[];
2088
+ }[];
2089
+ };
2090
+ compositions: {
2091
+ schema: "felspar.source-compositions.draft/v0";
2092
+ transformContract: "felspar.ordered-source-passage-join/v1";
2093
+ candidateDigest: string;
2094
+ entries: {
2095
+ source: {
2096
+ sourceId: string;
2097
+ revision: string;
2098
+ };
2099
+ locator: string;
2100
+ parts: string[];
2101
+ separator: "" | "\n" | "\n\n";
2102
+ }[];
2103
+ };
2104
+ catalog: {
2105
+ proposal: {
2106
+ candidateId: string;
2107
+ source: {
2108
+ sourceId: string;
2109
+ revision: string;
2110
+ contentDigest: string;
2111
+ };
2112
+ job: string;
2113
+ trustDomain: string;
2114
+ resolutionPolicy: "relative-date-required-types/direct-overrides/v5" | "relational-required-types/direct-overrides/v4" | "scored-required-types/mandatory-gates/v6" | "windowed-required-types/mandatory-gates/v7" | "conditional-required-types/direct-overrides/v3" | "strict-required-types/direct-overrides/v2" | "strict-required-values/direct-overrides/v1";
2115
+ requirements: {
2116
+ definition: {
2117
+ key: string;
2118
+ contentDigest: string;
2119
+ sourceLocator: string;
2120
+ allowedValues: string[];
2121
+ } | {
2122
+ key: string;
2123
+ contentDigest: string;
2124
+ sourceLocator: string;
2125
+ valueRule: {
2126
+ type: "boolean";
2127
+ };
2128
+ } | {
2129
+ key: string;
2130
+ contentDigest: string;
2131
+ sourceLocator: string;
2132
+ valueRule: {
2133
+ type: "number";
2134
+ integer: boolean;
2135
+ minimum: number;
2136
+ maximum: number;
2137
+ };
2138
+ unit: string;
2139
+ } | {
2140
+ key: string;
2141
+ contentDigest: string;
2142
+ sourceLocator: string;
2143
+ valueRule: {
2144
+ type: "date";
2145
+ };
2146
+ };
2147
+ evidencePolicy: {
2148
+ maxAgeMs: number;
2149
+ allowedSourceClasses: string[];
2150
+ trustDomain: string;
2151
+ };
2152
+ requiredWhen?: ({
2153
+ key: string;
2154
+ relativeDate: {
2155
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2156
+ anchorKey: string;
2157
+ offsetDays: number;
2158
+ calendar: {
2159
+ kind: "business_days";
2160
+ id: string;
2161
+ version: string;
2162
+ validFrom: string;
2163
+ validThrough: string;
2164
+ workingWeekdays: number[];
2165
+ holidays: string[];
2166
+ } | {
2167
+ kind: "calendar_days";
2168
+ };
2169
+ };
2170
+ } | {
2171
+ key: string;
2172
+ relativeToDecision: {
2173
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2174
+ offsetDays: number;
2175
+ timeZone: string;
2176
+ };
2177
+ } | {
2178
+ key: string;
2179
+ equals: string | boolean;
2180
+ } | {
2181
+ key: string;
2182
+ oneOf: string[];
2183
+ } | {
2184
+ key: string;
2185
+ compare: {
2186
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2187
+ value: number;
2188
+ };
2189
+ } | {
2190
+ key: string;
2191
+ compareFact: {
2192
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2193
+ key: string;
2194
+ };
2195
+ } | {
2196
+ key: string;
2197
+ compareDate: {
2198
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2199
+ value: string;
2200
+ };
2201
+ })[] | undefined;
2202
+ }[];
2203
+ allowedOutcomes: string[];
2204
+ rules: {
2205
+ id: string;
2206
+ sourceLocator: string;
2207
+ contentDigest: string;
2208
+ when: ({
2209
+ key: string;
2210
+ relativeDate: {
2211
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2212
+ anchorKey: string;
2213
+ offsetDays: number;
2214
+ calendar: {
2215
+ kind: "business_days";
2216
+ id: string;
2217
+ version: string;
2218
+ validFrom: string;
2219
+ validThrough: string;
2220
+ workingWeekdays: number[];
2221
+ holidays: string[];
2222
+ } | {
2223
+ kind: "calendar_days";
2224
+ };
2225
+ };
2226
+ } | {
2227
+ key: string;
2228
+ relativeToDecision: {
2229
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2230
+ offsetDays: number;
2231
+ timeZone: string;
2232
+ };
2233
+ } | {
2234
+ key: string;
2235
+ equals: string | boolean;
2236
+ } | {
2237
+ key: string;
2238
+ oneOf: string[];
2239
+ } | {
2240
+ key: string;
2241
+ compare: {
2242
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2243
+ value: number;
2244
+ };
2245
+ } | {
2246
+ key: string;
2247
+ compareFact: {
2248
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2249
+ key: string;
2250
+ };
2251
+ } | {
2252
+ key: string;
2253
+ compareDate: {
2254
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2255
+ value: string;
2256
+ };
2257
+ })[];
2258
+ outcome: string;
2259
+ overrides: string[];
2260
+ scoreRange?: {
2261
+ minimumUnits: number;
2262
+ maximumUnits: number;
2263
+ } | undefined;
2264
+ priority?: number | undefined;
2265
+ }[];
2266
+ scoring?: {
2267
+ schema: "felspar.scoring.draft/v0";
2268
+ scale: 1 | 100 | 10000;
2269
+ missingPolicy: "withhold_total";
2270
+ inactivePolicy: "exclude_without_redistribution";
2271
+ criteria: {
2272
+ maximumUnits: number;
2273
+ otherwiseUnits: number;
2274
+ cases: {
2275
+ when: ({
2276
+ key: string;
2277
+ relativeDate: /*elided*/ any;
2278
+ } | {
2279
+ key: string;
2280
+ relativeToDecision: /*elided*/ any;
2281
+ } | {
2282
+ key: string;
2283
+ equals: string | boolean;
2284
+ } | {
2285
+ key: string;
2286
+ oneOf: string[];
2287
+ } | {
2288
+ key: string;
2289
+ compare: /*elided*/ any;
2290
+ } | {
2291
+ key: string;
2292
+ compareFact: /*elided*/ any;
2293
+ } | {
2294
+ key: string;
2295
+ compareDate: /*elided*/ any;
2296
+ })[];
2297
+ pointsUnits: number;
2298
+ sourceLocator: string;
2299
+ contentDigest: string;
2300
+ id: string;
2301
+ }[];
2302
+ sourceLocator: string;
2303
+ contentDigest: string;
2304
+ id: string;
2305
+ activeWhen?: ({
2306
+ key: string;
2307
+ relativeDate: {
2308
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2309
+ anchorKey: string;
2310
+ offsetDays: number;
2311
+ calendar: /*elided*/ any | /*elided*/ any;
2312
+ };
2313
+ } | {
2314
+ key: string;
2315
+ relativeToDecision: {
2316
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2317
+ offsetDays: number;
2318
+ timeZone: string;
2319
+ };
2320
+ } | {
2321
+ key: string;
2322
+ equals: string | boolean;
2323
+ } | {
2324
+ key: string;
2325
+ oneOf: string[];
2326
+ } | {
2327
+ key: string;
2328
+ compare: {
2329
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2330
+ value: number;
2331
+ };
2332
+ } | {
2333
+ key: string;
2334
+ compareFact: {
2335
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2336
+ key: string;
2337
+ };
2338
+ } | {
2339
+ key: string;
2340
+ compareDate: {
2341
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
2342
+ value: string;
2343
+ };
2344
+ })[] | undefined;
2345
+ }[];
2346
+ } | undefined;
2347
+ mandatoryGateRuleIds?: string[] | undefined;
2348
+ };
2349
+ route: {
2350
+ kind: "supplied_values";
2351
+ contract: "felspar.declared-scalar-observations/v1";
2352
+ };
2353
+ };
2354
+ };
2355
+ request: {
2356
+ job: string;
2357
+ scope: {
2358
+ entityId: string;
2359
+ evaluationTime: string;
2360
+ };
2361
+ trustDomain: string;
2362
+ expectedArtifactDigest: string;
2363
+ };
2364
+ compilation: {
2365
+ artifact: {
2366
+ format: "felspar.json-content-identity/v1";
2367
+ canonicalJson: string;
2368
+ contentDigest: string;
2369
+ };
2370
+ fixtures: ({
2371
+ evidence: {
2372
+ schema: "felspar.evidence-validation.draft/v0";
2373
+ mode: "new_run";
2374
+ job: string;
2375
+ trustDomain: string;
2376
+ observationChecks: {
2377
+ schema: "felspar.observation-checks.draft/v0";
2378
+ scope: {
2379
+ schema: "felspar.evidence-scope.draft/v0";
2380
+ entityId: string;
2381
+ sources: {
2382
+ sourceId: string;
2383
+ revision: string;
2384
+ locator: string;
2385
+ contentDigest: string;
2386
+ entityId: string;
2387
+ }[];
2388
+ observations: {
2389
+ id: string;
2390
+ evidence: {
2391
+ sourceId: string;
2392
+ revision: string;
2393
+ locator: string;
2394
+ contentDigest: string;
2395
+ };
2396
+ }[];
2397
+ };
2398
+ evaluationTime: string;
2399
+ requirement: {
2400
+ key: string;
2401
+ definitionDigest: string;
2402
+ maxAgeMs: number;
2403
+ };
2404
+ observations: {
2405
+ id: string;
2406
+ key: string;
2407
+ definitionDigest: string;
2408
+ observedAt: string;
2409
+ }[];
2410
+ };
2411
+ allowedSourceClasses: string[];
2412
+ valueRule: {
2413
+ type: "number";
2414
+ integer: boolean;
2415
+ minimum: number;
2416
+ maximum: number;
2417
+ } | {
2418
+ type: "enum";
2419
+ values: string[];
2420
+ } | {
2421
+ type: "boolean";
2422
+ } | {
2423
+ type: "date";
2424
+ };
2425
+ collection: "error" | "observed" | "not_found" | "blocked" | "not_applicable" | "unattempted";
2426
+ sources: {
2427
+ reference: {
2428
+ sourceId: string;
2429
+ revision: string;
2430
+ locator: string;
2431
+ contentDigest: string;
2432
+ };
2433
+ sourceClass: string;
2434
+ sensitivity: string;
2435
+ }[];
2436
+ admissions: {
2437
+ reference: {
2438
+ sourceId: string;
2439
+ revision: string;
2440
+ locator: string;
2441
+ contentDigest: string;
2442
+ };
2443
+ purpose: string;
2444
+ sensitivity: string;
2445
+ trustDomain: string;
2446
+ status: "approved" | "revoked";
2447
+ }[];
2448
+ normalization: "supplied" | "malformed" | "timeout" | "review_required";
2449
+ results: {
2450
+ id: string;
2451
+ result: {
2452
+ status: "supplied";
2453
+ value: string | number | boolean;
2454
+ } | {
2455
+ status: "malformed" | "timeout" | "review_required";
2456
+ };
2457
+ }[];
2458
+ unit?: string | undefined;
2459
+ }[];
2460
+ id: string;
2461
+ scope: {
2462
+ entityId: string;
2463
+ evaluationTime: string;
2464
+ };
2465
+ expected: {
2466
+ status: "review_required" | "blocked" | "ready" | "gap" | "conflict" | "stale";
2467
+ outcome: string | null;
2468
+ selectedRuleIds: string[];
2469
+ scoring?: {
2470
+ status: "unresolved" | "ready";
2471
+ scale: 1 | 100 | 10000;
2472
+ maximumUnits: number;
2473
+ totalUnits: number | null;
2474
+ criteria: {
2475
+ criterionId: string;
2476
+ status: "matched" | "otherwise" | "inactive" | "unresolved";
2477
+ pointsUnits: number | null;
2478
+ matchedCaseId: string | null;
2479
+ }[];
2480
+ } | undefined;
2481
+ };
2482
+ } | {
2483
+ facts: {
2484
+ key: string;
2485
+ value: string | number | boolean;
2486
+ }[];
2487
+ id: string;
2488
+ scope: {
2489
+ entityId: string;
2490
+ evaluationTime: string;
2491
+ };
2492
+ expected: {
2493
+ status: "review_required" | "blocked" | "ready" | "gap" | "conflict" | "stale";
2494
+ outcome: string | null;
2495
+ selectedRuleIds: string[];
2496
+ scoring?: {
2497
+ status: "unresolved" | "ready";
2498
+ scale: 1 | 100 | 10000;
2499
+ maximumUnits: number;
2500
+ totalUnits: number | null;
2501
+ criteria: {
2502
+ criterionId: string;
2503
+ status: "matched" | "otherwise" | "inactive" | "unresolved";
2504
+ pointsUnits: number | null;
2505
+ matchedCaseId: string | null;
2506
+ }[];
2507
+ } | undefined;
2508
+ };
2509
+ })[];
2510
+ };
2511
+ plan: {
2512
+ schema: "felspar.context-selection.draft/v0" | "felspar.context-selection.draft/v1" | "felspar.context-selection.draft/v2";
2513
+ authority: "unapproved";
2514
+ artifactDigest: string;
2515
+ job: string;
2516
+ trustDomain: string;
2517
+ outputSurface: string;
2518
+ entries: {
2519
+ id: string;
2520
+ primitive: "gaps" | "actors" | "decision_criteria" | "source_signals" | "needs_and_requirements" | "evidence_and_proof" | "boundaries" | "output_contracts" | "routing_jobs" | "evaluations";
2521
+ body: string;
2522
+ source: {
2523
+ sourceId: string;
2524
+ revision: string;
2525
+ locator: string;
2526
+ contentDigest: string;
2527
+ };
2528
+ dependencies: string[];
2529
+ conflictsWith: string[];
2530
+ }[];
2531
+ requiredIds: string[];
2532
+ budget: {
2533
+ maxEntries: number;
2534
+ maxBytes: number;
2535
+ };
2536
+ groups: {
2537
+ id: string;
2538
+ min: number;
2539
+ max: number;
2540
+ candidates: {
2541
+ entryId: string;
2542
+ outcomes: string[];
2543
+ when: {
2544
+ key: string;
2545
+ equals: string;
2546
+ }[];
2547
+ priority: number;
2548
+ }[];
2549
+ }[];
2550
+ evaluationValidation?: {
2551
+ contract: "felspar.required-evaluations/v1";
2552
+ recipes: {
2553
+ entryId: string;
2554
+ expectedRecipeDigest: string;
2555
+ }[];
2556
+ maxRequests: number;
2557
+ maxTotalBytes: number;
2558
+ } | undefined;
2559
+ outputValidation?: {
2560
+ contract: "felspar.structured-output-preparation/v1";
2561
+ entryId: string;
2562
+ expectedContractDigest: string;
2563
+ } | undefined;
2564
+ unresolvedGuidanceEntryId?: string | undefined;
2565
+ attempts?: {
2566
+ max: number;
2567
+ withProgress: number;
2568
+ } | undefined;
2569
+ };
2570
+ expectedPlanDigest: string;
2571
+ requestedSurface: string;
2572
+ contextOrigins: {
2573
+ bundle: {
2574
+ schema: "felspar.source-text-bundle.draft/v0";
2575
+ sources: {
2576
+ sourceId: string;
2577
+ revision: string;
2578
+ text: string;
2579
+ offsetUnit: "utf16_code_units";
2580
+ passages: {
2581
+ locator: string;
2582
+ start: number;
2583
+ end: number;
2584
+ }[];
2585
+ }[];
2586
+ };
2587
+ compositions: {
2588
+ schema: "felspar.source-compositions.draft/v0";
2589
+ transformContract: "felspar.ordered-source-passage-join/v1";
2590
+ candidateDigest: string;
2591
+ entries: {
2592
+ source: {
2593
+ sourceId: string;
2594
+ revision: string;
2595
+ };
2596
+ locator: string;
2597
+ parts: string[];
2598
+ separator: "" | "\n" | "\n\n";
2599
+ }[];
2600
+ };
2601
+ origins: {
2602
+ schema: "felspar.context-origins.draft/v0";
2603
+ planDigest: string;
2604
+ entries: {
2605
+ entryId: string;
2606
+ origin: {
2607
+ kind: "source_derived";
2608
+ source: {
2609
+ sourceId: string;
2610
+ revision: string;
2611
+ contentDigest: string;
2612
+ };
2613
+ locator: string;
2614
+ passageDigest: string;
2615
+ admissionRef: string;
2616
+ } | {
2617
+ kind: "owner_decision";
2618
+ actorId: string;
2619
+ decidedAt: string;
2620
+ reviewRef: string;
2621
+ } | {
2622
+ kind: "deterministic_derivation";
2623
+ transform: {
2624
+ id: string;
2625
+ version: string;
2626
+ contentDigest: string;
2627
+ };
2628
+ inputs: string[];
2629
+ } | {
2630
+ kind: "unsupported_suggestion";
2631
+ reason: string;
2632
+ };
2633
+ }[];
2634
+ };
2635
+ };
2636
+ };
2637
+ manifest: {
2638
+ schema: "felspar.typed-interpretation-manifest.draft/v0";
2639
+ authority: "unapproved";
2640
+ authorityDigest: string;
2641
+ recipes: ({
2642
+ kind: "scalar";
2643
+ definitionDigest: string;
2644
+ id: string;
2645
+ version: string;
2646
+ instructions: string;
2647
+ evaluator: {
2648
+ provider: string;
2649
+ requestedModel: string;
2650
+ resolvedModel: string;
2651
+ };
2652
+ calibration: {
2653
+ id: string;
2654
+ version: string;
2655
+ contentDigest: string;
2656
+ };
2657
+ confidenceContract: "candidate-selected-probability/v1" | "declared-scalar-confidence/v1";
2658
+ minimumConfidence: number;
2659
+ key: string;
2660
+ parser?: {
2661
+ version: "iso-currency-decimal/v1";
2662
+ currency: string;
2663
+ } | {
2664
+ version: "iso-calendar-date/v1";
2665
+ } | undefined;
2666
+ reader?: {
2667
+ version: "felspar.exact-number/v2";
2668
+ unit: {
2669
+ kind: "currency";
2670
+ code: string;
2671
+ } | {
2672
+ kind: "percent";
2673
+ } | {
2674
+ kind: "count";
2675
+ words: string[];
2676
+ };
2677
+ numberStyle: "1,234.56" | "1.234,56" | "1 234,56" | "1'234.56";
2678
+ } | {
2679
+ version: "felspar.exact-date/v2";
2680
+ dateOrder: "unstated" | "month-first" | "day-first";
2681
+ } | undefined;
2682
+ } | {
2683
+ kind: "enum";
2684
+ semanticBundleDigest: string;
2685
+ evaluatorContractDigest: string;
2686
+ key: string;
2687
+ })[];
2688
+ };
2689
+ expectedManifestDigest: string;
2690
+ packets: ({
2691
+ key: string;
2692
+ kind: "scalar";
2693
+ evidence: {
2694
+ schema: "felspar.evidence-validation.draft/v0";
2695
+ mode: "new_run";
2696
+ job: string;
2697
+ trustDomain: string;
2698
+ observationChecks: {
2699
+ schema: "felspar.observation-checks.draft/v0";
2700
+ scope: {
2701
+ schema: "felspar.evidence-scope.draft/v0";
2702
+ entityId: string;
2703
+ sources: {
2704
+ sourceId: string;
2705
+ revision: string;
2706
+ locator: string;
2707
+ contentDigest: string;
2708
+ entityId: string;
2709
+ }[];
2710
+ observations: {
2711
+ id: string;
2712
+ evidence: {
2713
+ sourceId: string;
2714
+ revision: string;
2715
+ locator: string;
2716
+ contentDigest: string;
2717
+ };
2718
+ }[];
2719
+ };
2720
+ evaluationTime: string;
2721
+ requirement: {
2722
+ key: string;
2723
+ definitionDigest: string;
2724
+ maxAgeMs: number;
2725
+ };
2726
+ observations: {
2727
+ id: string;
2728
+ key: string;
2729
+ definitionDigest: string;
2730
+ observedAt: string;
2731
+ }[];
2732
+ };
2733
+ allowedSourceClasses: string[];
2734
+ valueRule: {
2735
+ type: "number";
2736
+ integer: boolean;
2737
+ minimum: number;
2738
+ maximum: number;
2739
+ } | {
2740
+ type: "enum";
2741
+ values: string[];
2742
+ } | {
2743
+ type: "boolean";
2744
+ } | {
2745
+ type: "date";
2746
+ };
2747
+ collection: "error" | "observed" | "not_found" | "blocked" | "not_applicable" | "unattempted";
2748
+ sources: {
2749
+ reference: {
2750
+ sourceId: string;
2751
+ revision: string;
2752
+ locator: string;
2753
+ contentDigest: string;
2754
+ };
2755
+ sourceClass: string;
2756
+ sensitivity: string;
2757
+ }[];
2758
+ admissions: {
2759
+ reference: {
2760
+ sourceId: string;
2761
+ revision: string;
2762
+ locator: string;
2763
+ contentDigest: string;
2764
+ };
2765
+ purpose: string;
2766
+ sensitivity: string;
2767
+ trustDomain: string;
2768
+ status: "approved" | "revoked";
2769
+ }[];
2770
+ unit?: string | undefined;
2771
+ };
2772
+ } | {
2773
+ key: string;
2774
+ kind: "enum";
2775
+ input: {
2776
+ schema: "felspar.normalized-evidence.draft/v0";
2777
+ evidence: {
2778
+ schema: "felspar.evidence-validation.draft/v0";
2779
+ mode: "new_run";
2780
+ job: string;
2781
+ trustDomain: string;
2782
+ observationChecks: {
2783
+ schema: "felspar.observation-checks.draft/v0";
2784
+ scope: {
2785
+ schema: "felspar.evidence-scope.draft/v0";
2786
+ entityId: string;
2787
+ sources: {
2788
+ sourceId: string;
2789
+ revision: string;
2790
+ locator: string;
2791
+ contentDigest: string;
2792
+ entityId: string;
2793
+ }[];
2794
+ observations: {
2795
+ id: string;
2796
+ evidence: {
2797
+ sourceId: string;
2798
+ revision: string;
2799
+ locator: string;
2800
+ contentDigest: string;
2801
+ };
2802
+ }[];
2803
+ };
2804
+ evaluationTime: string;
2805
+ requirement: {
2806
+ key: string;
2807
+ definitionDigest: string;
2808
+ maxAgeMs: number;
2809
+ };
2810
+ observations: {
2811
+ id: string;
2812
+ key: string;
2813
+ definitionDigest: string;
2814
+ observedAt: string;
2815
+ }[];
2816
+ };
2817
+ allowedSourceClasses: string[];
2818
+ collection: "error" | "observed" | "not_found" | "blocked" | "not_applicable" | "unattempted";
2819
+ sources: {
2820
+ reference: {
2821
+ sourceId: string;
2822
+ revision: string;
2823
+ locator: string;
2824
+ contentDigest: string;
2825
+ };
2826
+ sourceClass: string;
2827
+ sensitivity: string;
2828
+ }[];
2829
+ admissions: {
2830
+ reference: {
2831
+ sourceId: string;
2832
+ revision: string;
2833
+ locator: string;
2834
+ contentDigest: string;
2835
+ };
2836
+ purpose: string;
2837
+ sensitivity: string;
2838
+ trustDomain: string;
2839
+ status: "approved" | "revoked";
2840
+ }[];
2841
+ };
2842
+ proposal: {
2843
+ candidate: {
2844
+ schema: "felspar.pack-candidate.draft/v0";
2845
+ candidateId: string;
2846
+ authority: {
2847
+ kind: "proposal";
2848
+ job: string;
2849
+ source: {
2850
+ sourceId: string;
2851
+ revision: string;
2852
+ contentDigest: string;
2853
+ };
2854
+ definition: {
2855
+ key: string;
2856
+ contentDigest: string;
2857
+ sourceLocator: string;
2858
+ allowedValues: string[];
2859
+ };
2860
+ allowedOutcomes: string[];
2861
+ rules: {
2862
+ id: string;
2863
+ sourceLocator: string;
2864
+ contentDigest: string;
2865
+ when: {
2866
+ key: string;
2867
+ equals: string;
2868
+ };
2869
+ outcome: string;
2870
+ }[];
2871
+ };
2872
+ };
2873
+ evidencePolicy: {
2874
+ maxAgeMs: number;
2875
+ allowedSourceClasses: string[];
2876
+ trustDomain: string;
2877
+ };
2878
+ resolutionPolicy: "strict-single-value/v1";
2879
+ };
2880
+ semantics: {
2881
+ source: {
2882
+ candidate: {
2883
+ schema: "felspar.pack-candidate.draft/v0";
2884
+ candidateId: string;
2885
+ authority: {
2886
+ kind: "proposal";
2887
+ job: string;
2888
+ source: {
2889
+ sourceId: string;
2890
+ revision: string;
2891
+ contentDigest: string;
2892
+ };
2893
+ definition: {
2894
+ key: string;
2895
+ contentDigest: string;
2896
+ sourceLocator: string;
2897
+ allowedValues: string[];
2898
+ };
2899
+ allowedOutcomes: string[];
2900
+ rules: {
2901
+ id: string;
2902
+ sourceLocator: string;
2903
+ contentDigest: string;
2904
+ when: {
2905
+ key: string;
2906
+ equals: string;
2907
+ };
2908
+ outcome: string;
2909
+ }[];
2910
+ };
2911
+ };
2912
+ bundle: {
2913
+ schema: "felspar.source-text-bundle.draft/v0";
2914
+ sources: {
2915
+ sourceId: string;
2916
+ revision: string;
2917
+ text: string;
2918
+ offsetUnit: "utf16_code_units";
2919
+ passages: {
2920
+ locator: string;
2921
+ start: number;
2922
+ end: number;
2923
+ }[];
2924
+ }[];
2925
+ };
2926
+ compositions: {
2927
+ schema: "felspar.source-compositions.draft/v0";
2928
+ transformContract: "felspar.ordered-source-passage-join/v1";
2929
+ candidateDigest: string;
2930
+ entries: {
2931
+ source: {
2932
+ sourceId: string;
2933
+ revision: string;
2934
+ };
2935
+ locator: string;
2936
+ parts: string[];
2937
+ separator: "" | "\n" | "\n\n";
2938
+ }[];
2939
+ };
2940
+ };
2941
+ proposal: {
2942
+ values: {
2943
+ value: string;
2944
+ definitionLocator: string;
2945
+ inclusions: string[];
2946
+ exclusions: string[];
2947
+ examples: string[];
2948
+ edgeCases: string[];
2949
+ }[];
2950
+ normalization: {
2951
+ id: string;
2952
+ version: string;
2953
+ instructions: string;
2954
+ };
2955
+ };
2956
+ };
2957
+ expectedSemanticBundleDigest: string;
2958
+ evaluatorContract: {
2959
+ schema: "felspar.evaluator-contract.draft/v0";
2960
+ authority: "unapproved";
2961
+ id: string;
2962
+ version: string;
2963
+ semanticDefinitionDigest: string;
2964
+ normalizationProposalDigest: string;
2965
+ evaluator: {
2966
+ provider: string;
2967
+ requestedModel: string;
2968
+ resolvedModel: string;
2969
+ };
2970
+ calibration: {
2971
+ id: string;
2972
+ version: string;
2973
+ contentDigest: string;
2974
+ };
2975
+ minimumSelectedProbability: number;
2976
+ probabilityContract: "closed-distribution-unique-maximum/v1" | "closed-distribution-with-abstention/v1";
2977
+ inputContextContract?: "job-entity-time/v1" | undefined;
2978
+ };
2979
+ expectedEvaluatorContractDigest: string;
2980
+ answerType?: "boolean" | undefined;
2981
+ };
2982
+ })[];
2983
+ passages: {
2984
+ reference: {
2985
+ sourceId: string;
2986
+ revision: string;
2987
+ locator: string;
2988
+ contentDigest: string;
2989
+ };
2990
+ text: string;
2991
+ }[];
2992
+ schema: "felspar.evaluation-requests.draft/v1";
2993
+ limits: {
2994
+ maxQuestions: number;
2995
+ maxRequestBytes: number;
2996
+ maxResponseBytes: number;
2997
+ maxRounds: number;
2998
+ maxTotalQuestions: number;
2999
+ maxTotalRequestBytes: number;
3000
+ maxTotalResponseBytes: number;
3001
+ };
3002
+ };
3003
+ };
3004
+ approvalObjectId: string;
3005
+ approvalDigest: string;
3006
+ proposalDigest: string;
3007
+ sourceDigest: string;
3008
+ verifiedCompilation?: {
3009
+ schema: "felspar.verified-compilation.draft/v0";
3010
+ engineVersion: string;
3011
+ policyDigest: string;
3012
+ fixtureSuiteDigest: string;
3013
+ } | undefined;
3014
+ }>;
3015
+ describeJob: (id: string, job: string) => Promise<{
3016
+ schema: "felspar.hosted-job-description.draft/v0";
3017
+ job: string;
3018
+ trustDomain: string;
3019
+ release: {
3020
+ releaseId: string;
3021
+ releaseDigest: string;
3022
+ materialDigest: string;
3023
+ expectedAuthorityDigest: string;
3024
+ };
3025
+ resolutionPolicy: "relative-date-required-types/direct-overrides/v5" | "relational-required-types/direct-overrides/v4" | "scored-required-types/mandatory-gates/v6" | "windowed-required-types/mandatory-gates/v7" | "conditional-required-types/direct-overrides/v3" | "strict-required-types/direct-overrides/v2" | "strict-required-values/direct-overrides/v1";
3026
+ questions: {
3027
+ definition: {
3028
+ key: string;
3029
+ contentDigest: string;
3030
+ sourceLocator: string;
3031
+ allowedValues: string[];
3032
+ } | {
3033
+ key: string;
3034
+ contentDigest: string;
3035
+ sourceLocator: string;
3036
+ valueRule: {
3037
+ type: "boolean";
3038
+ };
3039
+ } | {
3040
+ key: string;
3041
+ contentDigest: string;
3042
+ sourceLocator: string;
3043
+ valueRule: {
3044
+ type: "number";
3045
+ integer: boolean;
3046
+ minimum: number;
3047
+ maximum: number;
3048
+ };
3049
+ unit: string;
3050
+ } | {
3051
+ key: string;
3052
+ contentDigest: string;
3053
+ sourceLocator: string;
3054
+ valueRule: {
3055
+ type: "date";
3056
+ };
3057
+ };
3058
+ evidencePolicy: {
3059
+ maxAgeMs: number;
3060
+ allowedSourceClasses: string[];
3061
+ trustDomain: string;
3062
+ };
3063
+ key: string;
3064
+ type: "number" | "boolean" | "date" | "enum";
3065
+ meaning: {
3066
+ text: string;
3067
+ source: {
3068
+ sourceId: string;
3069
+ revision: string;
3070
+ locator: string;
3071
+ contentDigest: string;
3072
+ };
3073
+ parts: {
3074
+ locator: string;
3075
+ text: string;
3076
+ }[];
3077
+ };
3078
+ answer: {
3079
+ send: "text" | "text_or_value";
3080
+ valueFormat: "number" | "calendar-date" | null;
3081
+ interpretation: "classified" | "exact_read" | "unsupported";
3082
+ threshold: number | null;
3083
+ applies: "always" | "conditional";
3084
+ dependsOn: string[];
3085
+ appliesWhen: string | null;
3086
+ reading?: {
3087
+ version: "felspar.exact-number/v2";
3088
+ unit: {
3089
+ kind: "currency";
3090
+ code: string;
3091
+ } | {
3092
+ kind: "percent";
3093
+ } | {
3094
+ kind: "count";
3095
+ words: string[];
3096
+ };
3097
+ numberStyle: "1,234.56" | "1.234,56" | "1 234,56" | "1'234.56";
3098
+ } | {
3099
+ version: "felspar.exact-date/v2";
3100
+ dateOrder: "unstated" | "month-first" | "day-first";
3101
+ } | undefined;
3102
+ };
3103
+ requiredWhen?: ({
3104
+ key: string;
3105
+ relativeDate: {
3106
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3107
+ anchorKey: string;
3108
+ offsetDays: number;
3109
+ calendar: {
3110
+ kind: "business_days";
3111
+ id: string;
3112
+ version: string;
3113
+ validFrom: string;
3114
+ validThrough: string;
3115
+ workingWeekdays: number[];
3116
+ holidays: string[];
3117
+ } | {
3118
+ kind: "calendar_days";
3119
+ };
3120
+ };
3121
+ } | {
3122
+ key: string;
3123
+ relativeToDecision: {
3124
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3125
+ offsetDays: number;
3126
+ timeZone: string;
3127
+ };
3128
+ } | {
3129
+ key: string;
3130
+ equals: string | boolean;
3131
+ } | {
3132
+ key: string;
3133
+ oneOf: string[];
3134
+ } | {
3135
+ key: string;
3136
+ compare: {
3137
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3138
+ value: number;
3139
+ };
3140
+ } | {
3141
+ key: string;
3142
+ compareFact: {
3143
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3144
+ key: string;
3145
+ };
3146
+ } | {
3147
+ key: string;
3148
+ compareDate: {
3149
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3150
+ value: string;
3151
+ };
3152
+ })[] | undefined;
3153
+ answers?: {
3154
+ value: string;
3155
+ meaning: string | null;
3156
+ inclusions: string[];
3157
+ exclusions: string[];
3158
+ examples: string[];
3159
+ edgeCases: string[];
3160
+ }[] | undefined;
3161
+ whereToLook?: {
3162
+ text: string;
3163
+ source: {
3164
+ sourceId: string;
3165
+ revision: string;
3166
+ locator: string;
3167
+ contentDigest: string;
3168
+ };
3169
+ parts: {
3170
+ locator: string;
3171
+ text: string;
3172
+ }[];
3173
+ }[] | undefined;
3174
+ }[];
3175
+ rules: {
3176
+ id: string;
3177
+ sourceLocator: string;
3178
+ contentDigest: string;
3179
+ when: ({
3180
+ key: string;
3181
+ relativeDate: {
3182
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3183
+ anchorKey: string;
3184
+ offsetDays: number;
3185
+ calendar: {
3186
+ kind: "business_days";
3187
+ id: string;
3188
+ version: string;
3189
+ validFrom: string;
3190
+ validThrough: string;
3191
+ workingWeekdays: number[];
3192
+ holidays: string[];
3193
+ } | {
3194
+ kind: "calendar_days";
3195
+ };
3196
+ };
3197
+ } | {
3198
+ key: string;
3199
+ relativeToDecision: {
3200
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3201
+ offsetDays: number;
3202
+ timeZone: string;
3203
+ };
3204
+ } | {
3205
+ key: string;
3206
+ equals: string | boolean;
3207
+ } | {
3208
+ key: string;
3209
+ oneOf: string[];
3210
+ } | {
3211
+ key: string;
3212
+ compare: {
3213
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3214
+ value: number;
3215
+ };
3216
+ } | {
3217
+ key: string;
3218
+ compareFact: {
3219
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3220
+ key: string;
3221
+ };
3222
+ } | {
3223
+ key: string;
3224
+ compareDate: {
3225
+ operator: "eq" | "lt" | "lte" | "gt" | "gte";
3226
+ value: string;
3227
+ };
3228
+ })[];
3229
+ outcome: string;
3230
+ overrides: string[];
3231
+ text: {
3232
+ text: string;
3233
+ source: {
3234
+ sourceId: string;
3235
+ revision: string;
3236
+ locator: string;
3237
+ contentDigest: string;
3238
+ };
3239
+ parts: {
3240
+ locator: string;
3241
+ text: string;
3242
+ }[];
3243
+ };
3244
+ scoreRange?: {
3245
+ minimumUnits: number;
3246
+ maximumUnits: number;
3247
+ } | undefined;
3248
+ priority?: number | undefined;
3249
+ }[];
3250
+ outcomes: {
3251
+ id: string;
3252
+ meaning: {
3253
+ text: string;
3254
+ source: {
3255
+ sourceId: string;
3256
+ revision: string;
3257
+ locator: string;
3258
+ contentDigest: string;
3259
+ };
3260
+ parts: {
3261
+ locator: string;
3262
+ text: string;
3263
+ }[];
3264
+ } | null;
3265
+ nextStep?: {
3266
+ text: string;
3267
+ source: {
3268
+ sourceId: string;
3269
+ revision: string;
3270
+ locator: string;
3271
+ contentDigest: string;
3272
+ };
3273
+ parts: {
3274
+ locator: string;
3275
+ text: string;
3276
+ }[];
3277
+ } | null | undefined;
3278
+ outputs?: {
3279
+ id: string;
3280
+ what: {
3281
+ text: string;
3282
+ locator: string;
3283
+ };
3284
+ maxCharacters: number;
3285
+ checks: {
3286
+ check: string;
3287
+ rule: string | null;
3288
+ must: string;
3289
+ }[];
3290
+ context?: {
3291
+ text: string;
3292
+ locator: string;
3293
+ id: string;
3294
+ }[] | undefined;
3295
+ }[] | undefined;
3296
+ }[];
3297
+ guidance: {
3298
+ gather: string;
3299
+ };
3300
+ input: {
3301
+ jsonSchema: Record<string, unknown>;
3302
+ example: {
3303
+ mode: "facts";
3304
+ executionId: string;
3305
+ expectedReleaseDigest: string;
3306
+ jobId: string;
3307
+ entityId: string;
3308
+ facts: Record<string, {
3309
+ text: string;
3310
+ source: {
3311
+ class: string;
3312
+ id: string;
3313
+ observedAt: string;
3314
+ revision?: string | undefined;
3315
+ locator?: string | undefined;
3316
+ sensitivity?: string | undefined;
3317
+ };
3318
+ } | {
3319
+ text: string;
3320
+ source: {
3321
+ class: string;
3322
+ id: string;
3323
+ observedAt: string;
3324
+ revision?: string | undefined;
3325
+ locator?: string | undefined;
3326
+ sensitivity?: string | undefined;
3327
+ };
3328
+ }[] | {
3329
+ value: string | number | boolean;
3330
+ source: {
3331
+ class: string;
3332
+ id: string;
3333
+ observedAt: string;
3334
+ revision?: string | undefined;
3335
+ locator?: string | undefined;
3336
+ sensitivity?: string | undefined;
3337
+ excerpt?: string | undefined;
3338
+ };
3339
+ }>;
3340
+ } | null;
3341
+ exampleNote: string;
3342
+ };
3343
+ limits: {
3344
+ maxEvidenceItems: number;
3345
+ maxPassages: number;
3346
+ facts: {
3347
+ maxExcerptCharacters: 2000;
3348
+ maxExcerptsPerQuestion: 3;
3349
+ maxFactsBytes: 524288;
3350
+ maxQuestions: 64;
3351
+ };
3352
+ };
3353
+ whenUnresolved?: {
3354
+ text: string;
3355
+ source: {
3356
+ sourceId: string;
3357
+ revision: string;
3358
+ locator: string;
3359
+ contentDigest: string;
3360
+ };
3361
+ parts: {
3362
+ locator: string;
3363
+ text: string;
3364
+ }[];
3365
+ } | null | undefined;
3366
+ attempts?: {
3367
+ max: number;
3368
+ withProgress: number;
3369
+ rule: string;
3370
+ } | undefined;
3371
+ }>;
3372
+ verifyReceipt: (executionObjectId: string, value: unknown) => Promise<{
3373
+ authority: "unapproved";
3374
+ status: "reproduced" | "mismatch";
3375
+ mismatches: string[];
3376
+ decided?: {
3377
+ jobId: string;
3378
+ entityId: string;
3379
+ releaseId: string;
3380
+ outcome: string | null;
3381
+ } | undefined;
3382
+ }>;
3383
+ };
3384
+ export {};