@oro-ai/sdk 0.6.8

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,2361 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+
3
+ /**
4
+ * Response for suite activation.
5
+ */
6
+ export type ActivateSuiteResponse = {
7
+ /**
8
+ * Activated suite ID
9
+ */
10
+ suite_id: number;
11
+ /**
12
+ * Suite version number
13
+ */
14
+ suite_version: number;
15
+ /**
16
+ * Whether this suite is active
17
+ */
18
+ is_active: boolean;
19
+ };
20
+
21
+ /**
22
+ * Reason for rejection of agent submission.
23
+ */
24
+ export type AdmissionReason = 'COOLDOWN' | 'INVALID_FILE' | 'NOT_REGISTERED_ONCHAIN' | 'BANNED' | 'NO_ACTIVE_SUITE';
25
+
26
+ /**
27
+ * Status of agent submission admission.
28
+ */
29
+ export type AdmissionStatus = 'ACCEPTED' | 'REJECTED';
30
+
31
+ /**
32
+ * 404 - Agent not found.
33
+ */
34
+ export type AgentNotFoundError = {
35
+ /**
36
+ * Error message describing what went wrong
37
+ */
38
+ detail: string;
39
+ /**
40
+ * Error code for programmatic handling
41
+ */
42
+ error_code?: "AGENT_NOT_FOUND";
43
+ };
44
+
45
+ /**
46
+ * Public representation of an agent.
47
+ */
48
+ export type AgentPublic = {
49
+ /**
50
+ * Unique identifier for the agent
51
+ */
52
+ agent_id: string;
53
+ /**
54
+ * Owner's hotkey
55
+ */
56
+ miner_hotkey: string;
57
+ /**
58
+ * Human-readable name for the agent
59
+ */
60
+ agent_name: string;
61
+ /**
62
+ * When the agent was created
63
+ */
64
+ created_at: string;
65
+ };
66
+
67
+ /**
68
+ * Entry in agent version history list.
69
+ */
70
+ export type AgentVersionHistoryEntry = {
71
+ /**
72
+ * Version ID
73
+ */
74
+ agent_version_id: string;
75
+ /**
76
+ * Version number within this agent (v1, v2, etc.)
77
+ */
78
+ version_number: number;
79
+ /**
80
+ * Submission timestamp
81
+ */
82
+ submitted_at: string;
83
+ /**
84
+ * Current state
85
+ */
86
+ state: AgentVersionState;
87
+ /**
88
+ * Final score if eligible
89
+ */
90
+ final_score?: (number | null);
91
+ };
92
+
93
+ /**
94
+ * 404 - Agent version not found.
95
+ */
96
+ export type AgentVersionNotFoundError = {
97
+ /**
98
+ * Error message describing what went wrong
99
+ */
100
+ detail: string;
101
+ /**
102
+ * Error code for programmatic handling
103
+ */
104
+ error_code?: "AGENT_VERSION_NOT_FOUND";
105
+ };
106
+
107
+ /**
108
+ * Response for agent version problem progress.
109
+ */
110
+ export type AgentVersionProblemsResponse = {
111
+ /**
112
+ * Agent version ID
113
+ */
114
+ agent_version_id: string;
115
+ /**
116
+ * Suite ID
117
+ */
118
+ suite_id?: (number | null);
119
+ /**
120
+ * Problem progress list
121
+ */
122
+ problems: Array<ProblemProgressEntry>;
123
+ };
124
+
125
+ /**
126
+ * Public representation of an agent version.
127
+ */
128
+ export type AgentVersionPublic = {
129
+ /**
130
+ * Unique identifier for this version
131
+ */
132
+ agent_version_id: string;
133
+ /**
134
+ * Parent agent ID
135
+ */
136
+ agent_id: string;
137
+ /**
138
+ * Agent name
139
+ */
140
+ agent_name: string;
141
+ /**
142
+ * Owner's hotkey
143
+ */
144
+ miner_hotkey: string;
145
+ /**
146
+ * Version number within this agent (v1, v2, etc.)
147
+ */
148
+ version_number: number;
149
+ /**
150
+ * Suite this version was submitted for
151
+ */
152
+ suite_id?: (number | null);
153
+ /**
154
+ * When this version was submitted
155
+ */
156
+ submitted_at: string;
157
+ /**
158
+ * Final score if eligible
159
+ */
160
+ latest_final_score?: (number | null);
161
+ };
162
+
163
+ /**
164
+ * State of an agent version evaluation.
165
+ */
166
+ export type AgentVersionState = 'RECEIVED' | 'QUEUED' | 'RUNNING' | 'ELIGIBLE' | 'DISCARDED' | 'CANCELLED';
167
+
168
+ /**
169
+ * Status response for an agent version.
170
+ */
171
+ export type AgentVersionStatus = {
172
+ /**
173
+ * Unique identifier for this version
174
+ */
175
+ agent_version_id: string;
176
+ /**
177
+ * Agent name
178
+ */
179
+ agent_name: string;
180
+ /**
181
+ * Owner's hotkey
182
+ */
183
+ miner_hotkey: string;
184
+ /**
185
+ * Version number within this agent (v1, v2, etc.)
186
+ */
187
+ version_number: number;
188
+ /**
189
+ * Suite ID
190
+ */
191
+ suite_id?: (number | null);
192
+ /**
193
+ * Submission timestamp
194
+ */
195
+ submitted_at: string;
196
+ /**
197
+ * Current state of the version
198
+ */
199
+ state: AgentVersionState;
200
+ /**
201
+ * Required successful evaluations
202
+ */
203
+ required_successes?: number;
204
+ /**
205
+ * Number of successful evaluations
206
+ */
207
+ success_count?: number;
208
+ /**
209
+ * Number of active evaluations
210
+ */
211
+ active_count?: number;
212
+ /**
213
+ * Whether evaluation is closed
214
+ */
215
+ is_closed?: boolean;
216
+ /**
217
+ * Final score if eligible
218
+ */
219
+ final_score?: (number | null);
220
+ /**
221
+ * Whether artifacts are released
222
+ */
223
+ release_state?: ArtifactReleaseState;
224
+ /**
225
+ * Per-validator scores on success
226
+ */
227
+ per_validator_success_scores?: ({
228
+ [key: string]: (number);
229
+ } | null);
230
+ };
231
+
232
+ /**
233
+ * 409 - Resource is already invalidated.
234
+ */
235
+ export type AlreadyInvalidatedError = {
236
+ /**
237
+ * Error message describing what went wrong
238
+ */
239
+ detail: string;
240
+ /**
241
+ * Error code for programmatic handling
242
+ */
243
+ error_code?: "ALREADY_INVALIDATED";
244
+ };
245
+
246
+ /**
247
+ * Request for artifact download URL.
248
+ */
249
+ export type ArtifactDownloadRequest = {
250
+ /**
251
+ * Type of artifact to download
252
+ */
253
+ artifact_type: ArtifactType;
254
+ /**
255
+ * Agent version ID
256
+ */
257
+ agent_version_id: string;
258
+ /**
259
+ * Run ID for run-scoped artifacts
260
+ */
261
+ eval_run_id?: (string | null);
262
+ /**
263
+ * Problem ID for per-problem artifact downloads
264
+ */
265
+ problem_id?: (string | null);
266
+ };
267
+
268
+ /**
269
+ * Response with presigned download URL.
270
+ */
271
+ export type ArtifactDownloadResponse = {
272
+ /**
273
+ * Presigned download URL
274
+ */
275
+ download_url: string;
276
+ /**
277
+ * URL expiration time
278
+ */
279
+ expires_at: string;
280
+ };
281
+
282
+ /**
283
+ * 404 - Artifact not found or not available.
284
+ */
285
+ export type ArtifactNotFoundError = {
286
+ /**
287
+ * Error message describing what went wrong
288
+ */
289
+ detail: string;
290
+ /**
291
+ * Error code for programmatic handling
292
+ */
293
+ error_code?: "ARTIFACT_NOT_FOUND";
294
+ };
295
+
296
+ /**
297
+ * 404 - Artifact exists but is not yet released.
298
+ */
299
+ export type ArtifactNotReleasedError = {
300
+ /**
301
+ * Error message describing what went wrong
302
+ */
303
+ detail: string;
304
+ /**
305
+ * Error code for programmatic handling
306
+ */
307
+ error_code?: "ARTIFACT_NOT_RELEASED";
308
+ };
309
+
310
+ /**
311
+ * Release state of agent version artifacts.
312
+ */
313
+ export type ArtifactReleaseState = 'HIDDEN' | 'RELEASED';
314
+
315
+ /**
316
+ * Type of artifact for download.
317
+ */
318
+ export type ArtifactType = 'AGENT_CODE' | 'EVAL_LOGS_BUNDLE' | 'EVAL_PROBLEM_LOGS';
319
+
320
+ /**
321
+ * 409 - Validator is at maximum concurrent evaluation capacity.
322
+ */
323
+ export type AtCapacityError = {
324
+ /**
325
+ * Error message describing what went wrong
326
+ */
327
+ detail: string;
328
+ /**
329
+ * Error code for programmatic handling
330
+ */
331
+ error_code?: "AT_CAPACITY";
332
+ };
333
+
334
+ /**
335
+ * Audit event log entry.
336
+ */
337
+ export type AuditEventEntry = {
338
+ /**
339
+ * Event ID
340
+ */
341
+ event_id: string;
342
+ /**
343
+ * Action performed
344
+ */
345
+ action: string;
346
+ /**
347
+ * Type of target entity
348
+ */
349
+ target_type: string;
350
+ /**
351
+ * Target entity ID
352
+ */
353
+ target_id: string;
354
+ /**
355
+ * Admin who performed the action
356
+ */
357
+ actor_hotkey: string;
358
+ /**
359
+ * Reason provided
360
+ */
361
+ reason?: (string | null);
362
+ /**
363
+ * Additional context
364
+ */
365
+ details?: ({
366
+ [key: string]: unknown;
367
+ } | null);
368
+ /**
369
+ * When the event occurred
370
+ */
371
+ created_at: string;
372
+ };
373
+
374
+ /**
375
+ * Response for audit events list.
376
+ */
377
+ export type AuditEventsResponse = {
378
+ /**
379
+ * Audit events
380
+ */
381
+ events: Array<AuditEventEntry>;
382
+ /**
383
+ * Total events matching filter
384
+ */
385
+ total: number;
386
+ /**
387
+ * Page size
388
+ */
389
+ limit: number;
390
+ /**
391
+ * Page offset
392
+ */
393
+ offset: number;
394
+ };
395
+
396
+ /**
397
+ * Request to ban a miner or validator.
398
+ */
399
+ export type BanRequest = {
400
+ /**
401
+ * Reason for the ban
402
+ */
403
+ reason: string;
404
+ };
405
+
406
+ /**
407
+ * Response for ban/unban operations.
408
+ */
409
+ export type BanResponse = {
410
+ /**
411
+ * Affected hotkey
412
+ */
413
+ hotkey: string;
414
+ /**
415
+ * New ban state
416
+ */
417
+ is_banned: boolean;
418
+ };
419
+
420
+ export type Body_submit_agent = {
421
+ /**
422
+ * Name for this agent (unique per miner)
423
+ */
424
+ agent_name: string;
425
+ /**
426
+ * Python agent file (max 1MB)
427
+ */
428
+ file: (Blob | File);
429
+ /**
430
+ * Chutes OAuth refresh token for miner-funded inference
431
+ */
432
+ chutes_refresh_token?: (string | null);
433
+ };
434
+
435
+ /**
436
+ * Request to cancel an agent version's evaluation.
437
+ */
438
+ export type CancelRequest = {
439
+ /**
440
+ * Reason for cancellation
441
+ */
442
+ reason: string;
443
+ };
444
+
445
+ /**
446
+ * Response for cancel operation.
447
+ */
448
+ export type CancelResponse = {
449
+ /**
450
+ * Agent version ID
451
+ */
452
+ agent_version_id: string;
453
+ /**
454
+ * Number of runs cancelled
455
+ */
456
+ cancelled_runs: number;
457
+ };
458
+
459
+ /**
460
+ * Request body for challenge endpoint.
461
+ */
462
+ export type ChallengeRequest = {
463
+ /**
464
+ * SS58 hotkey address
465
+ */
466
+ hotkey: string;
467
+ };
468
+
469
+ /**
470
+ * Response from challenge endpoint.
471
+ */
472
+ export type ChallengeResponse = {
473
+ /**
474
+ * Challenge string to sign
475
+ */
476
+ challenge: string;
477
+ /**
478
+ * Unix timestamp when challenge expires
479
+ */
480
+ expires_at: number;
481
+ };
482
+
483
+ /**
484
+ * Response for successful work claim.
485
+ */
486
+ export type ClaimWorkResponse = {
487
+ /**
488
+ * Unique identifier for the evaluation run
489
+ */
490
+ eval_run_id: string;
491
+ /**
492
+ * Agent version to evaluate
493
+ */
494
+ agent_version_id: string;
495
+ /**
496
+ * Problem suite ID
497
+ */
498
+ suite_id: number;
499
+ /**
500
+ * When the lease expires
501
+ */
502
+ lease_expires_at: string;
503
+ /**
504
+ * Presigned URL to download agent code
505
+ */
506
+ code_download_url: string;
507
+ /**
508
+ * Fresh Chutes access token for miner-funded inference
509
+ */
510
+ chutes_access_token?: (string | null);
511
+ };
512
+
513
+ /**
514
+ * 422 - Static analysis found issues in submitted code.
515
+ */
516
+ export type CodeAnalysisError = {
517
+ /**
518
+ * Error message describing what went wrong
519
+ */
520
+ detail: string;
521
+ /**
522
+ * Error code for programmatic handling
523
+ */
524
+ error_code?: "CODE_ANALYSIS_ERROR";
525
+ /**
526
+ * List of violations found (rule, severity, message, line)
527
+ */
528
+ violations?: Array<{
529
+ [key: string]: unknown;
530
+ }>;
531
+ };
532
+
533
+ /**
534
+ * Request to complete an evaluation run.
535
+ */
536
+ export type CompleteRunRequest = {
537
+ /**
538
+ * Final status of the run
539
+ */
540
+ terminal_status: TerminalStatus;
541
+ /**
542
+ * Score (required if SUCCESS)
543
+ */
544
+ validator_score?: (number | null);
545
+ /**
546
+ * Score breakdown (required if SUCCESS)
547
+ */
548
+ score_components?: ({
549
+ [key: string]: unknown;
550
+ } | null);
551
+ /**
552
+ * S3 key for run-level logs bundle (optional, per-problem logs preferred)
553
+ */
554
+ results_s3_key?: (string | null);
555
+ };
556
+
557
+ /**
558
+ * Response for run completion.
559
+ */
560
+ export type CompleteRunResponse = {
561
+ /**
562
+ * Evaluation run ID
563
+ */
564
+ eval_run_id: string;
565
+ /**
566
+ * New status of the run
567
+ */
568
+ status: string;
569
+ /**
570
+ * Updated work item status
571
+ */
572
+ work_item: WorkItemStatus;
573
+ /**
574
+ * Whether agent version just became eligible
575
+ */
576
+ agent_version_became_eligible: boolean;
577
+ /**
578
+ * Final score if became eligible
579
+ */
580
+ final_score?: (number | null);
581
+ };
582
+
583
+ /**
584
+ * 429 - Cooldown period is active.
585
+ */
586
+ export type CooldownActiveError = {
587
+ /**
588
+ * Error message describing what went wrong
589
+ */
590
+ detail: string;
591
+ /**
592
+ * Error code for programmatic handling
593
+ */
594
+ error_code?: "COOLDOWN_ACTIVE";
595
+ /**
596
+ * Seconds remaining until cooldown expires
597
+ */
598
+ remaining_seconds: number;
599
+ };
600
+
601
+ /**
602
+ * Request to create a new problem suite.
603
+ */
604
+ export type CreateSuiteRequest = {
605
+ /**
606
+ * URI to the problem suite definition
607
+ */
608
+ problem_suite_uri: string;
609
+ };
610
+
611
+ /**
612
+ * Response for suite creation.
613
+ */
614
+ export type CreateSuiteResponse = {
615
+ /**
616
+ * Created suite ID
617
+ */
618
+ suite_id: number;
619
+ /**
620
+ * Suite version number
621
+ */
622
+ suite_version: number;
623
+ /**
624
+ * Whether this suite is active
625
+ */
626
+ is_active: boolean;
627
+ };
628
+
629
+ /**
630
+ * Request to discard an agent version.
631
+ */
632
+ export type DiscardRequest = {
633
+ /**
634
+ * Reason for discarding
635
+ */
636
+ reason: string;
637
+ /**
638
+ * Suite ID (defaults to current suite)
639
+ */
640
+ suite_id?: (number | null);
641
+ };
642
+
643
+ /**
644
+ * Response for discard/reinstate operations.
645
+ */
646
+ export type DiscardResponse = {
647
+ /**
648
+ * Affected agent version
649
+ */
650
+ agent_version_id: string;
651
+ /**
652
+ * Suite ID for the operation
653
+ */
654
+ suite_id: number;
655
+ /**
656
+ * New discard state
657
+ */
658
+ is_discarded: boolean;
659
+ };
660
+
661
+ /**
662
+ * 404 - Evaluation run not found.
663
+ */
664
+ export type EvalRunNotFoundError = {
665
+ /**
666
+ * Error message describing what went wrong
667
+ */
668
+ detail: string;
669
+ /**
670
+ * Error code for programmatic handling
671
+ */
672
+ error_code?: "EVAL_RUN_NOT_FOUND";
673
+ };
674
+
675
+ /**
676
+ * Detailed representation of a single evaluation run.
677
+ */
678
+ export type EvaluationRunDetail = {
679
+ /**
680
+ * Unique identifier for this run
681
+ */
682
+ eval_run_id: string;
683
+ /**
684
+ * Agent version being evaluated
685
+ */
686
+ agent_version_id: string;
687
+ /**
688
+ * Name of the agent
689
+ */
690
+ agent_name: string;
691
+ /**
692
+ * Validator performing evaluation
693
+ */
694
+ validator_hotkey: string;
695
+ /**
696
+ * Current run status
697
+ */
698
+ status: EvaluationRunStatus;
699
+ /**
700
+ * Score if completed successfully
701
+ */
702
+ score?: (number | null);
703
+ /**
704
+ * Version number within this agent (v1, v2, etc.)
705
+ */
706
+ version_number: number;
707
+ /**
708
+ * When the run was claimed
709
+ */
710
+ claimed_at: string;
711
+ /**
712
+ * When the run completed
713
+ */
714
+ completed_at?: (string | null);
715
+ };
716
+
717
+ /**
718
+ * Public representation of an evaluation run.
719
+ */
720
+ export type EvaluationRunPublic = {
721
+ /**
722
+ * Unique identifier for this run
723
+ */
724
+ eval_run_id: string;
725
+ /**
726
+ * Agent version being evaluated
727
+ */
728
+ agent_version_id: string;
729
+ /**
730
+ * Suite ID
731
+ */
732
+ suite_id: number;
733
+ /**
734
+ * Validator performing evaluation
735
+ */
736
+ validator_hotkey: string;
737
+ /**
738
+ * Run status
739
+ */
740
+ status: EvaluationRunStatus;
741
+ /**
742
+ * When the run was claimed
743
+ */
744
+ claimed_at: string;
745
+ /**
746
+ * Lease expiration
747
+ */
748
+ lease_expires_at: string;
749
+ /**
750
+ * Last heartbeat
751
+ */
752
+ last_heartbeat_at?: (string | null);
753
+ /**
754
+ * Completion timestamp
755
+ */
756
+ completed_at?: (string | null);
757
+ /**
758
+ * Whether run is included in aggregate
759
+ */
760
+ is_included: boolean;
761
+ /**
762
+ * When run was invalidated
763
+ */
764
+ invalidated_at?: (string | null);
765
+ /**
766
+ * Who invalidated the run
767
+ */
768
+ invalidated_by?: (string | null);
769
+ /**
770
+ * Reason for invalidation
771
+ */
772
+ invalidation_reason?: (string | null);
773
+ /**
774
+ * Score on success
775
+ */
776
+ validator_score?: (number | null);
777
+ /**
778
+ * Score breakdown on success
779
+ */
780
+ score_components_summary?: ({
781
+ [key: string]: unknown;
782
+ } | null);
783
+ /**
784
+ * Snapshot of validator service versions at claim time
785
+ */
786
+ service_versions?: ({
787
+ [key: string]: (string);
788
+ } | null);
789
+ };
790
+
791
+ /**
792
+ * Status of an evaluation run through its lifecycle.
793
+ */
794
+ export type EvaluationRunStatus = 'CLAIMED' | 'RUNNING' | 'SUCCESS' | 'FAILED' | 'TIMED_OUT' | 'STALE' | 'CANCELLED';
795
+
796
+ /**
797
+ * Status representation of an evaluation run (for admin operations).
798
+ */
799
+ export type EvaluationRunStatusPublic = {
800
+ /**
801
+ * Unique identifier for this run
802
+ */
803
+ eval_run_id: string;
804
+ /**
805
+ * Agent version being evaluated
806
+ */
807
+ agent_version_id: string;
808
+ /**
809
+ * Suite ID
810
+ */
811
+ suite_id: number;
812
+ /**
813
+ * Validator performing evaluation
814
+ */
815
+ validator_hotkey: string;
816
+ /**
817
+ * Run status
818
+ */
819
+ status: EvaluationRunStatus;
820
+ /**
821
+ * When the run was claimed
822
+ */
823
+ claimed_at: string;
824
+ /**
825
+ * Lease expiration
826
+ */
827
+ lease_expires_at: string;
828
+ /**
829
+ * Whether run is included in aggregate
830
+ */
831
+ is_included: boolean;
832
+ /**
833
+ * Last heartbeat
834
+ */
835
+ last_heartbeat_at?: (string | null);
836
+ /**
837
+ * Completion timestamp
838
+ */
839
+ completed_at?: (string | null);
840
+ /**
841
+ * When run was invalidated
842
+ */
843
+ invalidated_at?: (string | null);
844
+ /**
845
+ * Who invalidated the run
846
+ */
847
+ invalidated_by?: (string | null);
848
+ /**
849
+ * Reason for invalidation
850
+ */
851
+ invalidation_reason?: (string | null);
852
+ /**
853
+ * Score on success
854
+ */
855
+ validator_score?: (number | null);
856
+ /**
857
+ * Score breakdown on success
858
+ */
859
+ score_components_summary?: ({
860
+ [key: string]: unknown;
861
+ } | null);
862
+ };
863
+
864
+ /**
865
+ * 400 - Upload file exceeds size limit.
866
+ */
867
+ export type FileTooLargeError = {
868
+ /**
869
+ * Error message describing what went wrong
870
+ */
871
+ detail: string;
872
+ /**
873
+ * Error code for programmatic handling
874
+ */
875
+ error_code?: "FILE_TOO_LARGE";
876
+ };
877
+
878
+ /**
879
+ * Optional request body for heartbeat with service version info.
880
+ */
881
+ export type HeartbeatRequest = {
882
+ /**
883
+ * Docker image digests for validator stack services
884
+ */
885
+ service_versions?: ({
886
+ [key: string]: (string);
887
+ } | null);
888
+ };
889
+
890
+ /**
891
+ * Response for heartbeat.
892
+ */
893
+ export type HeartbeatResponse = {
894
+ /**
895
+ * New lease expiration time
896
+ */
897
+ lease_expires_at: string;
898
+ };
899
+
900
+ export type HTTPValidationError = {
901
+ detail?: Array<ValidationError>;
902
+ };
903
+
904
+ /**
905
+ * 400 - Agent name validation failed.
906
+ */
907
+ export type InvalidAgentNameError = {
908
+ /**
909
+ * Error message describing what went wrong
910
+ */
911
+ detail: string;
912
+ /**
913
+ * Error code for programmatic handling
914
+ */
915
+ error_code?: "INVALID_AGENT_NAME";
916
+ };
917
+
918
+ /**
919
+ * 400 - Unknown or unsupported artifact type.
920
+ */
921
+ export type InvalidArtifactTypeError = {
922
+ /**
923
+ * Error message describing what went wrong
924
+ */
925
+ detail: string;
926
+ /**
927
+ * Error code for programmatic handling
928
+ */
929
+ error_code?: "INVALID_ARTIFACT_TYPE";
930
+ };
931
+
932
+ /**
933
+ * Request to invalidate an evaluation run (irreversible).
934
+ */
935
+ export type InvalidateRunRequest = {
936
+ /**
937
+ * Reason for invalidation
938
+ */
939
+ reason: string;
940
+ };
941
+
942
+ /**
943
+ * 400 - File content validation failed.
944
+ */
945
+ export type InvalidFileError = {
946
+ /**
947
+ * Error message describing what went wrong
948
+ */
949
+ detail: string;
950
+ /**
951
+ * Error code for programmatic handling
952
+ */
953
+ error_code?: "INVALID_FILE";
954
+ };
955
+
956
+ /**
957
+ * 400 - Problem ID is not valid for this suite.
958
+ */
959
+ export type InvalidProblemIdError = {
960
+ /**
961
+ * Error message describing what went wrong
962
+ */
963
+ detail: string;
964
+ /**
965
+ * Error code for programmatic handling
966
+ */
967
+ error_code?: "INVALID_PROBLEM_ID";
968
+ };
969
+
970
+ /**
971
+ * Entry in the leaderboard.
972
+ */
973
+ export type LeaderboardEntry = {
974
+ /**
975
+ * Leaderboard rank
976
+ */
977
+ rank: number;
978
+ /**
979
+ * Agent version ID
980
+ */
981
+ agent_version_id: string;
982
+ /**
983
+ * Agent name
984
+ */
985
+ agent_name: string;
986
+ /**
987
+ * Miner hotkey
988
+ */
989
+ miner_hotkey: string;
990
+ /**
991
+ * Version number within this agent (v1, v2, etc.)
992
+ */
993
+ version_number: number;
994
+ /**
995
+ * Final score
996
+ */
997
+ final_score: number;
998
+ /**
999
+ * When eligibility was reached
1000
+ */
1001
+ eligible_at?: (string | null);
1002
+ /**
1003
+ * Whether discarded by admin
1004
+ */
1005
+ is_discarded?: boolean;
1006
+ /**
1007
+ * Whether miner is banned
1008
+ */
1009
+ is_miner_banned?: boolean;
1010
+ /**
1011
+ * Current top agent for emissions
1012
+ */
1013
+ is_current_top?: boolean;
1014
+ /**
1015
+ * Previously held top agent status
1016
+ */
1017
+ was_top?: boolean;
1018
+ /**
1019
+ * When this agent became top
1020
+ */
1021
+ top_at?: (string | null);
1022
+ };
1023
+
1024
+ /**
1025
+ * Response for leaderboard endpoint.
1026
+ */
1027
+ export type LeaderboardResponse = {
1028
+ /**
1029
+ * Suite information
1030
+ */
1031
+ suite: SuitePublic;
1032
+ /**
1033
+ * Leaderboard entries
1034
+ */
1035
+ entries: Array<LeaderboardEntry>;
1036
+ /**
1037
+ * Total entries
1038
+ */
1039
+ total: number;
1040
+ /**
1041
+ * Page size
1042
+ */
1043
+ limit: number;
1044
+ /**
1045
+ * Page offset
1046
+ */
1047
+ offset: number;
1048
+ /**
1049
+ * Score required to dethrone current top
1050
+ */
1051
+ challenge_threshold?: (number | null);
1052
+ };
1053
+
1054
+ /**
1055
+ * 409 - Evaluation run lease has expired.
1056
+ */
1057
+ export type LeaseExpiredError = {
1058
+ /**
1059
+ * Error message describing what went wrong
1060
+ */
1061
+ detail: string;
1062
+ /**
1063
+ * Error code for programmatic handling
1064
+ */
1065
+ error_code?: "LEASE_EXPIRED";
1066
+ };
1067
+
1068
+ /**
1069
+ * Response from logout endpoint.
1070
+ */
1071
+ export type LogoutResponse = {
1072
+ /**
1073
+ * Whether logout was successful
1074
+ */
1075
+ success: boolean;
1076
+ };
1077
+
1078
+ /**
1079
+ * Envelope response for GET /v1/miner/agents with cooldown status.
1080
+ */
1081
+ export type MinerAgentsResponse = {
1082
+ /**
1083
+ * Miner's agents
1084
+ */
1085
+ agents: Array<AgentPublic>;
1086
+ /**
1087
+ * Whether the miner can submit now
1088
+ */
1089
+ can_submit: boolean;
1090
+ /**
1091
+ * When next submission is allowed (ISO 8601), null if no cooldown
1092
+ */
1093
+ next_allowed_at?: (string | null);
1094
+ };
1095
+
1096
+ /**
1097
+ * 404 - Miner not found.
1098
+ */
1099
+ export type MinerNotFoundError = {
1100
+ /**
1101
+ * Error message describing what went wrong
1102
+ */
1103
+ detail: string;
1104
+ /**
1105
+ * Error code for programmatic handling
1106
+ */
1107
+ error_code?: "MINER_NOT_FOUND";
1108
+ };
1109
+
1110
+ /**
1111
+ * 400 - Required parameter is missing.
1112
+ */
1113
+ export type MissingParameterError = {
1114
+ /**
1115
+ * Error message describing what went wrong
1116
+ */
1117
+ detail: string;
1118
+ /**
1119
+ * Error code for programmatic handling
1120
+ */
1121
+ error_code?: "MISSING_PARAMETER";
1122
+ };
1123
+
1124
+ /**
1125
+ * 400 - Score is required for SUCCESS status.
1126
+ */
1127
+ export type MissingScoreError = {
1128
+ /**
1129
+ * Error message describing what went wrong
1130
+ */
1131
+ detail: string;
1132
+ /**
1133
+ * Error code for programmatic handling
1134
+ */
1135
+ error_code?: "MISSING_SCORE";
1136
+ };
1137
+
1138
+ /**
1139
+ * 503 - No active problem suite available.
1140
+ */
1141
+ export type NoActiveSuiteError = {
1142
+ /**
1143
+ * Error message describing what went wrong
1144
+ */
1145
+ detail: string;
1146
+ /**
1147
+ * Error code for programmatic handling
1148
+ */
1149
+ error_code?: "NO_ACTIVE_SUITE";
1150
+ };
1151
+
1152
+ /**
1153
+ * 409 - Caller does not own this evaluation run.
1154
+ */
1155
+ export type NotRunOwnerError = {
1156
+ /**
1157
+ * Error message describing what went wrong
1158
+ */
1159
+ detail: string;
1160
+ /**
1161
+ * Error code for programmatic handling
1162
+ */
1163
+ error_code?: "NOT_RUN_OWNER";
1164
+ };
1165
+
1166
+ /**
1167
+ * A work item awaiting validator evaluations.
1168
+ */
1169
+ export type PendingEvaluation = {
1170
+ /**
1171
+ * Unique work item identifier
1172
+ */
1173
+ work_item_id: string;
1174
+ /**
1175
+ * Name of the agent
1176
+ */
1177
+ agent_name: string;
1178
+ /**
1179
+ * Version number within this agent
1180
+ */
1181
+ version_number: number;
1182
+ /**
1183
+ * Miner who owns the agent
1184
+ */
1185
+ miner_hotkey: string;
1186
+ /**
1187
+ * Problem suite ID
1188
+ */
1189
+ suite_id: number;
1190
+ /**
1191
+ * Total successful evaluations needed
1192
+ */
1193
+ required_successes: number;
1194
+ /**
1195
+ * Successful evaluations completed so far
1196
+ */
1197
+ completed_successes: number;
1198
+ /**
1199
+ * Currently CLAIMED or RUNNING evaluations
1200
+ */
1201
+ active_runs: number;
1202
+ /**
1203
+ * Additional validator claims still needed
1204
+ */
1205
+ remaining: number;
1206
+ /**
1207
+ * When this work item was created
1208
+ */
1209
+ queued_at: string;
1210
+ };
1211
+
1212
+ /**
1213
+ * Response for pending evaluations endpoint.
1214
+ */
1215
+ export type PendingEvaluationsResponse = {
1216
+ /**
1217
+ * Aggregate queue statistics
1218
+ */
1219
+ summary: PendingEvaluationSummary;
1220
+ /**
1221
+ * Individual pending work items
1222
+ */
1223
+ items: Array<PendingEvaluation>;
1224
+ };
1225
+
1226
+ /**
1227
+ * Aggregate statistics for pending evaluations.
1228
+ */
1229
+ export type PendingEvaluationSummary = {
1230
+ /**
1231
+ * Number of open work items
1232
+ */
1233
+ total_pending: number;
1234
+ /**
1235
+ * Sum of remaining runs across all items
1236
+ */
1237
+ total_runs_needed: number;
1238
+ /**
1239
+ * Sum of active runs across all items
1240
+ */
1241
+ total_runs_active: number;
1242
+ };
1243
+
1244
+ /**
1245
+ * Request for presigned upload URL.
1246
+ */
1247
+ export type PresignUploadRequest = {
1248
+ /**
1249
+ * Content type of the upload
1250
+ */
1251
+ content_type?: string;
1252
+ /**
1253
+ * Size of the upload in bytes
1254
+ */
1255
+ content_length: number;
1256
+ /**
1257
+ * Evaluation run ID
1258
+ */
1259
+ eval_run_id: string;
1260
+ /**
1261
+ * Problem ID
1262
+ */
1263
+ problem_id: string;
1264
+ };
1265
+
1266
+ /**
1267
+ * Response with presigned upload URL.
1268
+ */
1269
+ export type PresignUploadResponse = {
1270
+ /**
1271
+ * Presigned S3 PUT URL
1272
+ */
1273
+ upload_url: string;
1274
+ /**
1275
+ * HTTP method to use
1276
+ */
1277
+ method?: string;
1278
+ /**
1279
+ * S3 key where the file will be stored
1280
+ */
1281
+ results_s3_key: string;
1282
+ /**
1283
+ * When the presigned URL expires
1284
+ */
1285
+ expires_at: string;
1286
+ };
1287
+
1288
+ /**
1289
+ * 404 - Problem not found in suite.
1290
+ */
1291
+ export type ProblemNotFoundError = {
1292
+ /**
1293
+ * Error message describing what went wrong
1294
+ */
1295
+ detail: string;
1296
+ /**
1297
+ * Error code for programmatic handling
1298
+ */
1299
+ error_code?: "PROBLEM_NOT_FOUND";
1300
+ };
1301
+
1302
+ /**
1303
+ * Progress entry for a single problem showing results from all validators.
1304
+ */
1305
+ export type ProblemProgressEntry = {
1306
+ /**
1307
+ * Problem ID
1308
+ */
1309
+ problem_id: string;
1310
+ /**
1311
+ * Problem category
1312
+ */
1313
+ category?: (string | null);
1314
+ /**
1315
+ * Results from each validator that evaluated this problem
1316
+ */
1317
+ validator_results?: Array<ValidatorProblemResult>;
1318
+ };
1319
+
1320
+ /**
1321
+ * Progress update for a single problem.
1322
+ */
1323
+ export type ProblemProgressUpdate = {
1324
+ /**
1325
+ * Problem ID
1326
+ */
1327
+ problem_id: string;
1328
+ /**
1329
+ * Current status of this problem
1330
+ */
1331
+ status: ProblemStatus;
1332
+ /**
1333
+ * Score if available
1334
+ */
1335
+ score?: (number | null);
1336
+ /**
1337
+ * Score breakdown if available
1338
+ */
1339
+ score_components_summary?: ({
1340
+ [key: string]: unknown;
1341
+ } | null);
1342
+ /**
1343
+ * S3 key for this problem's logs
1344
+ */
1345
+ logs_s3_key?: (string | null);
1346
+ };
1347
+
1348
+ /**
1349
+ * Public representation of a problem.
1350
+ */
1351
+ export type ProblemPublic = {
1352
+ /**
1353
+ * Unique identifier for the problem
1354
+ */
1355
+ problem_id: string;
1356
+ /**
1357
+ * Parent suite ID
1358
+ */
1359
+ suite_id: number;
1360
+ /**
1361
+ * Full problem metadata
1362
+ */
1363
+ metadata?: {
1364
+ [key: string]: unknown;
1365
+ };
1366
+ };
1367
+
1368
+ /**
1369
+ * Status of problem evaluation.
1370
+ */
1371
+ export type ProblemStatus = 'PENDING' | 'RUNNING' | 'SUCCESS' | 'FAILED' | 'SKIPPED' | 'TIMED_OUT';
1372
+
1373
+ /**
1374
+ * Request to update per-problem progress.
1375
+ */
1376
+ export type ProgressUpdateRequest = {
1377
+ /**
1378
+ * List of problem progress updates
1379
+ */
1380
+ problems: Array<ProblemProgressUpdate>;
1381
+ };
1382
+
1383
+ /**
1384
+ * Response for progress update.
1385
+ */
1386
+ export type ProgressUpdateResponse = {
1387
+ /**
1388
+ * Whether updates were accepted
1389
+ */
1390
+ accepted?: boolean;
1391
+ };
1392
+
1393
+ /**
1394
+ * 429 - Rate limit exceeded.
1395
+ */
1396
+ export type RateLimitExceededError = {
1397
+ /**
1398
+ * Error message describing what went wrong
1399
+ */
1400
+ detail: string;
1401
+ /**
1402
+ * Error code for programmatic handling
1403
+ */
1404
+ error_code?: "RATE_LIMIT_EXCEEDED";
1405
+ };
1406
+
1407
+ /**
1408
+ * Response for reaper service statistics.
1409
+ */
1410
+ export type ReaperStatsResponse = {
1411
+ /**
1412
+ * Whether the reaper service is enabled
1413
+ */
1414
+ enabled: boolean;
1415
+ /**
1416
+ * Whether the reaper background task is running
1417
+ */
1418
+ is_running: boolean;
1419
+ /**
1420
+ * Last reaper cycle timestamp
1421
+ */
1422
+ last_run_at?: (string | null);
1423
+ /**
1424
+ * Total runs reaped since service start
1425
+ */
1426
+ runs_reaped_total: number;
1427
+ /**
1428
+ * Runs reaped in the last cycle
1429
+ */
1430
+ runs_reaped_last_cycle: number;
1431
+ /**
1432
+ * Duration of the last reaper cycle in ms
1433
+ */
1434
+ last_cycle_duration_ms: number;
1435
+ /**
1436
+ * Number of reaper cycle errors encountered
1437
+ */
1438
+ error_count: number;
1439
+ /**
1440
+ * Number of Redis stats persistence errors
1441
+ */
1442
+ redis_error_count: number;
1443
+ /**
1444
+ * Configured interval between reaper cycles
1445
+ */
1446
+ interval_seconds: number;
1447
+ };
1448
+
1449
+ /**
1450
+ * Request to re-evaluate an agent version.
1451
+ */
1452
+ export type ReevaluateRequest = {
1453
+ /**
1454
+ * Reason for re-evaluation
1455
+ */
1456
+ reason: string;
1457
+ /**
1458
+ * Suite ID (defaults to current suite)
1459
+ */
1460
+ suite_id?: (number | null);
1461
+ /**
1462
+ * Override required successes
1463
+ */
1464
+ required_successes?: (number | null);
1465
+ };
1466
+
1467
+ /**
1468
+ * Response for re-evaluation request.
1469
+ */
1470
+ export type ReevaluateResponse = {
1471
+ /**
1472
+ * Agent version ID
1473
+ */
1474
+ agent_version_id: string;
1475
+ };
1476
+
1477
+ /**
1478
+ * Request to reinstate an agent version.
1479
+ */
1480
+ export type ReinstateRequest = {
1481
+ /**
1482
+ * Suite ID (defaults to current suite)
1483
+ */
1484
+ suite_id?: (number | null);
1485
+ };
1486
+
1487
+ /**
1488
+ * 409 - Evaluation run is already complete.
1489
+ */
1490
+ export type RunAlreadyCompleteError = {
1491
+ /**
1492
+ * Error message describing what went wrong
1493
+ */
1494
+ detail: string;
1495
+ /**
1496
+ * Error code for programmatic handling
1497
+ */
1498
+ error_code?: "RUN_ALREADY_COMPLETE";
1499
+ };
1500
+
1501
+ /**
1502
+ * Representation of a currently running evaluation.
1503
+ */
1504
+ export type RunningEvaluation = {
1505
+ /**
1506
+ * Unique identifier for this run
1507
+ */
1508
+ eval_run_id: string;
1509
+ /**
1510
+ * Agent version being evaluated
1511
+ */
1512
+ agent_version_id: string;
1513
+ /**
1514
+ * Name of the agent
1515
+ */
1516
+ agent_name: string;
1517
+ /**
1518
+ * Version number within this agent (v1, v2, etc.)
1519
+ */
1520
+ version_number: number;
1521
+ /**
1522
+ * Miner who owns the agent
1523
+ */
1524
+ miner_hotkey: string;
1525
+ /**
1526
+ * Validator performing evaluation
1527
+ */
1528
+ validator_hotkey: string;
1529
+ /**
1530
+ * Current run status
1531
+ */
1532
+ status: EvaluationRunStatus;
1533
+ /**
1534
+ * When evaluation started
1535
+ */
1536
+ started_at: string;
1537
+ /**
1538
+ * Percentage of problems completed (0-100)
1539
+ */
1540
+ progress_percent?: number;
1541
+ };
1542
+
1543
+ /**
1544
+ * 400 - Candidate score does not exceed the challenge threshold.
1545
+ */
1546
+ export type ScoreBelowThresholdError = {
1547
+ /**
1548
+ * Error message describing what went wrong
1549
+ */
1550
+ detail: string;
1551
+ /**
1552
+ * Error code for programmatic handling
1553
+ */
1554
+ error_code?: "SCORE_BELOW_THRESHOLD";
1555
+ /**
1556
+ * Score of the candidate agent
1557
+ */
1558
+ candidate_score: number;
1559
+ /**
1560
+ * Minimum score required to dethrone the current top
1561
+ */
1562
+ required_score: number;
1563
+ /**
1564
+ * Score of the current top agent
1565
+ */
1566
+ current_top_score: number;
1567
+ /**
1568
+ * Current challenge margin fraction
1569
+ */
1570
+ margin: number;
1571
+ };
1572
+
1573
+ /**
1574
+ * Request body for session creation endpoint.
1575
+ */
1576
+ export type SessionRequest = {
1577
+ /**
1578
+ * SS58 hotkey address
1579
+ */
1580
+ hotkey: string;
1581
+ /**
1582
+ * Challenge that was signed
1583
+ */
1584
+ challenge: string;
1585
+ /**
1586
+ * Hex-encoded signature
1587
+ */
1588
+ signature: string;
1589
+ };
1590
+
1591
+ /**
1592
+ * Response from session creation endpoint.
1593
+ */
1594
+ export type SessionResponse = {
1595
+ /**
1596
+ * Session token for authenticated requests
1597
+ */
1598
+ session_token: string;
1599
+ /**
1600
+ * Unix timestamp when session expires
1601
+ */
1602
+ expires_at: number;
1603
+ /**
1604
+ * User role (miner, validator, admin)
1605
+ */
1606
+ role: string;
1607
+ };
1608
+
1609
+ /**
1610
+ * Request to set an agent version as the top agent for emissions.
1611
+ */
1612
+ export type SetTopRequest = {
1613
+ /**
1614
+ * Suite ID (defaults to current suite)
1615
+ */
1616
+ suite_id?: (number | null);
1617
+ /**
1618
+ * Bypass the challenge threshold check (recorded in audit)
1619
+ */
1620
+ force?: boolean;
1621
+ };
1622
+
1623
+ /**
1624
+ * Response for set-top operation.
1625
+ */
1626
+ export type SetTopResponse = {
1627
+ /**
1628
+ * New top agent version
1629
+ */
1630
+ agent_version_id: string;
1631
+ /**
1632
+ * Suite ID
1633
+ */
1634
+ suite_id: number;
1635
+ /**
1636
+ * Previous top agent version (now marked was_top)
1637
+ */
1638
+ previous_top_agent_version_id?: (string | null);
1639
+ /**
1640
+ * When this agent became top
1641
+ */
1642
+ top_at: string;
1643
+ };
1644
+
1645
+ /**
1646
+ * Response model for agent submission.
1647
+ */
1648
+ export type SubmitAgentResponse = {
1649
+ /**
1650
+ * Agent ID (created if needed)
1651
+ */
1652
+ agent_id?: (string | null);
1653
+ /**
1654
+ * Agent version ID (if accepted)
1655
+ */
1656
+ agent_version_id?: (string | null);
1657
+ /**
1658
+ * Whether submission was accepted
1659
+ */
1660
+ admission_status: AdmissionStatus;
1661
+ /**
1662
+ * Reason for rejection if rejected
1663
+ */
1664
+ admission_reason?: (AdmissionReason | null);
1665
+ /**
1666
+ * When next submission is allowed (if in cooldown)
1667
+ */
1668
+ next_allowed_at?: (string | null);
1669
+ /**
1670
+ * Miner hotkey that submitted
1671
+ */
1672
+ hotkey: string;
1673
+ /**
1674
+ * Status message
1675
+ */
1676
+ message?: string;
1677
+ };
1678
+
1679
+ /**
1680
+ * 404 - Problem suite not found.
1681
+ */
1682
+ export type SuiteNotFoundError = {
1683
+ /**
1684
+ * Error message describing what went wrong
1685
+ */
1686
+ detail: string;
1687
+ /**
1688
+ * Error code for programmatic handling
1689
+ */
1690
+ error_code?: "SUITE_NOT_FOUND";
1691
+ };
1692
+
1693
+ /**
1694
+ * Public representation of a problem suite.
1695
+ */
1696
+ export type SuitePublic = {
1697
+ /**
1698
+ * Problem suite version/ID
1699
+ */
1700
+ suite_id: number;
1701
+ /**
1702
+ * Version number of the problem suite
1703
+ */
1704
+ suite_version: number;
1705
+ /**
1706
+ * Whether this suite is currently active
1707
+ */
1708
+ is_active: boolean;
1709
+ };
1710
+
1711
+ /**
1712
+ * Response for suite with its problems.
1713
+ */
1714
+ export type SuiteWithProblemsResponse = {
1715
+ /**
1716
+ * Suite information
1717
+ */
1718
+ suite: SuitePublic;
1719
+ /**
1720
+ * Problems in this suite
1721
+ */
1722
+ problems: Array<ProblemPublic>;
1723
+ };
1724
+
1725
+ /**
1726
+ * Terminal statuses for evaluation runs.
1727
+ */
1728
+ export type TerminalStatus = 'SUCCESS' | 'FAILED' | 'TIMED_OUT';
1729
+
1730
+ /**
1731
+ * Response for top agent endpoint.
1732
+ */
1733
+ export type TopAgentResponse = {
1734
+ /**
1735
+ * Active suite ID
1736
+ */
1737
+ suite_id: number;
1738
+ /**
1739
+ * When this was computed
1740
+ */
1741
+ computed_at: string;
1742
+ /**
1743
+ * Top agent version ID
1744
+ */
1745
+ top_agent_version_id?: (string | null);
1746
+ /**
1747
+ * Top miner's hotkey
1748
+ */
1749
+ top_miner_hotkey?: (string | null);
1750
+ /**
1751
+ * Top score
1752
+ */
1753
+ top_score?: (number | null);
1754
+ /**
1755
+ * Hysteresis/decay params
1756
+ */
1757
+ policy?: ({
1758
+ [key: string]: unknown;
1759
+ } | null);
1760
+ /**
1761
+ * Score required to dethrone
1762
+ */
1763
+ challenge_threshold?: (number | null);
1764
+ /**
1765
+ * Current emission weight (1.0=full)
1766
+ */
1767
+ emission_weight?: (number | null);
1768
+ /**
1769
+ * Current challenge margin fraction
1770
+ */
1771
+ margin?: (number | null);
1772
+ };
1773
+
1774
+ export type ValidationError = {
1775
+ loc: Array<(string | number)>;
1776
+ msg: string;
1777
+ type: string;
1778
+ };
1779
+
1780
+ /**
1781
+ * Information about the agent currently being evaluated by a validator.
1782
+ */
1783
+ export type ValidatorCurrentAgent = {
1784
+ /**
1785
+ * Name of the agent being evaluated
1786
+ */
1787
+ agent_name: string;
1788
+ /**
1789
+ * Agent version ID
1790
+ */
1791
+ version_id: string;
1792
+ /**
1793
+ * Version number within this agent (v1, v2, etc.)
1794
+ */
1795
+ version_number: number;
1796
+ /**
1797
+ * When evaluation started
1798
+ */
1799
+ started_at: string;
1800
+ };
1801
+
1802
+ /**
1803
+ * 404 - Validator not found.
1804
+ */
1805
+ export type ValidatorNotFoundError = {
1806
+ /**
1807
+ * Error message describing what went wrong
1808
+ */
1809
+ detail: string;
1810
+ /**
1811
+ * Error code for programmatic handling
1812
+ */
1813
+ error_code?: "VALIDATOR_NOT_FOUND";
1814
+ };
1815
+
1816
+ /**
1817
+ * Result from a single validator for a specific problem.
1818
+ */
1819
+ export type ValidatorProblemResult = {
1820
+ /**
1821
+ * Validator hotkey
1822
+ */
1823
+ validator_hotkey: string;
1824
+ /**
1825
+ * Problem status from this validator
1826
+ */
1827
+ status: ProblemStatus;
1828
+ /**
1829
+ * Problem score from this validator
1830
+ */
1831
+ score?: (number | null);
1832
+ /**
1833
+ * Score breakdown from this validator
1834
+ */
1835
+ score_components?: ({
1836
+ [key: string]: unknown;
1837
+ } | null);
1838
+ /**
1839
+ * Last update from this validator
1840
+ */
1841
+ updated_at?: (string | null);
1842
+ };
1843
+
1844
+ /**
1845
+ * Public representation of a validator.
1846
+ */
1847
+ export type ValidatorPublic = {
1848
+ /**
1849
+ * Validator's SS58 address
1850
+ */
1851
+ hotkey: string;
1852
+ /**
1853
+ * Current validator status
1854
+ */
1855
+ status: ValidatorStatus;
1856
+ /**
1857
+ * When validator was registered
1858
+ */
1859
+ registered_at: string;
1860
+ /**
1861
+ * Last work claim time
1862
+ */
1863
+ last_claim_at?: (string | null);
1864
+ /**
1865
+ * Agent currently being evaluated, if any
1866
+ */
1867
+ current_agent?: (ValidatorCurrentAgent | null);
1868
+ /**
1869
+ * Docker image digests for validator stack services
1870
+ */
1871
+ service_versions?: ({
1872
+ [key: string]: (string);
1873
+ } | null);
1874
+ };
1875
+
1876
+ /**
1877
+ * Status of a validator.
1878
+ */
1879
+ export type ValidatorStatus = 'evaluating' | 'available';
1880
+
1881
+ /**
1882
+ * Status of the work item after completion.
1883
+ */
1884
+ export type WorkItemStatus = {
1885
+ /**
1886
+ * Number of successful runs
1887
+ */
1888
+ included_success_count: number;
1889
+ /**
1890
+ * Required successful runs
1891
+ */
1892
+ required_successes: number;
1893
+ /**
1894
+ * Whether work item is closed
1895
+ */
1896
+ is_closed: boolean;
1897
+ };
1898
+
1899
+ export type HealthCheckResponse = ({
1900
+ [key: string]: unknown;
1901
+ });
1902
+
1903
+ export type HealthCheckError = unknown;
1904
+
1905
+ export type GetCurrentSuiteResponse = (SuitePublic);
1906
+
1907
+ export type GetCurrentSuiteError = (SuiteNotFoundError);
1908
+
1909
+ export type GetSuiteProblemsData = {
1910
+ path: {
1911
+ /**
1912
+ * Suite ID/version
1913
+ */
1914
+ suite_id: number;
1915
+ };
1916
+ };
1917
+
1918
+ export type GetSuiteProblemsResponse = (SuiteWithProblemsResponse);
1919
+
1920
+ export type GetSuiteProblemsError = (SuiteNotFoundError | HTTPValidationError);
1921
+
1922
+ export type GetLeaderboardData = {
1923
+ query?: {
1924
+ /**
1925
+ * Maximum entries to return
1926
+ */
1927
+ limit?: number;
1928
+ /**
1929
+ * Offset for pagination
1930
+ */
1931
+ offset?: number;
1932
+ /**
1933
+ * Suite ID (defaults to current)
1934
+ */
1935
+ suite_id?: (number | null);
1936
+ };
1937
+ };
1938
+
1939
+ export type GetLeaderboardResponse = (LeaderboardResponse);
1940
+
1941
+ export type GetLeaderboardError = (HTTPValidationError);
1942
+
1943
+ export type GetTopAgentResponse = (TopAgentResponse);
1944
+
1945
+ export type GetTopAgentError = unknown;
1946
+
1947
+ export type GetAgentVersionStatusData = {
1948
+ path: {
1949
+ /**
1950
+ * Agent version ID
1951
+ */
1952
+ agent_version_id: string;
1953
+ };
1954
+ };
1955
+
1956
+ export type GetAgentVersionStatusResponse = (AgentVersionStatus);
1957
+
1958
+ export type GetAgentVersionStatusError = (AgentVersionNotFoundError | HTTPValidationError);
1959
+
1960
+ export type GetAgentVersionRunsData = {
1961
+ path: {
1962
+ /**
1963
+ * Agent version ID
1964
+ */
1965
+ agent_version_id: string;
1966
+ };
1967
+ };
1968
+
1969
+ export type GetAgentVersionRunsResponse = (Array<EvaluationRunPublic>);
1970
+
1971
+ export type GetAgentVersionRunsError = (AgentVersionNotFoundError | HTTPValidationError);
1972
+
1973
+ export type GetAgentVersionProblemsData = {
1974
+ path: {
1975
+ /**
1976
+ * Agent version ID
1977
+ */
1978
+ agent_version_id: string;
1979
+ };
1980
+ };
1981
+
1982
+ export type GetAgentVersionProblemsResponse = (AgentVersionProblemsResponse);
1983
+
1984
+ export type GetAgentVersionProblemsError = (AgentVersionNotFoundError | HTTPValidationError);
1985
+
1986
+ export type GetAgentVersionData = {
1987
+ path: {
1988
+ /**
1989
+ * Agent version ID
1990
+ */
1991
+ agent_version_id: string;
1992
+ };
1993
+ };
1994
+
1995
+ export type GetAgentVersionResponse = (AgentVersionPublic);
1996
+
1997
+ export type GetAgentVersionError = ((AgentVersionNotFoundError | SuiteNotFoundError | ArtifactNotReleasedError) | HTTPValidationError);
1998
+
1999
+ export type GetArtifactDownloadUrlData = {
2000
+ body: ArtifactDownloadRequest;
2001
+ };
2002
+
2003
+ export type GetArtifactDownloadUrlResponse = (ArtifactDownloadResponse);
2004
+
2005
+ export type GetArtifactDownloadUrlError = ((MissingParameterError | InvalidArtifactTypeError) | (AgentVersionNotFoundError | SuiteNotFoundError | ArtifactNotReleasedError | ArtifactNotFoundError | EvalRunNotFoundError) | HTTPValidationError);
2006
+
2007
+ export type GetEvaluationRunData = {
2008
+ path: {
2009
+ /**
2010
+ * Evaluation run ID
2011
+ */
2012
+ eval_run_id: string;
2013
+ };
2014
+ };
2015
+
2016
+ export type GetEvaluationRunResponse = (EvaluationRunDetail);
2017
+
2018
+ export type GetEvaluationRunError = (EvalRunNotFoundError | HTTPValidationError);
2019
+
2020
+ export type GetValidatorsResponse = (Array<ValidatorPublic>);
2021
+
2022
+ export type GetValidatorsError = unknown;
2023
+
2024
+ export type GetRunningEvaluationsResponse = (Array<RunningEvaluation>);
2025
+
2026
+ export type GetRunningEvaluationsError = unknown;
2027
+
2028
+ export type GetPendingEvaluationsData = {
2029
+ query?: {
2030
+ /**
2031
+ * Maximum items to return
2032
+ */
2033
+ limit?: number;
2034
+ /**
2035
+ * Number of items to skip
2036
+ */
2037
+ offset?: number;
2038
+ /**
2039
+ * Filter by problem suite ID
2040
+ */
2041
+ suite_id?: (number | null);
2042
+ };
2043
+ };
2044
+
2045
+ export type GetPendingEvaluationsResponse = (PendingEvaluationsResponse);
2046
+
2047
+ export type GetPendingEvaluationsError = (HTTPValidationError);
2048
+
2049
+ export type RequestChallengeData = {
2050
+ body: ChallengeRequest;
2051
+ };
2052
+
2053
+ export type RequestChallengeResponse = (ChallengeResponse);
2054
+
2055
+ export type RequestChallengeError = (HTTPValidationError);
2056
+
2057
+ export type CreateSessionEndpointData = {
2058
+ body: SessionRequest;
2059
+ };
2060
+
2061
+ export type CreateSessionEndpointResponse = (SessionResponse);
2062
+
2063
+ export type CreateSessionEndpointError = (HTTPValidationError);
2064
+
2065
+ export type LogoutData = {
2066
+ headers?: {
2067
+ authorization?: (string | null);
2068
+ };
2069
+ };
2070
+
2071
+ export type LogoutResponse2 = (LogoutResponse);
2072
+
2073
+ export type LogoutError = (HTTPValidationError);
2074
+
2075
+ export type SubmitAgentData = {
2076
+ body: Body_submit_agent;
2077
+ };
2078
+
2079
+ export type SubmitAgentResponse2 = (SubmitAgentResponse);
2080
+
2081
+ export type SubmitAgentError = ((InvalidAgentNameError | InvalidFileError) | FileTooLargeError | CodeAnalysisError | (CooldownActiveError | RateLimitExceededError) | NoActiveSuiteError);
2082
+
2083
+ export type ListMinerAgentsResponse = (MinerAgentsResponse);
2084
+
2085
+ export type ListMinerAgentsError = unknown;
2086
+
2087
+ export type ListAgentVersionsData = {
2088
+ path: {
2089
+ /**
2090
+ * Agent ID
2091
+ */
2092
+ agent_id: string;
2093
+ };
2094
+ };
2095
+
2096
+ export type ListAgentVersionsResponse = (Array<AgentVersionHistoryEntry>);
2097
+
2098
+ export type ListAgentVersionsError = (AgentNotFoundError | HTTPValidationError);
2099
+
2100
+ export type GetOwnedAgentVersionStatusData = {
2101
+ path: {
2102
+ /**
2103
+ * Agent version ID
2104
+ */
2105
+ agent_version_id: string;
2106
+ };
2107
+ };
2108
+
2109
+ export type GetOwnedAgentVersionStatusResponse = (AgentVersionStatus);
2110
+
2111
+ export type GetOwnedAgentVersionStatusError = (AgentVersionNotFoundError | HTTPValidationError);
2112
+
2113
+ export type ClaimWorkResponse2 = (ClaimWorkResponse | void);
2114
+
2115
+ export type ClaimWorkError = (AtCapacityError);
2116
+
2117
+ export type HeartbeatData = {
2118
+ body?: (HeartbeatRequest | null);
2119
+ path: {
2120
+ /**
2121
+ * Evaluation run ID
2122
+ */
2123
+ eval_run_id: string;
2124
+ };
2125
+ };
2126
+
2127
+ export type HeartbeatResponse2 = (HeartbeatResponse);
2128
+
2129
+ export type HeartbeatError = (EvalRunNotFoundError | (LeaseExpiredError | NotRunOwnerError | RunAlreadyCompleteError) | HTTPValidationError);
2130
+
2131
+ export type UpdateProgressData = {
2132
+ body: ProgressUpdateRequest;
2133
+ path: {
2134
+ /**
2135
+ * Evaluation run ID
2136
+ */
2137
+ eval_run_id: string;
2138
+ };
2139
+ };
2140
+
2141
+ export type UpdateProgressResponse = (ProgressUpdateResponse);
2142
+
2143
+ export type UpdateProgressError = (InvalidProblemIdError | EvalRunNotFoundError | (LeaseExpiredError | NotRunOwnerError | RunAlreadyCompleteError) | HTTPValidationError);
2144
+
2145
+ export type PresignUploadData = {
2146
+ body: PresignUploadRequest;
2147
+ };
2148
+
2149
+ export type PresignUploadResponse2 = (PresignUploadResponse);
2150
+
2151
+ export type PresignUploadError = ((FileTooLargeError | ValidationError) | (EvalRunNotFoundError | ProblemNotFoundError) | NotRunOwnerError | HTTPValidationError);
2152
+
2153
+ export type CompleteRunData = {
2154
+ body: CompleteRunRequest;
2155
+ path: {
2156
+ /**
2157
+ * Evaluation run ID
2158
+ */
2159
+ eval_run_id: string;
2160
+ };
2161
+ };
2162
+
2163
+ export type CompleteRunResponse2 = (CompleteRunResponse);
2164
+
2165
+ export type CompleteRunError = ((MissingScoreError | ValidationError) | EvalRunNotFoundError | (NotRunOwnerError | RunAlreadyCompleteError) | HTTPValidationError);
2166
+
2167
+ export type BanMinerData = {
2168
+ body: BanRequest;
2169
+ path: {
2170
+ /**
2171
+ * Miner hotkey to ban
2172
+ */
2173
+ miner_hotkey: string;
2174
+ };
2175
+ };
2176
+
2177
+ export type BanMinerResponse = (BanResponse);
2178
+
2179
+ export type BanMinerError = (MinerNotFoundError | HTTPValidationError);
2180
+
2181
+ export type UnbanMinerData = {
2182
+ path: {
2183
+ /**
2184
+ * Miner hotkey to unban
2185
+ */
2186
+ miner_hotkey: string;
2187
+ };
2188
+ };
2189
+
2190
+ export type UnbanMinerResponse = (BanResponse);
2191
+
2192
+ export type UnbanMinerError = (MinerNotFoundError | HTTPValidationError);
2193
+
2194
+ export type BanValidatorData = {
2195
+ body: BanRequest;
2196
+ path: {
2197
+ /**
2198
+ * Validator hotkey to ban
2199
+ */
2200
+ validator_hotkey: string;
2201
+ };
2202
+ };
2203
+
2204
+ export type BanValidatorResponse = (BanResponse);
2205
+
2206
+ export type BanValidatorError = (ValidatorNotFoundError | HTTPValidationError);
2207
+
2208
+ export type UnbanValidatorData = {
2209
+ path: {
2210
+ /**
2211
+ * Validator hotkey to unban
2212
+ */
2213
+ validator_hotkey: string;
2214
+ };
2215
+ };
2216
+
2217
+ export type UnbanValidatorResponse = (BanResponse);
2218
+
2219
+ export type UnbanValidatorError = (ValidatorNotFoundError | HTTPValidationError);
2220
+
2221
+ export type DiscardAgentVersionData = {
2222
+ body: DiscardRequest;
2223
+ path: {
2224
+ /**
2225
+ * Agent version ID
2226
+ */
2227
+ agent_version_id: string;
2228
+ };
2229
+ };
2230
+
2231
+ export type DiscardAgentVersionResponse = (DiscardResponse);
2232
+
2233
+ export type DiscardAgentVersionError = (AgentVersionNotFoundError | HTTPValidationError | NoActiveSuiteError);
2234
+
2235
+ export type ReinstateAgentVersionData = {
2236
+ body: ReinstateRequest;
2237
+ path: {
2238
+ /**
2239
+ * Agent version ID
2240
+ */
2241
+ agent_version_id: string;
2242
+ };
2243
+ };
2244
+
2245
+ export type ReinstateAgentVersionResponse = (DiscardResponse);
2246
+
2247
+ export type ReinstateAgentVersionError = (AgentVersionNotFoundError | HTTPValidationError | NoActiveSuiteError);
2248
+
2249
+ export type SetTopAgentData = {
2250
+ body: SetTopRequest;
2251
+ path: {
2252
+ /**
2253
+ * Agent version ID to set as top
2254
+ */
2255
+ agent_version_id: string;
2256
+ };
2257
+ };
2258
+
2259
+ export type SetTopAgentResponse = (SetTopResponse);
2260
+
2261
+ export type SetTopAgentError = (ScoreBelowThresholdError | AgentVersionNotFoundError | HTTPValidationError | NoActiveSuiteError);
2262
+
2263
+ export type InvalidateEvaluationRunData = {
2264
+ body: InvalidateRunRequest;
2265
+ path: {
2266
+ /**
2267
+ * Evaluation run ID
2268
+ */
2269
+ eval_run_id: string;
2270
+ };
2271
+ };
2272
+
2273
+ export type InvalidateEvaluationRunResponse = (EvaluationRunStatusPublic);
2274
+
2275
+ export type InvalidateEvaluationRunError = (EvalRunNotFoundError | AlreadyInvalidatedError | HTTPValidationError);
2276
+
2277
+ export type ReevaluateAgentVersionData = {
2278
+ body: ReevaluateRequest;
2279
+ path: {
2280
+ /**
2281
+ * Agent version ID
2282
+ */
2283
+ agent_version_id: string;
2284
+ };
2285
+ };
2286
+
2287
+ export type ReevaluateAgentVersionResponse = (ReevaluateResponse);
2288
+
2289
+ export type ReevaluateAgentVersionError = (AgentVersionNotFoundError | HTTPValidationError | NoActiveSuiteError);
2290
+
2291
+ export type CancelAgentVersionData = {
2292
+ body: CancelRequest;
2293
+ path: {
2294
+ /**
2295
+ * Agent version ID
2296
+ */
2297
+ agent_version_id: string;
2298
+ };
2299
+ };
2300
+
2301
+ export type CancelAgentVersionResponse = (CancelResponse);
2302
+
2303
+ export type CancelAgentVersionError = (HTTPValidationError);
2304
+
2305
+ export type CreateSuiteData = {
2306
+ body: CreateSuiteRequest;
2307
+ };
2308
+
2309
+ export type CreateSuiteResponse2 = (CreateSuiteResponse);
2310
+
2311
+ export type CreateSuiteError = (HTTPValidationError);
2312
+
2313
+ export type ActivateSuiteData = {
2314
+ path: {
2315
+ /**
2316
+ * Suite version to activate
2317
+ */
2318
+ suite_id: number;
2319
+ };
2320
+ };
2321
+
2322
+ export type ActivateSuiteResponse2 = (ActivateSuiteResponse);
2323
+
2324
+ export type ActivateSuiteError = (SuiteNotFoundError | HTTPValidationError);
2325
+
2326
+ export type GetAuditEventsData = {
2327
+ query?: {
2328
+ /**
2329
+ * Filter by action type (e.g., BAN_MINER)
2330
+ */
2331
+ action?: (string | null);
2332
+ /**
2333
+ * Filter by actor hotkey
2334
+ */
2335
+ actor_hotkey?: (string | null);
2336
+ /**
2337
+ * Number of events to return
2338
+ */
2339
+ limit?: number;
2340
+ /**
2341
+ * Offset for pagination
2342
+ */
2343
+ offset?: number;
2344
+ /**
2345
+ * Filter by target ID
2346
+ */
2347
+ target_id?: (string | null);
2348
+ /**
2349
+ * Filter by target type
2350
+ */
2351
+ target_type?: (string | null);
2352
+ };
2353
+ };
2354
+
2355
+ export type GetAuditEventsResponse = (AuditEventsResponse);
2356
+
2357
+ export type GetAuditEventsError = (HTTPValidationError);
2358
+
2359
+ export type GetReaperStatsResponse = (ReaperStatsResponse);
2360
+
2361
+ export type GetReaperStatsError = unknown;