Kiln Documentation

Training and agent control plane API schema

Look up native training, distillation, preflight, agent, trace, recipe, correction, job, and adapter-library operations and state transitions.

Request and response shapes for training, distillation, preflight estimates, embedded agents, recipes, corrections, and the adapter-library routes. Start with the entrypoint for your HTTP operation, then open only the definitions it references. Unknown-field behavior is listed per shape. Preflight compatibility and capacity values are modeled estimates, and the library routes do not yet perform remote installs or uploads.

Schema identity

Property Value
Title Kiln Training and Agent Control Plane API
$id https://ericflo.github.io/kiln/contracts/kiln-control-plane-v1.schema.json
Dialect https://json-schema.org/draft/2020-12/schema
Root type Union of 61 public entrypoints
Root object Defined by the selected entrypoint

Entrypoints

Choose the request or response shape for the operation you are implementing. Each name links to its complete field table and constraints.

Entrypoint Purpose Shape Unknown fields
AgentRunAbortResponse Acknowledgment that a cooperative abort was requested. 1 field Unknown fields rejected
AgentRunEventsResponse Incremental event page with sequence information that lets clients detect truncated history. 5 fields Unknown fields rejected
AgentRunListResponse Embedded agent runs Kiln currently retains. 1 field Unknown fields rejected
AgentRunQueuedResponse Acknowledgment that a steering or follow-up message was queued for delivery. 1 field Unknown fields rejected
AgentRunRecord Stored metadata and outcome for one embedded agent run. 16 fields Unknown fields rejected
AgentRunsStatusResponse Whether embedded runs are enabled, whether the local pi executable is available, and current concurrency. 7 fields Unknown fields rejected
AgentTrace Indexed pi session and its normalized training trajectory. 12 fields Unknown fields rejected
AgentTracesListResponse All agent traces currently indexed by Kiln. 1 field Unknown fields rejected
CancelTrainingJobResponse Cancellation result. Queued jobs stop immediately; running jobs stop cooperatively at the next training-step boundary and later appear as failed with a cancellation error. 0 fields Varies by composed variant
CapacityRequest Inputs to the preflight capacity model. num_layers and hidden_size default to Qwen3.5-4B values when omitted, so send both for any other model. 7 fields Unknown fields accepted and ignored
CapacityResponse Modeled capacity estimate and any preflight warnings. This is not a measured performance result. 5 fields Unknown fields rejected
ClearCorrectionsResponse Number of active corrections removed. Previously trained history remains. 2 fields Unknown fields rejected
CompatibilityResponse Filtered rows from Kiln's small, model-specific built-in estimate table. 2 fields Unknown fields rejected
CorrectionRow One stored correction returned by Kiln. 10 fields Unknown fields rejected
CorrectionRowInput Create or update one correction. Kiln can supply timestamps and training markers when they are omitted. 10 fields Unknown fields accepted and ignored
CreateRunRequest Request to queue one embedded agent run. 6 fields Unknown fields accepted and ignored
DeleteCorrectionResponse Confirmation that one correction was deleted. 2 fields Unknown fields rejected
DeleteTrainingJobResponse Result of permanently deleting a terminal job from memory and, when present, its archive file. Active jobs must be cancelled first. 3 fields Unknown fields rejected
DiscoverRequest Optional pi sessions directory on the Kiln server. 1 field Unknown fields accepted and ignored
DiscoverResponse Number of traces indexed and the server-local directory scanned. 2 fields Unknown fields rejected
DistillMergeRequest Request to distill behavior from one or more source adapters into a new adapter. 6 fields Unknown fields accepted and ignored
DistillPumpRequest Knowledge-pump request with a registered teacher alias and a rollout budget. 8 fields Unknown fields accepted and ignored
DistillRefreshRequest Two-phase request for learning new material and recovering instruction-following behavior. Automatic loading supports at most one gate across post_eval, if_eval_suite, and new_knowledge_eval_suite; disable config.auto_load for independent multi-suite diagnostics. 10 fields Unknown fields accepted and ignored
DistillSelfRequest Self-distillation request that uses information available only during training. 7 fields Unknown fields accepted and ignored
FrontDoorRequest Tagged request accepted by the shared /v1/train endpoint for all supported training workflows. 0 fields Varies by composed variant
FrontDoorResponse Training workflow selected by Kiln and the resulting queue receipt. 2 fields Unknown fields rejected
GrpoRequest GRPO submission using exactly one inline, local-path, or registered-dataset source. 7 fields Unknown fields accepted and ignored
JudgeDistillRequest Request to distill a local judge from indexed agent traces. 5 fields Unknown fields accepted and ignored
JudgeDistillResponse Queue receipt for a judge-distillation request. 4 fields Unknown fields rejected
JudgeDriftCheckRequest Inputs accepted by the judge-drift route. After validation, the endpoint currently returns HTTP 501 and performs no drift check. 4 fields Unknown fields accepted and ignored
LibraryListResponse Configured library URL and catalog response. The current endpoint returns an empty list because remote catalog access is not operational. 3 fields Unknown fields rejected
ListResponse Corrections from the active set or training history. 1 field Unknown fields rejected
MarkTrainedRequest Mark selected corrections as used to train a named adapter. 2 fields Unknown fields accepted and ignored
MarkTrainedResponse Number of corrections marked as trained. 2 fields Unknown fields rejected
MessageRequest Steering or follow-up message for an active run. 1 field Unknown fields accepted and ignored
OpdRequest Direct OPD submission using either inline prompts or a replay dataset path on the server. 5 fields Unknown fields accepted and ignored
OpenEnvInspectRequest One or more OpenEnv HTTP base URLs to discover, with optional origin-scoped server credential handles. environments is accepted as an input alias. 2 fields Unknown fields rejected
OpenEnvInspectResponse Complete discovery results for the requested OpenEnv servers. 2 fields Unknown fields rejected
OpenEnvRunList Newest-first retained OpenEnv run records. 2 fields Unknown fields rejected
OpenEnvRunRequest A persisted OpenEnv rollout or rollout-and-train request with optional static and paired held-out environment evaluation. Immutable train contracts are preflighted before persistence or environment collection. environments is accepted as an input alias for environment_urls. 24 fields Unknown fields rejected
OpenEnvRunStatus Persisted status, collection artifacts, immutable admitted training contract, and authoritative training and evaluation lifecycle for one OpenEnv run. Version 1 records may retain the historical terminal training_queued handoff; version 2 follows learning to completion; version 3 includes paired held-out environment evaluation; version 4 adds bounded FIFO execution admission; version 5 seals exact trainer settings before collection. 21 fields Unknown fields rejected
OpenEnvTaskCatalogRequest Discover Task API support and optionally request one bounded task page from each OpenEnv server. environments is accepted as an input alias. 6 fields Unknown fields rejected
OpenEnvTaskCatalogResponse Bounded Task API discovery results for the requested OpenEnv servers. 2 fields Unknown fields rejected
OpenEnvTrainingPreflightReceipt Successful OpenEnv admission receipt containing the exact GRPO and optional post-evaluation contract the direct client must submit after collection. 6 fields Unknown fields rejected
OpenEnvTrainingPreflightRequest Side-effect-free OpenEnv training intent checked before direct CLI collection. Kiln owns rollout-derived GRPO fields. 5 fields Unknown fields rejected
PublishPayload Optional description and uploader label for a future library publication. 2 fields Unknown fields accepted and ignored
PublishToLibraryResponse Result of validating that a local adapter has the receipt required for publication. No remote upload occurs. 7 fields Unknown fields rejected
QueueResponse Training jobs grouped into running, queued, and terminal collections. 3 fields Unknown fields rejected
RecipeRunRequest Run either a built-in recipe by name or an inline recipe body, with optional placeholder values. 0 fields Varies by composed variant
RecipeRunResponse Jobs and effective seeds queued for one recipe run. 4 fields Unknown fields rejected
RecipesListResponse All built-in recipes and whether the current server can run each one. 1 field Unknown fields rejected
SelfImproveRequest Request to queue the phases of one agent self-improvement round. 5 fields Unknown fields accepted and ignored
SelfImproveResponse Job IDs and seeds queued for one self-improvement round. 4 fields Unknown fields rejected
SftRequest SFT submission using exactly one inline, local-path, or registered-dataset source. 6 fields Unknown fields rejected
TerminalStatusResponse Embedded-terminal security status, local pi path, working directory, and session state. 6 fields Unknown fields rejected
TierDefaultsListResponse All built-in deployment-tier presets. 1 field Unknown fields rejected
TierDefaultsResponse One requested preset and its built-in planning defaults. 2 fields Unknown fields rejected
TrainingJobDetail Detailed job status with its loss curve, receipts, replay request, linked evals, and newest checkpoint. 26 fields Unknown fields rejected
TrainingResponse Receipt returned after Kiln validates and queues a training request. 4 fields Unknown fields rejected
TrainingStatus Current or archived status for one training job. 16 fields Unknown fields rejected
Vec_TrainingStatus All training statuses Kiln currently retains. 0 fields Varies by composed variant

Composition and conditional rules

Show exact composition rules
{
  "oneOf": [
    {
      "$ref": "#/$defs/AgentRunAbortResponse"
    },
    {
      "$ref": "#/$defs/AgentRunEventsResponse"
    },
    {
      "$ref": "#/$defs/AgentRunListResponse"
    },
    {
      "$ref": "#/$defs/AgentRunQueuedResponse"
    },
    {
      "$ref": "#/$defs/AgentRunRecord"
    },
    {
      "$ref": "#/$defs/AgentRunsStatusResponse"
    },
    {
      "$ref": "#/$defs/AgentTrace"
    },
    {
      "$ref": "#/$defs/AgentTracesListResponse"
    },
    {
      "$ref": "#/$defs/CancelTrainingJobResponse"
    },
    {
      "$ref": "#/$defs/CapacityRequest"
    },
    {
      "$ref": "#/$defs/CapacityResponse"
    },
    {
      "$ref": "#/$defs/ClearCorrectionsResponse"
    },
    {
      "$ref": "#/$defs/CompatibilityResponse"
    },
    {
      "$ref": "#/$defs/CorrectionRow"
    },
    {
      "$ref": "#/$defs/CorrectionRowInput"
    },
    {
      "$ref": "#/$defs/CreateRunRequest"
    },
    {
      "$ref": "#/$defs/DeleteCorrectionResponse"
    },
    {
      "$ref": "#/$defs/DeleteTrainingJobResponse"
    },
    {
      "$ref": "#/$defs/DiscoverRequest"
    },
    {
      "$ref": "#/$defs/DiscoverResponse"
    },
    {
      "$ref": "#/$defs/DistillMergeRequest"
    },
    {
      "$ref": "#/$defs/DistillPumpRequest"
    },
    {
      "$ref": "#/$defs/DistillRefreshRequest"
    },
    {
      "$ref": "#/$defs/DistillSelfRequest"
    },
    {
      "$ref": "#/$defs/FrontDoorRequest"
    },
    {
      "$ref": "#/$defs/FrontDoorResponse"
    },
    {
      "$ref": "#/$defs/GrpoRequest"
    },
    {
      "$ref": "#/$defs/JudgeDistillRequest"
    },
    {
      "$ref": "#/$defs/JudgeDistillResponse"
    },
    {
      "$ref": "#/$defs/JudgeDriftCheckRequest"
    },
    {
      "$ref": "#/$defs/LibraryListResponse"
    },
    {
      "$ref": "#/$defs/ListResponse"
    },
    {
      "$ref": "#/$defs/MarkTrainedRequest"
    },
    {
      "$ref": "#/$defs/MarkTrainedResponse"
    },
    {
      "$ref": "#/$defs/MessageRequest"
    },
    {
      "$ref": "#/$defs/OpdRequest"
    },
    {
      "$ref": "#/$defs/OpenEnvInspectRequest"
    },
    {
      "$ref": "#/$defs/OpenEnvInspectResponse"
    },
    {
      "$ref": "#/$defs/OpenEnvRunList"
    },
    {
      "$ref": "#/$defs/OpenEnvRunRequest"
    },
    {
      "$ref": "#/$defs/OpenEnvRunStatus"
    },
    {
      "$ref": "#/$defs/OpenEnvTaskCatalogRequest"
    },
    {
      "$ref": "#/$defs/OpenEnvTaskCatalogResponse"
    },
    {
      "$ref": "#/$defs/OpenEnvTrainingPreflightReceipt"
    },
    {
      "$ref": "#/$defs/OpenEnvTrainingPreflightRequest"
    },
    {
      "$ref": "#/$defs/PublishPayload"
    },
    {
      "$ref": "#/$defs/PublishToLibraryResponse"
    },
    {
      "$ref": "#/$defs/QueueResponse"
    },
    {
      "$ref": "#/$defs/RecipeRunRequest"
    },
    {
      "$ref": "#/$defs/RecipeRunResponse"
    },
    {
      "$ref": "#/$defs/RecipesListResponse"
    },
    {
      "$ref": "#/$defs/SelfImproveRequest"
    },
    {
      "$ref": "#/$defs/SelfImproveResponse"
    },
    {
      "$ref": "#/$defs/SftRequest"
    },
    {
      "$ref": "#/$defs/TerminalStatusResponse"
    },
    {
      "$ref": "#/$defs/TierDefaultsListResponse"
    },
    {
      "$ref": "#/$defs/TierDefaultsResponse"
    },
    {
      "$ref": "#/$defs/TrainingJobDetail"
    },
    {
      "$ref": "#/$defs/TrainingResponse"
    },
    {
      "$ref": "#/$defs/TrainingStatus"
    },
    {
      "$ref": "#/$defs/Vec_TrainingStatus"
    }
  ]
}

Kiln contract annotations

Show exact Kiln annotations and examples
{
  "x-kiln-entrypoints": [
    "AgentRunAbortResponse",
    "AgentRunEventsResponse",
    "AgentRunListResponse",
    "AgentRunQueuedResponse",
    "AgentRunRecord",
    "AgentRunsStatusResponse",
    "AgentTrace",
    "AgentTracesListResponse",
    "CancelTrainingJobResponse",
    "CapacityRequest",
    "CapacityResponse",
    "ClearCorrectionsResponse",
    "CompatibilityResponse",
    "CorrectionRow",
    "CorrectionRowInput",
    "CreateRunRequest",
    "DeleteCorrectionResponse",
    "DeleteTrainingJobResponse",
    "DiscoverRequest",
    "DiscoverResponse",
    "DistillMergeRequest",
    "DistillPumpRequest",
    "DistillRefreshRequest",
    "DistillSelfRequest",
    "FrontDoorRequest",
    "FrontDoorResponse",
    "GrpoRequest",
    "JudgeDistillRequest",
    "JudgeDistillResponse",
    "JudgeDriftCheckRequest",
    "LibraryListResponse",
    "ListResponse",
    "MarkTrainedRequest",
    "MarkTrainedResponse",
    "MessageRequest",
    "OpdRequest",
    "OpenEnvInspectRequest",
    "OpenEnvInspectResponse",
    "OpenEnvRunList",
    "OpenEnvRunRequest",
    "OpenEnvRunStatus",
    "OpenEnvTaskCatalogRequest",
    "OpenEnvTaskCatalogResponse",
    "OpenEnvTrainingPreflightReceipt",
    "OpenEnvTrainingPreflightRequest",
    "PublishPayload",
    "PublishToLibraryResponse",
    "QueueResponse",
    "RecipeRunRequest",
    "RecipeRunResponse",
    "RecipesListResponse",
    "SelfImproveRequest",
    "SelfImproveResponse",
    "SftRequest",
    "TerminalStatusResponse",
    "TierDefaultsListResponse",
    "TierDefaultsResponse",
    "TrainingJobDetail",
    "TrainingResponse",
    "TrainingStatus",
    "Vec_TrainingStatus"
  ],
  "x-kiln-examples": {
    "AgentRunAbortResponse": [
      {
        "aborting": true
      }
    ],
    "AgentRunEventsResponse": [
      {
        "events": [
          {
            "seq": 0,
            "event": {
              "type": "message_end"
            }
          }
        ],
        "next_after": 1,
        "status": "running",
        "first_available_seq": 0,
        "truncated": false
      }
    ],
    "AgentRunListResponse": [
      {
        "runs": [
          {
            "id": "run-1",
            "task": "Fix the failing test",
            "cwd": "/srv/project",
            "status": "completed",
            "created_unix_ms": 1700000000000,
            "queue_seq": 1,
            "started_unix_ms": 1700000000010,
            "finished_unix_ms": 1700000001000,
            "num_turns": 2,
            "num_tool_calls": 1,
            "session_id": "session-1",
            "session_path": "/srv/adapters/agent_runs/sessions/session-1.jsonl",
            "trace_indexed": true,
            "last_assistant_text": "Fixed."
          }
        ]
      }
    ],
    "AgentRunQueuedResponse": [
      {
        "queued": true
      }
    ],
    "AgentRunRecord": [
      {
        "id": "run-1",
        "task": "Fix the failing test",
        "cwd": "/srv/project",
        "status": "completed",
        "created_unix_ms": 1700000000000,
        "queue_seq": 1,
        "started_unix_ms": 1700000000010,
        "finished_unix_ms": 1700000001000,
        "num_turns": 2,
        "num_tool_calls": 1,
        "session_id": "session-1",
        "session_path": "/srv/adapters/agent_runs/sessions/session-1.jsonl",
        "trace_indexed": true,
        "last_assistant_text": "Fixed."
      }
    ],
    "AgentRunsStatusResponse": [
      {
        "enabled": true,
        "disabled_reason": null,
        "pi_available": true,
        "pi_path": "/usr/bin/pi",
        "max_concurrent_runs": 2,
        "active_runs": 0,
        "sessions_dir": "/srv/adapters/agent_runs/sessions"
      }
    ],
    "AgentTrace": [
      {
        "id": "session-1",
        "working_dir": "/srv/project",
        "num_turns": 2,
        "num_tool_calls": 1,
        "outcome": {
          "ended_with_exit_0": true,
          "user_edited_agent_files": [],
          "has_followup_attempt": null
        },
        "first_event_at": "2026-07-14T12:00:00Z",
        "last_event_at": "2026-07-14T12:01:00Z",
        "forked": false,
        "parent_id": null,
        "tool_manifest_sha": null,
        "prompt_messages": [
          {
            "role": "user",
            "content": "Explain 2 + 2."
          }
        ],
        "trajectory": [
          {
            "role": "assistant",
            "content": "Fixed.",
            "kind": "action"
          }
        ]
      }
    ],
    "AgentTracesListResponse": [
      {
        "traces": [
          {
            "id": "session-1",
            "working_dir": "/srv/project",
            "num_turns": 2,
            "num_tool_calls": 1,
            "outcome": {
              "ended_with_exit_0": true,
              "user_edited_agent_files": [],
              "has_followup_attempt": null
            },
            "first_event_at": "2026-07-14T12:00:00Z",
            "last_event_at": "2026-07-14T12:01:00Z",
            "forked": false,
            "parent_id": null,
            "tool_manifest_sha": null,
            "prompt_messages": [
              {
                "role": "user",
                "content": "Explain 2 + 2."
              }
            ],
            "trajectory": [
              {
                "role": "assistant",
                "content": "Fixed.",
                "kind": "action"
              }
            ]
          }
        ]
      }
    ],
    "CancelTrainingJobResponse": [
      {
        "status": "cancelled",
        "job_id": "train-1"
      },
      {
        "status": "cancelling",
        "job_id": "train-2",
        "message": "stop requested — the trainer aborts at the next step boundary"
      }
    ],
    "CapacityRequest": [
      {
        "rollouts": 100,
        "tokens_per_rollout": 512,
        "top_k": 32,
        "rank": 32
      }
    ],
    "CapacityResponse": [
      {
        "bits_needed": 256000,
        "bits_storable_in_lora": 41943040,
        "capacity_ratio": 163.84,
        "expected_overlap_at_step_50": 0.9,
        "warnings": []
      }
    ],
    "ClearCorrectionsResponse": [
      {
        "status": "cleared",
        "removed": 1
      }
    ],
    "CompatibilityResponse": [
      {
        "matches": [
          {
            "teacher": "qwen3.6-27b@vllm",
            "student": "Qwen3.5-4B@kiln",
            "domain": "math_reasoning",
            "predicted_initial_overlap": 0.78,
            "recommended_rank": 64,
            "cold_start_epochs": null,
            "expected_gpu_hours": 4,
            "expected_cost_usd": null,
            "validation_eval": "math-frontier-eval",
            "expected_eval_delta_points": 12
          }
        ],
        "note": null
      }
    ],
    "CorrectionRow": [
      {
        "request_id": "chat-1",
        "agent": "pi",
        "adapter": null,
        "user": "2 + 2?",
        "original": "5",
        "ideal": "4",
        "truncated": false,
        "created_at": "2026-07-14T12:00:00Z"
      }
    ],
    "CorrectionRowInput": [
      {
        "request_id": "chat-1",
        "agent": "pi",
        "adapter": null,
        "user": "2 + 2?",
        "original": "5",
        "ideal": "4",
        "truncated": false,
        "created_at": ""
      }
    ],
    "CreateRunRequest": [
      {
        "task": "Fix the failing test",
        "cwd": "/srv/project",
        "thinking_level": "high",
        "timeout_secs": 900
      }
    ],
    "DeleteCorrectionResponse": [
      {
        "status": "deleted",
        "request_id": "chat-1"
      }
    ],
    "DeleteTrainingJobResponse": [
      {
        "job_id": "train-1",
        "status": "deleted",
        "removed_archive_file": true
      }
    ],
    "DiscoverRequest": [
      {
        "path": "/home/user/.pi/agent/sessions"
      }
    ],
    "DiscoverResponse": [
      {
        "indexed": 4,
        "path": "/home/user/.pi/agent/sessions"
      }
    ],
    "DistillMergeRequest": [
      {
        "name": "merged-v1",
        "sources": [
          {
            "adapter": "math-v1",
            "weight": 1
          }
        ],
        "config": {
          "training_mode": "on_policy",
          "objective": "reverse_kl",
          "loss": "teacher_top_k",
          "top_k": 32,
          "stable_opd": {
            "mode": "off"
          },
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "DistillPumpRequest": [
      {
        "name": "rust-v1",
        "teacher": "teacher-large@local",
        "mode": {
          "domain": "rust"
        },
        "rollout_budget": 1000,
        "config": {
          "training_mode": "on_policy",
          "objective": "reverse_kl",
          "loss": "teacher_top_k",
          "top_k": 32,
          "stable_opd": {
            "mode": "off"
          },
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "DistillRefreshRequest": [
      {
        "name": "assistant-v1",
        "new_data": {
          "dataset": "new-docs"
        },
        "behavioural_teacher": "prior-self",
        "config": {
          "training_mode": "on_policy",
          "objective": "reverse_kl",
          "loss": "teacher_top_k",
          "top_k": 32,
          "stable_opd": {
            "mode": "off"
          },
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "DistillSelfRequest": [
      {
        "name": "concise-v1",
        "mode": "conciseness",
        "config": {
          "training_mode": "on_policy",
          "objective": "reverse_kl",
          "loss": "teacher_top_k",
          "top_k": 32,
          "stable_opd": {
            "mode": "off"
          },
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "FrontDoorRequest": [
      {
        "kind": "sft",
        "examples": [
          {
            "messages": [
              {
                "role": "user",
                "content": "Explain 2 + 2."
              },
              {
                "role": "assistant",
                "content": "4"
              }
            ]
          }
        ],
        "config": {
          "output_name": "math-v1",
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "FrontDoorResponse": [
      {
        "picked": "sft",
        "training": {
          "job_id": "train-1",
          "state": "queued",
          "effective_seed": "42",
          "message": "Queued training job"
        }
      }
    ],
    "GrpoRequest": [
      {
        "groups": [
          {
            "messages": [
              {
                "role": "user",
                "content": "Explain 2 + 2."
              }
            ],
            "completions": [
              {
                "text": "4",
                "reward": 1
              },
              {
                "text": "5",
                "reward": 0
              }
            ]
          }
        ],
        "config": {
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "JudgeDistillRequest": [
      {
        "name": "judge-pi-v1",
        "teacher": "teacher-large@local",
        "include_pi_share": false,
        "config": {
          "training_mode": "on_policy",
          "objective": "reverse_kl",
          "loss": "teacher_top_k",
          "top_k": 32,
          "stable_opd": {
            "mode": "off"
          },
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "JudgeDistillResponse": [
      {
        "job_id": "judge-1",
        "state": "queued",
        "effective_seed": "42",
        "message": "Queued training job"
      }
    ],
    "JudgeDriftCheckRequest": [
      {
        "judge": "judge-pi-v1",
        "teacher": "teacher-large@local",
        "sample_size": 50,
        "agreement_threshold": 0.8
      }
    ],
    "LibraryListResponse": [
      {
        "backend": "https://library.kiln.run",
        "adapters": [],
        "note": "Library backend not yet operational"
      }
    ],
    "ListResponse": [
      {
        "corrections": [
          {
            "request_id": "chat-1",
            "agent": "pi",
            "adapter": null,
            "user": "2 + 2?",
            "original": "5",
            "ideal": "4",
            "truncated": false,
            "created_at": "2026-07-14T12:00:00Z"
          }
        ]
      }
    ],
    "MarkTrainedRequest": [
      {
        "request_ids": [
          "chat-1"
        ],
        "adapter": "math-v1"
      }
    ],
    "MarkTrainedResponse": [
      {
        "status": "marked",
        "marked": 1
      }
    ],
    "MessageRequest": [
      {
        "message": "Also run the focused test."
      }
    ],
    "OpdRequest": [
      {
        "prompts": [
          {
            "messages": [
              {
                "role": "user",
                "content": "Explain 2 + 2."
              }
            ]
          }
        ],
        "teacher": "teacher-large@local",
        "config": {
          "training_mode": "on_policy",
          "objective": "reverse_kl",
          "loss": "teacher_top_k",
          "top_k": 32,
          "stable_opd": {
            "mode": "off"
          },
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "OpenEnvInspectRequest": [
      {
        "environment_urls": [
          "http://127.0.0.1:8000"
        ],
        "credential_ids": [
          "local-arcade"
        ]
      }
    ],
    "OpenEnvInspectResponse": [
      {
        "schema": "kiln.openenv-inspection.v1",
        "environments": [
          {
            "identity": {
              "schema": "kiln.openenv-identity.v1",
              "client_profile": "openenv-python-sdk-v1",
              "base_url": "http://127.0.0.1:8000",
              "websocket_url": "ws://127.0.0.1:8000/ws",
              "authentication": "bearer",
              "openapi_version": "3.1.0",
              "environments": [
                "bandit"
              ],
              "metadata": {
                "name": "bandit",
                "description": "Choose an arm.",
                "readme_content": null,
                "version": "1.0.0",
                "author": null,
                "documentation_url": null
              },
              "schema_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
              "discovery_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
            },
            "schema": {
              "action": {
                "type": "object",
                "required": [
                  "arm"
                ]
              },
              "observation": {
                "type": "object"
              },
              "state": {
                "type": "object"
              }
            }
          }
        ]
      }
    ],
    "OpenEnvRunList": [
      {
        "schema": "kiln.openenv-run-list.v5",
        "runs": [
          {
            "schema": "kiln.openenv-run.v5",
            "run_id": "80a26e21-8451-4a64-8666-890c06fd80bd",
            "kind": "train",
            "state": "environment_evaluating",
            "request": {
              "kind": "train",
              "idempotency_key": "experiment:arcade:17",
              "environment_urls": [
                "http://127.0.0.1:8000"
              ],
              "credential_ids": [
                "local-arcade"
              ],
              "adapter": "base",
              "groups": 8,
              "group_size": 4,
              "seed_start": 0,
              "reset_options": {},
              "environment_reset_options": [
                {
                  "difficulty": "hard"
                }
              ],
              "max_steps": 8,
              "concurrency": 4,
              "max_action_tokens": 256,
              "thinking_budget_tokens": 128,
              "temperature": 1,
              "thinking": false,
              "protocol_error_reward": -1,
              "max_recoverable_errors": 3,
              "capacity_wait_seconds": 300,
              "output_adapter": "bandit-agent",
              "training_config": {
                "lora_rank": 8
              },
              "auto_load": true,
              "post_eval": {
                "suite": "qwen3.5-agentic-core",
                "data_scope": "held-out",
                "include_baseline": true
              },
              "environment_eval": {
                "groups": 20,
                "group_size": 1,
                "gate": {
                  "min_mean_return": 0.5,
                  "min_mean_improvement": 0.05
                }
              }
            },
            "submitted_unix_ms": 1700000000000,
            "admission": {
              "max_active_runs": 4,
              "sequence": 17,
              "admitted_unix_ms": 1700000000250,
              "queue_wait_ms": 250
            },
            "progress": {
              "groups_completed": 3,
              "groups_total": 8,
              "rollouts_completed": 12,
              "rollouts_total": 32
            },
            "rollout_stats": {
              "mean_episode_return": 0.75,
              "min_episode_return": 0,
              "max_episode_return": 1,
              "done_count": 31,
              "max_steps_count": 1,
              "invalid_model_action_count": 0,
              "protocol_error_count": 0,
              "recoverable_protocol_error_count": 2,
              "capacity_retry_count": 1,
              "total_environment_steps": 48,
              "total_model_tokens": 384,
              "mean_model_latency_ms": 125.5
            },
            "warnings": [
              "One rollout produced no assistant tokens and was excluded."
            ],
            "environments": [
              {
                "schema": "kiln.openenv-identity.v1",
                "client_profile": "openenv-python-sdk-v1",
                "base_url": "http://127.0.0.1:8000",
                "websocket_url": "ws://127.0.0.1:8000/ws",
                "authentication": "bearer",
                "openapi_version": "3.1.0",
                "environments": [
                  "bandit"
                ],
                "metadata": {
                  "name": "bandit",
                  "description": "Choose an arm.",
                  "readme_content": null,
                  "version": "1.0.0",
                  "author": null,
                  "documentation_url": null
                },
                "schema_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
                "discovery_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
              }
            ],
            "artifacts": [
              {
                "kind": "train_receipt",
                "url": "/v1/openenv/runs/80a26e21-8451-4a64-8666-890c06fd80bd/artifacts/train_receipt",
                "sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
                "bytes": 4096
              },
              {
                "kind": "adapter_manifest",
                "url": "/v1/openenv/runs/80a26e21-8451-4a64-8666-890c06fd80bd/artifacts/adapter_manifest",
                "sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
                "bytes": 2048
              }
            ],
            "training_job_id": "grpo-openenv-1",
            "training_contract": {
              "schema": "kiln.openenv-training-contract.v1",
              "effective_config": {
                "base_adapter": null,
                "output_name": "bandit-agent",
                "auto_load": false,
                "behavior_policy": "no_importance_correction",
                "lora_rank": 8
              },
              "post_eval": {
                "suite": "qwen3.5-agentic-core",
                "data_scope": "held-out",
                "include_baseline": true
              },
              "behavior_policy": {
                "served_model_id": "Qwen3.5-4B",
                "base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
                "inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
                "implementation": "kiln-native"
              }
            },
            "training": {
              "job_id": "grpo-openenv-1",
              "state": "completed",
              "progress": 1,
              "current_loss": 0.31,
              "epoch": 3,
              "adapter_path": "/srv/adapters/bandit-agent",
              "training_data": {
                "source": "inline",
                "admitted_corpus_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
                "rows": 8,
                "openenv": {
                  "schema": "kiln.openenv-training-data.v1",
                  "groups": 8,
                  "rollouts": 32,
                  "unique_seeds": 8,
                  "seed_min": "0",
                  "seed_max": "7",
                  "total_steps": 32,
                  "terminations": {
                    "done": 32,
                    "max_steps": 0,
                    "invalid_model_action": 0,
                    "protocol_error": 0
                  },
                  "group_plan_sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
                  "behavior_policy": {
                    "served_model_id": "Qwen3.5-4B",
                    "base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
                    "inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
                    "implementation": "kiln-native"
                  },
                  "environments": [
                    {
                      "environment_name": "bandit",
                      "environment_base_url": "http://127.0.0.1:8000",
                      "openapi_version": "3.1.0",
                      "discovery_sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
                      "environment_schema_sha256": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
                      "action_schema_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
                      "groups": 8,
                      "rollouts": 32,
                      "total_steps": 32,
                      "terminations": {
                        "done": 32,
                        "max_steps": 0,
                        "invalid_model_action": 0,
                        "protocol_error": 0
                      }
                    }
                  ]
                }
              }
            },
            "environment_evaluation": {
              "state": "collecting_candidate",
              "seed_start": 8,
              "groups": 20,
              "group_size": 1,
              "baseline": {},
              "candidate": {
                "adapter": "bandit-agent",
                "adapter_content_revision": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
                "execution_provenance_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
              },
              "progress": {
                "state": "collecting_candidate",
                "groups_completed": 8,
                "groups_total": 20,
                "rollouts_completed": 8,
                "rollouts_total": 20
              }
            }
          }
        ]
      }
    ],
    "OpenEnvRunRequest": [
      {
        "kind": "train",
        "idempotency_key": "experiment:arcade:17",
        "environment_urls": [
          "http://127.0.0.1:8000"
        ],
        "credential_ids": [
          "local-arcade"
        ],
        "adapter": "base",
        "groups": 8,
        "group_size": 4,
        "seed_start": 0,
        "reset_options": {},
        "environment_reset_options": [
          {
            "difficulty": "hard"
          }
        ],
        "max_steps": 8,
        "concurrency": 4,
        "max_action_tokens": 256,
        "thinking_budget_tokens": 128,
        "temperature": 1,
        "thinking": false,
        "protocol_error_reward": -1,
        "max_recoverable_errors": 3,
        "capacity_wait_seconds": 300,
        "output_adapter": "bandit-agent",
        "training_config": {
          "lora_rank": 8
        },
        "auto_load": true,
        "post_eval": {
          "suite": "qwen3.5-agentic-core",
          "data_scope": "held-out",
          "include_baseline": true
        },
        "environment_eval": {
          "groups": 20,
          "group_size": 1,
          "gate": {
            "min_mean_return": 0.5,
            "min_mean_improvement": 0.05
          }
        }
      }
    ],
    "OpenEnvRunStatus": [
      {
        "schema": "kiln.openenv-run.v5",
        "run_id": "80a26e21-8451-4a64-8666-890c06fd80bd",
        "kind": "train",
        "state": "environment_evaluating",
        "request": {
          "kind": "train",
          "idempotency_key": "experiment:arcade:17",
          "environment_urls": [
            "http://127.0.0.1:8000"
          ],
          "credential_ids": [
            "local-arcade"
          ],
          "adapter": "base",
          "groups": 8,
          "group_size": 4,
          "seed_start": 0,
          "reset_options": {},
          "environment_reset_options": [
            {
              "difficulty": "hard"
            }
          ],
          "max_steps": 8,
          "concurrency": 4,
          "max_action_tokens": 256,
          "thinking_budget_tokens": 128,
          "temperature": 1,
          "thinking": false,
          "protocol_error_reward": -1,
          "max_recoverable_errors": 3,
          "capacity_wait_seconds": 300,
          "output_adapter": "bandit-agent",
          "training_config": {
            "lora_rank": 8
          },
          "auto_load": true,
          "post_eval": {
            "suite": "qwen3.5-agentic-core",
            "data_scope": "held-out",
            "include_baseline": true
          },
          "environment_eval": {
            "groups": 20,
            "group_size": 1,
            "gate": {
              "min_mean_return": 0.5,
              "min_mean_improvement": 0.05
            }
          }
        },
        "submitted_unix_ms": 1700000000000,
        "admission": {
          "max_active_runs": 4,
          "sequence": 17,
          "admitted_unix_ms": 1700000000250,
          "queue_wait_ms": 250
        },
        "progress": {
          "groups_completed": 3,
          "groups_total": 8,
          "rollouts_completed": 12,
          "rollouts_total": 32
        },
        "rollout_stats": {
          "mean_episode_return": 0.75,
          "min_episode_return": 0,
          "max_episode_return": 1,
          "done_count": 31,
          "max_steps_count": 1,
          "invalid_model_action_count": 0,
          "protocol_error_count": 0,
          "recoverable_protocol_error_count": 2,
          "capacity_retry_count": 1,
          "total_environment_steps": 48,
          "total_model_tokens": 384,
          "mean_model_latency_ms": 125.5
        },
        "warnings": [
          "One rollout produced no assistant tokens and was excluded."
        ],
        "environments": [
          {
            "schema": "kiln.openenv-identity.v1",
            "client_profile": "openenv-python-sdk-v1",
            "base_url": "http://127.0.0.1:8000",
            "websocket_url": "ws://127.0.0.1:8000/ws",
            "authentication": "bearer",
            "openapi_version": "3.1.0",
            "environments": [
              "bandit"
            ],
            "metadata": {
              "name": "bandit",
              "description": "Choose an arm.",
              "readme_content": null,
              "version": "1.0.0",
              "author": null,
              "documentation_url": null
            },
            "schema_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
            "discovery_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
          }
        ],
        "artifacts": [
          {
            "kind": "train_receipt",
            "url": "/v1/openenv/runs/80a26e21-8451-4a64-8666-890c06fd80bd/artifacts/train_receipt",
            "sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
            "bytes": 4096
          },
          {
            "kind": "adapter_manifest",
            "url": "/v1/openenv/runs/80a26e21-8451-4a64-8666-890c06fd80bd/artifacts/adapter_manifest",
            "sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
            "bytes": 2048
          }
        ],
        "training_job_id": "grpo-openenv-1",
        "training_contract": {
          "schema": "kiln.openenv-training-contract.v1",
          "effective_config": {
            "base_adapter": null,
            "output_name": "bandit-agent",
            "auto_load": false,
            "behavior_policy": "no_importance_correction",
            "lora_rank": 8
          },
          "post_eval": {
            "suite": "qwen3.5-agentic-core",
            "data_scope": "held-out",
            "include_baseline": true
          },
          "behavior_policy": {
            "served_model_id": "Qwen3.5-4B",
            "base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
            "inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
            "implementation": "kiln-native"
          }
        },
        "training": {
          "job_id": "grpo-openenv-1",
          "state": "completed",
          "progress": 1,
          "current_loss": 0.31,
          "epoch": 3,
          "adapter_path": "/srv/adapters/bandit-agent",
          "training_data": {
            "source": "inline",
            "admitted_corpus_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
            "rows": 8,
            "openenv": {
              "schema": "kiln.openenv-training-data.v1",
              "groups": 8,
              "rollouts": 32,
              "unique_seeds": 8,
              "seed_min": "0",
              "seed_max": "7",
              "total_steps": 32,
              "terminations": {
                "done": 32,
                "max_steps": 0,
                "invalid_model_action": 0,
                "protocol_error": 0
              },
              "group_plan_sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
              "behavior_policy": {
                "served_model_id": "Qwen3.5-4B",
                "base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
                "inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
                "implementation": "kiln-native"
              },
              "environments": [
                {
                  "environment_name": "bandit",
                  "environment_base_url": "http://127.0.0.1:8000",
                  "openapi_version": "3.1.0",
                  "discovery_sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
                  "environment_schema_sha256": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
                  "action_schema_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
                  "groups": 8,
                  "rollouts": 32,
                  "total_steps": 32,
                  "terminations": {
                    "done": 32,
                    "max_steps": 0,
                    "invalid_model_action": 0,
                    "protocol_error": 0
                  }
                }
              ]
            }
          }
        },
        "environment_evaluation": {
          "state": "collecting_candidate",
          "seed_start": 8,
          "groups": 20,
          "group_size": 1,
          "baseline": {},
          "candidate": {
            "adapter": "bandit-agent",
            "adapter_content_revision": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
            "execution_provenance_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
          },
          "progress": {
            "state": "collecting_candidate",
            "groups_completed": 8,
            "groups_total": 20,
            "rollouts_completed": 8,
            "rollouts_total": 20
          }
        }
      }
    ],
    "OpenEnvTaskCatalogRequest": [
      {
        "environment_urls": [
          "http://127.0.0.1:8000"
        ],
        "credential_ids": [
          "local-arcade"
        ],
        "split": "train",
        "start": 0,
        "limit": 2
      }
    ],
    "OpenEnvTaskCatalogResponse": [
      {
        "schema": "kiln.openenv-task-catalog.v1",
        "catalogs": [
          {
            "base_url": "http://127.0.0.1:8000",
            "catalog": {
              "environment_name": "bandit",
              "task_api": "available",
              "splits": [
                {
                  "name": "train",
                  "type": "train"
                },
                {
                  "name": "holdout",
                  "type": "validation"
                }
              ],
              "selected_split": "train",
              "num_tasks": 3,
              "start": 0,
              "stop": 2,
              "tasks": [
                {
                  "id": 0,
                  "prompt": "Choose an arm.",
                  "difficulty": "easy"
                },
                {
                  "id": 1,
                  "prompt": "Choose again.",
                  "difficulty": "easy"
                }
              ]
            }
          }
        ]
      }
    ],
    "OpenEnvTrainingPreflightReceipt": [
      {
        "schema": "kiln.openenv-training-preflight.v1",
        "effective_config": {
          "base_adapter": null,
          "output_name": "bandit-agent",
          "auto_load": true,
          "behavior_policy": "no_importance_correction",
          "lora_rank": 8
        },
        "behavior_policy": {
          "served_model_id": "Qwen3.5-4B",
          "base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
          "inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
          "implementation": "kiln-native"
        },
        "capacity": {
          "checked_unix_ms": 1700000000000,
          "queued_jobs": 1,
          "max_queued_jobs": 64,
          "tracked_jobs": 4,
          "max_tracked_jobs": 256
        },
        "capacity_reserved": false
      }
    ],
    "OpenEnvTrainingPreflightRequest": [
      {
        "adapter": "base",
        "output_adapter": "bandit-agent",
        "training_config": {
          "lora_rank": 8
        },
        "auto_load": true
      }
    ],
    "PublishPayload": [
      {
        "description": "Math adapter",
        "uploader": "local-user"
      }
    ],
    "PublishToLibraryResponse": [
      {
        "status": "ready_to_publish",
        "backend": "https://library.kiln.run",
        "intended_id": "math-v1@2026-07-14",
        "uploader": "local-user",
        "description": "Math adapter",
        "receipt_schema_version": 1,
        "note": "Local validation passed; no remote upload occurred."
      }
    ],
    "QueueResponse": [
      {
        "running": null,
        "queued": [
          {
            "job_id": "train-1",
            "job_type": "sft",
            "adapter_name": "math-v1",
            "position": 1
          }
        ],
        "completed": []
      }
    ],
    "RecipeRunRequest": [
      {
        "body": {
          "name": "quick-sft",
          "description": "Train one adapter",
          "steps": [
            {
              "kind": "sft",
              "name": "math-v1",
              "examples_from": {
                "examples": [
                  {
                    "messages": [
                      {
                        "role": "user",
                        "content": "Explain 2 + 2."
                      },
                      {
                        "role": "assistant",
                        "content": "4"
                      }
                    ]
                  }
                ]
              }
            }
          ]
        },
        "inputs": {}
      }
    ],
    "RecipeRunResponse": [
      {
        "recipe": "quick-sft",
        "job_ids": [
          "train-1"
        ],
        "effective_seeds": {
          "train-1": "42"
        },
        "message": "Queued recipe"
      }
    ],
    "RecipesListResponse": [
      {
        "recipes": [
          {
            "name": "quick-sft",
            "description": "Train one adapter",
            "num_steps": 1,
            "admission": {
              "supported": true,
              "unavailable_reason": null
            }
          }
        ]
      }
    ],
    "SelfImproveRequest": [
      {
        "agent": "pi-coder-current",
        "judge": "judge-pi-v1",
        "crisp": true,
        "config": {
          "training_mode": "on_policy",
          "objective": "reverse_kl",
          "loss": "teacher_top_k",
          "top_k": 32,
          "stable_opd": {
            "mode": "off"
          },
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "SelfImproveResponse": [
      {
        "job_ids": [
          "opd-1",
          "crisp-1"
        ],
        "effective_seeds": {
          "opd-1": "42",
          "crisp-1": "43"
        },
        "state": "queued",
        "message": "Self-improvement queued"
      }
    ],
    "SftRequest": [
      {
        "examples": [
          {
            "messages": [
              {
                "role": "user",
                "content": "Explain 2 + 2."
              },
              {
                "role": "assistant",
                "content": "4"
              }
            ]
          }
        ],
        "config": {
          "output_name": "math-v1",
          "optimizer": {
            "kind": "muon"
          }
        }
      }
    ],
    "TerminalStatusResponse": [
      {
        "enabled": true,
        "disabled_reason": null,
        "pi_available": true,
        "pi_path": "/usr/bin/pi",
        "cwd": "/srv/project",
        "session_active": false
      }
    ],
    "TierDefaultsListResponse": [
      {
        "tiers": [
          {
            "tier": "prosumer",
            "default_logit_source": "LocalTeacher",
            "default_loss": "teacher_top_k (K=32)",
            "default_top_k": 32,
            "lora_rank": 32,
            "batch_size": 16,
            "samples_per_prompt_default": 4,
            "samples_per_prompt_data_multiplier": 32,
            "max_rollout_tokens": 7168,
            "auto_checkpoint_cadence_steps": 10,
            "cost_cap_default_usd": 25,
            "cold_start_overlap_threshold": 0.5,
            "mixture_distillation_golden_fraction": 0.25,
            "eval_gate_required": true,
            "notifications_channels": [
              "desktop_tray",
              "email",
              "webhook"
            ]
          },
          {
            "tier": "laptop",
            "default_logit_source": "LocalTeacher",
            "default_loss": "teacher_top_k (K=32)",
            "default_top_k": 32,
            "lora_rank": 32,
            "batch_size": 16,
            "samples_per_prompt_default": 4,
            "samples_per_prompt_data_multiplier": 32,
            "max_rollout_tokens": 7168,
            "auto_checkpoint_cadence_steps": 10,
            "cost_cap_default_usd": 25,
            "cold_start_overlap_threshold": 0.5,
            "mixture_distillation_golden_fraction": 0.25,
            "eval_gate_required": true,
            "notifications_channels": [
              "desktop_tray",
              "email",
              "webhook"
            ]
          },
          {
            "tier": "corporate",
            "default_logit_source": "LocalTeacher",
            "default_loss": "teacher_top_k (K=32)",
            "default_top_k": 32,
            "lora_rank": 32,
            "batch_size": 16,
            "samples_per_prompt_default": 4,
            "samples_per_prompt_data_multiplier": 32,
            "max_rollout_tokens": 7168,
            "auto_checkpoint_cadence_steps": 10,
            "cost_cap_default_usd": 25,
            "cold_start_overlap_threshold": 0.5,
            "mixture_distillation_golden_fraction": 0.25,
            "eval_gate_required": true,
            "notifications_channels": [
              "desktop_tray",
              "email",
              "webhook"
            ]
          }
        ]
      }
    ],
    "TierDefaultsResponse": [
      {
        "tier": "prosumer",
        "defaults": {
          "tier": "prosumer",
          "default_logit_source": "LocalTeacher",
          "default_loss": "teacher_top_k (K=32)",
          "default_top_k": 32,
          "lora_rank": 32,
          "batch_size": 16,
          "samples_per_prompt_default": 4,
          "samples_per_prompt_data_multiplier": 32,
          "max_rollout_tokens": 7168,
          "auto_checkpoint_cadence_steps": 10,
          "cost_cap_default_usd": 25,
          "cold_start_overlap_threshold": 0.5,
          "mixture_distillation_golden_fraction": 0.25,
          "eval_gate_required": true,
          "notifications_channels": [
            "desktop_tray",
            "email",
            "webhook"
          ]
        }
      }
    ],
    "TrainingJobDetail": [
      {
        "job_id": "train-1",
        "state": "completed",
        "progress": 1,
        "current_loss": 0.2,
        "adapter_name": "math-v1",
        "effective_seed": "42",
        "started_at": "12s ago",
        "elapsed_secs": 12,
        "submitted_unix_ms": 1700000000000,
        "finished_unix_ms": 1700000012000,
        "job_type": "sft",
        "epoch": 3,
        "adapter_path": "/srv/adapters/math-v1",
        "auto_load": true,
        "linked_eval_job_ids": [],
        "loss_history": [
          {
            "epoch": 1,
            "progress": 0.5,
            "loss": 0.4,
            "elapsed_secs": 5
          }
        ],
        "train_receipt": null,
        "replay_request": null,
        "latest_checkpoint": null,
        "checkpoint_error": null,
        "metadata_error": null
      }
    ],
    "TrainingResponse": [
      {
        "job_id": "train-1",
        "state": "queued",
        "effective_seed": "42",
        "message": "Queued training job"
      }
    ],
    "TrainingStatus": [
      {
        "job_id": "train-1",
        "state": "completed",
        "progress": 1,
        "current_loss": 0.2,
        "adapter_name": "math-v1",
        "effective_seed": "42",
        "started_at": "12s ago",
        "elapsed_secs": 12,
        "submitted_unix_ms": 1700000000000,
        "finished_unix_ms": 1700000012000,
        "job_type": "sft"
      }
    ],
    "Vec_TrainingStatus": [
      [
        {
          "job_id": "train-1",
          "state": "completed",
          "progress": 1,
          "current_loss": 0.2,
          "adapter_name": "math-v1",
          "effective_seed": "42",
          "started_at": "12s ago",
          "elapsed_secs": 12,
          "submitted_unix_ms": 1700000000000,
          "finished_unix_ms": 1700000012000,
          "job_type": "sft"
        }
      ]
    ]
  },
  "x-kiln-external-contracts": [
    "kiln-evals-v1.schema.json",
    "kiln-inference-v1.schema.json"
  ],
  "x-kiln-field-schema-status": "complete"
}

Definitions

AdvantageModeMethod used to normalize rewards within each rollout group.0 fields

Type: string. Constraints: enum "vanilla", "dr_grpo".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::AdvantageMode"
}
AgentRunAbortResponseAcknowledgment that a cooperative abort was requested.1 field

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
aborting yes any const true Aborting.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "AgentRunAbortResponse"
}
AgentRunEventOne ordered event emitted by `pi`.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
seq yes NonNegativeInteger - Seq. A whole number greater than or equal to zero.
event yes AnyJson - Event. Any valid JSON value.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "AgentRunEvent"
}
AgentRunEventsResponseIncremental event page with sequence information that lets clients detect truncated history.5 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
events yes array<AgentRunEvent> - Events.
next_after yes NonNegativeInteger - Next after. A whole number greater than or equal to zero.
status yes RunStatus - Status. Lifecycle state for an embedded agent run.
first_available_seq yes NonNegativeInteger | null - First available seq.
truncated yes Boolean - Truncated. Either true or false.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "AgentRunEventsResponse"
}
AgentRunListResponseEmbedded agent runs Kiln currently retains.1 field

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
runs yes array<AgentRunRecord> - Runs.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "AgentRunListResponse"
}
AgentRunQueuedResponseAcknowledgment that a steering or follow-up message was queued for delivery.1 field

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
queued yes any const true Queued.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "AgentRunQueuedResponse"
}
AgentRunRecordStored metadata and outcome for one embedded agent run.16 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
id yes NonEmptyString - ID. A text string containing at least one character.
task yes String - Task. A text string.
cwd yes String - Cwd. A text string.
label no String - Label. A text string.
status yes RunStatus - Status. Lifecycle state for an embedded agent run.
created_unix_ms yes NonNegativeInteger - Created unix ms. A whole number greater than or equal to zero.
queue_seq yes NonNegativeInteger - Queue seq. A whole number greater than or equal to zero.
started_unix_ms no NonNegativeInteger - Started unix ms. A whole number greater than or equal to zero.
finished_unix_ms no NonNegativeInteger - Finished unix ms. A whole number greater than or equal to zero.
num_turns yes NonNegativeInteger - Num turns. A whole number greater than or equal to zero.
num_tool_calls yes NonNegativeInteger - Num tool calls. A whole number greater than or equal to zero.
session_id no String - Session ID. A text string.
session_path no String - Session path. A text string.
trace_indexed yes Boolean - Trace indexed. Either true or false.
last_assistant_text no String - Last assistant text. A text string.
error no String - Error. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "AgentRunRecord"
}
AgentRunsStatusResponseWhether embedded runs are enabled, whether the local `pi` executable is available, and current concurrency.7 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
enabled yes Boolean - Enabled. Either true or false.
disabled_reason yes String | null - Disabled reason.
pi_available yes Boolean - Pi available. Either true or false.
pi_path yes String | null - Pi path.
max_concurrent_runs yes PositiveInteger - Max concurrent runs. A whole number greater than or equal to one.
active_runs yes NonNegativeInteger - Active runs. A whole number greater than or equal to zero.
sessions_dir yes String - Sessions dir. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "AgentRunsStatusResponse"
}
AgentTraceIndexed `pi` session and its normalized training trajectory.12 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
id yes NonEmptyString - ID. A text string containing at least one character.
working_dir yes String - Working dir. A text string.
num_turns yes NonNegativeInteger - Num turns. A whole number greater than or equal to zero.
num_tool_calls yes NonNegativeInteger - Num tool calls. A whole number greater than or equal to zero.
outcome yes TraceOutcome - Outcome. Outcome signals inferred from a pi session. These values are best-effort observations, not verified success criteria.
first_event_at yes Rfc3339Timestamp | null - First event at.
last_event_at yes Rfc3339Timestamp | null - Last event at.
forked yes Boolean - Forked. Either true or false.
parent_id yes String | null - Parent ID.
tool_manifest_sha yes String | null - Tool manifest sha.
prompt_messages no array<TrainingChatMessageOutput> - Prompt messages.
trajectory no array<TurnSegmentOutput> - Trajectory.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "AgentTrace"
}
AgentTracesListResponseAll agent traces currently indexed by Kiln.1 field

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
traces yes array<AgentTrace> - Traces.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "AgentTracesListResponse"
}
AgenticGroupOne prompt and its scored rollouts. `rollouts` is an input alias for `completions`; send exactly one of them.3 fields

Type: object.

Field Required Type Constraints and default Description
messages yes array<TrainingChatMessageInput> - Messages.
completions no array<ScoredRollout> - Completions.
rollouts no array<ScoredRollout> - Rollouts.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "required": [
        "completions"
      ],
      "not": {
        "required": [
          "rollouts"
        ]
      }
    },
    {
      "required": [
        "rollouts"
      ],
      "not": {
        "required": [
          "completions"
        ]
      }
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::AgenticGroup",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
AnyJsonAny valid JSON value.0 fields

Type: any.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "serde_json::Value"
}
BehaviorPolicyWhether training uses no importance correction or the probabilities recorded during rollout generation.0 fields

Type: string. Constraints: enum "no_importance_correction", "recorded".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::BehaviorPolicy"
}
BooleanEither true or false.0 fields

Type: boolean.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "bool"
}
CancelTrainingJobResponseCancellation result. Queued jobs stop immediately; running jobs stop cooperatively at the next training-step boundary and later appear as failed with a cancellation error.0 fields

Type: object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "status",
        "job_id",
        "message"
      ],
      "properties": {
        "status": {
          "const": "cancelling"
        },
        "job_id": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "message": {
          "const": "stop requested — the trainer aborts at the next step boundary"
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "status",
        "job_id"
      ],
      "properties": {
        "status": {
          "const": "cancelled"
        },
        "job_id": {
          "$ref": "#/$defs/NonEmptyString"
        }
      }
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "CancelTrainingJobResponse"
}
CapacityRequestInputs to the preflight capacity model. `num_layers` and `hidden_size` default to Qwen3.5-4B values when omitted, so send both for any other model.7 fields

Type: object.

Field Required Type Constraints and default Description
rollouts yes PositiveInteger - Rollouts. A whole number greater than or equal to one.
tokens_per_rollout yes PositiveInteger - Tokens per rollout. A whole number greater than or equal to one.
top_k yes PositiveInteger - Top k. A whole number greater than or equal to one.
rank yes PositiveInteger - Rank. A whole number greater than or equal to one.
num_layers no PositiveInteger - Num layers. A whole number greater than or equal to one.
hidden_size no PositiveInteger - Hidden size. A whole number greater than or equal to one.
initial_overlap_probe no UnitInterval | null - Initial overlap probe.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "CapacityRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
CapacityResponseModeled capacity estimate and any preflight warnings. This is not a measured performance result.5 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
bits_needed yes FiniteNumber - Bits needed. A finite JSON number.
bits_storable_in_lora yes FiniteNumber - Bits storable in LoRA. A finite JSON number.
capacity_ratio yes FiniteNumber - Capacity ratio. A finite JSON number.
expected_overlap_at_step_50 yes UnitInterval - Expected overlap at step 50. A number from 0 through 1, inclusive.
warnings yes array<String> - Warnings.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "CapacityResponse"
}
ClearCorrectionsResponseNumber of active corrections removed. Previously trained history remains.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
status yes any const "cleared" Status.
removed yes NonNegativeInteger - Removed. A whole number greater than or equal to zero.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "ClearCorrectionsResponse"
}
CompatibilityResponseFiltered rows from Kiln's small, model-specific built-in estimate table.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
matches yes array<CompatibilityRow> - Matches.
note yes String | null - Note.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "CompatibilityResponse"
}
CompatibilityRowOne built-in teacher, student, and domain estimate. Values are modeled planning inputs, not benchmark measurements or compatibility guarantees.10 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
teacher yes String - Teacher. A text string.
student yes String - Student. A text string.
domain yes String - Domain. A text string.
predicted_initial_overlap yes UnitInterval - Predicted initial overlap. A number from 0 through 1, inclusive.
recommended_rank yes PositiveInteger - Recommended rank. A whole number greater than or equal to one.
cold_start_epochs yes PositiveInteger | null - Cold start epochs.
expected_gpu_hours yes FiniteNumber - Expected GPU hours. A finite JSON number.
expected_cost_usd yes FiniteNumber | null - Expected cost usd.
validation_eval yes String - Validation eval. A text string.
expected_eval_delta_points yes FiniteNumber - Expected eval delta points. A finite JSON number.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "CompatibilityRow"
}
CorrectionRowOne stored correction returned by Kiln.10 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
request_id yes NonEmptyString - Request ID. A text string containing at least one character.
agent yes String - Agent. A text string.
adapter yes String | null - Adapter.
user yes NonEmptyString - User. A text string containing at least one character.
original yes String - Original. A text string.
ideal yes String - Ideal. A text string.
truncated yes Boolean - Truncated. Either true or false.
created_at yes String - Created at. A text string.
trained_into no String - Trained into. A text string.
trained_at no Rfc3339Timestamp - Trained at. An RFC 3339 timestamp.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "CorrectionRow"
}
CorrectionRowInputCreate or update one correction. Kiln can supply timestamps and training markers when they are omitted.10 fields

Type: object.

Field Required Type Constraints and default Description
request_id yes NonEmptyString - Request ID. A text string containing at least one character.
agent no String - Agent. A text string.
adapter no String | null - Adapter.
user yes NonEmptyString - User. A text string containing at least one character.
original no String - Original. A text string.
ideal no String - Ideal. A text string.
truncated no Boolean - Truncated. Either true or false.
created_at no String - Created at. A text string.
trained_into no String | null - Trained into.
trained_at no Rfc3339Timestamp | null - Trained at.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "CorrectionRow",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
CreateRunRequestRequest to queue one embedded agent run.6 fields

Type: object.

Field Required Type Constraints and default Description
task yes NonEmptyString - Task. A text string containing at least one character.
cwd no String | null - Cwd.
label no String | null - Label.
tools no array<String> | null - Tools.
thinking_level no any | null - Thinking level.
timeout_secs no integer | null - Timeout secs.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "CreateRunRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DecimalU64An unsigned 64-bit integer encoded as decimal text to preserve exact values.0 fields

Type: string. Constraints: pattern ^(0|[1-9][0-9]*)$.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "u64"
}
DeleteCorrectionResponseConfirmation that one correction was deleted.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
status yes any const "deleted" Status.
request_id yes NonEmptyString - Request ID. A text string containing at least one character.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "DeleteCorrectionResponse"
}
DeleteTrainingJobResponseResult of permanently deleting a terminal job from memory and, when present, its archive file. Active jobs must be cancelled first.3 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
job_id yes NonEmptyString - Job ID. A text string containing at least one character.
status yes any const "deleted" Status.
removed_archive_file yes Boolean - Removed archive file. Either true or false.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "DeleteTrainingJobResponse"
}
DiscoverRequestOptional `pi` sessions directory on the Kiln server.1 field

Type: object.

Field Required Type Constraints and default Description
path no String | null - Path.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "DiscoverRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DiscoverResponseNumber of traces indexed and the server-local directory scanned.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
indexed yes NonNegativeInteger - Indexed. A whole number greater than or equal to zero.
path yes String - Path. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "DiscoverResponse"
}
DistillMergeRequestRequest to distill behavior from one or more source adapters into a new adapter.6 fields

Type: object.

Field Required Type Constraints and default Description
name yes NonEmptyString - Name. A text string containing at least one character.
sources yes array<DistillMergeSource> minimum items 1 Sources.
student no String - Student. A text string.
rollout_budget no PositiveInteger - Rollout budget. A whole number greater than or equal to one.
config no OpdConfig - Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts.
post_eval no PostEvalConfig | null - Post eval.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "DistillMergeRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DistillMergeSourceOne source adapter and its optional merge weight.2 fields

Type: object.

Field Required Type Constraints and default Description
adapter yes NonEmptyString - Adapter. A text string containing at least one character.
weight no FiniteNumber - Weight. A finite JSON number.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::DistillMergeSource",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DistillPumpModeChoose a named domain, inline examples, or the built-in wide-corpus mode for knowledge pumping.0 fields

Type: object | object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "$ref": "#/$defs/NonEmptyString"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "examples"
      ],
      "properties": {
        "examples": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/OpdPrompt"
          },
          "minItems": 1
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "wide"
      ],
      "properties": {
        "wide": {
          "$ref": "#/$defs/Boolean"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::DistillPumpMode"
}
DistillPumpRequestKnowledge-pump request with a registered teacher alias and a rollout budget.8 fields

Type: object.

Field Required Type Constraints and default Description
name yes NonEmptyString - Name. A text string containing at least one character.
teacher yes NonEmptyString - Teacher. A text string containing at least one character.
mode yes DistillPumpMode - Mode. Choose a named domain, inline examples, or the built-in wide-corpus mode for knowledge pumping.
rank no PositiveInteger | null - Rank.
rollout_budget no PositiveInteger - Rollout budget. A whole number greater than or equal to one.
use_cache no Boolean - Use cache. Either true or false.
config no OpdConfig - Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts.
post_eval no PostEvalConfig | null - Post eval.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "DistillPumpRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DistillRefreshRequestTwo-phase request for learning new material and recovering instruction-following behavior. Automatic loading supports at most one gate across `post_eval`, `if_eval_suite`, and `new_knowledge_eval_suite`; disable `config.auto_load` for independent multi-suite diagnostics.10 fields

Type: object.

Field Required Type Constraints and default Description
name yes NonEmptyString - Name. A text string containing at least one character.
new_data yes NewKnowledgeSource - New data. Either a registered dataset name or inline prompts for a refresh workflow.
behavioural_teacher yes NonEmptyString - Behavioural teacher. A text string containing at least one character.
background_chat no String - Background chat. A text string.
require_if_eval_recovery no FiniteNumber - Require if eval recovery. A finite JSON number.
require_internal_qa_gain no FiniteNumber - Require internal qa gain. A finite JSON number.
config no OpdConfig - Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts.
post_eval no PostEvalConfig | null - Post eval.
if_eval_suite no String | null - If eval suite.
new_knowledge_eval_suite no String | null - New knowledge eval suite.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "DistillRefreshRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DistillSelfRequestSelf-distillation request that uses information available only during training.7 fields

Type: object.

Field Required Type Constraints and default Description
name yes NonEmptyString - Name. A text string containing at least one character.
mode yes SelfDistillMode - Mode. Self-distillation strategy for using information available only during training.
prompts no array<OpdPrompt> | null - Prompts.
ground_truth no array<String> | null - Ground truth.
documents no array<String> | null - Documents.
config no OpdConfig - Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts.
post_eval no PostEvalConfig | null - Post eval.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "DistillSelfRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
EchoConfigSettings for ECHO's observation-token auxiliary objective.3 fields

Type: object.

Field Required Type Constraints and default Description
lambda no FiniteNumber - Lambda. A finite JSON number.
env_mask_mode no EnvMaskMode - Env mask mode. Which observation tokens contribute to the ECHO auxiliary objective.
warning_filter no Boolean - Warning filter. Either true or false.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::EchoConfig",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
EnvMaskModeWhich observation tokens contribute to the ECHO auxiliary objective.0 fields

Type: string. Constraints: enum "env_only", "full_obs".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::EnvMaskMode"
}
ExamplesSourceEither a registered dataset name or inline examples for an SFT recipe step.0 fields

Type: object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "dataset"
      ],
      "properties": {
        "dataset": {
          "$ref": "#/$defs/NonEmptyString"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "examples"
      ],
      "properties": {
        "examples": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SftExample"
          },
          "minItems": 1
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "ExamplesSource"
}
FiniteNumberA finite JSON number.0 fields

Type: number.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "f32 | f64"
}
FrontDoorRequestTagged request accepted by the shared `/v1/train` endpoint for all supported training workflows.0 fields

Type: object | object | object | object | object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "name",
        "new_data",
        "behavioural_teacher"
      ],
      "properties": {
        "kind": {
          "const": "distill_refresh"
        },
        "name": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "new_data": {
          "$ref": "#/$defs/NewKnowledgeSource"
        },
        "behavioural_teacher": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "background_chat": {
          "$ref": "#/$defs/String"
        },
        "require_if_eval_recovery": {
          "$ref": "#/$defs/FiniteNumber"
        },
        "require_internal_qa_gain": {
          "$ref": "#/$defs/FiniteNumber"
        },
        "config": {
          "$ref": "#/$defs/OpdConfig"
        },
        "post_eval": {
          "anyOf": [
            {
              "$ref": "#/$defs/PostEvalConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "if_eval_suite": {
          "anyOf": [
            {
              "$ref": "#/$defs/String"
            },
            {
              "type": "null"
            }
          ]
        },
        "new_knowledge_eval_suite": {
          "anyOf": [
            {
              "$ref": "#/$defs/String"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "name",
        "sources"
      ],
      "properties": {
        "kind": {
          "const": "distill_merge"
        },
        "name": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "sources": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/DistillMergeSource"
          },
          "minItems": 1
        },
        "student": {
          "$ref": "#/$defs/String"
        },
        "rollout_budget": {
          "$ref": "#/$defs/PositiveInteger"
        },
        "config": {
          "$ref": "#/$defs/OpdConfig"
        },
        "post_eval": {
          "anyOf": [
            {
              "$ref": "#/$defs/PostEvalConfig"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "name",
        "teacher",
        "mode"
      ],
      "properties": {
        "kind": {
          "const": "distill_pump"
        },
        "name": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "teacher": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "mode": {
          "$ref": "#/$defs/DistillPumpMode"
        },
        "rank": {
          "anyOf": [
            {
              "$ref": "#/$defs/PositiveInteger"
            },
            {
              "type": "null"
            }
          ]
        },
        "rollout_budget": {
          "$ref": "#/$defs/PositiveInteger"
        },
        "use_cache": {
          "$ref": "#/$defs/Boolean"
        },
        "config": {
          "$ref": "#/$defs/OpdConfig"
        },
        "post_eval": {
          "anyOf": [
            {
              "$ref": "#/$defs/PostEvalConfig"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "teacher"
      ],
      "properties": {
        "kind": {
          "const": "opd"
        },
        "prompts": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/OpdPrompt"
          },
          "minItems": 1
        },
        "dataset_path": {
          "anyOf": [
            {
              "$ref": "#/$defs/String"
            },
            {
              "type": "null"
            }
          ]
        },
        "teacher": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "config": {
          "$ref": "#/$defs/OpdConfig"
        },
        "post_eval": {
          "anyOf": [
            {
              "$ref": "#/$defs/PostEvalConfig"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored",
      "oneOf": [
        {
          "required": [
            "prompts"
          ],
          "not": {
            "required": [
              "dataset_path"
            ],
            "properties": {
              "dataset_path": {
                "not": {
                  "type": "null"
                }
              }
            }
          }
        },
        {
          "required": [
            "dataset_path"
          ],
          "properties": {
            "dataset_path": {
              "$ref": "#/$defs/NonEmptyString"
            }
          },
          "not": {
            "required": [
              "prompts"
            ]
          }
        }
      ]
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind"
      ],
      "properties": {
        "kind": {
          "const": "grpo"
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AgenticGroup"
          },
          "minItems": 1
        },
        "agentic_groups": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AgenticGroup"
          },
          "minItems": 1
        },
        "dataset_path": {
          "anyOf": [
            {
              "$ref": "#/$defs/String"
            },
            {
              "type": "null"
            }
          ]
        },
        "dataset": {
          "anyOf": [
            {
              "$ref": "#/$defs/String"
            },
            {
              "type": "null"
            }
          ]
        },
        "dataset_split": {
          "$ref": "kiln-evals-v1.schema.json#/$defs/DatasetSplit"
        },
        "config": {
          "$ref": "#/$defs/GrpoConfig"
        },
        "post_eval": {
          "anyOf": [
            {
              "$ref": "#/$defs/PostEvalConfig"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored",
      "oneOf": [
        {
          "required": [
            "groups"
          ],
          "not": {
            "anyOf": [
              {
                "required": [
                  "agentic_groups"
                ]
              },
              {
                "required": [
                  "dataset_path"
                ],
                "properties": {
                  "dataset_path": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              },
              {
                "required": [
                  "dataset"
                ],
                "properties": {
                  "dataset": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              }
            ]
          }
        },
        {
          "required": [
            "agentic_groups"
          ],
          "not": {
            "anyOf": [
              {
                "required": [
                  "groups"
                ]
              },
              {
                "required": [
                  "dataset_path"
                ],
                "properties": {
                  "dataset_path": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              },
              {
                "required": [
                  "dataset"
                ],
                "properties": {
                  "dataset": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              }
            ]
          }
        },
        {
          "required": [
            "dataset_path"
          ],
          "properties": {
            "dataset_path": {
              "$ref": "#/$defs/NonEmptyString"
            }
          },
          "not": {
            "anyOf": [
              {
                "required": [
                  "groups"
                ]
              },
              {
                "required": [
                  "agentic_groups"
                ]
              },
              {
                "required": [
                  "dataset"
                ],
                "properties": {
                  "dataset": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              }
            ]
          }
        },
        {
          "required": [
            "dataset"
          ],
          "properties": {
            "dataset": {
              "$ref": "#/$defs/NonEmptyString"
            }
          },
          "not": {
            "anyOf": [
              {
                "required": [
                  "groups"
                ]
              },
              {
                "required": [
                  "agentic_groups"
                ]
              },
              {
                "required": [
                  "dataset_path"
                ],
                "properties": {
                  "dataset_path": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              }
            ]
          }
        }
      ]
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind"
      ],
      "properties": {
        "kind": {
          "const": "sft"
        },
        "examples": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/SftExample"
          },
          "minItems": 1
        },
        "dataset_path": {
          "anyOf": [
            {
              "$ref": "#/$defs/String"
            },
            {
              "type": "null"
            }
          ]
        },
        "dataset": {
          "anyOf": [
            {
              "$ref": "#/$defs/String"
            },
            {
              "type": "null"
            }
          ]
        },
        "dataset_split": {
          "$ref": "kiln-evals-v1.schema.json#/$defs/DatasetSplit"
        },
        "config": {
          "$ref": "#/$defs/SftConfig"
        },
        "post_eval": {
          "anyOf": [
            {
              "$ref": "#/$defs/PostEvalConfig"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "oneOf": [
        {
          "required": [
            "examples"
          ],
          "not": {
            "anyOf": [
              {
                "required": [
                  "dataset_path"
                ],
                "properties": {
                  "dataset_path": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              },
              {
                "required": [
                  "dataset"
                ],
                "properties": {
                  "dataset": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              }
            ]
          }
        },
        {
          "required": [
            "dataset_path"
          ],
          "properties": {
            "dataset_path": {
              "$ref": "#/$defs/NonEmptyString"
            }
          },
          "not": {
            "anyOf": [
              {
                "required": [
                  "examples"
                ]
              },
              {
                "required": [
                  "dataset"
                ],
                "properties": {
                  "dataset": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              }
            ]
          }
        },
        {
          "required": [
            "dataset"
          ],
          "properties": {
            "dataset": {
              "$ref": "#/$defs/NonEmptyString"
            }
          },
          "not": {
            "anyOf": [
              {
                "required": [
                  "examples"
                ]
              },
              {
                "required": [
                  "dataset_path"
                ],
                "properties": {
                  "dataset_path": {
                    "not": {
                      "type": "null"
                    }
                  }
                }
              }
            ]
          }
        }
      ]
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "FrontDoorRequest"
}
FrontDoorResponseTraining workflow selected by Kiln and the resulting queue receipt.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
picked yes any enum "distill_refresh", "distill_merge", "distill_pump", "opd", "grpo", "sft" Picked.
training yes TrainingResponse - Training. Receipt returned after Kiln validates and queues a training request.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "FrontDoorResponse"
}
GrpoConfigComplete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration.37 fields

Type: object.

Field Required Type Constraints and default Description
learning_rate no FiniteNumber | null - Learning rate.
kl_coeff no FiniteNumber - Kl coeff. A finite JSON number.
clip_epsilon no FiniteNumber - Clip epsilon. A finite JSON number.
clip_eps_high no FiniteNumber | null - Clip eps high.
cispo_max_weight no FiniteNumber - Cispo max weight. A finite JSON number.
advantage_mode no AdvantageMode - Advantage mode. Method used to normalize rewards within each rollout group.
loss_aggregation no LossAggregation - Loss aggregation. Whether Kiln aggregates the GRPO objective by completion or by token.
kl_estimator no KlEstimator - Kl estimator. Estimator used for the per-token KL penalty.
dynamic_sampling no Boolean - Dynamic sampling. Either true or false.
is_level no IsLevel - Is level. Granularity used for importance-sampling correction.
behavior_policy no BehaviorPolicy - Behavior policy. Whether training uses no importance correction or the probabilities recorded during rollout generation.
kl_reference_policy no KlReferencePolicy - Kl reference policy. Reference-policy strategy used only to calculate the KL penalty.
reference_policy no KlReferencePolicy - Reference policy. Reference-policy strategy used only to calculate the KL penalty.
entropy_aware_kl_quantile no UnitInterval | null - Entropy aware kl quantile.
reward_saturation_threshold no FiniteNumber - Reward saturation threshold. A finite JSON number.
reward_low_variance_threshold no FiniteNumber - Reward low variance threshold. A finite JSON number.
reward_filter_var_min no FiniteNumber | null - Reward filter var min.
reward_filter_var_max no FiniteNumber | null - Reward filter var max.
reward_filter_min_groups no PositiveInteger - Reward filter min groups. A whole number greater than or equal to one.
reward_filter_on_empty no RewardFilterOnEmpty - Reward filter on empty. What to do when reward-variance filtering retains too few groups.
lora_rank no PositiveInteger - LoRA rank. A whole number greater than or equal to one.
lora_alpha no FiniteNumber - LoRA alpha. A finite JSON number.
base_adapter no String | null - Base adapter.
allow_adapter_shape_conversion no Boolean - Allow adapter shape conversion. Either true or false.
allow_high_lora_scale no Boolean - Allow high LoRA scale. Either true or false.
output_name no String | null - Output name.
auto_load no Boolean - Auto load. Either true or false.
checkpoint_interval no PositiveInteger | null - Checkpoint interval.
resume_checkpoint no String | null - Resume checkpoint.
grad_checkpoint_segments no PositiveInteger | null - Grad checkpoint segments.
detect_anomaly no Boolean - Detect anomaly. Either true or false.
seed no NonNegativeInteger | null - Seed.
optimizer no Optimizer - Optimizer. Optimizer selection and the settings accepted by each optimizer. Unknown optimizer settings are rejected.
adapter_smoke_test no Boolean - Adapter smoke test. Either true or false.
adapter_smoke_prompts no array<NonEmptyString> | null - Adapter smoke prompts.
shared_prefix_reference no Boolean - Shared prefix reference. Either true or false.
loss no LossConfig - Loss. GRPO objective settings. ECHO is supported; loss.opd is reserved and currently rejects the request.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-input-aliases": {
    "reference_policy": "kl_reference_policy"
  },
  "x-kiln-rust-type": "kiln_train::GrpoConfig",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
GrpoRequestGRPO submission using exactly one inline, local-path, or registered-dataset source.7 fields

Type: object.

Field Required Type Constraints and default Description
groups no array<AgenticGroup> minimum items 1 Groups.
agentic_groups no array<AgenticGroup> minimum items 1 Agentic groups.
dataset_path no String | null - Dataset path.
dataset no String | null - Dataset.
dataset_split no DatasetSplit - Dataset split. See kiln-evals-v1.schema.json#/$defs/DatasetSplit.
config no GrpoConfig - Config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration.
post_eval no PostEvalConfig | null - Post eval.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "allOf": [
    {
      "if": {
        "required": [
          "dataset_split"
        ]
      },
      "then": {
        "required": [
          "dataset"
        ],
        "properties": {
          "dataset": {
            "$ref": "#/$defs/NonEmptyString"
          }
        }
      }
    }
  ],
  "oneOf": [
    {
      "required": [
        "groups"
      ],
      "not": {
        "anyOf": [
          {
            "required": [
              "agentic_groups"
            ]
          },
          {
            "required": [
              "dataset_path"
            ],
            "properties": {
              "dataset_path": {
                "not": {
                  "type": "null"
                }
              }
            }
          },
          {
            "required": [
              "dataset"
            ],
            "properties": {
              "dataset": {
                "not": {
                  "type": "null"
                }
              }
            }
          }
        ]
      }
    },
    {
      "required": [
        "agentic_groups"
      ],
      "not": {
        "anyOf": [
          {
            "required": [
              "groups"
            ]
          },
          {
            "required": [
              "dataset_path"
            ],
            "properties": {
              "dataset_path": {
                "not": {
                  "type": "null"
                }
              }
            }
          },
          {
            "required": [
              "dataset"
            ],
            "properties": {
              "dataset": {
                "not": {
                  "type": "null"
                }
              }
            }
          }
        ]
      }
    },
    {
      "required": [
        "dataset_path"
      ],
      "properties": {
        "dataset_path": {
          "$ref": "#/$defs/NonEmptyString"
        }
      },
      "not": {
        "anyOf": [
          {
            "required": [
              "groups"
            ]
          },
          {
            "required": [
              "agentic_groups"
            ]
          },
          {
            "required": [
              "dataset"
            ],
            "properties": {
              "dataset": {
                "not": {
                  "type": "null"
                }
              }
            }
          }
        ]
      }
    },
    {
      "required": [
        "dataset"
      ],
      "properties": {
        "dataset": {
          "$ref": "#/$defs/NonEmptyString"
        }
      },
      "not": {
        "anyOf": [
          {
            "required": [
              "groups"
            ]
          },
          {
            "required": [
              "agentic_groups"
            ]
          },
          {
            "required": [
              "dataset_path"
            ],
            "properties": {
              "dataset_path": {
                "not": {
                  "type": "null"
                }
              }
            }
          }
        ]
      }
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-input-aliases": {
    "agentic_groups": "groups"
  },
  "x-kiln-rust-type": "GrpoRequest",
  "x-kiln-semantic-constraints": [
    "recorded behavior policy requires provenance on every rollout",
    "dataset_split requires a registered named dataset and defaults to train"
  ],
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
IsLevelGranularity used for importance-sampling correction.0 fields

Type: string. Constraints: enum "token", "sequence", "cispo".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::IsLevel"
}
JudgeDistillRequestRequest to distill a local judge from indexed agent traces.5 fields

Type: object.

Field Required Type Constraints and default Description
name no NonEmptyString - Name. A text string containing at least one character.
teacher no NonEmptyString - Teacher. A text string containing at least one character.
include_pi_share no Boolean - Include pi share. Either true or false.
config no OpdConfig - Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts.
post_eval no PostEvalConfig | null - Post eval.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "JudgeDistillRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
JudgeDistillResponseQueue receipt for a judge-distillation request.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
job_id yes NonEmptyString - Job ID. A text string containing at least one character.
state yes any const "queued" State.
effective_seed yes DecimalU64 - Effective seed. An unsigned 64-bit integer encoded as decimal text to preserve exact values.
message yes String - Message. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "JudgeDistillResponse"
}
JudgeDriftCheckRequestInputs accepted by the judge-drift route. After validation, the endpoint currently returns HTTP 501 and performs no drift check.4 fields

Type: object.

Field Required Type Constraints and default Description
judge no NonEmptyString - Judge. A text string containing at least one character.
teacher no NonEmptyString - Teacher. A text string containing at least one character.
sample_size no PositiveInteger - Sample size. A whole number greater than or equal to one.
agreement_threshold no number exclusive minimum 0; maximum 1 Agreement threshold.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-current-runtime-result": "http_501_not_implemented",
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "JudgeDriftCheckRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
KlEstimatorEstimator used for the per-token KL penalty.0 fields

Type: string. Constraints: enum "k1", "k3", "none".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::KlEstimator"
}
KlReferencePolicyReference-policy strategy used only to calculate the KL penalty.0 fields

Type: object | object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind"
      ],
      "properties": {
        "kind": {
          "const": "base_per_step"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind"
      ],
      "properties": {
        "kind": {
          "const": "none"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind"
      ],
      "properties": {
        "kind": {
          "const": "ema"
        },
        "decay": {
          "$ref": "#/$defs/FiniteNumber"
        },
        "refresh_every": {
          "$ref": "#/$defs/PositiveInteger"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::KlReferencePolicy"
}
LibraryAdapterEntryOne adapter entry in the configured library catalog.7 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
id yes NonEmptyString - ID. A text string containing at least one character.
name yes NonEmptyString - Name. A text string containing at least one character.
source_kind yes String - Source kind. A text string.
description yes String | null - Description.
post_eval yes object - Post eval.
uploader yes String | null - Uploader.
size_bytes yes NonNegativeInteger | null - Size bytes.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "LibraryAdapterEntry"
}
LibraryListResponseConfigured library URL and catalog response. The current endpoint returns an empty list because remote catalog access is not operational.3 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
backend yes String - Backend. A text string.
adapters yes array<LibraryAdapterEntry> - Adapters.
note yes String | null - Note.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "LibraryListResponse"
}
ListResponseCorrections from the active set or training history.1 field

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
corrections yes array<CorrectionRow> - Corrections.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "ListResponse"
}
LossAggregationWhether Kiln aggregates the GRPO objective by completion or by token.0 fields

Type: string. Constraints: enum "per_sample", "token_level".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::LossAggregation"
}
LossConfigGRPO objective settings. ECHO is supported; `loss.opd` is reserved and currently rejects the request.3 fields

Type: object.

Field Required Type Constraints and default Description
echo no EchoConfig | null - Echo.
opd no OpdAuxConfig | null - OPD.
no_policy_loss no Boolean - No policy loss. Either true or false.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::LossConfig",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
MarkTrainedRequestMark selected corrections as used to train a named adapter.2 fields

Type: object.

Field Required Type Constraints and default Description
request_ids yes array<NonEmptyString> minimum items 1 Request IDs.
adapter yes NonEmptyString - Adapter. A text string containing at least one character.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "MarkTrainedRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
MarkTrainedResponseNumber of corrections marked as trained.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
status yes any const "marked" Status.
marked yes NonNegativeInteger - Marked. A whole number greater than or equal to zero.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "MarkTrainedResponse"
}
MessageRequestSteering or follow-up message for an active run.1 field

Type: object.

Field Required Type Constraints and default Description
message yes NonEmptyString - Message. A text string containing at least one character.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "MessageRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
NewKnowledgeSourceEither a registered dataset name or inline prompts for a refresh workflow.0 fields

Type: object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "dataset"
      ],
      "properties": {
        "dataset": {
          "$ref": "#/$defs/NonEmptyString"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "examples"
      ],
      "properties": {
        "examples": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/OpdPrompt"
          },
          "minItems": 1
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::NewKnowledgeSource"
}
NonEmptyStringA text string containing at least one character.0 fields

Type: string. Constraints: minimum length 1.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "String"
}
NonNegativeIntegerA whole number greater than or equal to zero.0 fields

Type: integer. Constraints: minimum 0.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "u64 | u32 | usize"
}
OpdAuxConfigReserved GRPO auxiliary-objective shape. Supplying `loss.opd` currently rejects the request; use `/v1/train/opd` instead.1 field

Type: object.

Field Required Type Constraints and default Description
lambda no FiniteNumber - Lambda. A finite JSON number.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpdAuxConfig",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
OpdConfigOPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts.29 fields

Type: object.

Field Required Type Constraints and default Description
training_mode no OpdTrainingMode - Training mode. Whether OPD generates fresh student rollouts or replays teacher-authored data.
objective no OpdObjective - Objective. OPD objective. cross_entropy is parsed for compatibility but rejected by the server.
loss no OpdLossGranularity - Loss. Amount of teacher-distribution data used by OPD. The server currently executes only teacher_top_k.
top_k no PositiveInteger - Top k. A whole number greater than or equal to one.
samples_per_prompt no PositiveInteger - Samples per prompt. A whole number greater than or equal to one.
temperature no FiniteNumber - Temperature. A finite JSON number.
top_p no FiniteNumber - Top p. A finite JSON number.
max_tokens no PositiveInteger - Max tokens. A whole number greater than or equal to one.
sampler_segments no PositiveInteger | null - Sampler segments.
rollout_prompt_rendering no OpdRolloutPromptRendering - Rollout prompt rendering. How Kiln constructs the student rollout prefix. chat_template is experimental.
stable_opd no StableOpdMode - Stable OPD. Stable-OPD setting. Only off is currently executable.
discount no FiniteNumber - Discount. A finite JSON number.
clip_epsilon no FiniteNumber - Clip epsilon. A finite JSON number.
learning_rate no FiniteNumber | null - Learning rate.
lora_rank no PositiveInteger - LoRA rank. A whole number greater than or equal to one.
lora_alpha no FiniteNumber - LoRA alpha. A finite JSON number.
allow_high_lora_scale no Boolean - Allow high LoRA scale. Either true or false.
base_adapter no String | null - Base adapter.
output_name no String | null - Output name.
auto_load no Boolean - Auto load. Either true or false.
checkpoint_interval no PositiveInteger | null - Checkpoint interval.
resume_checkpoint no String | null - Resume checkpoint.
grad_checkpoint_segments no PositiveInteger - Grad checkpoint segments. A whole number greater than or equal to one.
detect_anomaly no Boolean - Detect anomaly. Either true or false.
seed no NonNegativeInteger | null - Seed.
optimizer no Optimizer - Optimizer. Optimizer selection and the settings accepted by each optimizer. Unknown optimizer settings are rejected.
echo no EchoConfig | null - Echo.
epochs no PositiveInteger - Epochs. A whole number greater than or equal to one.
max_cost_usd no FiniteNumber | null - Max cost usd.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpdConfig",
  "x-kiln-semantic-constraints": [
    "server loss is teacher_top_k",
    "stable_opd.mode is off",
    "discount and clip_epsilon are zero",
    "max_cost_usd is null"
  ],
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
OpdLossGranularityAmount of teacher-distribution data used by OPD. The server currently executes only `teacher_top_k`.0 fields

Type: string. Constraints: enum "sampled_token", "teacher_top_k", "full_vocab".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpdLossGranularity"
}
OpdObjectiveOPD objective. `cross_entropy` is parsed for compatibility but rejected by the server.0 fields

Type: string. Constraints: enum "reverse_kl", "cross_entropy".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpdObjective"
}
OpdPromptStudent-visible prompt with optional teacher-only context and an optional agent trajectory to replay.3 fields

Type: object.

Field Required Type Constraints and default Description
messages yes array<TrainingChatMessageInput> - Messages.
teacher_extra_messages no array<TrainingChatMessageInput> - Teacher extra messages.
trajectory no array<TurnSegmentInput> - Trajectory.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpdPrompt",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
OpdRequestDirect OPD submission using either inline prompts or a replay dataset path on the server.5 fields

Type: object.

Field Required Type Constraints and default Description
prompts no array<OpdPrompt> minimum items 1 Prompts.
dataset_path no String | null - Dataset path.
teacher yes NonEmptyString - Teacher. A text string containing at least one character.
config no OpdConfig - Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts.
post_eval no PostEvalConfig | null - Post eval.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "required": [
        "prompts"
      ],
      "not": {
        "required": [
          "dataset_path"
        ],
        "properties": {
          "dataset_path": {
            "not": {
              "type": "null"
            }
          }
        }
      }
    },
    {
      "required": [
        "dataset_path"
      ],
      "properties": {
        "dataset_path": {
          "$ref": "#/$defs/NonEmptyString"
        }
      },
      "not": {
        "required": [
          "prompts"
        ]
      }
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpdRequest",
  "x-kiln-semantic-constraints": [
    "teacher alias is registered"
  ],
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
OpdRolloutPromptRenderingHow Kiln constructs the student rollout prefix. `chat_template` is experimental.0 fields

Type: string. Constraints: enum "legacy_action_boundary", "chat_template".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpdRolloutPromptRendering"
}
OpdTrainingModeWhether OPD generates fresh student rollouts or replays teacher-authored data.0 fields

Type: string. Constraints: enum "on_policy", "off_policy".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpdTrainingMode"
}
OpenEnvArtifactContent-addressed artifact downloadable from a retained OpenEnv run.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
kind yes any enum "dataset", "replay", "summary", "train_receipt", "adapter_manifest", "environment_eval_baseline_dataset", "environment_eval_baseline_replay", "environment_eval_baseline_summary", "environment_eval_candidate_dataset", "environment_eval_candidate_replay", "environment_eval_candidate_summary", "environment_eval_receipt" Kind.
url yes String - URL. A text string.
sha256 yes Sha256 - SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
bytes yes NonNegativeInteger - Bytes. A whole number greater than or equal to zero.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvArtifact"
}
OpenEnvEnvironmentEvalConfigPaired held-out OpenEnv evaluation collected after native training. Omitted seed_start begins immediately after the training seed range.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
groups no PositiveInteger - Groups. A whole number greater than or equal to one.
group_size no PositiveInteger - Group size. A whole number greater than or equal to one.
seed_start no NonNegativeInteger - Seed start. A whole number greater than or equal to zero.
gate no OpenEnvEnvironmentEvalGate - Gate. Fail-closed paired-return promotion thresholds. Statistical significance is always required in addition to these point estimates.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvEnvironmentEvalConfig"
}
OpenEnvEnvironmentEvalDecisionFixed paired-return policy decision before adapter promotion is applied.0 fields

Type: string. Constraints: enum "diagnostic", "passed", "rejected", "inconclusive".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvEnvironmentEvalDecision"
}
OpenEnvEnvironmentEvalEvidenceEnvironment-owned returns and an exact two-sided sign test over independent per-seed mean-return pairs.14 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
policy_version yes NonEmptyString - Policy version. A text string containing at least one character.
paired_groups yes PositiveInteger - Paired groups. A whole number greater than or equal to one.
paired_episodes yes PositiveInteger - Paired episodes. A whole number greater than or equal to one.
minimum_paired_groups yes PositiveInteger - Minimum paired groups. A whole number greater than or equal to one.
baseline_mean_return yes FiniteNumber - Baseline mean return. A finite JSON number.
candidate_mean_return yes FiniteNumber - Candidate mean return. A finite JSON number.
mean_return_improvement yes FiniteNumber - Mean return improvement. A finite JSON number.
improved_groups yes NonNegativeInteger - Improved groups. A whole number greater than or equal to zero.
regressed_groups yes NonNegativeInteger - Regressed groups. A whole number greater than or equal to zero.
tied_groups yes NonNegativeInteger - Tied groups. A whole number greater than or equal to zero.
exact_sign_test_p_value yes UnitInterval - Exact sign test p value. A number from 0 through 1, inclusive.
exact_sign_test_alpha yes UnitInterval - Exact sign test alpha. A number from 0 through 1, inclusive.
decision yes OpenEnvEnvironmentEvalDecision - Decision. Fixed paired-return policy decision before adapter promotion is applied.
reason yes NonEmptyString - Reason. A text string containing at least one character.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvEnvironmentEvalEvidence"
}
OpenEnvEnvironmentEvalGateFail-closed paired-return promotion thresholds. Statistical significance is always required in addition to these point estimates.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
min_mean_return no FiniteNumber - Min mean return. A finite JSON number.
min_mean_improvement no number minimum 0 Min mean improvement.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvEnvironmentEvalGate"
}
OpenEnvEnvironmentEvalOutcomeObservable result after the paired decision and requested promotion policy are applied.0 fields

Type: string. Constraints: enum "diagnostic", "promoted", "kept", "rejected", "inconclusive", "error".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvEnvironmentEvalOutcome"
}
OpenEnvEnvironmentEvalProgressLive bounded progress for the baseline or candidate half of paired evaluation.5 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
state yes OpenEnvEnvironmentEvalState - State. Lifecycle phase for paired held-out environment evaluation.
groups_completed yes NonNegativeInteger - Groups completed. A whole number greater than or equal to zero.
groups_total yes PositiveInteger - Groups total. A whole number greater than or equal to one.
rollouts_completed yes NonNegativeInteger - Rollouts completed. A whole number greater than or equal to zero.
rollouts_total yes PositiveInteger - Rollouts total. A whole number greater than or equal to one.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvEnvironmentEvalProgress"
}
OpenEnvEnvironmentEvalStateLifecycle phase for paired held-out environment evaluation.0 fields

Type: string. Constraints: enum "pending", "collecting_baseline", "collecting_candidate", "completed", "failed", "cancelled".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvEnvironmentEvalState"
}
OpenEnvEnvironmentEvalStatusAuthoritative paired held-out environment evaluation status and promotion result.12 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
state yes OpenEnvEnvironmentEvalState - State. Lifecycle phase for paired held-out environment evaluation.
seed_start yes NonNegativeInteger - Seed start. A whole number greater than or equal to zero.
groups yes PositiveInteger - Groups. A whole number greater than or equal to one.
group_size yes PositiveInteger - Group size. A whole number greater than or equal to one.
baseline yes OpenEnvPolicyIdentity - Baseline. Exact baseline or candidate policy identity. An omitted adapter denotes the base model.
candidate yes OpenEnvPolicyIdentity - Candidate. Exact baseline or candidate policy identity. An omitted adapter denotes the base model.
progress yes OpenEnvEnvironmentEvalProgress - Progress. Live bounded progress for the baseline or candidate half of paired evaluation.
baseline_stats no OpenEnvRolloutStats - Baseline stats. Artifact-published OpenEnv reward, terminal-outcome, recovery, environment-work, and policy-cost statistics.
candidate_stats no OpenEnvRolloutStats - Candidate stats. Artifact-published OpenEnv reward, terminal-outcome, recovery, environment-work, and policy-cost statistics.
evidence no OpenEnvEnvironmentEvalEvidence - Evidence. Environment-owned returns and an exact two-sided sign test over independent per-seed mean-return pairs.
outcome no OpenEnvEnvironmentEvalOutcome - Outcome. Observable result after the paired decision and requested promotion policy are applied.
verdict no String - Verdict. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvEnvironmentEvalStatus"
}
OpenEnvEpisodeTerminationV1Why an OpenEnv episode ended from Kiln's point of view.0 fields

Type: string. Constraints: enum "done", "max_steps", "invalid_model_action", "protocol_error".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpenEnvEpisodeTerminationV1"
}
OpenEnvErrorCodeExact error code supplied by an OpenEnv WebSocket peer.0 fields

Type: string. Constraints: enum "INVALID_JSON", "UNKNOWN_TYPE", "VALIDATION_ERROR", "EXECUTION_ERROR", "CAPACITY_REACHED", "FACTORY_ERROR", "SESSION_ERROR".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_openenv::OpenEnvErrorCode"
}
OpenEnvIdentityContent-addressed identity established by OpenEnv discovery.10 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes String - Schema. A text string.
client_profile yes String - Client profile. A text string.
base_url yes String - Base URL. A text string.
websocket_url yes String - Websocket URL. A text string.
authentication no any enum "none", "bearer" Authentication.
openapi_version no String | null - Openapi version.
environments yes array<String> - Environments.
metadata yes OpenEnvMetadata - Metadata. Environment-authored metadata discovered from an OpenEnv server.
schema_sha256 yes Sha256 - Schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
discovery_sha256 no Sha256 - Discovery SHA-256. A lowercase SHA-256 digest prefixed with sha256:.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_openenv::OpenEnvIdentity"
}
OpenEnvInspectRequestOne or more OpenEnv HTTP base URLs to discover, with optional origin-scoped server credential handles. `environments` is accepted as an input alias.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
environment_urls yes array<NonEmptyString> minimum items 1 Environment urls.
credential_ids no array<string | null> - Credential IDs.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-input-aliases": {
    "environments": "environment_urls"
  },
  "x-kiln-rust-type": "OpenEnvInspectRequest",
  "x-kiln-semantic-constraints": [
    "credential_ids is empty or has exactly one handle/null entry per environment_urls item"
  ]
}
OpenEnvInspectResponseComplete discovery results for the requested OpenEnv servers.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes any const "kiln.openenv-inspection.v1" Schema.
environments yes array<OpenEnvInspection> minimum items 1 Environments.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvInspectResponse"
}
OpenEnvInspectionComplete protocol discovery result for one OpenEnv server.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
identity yes OpenEnvIdentity - Identity. Content-addressed identity established by OpenEnv discovery.
schema yes OpenEnvSchema - Schema. JSON Schemas for OpenEnv actions, observations, and state.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_openenv::OpenEnvInspection"
}
OpenEnvMetadataEnvironment-authored metadata discovered from an OpenEnv server.6 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
name yes String - Name. A text string.
description yes String - Description. A text string.
readme_content no String | null - Readme content.
version no String | null - Version.
author no String | null - Author.
documentation_url no String | null - Documentation URL.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_openenv::OpenEnvMetadata"
}
OpenEnvPolicyIdentityExact baseline or candidate policy identity. An omitted adapter denotes the base model.3 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
adapter no String - Adapter. A text string.
adapter_content_revision no Sha256 - Adapter content revision. A lowercase SHA-256 digest prefixed with sha256:.
execution_provenance_sha256 no Sha256 - Execution provenance SHA-256. A lowercase SHA-256 digest prefixed with sha256:.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvPolicyIdentity"
}
OpenEnvPostEvalStatusBounded projection of one post-training evaluation linked to an OpenEnv run.7 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
job_id yes NonEmptyString - Job ID. A text string containing at least one character.
suite_name yes NonEmptyString - Suite name. A text string containing at least one character.
state yes EvalJobState - State. See kiln-evals-v1.schema.json#/$defs/EvalJobState.
examples_completed yes NonNegativeInteger - Examples completed. A whole number greater than or equal to zero.
examples_total yes NonNegativeInteger - Examples total. A whole number greater than or equal to zero.
headline_accuracy no FiniteNumber - Headline accuracy. A finite JSON number.
error no String - Error. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvPostEvalStatus"
}
OpenEnvRolloutProvenanceV1Fail-closed environment, task, and outcome identity attached to a native OpenEnv rollout.15 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes any const "kiln.openenv-rollout.v1" Schema.
environment_name yes NonEmptyString - Environment name. A text string containing at least one character.
environment_base_url yes NonEmptyString - Environment base URL. A text string containing at least one character.
openapi_version no NonEmptyString - Openapi version. A text string containing at least one character.
discovery_sha256 no Sha256 - Discovery SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
environment_schema_sha256 yes Sha256 - Environment schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
action_schema_sha256 yes Sha256 - Action schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
behavior_policy no RolloutBehaviorPolicyIdentityV1 - Behavior policy. See kiln-inference-v1.schema.json#/$defs/RolloutBehaviorPolicyIdentityV1.
reset_sha256 yes Sha256 - Reset SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
seed yes NonNegativeInteger - Seed. A whole number greater than or equal to zero.
steps yes NonNegativeInteger - Steps. A whole number greater than or equal to zero.
episode_return yes FiniteNumber - Episode return. A finite JSON number.
terminal_done yes Boolean - Terminal done. Either true or false.
termination yes OpenEnvEpisodeTerminationV1 - Termination. Why an OpenEnv episode ended from Kiln's point of view.
protocol_error_code no NonEmptyString - Protocol error code. A text string containing at least one character.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpenEnvRolloutProvenanceV1",
  "x-kiln-semantic-constraints": [
    "terminal_done is true exactly when termination is done",
    "protocol_error_code is present exactly when termination is protocol_error"
  ]
}
OpenEnvRolloutStatsArtifact-published OpenEnv reward, terminal-outcome, recovery, environment-work, and policy-cost statistics.12 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
mean_episode_return yes FiniteNumber - Mean episode return. A finite JSON number.
min_episode_return no FiniteNumber - Min episode return. A finite JSON number.
max_episode_return no FiniteNumber - Max episode return. A finite JSON number.
done_count yes NonNegativeInteger - Done count. A whole number greater than or equal to zero.
max_steps_count yes NonNegativeInteger - Max steps count. A whole number greater than or equal to zero.
invalid_model_action_count yes NonNegativeInteger - Invalid model action count. A whole number greater than or equal to zero.
protocol_error_count yes NonNegativeInteger - Protocol error count. A whole number greater than or equal to zero.
recoverable_protocol_error_count yes NonNegativeInteger - Recoverable protocol error count. A whole number greater than or equal to zero.
capacity_retry_count yes NonNegativeInteger - Capacity retry count. A whole number greater than or equal to zero.
total_environment_steps yes NonNegativeInteger - Total environment steps. A whole number greater than or equal to zero.
total_model_tokens yes NonNegativeInteger - Total model tokens. A whole number greater than or equal to zero.
mean_model_latency_ms yes FiniteNumber - Mean model latency ms. A finite JSON number.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRolloutStats"
}
OpenEnvRunAdmissionBounded FIFO execution admission for one persisted OpenEnv workflow. Sequence is stable across restart; queue position is one-based and present only while waiting.5 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
max_active_runs yes PositiveInteger - Max active runs. A whole number greater than or equal to one.
sequence yes PositiveInteger - Sequence. A whole number greater than or equal to one.
queue_position no PositiveInteger - Queue position. A whole number greater than or equal to one.
admitted_unix_ms no NonNegativeInteger - Admitted unix ms. A whole number greater than or equal to zero.
queue_wait_ms no NonNegativeInteger - Queue wait ms. A whole number greater than or equal to zero.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRunAdmission"
}
OpenEnvRunFailureBounded, self-contained terminal diagnosis retained with an OpenEnv run. Protocol and HTTP evidence are present only when supplied by the environment.9 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes any const "kiln.openenv-run-failure.v1" Schema.
code yes OpenEnvRunFailureCode - Code. Stable, automation-safe terminal reason for an OpenEnv workflow failure.
stage yes OpenEnvRunFailureStage - Stage. Closed workflow boundary that owned an operation when an OpenEnv run failed.
retryable yes Boolean - Retryable. Either true or false.
message yes string maximum length 4096 Message.
hint yes String - Hint. A text string.
occurred_unix_ms yes NonNegativeInteger - Occurred unix ms. A whole number greater than or equal to zero.
protocol_code no OpenEnvErrorCode - Protocol code. Exact error code supplied by an OpenEnv WebSocket peer.
http_status no integer minimum 100; maximum 599 HTTP status.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRunFailure"
}
OpenEnvRunFailureCodeStable, automation-safe terminal reason for an OpenEnv workflow failure.0 fields

Type: string. Constraints: enum "run_admission_failed", "run_interrupted", "persisted_contract_invalid", "environment_unavailable", "environment_capacity_exhausted", "environment_protocol_error", "environment_identity_changed", "collection_failed", "artifact_publication_failed", "training_submission_failed", "training_failed", "training_evidence_invalid", "post_evaluation_failed", "environment_evaluation_failed", "internal_error".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRunFailureCode"
}
OpenEnvRunFailureStageClosed workflow boundary that owned an operation when an OpenEnv run failed.0 fields

Type: string. Constraints: enum "restoration", "admission", "discovery", "collection", "identity_verification", "artifact_publication", "training_submission", "training", "post_evaluation", "environment_evaluation", "orchestration".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRunFailureStage"
}
OpenEnvRunKindWhether a server-owned run stops after artifacts or queues native GRPO.0 fields

Type: string. Constraints: enum "rollout", "train".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRunKind"
}
OpenEnvRunListNewest-first retained OpenEnv run records.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes any const "kiln.openenv-run-list.v5" Schema.
runs yes array<OpenEnvRunStatus> - Runs.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRunList"
}
OpenEnvRunProgressBounded group and episode progress for one OpenEnv run.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
groups_completed yes NonNegativeInteger - Groups completed. A whole number greater than or equal to zero.
groups_total yes PositiveInteger - Groups total. A whole number greater than or equal to one.
rollouts_completed yes NonNegativeInteger - Rollouts completed. A whole number greater than or equal to zero.
rollouts_total yes PositiveInteger - Rollouts total. A whole number greater than or equal to one.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRunProgress"
}
OpenEnvRunRequestA persisted OpenEnv rollout or rollout-and-train request with optional static and paired held-out environment evaluation. Immutable train contracts are preflighted before persistence or environment collection. `environments` is accepted as an input alias for `environment_urls`.24 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
kind no OpenEnvRunKind - Kind. Whether a server-owned run stops after artifacts or queues native GRPO.
idempotency_key no string minimum length 1; maximum length 128; pattern ^[A-Za-z0-9._:-]+$ Idempotency key.
environment_urls yes array<NonEmptyString> minimum items 1 Environment urls.
credential_ids no array<string | null> - Credential IDs.
adapter no NonEmptyString - Adapter. A text string containing at least one character.
groups no PositiveInteger - Groups. A whole number greater than or equal to one.
group_size no PositiveInteger - Group size. A whole number greater than or equal to one.
seed_start no NonNegativeInteger - Seed start. A whole number greater than or equal to zero.
reset_options no object - Reset options.
environment_reset_options no array<object> minimum items 1 Environment reset options.
max_steps no PositiveInteger - Max steps. A whole number greater than or equal to one.
concurrency no PositiveInteger - Concurrency. A whole number greater than or equal to one.
max_action_tokens no PositiveInteger - Max action tokens. A whole number greater than or equal to one.
thinking_budget_tokens no NonNegativeInteger - Thinking budget tokens. A whole number greater than or equal to zero.
temperature no FiniteNumber - Temperature. A finite JSON number.
thinking no Boolean - Thinking. Either true or false.
protocol_error_reward no FiniteNumber - Protocol error reward. A finite JSON number.
max_recoverable_errors no NonNegativeInteger - Max recoverable errors. A whole number greater than or equal to zero.
capacity_wait_seconds no PositiveInteger - Capacity wait seconds. A whole number greater than or equal to one.
output_adapter no NonEmptyString - Output adapter. A text string containing at least one character.
training_config no GrpoConfig - Training config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration.
auto_load no Boolean - Auto load. Either true or false.
post_eval no PostEvalConfig - Post eval. Optional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate.
environment_eval no OpenEnvEnvironmentEvalConfig - Environment eval. Paired held-out OpenEnv evaluation collected after native training. Omitted seed_start begins immediately after the training seed range.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-input-aliases": {
    "environments": "environment_urls"
  },
  "x-kiln-rust-type": "OpenEnvRunRequest",
  "x-kiln-semantic-constraints": [
    "kind=train requires output_adapter",
    "kind=rollout rejects output_adapter, training_config, post_eval, and environment_eval",
    "while retained, an idempotency_key plus the same normalized request returns the original run; changed semantics with that key fail",
    "idempotency_key is a non-secret opaque client token and is persisted in status",
    "credential_ids is empty for unauthenticated endpoints or has exactly one origin-scoped handle/null entry per environment_urls item",
    "environment_reset_options is empty or has exactly one object per environment_urls item and is mutually exclusive with non-empty reset_options",
    "groups is at least environment_urls length so every endpoint is exercised and receipt-verifiable",
    "environment_eval requires a distinct behavior and output adapter, and its seed interval must not overlap training",
    "environment_eval.gate requires at least 20 distinct paired seed groups and cannot be combined with post_eval.min_accuracy",
    "an environment gate defers auto_load until a significant exact paired sign-test win also satisfies configured return thresholds",
    "Kiln overrides behavior_policy, base_adapter, output_name, and auto_load in training_config",
    "kind=train preflights the effective native GRPO config, behavior adapter, installed post_eval suite, backend, GRPO workload, optimizer, and rank before persistence or environment collection"
  ]
}
OpenEnvRunStatePersisted OpenEnv orchestration lifecycle state.0 fields

Type: string. Constraints: enum "queued", "discovering", "collecting", "revalidating", "submitting", "rollout_ready", "training_queued", "training_running", "post_evaluating", "environment_evaluating", "completed", "failed", "cancelled".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRunState"
}
OpenEnvRunStatusPersisted status, collection artifacts, immutable admitted training contract, and authoritative training and evaluation lifecycle for one OpenEnv run. Version 1 records may retain the historical terminal training_queued handoff; version 2 follows learning to completion; version 3 includes paired held-out environment evaluation; version 4 adds bounded FIFO execution admission; version 5 seals exact trainer settings before collection.21 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes any enum "kiln.openenv-run.v1", "kiln.openenv-run.v2", "kiln.openenv-run.v3", "kiln.openenv-run.v4", "kiln.openenv-run.v5" Schema.
run_id yes String - Run ID. A text string.
kind yes OpenEnvRunKind - Kind. Whether a server-owned run stops after artifacts or queues native GRPO.
state yes OpenEnvRunState - State. Persisted OpenEnv orchestration lifecycle state.
request yes OpenEnvRunRequest - Request. A persisted OpenEnv rollout or rollout-and-train request with optional static and paired held-out environment evaluation. Immutable train contracts are preflighted before persistence or environment collection. environments is accepted as an input alias for environment_urls.
submitted_unix_ms yes NonNegativeInteger - Submitted unix ms. A whole number greater than or equal to zero.
admission no OpenEnvRunAdmission - Admission. Bounded FIFO execution admission for one persisted OpenEnv workflow. Sequence is stable across restart; queue position is one-based and present only while waiting.
finished_unix_ms no NonNegativeInteger - Finished unix ms. A whole number greater than or equal to zero.
progress yes OpenEnvRunProgress - Progress. Bounded group and episode progress for one OpenEnv run.
rollout_stats no OpenEnvRolloutStats - Rollout stats. Artifact-published OpenEnv reward, terminal-outcome, recovery, environment-work, and policy-cost statistics.
environments no array<OpenEnvIdentity> - Environments.
artifacts no array<OpenEnvArtifact> - Artifacts.
training_job_id no String - Training job ID. A text string.
training_contract no OpenEnvTrainingContract - Training contract. Immutable materialized native GRPO and optional post-evaluation settings admitted before OpenEnv collection.
training_submission no TrainingResponse - Training submission. Receipt returned after Kiln validates and queues a training request.
training no OpenEnvTrainingStatus - Training. Authoritative bounded projection of the native trainer and its admitted corpus lineage owned by an OpenEnv run.
post_evaluations no array<OpenEnvPostEvalStatus> - Post evaluations.
warnings no array<NonEmptyString> - Warnings.
environment_evaluation no OpenEnvEnvironmentEvalStatus - Environment evaluation. Authoritative paired held-out environment evaluation status and promotion result.
failure no OpenEnvRunFailure - Failure. Bounded, self-contained terminal diagnosis retained with an OpenEnv run. Protocol and HTTP evidence are present only when supplied by the environment.
error no String - Error. A text string.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "allOf": [
    {
      "if": {
        "required": [
          "schema"
        ],
        "properties": {
          "schema": {
            "enum": [
              "kiln.openenv-run.v4",
              "kiln.openenv-run.v5"
            ]
          }
        }
      },
      "then": {
        "required": [
          "admission"
        ]
      }
    },
    {
      "if": {
        "required": [
          "schema",
          "state"
        ],
        "properties": {
          "schema": {
            "enum": [
              "kiln.openenv-run.v4",
              "kiln.openenv-run.v5"
            ]
          },
          "state": {
            "const": "queued"
          }
        }
      },
      "then": {
        "properties": {
          "admission": {
            "required": [
              "queue_position"
            ]
          }
        }
      }
    },
    {
      "if": {
        "required": [
          "schema",
          "kind"
        ],
        "properties": {
          "schema": {
            "const": "kiln.openenv-run.v5"
          },
          "kind": {
            "const": "train"
          }
        }
      },
      "then": {
        "required": [
          "training_contract"
        ]
      }
    },
    {
      "if": {
        "required": [
          "schema",
          "kind"
        ],
        "properties": {
          "schema": {
            "const": "kiln.openenv-run.v5"
          },
          "kind": {
            "const": "rollout"
          }
        }
      },
      "then": {
        "not": {
          "required": [
            "training_contract"
          ]
        }
      }
    },
    {
      "if": {
        "required": [
          "schema"
        ],
        "properties": {
          "schema": {
            "enum": [
              "kiln.openenv-run.v1",
              "kiln.openenv-run.v2",
              "kiln.openenv-run.v3",
              "kiln.openenv-run.v4"
            ]
          }
        }
      },
      "then": {
        "not": {
          "required": [
            "training_contract"
          ]
        }
      }
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvRunStatus",
  "x-kiln-semantic-constraints": [
    "v4 and v5 status always include admission",
    "admission.sequence is stable and determines exact FIFO order across restart",
    "v4 and v5 queued status include a live one-based queue_position",
    "after admission, queue_position is omitted and admitted_unix_ms plus queue_wait_ms remain stable",
    "v5 train status contains the immutable preflighted training_contract and executes from it",
    "v5 rollout status omits training_contract",
    "v1 through v4 status predates training_contract and omits it",
    "new failed runs carry failure as the stable diagnosis while error remains a compatibility projection"
  ]
}
OpenEnvSchemaJSON Schemas for OpenEnv actions, observations, and state.3 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
action yes AnyJson - Action. Any valid JSON value.
observation yes AnyJson - Observation. Any valid JSON value.
state yes AnyJson - State. Any valid JSON value.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_openenv::OpenEnvSchema"
}
OpenEnvTaskApiSupportWhether the selected environment exposes a TaskProvider. HTTP 501 maps to unsupported without making the environment incompatible.0 fields

Type: string. Constraints: enum "available", "unsupported".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_openenv::OpenEnvTaskApiSupport"
}
OpenEnvTaskCatalogBounded Task API catalog. Arbitrary task rows are untrusted discovery data and have no protocol-defined reset semantics.8 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
environment_name yes NonEmptyString - Environment name. A text string containing at least one character.
task_api yes OpenEnvTaskApiSupport - Task API. Whether the selected environment exposes a TaskProvider. HTTP 501 maps to unsupported without making the environment incompatible.
splits yes array<OpenEnvTaskSplit> - Splits.
selected_split no NonEmptyString - Selected split. A text string containing at least one character.
num_tasks no NonNegativeInteger - Num tasks. A whole number greater than or equal to zero.
start no NonNegativeInteger - Start. A whole number greater than or equal to zero.
stop no NonNegativeInteger - Stop. A whole number greater than or equal to zero.
tasks no array<AnyJson> maximum items 200 Tasks.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_openenv::OpenEnvTaskCatalog",
  "x-kiln-semantic-constraints": [
    "unsupported catalogs have no selected split or task page",
    "task rows are never automatically mapped into WebSocket reset data"
  ]
}
OpenEnvTaskCatalogEntryOne canonical OpenEnv origin and its bounded Task API result.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
base_url yes NonEmptyString - Base URL. A text string containing at least one character.
catalog yes OpenEnvTaskCatalog - Catalog. Bounded Task API catalog. Arbitrary task rows are untrusted discovery data and have no protocol-defined reset semantics.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvTaskCatalogEntry"
}
OpenEnvTaskCatalogRequestDiscover Task API support and optionally request one bounded task page from each OpenEnv server. `environments` is accepted as an input alias.6 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
environment_urls yes array<NonEmptyString> minimum items 1 Environment urls.
credential_ids no array<string | null> - Credential IDs.
environment_name no NonEmptyString - Environment name. A text string containing at least one character.
split no NonEmptyString - Split. A text string containing at least one character.
start no NonNegativeInteger - Start. A whole number greater than or equal to zero.
limit no integer default 50; minimum 1; maximum 200 Limit.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-input-aliases": {
    "environments": "environment_urls"
  },
  "x-kiln-rust-type": "OpenEnvTaskCatalogRequest",
  "x-kiln-semantic-constraints": [
    "credential_ids is empty or has exactly one handle/null entry per environment_urls item",
    "environment_name may be omitted only when each server advertises exactly one environment",
    "omitting split returns split discovery without task rows"
  ]
}
OpenEnvTaskCatalogResponseBounded Task API discovery results for the requested OpenEnv servers.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes any const "kiln.openenv-task-catalog.v1" Schema.
catalogs yes array<OpenEnvTaskCatalogEntry> minimum items 1 Catalogs.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvTaskCatalogResponse"
}
OpenEnvTaskSplitOne provider-authored OpenEnv Task API split. Unknown provider fields are preserved.2 fields

Type: object.

Field Required Type Constraints and default Description
name yes NonEmptyString - Name. A text string containing at least one character.
type yes NonEmptyString - Type. A text string containing at least one character.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "additionalProperties": {}
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_openenv::OpenEnvTaskSplit",
  "x-kiln-unknown-field-policy": "preserved"
}
OpenEnvTerminationCountsV1Corpus counts for each explicit OpenEnv episode termination class.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
done yes NonNegativeInteger - Done. A whole number greater than or equal to zero.
max_steps yes NonNegativeInteger - Max steps. A whole number greater than or equal to zero.
invalid_model_action yes NonNegativeInteger - Invalid model action. A whole number greater than or equal to zero.
protocol_error yes NonNegativeInteger - Protocol error. A whole number greater than or equal to zero.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpenEnvTerminationCountsV1"
}
OpenEnvTrainingCapacitySnapshotPoint-in-time native trainer capacity observed during OpenEnv preflight; it is not a reservation.5 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
checked_unix_ms yes NonNegativeInteger - Checked unix ms. A whole number greater than or equal to zero.
queued_jobs yes NonNegativeInteger - Queued jobs. A whole number greater than or equal to zero.
max_queued_jobs yes PositiveInteger - Max queued jobs. A whole number greater than or equal to one.
tracked_jobs yes NonNegativeInteger - Tracked jobs. A whole number greater than or equal to zero.
max_tracked_jobs yes PositiveInteger - Max tracked jobs. A whole number greater than or equal to one.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvTrainingCapacitySnapshot"
}
OpenEnvTrainingContractImmutable materialized native GRPO and optional post-evaluation settings admitted before OpenEnv collection.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes any const "kiln.openenv-training-contract.v1" Schema.
effective_config yes GrpoConfig - Effective config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration.
post_eval no PostEvalConfig - Post eval. Optional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate.
behavior_policy no RolloutBehaviorPolicyIdentityV1 - Behavior policy. See kiln-inference-v1.schema.json#/$defs/RolloutBehaviorPolicyIdentityV1.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvTrainingContract"
}
OpenEnvTrainingDataProvenanceV1Validated semantic identity for an all-OpenEnv GRPO training corpus.11 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes any const "kiln.openenv-training-data.v1" Schema.
groups yes PositiveInteger - Groups. A whole number greater than or equal to one.
rollouts yes PositiveInteger - Rollouts. A whole number greater than or equal to one.
unique_seeds yes PositiveInteger - Unique seeds. A whole number greater than or equal to one.
seed_min yes DecimalU64 - Seed min. An unsigned 64-bit integer encoded as decimal text to preserve exact values.
seed_max yes DecimalU64 - Seed max. An unsigned 64-bit integer encoded as decimal text to preserve exact values.
total_steps yes NonNegativeInteger - Total steps. A whole number greater than or equal to zero.
terminations yes OpenEnvTerminationCountsV1 - Terminations. Corpus counts for each explicit OpenEnv episode termination class.
group_plan_sha256 yes Sha256 - Group plan SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
behavior_policy no RolloutBehaviorPolicyIdentityV1 - Behavior policy. See kiln-inference-v1.schema.json#/$defs/RolloutBehaviorPolicyIdentityV1.
environments yes array<OpenEnvTrainingEnvironmentV1> minimum items 1 Environments.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpenEnvTrainingDataProvenanceV1",
  "x-kiln-semantic-constraints": [
    "every completion has OpenEnv provenance",
    "all candidates in a group share endpoint, schema, reset hash, and seed",
    "completion reward equals OpenEnv episode_return",
    "when present, one behavior-policy identity is shared by every completion",
    "per-environment and termination totals equal corpus totals"
  ]
}
OpenEnvTrainingEnvironmentV1One protocol endpoint and immutable schema identity represented in an OpenEnv training corpus.10 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
environment_name yes NonEmptyString - Environment name. A text string containing at least one character.
environment_base_url yes NonEmptyString - Environment base URL. A text string containing at least one character.
openapi_version no NonEmptyString - Openapi version. A text string containing at least one character.
discovery_sha256 no Sha256 - Discovery SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
environment_schema_sha256 yes Sha256 - Environment schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
action_schema_sha256 yes Sha256 - Action schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
groups yes PositiveInteger - Groups. A whole number greater than or equal to one.
rollouts yes PositiveInteger - Rollouts. A whole number greater than or equal to one.
total_steps yes NonNegativeInteger - Total steps. A whole number greater than or equal to zero.
terminations yes OpenEnvTerminationCountsV1 - Terminations. Corpus counts for each explicit OpenEnv episode termination class.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::OpenEnvTrainingEnvironmentV1"
}
OpenEnvTrainingPreflightReceiptSuccessful OpenEnv admission receipt containing the exact GRPO and optional post-evaluation contract the direct client must submit after collection.6 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
schema yes any const "kiln.openenv-training-preflight.v1" Schema.
effective_config yes GrpoConfig - Effective config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration.
post_eval no PostEvalConfig - Post eval. Optional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate.
behavior_policy yes RolloutBehaviorPolicyIdentityV1 - Behavior policy. See kiln-inference-v1.schema.json#/$defs/RolloutBehaviorPolicyIdentityV1.
capacity yes OpenEnvTrainingCapacitySnapshot - Capacity. Point-in-time native trainer capacity observed during OpenEnv preflight; it is not a reservation.
capacity_reserved yes any const false Capacity reserved.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvTrainingPreflightReceipt"
}
OpenEnvTrainingPreflightRequestSide-effect-free OpenEnv training intent checked before direct CLI collection. Kiln owns rollout-derived GRPO fields.5 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
adapter no NonEmptyString - Adapter. A text string containing at least one character.
output_adapter yes NonEmptyString - Output adapter. A text string containing at least one character.
training_config no GrpoConfig - Training config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration.
auto_load no Boolean - Auto load. Either true or false.
post_eval no PostEvalConfig - Post eval. Optional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvTrainingPreflightRequest"
}
OpenEnvTrainingStatusAuthoritative bounded projection of the native trainer and its admitted corpus lineage owned by an OpenEnv run.11 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
job_id yes NonEmptyString - Job ID. A text string containing at least one character.
state yes TrainingState - State. Training-job lifecycle state. Cancelled jobs are represented as failed with a cancellation error.
progress yes FiniteNumber - Progress. A finite JSON number.
current_loss no FiniteNumber - Current loss. A finite JSON number.
epoch no NonNegativeInteger - Epoch. A whole number greater than or equal to zero.
adapter_path no String - Adapter path. A text string.
training_data no TrainingDataProvenance - Training data. Dataset and split identity recorded when Kiln accepts the training request.
linked_eval_job_ids no array<String> - Linked eval job IDs.
post_eval_verdict no String - Post eval verdict. A text string.
gate_outcome no any enum "promoted", "kept", "regression", "demoted", "inconclusive", "error" Gate outcome.
error no String - Error. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "OpenEnvTrainingStatus"
}
OptimizerOptimizer selection and the settings accepted by each optimizer. Unknown optimizer settings are rejected.0 fields

Type: object | object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind"
      ],
      "properties": {
        "kind": {
          "const": "sgd"
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind"
      ],
      "properties": {
        "kind": {
          "const": "adam_w"
        },
        "beta1": {
          "$ref": "#/$defs/FiniteNumber"
        },
        "beta2": {
          "$ref": "#/$defs/FiniteNumber"
        },
        "eps": {
          "$ref": "#/$defs/FiniteNumber"
        },
        "weight_decay": {
          "$ref": "#/$defs/FiniteNumber"
        }
      }
    },
    {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "kind"
      ],
      "properties": {
        "kind": {
          "const": "muon"
        },
        "momentum": {
          "$ref": "#/$defs/FiniteNumber"
        },
        "nesterov": {
          "$ref": "#/$defs/Boolean"
        },
        "ns_iters": {
          "$ref": "#/$defs/NonNegativeInteger"
        },
        "weight_decay": {
          "$ref": "#/$defs/FiniteNumber"
        }
      }
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::Optimizer"
}
PositiveIntegerA whole number greater than or equal to one.0 fields

Type: integer. Constraints: minimum 1.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "u64 | u32 | usize"
}
PostEvalConfigOptional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate.5 fields

Type: object.

Field Required Type Constraints and default Description
suite yes NonEmptyString - Suite. A text string containing at least one character.
data_scope no PostEvalDataScope - Data scope. Whether post-training evaluation is held out or an explicit train-set diagnostic.
generation no EvalGenerationParams - Generation. See kiln-evals-v1.schema.json#/$defs/EvalGenerationParams.
min_accuracy no UnitInterval - Min accuracy. A number from 0 through 1, inclusive.
include_baseline no Boolean - Include baseline. Either true or false.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "allOf": [
    {
      "if": {
        "required": [
          "data_scope"
        ],
        "properties": {
          "data_scope": {
            "const": "train-set-eval"
          }
        }
      },
      "then": {
        "not": {
          "required": [
            "min_accuracy"
          ]
        }
      }
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_eval::PostEvalConfig",
  "x-kiln-semantic-constraints": [
    "train-set-eval is diagnostic only and cannot set min_accuracy"
  ],
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
PostEvalDataScopeWhether post-training evaluation is held out or an explicit train-set diagnostic.0 fields

Type: string. Constraints: enum "held-out", "train-set-eval".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_eval::PostEvalDataScope"
}
PostEvalGateEvidenceStored paired-test and confidence-interval evidence for one post-training promotion decision.29 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
policy_version yes NonEmptyString - Policy version. A text string containing at least one character.
suite_policy yes NonEmptyString - Suite policy. A text string containing at least one character.
eval_job_id yes NonEmptyString - Eval job ID. A text string containing at least one character.
suite_name yes NonEmptyString - Suite name. A text string containing at least one character.
suite_hash yes NonEmptyString - Suite hash. A text string containing at least one character.
effective_generation_hash yes NonEmptyString - Effective generation hash. A text string containing at least one character.
baseline_adapter no String - Baseline adapter. A text string.
candidate_adapter yes NonEmptyString - Candidate adapter. A text string containing at least one character.
aggregation yes NonEmptyString - Aggregation. A text string containing at least one character.
minimum_paired_examples yes PositiveInteger - Minimum paired examples. A whole number greater than or equal to one.
paired_examples yes PositiveInteger - Paired examples. A whole number greater than or equal to one.
improved yes NonNegativeInteger - Improved. A whole number greater than or equal to zero.
regressed yes NonNegativeInteger - Regressed. A whole number greater than or equal to zero.
tied yes NonNegativeInteger - Tied. A whole number greater than or equal to zero.
exact_sign_test_p_value yes FiniteNumber - Exact sign test p value. A finite JSON number.
exact_sign_test_alpha yes FiniteNumber - Exact sign test alpha. A finite JSON number.
baseline_accuracy yes FiniteNumber - Baseline accuracy. A finite JSON number.
baseline_accuracy_lower_bound yes FiniteNumber - Baseline accuracy lower bound. A finite JSON number.
baseline_accuracy_upper_bound yes FiniteNumber - Baseline accuracy upper bound. A finite JSON number.
candidate_accuracy yes FiniteNumber - Candidate accuracy. A finite JSON number.
candidate_accuracy_lower_bound yes FiniteNumber - Candidate accuracy lower bound. A finite JSON number.
candidate_accuracy_upper_bound yes FiniteNumber - Candidate accuracy upper bound. A finite JSON number.
accuracy_confidence_level yes FiniteNumber - Accuracy confidence level. A finite JSON number.
minimum_accuracy yes FiniteNumber - Minimum accuracy. A finite JSON number.
required_relative_recovery no FiniteNumber - Required relative recovery. A finite JSON number.
relative_recovery_lower_bound no FiniteNumber - Relative recovery lower bound. A finite JSON number.
required_absolute_gain no FiniteNumber - Required absolute gain. A finite JSON number.
absolute_gain_lower_bound no FiniteNumber - Absolute gain lower bound. A finite JSON number.
outcome yes any enum "promoted", "kept", "regression", "demoted", "inconclusive", "error" Outcome.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::PostEvalGateEvidence"
}
PromptsSourceEither a registered dataset name or inline prompts for an OPD recipe step.0 fields

Type: object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "dataset"
      ],
      "properties": {
        "dataset": {
          "$ref": "#/$defs/NonEmptyString"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "prompts"
      ],
      "properties": {
        "prompts": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/OpdPrompt"
          },
          "minItems": 1
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "PromptsSource"
}
PublishPayloadOptional description and uploader label for a future library publication.2 fields

Type: object.

Field Required Type Constraints and default Description
description no String | null - Description.
uploader no String | null - Uploader.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "PublishPayload",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
PublishToLibraryResponseResult of validating that a local adapter has the receipt required for publication. No remote upload occurs.7 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
status yes any const "ready_to_publish" Status.
backend yes String - Backend. A text string.
intended_id yes NonEmptyString - Intended ID. A text string containing at least one character.
uploader yes String | null - Uploader.
description yes String | null - Description.
receipt_schema_version yes PositiveInteger - Receipt schema version. A whole number greater than or equal to one.
note yes String - Note. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-current-runtime-result": "contract_only_no_remote_upload",
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "PublishToLibraryResponse"
}
QueueResponseTraining jobs grouped into running, queued, and terminal collections.3 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
running yes TrainingStatus | null - Running.
queued yes array<QueueStatusEntry> - Queued.
completed yes array<TrainingStatus> - Completed.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "QueueResponse"
}
QueueStatusEntryOne queued training job and its first-in, first-out position.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
job_id yes NonEmptyString - Job ID. A text string containing at least one character.
job_type yes TrainingJobType - Job type. Training pipeline used by the job.
adapter_name yes String - Adapter name. A text string.
position yes PositiveInteger - Position. A whole number greater than or equal to one.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "QueueStatusEntry"
}
RecipeA named, inline sequence of training and post-evaluation steps.3 fields

Type: object.

Field Required Type Constraints and default Description
name yes NonEmptyString - Name. A text string containing at least one character.
description no String | null - Description.
steps yes array<RecipeStep> minimum items 1 Steps.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "Recipe",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
RecipeAdmissionDescriptorWhether the current server can run a built-in recipe and, if not, why.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
supported yes Boolean - Supported. Either true or false.
unavailable_reason yes String | null - Unavailable reason.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "RecipeAdmissionDescriptor"
}
RecipeDescriptorSummary of one built-in recipe and its current availability.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
name yes NonEmptyString - Name. A text string containing at least one character.
description yes String | null - Description.
num_steps yes NonNegativeInteger - Num steps. A whole number greater than or equal to zero.
admission yes RecipeAdmissionDescriptor - Admission. Whether the current server can run a built-in recipe and, if not, why.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "RecipeDescriptor"
}
RecipeRunRequestRun either a built-in recipe by name or an inline recipe body, with optional placeholder values.0 fields

Type: object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "recipe"
      ],
      "properties": {
        "recipe": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "inputs": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/AnyJson"
          }
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "body"
      ],
      "properties": {
        "body": {
          "$ref": "#/$defs/Recipe"
        },
        "inputs": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/AnyJson"
          }
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "RecipeRunRequest"
}
RecipeRunResponseJobs and effective seeds queued for one recipe run.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
recipe yes NonEmptyString - Recipe. A text string containing at least one character.
job_ids yes array<NonEmptyString> - Job IDs.
effective_seeds yes object - Effective seeds.
message yes String - Message. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "RecipeRunResponse"
}
RecipeStepOne training or post-evaluation step in a recipe.0 fields

Type: object | object | object | object | object | object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "name",
        "examples_from"
      ],
      "properties": {
        "kind": {
          "const": "sft"
        },
        "name": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "base_adapter": {
          "anyOf": [
            {
              "$ref": "#/$defs/String"
            },
            {
              "type": "null"
            }
          ]
        },
        "examples_from": {
          "$ref": "#/$defs/ExamplesSource"
        },
        "config": {
          "$ref": "#/$defs/SftConfig"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "name",
        "teacher",
        "prompts_from"
      ],
      "properties": {
        "kind": {
          "const": "opd"
        },
        "name": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "teacher": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "prompts_from": {
          "$ref": "#/$defs/PromptsSource"
        },
        "config": {
          "$ref": "#/$defs/OpdConfig"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "name",
        "sources"
      ],
      "properties": {
        "kind": {
          "const": "distill_merge"
        },
        "name": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "sources": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/DistillMergeSource"
          },
          "minItems": 1
        },
        "student": {
          "$ref": "#/$defs/String"
        },
        "rollout_budget": {
          "$ref": "#/$defs/PositiveInteger"
        },
        "config": {
          "$ref": "#/$defs/OpdConfig"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "name",
        "teacher",
        "mode"
      ],
      "properties": {
        "kind": {
          "const": "distill_pump"
        },
        "name": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "teacher": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "mode": {
          "$ref": "#/$defs/DistillPumpMode"
        },
        "config": {
          "$ref": "#/$defs/OpdConfig"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "name",
        "new_data",
        "behavioural_teacher"
      ],
      "properties": {
        "kind": {
          "const": "distill_refresh"
        },
        "name": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "new_data": {
          "$ref": "#/$defs/NewKnowledgeSource"
        },
        "behavioural_teacher": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "background_chat": {
          "$ref": "#/$defs/String"
        },
        "config": {
          "$ref": "#/$defs/OpdConfig"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "name",
        "mode"
      ],
      "properties": {
        "kind": {
          "const": "distill_self"
        },
        "name": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "mode": {
          "$ref": "#/$defs/SelfDistillMode"
        },
        "config": {
          "$ref": "#/$defs/OpdConfig"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "kind",
        "suite",
        "adapter",
        "require_min_score"
      ],
      "properties": {
        "kind": {
          "const": "post_eval"
        },
        "suite": {
          "$ref": "#/$defs/NonEmptyString"
        },
        "adapter": {
          "$ref": "#/$defs/String"
        },
        "require_min_score": {
          "$ref": "#/$defs/UnitInterval"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "RecipeStep"
}
RecipesListResponseAll built-in recipes and whether the current server can run each one.1 field

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
recipes yes array<RecipeDescriptor> - Recipes.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "RecipesListResponse"
}
RewardFilterOnEmptyWhat to do when reward-variance filtering retains too few groups.0 fields

Type: string. Constraints: enum "fail", "train-all", "skip".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::RewardFilterOnEmpty"
}
Rfc3339TimestampAn RFC 3339 timestamp.0 fields

Type: string. Constraints: format date-time.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "String"
}
RunStatusLifecycle state for an embedded agent run.0 fields

Type: string. Constraints: enum "queued", "running", "completed", "failed", "aborted", "timed_out", "interrupted".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "crate::agent_runs::RunStatus"
}
ScoredRolloutOne rewarded completion with optional trajectory, exact generation provenance, and OpenEnv episode identity.5 fields

Type: object.

Field Required Type Constraints and default Description
text yes String - Text. A text string.
reward yes FiniteNumber - Reward. A finite JSON number.
trajectory no array<TurnSegmentInput> - Trajectory.
provenance no RolloutProvenanceV1 - Provenance. See kiln-inference-v1.schema.json#/$defs/RolloutProvenanceV1.
openenv no OpenEnvRolloutProvenanceV1 - Openenv. Fail-closed environment, task, and outcome identity attached to a native OpenEnv rollout.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::ScoredRollout",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
SelfDistillModeSelf-distillation strategy for using information available only during training.0 fields

Type: string. Constraints: enum "ground_truth_conditioning", "conciseness", "document_as_pi", "reverse_teacher".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::SelfDistillMode"
}
SelfImproveRequestRequest to queue the phases of one agent self-improvement round.5 fields

Type: object.

Field Required Type Constraints and default Description
agent no NonEmptyString - Agent. A text string containing at least one character.
judge no NonEmptyString - Judge. A text string containing at least one character.
crisp no Boolean - Crisp. Either true or false.
config no OpdConfig - Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts.
post_eval no PostEvalConfig | null - Post eval.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "SelfImproveRequest",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
SelfImproveResponseJob IDs and seeds queued for one self-improvement round.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
job_ids yes array<NonEmptyString> minimum items 1 Job IDs.
effective_seeds yes object - Effective seeds.
state yes any const "queued" State.
message yes String - Message. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "SelfImproveResponse"
}
SftConfigNative SFT settings. Omitted fields use server defaults; unknown fields reject the request.20 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
training_profile no SftTrainingProfile - Training profile. Versioned identifier for the native SFT workflow.
invalid_row_policy no SftInvalidRowPolicy - Invalid row policy. Whether a malformed dataset row rejects the request or is skipped.
epochs no PositiveInteger - Epochs. A whole number greater than or equal to one.
learning_rate no FiniteNumber | null - Learning rate.
lora_rank no PositiveInteger - LoRA rank. A whole number greater than or equal to one.
lora_alpha no FiniteNumber - LoRA alpha. A finite JSON number.
train_mtp no Boolean | null - Train MTP.
base_adapter no String | null - Base adapter.
allow_adapter_shape_conversion no Boolean - Allow adapter shape conversion. Either true or false.
allow_high_lora_scale no Boolean - Allow high LoRA scale. Either true or false.
output_name no String | null - Output name.
auto_load no Boolean - Auto load. Either true or false.
checkpoint_interval no PositiveInteger | null - Checkpoint interval.
resume_checkpoint no String | null - Resume checkpoint.
grad_checkpoint_segments no PositiveInteger | null - Grad checkpoint segments.
detect_anomaly no Boolean - Detect anomaly. Either true or false.
seed no NonNegativeInteger | null - Seed.
optimizer no Optimizer - Optimizer. Optimizer selection and the settings accepted by each optimizer. Unknown optimizer settings are rejected.
adapter_smoke_test no Boolean - Adapter smoke test. Either true or false.
adapter_smoke_prompts no array<NonEmptyString> | null - Adapter smoke prompts.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::SftConfig"
}
SftExampleOne conversation submitted for supervised fine-tuning.1 field

Type: object.

Field Required Type Constraints and default Description
messages no array<TrainingChatMessageInput> - Messages.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::SftExample",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
SftInvalidRowPolicyWhether a malformed dataset row rejects the request or is skipped.0 fields

Type: string. Constraints: enum "fail", "skip".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::SftInvalidRowPolicy"
}
SftRequestSFT submission using exactly one inline, local-path, or registered-dataset source.6 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
examples no array<SftExample> minimum items 1 Examples.
dataset_path no String | null - Dataset path.
dataset no String | null - Dataset.
dataset_split no DatasetSplit - Dataset split. See kiln-evals-v1.schema.json#/$defs/DatasetSplit.
config no SftConfig - Config. Native SFT settings. Omitted fields use server defaults; unknown fields reject the request.
post_eval no PostEvalConfig | null - Post eval.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "allOf": [
    {
      "if": {
        "required": [
          "dataset_split"
        ]
      },
      "then": {
        "required": [
          "dataset"
        ],
        "properties": {
          "dataset": {
            "$ref": "#/$defs/NonEmptyString"
          }
        }
      }
    }
  ],
  "oneOf": [
    {
      "required": [
        "examples"
      ],
      "not": {
        "anyOf": [
          {
            "required": [
              "dataset_path"
            ],
            "properties": {
              "dataset_path": {
                "not": {
                  "type": "null"
                }
              }
            }
          },
          {
            "required": [
              "dataset"
            ],
            "properties": {
              "dataset": {
                "not": {
                  "type": "null"
                }
              }
            }
          }
        ]
      }
    },
    {
      "required": [
        "dataset_path"
      ],
      "properties": {
        "dataset_path": {
          "$ref": "#/$defs/NonEmptyString"
        }
      },
      "not": {
        "anyOf": [
          {
            "required": [
              "examples"
            ]
          },
          {
            "required": [
              "dataset"
            ],
            "properties": {
              "dataset": {
                "not": {
                  "type": "null"
                }
              }
            }
          }
        ]
      }
    },
    {
      "required": [
        "dataset"
      ],
      "properties": {
        "dataset": {
          "$ref": "#/$defs/NonEmptyString"
        }
      },
      "not": {
        "anyOf": [
          {
            "required": [
              "examples"
            ]
          },
          {
            "required": [
              "dataset_path"
            ],
            "properties": {
              "dataset_path": {
                "not": {
                  "type": "null"
                }
              }
            }
          }
        ]
      }
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "SftRequest",
  "x-kiln-semantic-constraints": [
    "server SFT rejects train_mtp=true",
    "dataset_split requires a registered named dataset and defaults to train"
  ]
}
SftTrainingProfileVersioned identifier for the native SFT workflow.0 fields

Type: string. Constraints: enum "native_online_lora_v1".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::SftTrainingProfile"
}
Sha256A lowercase SHA-256 digest prefixed with `sha256:`.0 fields

Type: string. Constraints: pattern ^sha256:[0-9a-f]{64}$.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "String"
}
StableOpdModeStable-OPD setting. Only `off` is currently executable.0 fields

Type: object | object | object.

Composition and conditional rules

The following JSON is copied exactly from this schema node.

{
  "oneOf": [
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "off"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "mode"
      ],
      "properties": {
        "mode": {
          "const": "auto"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    },
    {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "mode",
        "kl_beta",
        "sft_lambda"
      ],
      "properties": {
        "mode": {
          "const": "manual"
        },
        "kl_beta": {
          "$ref": "#/$defs/FiniteNumber"
        },
        "sft_lambda": {
          "$ref": "#/$defs/FiniteNumber"
        }
      },
      "x-kiln-unknown-field-policy": "accepted_and_ignored"
    }
  ]
}

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::StableOpdMode"
}
StringA text string.0 fields

Type: string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "String"
}
TerminalStatusResponseEmbedded-terminal security status, local `pi` path, working directory, and session state.6 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
enabled yes Boolean - Enabled. Either true or false.
disabled_reason yes String | null - Disabled reason.
pi_available yes Boolean - Pi available. Either true or false.
pi_path yes String | null - Pi path.
cwd yes String - Cwd. A text string.
session_active yes Boolean - Session active. Either true or false.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "TerminalStatusResponse"
}
TierDefaultsBuilt-in planning defaults for a coarse deployment tier. Tier names are presets, not hardware detection, measured performance classes, or device-specific tuning.15 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
tier yes any enum "laptop", "prosumer", "corporate" Tier.
default_logit_source yes String - Default logit source. A text string.
default_loss yes String - Default loss. A text string.
default_top_k yes PositiveInteger - Default top k. A whole number greater than or equal to one.
lora_rank yes PositiveInteger - LoRA rank. A whole number greater than or equal to one.
batch_size yes PositiveInteger - Batch size. A whole number greater than or equal to one.
samples_per_prompt_default yes PositiveInteger - Samples per prompt default. A whole number greater than or equal to one.
samples_per_prompt_data_multiplier yes PositiveInteger - Samples per prompt data multiplier. A whole number greater than or equal to one.
max_rollout_tokens yes PositiveInteger - Max rollout tokens. A whole number greater than or equal to one.
auto_checkpoint_cadence_steps yes PositiveInteger - Auto checkpoint cadence steps. A whole number greater than or equal to one.
cost_cap_default_usd yes FiniteNumber | null - Cost cap default usd.
cold_start_overlap_threshold yes UnitInterval - Cold start overlap threshold. A number from 0 through 1, inclusive.
mixture_distillation_golden_fraction yes UnitInterval - Mixture distillation golden fraction. A number from 0 through 1, inclusive.
eval_gate_required yes Boolean - Eval gate required. Either true or false.
notifications_channels yes array<String> - Notifications channels.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "TierDefaults"
}
TierDefaultsListResponseAll built-in deployment-tier presets.1 field

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
tiers yes array<TierDefaults> minimum items 3 Tiers.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "TierDefaultsListResponse"
}
TierDefaultsResponseOne requested preset and its built-in planning defaults.2 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
tier yes any enum "laptop", "prosumer", "corporate" Tier.
defaults yes TierDefaults - Defaults. Built-in planning defaults for a coarse deployment tier. Tier names are presets, not hardware detection, measured performance classes, or device-specific tuning.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "TierDefaultsResponse"
}
TraceOutcomeOutcome signals inferred from a `pi` session. These values are best-effort observations, not verified success criteria.3 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
ended_with_exit_0 yes Boolean | null - Ended with exit 0.
user_edited_agent_files yes array<String> - User edited agent files.
has_followup_attempt yes Boolean | null - Has followup attempt.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "TraceOutcome"
}
TrainingChatMessageInputA chat message accepted by training endpoints. `content` may be text, null, or a structured content-parts array; structured arrays are converted to text before training.5 fields

Type: object.

Field Required Type Constraints and default Description
role yes String - Role. A text string.
content no String | null | array<AnyJson> - Content.
tool_calls no array<AnyJson> | null - Tool calls.
name no String | null - Name.
tool_call_id no String | null - Tool call ID.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_core::tokenizer::ChatMessage",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
TrainingChatMessageOutputA normalized chat message returned by Kiln.5 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
role yes String - Role. A text string.
content yes String - Content. A text string.
tool_calls no array<AnyJson> - Tool calls.
name no String - Name. A text string.
tool_call_id no String - Tool call ID. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_core::tokenizer::ChatMessage"
}
TrainingCheckpointSummarySummary of the newest checkpoint whose manifest is valid and can be resumed.16 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
resume_checkpoint yes NonEmptyString - Resume checkpoint. A text string containing at least one character.
checkpoint_id yes NonEmptyString - Checkpoint ID. A text string containing at least one character.
training_kind yes TrainingKind - Training kind. Training workflow recorded in a checkpoint.
data_source_kind yes String - Data source kind. A text string.
global_step yes NonNegativeInteger - Global step. A whole number greater than or equal to zero.
total_steps yes NonNegativeInteger - Total steps. A whole number greater than or equal to zero.
next_epoch_index yes NonNegativeInteger - Next epoch index. A whole number greater than or equal to zero.
next_cursor_in_epoch yes NonNegativeInteger - Next cursor in epoch. A whole number greater than or equal to zero.
complete yes Boolean - Complete. Either true or false.
created_at yes Rfc3339Timestamp - Created at. An RFC 3339 timestamp.
effective_config yes AnyJson - Effective config. Any valid JSON value.
data_content_sha256 yes Sha256 - Data content SHA-256. A lowercase SHA-256 digest prefixed with sha256:.
data_item_count yes NonNegativeInteger - Data item count. A whole number greater than or equal to zero.
teacher_id no String - Teacher ID. A text string.
teacher_identity_revision no String - Teacher identity revision. A text string.
teacher_content_revision no String - Teacher content revision. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "TrainingCheckpointSummary"
}
TrainingDataProvenanceDataset and split identity recorded when Kiln accepts the training request.8 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
source yes NonEmptyString - Source. A text string containing at least one character.
dataset no NonEmptyString - Dataset. A text string containing at least one character.
split no DatasetSplit - Split. See kiln-evals-v1.schema.json#/$defs/DatasetSplit.
dataset_corpus_sha256 no Sha256Digest - Dataset corpus SHA-256. See kiln-evals-v1.schema.json#/$defs/Sha256Digest.
split_manifest_sha256 no Sha256Digest - Split manifest SHA-256. See kiln-evals-v1.schema.json#/$defs/Sha256Digest.
admitted_corpus_sha256 yes Sha256Digest - Admitted corpus SHA-256. See kiln-evals-v1.schema.json#/$defs/Sha256Digest.
rows yes NonNegativeInteger - Rows. A whole number greater than or equal to zero.
openenv no OpenEnvTrainingDataProvenanceV1 - Openenv. Validated semantic identity for an all-OpenEnv GRPO training corpus.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::TrainingDataProvenance"
}
TrainingJobDetailDetailed job status with its loss curve, receipts, replay request, linked evals, and newest checkpoint.26 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
job_id yes NonEmptyString - Job ID. A text string containing at least one character.
state yes TrainingState - State. Training-job lifecycle state. Cancelled jobs are represented as failed with a cancellation error.
progress yes FiniteNumber - Progress. A finite JSON number.
current_loss yes FiniteNumber | null - Current loss.
adapter_name yes String | null - Adapter name.
effective_seed no DecimalU64 - Effective seed. An unsigned 64-bit integer encoded as decimal text to preserve exact values.
started_at yes String - Started at. A text string.
elapsed_secs yes FiniteNumber - Elapsed secs. A finite JSON number.
submitted_unix_ms no NonNegativeInteger - Submitted unix ms. A whole number greater than or equal to zero.
finished_unix_ms no NonNegativeInteger - Finished unix ms. A whole number greater than or equal to zero.
job_type no TrainingJobType - Job type. Training pipeline used by the job.
training_data no TrainingDataProvenance - Training data. Dataset and split identity recorded when Kiln accepts the training request.
error no String - Error. A text string.
post_eval_verdict no String - Post eval verdict. A text string.
gate_outcome no any enum "promoted", "kept", "regression", "demoted", "inconclusive", "error" Gate outcome.
post_eval_gate_evidence no array<PostEvalGateEvidence> - Post eval gate evidence.
epoch yes NonNegativeInteger | null - Epoch.
adapter_path yes String | null - Adapter path.
auto_load yes Boolean - Auto load. Either true or false.
linked_eval_job_ids yes array<String> - Linked eval job IDs.
loss_history yes array<TrainingLossSample> - Loss history.
train_receipt yes AnyJson | null - Train receipt.
replay_request yes AnyJson | null - Replay request.
latest_checkpoint yes TrainingCheckpointSummary | null - Latest checkpoint.
checkpoint_error yes String | null - Checkpoint error.
metadata_error yes String | null - Metadata error.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "TrainingJobDetail"
}
TrainingJobTypeTraining pipeline used by the job.0 fields

Type: string. Constraints: enum "sft", "grpo", "opd".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "crate::state::TrainingJobType"
}
TrainingKindTraining workflow recorded in a checkpoint.0 fields

Type: string. Constraints: enum "sft", "grpo", "opd", "capability-distillation".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::checkpoint::TrainingKind"
}
TrainingLossSampleOne retained sample from the live training-loss curve.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
epoch yes NonNegativeInteger - Epoch. A whole number greater than or equal to zero.
progress yes FiniteNumber - Progress. A finite JSON number.
loss yes FiniteNumber - Loss. A finite JSON number.
elapsed_secs yes FiniteNumber - Elapsed secs. A finite JSON number.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "crate::state::TrainingLossSample"
}
TrainingResponseReceipt returned after Kiln validates and queues a training request.4 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
job_id yes NonEmptyString - Job ID. A text string containing at least one character.
state yes any const "queued" State.
effective_seed yes DecimalU64 - Effective seed. An unsigned 64-bit integer encoded as decimal text to preserve exact values.
message yes String - Message. A text string.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "TrainingResponse"
}
TrainingStateTraining-job lifecycle state. Cancelled jobs are represented as `failed` with a cancellation error.0 fields

Type: string. Constraints: enum "queued", "running", "completed", "failed".

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::TrainingState"
}
TrainingStatusCurrent or archived status for one training job.16 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
job_id yes NonEmptyString - Job ID. A text string containing at least one character.
state yes TrainingState - State. Training-job lifecycle state. Cancelled jobs are represented as failed with a cancellation error.
progress yes FiniteNumber - Progress. A finite JSON number.
current_loss yes FiniteNumber | null - Current loss.
adapter_name yes String | null - Adapter name.
effective_seed no DecimalU64 - Effective seed. An unsigned 64-bit integer encoded as decimal text to preserve exact values.
started_at yes String - Started at. A text string.
elapsed_secs yes FiniteNumber - Elapsed secs. A finite JSON number.
submitted_unix_ms no NonNegativeInteger - Submitted unix ms. A whole number greater than or equal to zero.
finished_unix_ms no NonNegativeInteger - Finished unix ms. A whole number greater than or equal to zero.
job_type no TrainingJobType - Job type. Training pipeline used by the job.
training_data no TrainingDataProvenance - Training data. Dataset and split identity recorded when Kiln accepts the training request.
error no String - Error. A text string.
post_eval_verdict no String - Post eval verdict. A text string.
gate_outcome no any enum "promoted", "kept", "regression", "demoted", "inconclusive", "error" Gate outcome.
post_eval_gate_evidence no array<PostEvalGateEvidence> - Post eval gate evidence.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "TrainingStatus"
}
TurnSegmentInputOne context, model-action, or environment-observation segment accepted by training.5 fields

Type: object.

Field Required Type Constraints and default Description
role yes String - Role. A text string.
content yes String - Content. A text string.
kind no any enum "context", "action", "observation" Kind.
tool_call_id no String - Tool call ID. A text string.
warning_prefix_len no NonNegativeInteger - Warning prefix len. A whole number greater than or equal to zero.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::TurnSegment",
  "x-kiln-unknown-field-policy": "accepted_and_ignored"
}
TurnSegmentOutputOne normalized trajectory segment returned by Kiln.5 fields

Type: object. Constraints: closed object.

Field Required Type Constraints and default Description
role yes String - Role. A text string.
content yes String - Content. A text string.
kind yes any enum "context", "action", "observation" Kind.
tool_call_id no String - Tool call ID. A text string.
warning_prefix_len no NonNegativeInteger - Warning prefix len. A whole number greater than or equal to zero.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "kiln_train::TurnSegment"
}
UnitIntervalA number from 0 through 1, inclusive.0 fields

Type: number. Constraints: minimum 0; maximum 1.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "f32 | f64"
}
Vec_TrainingStatusAll training statuses Kiln currently retains.0 fields

Type: array<TrainingStatus>.

Kiln contract annotations

These machine-readable annotations are copied exactly from this schema node.

{
  "x-kiln-field-schema-status": "complete",
  "x-kiln-rust-type": "Vec<TrainingStatus>"
}