{"openapi":"3.1.0","info":{"title":"ColabHive Builder APIs","description":"Builder APIs for model training, deployment, and inference","version":"1.1.0"},"paths":{"/":{"get":{"summary":"Root","description":"Service root endpoint.","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}}},"security":[]}},"/api/builder/v1/health":{"get":{"tags":["health"],"summary":"Health Check","description":"Health check endpoint.","operationId":"health_check_api_builder_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}}},"security":[]}},"/api/builder/v1/capabilities":{"get":{"tags":["health"],"summary":"List Capabilities","description":"List supported model capabilities.","operationId":"list_capabilities_api_builder_v1_capabilities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}}},"security":[]}},"/api/builder/v1/datasets":{"get":{"tags":["datasets"],"summary":"List Datasets","description":"List datasets for account.","operationId":"list_datasets_api_builder_v1_datasets_get","parameters":[{"name":"account_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","description":"Account ID","title":"Account Id"},"description":"Account ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]},"post":{"tags":["datasets"],"summary":"Create Dataset","description":"Create dataset.","operationId":"create_dataset_api_builder_v1_datasets_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/datasets/upload":{"post":{"tags":["datasets"],"summary":"Upload Dataset","description":"Upload dataset file directly.\n\nThis endpoint proxies to training-scheduler's /api/v1/datasets/upload\nwhich handles the entire upload flow (file storage + dataset creation).","operationId":"upload_dataset_api_builder_v1_datasets_upload_post","parameters":[{"name":"X-Dataset-Name","in":"header","required":true,"schema":{"type":"string","title":"X-Dataset-Name"}},{"name":"X-Domain","in":"header","required":false,"schema":{"type":"string","default":"text","title":"X-Domain"}},{"name":"X-Description","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Description"}},{"name":"X-Account-ID","in":"header","required":true,"schema":{"type":"string","title":"X-Account-Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_dataset_api_builder_v1_datasets_upload_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/datasets/{dataset_id}":{"get":{"tags":["datasets"],"summary":"Get Dataset","description":"Get dataset by ID.","operationId":"get_dataset_api_builder_v1_datasets__dataset_id__get","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]},"delete":{"tags":["datasets"],"summary":"Delete Dataset","description":"Delete dataset by ID.","operationId":"delete_dataset_api_builder_v1_datasets__dataset_id__delete","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/datasets/{dataset_id}/uploads/init":{"post":{"tags":["datasets"],"summary":"Init Dataset Upload","description":"Initialize dataset upload (get signed URL).","operationId":"init_dataset_upload_api_builder_v1_datasets__dataset_id__uploads_init_post","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"file_name","in":"query","required":true,"schema":{"type":"string","title":"File Name"}},{"name":"multipart","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Multipart"}},{"name":"expected_checksum","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Checksum"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/datasets/{dataset_id}/uploads/{upload_id}/commit":{"post":{"tags":["datasets"],"summary":"Commit Dataset Upload","description":"Commit dataset upload (finalize).","operationId":"commit_dataset_upload_api_builder_v1_datasets__dataset_id__uploads__upload_id__commit_post","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dataset Id"}},{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Upload Id"}},{"name":"actual_checksum","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actual Checksum"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/runs":{"post":{"tags":["training"],"summary":"Create Training Run","description":"Create training run.\n\nSupports RETRAIN-ON-TOP via the first-class `base` (ArtifactRef) and\n`parent_job_id` fields (design 4.3). `base.type=model_version|job|storage`\nstages the resolved artifact as the base (node injects\nbase_model=/staged/base); `base.type=hf` or omitted keeps current behavior.","operationId":"create_training_run_api_builder_v1_training_runs_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingRunCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]},"get":{"tags":["training"],"summary":"List Training Runs","description":"List training runs for account.","operationId":"list_training_runs_api_builder_v1_training_runs_get","parameters":[{"name":"account_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/merges":{"post":{"tags":["training"],"summary":"Create Merge","description":"MERGE — merge de N modelos/adapters en un base → nuevo model_version full.\n\n(design 4.2) Resuelve las referencias de catálogo (validando ownership por el\nmecanismo de visibilidad existente), arma stage_artifacts, y hace proxy al\nscheduler con job_type='merge'. El merge es aritmética de pesos (CPU): no\nconsume GPU. El resultado es un model_version normal (framework transformers,\nprecision bf16), servible y reusable como base — con linaje.","operationId":"create_merge_api_builder_v1_training_merges_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/runs/{run_id}":{"get":{"tags":["training"],"summary":"Get Training Run","description":"Get training run by ID.","operationId":"get_training_run_api_builder_v1_training_runs__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]},"delete":{"tags":["training"],"summary":"Delete Training Run","description":"Delete training run (cascade, supports force).","operationId":"delete_training_run_api_builder_v1_training_runs__run_id__delete","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Force"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/runs/{run_id}/logs":{"get":{"tags":["training"],"summary":"Get Training Logs","description":"Get training run logs.","operationId":"get_training_logs_api_builder_v1_training_runs__run_id__logs_get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"follow","in":"query","required":false,"schema":{"type":"boolean","description":"Not implemented: passing true returns HTTP 501. Poll without it instead.","default":false,"title":"Follow"},"description":"Not implemented: passing true returns HTTP 501. Poll without it instead."},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"501":{"description":"Log streaming (follow=true) is not implemented","headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/runs/{run_id}/metrics":{"get":{"tags":["training"],"summary":"Get Training Metrics","description":"Get training run metrics.","operationId":"get_training_metrics_api_builder_v1_training_runs__run_id__metrics_get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/runs/{run_id}/artifacts":{"get":{"tags":["training"],"summary":"List Training Artifacts","description":"List trained model artifacts for a completed training run.\n\nReturns filenames, sizes, and total artifact count.\nOnly available for completed runs.","operationId":"list_training_artifacts_api_builder_v1_training_runs__run_id__artifacts_get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/runs/{run_id}/artifacts/download-urls":{"get":{"tags":["training"],"summary":"Get Artifact Download Urls","description":"Generate presigned download URLs for trained model artifacts.\n\nReturns time-limited URLs that can be used to download model files directly.\n\nSDK usage:\n    artifacts = client.training.get_artifacts(run_id)\n    urls = client.training.get_download_urls(run_id, files=[\"model.pkl\"])\n    # Download with any HTTP client using the returned URLs","operationId":"get_artifact_download_urls_api_builder_v1_training_runs__run_id__artifacts_download_urls_get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"files","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated filenames to download. Omit for all artifacts.","title":"Files"},"description":"Comma-separated filenames to download. Omit for all artifacts."},{"name":"expiration","in":"query","required":false,"schema":{"type":"integer","maximum":86400,"minimum":300,"description":"URL expiration in seconds","default":3600,"title":"Expiration"},"description":"URL expiration in seconds"},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/runs/{run_id}/events":{"get":{"tags":["training"],"summary":"Get Training Events","description":"Get training run events (timeline).","operationId":"get_training_events_api_builder_v1_training_runs__run_id__events_get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/runs/{run_id}/cancel":{"post":{"tags":["training"],"summary":"Cancel Training Run","description":"Cancel a running training run.","operationId":"cancel_training_run_api_builder_v1_training_runs__run_id__cancel_post","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/runs/{run_id}%3Acancel":{"post":{"tags":["training"],"summary":"Cancel Training Run Google Style","description":"Cancel (Google-style :cancel encoded as %3A by nginx).","operationId":"cancel_training_run_google_style_api_builder_v1_training_runs__run_id__3Acancel_post","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/training/model-configs":{"get":{"tags":["training"],"summary":"List Model Configs","description":"List available model configurations for training.","operationId":"list_model_configs_api_builder_v1_training_model_configs_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"framework","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Framework"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}}},"security":[]}},"/api/builder/v1/training/model-configs/{model_id}":{"get":{"tags":["training"],"summary":"Get Model Config Detail","description":"Get detailed model configuration.","operationId":"get_model_config_detail_api_builder_v1_training_model_configs__model_id__get","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"string","title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}}},"security":[]}},"/api/builder/v1/training/model-configs/{model_id}/schema":{"get":{"tags":["training"],"summary":"Get Model Config Schema","description":"Get model parameter schema for frontend form generation.","operationId":"get_model_config_schema_api_builder_v1_training_model_configs__model_id__schema_get","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"string","title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}}},"security":[]}},"/api/builder/v1/inference/models":{"get":{"tags":["training"],"summary":"List Inference Models","description":"List ALL models available for inference (trainable + non-trainable).\n\nThis includes:\n- LLMs for fine-tuning or direct inference (Mistral, Phi, Qwen, etc.)\n- Tools (web.fetch, geo.geocode, web.search, web.scrape, etc.)\n- Specialists (embeddings, rerank, translate, OCR, STT, moderate)\n- ML Classical models (XGBoost, LightGBM, etc.)\n\nUse this endpoint to discover all available models.\nFor training-only models, use /training/model-configs.\n\nWhen include_readiness=true, each model gains:\n- readiness: \"warm\" | \"cached\" | \"cold\"\n- warm_nodes: nodes with model loaded in GPU VRAM\n- estimated_latency_ms: approximate inference latency","operationId":"list_inference_models_api_builder_v1_inference_models_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}},{"name":"include_readiness","in":"query","required":false,"schema":{"type":"boolean","description":"Include real-time readiness status (warm/cached/cold) per model","default":false,"title":"Include Readiness"},"description":"Include real-time readiness status (warm/cached/cold) per model"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}}},"security":[]}},"/api/builder/v1/training/runs/{run_id}/register-for-inference":{"post":{"tags":["training"],"summary":"Register Model For Inference","description":"Register a completed training run for inference.\n\nCreates an inference endpoint from a trained model.\n\nVisibility modes:\n- private/account: Quick registration, minimal validation, available immediately\n- public: Full specification required, pending review before public availability","operationId":"register_model_for_inference_api_builder_v1_training_runs__run_id__register_for_inference_post","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterModelRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/models":{"post":{"tags":["models"],"summary":"Create Model","description":"Create model.","operationId":"create_model_api_builder_v1_models_post","parameters":[{"name":"account_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"model_name","in":"query","required":true,"schema":{"type":"string","title":"Model Name"}},{"name":"model_architecture","in":"query","required":true,"schema":{"type":"string","title":"Model Architecture"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]},"get":{"tags":["models"],"summary":"List Models","description":"List models for account.","operationId":"list_models_api_builder_v1_models_get","parameters":[{"name":"account_id","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/models/{model_id}":{"get":{"tags":["models"],"summary":"Get Model","description":"Get model by ID.","operationId":"get_model_api_builder_v1_models__model_id__get","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Model Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/models/{model_id}/versions":{"get":{"tags":["models"],"summary":"List Model Versions","description":"List model versions.","operationId":"list_model_versions_api_builder_v1_models__model_id__versions_get","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Model Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/models/{model_id}/lineage":{"get":{"tags":["models"],"summary":"Get Model Lineage","description":"Grafo de linaje base→derivados de un modelo (design 4.4).\n\nRecorre `model_versions.base_model_version_id` hacia arriba (ancestros/bases)\ny hacia abajo (derivados) partiendo de las versiones de este modelo. Sirve a\nla UI 'usar como base' y a la trazabilidad completa del histórico (aunque los\nmodelos se hayan renombrado: la identidad es version_id).","operationId":"get_model_lineage_api_builder_v1_models__model_id__lineage_get","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Model Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/models/{model_id}/versions/{version_id}":{"patch":{"tags":["models"],"summary":"Rename Model Version","description":"Renombrar un model_version (naming editable; design decisión #3).\n\nEl nombre es una etiqueta mutable: cambiarlo NO altera la identidad\n(version_id) ni el linaje. Sólo el dueño puede renombrar.","operationId":"rename_model_version_api_builder_v1_models__model_id__versions__version_id__patch","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Model Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Version Id"}},{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameVersionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/endpoints":{"get":{"tags":["endpoints"],"summary":"List Endpoints","description":"List inference endpoints.\n\nFilters:\n- visibility: private, account, public, all (default: all)\n- review_status: active, pending_review, approved, rejected\n- task_type: regression, classification, etc.\n- search: text search in name/description\n- source: 'catalog' (curated) vs 'trained' (a training job produced it). 99% of rows\n  are trained runs, so this is the axis that actually separates families.\n- owner: 'me' restricts to the caller's account (public endpoints of other accounts\n  are otherwise included by the access rule below)\n- base_model / model_category: the underlying model_configs entry — the useful\n  discriminator inside trained runs (xgboost-regression, catboost-classification, ...)\n- active_since_days: hides the long tail that never gets called\n- sort/order: server-side ordering. Sorting client-side only reorders the current\n  page, which is meaningless against a 14k-row set.\n- include_readiness: enrich each endpoint with readiness, warm_nodes, estimated_latency_ms\n- include_facets: adds counts {catalog, trained} + top base models for the filter bar","operationId":"list_endpoints_api_builder_v1_endpoints_get","parameters":[{"name":"visibility","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by visibility","title":"Visibility"},"description":"Filter by visibility"},{"name":"review_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by review status","title":"Review Status"},"description":"Filter by review status"},{"name":"task_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by task type","title":"Task Type"},"description":"Filter by task type"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search by name/description","title":"Search"},"description":"Search by name/description"},{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"catalog (curated, no training job) | trained (produced by a training job)","title":"Source"},"description":"catalog (curated, no training job) | trained (produced by a training job)"},{"name":"owner","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"me = only this account's endpoints","title":"Owner"},"description":"me = only this account's endpoints"},{"name":"base_model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by the underlying model_configs.model_name (e.g. xgboost-regression)","title":"Base Model"},"description":"Filter by the underlying model_configs.model_name (e.g. xgboost-regression)"},{"name":"model_category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by model_configs.model_category (ml_classical, deep_learning, ...)","title":"Model Category"},"description":"Filter by model_configs.model_category (ml_classical, deep_learning, ...)"},{"name":"active_since_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":365,"minimum":1},{"type":"null"}],"description":"Only endpoints with traffic in the last N days","title":"Active Since Days"},"description":"Only endpoints with traffic in the last N days"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","description":"created_at | total_requests | name","default":"created_at","title":"Sort"},"description":"created_at | total_requests | name"},{"name":"order","in":"query","required":false,"schema":{"type":"string","description":"asc | desc","default":"desc","title":"Order"},"description":"asc | desc"},{"name":"include_readiness","in":"query","required":false,"schema":{"type":"boolean","description":"Include real-time model readiness (warm/cached/cold)","default":false,"title":"Include Readiness"},"description":"Include real-time model readiness (warm/cached/cold)"},{"name":"include_facets","in":"query","required":false,"schema":{"type":"boolean","description":"Include counts per source/base_model for the filter bar","default":false,"title":"Include Facets"},"description":"Include counts per source/base_model for the filter bar"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/endpoints/{endpoint_id}":{"get":{"tags":["endpoints"],"summary":"Get Endpoint","description":"Get endpoint details.","operationId":"get_endpoint_api_builder_v1_endpoints__endpoint_id__get","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]},"delete":{"tags":["endpoints"],"summary":"Delete Endpoint","description":"Delete endpoint (soft delete).","operationId":"delete_endpoint_api_builder_v1_endpoints__endpoint_id__delete","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","description":"Force delete even if active","default":false,"title":"Force"},"description":"Force delete even if active"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/tasks/{task_id}":{"get":{"tags":["endpoints"],"summary":"Get Task Result","description":"Get inference task status and result.\n\nPoll this endpoint to check if an async inference task has completed.","operationId":"get_task_result_api_builder_v1_tasks__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/endpoints/{endpoint_id}/infer":{"post":{"tags":["endpoints"],"summary":"Infer Sync","description":"Run endpoint inference with the REST identity fixed server-side.","operationId":"infer_sync_api_builder_v1_endpoints__endpoint_id__infer_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/endpoints/{endpoint_id}/infer:async":{"post":{"tags":["endpoints"],"summary":"Infer Async","description":"Async inference (job-based).\n\nCreates an async inference task and returns task_id.\nClient polls GET /tasks/{task_id}.","operationId":"infer_async_api_builder_v1_endpoints__endpoint_id__infer_async_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InferRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/endpoints/{endpoint_id}/upload-input":{"post":{"tags":["endpoints"],"summary":"Upload Input File","description":"Upload a binary input file (image, audio) and return a presigned GET URL.\n\nUse the returned input_url as image_url/audio_url in the /infer request.","operationId":"upload_input_file_api_builder_v1_endpoints__endpoint_id__upload_input_post","parameters":[{"name":"endpoint_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/queue/stats":{"get":{"tags":["endpoints"],"summary":"Queue Stats","description":"Inference retry queue stats.","operationId":"queue_stats_api_builder_v1_queue_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/inference/health":{"get":{"tags":["inference"],"summary":"Inference Health","description":"Health check for inference service","operationId":"inference_health_api_builder_v1_inference_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}}},"security":[]}},"/api/builder/v1/models/hf/search":{"post":{"tags":["huggingface"],"summary":"Search Huggingface Models","description":"Search HuggingFace models with filters.\n\nReturns models matching the query with compatibility information.\n\n**Filters**:\n- `task_type`: embeddings, rerank, translation, ocr, stt, moderation, text-generation\n- `max_size_gb`: Maximum model size (helps with resource planning)\n- `license`: List of allowed licenses (apache-2.0, mit, etc.)\n- `min_downloads`: Filter out low-adoption models\n\n**Compatibility Status**:\n- `compatible`: Ready to add, all checks passed\n- `requires_review`: Some warnings, manual review recommended\n- `incompatible`: Cannot be used (blocked license, trust_remote_code, etc.)\n\n**Example**:\n```python\nfrom colabhive import ColabHive\n\nclient = ColabHive(api_key=\"...\", account_id=\"...\")\nresults = client.models.hf.search(\n    query=\"embedding model\",\n    task_type=\"embeddings\",\n    max_size_gb=2\n)\nfor model in results:\n    print(model.repo_id, model.compatibility.status)\n```","operationId":"search_huggingface_models_api_builder_v1_models_hf_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/models/hf/{repo_id}/info":{"get":{"tags":["huggingface"],"summary":"Get Huggingface Model Info","description":"Get detailed information about a HuggingFace model.\n\nReturns model card, config, file list, compatibility checks, and estimated requirements.\n\n**Note**: The `repo_id` should be URL-encoded if it contains special characters.\nExample: `sentence-transformers/all-MiniLM-L6-v2` → `sentence-transformers%2Fall-MiniLM-L6-v2`\n\n**Response includes**:\n- `model_card`: Full README.md content\n- `config`: config.json with architecture info\n- `files`: List of model files with sizes\n- `compatibility`: Detailed compatibility checks\n- `estimated_requirements`: Estimated VRAM, RAM, GPU requirements\n\n**Example**:\n```python\ninfo = client.models.hf.info(\"sentence-transformers/all-MiniLM-L6-v2\")\nprint(f\"Size: {info.size_mb}MB\")\nprint(f\"Compatible: {info.compatibility.status}\")\n```","operationId":"get_huggingface_model_info_api_builder_v1_models_hf__repo_id__info_get","parameters":[{"name":"repo_id","in":"path","required":true,"schema":{"type":"string","title":"Repo Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/models/hf/register":{"post":{"tags":["huggingface"],"summary":"Register Huggingface Model","description":"Register a HuggingFace model in your Hive.\n\nCreates a model_config and inference_endpoint for the model.\nPublic models use an immutable direct Hub source and are available for cold\nstart immediately. Gated models queue a durable central mirror first; private\nrepositories are rejected because HF catalog endpoints are public.\n\n**Visibility**: HF catalog imports are public platform models.\n\n**Lifecycle Status**:\n- `candidate`: Newly registered, limited testing\nRuntime probes promote a candidate only after executable vendor evidence.\n\n**Validation**:\n- Model must pass compatibility checks (architecture, license, size)\n- Models requiring `trust_remote_code=True` are blocked by default\n- Non-commercial licenses are blocked\n\n**Example**:\n```python\nresult = client.models.hf.register(\n    repo_id=\"sentence-transformers/all-MiniLM-L6-v2\",\n    task_type=\"embeddings\"\n)\n\n# Immediately use for inference\nembedding = client.endpoints.infer(\n    result.endpoint_id,\n    {\"text\": \"Hello world\"}\n)\n```\n\n**Returns**:\n- `model_config_id`: ID for model configuration\n- `endpoint_id`: ID for inference endpoint\n- `inference_url`: URL for making inference requests\n- `test_request`: Example request payload","operationId":"register_huggingface_model_api_builder_v1_models_hf_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HFRegisterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/models/registry":{"get":{"tags":["huggingface"],"summary":"List Model Registry","description":"List models in your Hive registry.\n\nReturns both internal Hive models and registered HuggingFace models.\n\n**Filters**:\n- `source`: `hive` (internal models) or `huggingface` (discovered models)\n- `lifecycle_status`: Current status of the model\n- `task_type`: Filter by task (embeddings, translation, etc.)\n\n**Response includes per model**:\n- `model_config_id`: Model configuration ID\n- `endpoint_id`: Inference endpoint ID\n- `source`: Where the model came from\n- `repo_id`: HuggingFace repo ID (if applicable)\n- `lifecycle_status`: Current status\n- `metrics`: Usage metrics (success_rate, avg_latency, etc.)\n\n**Example**:\n```python\n# List all HuggingFace models\nmodels = client.models.list(source=\"huggingface\")\n\nfor model in models:\n    print(f\"{model.repo_id}: {model.metrics.success_rate}%\")\n```","operationId":"list_model_registry_api_builder_v1_models_registry_get","parameters":[{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter: hive, huggingface","title":"Source"},"description":"Filter: hive, huggingface"},{"name":"lifecycle_status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter: candidate, ready, preferred, disabled","title":"Lifecycle Status"},"description":"Filter: candidate, ready, preferred, disabled"},{"name":"task_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by task type","title":"Task Type"},"description":"Filter by task type"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/models/registry/{model_config_id}/lifecycle":{"patch":{"tags":["huggingface"],"summary":"Update Model Lifecycle","description":"Update the lifecycle status of a registered model.\n\n**Status transitions**:\n- `candidate` → `ready`: Model validated and working well\n- `ready` → `preferred`: Top choice for its task type\n- `any` → `disabled`: Disable model (requires reason)\n- `disabled` → `candidate`/`ready`: Re-enable model\n\n**Automatic promotion** (Phase 1+):\n- Models are automatically promoted based on success rate\n- `candidate` → `ready`: >95% success rate over 10+ requests\n\n**Example**:\n```python\n# Promote to ready after testing\nclient.models.update_lifecycle(\n    model_config_id=\"...\",\n    lifecycle_status=\"ready\"\n)\n\n# Disable a problematic model\nclient.models.update_lifecycle(\n    model_config_id=\"...\",\n    lifecycle_status=\"disabled\",\n    reason=\"High error rate in production\"\n)\n```","operationId":"update_model_lifecycle_api_builder_v1_models_registry__model_config_id__lifecycle_patch","parameters":[{"name":"model_config_id","in":"path","required":true,"schema":{"type":"string","title":"Model Config Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LifecycleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/actions":{"get":{"tags":["actions"],"summary":"List Actions","description":"Discover all invocable actions visible to the caller.\n\nReturns base models (LLMs, specialists, tools) and user-trained endpoints,\nenriched with lineage and auto-generated schemas.","operationId":"list_actions_api_builder_v1_actions_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter: llm, specialist, tool, trained_model, generative, model","title":"Kind"},"description":"Filter: llm, specialist, tool, trained_model, generative, model"},{"name":"task_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by task type (chat, classification, regression, forecasting, embeddings, ...)","title":"Task Type"},"description":"Filter by task type (chat, classification, regression, forecasting, embeddings, ...)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search slug, display_name, or description","title":"Search"},"description":"Search slug, display_name, or description"},{"name":"base_only","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"True = only base models, False = only trained","title":"Base Only"},"description":"True = only base models, False = only trained"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/actions/{slug}":{"get":{"tags":["actions"],"summary":"Get Action","description":"Get a single action by slug (endpoint_name).","operationId":"get_action_api_builder_v1_actions__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/actions/{slug}:invoke":{"post":{"tags":["actions"],"summary":"Invoke Action","description":"Invoke an action by slug. Resolves to endpoint and delegates to orchestrator.","operationId":"invoke_action_api_builder_v1_actions__slug__invoke_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/actions/{slug}%3Ainvoke":{"post":{"tags":["actions"],"summary":"Invoke Action Encoded","description":"URL-encoded variant of :invoke for nginx compatibility.","operationId":"invoke_action_encoded_api_builder_v1_actions__slug__3Ainvoke_post","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/invocations/{invocation_id}":{"get":{"tags":["actions"],"summary":"Get Invocation","description":"Poll invocation status. Thin proxy over GET /tasks/{task_id}.","operationId":"get_invocation_api_builder_v1_invocations__invocation_id__get","parameters":[{"name":"invocation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Invocation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/mcp/manifest":{"get":{"tags":["mcp"],"summary":"Get Full Manifest","description":"Return all MCP tool manifests visible to the caller.\n\nImplements ETag-based caching: send `If-None-Match: <etag>` to receive\n304 Not Modified when nothing has changed.","operationId":"get_full_manifest_api_builder_v1_mcp_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/mcp/manifest/{slug}":{"get":{"tags":["mcp"],"summary":"Get Tool Manifest","description":"Return the manifest for a single MCP tool.","operationId":"get_tool_manifest_api_builder_v1_mcp_manifest__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/v1/chat/completions":{"post":{"tags":["openai"],"summary":"Chat Completions","operationId":"chat_completions_v1_chat_completions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/v1/models":{"get":{"tags":["openai"],"summary":"List Models","operationId":"list_models_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/v1/models/{model}":{"get":{"tags":["openai"],"summary":"Retrieve Model","operationId":"retrieve_model_v1_models__model__get","parameters":[{"name":"model","in":"path","required":true,"schema":{"type":"string","title":"Model"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/cohorts/capabilities":{"get":{"tags":["cohorts"],"summary":"Capabilities","operationId":"capabilities_api_builder_v1_cohorts_capabilities_get","parameters":[{"name":"endpoint_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Endpoint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortCapabilities"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/cohorts/health":{"get":{"tags":["cohorts"],"summary":"Health","operationId":"health_api_builder_v1_cohorts_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortHealth"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/cohorts:plan":{"post":{"tags":["cohorts"],"summary":"Plan","operationId":"plan_api_builder_v1_cohorts_plan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortPlanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortPlan"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/cohorts:run":{"post":{"tags":["cohorts"],"summary":"Run","operationId":"run_api_builder_v1_cohorts_run_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortRunRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortRunAccepted"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/tasks/{task_id}/cohort":{"get":{"tags":["cohorts"],"summary":"Summary","operationId":"summary_api_builder_v1_tasks__task_id__cohort_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortSummary"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/tasks/{task_id}/cohort/events":{"get":{"tags":["cohorts"],"summary":"Events","operationId":"events_api_builder_v1_tasks__task_id__cohort_events_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Task Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortEvents"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/tasks/{task_id}/cohort/explanation":{"get":{"tags":["cohorts"],"summary":"Explanation","operationId":"explanation_api_builder_v1_tasks__task_id__cohort_explanation_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortExplanation"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}},"/api/builder/v1/tasks/{task_id}/cohort:cancel":{"post":{"tags":["cohorts"],"summary":"Cancel","operationId":"cancel_api_builder_v1_tasks__task_id__cohort_cancel_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CohortCancelResult"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}},"headers":{"X-Request-ID":{"description":"Request correlation UUID","schema":{"type":"string","format":"uuid"}}}},"401":{"description":"Authentication required or invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Authenticated principal is not authorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}}},"components":{"schemas":{"Body_upload_dataset_api_builder_v1_datasets_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_dataset_api_builder_v1_datasets_upload_post"},"ChatCompletionRequest":{"properties":{"model":{"type":"string","title":"Model"},"messages":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Messages"},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"stream":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Stream","default":false},"colabhive_execution":{"anyOf":[{"$ref":"#/components/schemas/ExecutionPolicy"},{"type":"null"}]}},"additionalProperties":true,"type":"object","required":["model","messages"],"title":"ChatCompletionRequest","description":"OpenAI chat completion request — permisivo (acepta tools, roles tool, campos extra)."},"CohortCancelResult":{"properties":{"task_id":{"type":"string","format":"uuid","title":"Task Id"},"status":{"type":"string","title":"Status"},"cancelled":{"type":"boolean","title":"Cancelled"}},"type":"object","required":["task_id","status","cancelled"],"title":"CohortCancelResult"},"CohortCapabilities":{"properties":{"available":{"type":"boolean","title":"Available"},"modes":{"items":{"$ref":"#/components/schemas/ExecutionMode"},"type":"array","title":"Modes"},"fallback_modes":{"items":{"$ref":"#/components/schemas/FallbackMode"},"type":"array","title":"Fallback Modes"},"trace_modes":{"items":{"$ref":"#/components/schemas/TraceMode"},"type":"array","title":"Trace Modes"},"max_members":{"type":"integer","title":"Max Members"},"max_latency_budget_ms":{"type":"integer","title":"Max Latency Budget Ms"},"max_cost_budget_credits":{"type":"number","title":"Max Cost Budget Credits"},"planner_mode":{"type":"string","title":"Planner Mode"},"endpoint_scoped":{"type":"boolean","title":"Endpoint Scoped","default":false},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["available","modes","fallback_modes","trace_modes","max_members","max_latency_budget_ms","max_cost_budget_credits","planner_mode"],"title":"CohortCapabilities"},"CohortEvents":{"properties":{"events":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Events"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"}},"type":"object","required":["events"],"title":"CohortEvents"},"CohortExplanation":{"properties":{"task_id":{"type":"string","format":"uuid","title":"Task Id"},"summary":{"type":"string","title":"Summary"},"factors":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Factors"}},"type":"object","required":["task_id","summary"],"title":"CohortExplanation"},"CohortHealth":{"properties":{"enabled":{"type":"boolean","title":"Enabled"},"healthy":{"type":"boolean","title":"Healthy"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"planner_mode":{"type":"string","title":"Planner Mode"},"nodes":{"$ref":"#/components/schemas/CohortHealthNodes"},"components":{"$ref":"#/components/schemas/CohortHealthComponents"},"capacity":{"$ref":"#/components/schemas/CohortHealthCapacity"}},"type":"object","required":["enabled","healthy","planner_mode","nodes","components","capacity"],"title":"CohortHealth"},"CohortHealthCapacity":{"properties":{"admissible_bytes_total":{"type":"integer","minimum":0.0,"title":"Admissible Bytes Total"},"max_frame_bytes_min":{"type":"integer","minimum":0.0,"title":"Max Frame Bytes Min"}},"type":"object","required":["admissible_bytes_total","max_frame_bytes_min"],"title":"CohortHealthCapacity"},"CohortHealthComponents":{"properties":{"registry":{"type":"boolean","title":"Registry"},"residency":{"type":"boolean","title":"Residency"},"semantic_bridge":{"type":"boolean","title":"Semantic Bridge"},"memory_fabric":{"type":"boolean","title":"Memory Fabric"},"tensor_fabric":{"type":"boolean","title":"Tensor Fabric"},"secure_transport":{"type":"boolean","title":"Secure Transport"},"reaper":{"type":"boolean","title":"Reaper"},"listener":{"type":"boolean","title":"Listener"}},"type":"object","required":["registry","residency","semantic_bridge","memory_fabric","tensor_fabric","secure_transport","reaper","listener"],"title":"CohortHealthComponents"},"CohortHealthNodes":{"properties":{"observed":{"type":"integer","minimum":0.0,"title":"Observed"},"ready":{"type":"integer","minimum":0.0,"title":"Ready"}},"type":"object","required":["observed","ready"],"title":"CohortHealthNodes"},"CohortPlan":{"properties":{"plan_id":{"type":"string","format":"uuid","title":"Plan Id"},"feasible":{"type":"boolean","title":"Feasible"},"mode_requested":{"$ref":"#/components/schemas/ExecutionMode"},"estimated_members":{"type":"integer","title":"Estimated Members"},"estimated_latency_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Estimated Latency Ms"},"estimated_cost_credits":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Cost Credits"},"pricing_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pricing Version"},"fallback":{"$ref":"#/components/schemas/FallbackMode"},"expires_at":{"type":"string","title":"Expires At"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["plan_id","feasible","mode_requested","estimated_members","fallback","expires_at"],"title":"CohortPlan"},"CohortPlanRequest":{"properties":{"endpoint_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Endpoint Id"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"objective":{"anyOf":[{"type":"string","maxLength":4000,"minLength":1},{"type":"null"}],"title":"Objective"},"execution":{"$ref":"#/components/schemas/ExecutionPolicy"}},"additionalProperties":false,"type":"object","title":"CohortPlanRequest"},"CohortRunAccepted":{"properties":{"task_id":{"type":"string","format":"uuid","title":"Task Id"},"status":{"type":"string","title":"Status"},"execution":{"additionalProperties":true,"type":"object","title":"Execution"}},"type":"object","required":["task_id","status","execution"],"title":"CohortRunAccepted"},"CohortRunRequest":{"properties":{"endpoint_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Endpoint Id"},"input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input"},"objective":{"anyOf":[{"type":"string","maxLength":4000,"minLength":1},{"type":"null"}],"title":"Objective"},"execution":{"$ref":"#/components/schemas/ExecutionPolicy"},"idempotency_key":{"anyOf":[{"type":"string","maxLength":255,"minLength":8},{"type":"null"}],"title":"Idempotency Key"}},"additionalProperties":false,"type":"object","title":"CohortRunRequest"},"CohortSummary":{"properties":{"task_id":{"type":"string","format":"uuid","title":"Task Id"},"status":{"type":"string","title":"Status"},"execution":{"additionalProperties":true,"type":"object","title":"Execution"}},"type":"object","required":["task_id","status","execution"],"title":"CohortSummary"},"DatasetCreateRequest":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id"},"dataset_name":{"type":"string","title":"Dataset Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"storage_format":{"type":"string","title":"Storage Format","default":"jsonl"},"visibility":{"type":"string","title":"Visibility","default":"private"}},"type":"object","required":["account_id","dataset_name"],"title":"DatasetCreateRequest","description":"Dataset create request."},"ExecutionMode":{"type":"string","enum":["single","cohort","auto"],"title":"ExecutionMode"},"ExecutionPolicy":{"properties":{"mode":{"$ref":"#/components/schemas/ExecutionMode","default":"cohort"},"fallback":{"$ref":"#/components/schemas/FallbackMode","default":"single"},"trace":{"$ref":"#/components/schemas/TraceMode","default":"summary"},"max_members":{"anyOf":[{"type":"integer","maximum":8.0,"minimum":2.0},{"type":"null"}],"title":"Max Members"},"latency_budget_ms":{"anyOf":[{"type":"integer","maximum":300000.0,"minimum":1000.0},{"type":"null"}],"title":"Latency Budget Ms"},"cost_budget_credits":{"anyOf":[{"type":"number","maximum":1000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Cost Budget Credits"}},"additionalProperties":false,"type":"object","title":"ExecutionPolicy"},"FallbackMode":{"type":"string","enum":["single","structured","fail"],"title":"FallbackMode"},"HFArtifactRef":{"properties":{"type":{"type":"string","const":"hf","title":"Type"},"repo_id":{"type":"string","minLength":1,"title":"Repo Id"},"revision":{"type":"string","title":"Revision","default":"main"}},"type":"object","required":["type","repo_id"],"title":"HFArtifactRef","description":"Repo de HuggingFace (base público; no se stagea, viaja como base_model)."},"HFRegisterRequest":{"properties":{"repo_id":{"type":"string","maxLength":255,"minLength":1,"title":"Repo Id","description":"HuggingFace repository ID"},"hf_revision":{"type":"string","maxLength":100,"title":"Hf Revision","description":"Revision (commit hash, tag, or branch)","default":"main"},"task_type":{"type":"string","title":"Task Type","description":"Task type for this model"},"runtime_profile_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Runtime Profile Id","description":"Override runtime profile (auto-detected if not provided)"},"resource_requirements":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resource Requirements","description":"Override resource requirements"},"gguf_file":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Gguf File","description":"GGUF filename inside the repo for CPU / llama.cpp inference (e.g. 'qwen2.5-7b-instruct-q4_k_m.gguf'). Forwarded to the registrar and propagated to model_configs.config.gguf_file so the CPU-LLM path can pick the exact quantized file to load."},"visibility":{"type":"string","pattern":"^public$","title":"Visibility","description":"HF imports are public platform models","default":"public"},"lifecycle_status":{"type":"string","pattern":"^candidate$","title":"Lifecycle Status","description":"Probes promote candidates after executable evidence","default":"candidate"},"artifact_strategy":{"type":"string","pattern":"^(auto|direct_hf|mirror)$","title":"Artifact Strategy","description":"auto: direct immutable Hub source unless gated; private repos are rejected","default":"auto"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags","description":"Tags for discovery"},"display_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Display Name","description":"Display name for UI"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description","description":"Model description"}},"type":"object","required":["repo_id","task_type"],"title":"HFRegisterRequest","description":"Request to register a HuggingFace model in the Hive.","example":{"artifact_strategy":"auto","hf_revision":"main","lifecycle_status":"candidate","repo_id":"sentence-transformers/all-MiniLM-L6-v2","tags":["embeddings","sentence-transformers"],"task_type":"embeddings","visibility":"public"}},"HFSearchRequest":{"properties":{"query":{"type":"string","maxLength":500,"minLength":1,"title":"Query","description":"Search query"},"task_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Type","description":"Filter by task type (embeddings, translation, etc.)"},"max_size_gb":{"anyOf":[{"type":"number","minimum":0.1},{"type":"null"}],"title":"Max Size Gb","description":"Maximum model size in GB (sin cap: el límite real es la capacidad física de la flota)"},"license":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"License","description":"Allowed licenses (apache-2.0, mit, etc.)"},"min_downloads":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Downloads","description":"Minimum download count"},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit","description":"Maximum results to return","default":20},"only_supported":{"type":"boolean","title":"Only Supported","description":"Only show models compatible with ColabHive runtime","default":true}},"type":"object","required":["query"],"title":"HFSearchRequest","description":"Request to search HuggingFace models.","example":{"license":["apache-2.0","mit"],"limit":20,"max_size_gb":2,"min_downloads":1000,"query":"embedding model for spanish text","task_type":"embeddings"}},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InferRequest":{"properties":{"input":{"additionalProperties":true,"type":"object","title":"Input","description":"Input data for inference"},"max_tokens":{"anyOf":[{"type":"integer","maximum":4096.0,"minimum":1.0},{"type":"null"}],"title":"Max Tokens"},"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"sync":{"type":"boolean","title":"Sync","description":"Wait for result (True) or return task_id (False)","default":true},"sync_timeout_s":{"type":"number","maximum":300.0,"minimum":1.0,"title":"Sync Timeout S","description":"Max seconds to wait in sync mode","default":30.0},"execution":{"anyOf":[{"$ref":"#/components/schemas/ExecutionPolicy"},{"type":"null"}],"description":"Optional Cohort execution policy; omitted preserves classic inference"}},"type":"object","required":["input"],"title":"InferRequest","description":"Inference request.","example":{"input":{"age":35,"credit_score":720,"income":50000,"transaction_amount":1500}}},"InvokeRequest":{"properties":{"input":{"additionalProperties":true,"type":"object","title":"Input","description":"Input data for the action"},"sync":{"type":"boolean","title":"Sync","description":"Wait for result (True) or return task_id (False)","default":true},"sync_timeout_s":{"type":"number","maximum":300.0,"minimum":1.0,"title":"Sync Timeout S","default":30.0}},"type":"object","required":["input"],"title":"InvokeRequest","description":"Invocation request body — same contract as InferRequest."},"JobArtifactRef":{"properties":{"type":{"type":"string","const":"job","title":"Type"},"job_id":{"type":"string","minLength":1,"title":"Job Id"}},"type":"object","required":["type","job_id"],"title":"JobArtifactRef","description":"Atajo: usa el output_version del training_job indicado."},"LifecycleUpdateRequest":{"properties":{"lifecycle_status":{"type":"string","title":"Lifecycle Status","description":"New status: candidate, ready, preferred, disabled"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Reason (required when setting to disabled)"}},"type":"object","required":["lifecycle_status"],"title":"LifecycleUpdateRequest","description":"Request to update model lifecycle status.","example":{"lifecycle_status":"ready"}},"MergeCreateRequest":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"base":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/HFArtifactRef"},{"$ref":"#/components/schemas/ModelVersionArtifactRef"},{"$ref":"#/components/schemas/JobArtifactRef"},{"$ref":"#/components/schemas/StorageArtifactRef"}],"discriminator":{"propertyName":"type","mapping":{"hf":"#/components/schemas/HFArtifactRef","job":"#/components/schemas/JobArtifactRef","model_version":"#/components/schemas/ModelVersionArtifactRef","storage":"#/components/schemas/StorageArtifactRef"}}},{"type":"null"}],"title":"Base"},"method":{"type":"string","title":"Method","default":"adapter_merge"},"adapters":{"items":{"oneOf":[{"$ref":"#/components/schemas/HFArtifactRef"},{"$ref":"#/components/schemas/ModelVersionArtifactRef"},{"$ref":"#/components/schemas/JobArtifactRef"},{"$ref":"#/components/schemas/StorageArtifactRef"}],"discriminator":{"propertyName":"type","mapping":{"hf":"#/components/schemas/HFArtifactRef","job":"#/components/schemas/JobArtifactRef","model_version":"#/components/schemas/ModelVersionArtifactRef","storage":"#/components/schemas/StorageArtifactRef"}}},"type":"array","title":"Adapters"},"sources":{"items":{"oneOf":[{"$ref":"#/components/schemas/HFArtifactRef"},{"$ref":"#/components/schemas/ModelVersionArtifactRef"},{"$ref":"#/components/schemas/JobArtifactRef"},{"$ref":"#/components/schemas/StorageArtifactRef"}],"discriminator":{"propertyName":"type","mapping":{"hf":"#/components/schemas/HFArtifactRef","job":"#/components/schemas/JobArtifactRef","model_version":"#/components/schemas/ModelVersionArtifactRef","storage":"#/components/schemas/StorageArtifactRef"}}},"type":"array","title":"Sources"},"weights":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Weights"},"precision":{"type":"string","title":"Precision","default":"bf16"},"hardware_preference":{"type":"string","title":"Hardware Preference","default":"cpu_only"}},"type":"object","required":["name"],"title":"MergeCreateRequest","description":"Merge request (design 4.2). Produce un model_version full nuevo con linaje."},"ModelVersionArtifactRef":{"properties":{"type":{"type":"string","const":"model_version","title":"Type"},"version_id":{"type":"string","minLength":1,"title":"Version Id"}},"type":"object","required":["type","version_id"],"title":"ModelVersionArtifactRef","description":"Un model_version entrenado o mergeado (propio o público)."},"RegisterModelRequest":{"properties":{"name":{"type":"string","title":"Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"description":{"type":"string","title":"Description"},"visibility":{"type":"string","title":"Visibility","default":"account"},"input_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Input Schema"},"output_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output Schema"},"example_input":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Example Input"},"example_output":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Example Output"},"tags":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Tags"},"task_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Type"},"price_per_request":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Per Request"}},"type":"object","required":["name","description"],"title":"RegisterModelRequest","description":"Request to register a trained model for inference."},"RenameVersionRequest":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"}},"type":"object","required":["name"],"title":"RenameVersionRequest","description":"Renombrar un model_version. La identidad es version_id; el nombre es\netiqueta MUTABLE (no rompe trazabilidad — design decisión #3/#4)."},"StorageArtifactRef":{"properties":{"type":{"type":"string","const":"storage","title":"Type"},"storage_url":{"type":"string","minLength":1,"title":"Storage Url"}},"type":"object","required":["type","storage_url"],"title":"StorageArtifactRef","description":"Escape-hatch avanzado: URL de storage directa (s3://...)."},"TraceMode":{"type":"string","enum":["none","summary"],"title":"TraceMode"},"TrainingRunCreateRequest":{"properties":{"job_name":{"type":"string","title":"Job Name"},"model_config_id":{"type":"string","title":"Model Config Id"},"dataset_id":{"type":"string","title":"Dataset Id"},"hyperparameters":{"additionalProperties":true,"type":"object","title":"Hyperparameters"},"job_type":{"type":"string","title":"Job Type","default":"training"},"operating_mode":{"type":"string","title":"Operating Mode","default":"balanced"},"priority":{"type":"integer","title":"Priority","default":0},"hardware_preference":{"type":"string","title":"Hardware Preference","default":"auto"},"base":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/HFArtifactRef"},{"$ref":"#/components/schemas/ModelVersionArtifactRef"},{"$ref":"#/components/schemas/JobArtifactRef"},{"$ref":"#/components/schemas/StorageArtifactRef"}],"discriminator":{"propertyName":"type","mapping":{"hf":"#/components/schemas/HFArtifactRef","job":"#/components/schemas/JobArtifactRef","model_version":"#/components/schemas/ModelVersionArtifactRef","storage":"#/components/schemas/StorageArtifactRef"}}},{"type":"null"}],"title":"Base"},"parent_job_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Job Id"}},"type":"object","required":["job_name","model_config_id","dataset_id"],"title":"TrainingRunCreateRequest","description":"Training run create request (aligned with training-scheduler)."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ErrorObject":{"type":"object","required":["code","message","details","request_id"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true},"request_id":{"type":"string","format":"uuid"}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"$ref":"#/components/schemas/ErrorObject"}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"ColabHive API key beginning with hive_"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"hive_ API key"}}}}