1mod measurement_data_asset;
2mod wire;
3
4use schemars::generate::SchemaSettings;
5
6pub use measurement_data_asset::{
7 EvalPreparedSourceBinding, MeasurementDataAssetAcquiredSource,
8 MeasurementDataAssetCacheOutcome, MeasurementDataAssetCacheStore,
9 MeasurementDataAssetContentEntry, MeasurementDataAssetEffectiveSelection,
10 MeasurementDataAssetPreparationNextPhase, MeasurementDataAssetPreparationPhase,
11 MeasurementDataAssetPreparationRequest, MeasurementDataAssetPreparationResult,
12 MeasurementDataAssetReadiness, MeasurementDataAssetRemoteMetadataOutcome,
13 MeasurementDataAssetSourceBytesOutcome, MeasurementDataAssetSourceInput,
14 MeasurementDataAssetVerification, MeasurementDataFiles,
15};
16pub use wire::{
17 AdapterError, AdapterErrorCode, AdapterProtocol, AdapterRequest, AdapterResponse,
18 AdapterResult, AllocationLaunch, AuxiliaryModelInput, AuxiliaryModelKind,
19 AuxiliaryModelLocator, BenchAgenticAcquisitionOutcome, BenchAgenticBranchStats,
20 BenchAgenticCatalogInput, BenchAgenticResultEvidence, BenchAgenticRunEvidence,
21 BenchAgenticSourceInput, BenchAgenticSourceVerification, BenchArtifactLevelInput,
22 BenchCacheStartInput, BenchCaseInput, BenchClientRequest, BenchClientResult, BenchCorpusInput,
23 BenchDatasetCacheState, BenchDatasetCatalogInput, BenchDatasetFilterInput,
24 BenchDefinitionInput, BenchImageSamplingInput, BenchImageSourceInput, BenchImagesInput,
25 BenchInclusiveUniformInput, BenchLoadInput, BenchNativeInvocation, BenchPopulationInput,
26 BenchPopulationPreparationRequest, BenchPopulationPreparationResult,
27 BenchPrefixConditioningInput, BenchPrefixGeometrySummary, BenchPrefixSharingInput,
28 BenchPromptCacheObservation, BenchPromptInput, BenchPromptRouteInput,
29 BenchPromptTemplateProjection, BenchPromptTemplateSource, BenchPromptTokenReconciliation,
30 BenchPromptTokenTargetingSummary, BenchRandomShapeInput, BenchRenderingAuthorityInput,
31 BenchRequestRepresentationInput, BenchRequestSloInput, BenchRequestSloResult,
32 BenchRequestSourceInput, BenchRuntimeSessionResult, BenchSessionDatasetCatalogInput,
33 BenchSessionPhaseSummary, BenchSessionResultEvidence, BenchSessionSourceInput,
34 BenchSessionTemplateInput, BenchSessionTurnResult, BenchSharedSystemContentInput,
35 BenchSharedSystemContentSummary, BenchTokenCountSummary, BenchTokenDistributionKindInput,
36 BenchTokenSelectorInput, CaptureMechanism, CaptureTargetRequirement,
37 CaptureWindowControlEndpoint, CaptureWindowControlRequirement, CaptureWindowHttpActionSpec,
38 ClientEndpointInput, ClientStatus, DiscoveryBinding, DiscoveryComponent, DiscoveryProcessRole,
39 DiscoveryRequirement, EndpointAssignment, EndpointDeclaration, EndpointProtocol,
40 EndpointRequirement, EvalClientRequest, EvalClientResult, EvalDefinitionInput, EvalFailureKind,
41 EvalMetricComparison, EvalMetricGate, EvalMetricGateConclusion, EvalNormalizedMetric,
42 EvalPromptInput, EvalTaskSourceInput, EvalTrialSummary, FrontendCoRendering,
43 FrontendComponents, FrontendGatewayComponent, FrontendHandoff, FrontendPdRouterComponent,
44 FrontendProcessRole, GatewayFrontendBinding, GatewayPdRouterFrontendBinding, GatewayPlan,
45 GatewayTarget, HttpActionSpec, HttpMethod, HttpTargetRegistryReadiness, IntegrationIdentity,
46 JsonScalar, JsonValueMatch, KvTransferMechanism, LaunchFileDeclaration, MeasurementModelInput,
47 MeasurementProtocol, ModelListRequirement, Parallelism, ParallelismAttention,
48 ParallelismExperts, ParallelismOuter, PdRouterPlan, PdRoutingPolicies, PlanServeInput,
49 PlanServeResult, ProcessSpec, PromptCacheReadZeroRepresentation, ProtocolVersion, RawArtifact,
50 ReadinessProbe, RegistryMembershipReadiness, RegistryRoleValues, RenderInputDeclaration,
51 RenderServeInput, RenderServeResult, RenderSource, RenderedServeProcess, ServeModelInput,
52 ServeProcessAllocation, ServeReplicaRequirement, ServeRoleInput, ServeRoleKind, ServeRoleLink,
53 ServeRoleResult, ServeTopology, ServerMetricsEndpointInput, ServerMetricsEndpointRequirement,
54 SettingValue, SuccessMatch, SuppliedRenderInput, SyntheticAcceptanceCurveInput,
55 SyntheticAcceptanceInput, SyntheticAcceptanceOutcome, TargetEndpointScheme,
56};
57
58pub const PROTOCOL_SCHEMA_ID: &str = "https://inferlab.dev/schema/adapter-protocol/v13";
59pub const MEASUREMENT_SCHEMA_ID: &str = "https://inferlab.dev/schema/measurement-protocol/v1";
60pub const PROTOCOL_WIRE_SOURCE: &str = "crates/inferlab-protocol/src/wire.rs";
61pub const MEASUREMENT_WIRE_SOURCE: &str =
62 "crates/inferlab-protocol/src/wire.rs and measurement_data_asset.rs";
63
64#[must_use]
65pub fn protocol_schema() -> schemars::Schema {
66 schema_for::<AdapterProtocol>(PROTOCOL_SCHEMA_ID, PROTOCOL_WIRE_SOURCE)
67}
68
69#[must_use]
70pub fn measurement_schema() -> schemars::Schema {
71 schema_for::<MeasurementProtocol>(MEASUREMENT_SCHEMA_ID, MEASUREMENT_WIRE_SOURCE)
72}
73
74fn schema_for<T: schemars::JsonSchema>(id: &str, wire_source: &str) -> schemars::Schema {
75 let mut schema = SchemaSettings::draft2020_12()
76 .for_deserialize()
77 .into_generator()
78 .into_root_schema_for::<T>();
79 schema.ensure_object().insert("$id".to_owned(), id.into());
80 schema.ensure_object().insert(
81 "$comment".to_owned(),
82 format!("Generated from {wire_source}; do not edit.").into(),
83 );
84 schema
85}