{"name":"train","stage":"ga","description":"Package train is the cloud's one training endpoint, /v1/train (HIP-1333): clients the caller drives on the engine, and jobs the org's linked machines or Hanzo's executor run, whose adaptation, protection, objective and output are fields and whose artifacts, bases and evaluations are what they produce.","operations":[{"operationId":"capabilitiesList","method":"GET","href":"/v1/capabilities","summary":"Answers the org's capabilities by name, each with its state, its latest and installed versions, and what the installed one did live."},{"operationId":"capabilitiesCreate","method":"POST","href":"/v1/capabilities","summary":"Makes a capability in draft from captured corrections of one question: that question (its key, type and labels) is the route it will be installed behind."},{"operationId":"capabilitiesCapture","method":"GET","href":"/v1/capabilities/capture","summary":"Answers whether the org's Kai decisions keep their states for its capabilities to learn from."},{"operationId":"capabilitiesSetCapture","method":"PUT","href":"/v1/capabilities/capture","summary":"Turns capture on or off for the org's Kai decisions from the next one."},{"operationId":"capabilitiesCorrections","method":"GET","href":"/v1/capabilities/corrections","summary":"Answers every correction of the org's decisions, newest first, each captured (it can teach) or missing (its decision was made with capture off), and the questions they ask, each counted: what a capability is made from."},{"operationId":"capabilitiesDelete","method":"DELETE","href":"/v1/capabilities/{name}","summary":"Deletes a capability and its versions; their artifacts go with the org's retention."},{"operationId":"capabilitiesGet","method":"GET","href":"/v1/capabilities/{name}","summary":"Answers one capability: its versions with their evaluations, newest first, and what its installed version did live."},{"operationId":"capabilitiesDisable","method":"POST","href":"/v1/capabilities/{name}/disable","summary":"Takes a capability's installed version out of the org's published set: its questions are answered by base Kai, bit for bit, from the next decision."},{"operationId":"capabilitiesPublish","method":"POST","href":"/v1/capabilities/{name}/publish","summary":"Installs a version in the org's published set, where ai attaches it to the org's decisions: the version's evaluation must have passed, and it must have been taught over the base Kai serves now."},{"operationId":"capabilitiesRollback","method":"POST","href":"/v1/capabilities/{name}/rollback","summary":"Puts the version installed before the installed one back in the org's published set: exactly that version's artifact, nothing retrained."},{"operationId":"capabilitiesTrain","method":"POST","href":"/v1/capabilities/{name}/train","summary":"Teaches a capability a new version from its corrections, on the CPU over the states its org's decisions captured: no row is encoded again."},{"operationId":"get_train_artifacts","method":"GET","href":"/v1/train/artifacts","summary":"Answers the org's objects — its uploads and its jobs' outputs, one per sha256 — with what produced each, whether it is published and when retention deletes it."},{"operationId":"post_train_artifacts","method":"POST","href":"/v1/train/artifacts","summary":"Records rows the org is about to upload, named by the SHA-256 of their bytes, and answers the same grant an executor's artifact gets: a presigned PUT S3 accepts only with that checksum and length, encrypted under the org's key — a PUT per 64 MiB part over 64 MiB — or stored: true when the org already holds those bytes."},{"operationId":"delete_train_artifacts_by_sha256","method":"DELETE","href":"/v1/train/artifacts/{sha256}","summary":"Deletes one of the org's objects — an upload or a job's output — from the store: every artifact naming it then reads deleted, and its storage is no longer billed."},{"operationId":"get_train_artifacts_by_sha256","method":"GET","href":"/v1/train/artifacts/{sha256}","summary":"Answers one of the org's objects, as the list does, with an address that fetches its bytes for ten minutes once it is stored: how an executor reads an `artifact:\u003csha256\u003e` dataset its job names, and how the org downloads what it uploaded."},{"operationId":"get_train_clients","method":"GET","href":"/v1/train/clients","summary":"Answers the org's live clients as the engine reports them."},{"operationId":"post_train_clients","method":"POST","href":"/v1/train/clients","summary":"Loads base_model on the engine with a LoRA adapter and answers the client, loading; poll it until ready."},{"operationId":"delete_train_clients_by_id","method":"DELETE","href":"/v1/train/clients/{id}","summary":"Drops one of the org's clients and frees its memory on the engine."},{"operationId":"get_train_clients_by_id","method":"GET","href":"/v1/train/clients/{id}","summary":"Answers one of the org's clients with its loss history."},{"operationId":"post_train_clients_by_id_forward_backward","method":"POST","href":"/v1/train/clients/{id}/forward_backward","summary":"Accumulates the gradients of a batch on the client."},{"operationId":"post_train_clients_by_id_optim_step","method":"POST","href":"/v1/train/clients/{id}/optim_step","summary":"Applies the optimizer to the accumulated gradients."},{"operationId":"post_train_clients_by_id_sample","method":"POST","href":"/v1/train/clients/{id}/sample","summary":"Decodes from the client's current weights."},{"operationId":"post_train_clients_by_id_save_weights","method":"POST","href":"/v1/train/clients/{id}/save_weights","summary":"Writes the client's adapter on the engine."},{"operationId":"get_train_jobs","method":"GET","href":"/v1/train/jobs","summary":"Answers the org's jobs, newest first, narrowed by ?status=."},{"operationId":"post_train_jobs","method":"POST","href":"/v1/train/jobs","summary":"Creates a job that teaches base_model one capability: the data, the objective, how the trained parameters are represented (adaptation), what they must not damage and by how much (protect), where it runs and how far (resources), the suites it is judged on (evaluation) and what it produces (output)."},{"operationId":"post_train_jobs_claim","method":"POST","href":"/v1/train/jobs/claim","summary":"ClaimTrainTask is an executor's long poll for work: it names the machine it runs on, its devices and what its build runs, and is answered, within 25 seconds, one task it can run — a job's lead first; a join once its lead has said where it coordinates — or 204."},{"operationId":"get_train_jobs_by_id","method":"GET","href":"/v1/train/jobs/{id}","summary":"Answers one job: what it asked for, its status and tasks, its artifacts, its result and verdict, and whether it was published."},{"operationId":"get_train_jobs_by_id_artifacts","method":"GET","href":"/v1/train/jobs/{id}/artifacts","summary":"Answers a job's artifacts — checkpoint, capability, lora, basis or merged, each named by the SHA-256 of its bytes — with a download address that lives ten minutes for each one stored."},{"operationId":"post_train_jobs_by_id_artifacts","method":"POST","href":"/v1/train/jobs/{id}/artifacts","summary":"Records an output its executor is about to store, named by the SHA-256 of its bytes, and answers a presigned PUT for exactly that object under the org's prefix — S3 accepts it only with the checksum and encrypts it under the org's key — or, over 64 MiB, a presigned PUT per 64 MiB part, or stored: true when the org already holds those bytes."},{"operationId":"post_train_jobs_by_id_cancel","method":"POST","href":"/v1/train/jobs/{id}/cancel","summary":"Stops a job that has not ended."},{"operationId":"get_train_jobs_by_id_events","method":"GET","href":"/v1/train/jobs/{id}/events","summary":"Answers a job's events after a cursor — status changes, the coordinator's address, metrics, log lines, artifacts and the result — waiting up to `wait` seconds for the first new one, so a caller following a run holds one request at a time."},{"operationId":"post_train_jobs_by_id_events","method":"POST","href":"/v1/train/jobs/{id}/events","summary":"ReportTrainTask is an executor's report for the task it holds: status changes, the lead's coordinator address, metrics, log lines, stored artifacts and, last, the lead's result."},{"operationId":"get_train_jobs_by_id_metrics","method":"GET","href":"/v1/train/jobs/{id}/metrics","summary":"Answers a job's metric series — loss, throughput and each validation suite's numbers as the executor reported them — one per name, each point [step, value, unix seconds]."},{"operationId":"post_train_jobs_by_id_publish","method":"POST","href":"/v1/train/jobs/{id}/publish","summary":"Publishes a job's output under a name."},{"operationId":"get_train_models","method":"GET","href":"/v1/train/models","summary":"Answers each base the caller can train today, in one shape: the base, the methods it trains by (adaptations), where it runs (runs: Hanzo's devices or the org's machines) with what one device-second costs there in nano-USD, then the resources that run it (nouns), its executor and devices, and the protections, objective terms, outputs and dataset schemes it takes."}],"_links":{"describedby":{"href":"/v1/openapi.json?capability=train"},"self":{"href":"/v1/train"},"up":{"href":"/v1"}}}