{"components":{"headers":{"Content-Language":{"description":"Response language code","required":true,"schema":{"example":"ru-RU","type":"string"}},"X-App-Action":{"description":"Action hint in imperative tone (e.g. \"Проверьте validate email\")","required":false,"schema":{"type":"string"}},"X-App-Result":{"description":"Result status (`ok`, `fix_required`, `error`)","required":true,"schema":{"enum":["ok","fix_required","error"],"type":"string"}},"X-App-Validate":{"description":"Comma-separated fields for validation","required":false,"schema":{"example":"email,password","type":"string"}},"X-Request-Id":{"description":"Unique request identifier","required":true,"schema":{"example":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","type":"string"}}},"parameters":{"action_dependency_id":{"in":"path","name":"action_dependency_id","required":true,"schema":{"format":"uuid","type":"string"}},"call_session_id":{"in":"path","name":"call_session_id","required":true,"schema":{"format":"uuid","type":"string"}},"chat_widget_id":{"in":"path","name":"chat_widget_id","required":true,"schema":{"format":"uuid","type":"string"}},"client_id":{"in":"path","name":"client_id","required":true,"schema":{"format":"uuid","type":"string"}},"client_service_id":{"in":"path","name":"client_service_id","required":true,"schema":{"format":"uuid","type":"string"}},"client_service_type_id":{"in":"path","name":"client_service_type_id","required":true,"schema":{"format":"uuid","type":"string"}},"conversation_id":{"in":"path","name":"conversation_id","required":true,"schema":{"format":"uuid","type":"string"}},"payment_action_id":{"in":"path","name":"payment_action_id","required":true,"schema":{"format":"uuid","type":"string"}},"project_id":{"in":"path","name":"project_id","required":true,"schema":{"format":"uuid","type":"string"}},"public_key":{"in":"path","name":"public_key","required":true,"schema":{"type":"string"}},"session_id":{"in":"path","name":"session_id","required":true,"schema":{"format":"uuid","type":"string"}},"tool_call_id":{"in":"path","name":"tool_call_id","required":true,"schema":{"format":"uuid","type":"string"}},"visit_session_id":{"in":"path","name":"visit_session_id","required":true,"schema":{"format":"uuid","type":"string"}}},"responses":{"Problem":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Problem"},"problem":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Problem Details error"}},"schemas":{"AICapability":{"properties":{"allows_proposals":{"type":"boolean"},"allows_read":{"type":"boolean"},"allows_writes":{"type":"boolean"},"dependencies":{"additionalProperties":{"properties":{"detail":{"type":"string"},"status":{"type":"string"}},"type":"object"},"type":"object"},"production":{"type":"boolean"},"reasons":{"items":{"type":"string"},"type":"array"},"runtime":{"type":"string"},"state":{"enum":["disabled","deterministic_preview","read_only","proposal_only","ready"],"type":"string"}},"required":["state","runtime","production","allows_read","allows_proposals","allows_writes","reasons","dependencies"],"type":"object"},"AIChatSession":{"properties":{"active_patch_proposal_id":{"format":"uuid","type":"string"},"active_tool_call_id":{"format":"uuid","type":"string"},"agent_runtime":{"type":"string"},"ai_chat_session_id":{"format":"uuid","type":"string"},"company_id":{"format":"uuid","type":"string"},"langgraph_thread_id":{"type":"string"},"last_page_context_json":{"$ref":"#/components/schemas/AIPageContext"},"messages":{"items":{"type":"object"},"type":"array"},"page_context_json":{"$ref":"#/components/schemas/AIPageContext"},"project_id":{"format":"uuid","type":"string"},"runtime_state_json":{"additionalProperties":true,"type":"object"},"screen_scope":{"type":"string"},"session_revision":{"type":"integer"},"status":{"type":"string"},"tool_calls":{"items":{"$ref":"#/components/schemas/AIToolCall"},"type":"array"},"working_memory_json":{"additionalProperties":true,"type":"object"}},"type":"object"},"AIEmployeeEnvelope":{"properties":{"capability":{"$ref":"#/components/schemas/AICapability"},"configured_dependencies":{"items":{"type":"object"},"type":"array"},"employee":{"type":"object"},"model_providers":{"items":{"$ref":"#/components/schemas/AIModelProvider"},"type":"array"},"project":{"type":"object"},"setup_required":{"type":"boolean"}},"type":"object"},"AIModelEvaluationResult":{"properties":{"action_dependency_id":{"format":"uuid","type":"string"},"items":{"items":{"type":"object"},"type":"array"},"provider_key":{"type":"string"},"score":{"type":"number"},"selected_model_id":{"type":"string"}},"type":"object"},"AIModelList":{"properties":{"action_dependency_id":{"format":"uuid","type":"string"},"dependency_type_key":{"type":"string"},"fetched_at":{"type":"string"},"models":{"items":{"type":"object"},"type":"array"},"name":{"type":"string"},"provider_key":{"type":"string"},"source":{"type":"string"}},"type":"object"},"AIModelProvider":{"properties":{"capabilities":{"items":{"type":"string"},"type":"array"},"default_base_url":{"type":"string"},"dependency_type_key":{"type":"string"},"display_name":{"type":"string"},"docs_url":{"type":"string"},"provider_key":{"type":"string"},"status":{"type":"string"},"tool_loop":{"type":"string"}},"type":"object"},"AIPageContext":{"additionalProperties":true,"properties":{"clientId":{"format":"uuid","type":"string"},"pageKind":{"type":"string"},"pathname":{"type":"string"},"projectId":{"format":"uuid","type":"string"},"route":{"type":"string"},"taskId":{"format":"uuid","type":"string"},"timestamp":{"type":"string"},"workflowId":{"format":"uuid","type":"string"},"workflowRunId":{"format":"uuid","type":"string"}},"type":"object"},"AIRuntimeReadiness":{"properties":{"capability":{"$ref":"#/components/schemas/AICapability"},"checked_at":{"format":"date-time","type":"string"},"endpoint_note":{"type":"string"},"go_api":{"additionalProperties":true,"type":"object"},"ok":{"type":"boolean"},"python_grpc":{"additionalProperties":true,"type":"object"},"ready_policy":{"type":"string"},"runtime":{"type":"string"}},"required":["ok","runtime","go_api","python_grpc","checked_at"],"type":"object"},"AISessionCreate":{"properties":{"action_dependency_id":{"format":"uuid","type":"string"},"client_id":{"format":"uuid","type":"string"},"model_id":{"type":"string"},"page_context_json":{"$ref":"#/components/schemas/AIPageContext"},"screen_entity_id":{"type":"string"},"screen_entity_type":{"type":"string"},"screen_scope":{"type":"string"},"task_id":{"format":"uuid","type":"string"},"workflow_id":{"format":"uuid","type":"string"},"workflow_run_id":{"format":"uuid","type":"string"}},"type":"object"},"AIToolCall":{"properties":{"ai_tool_call_id":{"format":"uuid","type":"string"},"input_json":{"type":"object"},"output_json":{"type":"object"},"requires_approval":{"type":"boolean"},"risk_level":{"type":"string"},"status":{"type":"string"},"tool_key":{"type":"string"}},"type":"object"},"ActionRunView":{"additionalProperties":true,"description":"Исполнение одного узла workflow внутри запуска","properties":{"action_key":{"description":"Ключ узла в графе workflow","example":"node_a1","type":"string"},"action_run_id":{"format":"uuid","type":"string"},"action_type_key":{"description":"Тип действия из каталога","example":"http.request","type":"string"},"attempt_count":{"minimum":0,"type":"integer"},"diagnostics":{"additionalProperties":true,"description":"Человекочитаемая интерпретация выполнения действия: причина, критерии успеха, retryable и next action.","properties":{"criteria_results":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"human_reason":{"example":"Telegram отклонил токен бота.","type":"string"},"next_action":{"example":"Проверьте bot_token в интеграции Telegram и сохраните его заново.","type":"string"},"provider":{"example":"telegram","type":"string"},"reason_code":{"example":"telegram_invalid_token","type":"string"},"retryable":{"type":"boolean"},"status":{"example":"success","type":"string"},"summary":{"example":"Telegram подтвердил отправку сообщения.","type":"string"}},"type":"object"},"error":{"description":"Текст ошибки при неуспехе","type":["string","null"]},"finished_at":{"description":"Время завершения","format":"date-time","type":["string","null"]},"input_json":{"additionalProperties":true,"description":"Контекст и параметры на вход узла","type":"object"},"output_json":{"additionalProperties":true,"description":"Результат узла после исполнения","type":"object"},"provider_response_json":{"additionalProperties":true,"description":"Ответ провайдера при наличии","type":"object"},"started_at":{"description":"Время начала исполнения","format":"date-time","type":["string","null"]},"status":{"example":"succeeded","type":"string"}},"required":["action_run_id","action_key","action_type_key","status","attempt_count","input_json","output_json","provider_response_json"],"type":"object"},"ActionTypeCatalogItem":{"additionalProperties":true,"description":"Строка каталога действий узла workflow (совпадает с ответом ListActionTypes)","properties":{"action_key":{"description":"Идентификатор типа действия для графа (JSON config)","example":"http.request","type":"string"},"category":{"example":"integration","type":"string"},"config_schema_json":{"additionalProperties":true,"description":"JSON Schema параметров узла для конструктора","type":"object"},"display_name":{"example":"HTTP-запрос","type":"string"},"provider_key":{"description":"Связка с зависимостью проекта, если нужна (иначе пустая строка)","example":"","type":"string"},"requires_dependency":{"type":"boolean"},"result_schema_json":{"additionalProperties":true,"description":"JSON Schema результата шага для подсказок и валидации","type":"object"}},"required":["action_key","display_name","category","requires_dependency","provider_key","config_schema_json","result_schema_json"],"type":"object"},"ClientServiceInput":{"additionalProperties":false,"properties":{"amount":{"format":"double","type":"number"},"billing_period":{"default":"monthly","type":"string"},"client_service_type_id":{"format":"uuid","type":"string"},"currency":{"default":"RUB","type":"string"},"metadata_json":{"type":"object"},"name":{"type":"string"},"next_due_date":{"format":"date","type":"string"},"project_id":{"format":"uuid","type":"string"},"raw_price_text":{"type":"string"},"service_type_key":{"type":"string"},"status":{"type":"string"}},"required":["project_id","name"],"type":"object"},"ClientServicePatch":{"additionalProperties":false,"properties":{"amount":{"format":"double","type":"number"},"billing_period":{"type":"string"},"client_service_type_id":{"format":"uuid","type":"string"},"currency":{"type":"string"},"metadata_json":{"type":"object"},"name":{"type":"string"},"next_due_date":{"format":"date","type":"string"},"project_id":{"format":"uuid","type":"string"},"raw_price_text":{"type":"string"},"service_type_key":{"type":"string"},"status":{"type":"string"}},"type":"object"},"ClientServiceTypeInput":{"additionalProperties":false,"properties":{"description":{"type":"string"},"display_name":{"type":"string"},"service_type_key":{"type":"string"},"sort_order":{"type":"integer"},"status":{"enum":["active","archived","deleted"],"type":"string"}},"required":["display_name"],"type":"object"},"ClientServiceTypePatch":{"additionalProperties":false,"properties":{"description":{"type":"string"},"display_name":{"type":"string"},"service_type_key":{"type":"string"},"sort_order":{"type":"integer"},"status":{"enum":["active","archived","deleted"],"type":"string"}},"type":"object"},"ClientServiceTypeView":{"additionalProperties":false,"properties":{"client_service_type_id":{"format":"uuid","type":"string"},"company_id":{"format":"uuid","type":"string"},"description":{"type":"string"},"display_name":{"type":"string"},"project_id":{"format":"uuid","type":"string"},"scope_kind":{"enum":["global","company","project"],"type":"string"},"service_type_key":{"type":"string"},"sort_order":{"type":"integer"},"status":{"enum":["active","archived","deleted"],"type":"string"}},"required":["client_service_type_id","service_type_key","display_name","sort_order"],"type":"object"},"ClientServiceView":{"additionalProperties":false,"properties":{"amount":{"format":"double","type":"number"},"billing_period":{"enum":["once","weekly","monthly","quarterly","semiannual","yearly"],"type":"string"},"client_id":{"format":"uuid","type":"string"},"client_service_id":{"format":"uuid","type":"string"},"client_service_type_id":{"format":"uuid","type":"string"},"company_id":{"format":"uuid","type":"string"},"currency":{"example":"RUB","type":"string"},"name":{"type":"string"},"next_due_date":{"format":"date","type":"string"},"project_id":{"format":"uuid","type":"string"},"raw_price_text":{"type":"string"},"remind_days_before":{"deprecated":true,"description":"Backward compatibility only. Reminder settings belong to workflow action config.","type":"integer"},"remind_every_days":{"deprecated":true,"description":"Backward compatibility only. Reminder settings belong to workflow action config.","type":"integer"},"service_type_key":{"type":"string"},"service_type_name":{"type":"string"},"status":{"enum":["active","paused","completed","archived","deleted"],"type":"string"}},"required":["client_service_id","company_id","client_id","project_id","client_service_type_id","service_type_key","service_type_name","name","status","amount","currency","billing_period"],"type":"object"},"ClientView":{"additionalProperties":false,"properties":{"actual_address":{"type":"string"},"client_id":{"format":"uuid","type":"string"},"client_type":{"enum":["individual","individual_entrepreneur","legal_entity"],"type":"string"},"comment":{"type":"string"},"company_id":{"format":"uuid","type":"string"},"full_name":{"type":"string"},"inn":{"type":"string"},"kpp":{"type":"string"},"legal_address":{"type":"string"},"name":{"type":"string"},"ogrn":{"type":"string"},"ogrnip":{"type":"string"},"okved":{"type":"string"},"projects_count":{"type":"integer"},"services_count":{"type":"integer"},"short_name":{"type":"string"},"status":{"enum":["active","archived","deleted"],"type":"string"}},"required":["client_id","company_id","client_type","status","name"],"type":"object"},"CompanyView":{"additionalProperties":false,"properties":{"company_id":{"example":"b98772dd-7cf7-455d-a750-9ef142546b37","format":"uuid","type":"string"},"name":{"example":"Example Core","type":"string"},"role":{"example":"owner","type":"string"},"slug":{"example":"example-core","type":"string"}},"required":["company_id","slug","name","role"],"type":"object"},"DependencyTypeCatalogItem":{"additionalProperties":true,"description":"Строка каталога зависимостей (SMTP, Telegram и т.д.)","properties":{"auth_schema_json":{"additionalProperties":true,"description":"Поля авторизации зависимости","type":"object"},"dependency_type_key":{"example":"smtp.generic","type":"string"},"display_name":{"type":"string"},"metadata_schema_json":{"additionalProperties":true,"description":"Дополнительные поля конфигурации","type":"object"},"provider_key":{"type":"string"}},"required":["dependency_type_key","display_name","provider_key","auth_schema_json","metadata_schema_json"],"type":"object"},"EndpointDoc":{"additionalProperties":false,"properties":{"curl_examples":{"items":{"type":"string"},"minItems":1,"type":"array"},"method":{"example":"POST","type":"string"},"operation_id":{"example":"authLogin","type":"string"},"path":{"example":"/api/v1/auth/login","type":"string"},"summary":{"example":"Login with email/password","type":"string"},"tag":{"example":"auth","type":"string"},"test_hints":{"items":{"type":"string"},"minItems":1,"type":"array"}},"required":["method","path","summary","tag","operation_id","curl_examples","test_hints"],"type":"object"},"EndpointDocList":{"additionalProperties":false,"properties":{"endpoints":{"items":{"$ref":"#/components/schemas/EndpointDoc"},"type":"array"},"generated_at":{"format":"date-time","type":"string"},"version":{"example":"1.1.0","type":"string"}},"required":["generated_at","version","endpoints"],"type":"object"},"ManualPaymentRecordRequest":{"additionalProperties":false,"properties":{"amount":{"format":"double","type":"number"},"client_service_id":{"format":"uuid","type":"string"},"comment":{"type":"string"},"currency":{"default":"RUB","type":"string"},"idempotency_key":{"description":"Stable key for retry safety. The Idempotency-Key header may also be used.","type":"string"},"metadata":{"type":"object"},"next_due_date":{"description":"Optional explicit next payment date for the selected service after the payment is recorded.","format":"date","type":"string"},"paid_at":{"format":"date-time","type":"string"},"payment_method":{"description":"How the client actually paid. This is distinct from source, which says how Pulse learned about the payment.","enum":["cash","legal_invoice","bank_transfer","card","other"],"type":"string"},"period_end":{"format":"date","type":"string"},"period_start":{"format":"date","type":"string"},"project_id":{"format":"uuid","type":"string"}},"required":["client_service_id","amount","period_start","paid_at","payment_method","idempotency_key"],"type":"object"},"ManualPaymentRecordResponse":{"additionalProperties":false,"properties":{"duplicate":{"type":"boolean"},"event_id":{"format":"uuid","type":"string"},"event_source":{"example":"manual","type":"string"},"event_subject":{"example":"client/{client_id}/service/{client_service_id}","type":"string"},"event_type":{"example":"payment.recorded","type":"string"},"idempotency_key":{"type":"string"},"payment_action_id":{"format":"uuid","type":"string"},"payment_fact_id":{"format":"uuid","type":"string"},"status":{"enum":["processed","processing","failed"],"type":"string"}},"required":["event_id","event_type","event_source","idempotency_key","payment_action_id","payment_fact_id","status","duplicate"],"type":"object"},"PaymentActionConfirmRequest":{"additionalProperties":false,"properties":{"amount":{"format":"double","type":"number"},"comment":{"type":"string"},"items":{"items":{"additionalProperties":false,"properties":{"amount":{"format":"double","type":"number"},"payment_action_item_id":{"format":"uuid","type":"string"}},"type":"object"},"type":"array"},"next_due_date":{"description":"Optional explicit next payment date for all services in this payment action after the payment is recorded.","format":"date","type":"string"},"paid_at":{"format":"date-time","type":"string"},"payment_method":{"description":"How the client actually paid. This is distinct from source, which says how Pulse learned about the payment.","enum":["cash","legal_invoice","bank_transfer","card","other"],"type":"string"},"source":{"default":"manual","enum":["manual","api_key","bank","workflow","email","incoming_email","kontur_elba","integration","other_integration"],"type":"string"}},"type":"object"},"PaymentActionItem":{"additionalProperties":false,"properties":{"amount":{"format":"double","type":"number"},"client_service_id":{"format":"uuid","type":"string"},"currency":{"type":"string"},"due_date":{"format":"date","type":"string"},"payment_action_item_id":{"format":"uuid","type":"string"},"service_type_key":{"type":"string"},"title":{"type":"string"}},"required":["payment_action_item_id","client_service_id","title","due_date","amount","currency"],"type":"object"},"PaymentActionSnoozeRequest":{"additionalProperties":false,"properties":{"comment":{"type":"string"},"snoozed_until":{"format":"date","type":"string"}},"required":["snoozed_until"],"type":"object"},"PaymentActionView":{"additionalProperties":false,"properties":{"client_id":{"format":"uuid","type":"string"},"client_name":{"type":"string"},"comment":{"type":"string"},"company_id":{"format":"uuid","type":"string"},"confirmed_at":{"format":"date-time","type":"string"},"currency":{"example":"RUB","type":"string"},"due_date":{"format":"date","type":"string"},"facts":{"items":{"$ref":"#/components/schemas/PaymentFactView"},"type":"array"},"items":{"items":{"$ref":"#/components/schemas/PaymentActionItem"},"type":"array"},"payment_action_id":{"format":"uuid","type":"string"},"payment_method":{"enum":["cash","legal_invoice","bank_transfer","card","other"],"type":"string"},"period_end":{"format":"date","type":"string"},"period_start":{"format":"date","type":"string"},"project_id":{"format":"uuid","type":"string"},"project_name":{"type":"string"},"source":{"enum":["manual","api_key","bank","workflow","email","incoming_email","kontur_elba","integration","other_integration"],"type":"string"},"status":{"enum":["pending","sent","snoozed","paid","cancelled","needs_decision"],"type":"string"},"total_amount":{"format":"double","type":"number"},"workflow_run_id":{"format":"uuid","type":"string"}},"required":["payment_action_id","company_id","client_id","client_name","project_id","project_name","status","source","payment_method","period_start","period_end","due_date","total_amount","currency"],"type":"object"},"PaymentFactView":{"additionalProperties":false,"properties":{"amount":{"format":"double","type":"number"},"created_at":{"format":"date-time","type":"string"},"currency":{"type":"string"},"paid_at":{"format":"date-time","type":"string"},"payment_fact_id":{"format":"uuid","type":"string"},"payment_method":{"enum":["cash","legal_invoice","bank_transfer","card","other"],"type":"string"},"source":{"enum":["manual","api_key","bank","workflow","email","incoming_email","kontur_elba","integration","other_integration"],"type":"string"}},"required":["payment_fact_id","source","payment_method","amount","currency","paid_at"],"type":"object"},"Problem":{"additionalProperties":false,"properties":{"action":{"example":"Проверьте validate email","type":"string"},"detail":{"example":"Исправьте email и повторите запрос.","type":"string"},"request_id":{"example":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","type":"string"},"status":{"enum":["fix_required","error"],"example":"fix_required","type":"string"},"title":{"example":"Validation required","type":"string"},"validate":{"example":"email","type":"string"}},"required":["status","title","detail","action","validate","request_id"],"type":"object"},"SessionView":{"additionalProperties":false,"properties":{"client_type":{"example":"web","type":"string"},"created_at":{"format":"date-time","type":"string"},"device_label":{"example":"Chrome on macOS","type":"string"},"ip_address":{"example":"203.0.113.10","type":"string"},"is_current":{"example":true,"type":"boolean"},"last_seen_at":{"format":"date-time","type":"string"},"session_id":{"example":"9d660b52-2e4e-4b0c-8ab0-ce0df8a3e550","format":"uuid","type":"string"}},"required":["session_id","client_type","device_label","created_at","last_seen_at","is_current"],"type":"object"},"SiteChatCallInput":{"additionalProperties":false,"properties":{"conversation_id":{"format":"uuid","type":"string"},"end_reason":{"type":"string"},"media_kind":{"default":"audio","enum":["audio","video"],"type":"string"},"privacy_consent_accepted":{"type":"boolean"},"public_key":{"type":"string"},"recording_consent_accepted":{"type":"boolean"},"recording_enabled":{"type":"boolean"},"visit_session_id":{"format":"uuid","type":"string"},"visitor_id":{"format":"uuid","type":"string"}},"type":"object"},"SiteChatCallSession":{"additionalProperties":false,"properties":{"call_session_id":{"format":"uuid","type":"string"},"chat_widget_id":{"format":"uuid","type":"string"},"company_id":{"format":"uuid","type":"string"},"conversation_id":{"format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"direction":{"enum":["operator_to_visitor","visitor_to_operator"],"type":"string"},"end_reason":{"type":"string"},"ended_at":{"format":"date-time","type":"string"},"last_signal_at":{"format":"date-time","type":"string"},"media_kind":{"enum":["audio","video"],"type":"string"},"metadata_json":{"type":"object"},"privacy_consent_accepted_at":{"format":"date-time","type":"string"},"project_id":{"format":"uuid","type":"string"},"recording_consent_accepted_at":{"format":"date-time","type":"string"},"recording_enabled":{"type":"boolean"},"requested_by":{"enum":["operator","visitor"],"type":"string"},"requested_by_user_id":{"format":"uuid","type":"string"},"started_at":{"format":"date-time","type":"string"},"status":{"enum":["offered","ringing","accepted","rejected","missed","ended","failed","cancelled"],"type":"string"},"updated_at":{"format":"date-time","type":"string"},"visit_session_id":{"format":"uuid","type":"string"},"visitor_id":{"format":"uuid","type":"string"}},"required":["call_session_id","company_id","project_id","chat_widget_id","visitor_id","direction","requested_by","status","recording_enabled","media_kind","created_at","updated_at"],"type":"object"},"SiteChatConversation":{"additionalProperties":false,"properties":{"call_url":{"type":"string"},"chat_widget_id":{"format":"uuid","type":"string"},"conversation_id":{"format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"operator_url":{"type":"string"},"project_id":{"format":"uuid","type":"string"},"status":{"enum":["open","closed"],"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"visit_session_id":{"format":"uuid","type":"string"},"visitor_contact":{"type":"string"},"visitor_id":{"format":"uuid","type":"string"},"visitor_name":{"type":"string"}},"required":["conversation_id","project_id","chat_widget_id","visitor_id","status","title","created_at","updated_at"],"type":"object"},"SiteChatEventBatch":{"additionalProperties":false,"properties":{"events":{"items":{"additionalProperties":false,"properties":{"event_type":{"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"payload":{"type":"object"},"priority":{"enum":["low","normal","high"],"type":"string"}},"required":["event_type"],"type":"object"},"maxItems":50,"type":"array"},"public_key":{"type":"string"},"visit_session_id":{"format":"uuid","type":"string"},"visitor_id":{"format":"uuid","type":"string"}},"required":["public_key","visitor_id","visit_session_id","events"],"type":"object"},"SiteChatInviteInput":{"additionalProperties":false,"properties":{"force":{"default":false,"type":"boolean"},"message":{"type":"string"},"template":{"type":"string"}},"type":"object"},"SiteChatMessage":{"additionalProperties":false,"properties":{"author_kind":{"enum":["visitor","operator","system"],"type":"string"},"author_name":{"type":"string"},"author_user_id":{"format":"uuid","type":"string"},"body":{"type":"string"},"conversation_id":{"format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"message_id":{"format":"uuid","type":"string"}},"required":["message_id","conversation_id","author_kind","author_name","body","created_at"],"type":"object"},"SiteChatMessageInput":{"additionalProperties":false,"properties":{"author_name":{"type":"string"},"body":{"type":"string"},"conversation_id":{"format":"uuid","type":"string"},"public_key":{"type":"string"},"visit_session_id":{"format":"uuid","type":"string"},"visitor_contact":{"type":"string"},"visitor_id":{"format":"uuid","type":"string"}},"required":["body"],"type":"object"},"SiteChatPresenceRequest":{"additionalProperties":false,"properties":{"anonymous_id":{"type":"string"},"browser":{"type":"string"},"browser_version":{"type":"string"},"device_type":{"type":"string"},"language":{"type":"string"},"metadata":{"type":"object"},"metrika_client_id":{"type":"string"},"metrika_session_id":{"type":"string"},"metrika_user_id":{"type":"string"},"os":{"type":"string"},"public_key":{"type":"string"},"referrer":{"type":"string"},"screen_height":{"type":"integer"},"screen_width":{"type":"integer"},"scroll_x":{"type":"integer"},"scroll_y":{"type":"integer"},"timezone":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"},"user_agent":{"type":"string"},"utm":{"type":"object"},"viewport_height":{"type":"integer"},"viewport_width":{"type":"integer"},"visit_session_id":{"format":"uuid","type":"string"}},"required":["public_key"],"type":"object"},"SiteChatPresenceResponse":{"additionalProperties":false,"properties":{"call_url":{"type":"string"},"chat_widget_id":{"format":"uuid","type":"string"},"conversation_id":{"format":"uuid","type":"string"},"conversation_url":{"type":"string"},"is_first_visit":{"type":"boolean"},"monitoring_status":{"type":"string"},"operator_invited":{"type":"boolean"},"panel_url":{"type":"string"},"project_id":{"format":"uuid","type":"string"},"visit_session_id":{"format":"uuid","type":"string"},"visitor_id":{"format":"uuid","type":"string"},"visitor_state_snapshot":{"$ref":"#/components/schemas/VisitorStateSnapshot"}},"required":["visitor_id","visit_session_id","chat_widget_id","project_id","conversation_id","conversation_url","panel_url","call_url","is_first_visit","monitoring_status","operator_invited","visitor_state_snapshot"],"type":"object"},"SiteChatPublicConfig":{"additionalProperties":false,"properties":{"accent_color":{"type":"string"},"chat_widget_id":{"format":"uuid","type":"string"},"endpoint_base":{"type":"string"},"heavy_tracking_default":{"type":"boolean"},"position":{"enum":["left","right"],"type":"string"},"project_id":{"format":"uuid","type":"string"},"public_key":{"type":"string"},"sampling_rate":{"type":"number"},"subtitle":{"type":"string"},"title":{"type":"string"}},"required":["chat_widget_id","project_id","public_key","title","subtitle","accent_color","position","heavy_tracking_default","sampling_rate","endpoint_base"],"type":"object"},"SiteChatWSEnvelope":{"additionalProperties":false,"properties":{"call_session_id":{"format":"uuid","type":"string"},"chat_widget_id":{"format":"uuid","type":"string"},"conversation_id":{"format":"uuid","type":"string"},"id":{"type":"string"},"payload":{"type":"object"},"project_id":{"format":"uuid","type":"string"},"sent_at":{"format":"date-time","type":"string"},"type":{"enum":["visitor.heartbeat","visitor.left","presence.update","event.batch","chat.message","chat.typing","operator.invite","invite.seen","invite.accepted","invite.declined","monitoring.start","monitoring.stop","monitoring.snapshot","monitoring.incremental","cursor.move","touch.move","click","scroll","viewport","page.navigate","call.request","call.offer","call.accept","call.reject","call.cancel","call.end","webrtc.offer","webrtc.answer","webrtc.ice","consent.accepted","consent.declined","ack","error"],"type":"string"},"visit_session_id":{"format":"uuid","type":"string"},"visitor_id":{"format":"uuid","type":"string"}},"required":["id","type","sent_at"],"type":"object"},"SiteChatWidget":{"additionalProperties":false,"properties":{"accent_color":{"type":"string"},"chat_widget_id":{"format":"uuid","type":"string"},"company_id":{"format":"uuid","type":"string"},"created_at":{"format":"date-time","type":"string"},"embed_script":{"type":"string"},"heavy_tracking_default":{"type":"boolean"},"name":{"type":"string"},"position":{"enum":["left","right"],"type":"string"},"project_id":{"format":"uuid","type":"string"},"public_key":{"type":"string"},"sampling_rate":{"maximum":1,"minimum":0,"type":"number"},"settings_json":{"type":"object"},"status":{"enum":["active","paused","archived"],"type":"string"},"subtitle":{"type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["chat_widget_id","company_id","project_id","public_key","name","status","title","subtitle","accent_color","position","heavy_tracking_default","sampling_rate"],"type":"object"},"SiteChatWidgetInput":{"additionalProperties":false,"properties":{"accent_color":{"type":"string"},"heavy_tracking_default":{"default":false,"type":"boolean"},"name":{"type":"string"},"position":{"default":"right","enum":["left","right"],"type":"string"},"sampling_rate":{"default":1,"maximum":1,"minimum":0,"type":"number"},"settings_json":{"type":"object"},"subtitle":{"type":"string"},"title":{"type":"string"}},"type":"object"},"SiteChatWidgetPatch":{"allOf":[{"$ref":"#/components/schemas/SiteChatWidgetInput"},{"properties":{"status":{"enum":["active","paused","archived"],"type":"string"}},"type":"object"}]},"SiteCobrowseFrame":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"frame_id":{"format":"uuid","type":"string"},"kind":{"enum":["snapshot","mutation","cursor","touch","scroll","viewport","navigation","click","diagnostic"],"type":"string"},"occurred_at":{"format":"date-time","type":"string"},"payload_json":{"type":"object"},"sequence":{"format":"int64","type":"integer"},"visit_session_id":{"format":"uuid","type":"string"}},"required":["frame_id","visit_session_id","sequence","kind","occurred_at","payload_json","created_at"],"type":"object"},"SiteVisitorSession":{"additionalProperties":false,"properties":{"call_url":{"type":"string"},"chat_open":{"type":"boolean"},"chat_widget_id":{"format":"uuid","type":"string"},"conversation_id":{"format":"uuid","type":"string"},"conversation_url":{"type":"string"},"current_title":{"type":"string"},"current_url":{"type":"string"},"last_activity_at":{"format":"date-time","type":"string"},"monitoring_status":{"enum":["idle","requested","active","stopped"],"type":"string"},"operator_invited":{"type":"boolean"},"panel_url":{"type":"string"},"project_id":{"format":"uuid","type":"string"},"visit_session_id":{"format":"uuid","type":"string"},"visitor_id":{"format":"uuid","type":"string"},"visitor_state_snapshot":{"$ref":"#/components/schemas/VisitorStateSnapshot"}},"required":["visitor_id","visit_session_id","chat_widget_id","project_id","conversation_id","conversation_url","panel_url","call_url","current_url","current_title","last_activity_at","monitoring_status","operator_invited","chat_open","visitor_state_snapshot"],"type":"object"},"TestingCollection":{"additionalProperties":false,"properties":{"download_url":{"example":"https://api.example.test/api/v1/docs/testing/postman","type":"string"},"format":{"example":"postman-v2.1","type":"string"},"version":{"example":"1.1.0","type":"string"}},"required":["format","version","download_url"],"type":"object"},"UserMe":{"additionalProperties":false,"properties":{"current_company_id":{"format":"uuid","type":["string","null"]},"email":{"example":"owner@example.test","format":"email","type":"string"},"user_id":{"example":"e2f0d908-03d7-4ba0-9c76-f0d1553f7428","format":"uuid","type":"string"}},"required":["user_id","email","current_company_id"],"type":"object"},"VisitorStateSnapshot":{"additionalProperties":true,"properties":{"activity":{"type":"object"},"analytics":{"type":"object"},"chat_widget_id":{"format":"uuid","type":"string"},"current_title":{"type":"string"},"current_url":{"type":"string"},"scroll":{"type":"object"},"signals":{"type":"object"},"suggested_actions":{"items":{"type":"string"},"type":"array"},"viewport":{"type":"object"},"visit_session_id":{"format":"uuid","type":"string"},"visitor_id":{"format":"uuid","type":"string"}},"type":"object"},"WebhookActionReceipt":{"additionalProperties":false,"properties":{"action_key":{"type":"string"},"action_type_key":{"type":"string"},"attempt_count":{"minimum":0,"type":"integer"},"finished_at":{"format":"date-time","type":"string"},"max_attempts":{"minimum":1,"type":"integer"},"retry_class":{"enum":["validation","auth","permanent","transient","rate_limited","timeout_unknown","canceled","unknown_outcome"],"type":"string"},"started_at":{"format":"date-time","type":"string"},"status":{"enum":["pending","running","succeeded","failed","skipped","waiting","retrying","dead_lettered"],"type":"string"},"terminal_reason":{"type":"string"}},"required":["action_key","action_type_key","status","attempt_count"],"type":"object"},"WebhookRunReceipt":{"additionalProperties":false,"properties":{"actions":{"items":{"$ref":"#/components/schemas/WebhookActionReceipt"},"type":"array"},"finished_at":{"format":"date-time","type":"string"},"started_at":{"format":"date-time","type":"string"},"status":{"enum":["pending","running","waiting","succeeded","failed","cancelled"],"type":"string"},"terminal":{"type":"boolean"},"terminal_reason":{"type":"string"},"workflow_run_id":{"format":"uuid","type":"string"}},"required":["workflow_run_id","status","terminal","actions"],"type":"object"},"WorkspaceContext":{"additionalProperties":false,"properties":{"active_company_id":{"description":"Empty string when no company is selected.","format":"uuid","type":"string"},"active_project_id":{"description":"Empty string when no project is selected.","format":"uuid","type":"string"},"user_id":{"format":"uuid","type":"string"}},"required":["user_id","active_company_id","active_project_id"],"type":"object"},"WorkspaceContextPatch":{"additionalProperties":false,"properties":{"active_company_id":{"format":"uuid","type":["string","null"]},"active_project_id":{"format":"uuid","type":["string","null"]}},"type":"object"}},"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}},"info":{"description":"Source-of-truth API contract.\nGenerated bundle is served by docs endpoints.\n","license":{"identifier":"MIT","name":"MIT"},"summary":"Modular OpenAPI contract for the generated stack","title":"Generated Stack API","version":"1.1.0"},"openapi":"3.2.0","paths":{"/api/v1/action-dependency-types":{"get":{"description":"Схемы для настройки SMTP, мессенджеров и других внешних интеграций, на которые ссылаются действия.\n","operationId":"depTypes","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DependencyTypeCatalogItem"},"type":"array"}}},"description":"Каталог типов зависимостей","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Внутренняя ошибка загрузки каталога","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Список типов зависимостей проекта","tags":["catalog"]}},"/api/v1/action-dependency-types/{dependency_type_key}":{"get":{"operationId":"depTypeGet","parameters":[{"example":"smtp.generic","in":"path","name":"dependency_type_key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DependencyTypeCatalogItem"}}},"description":"Тип зависимости","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Неизвестный dependency_type_key","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Детали типа зависимости","tags":["catalog"]}},"/api/v1/action-types":{"get":{"description":"Каталог поддерживаемых типов узлов (действий). Используйте `config_schema_json` / `result_schema_json`\nпри редактировании графа черновика и для валидации на стороне UI.\n","operationId":"actionTypes","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ActionTypeCatalogItem"},"type":"array"}}},"description":"Каталог действий","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Внутренняя ошибка загрузки каталога","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Список типов действий для конструктора workflow","tags":["catalog"]}},"/api/v1/action-types/{action_type_key}":{"get":{"operationId":"actionTypeGet","parameters":[{"example":"http.request","in":"path","name":"action_type_key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionTypeCatalogItem"}}},"description":"Тип действия","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Неизвестный action_key","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Детали типа действия","tags":["catalog"]}},"/api/v1/ai/agent/readiness":{"get":{"operationId":"aiAgentReadiness","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIRuntimeReadiness"}}},"description":"AI runtime readiness"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIRuntimeReadiness"}}},"description":"AI runtime is not ready when langgraph runtime requires Python gRPC"}},"summary":"Alias for AI runtime readiness","tags":["ai"]}},"/api/v1/ai/runtime/capabilities":{"get":{"operationId":"aiRuntimeCapabilities","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIRuntimeReadiness"}}},"description":"AI runtime capability state"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIRuntimeReadiness"}}},"description":"AI runtime is disabled or unavailable"}},"summary":"Получить capability state AI runtime","tags":["ai"]}},"/api/v1/ai/runtime/readiness":{"get":{"operationId":"aiRuntimeReadiness","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIRuntimeReadiness"}}},"description":"AI runtime readiness"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIRuntimeReadiness"}}},"description":"AI runtime is not ready when langgraph runtime requires Python gRPC"}},"summary":"Проверить готовность AI runtime и Python gRPC health","tags":["ai"]}},"/api/v1/auth/activate":{"post":{"operationId":"authActivate","requestBody":{"content":{"application/json":{"examples":{"activation":{"value":{"token":"act_6d2f8e0a4f"}}},"schema":{"properties":{"token":{"type":"string"}},"required":["token"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"ok":{"value":{"status":"activated"}}},"schema":{"properties":{"status":{"example":"activated","type":"string"}},"required":["status"],"type":"object"}}},"description":"Activated","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"400":{"content":{"application/json":{"examples":{"invalid":{"value":{"action":"Проверьте validate token","detail":"Проверьте activation token и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Activation validate required","validate":"token"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Bad token","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Activate account","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/activate \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"token\":\"act_6d2f8e0a4f\"}'\n"}],"x-runtime-status":"preview"}},"/api/v1/auth/api-keys":{"get":{"operationId":"authAPIKeyList","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation authAPIKeyList","tags":["auth"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"authAPIKeyCreate","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation authAPIKeyCreate","tags":["auth"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/auth/api-keys/{api_key_id}":{"delete":{"operationId":"authAPIKeyDelete","parameters":[{"in":"path","name":"api_key_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation authAPIKeyDelete","tags":["auth"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/auth/csrf":{"get":{"description":"Issues a fresh readable `rp_csrf` cookie for an already authenticated browser session. Used by same-origin clients to recover from a missing or stale CSRF cookie before retrying unsafe cookie-authenticated requests.","operationId":"authCSRF","responses":{"200":{"content":{"application/json":{"examples":{"renewed":{"value":{"csrf_token":"csrf_opaque_token"}}},"schema":{"properties":{"csrf_token":{"description":"Double-submit token mirrored in the `rp_csrf` cookie.","type":"string"}},"required":["csrf_token"],"type":"object"}}},"description":"CSRF token renewed.","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Renew browser CSRF token","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -L https://api.example.test/api/v1/auth/csrf \\\n  --cookie 'rp_access=\u003caccess_cookie\u003e'\n"}]}},"/api/v1/auth/login":{"post":{"operationId":"authLogin","requestBody":{"content":{"application/json":{"examples":{"primary":{"value":{"email":"owner@example.test","password":"example-password-only"}},"secondary":{"value":{"email":"admin@example.test","password":"example-password-only"}}},"schema":{"properties":{"email":{"format":"email","type":"string"},"password":{"type":"string"}},"required":["email","password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"success":{"value":{"access_expires_at":"2026-06-25T12:15:00Z","access_token":"eyJhbGciOi...","csrf_token":"csrf_opaque_token","expires_in":900,"refresh_expires_at":"2026-07-25T12:00:00Z","token_type":"Bearer"}}},"schema":{"properties":{"access_expires_at":{"format":"date-time","type":"string"},"access_token":{"type":"string"},"csrf_token":{"description":"Double-submit token mirrored in the `rp_csrf` cookie for unsafe browser cookie requests.","type":"string"},"expires_in":{"example":900,"type":"integer"},"refresh_expires_at":{"format":"date-time","type":"string"},"token_type":{"example":"Bearer","type":"string"}},"required":["access_token","token_type","expires_in","csrf_token","access_expires_at","refresh_expires_at"],"type":"object"}}},"description":"Authenticated. Browser clients also receive HttpOnly `rp_access`, HttpOnly `rp_refresh`, and readable `rp_csrf` cookies.","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"examples":{"wrong_password":{"value":{"action":"Проверьте validate email,password","detail":"Исправьте email или password и повторите вход.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Sign-in validate required","validate":"email,password"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid credentials","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Login with email/password","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/login \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\":\"owner@example.test\",\"password\":\"example-password-only\"}'\n"}]}},"/api/v1/auth/logout":{"post":{"operationId":"authLogout","responses":{"204":{"description":"Session revoked","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"examples":{"unauthorized":{"value":{"action":"Проверьте validate access_token","detail":"Выполните вход и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Session validate required","validate":"access_token"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Logout current session","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/logout \\\n  -H 'Authorization: Bearer \u003caccess_token\u003e'\n"}]}},"/api/v1/auth/me":{"get":{"operationId":"authMe","responses":{"200":{"content":{"application/json":{"examples":{"me":{"value":{"current_company_id":"b98772dd-7cf7-455d-a750-9ef142546b37","email":"owner@example.test","user_id":"e2f0d908-03d7-4ba0-9c76-f0d1553f7428"}}},"schema":{"$ref":"#/components/schemas/UserMe"}}},"description":"Current authenticated user","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"examples":{"unauthorized":{"value":{"action":"Проверьте validate access_token","detail":"Выполните вход и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Session validate required","validate":"access_token"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Current user profile","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -L https://api.example.test/api/v1/auth/me \\\n  -H 'Authorization: Bearer \u003caccess_token\u003e'\n"}]}},"/api/v1/auth/native/exchange":{"post":{"operationId":"authNativeExchange","requestBody":{"content":{"application/json":{"examples":{"qt":{"value":{"code":"oauth_code_abc","code_verifier":"qJ4...k3","state":"state_47f..."}}},"schema":{"properties":{"code":{"type":"string"},"code_verifier":{"type":"string"},"state":{"type":"string"}},"required":["code","code_verifier","state"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"success":{"value":{"access_token":"eyJhbGciOi...","device_credential":"dcred_932...","expires_in":900,"token_type":"Bearer"}}},"schema":{"properties":{"access_token":{"type":"string"},"device_credential":{"type":"string"},"expires_in":{"type":"integer"},"token_type":{"type":"string"}},"required":["access_token","token_type","expires_in","device_credential"],"type":"object"}}},"description":"Session created for native app","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"400":{"content":{"application/json":{"examples":{"invalid_exchange":{"value":{"action":"Проверьте validate code,code_verifier,state","detail":"Проверьте code, code_verifier и state, затем повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Native exchange validate required","validate":"code,code_verifier,state"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid exchange payload","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Native code exchange (Qt/Android)","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/native/exchange \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"code\":\"oauth_code_abc\",\"code_verifier\":\"qJ4...k3\",\"state\":\"state_47f...\"}'\n"}],"x-runtime-status":"preview"}},"/api/v1/auth/oauth/{provider}/callback":{"get":{"operationId":"authOauthCallback","parameters":[{"in":"path","name":"provider","required":true,"schema":{"enum":["google","yandex","vk"],"type":"string"}},{"in":"query","name":"code","required":false,"schema":{"type":"string"}},{"in":"query","name":"state","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"processed":{"value":{"status":"callback_processed"}}},"schema":{"properties":{"status":{"example":"callback_processed","type":"string"}},"required":["status"],"type":"object"}}},"description":"Callback processed","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"302":{"description":"Redirect to app/deep-link after identity mapping","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"400":{"content":{"application/json":{"examples":{"invalid":{"value":{"action":"Проверьте validate code,state","detail":"Проверьте validate code,state и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"OAuth callback validate required","validate":"code,state"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid callback payload","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"OAuth callback","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -L 'https://api.example.test/api/v1/auth/oauth/google/callback?code=abc\u0026state=state_47f'\n"}],"x-runtime-status":"preview"}},"/api/v1/auth/oauth/{provider}/start":{"get":{"operationId":"authOauthStart","parameters":[{"in":"path","name":"provider","required":true,"schema":{"enum":["google","yandex","vk"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"metadata":{"value":{"auth_url":"https://accounts.google.com/o/oauth2/v2/auth?...","state":"state_47f..."}}},"schema":{"properties":{"auth_url":{"type":"string"},"state":{"type":"string"}},"required":["auth_url","state"],"type":"object"}}},"description":"OAuth start metadata","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"302":{"description":"Redirect to provider auth page","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"400":{"content":{"application/json":{"examples":{"bad_provider":{"value":{"action":"Проверьте validate provider","detail":"Исправьте provider и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"OAuth provider validate required","validate":"provider"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unsupported provider","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"OAuth start","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -L 'https://api.example.test/api/v1/auth/oauth/google/start'\n"}],"x-runtime-status":"preview"}},"/api/v1/auth/password-reset/confirm":{"post":{"operationId":"authPasswordResetConfirm","requestBody":{"content":{"application/json":{"examples":{"confirm":{"value":{"new_password":"example-password-only","token":"rst_320ab..."}}},"schema":{"properties":{"new_password":{"minLength":12,"type":"string"},"token":{"type":"string"}},"required":["token","new_password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"done":{"value":{"status":"password_updated"}}},"schema":{"properties":{"status":{"example":"password_updated","type":"string"}},"type":"object"}}},"description":"Password changed","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"400":{"content":{"application/json":{"examples":{"invalid_token":{"value":{"action":"Проверьте validate token,new_password","detail":"Проверьте token и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Reset token validate required","validate":"token,new_password"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Reset token validation required","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Confirm password reset","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/password-reset/confirm \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"token\":\"rst_320ab...\",\"new_password\":\"example-password-only\"}'\n"}],"x-runtime-status":"preview"}},"/api/v1/auth/password-reset/request":{"post":{"operationId":"authPasswordResetRequest","requestBody":{"content":{"application/json":{"examples":{"request":{"value":{"email":"owner@example.test"}}},"schema":{"properties":{"email":{"format":"email","type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"accepted":{"value":{"status":"reset_requested"}}},"schema":{"properties":{"status":{"example":"reset_requested","type":"string"}},"type":"object"}}},"description":"Reset flow accepted","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"content":{"application/json":{"examples":{"invalid_email":{"value":{"action":"Проверьте validate email","detail":"Исправьте email и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Email validate required","validate":"email"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Email validation required","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Request password reset","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/password-reset/request \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\":\"owner@example.test\"}'\n"}],"x-runtime-status":"preview"}},"/api/v1/auth/profile":{"patch":{"operationId":"authProfilePatch","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation authProfilePatch","tags":["auth"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/auth/refresh":{"post":{"description":"Uses the HttpOnly `rp_refresh` cookie and rotates access, refresh, and CSRF tokens. Browser clients must send `X-CSRF-Token` matching the readable `rp_csrf` cookie.","operationId":"authRefresh","parameters":[{"description":"Required for browser cookie refresh requests.","in":"header","name":"X-CSRF-Token","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"refreshed":{"value":{"access_expires_at":"2026-06-25T12:15:00Z","access_token":"eyJhbGciOi...","csrf_token":"csrf_opaque_token","expires_in":900,"refresh_expires_at":"2026-07-25T12:00:00Z","token_type":"Bearer"}}},"schema":{"properties":{"access_expires_at":{"format":"date-time","type":"string"},"access_token":{"type":"string"},"csrf_token":{"type":"string"},"expires_in":{"type":"integer"},"refresh_expires_at":{"format":"date-time","type":"string"},"token_type":{"type":"string"}},"required":["access_token","token_type","expires_in","csrf_token","access_expires_at","refresh_expires_at"],"type":"object"}}},"description":"Token refreshed. A reused old refresh token revokes the session family.","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"examples":{"unauthorized":{"value":{"action":"Проверьте validate access_token","detail":"Выполните вход и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Session validate required","validate":"access_token"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or mismatched CSRF token for a browser cookie refresh request.","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Refresh access token","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/refresh \\\n  -H 'X-CSRF-Token: \u003crp_csrf\u003e' \\\n  --cookie 'rp_refresh=\u003crefresh_cookie\u003e; rp_csrf=\u003crp_csrf\u003e'\n"}]}},"/api/v1/auth/refresh/csrf":{"get":{"description":"Issues a fresh readable `rp_csrf` cookie when the browser still has a valid refresh cookie but the short access cookie or readable CSRF cookie is missing. This endpoint does not rotate the refresh token and does not return an access token.","operationId":"authRefreshCSRF","responses":{"200":{"content":{"application/json":{"examples":{"renewed":{"value":{"csrf_token":"csrf_opaque_token"}}},"schema":{"properties":{"csrf_token":{"description":"Double-submit token mirrored in the `rp_csrf` cookie.","type":"string"}},"required":["csrf_token"],"type":"object"}}},"description":"CSRF token renewed from refresh cookie.","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Missing or invalid refresh cookie.","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[],"summary":"Renew browser CSRF token from refresh cookie","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -L https://api.example.test/api/v1/auth/refresh/csrf \\\n  --cookie 'rp_refresh=\u003crefresh_cookie\u003e'\n"}]}},"/api/v1/auth/register":{"post":{"description":"Create inactive account and issue activation flow.","operationId":"authRegister","requestBody":{"content":{"application/json":{"examples":{"admin":{"value":{"email":"admin@example.test","password":"example-password-only"}},"owner":{"value":{"email":"owner@example.test","password":"example-password-only"}}},"schema":{"properties":{"email":{"format":"email","type":"string"},"password":{"minLength":12,"type":"string"}},"required":["email","password"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"examples":{"created":{"value":{"status":"activation_required"}}},"schema":{"properties":{"status":{"example":"activation_required","type":"string"}},"required":["status"],"type":"object"}}},"description":"Registration accepted","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"content":{"application/json":{"examples":{"invalid_email":{"value":{"action":"Проверьте validate email","detail":"Исправьте email и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Validation required","validate":"email"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Validation error","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Register account","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/register \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\":\"owner@example.test\",\"password\":\"example-password-only\"}'\n"}]}},"/api/v1/auth/sessions":{"get":{"operationId":"authSessionList","responses":{"200":{"content":{"application/json":{"examples":{"list":{"value":[{"client_type":"web","created_at":"2026-03-02T10:00:00Z","device_label":"Chrome on macOS","ip_address":"203.0.113.10","is_current":true,"last_seen_at":"2026-03-02T10:15:00Z","session_id":"9d660b52-2e4e-4b0c-8ab0-ce0df8a3e550"},{"client_type":"qt-linux","created_at":"2026-03-01T12:00:00Z","device_label":"Qt App on Ubuntu","ip_address":"203.0.113.11","is_current":false,"last_seen_at":"2026-03-02T09:55:00Z","session_id":"3d3d35f7-1502-449b-a756-ec2f8d3d7cb0"}]}},"schema":{"items":{"$ref":"#/components/schemas/SessionView"},"type":"array"}}},"description":"Sessions list","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"examples":{"unauthorized":{"value":{"action":"Проверьте validate access_token","detail":"Выполните вход и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Session validate required","validate":"access_token"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"List user sessions","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -L https://api.example.test/api/v1/auth/sessions \\\n  -H 'Authorization: Bearer \u003caccess_token\u003e'\n"}]}},"/api/v1/auth/sessions/revoke-others":{"post":{"operationId":"authSessionsRevokeOthers","responses":{"200":{"content":{"application/json":{"examples":{"done":{"value":{"revoked_count":2,"status":"revoked_others"}}},"schema":{"properties":{"revoked_count":{"example":2,"type":"integer"},"status":{"example":"revoked_others","type":"string"}},"required":["status","revoked_count"],"type":"object"}}},"description":"Other sessions revoked","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"examples":{"unauthorized":{"value":{"action":"Проверьте validate access_token","detail":"Выполните вход и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Session validate required","validate":"access_token"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Revoke all sessions except current","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/sessions/revoke-others \\\n  -H 'Authorization: Bearer \u003caccess_token\u003e'\n"}],"x-runtime-status":"preview"}},"/api/v1/auth/sessions/{session_id}":{"delete":{"operationId":"authSessionDelete","parameters":[{"in":"path","name":"session_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"revoked":{"value":{"status":"revoked"}}},"schema":{"properties":{"status":{"example":"revoked","type":"string"}},"type":"object"}}},"description":"Session revoked","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"content":{"application/json":{"examples":{"session_missing":{"value":{"action":"Проверьте validate session_id","detail":"Проверьте session_id и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Session validate required","validate":"session_id"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Session not found","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Revoke one session","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X DELETE https://api.example.test/api/v1/auth/sessions/9d660b52-2e4e-4b0c-8ab0-ce0df8a3e550 \\\n  -H 'Authorization: Bearer \u003caccess_token\u003e'\n"}]}},"/api/v1/auth/telegram/miniapp":{"post":{"operationId":"authTelegramMiniApp","requestBody":{"content":{"application/json":{"examples":{"tg":{"value":{"init_data":"query_id=AAE...\u0026user=%7B...%7D\u0026hash=..."}}},"schema":{"properties":{"init_data":{"type":"string"}},"required":["init_data"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"examples":{"success":{"value":{"access_token":"eyJhbGciOi...","expires_in":900,"token_type":"Bearer"}}},"schema":{"properties":{"access_token":{"type":"string"},"expires_in":{"type":"integer"},"token_type":{"type":"string"}},"required":["access_token","token_type","expires_in"],"type":"object"}}},"description":"Authenticated via Telegram","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"400":{"content":{"application/json":{"examples":{"invalid_tg_data":{"value":{"action":"Проверьте validate init_data","detail":"Проверьте init_data и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Telegram payload validate required","validate":"init_data"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid Telegram init data","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Telegram Mini App sign-in","tags":["auth"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/auth/telegram/miniapp \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"init_data\":\"query_id=AAE...\u0026user=%7B...%7D\u0026hash=...\"}'\n"}],"x-runtime-status":"preview"}},"/api/v1/auth/workspace-context":{"get":{"operationId":"authWorkspaceContextGet","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceContext"}}},"description":"Persisted active company and project for this user"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized"}},"security":[{"bearerAuth":[]}],"summary":"Get persisted workspace context","tags":["auth"]},"put":{"operationId":"authWorkspaceContextPut","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceContextPatch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceContext"}}},"description":"Updated workspace context"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Company or project is not available to the user"}},"security":[{"bearerAuth":[]}],"summary":"Persist active company and project context","tags":["auth"]}},"/api/v1/client-service-types":{"get":{"operationId":"clientServiceTypeList","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientServiceTypeView"},"type":"array"}}},"description":"Default and shared client service types"}},"security":[{"bearerAuth":[]}],"summary":"List default client service types","tags":["clients"]}},"/api/v1/client-services/{client_service_id}":{"delete":{"operationId":"clientServiceDelete","parameters":[{"$ref":"#/components/parameters/client_service_id"}],"responses":{"204":{"description":"Archived"}},"security":[{"bearerAuth":[]}],"summary":"Archive client service by client_service_id","tags":["clients"]},"get":{"operationId":"clientServiceGet","parameters":[{"$ref":"#/components/parameters/client_service_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientServiceView"}}},"description":"Service"}},"security":[{"bearerAuth":[]}],"summary":"Get client service by client_service_id","tags":["clients"]},"patch":{"operationId":"clientServicePatch","parameters":[{"$ref":"#/components/parameters/client_service_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientServicePatch"}}},"required":true},"responses":{"204":{"description":"Updated"},"404":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Update client service by client_service_id","tags":["clients"]}},"/api/v1/clients/{client_id}":{"delete":{"operationId":"clientDelete","parameters":[{"$ref":"#/components/parameters/client_id"}],"responses":{"204":{"description":"Archived"},"404":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Archive client","tags":["clients"]},"get":{"operationId":"clientGet","parameters":[{"$ref":"#/components/parameters/client_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientView"}}},"description":"Client"},"404":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Get client workspace root by client_id","tags":["clients"]},"patch":{"operationId":"clientPatch","parameters":[{"$ref":"#/components/parameters/client_id"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"204":{"description":"Updated"},"404":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Update client","tags":["clients"]}},"/api/v1/clients/{client_id}/contacts":{"get":{"operationId":"clientContactList","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientContactList","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"clientContactCreate","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientContactCreate","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/clients/{client_id}/contacts/{client_contact_id}":{"delete":{"operationId":"clientContactDelete","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"client_contact_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientContactDelete","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"clientContactPatch","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"client_contact_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientContactPatch","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/clients/{client_id}/payment-actions":{"get":{"operationId":"clientPaymentActionList","parameters":[{"$ref":"#/components/parameters/client_id"},{"in":"query","name":"project_id","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PaymentActionView"},"type":"array"}}},"description":"Payment actions"}},"security":[{"bearerAuth":[]}],"summary":"List client payments/accruals inside client workspace","tags":["clients"]}},"/api/v1/clients/{client_id}/payments/manual":{"post":{"description":"Command endpoint for the client workspace. It creates or reuses a payment action for the\nservice period, records a payment fact, stores an idempotent payment event, and lets the\nworkflow payment_due action rebuild the full project snapshot.\n","operationId":"clientManualPaymentRecord","parameters":[{"$ref":"#/components/parameters/client_id"},{"in":"header","name":"Idempotency-Key","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualPaymentRecordRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualPaymentRecordResponse"}}},"description":"Duplicate idempotency key; existing event returned"},"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManualPaymentRecordResponse"}}},"description":"Payment event processed"},"409":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Record received money manually and emit payment event","tags":["clients"]}},"/api/v1/clients/{client_id}/projects":{"get":{"operationId":"clientProjectList","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientProjectList","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/clients/{client_id}/projects/{project_id}":{"delete":{"operationId":"clientProjectUnlink","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientProjectUnlink","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"clientProjectLink","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientProjectLink","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/clients/{client_id}/responsibles":{"get":{"operationId":"clientResponsibleList","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientResponsibleList","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"clientResponsibleCreate","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientResponsibleCreate","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/clients/{client_id}/responsibles/{client_responsible_id}":{"delete":{"operationId":"clientResponsibleDelete","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"client_responsible_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientResponsibleDelete","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"clientResponsiblePatch","parameters":[{"in":"path","name":"client_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"client_responsible_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientResponsiblePatch","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/clients/{client_id}/services":{"get":{"operationId":"clientServiceList","parameters":[{"$ref":"#/components/parameters/client_id"},{"in":"query","name":"project_id","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientServiceView"},"type":"array"}}},"description":"Client services"}},"security":[{"bearerAuth":[]}],"summary":"List services inside client workspace","tags":["clients"]},"post":{"operationId":"clientServiceCreate","parameters":[{"$ref":"#/components/parameters/client_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientServiceInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"client_service_id":{"format":"uuid","type":"string"}},"required":["client_service_id"],"type":"object"}}},"description":"Created"}},"security":[{"bearerAuth":[]}],"summary":"Create client service","tags":["clients"]}},"/api/v1/companies":{"get":{"operationId":"companyList","responses":{"200":{"content":{"application/json":{"examples":{"list":{"value":[{"company_id":"b98772dd-7cf7-455d-a750-9ef142546b37","name":"Example Core","role":"owner","slug":"example-core"},{"company_id":"4e8b9d61-5f51-49e6-a9f6-7f95f5141525","name":"Example Labs","role":"admin","slug":"example-labs"}]}},"schema":{"items":{"$ref":"#/components/schemas/CompanyView"},"type":"array"}}},"description":"Companies list","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"examples":{"unauthorized":{"value":{"action":"Проверьте validate access_token","detail":"Выполните вход и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Session validate required","validate":"access_token"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"List user companies","tags":["company"],"x-codeSamples":[{"lang":"curl","source":"curl -L https://api.example.test/api/v1/companies \\\n  -H 'Authorization: Bearer \u003caccess_token\u003e'\n"}]},"post":{"operationId":"companyCreate","requestBody":{"content":{"application/json":{"examples":{"create":{"value":{"name":"Example Logistics","slug":"example-logistics"}}},"schema":{"properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["name","slug"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"examples":{"created":{"value":{"company_id":"d48c9e93-d699-45be-94f0-8040f67f487a","name":"Example Logistics","role":"owner","slug":"example-logistics"}}},"schema":{"$ref":"#/components/schemas/CompanyView"}}},"description":"Company created","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"content":{"application/json":{"examples":{"conflict":{"value":{"action":"Проверьте validate slug","detail":"Исправьте slug и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Company slug validate required","validate":"slug"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Slug conflict","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Create company","tags":["company"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/companies \\\n  -H 'Authorization: Bearer \u003caccess_token\u003e' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"name\":\"Example Logistics\",\"slug\":\"example-logistics\"}'\n"}]}},"/api/v1/companies/{company_id}":{"get":{"operationId":"companyGet","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation companyGet","tags":["company"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"companyPatch","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation companyPatch","tags":["company"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/companies/{company_id}/clients":{"get":{"operationId":"clientList","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientList","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"clientCreate","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientCreate","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/companies/{company_id}/clients/dadata/find-party":{"post":{"operationId":"clientDadataFindParty","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation clientDadataFindParty","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/companies/{company_id}/integrations/dadata":{"get":{"operationId":"companyDadataIntegrationGet","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation companyDadataIntegrationGet","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"},"put":{"operationId":"companyDadataIntegrationSave","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation companyDadataIntegrationSave","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/companies/{company_id}/legal-entities":{"get":{"operationId":"companyLegalEntityList","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation companyLegalEntityList","tags":["company"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"companyLegalEntityCreate","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation companyLegalEntityCreate","tags":["company"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/companies/{company_id}/projects":{"get":{"operationId":"projectList","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectList","tags":["project"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"projectCreate","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectCreate","tags":["project"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/companies/{company_id}/switch":{"post":{"operationId":"companySwitch","parameters":[{"in":"path","name":"company_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"switched":{"value":{"current_company_id":"b98772dd-7cf7-455d-a750-9ef142546b37","status":"switched"}}},"schema":{"properties":{"current_company_id":{"format":"uuid","type":"string"},"status":{"example":"switched","type":"string"}},"required":["status","current_company_id"],"type":"object"}}},"description":"Active company switched","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"content":{"application/json":{"examples":{"forbidden":{"value":{"action":"Проверьте validate company_id,membership","detail":"Проверьте membership в выбранной компании.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Membership validate required","validate":"company_id,membership"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"No membership","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Switch active company","tags":["company"],"x-codeSamples":[{"lang":"curl","source":"curl -X POST https://api.example.test/api/v1/companies/b98772dd-7cf7-455d-a750-9ef142546b37/switch \\\n  -H 'Authorization: Bearer \u003caccess_token\u003e'\n"}]}},"/api/v1/company-legal-entities/{company_legal_entity_id}":{"delete":{"operationId":"companyLegalEntityDelete","parameters":[{"in":"path","name":"company_legal_entity_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation companyLegalEntityDelete","tags":["company"],"x-runtime-source":"endpoints.inventory.tsv"},"get":{"operationId":"companyLegalEntityGet","parameters":[{"in":"path","name":"company_legal_entity_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation companyLegalEntityGet","tags":["company"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"companyLegalEntityPatch","parameters":[{"in":"path","name":"company_legal_entity_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation companyLegalEntityPatch","tags":["company"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/desktop/auth/poll":{"post":{"operationId":"desktopAuthPoll","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation desktopAuthPoll","tags":["desktop"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/desktop/auth/start":{"post":{"operationId":"desktopAuthStart","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation desktopAuthStart","tags":["desktop"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/desktop/messages":{"get":{"operationId":"desktopMessages","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation desktopMessages","tags":["desktop"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/desktop/messages/stream":{"get":{"operationId":"desktopMessagesStream","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation desktopMessagesStream","tags":["desktop"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/desktop/messages/{desktop_message_id}/ack":{"post":{"operationId":"desktopMessageAck","parameters":[{"in":"path","name":"desktop_message_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation desktopMessageAck","tags":["desktop"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/docs/ai-tools.json":{"get":{"operationId":"docsAIToolsJson","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation docsAIToolsJson","tags":["docs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/docs/endpoints":{"get":{"description":"Returns every endpoint with method/path/summary, multiple examples,\nand testing hints (curl + scenario checklist).\n","operationId":"docsEndpointsCatalog","parameters":[{"in":"query","name":"tag","required":false,"schema":{"enum":["auth","company","docs"],"type":"string"}},{"in":"query","name":"method","required":false,"schema":{"enum":["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"catalog":{"value":{"endpoints":[{"curl_examples":["curl -X POST https://api.example.test/api/v1/auth/login -H 'Content-Type: application/json' -d '{\"email\":\"owner@example.test\",\"password\":\"example-password-only\"}'","curl -X POST https://api.example.test/api/v1/auth/login -H 'Content-Type: application/json' -d '{\"email\":\"admin@example.test\",\"password\":\"example-password-only\"}'"],"method":"POST","operation_id":"authLogin","path":"/api/v1/auth/login","summary":"Login with email/password","tag":"auth","test_hints":["happy_path_valid_credentials","error_invalid_password"]}],"generated_at":"2026-03-02T15:00:00Z","version":"1.1.0"}}},"schema":{"$ref":"#/components/schemas/EndpointDocList"}}},"description":"Endpoint catalog","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Action":{"$ref":"#/components/headers/X-App-Action"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-App-Validate":{"$ref":"#/components/headers/X-App-Validate"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"400":{"content":{"application/json":{"examples":{"invalid_filter":{"value":{"action":"Проверьте validate tag,method","detail":"Исправьте query-параметры и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Docs filter validate required","validate":"tag,method"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Invalid filter values","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Action":{"$ref":"#/components/headers/X-App-Action"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-App-Validate":{"$ref":"#/components/headers/X-App-Validate"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Endpoint catalog with examples and testing hints","tags":["docs"],"x-codeSamples":[{"lang":"curl","source":"curl -L https://api.example.test/api/v1/docs/endpoints?tag=auth\n"}]}},"/api/v1/docs/integrations/search":{"get":{"operationId":"docsIntegrationSearch","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation docsIntegrationSearch","tags":["docs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/docs/integrations/{public_slug}.md":{"get":{"operationId":"docsIntegrationMarkdown","parameters":[{"in":"path","name":"public_slug","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation docsIntegrationMarkdown","tags":["docs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/docs/openapi.json":{"get":{"description":"Returns full bundled OpenAPI document for SDK generation and testing tools.","operationId":"docsOpenapiJson","responses":{"200":{"content":{"application/json":{"examples":{"sample":{"value":{"info":{"title":"Generated Stack API","version":"1.1.0"},"openapi":"3.2.0"}}},"schema":{"type":"object"}}},"description":"OpenAPI JSON","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Action":{"$ref":"#/components/headers/X-App-Action"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-App-Validate":{"$ref":"#/components/headers/X-App-Validate"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"content":{"application/json":{"examples":{"docs_not_found":{"value":{"action":"Проверьте validate docs_path","detail":"Проверьте путь документации и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Docs path validate required","validate":"docs_path"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Docs asset not found","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Action":{"$ref":"#/components/headers/X-App-Action"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-App-Validate":{"$ref":"#/components/headers/X-App-Validate"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"content":{"application/json":{"examples":{"docs_unavailable":{"value":{"action":"Проверьте validate docs_storage","detail":"Повторите запрос позже или обратитесь в поддержку.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"error","title":"Docs storage unavailable","validate":"docs_storage"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Docs asset unavailable","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Action":{"$ref":"#/components/headers/X-App-Action"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-App-Validate":{"$ref":"#/components/headers/X-App-Validate"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Download bundled OpenAPI JSON","tags":["docs"],"x-codeSamples":[{"lang":"curl","source":"curl -L https://api.example.test/api/v1/docs/openapi.json\n"}]}},"/api/v1/docs/openapi.yaml":{"get":{"operationId":"docsOpenapiYaml","responses":{"200":{"content":{"text/yaml":{"examples":{"snippet":{"value":"openapi: 3.2.0\ninfo:\n  title: Generated Stack API\n  version: 1.1.0\n"}},"schema":{"type":"string"}}},"description":"OpenAPI YAML","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Action":{"$ref":"#/components/headers/X-App-Action"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-App-Validate":{"$ref":"#/components/headers/X-App-Validate"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"content":{"application/json":{"examples":{"docs_not_found":{"value":{"action":"Проверьте validate docs_path","detail":"Проверьте путь документации и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Docs path validate required","validate":"docs_path"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Docs asset not found","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Action":{"$ref":"#/components/headers/X-App-Action"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-App-Validate":{"$ref":"#/components/headers/X-App-Validate"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Download bundled OpenAPI YAML","tags":["docs"],"x-codeSamples":[{"lang":"curl","source":"curl -L https://api.example.test/api/v1/docs/openapi.yaml\n"}]}},"/api/v1/docs/testing/postman":{"get":{"description":"Returns metadata for generated Postman collection and download endpoint.","operationId":"docsTestingPostman","responses":{"200":{"content":{"application/json":{"examples":{"postman":{"value":{"download_url":"https://api.example.test/api/v1/docs/testing/postman","format":"postman-v2.1","version":"1.1.0"}}},"schema":{"$ref":"#/components/schemas/TestingCollection"}}},"description":"Testing collection","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Action":{"$ref":"#/components/headers/X-App-Action"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-App-Validate":{"$ref":"#/components/headers/X-App-Validate"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"content":{"application/json":{"examples":{"artifact_missing":{"value":{"action":"Проверьте validate collection_artifact","detail":"Повторите генерацию testing collection и повторите запрос.","request_id":"req_01HPX4K9V7F5Q3Q0M3X6B8N1TZ","status":"fix_required","title":"Testing collection validate required","validate":"collection_artifact"}}},"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Testing collection artifact not found","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Action":{"$ref":"#/components/headers/X-App-Action"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-App-Validate":{"$ref":"#/components/headers/X-App-Validate"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Postman testing collection metadata","tags":["docs"],"x-codeSamples":[{"lang":"curl","source":"curl -L https://api.example.test/api/v1/docs/testing/postman\n"}]}},"/api/v1/payment-action-documents/{payment_action_document_id}":{"get":{"operationId":"paymentActionDocumentGet","parameters":[{"in":"path","name":"payment_action_document_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation paymentActionDocumentGet","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/payment-actions/{payment_action_id}":{"get":{"operationId":"paymentActionGet","parameters":[{"$ref":"#/components/parameters/payment_action_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentActionView"}}},"description":"Payment action"},"404":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Get payment action by payment_action_id","tags":["clients"]}},"/api/v1/payment-actions/{payment_action_id}/confirm":{"post":{"description":"Command endpoint for existing accrual/payment actions. It records the payment fact,\nstores source and payment method, optionally overrides the next service due date,\nand lets connected payment_due workflows rebuild the full project snapshot.\n","operationId":"paymentActionConfirm","parameters":[{"$ref":"#/components/parameters/payment_action_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentActionConfirmRequest"}}},"required":false},"responses":{"204":{"description":"Confirmed"},"404":{"$ref":"#/components/responses/problem"},"409":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Confirm received money for an existing payment action","tags":["clients"]}},"/api/v1/payment-actions/{payment_action_id}/documents":{"get":{"operationId":"paymentActionDocumentList","parameters":[{"in":"path","name":"payment_action_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation paymentActionDocumentList","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"paymentActionDocumentCreate","parameters":[{"in":"path","name":"payment_action_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation paymentActionDocumentCreate","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/payment-actions/{payment_action_id}/snooze":{"post":{"operationId":"paymentActionSnooze","parameters":[{"$ref":"#/components/parameters/payment_action_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentActionSnoozeRequest"}}},"required":true},"responses":{"204":{"description":"Snoozed"},"404":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Snooze payment action reminder","tags":["clients"]}},"/api/v1/projects/{project_id}":{"get":{"operationId":"projectGet","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectGet","tags":["project"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"projectPatch","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectPatch","tags":["project"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/action-dependencies":{"get":{"operationId":"actionDepList","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation actionDepList","tags":["deps"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"actionDepCreate","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation actionDepCreate","tags":["deps"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/action-dependencies/{action_dependency_id}":{"delete":{"operationId":"actionDepDelete","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"action_dependency_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation actionDepDelete","tags":["deps"],"x-runtime-source":"endpoints.inventory.tsv"},"get":{"operationId":"actionDepGet","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"action_dependency_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation actionDepGet","tags":["deps"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"actionDepPatch","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"action_dependency_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation actionDepPatch","tags":["deps"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/action-dependencies/{action_dependency_id}/models":{"get":{"operationId":"aiModelsByDependency","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/action_dependency_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIModelList"}}},"description":"Models"}},"security":[{"bearerAuth":[]}],"summary":"Список моделей для project integration","tags":["ai"]}},"/api/v1/projects/{project_id}/action-dependencies/{action_dependency_id}/models/evaluate":{"post":{"operationId":"aiModelsEvaluate","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/action_dependency_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIModelEvaluationResult"}}},"description":"Model evaluation result"}},"security":[{"bearerAuth":[]}],"summary":"Оценить модели провайдера и выбрать дефолты для AI-сотрудника","tags":["ai"]}},"/api/v1/projects/{project_id}/action-dependencies/{action_dependency_id}/models/refresh":{"post":{"operationId":"aiModelsRefresh","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/action_dependency_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIModelList"}}},"description":"Refreshed models"}},"security":[{"bearerAuth":[]}],"summary":"Обновить model cache для integration","tags":["ai"]}},"/api/v1/projects/{project_id}/action-dependencies/{action_dependency_id}/rotate-secret":{"post":{"operationId":"actionDepRotateSecret","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"action_dependency_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation actionDepRotateSecret","tags":["deps"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/action-dependencies/{action_dependency_id}/telegram-relay-polling":{"post":{"operationId":"actionDepTelegramRelayPolling","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"action_dependency_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation actionDepTelegramRelayPolling","tags":["deps"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/action-dependencies/{action_dependency_id}/telegram-relay-webhook-secret/rotate":{"post":{"operationId":"actionDepTelegramRelaySecretRotate","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"action_dependency_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation actionDepTelegramRelaySecretRotate","tags":["deps"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/action-dependencies/{action_dependency_id}/test":{"post":{"operationId":"actionDepTest","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"action_dependency_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation actionDepTest","tags":["deps"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/ai/employee":{"get":{"operationId":"aiEmployeeGet","parameters":[{"$ref":"#/components/parameters/project_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIEmployeeEnvelope"}}},"description":"Project AI employee envelope"},"401":{"$ref":"#/components/responses/Problem"}},"security":[{"bearerAuth":[]}],"summary":"Получить или lazy-create AI-сотрудника проекта","tags":["ai"]},"patch":{"operationId":"aiEmployeePatch","parameters":[{"$ref":"#/components/parameters/project_id"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"action_dependency_id":{"format":"uuid","type":"string"},"display_name":{"type":"string"},"memory_policy_json":{"type":"object"},"model_id":{"type":"string"},"profile_json":{"type":"object"},"status":{"enum":["active","disabled","archived"],"type":"string"},"tool_policy_json":{"type":"object"},"ui_settings_json":{"type":"object"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIEmployeeEnvelope"}}},"description":"Updated employee envelope"},"401":{"$ref":"#/components/responses/Problem"}},"security":[{"bearerAuth":[]}],"summary":"Обновить настройки AI-сотрудника проекта","tags":["ai"]}},"/api/v1/projects/{project_id}/ai/employee/capability":{"get":{"operationId":"aiEmployeeCapability","parameters":[{"$ref":"#/components/parameters/project_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"capability":{"$ref":"#/components/schemas/AICapability"}},"type":"object"}}},"description":"AI employee capability envelope"},"401":{"$ref":"#/components/responses/Problem"}},"security":[{"bearerAuth":[]}],"summary":"Получить capability state AI-сотрудника проекта","tags":["ai"]}},"/api/v1/projects/{project_id}/ai/employee/sessions":{"post":{"operationId":"aiEmployeeSessionCreate","parameters":[{"$ref":"#/components/parameters/project_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AISessionCreate"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIChatSession"}}},"description":"Created session"}},"security":[{"bearerAuth":[]}],"summary":"Создать chat session AI-сотрудника","tags":["ai"]}},"/api/v1/projects/{project_id}/ai/employee/sessions/{session_id}":{"get":{"operationId":"aiEmployeeSessionGet","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/session_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIChatSession"}}},"description":"Session with messages"}},"security":[{"bearerAuth":[]}],"summary":"Получить AI chat session","tags":["ai"]}},"/api/v1/projects/{project_id}/ai/employee/sessions/{session_id}/cancel":{"post":{"operationId":"aiEmployeeSessionCancel","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/session_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIChatSession"}}},"description":"Canceled session"}},"security":[{"bearerAuth":[]}],"summary":"Отменить AI chat session","tags":["ai"]}},"/api/v1/projects/{project_id}/ai/employee/sessions/{session_id}/messages":{"post":{"operationId":"aiEmployeeMessagePost","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/session_id"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active_patch_proposal_id":{"format":"uuid","type":"string"},"active_tool_call_id":{"format":"uuid","type":"string"},"body":{"type":"string"},"client_command":{"type":"string"},"client_context_json":{"additionalProperties":true,"type":"object"},"local_date":{"type":"string"},"page_context_json":{"$ref":"#/components/schemas/AIPageContext"},"reply_to_message_id":{"format":"uuid","type":"string"},"timezone":{"type":"string"},"ui_state_json":{"additionalProperties":true,"type":"object"}},"required":["body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIChatSession"}}},"description":"Updated session"}},"security":[{"bearerAuth":[]}],"summary":"Отправить сообщение AI-сотруднику","tags":["ai"]}},"/api/v1/projects/{project_id}/ai/employee/sessions/{session_id}/messages/stream":{"post":{"operationId":"aiEmployeeMessageStream","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation aiEmployeeMessageStream","tags":["ai"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/ai/model-providers":{"get":{"operationId":"aiModelProviders","parameters":[{"$ref":"#/components/parameters/project_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AIModelProvider"},"type":"array"}},"type":"object"}}},"description":"Model provider catalog"},"401":{"$ref":"#/components/responses/Problem"}},"security":[{"bearerAuth":[]}],"summary":"Список AI-провайдеров моделей для проекта","tags":["ai"]}},"/api/v1/projects/{project_id}/ai/tool-calls/{tool_call_id}":{"patch":{"operationId":"aiToolCallPatch","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"tool_call_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation aiToolCallPatch","tags":["ai"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/ai/tool-calls/{tool_call_id}/approve":{"post":{"operationId":"aiToolCallApprove","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/tool_call_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIChatSession"}}},"description":"Updated AI session after tool execution"}},"security":[{"bearerAuth":[]}],"summary":"Подтвердить и выполнить AI tool call","tags":["ai"]}},"/api/v1/projects/{project_id}/ai/tool-calls/{tool_call_id}/reject":{"post":{"operationId":"aiToolCallReject","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/tool_call_id"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"reason":{"type":"string"}},"type":"object"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AIChatSession"}}},"description":"Updated AI session after rejection"}},"security":[{"bearerAuth":[]}],"summary":"Отклонить AI tool call без side effect","tags":["ai"]}},"/api/v1/projects/{project_id}/client-service-types":{"get":{"operationId":"projectClientServiceTypeList","parameters":[{"$ref":"#/components/parameters/project_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientServiceTypeView"},"type":"array"}}},"description":"Project service types"}},"security":[{"bearerAuth":[]}],"summary":"List editable project service types","tags":["clients"]},"post":{"operationId":"projectClientServiceTypeCreate","parameters":[{"$ref":"#/components/parameters/project_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientServiceTypeInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"client_service_type_id":{"format":"uuid","type":"string"}},"required":["client_service_type_id"],"type":"object"}}},"description":"Created or existing active type returned"},"409":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Create or reuse a project service type","tags":["clients"]}},"/api/v1/projects/{project_id}/client-service-types/{client_service_type_id}":{"delete":{"operationId":"projectClientServiceTypeArchive","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/client_service_type_id"}],"responses":{"204":{"description":"Archived"},"404":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Archive a project service type","tags":["clients"]},"patch":{"operationId":"projectClientServiceTypePatch","parameters":[{"$ref":"#/components/parameters/project_id"},{"$ref":"#/components/parameters/client_service_type_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientServiceTypePatch"}}},"required":true},"responses":{"204":{"description":"Updated"},"404":{"$ref":"#/components/responses/problem"},"409":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Update a project service type","tags":["clients"]}},"/api/v1/projects/{project_id}/email-templates":{"get":{"operationId":"emailTplList","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation emailTplList","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"emailTplCreate","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation emailTplCreate","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/email-templates/{email_template_id}":{"delete":{"operationId":"emailTplDelete","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"email_template_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation emailTplDelete","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"},"get":{"operationId":"emailTplGet","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"email_template_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation emailTplGet","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"emailTplPatch","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"email_template_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation emailTplPatch","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/hook-secret/rotate":{"post":{"operationId":"projectHookSecretRotate","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectHookSecretRotate","tags":["project"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/integration-docs/search":{"get":{"operationId":"projectIntegrationDocsSearch","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectIntegrationDocsSearch","tags":["docs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/integrations/dadata":{"get":{"operationId":"projectDadataIntegrationGet","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectDadataIntegrationGet","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"},"put":{"operationId":"projectDadataIntegrationSave","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectDadataIntegrationSave","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/message-templates":{"get":{"operationId":"messageTplList","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation messageTplList","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"messageTplCreate","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation messageTplCreate","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/message-templates/{message_template_id}":{"delete":{"operationId":"messageTplDelete","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"message_template_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation messageTplDelete","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"},"get":{"operationId":"messageTplGet","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"message_template_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation messageTplGet","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"messageTplPatch","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"message_template_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation messageTplPatch","tags":["templates"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/payment-actions":{"get":{"operationId":"projectPaymentActionList","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectPaymentActionList","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/payment-actions/manual":{"post":{"operationId":"projectPaymentActionManualCreate","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectPaymentActionManualCreate","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/payment-schedule":{"get":{"operationId":"projectPaymentSchedule","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation projectPaymentSchedule","tags":["clients"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/projects/{project_id}/site-chat-widgets":{"get":{"operationId":"siteChatWidgetList","parameters":[{"$ref":"#/components/parameters/project_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SiteChatWidget"},"type":"array"}}},"description":"Widgets"}},"security":[{"bearerAuth":[]}],"summary":"List project site chat widgets","tags":["site_chat"]},"post":{"operationId":"siteChatWidgetCreate","parameters":[{"$ref":"#/components/parameters/project_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatWidgetInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"chat_widget_id":{"format":"uuid","type":"string"}},"required":["chat_widget_id"],"type":"object"}}},"description":"Widget id"}},"security":[{"bearerAuth":[]}],"summary":"Create project site chat widget","tags":["site_chat"]}},"/api/v1/projects/{project_id}/site-visitors/active":{"get":{"operationId":"siteChatActiveVisitors","parameters":[{"$ref":"#/components/parameters/project_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SiteVisitorSession"},"type":"array"}}},"description":"Active visitors"}},"security":[{"bearerAuth":[]}],"summary":"List active visitors with derived visitor_state_snapshot","tags":["site_chat"]}},"/api/v1/projects/{project_id}/workflows":{"get":{"operationId":"workflowList","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowList","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"workflowCreate","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowCreate","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/providers/catalog":{"get":{"operationId":"providerCatalog","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation providerCatalog","tags":["catalog"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/public/site-chat/calls/request":{"post":{"operationId":"siteChatPublicCallRequest","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallSession"}}},"description":"Call session"}},"summary":"Visitor requests a call from Pulse operator","tags":["site_chat"]}},"/api/v1/public/site-chat/calls/{call_session_id}/accept":{"post":{"operationId":"siteChatPublicCallAccept","parameters":[{"$ref":"#/components/parameters/call_session_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallSession"}}},"description":"Call session"}},"summary":"Visitor accepts offered call after privacy/recording consent","tags":["site_chat"]}},"/api/v1/public/site-chat/calls/{call_session_id}/end":{"post":{"operationId":"siteChatPublicCallEnd","parameters":[{"$ref":"#/components/parameters/call_session_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallInput"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallSession"}}},"description":"Call session"}},"summary":"Visitor ends active call","tags":["site_chat"]}},"/api/v1/public/site-chat/calls/{call_session_id}/reject":{"post":{"operationId":"siteChatPublicCallReject","parameters":[{"$ref":"#/components/parameters/call_session_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallInput"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallSession"}}},"description":"Call session"}},"summary":"Visitor rejects offered call","tags":["site_chat"]}},"/api/v1/public/site-chat/conversations":{"post":{"operationId":"siteChatPublicConversationCreate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatMessageInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatConversation"}}},"description":"Conversation"}},"summary":"Public visitor starts chat conversation","tags":["site_chat"]}},"/api/v1/public/site-chat/conversations/{conversation_id}/attachments":{"post":{"operationId":"siteChatPublicAttachmentCreate","parameters":[{"in":"path","name":"conversation_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation siteChatPublicAttachmentCreate","tags":["site_chat"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/public/site-chat/conversations/{conversation_id}/messages":{"get":{"operationId":"siteChatPublicMessageList","parameters":[{"$ref":"#/components/parameters/conversation_id"},{"in":"query","name":"public_key","required":true,"schema":{"type":"string"}},{"in":"query","name":"visitor_id","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SiteChatMessage"},"type":"array"}}},"description":"Messages"}},"summary":"Public visitor reads chat messages","tags":["site_chat"]}},"/api/v1/public/site-chat/events":{"post":{"operationId":"siteChatEvents","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatEventBatch"}}},"required":true},"responses":{"202":{"description":"Accepted"},"400":{"$ref":"#/components/responses/problem"}},"summary":"Accept throttled/batched lightweight visitor events","tags":["site_chat"]}},"/api/v1/public/site-chat/messages":{"post":{"operationId":"siteChatPublicMessageCreate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatMessageInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"message_id":{"format":"uuid","type":"string"}},"required":["message_id"],"type":"object"}}},"description":"Message id"}},"summary":"Public visitor sends chat message","tags":["site_chat"]}},"/api/v1/public/site-chat/presence":{"post":{"operationId":"siteChatPresence","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatPresenceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatPresenceResponse"}}},"description":"Presence accepted"},"400":{"$ref":"#/components/responses/problem"}},"summary":"Create/update visitor and visit session","tags":["site_chat"]}},"/api/v1/public/site-chat/voice-config":{"get":{"operationId":"siteChatPublicVoiceConfig","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation siteChatPublicVoiceConfig","tags":["site_chat"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/public/site-chat/widgets/{public_key}/config":{"get":{"operationId":"siteChatPublicConfig","parameters":[{"$ref":"#/components/parameters/public_key"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatPublicConfig"}}},"description":"Widget config"},"404":{"$ref":"#/components/responses/problem"}},"summary":"Public widget config by public_key","tags":["site_chat"]}},"/api/v1/public/site-chat/ws":{"get":{"operationId":"siteChatPublicWebSocket","parameters":[{"in":"query","name":"public_key","required":true,"schema":{"type":"string"}},{"in":"query","name":"visitor_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"visit_session_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"conversation_id","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"101":{"description":"WebSocket upgraded. Uses SiteChatWSEnvelope frames."},"400":{"$ref":"#/components/responses/problem"}},"summary":"Public visitor Live Assist WebSocket","tags":["site_chat"]}},"/api/v1/runs/{workflow_run_id}":{"get":{"operationId":"runGet","parameters":[{"in":"path","name":"workflow_run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation runGet","tags":["runs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/runs/{workflow_run_id}/actions":{"get":{"description":"Список записей `action_runs` для данного `workflow_run_id` — фактическое выполнение шагов графа с входом, выходом и статусом.\n","operationId":"runActions","parameters":[{"in":"path","name":"workflow_run_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ActionRunView"},"type":"array"}}},"description":"Список исполнений узлов","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Unauthorized","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Problem"}}},"description":"Нет доступа к запуску","headers":{"Content-Language":{"$ref":"#/components/headers/Content-Language"},"X-App-Result":{"$ref":"#/components/headers/X-App-Result"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"security":[{"bearerAuth":[]}],"summary":"Исполнения действий (узлов) в запуске workflow","tags":["runs"]}},"/api/v1/runs/{workflow_run_id}/cancel":{"post":{"operationId":"runCancel","parameters":[{"in":"path","name":"workflow_run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation runCancel","tags":["runs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/runs/{workflow_run_id}/events":{"get":{"operationId":"runEvents","parameters":[{"in":"path","name":"workflow_run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation runEvents","tags":["runs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/runs/{workflow_run_id}/events/stream":{"get":{"operationId":"runEventsStream","parameters":[{"in":"path","name":"workflow_run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation runEventsStream","tags":["runs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/runs/{workflow_run_id}/graph":{"get":{"operationId":"runGraph","parameters":[{"in":"path","name":"workflow_run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation runGraph","tags":["runs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/runs/{workflow_run_id}/replay":{"post":{"operationId":"runReplay","parameters":[{"in":"path","name":"workflow_run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation runReplay","tags":["runs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/runs/{workflow_run_id}/retry-action":{"post":{"operationId":"runRetryAction","parameters":[{"in":"path","name":"workflow_run_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation runRetryAction","tags":["runs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/site-chat-conversations/{conversation_id}/attachments":{"post":{"operationId":"siteChatAttachmentCreate","parameters":[{"in":"path","name":"conversation_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation siteChatAttachmentCreate","tags":["site_chat"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/site-chat-conversations/{conversation_id}/messages":{"get":{"operationId":"siteChatMessageList","parameters":[{"$ref":"#/components/parameters/conversation_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SiteChatMessage"},"type":"array"}}},"description":"Messages"}},"security":[{"bearerAuth":[]}],"summary":"List operator-visible chat messages","tags":["site_chat"]},"post":{"operationId":"siteChatMessageCreate","parameters":[{"$ref":"#/components/parameters/conversation_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatMessageInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"message_id":{"format":"uuid","type":"string"}},"required":["message_id"],"type":"object"}}},"description":"Message id"}},"security":[{"bearerAuth":[]}],"summary":"Operator sends chat message","tags":["site_chat"]}},"/api/v1/site-chat-widgets/{chat_widget_id}":{"patch":{"operationId":"siteChatWidgetPatch","parameters":[{"$ref":"#/components/parameters/chat_widget_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatWidgetPatch"}}},"required":true},"responses":{"204":{"description":"Updated"},"404":{"$ref":"#/components/responses/problem"}},"security":[{"bearerAuth":[]}],"summary":"Update site chat widget","tags":["site_chat"]}},"/api/v1/site-chat/attachments/{attachment_id}/{download_token}":{"get":{"operationId":"siteChatAttachmentDownload","parameters":[{"in":"path","name":"attachment_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"download_token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation siteChatAttachmentDownload","tags":["site_chat"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/site-chat/calls/{call_session_id}/accept":{"post":{"operationId":"siteChatOperatorCallAccept","parameters":[{"$ref":"#/components/parameters/call_session_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallSession"}}},"description":"Call session"}},"security":[{"bearerAuth":[]}],"summary":"Operator accepts visitor-requested call","tags":["site_chat"]}},"/api/v1/site-chat/calls/{call_session_id}/end":{"post":{"operationId":"siteChatOperatorCallEnd","parameters":[{"$ref":"#/components/parameters/call_session_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallInput"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallSession"}}},"description":"Call session"}},"security":[{"bearerAuth":[]}],"summary":"Operator ends active call","tags":["site_chat"]}},"/api/v1/site-chat/calls/{call_session_id}/recordings":{"get":{"operationId":"siteChatCallRecordings","parameters":[{"in":"path","name":"call_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation siteChatCallRecordings","tags":["site_chat"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/site-chat/calls/{call_session_id}/reject":{"post":{"operationId":"siteChatOperatorCallReject","parameters":[{"$ref":"#/components/parameters/call_session_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallSession"}}},"description":"Call session"}},"security":[{"bearerAuth":[]}],"summary":"Operator rejects call","tags":["site_chat"]}},"/api/v1/site-chat/voice-config":{"get":{"operationId":"siteChatVoiceConfig","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation siteChatVoiceConfig","tags":["site_chat"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/site-chat/ws/operator":{"get":{"operationId":"siteChatOperatorWebSocket","parameters":[{"in":"query","name":"project_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"visit_session_id","required":false,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"conversation_id","required":false,"schema":{"format":"uuid","type":"string"}}],"responses":{"101":{"description":"WebSocket upgraded. Uses SiteChatWSEnvelope frames."}},"security":[{"bearerAuth":[]}],"summary":"Operator Live Assist WebSocket","tags":["site_chat"]}},"/api/v1/site-visit-sessions/{visit_session_id}/call-offer":{"post":{"operationId":"siteChatOperatorCallOffer","parameters":[{"$ref":"#/components/parameters/visit_session_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallInput"}}},"required":false},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatCallSession"}}},"description":"Call session"}},"security":[{"bearerAuth":[]}],"summary":"Operator offers a call to visitor","tags":["site_chat"]}},"/api/v1/site-visit-sessions/{visit_session_id}/events":{"get":{"operationId":"siteChatVisitEvents","parameters":[{"$ref":"#/components/parameters/visit_session_id"},{"in":"query","name":"since_sequence","required":false,"schema":{"default":0,"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SiteCobrowseFrame"},"type":"array"}}},"description":"Cobrowse frames"}},"security":[{"bearerAuth":[]}],"summary":"Operator reads cobrowse frames as REST fallback","tags":["site_chat"]}},"/api/v1/site-visit-sessions/{visit_session_id}/invite":{"post":{"operationId":"siteChatVisitorInvite","parameters":[{"$ref":"#/components/parameters/visit_session_id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatInviteInput"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteChatConversation"}}},"description":"Conversation"}},"security":[{"bearerAuth":[]}],"summary":"Operator invites visitor to chat","tags":["site_chat"]}},"/api/v1/site-visit-sessions/{visit_session_id}/monitoring/start":{"post":{"operationId":"siteChatMonitoringStart","parameters":[{"$ref":"#/components/parameters/visit_session_id"}],"responses":{"204":{"description":"Monitoring started"}},"security":[{"bearerAuth":[]}],"summary":"Start heavier live monitoring for a visit session","tags":["site_chat"]}},"/api/v1/site-visit-sessions/{visit_session_id}/monitoring/stop":{"post":{"operationId":"siteChatMonitoringStop","parameters":[{"$ref":"#/components/parameters/visit_session_id"}],"responses":{"204":{"description":"Monitoring stopped"}},"security":[{"bearerAuth":[]}],"summary":"Stop heavier live monitoring for a visit session","tags":["site_chat"]}},"/api/v1/site-visit-sessions/{visit_session_id}/snapshot":{"get":{"operationId":"siteChatVisitSnapshot","parameters":[{"$ref":"#/components/parameters/visit_session_id"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisitorStateSnapshot"}}},"description":"Visitor state snapshot"}},"security":[{"bearerAuth":[]}],"summary":"Operator reads current visitor_state_snapshot","tags":["site_chat"]}},"/api/v1/telegram/bot-api/{relay_key}/{method}":{"post":{"operationId":"telegramBotAPIProxy","parameters":[{"in":"path","name":"relay_key","required":true,"schema":{"type":"string"}},{"in":"path","name":"method","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation telegramBotAPIProxy","tags":["telegram"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/telegram/relay/{relay_key}":{"post":{"operationId":"telegramRelayAPI","parameters":[{"in":"path","name":"relay_key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation telegramRelayAPI","tags":["telegram"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/webhook-endpoints/{webhook_endpoint_id}":{"get":{"operationId":"webhookEpGet","parameters":[{"in":"path","name":"webhook_endpoint_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation webhookEpGet","tags":["webhooks"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"webhookEpPatch","parameters":[{"in":"path","name":"webhook_endpoint_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation webhookEpPatch","tags":["webhooks"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/webhook-endpoints/{webhook_endpoint_id}/events":{"get":{"operationId":"webhookEpEvents","parameters":[{"in":"path","name":"webhook_endpoint_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation webhookEpEvents","tags":["webhooks"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/webhook-endpoints/{webhook_endpoint_id}/rotate-secret":{"post":{"operationId":"webhookEpRotateSecret","parameters":[{"in":"path","name":"webhook_endpoint_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation webhookEpRotateSecret","tags":["webhooks"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/webhook-endpoints/{webhook_endpoint_id}/snippets":{"get":{"operationId":"webhookSnippets","parameters":[{"in":"path","name":"webhook_endpoint_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation webhookSnippets","tags":["webhooks"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/webhook-events/{webhook_event_id}":{"get":{"operationId":"webhookEventGet","parameters":[{"in":"path","name":"webhook_event_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation webhookEventGet","tags":["webhooks"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/webhook-events/{webhook_event_id}/replay":{"post":{"operationId":"webhookEventReplay","parameters":[{"in":"path","name":"webhook_event_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation webhookEventReplay","tags":["webhooks"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/access":{"get":{"operationId":"workAccess","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workAccess","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/boards":{"get":{"operationId":"workBoardList","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workBoardList","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"workBoardCreate","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workBoardCreate","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/boards/{task_board_id}":{"get":{"operationId":"workBoardGet","parameters":[{"in":"path","name":"task_board_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workBoardGet","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/employees":{"get":{"operationId":"workEmployeeList","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workEmployeeList","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/overview":{"get":{"operationId":"workOverview","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workOverview","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/presets":{"get":{"operationId":"workPresets","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workPresets","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/projects/{project_id}/members":{"post":{"operationId":"workProjectMemberCreate","parameters":[{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workProjectMemberCreate","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/reports":{"get":{"operationId":"workReports","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workReports","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/task-attachments/{task_attachment_id}":{"get":{"operationId":"workTaskAttachmentGet","parameters":[{"in":"path","name":"task_attachment_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskAttachmentGet","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/task-workflows":{"get":{"operationId":"workTaskWorkflowList","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskWorkflowList","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"workTaskWorkflowCreate","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskWorkflowCreate","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/task-workflows/{task_workflow_id}/roles":{"get":{"operationId":"workTaskWorkflowRoleList","parameters":[{"in":"path","name":"task_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskWorkflowRoleList","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"workTaskWorkflowRoleCreate","parameters":[{"in":"path","name":"task_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskWorkflowRoleCreate","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/task-workflows/{task_workflow_id}/roles/reset":{"post":{"operationId":"workTaskWorkflowRoleReset","parameters":[{"in":"path","name":"task_workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskWorkflowRoleReset","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/task-workflows/{task_workflow_id}/roles/{task_process_role_id}":{"patch":{"operationId":"workTaskWorkflowRolePatch","parameters":[{"in":"path","name":"task_workflow_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"task_process_role_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskWorkflowRolePatch","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/tasks":{"get":{"operationId":"workTaskList","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskList","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"workTaskCreate","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskCreate","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/tasks/{task_id}":{"get":{"operationId":"workTaskGet","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskGet","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"},"patch":{"operationId":"workTaskPatch","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskPatch","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/tasks/{task_id}/attachments":{"get":{"operationId":"workTaskAttachmentList","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskAttachmentList","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"workTaskAttachmentCreate","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskAttachmentCreate","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/tasks/{task_id}/checklist":{"post":{"operationId":"workTaskChecklistCreate","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskChecklistCreate","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/tasks/{task_id}/checklist/{task_checklist_item_id}":{"patch":{"operationId":"workTaskChecklistPatch","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"task_checklist_item_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskChecklistPatch","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/tasks/{task_id}/comments":{"post":{"operationId":"workTaskCommentCreate","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskCommentCreate","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/tasks/{task_id}/custom-fields/{task_custom_field_id}":{"put":{"operationId":"workTaskCustomFieldPut","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"task_custom_field_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskCustomFieldPut","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/tasks/{task_id}/move":{"post":{"operationId":"workTaskMove","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskMove","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/tasks/{task_id}/timer/start":{"post":{"operationId":"workTaskTimerStart","parameters":[{"in":"path","name":"task_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTaskTimerStart","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/time":{"get":{"operationId":"workTimeList","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTimeList","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"workTimeCreate","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTimeCreate","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/timer/active":{"get":{"operationId":"workTimerActive","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTimerActive","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/work/timer/stop":{"post":{"operationId":"workTimerStop","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workTimerStop","tags":["worktracker"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflow-versions/{workflow_version_id}":{"get":{"operationId":"workflowVersionGet","parameters":[{"in":"path","name":"workflow_version_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowVersionGet","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}":{"get":{"operationId":"workflowGet","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowGet","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}/draft":{"put":{"operationId":"workflowPutDraft","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowPutDraft","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}/publish":{"post":{"operationId":"workflowPublish","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowPublish","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}/runs":{"get":{"operationId":"runList","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation runList","tags":["runs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}/runs/manual":{"post":{"operationId":"runManual","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation runManual","tags":["runs"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}/test-runs":{"post":{"operationId":"workflowTestRunCreate","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowTestRunCreate","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}/validate":{"post":{"operationId":"workflowValidate","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowValidate","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}/versions":{"get":{"operationId":"workflowVersions","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowVersions","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}/versions/{workflow_version_id}/restore":{"post":{"operationId":"workflowVersionRestore","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workflow_version_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation workflowVersionRestore","tags":["workflow"],"x-runtime-source":"endpoints.inventory.tsv"}},"/api/v1/workflows/{workflow_id}/webhook-endpoints":{"get":{"operationId":"webhookEpList","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation webhookEpList","tags":["webhooks"],"x-runtime-source":"endpoints.inventory.tsv"},"post":{"operationId":"webhookEpCreate","parameters":[{"in":"path","name":"workflow_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation webhookEpCreate","tags":["webhooks"],"x-runtime-source":"endpoints.inventory.tsv"}},"/healthz":{"get":{"operationId":"healthz","responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation healthz","tags":["health"],"x-runtime-source":"endpoints.inventory.tsv"}},"/hooks/{hook_key}/{endpoint_key}":{"post":{"operationId":"ingestWebhookPost","parameters":[{"in":"path","name":"hook_key","required":true,"schema":{"type":"string"}},{"in":"path","name":"endpoint_key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation ingestWebhookPost","tags":["ingest"],"x-runtime-source":"endpoints.inventory.tsv"}},"/hooks/{hook_key}/{endpoint_key}/runs/{workflow_run_id}/receipt":{"get":{"description":"Возвращает только состояние workflow и статусы его действий. Входной payload, адресаты, тексты сообщений и ответы провайдеров не выдаются. Run обязан принадлежать указанному endpoint. Endpoint с auth_type=none не может использовать этот метод.","operationId":"ingestWebhookRunReceiptGet","parameters":[{"in":"path","name":"hook_key","required":true,"schema":{"type":"string"}},{"in":"path","name":"endpoint_key","required":true,"schema":{"type":"string"}},{"in":"path","name":"workflow_run_id","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"header","name":"X-Project-Secret","required":true,"schema":{"format":"password","type":"string"}},{"in":"header","name":"X-Riders-Timestamp","required":true,"schema":{"format":"date-time","type":"string"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"maxLength":200,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookRunReceipt"}}},"description":"Текущая либо терминальная квитанция","headers":{"Cache-Control":{"schema":{"enum":["no-store"],"type":"string"}}}},"400":{"description":"Некорректный workflow_run_id"},"401":{"description":"Ошибка авторизации или freshness-проверки"},"404":{"description":"Endpoint или принадлежащий ему run не найден"}},"summary":"Получить безопасную квитанцию выполнения webhook-сценария","tags":["ingest"]}},"/site-chat/widget.js":{"get":{"operationId":"siteChatWidgetScript","responses":{"200":{"content":{"application/javascript":{"schema":{"type":"string"}}},"description":"JavaScript bootstrap"}},"summary":"Lightweight site chat widget bootstrap","tags":["site_chat"]}},"/telegram/relay/{relay_key}":{"post":{"operationId":"telegramRelayPublic","parameters":[{"in":"path","name":"relay_key","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Runtime response"},"400":{"description":"Problem response"}},"summary":"Runtime inventory operation telegramRelayPublic","tags":["telegram"],"x-runtime-source":"endpoints.inventory.tsv"}}},"security":[],"servers":[{"description":"Production","url":"https://api.example.test"},{"description":"Staging","url":"https://staging-api.example.test"}],"tags":[{"description":"Registration, login, session lifecycle, OAuth, native exchange.","name":"auth","summary":"Authentication and session lifecycle"},{"description":"Company listing, creation, and active company switching.","name":"company","summary":"Company context and switching"},{"description":"Client workspace, client services, payment actions and idempotent payment events.","name":"clients","summary":"Clients, services and payments"},{"description":"Bundled OpenAPI artifacts, endpoint catalog, and testing collection metadata.","name":"docs","summary":"API documentation and testing assets"},{"description":"Каталог поддерживаемых типов узлов графа (action_types) и типов секретов/подключений проекта\n(action_dependency_types).\n","name":"catalog","summary":"Конструктор workflow — типы действий и зависимостей"},{"description":"Обзор выполнения workflow_run и по шагам — записи исполнений действий (action_runs) и события.\n","name":"runs","summary":"Запуски workflow и наблюдение исполнения"},{"description":"Lightweight widget, visitor/session analytics, monitoring commands and chat conversations.","name":"site_chat","summary":"Чат на сайте, посетители и webvisor-lite"},{"description":"Project-scoped AI employee, model provider catalog, chat sessions, prompt proposals and model cache.","name":"ai","summary":"AI-сотрудник проекта и model providers"}]}